/* Layout: sticky scoreboard header + tab strip, single centered column of cards, phone-first.
   Look and feel: every colour and face is a token. The tournament's motif sets data-motif on <html>;
   each motif block below redefines the tokens. ".motif-x" carries the same tokens for preview cards. */

:root, .motif-classic{
  --bg:#eef2ec; --surface:#ffffff; --sunk:#e4eae1; --ink:#16201a; --muted:#5a6a5f; --line:#d3dbcf;
  --accent:#1d6a43; --on-accent:#ffffff; --hilite:#e2f0e6; --warn:#a35a00; --warn-bg:#fdf1de; --bad:#b3261e;
  --hdr-bg:#ffffff; --hdr-img:none; --hdr-ink:#16201a; --hdr-muted:#5a6a5f; --hdr-accent:#1d6a43;
  --hdr-band:none; --hdr-band-w:1px; --hdr-line:#d3dbcf; --hdr-shadow:none;
  --panel-bottom:1px solid var(--line);
  --t-blue:#1d4f9c; --t-red:#bf2f2a; --t-navy:#2a3a74; --t-gold:#96600c; --t-green:#24753a; --t-purple:#6a3fa0; --t-black:#1d1f22; --t-yellow:#8f8400;
  --f-display:"Barlow Condensed","Arial Narrow",system-ui,sans-serif; --display-w:700; --display-case:none; --display-track:.01em;
  --f-body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-num:"Barlow Condensed","Arial Narrow",system-ui,sans-serif; --num-w:700;
  --r:10px; --chip-r:6px;
  --gain:#1b7a3a; --loss:#c0261d; --even:var(--ink);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-motif]), :root[data-motif="classic"]{
  --bg:#0e1410; --surface:#172019; --sunk:#111913; --ink:#e6ece5; --muted:#98a89c; --line:#2a362d;
  --accent:#5cc08a; --on-accent:#08130c; --hilite:#1d3326; --warn:#f0b25a; --warn-bg:#2d2312; --bad:#f2827a;
  --hdr-bg:#172019; --hdr-ink:#e6ece5; --hdr-muted:#98a89c; --hdr-accent:#5cc08a; --hdr-line:#2a362d;
  --t-blue:#7aa4f2; --t-red:#f0726a; --t-navy:#9aa8ea; --t-gold:#e6b64e; --t-green:#62c57b; --t-purple:#b897ef; --t-black:#c9d1da; --t-yellow:#f0cf3a;
  --gain:#62c57b; --loss:#f2827a;
  color-scheme:dark}}

