/* Theme variables — overridden by /api/admin/theme endpoint */
:root{
  --bg:#0b121d;--surface:#1b222e;--surface2:#0a0f17;--border:#2a2d3a;
  --accent:#d2b26e;--accent2:#e0c068;--accent-bg:rgba(210,178,110,.08);
  --text:#f8fafd;--text-muted:#6f7e94;
  --nav-text:#6f7e94;--btn-hover:#e0c068;--nav-bg:rgba(8,11,15,.8);--nav-btn-hover:rgba(210,178,110,.06);--verified-badge:#d2b26e;
  --green:#4caf82;--red:#e05a5a;--blue:#5b9bd5;--amber:#e09a3a;
  --radius:5px;--radius-md:5px;--radius-lg:5px;--radius-pill:999px;
  --shadow:0 1px 2px rgba(0,0,0,.28);
  --shadow-md:0 6px 20px rgba(0,0,0,.30);
  --shadow-lg:0 24px 60px rgba(0,0,0,.5);
  --ring:0 0 0 3px var(--accent-bg);
  --hairline:color-mix(in srgb,var(--border) 55%,transparent);
  --font-body:'Inter',system-ui,-apple-system,sans-serif;
  --font-heading:'Inter',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:14px;line-height:20px;min-height:100vh}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--accent);text-decoration:none;font-weight:500;transition:color .15s}a:hover{color:var(--accent2)}

/* Navigation — base (used by public pages too) */
header.topbar{background:rgba(8,11,15,.9);border-bottom:1px solid var(--border);padding:0 24px;display:flex;align-items:center;gap:16px;height:60px}
header.topbar h1{font-family:var(--font-heading);font-size:16px;font-weight:700;color:var(--accent2);text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}
header.topbar .tb-logo{display:flex;align-items:center;text-decoration:none;flex-shrink:0}
header.topbar .tb-logo img{height:40px;display:block}
header.topbar nav{display:flex;gap:4px;flex:1;overflow:visible;scrollbar-width:none}
header.topbar nav::-webkit-scrollbar{display:none}
header.topbar nav a{font-size:13px;font-weight:500;padding:6px 14px;border-radius:var(--radius);color:var(--text-muted);border:1px solid transparent;white-space:nowrap;text-decoration:none;transition:all .2s}
header.topbar nav a:hover{color:var(--text);border-color:var(--border)}
header.topbar nav a.active{color:var(--accent);border-color:var(--accent)}
header.topbar .user{font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:10px;white-space:nowrap}

/* Admin fixed navbar — activated by body.has-topbar (set by mountTopbar) */
body.has-topbar header.topbar{background:var(--nav-bg,rgba(8,11,15,.8));backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);position:fixed;top:0;left:0;right:0;z-index:1000;height:70px;padding:0 40px;border-bottom:none;transition:transform .3s ease}
body.has-topbar.nav-hidden header.topbar{transform:translateY(-100%)}
body.has-topbar header.topbar .tb-logo{flex-shrink:0;display:flex;align-items:center;text-decoration:none}
body.has-topbar header.topbar .tb-logo img{height:40px;display:block}
body.has-topbar header.topbar .tb-logo h1{font-family:var(--font-heading);font-size:16px;font-weight:700;color:var(--accent2);text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;margin:0}
body.has-topbar header.topbar nav{display:flex;gap:2px;margin-left:auto;align-items:center;flex:unset}
body.has-topbar header.topbar nav a{font-family:var(--font-heading);font-size:14px;font-weight:500;padding:8px 20px;text-transform:uppercase;border:none;color:var(--nav-text,var(--text-muted));border-radius:var(--radius);transition:color .2s,background .2s}
body.has-topbar header.topbar nav a:hover{color:var(--accent);background:var(--nav-btn-hover,rgba(210,178,110,.06))}
body.has-topbar header.topbar nav a.active{color:var(--accent);border:none;background:var(--nav-btn-hover,rgba(210,178,110,.06))}
body.has-topbar header.topbar .user{margin-left:16px}
/* Offset body for fixed nav — only when admin topbar is present */
body.has-topbar{padding-top:70px}
/* Keep nav buttons free of the global button shadow so the navbar is unchanged */
header.topbar button,header.topbar .btn{box-shadow:none}

