:root{
  --ground:#14100f; --surface:#1e1917; --ink:#f4efec; --muted:#ab9d95; --line:#362d29;
  --lib:#8fabe0; --lib-soft:#1d2b45; --snob:#e39aa8; --snob-soft:#3b2026;
  --flag:#d9b551; --ok:#77c493; --warn:#e2a551; --bad:#ef8189;
  --display:"Barlow Condensed","Arial Narrow",sans-serif; --body:"IBM Plex Sans",system-ui,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
body{background:var(--ground);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.45}
.wrap{max-width:980px;margin:0 auto;padding-inline:16px;padding-block:24px 48px;display:grid;gap:20px}
header{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.headtxt{display:grid;gap:6px;flex:1;min-width:240px}
.crest{width:112px;height:auto;border-radius:14px;background:#55212b;box-shadow:0 1px 0 var(--line)}
@media (max-width:620px){.crest{width:84px}}
.eyebrow{font-family:var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:14px;font-weight:600}
h1{font-family:var(--display);font-weight:700;font-size:clamp(34px,7vw,56px);line-height:.95;margin:0;text-wrap:balance}
h1 .l{color:var(--lib)} h1 .s{color:var(--snob)} h1 .v{color:var(--muted);font-weight:500;font-size:.6em;padding-inline:.2em}
.meta{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--muted);font-size:14px}
.meta b{color:var(--ink);font-weight:600}
.bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
button,select{font:inherit}
.btn{border:0;border-radius:8px;padding:10px 16px;font-weight:600;cursor:pointer;background:var(--ink);color:var(--ground)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--flag);outline-offset:2px}
select{padding:9px 10px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.bar .spacer{flex:1}
.draw-no{font-family:var(--display);font-size:18px;font-weight:600;color:var(--muted)}
.stats{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:13px;font-weight:600;border:1px solid var(--line);background:var(--surface);font-variant-numeric:tabular-nums}
.chip i{width:8px;height:8px;border-radius:50%;display:inline-block}
.tier{display:grid;gap:8px}
.tier h2{margin:0;font-family:var(--display);font-size:22px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.tier h2 small{font-family:var(--body);font-size:13px;font-weight:400;color:var(--muted);text-transform:none;letter-spacing:0}
.match{display:grid;grid-template-columns:36px 1fr 92px 1fr;align-items:stretch;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.num{display:grid;place-items:center;font-family:var(--display);font-size:20px;font-weight:700;color:var(--muted);border-right:1px solid var(--line)}
.side{padding:10px 12px;display:grid;gap:2px;min-width:0}
.side.lib{border-left:4px solid var(--lib)} .side.snob{border-right:4px solid var(--snob);text-align:right}
.side.recv.lib{background:var(--lib-soft)} .side.recv.snob{background:var(--snob-soft)}
.nick{font-weight:600;font-size:16px;overflow-wrap:anywhere}
.real{color:var(--muted);font-size:13px;overflow-wrap:anywhere}
.hc{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.hc b{color:var(--ink)}
.strokes{display:grid;place-items:center;align-content:center;gap:0;border-inline:1px solid var(--line);padding:6px 4px;text-align:center}
.strokes .n{font-family:var(--display);font-size:30px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.strokes .t{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.strokes .arrow{font-size:12px;font-weight:600}
.strokes .n{color:var(--ink)}
.legend{display:flex;justify-content:space-between;font-family:var(--display);font-weight:700;font-size:18px;letter-spacing:.06em;text-transform:uppercase;padding-inline:48px 4px}
.legend .l{color:var(--lib)} .legend .s{color:var(--snob)}
.note{font-size:13px;color:var(--muted);max-width:70ch}
.warnbox{border:1px solid var(--warn);background:var(--surface);color:var(--ink);padding:10px 12px;border-radius:8px;font-size:14px}
details{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
summary{cursor:pointer;font-weight:600}
.roster{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:12px}
.roster h3{margin:0 0 6px;font-family:var(--display);font-size:18px;text-transform:uppercase;letter-spacing:.05em}
.roster .lib h3{color:var(--lib)} .roster .snob h3{color:var(--snob)}
.prow{display:grid;grid-template-columns:1fr 70px 38px;gap:8px;align-items:center;padding:4px 0;border-bottom:1px solid var(--line);font-size:14px}
.prow input{width:100%;padding:5px 6px;border:1px solid var(--line);border-radius:6px;background:var(--ground);color:var(--ink);font:inherit;font-variant-numeric:tabular-nums;text-align:right}
.prow .ph{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}
.prow .sub{color:var(--muted);font-size:12px}
textarea{width:100%;min-height:160px;margin-top:8px;font:13px/1.4 ui-monospace,Menlo,monospace;background:var(--ground);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px}
.score{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.team{border-radius:10px;padding:12px 16px;display:grid;gap:0;color:#fff}
.team.lib{background:#1e3461} .team.snob{background:#55212b;text-align:right}
.tname{font-family:var(--display);font-size:16px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;opacity:.85}
.tsum{font-family:var(--display);font-size:52px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.tunit{font-size:12px;opacity:.8}

.intro{position:fixed;inset:0;z-index:50;overflow:auto;background:#14100f;
 background-image:radial-gradient(900px 600px at 12% -10%, rgba(30,52,97,.55), transparent 60%),radial-gradient(900px 600px at 92% 8%, rgba(85,33,43,.65), transparent 60%);
 color:#f2ece9;display:flex;align-items:center;justify-content:center;padding:calc(24px + env(safe-area-inset-top,0px)) 20px calc(24px + env(safe-area-inset-bottom,0px))}
.introcard{max-width:620px;width:100%;text-align:center;display:grid;gap:14px;justify-items:center}
.introcrest{width:118px;border-radius:14px;background:#55212b}
.introeyebrow{font-family:var(--display);font-size:15px;letter-spacing:.2em;text-transform:uppercase;color:#b7a99f}
.introtitle{font-family:var(--display);font-size:clamp(40px,10vw,64px);line-height:.98;font-weight:700;margin:0;color:#f7f2ef}
.introwhen{font-size:15px;color:#c9beb7}
.introscore{display:flex;align-items:stretch;gap:10px;width:100%;margin-top:6px}
.iteam{flex:1;border-radius:14px;padding:14px 12px;display:grid;gap:2px;align-content:center}
.ilib{background:#1e3461} .isnob{background:#55212b}
.iteam span{font-family:var(--display);font-size:15px;letter-spacing:.08em;text-transform:uppercase;opacity:.9}
.iteam b{font-family:var(--display);font-size:44px;line-height:1;font-variant-numeric:tabular-nums}
.iteam em{font-style:normal;font-size:12px;opacity:.85}
.ivs{align-self:center;font-family:var(--display);font-size:15px;letter-spacing:.1em;text-transform:uppercase;color:#9d908a}
.introfacts{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:6px;font-size:14px;color:#d8cfc9;text-align:left;width:100%}
.introfacts li{border-top:1px solid #3a302c;padding-top:6px}
.introfacts b{color:#f7f2ef}
.introbtn{margin-top:10px;background:#e8dcd6;color:#14100f;font-size:18px;padding:14px 28px;border-radius:999px}
.introfine{font-size:12px;color:#9d908a;max-width:44ch}
@media (max-width:520px){.introscore{flex-direction:column}.ivs{padding:2px 0}}
#confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:40;display:none}
.done{border-radius:12px;padding:16px 18px;text-align:center;color:#fff;
 background:linear-gradient(100deg,#1e3461,#55212b);display:grid;gap:4px}
.donetitle{font-family:var(--display);font-size:30px;font-weight:700;letter-spacing:.02em}
.donesub{font-size:14px;opacity:.9}
.confirm{background:var(--bad);color:#fff}
.tabs{display:flex;gap:8px}
.tab{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:999px;padding:9px 18px;font-weight:600;cursor:pointer}
.tab.is-on{background:var(--ink);color:var(--ground);border-color:var(--ink)}
.ah2{font-family:var(--display);font-size:30px;font-weight:700;letter-spacing:.02em;margin:0}
#viewAdmin{display:grid;gap:4px}
#importBox{min-height:120px}
.ah{font-family:var(--display);font-size:18px;text-transform:uppercase;letter-spacing:.06em;margin:16px 0 8px;color:var(--muted)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.grid2 label,.rosteredit label{display:grid;gap:4px;font-size:13px;color:var(--muted)}
.grid2 input,.grid2 select,#rosterEdit input,#rosterEdit select{padding:7px 8px;border:1px solid var(--line);border-radius:7px;background:var(--ground);color:var(--ink);font:inherit;width:100%}
.rosterhead.courses,.cedit{display:grid;grid-template-columns:1.4fr 1fr 74px 74px 64px 34px;gap:6px;align-items:center}
.cedit{padding:5px 0;border-bottom:1px solid var(--line);font-size:13px}
.cedit input{width:100%;padding:6px;border:1px solid var(--line);border-radius:6px;background:var(--ground);color:var(--ink);font:inherit}
.cedit .del{background:transparent;border:1px solid var(--line);color:var(--bad);border-radius:6px;cursor:pointer;padding:5px 0}
details.sub{margin-top:12px;background:transparent;border:0;padding:0}
details.sub summary{font-size:13px;color:var(--muted)}
.rosterhead,.redit{display:grid;grid-template-columns:78px 1.1fr 1.2fr 78px 68px 1fr 104px 44px 34px;gap:6px;align-items:center}
.rosterhead{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:6px 0;border-bottom:1px solid var(--line)}
.redit{padding:5px 0;border-bottom:1px solid var(--line);font-size:13px}
.redit .del{background:transparent;border:1px solid var(--line);color:var(--bad);border-radius:6px;cursor:pointer;padding:5px 0}
.arow{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:12px}
@media (max-width:760px){.rosterhead{display:none}.redit{grid-template-columns:1fr 1fr;gap:6px}}
.teebar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.flight{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:10px 14px;display:grid;grid-template-columns:78px 1fr;gap:10px;align-items:center}
.ftime{font-family:var(--display);font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}
.fmatches{display:grid;gap:4px;font-size:14px}
.fm{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}
.fm .l{color:var(--lib);font-weight:600} .fm .s{color:var(--snob);font-weight:600}
.fm .vs{color:var(--muted);font-size:12px}
.fm .st{color:var(--muted);font-size:12.5px}
@media (max-width:620px){.flight{grid-template-columns:64px 1fr}.ftime{font-size:20px}}
.audit{display:flex;flex-wrap:wrap;gap:10px 24px;align-items:baseline;padding-inline:4px}
.afact{display:flex;align-items:baseline;gap:6px}
.anum{font-family:var(--display);font-size:24px;font-weight:700;font-variant-numeric:tabular-nums}
.alabel{font-size:13px;color:var(--muted)}
.awho{font-size:13px;color:var(--muted);flex-basis:100%}
.need{margin:0;font-size:14px;color:var(--muted);text-align:center}
.need b{color:var(--ink)}
.strokesum{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 16px;display:grid;gap:2px;justify-items:center;text-align:center}
.netline{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;justify-content:center}
.netlabel{font-family:var(--display);font-size:16px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.netval{font-family:var(--display);font-size:34px;font-weight:700;line-height:1.05;font-variant-numeric:tabular-nums}
.gross{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.match.empty{border-style:dashed;background:transparent}
.match.empty .side,.match.empty .strokes{visibility:hidden}
.match.empty .num{border-right-style:dashed}
.match.next{border-color:var(--flag);border-style:solid}
.match.fresh{animation:pop .45s ease both}
@media (prefers-reduced-motion:reduce){.match.fresh{animation:none}}
@keyframes pop{from{transform:scale(.97);background:var(--flag)}to{transform:none}}
.toast{font-size:13px;color:var(--ok);font-weight:600}
@media (max-width:620px){
  .match{grid-template-columns:28px 1fr 64px 1fr}
  .nick{font-size:14.5px} .real{font-size:12px}
  .strokes .n{font-size:24px}
  .legend{padding-inline:36px 0;font-size:15px}
}
