/* ============================================================
   ROTAX RACE HUB — Design system per Rotax Racing Manual 2026
   Colors: Red #E22C33 (PMS 185C) · Black #000000 · White #FFFFFF
   RMC codes: Grand Finals red · International #342C90 · Regional #8151AF
   Secondary green #46813D — BUTTONS ONLY, never backgrounds
   Headlines: PP Monument Extended, ALL CAPS · Copy: Flama
   Clean layout — no stripe decorations
   ============================================================ */

@font-face { font-family:'Monument'; src:url('../assets/fonts/PPMonumentExtended-Heavy.woff2') format('woff2'); font-weight:800; font-display:swap; }
@font-face { font-family:'Monument'; src:url('../assets/fonts/PPMonumentExtended-Black.woff2') format('woff2'); font-weight:900; font-display:swap; }
@font-face { font-family:'Monument'; src:url('../assets/fonts/PPMonumentExtended-Bold.woff2') format('woff2'); font-weight:700; font-display:swap; }
@font-face { font-family:'Flama'; src:url('../assets/fonts/Flama-Light2.woff2') format('woff2'); font-weight:300; font-display:swap; }
@font-face { font-family:'Flama'; src:url('../assets/fonts/Flama-Basic2.woff2') format('woff2'); font-weight:400; font-display:swap; }
@font-face { font-family:'Flama'; src:url('../assets/fonts/Flama-Medium2.woff2') format('woff2'); font-weight:500; font-display:swap; }
@font-face { font-family:'Flama'; src:url('../assets/fonts/Flama-Semibold2.woff2') format('woff2'); font-weight:600; font-display:swap; }
@font-face { font-family:'Flama'; src:url('../assets/fonts/Flama-Bold2.woff2') format('woff2'); font-weight:700; font-display:swap; }
@font-face { font-family:'Flama'; src:url('../assets/fonts/Flama-Black2.woff2') format('woff2'); font-weight:900; font-display:swap; }

:root{
  --red:#E22C33;
  --red-dark:#B91F26;
  --black:#000000;
  --ink:#101012;
  --ink-2:#1A1A1E;
  --ink-3:#242429;
  --white:#FFFFFF;
  --paper:#F5F4F2;
  --grey-1:#ECEBE8;
  --grey-2:#D8D6D2;
  --grey-3:#9D9B96;
  --grey-4:#6B6A66;
  --blue:#342C90;      /* RMC international */
  --purple:#8151AF;    /* RMC regional */
  --green:#46813D;     /* buttons only! */
  --amber:#C7820B;
  --display:'Monument','Arial Black',sans-serif;
  --copy:'Flama','Helvetica Neue',Arial,sans-serif;
  --shadow:0 10px 30px rgba(0,0,0,.12);
  --radius:4px;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{font-size:16px;}
body{font-family:var(--copy);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;}
button{font-family:var(--copy);cursor:pointer;}
input,select,textarea{font-family:var(--copy);font-size:.95rem;}
a{color:inherit;}

h1,h2,h3,.display{font-family:var(--display);text-transform:uppercase;letter-spacing:.01em;line-height:1.04;}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.5rem;border:none;border-radius:var(--radius);
  padding:.65rem 1.25rem;font-weight:600;font-size:.9rem;letter-spacing:.02em;transition:all .15s ease;text-decoration:none;}