/* Layout */
main{padding:28px 3%;max-width:1400px;margin:0 auto}
h2{font-family:var(--font-heading);font-size:23px;font-weight:700;margin-bottom:18px;color:var(--text);text-transform:uppercase;letter-spacing:-.01em}
h3{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin:24px 0 12px}

/* Cards — borderless, soft elevation */
.card{background:var(--surface);border-radius:var(--radius-lg);padding:22px;margin-bottom:18px;box-shadow:var(--shadow)}
.champ-card{background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease}
.champ-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.champ-card img{width:100%;aspect-ratio:16/9;object-fit:contain;background:var(--surface2);display:block}
.champ-card .info{padding:14px 16px}
.champ-card .info h4{font-family:var(--font-heading);font-size:14px;font-weight:600;margin-bottom:4px;text-transform:uppercase}
.champ-card .info p{font-size:12px;color:var(--text-muted)}
.champ-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-bottom:20px}

/* Forms */
.row{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end}
.col{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}
label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted)}
input,select,textarea{background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:10px 12px;border-radius:var(--radius-md);font:inherit;font-size:14px;width:100%;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}
input::placeholder,textarea::placeholder{color:var(--text-muted)}
select{cursor:pointer}
textarea{min-height:80px;resize:vertical}

/* Toggle switches (replace checkboxes) */
input[type="checkbox"]{appearance:none;-webkit-appearance:none;flex:none;width:40px!important;min-width:40px;height:22px;padding:0;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-pill);position:relative;cursor:pointer;vertical-align:middle;box-shadow:none;transition:background .2s,border-color .2s}
input[type="checkbox"]::after{content:"";position:absolute;top:50%;left:2px;transform:translateY(-50%);width:16px;height:16px;border-radius:50%;background:var(--text-muted);transition:transform .2s,background .2s}
input[type="checkbox"]:checked{background:var(--accent);border-color:var(--accent)}
input[type="checkbox"]:checked::after{transform:translate(18px,-50%);background:var(--bg)}
input[type="checkbox"]:focus-visible{outline:none;box-shadow:var(--ring)}
input[type="checkbox"]:disabled{opacity:.45;cursor:not-allowed}

/* Database pages keep custom-styled tick checkboxes (selection), not toggles */
body.page-drivers input[type="checkbox"],body.page-teams input[type="checkbox"],body.page-tracks input[type="checkbox"],body.page-nationalities input[type="checkbox"],body.page-manufacturers input[type="checkbox"],body.page-cars input[type="checkbox"],body.page-games input[type="checkbox"]{
  width:18px!important;min-width:18px;height:18px;border-radius:4px;background:var(--surface2);border:1px solid var(--border);transition:background .15s,border-color .15s
}
body.page-drivers input[type="checkbox"]::after,body.page-teams input[type="checkbox"]::after,body.page-tracks input[type="checkbox"]::after,body.page-nationalities input[type="checkbox"]::after,body.page-manufacturers input[type="checkbox"]::after,body.page-cars input[type="checkbox"]::after,body.page-games input[type="checkbox"]::after{
  content:"";position:absolute;top:46%;left:50%;width:5px;height:9px;border:solid var(--bg);border-width:0 2px 2px 0;background:none;border-radius:0;transform:translate(-50%,-58%) rotate(45deg) scale(0);transition:transform .12s ease
}
body.page-drivers input[type="checkbox"]:checked,body.page-teams input[type="checkbox"]:checked,body.page-tracks input[type="checkbox"]:checked,body.page-nationalities input[type="checkbox"]:checked,body.page-manufacturers input[type="checkbox"]:checked,body.page-cars input[type="checkbox"]:checked,body.page-games input[type="checkbox"]:checked{background:var(--accent);border-color:var(--accent)}
body.page-drivers input[type="checkbox"]:checked::after,body.page-teams input[type="checkbox"]:checked::after,body.page-tracks input[type="checkbox"]:checked::after,body.page-nationalities input[type="checkbox"]:checked::after,body.page-manufacturers input[type="checkbox"]:checked::after,body.page-cars input[type="checkbox"]:checked::after,body.page-games input[type="checkbox"]:checked::after{
  transform:translate(-50%,-58%) rotate(45deg) scale(1)
}

