:root{
  --bg:#F2F4F0; --rail:#FFFFFF; --surface:#FFFFFF; --surface-2:#F1F3EF; --line:#DDE1DA; --text:#0C1015; --muted:#5E645B; --faint:#8A9086;
  --acc:#FF7A45; --acc-t:#B8461A; --primary:#FF7A45; --primary-ink:#0C1015; --primary-soft:rgba(255,122,69,.13);
  --accent:#B8461A; --accent-soft:rgba(255,122,69,.13);
  --danger:#D2373D; --danger-soft:rgba(229,72,77,.11); --danger-bg:rgba(229,72,77,.11); --ok:#1E8E55; --ok-soft:rgba(47,191,119,.14);
  --warn:#A86A00; --warn-soft:rgba(245,184,65,.2); --warn-bg:rgba(245,184,65,.2); --info:#2D6FD0; --info-soft:rgba(79,157,255,.13);
  --shadow:0 1px 0 rgba(12,16,21,.03); --shadow-2:0 8px 24px rgba(12,16,21,.10); --shadow-3:0 24px 60px rgba(12,16,21,.18);
  --radius:14px; --nav-w:224px;
  --font:'Rajdhani','IBM Plex Sans Arabic',-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Menlo,Consolas,monospace;
  --font-ar:'IBM Plex Sans Arabic','Rajdhani',Tahoma,Arial,sans-serif;
  color-scheme:light;
}
:root[data-theme="dark"]{
  --bg:#0C1015; --rail:#0A0D11; --surface:#141920; --surface-2:#1C2229; --line:#272E36; --text:#F2F4F0; --muted:#8A9086; --faint:#5E645B;
  --acc:#FF7A45; --acc-t:#FF8F5E; --primary:#FF7A45; --primary-ink:#0C1015; --primary-soft:rgba(255,122,69,.14);
  --accent:#FF8F5E; --accent-soft:rgba(255,122,69,.14);
  --danger:#FF6B70; --danger-soft:rgba(255,90,95,.14); --danger-bg:rgba(255,90,95,.14); --ok:#5BE09A; --ok-soft:rgba(76,211,138,.15);
  --warn:#F5B841; --warn-soft:rgba(245,184,65,.16); --warn-bg:rgba(245,184,65,.16); --info:#6FB2FF; --info-soft:rgba(79,157,255,.15);
  --shadow:0 1px 0 rgba(0,0,0,.2); --shadow-2:0 8px 24px rgba(0,0,0,.4); --shadow-3:0 24px 60px rgba(0,0,0,.5);
  color-scheme:dark;
}
@media (prefers-color-scheme:dark){
  :root[data-theme="auto"]{
  --bg:#0C1015; --rail:#0A0D11; --surface:#141920; --surface-2:#1C2229; --line:#272E36; --text:#F2F4F0; --muted:#8A9086; --faint:#5E645B;
  --acc:#FF7A45; --acc-t:#FF8F5E; --primary:#FF7A45; --primary-ink:#0C1015; --primary-soft:rgba(255,122,69,.14);
  --accent:#FF8F5E; --accent-soft:rgba(255,122,69,.14);
  --danger:#FF6B70; --danger-soft:rgba(255,90,95,.14); --danger-bg:rgba(255,90,95,.14); --ok:#5BE09A; --ok-soft:rgba(76,211,138,.15);
  --warn:#F5B841; --warn-soft:rgba(245,184,65,.16); --warn-bg:rgba(245,184,65,.16); --info:#6FB2FF; --info-soft:rgba(79,157,255,.15);
  --shadow:0 1px 0 rgba(0,0,0,.2); --shadow-2:0 8px 24px rgba(0,0,0,.4); --shadow-3:0 24px 60px rgba(0,0,0,.5);
  color-scheme:dark;
  }
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{margin:0;line-height:1.2}
h1{font-size:22px} h2{font-size:17px} h3{font-size:14px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
[dir=rtl] h3{text-transform:none;letter-spacing:0}
.muted{color:var(--muted)} .small{font-size:12.5px} .num{font-variant-numeric:tabular-nums}
.hidden{display:none!important}

/* ---------- shell ---------- */
.app{display:grid;grid-template-columns:var(--nav-w) 1fr;min-height:100vh}
.nav{position:sticky;top:0;height:100vh;background:var(--surface);border-inline-end:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;gap:6px}
.brand{display:flex;gap:10px;align-items:center;padding:4px 8px 14px}
.brand .logo{width:38px;height:38px;border-radius:11px;background:var(--primary);color:var(--primary-ink);display:grid;place-items:center;flex:none}
.brand b{display:block;font-size:15px;line-height:1.15} .brand span{font-size:12px;color:var(--muted)}
.nav button.item{display:flex;align-items:center;gap:11px;border:0;background:none;padding:11px 12px;border-radius:11px;cursor:pointer;color:var(--muted);font-weight:600;text-align:start;width:100%}
.nav button.item:hover{background:var(--surface-2);color:var(--text)}
.nav button.item.active{background:var(--primary-soft);color:var(--acc-t)}
.nav svg{width:20px;height:20px;flex:none}
.nav .spacer{flex:1}
.main{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;display:flex;gap:10px;align-items:center;padding:12px 24px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.topbar .title{font-weight:700;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar .title small{display:block;font-weight:500;color:var(--muted);font-size:12px}
.status{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px}
.status i{width:8px;height:8px;border-radius:50%;background:var(--ok);display:inline-block}
.status.saving i{background:var(--warn)}
.content{padding:22px 24px 60px;max-width:1500px;width:100%;margin-inline:auto}

/* ---------- controls ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:var(--surface);color:var(--text);padding:9px 14px;border-radius:10px;cursor:pointer;font-weight:600;white-space:nowrap;min-height:38px}
.btn:hover{background:var(--surface-2)}
.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}
.btn.primary:hover{filter:brightness(1.07)}
.btn.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--line))}
.btn.ghost{border-color:transparent;background:none}
.btn.sm{padding:5px 10px;min-height:30px;font-size:13px;border-radius:8px}
.btn svg{width:17px;height:17px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.icon-btn{width:38px;padding:0}
input[type=text],input[type=date],input[type=number],select,textarea{width:100%;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:9px 11px;min-height:38px}
input:focus,select:focus,textarea:focus,.btn:focus-visible,button:focus-visible{outline:2px solid var(--primary);outline-offset:1px}
label.f{display:block;font-size:12.5px;font-weight:600;color:var(--muted);margin-bottom:5px}
.field{margin-bottom:14px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}
.card>h2{margin-bottom:12px}
.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:99px;background:var(--surface-2);font-size:12px;font-weight:600;color:var(--muted)}
.pill.ok{background:var(--primary-soft);color:var(--acc-t)} .pill.warn{background:var(--warn-soft);color:var(--warn)} .pill.bad{background:var(--danger-soft);color:var(--danger)}

/* segmented */
.tabs{display:inline-flex;background:var(--surface-2);padding:4px;border-radius:12px;gap:2px;max-width:100%;overflow:auto}
.tabs button{border:0;background:none;padding:8px 15px;border-radius:9px;cursor:pointer;font-weight:600;color:var(--muted);white-space:nowrap}
.tabs button.on{background:var(--surface);color:var(--acc-t);box-shadow:var(--shadow)}

/* ruleset picker */
.rs-pick{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.rs{border:2px solid var(--line);border-radius:14px;padding:14px;cursor:pointer;background:var(--surface);text-align:start}
.rs.on{border-color:var(--primary);background:var(--primary-soft)}
.rs b{display:block;font-size:17px} .rs span{font-size:12.5px;color:var(--muted)}

/* ---------- tables ---------- */
.tbl-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
table{border-collapse:separate;border-spacing:0;width:100%}
th,td{padding:8px 10px;text-align:start;border-bottom:1px solid var(--line);vertical-align:middle}
th{position:sticky;top:0;background:var(--surface-2);font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;z-index:2;white-space:nowrap}
[dir=rtl] th{text-transform:none;letter-spacing:0}
tr:last-child td{border-bottom:0}
tbody tr:hover td{background:color-mix(in srgb,var(--primary-soft) 40%,transparent)}
td.c,th.c{text-align:center}
td.n{font-variant-numeric:tabular-nums;text-align:center}
.rank-badge{display:inline-grid;place-items:center;min-width:30px;height:30px;border-radius:50%;font-weight:800;background:var(--surface-2)}
.r1 .rank-badge{background:#f5d97a;color:#5b4300} .r2 .rank-badge{background:#dfe3e6;color:#3b434a} .r3 .rank-badge{background:#e8b78a;color:#5a3414}
.total{font-weight:800;font-size:16px}
tr.sep td{background:var(--surface-2);font-weight:700;font-size:12.5px;color:var(--muted)}

/* ---------- scoring ---------- */
.score-head{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.event-chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--surface);padding:8px 14px;border-radius:99px;cursor:pointer;font-weight:600}
.chip.on{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}
.chip small{opacity:.8;font-weight:500;margin-inline-start:6px}
.seg{direction:ltr;display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--surface)}
.seg button{border:0;border-inline-end:1px solid var(--line);background:none;min-width:30px;height:32px;padding:0 6px;cursor:pointer;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.seg button:last-child{border-inline-end:0}
.seg button:hover{background:var(--surface-2)}
.seg button.on{background:var(--primary);color:var(--primary-ink)}
.seg button.on.zero{background:var(--danger);color:#fff}
.seg-lbl{font-size:10.5px;color:var(--muted);display:block;text-align:center;margin-bottom:2px}
.runcell{display:flex;gap:6px;align-items:flex-end;flex-wrap:nowrap}
.tg{display:flex;flex-direction:column}
.time-input{width:78px!important;min-height:32px!important;padding:4px 8px!important;text-align:center;font-variant-numeric:tabular-nums;font-weight:600}
.time-input.over{border-color:var(--danger);background:var(--danger-soft)}
.time-input.flash{background:var(--primary-soft);border-color:var(--primary)}
.fault{display:inline-block;min-width:38px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums;color:var(--muted)}
.fault.neg{color:var(--danger)}
.net{font-weight:800;min-width:34px;display:inline-block;text-align:center;font-variant-numeric:tabular-nums}
.runbox{display:flex;flex-direction:column;gap:4px;padding:6px 8px;border-radius:10px;background:var(--surface-2)}
.runbox .meta{display:flex;gap:6px;align-items:center;justify-content:space-between;font-size:11.5px;color:var(--muted)}
.rider-no{display:inline-grid;place-items:center;min-width:30px;height:26px;border-radius:7px;background:var(--surface-2);font-weight:700;font-size:13px}
.group-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-bottom:14px;box-shadow:var(--shadow);overflow:hidden}
.group-card header{display:flex;gap:12px;align-items:center;padding:12px 16px;background:var(--surface-2);border-bottom:1px solid var(--line);flex-wrap:wrap}
.group-card header b{font-size:16px}
.group-body{padding:6px 8px;overflow:auto}
.pair-label{padding:6px 10px;font-weight:700;font-size:12px;color:var(--accent);background:var(--accent-soft);border-radius:8px;display:inline-block;margin:8px 0 4px}
.gtimes{display:flex;gap:10px;flex-wrap:wrap;margin-inline-start:auto;align-items:flex-end}
.locked-banner{background:var(--warn-soft);color:var(--warn);padding:9px 14px;border-radius:10px;font-weight:600;margin-bottom:12px}

/* modal / toast */
.modal-back{position:fixed;inset:0;background:rgba(5,15,10,.5);display:grid;place-items:center;z-index:100;padding:16px}
.modal{background:var(--surface);border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.35);width:min(560px,100%);max-height:90vh;overflow:auto;padding:22px}
.modal h2{margin-bottom:14px}
.modal .actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}
.toasts{position:fixed;inset-block-end:18px;inset-inline-start:50%;transform:translateX(-50%);z-index:200;display:flex;flex-direction:column;gap:8px;align-items:center}
.toast{background:var(--text);color:var(--bg);padding:10px 16px;border-radius:12px;font-weight:600;box-shadow:var(--shadow);animation:rise .2s ease}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* progress */
.bar{height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden}
.bar i{display:block;height:100%;background:var(--primary);border-radius:99px}
.step{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px dashed var(--line)}
.step:last-child{border:0}
.empty{padding:40px 16px;text-align:center;color:var(--muted)}
.print-only{display:none}
.print-head{align-items:center;gap:14px;border-bottom:3px solid var(--primary);padding-bottom:10px;margin-bottom:14px}
.print-head img{height:60px}
.print-head h1{font-size:20px}

/* scoreboard mode */
body.board .nav,body.board .topbar{display:none}
body.board .app{grid-template-columns:1fr}
body.board table{font-size:1.25em}
body.board .content{max-width:none}

/* ---------- responsive ---------- */
@media (max-width:860px){
  .app{grid-template-columns:1fr}
  .nav{position:fixed;inset:auto 0 0 0;height:auto;flex-direction:row;padding:6px 8px;z-index:50;border-inline-end:0;border-top:1px solid var(--line);justify-content:space-around;gap:0}
  .nav .brand,.nav .spacer{display:none}
  .nav button.item{flex-direction:column;gap:2px;font-size:11px;padding:6px 4px;text-align:center;justify-content:center;width:auto;flex:1}
  .content{padding:14px 12px 90px}
  .topbar{padding:10px 12px}
  .rs-pick{grid-template-columns:1fr}
}

/* ---------- print ---------- */
@media print{
  @page{margin:12mm}
  body{background:#fff;color:#000;font-size:12px}
  .nav,.topbar,.noprint,.toasts,.btn,.tabs,.event-chips{display:none!important}
  .app{display:block} .content{padding:0;max-width:none}
  .print-only{display:flex}
  .card,.tbl-wrap{box-shadow:none;border:1px solid #bbb}
  th{position:static;background:#eee!important;color:#000;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .rank-badge{background:none!important;border:1px solid #888}
  tr{break-inside:avoid}
  input{border:0!important;background:none!important;padding:0!important}
  .sheet td{height:34px}
}

/* ---------- print station ---------- */
.ps-grid{display:grid;grid-template-columns:minmax(300px,430px) 1fr;gap:18px;align-items:start}
.pgroup{border-top:1px solid var(--line)}
.pgroup-h{display:flex;gap:8px;align-items:center;padding:10px 4px;cursor:pointer;user-select:none}
.pgroup-h .chev{width:14px;color:var(--muted)}
.pgroup-b{padding:0 4px 10px;display:grid;gap:2px}
.pitem{display:flex;gap:10px;align-items:center;padding:6px 8px;border-radius:8px;cursor:pointer}
.pitem:hover{background:var(--surface-2)} .pitem.strong span{font-weight:700} .pitem input{width:auto;min-height:0}
.ps-right{position:sticky;top:70px}
.ps-bar{display:flex;gap:10px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;margin-bottom:12px;flex-wrap:wrap}
.ps-scroll{max-height:calc(100vh - 190px);overflow:auto;padding:12px;background:var(--surface-2);border-radius:var(--radius)}
@media (max-width:1100px){.ps-grid{grid-template-columns:1fr}.ps-right{position:static}}

/* document pages (shared by preview and print) */
.pg{background:#fff;color:#111;font-size:12px}
.paper{width:794px;min-height:1000px;zoom:.6;padding:12mm;margin:0 auto 14px;box-shadow:var(--shadow);border-radius:4px}
.paper.landscape{width:1123px;min-height:700px}
.paper .print-only{display:flex}
.pg .print-head{display:flex;color:#111}
.ptitle{margin:6px 0 12px;font-size:18px;color:#111}
.ptable{border-collapse:collapse;width:100%}
.ptable th,.ptable td,.sheet th,.sheet td{border:1px solid #9aa;padding:5px 8px;color:#111;background:none;text-align:start}
.ptable th,.sheet th{background:#eceff0;position:static;font-size:11px;text-transform:none;letter-spacing:0;color:#222}
.ptable td.n{text-align:center}
.ptable tr.grp td{background:#f1f4f3;font-size:12.5px}
.ptable tbody tr:hover td{background:none}
.pg .rank-badge{min-width:26px;height:26px;background:#f1f1f1;color:#111}
.pg .r1 .rank-badge{background:#f5d97a} .pg .r2 .rank-badge{background:#dfe3e6} .pg .r3 .rank-badge{background:#e8b78a}
.pg .muted{color:#667}
.pfoot{margin-top:14px;text-align:end}
.sheet td{height:30px}
.pg.cert{padding:8mm;box-sizing:border-box}
.certbox{box-sizing:border-box;margin:0;min-height:100%;border:7px double #0C1015;padding:10mm 14mm;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:6px;color:#14211c}
.paper .certbox{min-height:640px}
.clogo{height:70px}.cfed{font-size:18px;font-weight:700;letter-spacing:.04em}.cchamp{font-size:14px;color:#556}
.ctitle{font-size:34px;font-weight:800;color:#0C1015;margin:4px 0}
.cmid{font-size:14px;color:#556}.cname{font-size:38px;font-weight:800;line-height:1.15}.csub{font-size:18px;color:#445}
.cplace{font-size:30px;font-weight:800;color:#B8461A}.cscope{font-size:20px;font-weight:700}.cmeta{font-size:13px;color:#667}
.csig{display:flex;justify-content:space-around;width:100%;margin-top:18px}.csig span{border-top:1px solid #556;padding:6px 40px 0;font-size:12px;color:#556}

/* start order */
.so-tools{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;align-items:center}
.so-row.drag-over td{box-shadow:inset 0 3px 0 var(--primary)}
.so-row.dragging{opacity:.4}
.so-row.inactive td{opacity:.55}
.so-row .grip{cursor:grab;color:var(--muted);display:inline-flex}
.so-pos{width:60px!important;text-align:center;min-height:32px!important;padding:3px 6px!important}
.st-sel{min-width:120px;min-height:32px!important;padding:3px 8px!important}
.st-wd{color:var(--warn)} .st-dq,.st-dns{color:var(--danger)}
.health li{margin:6px 0}

@media print{
  .pg{break-after:page;page-break-after:always}
  .pg:last-child{break-after:auto;page-break-after:auto}
  .pg.cert{page:cert;height:208mm;overflow:hidden;break-after:page}
  .pg.cert:last-child{break-after:avoid}
  .certbox{min-height:0;height:calc(208mm - 16mm)}
  body.pa{background:#fff}
}

/* ---- page fitting: wrap, repeat headings, never split a row ---- */
.pg{box-sizing:border-box;max-width:100%;overflow-wrap:break-word}
.ptable{table-layout:auto}
.ptable thead,.sheet thead{display:table-header-group}
.ptable tr,.sheet tr{break-inside:avoid;page-break-inside:avoid}
.ptable td,.ptable th{overflow-wrap:break-word;vertical-align:top}
/* numbers never split across lines – results tables only (forms and start lists must be free to wrap names) */
.ptable.res td.n,.ptable.res th,.ptable.res td.c,.ptable.res td:nth-child(1),.ptable.res td:nth-last-child(-n+2){white-space:nowrap}
.ptitle,.print-head{break-after:avoid;break-inside:avoid}
.print-head img,.clogo{max-height:64px;max-width:160px;object-fit:contain}
.pg.dense .ptable th,.pg.dense .ptable td,.pg.dense .sheet th,.pg.dense .sheet td{font-size:calc(10px * var(--pf,1));padding:3px 5px}
.pg.dense .rank-badge{min-width:22px;height:22px;font-size:10.5px}
.pg .sheet{width:100%;table-layout:auto}
.paper.landscape .sheet td{height:26px}
@media print{
  html,body{height:auto!important;overflow:visible!important}
  body.pa #print-area{display:block!important}
  .pg{width:auto!important;max-width:none;zoom:1;box-shadow:none;margin:0;padding:0}
  .pg.cert{padding:8mm;box-sizing:border-box}
  .tbl-wrap{overflow:visible!important}
}

.pg{font-size:calc(12px * var(--pf,1))}
.pg.nohead .print-head{display:none!important}
.paper.pA3{width:1123px}.paper.pA3.landscape{width:1587px}
.paper.pLetter{width:816px}.paper.pLetter.landscape{width:1056px}

#print-area{display:none}
#exitBoard{position:fixed;inset-block-start:12px;inset-inline-end:12px;z-index:300}
@media print{
  body.pa>*:not(#print-area){display:none!important}
  body.pa #print-area{display:block!important}
  body.pa .print-only{display:flex}
}

/* championships */
.champ-switch{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:6px 12px;cursor:pointer;max-width:min(420px,60vw);text-align:start}
.champ-switch:hover{background:var(--surface-2)}
.champ-switch .title{flex:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.champ-switch svg{width:16px;height:16px;flex:none;color:var(--muted)}
.champ-card.is-active{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft),var(--shadow)}
.rs span{display:block}

/* dialogs: buttons always reachable, wide variant */
.modal.wide{width:min(820px,100%)}
.modal .actions{position:sticky;bottom:-22px;z-index:3;margin:16px -22px -22px;padding:14px 22px;background:var(--surface);border-top:1px solid var(--line)}
.field input.invalid{border-color:var(--danger);background:var(--danger-soft)}
.field .err{color:var(--danger);font-size:12.5px;margin-top:4px}
@media (max-width:860px){.toasts{inset-block-end:84px}}

.status.failed{color:var(--danger);font-weight:700}.status.failed i{background:var(--danger)}

/* ---- start order controls inside Scoring ---- */
.ord{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ord .grip{cursor:grab;color:var(--muted);display:inline-flex;padding:4px 2px;border-radius:6px}
.ord .grip:hover{background:var(--surface-2);color:var(--acc-t)} .ord .grip svg{width:18px;height:18px}
.ord .pos-n{font-weight:800;min-width:26px;text-align:center}
.ord-pos{width:52px!important;min-height:32px!important;padding:2px 4px!important;text-align:center;font-weight:800}
.ord-btns{display:inline-flex;flex-direction:column;gap:2px}
.ord-btns .ob{border:1px solid var(--line);background:var(--surface);border-radius:6px;width:28px;height:17px;padding:0;cursor:pointer;display:grid;place-items:center;color:var(--muted)}
.ord-btns .ob:hover{background:var(--primary-soft);color:var(--acc-t);border-color:var(--primary)} .ord-btns .ob svg{width:12px;height:12px}
tr.u-over td{box-shadow:inset 0 3px 0 var(--primary)} .group-card.u-over{box-shadow:0 -4px 0 var(--primary),var(--shadow)}
[data-unit].u-drag{opacity:.35}
@keyframes uflash{0%{background:var(--primary-soft)}100%{background:transparent}}
tr.u-flash td{animation:uflash 1.6s ease-out} .group-card.u-flash{animation:uflash 1.6s ease-out}
.class-chips{display:flex;gap:6px;flex-wrap:wrap}
.class-chips .chip{padding:5px 12px;font-size:13px}
.pair-card header .pair-label{margin:0}

/* =========================================================================
   SCORING LAYOUT – everything visible, no horizontal scrolling
   ========================================================================= */
.srows{display:flex;flex-direction:column;gap:8px}
.srow{display:grid;grid-template-columns:118px minmax(150px,210px) minmax(0,1fr) 96px;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:9px 12px;box-shadow:var(--shadow)}
.srow:hover{border-color:color-mix(in srgb,var(--primary) 50%,var(--line))}
.s-rider{display:flex;align-items:center;gap:10px;min-width:0}.s-rider b{display:block;overflow-wrap:anywhere}
.s-runs{display:flex;gap:8px;flex-wrap:wrap;min-width:0}
.s-runs .runbox{flex:1 1 270px;min-width:0}
.s-total{text-align:center}.s-total-l{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}
.rb-h{font-size:11.5px;font-weight:700;color:var(--muted);margin-bottom:2px}
.runcell{flex-wrap:wrap!important;row-gap:6px}
.runbox{padding:7px 9px}

/* highlighted numbers */
.total{display:inline-block;min-width:58px;padding:5px 12px;border-radius:12px;background:var(--primary-soft);color:var(--acc-t);border:1px solid color-mix(in srgb,var(--primary) 28%,transparent);font-weight:900;font-size:19px;line-height:1.1;text-align:center;font-variant-numeric:tabular-nums}
.total:empty{background:var(--surface-2);box-shadow:none;color:var(--muted)}.total:empty::before{content:"–"}
.net{font-weight:900;font-size:15px;color:var(--text)}
.meta .net{background:var(--primary-soft);color:var(--acc-t);padding:1px 8px;border-radius:8px;min-width:36px}
.fault.neg{background:var(--danger-soft);padding:1px 7px;border-radius:8px}
.g-tot{text-align:end;margin-inline-start:auto}.g-tot b.num{font-size:18px;font-weight:900}

/* team / pair card rows */
.grow{display:grid;grid-template-columns:54px minmax(160px,240px) minmax(0,1fr) 70px;align-items:center;gap:10px;padding:8px 6px;border-top:1px solid var(--line)}
.grow:first-child{border-top:0}
.g-runs{display:flex;gap:10px 14px;flex-wrap:wrap;min-width:0}
.rb{display:flex;flex-direction:column;gap:2px}.rb-l{font-size:10.5px;color:var(--muted);font-weight:700}
.g-pts{text-align:center}.g-pts .net{background:var(--primary-soft);color:var(--acc-t);padding:3px 10px;border-radius:9px;font-size:16px;display:inline-block;min-width:40px}
.group-body{overflow:visible!important;padding:4px 12px}
.group-card header .total{font-size:20px}

@media (max-width:1180px){
  .srow{grid-template-columns:112px minmax(0,1fr) 92px}
  .srow .s-runs{grid-column:1 / -1;order:3}
  .srow .s-total{grid-column:3;grid-row:1}
  .grow{grid-template-columns:48px minmax(0,1fr) 64px}
  .grow .g-runs{grid-column:1 / -1;order:3}
  .grow .g-pts{grid-column:3;grid-row:1}
}
@media (max-width:560px){ .seg button{min-width:27px;height:30px} .srow{padding:8px} }

/* results tables: totals jump out */
#resTable td.n{font-weight:700;font-size:15px}
#resTable td.total{background:var(--primary-soft);color:var(--acc-t);font-weight:900;font-size:18px}
#resTable tr.r1 td.total{background:#f5d97a;color:#4a3600}#resTable tr.r2 td.total{background:#dfe3e6;color:#2b3238}#resTable tr.r3 td.total{background:#e8b78a;color:#4a2a0c}
#resTable td b{font-size:15px}
.tbl-wrap{overflow-x:visible}
@media (max-width:760px){.tbl-wrap{overflow-x:auto}}

/* =========================================================================
   PRINT STATION v2
   ========================================================================= */
.ps2-top h1{margin:0 0 2px}
.ppacks{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:14px 0}
.ps2-grid{display:grid;grid-template-columns:200px minmax(300px,420px) minmax(0,1fr);gap:16px;align-items:start}
.prail{display:flex;flex-direction:column;gap:6px;position:sticky;top:70px}
.prail-b{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:11px 12px;cursor:pointer;font-weight:700;text-align:start;color:var(--muted)}
.prail-b svg{width:20px;height:20px;flex:none}.prail-b span{flex:1}.prail-b i{font-style:normal}
.prail-b:hover{background:var(--surface-2)}.prail-b.on{background:var(--primary-soft);border-color:var(--primary);color:var(--acc-t)}
.plist{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow);min-width:0}
.psearch{margin-bottom:4px}
.pdoc-day{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin:12px 4px 4px}
.pdoc{display:flex;align-items:flex-start;gap:10px;padding:9px 10px;border-radius:10px;cursor:pointer;border:1px solid transparent}
.pdoc:hover{background:var(--surface-2)}.pdoc.on{background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 40%,transparent)}
.pdoc input{width:18px;height:18px;min-height:0;margin-top:2px;accent-color:var(--primary);flex:none}
.pdoc-t{flex:1;min-width:0;display:flex;flex-direction:column}.pdoc-t small{color:var(--muted);font-size:12px;margin-top:2px}.pdoc.strong .pdoc-t>span{font-weight:800}
.pdoc-eye{border:0;background:none;cursor:pointer;color:var(--muted);padding:2px;border-radius:6px;opacity:.5}.pdoc:hover .pdoc-eye{opacity:1}.pdoc-eye:hover{color:var(--acc-t);background:var(--surface)}.pdoc-eye svg{width:18px;height:18px}
.pcard{border-top:1px solid var(--line);margin-top:14px;padding-top:6px}
.pcard-h{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:8px 2px}.pcard-h svg{width:17px;height:17px;vertical-align:-3px}
.pcard-b{padding-top:6px}
.pgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.tabs.sm button{padding:5px 10px;font-size:13px}
.pchks{display:grid;gap:6px;margin-top:12px}.pchk{display:flex;gap:9px;align-items:center;cursor:pointer}.pchk input{width:17px;height:17px;min-height:0;accent-color:var(--primary)}
.ppreview{min-width:0;position:sticky;top:70px}
.ps-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.qchips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;max-height:84px;overflow:auto}
.qchip{display:inline-flex;align-items:center;gap:6px;background:var(--primary-soft);color:var(--acc-t);border-radius:99px;padding:3px 4px 3px 10px;font-size:12px;font-weight:700;cursor:pointer}
.qchip i{font-style:normal;background:var(--primary);color:var(--primary-ink);border-radius:99px;padding:0 7px;font-size:11px}
.qchip button{border:0;background:none;color:inherit;cursor:pointer;font-size:15px;line-height:1;padding:0 4px}
.pempty{display:grid;place-items:center;gap:12px;text-align:center;color:var(--muted);padding:70px 20px;border:2px dashed var(--line);border-radius:var(--radius)}.pempty svg{width:44px;height:44px;opacity:.5}
.ps-scroll{max-height:calc(100vh - 230px)}
@media (max-width:1250px){.ps2-grid{grid-template-columns:minmax(0,1fr)}.prail{position:static;flex-direction:row;flex-wrap:wrap}.prail-b{flex:1 1 150px}.ppreview{position:static}}

/* =========================================================================
   FORMS (printed)
   ========================================================================= */
.pg .club-line,.print-head .club-line{font-weight:700;font-size:13px;color:#0C1015}
.fm-title{font-size:19px;font-weight:900;text-align:center;margin:8px 0 12px;letter-spacing:.02em}
.fm-row{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;margin:7px 0}
.fm-f{display:flex;gap:6px;align-items:flex-end;min-width:150px}
.fm-l{font-size:11px;color:#444;white-space:nowrap;padding-bottom:1px}
.fm-v{flex:1;border-bottom:1.2px solid #222;min-height:19px;padding:0 4px;font-weight:700}
.fm-amp{font-weight:800;padding-bottom:2px}
.cb{display:inline-block;width:13px;height:13px;border:1.6px solid #222;border-radius:2px;margin-inline-end:6px;vertical-align:-2px;background:#fff}
.fm-opt{display:inline-flex;align-items:center;margin-inline-end:16px;margin-bottom:5px;font-size:12px}
.fm-day{margin:4px 0}.fm-day b{display:inline-block;min-width:54px;color:#0C1015}
.fm-sec{font-weight:800;font-size:13px;margin:13px 0 7px;padding:4px 9px;background:#eceff0;border-inline-start:4px solid #0C1015;break-after:avoid}
.fm-decl{border:1px solid #888;border-radius:4px;padding:9px 11px;font-size:11.5px;line-height:1.55;margin:6px 0}
.fm-sigs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:20px;break-inside:avoid}
.fm-sigs.two{grid-template-columns:repeat(2,minmax(0,1fr))}.fm-sigs.four{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:30px}
.fm-sig{border-top:1.5px solid #222;padding-top:5px;font-size:11px;min-height:60px}.fm-sub{margin-top:9px;color:#444;font-size:10.5px}
.fm-stamp{border:1.5px dashed #888;border-radius:6px;height:72px;display:flex;align-items:center;justify-content:center;color:#999;font-size:11px;margin-top:14px;break-inside:avoid}
.fm-note{font-size:11.5px;color:#444;margin:4px 0 8px}
.fm-table td{height:25px}
.fm-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}.fm-block{break-inside:avoid}.fm-bt{font-weight:800;font-size:12px;margin:6px 0 3px;color:#0C1015}
.fm-card{border:1.3px solid #333;border-radius:6px;padding:8px 12px 12px;margin:10px 0;break-inside:avoid}
.pg.form{font-size:calc(11.5px * var(--pf,1))}

/* =========================================================================
   STATS BAR / LIVE STANDINGS / LIVE BOARD
   ========================================================================= */
.statsbar-wrap{display:flex;gap:10px;align-items:stretch;margin-bottom:16px}
/* one quiet card, cells separated by hairlines – same language as the rest of the app */
.statsbar{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);min-width:0}
.stat{background:var(--surface);padding:12px 16px 13px;min-width:0;position:relative;box-shadow:1px 0 0 0 var(--line),0 1px 0 0 var(--line)}
[dir=rtl] .stat{box-shadow:-1px 0 0 0 var(--line),0 1px 0 0 var(--line)}
.stat-l{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--muted)}
.stat-l svg{width:15px;height:15px;flex:none;opacity:.85}
.stat-v{margin-top:4px;font-size:22px;font-weight:800;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--text);overflow-wrap:anywhere}
.stat-s{margin-top:3px;font-size:12.5px;line-height:1.35;color:color-mix(in srgb,var(--text) 72%,transparent);white-space:normal;overflow-wrap:anywhere}.stat-s b{color:var(--text)}
.stat-n{margin-inline-start:8px;color:var(--acc-t);font-weight:900}
.stat.gold .stat-l svg,.stat.blue .stat-l svg{color:var(--accent);opacity:1}
.stat.red .stat-v{color:var(--danger)}
.stat.warn .stat-v{color:var(--warn)}.stat.warn .stat-l{color:var(--warn)}
.stat-bar{display:block;height:4px;margin-top:8px;border-radius:99px;background:var(--surface-2);overflow:hidden}.stat-bar i{display:block;height:100%;background:var(--primary);border-radius:99px}
.stats-actions{display:flex;flex-direction:column;gap:6px;justify-content:center}
.statsbar.big{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin-bottom:16px}.statsbar.big .stat{padding:16px 20px}.statsbar.big .stat-v{font-size:26px}
@media (max-width:860px){.statsbar-wrap{flex-direction:column}.stats-actions{flex-direction:row}}

/* live standings drawer */
.live-drawer{position:fixed;inset-block:70px 14px;inset-inline-end:14px;width:min(380px,calc(100vw - 28px));background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 50px rgba(10,30,20,.28);z-index:90;display:flex;flex-direction:column;overflow:hidden}
.ld-h{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--surface-2)}.ld-h svg{width:18px;height:18px;vertical-align:-3px}
.lv-ctl{display:flex;gap:8px;flex-wrap:wrap;padding:10px 12px;align-items:center}
#ldList{overflow:auto;padding:0 8px 12px}
.lv-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.lv-row{display:flex;align-items:center;gap:12px;padding:8px 6px;border-bottom:1px solid var(--line)}.lv-row:last-child{border-bottom:0}
.lv-n{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}.lv-n b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lv-n small{color:var(--muted);font-size:11.5px}
.lv-g{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;min-width:38px;text-align:end}
.lv-t{font-weight:900;font-size:18px;min-width:52px;text-align:end;color:var(--text);font-variant-numeric:tabular-nums}.lv-row.r1 .lv-t{color:var(--acc-t)}
.lv-mv{font-size:11px;font-weight:800;border-radius:8px;padding:1px 6px}.lv-mv.up{background:var(--primary-soft);color:var(--acc-t)}.lv-mv.down{background:var(--danger-soft);color:var(--danger)}
@keyframes lvmoved{0%{transform:scale(1.03);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 45%,transparent)}100%{transform:none;box-shadow:none}}
.lv-row.moved{animation:lvmoved 1.2s ease-out}

/* live board page */
.live-board h1 svg{width:26px;height:26px;vertical-align:-4px;color:var(--acc-t)}
.lv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px;margin-top:6px}
.ep-row{display:grid;grid-template-columns:minmax(120px,1fr) 2fr 60px;gap:10px;align-items:center;margin:8px 0;font-size:13.5px}.ep-row b{text-align:end}
.feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13.5px}.feed li{display:flex;gap:10px;padding:7px 10px;background:var(--surface-2);border-radius:10px}.feed time{color:var(--muted);font-variant-numeric:tabular-nums;flex:none}
body.board .live-board .lv-row{padding:11px 14px}body.board .live-board .lv-t{font-size:24px}body.board .live-board .lv-n b{font-size:19px}

.ot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ot-b{justify-content:flex-start;gap:10px}.ot-b span{white-space:normal;text-align:start}

.stat-name{display:block;font-size:16px;font-weight:800;line-height:1.25;white-space:normal;overflow-wrap:anywhere;color:var(--text)}
.stat-num{display:block;font-size:26px;font-weight:900;line-height:1.1;margin-top:2px;color:var(--acc-t);font-variant-numeric:tabular-nums}
.stat.warn .stat-num{color:var(--warn)}
.statsbar.big .stat-name{font-size:19px}.statsbar.big .stat-num{font-size:32px}

/* form blocks never exceed their cell; names wrap at spaces inside fixed columns */
.fm-two{align-items:start}.fm-two>*,.fm-one>*{min-width:0}
.fm-block .fm-table{table-layout:fixed;width:100%;max-width:100%}
.fm-block .fm-table th,.fm-block .fm-table td{overflow-wrap:break-word;word-break:normal;padding:4px 6px;hyphens:none}
.fm-one .fm-block{margin-top:2px}
.pg .ptable{max-width:100%}
.pg.cert{overflow:visible!important}
@media print{.pg.cert{overflow:visible!important}}

.nw{display:inline-block;white-space:nowrap}.print-head .hd-sub{line-height:1.45}
.fm-entry{table-layout:fixed;width:100%}.fm-entry th,.fm-entry td{overflow-wrap:break-word;padding:3px 5px}.fm-entry th{font-size:10px}
.fm-sigs.four .fm-stamp{margin-top:0;height:66px}

/* document tables: headings may wrap (the app-wide no-wrap rule is for the on-screen tables only) */
.pg th{white-space:normal;overflow-wrap:break-word;line-height:1.2;vertical-align:bottom}
.pg .ptable.res th{white-space:nowrap}
.fm-entry th{font-size:9.5px;padding:3px 4px}

/* stats: tiles share every row evenly – no empty corner */
.statsbar{display:flex!important;flex-wrap:wrap}
.statsbar .stat{flex:1 1 215px}
.statsbar.big .stat{flex:1 1 260px}
.stat-s .ss-n,.stat-s .ss-e{display:block}.stat-s .ss-e{color:var(--muted)}

.pg th{overflow-wrap:normal!important;word-break:normal!important;hyphens:none}

.pg th{line-height:1.5!important;padding-top:4px;padding-bottom:4px}
[dir=rtl] .pg td,[dir=rtl] .pg th{line-height:1.5}

/* ---- save status chip + saving box ---- */
.status{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:5px 12px 5px 10px;cursor:pointer;font-size:12.5px;color:var(--muted);font-weight:600;max-width:100%}
.status:hover{background:var(--surface-2);color:var(--text)}
.status .dot{width:9px;height:9px;border-radius:50%;background:var(--ok);display:inline-block;flex:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 22%,transparent)}
.status.saving .dot{background:transparent;border:2px solid var(--warn);border-top-color:transparent;box-shadow:none;animation:spin .7s linear infinite}
.status.error{color:var(--danger);border-color:var(--danger);background:var(--danger-soft)}.status.error .dot{background:var(--danger);box-shadow:none}
.status .st-f{font-style:normal;padding-inline-start:8px;border-inline-start:1px solid var(--line);color:var(--acc-t)}.status .st-f.warn{color:var(--warn)}
@keyframes spin{to{transform:rotate(360deg)}}
@media (max-width:860px){.status .st-t{display:none}.status .st-f{border:0;padding:0}.status{padding:6px 9px}}
.sv-sec{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px}.sv-sec.ok{border-color:color-mix(in srgb,var(--ok) 45%,var(--line));background:color-mix(in srgb,var(--ok) 6%,transparent)}.sv-sec.warn{border-color:var(--warn);background:var(--warn-soft)}
.sv-h{display:flex;align-items:center;gap:8px;margin-bottom:4px}.sv-h svg{width:18px;height:18px;color:var(--acc-t)}

/* ---- day progress ---- */
.dp-list{display:flex;flex-direction:column;gap:8px}
.dp-day{display:flex;align-items:center;gap:12px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.dp-n{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--surface-2);font-weight:800;color:var(--muted)}
.dp-t{flex:1;display:flex;flex-direction:column;line-height:1.2}.dp-t small{color:var(--muted);font-size:12px}
.dp-day.now{border-color:var(--primary);background:var(--primary-soft)}.dp-day.now .dp-n{background:var(--primary);color:var(--primary-ink)}.dp-day.now small{color:var(--acc-t);font-weight:700}
.dp-day.done .dp-n{background:var(--primary-soft);color:var(--acc-t)}.dp-day.done .dp-n::after{content:"✓";position:absolute;opacity:0}
.pchk{display:flex;gap:9px;align-items:center;cursor:pointer}.pchk input{width:17px;height:17px;min-height:0;accent-color:var(--primary)}

/* ---- pointer drag ---- */
.grip{touch-action:none;user-select:none;-webkit-user-select:none}
body.dragging-u{cursor:grabbing;user-select:none;-webkit-user-select:none}body.dragging-u *{cursor:grabbing!important}
.u-ghost{opacity:.96;box-shadow:0 18px 40px rgba(10,30,20,.28)!important;border-radius:14px;background:var(--surface);transform:scale(1.01);outline:2px solid var(--primary)}
.srow.u-over,.group-card.u-over{box-shadow:0 -4px 0 var(--primary),var(--shadow);border-color:var(--primary)}
tr.so-row.u-over td{box-shadow:inset 0 3px 0 var(--primary)}
/* while dragging, tall team / pair cards fold up to their header so every card is reachable on screen */
body.dragging-u #scoreBody .group-card .group-body{display:none}
.u-ghost .group-body{display:none}

.g-tots{display:flex;gap:18px;align-items:flex-end;margin-inline-start:auto}.g-tots .g-tot{text-align:center;margin:0}.g-tots b.num{font-size:17px;font-weight:900}.g-tots .total{font-size:19px;padding:4px 12px;min-width:54px}

/* the highlighted "total chip" is for standalone numbers – inside table cells the total stays a normal cell */
td.total,th.total{display:table-cell!important;min-width:0;border-radius:0;box-shadow:none;border:0;border-bottom:1px solid var(--line);padding:8px 10px;line-height:inherit;text-align:center}
#resTable td.total{font-size:18px}
.ptable td.total{border:1px solid #9aa!important;padding:5px 8px;background:#e6f2ec;color:#0b5a41;font-size:calc(14px * var(--pf,1));font-weight:900}
.pg.dense .ptable td.total{font-size:calc(12px * var(--pf,1))}

/* ---- points · faults · total on every row ---- */
.srow{grid-template-columns:118px minmax(150px,210px) minmax(0,1fr) 138px}
.s-sum{display:flex;flex-direction:column;gap:4px;min-width:0}
.s-sum-r{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12.5px;color:var(--muted)}
.s-sum-r b{font-size:15px;color:var(--text);font-variant-numeric:tabular-nums;font-weight:800}
.s-sum-r b.fault.neg{color:var(--danger);background:transparent;padding:0}
.s-sum-r.tot{margin-top:2px;padding-top:6px;border-top:1px solid var(--line)}.s-sum-r.tot span:first-child{font-weight:700;color:var(--text)}
.meta .pts{font-weight:800;color:var(--text)}
.ghead{padding:2px 6px 4px!important;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;border-top:0!important}
.ghead .g-pts{text-align:center}
@media (max-width:1180px){.srow{grid-template-columns:112px minmax(0,1fr) 128px}.srow .s-sum{grid-column:3;grid-row:1}.ghead{display:none}}

/* signature line sits ABOVE the table now, so it can never be orphaned on a page of its own */
.sheet-sign{display:flex;gap:22px;margin:4px 0 10px;font-size:12px}.sheet-sign span{flex:1;display:flex;gap:8px;align-items:flex-end;white-space:nowrap}.sheet-sign i{flex:1;border-bottom:1.2px solid #222;min-height:16px;display:block}
/* narrow columns (numbers, class) never break inside a word – whatever the text size */
.fm-entry td:nth-child(2),.fm-entry td:nth-child(6),.fm-entry td:nth-child(1){overflow-wrap:normal;word-break:keep-all;white-space:nowrap;text-align:center}
.fm-entry td{font-size:.94em}

/* phone: the bottom bar scrolls inside itself, the page never scrolls sideways */
html,body{max-width:100%;overflow-x:hidden}
@media (max-width:860px){
  .nav{overflow-x:auto;overflow-y:hidden;justify-content:flex-start;scrollbar-width:none;-webkit-overflow-scrolling:touch;width:100%}
  .nav::-webkit-scrollbar{display:none}
  .nav button.item{flex:0 0 auto;min-width:70px;padding:6px 8px}
  .main,.content{min-width:0;max-width:100vw}
  .topbar{flex-wrap:wrap;gap:8px}.champ-switch{max-width:100%;flex:1 1 100%}
}

@media (max-width:860px){
  #compGrid,.so-grid{grid-template-columns:minmax(0,1fr)!important}
  .tabs{display:flex;flex-wrap:wrap;overflow:visible}
  .ps-bar .btn{flex:1 1 120px}
  #soTable th:nth-child(3),#soTable td:nth-child(3),#soTable th:nth-child(5),#soTable td:nth-child(5){display:none}
}

/* ---- jury adjustment ---- */
.adj-btn{border:1px solid var(--line);background:var(--surface);border-radius:7px;min-width:24px;height:22px;padding:0 6px;cursor:pointer;font-weight:800;color:var(--muted);line-height:1}
.adj-btn:hover{background:var(--primary-soft);color:var(--acc-t);border-color:var(--primary)}
.adj-note{font-size:11.5px;font-weight:700;color:var(--warn);text-align:center}.adj-note:empty{display:none}.adj-note.neg{color:var(--danger)}
/* ---- viewer (read-only live board on the network) ---- */
body.viewer [data-live=second],body.viewer .tie-in,body.viewer .stats-actions,body.viewer [data-act=savebox],body.viewer .noprint .btn[data-act=print],body.viewer [data-act=csv]{display:none!important}

/* official-rule flags */
.flag-sel{width:auto;min-width:40px;max-width:150px;padding:4px 6px;font-size:12px;border-radius:8px}
.flag-sel.bad{background:var(--danger-bg,#fde8e8);color:var(--danger,#b42318);border-color:var(--danger,#b42318);font-weight:700}
.flag-sel.warn{background:var(--warn-bg,#fff4e0);color:var(--warn,#a15c00);border-color:var(--warn,#a15c00);font-weight:700}
.runbox.void{background:var(--danger-bg,#fde8e8)}
.x-btn{border:0;background:transparent;cursor:pointer;color:var(--muted);font-size:15px;padding:2px 6px;border-radius:6px}.x-btn:hover{background:var(--line);color:var(--text)}
.lim{font-size:11px;color:var(--warn,#a15c00);font-weight:700}