/* Spring Major: fairway green, pimento yellow, cream scorecards, a hand-lettered leaderboard */
:root[data-motif="spring"], .motif-spring{
  --bg:#f2efe3; --surface:#fffdf7; --sunk:#e9e3cf; --ink:#14261b; --muted:#56665a; --line:#d8d0b6;
  --accent:#0a5a35; --on-accent:#ffffff; --hilite:#fbefc4; --warn:#8a5a00; --warn-bg:#fbf0d4; --bad:#b3121b;
  --hdr-bg:#0a5a35; --hdr-img:none; --hdr-ink:#ffffff; --hdr-muted:#cfe3d4; --hdr-accent:#f2c94c;
  --hdr-band:linear-gradient(90deg,#f2c94c,#f2c94c) 1; --hdr-band-w:4px; --hdr-shadow:none;
  --panel-bottom:1px solid var(--line);
  --t-blue:#1d4891; --t-red:#b3121b; --t-navy:#22305f; --t-gold:#96600c; --t-green:#0a5a35; --t-purple:#5c3593; --t-black:#1d1f22; --t-yellow:#8f8400;
  --f-display:"Cormorant Garamond",Georgia,"Times New Roman",serif; --display-w:700; --display-case:none; --display-track:0;
  --f-body:"Libre Franklin",system-ui,sans-serif;
  --f-num:"Libre Franklin",system-ui,sans-serif; --num-w:700; --chip-r:2px;
  color-scheme:light;
}
/* Cup Week: navy and gold, team colours front and centre, flag-stripe header */
:root[data-motif="cup"], .motif-cup{
  --bg:#edf0f6; --surface:#ffffff; --sunk:#e1e7f0; --ink:#0d1a33; --muted:#526079; --line:#cdd5e3;
  --accent:#0b2a5b; --on-accent:#ffffff; --hilite:#f4ead3; --warn:#8a5a00; --warn-bg:#fbf0d4; --bad:#c8102e;
  --hdr-bg:#0b1f44; --hdr-img:none; --hdr-ink:#ffffff; --hdr-muted:#b8c3da; --hdr-accent:#c9a247;
  --hdr-band:linear-gradient(90deg,#0b4ea2 0 50%,#c8102e 50% 100%) 1; --hdr-band-w:5px; --hdr-shadow:none;
  --panel-bottom:1px solid var(--line);
  --t-blue:#0b4ea2; --t-red:#c8102e; --t-navy:#1b2c5c; --t-gold:#96600c; --t-green:#1f6e43; --t-purple:#5a2f8f; --t-black:#1d1f22; --t-yellow:#8f8400;
  --f-display:"Oswald","Arial Narrow",system-ui,sans-serif; --display-w:600; --display-case:uppercase; --display-track:.04em;
  --f-body:"Inter",system-ui,sans-serif;
  --f-num:"Oswald","Arial Narrow",system-ui,sans-serif; --num-w:600; --chip-r:4px;
  color-scheme:light;
}
/* Rink Side: ice, dasher-board kickplates and varsity jersey numbers */
:root[data-motif="rink"], .motif-rink{
  --bg:#e8f2f8; --surface:#ffffff; --sunk:#dbe8f1; --ink:#101418; --muted:#516070; --line:#c5d5e2;
  --accent:#0b4f9c; --on-accent:#ffffff; --hilite:#fff2c2; --warn:#8a5a00; --warn-bg:#fbf0d4; --bad:#c8102e;
  --hdr-bg:#121519; --hdr-img:none; --hdr-ink:#ffc72c; --hdr-muted:#d4d7db; --hdr-accent:#ffc72c;
  --hdr-band:none; --hdr-band-w:0px; --hdr-shadow:0 4px 0 #ffc72c, 0 7px 0 #ffffff, 0 11px 0 #121519;
  --panel-bottom:5px solid #f2c200;
  --t-blue:#0033a0; --t-red:#c8102e; --t-navy:#1b2a4a; --t-gold:#96600c; --t-green:#0f7a3c; --t-purple:#5b2c91; --t-black:#1d1f22; --t-yellow:#8f8400;
  --f-display:"Graduate","Rockwell",Georgia,serif; --display-w:400; --display-case:uppercase; --display-track:.02em;
  --f-body:"Inter",system-ui,sans-serif;
  --f-num:"Graduate","Rockwell",Georgia,serif; --num-w:400; --chip-r:4px;
  color-scheme:light;
}
/* Country Club '80: kelly green, flamingo pink and a plaid band */
:root[data-motif="club80"], .motif-club80{
  --bg:#edf5ea; --surface:#fffffb; --sunk:#e0ecdc; --ink:#18301f; --muted:#56705d; --line:#cddfca;
  --accent:#1f7a3a; --on-accent:#ffffff; --hilite:#fde3ec; --warn:#8a5a00; --warn-bg:#fbf0d4; --bad:#c0263f;
  --hdr-bg:#1f7a3a; --hdr-img:none; --hdr-ink:#ffffff; --hdr-muted:#d6efdc; --hdr-accent:#f48fb1;
  --hdr-band:repeating-linear-gradient(90deg,#f48fb1 0 14px,#f6d365 14px 20px,#1b2f5c 20px 34px,#f6d365 34px 40px) 1; --hdr-band-w:8px; --hdr-shadow:none;
  --panel-bottom:1px solid var(--line);
  --t-blue:#1b4f9c; --t-red:#cc2f57; --t-navy:#1b2f5c; --t-gold:#96600c; --t-green:#1f7a3a; --t-purple:#7b3fa0; --t-black:#1d1f22; --t-yellow:#8f8400;
  --f-display:"Shrikhand",Georgia,serif; --display-w:400; --display-case:none; --display-track:.01em;
  --f-body:"Work Sans",system-ui,sans-serif;
  --f-num:"Work Sans",system-ui,sans-serif; --num-w:700; --chip-r:999px;
  color-scheme:light;
}
/* Driving Range: dusty West Texas range at sunset, denim and a cowboy slab face */
:root[data-motif="range"], .motif-range{
  --bg:#f1e5cb; --surface:#fffaf0; --sunk:#e8d8b4; --ink:#2a1d12; --muted:#725e48; --line:#dbc69e;
  --accent:#2a5d8f; --on-accent:#ffffff; --hilite:#fae6b0; --warn:#8a5a00; --warn-bg:#fbefd2; --bad:#a4161a;
  --hdr-bg:#b5471c; --hdr-img:linear-gradient(180deg,#e2793a,#b5471c); --hdr-ink:#fff6e5; --hdr-muted:#ffdcc2; --hdr-accent:#fff6e5;
  --hdr-band:repeating-linear-gradient(90deg,#2a6f97 0 18px,#e9c46a 18px 24px) 1; --hdr-band-w:6px; --hdr-shadow:none;
  --panel-bottom:1px solid var(--line);
  --t-blue:#2a5d8f; --t-red:#a4161a; --t-navy:#253858; --t-gold:#96600c; --t-green:#3d7a3a; --t-purple:#6b3e8f; --t-black:#1d1f22; --t-yellow:#8f8400;
  --f-display:"Rye",Georgia,serif; --display-w:400; --display-case:none; --display-track:.01em;
  --f-body:"Archivo",system-ui,sans-serif;
  --f-num:"Archivo Narrow","Arial Narrow",system-ui,sans-serif; --num-w:700; --chip-r:4px;
  color-scheme:light;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 var(--f-body);font-variant-numeric:tabular-nums;padding-bottom:env(safe-area-inset-bottom,0px)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--hdr-bg)}
[hidden]{display:none!important}
a{color:var(--accent)}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
h1,h2,h3,.brand{font-family:var(--f-display);font-weight:var(--display-w);text-transform:var(--display-case);letter-spacing:var(--display-track);text-wrap:balance;margin:0;line-height:1.1}
h1{font-size:2.4rem} h2{font-size:1.45rem} h3{font-size:1.1rem}
p{margin:0}
.num{font-family:var(--f-num);font-weight:var(--num-w)}
.wrap{max-width:640px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}

/* header */
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:9;background-color:var(--hdr-bg);background-image:var(--hdr-img);color:var(--hdr-ink);border-bottom:var(--hdr-band-w) solid var(--hdr-line);border-image:var(--hdr-band);box-shadow:var(--hdr-shadow);margin-bottom:var(--hdr-gap,0px)}
:root[data-motif="rink"] header.top{--hdr-gap:11px}
.top .wrap{display:flex;flex-direction:column;gap:8px;padding-block:10px 0}
.brandrow{display:flex;align-items:center;gap:12px}
.brand{flex:1;font-size:clamp(1.15rem,5vw,1.35rem);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--hdr-ink)}
.mini{display:flex;align-items:baseline;gap:6px;font-family:var(--f-num);font-weight:var(--num-w);font-size:1.25rem;white-space:nowrap;background:var(--surface);border-radius:999px;padding:0 12px;line-height:1.6}
.mini:empty{display:none}
.mini .a{color:var(--ta)} .mini .b{color:var(--tb)} .mini .d{color:var(--muted);font-weight:500}
.avatar{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--surface);color:var(--tc,var(--accent));font-weight:700;font-size:.8rem;text-decoration:none;border:2px solid var(--tc,var(--line))}
/* league picker on the tournament name */
.brandpick{position:relative;display:inline-flex;align-items:center;gap:6px;max-width:100%;cursor:pointer}
.brandpick .bp-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brandpick .bp-caret{flex:none;font-size:.7em;opacity:.8}
.brandpick select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:16px}
.brandpick:focus-within{outline:2px solid var(--hdr-accent);outline-offset:3px;border-radius:4px}
nav.tabs{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}
nav.tabs::-webkit-scrollbar{display:none}
nav.tabs a{flex:1 1 auto;text-align:center;padding:9px 4px 10px;text-decoration:none;color:var(--hdr-muted);font-weight:600;font-size:.88rem;border-bottom:3px solid transparent;white-space:nowrap}
nav.tabs a[aria-current="page"]{color:var(--hdr-ink);border-bottom-color:var(--hdr-accent)}
.offline{position:fixed;left:0;right:0;bottom:0;padding:10px max(16px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));background:var(--warn-bg);color:var(--warn);font-weight:600;font-size:.88rem;text-align:center;z-index:20}