/* Custom checkbox (square tick, not a toggle switch) — usable anywhere via .custom-check */
.inc-actions-bar input[type="checkbox"],input[type="checkbox"].custom-check{width:18px!important;min-width:18px;height:18px;border-radius:4px;background:var(--surface2);border:1px solid var(--border);transition:background .15s,border-color .15s}
.inc-actions-bar input[type="checkbox"]::after,input[type="checkbox"].custom-check::after{content:"";position:absolute;top:46%;left:50%;width:5px;height:9px;border:solid var(--bg);border-width:0 2px 2px 0;background:none;border-radius:0;transform:translate(-50%,-58%) rotate(45deg) scale(0);transition:transform .12s ease}
.inc-actions-bar input[type="checkbox"]:checked,input[type="checkbox"].custom-check:checked{background:var(--accent);border-color:var(--accent)}
.inc-actions-bar input[type="checkbox"]:checked::after,input[type="checkbox"].custom-check:checked::after{transform:translate(-50%,-58%) rotate(45deg) scale(1)}

/* Important / priority card — accent left-bar + subtle tint instead of a gold outline */
.card.priority,.priority-card{border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface))}

/* Buttons */
button,.btn{background:var(--accent);color:var(--bg);border:none;padding:10px 18px;border-radius:var(--radius-md);font:inherit;font-size:13.5px;font-weight:700;cursor:pointer;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;box-shadow:var(--shadow);transition:filter .15s,background .15s,transform .05s,box-shadow .15s}
button:hover,.btn:hover{background:var(--btn-hover,var(--accent2));filter:brightness(1.03)}
button:active,.btn:active{transform:translateY(1px)}
button.secondary,.btn.secondary{background:var(--surface2);color:var(--text);border:1px solid var(--border);box-shadow:none}
button.secondary:hover,.btn.secondary:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg);filter:none}
button.danger{background:var(--red);color:#fff}button.danger:hover{background:#c94a4a;filter:none}
button:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}

/* Tables — minimal lines, soft hover */
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{padding:11px 14px;text-align:left;vertical-align:middle}
th{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--text-muted);font-weight:600;white-space:nowrap;border-bottom:1px solid var(--border)}
td{border-bottom:1px solid var(--hairline)}
tbody tr:last-child td{border-bottom:none}
tbody tr{transition:background .12s}
tr:hover td{background:var(--accent-bg)}

/* Pills — pill-shaped, theme-tinted, borderless */
.pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius);font-size:11px;font-weight:600;margin:1px 2px;white-space:nowrap;line-height:1.55}
.pill.submitted{background:color-mix(in srgb,var(--text-muted) 18%,transparent);color:var(--text-muted)}
.pill.under_review{background:var(--accent-bg);color:var(--accent)}
.pill.complete,.pill.status-complete{background:color-mix(in srgb,var(--green) 16%,transparent);color:var(--green)}
.pill.probation{background:color-mix(in srgb,var(--red) 16%,transparent);color:var(--red)}
.pill.threshold{background:color-mix(in srgb,var(--amber) 16%,transparent);color:var(--amber)}
.pill.master,.pill.form,.pill.ongoing{background:color-mix(in srgb,var(--blue) 16%,transparent);color:var(--blue)}
.pill.admin{background:color-mix(in srgb,var(--amber) 16%,transparent);color:var(--amber)}
.pill.driver{background:var(--surface2);color:var(--text)}

/* Utility */
.empty{color:var(--text-muted);font-style:italic;padding:20px;text-align:center}
.error{color:var(--red);font-size:13px;margin-top:6px}
.success{color:var(--green);font-size:13px;margin-top:6px}
.hint{color:var(--text-muted);font-size:12px;margin-top:4px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}

