:root{
  --court:#0C3B2E; --court-deep:#082A20;
  --gold:#E8C24A; --gold-hi:#F5D876; --sun:#FFD23F;
  --paper:#FAF7EF; --paper-2:#FFFFFF;
  --ink:#171512; --ink-2:#5C594F;
  --live:#D0342C; --next:#DDEEF6;
  --line:#E4DFD2;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{background:var(--court);min-height:100vh;font-family:'Space Grotesk',system-ui,sans-serif;
  padding:16px 14px 32px;max-width:480px;margin:0 auto;}
.topbar{display:flex;align-items:center;gap:10px;margin-bottom:8px;padding:0 4px;}
.shuttle{width:30px;height:30px;border-radius:50%;background:var(--gold);display:flex;
  align-items:center;justify-content:center;font-size:16px;color:var(--court);font-family:Anton;}
.brand{font-family:Anton;font-weight:400;font-size:20px;letter-spacing:.08em;color:var(--paper);}
.brand em{font-style:normal;color:var(--gold-hi);}
.spacer{flex:1;}
.who{color:#CFE3DA;font-size:13px;font-weight:500;text-decoration:none;}
.hello{color:var(--paper);font-size:18px;font-weight:700;margin:6px 4px 16px;}
.pcard{background:var(--paper);border-radius:18px;padding:14px 16px;margin-bottom:14px;
  box-shadow:0 4px 14px rgba(0,0,0,.25);}
.pcard.hero{background:var(--gold-hi);}
.pcard.next{background:var(--next);}
.sec{display:flex;align-items:baseline;gap:8px;margin-bottom:8px;}
.sec b{font-size:16px;color:var(--ink);font-weight:700;}
.sec .tag{margin-left:auto;font-family:Anton;font-size:13px;letter-spacing:.1em;color:var(--ink-2);}
.sec .tag.live{color:var(--live);}
.sec .tag.live::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;
  background:var(--live);margin-right:6px;vertical-align:1px;}
.meta{font-size:13px;color:var(--ink-2);text-align:center;margin-bottom:10px;}
.matchup{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:12px;}
.matchup .team{font-size:17px;font-weight:700;color:var(--ink);text-align:center;line-height:1.25;}
.matchup .team small{display:block;font-size:11px;font-weight:500;color:var(--ink-2);}
.matchup .vs{font-size:12px;color:var(--ink-2);font-weight:700;}
.cta{display:block;width:100%;background:var(--sun);border:2px solid var(--ink);color:var(--ink);
  text-align:center;font-weight:700;font-size:15px;letter-spacing:.06em;padding:12px;
  border-radius:12px;font-family:inherit;cursor:pointer;text-decoration:none;
  box-shadow:4px 4px 0 var(--ink);transition:transform .08s,box-shadow .08s;}
.cta:active{transform:translate(4px,4px);box-shadow:0 0 0 var(--ink);}
.cta.quiet{background:transparent;box-shadow:none;transition:background .08s;}
.cta.quiet:active{transform:none;background:var(--sun);}
.nrow{display:flex;align-items:center;gap:12px;}
.nrow .nb{font-family:Anton;font-size:38px;color:var(--ink);line-height:1;}
.nrow .nb small{display:block;font-family:'Space Grotesk';font-size:9px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--ink-2);font-weight:700;}
.nrow .ni{flex:1;}
.nrow .ni b{font-size:15px;color:var(--ink);display:block;}
.nrow .ni span{font-size:12px;color:var(--ink-2);}
.nrow .eta{text-align:right;}
.nrow .eta b{font-family:Anton;font-weight:400;font-size:24px;color:var(--ink);display:block;line-height:1;}
.nrow .eta span{font-size:10px;color:var(--ink-2);letter-spacing:.08em;text-transform:uppercase;font-weight:700;}
table.stand{width:100%;border-collapse:collapse;}
table.stand th{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);
  text-align:left;padding:4px 8px;border-bottom:2px solid var(--ink);}