main.wrap{display:flex;flex-direction:column;gap:14px;padding-block:16px 48px}
.panel{background:var(--surface);border:1px solid var(--line);border-bottom:var(--panel-bottom);border-radius:var(--r);padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0}
.eyebrow{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.muted{color:var(--muted)} .small{font-size:.85rem}
.note{background:var(--warn-bg);color:var(--warn);border-radius:8px;padding:10px 12px;font-size:.88rem;font-weight:500}
.okmsg{color:var(--accent);font-weight:600;font-size:.88rem}
.errmsg{color:var(--bad);font-weight:600;font-size:.88rem}
.empty{text-align:center;padding:32px 16px;align-items:center}
.empty h2{font-size:1.7rem}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 16px;border-radius:8px;border:1px solid var(--line);background:var(--surface);font-weight:600;text-decoration:none;color:var(--ink)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn.danger{color:var(--bad)}
.btn.block{width:100%}
.btn.sm{min-height:36px;padding:0 12px;font-size:.85rem}
.btn:disabled{opacity:.5;cursor:default}
.btnrow{display:flex;gap:8px;flex-wrap:wrap}
.btnrow .btn{flex:1}
.linkbtn{background:none;border:0;padding:0;color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:2px}

.tname{color:var(--tc);font-weight:600}
.chip{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:64px;padding:4px 8px;border-radius:var(--chip-r);background:color-mix(in srgb,var(--tc) 14%,var(--surface));color:var(--tc);font-family:var(--f-num);font-weight:var(--num-w);font-size:1.15rem;line-height:1.05}
.chip small{font-family:var(--f-body);font-size:.66rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;opacity:.85}
:root[data-motif="spring"] .chip, .motif-spring .chip{background:#ffffff;border:1px solid var(--line);box-shadow:inset 0 -2px 0 var(--sunk)}

/* login */
.login{max-width:420px;margin:8vh auto 0;width:100%}
.login .mark{width:56px;height:56px}
.codeinput{font-family:var(--f-num)!important;font-weight:var(--num-w);font-size:2rem!important;letter-spacing:.4em;text-align:center;min-height:56px!important}

/* match header */
.mhead{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px}
.mhead .side{display:flex;flex-direction:column;gap:2px;min-width:0}
.mhead .side.B{text-align:right}
.mhead .side .names{font-weight:600;overflow-wrap:anywhere}
.mhead .side .team{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--tc)}
.mhead .side .hcp{font-size:.75rem;color:var(--muted)}
.bigstatus{font-family:var(--f-num);font-weight:var(--num-w);font-size:1.6rem;text-align:center;line-height:1;color:var(--tc)}
.bigstatus small{display:block;font-family:var(--f-body);font-size:.7rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.strip{display:grid;grid-template-columns:repeat(var(--n),1fr);gap:3px}
.strip span{height:24px;border-radius:4px;background:var(--sunk);font-size:.66rem;font-weight:600;display:grid;place-items:center;color:var(--muted)}
.strip span.w{background:var(--tc);color:var(--surface)}
.strip span.h{background:color-mix(in srgb,var(--muted) 35%,var(--surface));color:var(--ink)}
.strip span.cur{outline:2px solid var(--accent);outline-offset:-2px;color:var(--ink)}

/* hole entry */
.holehead{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}
.holenum{font-family:var(--f-num);font-weight:var(--num-w);font-size:2.4rem;line-height:1}
.holenum span{font-family:var(--f-body);font-size:.9rem;color:var(--muted);font-weight:600;margin-right:6px;letter-spacing:.06em;text-transform:uppercase}
.sidebox{border:1px solid var(--line);border-left:4px solid var(--tc);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:10px}
.sidebox .lbl{display:flex;justify-content:space-between;gap:8px;align-items:baseline;flex-wrap:wrap}
.stepper{display:grid;grid-template-columns:1fr 48px 64px 48px;align-items:center;gap:6px}
.stepper .who{font-weight:600;min-width:0;overflow-wrap:anywhere}
.stepper button{height:48px;border-radius:8px;border:1px solid var(--line);background:var(--sunk);font-size:1.5rem;font-weight:600}
.stepper output{text-align:center;font-family:var(--f-num);font-weight:var(--num-w);font-size:2rem}
.shown{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.shown .val{font-family:var(--f-num);font-weight:var(--num-w);font-size:2rem;line-height:1}
.state{font-size:.85rem;font-weight:600}
.state.ok{color:var(--accent)} .state.wait{color:var(--muted)} .state.bad{color:var(--bad)}

/* lists */
.mlist{display:flex;flex-direction:column}
.mrow{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--ink)}
.mrow:first-child{border-top:0}
.mrow .s{min-width:0;font-size:.9rem;overflow-wrap:anywhere;color:var(--muted)}
.mrow .s.lead{color:var(--tc);font-weight:600}
.mrow .s.B{text-align:right}
.mrow.mine{background:var(--hilite);margin:0 -16px;padding-inline:16px}
.roundhead{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.rscore{font-family:var(--f-num);font-weight:var(--num-w);font-size:1.2rem;white-space:nowrap}

.cup{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:8px;text-align:center}
.cup .t{display:flex;flex-direction:column;gap:2px;min-width:0}
.cup .t .n{font-weight:600;color:var(--tc);overflow-wrap:anywhere}
.cup .t .p{font-family:var(--f-num);font-weight:var(--num-w);font-size:4rem;line-height:.9;color:var(--tc)}
.cup .dash{font-family:var(--f-num);font-size:2.4rem;color:var(--muted);padding-bottom:6px}
.bar{position:relative;height:14px;border-radius:7px;background:var(--sunk);overflow:hidden;display:flex}
.bar .a{background:var(--ta)} .bar .b{background:var(--tb);margin-left:auto}
.bar .mark{position:absolute;top:-2px;bottom:-2px;left:50%;width:2px;background:var(--ink);opacity:.5}
.proj{display:flex;justify-content:space-between;gap:8px;font-size:.85rem;color:var(--muted);flex-wrap:wrap}

.tablewrap{overflow-x:auto;margin:0 -4px}
table.card{width:100%;border-collapse:collapse;font-size:.9rem}
table.card th{font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;text-align:center;padding:6px 4px;border-bottom:1px solid var(--line)}
table.card td{text-align:center;padding:7px 4px;border-bottom:1px solid var(--line)}
table.card td.hn,table.card td.sc{font-family:var(--f-num);font-weight:var(--num-w);font-size:1.1rem}
table.card td.sc.win{color:var(--tc)}
table.card td.sc small{display:block;font-family:var(--f-body);font-size:.68rem;color:var(--muted);font-weight:500}
table.card tr.future td{color:var(--muted);opacity:.55}
table.card tr.current td{background:var(--hilite)}
.dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--tc)}

/* golfers */
.glist{display:flex;flex-direction:column}
.grow{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--ink)}
.grow:first-child{border-top:0}
.ini{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--tc) 16%,var(--surface));color:var(--tc);font-weight:700;font-size:.85rem;flex:none}
.grow .nm{min-width:0}
.grow .nm strong{display:block;overflow-wrap:anywhere}
.grow .nm span{font-size:.82rem;color:var(--muted);overflow-wrap:anywhere}
.hcpbadge{font-family:var(--f-num);font-weight:var(--num-w);font-size:1.25rem;text-align:right;line-height:1}
.hcpbadge small{display:block;font-family:var(--f-body);font-size:.62rem;font-weight:600;letter-spacing:.06em;color:var(--muted)}
.profile{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;align-items:baseline}
.profile dt{font-size:.78rem;font-weight:600;color:var(--muted)}
.profile dd{margin:0;overflow-wrap:anywhere}
.profile .handle{font-weight:600;user-select:all}
.tag{display:inline-block;font-family:var(--f-body);font-size:.68rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:2px 6px;border-radius:4px;background:var(--sunk);color:var(--muted);vertical-align:middle}
.tag.on{background:var(--accent);color:var(--on-accent)}

