/* Admin — Sân Golf Châu Đức */
.admin-page{background:#eef1f6;font-family:'Be Vietnam Pro',system-ui,sans-serif;color:#1f2d3d;margin:0}
.muted{color:#8a97a8;font-size:14px}
.btn-cta{background:#f26522;color:#fff;border:none;font-weight:700;padding:11px 20px;border-radius:8px;cursor:pointer;font-family:inherit;font-size:14.5px}
.btn-cta:hover{background:#d9531a}
.btn-big{width:100%;padding:13px}
.btn-ghost{background:#fff;border:1.5px solid #d5dde6;color:#1f2d3d;font-weight:600;padding:9px 16px;border-radius:8px;cursor:pointer;font-family:inherit;font-size:14px}
.btn-sm{padding:6px 12px;font-size:13px;border-radius:6px}
.btn-danger{background:#d0021b;color:#fff;border:none;padding:6px 12px;border-radius:6px;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600}
.btn-ok{background:#1b7a3d;color:#fff;border:none;padding:6px 12px;border-radius:6px;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600}

/* login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{background:#fff;border-radius:16px;padding:36px 32px;width:380px;max-width:100%;box-shadow:0 20px 60px rgba(14,42,71,.14);text-align:center}
.login-card img{height:64px;margin:0 auto 12px}
.login-card h2{font-size:19px;color:#0e2a47;margin-bottom:4px}
.login-card label{display:block;text-align:left;font-size:13.5px;font-weight:600;color:#5c6b7e;margin:14px 0 0}
.login-card input{width:100%;font-family:inherit;font-size:15px;padding:12px;border:1.5px solid #e6ebf1;border-radius:10px;margin-top:6px}
.login-card input:focus{outline:none;border-color:#f26522}
.login-card .btn-cta{margin-top:20px}
.login-err{background:#fde8e8;color:#b00020;font-size:13.5px;padding:10px;border-radius:8px;margin-top:12px}
.forgot{text-align:center;margin-top:14px;font-size:13.5px}

/* layout */
.admin-app{display:flex;min-height:100vh}
.sidebar{width:250px;background:#0e2a47;color:#cdd9e5;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;flex-shrink:0;z-index:60}
.side-brand{padding:20px 18px;border-bottom:1px solid rgba(255,255,255,.1);font-size:17px;color:#fff}
.side-brand small{display:block;font-size:11.5px;color:#8fa5bd;font-weight:400}
.side-nav{flex:1;overflow-y:auto;padding:12px}
.side-nav button{display:flex;width:100%;gap:10px;align-items:center;background:none;border:none;color:#cdd9e5;font-family:inherit;font-size:14.5px;font-weight:600;padding:12px 14px;border-radius:8px;cursor:pointer;text-align:left;margin-bottom:2px}
.side-nav button:hover{background:rgba(255,255,255,.08);color:#fff}
.side-nav button.active{background:#f26522;color:#fff}
.side-user{padding:14px 18px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center}
.side-user b{display:block;color:#fff;font-size:14px}
.side-user small{color:#8fa5bd;font-size:12px}
.side-user button{background:rgba(255,255,255,.1);border:none;color:#fff;width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:16px}
.side-overlay{display:none}
.admin-main{flex:1;min-width:0;padding:0 0 40px}
.admin-topbar{background:#fff;border-bottom:1px solid #e6ebf1;padding:14px 24px;display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:50}
.admin-topbar h1{font-size:19px;color:#0e2a47;margin:0}
.hamburger{display:none;background:none;border:none;font-size:24px;cursor:pointer;color:#0e2a47}
#viewBody{padding:24px;max-width:1200px}

/* cards & tables */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}
.stat-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px rgba(14,42,71,.06)}
.stat-card b{font-size:30px;color:#0e2a47;display:block}
.stat-card span{font-size:13px;color:#8a97a8}
.stat-card.warn b{color:#d0021b}.stat-card.ok b{color:#1b7a3d}
.card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px rgba(14,42,71,.06);margin-bottom:20px}
.card h3{margin:0 0 14px;font-size:16px;color:#0e2a47}
.tbl-wrap{overflow-x:auto}
table.tbl{width:100%;border-collapse:collapse;font-size:14px;background:#fff}
.tbl th{background:#f4f6f9;color:#5c6b7e;font-size:12.5px;text-transform:uppercase;text-align:left;padding:10px 12px;white-space:nowrap}
.tbl td{padding:10px 12px;border-top:1px solid #eef1f6;vertical-align:middle}
.tbl tr:hover td{background:#fafbfd}
.pill{display:inline-block;font-size:12px;font-weight:700;padding:4px 11px;border-radius:20px;white-space:nowrap}
.pill.pending{background:#fff4e0;color:#b77900}
.pill.confirmed{background:#e3f3e8;color:#1b7a3d}
.pill.completed{background:#e8eef5;color:#0e2a47}
.pill.cancelled{background:#fde8e8;color:#b00020}
.pill.open{background:#e3f3e8;color:#1b7a3d}
.pill.closed,.pill.off{background:#fde8e8;color:#b00020}
.pill.booked{background:#fff4e0;color:#b77900}
.pill.available{background:#e3f3e8;color:#1b7a3d}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;align-items:center}
.filters input,.filters select,.inline-form input,.inline-form select{font-family:inherit;font-size:14px;padding:9px 12px;border:1.5px solid #d5dde6;border-radius:8px;background:#fff}
.filters input:focus,.inline-form input:focus{outline:none;border-color:#f26522}
.inline-form{background:#f8fafc;border:1px dashed #c9d4e0;border-radius:10px;padding:16px;margin-bottom:16px;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;align-items:end}
.inline-form label{font-size:12.5px;font-weight:600;color:#5c6b7e;display:flex;flex-direction:column;gap:5px}
.date-strip{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 12px}
.date-strip button{flex:0 0 auto;border:1.5px solid #d5dde6;background:#fff;border-radius:8px;padding:8px 12px;cursor:pointer;font-family:inherit;font-size:13.5px;font-weight:600}
.date-strip button.sel{border-color:#f26522;background:#fff6f0;color:#f26522}
.price-in{width:110px;font-family:inherit;font-size:13.5px;padding:7px 9px;border:1.5px solid #d5dde6;border-radius:7px}

/* modal */
.modal{position:fixed;inset:0;background:rgba(8,25,43,.55);z-index:100;display:flex;align-items:center;justify-content:center;padding:18px}
.modal[hidden]{display:none}
.modal-card{background:#fff;border-radius:14px;width:640px;max-width:100%;max-height:88vh;display:flex;flex-direction:column;overflow:hidden}
.modal-head{padding:16px 20px;border-bottom:1px solid #eef1f6;display:flex;justify-content:space-between;align-items:center}
.modal-head b{font-size:16.5px;color:#0e2a47}
.modal-head button{background:#eef1f6;border:none;width:32px;height:32px;border-radius:50%;cursor:pointer}
.modal-body{padding:20px;overflow-y:auto}
.kv{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px dashed #eef1f6;font-size:14.5px}
.kv span{color:#8a97a8}.kv b{text-align:right}
.svc-line{display:flex;justify-content:space-between;font-size:14px;padding:6px 0}
.status-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}

/* toast */
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);background:#0e2a47;color:#fff;padding:13px 24px;border-radius:10px;font-size:14px;font-weight:600;opacity:0;pointer-events:none;transition:.3s;z-index:200;max-width:90vw}
.toast.show{opacity:1;transform:translateX(-50%)}

@media(max-width:900px){
  .stat-grid{grid-template-columns:repeat(2,1fr)}
  .sidebar{position:fixed;left:0;top:0;transform:translateX(-100%);transition:.25s}
  .sidebar.open{transform:none;box-shadow:20px 0 60px rgba(0,0,0,.3)}
  .side-overlay.show{display:block;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:55}
  .hamburger{display:block}
  #viewBody{padding:16px}
}