/* Tabs */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:20px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{padding:10px 16px;font-size:13px;font-weight:600;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;flex-shrink:0;border-radius:var(--radius) var(--radius) 0 0;transition:color .15s,background .15s,border-color .15s}
.tab:hover{color:var(--text);background:var(--accent-bg)}
.tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.tab-content{display:none}.tab-content.active{display:block}
/* Shared custom-confirm dialog */
.confirm-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:1200;align-items:center;justify-content:center;padding:20px}
.confirm-overlay.active{display:flex}
.confirm-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;max-width:420px;width:100%}
.confirm-box h3{font-size:15px;margin:0 0 8px;color:var(--text);font-weight:600;text-transform:none;letter-spacing:0}
.confirm-box p{font-size:13px;color:var(--text-muted);margin:0 0 20px;line-height:1.5}
.confirm-btns{display:flex;gap:8px;justify-content:flex-end}
.confirm-btns.stacked{flex-direction:column}
.confirm-btns button{width:auto;font-size:12px;padding:8px 18px;border-radius:var(--radius);border:1px solid var(--border);cursor:pointer;font-weight:600;transition:all .15s}
.confirm-btns.stacked button{width:100%;text-align:center}
.confirm-btns .cb-cancel{background:var(--surface2);color:var(--text-muted)}
.confirm-btns .cb-cancel:hover{border-color:var(--text-muted);color:var(--text)}
.confirm-btns .cb-danger{background:rgba(224,90,90,.15);color:#e05a5a;border-color:rgba(224,90,90,.3)}
.confirm-btns .cb-danger:hover{background:#e05a5a;color:#fff;border-color:#e05a5a}
.confirm-btns .cb-primary{background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent);border-color:var(--accent)}
.confirm-btns .cb-primary:hover{background:var(--accent);color:var(--bg)}

/* Shared video player modal + trigger button */
.vidm-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:1300;align-items:center;justify-content:center;padding:24px}
.vidm-overlay.active{display:flex}
.vidm-box{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;max-width:880px;width:100%}
.vidm-box video,.vidm-box iframe{width:100%;max-height:75vh;aspect-ratio:16/9;border:0;border-radius:6px;background:#000;display:block}
.vidm-close{position:absolute;top:-14px;right:-14px;width:34px;height:34px;border-radius:50%;background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}
.vidm-close:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}
.vidm-btn{display:inline-flex;align-items:center;gap:5px;background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:var(--radius);font-size:11px;font-weight:600;padding:4px 10px;cursor:pointer;text-decoration:none;white-space:nowrap}
.vidm-btn:hover{background:var(--accent);color:var(--bg)}

/* Custom scrollbar for custom dropdown lists (searchable selects, multi-selects) */
.cust-scroll,.ss-list,.search-dd{scrollbar-width:thin;scrollbar-color:var(--border) transparent}
.cust-scroll::-webkit-scrollbar,.ss-list::-webkit-scrollbar,.search-dd::-webkit-scrollbar{width:9px;height:9px}
.cust-scroll::-webkit-scrollbar-track,.ss-list::-webkit-scrollbar-track,.search-dd::-webkit-scrollbar-track{background:transparent}
.cust-scroll::-webkit-scrollbar-thumb,.ss-list::-webkit-scrollbar-thumb,.search-dd::-webkit-scrollbar-thumb{background:var(--border);border-radius:5px;border:2px solid var(--surface)}
.cust-scroll::-webkit-scrollbar-thumb:hover,.ss-list::-webkit-scrollbar-thumb:hover,.search-dd::-webkit-scrollbar-thumb:hover{background:var(--accent)}
/* Custom-styled select (native select with appearance reset + caret) */
.csel{appearance:none;-webkit-appearance:none;width:100%;box-sizing:border-box;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:9px 32px 9px 12px;font:inherit;font-size:13px;cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' fill='none' stroke='%23999' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 11px center;background-size:11px}
.csel:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}
.csel:focus{outline:none;border-color:var(--accent)}

/* Video submission widget (method chooser + custom upload button + processing window) */
.vid-method{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:10px}
.vid-method button{background:var(--surface2);color:var(--text-muted);border:none;padding:6px 16px;font-size:12px;cursor:pointer;font-weight:600;transition:background .15s,color .15s}
.vid-method button.active{background:var(--accent);color:var(--bg)}
.vid-upload-btn{display:inline-flex;align-items:center;gap:7px;background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent);border:1px dashed color-mix(in srgb,var(--accent) 50%,transparent);border-radius:var(--radius);padding:10px 18px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}
.vid-upload-btn:hover{background:var(--accent);color:var(--bg);border-style:solid}
.vid-proc-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.82);z-index:1400;align-items:center;justify-content:center;padding:20px}
.vid-proc-overlay.active{display:flex}
.vid-proc-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:30px 40px;text-align:center;max-width:340px}
.vid-proc-box .vid-spinner{width:40px;height:40px;border:4px solid var(--border);border-top-color:var(--accent);border-radius:50%;margin:0 auto 16px;animation:vidspin .8s linear infinite}
.vid-proc-box .t{font-weight:600;color:var(--text);margin-bottom:4px}
.vid-proc-box .s{font-size:12px;color:var(--text-muted)}
@keyframes vidspin{to{transform:rotate(360deg)}}

