*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:#f5f7fb;color:#1f2937}a{color:#2155cd;text-decoration:none}.wrap{max-width:1180px;margin:0 auto;padding:24px}.card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:22px;margin-bottom:18px;box-shadow:0 4px 18px rgba(0,0,0,.04)}h1,h2,h3{margin-top:0}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stat{font-size:28px;font-weight:700}.muted{color:#6b7280}.btn{display:inline-block;border:0;border-radius:9px;padding:10px 16px;background:#1d4ed8;color:#fff;cursor:pointer;font-weight:650}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.secondary{background:#475569}.btn.danger{background:#b91c1c}input,select{width:100%;padding:11px;border:1px solid #cbd5e1;border-radius:8px;margin-top:6px;margin-bottom:14px;background:#fff}textarea{width:100%;padding:11px;border:1px solid #cbd5e1;border-radius:8px;margin-top:6px;margin-bottom:14px;background:#fff;font:inherit;resize:vertical}.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.alert{padding:12px 14px;border-radius:9px;margin:12px 0}.alert.success{background:#ecfdf5;color:#065f46}.alert.error{background:#fef2f2;color:#991b1b}.alert.info{background:#eff6ff;color:#1e40af}.nav{background:#111827;color:#fff}.nav .wrap{display:flex;align-items:center;gap:16px;padding-top:14px;padding-bottom:14px;overflow-x:auto}.nav a{color:#e5e7eb;white-space:nowrap}.nav .brand{font-weight:800;color:#fff;margin-right:auto}.checks{list-style:none;padding:0}.checks li{padding:10px 12px;border-bottom:1px solid #eee;display:flex;gap:10px}.ok{color:#047857;font-weight:800}.bad{color:#b91c1c;font-weight:800}.badge{display:inline-block;background:#e0e7ff;color:#3730a3;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px;border-bottom:1px solid #e5e7eb;vertical-align:top}.login{max-width:430px;margin:70px auto}.grid-4{grid-template-columns:repeat(4,1fr)}.hero{display:flex;justify-content:space-between;align-items:center;gap:16px}.hero h1,.hero h2{margin-bottom:4px}.actions{display:flex;gap:8px;flex-wrap:wrap}.inline-form,.filterbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.inline-form input,.filterbar input,.filterbar select{margin:0}.filterbar input{flex:1;min-width:150px}.filterbar select{max-width:220px}.inline{display:inline}.linkbtn{border:0;background:none;color:#2155cd;cursor:pointer;padding:0}.table-scroll{overflow:auto}.small{font-size:12px}.topgap{margin-top:16px}.check{display:flex;gap:8px;align-items:center;margin-bottom:16px}.check input{width:auto;margin:0}.badge.gray{background:#f1f5f9;color:#475569}.badge.green,.status-checked_in{background:#dcfce7;color:#166534}.badge.red,.status-cancelled{background:#fee2e2;color:#991b1b}.status-booked{background:#dbeafe;color:#1e40af}.status-checked_out{background:#ede9fe;color:#5b21b6}.details{display:grid;grid-template-columns:150px 1fr;gap:9px 12px}.details dt{color:#6b7280}.details dd{margin:0;font-weight:600}.center{text-align:center}.summary-pill{background:#eef2ff;border-radius:999px;padding:10px 15px;font-weight:750;white-space:nowrap}.calendar{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:1px;background:#dbe1ea;border:1px solid #dbe1ea;border-radius:12px;overflow:auto;margin-bottom:20px}.cal-head{background:#111827;color:#fff;padding:10px;text-align:center;font-weight:700}.cal-cell{background:#fff;min-height:140px;padding:9px}.cal-cell.empty{background:#f8fafc}.cal-day{font-weight:800;margin-bottom:8px}.cal-event{display:block;background:#eff6ff;border-left:3px solid #2563eb;border-radius:7px;padding:7px;margin-bottom:7px;color:#1e3a8a}.cal-event span{display:block;font-size:11px;margin-top:2px}.receipt{max-width:850px;margin:0 auto 20px;background:#fff;border:1px solid #d1d5db;border-radius:12px;padding:34px}.receipt-head{display:flex;justify-content:space-between;gap:20px;align-items:start}.receipt-head h1{margin-bottom:4px}.receipt-no{text-align:right}.receipt-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px;margin-top:24px}.receipt-grid div{display:flex;flex-direction:column;gap:4px}.receipt-grid span{font-size:12px;color:#6b7280;text-transform:uppercase;letter-spacing:.04em}.receipt-grid .wide,.amount-box{grid-column:1/-1}.amount-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:16px}.amount-box strong{font-size:26px}.receipt-sign{display:flex;justify-content:space-between;margin-top:70px;padding-top:10px;border-top:1px dashed #cbd5e1}.no-print{}
@media(max-width:900px){.grid-4{grid-template-columns:repeat(2,1fr)}.calendar{grid-template-columns:repeat(7,150px)}}@media(max-width:760px){.grid,.row,.grid-4{grid-template-columns:1fr}.nav .wrap{gap:14px}.wrap{padding:16px}.hero,.inline-form,.filterbar{align-items:stretch;flex-direction:column}.filterbar select{max-width:none}.details{grid-template-columns:1fr}.details dt{margin-top:8px}.receipt-grid{grid-template-columns:1fr}.receipt-grid .wide,.amount-box{grid-column:auto}.receipt{padding:20px}.receipt-head{flex-direction:column}.receipt-no{text-align:left}}
@media print{body{background:#fff}.nav,.no-print,main>.alert{display:none!important}.wrap{max-width:none;padding:0}.receipt{border:0;box-shadow:none;max-width:none;margin:0;padding:15mm}.receipt-sign{margin-top:45mm}}
.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:8px 0 18px}.role-check{border:1px solid #e2e8f0;border-radius:9px;padding:10px;background:#f8fafc;margin:0}.role-check span{font-weight:650}tfoot th{background:#f8fafc}.filterbar label{min-width:145px}.filterbar label input,.filterbar label select{margin-bottom:0}.badge.green{background:#dcfce7;color:#166534}@media(max-width:760px){.role-grid{grid-template-columns:1fr}}

/* v1.0.4 Professional Navigation & Responsive Menu */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.admin-header{position:sticky;top:0;z-index:1000;background:#111827;border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 6px 24px rgba(15,23,42,.12)}
.admin-nav-wrap{max-width:1220px;margin:0 auto;min-height:72px;padding:0 20px;display:flex;align-items:center;gap:18px}
.admin-brand{display:flex;align-items:center;gap:11px;min-width:250px;max-width:310px;color:#fff!important;flex:0 0 auto}
.admin-brand:hover{color:#fff!important}
.admin-brand-mark{width:40px;height:40px;border-radius:11px;background:#fff;color:#111827;display:grid;place-items:center;font-size:13px;font-weight:900;letter-spacing:.04em;flex:0 0 auto}
.admin-brand-copy{min-width:0;display:flex;flex-direction:column;line-height:1.18}
.admin-brand-copy strong{font-size:14px;font-weight:850;letter-spacing:.025em;text-transform:uppercase;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.admin-brand-copy small{color:#94a3b8;font-size:11px;margin-top:4px;font-weight:650;letter-spacing:.02em}
.admin-primary-nav{display:flex;align-items:center;gap:3px;min-width:0;flex:1}
.nav-top-link,.nav-dropdown-toggle,.admin-account-toggle{height:42px;border:0;border-radius:9px;background:transparent;color:#dbe3ee;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 11px;font:inherit;font-size:14px;font-weight:650;cursor:pointer;white-space:nowrap;transition:background .16s ease,color .16s ease}
.nav-top-link:hover,.nav-dropdown-toggle:hover,.admin-account-toggle:hover,.nav-dropdown.open>.nav-dropdown-toggle,.nav-dropdown.active>.nav-dropdown-toggle,.nav-top-link.active{background:rgba(255,255,255,.09);color:#fff}
.nav-top-link.active,.nav-dropdown.active>.nav-dropdown-toggle{box-shadow:inset 0 -2px 0 #fff}
.nav-dropdown{position:relative}
.nav-chevron{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .16s ease;opacity:.75}
.nav-dropdown.open>.nav-dropdown-toggle .nav-chevron,.nav-dropdown.open>.admin-account-toggle .nav-chevron{transform:rotate(225deg) translate(-1px,-1px)}
.nav-dropdown-menu{display:none;position:absolute;top:calc(100% + 9px);left:0;min-width:225px;padding:7px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 18px 42px rgba(15,23,42,.18);z-index:1100}
.nav-dropdown.open>.nav-dropdown-menu{display:block}
.nav-dropdown-menu:before{content:"";position:absolute;top:-5px;left:22px;width:9px;height:9px;background:#fff;border-left:1px solid #e2e8f0;border-top:1px solid #e2e8f0;transform:rotate(45deg)}
.nav-dropdown-menu-right{left:auto;right:0}
.nav-dropdown-menu-right:before{left:auto;right:22px}
.nav-dropdown-menu a{position:relative;display:flex;align-items:center;min-height:39px;padding:9px 11px;border-radius:8px;color:#334155;font-size:13.5px;font-weight:620;white-space:nowrap}
.nav-dropdown-menu a:hover{background:#f1f5f9;color:#0f172a}
.nav-dropdown-menu a.active{background:#eef2ff;color:#1e40af;font-weight:760}
.admin-account{flex:0 0 auto;margin-left:2px}
.admin-account-toggle{height:48px;padding:0 8px 0 7px;border-left:1px solid rgba(255,255,255,.12);border-radius:0 9px 9px 0}
.admin-avatar{width:34px;height:34px;border-radius:50%;background:#e2e8f0;color:#0f172a;display:grid;place-items:center;font-size:13px;font-weight:900}
.admin-account-copy{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1;max-width:105px}
.admin-account-copy strong{font-size:12.5px;color:#fff;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.admin-account-copy small{font-size:10.5px;color:#94a3b8;margin-top:4px}
.admin-account-menu{min-width:245px}
.admin-account-summary{padding:10px 11px 12px;margin-bottom:5px;border-bottom:1px solid #e2e8f0;display:flex;flex-direction:column;gap:3px}
.admin-account-summary strong{font-size:13px;color:#0f172a}
.admin-account-summary small{font-size:11px;color:#64748b;overflow-wrap:anywhere}
.nav-dropdown-menu .logout-link{color:#b91c1c}
.nav-dropdown-menu .logout-link:hover{background:#fef2f2;color:#991b1b}
.admin-menu-toggle{display:none;width:43px;height:43px;border:1px solid rgba(255,255,255,.14);border-radius:9px;background:rgba(255,255,255,.04);padding:10px;cursor:pointer}
.admin-menu-toggle span:not(.sr-only){display:block;height:2px;background:#fff;border-radius:999px;margin:4px 0;transition:transform .16s ease,opacity .16s ease}
.mobile-only-nav{display:none!important}
.admin-main{padding-top:26px}

/* neutralise legacy flat nav if any cached/older markup is encountered */
body>.nav{display:none}

@media (max-width:1180px){
  .admin-brand{min-width:210px;max-width:245px}
  .admin-nav-wrap{gap:10px;padding-left:16px;padding-right:16px}
  .nav-top-link,.nav-dropdown-toggle{padding-left:8px;padding-right:8px;font-size:13px}
  .admin-account-copy{display:none}
}

@media (max-width:980px){
  .admin-header{position:sticky}
  .admin-nav-wrap{min-height:66px;flex-wrap:wrap;gap:0;padding:0 16px}
  .admin-brand{min-width:0;max-width:calc(100% - 62px);flex:1;padding:10px 0}
  .admin-brand-copy strong{font-size:13px}
  .admin-menu-toggle{display:block;margin-left:auto}
  .admin-header.menu-open .admin-menu-toggle span:not(.sr-only):nth-child(2){transform:translateY(6px) rotate(45deg)}
  .admin-header.menu-open .admin-menu-toggle span:not(.sr-only):nth-child(3){opacity:0}
  .admin-header.menu-open .admin-menu-toggle span:not(.sr-only):nth-child(4){transform:translateY(-6px) rotate(-45deg)}
  .admin-primary-nav{display:none;order:3;flex:0 0 100%;width:100%;padding:9px 0 15px;border-top:1px solid rgba(255,255,255,.09);align-items:stretch;flex-direction:column;gap:3px}
  .admin-header.menu-open .admin-primary-nav{display:flex}
  .admin-account{display:none}
  .mobile-only-nav{display:flex!important}
  .nav-top-link,.nav-dropdown-toggle{width:100%;height:44px;justify-content:space-between;padding:0 12px;border-radius:8px}
  .nav-top-link{justify-content:flex-start}
  .nav-top-link.active,.nav-dropdown.active>.nav-dropdown-toggle{box-shadow:none;background:rgba(255,255,255,.1)}
  .nav-dropdown{width:100%}
  .nav-dropdown-menu,.nav-dropdown-menu-right{position:static;min-width:0;margin:2px 0 7px 14px;padding:4px 0 4px 10px;background:transparent;border:0;border-left:1px solid rgba(255,255,255,.14);border-radius:0;box-shadow:none}
  .nav-dropdown-menu:before{display:none}
  .nav-dropdown-menu a{color:#cbd5e1;padding:8px 11px;min-height:37px}
  .nav-dropdown-menu a:hover{background:rgba(255,255,255,.07);color:#fff}
  .nav-dropdown-menu a.active{background:rgba(255,255,255,.1);color:#fff}
  .admin-main{padding-top:18px}
}

@media (max-width:520px){
  .admin-brand-mark{width:36px;height:36px;border-radius:10px}
  .admin-brand-copy small{font-size:10px}
  .admin-nav-wrap{padding-left:12px;padding-right:12px}
  .admin-main{padding-left:12px;padding-right:12px}
}
