/* MN Select 13-1 portal. Design system borrowed from the Small Group Scheduler, recolored to maroon.
   One ink (navy), gold only for selected/best/confirmed, semantic yes/maybe/no at two steps,
   warm canvas, hairlines not shadows, 4 type sizes, 4/8/12/16/24/32 spacing, 8/12/16 radii. */
:root{--ink:#5e1527;--ink-2:#7a2438;--text:#161616;--gold:#c9ccd1;--gold-bg:#eff0f2;--silver:#c9ccd1;--silver-bg:#eff0f2;--canvas:#f3f4f6;--card:#fff;--line:#dcdfe3;--line-2:#c4c8cd;--muted:#5a5f66;--faint:#9ba0a7;
--yes:#2e9e5b;--yes-bg:#e6f4ea;--maybe:#c96a12;--maybe-bg:#fdeee0;--no:#c9443f;--no-bg:#fbe8e7;--hol:#161616;--hol-bg:#e6e8eb;--link:#7a2438;--maroon:#5e1527;--maroon-bg:#f5e8ec;
--heat1:#eceef0;--heat2:#d5d8dc;--heat3:#9ea3aa;--r8:8px;--r12:12px;--r16:16px;
/* legacy aliases used by older rules and scripts */--navy:var(--ink);--navy2:var(--ink-2);--green:var(--yes-bg);--green-d:#bfe3cb;--green-t:#1e6a3c;--amber:var(--maybe-bg);--amber-t:#8a4a0c;--red:var(--no-bg);--red-t:#8f2f2b;--hol-t:var(--hol);--blue:var(--heat1);--bg:var(--canvas);color-scheme:light}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Inter","Segoe UI",Roboto,Arial,sans-serif;background:var(--canvas);color:var(--text);font-size:15px;line-height:1.45}
h1,h2,h3{color:var(--ink)}
main{max-width:720px;margin:0 auto;padding:0 16px 72px}main.narrow{max-width:460px;padding-top:24px}
h1{font-size:22px;font-weight:650;letter-spacing:-.01em;margin:0}h2{font-size:18px;font-weight:650;margin:0 0 6px;letter-spacing:-.005em}h3{font-size:15px;font-weight:650;margin:0 0 4px}
p{margin:6px 0}small{color:var(--muted);display:block;margin-top:6px;line-height:1.4;font-size:13px}
.sub{color:var(--muted);margin:0 0 10px;font-size:13.5px}.when{font-size:18px;font-weight:650;margin:0}
a{color:var(--link)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r12);padding:16px;margin:12px 0}
/* buttons: one filled navy per screen; everything else ghost */
.btn{display:block;text-decoration:none;text-align:center;font-weight:650;font-size:15px;padding:12px 16px;border-radius:var(--r8);margin:8px 0;background:var(--ink);color:#fff;border:1px solid var(--ink);width:100%;cursor:pointer;font-family:inherit;line-height:1.2}
.btn.light{background:var(--card);color:var(--ink);border-color:var(--line-2)}.btn.gold{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.btn.sm{display:inline-block;width:auto;padding:7px 12px;font-size:13px;margin:0}
.pill{display:inline-block;font-size:11.5px;font-weight:650;border-radius:999px;padding:3px 9px;line-height:1.2;vertical-align:middle;background:var(--heat1);color:var(--ink)}.pill.gold{background:var(--gold);color:var(--ink)}
/* header */
header.top{position:sticky;top:0;z-index:5;background:rgba(243,244,246,.94);backdrop-filter:blur(8px);margin:0 -16px;padding:10px 16px 8px;border-bottom:1px solid var(--line)}
.title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.title-actions{display:flex;gap:4px;flex:0 0 auto}
.ibtn{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--ink);text-decoration:none;padding:7px 9px;border-radius:var(--r8);border:1px solid transparent}.ibtn:hover{border-color:var(--line)}.ibtn span{display:none}@media (min-width:480px){.ibtn span{display:inline}}
.tabs{display:flex;gap:4px;margin:10px 0 0;background:#e3e5e8;border-radius:var(--r8);padding:3px}.tab{flex:1;font:inherit;font-size:14px;font-weight:650;padding:8px;border-radius:6px;border:0;background:transparent;color:var(--muted);cursor:pointer}.tab.on{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.me{display:flex;gap:8px;align-items:center;margin:8px 0 0}.me label{font-size:13px;color:var(--muted)}
select.me-sel{flex:1;font:inherit;font-size:14px;font-weight:600;padding:8px 32px 8px 12px;border-radius:999px;border:1px solid var(--line-2);background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%235f6f78'/%3E%3C/svg%3E") no-repeat right 12px center;-webkit-appearance:none;appearance:none;color:var(--ink)}
.months{display:flex;gap:6px;overflow-x:auto;padding:8px 0 2px;scrollbar-width:none}.months::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;border:1px solid var(--line-2);background:var(--card);color:var(--ink);border-radius:999px;padding:5px 12px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
/* best dates panel */
.best-box{padding:0;overflow:hidden}.best-sum{padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:8px;cursor:pointer;list-style:none;font-size:18px;font-weight:650;color:var(--ink);border-bottom:1px solid var(--line)}
.best-sum::-webkit-details-marker{display:none}details.best-box summary.best-sum::after,details.best-box[open] summary.best-sum::after{content:none}
.best-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.star{color:var(--gold);font-size:16px}.best-count{font-size:12px;font-weight:600;color:var(--muted);background:var(--heat1);border-radius:999px;padding:2px 9px}
.best-hint{font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}.best-hint::after{content:" ▾"}.best-box:not([open]) .best-hint::after{content:" ▸"}
.best-body{padding:12px 16px 14px}.best-body .sub{margin:0 0 4px}.best-body .best{list-style:none;margin:0;padding:0}
.best li.bd{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.best li.bd:last-child{border-bottom:0}
.best li.best1 .dtile{border-color:var(--gold);background:var(--gold-bg)}
.dtile{flex:0 0 54px;height:64px;border-radius:var(--r12);border:1px solid var(--line);background:var(--card);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05}.dtile b{font-size:24px;font-weight:650;letter-spacing:-.02em}.dtile small{font-size:11px;margin:0;color:var(--muted);font-weight:600}.dtile.confirmed{background:var(--gold);border-color:var(--gold)}.dtile.confirmed small{color:var(--ink)}
.bd-main{flex:1;min-width:0}.bd-top{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:24px}.bd-date{display:flex;gap:6px;align-items:center}
.best .n{flex:0 0 auto;font-weight:650;font-size:13px;color:var(--ink);background:var(--heat1);border-radius:999px;padding:3px 10px}.best .n.all{background:var(--heat2)}
.strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:8px 0 8px}
.hh{border-radius:var(--r8);padding:6px 4px;text-align:center;line-height:1.2;font-size:11px;display:flex;flex-direction:column;gap:2px;min-height:52px;justify-content:center;border:1px solid var(--line);background:var(--card);color:var(--ink)}
.hh .hn{font-size:10.5px;color:var(--muted)}.hh .hs{font-weight:650;font-size:12px}
.hh.g{background:var(--yes-bg);border-color:transparent;color:var(--green-t)}.hh.g .hn{color:var(--green-t)}.hh.a{background:var(--maybe-bg);border-color:transparent;color:var(--amber-t)}.hh.a .hn{color:var(--amber-t)}.hh.r{background:var(--no-bg);border-color:transparent;color:var(--red-t)}.hh.r .hn{color:var(--red-t)}.hh.n{border-style:dashed;color:var(--faint)}.hh.n .hn{color:var(--faint)}
.bd-ln{display:flex;gap:10px;align-items:flex-start;margin-top:4px;font-size:13.5px;line-height:1.35}.bd-k{flex:0 0 92px;display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:12.5px;font-weight:600}
.bd-hol{color:var(--hol);font-style:italic}
/* month + weekend blocks */
.month-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:18px;font-weight:650;margin:24px 0 8px;letter-spacing:-.005em}
.wk-tools{display:flex;gap:4px}.wk-all{font:inherit;font-size:12px;font-weight:600;color:var(--muted);background:transparent;border:0;border-radius:999px;padding:4px 8px;cursor:pointer}.wk-all:hover{color:var(--ink)}
details.wk{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--r12);margin:8px 0;overflow:hidden}
details.wk>summary.wk-sum{list-style:none;display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;font-weight:650;font-size:15px;user-select:none}
details.wk>summary::-webkit-details-marker{display:none}details.wk summary.wk-sum::after,details.wk[open] summary.wk-sum::after{content:none}details.wk[open]>summary.wk-sum{border-bottom:1px solid var(--line)}
.wk-title{flex:1;white-space:nowrap}.wk-hol{color:var(--hol);font-size:8px;margin-left:6px;vertical-align:middle}
.wk-mini{display:flex;gap:6px}.mc{font-size:12px;font-weight:500;color:var(--muted);padding:2px 7px;border-radius:999px;background:transparent}.mc b{font-weight:650;color:var(--ink)}.mc.on{background:var(--heat1)}.mc.cf{background:var(--gold)}.mc.cf b{color:var(--ink)}
.wk-caret{width:8px;height:8px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg);margin:0 4px 3px 2px;transition:transform .15s}details.wk:not([open])>summary .wk-caret{transform:rotate(-45deg);margin-bottom:0}
table.grid{width:100%;border-collapse:collapse;table-layout:fixed}
.grid th,.grid td{border-bottom:1px solid var(--line);padding:8px 5px;text-align:center;vertical-align:middle;font-size:13px}
.grid tbody tr:last-child td{border-bottom:0}
.grid th.lbl,.grid td.lbl{text-align:left;padding-left:14px;width:31%;font-weight:600;font-size:12.5px;color:var(--muted)}
.grid thead th{font-weight:650;font-size:14px;color:var(--ink);padding:10px 5px}.grid thead th .dn{display:block;font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}.grid thead th.na,.grid td.na{background:transparent;color:var(--faint)}
.hol td{color:var(--hol);font-size:11.5px;font-style:italic;line-height:1.25;padding:5px}.hol td.lbl{font-style:normal;color:var(--muted)}
.grid tr.mine td{background:var(--gold-bg)}.grid tr.mine td.lbl{color:var(--ink)}
select.resp{width:100%;font:inherit;font-size:12.5px;font-weight:600;padding:9px 20px 9px 8px;border-radius:999px;border:1px solid var(--line-2);color:transparent!important;background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%235f6f78'/%3E%3C/svg%3E") no-repeat right 8px center;-webkit-appearance:none;appearance:none;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:38px}
select.resp.g{background-color:var(--yes-bg);color:var(--green-t);border-color:transparent}select.resp.a{background-color:var(--maybe-bg);color:var(--amber-t);border-color:transparent}select.resp.r{background-color:var(--no-bg);color:var(--red-t);border-color:transparent}
.times{display:block;margin:5px auto 0;font:inherit;font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--muted);cursor:pointer;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.times.set{border-color:transparent;background:var(--heat1);color:var(--ink)}
.cnt td{font-weight:650;color:var(--ink)}.cnt td.some{background:var(--heat1)}.cnt td.all{background:var(--heat2)}
.who td{font-size:12px;color:var(--ink);line-height:1.3}.who td.empty{color:var(--faint)}.cmn td{font-size:12px;color:var(--ink);font-weight:600}.cmn td.none{color:var(--no)}
.act td{padding:8px 5px 12px;border-bottom:0}
.conf{display:block;width:100%;font:inherit;font-size:12px;font-weight:650;padding:8px 4px;border-radius:999px;border:1px solid var(--line-2);background:var(--card);color:var(--ink);cursor:pointer;min-height:34px}.conf.on{background:var(--gold);border-color:var(--gold)}
.cal{display:inline-block;margin-top:6px;font-size:12px;font-weight:600;color:var(--link);text-decoration:none}
/* how it works + misc */
details summary{cursor:pointer;font-weight:650;font-size:18px;list-style:none;display:flex;justify-content:space-between;align-items:center}details summary::-webkit-details-marker{display:none}details summary::after{content:"+";color:var(--muted);font-weight:400}details[open] summary::after{content:"–"}
#how p{font-size:14px}
.key{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.key span{font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px}
.form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}.form label{font-size:12px;font-weight:600;color:var(--muted);display:block;margin-bottom:4px}.form input,.form textarea{width:100%;font:inherit;font-size:15px;padding:10px 12px;border-radius:var(--r8);border:1px solid var(--line-2);background:var(--card);color:var(--ink)}.form textarea{resize:vertical;min-height:72px}.form .full{grid-column:1/-1}
.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px;font-size:14px;font-weight:600;opacity:0;transition:opacity .2s;pointer-events:none;z-index:9}.toast.show{opacity:1}
.totop{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:15;font:inherit;font-size:13px;font-weight:650;padding:10px 14px;border-radius:999px;border:1px solid var(--ink);background:var(--ink);color:#fff;box-shadow:0 2px 8px rgba(27,58,75,.2);opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .2s,transform .2s;cursor:pointer}.totop.show{opacity:1;pointer-events:auto;transform:none}
[hidden]{display:none!important}
@media (display-mode: standalone){.install-link{display:none!important}}
@media (min-width:560px){.grid th,.grid td{font-size:14px}select.resp{font-size:13.5px}}
/* time window sheet */
.sheet-bg{position:fixed;inset:0;background:rgba(27,58,75,.4);z-index:20;display:none;align-items:flex-end;justify-content:center}.sheet-bg.open{display:flex}
.sheet{background:var(--card);width:100%;max-width:520px;border-radius:var(--r16) var(--r16) 0 0;padding:16px 16px calc(18px + env(safe-area-inset-bottom));animation:up .18s ease-out}@keyframes up{from{transform:translateY(30px);opacity:.6}to{transform:none;opacity:1}}
.sheet h2{margin:0 0 2px}.sheet .sub{margin-bottom:10px}
.presets{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.presets button{font:inherit;font-size:12.5px;font-weight:600;padding:7px 11px;border-radius:999px;border:1px solid var(--line-2);background:var(--card);color:var(--ink);cursor:pointer}.presets button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.win{border:1px solid var(--line);border-radius:var(--r12);padding:10px 12px 6px;margin:8px 0;background:var(--card)}
.win-lbl{display:flex;justify-content:space-between;align-items:center;font-weight:650;font-size:15px}.win-lbl .rm{font:inherit;font-size:12px;font-weight:600;color:var(--no);background:none;border:0;padding:4px 6px;cursor:pointer}
.dual{position:relative;height:44px;margin:2px 0 0}.dual .track{position:absolute;left:0;right:0;top:19px;height:6px;border-radius:3px;background:var(--line)}.dual .fill{position:absolute;top:19px;height:6px;border-radius:3px;background:var(--ink)}
.dual input[type=range]{position:absolute;left:0;top:0;width:100%;height:44px;margin:0;-webkit-appearance:none;appearance:none;background:transparent;pointer-events:none;outline:none}
.dual input[type=range]::-webkit-slider-runnable-track{background:transparent;height:44px}.dual input[type=range]::-moz-range-track{background:transparent;height:44px}
.dual input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:30px;height:30px;border-radius:50%;background:#fff;border:3px solid var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.2);margin-top:7px;cursor:grab}
.dual input[type=range]::-moz-range-thumb{pointer-events:auto;width:24px;height:24px;border-radius:50%;background:#fff;border:3px solid var(--ink);cursor:grab}
.ticks{display:flex;justify-content:space-between;font-size:10.5px;color:var(--muted);padding:0 2px}
.addwin{font:inherit;font-size:13px;font-weight:600;color:var(--ink);background:none;border:1px dashed var(--line-2);border-radius:var(--r8);padding:9px;width:100%;cursor:pointer;margin-top:4px}
.sheet .summary{margin:10px 0 4px;font-size:14px;color:var(--muted);min-height:20px}.sheet .row{display:flex;gap:8px}.sheet .row .btn{margin:6px 0 0}
/* ---- study tab ---- */
.hero{background:var(--card);border:1px solid var(--line);border-radius:var(--r12);padding:16px;margin:12px 0}
.eyebrow{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.hero-title{font-size:22px;font-weight:650;letter-spacing:-.01em;line-height:1.2;margin-top:4px}.hero-sub{font-size:13.5px;color:var(--muted);margin-top:4px}
.hbar{display:flex;gap:3px;height:10px;margin:14px 0 10px}.hbar span{border-radius:5px;min-width:10px}
.seg-a{background:var(--gold)}.seg-b{background:var(--ink)}.seg-c{background:var(--heat3)}.seg-d{background:var(--hol)}.seg-none{background:var(--heat1)}
.hlegend{display:grid;gap:5px}.hlegend div{display:flex;align-items:center;gap:8px;font-size:13.5px}.hlegend .dot{width:10px;height:10px;border-radius:50%;flex:0 0 10px}.hl-t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hlegend b{font-weight:650}
.hero-btn{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font:inherit;font-size:14px;font-weight:650;padding:11px 14px;border-radius:var(--r8);border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer}
.hero-link{margin-top:10px;font:inherit;font-size:12.5px;font-weight:600;color:var(--muted);background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}
.who-card.nudge{box-shadow:0 0 0 3px var(--gold)}.people{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:6px}
.pchip{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;font:inherit;font-size:12.5px;font-weight:600;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--r12);padding:9px 4px 7px;cursor:pointer}.pchip.on{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink) inset;background:var(--heat1)}
.pchip .tick{position:absolute;top:5px;right:6px;width:17px;height:17px;border-radius:50%;background:var(--yes);color:#fff;display:flex;align-items:center;justify-content:center}.pchip .tick svg{width:10px;height:10px}
.av{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;font-size:13px;font-weight:650;flex:0 0 auto}
.av.h0{background:var(--heat1);color:var(--ink)}.av.h1{background:#e6e2fb;color:#3c3489}.av.h2{background:#d5f0e8;color:#085041}.av.h3{background:#fbe3d8;color:#712b13}
.stack{display:inline-flex}.stack .av{width:28px;height:28px;font-size:11.5px;border:2px solid #fff;margin-left:-8px}.stack .av:first-child{margin-left:0}
.studies{display:grid;gap:12px;margin:12px 0}@media (min-width:640px){.studies{grid-template-columns:1fr 1fr}}
.study{position:relative;background:var(--card);border-radius:var(--r12);overflow:hidden;border:1px solid var(--line);display:flex;flex-direction:column}.study.picked{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
.cover{aspect-ratio:16/9;background:var(--heat1) center/cover no-repeat}.cover.none{display:flex;align-items:center;justify-content:center;color:var(--muted)}
.cover.sm{flex:0 0 56px;width:56px;height:56px;aspect-ratio:auto;border-radius:var(--r8)}
.ribbon{position:absolute;top:10px;left:10px;font-size:11.5px;font-weight:650;border-radius:999px;padding:4px 10px;background:var(--ink);color:#fff}.ribbon.gold{background:var(--gold);color:var(--ink)}
.study-body{padding:12px 14px 14px;display:flex;flex-direction:column;flex:1}
.chips{display:flex;flex-wrap:wrap;gap:5px}.chips span{font-size:11.5px;font-weight:600;background:var(--heat1);color:var(--ink);border-radius:999px;padding:3px 9px}.chips .free{background:var(--yes-bg);color:var(--green-t)}
.study-title{font-size:18px;font-weight:650;margin:8px 0 0;letter-spacing:-.005em}.study-teacher{font-size:12.5px;color:var(--muted);margin-top:2px}
.study-desc{font-size:13.5px;margin:8px 0 4px}.study-cost{font-size:12.5px;color:var(--muted);margin:2px 0 4px}
.sess{margin:6px 0 2px;border:1px solid var(--line);border-radius:var(--r8);padding:0 10px;background:var(--card)}.sess summary{font-size:13px;font-weight:600;padding:9px 0;color:var(--ink)}.sess ol{margin:0 0 10px;padding-left:20px;font-size:13px;line-height:1.5}
.study-links{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 2px}.lbtn{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;color:var(--ink);text-decoration:none;border:1px solid var(--line-2);border-radius:999px;padding:6px 10px;background:var(--card)}
.study-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}.study-links+.study-foot{margin-top:12px}
.voters{display:flex;align-items:center;gap:8px;min-width:0}.vcount{font-size:12.5px;font-weight:600;color:var(--ink)}.vcount.none{font-weight:500;color:var(--muted)}
.pick{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:14px;font-weight:650;padding:10px 16px;border-radius:var(--r8);border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;white-space:nowrap}.pick.mine{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.sec-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:4px}.sec-head h2{margin:0}
.seg{display:inline-flex;background:#ebe8e0;border-radius:var(--r8);padding:3px}.seg button{font:inherit;font-size:12px;font-weight:600;padding:6px 9px;border-radius:6px;border:0;background:transparent;color:var(--muted);cursor:pointer}.seg button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.tl{list-style:none;margin:10px 0 0;padding:0;position:relative}.tl::before{content:"";position:absolute;left:26px;top:8px;bottom:8px;width:1px;background:var(--line)}
.tl li{display:flex;gap:12px;padding:8px 0;position:relative}
.tile{flex:0 0 54px;height:62px;border-radius:var(--r12);background:var(--card);border:1px solid var(--line);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05;position:relative;z-index:1}.tile b{font-size:20px;font-weight:650}.tile small{font-size:10.5px;margin:0;color:var(--muted);font-weight:600}
.tile.confirmed{background:var(--gold);border-color:var(--gold)}.tile.confirmed small{color:var(--ink)}.tile.proposed{background:var(--yes-bg);border-color:transparent}.tile.proposed small,.tile.proposed b{color:var(--green-t)}.tile.open{border-style:dashed}.tile.open b,.tile.open small{color:var(--faint)}
.tl-body{flex:1;min-width:0;padding-top:2px}.tl-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.tl-n{font-size:11.5px;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.tl-title{font-size:14.5px;font-weight:650;margin-top:1px}.tl-det{font-size:12.5px;color:var(--muted);margin-top:2px}.tl-hol{font-size:12px;color:var(--hol);font-style:italic;margin-top:1px}
.tl-cal{display:inline-flex;align-items:center;gap:5px;margin-top:5px;font:inherit;font-size:12px;font-weight:600;color:var(--link);background:none;border:0;padding:0;text-decoration:none;cursor:pointer}
.st-chip{flex:0 0 auto;font-size:11px;font-weight:650;border-radius:999px;padding:2px 8px}.st-chip.gold{background:var(--gold);color:var(--ink)}.st-chip.green{background:var(--yes-bg);color:var(--green-t)}.st-chip.gray{background:var(--heat1);color:var(--muted)}
.up{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.up:last-child{border-bottom:0}.up-body{flex:1;min-width:0}.up-title{font-size:14.5px;font-weight:650;overflow-wrap:anywhere}.up-meta{font-size:12px;color:var(--muted);margin-top:1px}.up-notes{font-size:13px;color:var(--ink);margin-top:3px;overflow-wrap:anywhere;white-space:pre-line}.up-link{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:600;color:var(--link);text-decoration:none;margin-top:3px}
.st-x{font:inherit;font-size:12px;font-weight:600;color:var(--no);background:none;border:0;cursor:pointer;flex:0 0 auto}
.suggest{background:var(--card)}.sug-head{display:flex;gap:12px;align-items:flex-start}.sug-head h2{margin:0 0 2px}.sug-ic{flex:0 0 40px;height:40px;border-radius:var(--r8);background:var(--gold-bg);color:var(--ink);display:flex;align-items:center;justify-content:center}
.card.empty{text-align:center;padding:22px 16px}.empty-ic{width:44px;height:44px;border-radius:var(--r12);background:var(--heat1);color:var(--muted);display:inline-flex;align-items:center;justify-content:center;margin-bottom:6px}.empty-ic svg{width:22px;height:22px}
/* install + add pages */
.in-hero{display:flex;gap:14px;align-items:center;margin:18px 0 6px}.in-hero img{width:72px;height:72px;border-radius:18px;border:1px solid var(--line)}.in-hero h1{margin:0;font-size:22px}.in-hero p{margin:2px 0 0;color:var(--muted);font-size:14px}
.steps{list-style:none;margin:0;padding:0;counter-reset:s}.steps li{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line);counter-increment:s;font-size:15px;line-height:1.45}.steps li:last-child{border:0}.steps li>span{flex:1;min-width:0}
.steps li::before{content:counter(s);flex:0 0 28px;height:28px;border-radius:50%;background:var(--ink);color:#fff;font-weight:650;font-size:13px;display:flex;align-items:center;justify-content:center}
.ic{display:inline-block;width:20px;height:20px;vertical-align:-5px;margin:0 2px}.card.dim{opacity:.6}.plat{font-size:12px;font-weight:650;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin:0 0 4px}
.done{background:var(--yes-bg);color:var(--green-t);border-radius:var(--r12);padding:12px 14px;font-weight:650}

.cell{position:relative;display:block}.cell .rlabel{position:absolute;left:0;right:20px;top:0;bottom:0;display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:600;color:var(--muted);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 6px}
.cell.g .rlabel{color:var(--green-t)}.cell.a .rlabel{color:var(--amber-t)}.cell.r .rlabel{color:var(--red-t)}
select.resp option{color:var(--ink)}

.badge{display:inline-block;font-size:10.5px;font-weight:650;border-radius:999px;padding:2px 7px;background:var(--gold);color:var(--ink);margin-top:3px}
/* ---- header v3: utility bar + title ---- */
header.top{padding-top:0}
.ubar{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--ink);color:#fff;margin:0 -16px;padding:9px 16px}
.ubrand{display:inline-flex;align-items:center;opacity:.95}.ubrand img{display:block;height:20px;width:auto}
.unav{display:flex;gap:6px}.ulink{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:650;color:#fff;text-decoration:none;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.14);white-space:nowrap}.ulink:hover{background:rgba(255,255,255,.2)}
.ulink span{display:none}@media (min-width:440px){.ulink span{display:inline}}
.title-row{padding:14px 0 2px}.tagline{margin:2px 0 0;font-size:13px;color:var(--muted)}
/* ---- buttons v3 ---- */
.btn{transition:transform .08s,box-shadow .12s,background .12s}.btn:active{transform:translateY(1px)}
.btn.light{border:1.5px solid var(--line-2);color:var(--ink);background:var(--card);box-shadow:0 1px 0 rgba(27,58,75,.04)}.btn.light:hover{border-color:var(--ink);background:#fbfaf6}
.btn.cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:auto;padding:13px 22px;font-size:15px;border-color:var(--ink)}
.btn.sm.light{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;font-size:12.5px;border-width:1.5px}
#how summary .btn{margin:0 8px 0 0}
/* ---- how it works v3 ---- */
#how .steps li{font-size:14px;line-height:1.45;padding:10px 0}#how .steps li::before{background:var(--heat1);color:var(--ink)}#how .steps li>span b{font-weight:650}
.keyrow{display:flex;gap:12px;align-items:flex-start;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.keylbl{flex:0 0 auto;font-size:12px;font-weight:650;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;padding-top:4px}
.key{margin-top:0}
.sec-ic{width:36px;height:36px;border-radius:10px;background:var(--heat1);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;margin-bottom:8px}
/* sticky: only the utility bar and the month strip */
header.top{position:static;backdrop-filter:none;background:transparent;border-bottom:0}
.ubar{position:sticky;top:0;z-index:6}
.months{position:sticky;top:42px;z-index:5;background:var(--canvas);margin:0 -16px;padding:8px 16px 8px;border-bottom:1px solid var(--line)}
#view-study:not([hidden])~* .months{display:none}

.hol td{padding:6px 4px;font-style:normal}.htag-btn{font:inherit;background:none;border:0;padding:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;width:100%}
.htag{display:inline-block;max-width:100%;font-size:10.5px;font-weight:650;line-height:1.2;color:var(--hol);background:var(--hol-bg);border-radius:999px;padding:3px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.htag.more{background:transparent;color:var(--muted);font-weight:600}
.toast{max-width:calc(100% - 32px);text-align:center;line-height:1.35}

.hol td{padding:7px 10px 7px 14px;text-align:left;background:#faf8fd}.htag-btn{flex-direction:row;flex-wrap:wrap;justify-content:flex-start;gap:5px;align-items:center;width:auto}
.hdot{width:7px;height:7px;border-radius:50%;background:var(--hol);flex:0 0 7px;margin-right:2px}
.grid thead th .dn .hd{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--hol);margin-left:4px;vertical-align:middle}
.toast{white-space:pre-line}

.toast{border-radius:14px;padding:12px 16px;font-weight:500;font-size:13.5px}

.sel{width:100%;font:inherit;font-size:15px;padding:10px 32px 10px 12px;border-radius:var(--r8);border:1px solid var(--line-2);background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%235f6f78'/%3E%3C/svg%3E") no-repeat right 12px center;-webkit-appearance:none;appearance:none;color:var(--ink)}
.places summary{font-size:14px;font-weight:650;color:var(--ink)}.places summary::after{content:"+"}.places[open] summary::after{content:"–"}
.place-row{display:grid;grid-template-columns:1fr;gap:6px;padding:10px 0;border-bottom:1px solid var(--line)}.place-row input{width:100%;font:inherit;font-size:14px;padding:9px 11px;border-radius:var(--r8);border:1px solid var(--line-2);background:var(--card)}.place-actions{display:flex;gap:10px;align-items:center}.pl-x{font:inherit;font-size:12px;font-weight:600;color:var(--no);background:none;border:0;cursor:pointer}
@media (min-width:560px){.place-row{grid-template-columns:1fr 2fr auto;align-items:center}}
.where-sel{display:block;width:100%;margin-top:6px;font:inherit;font-size:11.5px;font-weight:600;padding:6px 18px 6px 8px;border-radius:999px;border:1px solid var(--line);background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%235f6f78'/%3E%3C/svg%3E") no-repeat right 7px center;-webkit-appearance:none;appearance:none;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dir{font-weight:600;color:var(--link);text-decoration:none}
.where{margin:4px 0 8px;font-size:15px}.where span{color:var(--muted);font-size:13.5px}.nav-row{display:flex;gap:6px;margin:0 0 10px}.navb{flex:1;text-align:center;font-size:13px;font-weight:650;color:var(--ink);text-decoration:none;border:1.5px solid var(--line-2);border-radius:var(--r8);padding:9px 6px;background:var(--card)}

.modal-bg{position:fixed;inset:0;background:rgba(27,58,75,.45);z-index:30;display:none;align-items:center;justify-content:center;padding:20px}.modal-bg.open{display:flex}
.modal{background:var(--card);border-radius:var(--r16);width:100%;max-width:440px;max-height:85vh;overflow:auto;box-shadow:0 12px 40px rgba(27,58,75,.25);animation:pop .16s ease-out}@keyframes pop{from{transform:scale(.97);opacity:.5}to{transform:none;opacity:1}}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 16px 10px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:17px}
.modal-x{flex:0 0 36px;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center}.modal-x:hover{background:var(--heat1)}
.modal-body{padding:12px 16px 16px}
.hol-list{list-style:none;margin:0;padding:0}.hol-list li{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}.hol-list li:last-child{border-bottom:0}
.hol-day{flex:0 0 44px;display:flex;flex-direction:column;align-items:center;font-size:11px;font-weight:600;color:var(--muted);line-height:1.1}.hol-day b{font-size:18px;color:var(--ink)}
.hol-txt{font-size:14px;color:var(--ink);line-height:1.4}

.cf-kinds{display:flex;gap:6px;margin:2px 0 12px}.cf-kind{flex:1;font:inherit;font-size:13px;font-weight:650;padding:10px 6px;border-radius:var(--r8);border:1.5px solid var(--line-2);background:var(--card);color:var(--ink);cursor:pointer}.cf-kind.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.cf-lbl{display:block;font-size:12px;font-weight:650;color:var(--muted);margin:10px 0 4px}.cf-lbl span{font-weight:500}
#cf-title{width:100%;font:inherit;font-size:15px;padding:10px 12px;border-radius:var(--r8);border:1px solid var(--line-2);background:var(--card);color:var(--ink)}
.cf-chk{display:flex;align-items:center;gap:8px;font-size:14px;margin-top:10px}.cf-actions{margin-top:14px;display:flex;flex-direction:column;align-items:center;gap:6px}.cf-actions .btn{margin:0}.cf-remove{font:inherit;font-size:13px;font-weight:600;color:var(--no);background:none;border:0;cursor:pointer;padding:6px}
.conf.social{background:var(--hol-bg);border-color:transparent;color:var(--hol)}.conf-where{display:block;font-size:11px;font-weight:600;color:var(--muted);margin-top:4px}
.coming{margin:12px 0 0}.cu-lbl{font-size:12px;font-weight:650;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin:0 0 6px}.cu-row{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.cu-row::-webkit-scrollbar{display:none}
.cu{flex:0 0 auto;display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--r12);padding:8px 12px 8px 8px;min-width:190px}
.cu-date{flex:0 0 42px;display:flex;flex-direction:column;align-items:center;line-height:1;background:var(--gold);border-radius:var(--r8);padding:6px 0}.cu-date b{font-size:18px;font-weight:650}.cu-date small{font-size:10px;margin:0;color:var(--ink);font-weight:600}
.cu-body{display:flex;flex-direction:column;min-width:0}.cu-t{font-size:14px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cu-s{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
main.narrow header.top{margin:0 0 4px}

.ac-wrap{position:relative}.ac-list{position:absolute;left:0;right:0;top:calc(100% + 4px);background:var(--card);border:1px solid var(--line-2);border-radius:var(--r8);box-shadow:0 8px 24px rgba(27,58,75,.14);z-index:12;overflow:hidden}
.ac-item{display:block;width:100%;text-align:left;font:inherit;font-size:14px;padding:10px 12px;border:0;border-bottom:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer}.ac-item.on,.ac-item:hover{background:var(--heat1)}.ac-note{font-size:10.5px;color:var(--faint);padding:5px 12px;text-align:right}

.ac-item.verified{font-weight:650}.ac-v{float:right;font-size:10.5px;font-weight:700;color:var(--yes);background:var(--yes-bg);border-radius:999px;padding:2px 7px;margin-left:8px}

.chrome{position:sticky;top:0;z-index:6}.chrome .ubar{position:static;margin:0;padding:9px 16px}.ubar-in{max-width:720px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px}
.chrome .unav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.chrome .unav::-webkit-scrollbar{display:none}
main.narrow{padding-top:16px}

.up-actions{display:flex;flex-direction:column;gap:4px;align-items:flex-end}.st-pro{font:inherit;font-size:12px;font-weight:650;color:var(--ink);background:var(--heat1);border:0;border-radius:999px;padding:6px 10px;cursor:pointer;white-space:nowrap}
.hh-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center;margin:6px 0}.hh-row input{width:100%;font:inherit;font-size:15px;padding:10px 12px;border-radius:var(--r8);border:1px solid var(--line-2);background:var(--card)}.days{display:flex;gap:6px;flex-wrap:wrap}.days label{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;border:1.5px solid var(--line-2);border-radius:999px;padding:7px 12px;cursor:pointer;background:var(--card)}.days label:has(input:checked){background:var(--ink);color:#fff;border-color:var(--ink)}.days input{display:none}

.loc-btn{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font:inherit;font-size:11.5px;font-weight:650;padding:5px 9px;border-radius:999px;border:1px dashed var(--line-2);background:var(--card);color:var(--ink-2);cursor:pointer;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.loc-btn.set{border-style:solid;border-color:transparent;background:var(--heat1);color:var(--ink)}
.loc-link{font:inherit;font-size:13px;font-weight:650;color:var(--link);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline}
.loc-list{display:grid;gap:8px;margin-top:6px}.loc-opt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;font:inherit;padding:11px 12px;border-radius:var(--r8);border:1.5px solid var(--line-2);background:var(--card);color:var(--ink);cursor:pointer}.loc-opt b{font-size:15px;font-weight:650}.loc-opt span{font-size:12.5px;color:var(--muted)}.loc-opt.on{border-color:var(--ink);background:var(--heat1)}
/* ---- 13-1 portal additions ---- */
.ubar{background:var(--ink);margin:0 -16px;padding:0 16px}.ubar-in{max-width:720px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px}
.ubrand{display:inline-flex;align-items:center;gap:8px;color:#fff;text-decoration:none;font-weight:650;font-size:14px;letter-spacing:.01em}.ubrand img{width:24px;height:24px;border-radius:6px}
.unav{display:flex;gap:2px}.ulink{display:inline-flex;align-items:center;gap:5px;color:#fff;text-decoration:none;font-size:12.5px;font-weight:600;padding:6px 8px;border-radius:6px;opacity:.9}.ulink:hover{background:rgba(255,255,255,.12);opacity:1}.ulink span{display:none}@media (min-width:520px){.ulink span{display:inline}}
.tabs.main{margin:10px 0 0;overflow-x:auto;scrollbar-width:none}.tabs.main::-webkit-scrollbar{display:none}.tabs.main .tab{flex:0 0 auto;padding:8px 12px;white-space:nowrap}
.banner{background:var(--gold-bg);border:1px solid var(--gold);border-radius:var(--r12);padding:12px 14px;margin:12px 0;font-size:14px}.banner b{font-weight:650}
.post{border-left:3px solid var(--gold);padding-left:12px;margin:10px 0}.post h3{margin:0}.post p{white-space:pre-wrap;font-size:14px;margin:4px 0 0}
.links{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}@media (min-width:520px){.links{grid-template-columns:repeat(3,1fr)}}
.lnk{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--r12);padding:12px}.lnk:hover{border-color:var(--line-2)}.lnk b{font-size:14px}.lnk span{font-size:12px;color:var(--muted)}.lnk.off{opacity:.55}
.agenda{list-style:none;margin:0;padding:0}.agenda li{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);align-items:flex-start}.agenda li:last-child{border-bottom:0}
.agenda .dtile{flex:0 0 50px;height:56px}.agenda .dtile b{font-size:20px}.ag-main{flex:1;min-width:0}.ag-t{font-weight:650;font-size:15px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.ag-s{font-size:13px;color:var(--muted);margin-top:2px}.ag-s a{color:var(--link)}
.ag-x{font-size:12.5px;margin-top:6px;padding:6px 8px;background:var(--heat1);border-radius:var(--r8)}.ag-x a{font-weight:600}
.kind{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:999px;background:var(--heat1);color:var(--ink)}.kind.tournament{background:var(--gold);color:var(--ink)}.kind.extra{background:var(--yes-bg);color:var(--green-t)}.kind.proposed{background:var(--maybe-bg);color:var(--amber-t)}.kind.holiday{background:var(--hol-bg);color:var(--hol)}.kind.school{background:#e8edf0;color:#3a4f5c}.kind.celebrate{background:#fde8f0;color:#8a2550}
.avgrid{width:100%;border-collapse:collapse}.avgrid td,.avgrid th{border-bottom:1px solid var(--line);padding:6px 4px;font-size:13px;vertical-align:middle}.avgrid th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:650}
.avgrid td.dcol{width:34%;font-weight:600}.avgrid td.dcol small{margin:0;font-size:11.5px}.avgrid tr.blocked td{color:var(--faint)}.avgrid tr.blocked td.dcol{color:var(--hol)}
.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:999px;overflow:hidden}.seg button{font:inherit;font-size:12px;font-weight:650;padding:6px 10px;border:0;background:var(--card);color:var(--muted);cursor:pointer}.seg button.y.on{background:var(--yes-bg);color:var(--green-t)}.seg button.m.on{background:var(--maybe-bg);color:var(--amber-t)}.seg button.n.on{background:var(--no-bg);color:var(--red-t)}
.dots{display:flex;gap:3px;flex-wrap:wrap}.dot{width:12px;height:12px;border-radius:50%;background:var(--line);display:inline-block}.dot.y{background:var(--yes)}.dot.m{background:var(--maybe)}.dot.n{background:var(--no)}
.cnt-pill{font-size:12px;font-weight:650;padding:2px 8px;border-radius:999px;background:var(--heat1);white-space:nowrap}.cnt-pill.hi{background:var(--yes-bg);color:var(--green-t)}
.roster{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}@media (min-width:520px){.roster{grid-template-columns:repeat(5,1fr)}}
.pl{background:var(--card);border:1px solid var(--line);border-radius:var(--r12);padding:10px 8px;text-align:center}.pl .num{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--ink);color:#fff;font-weight:650;font-size:14px}.pl b{display:block;margin-top:6px;font-size:13.5px}.pl span{display:block;font-size:11.5px;color:var(--muted)}
.role{display:flex;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);align-items:flex-start}.role:last-child{border-bottom:0}.role-main{flex:1;min-width:0}.role-t{font-weight:650;font-size:15px}.role-d{font-size:13px;color:var(--muted);margin-top:2px}.role-h{font-size:13px;margin-top:4px}
.form3{display:grid;grid-template-columns:1fr;gap:10px;margin-top:8px}@media (min-width:520px){.form3{grid-template-columns:1fr 1fr}}.form3 label{font-size:12px;font-weight:600;color:var(--muted);display:block;margin-bottom:4px}.form3 input,.form3 select,.form3 textarea{width:100%;font:inherit;font-size:15px;padding:10px 12px;border-radius:var(--r8);border:1px solid var(--line-2);background:var(--card);color:var(--ink)}.form3 textarea{resize:vertical;min-height:64px}.form3 .full{grid-column:1/-1}
.item{padding:10px 0;border-bottom:1px solid var(--line)}.item:last-child{border-bottom:0}.item-t{font-weight:650;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.item-d{font-size:13px;color:var(--muted);margin-top:2px;white-space:pre-wrap}
.status{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:999px}.status.proposed{background:var(--maybe-bg);color:var(--amber-t)}.status.approved{background:var(--yes-bg);color:var(--green-t)}.status.declined{background:var(--no-bg);color:var(--red-t)}.status.confirmed{background:var(--yes-bg);color:var(--green-t)}.status.planned{background:var(--heat1)}.status.voting{background:var(--gold);color:var(--ink)}.status.assigned{background:var(--yes-bg);color:var(--green-t)}.status.open{background:var(--heat1)}
.row-btns{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.row-btns .btn.sm{margin:0}.btn.danger{color:var(--no);border-color:var(--no-bg);background:var(--card)}
.rot{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:8px}@media (min-width:520px){.rot{grid-template-columns:repeat(4,1fr)}}.rot div{background:var(--heat1);border-radius:var(--r8);padding:8px;font-size:13px;text-align:center;font-weight:600}.rot div.tri{background:var(--gold-bg);border:1px solid var(--gold)}
.pin-box{max-width:320px;margin:24px auto;text-align:center}.pin-box input{font:inherit;font-size:22px;letter-spacing:.3em;text-align:center;width:100%;padding:12px;border-radius:var(--r8);border:1px solid var(--line-2)}
.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th,.tbl td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top}.tbl th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.tbl td.wrap{white-space:pre-wrap}
.copy{font:inherit;font-size:12px;font-weight:600;color:var(--link);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline}
.where{font-size:14px;margin:4px 0}.nav-row{display:flex;gap:6px;margin:8px 0}.navb{flex:1;text-align:center;font-size:12.5px;font-weight:600;text-decoration:none;color:var(--ink);border:1px solid var(--line-2);border-radius:999px;padding:7px 4px}
.month-sel{display:flex;gap:6px;overflow-x:auto;padding:8px 0 2px;scrollbar-width:none}.month-sel::-webkit-scrollbar{display:none}
.empty{color:var(--muted);font-size:14px;padding:12px 0}
.sched-day{padding:8px 0;border-bottom:1px solid var(--line)}.sched-day:last-child{border-bottom:0}.sd-h{display:flex;gap:8px;align-items:baseline;font-weight:650;font-size:14px}.sd-h small{margin:0;font-weight:500}.sd-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.chrome-note{font-size:12px;color:var(--muted);margin-top:14px;text-align:center}

/* collapsible cards and responsive tweaks */
details.sec>summary.sec-sum{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:8px;cursor:pointer;padding:2px 0}details.sec>summary.sec-sum::-webkit-details-marker{display:none}details.sec>summary.sec-sum h2{margin:0;flex:1}details.sec>summary.sec-sum::after{content:"–";color:var(--muted);font-size:18px;font-weight:400;flex:0 0 auto}details.sec:not([open])>summary.sec-sum::after{content:"+"}details.sec[open]>summary.sec-sum{margin-bottom:8px}
.scrollx{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -16px;padding:0 16px}.scrollx table{min-width:560px}
.sec .sub,.sec p,.sec li,.ag-s{overflow-wrap:anywhere}
@media (max-width:520px){
  body{font-size:14.5px}h2{font-size:17px}
  .avgrid td,.avgrid th{padding:6px 3px;font-size:12.5px}.avgrid td.dcol{width:36%}.seg button{padding:6px 7px;font-size:11.5px}.times{font-size:10.5px;max-width:120px}.cnt-pill{font-size:11px;padding:2px 6px}
  .agenda .dtile{flex:0 0 44px;height:50px}.agenda .dtile b{font-size:18px}.ag-t{font-size:14px}.ag-s{font-size:12.5px}
  .links{grid-template-columns:1fr 1fr}.roster{grid-template-columns:repeat(3,1fr)}.rot{grid-template-columns:1fr 1fr}
  .form3 input,.form3 select,.form3 textarea{font-size:16px}
  .ubrand{font-size:13px}.unav .ulink{padding:6px}
}

/* schedule entry lines */
.ag-line{display:flex;gap:6px;font-size:13.5px;line-height:1.4;margin-top:3px;align-items:baseline}.ag-k{flex:0 0 78px;font-weight:650;color:var(--muted);font-size:12.5px}.ag-v{flex:1;min-width:0}.ag-v small.inl{display:inline;margin:0;font-size:12px}
.seg.att button{padding:5px 12px}
@media (max-width:520px){.ag-line{font-size:13px}.ag-k{flex-basis:70px}}

.who-list{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.pill.who{background:var(--yes-bg);color:var(--green-t);font-weight:600}.pill.who.no{background:var(--no-bg);color:var(--red-t);text-decoration:line-through}.who-list small.inl{color:var(--muted)}

.post-body{font-size:14px;line-height:1.5}.post-body p{margin:4px 0}.post-body ul{margin:4px 0 6px;padding-left:20px}.post-body li{margin:3px 0}.post-body li::marker{color:var(--gold)}.post-body a{font-weight:600}

/* calendar tab */
.glance-row{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}@media (min-width:560px){.glance-row{grid-template-columns:repeat(3,1fr)}}
.glance{display:flex;flex-direction:column;gap:2px;background:var(--canvas);border:1px solid var(--line);border-radius:var(--r12);padding:10px 12px;min-height:74px}.glance .g-l{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.glance .g-m{font-size:15px;line-height:1.2}.glance .g-s{font-size:12px;color:var(--muted);line-height:1.3}
.glance.gold{background:var(--gold-bg);border-color:var(--gold)}.glance.green{background:var(--yes-bg);border-color:#bfe3cb}.glance.pink{background:#fde8f0;border-color:#f3c3d4}
.cal-head{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-top:8px}.cal-head span{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:center;padding:4px 0}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-cell{font:inherit;text-align:left;display:flex;flex-direction:column;gap:2px;min-height:64px;border:1px solid var(--line);border-radius:8px;padding:4px;background:var(--card);color:var(--ink);cursor:pointer;overflow:hidden;min-width:0}.cal-cell.other{background:transparent;border-color:transparent;cursor:default}.cal-cell.today{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink) inset}.cal-cell.sel{background:var(--gold-bg);border-color:var(--gold)}.cal-cell.has-t{background:#fff8e3}
.cal-d{font-size:12px;font-weight:650}
.cal-ev{display:block;font-size:10.5px;line-height:1.3;padding:1px 5px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--heat1);color:var(--ink);max-width:100%}
.cal-ev.practice{background:var(--heat1)}.cal-ev.extra{background:var(--yes-bg);color:var(--green-t)}.cal-ev.proposed{background:var(--maybe-bg);color:var(--amber-t)}.cal-ev.tournament{background:var(--gold);color:var(--ink)}.cal-ev.camp{background:#fbe9c7;color:#6a4a00}.cal-ev.holiday{background:var(--hol-bg);color:var(--hol)}.cal-ev.celebrate{background:#fde8f0;color:#8a2550}.cal-ev.school{background:#e8edf0;color:#3a4f5c}
.cal-key{margin-top:10px}.cal-key .cal-ev{display:inline-block;white-space:normal}
.cal-day{margin-top:14px;padding-top:10px;border-top:1px solid var(--line)}.cal-day h3{margin-bottom:6px}
@media (max-width:560px){.cal-cell{min-height:52px;padding:3px}.cal-ev{font-size:0;padding:0;height:6px;width:100%;border-radius:3px;margin-top:1px}.cal-key .cal-ev{font-size:11px;height:auto;width:auto;padding:2px 7px}.cal-d{font-size:11.5px}}

/* day modal */
.sheet.modal{max-height:85vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.sheet.modal h3{font-size:18px;margin:0 0 8px}
.modal-top{display:flex;justify-content:space-between;align-items:center;margin:-4px 0 2px}.modal-x{font:inherit;font-size:26px;line-height:1;background:none;border:0;color:var(--muted);cursor:pointer;padding:2px 6px}
@media (min-width:600px){.sheet-bg{align-items:center}.sheet.modal{border-radius:var(--r16);max-width:620px}}
.cal-day{display:none}

.glance .g-s{display:block}.g-alert{display:inline-flex;align-items:center;gap:4px;font-weight:650;color:var(--ink);margin-top:2px}.g-alert.now{color:var(--no)}

.ag-x{display:flex;align-items:center;justify-content:space-between;gap:10px}.ag-x-t{display:flex;flex-direction:column;gap:1px;min-width:0}.ag-x-t small{margin:0;font-size:12px;color:var(--muted)}.ag-x .btn.sm{flex:0 0 auto;text-decoration:none}
.row-btns .btn.sm{text-decoration:none}
@media (max-width:520px){.ag-x{flex-direction:column;align-items:stretch}.ag-x .btn.sm{width:100%}}

/* club palette: maroon, white, black, silver (pills and overview tiles keep their original colors) */
.dtile.confirmed{background:var(--ink);border-color:var(--ink);color:#fff}.dtile.confirmed b,.dtile.confirmed small{color:#fff}
.kind.tournament{background:#e9c46a;color:#1b1b1b}.kind.celebrate{background:#fde8f0;color:#8a2550}.kind.camp{background:#fbe9c7;color:#6a4a00}.kind.holiday{background:#f1ecf9;color:#5b3f91}.kind.school{background:#e8edf0;color:#3a4f5c}
.pill.gold{background:#e9c46a;color:#1b1b1b}.status.voting{background:#e9c46a;color:#1b1b1b}
.banner{background:#fbf3dc;border-color:#e9c46a}.post{border-left-color:var(--ink)}.post-body li::marker{color:var(--ink)}
.cal-ev.tournament{background:#e9c46a;color:#1b1b1b}.cal-ev.camp{background:#fbe9c7;color:#6a4a00}.cal-ev.celebrate{background:#fde8f0;color:#8a2550}.cal-ev.holiday{background:#f1ecf9;color:#5b3f91}.cal-ev.school{background:#e8edf0;color:#3a4f5c}
.cal-cell.has-t{background:#fff8e3}.cal-cell.sel{background:#fbf3dc;border-color:#e9c46a}
.glance.gold{background:#fbf3dc;border-color:#e9c46a}.glance.green{background:#e6f4ea;border-color:#bfe3cb}.glance.pink{background:#fde8f0;border-color:#f3c3d4}
.rot div.tri{background:#fbf3dc;border-color:#e9c46a}.ubar{background:var(--ink)}.best li.best1 .dtile{border-color:#e9c46a;background:#fbf3dc}
a{color:var(--link)}.g-alert{color:var(--ink)}

.narrow-in{max-width:460px;margin:0 auto;padding-top:16px}.tabs.main a.tab{text-decoration:none;text-align:center;display:inline-block}

.parent-block{border:1px solid var(--line);border-radius:var(--r12);padding:12px;background:var(--canvas)}.parent-h{font-weight:650;font-size:14px;margin-bottom:6px;color:var(--ink)}.parent-h small{display:inline;margin:0;font-weight:500;color:var(--muted)}.form3.inner{margin-top:0}.form3.inner input{background:#fff}

.savebar{position:sticky;bottom:0;padding:10px 0 calc(10px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--canvas) 70%,rgba(243,244,246,0));z-index:4}.savebar .btn{margin:0}
#view-family .card{margin:10px 0}#view-family .form3 textarea{min-height:56px}
main:has(#view-family:not([hidden])) ~ .totop{bottom:calc(74px + env(safe-area-inset-bottom))}

.coach-att{display:inline-flex;align-items:center;gap:6px;margin:2px 10px 2px 0}.coach-nm{font-weight:650;font-size:13px}.pill.who.tbd{background:var(--heat1);color:var(--muted)}

/* editor toolbar (rich-text look) and row editors */
.tb{display:inline-flex;align-items:stretch;background:var(--card);border:1px solid var(--line-2);border-radius:12px;padding:3px;margin:0 0 6px;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.tb-g{display:flex;gap:2px;padding:0 4px}.tb-g+.tb-g{border-left:1px solid var(--line)}
.tb button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--text);cursor:pointer;padding:0}.tb button:hover{background:var(--heat1);color:var(--ink)}.tb button:active{background:var(--maroon-bg);color:var(--ink)}
.tb+textarea{border-top-left-radius:var(--r8)}
.rowed{display:flex;flex-direction:column;gap:6px}.rowr{display:flex;gap:6px;align-items:center}.rowr input{flex:1;min-width:0;font:inherit;font-size:13.5px;padding:8px 10px;border-radius:8px;border:1px solid var(--line-2);background:var(--card)}.rowr .rm{font:inherit;font-size:18px;line-height:1;border:0;background:none;color:var(--no);cursor:pointer;padding:4px 6px}
.rowed .btn.sm{align-self:flex-start;margin-top:2px}
@media (max-width:640px){.rowr{flex-wrap:wrap;background:var(--canvas);border:1px solid var(--line);border-radius:8px;padding:6px}.rowr input{flex:1 1 45%!important}.rowr .rm{margin-left:auto}}

.rowcard{border:1px solid var(--line);border-radius:var(--r12);background:var(--canvas);padding:10px 12px 12px}.rowcard-h{display:flex;justify-content:space-between;align-items:center;font-weight:650;font-size:14px;color:var(--ink);margin-bottom:6px}.rowcard-h .btn.sm{padding:4px 10px;font-size:12px}
.rowed{gap:8px}.rowcard .form3.inner input{background:#fff}

.tb.mini{padding:2px;border-radius:10px}.tb.mini button{width:30px;height:28px}.tb.mini svg{width:16px;height:16px}

/* rich text editor */
.rte{min-height:96px;max-height:420px;overflow:auto;border:1px solid var(--line-2);border-radius:var(--r8);padding:10px 12px;background:#fff;font:inherit;font-size:14.5px;line-height:1.5;color:var(--text)}.rte:focus{outline:2px solid var(--ink);outline-offset:-1px}.rte.mini{min-height:60px}
.rte p{margin:0 0 6px}.rte ul,.rte ol{margin:4px 0 6px;padding-left:22px}.rte a{color:var(--link);font-weight:600}.rte:empty::before{content:attr(data-placeholder);color:var(--faint)}
.post-body.inl{display:inline}.post-body.inl p{display:inline;margin:0}.post-body.inl ul,.post-body.inl ol{display:block}

.vol{margin-top:6px;padding:8px 10px;border:1px dashed var(--line-2);border-radius:var(--r8);background:var(--canvas)}.vol-h{font-weight:650;font-size:13px;margin-bottom:4px}.vol-opt{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;margin:3px 14px 3px 0}

.ballot-opt{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r8);margin:6px 0;cursor:pointer;background:var(--card)}.ballot-opt:has(input:checked){border-color:var(--ink);background:var(--maroon-bg)}.ballot-opt.me{opacity:.55;cursor:not-allowed}.ballot-opt input{width:18px;height:18px}.ballot-opt small{display:block;margin:0;color:var(--muted)}

/* coach roster cards */
.player-card{border:1px solid var(--line);border-radius:var(--r12);padding:12px 14px;margin:10px 0;background:var(--card)}.player-card.off{opacity:.6}
.pc-head{display:flex;align-items:center;gap:12px;margin-bottom:8px}.pc-head .num{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--ink);color:#fff;font-weight:650;flex:0 0 40px}.pc-title b{display:block;font-size:16px}.pc-title small{display:block;margin:0;color:var(--muted)}
.pc-grid{display:grid;grid-template-columns:1fr;gap:10px;margin:6px 0}@media (min-width:600px){.pc-grid{grid-template-columns:1fr 1fr}}
.pc-h{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:8px 0 4px}
.pcard{padding:8px 10px;border:1px solid var(--line);border-radius:var(--r8);background:var(--canvas);margin-bottom:6px;font-size:13.5px}.pcard-n{font-weight:650}.pcard-n small{display:inline;margin:0;font-weight:500;color:var(--muted)}.pcard a{display:block;font-size:13px;margin-top:2px}
.player-card .row-btns{margin-top:10px}

/* coach role cards */
.role-card{border:1px solid var(--line);border-radius:var(--r12);padding:14px;margin:12px 0;background:var(--card)}.role-card .form3{margin-top:0}.role-card label small{display:inline;margin:0;font-weight:500;text-transform:none;letter-spacing:0}
.vol-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--line);border-radius:var(--r8);margin:6px 0;background:var(--canvas);cursor:pointer}.vol-row:has(input:checked){border-color:var(--ink);background:var(--maroon-bg)}.vol-row input{width:18px;height:18px;margin:0}.vol-name{flex:1;min-width:0}.vol-name b{display:block}.vol-name small{display:block;margin:0;color:var(--muted)}
.vol-ballots{display:block;margin-top:6px;color:var(--muted)}.row-btns.end{justify-content:flex-end}
.form3 label.vol-row{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text);margin:6px 0}.form3 label.vol-row .vol-name b{display:block;font-size:14px}.form3 label.vol-row .vol-name small{display:block;font-size:12px;color:var(--muted)}.form3 label.vol-row input{width:18px;height:18px;padding:0}

/* address suggestions */
.form3>div,.form3.inner>div{position:relative}.addr-list{position:absolute;left:0;right:0;top:100%;z-index:30;background:var(--card);border:1px solid var(--line-2);border-radius:var(--r8);box-shadow:0 6px 18px rgba(0,0,0,.12);max-height:260px;overflow:auto;margin-top:2px}
.addr-hit{display:block;width:100%;text-align:left;font:inherit;font-size:13.5px;padding:8px 10px;border:0;border-bottom:1px solid var(--line);background:var(--card);cursor:pointer;color:var(--text)}.addr-hit:last-child{border-bottom:0}.addr-hit:hover{background:var(--heat1)}.addr-hit b{display:block;font-weight:600}.addr-hit small{display:block;margin:0;color:var(--muted);text-transform:capitalize}

/* extra practice grid tags: one per line, never split mid-tag */
.tagstack{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px}.tagstack .kind{white-space:nowrap}.tagstack .cal{margin:0;white-space:nowrap}
.blocked-note{color:var(--muted);font-weight:600}
.avgrid td.dcol{width:40%}@media (max-width:520px){.avgrid td.dcol{width:44%}.tagstack .kind{font-size:10px}}

.key{flex-wrap:wrap}.key span{white-space:nowrap}

/* link tiles with icons */
.lnk{flex-direction:row;align-items:center;gap:12px}.lnk-i{flex:0 0 42px;width:42px;height:42px;border-radius:10px;background:var(--maroon-bg);color:var(--ink);display:inline-flex;align-items:center;justify-content:center}.lnk-t{display:flex;flex-direction:column;gap:2px;min-width:0}.lnk-t b{font-size:14px}.lnk-t span{font-size:12px;color:var(--muted)}
.lnk:hover .lnk-i{background:var(--ink);color:#fff}.lnk.off .lnk-i{background:var(--heat1);color:var(--muted)}

/* tournament entry: notes, itinerary timeline, sign-up cards */
.ev-notes{margin:8px 0 4px;padding:8px 10px;border-left:3px solid var(--silver);font-size:13.5px}.ev-notes p{margin:0 0 4px}
.ev-sec{margin:8px 0 0}.ev-sec>summary{font-size:13px;font-weight:650;color:var(--ink);display:inline-flex;align-items:center;gap:6px;cursor:pointer;list-style:none;padding:4px 0}.ev-sec>summary::-webkit-details-marker{display:none}.ev-sec>summary::after{content:"+";color:var(--muted);font-weight:400;margin-left:2px}.ev-sec[open]>summary::after{content:"–"}.ev-h{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:6px 0 4px}
.stops{border-left:2px solid var(--line-2);margin:4px 0 4px 6px;padding-left:12px}.stop{display:flex;gap:10px;padding:6px 0;position:relative}.stop::before{content:"";position:absolute;left:-17px;top:11px;width:8px;height:8px;border-radius:50%;background:var(--ink)}
.stop-when{flex:0 0 84px;font-size:12.5px;line-height:1.3}.stop-when b{display:block}.stop-when span{color:var(--muted)}.stop-what{flex:1;min-width:0;font-size:13.5px;line-height:1.35}.stop-where{display:block;font-size:12.5px;color:var(--muted)}
.xcard{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:start;border:1px solid var(--line);border-radius:var(--r8);padding:10px 12px;margin:6px 0;background:var(--canvas)}.xcard-t{grid-column:1;display:flex;flex-direction:column}.xcard-t b{font-size:13.5px}.xcard-d{font-size:12px;color:var(--muted)}.xcard-n{grid-column:1;font-size:12.5px;color:var(--muted);line-height:1.4;overflow-wrap:anywhere}.xcard .btn.sm{grid-column:2;grid-row:1/span 2;align-self:center;margin:0;text-decoration:none}
@media (max-width:520px){.xcard{grid-template-columns:1fr}.xcard .btn.sm{grid-column:1;grid-row:auto;width:100%}.stop-when{flex-basis:70px}}

/* phone navigation: hamburger menu for the tabs, dropdown for coach sections */
.menu-btn{display:none;width:100%;align-items:center;gap:10px;margin:10px 0 0;padding:10px 12px;border:1px solid var(--line-2);border-radius:var(--r8);background:var(--card);color:var(--ink);font:inherit;font-weight:650;font-size:15px;cursor:pointer}.menu-btn #menu-cur{flex:1;text-align:left}.menu-btn .chev{transition:transform .15s}.menu-btn[aria-expanded="true"] .chev{transform:rotate(180deg)}
.sec-pick{display:none;margin-top:10px}.sec-pick label{display:block;font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:4px}.sec-pick select{width:100%;font:inherit;font-size:15px;font-weight:650;padding:10px 36px 10px 12px;border-radius:var(--r8);border:1px solid var(--line-2);background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%235a5f66' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 12px center;-webkit-appearance:none;appearance:none;color:var(--ink)}
@media (max-width:640px){
  .menu-btn{display:flex}
  .tabs.main{display:none;flex-direction:column;gap:2px;margin:4px 0 0;padding:4px;background:var(--card);border:1px solid var(--line-2);border-radius:var(--r8);box-shadow:0 8px 20px rgba(0,0,0,.12)}.tabs.main.open{display:flex}
  .tabs.main .tab{text-align:left;padding:11px 12px;border-radius:6px;font-size:15px}.tabs.main .tab.on{background:var(--maroon-bg);color:var(--ink);box-shadow:none}
  .sec-pick{display:block}.sec-chips{display:none}
}

/* ================= Looks (switchable): classic (default), layered, bold, night ================= */
/* Layered: warm off-white page, tinted card headers, soft elevation, zebra rows */
html[data-theme="layered"]{--canvas:#f6f4f1;--card:#fff;--line:#e6e2dd;--line-2:#d3cdc6;--heat1:#f1eeea;--maroon-bg:#f7eaee}
html[data-theme="layered"] .card,html[data-theme="layered"] details.card{box-shadow:0 1px 2px rgba(40,20,25,.05),0 6px 18px rgba(40,20,25,.06);border-color:var(--line)}
html[data-theme="layered"] details.sec>summary.sec-sum{margin:-16px -16px 10px;padding:12px 16px;background:linear-gradient(90deg,var(--maroon-bg),#fff);border-bottom:1px solid var(--line);border-radius:var(--r12) var(--r12) 0 0}html[data-theme="layered"] details.sec:not([open])>summary.sec-sum{margin-bottom:-16px;border-bottom:0;border-radius:var(--r12)}
html[data-theme="layered"] .agenda li:nth-child(even),html[data-theme="layered"] .avgrid tbody tr:nth-child(even) td,html[data-theme="layered"] .sched-day:nth-child(even){background:#faf8f5}
html[data-theme="layered"] header.top{background:linear-gradient(180deg,#f6f4f1 0%,rgba(246,244,241,.92) 100%)}html[data-theme="layered"] .ubar{background:linear-gradient(90deg,#4b0f20,#6b1a2e)}
html[data-theme="layered"] .glance{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.06)}html[data-theme="layered"] .dtile{background:#faf8f5}
/* Bold: maroon band behind the top of the page, floating cards, strong accent bars */
html[data-theme="bold"]{--canvas:#efeff2;--card:#fff;--line:#e3e4e8;--line-2:#cfd1d6;--maroon-bg:#f6e6ea}
html[data-theme="bold"] body{background:linear-gradient(180deg,#5e1527 0,#5e1527 230px,#efeff2 230px)}html[data-theme="bold"] header.top{background:transparent;border-bottom:0;backdrop-filter:none}
html[data-theme="bold"] .tabs.main{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2)}html[data-theme="bold"] .tabs.main .tab{color:rgba(255,255,255,.85)}html[data-theme="bold"] .tabs.main .tab.on{background:#fff;color:var(--ink)}html[data-theme="bold"] .menu-btn{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.25);color:#fff}
html[data-theme="bold"] .card,html[data-theme="bold"] details.card{border:0;border-radius:16px;box-shadow:0 10px 30px rgba(40,10,20,.12)}html[data-theme="bold"] details.sec>summary.sec-sum h2{padding-left:12px;border-left:4px solid var(--ink);line-height:1.1}html[data-theme="bold"] .card>h2{padding-left:12px;border-left:4px solid var(--ink)}
html[data-theme="bold"] .banner{background:#fff;border:0;box-shadow:0 10px 30px rgba(40,10,20,.12);border-radius:16px}html[data-theme="bold"] .glance{border-radius:14px}html[data-theme="bold"] .glance.gold{background:var(--ink);border-color:var(--ink);color:#fff}html[data-theme="bold"] .glance.gold .g-l,html[data-theme="bold"] .glance.gold .g-s,html[data-theme="bold"] .glance.gold .g-m,html[data-theme="bold"] .glance.gold .g-alert{color:#fff}
html[data-theme="bold"] .btn{border-radius:12px}html[data-theme="bold"] .chrome-note{color:var(--muted)}
@media (max-width:640px){html[data-theme="bold"] .tabs.main{background:#fff}html[data-theme="bold"] .tabs.main .tab{color:var(--ink)}}
/* Night (dark mode): near-white text, white headings, maroon kept for buttons and accents only */
html[data-theme="night"]{--canvas:#141518;--card:#1e2024;--text:#ededf0;--line:#2e3137;--line-2:#434750;--muted:#b3b8c2;--faint:#7a8089;--heat1:#2a2d33;--heat2:#383c44;--heat3:#5b6170;--maroon-bg:#3b1c26;--silver-bg:#2a2d33;--gold-bg:#3a3118;--yes-bg:#1b4a2e;--maybe-bg:#4a3414;--no-bg:#4a2020;--hol-bg:#2d2d3f;--link:#a7c8ff;--ink:#ffffff;--ink-2:#e2e4e8;--green-t:#a8e6bd;--amber-t:#f5d19a;--red-t:#f6b0ad;--hol:#d6d1ff;--maroon:#8a2440;color-scheme:dark}
html[data-theme="night"] body{background:var(--canvas);color:var(--text)}html[data-theme="night"] h1,html[data-theme="night"] h2,html[data-theme="night"] h3{color:#fff}html[data-theme="night"] header.top{background:rgba(20,21,24,.94);border-bottom-color:var(--line)}html[data-theme="night"] .ubar{background:#4b0f20}
html[data-theme="night"] .tabs{background:#0e0f11}html[data-theme="night"] .tab{color:var(--muted)}html[data-theme="night"] .tab.on{background:#2a2d33;color:#fff}
html[data-theme="night"] .btn{background:#8a2440;border-color:#8a2440;color:#fff}html[data-theme="night"] .btn.light{background:var(--card);color:#fff;border-color:var(--line-2)}html[data-theme="night"] .btn.danger{color:#f6b0ad;border-color:#4a2020}
html[data-theme="night"] .banner{background:#2f2a1c;border-color:#5a4d26;color:#f3eddc}html[data-theme="night"] .banner b{color:#fff}html[data-theme="night"] .banner a{color:var(--link)}
html[data-theme="night"] .post{border-left-color:#8a2440}html[data-theme="night"] .post-body li::marker{color:#e39ab0}
html[data-theme="night"] .rte,html[data-theme="night"] .form3 input,html[data-theme="night"] .form3 select,html[data-theme="night"] .form3 textarea,html[data-theme="night"] .rowr input,html[data-theme="night"] .form3.inner input,html[data-theme="night"] .sec-pick select,html[data-theme="night"] .menu-btn,html[data-theme="night"] .pin-box input,html[data-theme="night"] select.sel{background:#121316;color:#fff;border-color:var(--line-2)}
html[data-theme="night"] .dtile{background:#2a2d33;border-color:#3a3e46;color:#fff}html[data-theme="night"] .dtile small{color:var(--muted)}html[data-theme="night"] .dtile.confirmed{background:#8a2440;border-color:#8a2440}
html[data-theme="night"] .kind{background:#2a2d33;color:#fff}html[data-theme="night"] .kind.tournament{background:#e9c46a;color:#1b1b1b}html[data-theme="night"] .kind.extra{background:#1b4a2e;color:#a8e6bd}html[data-theme="night"] .kind.proposed{background:#4a3414;color:#f5d19a}html[data-theme="night"] .kind.holiday{background:#2d2d3f;color:#d6d1ff}html[data-theme="night"] .kind.school{background:#2a2d33;color:#dfe3ea;border:1px solid #434750}html[data-theme="night"] .kind.celebrate{background:#4a2335;color:#ffc9da}html[data-theme="night"] .kind.camp{background:#3a3118;color:#f1dba0}
html[data-theme="night"] .pill{background:#2a2d33;color:#fff}html[data-theme="night"] .pill.who{background:#1b4a2e;color:#a8e6bd}html[data-theme="night"] .pill.who.no{background:#4a2020;color:#f6b0ad}html[data-theme="night"] .pill.who.tbd{background:#2a2d33;color:var(--muted)}html[data-theme="night"] .status.planned,html[data-theme="night"] .status.open{background:#2a2d33;color:#fff}html[data-theme="night"] .status.voting{background:#e9c46a;color:#1b1b1b}
html[data-theme="night"] .cal-cell{background:#1e2024;border-color:#2e3137;color:#fff}html[data-theme="night"] .cal-cell.has-t{background:#2b2618}html[data-theme="night"] .cal-cell.sel{background:#3a3118;border-color:#e9c46a}html[data-theme="night"] .cal-cell.other{background:transparent;border-color:transparent}html[data-theme="night"] .cal-cell.today{border-color:#fff;box-shadow:0 0 0 1px #fff inset}html[data-theme="night"] .cal-ev{background:#2a2d33;color:#fff}html[data-theme="night"] .cal-ev.school{background:#2a2d33;color:#dfe3ea;box-shadow:inset 0 0 0 1px #434750}html[data-theme="night"] .cal-ev.holiday{background:#2d2d3f;color:#d6d1ff}html[data-theme="night"] .cal-ev.celebrate{background:#4a2335;color:#ffc9da}html[data-theme="night"] .cal-ev.camp{background:#3a3118;color:#f1dba0}html[data-theme="night"] .cal-ev.extra{background:#1b4a2e;color:#a8e6bd}
html[data-theme="night"] .glance,html[data-theme="night"] .pcard,html[data-theme="night"] .parent-block,html[data-theme="night"] .rowcard,html[data-theme="night"] .vol,html[data-theme="night"] .xcard,html[data-theme="night"] .player-card,html[data-theme="night"] .role-card,html[data-theme="night"] .sheet,html[data-theme="night"] .tb,html[data-theme="night"] .addr-list,html[data-theme="night"] .lnk,html[data-theme="night"] .ev-notes,html[data-theme="night"] .ev-sec>summary,html[data-theme="night"] .ballot-opt,html[data-theme="night"] .vol-row,html[data-theme="night"] .ag-x{background:#24262b;border-color:#363a41;color:#fff}html[data-theme="night"] .tb button{color:#fff}html[data-theme="night"] .tb button:hover{background:#363a41}
html[data-theme="night"] .glance .g-l,html[data-theme="night"] .glance .g-s,html[data-theme="night"] .pc-h,html[data-theme="night"] .ev-h,html[data-theme="night"] .xl-k,html[data-theme="night"] .ag-k,html[data-theme="night"] .sub,html[data-theme="night"] small,html[data-theme="night"] .xcard-n,html[data-theme="night"] .lnk-t span,html[data-theme="night"] .stop-where,html[data-theme="night"] .pcard-n small,html[data-theme="night"] .pc-title small{color:var(--muted)}html[data-theme="night"] .glance .g-m,html[data-theme="night"] .g-alert{color:#fff}html[data-theme="night"] .g-alert.now{color:#f6b0ad}
html[data-theme="night"] .glance.gold{background:#3a3118;border-color:#6b5420}html[data-theme="night"] .glance.green{background:#1b4a2e;border-color:#2f6d47}html[data-theme="night"] .glance.pink{background:#4a2335;border-color:#7a3a55}
html[data-theme="night"] .lnk-i{background:#3b1c26;color:#ffc9da}html[data-theme="night"] .lnk:hover .lnk-i{background:#8a2440;color:#fff}html[data-theme="night"] .lnk b{color:#fff}
html[data-theme="night"] .seg button{background:#1e2024;color:var(--muted)}html[data-theme="night"] .seg button.y.on{background:#1b4a2e;color:#a8e6bd}html[data-theme="night"] .seg button.m.on{background:#4a3414;color:#f5d19a}html[data-theme="night"] .seg button.n.on{background:#4a2020;color:#f6b0ad}html[data-theme="night"] .cnt-pill{background:#2a2d33;color:#fff}html[data-theme="night"] .cnt-pill.hi{background:#1b4a2e;color:#a8e6bd}html[data-theme="night"] .dot{background:#3a3e46}
html[data-theme="night"] a{color:var(--link)}html[data-theme="night"] .savebar{background:linear-gradient(to top,#141518 70%,rgba(20,21,24,0))}html[data-theme="night"] .totop{background:#8a2440;border-color:#8a2440}html[data-theme="night"] .toast{background:#fff;color:#1b1b1b}
html[data-theme="night"] .sched-day.mine,html[data-theme="night"] .avgrid tr.mine td{background:#2b2618}html[data-theme="night"] .avgrid td,html[data-theme="night"] .avgrid th,html[data-theme="night"] .agenda li,html[data-theme="night"] .sched-day,html[data-theme="night"] .role,html[data-theme="night"] .item{border-color:var(--line)}html[data-theme="night"] .avgrid th,html[data-theme="night"] .cal-head span{color:var(--muted)}html[data-theme="night"] .chrome-note{color:var(--muted)}
html[data-theme="night"] details.sec>summary.sec-sum:hover{background:#2a2d33}html[data-theme="night"] details>summary::after,html[data-theme="night"] details.sec>summary.sec-sum::after{background-color:#3b1c26;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
html[data-theme="night"] .ballot-opt:has(input:checked),html[data-theme="night"] .vol-row:has(input:checked){background:#3b1c26;border-color:#e39ab0}html[data-theme="night"] .parent-h,html[data-theme="night"] .rowcard-h,html[data-theme="night"] .vol-h,html[data-theme="night"] .menu-btn{color:#fff}
/* light/dark switch in the header */
.mode-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:30px;border-radius:6px;border:0;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;padding:0}.mode-btn:hover{background:rgba(255,255,255,.22)}.mode-btn .sun{display:none}html[data-theme="night"] .mode-btn .moon{display:none}html[data-theme="night"] .mode-btn .sun{display:block}
/* ================= accordion affordance: circular chevron buttons on every expandable header ================= */
details>summary{cursor:pointer;position:relative;user-select:none}
details>summary::after,details.sec>summary.sec-sum::after,.ev-sec>summary::after,.sess>summary::after,details[open]>summary::after,details.sec[open]>summary.sec-sum::after,.ev-sec[open]>summary::after{content:"";flex:0 0 30px;width:30px;height:30px;margin-left:auto;border-radius:50%;background:var(--maroon-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235e1527' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center/15px no-repeat;transition:transform .18s,background-color .15s;display:inline-block;font-size:0;color:transparent}
details[open]>summary::after,details.sec[open]>summary.sec-sum::after,.ev-sec[open]>summary::after{transform:rotate(180deg)}
details>summary:hover::after,details.sec>summary.sec-sum:hover::after{background-color:var(--ink);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
details.sec>summary.sec-sum{margin:-6px -8px 0;padding:6px 8px;border-radius:10px;display:flex;align-items:center;gap:10px}details.sec>summary.sec-sum:hover{background:var(--heat1)}details.sec[open]>summary.sec-sum{margin-bottom:6px}
.ev-sec>summary,.sess>summary{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r8);background:var(--canvas);font-weight:650}.ev-sec>summary:hover,.sess>summary:hover{border-color:var(--line-2)}
details.card>summary{display:flex;align-items:center;gap:10px;padding:2px 0;font-weight:650;font-size:17px;color:var(--ink)}
.sec-hint{font-size:11.5px;font-weight:500;color:var(--muted);margin-left:4px}details.sec[open]>summary .sec-hint{display:none}
html[data-theme="night"] details>summary::after,html[data-theme="night"] details.sec>summary.sec-sum::after{background-color:#3a1a24;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f0c9d5' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
html[data-theme="layered"] details.sec>summary.sec-sum{margin:-16px -16px 10px;padding:12px 16px;border-radius:var(--r12) var(--r12) 0 0}html[data-theme="layered"] details.sec:not([open])>summary.sec-sum{margin-bottom:-16px;border-radius:var(--r12)}

.ev-notes{margin:0 0 4px;padding:8px 12px;border-left:0;background:var(--canvas);border-radius:var(--r8);font-size:13.5px;line-height:1.45}.ev-notes ul,.ev-notes ol{margin:0;padding-left:18px}.ev-notes li{margin:3px 0}.ev-notes p{margin:0 0 4px}
/* notes inside an agenda item: real bullets, no agenda row styling */
.agenda .ev-notes{border-left:0}.agenda .ev-notes ul{list-style:disc;padding-left:18px}.agenda .ev-notes li{display:list-item;padding:2px 0;border:0;gap:0;margin:0}.agenda .ev-notes li::marker{color:var(--ink)}

/* sign-up cards: title, labeled lines, button */
.xcard{grid-template-columns:1fr auto;grid-template-rows:auto auto;padding:12px 14px}.xcard-t{grid-column:1}.xcard-t b{font-size:14.5px;line-height:1.3}.xcard-b{grid-column:1;margin-top:4px}.xcard .btn.sm{grid-column:2;grid-row:1/span 2;align-self:start;margin-top:2px}
.xl{display:flex;gap:8px;font-size:13px;line-height:1.4;margin:2px 0}.xl-k{flex:0 0 58px;white-space:nowrap;font-weight:650;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding-top:1px}.xl-v{flex:1;min-width:0;color:var(--text)}.xcard-n{margin-top:4px;font-size:12.5px;color:var(--muted)}
@media (max-width:520px){.xcard{grid-template-columns:1fr}.xcard .btn.sm{grid-column:1;grid-row:auto;width:100%;margin-top:8px}}
html[data-theme="night"] .chip{background:#1e2024;color:#fff;border-color:#434750}html[data-theme="night"] .chip.on{background:#fff;color:#1b1b1b;border-color:#fff}html[data-theme="night"] .wk-all,html[data-theme="night"] .mc{color:var(--muted)}html[data-theme="night"] .tabs .tab{color:var(--muted)}html[data-theme="night"] .tabs .tab.on{color:#fff}

/* ================= header: prominent bar, 44px tap targets, clear spacing ================= */
.ubar{background:var(--ink);margin:0 -16px;padding:0 16px;box-shadow:0 2px 10px rgba(40,10,20,.25)}.ubar-in{min-height:60px;gap:12px}
.ubrand{font-size:16px;gap:10px}.ubrand img{width:34px;height:34px;border-radius:9px;box-shadow:0 0 0 2px rgba(255,255,255,.25)}
.unav{gap:8px}.ulink{min-height:44px;min-width:44px;padding:0 12px;border-radius:10px;font-size:13.5px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);opacity:1;gap:7px}.ulink:hover{background:rgba(255,255,255,.2)}.ulink svg{width:18px;height:18px}
.mode-btn{min-width:44px;height:44px;width:44px;border-radius:10px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18)}.mode-btn svg{width:18px;height:18px}
@media (max-width:520px){.ubar-in{min-height:56px}.ubrand{font-size:15px}.ubrand img{width:30px;height:30px}.ulink{padding:0;width:44px;justify-content:center}.ulink span{display:none}.unav{gap:6px}}
/* footer */
.foot{margin-top:32px;background:var(--ink);color:#fff}.foot-in{max-width:720px;margin:0 auto;padding:22px 16px calc(22px + env(safe-area-inset-bottom))}
.foot-brand{display:flex;align-items:center;gap:10px;margin-bottom:12px}.foot-brand img{border-radius:8px;box-shadow:0 0 0 2px rgba(255,255,255,.25)}.foot-brand b{display:block;font-size:15px}.foot-brand span{display:block;font-size:12px;opacity:.75}
.foot-links{display:flex;flex-wrap:wrap;gap:6px 18px;margin-bottom:12px}.foot-links a{color:#fff;text-decoration:none;font-size:13.5px;font-weight:600;opacity:.9;min-height:32px;display:inline-flex;align-items:center}.foot-links a:hover{text-decoration:underline;opacity:1}
.foot-note{margin:0;font-size:12.5px;line-height:1.5;opacity:.75}
html[data-theme="night"] .foot{background:#121316;border-top:1px solid var(--line)}html[data-theme="night"] .ubar{background:#4b0f20}
.ubrand{white-space:nowrap}@media (max-width:520px){.ubrand{font-size:14px;gap:8px}.ubrand img{width:28px;height:28px}.ulink,.mode-btn{width:40px;min-width:40px;height:40px;min-height:40px}.unav{gap:6px}}

/* Sideline brand lockup */
.brand-t{display:flex;flex-direction:column;line-height:1.05}.brand-t b{font-size:17px;letter-spacing:.01em}.brand-t small{font-size:11px;font-weight:600;opacity:.8;margin:0;color:#fff}
@media (max-width:520px){.brand-t b{font-size:15px}.brand-t small{font-size:10px}}
/* footer: black utility bar with button links */
.foot{background:#111214;color:#fff;margin-top:36px}.foot-in{padding:24px 16px calc(24px + env(safe-area-inset-bottom))}
.foot-brand img{border-radius:8px;box-shadow:0 0 0 2px rgba(255,255,255,.18)}.foot-brand span{opacity:.7}
.foot-links{gap:8px;margin-bottom:14px}.fbtn{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:10px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:#fff;text-decoration:none;font-size:13.5px;font-weight:600}.fbtn:hover{background:rgba(255,255,255,.16);text-decoration:none}
.foot-note{opacity:.65;font-size:12.5px}html[data-theme="night"] .foot{background:#0c0d0f;border-top:1px solid var(--line)}
/* back-to-top flips to light when it floats over the dark footer */
.totop.inv{background:#fff;color:#111;border-color:#fff}

/* ================= phone header: hamburger in the bar, bigger logo, dropdown panel from the header ================= */
.ham{display:none;width:44px;height:44px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.1);color:#fff;cursor:pointer;align-items:center;justify-content:center;padding:0}.ham[aria-expanded="true"]{background:#fff;color:var(--ink)}
.tabs.main .tab.util{display:none}
@media (max-width:640px){
  .menu-btn{display:none!important}.ham{display:inline-flex}.unav .ulink,.unav .mode-btn{display:none}
  .ubar-in{min-height:64px}.ubrand img{width:40px;height:40px;border-radius:11px}.brand-t b{font-size:19px}.brand-t small{font-size:11.5px}
  header.top{position:sticky;top:0}.tabs.main{position:absolute;left:16px;right:16px;top:calc(100% - 2px);margin:0;z-index:40;background:var(--card);border:1px solid var(--line-2);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.18);padding:6px}
  .tabs.main .tab{padding:12px 14px;font-size:15.5px;text-align:left;border-radius:8px}.tabs.main .tab.util{display:block;color:var(--muted);border-top:0}.tabs.main .tab.util:first-of-type{margin-top:4px;border-top:1px solid var(--line);border-radius:0;padding-top:12px}
}
@media (max-width:640px){
  /* calendar: short readable labels instead of bars */
  .cal-cell{min-height:72px;padding:3px 2px;gap:2px}.cal-d{font-size:11px;margin-bottom:1px}
  .cal-ev{font-size:8.5px;line-height:1.25;padding:2px 3px;height:auto;width:auto;margin-top:0;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cal-ev .cl-full{display:none}.cal-ev .cl-short{display:inline}.cal-ev.more{background:transparent;color:var(--muted);font-weight:650;padding:0 2px}
  .cal-key .cal-ev{font-size:11px;padding:2px 7px}
}
@media (min-width:641px){.cal-ev .cl-short{display:none}.cal-ev.more{background:transparent;color:var(--muted);font-weight:650}}
html[data-theme="night"] .tabs.main{background:#1e2024;border-color:#434750}

/* ================= phone: larger everything ================= */
@media (max-width:640px){
  body{font-size:16px;line-height:1.5}h1{font-size:24px}h2{font-size:20px}h3{font-size:17px}.sub{font-size:15px}small{font-size:14px}
  main{padding:0 14px 90px}.card,details.card{padding:16px 14px;margin:12px 0;border-radius:14px}
  .btn{font-size:16px;padding:14px 16px;min-height:50px;border-radius:12px}.btn.sm{font-size:15px;padding:11px 16px;min-height:44px}.row-btns{gap:8px}.row-btns .btn.sm{flex:1 1 auto;text-align:center}
  .seg button{padding:11px 14px;font-size:15px;min-height:44px}.seg.att button{padding:10px 18px}.times{font-size:13px;padding:7px 12px;max-width:100%}
  .glance-row{grid-template-columns:1fr}.glance{min-height:0;padding:14px 16px}.glance .g-l{font-size:12px}.glance .g-m{font-size:19px}.glance .g-s{font-size:14px}
  .ag-t{font-size:17px}.ag-line{font-size:15px;margin-top:5px}.ag-k{flex-basis:84px;font-size:13.5px}.agenda li{padding:16px 0}.agenda .dtile{flex:0 0 52px;height:60px}.agenda .dtile b{font-size:22px}
  .kind,.status{font-size:12px;padding:3px 9px}.pill{font-size:13px;padding:4px 11px}.cnt-pill{font-size:14px;padding:4px 10px}.dot{width:14px;height:14px}
  .form3{gap:14px}.form3 label{font-size:14px;margin-bottom:6px}.form3 input,.form3 select,.form3 textarea,.rte{font-size:17px;padding:13px 14px;min-height:50px;border-radius:12px}.rte{min-height:110px}
  .parent-block,.rowcard{padding:14px}.parent-h,.rowcard-h{font-size:16px}
  .avgrid td,.avgrid th{padding:10px 4px;font-size:15px}.avgrid td.dcol{width:40%;font-size:15px}.tagstack .kind{font-size:11px}
  .month-sel{gap:8px;padding:10px 0 4px}.chip{font-size:15px;padding:9px 16px}.tabs.main .tab{font-size:17px;padding:14px 16px}
  .links{grid-template-columns:1fr;gap:10px}.lnk{padding:14px}.lnk-i{flex-basis:46px;width:46px;height:46px}.lnk-t b{font-size:16px}.lnk-t span{font-size:13.5px}
  .roster{grid-template-columns:repeat(3,1fr);gap:10px}.pl .num{width:42px;height:42px;font-size:16px}.pl b{font-size:15px}
  .role-t{font-size:17px}.role-d{font-size:15px}.vol-opt{font-size:15.5px;margin:6px 16px 6px 0}.vol-opt input,.ballot-opt input{width:22px;height:22px}.ballot-opt{padding:14px;font-size:16px}
  .post h3{font-size:17px}.post-body{font-size:15.5px}.post-body li{margin:5px 0}
  .xcard{padding:14px}.xcard-t b{font-size:16px}.xl{font-size:14.5px}.xl-k{flex-basis:62px;font-size:12.5px}.stop-when{flex-basis:88px;font-size:14px}.stop-what{font-size:15px}
  .sheet{padding:18px 16px calc(22px + env(safe-area-inset-bottom))}.sheet h2{font-size:20px}.presets button{font-size:14.5px;padding:10px 14px}
  .savebar .btn{min-height:52px}.totop{font-size:14px;padding:12px 16px}
  .cal-cell{min-height:78px}.cal-d{font-size:12px}.cal-ev{font-size:9px}
  .player-card{padding:14px}.pc-title b{font-size:18px}.pcard{font-size:15px}
  .foot-in{padding:26px 16px calc(28px + env(safe-area-inset-bottom))}.fbtn{min-height:46px;font-size:15px;padding:0 16px;flex:1 1 45%;justify-content:center}.foot-note{font-size:14px}
  .tb button{width:40px;height:38px}.tb svg{width:20px;height:20px}
}
/* ================= desktop: wider canvas, two columns where cards are independent ================= */
@media (min-width:980px){
  main{max-width:1120px}.ubar-in,.foot-in{max-width:1120px}
  #view-home,#view-team,#view-vote,#view-account{columns:2;column-gap:18px}
  #view-home>*,#view-team>*,#view-vote>*,#view-account>*{break-inside:avoid;-webkit-column-break-inside:avoid;margin-top:0;margin-bottom:18px;display:block}
  #view-home>.banner{column-span:all;margin-bottom:14px}#view-vote>.card:first-child{column-span:all}
  #view-schedule details.sec:first-of-type .glance-row{grid-template-columns:repeat(6,1fr)}
  .cal-cell{min-height:96px}.cal-ev{font-size:11.5px}
  .links{grid-template-columns:repeat(3,1fr)}.roster{grid-template-columns:repeat(5,1fr)}
  #csec .rowcard .form3.inner{grid-template-columns:1fr 1fr 1fr 1fr}#csec .rowcard .form3.inner .full{grid-column:1/-1}
}

/* coach PIN entry: large, numeric, one-handed */
.pin-box{max-width:420px;margin:24px auto;text-align:center;padding:24px 20px}.pin-lbl{display:block;font-size:13px;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:14px 0 8px}
.pin-box input#pin{font:inherit;font-size:34px;font-weight:650;letter-spacing:.45em;text-align:center;width:100%;max-width:320px;height:68px;padding:0 0 0 .45em;border-radius:14px;border:2px solid var(--line-2);background:var(--card);color:var(--text);margin:0 auto;display:block}.pin-box input#pin:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px var(--maroon-bg)}
.pin-box input#pin::placeholder{letter-spacing:.3em;color:var(--faint);font-weight:400}
.pin-btn{max-width:320px;margin:14px auto 0;min-height:54px;font-size:17px}.pin-err{color:var(--no);font-weight:600;margin:0 0 4px}
@media (max-width:640px){.pin-box{margin:16px 0;padding:24px 16px}.pin-box input#pin{font-size:38px;height:76px;max-width:none}.pin-btn{max-width:none;min-height:58px;font-size:18px}}
html[data-theme="night"] .pin-box input#pin{background:#121316;border-color:#434750;color:#fff}

/* ================= hero and band ================= */
.hero{position:relative;margin:0 -16px;min-height:220px;overflow:hidden;background:#2a0a12;color:#fff}.hero-bg{position:absolute;inset:0}.hero-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;opacity:0;animation:heroFade 18s infinite}.hero-bg img:nth-child(1){animation-delay:0s}.hero-bg img:nth-child(2){animation-delay:6s}.hero-bg img:nth-child(3){animation-delay:12s}
@keyframes heroFade{0%{opacity:0}8%{opacity:1}33%{opacity:1}41%{opacity:0}100%{opacity:0}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(60,8,22,.92) 0%,rgba(60,8,22,.78) 45%,rgba(60,8,22,.35) 100%)}
.hero-in{position:relative;z-index:1;display:flex;flex-direction:column;gap:14px;padding:26px 16px}.hero .eyebrow{color:#f3d4dd}.hero-t{font-size:38px;font-weight:750;letter-spacing:-.02em;color:#fff;margin:2px 0 0;line-height:1}.hero-s{font-size:15px;color:rgba(255,255,255,.88);max-width:520px;margin:6px 0 0;line-height:1.45}
.hero-cta{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}.hero-btn{width:auto;margin:0;padding:12px 18px;text-decoration:none}.hero-btn.light{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.35)}
.hero-next{display:flex;gap:10px;flex-wrap:wrap}.hn{display:flex;flex-direction:column;gap:2px;min-width:200px;flex:1 1 220px;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);color:#fff;text-decoration:none;backdrop-filter:blur(6px)}.hn:hover{background:rgba(255,255,255,.2)}.hn-l{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.06em;opacity:.85}.hn b{font-size:16px}.hn span{font-size:13px;opacity:.9}.hn-c{font-weight:650;opacity:1!important;color:#ffd98a}
.band{margin:0 -16px;background:linear-gradient(90deg,#4b0f20,#6b1a2e);color:#fff}.band-in{padding:16px 16px 18px}.band .eyebrow{color:#f3d4dd}.band h1{color:#fff;font-size:26px;margin:2px 0 0;letter-spacing:-.01em}
html[data-theme="night"] .hero::after{background:linear-gradient(90deg,rgba(20,8,12,.94) 0%,rgba(20,8,12,.8) 45%,rgba(20,8,12,.4) 100%)}
/* ================= desktop: nav in the header, main column + sidebar ================= */
@media (min-width:980px){
  header.top{background:var(--ink);border-bottom:0;padding:0 16px;box-shadow:0 2px 12px rgba(40,10,20,.25)}.ubar{box-shadow:none;margin:0 -16px;padding:0 16px}.ubar-in{min-height:66px}
  .tabs.main{max-width:1120px;margin:0 auto;background:transparent;border:0;padding:0 0 2px;gap:4px;border-radius:0}.tabs.main .tab{color:rgba(255,255,255,.82);font-size:14.5px;padding:12px 14px;border-radius:8px 8px 0 0;position:relative}.tabs.main .tab:hover{color:#fff;background:rgba(255,255,255,.08)}.tabs.main .tab.on{background:transparent;color:#fff;box-shadow:none}.tabs.main .tab.on::after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:#fff}
  .hero{min-height:360px;margin:0 -16px;border-radius:0}.hero-in{max-width:1120px;margin:0 auto;flex-direction:row;align-items:flex-end;justify-content:space-between;gap:28px;padding:48px 16px 36px;min-height:360px}.hero-copy{flex:1 1 520px}.hero-t{font-size:56px}.hero-s{font-size:17px}.hero-next{flex:0 1 420px;flex-direction:column}.hn{flex:none}
  .band-in{max-width:1120px;margin:0 auto;padding:20px 16px 22px}.band h1{font-size:30px}
  #view-home,#view-team,#view-schedule{columns:auto;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:18px;align-items:start;margin-top:18px}
  #view-home>*,#view-team>*,#view-schedule>*{margin:0}#view-home>.banner,#view-home>.col-full,#view-team>.col-full,#view-schedule>.col-full{grid-column:1/-1}
  .col-main{grid-column:1}.col-side{grid-column:2}#view-schedule>.col-main{grid-row:span 3}
  .card,details.card{border-radius:16px;box-shadow:0 1px 2px rgba(40,20,25,.04),0 8px 24px rgba(40,20,25,.06)}
  .col-side .links{grid-template-columns:1fr;gap:6px}.col-side .lnk{padding:10px 12px;border:0;background:var(--canvas)}.col-side .lnk-i{flex-basis:36px;width:36px;height:36px}
  .col-side .roster{grid-template-columns:repeat(3,1fr)}
  #view-schedule details.sec:first-of-type .glance-row{grid-template-columns:repeat(6,1fr)}
  .chrome-note{max-width:1120px;margin:14px auto 0}
}
@media (max-width:979px){.hero-next{display:none}}
@media (min-width:980px){#view-home,#view-team,#view-schedule{grid-auto-flow:dense}}

/* ================= header v3: maroon bar with logo + account menu; grey full-bleed nav strip; full-bleed hero/footer ================= */
.when-dark{display:none}html[data-theme="night"] .when-dark{display:inline}html[data-theme="night"] .when-light{display:none}
.acct-wrap{position:relative}.acct-btn{width:44px;height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.1);color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}.acct-btn:hover,.acct-btn[aria-expanded="true"]{background:#fff;color:var(--ink)}
.acct-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:240px;background:var(--card);border:1px solid var(--line-2);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.18);padding:6px;z-index:50;display:flex;flex-direction:column}.acct-menu a,.acct-menu button{display:block;width:100%;text-align:left;font:inherit;font-size:15px;font-weight:600;color:var(--text);text-decoration:none;padding:11px 12px;border:0;background:transparent;border-radius:8px;cursor:pointer}.acct-menu a:hover,.acct-menu button:hover{background:var(--heat1)}.acct-menu a:nth-child(2){border-bottom:1px solid var(--line);border-radius:8px 8px 0 0;margin-bottom:4px}
.ubar-in{width:100%}.brand-t b{font-size:21px}.ubrand img{width:40px;height:40px}@media (max-width:640px){.acct-wrap{display:none}.brand-t b{font-size:19px}}
/* hero lockup and buttons */
.hero-lock{display:flex;align-items:center;gap:14px;margin-top:4px}.hero-lock svg{width:52px;height:52px;flex:0 0 auto}
.hero-btn.primary{background:#fff;color:var(--ink);border-color:#fff}.hero-btn.primary:hover{background:#f3e4e9}.hero-btn.ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.7)}.hero-btn.ghost:hover{background:rgba(255,255,255,.14)}
/* phones: single static photo, no crossfade */
@media (max-width:979px){.hero-bg img{animation:none;opacity:0}.hero-bg img:first-child{opacity:1}.hero-lock svg{width:40px;height:40px}}
@media (min-width:980px){
  header.top{position:sticky;top:0;z-index:30;width:100vw;margin-left:calc(50% - 50vw);padding:0;background:transparent;box-shadow:none}
  .ubar{margin:0;padding:0 24px;background:var(--ink);box-shadow:0 2px 12px rgba(40,10,20,.25)}.ubar-in{max-width:1120px;min-height:72px}
  .tabs.main{max-width:none;width:100%;margin:0;padding:0 24px;background:#e9eaee;border-bottom:1px solid #d6d8de;border-radius:0;display:flex;justify-content:center;gap:4px}
  .tabs.main .tab{color:#3b3f46;font-size:15px;font-weight:650;padding:14px 16px;border-radius:0;background:transparent}.tabs.main .tab:hover{color:var(--ink);background:transparent}.tabs.main .tab.on{color:var(--ink);background:transparent;box-shadow:none}.tabs.main .tab.on::after{background:var(--ink);left:16px;right:16px;height:3px;bottom:-1px}
  .hero{width:100vw;margin-left:calc(50% - 50vw);min-height:420px;border-radius:0}.hero-in{min-height:420px;padding:56px 24px 44px}.hero-t{font-size:60px}
  .foot{width:100vw;margin-left:calc(50% - 50vw)}.foot-in{padding-left:24px;padding-right:24px}
  html{overflow-x:clip}
  .ubar-in{width:100%}
  .tabs.main .tab[data-tab="account"],.tabs.main .tab[data-tab="coach"],.tabs.main .tab.util{display:none}
}
html[data-theme="night"] .tabs.main{background:#1a1b1f;border-bottom-color:#2e3137}html[data-theme="night"] .tabs.main .tab{color:#c9ccd3}html[data-theme="night"] .tabs.main .tab.on{color:#fff}html[data-theme="night"] .tabs.main .tab.on::after{background:#fff}
html[data-theme="night"] .acct-menu{background:#1e2024;border-color:#434750}html[data-theme="night"] .acct-menu a:hover,html[data-theme="night"] .acct-menu button:hover{background:#2a2d33}

@media (max-width:979px){.tabs.main .tab.util{text-align:left;justify-content:flex-start}}

/* desktop: main nav lives inside the maroon bar, centered between logo and account icon */
@media (min-width:980px){
  header.top{position:sticky;top:0;background:var(--ink);box-shadow:0 2px 12px rgba(40,10,20,.25)}
  .ubar{box-shadow:none}
  .tabs.main{position:absolute;left:50%;top:0;transform:translateX(-50%);width:auto;height:72px;padding:0;background:transparent;border:0;align-items:stretch;z-index:7}
  .tabs.main .tab{color:rgba(255,255,255,.82);display:inline-flex;align-items:center;padding:0 14px;font-size:15px}
  .tabs.main .tab:hover{color:#fff}
  .tabs.main .tab.on{color:#fff}
  .tabs.main .tab.on::after{background:#fff;left:14px;right:14px;height:3px;bottom:0}
  html[data-theme="night"] header.top{background:#1a1b1f}
  html[data-theme="night"] .tabs.main{background:transparent;border:0}
}

/* phones: availability grid fits the screen; dots wrap */
@media (max-width:640px){
  .avgrid{table-layout:fixed;width:100%}.avgrid th:nth-child(1),.avgrid td.dcol{width:37%}.avgrid th:nth-child(4),.avgrid td:nth-child(4){width:21%}
  .avgrid td,.avgrid th{padding:9px 3px;font-size:14px;overflow-wrap:anywhere}.avgrid th{font-size:10px;letter-spacing:.03em;line-height:1.2}
  .avgrid .dots{display:flex;flex-wrap:wrap;gap:3px;max-width:100%}.avgrid .dot{width:9px;height:9px;flex:0 0 auto}
  .avgrid td:nth-child(4) small{display:block;font-size:10.5px;line-height:1.2}.cnt-pill{font-size:12px;padding:2px 7px}
  .seg button{padding:7px 6px;font-size:12px}.times{max-width:100%;font-size:11px}
}

/* role card header: title on its own line, tags beneath it and never split mid-word */
.role-t{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;line-height:1.25}.role-t .pill,.role-t .status{white-space:nowrap;flex:0 0 auto}
@media (max-width:640px){.role-t{font-size:17px}.role-t .pill,.role-t .status{font-size:11px}.role-h{font-size:14px;margin-top:8px}.role-d{font-size:14.5px;margin-top:6px}}

/* player jobs */
.jobs-day{margin:6px 0 8px}.jobs-d{font-size:12px;font-weight:650;color:var(--ink);margin:4px 0}.jobs-m{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;padding:5px 0;border-bottom:1px solid var(--line)}.jobs-m:last-child{border-bottom:0}.jobs-ml{font-weight:650;flex:0 0 100%}
@media (min-width:640px){.jobs-ml{flex:0 0 80px}}
.jobs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.jobs-grid label{display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:650;color:var(--muted)}.jobs-grid select{font:inherit;font-size:14px;padding:8px;border-radius:8px;border:1px solid var(--line-2);background:var(--card);color:var(--text)}
.jobs-day-ed{margin:8px 0;padding:8px 0;border-top:1px solid var(--line)}.jm-label{font:inherit;font-weight:650;font-size:14px;border:1px solid transparent;background:transparent;padding:4px 6px;border-radius:6px;min-width:120px}.jm-label:focus{border-color:var(--line-2);background:var(--card)}
.wx .pill{margin:0 4px 4px 0}

/* phones, signed in: the answer buttons stay on one line; date column gives up room; open-hours tag wraps */
@media (max-width:640px){
  .avgrid th:nth-child(1),.avgrid td.dcol{width:30%}.avgrid td:nth-child(2){width:33%}.avgrid th:nth-child(4),.avgrid td:nth-child(4){width:17%}
  .avgrid .seg{display:inline-flex;white-space:nowrap;flex-wrap:nowrap}.avgrid .seg button{padding:8px 6px;font-size:12px;min-width:0;writing-mode:horizontal-tb}
  .avgrid .times{display:block;margin-top:4px;max-width:100%;white-space:normal}
  .avgrid .tagstack .kind{white-space:normal;line-height:1.25}
}

/* coach availability: one card per day */
.cav-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}.cav-row{border:1px solid var(--line);border-radius:var(--r8);padding:10px 12px;background:var(--card)}.cav-row.blocked{opacity:.65}
.cav-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px}.cav-d{font-size:15px}.cav-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.cav-ctl .seg{display:inline-flex;white-space:nowrap}.cav-ctl .times{margin:0;max-width:260px}
.cav-lines{margin-top:6px}.cav-lines .ag-line{font-size:13px}.cav-lines .ag-k{min-width:92px}.cav-lines .ag-v{overflow-wrap:anywhere}
html[data-theme="night"] .cav-row{background:#24262b;border-color:#363a41}

/* coach availability grid */
.hours-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:6px 18px;margin:4px 0 8px}.hours-row{display:flex;align-items:center;gap:8px;font-size:14px}.hours-row .vol-opt{min-width:72px;margin:0}.hours-row select{font:inherit;font-size:14px;padding:6px 8px;border-radius:8px;border:1px solid var(--line-2);background:var(--card);color:var(--text);flex:1;max-width:150px}.hours-row select:disabled{opacity:.45}
.cgrid td{vertical-align:top}.cgrid td.dcol{width:22%}.cgrid th:nth-child(2),.cgrid td:nth-child(2){width:30%}.you-cell{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.you-cell .seg{display:inline-flex;white-space:nowrap}.you-cell .times{margin:0;max-width:220px}.you-cell .src{flex:0 0 100%;color:var(--muted);font-size:11.5px}.you-cell .src a{color:var(--ink)}
@media (max-width:640px){.cgrid thead{display:none}.cgrid tr{display:block;border-bottom:1px solid var(--line);padding:8px 0}.cgrid td{display:block;width:auto!important;border:0;padding:3px 0}.cgrid td::before{content:attr(data-l) ": ";font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:650}.cgrid td.dcol{font-size:16px;font-weight:650}.cgrid td.dcol::before{content:""}.cgrid td:nth-child(2)::before{display:none}}

/* time window sheet v2: slider cards, like the mockup */
.sheet.wins h2{font-size:22px;line-height:1.2;margin:0 0 4px}.sheet.wins .sub{font-size:15px;margin-bottom:12px}
.sheet.wins .presets{gap:8px;margin-bottom:12px}.sheet.wins .presets button{font-size:15px;font-weight:600;padding:10px 16px;border:1.5px solid var(--line-2);min-height:44px}.sheet.wins .presets button.on{background:var(--ink);color:#fff;border-color:var(--gold);box-shadow:0 0 0 2px var(--ink) inset}
.sheet.wins .win{border:1px solid var(--line);border-radius:var(--r12);padding:14px 16px 10px;margin:0 0 12px}.sheet.wins .win-t{font-size:20px;font-weight:700;color:var(--text)}
.sheet.wins .dual{height:52px;margin:4px 0 0}.sheet.wins .dual .track{top:23px;height:7px;background:var(--line)}.sheet.wins .dual .fill{top:23px;height:7px;background:var(--ink)}
.sheet.wins .dual input[type=range]{height:52px}.sheet.wins .dual input[type=range]::-webkit-slider-runnable-track{height:52px}.sheet.wins .dual input[type=range]::-moz-range-track{height:52px}
.sheet.wins .dual input[type=range]::-webkit-slider-thumb{width:36px;height:36px;border-width:4px;margin-top:8px}.sheet.wins .dual input[type=range]::-moz-range-thumb{width:30px;height:30px;border-width:4px}
.sheet.wins .ticks{font-size:13px;color:var(--muted);margin-top:2px}
.sheet.wins .addwin{font-size:16px;font-weight:600;padding:16px;border:1.5px dashed var(--line-2);border-radius:var(--r12);margin:0}
.sheet.wins .summary{font-size:16px;color:var(--text);margin:14px 0 6px}.sheet.wins .row .btn{min-height:52px;font-size:17px;flex:1}
html[data-theme="night"] .sheet.wins .win{background:#2c2f35;border-color:#3b3f47}html[data-theme="night"] .sheet.wins .win-t{color:#fff}html[data-theme="night"] .sheet.wins .summary{color:#fff}
@media (min-width:600px){.sheet.wins{border-radius:var(--r16);max-width:580px;padding:22px 24px}}

/* availability grid polish (2026-10-27): calmer open tag, solid selected answer, desktop column widths, wrapped month chips */
.kind.open{text-transform:none;letter-spacing:0;font-weight:600;font-size:12px;background:var(--yes-bg);color:var(--green-t)}
.seg button.y.on{background:var(--yes);color:#fff}.seg button.m.on{background:var(--maybe);color:#fff}.seg button.n.on{background:var(--no);color:#fff}
html[data-theme="night"] .seg button.y.on{background:var(--yes);color:#fff}html[data-theme="night"] .seg button.m.on{background:var(--maybe);color:#fff}html[data-theme="night"] .seg button.n.on{background:var(--no);color:#fff}
html[data-theme="night"] .kind.open{background:#1b4a2e;color:#a8e6bd}
@media (min-width:641px){
  .avgrid{table-layout:fixed}.avgrid th:nth-child(1),.avgrid td.dcol{width:44%}.avgrid th:nth-child(2),.avgrid td:nth-child(2){width:26%}.avgrid th:nth-child(3),.avgrid td:nth-child(3){width:12%}.avgrid th:nth-child(4),.avgrid td:nth-child(4){width:18%}
  .avgrid th{white-space:nowrap}.avgrid td:nth-child(4){white-space:nowrap}.avgrid td:nth-child(4) small{font-size:13px}
  .avgrid .seg button{padding:7px 12px;font-size:13px}.avgrid .times{margin-top:5px}
  .months{flex-wrap:wrap;overflow:visible}
}
@media (min-width:641px){.month-sel{flex-wrap:wrap;overflow:visible}}

/* sideways scroll hints: edge fades, chevron buttons, visible thin scrollbar */
.hs{position:relative;--hsbg:var(--card)}
.hs::before,.hs::after{content:"";position:absolute;top:0;bottom:0;width:44px;pointer-events:none;z-index:2;transition:opacity .15s}
.hs::before{left:0;background:linear-gradient(90deg,var(--hsbg) 20%,transparent)}.hs::after{right:0;background:linear-gradient(270deg,var(--hsbg) 20%,transparent)}
.hs.at-start::before,.hs.no::before,.hs.at-end::after,.hs.no::after{opacity:0}
.hs-btn{position:absolute;top:50%;transform:translateY(-55%);z-index:3;width:32px;height:32px;border-radius:50%;border:1px solid var(--line-2);background:var(--card);color:var(--ink);font:inherit;font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 1px 5px rgba(0,0,0,.2);padding:0 0 3px}
.hs-btn.l{left:4px}.hs-btn.r{right:4px}.hs.at-start .hs-btn.l,.hs.at-end .hs-btn.r,.hs.no .hs-btn{display:none}
.hs>*{scrollbar-width:thin!important;scrollbar-color:var(--line-2) transparent}
.hs>*::-webkit-scrollbar{display:block!important;height:6px}.hs>*::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:3px}.hs>*::-webkit-scrollbar-track{background:transparent}
.hs>.month-sel,.hs>.months{padding-bottom:8px}.hs>.scrollx{padding-bottom:6px}
main>.hs,.hs.sticky{--hsbg:var(--canvas)}
html[data-theme="night"] .hs{--hsbg:#24262b}html[data-theme="night"] .hs-btn{background:#2c2f35;border-color:#3b3f47;color:#fff}html[data-theme="night"] .hs>*{scrollbar-color:#4a4f58 transparent}html[data-theme="night"] .hs>*::-webkit-scrollbar-thumb{background:#4a4f58}
/* coach availability grid on desktop: four even-ish columns, wrapping windows */
@media (min-width:641px){
  .avgrid.cgrid th:nth-child(1),.avgrid.cgrid td.dcol{width:19%}.avgrid.cgrid th:nth-child(2),.avgrid.cgrid td:nth-child(2){width:31%}.avgrid.cgrid th:nth-child(3),.avgrid.cgrid td:nth-child(3){width:24%}.avgrid.cgrid th:nth-child(4),.avgrid.cgrid td:nth-child(4){width:26%}
  .avgrid.cgrid td:nth-child(3),.avgrid.cgrid td:nth-child(4){white-space:normal;line-height:1.4}.avgrid.cgrid td .kind.open{white-space:normal;display:inline-block;line-height:1.35;padding:3px 8px}
  .avgrid.cgrid th{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
/* phones: answer pill gets its own room so it never overlaps the family dots */
@media (max-width:640px){.avgrid:not(.cgrid) th:nth-child(1),.avgrid:not(.cgrid) td.dcol{width:27%}.avgrid:not(.cgrid) td:nth-child(2){width:40%}.avgrid:not(.cgrid) th:nth-child(3),.avgrid:not(.cgrid) td:nth-child(3){width:14%;padding-left:8px}.avgrid:not(.cgrid) th:nth-child(4),.avgrid:not(.cgrid) td:nth-child(4){width:19%}.avgrid .seg button{padding:8px 5px;font-size:11.5px}}
@media (min-width:641px){.avgrid:not(.cgrid) th:nth-child(1),.avgrid:not(.cgrid) td.dcol{width:36%}.avgrid:not(.cgrid) th:nth-child(2),.avgrid:not(.cgrid) td:nth-child(2){width:34%}.avgrid:not(.cgrid) th:nth-child(3),.avgrid:not(.cgrid) td:nth-child(3){width:12%;padding-left:10px}.avgrid:not(.cgrid) th:nth-child(4),.avgrid:not(.cgrid) td:nth-child(4){width:18%}}
/* family dots: one per family, big enough to read as a status */
.avgrid .dots{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.avgrid .dot{width:12px;height:12px;border-radius:50%;background:var(--line);border:1px solid rgba(0,0,0,.08);flex:0 0 auto}
.avgrid .dot.y{background:var(--yes)}.avgrid .dot.m{background:var(--maybe)}.avgrid .dot.n{background:var(--no)}

/* coach grid windows: timeline bar + chips */
.wv{display:flex;flex-direction:column;gap:6px;min-width:0;padding:2px 0}
.wv-bar{position:relative;height:7px;border-radius:4px;background:var(--line);overflow:hidden}.wv-bar i{position:absolute;top:0;bottom:0;background:var(--faint);border-radius:4px}
.wv.ok .wv-bar i{background:var(--yes)}
.wv-chips{display:flex;flex-wrap:wrap;gap:4px}.wv-chips span{font-size:12px;font-weight:600;line-height:1.3;white-space:nowrap;padding:3px 9px;border-radius:999px;background:var(--canvas);color:var(--text);border:1px solid var(--line)}
.wv.ok .wv-chips span{background:var(--yes-bg);color:var(--green-t);border-color:transparent}
.cgrid td{vertical-align:top;padding-top:10px;padding-bottom:10px}
@media (max-width:640px){.cgrid td::before{display:block;margin-bottom:3px}.wv{max-width:340px}}
html[data-theme="night"] .wv-bar{background:#363a41}html[data-theme="night"] .wv-bar i{background:#6b7280}html[data-theme="night"] .wv.ok .wv-bar i{background:var(--yes)}html[data-theme="night"] .wv-chips span{background:#2c2f35;color:#fff;border-color:#3b3f47}html[data-theme="night"] .wv.ok .wv-chips span{background:#1b4a2e;color:#a8e6bd}

/* no text is ever clipped: wrap instead of ellipsis, everywhere */
.hl-t,.htag,.cu-t,.cu-s,.cal-ev,.cell .rlabel{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere}
.cal-ev{line-height:1.25}@media (max-width:640px){.cal-ev{font-size:9px}}
.avgrid.cgrid th{white-space:normal;overflow:visible;text-overflow:clip}
.tagstack .kind,.wv-chips span,.seg button,.chip,.presets button{overflow-wrap:anywhere}
select{text-overflow:clip}.form3 select,.form select{width:100%;min-width:0}
/* court windows by month */
.cmon{border:1px solid var(--line);border-radius:var(--r12);padding:0 12px;margin:8px 0;background:var(--card)}.cmon>summary{width:100%;display:flex;justify-content:space-between;padding:10px 0;font-size:15px}.cmon>summary .kind{font-weight:600;text-transform:none;letter-spacing:0;font-size:12px;margin-left:auto;margin-right:8px}
.cmon .ctab{margin:0 0 8px}.ctab th:nth-child(1),.ctab td.dcol{width:26%}.ctab th:nth-child(2),.ctab td:nth-child(2){width:44%}.ctab th:nth-child(3),.ctab td:nth-child(3){width:14%}.ctab td:nth-child(4){text-align:right}
@media (max-width:640px){.ctab th:nth-child(1),.ctab td.dcol{width:30%}.ctab th:nth-child(2),.ctab td:nth-child(2){width:40%}.ctab .btn.sm{padding:6px 8px;font-size:12px}}
html[data-theme="night"] .cmon{background:#24262b;border-color:#363a41}

/* family code sign-in */
.signin{display:flex;flex-direction:column;gap:10px;max-width:360px}.signin label{font-size:13px;font-weight:600;color:var(--muted)}
.code-in{font:inherit;font-size:26px;letter-spacing:.35em;text-align:center;padding:12px 10px;border-radius:var(--r12);border:1.5px solid var(--line-2);background:var(--card);color:var(--text);width:100%;max-width:260px;font-variant-numeric:tabular-nums}
.code-in:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px var(--maroon-bg)}
.signin .chk{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text);font-weight:500}.signin .chk input{width:20px;height:20px;margin:0}
.fcode{font-size:18px;letter-spacing:.18em;font-variant-numeric:tabular-nums}
.codes td{vertical-align:middle}.codes .row-btns{margin:0;justify-content:flex-end}
html[data-theme="night"] .code-in{background:#1e2024;border-color:#3b3f47;color:#fff}
/* phone menu: close button and no page scroll while open */
.tab-close{display:none}
.tabs.main.open .tab-close{display:block;text-align:right;color:var(--muted);font-weight:600;font-size:14px;border-bottom:1px solid var(--line);border-radius:0;margin-bottom:4px;padding:10px 12px}
.tabs.main.open{max-height:calc(100vh - 80px);overflow-y:auto}
body.menu-open{overflow:hidden}
/* phone grid: short headers, mixed-case tags that wrap at spaces */
.ph{display:none}@media (max-width:640px){.ph{display:inline}.dk{display:none}.tagstack .kind,.sd-tags .kind{text-transform:none;letter-spacing:0;font-size:11.5px;line-height:1.3;padding:3px 8px}}
.avgrid th,.kind,.tagstack .kind,.wv-chips span,.seg button,.chip,.presets button,.cal-ev,.hl-t,.htag,.cu-t,.cu-s,.cell .rlabel{overflow-wrap:normal;word-break:normal;hyphens:none}
/* month calendar: labels wrap at spaces on wide screens; dots on phones, tap a day for details */
.cal-dots{display:flex;flex-direction:column;gap:2px;min-width:0}
.cal-ev{white-space:normal!important}
@media (max-width:640px){
  .cal-cell{min-height:58px;padding:5px 4px;gap:4px}.cal-d{font-size:12.5px}
  .cal-dots{flex-direction:row;flex-wrap:wrap;gap:4px;align-items:center}
  .cal-cell .cal-ev{font-size:0;width:9px;height:9px;border-radius:50%;padding:0;margin:0;line-height:0;display:inline-block;flex:0 0 9px}
  .cal-cell .cal-ev.more{font-size:9.5px;width:auto;height:auto;border-radius:3px;padding:0 2px;line-height:1.2;background:transparent;color:var(--muted);flex:0 0 auto}
  .cal-key .cal-ev{font-size:11px;width:auto;height:auto;border-radius:999px;padding:2px 8px;line-height:1.3;display:inline-block}
  .cal-cell.sel{box-shadow:0 0 0 2px var(--ink) inset}
}
/* weather: forecast strip or typical-conditions tiles */
.wx-box{margin:8px 0;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r12);background:var(--canvas)}
.wx-k{display:block;font-size:11.5px;font-weight:650;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.wx-strip{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}
.wx-day{flex:0 0 66px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:10px;background:var(--card);border:1px solid var(--line);text-align:center}
.wx-dow{font-size:11px;font-weight:650;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.wx-ico{font-size:24px;line-height:1.1}.wx-hi{font-size:17px;font-weight:700;color:var(--text)}.wx-lo{font-size:12.5px;color:var(--muted)}.wx-pop{font-size:11px;color:#1f6fb2;margin-top:2px}
.wx-typ{display:flex;gap:8px;flex-wrap:wrap}.wx-stat{flex:1 1 90px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 8px;text-align:center}.wx-stat b{display:block;font-size:22px;line-height:1.1;color:var(--text)}.wx-stat span{display:block;font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:3px}
.wx-note{display:block;font-size:12.5px;color:var(--muted);margin-top:8px}
html[data-theme="night"] .wx-box{background:#1e2024;border-color:#363a41}html[data-theme="night"] .wx-day,html[data-theme="night"] .wx-stat{background:#2c2f35;border-color:#3b3f47}html[data-theme="night"] .wx-hi,html[data-theme="night"] .wx-stat b{color:#fff}html[data-theme="night"] .wx-pop{color:#8ec5ff}
@media (max-width:640px){.cal-cell .cal-ev.practice{background:var(--ink)}.cal-cell .cal-ev.extra{background:var(--yes)}.cal-cell .cal-ev.proposed{background:var(--maybe)}.cal-cell .cal-ev.tournament{background:#d9a93a}.cal-cell .cal-ev.holiday{background:#7b5fc0}.cal-cell .cal-ev.school{background:#8a98a5}.cal-cell .cal-ev.celebrate{background:#d4578a}.cal-cell .cal-ev.camp{background:#c98a2a}}
/* coach family-code table */
.avgrid.codes{table-layout:fixed}.avgrid.codes th:nth-child(1),.avgrid.codes td.dcol{width:26%}.avgrid.codes th:nth-child(2),.avgrid.codes td:nth-child(2){width:18%}.avgrid.codes th:nth-child(3),.avgrid.codes td:nth-child(3){width:20%}.avgrid.codes th:nth-child(4),.avgrid.codes td:nth-child(4){width:36%;text-align:right}
.avgrid.codes .row-btns{display:inline-flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.avgrid.codes td{padding-top:10px;padding-bottom:10px}
@media (max-width:640px){.avgrid.codes th:nth-child(1),.avgrid.codes td.dcol{width:34%}.avgrid.codes th:nth-child(2),.avgrid.codes td:nth-child(2){width:26%}.avgrid.codes th:nth-child(3),.avgrid.codes td:nth-child(3){display:none}.avgrid.codes th:nth-child(4),.avgrid.codes td:nth-child(4){width:40%}.avgrid.codes .fcode{font-size:16px;letter-spacing:.12em}}

/* calendar legend above the grid, icons inside the day boxes */
.cal-key{margin:0 0 10px;display:flex;flex-wrap:wrap;gap:6px}.cal-key .cal-ev{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:650;padding:4px 10px;border-radius:999px;white-space:nowrap!important}
.ci{width:14px;height:14px;flex:0 0 auto;vertical-align:-2px}
.cal-ev{display:flex;align-items:center;gap:4px}.cal-cell .cal-ev .ci{width:12px;height:12px}
.cal-ev.practice{color:#3f444b}.cal-ev.extra{color:#1f7a3f}.cal-ev.proposed{color:#a3520a}.cal-ev.tournament{color:#6b4a00}.cal-ev.camp{color:#8a4e0c}.cal-ev.holiday{color:#4f3590}.cal-ev.celebrate{color:#8a2550}.cal-ev.school{color:#34495a}
@media (max-width:640px){
  .cal-cell .cal-ev{font-size:0;width:auto;height:auto;border-radius:0;padding:0;margin:0;line-height:0;background:transparent!important;flex:0 0 auto;display:inline-flex}
  .cal-cell .cal-ev .ci{width:15px;height:15px;stroke-width:2.4}
  .cal-cell .cal-ev.more{font-size:10px;color:var(--muted);line-height:1.2}
  .cal-key{gap:5px}.cal-key .cal-ev{font-size:11.5px;padding:4px 9px}
}
html[data-theme="night"] .cal-ev.practice{color:#d6d9de}html[data-theme="night"] .cal-ev.extra{color:#8fe0a8}html[data-theme="night"] .cal-ev.proposed{color:#f5c889}html[data-theme="night"] .cal-ev.tournament{color:#f1d27a}html[data-theme="night"] .cal-ev.camp{color:#f3c48a}html[data-theme="night"] .cal-ev.holiday{color:#c9b6f5}html[data-theme="night"] .cal-ev.celebrate{color:#f5a8c8}html[data-theme="night"] .cal-ev.school{color:#b9c6d1}

/* footer: calendar subscribe as the one big button */
.fbtn.primary{grid-column:1/-1;background:var(--ink);border-color:var(--ink);color:#fff;font-size:16px;font-weight:700;padding:14px 16px;text-align:center;margin-top:4px;flex-basis:100%}
.fbtn.primary:hover{background:var(--ink-2)}
/* dark mode: phone menu */
html[data-theme="night"] .tabs.main.open{background:#1e2024!important;border:1px solid #434750!important;box-shadow:0 8px 24px rgba(0,0,0,.5)}
html[data-theme="night"] .tabs.main.open .tab{color:#e6e8ec;background:transparent}html[data-theme="night"] .tabs.main.open .tab.on{background:#2a2d33;color:#fff}html[data-theme="night"] .tabs.main.open .tab-close{color:#b9bec7;border-bottom-color:#434750}
/* nothing wider than the screen on phones: forms, editors, toolbars */
.form3>div,.form3>.full,.form,.form>div{min-width:0}
.form3 input,.form3 select,.form3 textarea,.form input,.form select,.form textarea,.rte,.ac-wrap{max-width:100%;box-sizing:border-box}
.tb{display:flex;flex-wrap:wrap;max-width:100%}
.role-card,.player-card,.xcard,.ev-row,.rowcard{min-width:0;max-width:100%}
/* weather: condition words */
.wx-w{font-size:10px;line-height:1.15;color:var(--muted);text-align:center;max-width:66px;overflow-wrap:normal}.wx-day{flex-basis:74px}
/* dark mode: footer subscribe button and the wordmark stay readable */
html[data-theme="night"] .fbtn.primary{background:var(--ink)!important;border-color:var(--ink)!important;color:#fff!important}html[data-theme="night"] .fbtn.primary:hover{background:var(--ink-2)!important}
html[data-theme="night"] .ubrand,html[data-theme="night"] .ubrand .brand-t,html[data-theme="night"] .ubrand .brand-t b,html[data-theme="night"] .foot-brand b{color:#fff!important}
html[data-theme="night"] body footer.foot nav.foot-links a.fbtn.primary{background:#7a2438!important;border-color:#7a2438!important;color:#fff!important}
html[data-theme="night"] body footer.foot nav.foot-links a.fbtn.primary:hover{background:#8f2c44!important}
/* the Close row exists only inside the phone dropdown */
.tabs.main .tab.tab-close,.tabs .tab-close{display:none!important}
@media (max-width:900px){.tabs.main.open .tab.tab-close{display:block!important}}

/* flat cards: a heading and a line of text, never collapsible */
.card.flat h2{margin-bottom:6px}.card.flat .sub{margin-bottom:0}

/* weather: explanatory text matches the rest of the card; the Updated stamp is its own called-out line */
.wx-box,.wx-box .wx-note{font-size:inherit}
.wx-note{display:block;margin:10px 0 0;color:var(--text);line-height:1.45;font-size:inherit}
.wx-upd{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:12.5px;font-weight:650;color:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:5px 11px;white-space:normal}
html[data-theme="night"] .wx-upd{background:#2c2f35;border-color:#3b3f47;color:#c9ccd3}html[data-theme="night"] .wx-note{color:#fff}
/* weather note: same size as Good to know */
.wx-note{font-size:14px}@media (max-width:640px){.wx-note{font-size:15.5px}}

/* best time cell: the time first, the count under it */
.bt{display:block;font-size:14px;font-weight:700;color:var(--text);line-height:1.25}.bt.hi{color:var(--green-t)}.bt-n{display:block;font-size:11.5px;color:var(--muted);line-height:1.3;margin-top:2px}
.blocked-note{color:var(--muted)}
html[data-theme="night"] .bt{color:#fff}html[data-theme="night"] .bt.hi{color:#8fe0a8}

/* team answers: stacked counts, colored like the answers */
.tally{display:flex;flex-direction:column;gap:3px;font-size:12.5px;line-height:1.3}
.tl{display:inline-flex;align-items:center;gap:6px;color:var(--muted);white-space:nowrap}.tl i{width:9px;height:9px;border-radius:50%;background:var(--line);flex:0 0 9px}
.tl.y i{background:var(--yes)}.tl.m i{background:var(--maybe)}.tl.n i{background:var(--no)}.tl b{color:var(--text);font-weight:700;min-width:1.1em}.tl.zero{opacity:.5}.tl.x{font-size:11.5px}
@media (min-width:641px){.avgrid:not(.cgrid) th:nth-child(1),.avgrid:not(.cgrid) td.dcol{width:33%}.avgrid:not(.cgrid) th:nth-child(2),.avgrid:not(.cgrid) td:nth-child(2){width:33%}.avgrid:not(.cgrid) th:nth-child(3),.avgrid:not(.cgrid) td:nth-child(3){width:15%;padding-left:10px}.avgrid:not(.cgrid) th:nth-child(4),.avgrid:not(.cgrid) td:nth-child(4){width:19%}}
@media (max-width:640px){.avgrid:not(.cgrid) th:nth-child(1),.avgrid:not(.cgrid) td.dcol{width:26%}.avgrid:not(.cgrid) td:nth-child(2){width:36%}.avgrid:not(.cgrid) th:nth-child(3),.avgrid:not(.cgrid) td:nth-child(3){width:21%;padding-left:6px}.avgrid:not(.cgrid) th:nth-child(4),.avgrid:not(.cgrid) td:nth-child(4){width:17%}.tally{font-size:11.5px;gap:2px}.tl{gap:4px}.tl i{width:8px;height:8px;flex-basis:8px}}
html[data-theme="night"] .tl b{color:#fff}
.avgrid td:nth-child(4) .bt-n{white-space:normal}

/* phone grid: times never break mid-word; Best column wide enough for a time */
.bt{white-space:nowrap}
@media (max-width:640px){.avgrid:not(.cgrid) th:nth-child(1),.avgrid:not(.cgrid) td.dcol{width:24%}.avgrid:not(.cgrid) td:nth-child(2){width:33%}.avgrid:not(.cgrid) th:nth-child(3),.avgrid:not(.cgrid) td:nth-child(3){width:21%;padding-left:4px}.avgrid:not(.cgrid) th:nth-child(4),.avgrid:not(.cgrid) td:nth-child(4){width:22%;padding-left:4px}.bt{font-size:13px}.bt-n{font-size:11px}.avgrid td.dcol{font-size:14px}}
/* phone grid: compact answer pill so it stays inside its column */
@media (max-width:640px){
  .avgrid:not(.cgrid) th:nth-child(1),.avgrid:not(.cgrid) td.dcol{width:23%}.avgrid:not(.cgrid) td:nth-child(2){width:36%;padding-right:6px}.avgrid:not(.cgrid) th:nth-child(3),.avgrid:not(.cgrid) td:nth-child(3){width:20%;padding-left:4px}.avgrid:not(.cgrid) th:nth-child(4),.avgrid:not(.cgrid) td:nth-child(4){width:21%;padding-left:4px;padding-right:2px}
  .avgrid:not(.cgrid) td .seg{max-width:100%}.avgrid:not(.cgrid) td .seg button{padding:7px 4px!important;font-size:11px!important;letter-spacing:0}
  .avgrid:not(.cgrid) td .times{font-size:10.5px;padding:3px 7px;max-width:100%}
  .tally{font-size:11px}.tl{gap:3px}.tl b{min-width:1em}
}

/* extra practices: month list beside the grid on wide screens, sticky strip on phones, phone rows as cards */
.xwrap{display:block}
@media (min-width:641px){
  .xwrap{display:grid;grid-template-columns:132px minmax(0,1fr);gap:18px;align-items:start}
  .xside{position:sticky;top:84px}
  .xside .month-sel{display:flex;flex-direction:column;gap:6px;overflow:visible;padding:0;flex-wrap:nowrap}
  .xside .chip{text-align:left;width:100%}
  .xside .hs::before,.xside .hs::after,.xside .hs-btn{display:none}
}
@media (max-width:640px){
  .xside{position:sticky;top:64px;z-index:6;background:var(--card);margin:0 -16px;padding:6px 16px 4px;box-shadow:0 6px 12px -8px rgba(0,0,0,.25)}
  .xside .hs{--hsbg:var(--card)}
  .avgrid.fam thead{display:none}
  .avgrid.fam tr{display:block;padding:10px 0 8px;border-bottom:1px solid var(--line)}
  .avgrid.fam td{display:block;width:auto!important;border:0;padding:3px 0}
  .avgrid.fam td.dcol{font-size:16px;font-weight:650;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.avgrid.fam td.dcol .tagstack{margin:0}
  .avgrid.fam td[data-l]::before{content:attr(data-l);display:inline-block;min-width:74px;font-size:11px;font-weight:650;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);vertical-align:middle;margin-right:6px}
  .avgrid.fam td[data-l=""]::before{content:none}
  .avgrid.fam td[data-l="You"]{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px}
  .avgrid.fam td[data-l="You"] .seg button{padding:8px 12px!important;font-size:13px!important}
  .avgrid.fam td[data-l="You"] .times{display:inline-block;margin:0;max-width:none;font-size:12px}
  .avgrid.fam td[data-l="Team"]{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px}
  .avgrid.fam .tally{flex-direction:row;flex-wrap:wrap;gap:4px 12px;font-size:12.5px}
  .avgrid.fam td[data-l="Best time"]{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px}
  .avgrid.fam .bt{display:inline;font-size:14px}.avgrid.fam .bt-n{display:inline;font-size:12px}
  .avgrid.fam td:empty{display:none}
  .avgrid.fam tr.blocked td.dcol{color:var(--hol)}
}
html[data-theme="night"] .xside{background:#1a1b1f}
@media (max-width:640px){.xside{top:72px}.avgrid.fam .tally{gap:3px 8px;font-size:12px}.avgrid.fam td[data-l]::before{min-width:62px}}

/* desktop: a month menu that stands out, month headers in the list, sticky as you scroll */
@media (min-width:641px){
  .xwrap{grid-template-columns:150px minmax(0,1fr)}
  .xside{background:var(--card);border:1px solid var(--line-2);border-radius:var(--r12);padding:10px;box-shadow:0 4px 14px rgba(0,0,0,.06)}
  .xside-t{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:2px 0 8px}
  .xside .chip{padding:9px 12px;font-size:14px;border-color:var(--line)}
  .xside .chip.on{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:0 2px 8px rgba(94,21,39,.3)}
  tr.mhead td{padding:22px 4px 8px;font-size:17px;font-weight:700;color:var(--ink);border-bottom:2px solid var(--ink);background:var(--card);position:sticky;top:64px;z-index:2;scroll-margin-top:72px}
}
@media (max-width:640px){.xside-t{display:none}}
html[data-theme="night"] .xside{background:#24262b;border-color:#363a41}html[data-theme="night"] tr.mhead td{background:#24262b;color:#fff;border-bottom-color:#fff}

/* featured: best days right now */
.bestbox{background:var(--maroon-bg);border:1px solid #e6cdd5;border-radius:var(--r12);padding:12px 14px 6px;margin:10px 0 16px}
.bestbox h3{margin:0 0 2px;color:var(--ink);display:flex;align-items:center;gap:8px;font-size:17px}.bestbox .sub{margin:0 0 6px;font-size:13.5px}
.bestbox .best{list-style:none;margin:0;padding:0}.bestbox .best li{border-bottom:1px solid #e6cdd5;padding:8px 0}.bestbox .best li:last-child{border-bottom:0}
html[data-theme="night"] .bestbox{background:#3b1c26;border-color:#5a2a38}html[data-theme="night"] .bestbox h3{color:#fff}html[data-theme="night"] .bestbox .best li{border-bottom-color:#5a2a38}
/* best days panel: neutral, with a maroon edge instead of a pink tint */
.bestbox{background:var(--canvas);border:1px solid var(--line);border-left:4px solid var(--ink);border-radius:var(--r12)}
.bestbox .best li{border-bottom-color:var(--line)}
html[data-theme="night"] .bestbox{background:#1e2024;border-color:#363a41;border-left-color:#e39ab0}html[data-theme="night"] .bestbox .best li{border-bottom-color:#363a41}
/* month menu on desktop: charcoal */
@media (min-width:641px){
  .xside{background:#2f3136;border-color:#2f3136;box-shadow:0 6px 18px rgba(0,0,0,.18)}
  .xside-t{color:#b9bec7}
  .xside .chip{background:#3a3d44;color:#e6e8ec;border-color:#4a4e57}.xside .chip:hover{background:#474b54}
  .xside .chip.on{background:#fff;color:#1b1b1b;border-color:#fff;box-shadow:none;font-weight:700}
  html[data-theme="night"] .xside{background:#2f3136;border-color:#3b3f47}
}
/* month menu on desktop: light grey panel, maroon for the current month */
@media (min-width:641px){
  .xside{background:var(--canvas);border-color:var(--line);box-shadow:0 4px 14px rgba(0,0,0,.06)}
  .xside-t{color:var(--muted)}
  .xside .chip{background:var(--card);color:var(--ink);border-color:var(--line-2)}.xside .chip:hover{background:var(--maroon-bg)}
  .xside .chip.on{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:0 2px 8px rgba(94,21,39,.25);font-weight:700}
  html[data-theme="night"] .xside{background:#1e2024;border-color:#363a41}html[data-theme="night"] .xside .chip{background:#2c2f35;color:#fff;border-color:#434750}html[data-theme="night"] .xside .chip.on{background:#fff;color:#1b1b1b;border-color:#fff}
}

/* phone card: the player's own answer line (was labeled You) */
@media (max-width:640px){
  .avgrid.fam td.ucell{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px}
  .avgrid.fam td.ucell .seg button{padding:8px 12px!important;font-size:13px!important}
  .avgrid.fam td.ucell .times{display:inline-block;margin:0;max-width:none;font-size:12px}
  .avgrid.fam td.ucell[data-l=""]{display:block}
}
/* month strip scroll arrows: maroon with white arrows */
.hs-btn{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:0 2px 6px rgba(0,0,0,.25)}.hs-btn:hover{background:var(--ink-2)}
html[data-theme="night"] .hs-btn{background:#7a2438;border-color:#7a2438;color:#fff}

/* timeline axis: hour marks under the bars, 6am to 10pm */
.wv-axis{position:relative;height:13px;margin:3px 0 2px}
.wv-axis span{position:absolute;top:3px;transform:translateX(-50%);font-size:9.5px;line-height:1;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.wv-axis span::before{content:"";position:absolute;left:50%;top:-6px;width:1px;height:4px;background:var(--faint)}
.wv-axis span:first-child{transform:none}.wv-axis span:first-child::before{left:0}
.wv-bar{background-image:repeating-linear-gradient(90deg,transparent 0 calc(18.75% - 1px),rgba(0,0,0,.14) calc(18.75% - 1px) 18.75%)}
html[data-theme="night"] .wv-bar{background-image:repeating-linear-gradient(90deg,transparent 0 calc(18.75% - 1px),rgba(255,255,255,.18) calc(18.75% - 1px) 18.75%)}

/* extra practice fees */
.fee-mine{color:var(--ink)}
.avgrid.fees{table-layout:auto}.avgrid.fees td,.avgrid.fees th{white-space:normal;padding:8px 6px}.avgrid.fees td.dcol{width:auto;font-weight:600}
@media (max-width:640px){.avgrid.fees td,.avgrid.fees th{font-size:12px;padding:7px 4px}}

/* season costs (family page): summary lines, one block per tournament, per-day table that stacks on phones, $ amount inputs */
.cost-card{max-width:100%;overflow:hidden}.cost-card .ag-k{flex:0 0 118px}.cost-card .ag-v{overflow-wrap:anywhere}.cost-sum{margin:4px 0 10px}.cost-sum .ag-line{margin-top:5px}.cost-season{border-top:1px solid var(--line);padding-top:6px;margin-top:8px}.cost-season b{font-size:16px}
.cost-chk{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;margin-left:8px;min-height:44px;padding:0 6px;cursor:pointer;vertical-align:middle}.cost-chk input{width:20px;height:20px;margin:0}
.cost-ev>summary{gap:10px}.cost-sum-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.cost-sum-t small{margin:0;font-size:12px;font-weight:500;color:var(--muted)}.cost-sum-amt{font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink)}
.cost-ev-body{padding:4px 2px 8px}.cost-ev-body .form3.inner{margin:4px 0 8px}.cost-ev-body .ev-h{margin-top:12px}.cost-modes{margin:4px 0 8px}.cost-modebtn{min-height:44px;padding:10px 18px;font-size:14px}.cost-modebtn.on{background:var(--ink);color:#fff;border-color:var(--ink)}.cost-modebox small{display:block;margin:0 0 6px}
.cost-card input[type="number"],.cost-card input[type="text"],.cost-card select{width:100%;max-width:100%;font:inherit;font-size:16px;padding:10px 12px;min-height:44px;border-radius:var(--r8);border:1px solid var(--line-2);background:var(--card);color:var(--ink)}
.cost-amt{position:relative;display:block;width:100%}.cost-amt::before{content:"$";position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);font-weight:600;pointer-events:none}.cost-amt input{padding-left:26px!important}
.cost-withbtn{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.cost-withbtn .btn.sm{margin:0;min-height:44px}.cost-estnote{display:inline;margin:0;align-self:center}
.cost-days{table-layout:fixed;width:100%;margin-top:4px}.cost-days td,.cost-days th{padding:6px 4px;vertical-align:middle}.cost-days td.dcol{width:24%;font-size:13px}.cost-days th{white-space:normal;line-height:1.2}
.cost-other{display:flex;flex-direction:column;gap:8px;margin-top:4px}.cost-orow{display:grid;grid-template-columns:1fr 140px auto;gap:8px;align-items:center}.cost-rm{font:inherit;font-size:13px;font-weight:600;color:var(--no);background:none;border:0;cursor:pointer;padding:10px 6px;min-height:44px}
.cost-total{margin-top:12px;border-top:1px solid var(--line);padding-top:8px}.cost-total b{font-size:15px}.cost-export{margin-top:14px;align-items:center}.cost-export small{display:inline;margin:0}
@media (max-width:640px){
  .cost-card .ag-k{flex-basis:104px;font-size:12.5px}.cost-withbtn{grid-template-columns:1fr}.cost-withbtn .btn.sm{width:100%}
  .cost-days thead{display:none}.cost-days tr{display:block;border-bottom:1px solid var(--line);padding:8px 0}.cost-days td{display:block;width:auto!important;border:0;padding:4px 0}.cost-days td.dcol{font-size:15px;font-weight:650;padding-bottom:2px}
  .cost-days td[data-l]{display:grid;grid-template-columns:1fr 150px;align-items:center;gap:8px}.cost-days td[data-l]::before{content:attr(data-l);font-size:12px;font-weight:600;color:var(--muted)}
  .cost-orow{grid-template-columns:1fr auto}.cost-orow input[data-onote]{grid-column:1/-1}.cost-export{flex-direction:column;align-items:stretch}
}
html[data-theme="night"] .cost-card input[type="number"],html[data-theme="night"] .cost-card input[type="text"],html[data-theme="night"] .cost-card select{background:#121316;color:#fff;border-color:var(--line-2)}
html[data-theme="night"] .cost-modebtn.on{background:#8a2440;border-color:#8a2440;color:#fff}html[data-theme="night"] .cost-sum-amt,html[data-theme="night"] .cost-sum-t{color:#fff}html[data-theme="night"] .cost-sum-t small{color:var(--muted)}html[data-theme="night"] .cost-rm{color:#f6b0ad}html[data-theme="night"] .cost-season,html[data-theme="night"] .cost-total,html[data-theme="night"] .cost-days tr{border-color:var(--line)}
@media (min-width:641px){.avgrid.cost-days th:nth-child(1),.avgrid.cost-days td.dcol{width:22%}.avgrid.cost-days th:nth-child(2),.avgrid.cost-days td:nth-child(2),.avgrid.cost-days th:nth-child(3),.avgrid.cost-days td:nth-child(3),.avgrid.cost-days th:nth-child(4),.avgrid.cost-days td:nth-child(4){width:26%;padding-left:4px}}

.bt-fee{color:var(--ink);font-weight:600}

/* extra practices rows on wide screens: everything on one tidy line per cell */
@media (min-width:641px){
  .avgrid.fam th:nth-child(1),.avgrid.fam td.dcol{width:27%}.avgrid.fam th:nth-child(2),.avgrid.fam td:nth-child(2){width:31%}.avgrid.fam th:nth-child(3),.avgrid.fam td:nth-child(3){width:19%}.avgrid.fam th:nth-child(4),.avgrid.fam td:nth-child(4){width:23%;padding-left:14px}
  .avgrid.fam td{vertical-align:middle;padding:14px 8px;border-bottom:1px solid var(--line)}
  .avgrid.fam tbody tr:not(.mhead):hover td{background:var(--canvas)}
  .avgrid.fam td.dcol{font-size:15px}.avgrid.fam td.dcol .tagstack{margin-top:5px}
  .avgrid.fam .ucell-in{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .avgrid.fam .ucell-in .times{margin:0;display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:5px 10px}
  .avgrid.fam .ucell-in .times::before{content:"";width:12px;height:12px;flex:0 0 12px;background:no-repeat center/contain url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235e1527' stroke-width='2.4' stroke-linecap='round'><circle cx='12' cy='12' r='9'/><path d='M12 7v5l3 2'/></svg>")}
  .avgrid.fam .tally{gap:4px;font-size:13px}
  .avgrid.fam .bt{font-size:15px}.avgrid.fam .bt-n{font-size:12px}
  .avgrid.fam tr.blocked td{padding:10px 8px}.avgrid.fam tr.blocked .blocked-note{font-size:13px}
  .avgrid.fam .seg button{padding:8px 14px;font-size:13.5px}
}
html[data-theme="night"] .avgrid.fam tbody tr:not(.mhead):hover td{background:#2a2d33}
/* desktop: column headers stick under the top bar; month headers stick under them */
@media (min-width:641px){
  .avgrid.fam thead th{position:sticky;top:72px;z-index:4;background:var(--card);box-shadow:0 1px 0 var(--line);padding-top:10px;padding-bottom:10px}
  .avgrid.fam tr.mhead td{top:109px;z-index:3}
  html[data-theme="night"] .avgrid.fam thead th{background:#24262b;box-shadow:0 1px 0 #363a41}
}
@media (min-width:641px){.avgrid.fam tr.mhead td{top:107px}}
/* answer control: soft track, plain labels, solid colored choice */
.seg{display:inline-flex;background:#e9ebee;border:0!important;border-radius:10px;padding:3px;gap:2px;overflow:visible;box-shadow:none}
.seg button,.avgrid .seg button,.you-cell .seg button{font:inherit;font-weight:650;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;min-width:0;line-height:1.2;transition:background .12s,color .12s;box-shadow:none}
.seg button:hover{background:rgba(255,255,255,.7);color:var(--text)}
.seg button.y.on,.seg button.m.on,.seg button.n.on{color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.18)}
.seg button.y.on{background:var(--yes)}.seg button.m.on{background:var(--maybe)}.seg button.n.on{background:var(--no)}
@media (min-width:641px){.avgrid .seg button{padding:8px 16px;font-size:13.5px}}
html[data-theme="night"] .seg{background:#2c2f35}html[data-theme="night"] .seg button{background:transparent;color:#c9ccd3}html[data-theme="night"] .seg button:hover{background:#3a3d44;color:#fff}
html[data-theme="night"] .seg button.y.on{background:var(--yes);color:#fff}html[data-theme="night"] .seg button.m.on{background:var(--maybe);color:#fff}html[data-theme="night"] .seg button.n.on{background:var(--no);color:#fff}
/* sticky headers keep their rule lines (borders vanish on sticky cells, inset shadows do not) */
@media (min-width:641px){
  .avgrid.fam thead th{box-shadow:inset 0 -1px 0 var(--line)}
  .avgrid.fam tr.mhead td{border-bottom:0;box-shadow:inset 0 -2px 0 var(--ink)}
  html[data-theme="night"] .avgrid.fam thead th{box-shadow:inset 0 -1px 0 #363a41}html[data-theme="night"] .avgrid.fam tr.mhead td{box-shadow:inset 0 -2px 0 #fff}
}

/* captions in the grid */
.bt-k{display:block;font-size:10.5px;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
@media (max-width:640px){.avgrid.fam .bt-k{display:none}}
/* coach grid: sticky header row on desktop */
@media (min-width:641px){.avgrid.cgrid thead th{position:sticky;top:72px;z-index:4;background:var(--card);box-shadow:inset 0 -1px 0 var(--line);padding-top:10px;padding-bottom:10px}html[data-theme="night"] .avgrid.cgrid thead th{background:#24262b;box-shadow:inset 0 -1px 0 #363a41}}

/* coach grid gets the same desktop treatment: month headers stick under the column header */
@media (min-width:641px){
  .avgrid.cgrid tr.mhead td{padding:22px 4px 8px;font-size:17px;font-weight:700;color:var(--ink);background:var(--card);position:sticky;top:107px;z-index:3;scroll-margin-top:72px;border-bottom:0;box-shadow:inset 0 -2px 0 var(--ink)}
  html[data-theme="night"] .avgrid.cgrid tr.mhead td{background:#24262b;color:#fff;box-shadow:inset 0 -2px 0 #fff}
  #view-coach .xside{top:84px}
}

/* gym open: one label, one chip per window */
.open-wins{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px 6px;max-width:100%}
.open-lbl{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--green-t)}
.open-wins .kind.open{white-space:nowrap}
@media (max-width:640px){.open-lbl{font-size:10px}.tagstack .open-wins{width:100%}}

/* desktop: a wider page, the side column stacked and sticky, two-up sign-up cards */
@media (min-width:980px){
  main,.tabs.main,.hero-in,.band-in,.ubar-in{max-width:1320px}
  #view-home,#view-team,#view-schedule{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:20px}
  .main-stack{grid-column:1;display:flex;flex-direction:column;gap:20px;min-width:0}
  .side-stack{grid-column:2;display:flex;flex-direction:column;gap:20px;min-width:0;position:sticky;top:84px;align-self:start;max-height:calc(100vh - 96px);overflow-y:auto;scrollbar-width:thin;padding-bottom:2px}
  .main-stack>*,.side-stack>*{margin:0}
  .main-stack .ev-sec:has(> .xcard){display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}.main-stack .ev-sec:has(> .xcard)>.ev-h{grid-column:1/-1}.main-stack .ev-sec:has(> .xcard)>.xcard{margin:0}
}
@media (max-width:979px){.main-stack,.side-stack{display:contents}}

/* "New" pulse on home cards */
.new-dot{display:inline-flex;align-items:center;gap:6px;margin-left:10px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);background:var(--maroon-bg);border-radius:999px;padding:3px 9px;vertical-align:middle}
.new-dot i{width:8px;height:8px;border-radius:50%;background:var(--ink);animation:vb-pulse 1.4s ease-in-out infinite}
@keyframes vb-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.6);opacity:.4}}
html[data-theme="night"] .new-dot{background:#3b1c26;color:#f5a8c8}html[data-theme="night"] .new-dot i{background:#f5a8c8}
.club-banner{margin:0 0 10px}.club-banner .btn{margin-left:6px;vertical-align:middle}

/* tryouts: maroon tint, same shape as the other kinds */
.kind.tryout{background:#f6e3e8;color:#7a1f3a}.cal-ev.tryout{background:#f6e3e8;color:#7a1f3a}
@media (max-width:640px){.cal-cell .cal-ev.tryout{background:#8a2440}}
html[data-theme="night"] .kind.tryout,html[data-theme="night"] .cal-ev.tryout{background:#4a1f2e;color:#ffb8c8}

/* desktop side column: visible scrollbar and a pinned page-down button */
@media (min-width:980px){
  .side-stack{scrollbar-width:auto;scrollbar-color:#b58d99 transparent;padding-right:4px}
  .side-stack::-webkit-scrollbar{width:11px}.side-stack::-webkit-scrollbar-track{background:transparent}.side-stack::-webkit-scrollbar-thumb{background:#b58d99;border-radius:8px;border:2px solid var(--canvas)}.side-stack::-webkit-scrollbar-thumb:hover{background:#7a2438}
  .side-more{position:sticky;bottom:0;z-index:3;margin:-28px 0 0;padding:30px 0 6px;border:0;background:linear-gradient(to bottom,rgba(243,244,246,0),var(--canvas) 60%);cursor:pointer;font:inherit;display:flex;justify-content:center;align-self:stretch}
  .side-more[hidden]{display:none}
  .side-more>b{display:inline-flex;align-items:center;gap:7px;background:#7a2438;color:#fff;font-weight:650;font-size:13.5px;border-radius:999px;padding:9px 16px;box-shadow:0 3px 10px rgba(0,0,0,.22);transition:transform .12s,background .12s}
  .side-more:hover>b{background:#5e1527;transform:translateY(-1px)}.side-more.top svg{transform:rotate(180deg)}
  html[data-theme="night"] .side-more{background:linear-gradient(to bottom,rgba(20,21,24,0),var(--canvas) 60%)}html[data-theme="night"] .side-more>b{background:#8a2440}html[data-theme="night"] .side-stack{scrollbar-color:#8a2440 transparent}html[data-theme="night"] .side-stack::-webkit-scrollbar-thumb{background:#8a2440;border-color:var(--canvas)}
}

/* desktop side column: Jump to rail and Coming up date chips */
@media (min-width:980px){
  .side-jump{position:sticky;top:0;z-index:4;background:var(--canvas);display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:2px 0 10px;margin:0 0 -10px;box-shadow:0 10px 10px -8px var(--canvas)}
  .side-jump .sj-l{font-size:11.5px;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-right:2px}
  .side-jump .chip,.up-dates .chip{font:inherit;font-size:13px;font-weight:650;padding:6px 12px;border-radius:999px;border:1px solid var(--line-2);background:#ebedf0;color:var(--text);cursor:pointer;line-height:1.1}
  .side-jump .chip:hover,.up-dates .chip:hover{border-color:#7a2438;color:#7a2438}
  .side-jump .chip.on{background:#7a2438;border-color:#7a2438;color:#fff}
  .up-dates{display:flex;flex-wrap:wrap;gap:6px;padding:0 0 4px;margin:-2px 0 8px}.up-dates .chip{font-size:12.5px;padding:5px 10px;background:var(--card);border-color:#c9a9b2;color:#7a2438}.up-dates .chip:hover{background:#f6e3e8}
  html[data-theme="night"] .side-jump .chip,html[data-theme="night"] .up-dates .chip{background:#2a2d33;border-color:#434750;color:#ededf0}html[data-theme="night"] .side-jump .chip.on{background:#8a2440;border-color:#8a2440;color:#fff}html[data-theme="night"] .up-dates .chip{color:#ffb8c8;border-color:#5a2a3a}html[data-theme="night"] .up-dates .chip:hover{background:#4a1f2e}
}
@media (max-width:979px){.side-jump,.up-dates{display:none}}

/* "Welcome, <parent>" beside the account icon */
.hello{color:#fff;font-size:14.5px;line-height:1.25;text-align:right;margin-right:4px;min-width:0}.hello[hidden]{display:none}.hello b{font-weight:650}.hello-w{opacity:.85}
@media (max-width:640px){.hello{font-size:13px;line-height:1.2;max-width:46vw}.hello-w{display:block;font-size:11px;letter-spacing:.02em}}
.unav{align-items:center}

/* Log in button (signed out) and a caret on the account icon so it reads as a menu */
.login-btn{display:inline-flex;align-items:center;gap:7px;height:44px;padding:0 16px;border-radius:12px;background:#fff;color:#5e1527;font-weight:650;font-size:14.5px;text-decoration:none;white-space:nowrap;border:1px solid #fff}.login-btn[hidden]{display:none}.login-btn:hover{background:#f6e3e8}
.acct-btn{width:auto;min-width:44px;padding:0 9px;gap:3px}.acct-caret{opacity:.85}
@media (max-width:640px){.login-btn{height:40px;padding:0 12px;font-size:13.5px;border-radius:10px}}

/* Home alert for mandatory meetings */
.banner.must{display:flex;gap:14px;align-items:flex-start;background:#f9ecef;border:1px solid #d9b3bd;border-left:5px solid #7a2438;padding:14px 16px;font-size:15px}
.must-i{flex:0 0 40px;height:40px;border-radius:50%;background:#7a2438;color:#fff;display:inline-flex;align-items:center;justify-content:center}
.must-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.must-t>b{font-size:16.5px;font-weight:700;color:#5e1527}.must-n ul{margin:4px 0 0;padding-left:18px}.must-n li{margin:1px 0}.must-w{font-weight:650;color:#7a2438;font-size:13.5px;margin-top:2px}
.must-b{display:flex;flex-direction:column;gap:8px;flex:0 0 auto}.must-b .btn{white-space:nowrap;text-align:center}
@media (max-width:640px){.banner.must{flex-wrap:wrap}.must-t{flex-basis:calc(100% - 54px)}.must-b{flex-direction:row;flex-wrap:wrap;flex-basis:100%}.must-b .btn{flex:1 1 auto}}
html[data-theme="bold"] .banner.must{border-left:5px solid #7a2438}
html[data-theme="night"] .banner.must{background:#33202a;border-color:#5a2a3a;border-left-color:#c2476a;color:#f3e9ec}html[data-theme="night"] .must-t>b{color:#fff}html[data-theme="night"] .must-w{color:#ffb8c8}html[data-theme="night"] .must-i{background:#8a2440}
#view-home>.banner.must{display:flex}
@media (min-width:641px){.must-b{align-self:center}}

/* mandatory items: solid maroon with a megaphone; regular meetings: blue */
.kind.must,.cal-ev.must{background:#7a2438;color:#fff;font-weight:650}.kind.meeting,.cal-ev.meeting{background:#dcebf7;color:#1d4f7a}
.cal-cell .cal-ev.must{box-shadow:0 1px 4px rgba(94,21,39,.35)}
@media (max-width:640px){.cal-cell .cal-ev.must{background:#7a2438;box-shadow:0 0 0 2px #e9b9c4}.cal-cell .cal-ev.meeting{background:#3b82c4}}
html[data-theme="night"] .kind.must,html[data-theme="night"] .cal-ev.must{background:#b23a5c;color:#fff}html[data-theme="night"] .kind.meeting,html[data-theme="night"] .cal-ev.meeting{background:#1f3a52;color:#b9dcff}
/* phones show icons only: mandatory is a filled maroon circle with a white megaphone so it stands out from the outline icons */
@media (max-width:640px){.cal-cell .cal-ev.must{background:#7a2438!important;color:#fff;border-radius:50%;padding:3px;box-shadow:none}.cal-cell .cal-ev.must .ci{width:14px;height:14px}html[data-theme="night"] .cal-cell .cal-ev.must{background:#b23a5c!important}}

/* roster tiles are buttons for coaches */
button.pl{font:inherit;color:inherit;cursor:pointer;width:100%;transition:border-color .12s,box-shadow .12s,transform .12s}button.pl:hover,button.pl:focus-visible{border-color:#7a2438;box-shadow:0 3px 10px rgba(94,21,39,.16);transform:translateY(-1px);outline:none}
button.pl b::after{content:" \203A";color:#7a2438;font-weight:700}
#pl-sheet .pl-acts{margin:14px 0 4px}#pl-sheet .pc-head{margin-top:2px}

/* back / forward arrows: in the header on desktop, a floating pill on phones */
.navhist{display:inline-flex;gap:6px;align-items:center}.navhist button{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:36px;min-width:36px;padding:0 8px;border-radius:10px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.1);color:#fff;font:inherit;font-size:13px;font-weight:650;cursor:pointer}
.navhist button:hover:not(:disabled){background:#fff;color:#5e1527}.navhist button:disabled{opacity:.35;cursor:default}.navhist.in-bar span{display:none}
.navhist.in-bar{margin:0 auto 0 14px}
.navhist.float{position:fixed;left:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:15;display:none}.navhist.float button{height:40px;min-width:40px;padding:0 12px;border-radius:999px;background:#7a2438;border-color:#7a2438;box-shadow:0 2px 8px rgba(0,0,0,.25)}.navhist.float button:disabled{display:none}
main:has(#view-family:not([hidden])) ~ .navhist.float{bottom:calc(74px + env(safe-area-inset-bottom))}
@media (max-width:640px){.navhist.in-bar{display:none}.navhist.float{display:inline-flex}.navhist.float.idle{display:none}}
body.menu-open .navhist.float{display:none}
/* coach bar while viewing a family */
.asbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:14px 0 0;padding:10px 14px;border-radius:12px;background:#5e1527;color:#fff}.asbar[hidden]{display:none}
.as-t{display:flex;flex-direction:column;line-height:1.2}.as-l{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.07em;opacity:.8}.as-t b{font-size:16px}
.as-ctl{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.as-step{font:inherit;font-size:13.5px;font-weight:650;height:38px;padding:0 12px;border-radius:10px;border:1px solid var(--line-2);background:var(--card);color:var(--text);cursor:pointer;white-space:nowrap}.as-step:hover{border-color:#7a2438;color:#7a2438}
.asbar .as-step{border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.12);color:#fff}.asbar .as-step:hover{background:#fff;color:#5e1527;border-color:#fff}
.asbar select{font:inherit;font-size:14px;font-weight:650;height:38px;padding:0 10px;border-radius:10px;border:1px solid #fff;background:#fff;color:#5e1527;max-width:100%}
.asbar .btn.sm.light{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}.asbar .btn.sm.light:hover{background:#fff;color:#5e1527}
.pl-step{display:flex;gap:8px;flex-wrap:wrap}
html[data-theme="night"] .asbar{background:#3b1c26}html[data-theme="night"] .navhist.float button{background:#8a2440;border-color:#8a2440}

/* toast: top of the screen, large, green with a check for confirmations */
.toast{top:calc(78px + env(safe-area-inset-top));bottom:auto;z-index:300;display:flex;align-items:center;gap:10px;width:max-content;max-width:calc(100% - 32px);background:#1f2329;color:#fff;padding:13px 20px;border-radius:14px;font-size:16px;font-weight:650;line-height:1.3;text-align:left;box-shadow:0 12px 32px rgba(0,0,0,.32);transform:translate(-50%,-14px);transition:opacity .18s,transform .22s cubic-bezier(.2,1.4,.4,1)}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast.ok{background:#1f7a3f;color:#fff}.toast.ok::before{content:"\2713";flex:0 0 26px;width:26px;height:26px;border-radius:50%;background:#fff;color:#1f7a3f;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:16px}
html[data-theme="night"] .toast{background:#fff;color:#1b1b1b}html[data-theme="night"] .toast.ok{background:#2a9150;color:#fff}
@media (max-width:640px){.toast{top:calc(70px + env(safe-area-inset-top));font-size:15.5px}}

/* off school detail in a day */
.offbox{margin:10px 0 4px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#f3f6f8}.offbox .pc-h{margin:0 0 6px;color:#34495a}
.offlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.offlist li{display:flex;flex-direction:column;gap:1px}.offlist b{font-size:15px;font-weight:650}.offlist span{font-size:13.5px;color:var(--muted)}
.kind.school{white-space:normal}
html[data-theme="night"] .offbox{background:#22252a;border-color:#3a3e46}html[data-theme="night"] .offbox .pc-h{color:#b9c6d1}

/* Home: Coming up as compact tap-to-open rows */
.uplist{list-style:none;margin:0;padding:0}.up{border-bottom:1px solid var(--line)}.up:last-child{border-bottom:0}
.up-row{display:flex;align-items:center;gap:12px;padding:10px 6px;cursor:pointer;border-radius:10px}.up-row:hover{background:var(--canvas)}.up-row:focus-visible{outline:2px solid #7a2438;outline-offset:1px}
.up .dtile{flex:0 0 48px;height:52px}.up .dtile b{font-size:20px}
.up-main{flex:1;min-width:0}.up-t{font-weight:650;font-size:16px;display:flex;gap:6px;align-items:center;flex-wrap:wrap;line-height:1.3}.up-s{font-size:14px;color:var(--muted);margin-top:2px;line-height:1.35}.up-soon{color:#7a2438;font-weight:650}
.up .seg.att{flex:0 0 auto}.up-chev{flex:0 0 auto;color:var(--muted);display:inline-flex;transition:transform .15s}.up.open .up-chev{transform:rotate(180deg)}
.up-detail{margin:0 6px 12px 66px;padding:8px 14px 12px;background:var(--canvas);border-radius:10px}.up-detail[hidden]{display:none}
.up-hint{font-size:12.5px;color:var(--muted);margin:8px 0 10px}
.up-dates .chip.go{background:#f6e3e8}
@media (max-width:640px){.up-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;column-gap:10px;row-gap:8px;padding:10px 2px}.up .dtile{height:50px}.up .seg.att{grid-column:2/4;grid-row:2;justify-self:start}.up-chev{grid-column:3;grid-row:1}.up-detail{margin:0 0 12px}}
html[data-theme="night"] .up-soon{color:#ffb8c8}
/* notes bullets inside a list item must stay plain bullets (the agenda row rules were leaking into them) */
.agenda .post-body li,.up-detail .post-body li,.must-n li{display:list-item;padding:0;border:0;margin:3px 0;background:none}
.ag-v.post-body ul,.ag-v.post-body ol{margin:0;padding-left:18px}.ag-v.post-body>p:first-child{margin-top:0}
/* Home side column on desktop scrolls with the page */
@media (min-width:980px){.side-stack.flow{position:static;max-height:none;overflow:visible;padding-right:0}}
/* the older .up rule (flex row) must not apply to Coming up rows */
.uplist>.up{display:block;padding:0;gap:0}
@media (min-width:641px){.up-detail{margin-left:66px}}
@media (max-width:640px){.up .seg.att button{min-height:38px;padding:6px 18px;font-size:14.5px}.up-row{row-gap:6px}}

/* Log out: primary button at the bottom of the account menu, and in the phone menu */
.acct-menu .acct-logout{display:block;width:auto;margin:8px 6px 6px;padding:12px 14px;border-radius:10px;background:#7a2438;color:#fff;font-weight:650;font-size:15px;text-align:center;border:0;cursor:pointer}.acct-menu .acct-logout:hover{background:#5e1527;color:#fff}.acct-menu .acct-logout[hidden]{display:none}
.tabs .tab-logout{display:none!important}
@media (max-width:900px){.tabs.main.open .tab.tab-logout:not([hidden]){display:block!important;margin:10px 12px 6px;padding:13px 14px;border-radius:12px;background:#7a2438;color:#fff;font-weight:650;text-align:center;border:0;width:calc(100% - 24px)}}
html[data-theme="night"] .acct-menu .acct-logout,html[data-theme="night"] .tabs.main.open .tab.tab-logout:not([hidden]){background:#8a2440;color:#fff}html[data-theme="night"] .acct-menu .acct-logout:hover{background:#a02d4d}

/* switching families: the bar highlights the new name for a moment (no popup; green is only for saves) */
.as-t b{border-radius:6px;padding:1px 6px;margin-left:-6px}
.asbar.flash .as-t b{animation:asflash 1.6s ease-out}
@keyframes asflash{0%{background:#fff;color:#5e1527}35%{background:#fff;color:#5e1527}100%{background:transparent;color:#fff}}
@media (prefers-reduced-motion:reduce){.asbar.flash .as-t b{animation:none}}

/* coach names are tappable for a signed-in coach */
button.pill{border:0;font-family:inherit;cursor:pointer}button.pill:hover{box-shadow:0 0 0 2px rgba(122,36,56,.35)}button.pill:focus-visible{outline:2px solid #7a2438;outline-offset:1px}

/* tags under a date wrap inside their column instead of running under the answer buttons */
.avgrid td.dcol{overflow-wrap:anywhere}.tagstack{min-width:0;max-width:100%}.tagstack .kind{white-space:normal;max-width:100%;border-radius:12px;line-height:1.35;display:inline-block;vertical-align:top}
.tagstack .open-wins{flex-wrap:wrap}

/* pills under a date on Extra practices open that day's details */
[data-xday]{cursor:pointer;transition:box-shadow .12s}[data-xday]:hover{box-shadow:0 0 0 2px rgba(122,36,56,.3)}[data-xday]:focus-visible{outline:2px solid #7a2438;outline-offset:2px}
.open-wins[data-xday]{border-radius:999px;padding:1px 3px 1px 0}
.xd-p{margin:4px 0 0;font-size:14px;color:var(--muted)}#day-sheet .offbox+.offbox{margin-top:10px}