/* Home upcoming-events calendar */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-dow{margin-bottom:4px}
.cal-dow-lbl{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);text-align:center;font-weight:600;padding:2px}
.cal-cell{min-height:66px;border:1px solid var(--border);border-radius:var(--radius);padding:4px;background:var(--surface);display:flex;flex-direction:column;gap:2px}
.cal-empty{background:transparent;border:none}
.cal-num{font-size:11px;color:var(--text-muted);font-weight:600}
.cal-has{background:color-mix(in srgb,var(--accent) 8%,var(--surface));border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}
.cal-today{box-shadow:inset 0 0 0 1px var(--accent)}
.cal-today .cal-num{color:var(--accent)}
.cal-evs{display:flex;flex-direction:column;gap:2px}
.cal-ev{font-size:10px;background:color-mix(in srgb,var(--accent) 16%,var(--surface));color:var(--accent);border-radius:3px;padding:2px 4px;text-decoration:none;white-space:normal;line-height:1.2;word-break:break-word;display:block}
/* Applied time-penalty total — cross out / dim the whole row */
tr.tp-applied td:not(:last-child){text-decoration:line-through;opacity:.55}
.cal-more{font-size:9px;color:var(--text-muted)}
@media(max-width:600px){.cal-cell{min-height:46px}.cal-ev{display:none}.cal-has::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent);align-self:center}}
/* iRating column-header discipline dropdown — the <th> title itself is the dropdown.
   Fixed width + appearance:none (custom caret) so changing discipline never reflows the table. */
.ir-col-th{padding-top:4px;padding-bottom:4px}
.ir-col-sel{appearance:none;-webkit-appearance:none;box-sizing:border-box;width:104px;font:inherit;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text);background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:4px 22px 4px 8px;cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' fill='none' stroke='%23999' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 7px center;background-size:9px;transition:border-color .15s,background-color .15s}
.ir-col-sel:hover{border-color:var(--accent);background-color:var(--surface)}
.ir-col-sel:focus{outline:none;border-color:var(--accent)}
.driver-pills{display:flex;flex-wrap:wrap;gap:4px}

/* Modal */
/* Modals sit below the fixed navbar (top padding clears it) so the bar stays visible */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:50;align-items:center;justify-content:center;padding:86px 20px 24px}
.modal-overlay.active{display:flex}
.modal-card{background:var(--surface);border-radius:var(--radius);padding:24px;max-width:600px;width:100%;max-height:calc(100vh - 110px);overflow-y:auto;box-shadow:var(--shadow-lg)}

/* Color picker swatch */
.color-swatch{width:36px;height:36px;border-radius:var(--radius-md);border:2px solid var(--border);cursor:pointer;position:relative;overflow:hidden;flex-shrink:0}
.color-swatch:hover{border-color:var(--text-muted)}
.color-swatch input[type="color"]{position:absolute;inset:-4px;width:calc(100% + 8px);height:calc(100% + 8px);cursor:pointer;opacity:0}

/* Portal pages — a touch more polish */
body.portal{background:radial-gradient(1100px 520px at 50% -220px,color-mix(in srgb,var(--accent) 7%,var(--bg)),var(--bg) 62%) fixed}
body.portal main{max-width:1120px}
body.portal .card{box-shadow:var(--shadow-md)}
body.portal .feature-card,body.portal .champ-card{transition:transform .18s ease,box-shadow .18s ease}
body.portal .feature-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}

/* Mobile-only nav top (account + user) — hidden on desktop */
.mobile-nav-top{display:none}

/* Mobile hamburger */
.nav-hamburger{display:none;background:none;border:1px solid var(--border);color:var(--text);cursor:pointer;padding:6px;border-radius:var(--radius);margin-left:auto;flex-shrink:0;width:38px;height:38px;align-items:center;justify-content:center;transition:background .2s,border-color .2s}
.nav-hamburger:hover{border-color:var(--text-muted)}
.nav-hamburger:focus{outline:none}
.nav-hamburger svg{width:22px;height:22px;display:block}

