/* Paddle City x Pickle Time — tournament planning document */
:root{
  --ink:#091630;--ink-2:#414c61;--ink-3:#6d7789;--ink-4:#9aa2b1;
  --paper:#fff;--paper-2:#f8f9fb;--paper-3:#f1f3f7;
  --line:rgba(9,22,48,.10);--line-2:rgba(9,22,48,.16);--line-3:rgba(9,22,48,.30);
  --em:#16a14a;--em-ink:#0f7735;--em-soft:rgba(22,161,74,.09);
  --yl:#ffd400;--yl-soft:rgba(255,212,0,.18);--yl-line:rgba(184,150,0,.5);--yl-ink:#6b5600;
  --bl:#2563eb;--bl-soft:rgba(37,99,235,.08);--bl-line:rgba(37,99,235,.32);
  --rd:#c2410c;--rd-soft:rgba(194,65,12,.08);
  --d:"Space Grotesk",system-ui,sans-serif;--b:"Inter",system-ui,sans-serif;
  --wrap:1180px;--r:13px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--b);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--d);margin:0;line-height:1.07;letter-spacing:-.022em;font-weight:600}
p{margin:0}
a{color:var(--em-ink)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px}
.tnum{font-variant-numeric:tabular-nums}

#prog{position:fixed;top:0;left:0;height:2px;background:var(--em);width:0;z-index:95}
.nav{position:sticky;top:0;z-index:80;background:rgba(255,255,255,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav__in{display:flex;align-items:center;gap:22px;height:60px;max-width:var(--wrap);margin:0 auto;padding:0 32px}
.mark{display:flex;align-items:center;gap:9px;font-family:var(--d);font-weight:600;font-size:15px;white-space:nowrap;text-decoration:none;color:var(--ink)}
.mark .dot{width:9px;height:9px;border-radius:50%;background:var(--em)}
.mark .x{color:var(--ink-4);font-weight:400}
.nav__sp{margin-left:auto}
.saved{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:500;color:var(--ink-3);white-space:nowrap;padding-right:4px}
.saved .sdot{width:7px;height:7px;border-radius:50%;background:var(--em);flex:none;transition:background .2s}
.saved.is-saving{color:var(--ink-4)}
.saved.is-saving .sdot{background:var(--yl);animation:pulse 1s ease-in-out infinite}
.saved.is-error{color:var(--rd)}
.saved.is-error .sdot{background:var(--rd)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
@media(prefers-reduced-motion:reduce){.saved .sdot{animation:none}}
@media(max-width:640px){.saved .stxt{display:none}}
.navbtn{font-family:var(--d);font-size:13px;font-weight:600;padding:8px 15px;border-radius:8px;border:1px solid var(--line-2);background:var(--paper);cursor:pointer;white-space:nowrap}
.navbtn:hover{background:var(--paper-3)}
.navbtn--p{background:var(--ink);color:#fff;border-color:var(--ink)}
.navbtn--p:hover{background:#16244a}

/* section pill rail */
.subnav{position:sticky;top:60px;z-index:70;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.pills{display:flex;gap:6px;padding:11px 0;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.pills::-webkit-scrollbar{display:none}
.pills a{font-size:13px;font-weight:500;color:var(--ink-3);padding:7px 14px;border-radius:999px;text-decoration:none;white-space:nowrap;border:1px solid var(--line);background:var(--paper);transition:.15s}
.pills a:hover{color:var(--ink);border-color:var(--line-3)}
.pills a.on{color:#fff;background:var(--ink);border-color:var(--ink)}
@media(max-width:1060px){.mark .x{display:none}}

/* status labels */
.tag{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:3px 8px;border-radius:4px;white-space:nowrap;vertical-align:middle;font-family:var(--b)}
.tag--conf{background:var(--em-soft);border:1px solid rgba(22,161,74,.35);color:var(--em-ink)}
.tag--asm{background:var(--yl-soft);border:1px dashed var(--yl-line);color:var(--yl-ink)}
.tag--todo{background:var(--rd-soft);border:1px solid rgba(194,65,12,.3);color:var(--rd)}
.tag--rec{background:var(--bl-soft);border:1px solid var(--bl-line);color:var(--bl)}
.tag--est{background:var(--paper-3);border:1px solid var(--line-2);color:var(--ink-3)}

/* hero */
.hero{padding:64px 0 76px;border-bottom:1px solid var(--line)}
.vs{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:30px}
.vs__n{font-family:var(--d);font-size:clamp(19px,2.6vw,27px);font-weight:600;letter-spacing:-.02em}
.vs__x{width:30px;height:30px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;font-size:13px;color:var(--ink-3);flex:none}
.hero h1{font-size:clamp(34px,5.6vw,62px);max-width:20ch;letter-spacing:-.03em}
.hero h1 em{font-style:normal;color:var(--em)}
.hero .sub{margin-top:22px;font-size:18px;color:var(--ink-2);max-width:64ch;text-wrap:pretty}

/* concept chain */
.concept{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-2);border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;margin-top:46px}
@media(max-width:840px){.concept{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.concept{grid-template-columns:1fr}}
.concept__s{background:var(--paper);padding:20px 21px}
.concept__s b{font-family:var(--d);font-size:11px;font-weight:700;color:var(--ink-4);letter-spacing:.08em}
.concept__s .t{font-family:var(--d);font-size:16px;font-weight:600;margin-top:9px;line-height:1.25}
.concept__s .w{font-size:13px;color:var(--ink-3);margin-top:7px}
.concept__s--e{background:var(--em-soft)}

/* legend */
.legend{margin-top:34px;border:1px solid var(--line-2);border-radius:var(--r);padding:20px 22px;background:var(--paper-2)}
.legend h4{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);font-family:var(--b);margin-bottom:15px}
.legend ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
@media(max-width:900px){.legend ul{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.legend ul{grid-template-columns:1fr}}
.legend li{font-size:12.5px;color:var(--ink-2);line-height:1.45}
.legend li .tag{display:flex;width:fit-content;margin-bottom:7px}

/* sections */
.sec{padding:88px 0;border-top:1px solid var(--line)}
.sec--alt{background:var(--paper-2)}
.shead{max-width:820px;margin-bottom:44px}
.snum{display:flex;align-items:center;gap:12px;margin-bottom:19px;flex-wrap:wrap}
.snum b{font-family:var(--d);font-size:12px;font-weight:700;color:var(--em)}
.snum i{height:1px;width:48px;background:var(--line-2);font-style:normal}
.snum span{font-size:10.5px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-4)}
.shead h2{font-size:clamp(27px,3.9vw,43px)}
.shead .lede{margin-top:17px;font-size:17px;color:var(--ink-2);max-width:68ch;text-wrap:pretty}
.note{margin-top:16px;font-size:13px;color:var(--ink-3);display:flex;gap:10px;max-width:74ch}
.note::before{content:"";width:2px;background:var(--yl);border-radius:2px;flex:none;align-self:stretch}
.note--rec::before{background:var(--bl)}

/* form primitives */
.fgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:900px){.fgrid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.fgrid{grid-template-columns:1fr}}
.fld label,.fld .lab{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--ink-3);margin-bottom:7px;letter-spacing:.02em}
.fld input[type=text],.fld input[type=date],.fld input[type=time],.fld input[type=number],.fld select,.fld textarea{
  width:100%;font-family:var(--b);font-size:15px;color:var(--ink);background:var(--paper);
  border:1px solid var(--line-2);border-radius:9px;padding:11px 13px;transition:.15s;font-variant-numeric:tabular-nums}
.fld textarea{resize:vertical;min-height:64px;font-size:14px}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--em);box-shadow:0 0 0 3px var(--em-soft)}
.fld input::placeholder{color:var(--ink-4)}
.fld .hint{font-size:11.5px;color:var(--ink-4);margin-top:6px}

/* choice chips */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative}
.chip input{position:absolute;opacity:0;width:0;height:0}
.chip span{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:500;padding:9px 15px;border:1px solid var(--line-2);border-radius:9px;background:var(--paper);cursor:pointer;transition:.15s;user-select:none}
.chip span:hover{border-color:var(--line-3)}
.chip input:checked+span{border-color:var(--em);background:var(--em-soft);color:var(--em-ink);font-weight:600}
.chip input:focus-visible+span{outline:2px solid var(--em);outline-offset:2px}
.chip--r input:checked+span{border-color:var(--ink);background:var(--ink);color:#fff}
/* the courts/days "Other" input sits on its own line so a full chip row can't push it past the edge */
#pick-courts>.chip:last-child,#pick-days>.chip:last-child{flex:1 0 100%;margin-top:2px}

/* division builder */
.cat{border:1px solid var(--line-2);border-radius:var(--r);background:var(--paper);margin-bottom:16px;overflow:hidden}
.cat__h{display:flex;align-items:center;gap:12px;padding:15px 19px;background:var(--paper-2);border-bottom:1px solid var(--line)}
.cat__h input.catname{font-family:var(--d);font-size:16px;font-weight:600;border:1px solid transparent;background:transparent;border-radius:7px;padding:5px 8px;color:var(--ink);min-width:0;flex:1}
.cat__h input.catname:hover{border-color:var(--line-2)}
.cat__h input.catname:focus{outline:none;border-color:var(--em);background:var(--paper)}
.cat__tot{font-size:12px;color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums}
.dtable{width:100%;border-collapse:collapse}
.dtable th{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.dtable td{padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.dtable tr:last-child td{border-bottom:0}
.dtable input,.dtable select{width:100%;font-family:var(--b);font-size:14px;border:1px solid transparent;background:transparent;border-radius:7px;padding:7px 9px;color:var(--ink);font-variant-numeric:tabular-nums}
.dtable input:hover,.dtable select:hover{border-color:var(--line-2);background:var(--paper)}
.dtable input:focus,.dtable select:focus{outline:none;border-color:var(--em);background:var(--paper);box-shadow:0 0 0 3px var(--em-soft)}
.dtable td.num{width:104px}
.dtable td.act{width:44px;text-align:right}
.xbtn{width:26px;height:26px;border-radius:7px;border:1px solid transparent;background:transparent;color:var(--ink-4);cursor:pointer;font-size:15px;line-height:1;display:grid;place-items:center}
.xbtn:hover{border-color:var(--line-2);color:var(--rd);background:var(--rd-soft)}
.addrow{display:flex;gap:9px;padding:13px 12px;flex-wrap:wrap}
.addbtn{font-family:var(--b);font-size:13px;font-weight:600;color:var(--em-ink);background:var(--em-soft);border:1px dashed rgba(22,161,74,.4);border-radius:8px;padding:8px 14px;cursor:pointer}
.addbtn:hover{background:rgba(22,161,74,.14)}
.addbtn--n{color:var(--ink-2);background:var(--paper-3);border-color:var(--line-2)}
.addbtn--n:hover{background:var(--line)}

/* reconcile bar */
.recon{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-2);border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;margin-top:22px}
@media(max-width:720px){.recon{grid-template-columns:1fr 1fr}}
.recon__i{background:var(--paper);padding:16px 18px}
.recon__i .k{font-size:11.5px;color:var(--ink-3)}
.recon__i .v{font-family:var(--d);font-size:25px;font-weight:600;letter-spacing:-.03em;margin-top:4px;font-variant-numeric:tabular-nums}
.recon__i--ok .v{color:var(--em)}
.recon__i--warn .v{color:var(--rd)}

/* stage editor */
.dstage{border:1px solid var(--line-2);border-radius:var(--r);background:var(--paper);margin-bottom:14px;overflow:hidden}
.dstage>summary{padding:15px 19px;cursor:pointer;display:flex;align-items:center;gap:12px;font-family:var(--d);font-size:15.5px;font-weight:600;background:var(--paper-2);list-style:none}
.dstage>summary::-webkit-details-marker{display:none}
.dstage>summary::before{content:"\25B8";color:var(--ink-4);font-size:12px;transition:.15s}
.dstage[open]>summary::before{transform:rotate(90deg)}
.dstage>summary .meta{margin-left:auto;font-family:var(--b);font-size:12px;font-weight:400;color:var(--ink-3);font-variant-numeric:tabular-nums}
.dstage__body{padding:18px 19px 20px}
.stg{border:1px solid var(--line);border-radius:11px;padding:15px 16px;margin-bottom:11px;background:var(--paper-2)}
.stg__h{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.stg__n{font-family:var(--d);font-size:11px;font-weight:700;color:var(--em);letter-spacing:.08em;white-space:nowrap}
.stg__h input{font-family:var(--d);font-size:14.5px;font-weight:600;border:1px solid transparent;background:transparent;border-radius:6px;padding:4px 7px;flex:1;min-width:0;color:var(--ink)}
.stg__h input:hover{border-color:var(--line-2);background:var(--paper)}
.stg__h input:focus{outline:none;border-color:var(--em);background:var(--paper)}
.stg__g{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:11px}
.stg__g .fld label{font-size:11px;margin-bottom:5px}
.stg__g input,.stg__g select{padding:8px 10px;font-size:13.5px}

/* scheduling + calculator */
.calc{display:grid;grid-template-columns:.92fr 1.08fr;border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;background:var(--paper)}
@media(max-width:900px){.calc{grid-template-columns:1fr}}
.calc__in{padding:26px 27px;background:var(--paper-2);border-right:1px solid var(--line)}
@media(max-width:900px){.calc__in{border-right:0;border-bottom:1px solid var(--line)}}
.calc__out{padding:26px 27px}
.calc h4{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);font-family:var(--b);margin-bottom:18px}
.sl{margin-bottom:16px}
.sl:last-child{margin-bottom:0}
.sl label{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;color:var(--ink-2);margin-bottom:6px}
.sl label b{font-family:var(--d);font-size:15.5px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.sl input[type=range]{width:100%;accent-color:var(--em);height:4px;cursor:pointer}
.outs{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.out{border-top:1px solid var(--line);padding-top:12px}
.out .k{font-size:12px;color:var(--ink-3)}
.out .v{font-family:var(--d);font-size:27px;font-weight:600;letter-spacing:-.03em;margin-top:4px;font-variant-numeric:tabular-nums}
.out .v small{font-family:var(--b);font-size:12.5px;font-weight:400;color:var(--ink-3);letter-spacing:0;margin-left:4px}
.out--hi .v{color:var(--em)}
.out--warn .v{color:var(--rd)}
.flag{margin-top:20px;font-size:13px;border-radius:10px;padding:13px 15px;display:none}
.flag.on{display:block}
.flag--warn{background:var(--rd-soft);border:1px solid rgba(194,65,12,.28);color:#7c2d12}
.flag--ok{background:var(--em-soft);border:1px solid rgba(22,161,74,.3);color:var(--em-ink)}

/* courts cause-effect */
.cause{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:24px}
@media(max-width:720px){.cause{grid-template-columns:1fr}}
.cause__c{border:1px solid var(--line-2);border-radius:var(--r);padding:20px 21px;background:var(--paper)}
.cause__c b{font-family:var(--d);font-size:15px;font-weight:600}
.cause__c ol{margin:12px 0 0;padding-left:18px;font-size:14px;color:var(--ink-2);line-height:1.7}

/* checklist */
.ck{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
@media(max-width:760px){.ck{grid-template-columns:1fr}}
.ckg{margin-bottom:26px}
.ckg h4{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);font-family:var(--b);margin-bottom:11px;padding-bottom:9px;border-bottom:1px solid var(--line-2)}
.ck label{display:flex;align-items:center;gap:12px;padding:9px 2px;font-size:14.5px;cursor:pointer;border-bottom:1px solid var(--line)}
.ck label:hover{color:var(--em-ink)}
.ck input{appearance:none;width:18px;height:18px;border:1.5px solid var(--line-3);border-radius:5px;flex:none;cursor:pointer;position:relative;background:var(--paper)}
.ck input:checked{background:var(--em);border-color:var(--em)}
.ck input:checked::after{content:"";position:absolute;left:5px;top:2px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.ck input:focus-visible{outline:2px solid var(--em);outline-offset:2px}
.ck label:has(input:checked) span{text-decoration:line-through;color:var(--ink-4)}

/* recommendation */
.rec{border:1px solid var(--bl-line);border-radius:var(--r);background:var(--bl-soft);padding:28px 30px}
.rec h3{font-size:20px;font-weight:600;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.rec ul{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:11px}
.rec li{display:flex;gap:12px;font-size:14.5px;color:var(--ink-2);line-height:1.5}
.rec li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--bl);flex:none;margin-top:8px}

/* workflow */
.wf{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-2);border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden}
@media(max-width:860px){.wf{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.wf{grid-template-columns:1fr}}
.wf__p{background:var(--paper);padding:0}
.wf__p h4{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);font-family:var(--b);padding:14px 18px;background:var(--paper-2);border-bottom:1px solid var(--line)}
.wf__p ol{list-style:none;margin:0;padding:12px 18px 18px;counter-reset:w}
.wf__p li{font-size:13.5px;color:var(--ink-2);padding:6px 0 6px 26px;position:relative;counter-increment:w}
.wf__p li::before{content:counter(w);position:absolute;left:0;top:6px;font-family:var(--d);font-size:10.5px;font-weight:700;color:#fff;width:17px;height:17px;border-radius:5px;background:var(--em);display:grid;place-items:center}

/* pricing */
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
@media(max-width:880px){.pgrid{grid-template-columns:1fr;gap:28px}}
.pbig{font-family:var(--d);font-size:clamp(66px,11vw,116px);font-weight:600;letter-spacing:-.05em;line-height:.9}
.pbig span{font-size:.34em;letter-spacing:-.02em;color:var(--ink-3);font-weight:500}
.eq{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin-top:30px;padding-top:24px;border-top:1px solid var(--line)}
.eq__i .k{font-size:11px;color:var(--ink-4);font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.eq__i .v{font-family:var(--d);font-size:24px;font-weight:600;letter-spacing:-.025em;margin-top:4px;font-variant-numeric:tabular-nums}
.eq__o{font-family:var(--d);font-size:19px;color:var(--ink-4)}
.eq__i--tot .v{color:var(--em)}
.pcard{border:1px solid var(--line-2);border-radius:var(--r);padding:25px 26px;background:var(--paper-2)}
.pcard .res{margin-top:20px;padding-top:18px;border-top:1px solid var(--line-2);display:flex;justify-content:space-between;align-items:baseline;gap:14px}
.pcard .res .k{font-size:13px;color:var(--ink-3)}
.pcard .res .v{font-family:var(--d);font-size:31px;font-weight:600;letter-spacing:-.03em;color:var(--em);font-variant-numeric:tabular-nums}

/* screenshots */
.shots{display:grid;grid-template-columns:1fr 1fr;gap:24px}
@media(max-width:780px){.shots{grid-template-columns:1fr}}
.shots figure{margin:0;display:flex;flex-direction:column}
.shot{border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;background:var(--paper);box-shadow:0 1px 2px rgba(9,22,48,.04),0 16px 36px -26px rgba(9,22,48,.2)}
.shot__bar{display:flex;align-items:center;gap:10px;height:34px;padding:0 13px;background:var(--paper-2);border-bottom:1px solid var(--line)}
.shot__bar .dots{display:flex;gap:5px}
.shot__bar .dots i{width:8px;height:8px;border-radius:50%;background:var(--line-3);display:block}
.shot__bar .u{font-size:11px;color:var(--ink-4);font-family:var(--d)}
.shot__v{aspect-ratio:16/10;overflow:hidden;line-height:0;background:#0a0f1a}
.shot__v img{width:100%;height:100%;object-fit:cover;object-position:top left;display:block}
.slot{aspect-ratio:16/10;background:repeating-linear-gradient(135deg,var(--paper-2) 0 10px,var(--paper-3) 10px 20px);display:grid;place-content:center;gap:8px;text-align:center;padding:20px}
.slot__t{font-family:var(--d);font-size:14.5px;font-weight:600;color:var(--ink-2)}
.slot__p{font-size:11px;color:var(--ink-4);font-family:var(--d);background:var(--paper);border:1px solid var(--line-2);border-radius:6px;padding:3px 9px;display:inline-block}
.shots figcaption{margin-top:12px}
.shots figcaption b{font-family:var(--d);font-size:15.5px;font-weight:600;display:block}
.shots figcaption span{font-size:13px;color:var(--ink-2);display:block;margin-top:4px}

/* closing */
.close{background:var(--ink);color:#fff;padding:88px 0 80px}
.close h2{font-size:clamp(28px,4.2vw,49px);color:#fff;max-width:23ch}
.close .lede{margin-top:22px;font-size:17px;color:rgba(255,255,255,.72);max-width:66ch}
.close .snum b{color:var(--yl)}
.close .snum i{background:rgba(255,255,255,.22)}
.close .snum span{color:rgba(255,255,255,.5)}
.cta{display:flex;gap:13px;flex-wrap:wrap;margin-top:38px}
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--d);font-size:15px;font-weight:600;padding:14px 24px;border-radius:10px;border:1px solid transparent;cursor:pointer;text-decoration:none}
.btn--p{background:var(--yl);color:var(--ink);border-color:var(--yl)}
.btn--p:hover{background:#ffdf3d}
.btn--s{background:transparent;color:#fff;border-color:rgba(255,255,255,.3)}
.btn--s:hover{border-color:rgba(255,255,255,.6);background:rgba(255,255,255,.06)}
.sigs{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:560px;margin-top:56px}
@media(max-width:520px){.sigs{grid-template-columns:1fr}}
.sig{border-top:2px solid rgba(255,255,255,.35);padding-top:13px}
.sig .k{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:7px}
.sig .n{font-family:var(--d);font-size:18px;font-weight:600;color:#fff}
.sig .o{font-size:13.5px;color:rgba(255,255,255,.6);margin-top:2px}
.foot{border-top:1px solid var(--line);padding:26px 0;font-size:12.5px;color:var(--ink-4);display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}

/* export dialog */
dialog.exp{border:1px solid var(--line-2);border-radius:16px;padding:0;max-width:760px;width:calc(100% - 48px);box-shadow:0 30px 80px -20px rgba(9,22,48,.4)}
dialog.exp::backdrop{background:rgba(9,22,48,.45);backdrop-filter:blur(3px)}
.exp__h{display:flex;align-items:center;gap:14px;padding:20px 24px;border-bottom:1px solid var(--line)}
.exp__h h3{font-size:18px;flex:1}
.exp__b{padding:20px 24px 24px}
.exp__b textarea{width:100%;height:340px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.6;border:1px solid var(--line-2);border-radius:10px;padding:14px;color:var(--ink);background:var(--paper-2);resize:vertical}
.exp__f{display:flex;gap:10px;justify-content:flex-end;padding:0 24px 22px}

.rv{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

.printonly{display:none}
.lbl-sm{display:none}

/* ---------- mobile (screen) ---------- */
@media(max-width:640px){
  .wrap{padding:0 18px}
  .nav__in{padding:0 18px;gap:12px}
  .pills{padding:10px 0}
  .sec{padding:54px 0}
  .shead{margin-bottom:30px}
  .hero{padding:44px 0 54px}

  /* nav fits on a phone: compact brand, short Send label, no Print in the bar */
  .mark{font-size:14px}
  #btn-print{display:none}
  .navbtn{padding:8px 13px;font-size:12.5px}
  .lbl-lg{display:none}
  .lbl-sm{display:inline}

  /* division rows become labeled stacked cards (the 7-col table can't fit) */
  .dtable thead{display:none}
  .dtable,.dtable tbody,.dtable tr,.dtable td{display:block;width:auto}
  .dtable tr{border-bottom:1px solid var(--line);padding:6px 0}
  .dtable tr:last-child{border-bottom:0}
  .dtable td{display:flex;align-items:center;gap:12px;padding:6px 14px;border:0}
  .dtable td::before{content:attr(data-label);flex:0 0 90px;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-4)}
  .dtable td.num{width:auto}
  .dtable td.act{width:auto;justify-content:flex-end}
  .dtable td.act::before{display:none}
  /* touch has no hover: give editable fields a visible resting border */
  .dtable input,.dtable select{border-color:var(--line-2);background:var(--paper)}
  .cat__tot{font-size:11px}

  /* stage summary: drop the match/teams meta below the title so neither is cramped */
  .dstage>summary{flex-wrap:wrap}
  .dstage>summary .meta{margin-left:26px;flex-basis:100%}

  /* category header: editable name gets the full row, the tally sits below it */
  .cat__h{flex-wrap:wrap}
  .cat__tot{order:3;flex-basis:100%}
}
@media(max-width:400px){
  .wrap{padding:0 14px}
  .nav__in{padding:0 14px;gap:10px}
  .dtable td::before{flex-basis:82px}
}

@media print{
  @page{margin:14mm 13mm}
  html,body{background:#fff!important}
  body{font-size:9.5pt;line-height:1.45}
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .wrap{max-width:none;padding:0}

  /* chrome and non-essential narrative are not part of the record */
  .nav,#prog,.subnav,.saved,.navbtn,.cta,.xbtn,.addrow,dialog.exp,
  .hero,#workflow,#evidence,#recommendation,.cause,.note--rec,.close{display:none!important}

  /* print-only header */
  .printonly{display:block}
  #print-head{padding:0 0 14px;margin-bottom:16px;border-bottom:2px solid var(--ink)}
  .ph__brand{font-family:var(--b);font-size:8.5pt;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
  #print-head h1{font-family:var(--d);font-size:22pt;font-weight:600;letter-spacing:-.02em;margin:6px 0 14px}
  .ph__meta{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
  .ph__meta div{display:flex;flex-direction:column;gap:2px}
  .ph__meta span{font-size:7pt;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-4)}
  .ph__meta b{font-size:9pt;font-weight:600}
  .ph__note{font-size:8pt;color:var(--ink-3);margin-top:12px}

  /* sections */
  .sec{padding:0 0 20px!important;border-top:0!important;background:#fff!important;break-inside:auto}
  .sec--alt{background:#fff!important}
  .shead{margin-bottom:14px;max-width:none;break-after:avoid}
  .shead h2{font-size:14pt}
  .shead .lede{font-size:9pt;margin-top:6px}
  .snum b{font-size:8.5pt}
  .snum span{font-size:7.5pt}
  .note{font-size:8pt;margin-top:10px}

  /* grids: predictable at paper width */
  .fgrid{grid-template-columns:repeat(3,1fr)!important;gap:10px}
  .fgrid .fld label,.fgrid .fld .lab{font-size:7.5pt;margin-bottom:3px}
  .fgrid .hint{display:none}
  input,select,textarea{font-size:9pt!important;padding:6px 8px!important;border:1px solid var(--line-2)!important;background:#fff!important;box-shadow:none!important}
  input[type=range]{display:none!important}
  .sl{margin-bottom:6px}
  .sl label{margin-bottom:0;font-size:8.5pt}
  .sl label b{font-size:10pt}
  .chips{gap:5px}
  .chip span{font-size:8.5pt;padding:5px 9px}

  /* divisions */
  .cat{break-inside:avoid;margin-bottom:10px}
  .cat__h{padding:8px 12px}
  .cat__h input.catname{font-size:11pt;padding:2px 4px}
  .cat__tot{font-size:8pt}
  .dtable{table-layout:fixed;width:100%}
  .dtable th{font-size:6.8pt;padding:6px 6px}
  .dtable td{padding:3px 6px}
  .dtable td.num{width:62px}
  .dtable td.act{display:none}
  .dtable th:last-child{display:none}
  .recon{grid-template-columns:repeat(4,1fr);break-inside:avoid}
  .recon__i{padding:9px 11px}
  .recon__i .k{font-size:7.5pt}
  .recon__i .v{font-size:13pt}

  /* stages */
  .dstage{break-inside:avoid;margin-bottom:8px}
  .dstage>summary{padding:8px 12px;font-size:10pt}
  .dstage>summary::before{content:""}
  .dstage>summary .meta{font-size:7.5pt}
  .dstage__body{display:block!important;padding:10px 12px 12px}
  .stg{padding:9px 10px;margin-bottom:7px;break-inside:avoid}
  .stg__h{margin-bottom:8px}
  .stg__n{font-size:7.5pt}
  .stg__h input{font-size:9.5pt}
  .stg__g{grid-template-columns:repeat(4,1fr);gap:7px}
  .stg__g .fld label{font-size:7pt}

  /* capacity */
  .calc{grid-template-columns:1fr!important;break-inside:avoid}
  .calc__in{border-right:0!important;border-bottom:1px solid var(--line);padding:14px 16px}
  .calc__out{padding:14px 16px}
  .calc h4{font-size:7.5pt;margin-bottom:10px}
  .calc__in>p{display:none}
  .outs{grid-template-columns:repeat(4,1fr);gap:12px}
  .out{padding-top:8px}
  .out .k{font-size:7.5pt}
  .out .v{font-size:14pt}
  .flag{font-size:8pt;padding:9px 11px;break-inside:avoid}

  /* checklist */
  .ck{grid-template-columns:1fr 1fr;gap:0 26px}
  .ckg{margin-bottom:14px;break-inside:avoid}
  .ckg h4{font-size:7.5pt;margin-bottom:6px;padding-bottom:5px}
  .ck label{font-size:8.5pt;padding:4px 2px}
  .ck input{width:12px;height:12px;border:1.2px solid #444!important;border-radius:3px}
  .ck input:checked{background:var(--em)!important;border-color:var(--em)!important}
  .ck input:checked::after{left:3.5px;top:1px;width:3.5px;height:6px;border-width:0 1.5px 1.5px 0}
  .ck label:has(input:checked) span{text-decoration:line-through}

  /* pricing */
  .pgrid{grid-template-columns:1fr 1fr;gap:20px;break-inside:avoid}
  .pbig{font-size:40pt}
  .eq{margin-top:14px;padding-top:12px;gap:10px}
  .eq__i .v{font-size:13pt}
  .pcard{padding:14px 16px}
  .pcard .res .v{font-size:18pt}

  .tag{font-size:6.5pt;padding:2px 6px;border-width:1px!important}
  .rv{opacity:1!important;transform:none!important}

  /* appendix */
  #print-appendix{break-before:page;padding:0}
  #print-appendix h2{font-family:var(--d);font-size:14pt;margin-bottom:5px}
  #print-appendix>.wrap>p{font-size:8pt;color:var(--ink-3);margin-bottom:12px}
  #print-summary{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:7.5pt;line-height:1.45;white-space:pre-wrap;word-break:break-word;margin:0;color:var(--ink)}
  .foot{border-top:1px solid var(--line);padding:12px 0 0;font-size:7.5pt}
}