.btn--red{background:var(--red);color:var(--white);}
.btn--red:hover{background:var(--red-dark);}
.btn--black{background:var(--black);color:var(--white);}
.btn--black:hover{background:var(--ink-3);}
.btn--ghost{background:transparent;color:var(--ink);border:1.5px solid var(--grey-2);}
.btn--ghost:hover{border-color:var(--ink);}
.btn--ghost-w{background:transparent;color:var(--white);border:1.5px solid rgba(255,255,255,.35);}
.btn--ghost-w:hover{border-color:var(--white);}
.btn--green{background:var(--green);color:var(--white);} /* secondary: buttons only */
.btn--green:hover{filter:brightness(1.1);}
/* participant-list quick actions — clear hover affordance */
.btn--pop{transition:transform .08s ease, box-shadow .12s ease, filter .12s ease;}
.btn--pop:hover:not(:disabled){filter:brightness(1.12);transform:translateY(-1px);box-shadow:0 3px 10px rgba(40,167,69,.35);}
.btn--rm{background:transparent;color:var(--red);border:1.5px solid var(--grey-2);font-weight:800;transition:background .12s ease,color .12s ease,border-color .12s ease,transform .08s ease;}
.btn--rm:hover{background:var(--red);color:#fff;border-color:var(--red);transform:translateY(-1px);}
.btn--blue{background:var(--blue);color:var(--white);}
.btn--purple{background:var(--purple);color:var(--white);}
.btn--sm{padding:.35rem .75rem;font-size:.8rem;}
.btn--lg{padding:.9rem 1.8rem;font-size:1rem;}
.btn:disabled{opacity:.45;cursor:not-allowed;}

/* ---------- chips / badges ---------- */
.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.18rem .6rem;border-radius:999px;
  font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;}
