/* MDAA design system - one stylesheet for every page.
   Layout: .app > .side (menu) + .main > .bar + .content.   Public pages: .pub > .pubbar + .pubwrap. */
:root{
  --bg:#F2F5FB; --card:#fff; --ink:#0F1D3A; --muted:#5E6C84; --faint:#8A97AD; --line:#E1E7F1; --line2:#EEF2F8;
  --navy:#0B2470; --navy2:#07194F; --blue:#1D5FE0; --blue2:#174BB8; --sky:#E8F0FE; --aqua:#0FB5C9;
  --green:#12805A; --green-bg:#E4F6EE; --amber:#B26B00; --amber-bg:#FFF3DC; --red:#B42318; --red-bg:#FDE9E7;
  --r:14px; --r2:10px; --sh:0 1px 2px rgba(15,29,58,.05),0 6px 24px rgba(15,29,58,.06); --sh2:0 10px 34px rgba(15,29,58,.14);
  --side:252px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:14.5px/1.5 Inter,"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--blue);text-decoration:none} a:hover{text-decoration:underline}
:where(.content:not(.legacy),.pubwrap) :is(h1,h2,h3,h4){margin:0;line-height:1.25;color:var(--ink)}
svg.ic{width:1.15em;height:1.15em;flex:0 0 auto;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.2em}

/* ───────── app shell ───────── */
.app{display:flex;min-height:100vh}
.side{width:var(--side);flex:0 0 var(--side);background:linear-gradient(180deg,var(--navy) 0%,var(--navy2) 100%);color:#C9D6F5;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:40}
.side .brand{display:flex;align-items:center;gap:12px;padding:20px 18px 16px;color:#fff;text-decoration:none}
.side .brand img{width:46px;height:46px;border-radius:12px;background:#fff;padding:4px}
.side .brand b{display:block;font-size:15px;line-height:1.15;letter-spacing:.01em}
.side .brand small{display:block;font-size:11px;color:#9DB3EA;font-weight:500;margin-top:2px}
.side nav{padding:4px 12px 18px;flex:1}
.side .grp{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#7E97D6;padding:16px 10px 6px}
.side a.it{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:10px;color:#D3DEF8;font-weight:550;font-size:13.5px;margin:1px 0;text-decoration:none;transition:background .12s,color .12s}
.side a.it:hover{background:rgba(255,255,255,.09);color:#fff;text-decoration:none}
.side a.it.on{background:#fff;color:var(--navy);box-shadow:0 4px 14px rgba(0,0,0,.2)}
.side a.it .ic{width:18px;height:18px;opacity:.9}
.side a.it .lb{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side .badge{background:#FFB020;color:#3A2600;border-radius:999px;font-size:11px;font-weight:800;padding:1px 8px;min-width:22px;text-align:center}
.side a.it.on .badge{background:var(--navy);color:#fff}
.side .me{margin:8px 12px 14px;padding:12px;border-radius:12px;background:rgba(255,255,255,.07);display:flex;align-items:center;gap:10px}
.side .me .av{width:34px;height:34px;border-radius:50%;background:var(--aqua);color:#04232B;font-weight:800;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.side .me .nm{font-size:13px;color:#fff;font-weight:650;line-height:1.2;min-width:0}
.side .me .nm small{display:block;color:#9DB3EA;font-weight:500;font-size:11.5px}
.side .me a{margin-left:auto;color:#C9D6F5;display:flex;padding:6px;border-radius:8px} .side .me a:hover{background:rgba(255,255,255,.12);color:#fff}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.bar{height:60px;background:rgba(255,255,255,.88);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 28px;position:sticky;top:0;z-index:30}
.bar .burger{display:none;background:none;border:0;padding:6px;color:var(--ink);cursor:pointer}
.bar .crumb{font-size:12.5px;color:var(--faint);display:flex;align-items:center;gap:8px;font-weight:550} .bar .crumb b{color:var(--ink);font-weight:700}
.bar .sp{flex:1}
.bar .chip{display:inline-flex;align-items:center;gap:8px;background:var(--sky);color:var(--navy);font-weight:650;font-size:12.5px;padding:6px 12px;border-radius:999px}
.content{padding:26px 28px 70px;max-width:1240px;width:100%;margin:0 auto}
.page-head{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.page-head h1{font-size:25px;letter-spacing:-.015em}
.page-head .sub{color:var(--muted);font-size:13.5px;margin-top:3px;max-width:760px}
.page-head .act{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}
.scrim{display:none}

/* ───────── public layout (parents, results) ───────── */
.pub{min-height:100vh;background:radial-gradient(1200px 380px at 50% -120px,#DCE8FF 0%,transparent 70%),var(--bg)}
.pubbar{background:linear-gradient(90deg,var(--navy),#123596);color:#fff;display:flex;align-items:center;gap:14px;padding:12px 24px}
.pubbar img{width:48px;height:48px;border-radius:12px;background:#fff;padding:4px}
.pubbar b{font-size:16.5px;letter-spacing:.01em} .pubbar small{display:block;font-size:11.5px;color:#B7C9F4;font-weight:500}
.pubbar .sp{flex:1} .pubbar a{color:#FFE08A;font-weight:650;font-size:13px;margin-left:14px;text-decoration:none} .pubbar a:hover{text-decoration:underline}
.pubbar .who{font-size:12.5px;color:#C9D6F5}
.pubwrap{max-width:880px;margin:0 auto;padding:28px 18px 80px}
.pubwrap.narrow{max-width:520px}

/* ───────── components ───────── */
.card,.box{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:22px 24px;margin-bottom:18px}
.card h2,.box h2{font-size:16px;margin-bottom:4px} .card h3,.box h3{font-size:14.5px}
.card .sub,.box .hint,p.hint,.hint{color:var(--muted);font-size:13px}
p.hint{margin:0 0 14px}
.card-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px} .card-head .sp{flex:1}
.grid{display:grid;gap:16px} .g2{grid-template-columns:repeat(2,minmax(0,1fr))} .g3{grid-template-columns:repeat(3,minmax(0,1fr))} .g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-bottom:22px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:16px 18px;display:flex;gap:14px;align-items:center;text-decoration:none;color:inherit;transition:transform .12s,box-shadow .12s}
a.kpi:hover{transform:translateY(-2px);box-shadow:var(--sh2);text-decoration:none}
.kpi .ico{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--sky);color:var(--blue);font-size:21px;flex:0 0 auto}
.kpi.warn .ico{background:var(--amber-bg);color:var(--amber)} .kpi.good .ico{background:var(--green-bg);color:var(--green)} .kpi.aqua .ico{background:#DDF6F9;color:#0A8797}
.kpi b{display:block;font-size:26px;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.kpi span{font-size:12px;color:var(--muted);font-weight:600}
.section-t{display:flex;align-items:center;gap:10px;margin:30px 0 12px;font-size:12px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--faint)}
.section-t:after{content:"";flex:1;height:1px;background:var(--line)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(262px,1fr));gap:14px}
a.tile{display:flex;gap:13px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:15px 16px;color:inherit;text-decoration:none;box-shadow:var(--sh);transition:transform .12s,border-color .12s,box-shadow .12s;position:relative}
a.tile:hover{transform:translateY(-2px);border-color:#B9CCF5;box-shadow:var(--sh2);text-decoration:none}
a.tile .ico{width:42px;height:42px;border-radius:12px;background:var(--sky);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:20px;flex:0 0 auto}
a.tile.key .ico{background:linear-gradient(135deg,var(--blue),var(--aqua));color:#fff}
a.tile b{display:block;font-size:14.5px;font-weight:700;color:var(--ink)} a.tile small{display:block;color:var(--muted);font-size:12.5px;line-height:1.4;margin-top:2px}
a.tile .badge{position:absolute;top:12px;right:12px;background:#FFB020;color:#3A2600;border-radius:999px;font-size:11.5px;font-weight:800;padding:1px 9px}

/* buttons */
.btn,button,input[type=submit]{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:650;font-size:14px;line-height:1;padding:11px 18px;border-radius:var(--r2);border:1px solid transparent;background:var(--blue);color:#fff;cursor:pointer;text-decoration:none;transition:background .12s,box-shadow .12s,transform .06s}
.btn:hover,button:hover{background:var(--blue2);text-decoration:none;color:#fff} .btn:active,button:active{transform:translateY(1px)}
.btn.g,button.g{background:#fff;color:var(--navy);border-color:var(--line)} .btn.g:hover,button.g:hover{background:var(--sky);color:var(--navy)}
.btn.ok,button.ap,.ap{background:var(--green);color:#fff} .btn.ok:hover,button.ap:hover,.ap:hover{background:#0D6B4B;color:#fff}
.btn.bad,button.rj,.rj{background:var(--red-bg);color:var(--red);border-color:#F6CFCB} .btn.bad:hover,button.rj:hover,.rj:hover{background:#FAD3CF;color:var(--red)}
.btn.sm,button.sm{padding:8px 13px;font-size:13px} .btn.wide,button.wide{width:100%;padding:13px 18px;font-size:15px}
button:disabled,.btn.dis{opacity:.5;cursor:not-allowed}

/* forms */
:where(.content:not(.legacy),.pubwrap) label{display:block;font-size:12.5px;font-weight:650;color:#3A4A66;margin:0 0 6px}
:where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):not([type=submit]),select,textarea){width:100%;font:inherit;font-size:14.5px;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:var(--r2);padding:10px 13px;transition:border-color .12s,box-shadow .12s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(29,95,224,.13)}
input[readonly]{background:#F6F8FC;color:var(--muted)}
input[type=file]{width:100%;padding:10px;border:1.5px dashed #C3CFE4;border-radius:var(--r2);background:#FAFBFE;font-size:13px}
input[type=checkbox],input[type=radio]{width:17px;height:17px;accent-color:var(--blue);vertical-align:middle}
.f{margin-bottom:16px} .row{display:grid;grid-template-columns:1fr 1fr;gap:16px} .row3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.fe{color:var(--red);font-size:12.5px;margin-top:5px;font-weight:650}
.chk{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13.5px}
.addform{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line)}
.addform .f{display:flex;flex-direction:column;gap:4px;margin:0}

/* alerts */
.alert,.msg,.ok:not(.btn),.err,.er{display:flex;gap:10px;align-items:flex-start;padding:11px 14px;border-radius:var(--r2);font-size:13.5px;font-weight:550;margin-bottom:16px;border:1px solid transparent}
.msg,.alert.ok,div.ok{background:var(--green-bg);color:var(--green);border-color:#BFE6D5}
.err,.er,.alert.bad{background:var(--red-bg);color:var(--red);border-color:#F6CFCB}
.alert.warn,.prereq,.note,.closed,.banner{background:var(--amber-bg);color:#7A4A00;border:1px solid #F3DDB0;border-radius:var(--r2);padding:11px 14px;font-size:13.5px;margin-bottom:16px}
.closed{background:var(--red-bg);color:var(--red);border-color:#F6CFCB}
.alert.info{background:var(--sky);color:var(--navy);border-color:#CFDDF9}
.mail{background:#F1F8F4;border:1px solid #BFE2CF;border-radius:var(--r2);padding:13px 16px;margin-bottom:14px;font:12.5px/1.55 Consolas,monospace;white-space:pre-wrap}
.mailnote{font-size:12px;color:var(--muted);margin:-6px 0 14px}
.empty{background:#fff;border:1.5px dashed #C9D4E8;border-radius:var(--r);padding:26px;color:var(--muted);text-align:center}

/* pills */
.pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:750;letter-spacing:.03em;text-transform:uppercase;padding:3px 10px;border-radius:999px;background:#EEF2F8;color:#4A5B78;white-space:nowrap}
.pill.submitted,.pill.pending,.pill.untimed{background:var(--sky);color:var(--navy)} .pill.approved,.pill.match,.pill.done{background:var(--green-bg);color:var(--green)}
.pill.rejected,.pill.mismatch,.pill.bad{background:var(--red-bg);color:var(--red)} .pill.warn,.pill.admin{background:var(--amber-bg);color:var(--amber)} .pill.timed,.pill.previous_meet{background:#DDF6F9;color:#0A7384}

/* tables */
:where(.content:not(.legacy),.pubwrap) table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}
:where(.content:not(.legacy),.pubwrap) th{background:#F5F8FD;color:#4A5B78;text-align:left;font-size:11.5px;font-weight:750;letter-spacing:.07em;text-transform:uppercase;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
:where(.content:not(.legacy),.pubwrap) th:first-child{border-top-left-radius:10px} :where(.content:not(.legacy),.pubwrap) th:last-child{border-top-right-radius:10px}
:where(.content:not(.legacy),.pubwrap) td{padding:11px 12px;border-bottom:1px solid var(--line2);vertical-align:middle}
:where(.content:not(.legacy),.pubwrap) tbody tr:hover td{background:#FAFCFF}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:#fff} .tablewrap table td:first-child{padding-left:14px}
.muted{color:var(--muted)} .tnum{font-variant-numeric:tabular-nums}

/* review cards (approvals) */
.card .top-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:8px;align-items:center}
.card b.name{font-size:16px} .meta{font-size:13px;color:var(--muted);line-height:1.85}
.doc{color:var(--blue);font-weight:650} .miss{color:var(--red);font-weight:700}
form.dec{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap;align-items:center;padding-top:14px;border-top:1px solid var(--line2)}
form.dec input[name=comment]{flex:1;min-width:230px}
h3.sec{font-size:12px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--faint);margin:26px 0 10px}
.content>h3{font-size:12px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--faint);margin:26px 0 10px}

/* progress stepper */
.steps{display:flex;gap:0;margin:0 0 22px;counter-reset:s}
.steps .st{flex:1;display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:700;color:var(--faint);position:relative}
.steps .st .n{width:28px;height:28px;border-radius:50%;background:#E6ECF6;color:var(--faint);display:flex;align-items:center;justify-content:center;font-size:12.5px;flex:0 0 auto}
.steps .st:not(:last-child):after{content:"";flex:1;height:2px;background:#E1E7F1;margin:0 12px;border-radius:2px}
.steps .st.on{color:var(--blue)} .steps .st.on .n{background:var(--blue);color:#fff;box-shadow:0 0 0 5px rgba(29,95,224,.14)}
.steps .st.done{color:var(--green)} .steps .st.done .n{background:var(--green);color:#fff} .steps .st.done:after{background:var(--green)}
.steps .st.bad{color:var(--red)} .steps .st.bad .n{background:var(--red);color:#fff}

/* checklist */
.check{display:flex;flex-direction:column;gap:2px}
.check a{display:flex;align-items:center;gap:12px;padding:10px 10px;border-radius:10px;color:inherit;text-decoration:none} .check a:hover{background:#F5F8FD;text-decoration:none}
.check .dot{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:13px;background:var(--amber-bg);color:var(--amber)}
.check .dot.ok{background:var(--green-bg);color:var(--green)} .check b{font-size:13.5px;display:block} .check small{color:var(--muted);font-size:12px}
.check .go{margin-left:auto;color:var(--faint)}

/* misc */
.hero{background:linear-gradient(120deg,var(--navy) 0%,#1745B8 60%,#0F8FB8 100%);color:#fff;border-radius:18px;padding:24px 28px;margin-bottom:22px;display:flex;gap:20px;align-items:center;flex-wrap:wrap;box-shadow:var(--sh2)}
.hero h2{color:#fff;font-size:21px} .hero p{margin:4px 0 0;color:#CFE0FF;font-size:13.5px} .hero .sp{flex:1}
.hero .count{text-align:center;background:rgba(255,255,255,.14);border-radius:14px;padding:10px 18px;min-width:96px} .hero .count b{display:block;font-size:30px;line-height:1} .hero .count span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#CFE0FF;font-weight:700}
.seg{display:inline-flex;background:#EAEFF8;border-radius:11px;padding:4px;gap:2px;flex-wrap:wrap} .seg a,.seg button{background:none;color:var(--muted);border:0;padding:8px 14px;border-radius:8px;font-weight:650;font-size:13px;text-decoration:none} .seg a.on,.seg button.on{background:#fff;color:var(--navy);box-shadow:0 1px 4px rgba(15,29,58,.12)}
hr.sep{border:0;border-top:1px solid var(--line);margin:18px 0}

/* ───────── responsive ───────── */
@media(max-width:1000px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){
  .side{position:fixed;left:0;top:0;bottom:0;transform:translateX(-102%);transition:transform .22s;box-shadow:var(--sh2)}
  .app.open .side{transform:none} .app.open .scrim{display:block;position:fixed;inset:0;background:rgba(7,25,79,.45);z-index:35}
  .bar{padding:0 14px} .bar .burger{display:flex} .content{padding:18px 14px 70px}
}
@media(max-width:640px){.row,.row3,.g2,.g3,.g4{grid-template-columns:1fr} .card,.box{padding:18px 16px} .page-head h1{font-size:21px} .steps .st span.t{display:none} .pubwrap{padding:18px 12px 70px} .pubbar{padding:10px 14px} .kpis{grid-template-columns:1fr 1fr}}
@media print{.side,.bar,.scrim,.no-print,.pubbar{display:none!important} .content{padding:0;max-width:none} body{background:#fff}}

/* ───────── page-specific pieces carried over from individual pages ───────── */
.heat{border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:10px;background:#FBFCFF} .heat b{color:var(--navy)}
.lanewrap{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px} .lane{background:#fff;border:1px solid var(--line);border-radius:8px;padding:5px 10px;font-size:12.5px}
.toolbar{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.check-row{display:flex;align-items:center;gap:8px;margin-bottom:12px} .check-row label{margin:0;font-weight:700}
.pill.individual{background:var(--sky);color:var(--navy)} .pill.relay{background:var(--amber-bg);color:var(--amber)} .pill.range{background:var(--sky);color:var(--navy)} .pill.open{background:var(--amber-bg);color:var(--amber)}
.pill.y{background:var(--green-bg);color:var(--green)} .pill.n{background:#EEF1F6;color:#7A869C}
button.r{background:var(--red-bg);color:var(--red);border-color:#F6CFCB} button.r:hover{background:#FAD3CF;color:var(--red)}
.multichk{display:flex;flex-wrap:wrap;gap:6px 12px;border:1.5px solid var(--line);border-radius:var(--r2);padding:9px 11px;max-width:290px;background:#fff}
.multichk label{display:flex;align-items:center;gap:5px;font-weight:500;font-size:12.5px;margin:0}
.ref-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap} tr.open-row td{background:#FFF9EA} tr.off td{color:#9aa5b8;background:#FAFBFD}
.off-row{display:flex;gap:16px;align-items:flex-start;padding:14px 0;border-top:1px solid var(--line2)} .off-row:first-of-type{border-top:0;padding-top:0}
.off-thumb{width:58px;height:58px;border-radius:50%;object-fit:cover;flex:0 0 auto;background:var(--sky)} .off-thumb.ph{display:flex;align-items:center;justify-content:center;color:#9aa5b8;font-weight:700}
.off-fields{flex:1;min-width:0}
span.sm,code.sm,td .sm:not(.btn):not(button){font-family:Consolas,monospace;background:var(--sky);padding:2px 7px;border-radius:5px;font-size:12.5px}
.cred{background:var(--green-bg);border:1px solid #BFE6D5;border-radius:var(--r2);padding:13px 16px;margin-bottom:16px;font-size:13.5px;line-height:1.8} .cred code{font-family:Consolas,monospace;font-weight:700}
.flag{font-size:11.5px;color:var(--amber)} .mut{color:var(--muted)}
.card table,.box table{margin-top:6px}

/* ───────── timing desk (manual scoring) ───────── */
.meter{height:8px;background:#E6ECF6;border-radius:99px;overflow:hidden} .meter i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--aqua));border-radius:99px}
.evbar{display:flex;gap:10px;align-items:center} .evbar select{flex:1;min-width:0;font-weight:600}
.btn.dis{pointer-events:none;opacity:.45}
.heatchips{display:flex;gap:6px;flex-wrap:wrap}
.heatchips a{min-width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1.5px solid var(--line);background:#fff;color:var(--muted);font-weight:750;font-size:13.5px;text-decoration:none}
.heatchips a:hover{border-color:var(--blue);color:var(--blue);text-decoration:none}
.heatchips a.part{background:var(--amber-bg);border-color:#F3DDB0;color:var(--amber)} .heatchips a.done{background:var(--green-bg);border-color:#BFE6D5;color:var(--green)}
.heatchips a.on{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 0 0 4px rgba(29,95,224,.16)}
table.timing td{padding:10px 12px} table.timing th.c,table.timing td.c{text-align:center}
.lanebadge{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;font-weight:800;font-size:15px}
input.tinput{width:150px!important;font:700 19px/1 ui-monospace,Consolas,monospace!important;letter-spacing:.02em;padding:11px 12px!important;text-align:center;border-radius:10px!important}
input.tinput:focus{border-color:var(--blue)!important}
tr.filled td{background:#F4FAF7} tr.dq-row td{background:#FEF2F1!important;color:#9A6B66} tr.dq-row td b{text-decoration:line-through} tr.ab-row td{background:#F6F2FF!important;color:#6B55A8;font-style:italic}
.place{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;border-radius:50%;background:#EEF2F8;color:var(--muted);font-weight:800;font-size:13px}
.place.p1{background:#FFF1BF;color:#8A6500} .place.p2{background:#E9EDF3;color:#4A5566} .place.p3{background:#F6DDC8;color:#8A4B1A}
.points-badge{font-weight:800;color:var(--green);font-variant-numeric:tabular-nums}
label.tg{display:inline-block;margin:0;cursor:pointer} label.tg input{position:absolute;opacity:0;width:0;height:0}
label.tg span{display:inline-block;padding:6px 11px;border-radius:999px;border:1.5px solid var(--line);font-size:11.5px;font-weight:800;letter-spacing:.04em;color:var(--faint);background:#fff;user-select:none;transition:all .1s}
label.tg:hover span{border-color:#B9C6DC}
label.tg.dq input:checked+span{background:var(--red);border-color:var(--red);color:#fff} label.tg.ab input:checked+span{background:#7E57C2;border-color:#7E57C2;color:#fff} label.tg.nmr input:checked+span{background:#E08A00;border-color:#E08A00;color:#fff}
.savebar{position:sticky;bottom:0;display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:16px -24px -22px;padding:14px 24px;background:rgba(255,255,255,.94);backdrop-filter:blur(6px);border-top:1px solid var(--line);border-radius:0 0 var(--r) var(--r)}
.savebar .sp{flex:1}
details.more{position:relative} details.more summary{list-style:none;cursor:pointer} details.more summary::-webkit-details-marker{display:none}
details.more .menu{position:absolute;right:0;bottom:calc(100% + 8px);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh2);padding:8px;display:flex;flex-direction:column;gap:6px;min-width:250px;z-index:5}
details.more .menu button{justify-content:flex-start;width:100%}
details.ptsinfo summary{cursor:pointer;color:var(--navy)}
button.bad{background:var(--red-bg);color:var(--red);border-color:#F6CFCB} button.bad:hover{background:#FAD3CF;color:var(--red)}
@media(max-width:640px){input.tinput{width:118px!important} .savebar{margin:14px -16px -18px;padding:12px 16px} .evbar{flex-wrap:wrap}}

/* ───────── public results ───────── */
.rfilters{display:flex;gap:10px;flex-wrap:wrap;align-items:center} .rchips{display:flex;gap:10px 14px;flex-wrap:wrap;margin-top:14px}
.evcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);margin-bottom:14px;overflow:hidden}
.evhead{display:flex;align-items:center;gap:14px;padding:13px 18px;background:linear-gradient(90deg,#F4F8FF,#fff);border-bottom:1px solid var(--line2)}
.evhead b{display:block;font-size:15px;color:var(--ink)} .evhead small{display:block;color:var(--muted);font-size:12.5px} .evhead .sp{flex:1}
.evno{background:var(--navy);color:#fff;border-radius:9px;padding:6px 11px;font-weight:800;font-size:12.5px;white-space:nowrap}
table.res .c-pos{width:70px;text-align:center;font-weight:800} table.res .c-age{width:60px;text-align:center;color:var(--muted)} table.res .c-time{width:130px;text-align:right;font:700 14px ui-monospace,Consolas,monospace}
.row-gold td{background:#FFFBE6} .row-silver td{background:#F7F8FA} .row-bronze td{background:#FFF5EC} .row-dq td,.row-dns td{color:#98A2B3}
.medal{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;font-weight:800;font-size:13px}
.medal-1{background:linear-gradient(135deg,#FFE066,#F5B800);color:#5C4400} .medal-2{background:linear-gradient(135deg,#E6E9EF,#BDC4D0);color:#3D4655} .medal-3{background:linear-gradient(135deg,#F1C9A5,#CD7F32);color:#fff}
@media(max-width:640px){table.res .c-age{display:none} .evhead{padding:11px 14px}}

/* ───────── parent portal ───────── */
.auth-ic{width:60px;height:60px;border-radius:18px;margin:0 auto 14px;background:linear-gradient(135deg,var(--blue),var(--aqua));color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;box-shadow:0 10px 24px rgba(29,95,224,.3)}
input.otpbox{text-align:center;font:800 28px ui-monospace,Consolas,monospace!important;letter-spacing:.35em;padding:14px!important}
.how{display:grid;gap:10px;margin-top:22px;padding-top:20px;border-top:1px dashed var(--line)} .how div{display:flex;gap:12px;align-items:center;font-size:13.5px;color:var(--muted)}
.how b{width:26px;height:26px;border-radius:50%;background:var(--sky);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:12.5px;flex:0 0 auto}
.kid{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:20px;color:#fff;flex:0 0 auto} .kid.b{background:linear-gradient(135deg,#1D5FE0,#0FB5C9)} .kid.g{background:linear-gradient(135deg,#C2358D,#F0843F)}
.card.child .name{font-size:17px} .act-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;padding-top:16px;border-top:1px solid var(--line2)}
.steps .st .n .ic{width:14px;height:14px}
@media(max-width:640px){.steps .st:not(:last-child):after{margin:0 5px} .steps .st .t{display:none} .steps .st.on .t,.steps .st.bad .t{display:inline;font-size:11.5px}}

/* ───────── parent forms ───────── */
.sect{margin:26px 0 16px;padding-top:20px;border-top:1px solid var(--line2)} .sect:first-of-type{margin-top:6px;padding-top:0;border-top:0}
.sect h2{font-size:16px;margin:0 0 3px;color:var(--navy)} .sect p.k{margin:0 0 14px;color:var(--muted);font-size:13px}
.cap-note{font-size:11.5px;color:var(--faint);margin-top:4px} .req{color:var(--red);font-weight:800}
.doc{border:1.5px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:12px;background:#FCFDFF}
.whobox{background:#F5F8FD;border:1px solid var(--line2);border-radius:12px;padding:13px 16px;font-size:13.5px;line-height:1.7;margin-bottom:18px}
.day{border:1px solid var(--line);border-radius:14px;margin-bottom:16px;overflow:hidden;background:#fff}
.day h3{margin:0;padding:12px 18px;background:linear-gradient(90deg,var(--navy),#1745B8);color:#fff;font-size:14.5px}
.sess{padding:9px 18px;font-size:11.5px;font-weight:800;color:#4A5B78;text-transform:uppercase;letter-spacing:.08em;background:#F5F8FD;border-top:1px solid var(--line2)}
.evrow{display:flex;align-items:center;gap:13px;padding:12px 18px;border-top:1px solid var(--line2);cursor:pointer;margin:0;font-size:14.5px;font-weight:500;transition:background .1s}
.evrow:hover{background:#F7FAFF} .evrow input[type=checkbox]{width:20px;height:20px;flex:0 0 auto} .evrow.off{opacity:.45;cursor:not-allowed}
.evname{flex:1;min-width:0;font-weight:700;color:var(--ink)} .evflow{display:block;color:var(--faint);font-size:12px;font-weight:500}
.evrow .evno{background:var(--sky);color:var(--blue);min-width:70px;text-align:center}
input.t{width:150px!important;padding:8px 11px!important;font-size:13px!important}
.feebox{background:linear-gradient(135deg,#EEF4FF,#F6F9FF);border:1.5px solid #CFE0F9;border-radius:12px;padding:14px 18px;font-size:14px;margin:16px 0;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:center}
.feebox b{color:var(--navy);font-size:18px}
@media(max-width:640px){.evrow{flex-wrap:wrap} input.t{width:100%!important}}
.pubbar .short{display:none} .pubbar .bn{min-width:0}
@media(max-width:640px){.pubbar .full{display:none} .pubbar .short{display:inline} .pubbar img{width:40px;height:40px} .pubbar .who{display:none} .pubbar{gap:10px}}

/* ───────── skin for the older meet-day tools (they keep their own markup inside the new shell) ───────── */
.legacy{font-family:inherit}
.legacy #box,.legacy .container,.legacy .panel{width:100%!important;max-width:1180px!important;margin:0 auto 24px!important;background:#fff!important;border:1px solid var(--line)!important;border-top:1px solid var(--line)!important;border-radius:var(--r)!important;box-shadow:var(--sh)!important;padding:24px 26px!important;color:var(--ink)!important}
.legacy .topbar{align-items:flex-start!important;margin-bottom:6px!important} .legacy .topbar a[href*=logout]{display:none}
.legacy .topbar>div:first-child{font-size:22px!important;font-weight:800;letter-spacing:-.01em;color:var(--ink)}
.legacy #box h2{font-size:20px;margin:0 0 14px;color:var(--ink)}
.legacy .filter-bar{background:#F7F9FD;border:1px solid var(--line2);border-radius:12px;padding:14px 16px!important}
.legacy .filter-bar label{font-weight:650;font-size:13px;color:#3A4A66}
.legacy .heat-pagination a{border-radius:10px!important;border-color:var(--line)!important;color:var(--navy)!important} .legacy .heat-pagination a.active{background:var(--blue)!important;color:#fff!important;border-color:var(--blue)!important}
.legacy table.edit-table{border:1px solid var(--line);border-radius:12px;overflow:hidden} .legacy table.edit-table th{background:#F5F8FD!important;color:#4A5B78!important;font-size:11.5px!important;letter-spacing:.07em;text-transform:uppercase}
.legacy table.edit-table td,.legacy table.edit-table th{border-bottom:1px solid var(--line2)!important;padding:10px 12px!important}
.legacy .banner{border-radius:10px}
.legacy a.btn{border-radius:12px!important}
.legacy input[type=text],.legacy input[type=number],.legacy select{border:1.5px solid var(--line);border-radius:9px}

/* control panel on the print-oriented tools (start list, referee sheet, results, ...) */
.legacy>.no-print{background:#fff!important;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:16px 20px!important;margin-bottom:20px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.legacy>.no-print form{display:flex!important;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:0!important}
.legacy>.no-print label{display:flex;align-items:center;gap:8px;margin:0;white-space:nowrap}
.legacy>.no-print select,.legacy>.no-print input[type=number],.legacy>.no-print input[type=text]{width:auto!important;min-width:140px}
.legacy>.no-print input[type=number]{min-width:84px;max-width:100px}
.legacy>.no-print .note{flex-basis:100%}
.legacy a.back-link{display:inline-flex;align-items:center;margin:0!important;font-weight:650;font-size:13px!important} .legacy a.back-link[href*=logout]{display:none}
.legacy #print-btn,.legacy button#print-btn{background:var(--green)!important;color:#fff!important;border-radius:10px!important;padding:11px 20px!important;font-weight:700;border:0}
.legacy .note{background:var(--amber-bg)!important;color:#7A4A00!important;border:1px solid #F3DDB0!important;border-radius:10px!important;font-weight:550!important}
.legacy .no-print strong{font-size:15px}
@media print{.app,.main{display:block!important;min-height:0!important} .content.legacy{padding:0!important;max-width:none!important;display:block}}

/* stat tiles and bars used on report pages */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:18px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:16px 18px;border-top:4px solid var(--blue)}
.stat.g{border-top-color:var(--green)} .stat.y{border-top-color:#E0A100} .stat b{display:block;font-size:26px;letter-spacing:-.02em;font-variant-numeric:tabular-nums} .stat span{font-size:12px;color:var(--muted);font-weight:650}
.content:not(.legacy)>h2{font-size:12px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--faint);margin:26px 0 10px}
.bar-row{display:flex;align-items:center;gap:12px;margin:9px 0;font-size:13.5px} .bar-row .bl{flex:0 0 42%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar-row .bt{flex:1;height:10px;background:#E8EEF8;border-radius:99px;overflow:hidden} .bar-row .bt i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--aqua));border-radius:99px} .bar-row b{min-width:28px;text-align:right}
.card .tablewrap table td,.card .tablewrap table th{text-align:left} .tablewrap .tnum{text-align:center}
@media(max-width:640px){.bar-row .bl{flex-basis:50%}}

/* school registration + relay forms */
a.btn2{display:inline-flex;align-items:center;padding:11px 18px;border-radius:var(--r2);background:var(--blue);color:#fff;font-weight:650;font-size:14px;text-decoration:none;margin-top:6px} a.btn2:hover{background:var(--blue2);text-decoration:none;color:#fff}
.prev{background:#F5F8FD;border:1px dashed #BFCCE4;border-radius:12px;padding:12px 16px;margin:0 0 18px;font-size:12.5px;color:var(--muted)} .prev #prev{display:block;margin-top:6px;font:700 15px ui-monospace,Consolas,monospace;color:var(--ink);letter-spacing:.02em}
div.hint{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--muted);margin-top:5px} #cnt{font-variant-numeric:tabular-nums;color:var(--faint)}
.swrow{border:1.5px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:12px;background:#FCFDFF} .swrow h4{margin:0 0 12px;font-size:13px;color:var(--navy);letter-spacing:.05em;text-transform:uppercase}
.evinfo{background:var(--sky);border:1px solid #CFDDF9;border-radius:12px;padding:13px 16px;margin:14px 0;font-size:13.5px;color:var(--navy);display:none;line-height:1.7}
.entry{border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:12px;background:#fff} .entry .top-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}

/* heat generator */
.gen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}
.gen-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:16px 18px;display:flex;flex-direction:column;gap:12px}
.gen-card.flash{border-color:var(--green);box-shadow:0 0 0 4px rgba(18,128,90,.12),var(--sh);grid-column:1/-1}
.gen-top{display:flex;align-items:center;gap:12px} .gen-top b{display:block;font-size:15px} .gen-top small{display:block;color:var(--muted);font-size:12.5px} .gen-top .sp{flex:1}
.gen-stats{display:flex;gap:18px;font-size:13px;color:var(--muted);padding:10px 12px;background:#F5F8FD;border-radius:10px} .gen-stats b{color:var(--ink);font-size:16px;margin-right:3px}
.gen-act{display:flex;gap:8px;flex-wrap:wrap} .gen-act form{margin:0} .gen-prev{border-top:1px dashed var(--line);padding-top:12px}
@media(max-width:640px){.gen-grid{grid-template-columns:1fr}}