/* forms */
.fld{display:flex;flex-direction:column;gap:4px;min-width:0}
.fld>span{font-size:.78rem;font-weight:600;color:var(--muted)}
.fld>span b{color:var(--bad)}
.fld>small{font-size:.76rem;color:var(--muted)}
input[type=text],input[type=tel],input[type=email],input[type=search],input[type=date],input:not([type]),select{font:inherit;font-size:16px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;min-height:44px;padding:0 10px;width:100%;min-width:0}
input[readonly]{background:var(--sunk);color:var(--muted)}
.check{display:flex;gap:10px;align-items:center;font-weight:500}
.check input{width:20px;height:20px;flex:none}
.iconbtn{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--bad)}
.iconbtn:hover{background:color-mix(in srgb,var(--bad) 8%,var(--surface))}
.lsearch{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--sunk)}
.lsearch input[type=search]{background:var(--surface)}
.lsearch .glist{background:var(--surface);border-radius:8px;padding:0 10px}
.lmrow.confirming{background:color-mix(in srgb,var(--bad) 6%,transparent);margin:0 -16px;padding-inline:16px}
.lmrow .btnrow .btn{flex:none}
.danger-zone{display:flex;flex-direction:column;gap:8px;margin-top:4px;padding-top:12px;border-top:1px dashed var(--line)}
.danger-zone h3{font-size:1rem;color:var(--bad)}
.lmlist{display:flex;flex-direction:column;max-height:420px;overflow-y:auto;border:1px solid var(--line);border-radius:8px;padding:0 12px}
.check.lm{align-items:flex-start;padding:8px 0;border-top:1px solid var(--line)}
.check.lm:first-child{border-top:0}
.check.lm input{margin-top:3px}
.check.fmt{align-items:flex-start;padding:8px 0;border-top:1px solid var(--line)}
.check.fmt input{margin-top:3px}
.check.fmt input:disabled+span strong{color:var(--ink)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fgrid .full{grid-column:1/-1}
.inline{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:end}
.inline.two{grid-template-columns:1fr auto}
.teams2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.teamcfg{display:flex;flex-direction:column;gap:10px;border-top:4px solid var(--tc);padding-top:10px;min-width:0}
.swatches{display:flex;gap:6px;flex-wrap:wrap}
.sw{width:32px;height:32px;border-radius:50%;background:var(--tc);border:3px solid var(--surface);box-shadow:0 0 0 1px var(--line)}
.sw.on{box-shadow:0 0 0 2px var(--ink)}
.x{flex:none;width:44px;min-height:44px;border-radius:8px;border:1px solid var(--line);background:var(--sunk);font-size:1.1rem}
.roundcfg{border:1px solid var(--line);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:10px}
.rgrid{display:grid;grid-template-columns:2fr 1.4fr 1fr auto;gap:8px;align-items:end}
.mcfg{display:grid;grid-template-columns:1fr auto 1fr auto;gap:6px;align-items:center;padding-top:8px;border-top:1px dashed var(--line)}
.mcfg .sel{display:flex;flex-direction:column;gap:4px;min-width:0}
.mcfg .vs{font-size:.75rem;font-weight:600;color:var(--muted)}
.savebar{position:sticky;bottom:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));display:flex;gap:8px;align-items:center;flex-wrap:wrap;z-index:5}
.savebar .msg{flex:1 1 180px;font-size:.88rem;font-weight:500}