table.stand th:last-child{text-align:right;}
table.stand td{font-size:13.5px;color:var(--ink);padding:8px;border-bottom:1px solid var(--line);}
table.stand td:last-child{text-align:right;color:var(--ink-2);white-space:nowrap;}
table.stand td.rk{font-family:Anton;font-size:15px;width:26px;color:var(--ink-2);}
table.stand tr.you td{background:var(--gold-hi);font-weight:700;color:var(--ink);}
table.stand tr:last-child td{border-bottom:none;}
.pads{display:flex;gap:12px;margin-bottom:10px;}
.pad{flex:1;background:var(--paper-2);border:2px solid var(--ink);border-radius:16px;
  padding:12px 10px;text-align:center;}
.pad .tn{font-size:12.5px;font-weight:700;color:var(--ink);}
.pad .tp{font-size:10.5px;font-weight:500;color:var(--ink-2);
  margin:1px 0 8px;line-height:1.2;word-break:break-word;}
.pad .num{font-family:Anton;font-size:64px;color:var(--ink);line-height:1;}
.pad .step{display:flex;justify-content:center;gap:10px;margin-top:10px;}
.step button{width:44px;height:44px;border-radius:10px;border:2px solid var(--ink);color:var(--ink);
  font-size:20px;font-weight:700;background:var(--paper);cursor:pointer;font-family:inherit;}
.hint{font-size:12px;color:var(--ink-2);text-align:center;margin:8px 0 12px;}
.conf p{font-size:14.5px;color:var(--ink);margin-bottom:2px;}
.conf p b{font-family:Anton;font-weight:400;font-size:17px;letter-spacing:.04em;}
.conf small{font-size:12px;color:var(--ink-2);display:block;margin-bottom:12px;}
.btn-row{display:flex;gap:10px;}
.btn{flex:1;text-align:center;padding:12px;border-radius:12px;font-weight:700;font-size:14px;
  border:2px solid var(--ink);font-family:inherit;cursor:pointer;text-decoration:none;}
.btn.yes{background:var(--sun);color:var(--ink);box-shadow:4px 4px 0 var(--ink);
  transition:transform .08s,box-shadow .08s;}
.btn.yes:active{transform:translate(4px,4px);box-shadow:0 0 0 var(--ink);}
.btn.no{background:transparent;color:var(--ink);transition:background .08s;}
.btn.no:active{background:var(--sun);}
input[type=tel],input[type=text]{width:100%;padding:13px 14px;font-size:16px;border:2px solid var(--ink);
  border-radius:12px;font-family:inherit;background:var(--paper-2);color:var(--ink);margin-bottom:12px;}
.err{background:var(--live);color:#fff;font-size:13px;font-weight:500;padding:10px 14px;
  border-radius:10px;margin-bottom:12px;}