/* Responsive */
@media(max-width:768px){
  /* Public pages basic mobile */
  header.topbar{height:auto;padding:10px 12px;gap:8px;flex-wrap:wrap}
  header.topbar h1{font-size:14px}
  header.topbar nav a{font-size:11px;padding:5px 10px}

  /* Admin fixed navbar mobile — logo left, hamburger right, fullscreen overlay nav */
  body.has-topbar header.topbar{height:56px;padding:0 14px;flex-wrap:nowrap;position:fixed}
  body.has-topbar{padding-top:56px}
  body.has-topbar header.topbar .tb-logo h1{font-size:14px}
  body.has-topbar header.topbar .tb-logo img{height:32px}
  body.has-topbar header.topbar nav{display:none!important}
  body.has-topbar header.topbar nav.mobile-open{display:flex!important;position:fixed;top:56px;left:0;right:0;height:calc(100vh - 56px);background:var(--bg,#0b121d);backdrop-filter:none;-webkit-backdrop-filter:none;flex-direction:column;padding:16px 20px;margin:0;gap:0;overflow-y:auto;z-index:999}
  body.has-topbar header.topbar nav a{font-family:var(--font-heading);font-size:15px;padding:14px 16px;border-radius:var(--radius);color:var(--nav-text,var(--text-muted));border:none;text-transform:uppercase;font-weight:500}
  body.has-topbar header.topbar nav a:hover,body.has-topbar header.topbar nav a.active{color:var(--accent);background:var(--nav-btn-hover,rgba(210,178,110,.06))}
  body.has-topbar header.topbar nav .nav-divider{height:1px;background:var(--border);margin:10px 0}
  body.has-topbar .nav-hamburger{display:flex;align-items:center;justify-content:center;background:none;border-color:var(--border);color:var(--text)}
  body.has-topbar .nav-hamburger.active{background:var(--surface2);border-color:var(--accent);color:var(--accent)}
  body.has-topbar .mobile-nav-top{display:block}
  body.has-topbar header.topbar .user{display:none}
  /* Mobile user inside nav */
  body.has-topbar .mobile-user{display:flex!important;align-items:center;gap:10px;padding:14px 16px;color:var(--text-muted);font-size:12px}
  body.has-topbar .mobile-user button{width:auto;font-size:12px;padding:6px 14px}
  body.has-topbar .nav-dd{display:flex;flex-direction:column}
  body.has-topbar .nav-dd-btn{display:flex!important;width:100%;text-align:left;padding:14px 16px!important;font-size:15px!important;font-family:var(--font-heading)!important;font-weight:500!important;text-transform:uppercase!important;color:var(--nav-text,var(--text-muted))!important;background:none!important;border:none!important;border-radius:var(--radius)!important;justify-content:space-between;align-items:center}
  body.has-topbar .nav-dd-btn:hover{color:var(--accent)!important;background:var(--nav-btn-hover,rgba(210,178,110,.06))!important}
  body.has-topbar .nav-dd-btn .dd-arrow{display:none}
  body.has-topbar .nav-dd-btn::after{content:"▸";font-size:12px;transition:transform .2s}
  body.has-topbar .nav-dd.open .nav-dd-btn::after{transform:rotate(90deg)}
  body.has-topbar .nav-dd-menu{display:none!important;flex-direction:column;position:static!important;box-shadow:none!important;border:none!important;background:transparent!important;padding-left:0!important;min-width:0!important}
  body.has-topbar .nav-dd.open .nav-dd-menu{display:flex!important}
  body.has-topbar .nav-dd-menu a{padding:12px 16px 12px 32px!important;font-size:14px!important;text-transform:uppercase!important;font-weight:500!important;color:var(--text-muted)!important}

  /* Shared mobile layout rules */
  main{padding:16px 3%}
  h2{font-size:20px}
  .card{padding:16px}
  .champ-grid{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
  .row{flex-direction:column;gap:10px}
  .col{min-width:100%}
  .tab{padding:8px 14px;font-size:12px}
  table{font-size:12px}th,td{padding:8px 10px}
  button,.btn{padding:10px 16px;font-size:13px;width:100%}
  .modal-overlay{padding:72px 14px 16px}
  .modal-card{max-height:calc(100vh - 92px);padding:18px}
}