/* admin */
.subnav{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:2px}
.subnav::-webkit-scrollbar{display:none}
.subnav a{flex:none;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);text-decoration:none;color:var(--ink);font-weight:600;font-size:.85rem}
.subnav a[aria-current="page"]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
/* Tabs for one tournament's own pages (Settings, Look, Teams, Rounds & matches) */
.tsub{display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 14px 0}
.tsub-name{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;min-width:0}
.tsub-name strong{font-size:1rem;overflow-wrap:anywhere}
.ttabs{display:flex;flex-wrap:wrap;gap:0 2px;margin:0 -8px}
.ttabs::-webkit-scrollbar{display:none}
.ttabs a{flex:none;padding:8px 8px 10px;text-decoration:none;color:var(--muted);font-weight:600;font-size:.88rem;border-bottom:3px solid transparent}
.ttabs a:hover{color:var(--ink)}
.ttabs a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent)}
@media (max-width:380px){.tsub{padding-inline:10px}.ttabs{margin:0 -4px}.ttabs a{padding-inline:6px;font-size:.82rem}}
.trow,.arow{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.trow:first-child,.arow:first-child{border-top:0}
.trow .meta{font-size:.8rem;color:var(--muted)}
.trow strong{overflow-wrap:anywhere}
.arow{grid-template-columns:auto 1fr auto}
.arow .nm{min-width:0}
.arow .nm strong{display:block;overflow-wrap:anywhere;font-size:.95rem}
.arow .nm span{font-size:.78rem;color:var(--muted)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.seg button{border:0;background:var(--surface);min-height:40px;min-width:44px;padding:0 10px;font-weight:600;font-size:.85rem;color:var(--muted)}
.seg button+button{border-left:1px solid var(--line)}
.seg button[aria-pressed="true"]{background:var(--tc,var(--sunk));color:var(--on-tc,var(--ink))}
.seg button:disabled{cursor:not-allowed;opacity:.45}
.motifs{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.motif-card{display:flex;flex-direction:column;text-align:left;padding:0;border-radius:var(--r);border:2px solid var(--line);background:var(--bg);color:var(--ink);overflow:hidden;font-family:var(--f-body);min-width:0}
.motif-card[aria-pressed="true"]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}
.mc-hdr{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;background-color:var(--hdr-bg);background-image:var(--hdr-img);color:var(--hdr-ink);border-bottom:var(--hdr-band-w) solid var(--hdr-line);border-image:var(--hdr-band);box-shadow:var(--hdr-shadow);margin-bottom:var(--mc-gap,0px)}
.motif-rink .mc-hdr{--mc-gap:11px}
.mc-brand{font-family:var(--f-display);font-weight:var(--display-w);text-transform:var(--display-case);letter-spacing:var(--display-track);font-size:1.15rem;line-height:1.1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-score{background:var(--surface);border-radius:999px;padding:0 8px;font-family:var(--f-num);font-weight:var(--num-w);white-space:nowrap}
.mc-body{display:flex;flex-direction:column;gap:8px;padding:12px;margin:10px;background:var(--surface);border:1px solid var(--line);border-bottom:var(--panel-bottom);border-radius:8px}
.mc-row{display:flex;gap:10px;align-items:center}
.mc-name{font-family:var(--f-display);font-weight:var(--display-w);text-transform:var(--display-case);letter-spacing:var(--display-track);font-size:1.05rem;line-height:1.15}
.mc-blurb{font-size:.8rem;color:var(--muted);line-height:1.35}
.mc-foot{padding:0 12px 12px;display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.78rem;font-weight:600;color:var(--muted)}

/* header rules link */

/* pops */
.pop{color:var(--accent);font-size:.7em;letter-spacing:.1em;margin-left:2px;vertical-align:.15em}
.popsline{font-size:.9rem;font-weight:600;padding:8px 12px;border-radius:8px;background:var(--hilite)}
.popsline .pop{font-size:.8em}
table.card td.par{color:var(--muted);font-family:var(--f-num);font-weight:var(--num-w)}
table.card tr.future td .pop{opacity:1}

/* scorecard editor */
.rgrid2{display:grid;grid-template-columns:2fr 1fr;gap:8px;align-items:end}
.rgrid2.when{grid-template-columns:1fr 1fr}
.roundhead .when{font-size:13px;color:var(--muted);margin-top:2px}
.cardtoggle{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:44px;padding:0 12px;border-radius:8px;border:1px dashed var(--line);background:var(--sunk);font-weight:600;font-size:.88rem;text-align:left}
.cardtoggle.warn{border-color:var(--warn);color:var(--warn);background:var(--warn-bg)}
.cardedit{display:flex;flex-direction:column;gap:10px}
.nine{display:grid;grid-template-columns:34px repeat(var(--cols),minmax(0,1fr));gap:3px;align-items:center}
.nine .lbl{font-size:.68rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.nine .hn{text-align:center;font-family:var(--f-num);font-weight:var(--num-w);font-size:.95rem}
.nine input{min-height:38px!important;padding:0!important;text-align:center;font-variant-numeric:tabular-nums}
textarea{font:inherit;font-size:16px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px;width:100%;min-width:0;resize:vertical;line-height:1.45}

/* rules page */
.rules{max-width:100%}
.rules p,.rules li,.rules dd{max-width:65ch;line-height:1.55}
.rules ul,.rules ol{margin:0;padding-left:1.2em;display:flex;flex-direction:column;gap:8px}
.rdl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:8px 16px}
.rdl dt{font-weight:700}
.rdl dd{margin:0}
table.rtable{width:100%;border-collapse:collapse;font-size:.88rem}
table.rtable td:first-child{min-width:90px}
table.rtable th{text-align:left;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:6px 8px 6px 0;border-bottom:1px solid var(--line)}
table.rtable td{vertical-align:top;padding:10px 8px 10px 0;border-bottom:1px solid var(--line)}
.house{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55}

/* golfer rankings */
table.rank{width:100%;border-collapse:collapse;font-size:.9rem}
table.rank th{font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;text-align:left;padding:6px 6px;border-bottom:1px solid var(--line)}
table.rank td{padding:8px 6px;border-bottom:1px solid var(--line)}
table.rank .num{text-align:right;white-space:nowrap}
table.rank .strong{font-family:var(--f-num);font-weight:var(--num-w);font-size:1.05rem}
table.rank .rk{width:2.4em;color:var(--muted);font-weight:600;white-space:nowrap}
table.rank td.who{display:flex;align-items:center;gap:8px;min-width:0}
table.rank td.who a{color:var(--ink);text-decoration:none;font-weight:600;overflow-wrap:anywhere}
table.rank td.who .dot{flex:none;width:10px;height:10px}
table.rank tr.me td{background:var(--hilite)}

/* Mini-Matches */
.minis{display:flex;flex-direction:column;gap:6px}
.nine-h{font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.minirow{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center}
.minirow .mp{min-width:0;font-weight:500;color:var(--muted);overflow-wrap:anywhere}
.minirow .mp.lead{color:var(--tc);font-weight:700}
.minirow .mp.B{text-align:right}
.minirow .chip{min-width:58px;font-size:1rem}
.strip span.off{opacity:.35}
.pnet{display:flex;align-items:baseline;gap:8px;flex-basis:100%}
table.card tr.turn td{text-align:left;font-size:.75rem;font-weight:600;color:var(--muted);background:var(--sunk);padding:6px 8px}
.minipv{padding:6px 0 2px;line-height:1.5}

@media (max-width:520px){
  .rdl{grid-template-columns:1fr;gap:2px}
  .rdl dd{margin-bottom:8px}
  .teams2,.fgrid,.motifs{grid-template-columns:1fr}
  .rgrid{grid-template-columns:1fr 1fr}
  .rgrid .fld:first-child{grid-column:1/-1}
  .inline{grid-template-columns:1fr}
  .cup .t .p{font-size:3.2rem}
}
@media (prefers-reduced-motion:no-preference){.flash{animation:fl .9s ease-out}@keyframes fl{from{background:var(--hilite)}}}

/* tournament complete + organizer score fix */
.panel.final{border-color:var(--accent);text-align:center;align-items:center}
.panel.final h2{text-wrap:balance}
.fixhole{max-width:160px}
.fixgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fixside{display:flex;flex-direction:column;gap:8px;min-width:0;padding-top:8px;border-top:3px solid var(--tc)}
.fixside .tname{font-weight:700;color:var(--tc)}
.fixside input{max-width:90px}
h4{margin:6px 0 0;font-size:15px}

/* gear icon in the header nav; section headings on the Matches page */
.tabs a.icontab{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding-inline:8px}
@media (max-width:380px){nav.tabs{gap:0}nav.tabs a{padding-inline:3px;font-size:.8rem}.tabs a.icontab{padding-inline:6px}.tabs a.icontab svg{width:20px;height:20px}}
.tabs a.icontab svg{display:block}
.pagehead{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:6px 2px -4px;font-family:inherit;font-weight:700}

/* courses */
.teedot{display:inline-block;width:.8em;height:.8em;border-radius:50%;background:var(--tee);border:1px solid color-mix(in srgb,var(--ink) 35%,transparent);vertical-align:-.05em}
.coursecard h3{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.coursename{display:flex;align-items:center;gap:6px;min-height:1.4em}
.nine .tot{font-weight:700}

/* captains' picks */
.draftbar{border-left:4px solid var(--tc)}
.draftbar p{margin:0}
.chip.pick{--tc:var(--muted);border:1px dashed var(--line);font-size:.95rem}
.pickmatch{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--sunk)}
.pside{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.pside .tname{min-width:7em;font-weight:700}
.pslot{padding:4px 10px;border-radius:999px;border:1px dashed var(--line);color:var(--muted);font-size:.9rem;background:var(--surface)}
.pslot.set{border-style:solid;border-color:var(--tc);color:var(--ink);font-weight:600}
.pslot.now{border:2px solid var(--tc);color:var(--tc);font-weight:700}
.confirmpick{display:flex;flex-direction:column;gap:6px;padding:12px;border:2px solid var(--tc, var(--accent));border-radius:10px}
.confirmpick p{margin:0}
.picklog{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.picklog li{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;padding-left:10px;border-left:3px solid var(--tc)}
.picklog li .small{flex-basis:100%}
@media (max-width:339px){nav.tabs a{font-size:.72rem;padding-inline:2px}.tabs a.icontab{padding-inline:4px}}

/* team captain marker */
.tag.captag.captag{background:var(--tc);border-color:var(--tc);color:var(--surface)}

/* practice rounds on the Picks page */
.pround{display:flex;flex-direction:column;gap:8px;padding-top:10px;border-top:1px solid var(--line)}
.prow{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:center}
.prow > .small:not(:first-child){grid-column:2}
.prow .sel{display:flex;flex-direction:column;gap:6px;min-width:0}

.ninepick{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;padding-left:28px}
.ninepick .small{flex-basis:100%}

/* site footer + how-to page */
.sitefoot{border-top:1px solid var(--line);background:var(--surface)}
.sitefoot .wrap{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding-block:14px calc(14px + env(safe-area-inset-bottom, 0px))}
.sitefoot a{font-weight:600;color:var(--accent)}
.sitefoot a[aria-current="page"]{text-decoration:none;color:var(--ink)}
.sitefoot span{font-size:.8rem;color:var(--muted)}
.panel.guide.mine{border-color:var(--accent);box-shadow:inset 4px 0 0 var(--accent)}

/* Logged-out screens (login, and the how-to page before logging in): one fixed look, the dark green
   with white and yellow from the intro video. It doesn't follow the tournament's look or dark mode. */
body.door{--door-bg:#0f3d28;--door-ink:#ffffff;--door-soft:rgba(255,255,255,.78);--door-gold:#f2c94c;--door-field:#ffffff;--door-field-ink:#10291c;
  background:var(--door-bg);color:var(--door-ink);min-height:100vh;color-scheme:dark;
  background-image:repeating-linear-gradient(115deg,rgba(255,255,255,.035) 0 60px,rgba(255,255,255,0) 60px 120px),
    radial-gradient(120% 70% at 50% 0%,#2b8a5c 0%,#1f6b46 40%,#0f3d28 100%);background-attachment:fixed}
body.door .login{max-width:420px;margin:9vh auto 0;width:100%;display:flex;flex-direction:column;gap:14px;text-align:left}
body.door .wordmark{font-family:'Inter Display',Inter,system-ui,sans-serif;font-weight:900;font-size:clamp(3.4rem,15vw,4.6rem);letter-spacing:-.03em;line-height:1;color:var(--door-ink);text-transform:none}
body.door .wordmark b{color:var(--door-gold);font-weight:900}
body.door .wordmark.small{font-size:2rem}
body.door .tagline{font-size:1.2rem;font-weight:600;line-height:1.3;margin:-4px 0 10px;color:var(--door-ink)}
body.door .login h2{font-family:'Inter Display',Inter,system-ui,sans-serif;font-size:2rem;font-weight:800;color:var(--door-ink);text-transform:none;letter-spacing:-.01em}
body.door .lead{color:var(--door-soft);margin:0}
body.door .fine{color:var(--door-soft);font-size:.8rem;margin:0}
body.door .login .fld > span{color:var(--door-soft);font-weight:600}
body.door .login input{background:var(--door-field);color:var(--door-field-ink);border:2px solid transparent}
body.door .login input:not(.codeinput){font-size:1.15rem}
body.door .login input::placeholder{color:#7d8f84}
body.door .login input:focus{outline:none;border-color:var(--door-gold);box-shadow:0 0 0 3px rgba(242,201,76,.35)}
body.door .login .btn.primary{background:var(--door-gold);border-color:var(--door-gold);color:#0f3d28;font-weight:800}
body.door .login .btn:not(.primary){background:transparent;border-color:rgba(255,255,255,.55);color:var(--door-ink)}
body.door .login .errmsg{background:rgba(255,255,255,.95);color:#a1232b;border-radius:10px;padding:8px 10px}
body.door .sitefoot{background:transparent;border-top-color:rgba(255,255,255,.18)}
body.door .sitefoot a{color:var(--door-gold)}
body.door .sitefoot span{color:var(--door-soft)}
/* the how-to page before logging in: glassy cards on the green, white text, gold and outline buttons */
body.door main > .panel{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);color:var(--door-ink);box-shadow:none}
body.door main > .panel h2{color:var(--door-ink)}
body.door main > .panel .muted,body.door main > .panel .eyebrow{color:var(--door-soft)}
body.door main > .panel.guide.mine{box-shadow:inset 4px 0 0 var(--door-gold)}
body.door main > .panel .btn.primary{background:var(--door-gold);border-color:var(--door-gold);color:#0f3d28;font-weight:800}
body.door main > .panel .btn:not(.primary){background:transparent;border-color:rgba(255,255,255,.55);color:var(--door-ink)}

/* Settle up: money in the usual ledger colours. Green collects, red owes, black (the ink colour) is even. */
.amt{font-family:var(--f-num);font-weight:var(--num-w);font-variant-numeric:tabular-nums;white-space:nowrap}
.amt.pos{color:var(--gain)} .amt.neg{color:var(--loss)} .amt.zero{color:var(--even)}
.settle-you .bottomline{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:6px 0 10px}
.settle-you .verdict{font-family:var(--f-display);font-weight:var(--display-w);text-transform:var(--display-case);letter-spacing:var(--display-track);font-size:1.5rem}
.settle-you .bottomline .amt{font-size:2.6rem;line-height:1}
.ledger{display:flex;flex-direction:column;margin:8px 0}
.lrow{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 0;border-top:1px solid var(--line);font-size:.92rem}
.lrow>span:first-child{min-width:0;overflow-wrap:anywhere}
.lrow.total{border-top:2px solid var(--ink);font-weight:700}
.lrow.total .amt{font-size:1.2rem}
.sgrow{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.sgrow>div{min-width:0} .sgwin{font-size:.9rem;text-align:right}
.srow{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line)}
.srow .nm{min-width:0;overflow-wrap:anywhere;font-weight:500} .srow .amt{font-size:1.1rem;min-width:5.5em;text-align:right}
.srow.me,.prow.me{background:var(--hilite);margin:0 -10px;padding-left:10px;padding-right:10px;border-radius:6px}
.prow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:.92rem}
.prow>span:first-child{min-width:0;overflow-wrap:anywhere} .prow .handle{color:var(--muted);font-weight:600;user-select:all}
.sgedit{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--line);border-radius:var(--r);background:var(--sunk)}
.sgtop{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.sgtop .fld.sm{max-width:8rem}
.sgedit select,.sgedit input{min-height:40px}
.potsum{background:var(--hilite);border-radius:8px;padding:10px 12px;font-size:.9rem;font-weight:600;margin:0}
.potsum.bad{background:var(--warn-bg);color:var(--bad)}
@media (max-width:380px){.settle-you .bottomline .amt{font-size:2.2rem}}

/* Tee times: optional per match. In the round editor it sits under the pairing; on Matches it heads the row. */
.mcfg .mtee{grid-column:1/-1;display:flex;align-items:center;gap:8px;font-size:.82rem;font-weight:600;color:var(--muted)}
.mcfg .mtee input{width:auto;min-height:38px;padding:6px 8px}
.mrow .tee{grid-column:1/-1;display:flex;align-items:center;gap:5px;font-size:.75rem;font-weight:700;letter-spacing:.02em;color:var(--muted);margin-bottom:-4px}
.mrow.mine .tee{color:var(--ink)}
.teebig{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:.95rem;margin:2px 0 8px;color:var(--ink)}
.teebig strong{font-size:1.05rem}
.teebig.played{font-size:.82rem;color:var(--muted)} .teebig.played strong{font-size:inherit}

/* A round that isn't open for scoring yet. */
.gate{display:flex;align-items:center;gap:6px;font-size:.82rem;font-weight:600;color:var(--muted);background:var(--sunk);border-radius:8px;padding:7px 10px;margin:4px 0 6px}

/* Home page: golfers log in with their phone; spectators enter the tournament's code. */
.login .or{display:flex;align-items:center;gap:12px;margin:22px 0 4px;color:inherit;opacity:.7;font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.login .or::before,.login .or::after{content:"";flex:1;height:1px;background:currentColor;opacity:.35}
.login .watchhead{margin:6px 0 0;font-size:1.25rem}
#l-watch{text-transform:uppercase;letter-spacing:.12em;font-weight:700}
#t-watch{text-transform:uppercase;letter-spacing:.08em}
/* Spectator scoreboard */
.watchhero{text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}
.watchhero h1{margin:0;font-family:var(--f-display);font-weight:var(--display-w);text-transform:var(--display-case);letter-spacing:var(--display-track);font-size:1.6rem;text-wrap:balance}
.watchhero .cup{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:end;width:100%;margin:6px 0 2px}
.watchhero .cside{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}
.watchhero .cside.B{align-items:flex-end}
.watchhero .team{color:var(--tc);font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;overflow-wrap:anywhere}
.watchhero .pts{color:var(--tc);font-family:var(--f-num);font-weight:var(--num-w);font-size:3.4rem;line-height:1;font-variant-numeric:tabular-nums}
.watchhero .dash{font-size:2rem;color:var(--muted);padding-bottom:6px}
.livedot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--loss);margin-right:6px;vertical-align:1px;animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.livedot{animation:none}}
.wmatch{border-top:1px solid var(--line);padding:8px 0 10px}
.wmatch:first-of-type{border-top:0}
.wmatch .tee{display:flex;align-items:center;gap:5px;font-size:.75rem;font-weight:700;color:var(--muted)}
.strip.mini span{font-size:.62rem;height:20px}
.wminis{display:flex;flex-direction:column;gap:2px;margin-top:4px}
.wmini{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;font-size:.82rem;color:var(--muted)}
.wmini .lead{color:var(--tc);font-weight:700}
.watchfoot{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
#l-watch::placeholder,#t-watch::placeholder{text-transform:none;letter-spacing:normal;font-weight:400}

/* Standard practice rounds: each golfer's own scores. */
.stdlist{display:flex;flex-direction:column}
.stdp{display:grid;grid-template-columns:auto 1fr auto 2.2em 2.4em;gap:10px;align-items:center;padding:7px 0;border-top:1px solid var(--line)}
.stdp:first-child{border-top:0}
.stdp .nm{min-width:0;overflow-wrap:anywhere;font-weight:600}
.stdp .tot{font-family:var(--f-num);font-weight:var(--num-w);font-size:1.15rem;text-align:right;font-variant-numeric:tabular-nums}
.stdp .topar{font-size:.85rem;font-weight:700;color:var(--muted);text-align:right}
.stdp.me{background:var(--hilite);margin:0 -10px;padding-left:10px;padding-right:10px;border-radius:6px}
.holebtns{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:4px}
.holebtns .hb{display:flex;flex-direction:column;align-items:center;gap:1px;min-height:46px;padding:4px 0;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);font-size:.68rem;font-weight:600;cursor:pointer}
.holebtns .hb b{font-size:.95rem;color:var(--ink);min-height:1.1em}
.holebtns .hb.done{background:var(--sunk)}
.holebtns .hb.on{outline:2px solid var(--accent);outline-offset:-2px;color:var(--ink)}
table.card.std td.sc.under{color:var(--gain);font-weight:700}
table.card.std td.sc.over{color:var(--ink)}
table.card.std tr.tot td{border-top:2px solid var(--ink);font-weight:600}
table.card.std tr.tot small{display:block;font-size:.7rem;color:var(--muted);font-weight:600}
/* What if (practice matches only) */
.whatif .wifhead{display:flex;align-items:center;justify-content:space-between;gap:8px}
.whatif .wifhead h3{margin:0}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;gap:3px;align-self:flex-start}
.seg button{border:0;background:transparent;border-radius:999px;padding:7px 16px;font-weight:700;font-size:.85rem;color:var(--muted);cursor:pointer;min-height:36px}
.seg button.on{background:var(--accent);color:var(--on-accent,#fff)}
.wif{border-top:1px solid var(--line);padding:6px 0 10px}
.wif:first-of-type{border-top:0}