.note{font-size:12px;color:#CFE3DA;text-align:center;margin-top:10px;}
.donecard{text-align:center;padding:22px 16px;}
.donecard b{font-family:Anton;font-weight:400;font-size:22px;color:var(--ink);letter-spacing:.04em;display:block;margin-bottom:4px;}
.donecard span{font-size:13px;color:var(--ink-2);}

/* admin */
.chips{display:flex;gap:7px;margin:14px 0;flex-wrap:wrap;}
.chip{font-size:12px;font-weight:700;padding:6px 13px;border-radius:99px;background:transparent;
  border:1.5px solid #7FA697;color:#CFE3DA;text-decoration:none;}
.chip.on{background:var(--paper);color:var(--ink);border-color:var(--paper);}
.glist{background:var(--paper);border-radius:18px;overflow:hidden;box-shadow:0 4px 14px rgba(0,0,0,.25);margin-bottom:14px;}
.grow{padding:11px 14px;border-bottom:1px solid var(--line);}
.grow:last-child{border-bottom:none;}
.grow .l1{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px;gap:8px;}
.grow .l1 b{color:var(--ink);font-size:13.5px;font-weight:700;}
.grow .l2{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;}
.grow .l2 span{color:var(--ink-2);font-size:12px;}
.grow .l2 form{display:inline;}
.grow .l2 button.link,.grow .l2 a{color:#0F5C46;font-size:12px;font-weight:700;text-decoration:underline;
  background:none;border:none;cursor:pointer;font-family:inherit;padding:0;}
.pill{font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:99px;font-weight:700;white-space:nowrap;}
.pill.live{background:var(--live);color:#fff;}
.pill.entered{background:var(--sun);color:var(--ink);}
.pill.disputed{background:var(--ink);color:var(--sun);}
.pill.scheduled{border:1.5px solid var(--ink-2);color:var(--ink-2);}
.pill.final{border:1.5px solid #2F7A57;color:#2F7A57;}
.prog .lab{display:flex;justify-content:space-between;margin-bottom:8px;}
.prog .lab b{font-size:14px;color:var(--ink);}
.prog .lab span{font-family:Anton;font-size:14px;color:var(--ink);}
.bar{height:10px;background:#EDE8DB;border:1.5px solid var(--ink);border-radius:99px;overflow:hidden;}
.bar i{display:block;height:100%;background:var(--sun);}
.ovr{display:flex;gap:6px;align-items:center;}
.ovr input{width:52px;padding:6px;font-size:14px;text-align:center;border:2px solid var(--ink);border-radius:8px;margin:0;background:var(--paper-2);}
.mini{font-size:12px;color:var(--ink-2);}
select{padding:12px;font-size:15px;border:2px solid var(--ink);border-radius:12px;background:var(--paper-2);font-family:inherit;margin-bottom:12px;width:100%;}
.two{display:flex;gap:10px;}
.two > *{flex:1;}
.admin-nav{display:flex;gap:10px;margin-bottom:14px;}
.admin-nav a{flex:1;text-align:center;}
.ver{position:fixed;bottom:6px;right:10px;font-size:10px;color:#6E9486;letter-spacing:.06em;z-index:5;}

/* board v2 */
.micro{color:#8FB3A6;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;margin:16px 4px 6px;}
.rowlink{text-decoration:none;color:inherit;}
.courtno{font-family:Anton;font-weight:400;color:var(--ink-2);margin-right:4px;}
.startbtn{background:var(--sun);border:2px solid var(--ink);color:var(--ink);font-weight:700;
  font-size:12px;letter-spacing:.06em;padding:7px 16px;border-radius:99px;cursor:pointer;font-family:inherit;
  box-shadow:3px 3px 0 var(--ink);transition:transform .08s,box-shadow .08s;}
.startbtn:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--ink);}
.score{font-family:Anton;font-weight:400;letter-spacing:.04em;}
.donewrap summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px;}
.donewrap summary::before{content:"▸";font-size:12px;}
.donewrap[open] summary::before{content:"▾";}
table.stand.kv td:last-child{white-space:normal;}
textarea{width:100%;border:2px solid var(--ink);border-radius:12px;padding:10px 12px;font:13px/1.4 ui-monospace,monospace;background:#fff;resize:vertical;}
.okmsg{background:#DCF2E5;border:2px solid #0F5C46;color:#0F5C46;border-radius:12px;padding:10px 12px;font-size:13px;font-weight:600;}

/* score extras */
.extras{margin:12px 0 4px;border-top:2px solid #EDE7D6;padding-top:10px;}
.xrow{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px;font-weight:600;margin-bottom:10px;}
.xrow em{font-style:normal;color:var(--ink-2);font-weight:400;font-size:12px;}
.xrow input[type=checkbox]{width:22px;height:22px;accent-color:var(--gold);}
.bstep{display:flex;align-items:center;gap:6px;}
.bstep button{width:34px;height:34px;border:2px solid var(--ink);border-radius:10px;background:#fff;font-size:16px;font-weight:700;cursor:pointer;}
.bstep input{width:52px;text-align:center;padding:7px 4px;}
/* stats + page links */
.statgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px;}
.stat{background:var(--paper);border:2px solid var(--ink);border-radius:14px;padding:10px 6px;text-align:center;}
.stat b{display:block;font-family:Anton;font-size:22px;font-weight:400;}
.stat span{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);}
.pagerow{display:flex;gap:8px;margin:14px 0 4px;}
.pagerow a{flex:1;text-align:center;background:var(--paper);border:2px solid var(--ink);border-radius:99px;padding:9px 4px;font-size:12px;font-weight:700;color:var(--ink);text-decoration:none;}
.storyp{font-size:14px;line-height:1.55;margin-bottom:10px;}
/* star rating */
.stars{display:flex;flex-direction:row-reverse;justify-content:center;gap:6px;margin:6px 0 12px;}
.stars input{display:none;}
.stars label{font-size:34px;color:#D8D0BC;cursor:pointer;}
.stars input:checked ~ label, .stars label:hover, .stars label:hover ~ label{color:var(--gold);}
.ranklink{display:block;text-decoration:none;color:var(--ink);}
.ranklink b{display:block;font-size:16px;}
.ranklink span{font-size:12px;color:var(--ink-2);}
.who.mic{margin-right:10px;display:inline-flex;align-items:center;}
.who.mic svg{width:17px;height:17px;}
.annc{display:flex;gap:10px;align-items:flex-start;background:var(--gold);color:var(--ink);
  border:2px solid var(--ink);border-radius:14px;padding:10px 14px;margin:0 0 14px;
  font-size:14px;font-weight:600;line-height:1.4;}
.annc svg{width:18px;height:18px;flex:none;margin-top:1px;}
.anncx{margin-left:auto;flex:none;border:0;background:none;color:var(--ink);font-size:22px;line-height:1;
  cursor:pointer;padding:0 2px;font-weight:700;}
.anncchip{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  background:var(--gold);border:2px solid var(--ink);border-radius:99px;cursor:pointer;
  margin:0 0 14px auto;float:right;}
.anncchip svg{width:16px;height:16px;color:var(--ink);}
.statgrid.two{grid-template-columns:repeat(2,1fr);}
.roundwrap{margin:4px 0 8px;}
.roundwrap summary{padding:6px 4px;}
.gline{font-size:13px;font-weight:600;color:var(--ink-2);padding:5px 0;border-top:1px solid #EDE7D6;}
.gline:first-of-type{border-top:0;}
.gline.brk{color:var(--ink-2);font-weight:500;font-style:italic;}
.cicard summary{cursor:pointer;list-style:none;}
.cicard summary::-webkit-details-marker{display:none;}
.cicard summary b::before{content:"\25B8  ";font-size:12px;}
.cicard[open] summary b::before{content:"\25BE  ";}
.cicard:not([open]) .sec{margin-bottom:0;}
.cicard .tag.allin{background:var(--gold);}
.ciband{border-top:1px solid #EDE7D6;padding:8px 0;}
.ciband:first-of-type{border-top:0;margin-top:6px;}
.cbl{display:flex;justify-content:space-between;font-size:13px;margin-bottom:3px;}
.cbl span{color:var(--ink-2);font-weight:700;}
.ciout{font-size:13px;font-weight:600;color:#A33B22;margin:2px 0;}
.ciin{font-size:12px;color:var(--ink-2);}
.wcount{color:#8A5A0B;font-weight:800;}
.gwait{color:#8A5A0B;font-weight:700;font-size:12px;}
.citick{color:#0F5C46;font-weight:800;}
.occwrap{margin-top:10px;}
.occrow{display:flex;align-items:center;gap:8px;padding:2px 0;}
.occrow .ol{font-size:10px;font-weight:700;color:var(--ink-2);width:86px;flex:none;}
.occrow .obar{flex:1;height:12px;border:1px solid var(--ink);border-radius:4px;overflow:hidden;display:flex;background:var(--paper-2);}
.occrow .op{background:var(--gold);height:100%;}
.occrow .oi{background:#D9CEB2;height:100%;}
.occrow .on{font-size:10px;font-weight:700;width:64px;flex:none;text-align:right;}
.occrow .on .mini{display:block;font-weight:600;}
.stg{display:inline-block;background:var(--ink);color:var(--gold);font-size:10px;font-weight:800;
  padding:1px 5px;border-radius:5px;letter-spacing:.06em;vertical-align:1px;}
.bracket{display:flex;gap:10px;align-items:center;}
.bcol{flex:1;display:flex;flex-direction:column;gap:8px;justify-content:center;}
.bmatch{border:2px solid var(--ink);border-radius:10px;overflow:hidden;background:var(--paper);}
.bmatch .bt{padding:5px 8px;font-size:12px;font-weight:700;display:flex;justify-content:space-between;gap:6px;}
.bmatch .bt + .bt{border-top:1px solid #EDE7D6;}
.bmatch .bt.bw{background:var(--gold);}
.bmatch.pending{border-style:dashed;color:var(--ink-2);}
.bmatch.bfinal{border-width:3px;}
.bchamp{text-align:center;font-weight:800;font-size:13px;margin-top:6px;}
.acwrap{position:relative;margin-bottom:10px;}
.acwrap input{margin-bottom:0;}
.aclist{display:none;position:absolute;left:0;right:0;top:100%;z-index:20;background:var(--paper);
  border:2px solid var(--ink);border-radius:10px;overflow:hidden;box-shadow:4px 4px 0 var(--ink);}
.acitem{padding:8px 12px;cursor:pointer;display:flex;justify-content:space-between;gap:8px;
  font-size:14px;font-weight:700;}
.acitem span{color:var(--ink-2);font-size:11px;font-weight:600;white-space:nowrap;}
.acitem:hover{background:var(--gold-hi);}
.acitem + .acitem{border-top:1px solid #EDE7D6;}
select{width:100%;padding:12px 14px;font-size:15px;border:2px solid var(--ink);border-radius:12px;
  font-family:inherit;background:var(--paper-2);color:var(--ink);margin-bottom:4px;}
.payg{display:grid;grid-template-columns:1fr 1fr;gap:2px 14px;margin-top:8px;}
.payrow{display:flex;justify-content:space-between;font-size:12.5px;padding:3px 2px;color:var(--ink-2);}
.payrow.paid{color:var(--ink);font-weight:700;}
.payrow.paid span{color:#0F5C46;font-weight:800;}
.wl{display:inline-block;width:20px;height:20px;border-radius:6px;text-align:center;line-height:20px;
  font-size:11px;font-weight:800;margin-right:4px;border:2px solid var(--ink);}
.wl.w{background:var(--gold);}
.wl.l{background:var(--paper-2);}
.nb.badge{background:var(--paper);border:2px solid var(--ink);border-radius:12px;
  min-width:62px;text-align:center;padding:7px 6px 9px;font-size:32px;}
.nb.badge small{margin-bottom:2px;}
.nrow .ni b{font-size:17px;}
.bandwrap summary{cursor:pointer;list-style:none;display:flex;align-items:center;}
.bandwrap summary::-webkit-details-marker{display:none;}
.bandwrap summary b::before{content:"▸ ";font-size:12px;}
.bandwrap[open] summary b::before{content:"▾ ";}
.bandwrap:not([open]) summary{margin-bottom:0;}

/* bottom tab bar (admin) */
.tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;background:var(--paper);
  border-top:2px solid var(--ink);padding:6px 8px calc(6px + env(safe-area-inset-bottom));
  max-width:480px;margin:0 auto;z-index:20;}
.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;
  font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--ink-2);
  text-decoration:none;padding:6px 0 4px;border-radius:12px;}
.tabbar a svg{width:22px;height:22px;}
.tabbar a.on{background:var(--gold-hi);color:var(--ink);}
body:has(.tabbar){padding-bottom:96px;}
body:has(.tabbar) .ver{bottom:calc(72px + env(safe-area-inset-bottom));}