.chip--red{background:var(--red);color:#fff;}
.chip--blue{background:var(--blue);color:#fff;}
.chip--purple{background:var(--purple);color:#fff;}
.chip--green{background:#E2EFDF;color:var(--green);}
.chip--greendark{background:var(--green);color:#fff;}
.chip--solidgreen{background:var(--green);color:#fff;}
.chip--grey{background:var(--grey-1);color:var(--grey-4);}
.chip--dark{background:var(--ink);color:#fff;}
.chip--amber{background:#F6EBD4;color:var(--amber);}
.chip--redsoft{background:#FBE3E4;color:var(--red);}
.chip--outline{border:1px solid var(--grey-2);color:var(--grey-4);}

/* ============================================================
   ENTRY SCREEN — white, per demo mockup
   ============================================================ */
.entry{min-height:100vh;background:var(--white);display:flex;justify-content:center;}
/* split login: functional content left, brand photo right */
.entry--split{display:grid;grid-template-columns:1fr 1fr;justify-content:stretch;}
.entry__left{display:flex;justify-content:center;align-items:flex-start;min-height:100vh;overflow-y:auto;}
.entry__right{min-height:100vh;background-size:cover;background-repeat:no-repeat;background-position:30% 58%;}
@media(max-width:860px){ .entry--split{grid-template-columns:1fr;} .entry__right{display:none;} }
.entry__in{width:100%;max-width:620px;padding:3rem 1.8rem 2.5rem;display:flex;flex-direction:column;}
.entry__logo{width:175px;margin-bottom:3.2rem;align-self:flex-start;}
.entry__kicker{font-weight:700;letter-spacing:.2em;color:var(--grey-4);font-size:.88rem;text-transform:uppercase;}
.entry__headline{font-family:var(--display);font-weight:800;font-size:clamp(3.1rem,8.5vw,4.6rem);line-height:1.04;color:var(--black);margin:.7rem 0 1.5rem;text-transform:uppercase;}
.entry__sub{font-size:1.18rem;font-weight:600;color:var(--grey-4);line-height:1.5;margin-bottom:2.4rem;max-width:35rem;}
.entry-row{display:flex;align-items:center;gap:1.3rem;background:none;border:none;padding:1.1rem 0;text-align:left;cursor:pointer;width:100%;}
.entry-row:hover .entry-row__name{color:var(--red);}
.entry-row__icon{width:66px;height:66px;border-radius:16px;background:var(--black);display:flex;align-items:center;justify-content:center;flex:none;}
.entry-row__icon svg{width:30px;height:30px;}
.entry-row__txt{min-width:0;}
.entry-row__name{display:block;font-weight:800;font-size:1.45rem;color:var(--black);line-height:1.15;}
.entry-row__desc{display:block;font-size:1.02rem;color:var(--grey-4);margin-top:.2rem;}
.entry-row__chev{margin-left:auto;color:var(--grey-3);flex:none;}
/* enlarged primary (driver) entry */
.entry-row--lg{padding:1.35rem .2rem;border-bottom:1px solid var(--grey-1);}
.entry-row--lg .entry-row__icon{width:76px;height:76px;border-radius:18px;}
.entry-row--lg .entry-row__icon svg{width:35px;height:35px;}
.entry-row--lg .entry-row__name{font-size:1.7rem;}
.entry-row--lg .entry-row__desc{font-size:1.06rem;}
/* the four organisational roles in one compact row */
.entry__orgsec{font-weight:700;letter-spacing:.18em;color:var(--grey-3);font-size:.74rem;text-transform:uppercase;margin:1.4rem 0 .7rem;}
.entry-roles{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;}
.role-tile{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;padding:.85rem .8rem 0.9rem;background:none;border:1.5px solid var(--grey-2);border-radius:12px;cursor:pointer;text-align:left;transition:border-color .12s ease,transform .08s ease;}
.role-tile:hover{border-color:var(--black);transform:translateY(-1px);}
.role-tile:hover .role-tile__name{color:var(--red);}
.role-tile__icon{width:40px;height:40px;border-radius:11px;background:var(--black);display:flex;align-items:center;justify-content:center;}
.role-tile__icon svg{width:21px;height:21px;}
.role-tile__name{font-weight:800;font-size:.96rem;color:var(--black);line-height:1.2;}
@media(max-width:560px){.entry-roles{grid-template-columns:repeat(2,1fr);}}
.entry__footer{margin-top:auto;padding-top:3rem;display:flex;align-items:center;gap:1.5rem;}
.entry__domain{font-weight:700;letter-spacing:.2em;color:var(--grey-4);font-size:.85rem;text-transform:uppercase;}
.entry__footer button{background:none;border:none;color:var(--grey-3);font-size:.78rem;text-decoration:underline;margin-left:auto;}

/* ============================================================
   APP SHELL (organizer / scrutineer = sidebar, driver = topbar)
   ============================================================ */
.shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh;}
.side{background:var(--black);color:var(--white);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;}
.side__logo{padding:1.4rem 1.3rem 1.1rem;}
.side__logo img{width:140px;display:block;}
.side__role{padding:0 1.3rem .9rem;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--grey-4);font-weight:700;border-bottom:1px solid var(--ink-3);margin-bottom:.6rem;}
.side nav{display:flex;flex-direction:column;padding:.4rem .7rem;gap:2px;flex:1;}
.side nav .navsec{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--grey-4);font-weight:700;padding:1rem .6rem .35rem;}
.navlink{display:flex;align-items:center;gap:.6rem;padding:.55rem .6rem;border-radius:4px;color:var(--grey-2);
  background:none;border:none;font-size:.88rem;font-weight:500;text-align:left;width:100%;}
.navlink:hover{background:var(--ink-2);color:var(--white);}
.navlink.active{background:var(--red);color:var(--white);font-weight:600;}
.navlink .ic{width:18px;text-align:center;opacity:.9;}
.navlink .count{margin-left:auto;background:var(--ink-3);border-radius:999px;padding:.05rem .45rem;font-size:.7rem;}
.navlink.active .count{background:rgba(0,0,0,.25);}
.side__exit{margin:1rem .7rem 1.2rem;}
.main{min-width:0;}
.topbar{background:var(--white);border-bottom:1px solid var(--grey-1);padding:.85rem 1.8rem;display:flex;align-items:center;gap:1rem;position:sticky;top:0;z-index:40;}
.topbar h1{font-size:1.05rem;font-weight:800;}
.topbar .spacer{flex:1;}
.evt-select{display:flex;align-items:center;gap:.55rem;background:var(--paper);border:1px solid var(--grey-2);border-radius:4px;padding:.4rem .7rem;}
.evt-select select{border:none;background:none;font-weight:600;outline:none;max-width:260px;}
.evt-select .dot{width:10px;height:10px;border-radius:2px;}
.content{padding:1.8rem;max-width:1280px;}

/* ---------- common blocks ---------- */
.pagehead{display:flex;align-items:flex-end;gap:1rem;margin-bottom:1.4rem;flex-wrap:wrap;}
.pagehead h2{font-size:1.55rem;font-weight:900;}
.pagehead .sub{color:var(--grey-4);font-size:.9rem;margin-top:.3rem;}
.pagehead .actions{margin-left:auto;display:flex;gap:.6rem;flex-wrap:wrap;}
.cards{display:grid;gap:1rem;}
.cards>*{min-width:0;}
.cards--4{grid-template-columns:repeat(4,1fr);}
.cards--3{grid-template-columns:repeat(3,1fr);}
.cards--2{grid-template-columns:repeat(2,1fr);}
@media(max-width:1100px){.cards--4{grid-template-columns:repeat(2,1fr);}.cards--3{grid-template-columns:repeat(2,1fr);}}
@media(max-width:700px){.cards--4,.cards--3,.cards--2{grid-template-columns:1fr;}}
.card{background:var(--white);border:1px solid var(--grey-1);border-radius:6px;padding:1.2rem;}
.card h3{font-size:.95rem;margin-bottom:.8rem;}
.kpi{background:var(--white);border:1px solid var(--grey-1);border-radius:6px;padding:1.1rem 1.2rem;position:relative;overflow:hidden;}
.kpi__label{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--grey-4);font-weight:600;}
.kpi__value{font-family:var(--display);font-size:1.9rem;font-weight:800;margin-top:.35rem;}
.kpi__hint{font-size:.78rem;color:var(--grey-4);margin-top:.25rem;}
.kpi--dark{background:var(--black);color:var(--white);border-color:var(--black);}
.kpi--dark .kpi__label{color:var(--grey-3);}

/* ---------- tables ---------- */
.tablewrap{background:var(--white);border:1px solid var(--grey-1);border-radius:6px;overflow:auto;}
table.tbl{width:100%;border-collapse:collapse;font-size:.88rem;}
.tbl th{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--grey-4);text-align:left;
  padding:.7rem .9rem;border-bottom:2px solid var(--grey-1);background:#FAFAF8;white-space:nowrap;}
.tbl td{padding:.65rem .9rem;border-bottom:1px solid var(--grey-1);vertical-align:middle;}
.tbl tr:last-child td{border-bottom:none;}
.tbl tr.rowlink{cursor:pointer;}
.tbl tr.rowlink:hover{background:#FBF6F4;}
.tbl .num{font-family:var(--display);font-weight:800;font-size:.82rem;}
.avatar{border-radius:50%;object-fit:cover;background:var(--grey-1);vertical-align:middle;flex:none;}
.avatar--ini{display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:var(--white);
  font-family:var(--display);font-weight:800;letter-spacing:.02em;}
.startnum{display:inline-flex;align-items:center;justify-content:center;min-width:38px;padding:.15rem .4rem;
  border-radius:4px;background:var(--ink);color:var(--white);font-family:var(--display);font-weight:800;font-size:.8rem;}
.startnum--green{background:var(--green);} /* signed status = green number */
.startnum--red{background:var(--red);}

/* ---------- forms ---------- */
.field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.9rem;min-width:0;}
.field label{font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--grey-4);}
.field input,.field select,.field textarea{border:1.5px solid var(--grey-2);border-radius:4px;padding:.55rem .7rem;background:var(--white);outline:none;width:100%;min-width:0;box-sizing:border-box;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink);}
.field .err{color:var(--red);font-size:.75rem;font-weight:600;}
.field input.invalid{border-color:var(--red);background:#FFF8F8;}
.fieldrow{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;}
.fieldrow>*{min-width:0;}
.fieldrow--3{grid-template-columns:repeat(3,1fr);}
@media(max-width:700px){.fieldrow,.fieldrow--3{grid-template-columns:1fr;}}
.searchbar{display:flex;gap:.6rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap;}
.searchbar input[type=text],.searchbar input[type=search]{flex:1;min-width:220px;border:1.5px solid var(--grey-2);border-radius:4px;padding:.6rem .8rem;outline:none;background:var(--white);}
.searchbar input:focus{border-color:var(--ink);}
.searchbar select{border:1.5px solid var(--grey-2);border-radius:4px;padding:.55rem .6rem;background:var(--white);}

/* ---------- modal ---------- */
.modal-back{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:4vh 1rem;overflow-y:auto;}
.modal{background:var(--white);border-radius:8px;width:100%;max-width:640px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.4);}
.modal--lg{max-width:860px;}
.modal__head{display:flex;align-items:center;padding:1.2rem 1.4rem .6rem;}
.modal__head h3{font-size:1.15rem;font-weight:900;}
.modal__close{margin-left:auto;background:none;border:none;font-size:1.4rem;line-height:1;color:var(--grey-4);}
.modal__body{padding:.8rem 1.4rem 1.4rem;}
.modal__foot{display:flex;gap:.6rem;justify-content:flex-end;padding:1rem 1.4rem;border-top:1px solid var(--grey-1);background:#FAFAF8;}

/* ---------- toast ---------- */
#toast-root{position:fixed;bottom:1.4rem;right:1.4rem;z-index:200;display:flex;flex-direction:column;gap:.6rem;}
.toast{background:var(--black);color:var(--white);padding:.8rem 1.1rem;border-radius:6px;border-left:4px solid var(--red);
  font-size:.88rem;box-shadow:var(--shadow);animation:slideIn .25s ease;max-width:340px;}
.toast--green{border-left-color:var(--green);}
@keyframes slideIn{from{transform:translateX(30px);opacity:0;}to{transform:none;opacity:1;}}

/* ---------- wizard ---------- */
.wizsteps{display:flex;gap:.4rem;margin-bottom:1.2rem;}
.wizsteps .ws{flex:1;text-align:center;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  padding:.5rem .3rem;background:var(--grey-1);color:var(--grey-4);border-radius:4px;}
.wizsteps .ws.on{background:var(--black);color:var(--white);}
.wizsteps .ws.done{background:var(--green);color:var(--white);}

/* ---------- event cards ---------- */
.evtcard{background:var(--white);border:1px solid var(--grey-1);border-radius:8px;overflow:hidden;display:flex;flex-direction:column;}
.evtcard__photo{height:120px;background-size:cover;background-position:center;position:relative;}
.evtcard__body{padding:1.1rem 1.2rem 1.2rem;display:flex;flex-direction:column;gap:.5rem;flex:1;}
.evtcard__name{font-family:var(--display);font-weight:800;font-size:1.02rem;text-transform:uppercase;}
.evtcard__meta{font-size:.82rem;color:var(--grey-4);line-height:1.5;}
.evtcard__foot{display:flex;gap:.5rem;align-items:center;margin-top:auto;padding-top:.7rem;flex-wrap:wrap;}

/* ---------- timetable ---------- */
.tt-day{font-family:var(--display);font-weight:800;font-size:.92rem;text-transform:uppercase;margin:1.3rem 0 .6rem;}
.tt-row{cursor:grab;display:grid;grid-template-columns:128px 1fr 150px 200px;gap:.8rem;align-items:center;background:var(--white);
  border:1px solid var(--grey-1);border-left:4px solid var(--ink);border-radius:4px;padding:.6rem .9rem;margin-bottom:.45rem;font-size:.88rem;}
.tt-row .t{font-family:var(--display);font-weight:800;font-size:.78rem;white-space:nowrap;overflow:visible;}
.tt-row--mini{grid-template-columns:auto 1fr auto auto;gap:.6rem;}
.tt-row--mini span:last-child{white-space:nowrap;}
.tt-row--locked{cursor:default;}
.tt-end{font-family:var(--copy);font-size:.64em;color:var(--grey-3);font-weight:500;margin-left:.2em;}
.tt-row--live{border-left-color:var(--red);background:#FFF7F7;}
.tt-row--mine{border-left-color:var(--red);background:#FFF7F7;}
@media(max-width:700px){.tt-row{grid-template-columns:104px 1fr;}.tt-row .hide-m{display:none;}}
/* editable timetable rows (race wizard) */
.ttedit{display:grid;grid-template-columns:20px 122px 64px minmax(150px,1fr) 140px 130px 32px;gap:.6rem;align-items:center;background:var(--white);
  border:1px solid var(--grey-1);border-radius:4px;padding:.45rem .6rem;margin-bottom:.4rem;}
.ttedit__mode{display:flex;flex-direction:column;gap:.3rem;min-width:0;}
.ttedit input,.ttedit select{border:1.5px solid var(--grey-2);border-radius:4px;padding:.42rem .5rem;width:100%;outline:none;background:var(--white);}
.ttedit input[type=time]{min-width:148px;font-variant-numeric:tabular-nums;}
.ttedit input:focus,.ttedit select:focus{border-color:var(--ink);}
.draghandle{cursor:grab;color:var(--grey-3);user-select:none;font-weight:700;letter-spacing:-1px;text-align:center;}
.draghandle:active{cursor:grabbing;color:var(--ink);}
.ttedit .del{background:none;border:none;color:var(--grey-3);font-size:1.15rem;line-height:1;}
.ttedit .del:hover{color:var(--red);}
@media(max-width:760px){.ttedit{grid-template-columns:20px 122px 64px 1fr 36px;}.ttedit .hide-m{display:none;}}

/* ---------- messenger ---------- */
.msg-row{background:var(--white);border:1px solid var(--grey-1);border-radius:6px;padding:.9rem 1.1rem;margin-bottom:.6rem;}
.msg-row__top{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;}
.msg-row__subject{font-weight:700;}
.msg-row__meta{font-size:.75rem;color:var(--grey-4);margin-left:auto;white-space:nowrap;}
.msg-row__body{font-size:.86rem;color:var(--grey-4);margin-top:.4rem;line-height:1.5;}
.msg-row--unread{border-left:4px solid var(--red);}

/* ---------- scrutineer dark theme ---------- */
.dark .main{background:var(--ink);color:var(--white);}
.dark .topbar{background:var(--ink-2);border-color:var(--ink-3);color:var(--white);}
.dark .card,.dark .kpi{background:var(--ink-2);border-color:var(--ink-3);color:var(--white);}
.dark .kpi__label{color:var(--grey-3);}
.dark .tablewrap{background:var(--ink-2);border-color:var(--ink-3);}
.dark .tbl th{background:var(--ink-3);color:var(--grey-3);border-color:var(--ink-3);}
.dark .tbl td{border-color:var(--ink-3);}
.dark .tbl tr.rowlink:hover{background:rgba(226,44,51,.08);}
.dark .searchbar input,.dark .searchbar select{background:var(--ink-2);border-color:var(--ink-3);color:var(--white);}
.dark .field input,.dark .field select,.dark .field textarea{background:var(--ink-2);border-color:var(--ink-3);color:var(--white);}
.dark .field label{color:var(--grey-3);}
.dark .btn--ghost{color:var(--white);border-color:var(--ink-3);}
.dark .pagehead .sub{color:var(--grey-3);}
.dark .msg-row{background:var(--ink-2);border-color:var(--ink-3);}
.dark .chip--grey{background:var(--ink-3);color:var(--grey-3);}

/* component check list */
.comp-row{display:flex;align-items:center;gap:.9rem;background:var(--white);border:1px solid var(--grey-1);
  border-radius:6px;padding:.8rem 1rem;margin-bottom:.5rem;}
.comp-row__type{width:130px;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--grey-4);}
.comp-row__code{font-family:var(--display);font-weight:800;font-size:.88rem;letter-spacing:.03em;}
.comp-row__code.missing{color:var(--grey-4);font-family:var(--copy);font-weight:500;font-style:italic;}
.comp-row .stat{margin-left:auto;display:flex;gap:.4rem;align-items:center;}
.scan-box{display:flex;gap:.6rem;margin:.8rem 0 1.1rem;align-items:stretch;}
.scan-box input{flex:1 1 auto;min-width:0;background:var(--white);border:2px solid var(--grey-2);border-radius:6px;color:var(--ink);
  padding:.85rem 1rem;font-family:var(--display);font-weight:800;font-size:1rem;letter-spacing:.06em;outline:none;text-transform:uppercase;}
.scan-box input::placeholder{font-size:.82rem;letter-spacing:.04em;}
.scan-box input:focus{border-color:var(--red);}
.scan-box .btn{flex:0 0 auto;white-space:nowrap;}
/* race-control incident driver search */
.rc-results{display:flex;flex-direction:column;border:1px solid var(--grey-1);border-radius:8px;overflow:hidden;max-height:230px;overflow-y:auto;margin-top:.4rem;}
.rc-pick{display:flex;align-items:center;gap:.5rem;padding:.5rem .7rem;background:var(--white);border:none;border-bottom:1px solid var(--grey-1);text-align:left;cursor:pointer;font-size:.9rem;width:100%;}
.rc-pick:last-child{border-bottom:none;}
.rc-pick:hover{background:#FBF6F4;}
.dark .rc-pick{background:var(--ink-2);color:#fff;}
.dark .rc-pick:hover{background:var(--ink-3);}
/* social-media export preview */
.soc-preview{background:#f3f3f1;border-radius:8px;padding:.8rem;display:flex;justify-content:center;}
.soc-preview svg{width:100%;height:auto;display:block;max-height:70vh;box-shadow:0 6px 24px rgba(0,0,0,.18);}
.soc-preview.soc-story svg,.soc-preview.soc-post svg{max-width:360px;}
.soc-preview.soc-square svg{max-width:440px;}
.soc-preview.soc-landscape svg{max-width:100%;}
.scan-hint{font-size:.75rem;color:var(--grey-4);margin-bottom:1rem;line-height:1.6;}
.scan-hint code{background:var(--grey-1);padding:.1rem .4rem;border-radius:3px;font-size:.72rem;}

/* driver topbar layout */
.dshell{min-height:100vh;display:flex;flex-direction:column;}
.dnav{background:var(--black);color:var(--white);display:flex;align-items:center;gap:.4rem;padding:.7rem 1.6rem;position:sticky;top:0;z-index:50;flex-wrap:wrap;}
.dnav img.logo{width:130px;margin-right:1.6rem;}
.dnav .navlink{width:auto;}
.dnav .spacer{flex:1;}
.dnav .me{display:flex;align-items:center;gap:.6rem;font-size:.85rem;}
.dmain{flex:1;}
.dhero{background:var(--black);color:var(--white);position:relative;overflow:hidden;}
.dhero__in{max-width:1100px;margin:0 auto;padding:2.6rem 1.6rem 2.2rem;position:relative;z-index:2;}
.dhero h2{font-size:2rem;font-weight:900;}
.dhero .sub{color:var(--grey-3);margin-top:.5rem;max-width:38rem;line-height:1.5;}
.dcontent{max-width:1100px;margin:0 auto;padding:1.8rem 1.6rem 3rem;width:100%;}

/* registration category cards */
.catcard{border:2px solid var(--grey-1);border-radius:8px;background:var(--white);padding:1rem;display:flex;flex-direction:column;gap:.5rem;cursor:pointer;transition:border-color .15s;position:relative;}
.catcard:hover{border-color:var(--grey-3);}
.catcard.sel{border-color:var(--red);}
.catcard img{height:84px;object-fit:contain;align-self:center;}
.catcard b{font-family:var(--display);font-size:.85rem;text-transform:uppercase;}
.catcard .cap{font-size:.75rem;color:var(--grey-4);}
.capbar{height:6px;background:var(--grey-1);border-radius:3px;overflow:hidden;}
.capbar i{display:block;height:100%;background:var(--ink);}
.capbar i.warn{background:var(--red);}

/* signature pad */
.signbox{border:2px dashed var(--grey-2);border-radius:6px;padding:1.1rem;background:#FCFCFB;}
.signbox input{width:100%;border:none;border-bottom:2px solid var(--ink);background:none;outline:none;
  font-family:'Snell Roundhand','Brush Script MT',cursive;font-size:1.6rem;padding:.3rem .2rem;}

/* doc rows */
.doc-row{display:flex;align-items:center;gap:.9rem;background:var(--white);border:1px solid var(--grey-1);border-radius:6px;padding:.85rem 1rem;margin-bottom:.5rem;flex-wrap:wrap;}
.doc-row .ttl{font-weight:700;}
.doc-row .meta{font-size:.78rem;color:var(--grey-4);}
.doc-row .right{margin-left:auto;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;}

/* results podium */
.podium{display:flex;gap:.7rem;align-items:flex-end;margin:1rem 0 1.4rem;}
.podium .p{flex:1;background:var(--white);border:1px solid var(--grey-1);border-radius:6px 6px 0 0;text-align:center;padding:.9rem .5rem .7rem;}
.podium .p .pos{font-family:var(--display);font-weight:900;font-size:1.5rem;}
.podium .p1{border-top:5px solid var(--red);padding-top:1.6rem;}
.podium .p2{border-top:5px solid var(--ink);}
.podium .p3{border-top:5px solid var(--grey-3);}
.podium .nm{font-weight:700;font-size:.85rem;}
.podium .tm{font-size:.75rem;color:var(--grey-4);}

/* progress steps (driver status trace) */
.trace{border-left:3px solid var(--grey-1);margin-left:.5rem;padding-left:1.2rem;}
.trace__item{position:relative;padding-bottom:1rem;font-size:.85rem;}
.trace__item::before{content:'';position:absolute;left:-1.78rem;top:.15rem;width:13px;height:13px;border-radius:50%;background:var(--grey-2);border:3px solid var(--paper);}
.trace__item.done::before{background:var(--green);}
.trace__item.red::before{background:var(--red);}
.trace__item .t{color:var(--grey-4);font-size:.75rem;}
.dark .trace{border-color:var(--ink-3);}
.dark .trace__item::before{border-color:var(--ink);}
.dark .trace__item .t{color:var(--grey-3);}

.empty{padding:2.4rem 1rem;text-align:center;color:var(--grey-4);}
.empty b{display:block;font-family:var(--display);text-transform:uppercase;font-size:.95rem;margin-bottom:.4rem;color:var(--ink);}
.dark .empty b{color:var(--white);}
.mb1{margin-bottom:1rem;}.mb2{margin-bottom:1.6rem;}.mt1{margin-top:1rem;}.mt2{margin-top:1.6rem;}
.flex{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;}
.right{margin-left:auto;}
.muted{color:var(--grey-4);font-size:.85rem;}
.dark .muted{color:var(--grey-3);}
small.hint{color:var(--grey-4);font-size:.75rem;}

/* print-ish exports */
textarea.export{width:100%;height:220px;font-family:monospace;font-size:.75rem;border:1.5px solid var(--grey-2);border-radius:4px;padding:.7rem;}
