:root{color-scheme:dark;--bg:#07111f;--panel:#101d2d;--panel-hi:#15283e;--line:rgba(194,215,239,.12);--text:#f2f7ff;--muted:#91a1b6;--cyan:#60dcf2;--gold:#ffd36b;--green:#80e0b0;--radius:22px;font-family:system-ui,-apple-system,BlinkMacSystemFont,sans-serif}
*{box-sizing:border-box}html{scroll-padding-top:16px;-webkit-text-size-adjust:100%}body{margin:0;min-width:320px;min-height:100svh;overflow-x:hidden;background:radial-gradient(ellipse at 8% -20%,#12304b 0,transparent 46%),radial-gradient(ellipse at 100% 15%,#11233b 0,transparent 38%),var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}.app-shell{max-width:760px;min-height:100svh;margin:0 auto;padding:calc(env(safe-area-inset-top) + 12px) 22px calc(env(safe-area-inset-bottom) + 100px)}.topbar{height:54px;display:flex;align-items:center;justify-content:space-between;gap:10px}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand-icon{width:40px;height:40px;border-radius:13px;object-fit:cover}.brand h1{font-size:18px;margin:1px 0 0}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.7px;color:var(--muted);margin:0 0 7px}.brand .eyebrow{font-size:8px;margin:0;color:#87a2bf}.cloud-status{font-size:10px;color:#aebed0;display:flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid var(--line);border-radius:999px;background:#101d2d}.status-dot{width:7px;height:7px;background:var(--green);box-shadow:0 0 12px #80e0b080;border-radius:50%}.app-main{padding:20px 0 0}.screen[hidden]{display:none}.screen.is-active{animation:screen-in .2s ease-out}@keyframes screen-in{from{opacity:.65;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.intro-row{display:flex;align-items:flex-start;justify-content:space-between;margin:11px 3px 20px;gap:12px}.accent{color:var(--cyan)}h2,h3{font-family:inherit}h2{font-size:clamp(33px,8vw,47px);line-height:1.04;letter-spacing:-1.8px;margin:0}h2 span{color:var(--cyan)}h3{font-size:20px;margin:0;letter-spacing:-.4px}.month-chip{border:1px solid var(--line);border-radius:999px;padding:9px 11px;font-size:9px;font-weight:700;letter-spacing:.8px;color:#dbe6f4;white-space:nowrap}.chip-star{color:var(--gold);font-size:14px;margin-right:6px}.panel{background:linear-gradient(145deg,rgba(24,42,64,.94),rgba(12,24,39,.97));border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 44px #0000001f}.scoreboard{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;position:relative;padding:20px 22px 44px;overflow:hidden}.score-player{text-align:center}.player-mark{width:34px;height:34px;margin:0 auto 7px;border-radius:12px;display:grid;place-items:center;font-weight:700;font-size:14px}.sophie-mark{background:#1d8198;color:#d7fbff}.kate-mark{background:#6d4b97;color:#f2e8ff}.player-name{color:#bdcad8;font-weight:600;font-size:13px}.score-number{font-weight:750;font-size:42px;letter-spacing:-2px;line-height:1.1;margin-top:4px}.score-caption{font-size:9px;letter-spacing:1.8px;color:#7d91a8}.versus{display:flex;align-items:center;gap:9px;color:#7790aa;font-size:9px;font-weight:700}.versus span{width:17px;height:1px;background:#30445a}.score-ribbon{position:absolute;bottom:0;left:0;right:0;text-align:center;background:#0a1727;color:#aab8c7;font-size:10px;padding:10px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:26px 3px 12px;gap:10px}.section-heading .eyebrow{margin-bottom:5px}.button{border:0;border-radius:12px;padding:10px 14px;font-weight:700;font-size:13px;min-height:44px;transition:transform .15s ease,filter .15s ease}.button:hover,.activity-card:hover{transform:translateY(-2px);filter:brightness(1.12)}.button-quiet,.text-button{background:transparent;color:var(--cyan);border:1px solid #60dcf246}.button-outline{background:#162a40;color:var(--cyan);border:1px solid #60dcf246}.button-primary{background:var(--cyan);color:#07111f}.text-button{border:0;min-height:42px;padding:8px 2px;font-size:12px;font-weight:700}.text-button span{font-size:19px;vertical-align:-1px;margin-left:2px}.home-next-card{overflow:hidden}.home-next-button{width:100%;display:flex;align-items:center;gap:12px;text-align:left;border:0;background:transparent;color:inherit;padding:15px}.home-game-date{width:48px;height:48px;border-radius:15px;background:#192b40;display:grid;place-items:center;color:var(--cyan);font-weight:800;font-size:12px;flex:none}.home-game-copy{min-width:0;flex:1}.home-game-copy strong,.home-game-copy small{display:block}.home-game-copy strong{font-size:14px}.home-game-copy small{font-size:11px;color:var(--muted);line-height:1.4;margin-top:4px}.home-game-count{font-weight:800;color:var(--gold);white-space:nowrap}.home-chevron{font-size:22px;color:#8397ad}.home-empty{display:flex;align-items:center;gap:11px;padding:13px}.home-empty strong,.home-empty small{display:block}.home-empty small{font-size:11px;color:var(--muted);margin-top:4px}.home-empty div{flex:1}.quick-activities{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.quick-activity{min-height:52px;padding:9px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(145deg,#14263a,#0d1b2b);color:#dfeafa;font-size:12px;font-weight:700}.quick-activity span{color:var(--cyan);font-size:16px;margin-right:3px}.page-intro{margin:10px 3px 22px}.page-intro>p:last-child{font-size:13px;line-height:1.5;color:var(--muted);margin:10px 0 0}.game-section>.section-heading:first-child{margin-top:0}.next-game{min-height:125px;padding:17px}.empty-game{display:flex;align-items:center;gap:12px}.empty-puck{width:42px;height:42px;border:1px solid #60dcf242;border-radius:14px;color:var(--cyan);display:grid;place-items:center;font-size:15px;flex:none}.empty-game strong{font-weight:650;font-size:14px}.empty-game p{margin:4px 0 0;font-size:12px;color:var(--muted)}.empty-game .button{margin-left:auto;white-space:nowrap}.next-featured{display:flex;justify-content:space-between;align-items:center;padding:6px 4px;gap:12px}.next-kicker{color:var(--cyan);font-size:9px;font-weight:700;letter-spacing:1.7px}.next-featured h4{font-size:21px;margin:6px 0}.game-meta{color:#a1b0c0;font-size:11px;line-height:1.45}.countdown{text-align:right;color:var(--gold);font-size:22px;font-weight:800;white-space:nowrap}.countdown small{display:block;color:#8193a7;font-size:8px;letter-spacing:1.3px;margin-top:2px}.game-list{padding:0 12px}.game-row{display:flex;align-items:center;gap:10px;padding:12px 2px;border-top:1px solid var(--line)}.game-date-badge{width:43px;height:43px;border-radius:13px;background:#192b40;text-align:center;display:grid;align-content:center;flex:none}.game-date-badge b{font-size:15px}.game-date-badge span{font-size:9px;color:var(--muted);text-transform:uppercase}.game-row-info{min-width:0}.game-row-info strong{font-size:13px}.game-row-info small{display:block;color:var(--muted);font-size:10px;margin-top:3px;line-height:1.4}.game-row-right{margin-left:auto;color:var(--gold);font-size:11px;font-weight:700;white-space:nowrap}.past-games{margin:8px 12px 0;padding-top:12px;border-top:1px solid var(--line)}.past-heading{font-size:9px;letter-spacing:1.2px;font-weight:700;color:#8297ad;margin-bottom:5px}.past-card{padding:5px 0 10px;border-bottom:1px solid var(--line)}.past-row{display:flex;align-items:center;gap:9px;padding:9px 0}.past-row .game-row-info{flex:1}.review-link{border:0;background:transparent;color:var(--cyan);font-weight:700;font-size:11px;padding:8px}.final-score{display:block;color:var(--muted);font-size:10px;margin-top:5px}.final-score.recorded{color:var(--gold);font-weight:700}.result-link{white-space:nowrap}.player-review-actions{display:flex;flex-wrap:wrap;gap:6px;padding-left:50px}.player-review-link{border:1px solid var(--line);border-radius:10px;background:#122238;padding:8px 10px}.review-text{color:#9eb0c3;font-size:11px;line-height:1.5;margin:0 0 5px 49px;white-space:pre-wrap;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.one-star{font-size:10px;color:var(--gold);font-weight:700;white-space:nowrap}.activity-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.activity-card{min-height:112px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(145deg,#14263a,#0d1b2b);color:var(--text);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:15px;text-align:left;transition:transform .15s ease,filter .15s ease}.activity-card:last-child{grid-column:span 2;min-height:90px}.activity-icon{color:var(--cyan);font-size:24px;line-height:1;margin-bottom:9px}.activity-title{font-weight:650;font-size:13px}.activity-rule{font-size:11px;color:var(--muted);margin-top:5px}.activity-note{color:#8799ad;font-size:11px;line-height:1.5;margin-top:12px}.recent-section{margin-top:18px;padding:4px 17px 11px}.compact-heading{margin:17px 0 9px}.activity-total{color:var(--gold);font-size:11px;font-weight:700}.session-list{display:grid}.session-item{display:flex;align-items:center;gap:10px;padding:12px 1px;border-top:1px solid var(--line)}.session-star{font-size:16px;color:var(--gold)}.session-info{flex:1}.session-info strong{font-size:12px}.session-info small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.session-plus{color:var(--gold);font-size:12px;font-weight:700}.quiet-empty{color:var(--muted);font-size:12px;padding:5px 0}.progress-scoreboard{margin-bottom:18px}.tabbar{position:fixed;z-index:5;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,760px);padding:8px 10px calc(env(safe-area-inset-bottom) + 8px);display:grid;grid-template-columns:repeat(4,1fr);background:rgba(8,18,31,.94);border-top:1px solid var(--line);backdrop-filter:blur(18px)}.tab-button{min-height:54px;border:0;background:transparent;color:#8498ad;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:10px;font-weight:650}.tab-icon{font-size:21px;line-height:1.1}.tab-button.is-active{color:var(--cyan)}.modal{width:min(440px,calc(100% - 20px));max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 20px);overflow-y:auto;padding:22px 19px;border:1px solid #31465d;border-radius:22px;background:#101d2d;color:var(--text);box-shadow:0 24px 90px #0009}.modal::backdrop{background:#020711b9;backdrop-filter:blur(5px)}.modal form{display:flex;flex-direction:column;gap:13px}.modal-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4px}.modal-top h3{font-size:22px}.close-button{border:0;background:#ffffff0e;color:#c3d0df;border-radius:50%;width:44px;height:44px;font-size:22px}.modal label{display:flex;flex-direction:column;gap:7px;color:#c2cfdd;font-size:12px;font-weight:700}.modal input,.modal select,.modal textarea{width:100%;min-height:46px;padding:12px;border:1px solid #34495f;border-radius:11px;background:#0a1523;color:var(--text);outline:none;font-size:16px}.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:var(--cyan)}.modal textarea{resize:vertical;line-height:1.5;min-height:150px}.conditional-field{display:none!important}.conditional-field.visible{display:flex!important}.form-hint,.review-prompt{font-size:11px;color:#91a1b6;line-height:1.5;margin:0}.full-button{width:100%;min-height:48px;padding:13px;margin-top:3px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.score-inputs{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:9px}.score-inputs label{min-width:0}.score-separator{font-size:23px;color:var(--muted);padding-bottom:10px}.player-stats{grid-template-columns:1fr 1fr 1fr;gap:10px}.stat-points{display:flex;align-items:center;min-height:46px;padding:12px;border:1px solid #34495f;border-radius:11px;background:#0a1523;color:var(--gold);font-size:16px;font-weight:700}.toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 78px);transform:translate(-50%,20px);background:#d9fbff;color:#07111f;font-size:12px;font-weight:700;padding:12px 16px;border-radius:12px;box-shadow:0 8px 35px #0008;opacity:0;pointer-events:none;transition:all .2s;z-index:10}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:701px){.app-shell{padding-top:24px}.app-main{padding-top:30px}.intro-row{margin-bottom:24px}.home-next-button{padding:18px}.tabbar{border:1px solid var(--line);border-bottom:0;border-radius:18px 18px 0 0}}
@media(max-width:390px){.app-shell{padding-left:13px;padding-right:13px}.cloud-status{padding:7px 8px;max-width:46%;font-size:9px}.month-chip{font-size:8px;padding:8px}.scoreboard{padding-left:12px;padding-right:12px}.score-number{font-size:37px}.versus{gap:6px}.versus span{width:10px}.home-game-copy small{font-size:10px}.home-game-date{width:43px;height:43px}.home-game-count{font-size:12px}}
@media(hover:none){.button:hover,.activity-card:hover{transform:none;filter:none}button:active{filter:brightness(1.15)}}

.schedule-heading,.completed-heading{display:flex;align-items:center;justify-content:space-between;margin:24px 4px 11px;padding-top:4px}
.schedule-heading>div,.completed-heading>div{display:flex;align-items:center;gap:11px}
.schedule-heading h3,.completed-heading h3{font-size:16px;margin:0}
.schedule-heading p,.completed-heading p{font-size:11px;color:var(--muted);margin:3px 0 0}
.schedule-heading-icon{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;font-size:17px;font-weight:800}
.upcoming-icon{color:var(--cyan);background:#60dcf21a}.completed-icon{color:var(--gold);background:#ffd36b19}
.schedule-count{font-size:10px;font-weight:700;color:#a5b5c7;background:#142438;border:1px solid var(--line);border-radius:999px;padding:6px 9px;white-space:nowrap}
.completed-heading{margin-top:30px;padding-top:18px;border-top:1px solid var(--line)}
.past-games{margin:0;padding:7px 13px 4px;border:1px solid var(--line);border-radius:19px;background:linear-gradient(145deg,rgba(24,42,64,.58),rgba(12,24,39,.72))}
@media(max-width:390px){.schedule-heading,.completed-heading{margin-right:2px;margin-left:2px}.schedule-heading>div,.completed-heading>div{gap:8px}.schedule-count{font-size:9px;padding:6px 8px}}

.game-row-button{width:100%;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}
.game-row-button:focus-visible,.past-row:focus-visible,.next-featured-button:focus-visible,.home-next-button:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.game-row-button .game-row-info{flex:1}.past-row{cursor:pointer}.next-featured-button{cursor:pointer}.next-featured-button:hover{filter:brightness(1.13)}
.game-detail-modal{padding:20px;max-width:520px}.game-detail-content{display:flex;flex-direction:column;gap:0}.detail-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.detail-top h2{font-size:clamp(27px,7vw,34px);overflow-wrap:anywhere}.detail-subtitle{margin:9px 0 16px;color:var(--muted);font-size:12px;line-height:1.5}.detail-result{display:flex;align-items:center;justify-content:space-between;padding:15px 17px;margin-bottom:8px}.detail-result span{font-size:9px;font-weight:800;letter-spacing:1.3px;color:var(--muted)}.detail-result strong{font-size:24px;color:var(--gold)}.detail-section{padding:16px 0;border-bottom:1px solid var(--line)}.detail-section:last-child{border-bottom:0}.detail-section h3{font-size:15px}.detail-section>p{font-size:12px;line-height:1.5;color:#bdcad8;margin:7px 0 0}.detail-period{color:var(--muted)!important;font-size:11px!important}.map-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;margin-top:11px;min-height:42px}.training-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:11px}.training-summary-grid>div{padding:11px 8px;text-align:center;border:1px solid var(--line);border-radius:13px;background:#0d1b2b}.training-summary-grid strong,.training-summary-grid small{display:block}.training-summary-grid strong{font-size:20px;color:var(--cyan)}.training-summary-grid small{font-size:10px;color:var(--muted);margin-top:3px}.detail-activity-list{color:var(--gold)!important}.detail-muted{color:var(--muted)!important}.detail-review{padding:11px 0;border-top:1px solid var(--line)}.detail-review>div{display:flex;justify-content:space-between;align-items:center;gap:8px}.detail-review strong{font-size:12px}.detail-review span{font-size:10px;color:var(--gold);text-align:right}.detail-review p{font-size:12px;line-height:1.5;color:#bdcad8;white-space:pre-wrap;margin:7px 0 0}.detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.detail-actions .button{font-size:11px;padding:8px}.game-detail-footer{display:none}
@media(max-width:700px){.game-detail-modal{width:calc(100% - 18px);padding:18px 16px}.detail-top .close-button{margin-top:-3px}.detail-actions{grid-template-columns:1fr}.detail-actions .button{font-size:12px}.next-featured-button{flex-direction:row;align-items:center}.next-featured-button>div:first-child{flex:1}.next-featured-button .countdown{text-align:right}.next-featured-button .home-chevron{align-self:center}}

.rest-tracker{margin-top:13px;padding:15px 15px 12px;border-radius:19px;background:linear-gradient(140deg,rgba(18,38,57,.95),rgba(12,25,40,.97))}.rest-tracker-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.rest-tracker-heading .eyebrow{font-size:8px;margin-bottom:3px;color:#88a1b8}.rest-tracker-heading h3{font-size:15px}.rest-since-label{font-size:9px;color:var(--muted);text-align:right}.rest-player-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:11px}.rest-player{min-width:0;display:flex;align-items:center;gap:8px;padding:9px;border-radius:14px;background:#0916258c;border:1px solid #ffffff0a}.rest-avatar{display:grid;place-items:center;width:28px;height:28px;border-radius:10px;font-size:11px;font-weight:800;flex:none}.rest-player>div{min-width:0;flex:1}.rest-player strong,.rest-player small{display:block}.rest-player strong{font-size:11px}.rest-player small{font-size:9px;line-height:1.3;color:var(--muted);margin-top:3px}.rest-count{font-size:17px;color:var(--gold);white-space:nowrap}
@media(max-width:360px){.rest-player-grid{gap:6px}.rest-player{gap:6px;padding:8px}.rest-player small{font-size:8px}.rest-count{font-size:15px}}

/* Monthly challenge, shared pot, and challenge archive */
.tabbar{grid-template-columns:repeat(6,1fr);padding-right:6px;padding-left:6px}.tab-button{font-size:9px;gap:1px}.tab-icon{font-size:19px}.pot-balance-card{padding:24px 20px;text-align:center;background:radial-gradient(ellipse at 50% 0%,#183951,#102033 65%)}.pot-balance-card .eyebrow{color:var(--cyan);margin-bottom:8px}.pot-balance-card>strong{display:block;color:var(--gold);font-size:clamp(42px,12vw,58px);letter-spacing:-2px;line-height:1.1}.pot-balance-card>p:last-child{font-size:12px;color:var(--muted);margin:8px 0 0}.pot-rule-card{display:flex;align-items:flex-start;gap:12px;padding:15px;margin-top:12px}.pot-rule-star{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:#ffd36b1c;color:var(--gold);font-size:19px;flex:none}.pot-rule-card strong{font-size:13px}.pot-rule-card p{font-size:11px;line-height:1.5;color:var(--muted);margin:5px 0 0}.pot-entry-section{padding:4px 16px 16px;margin-top:15px}.pot-entry-section .section-heading{margin-top:16px}.pot-form{display:flex;flex-direction:column;gap:12px}.pot-form label{display:flex;flex-direction:column;gap:7px;color:#c2cfdd;font-size:11px;font-weight:700}.pot-form input,.pot-form select{width:100%;min-height:46px;padding:11px 12px;border:1px solid #34495f;border-radius:11px;background:#0a1523;color:var(--text);outline:none;font-size:16px}.pot-form input:focus,.pot-form select:focus{border-color:var(--cyan)}.pot-form-row{display:grid;grid-template-columns:.75fr 1.25fr;gap:9px}.pot-ledger-section .section-heading{margin-top:24px}.pot-ledger{padding:4px 14px}.pot-ledger-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.pot-ledger-row:last-child{border-bottom:0}.pot-ledger-icon{display:grid;place-items:center;width:31px;height:31px;border-radius:11px;font-size:18px;font-weight:800;flex:none}.pot-ledger-icon.added{background:#80e0b019;color:var(--green)}.pot-ledger-icon.spent{background:#ff8c8119;color:#ff9c91}.pot-ledger-copy{min-width:0;flex:1}.pot-ledger-copy strong,.pot-ledger-copy small{display:block}.pot-ledger-copy strong{font-size:11px;line-height:1.4}.pot-ledger-copy small{font-size:9px;color:var(--muted);margin-top:3px}.pot-ledger-amount{font-size:12px;white-space:nowrap}.pot-ledger-amount.added{color:var(--green)}.pot-ledger-amount.spent{color:#ff9c91}.challenge-history{display:grid;gap:12px}.challenge-card{padding:16px}.challenge-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.challenge-card-top .eyebrow{font-size:8px;margin-bottom:4px}.challenge-card-top h3{font-size:17px}.challenge-winner{color:var(--gold);background:#ffd36b19;padding:7px 9px;border-radius:999px;font-size:9px;font-weight:800;white-space:nowrap}.challenge-winner.tied{color:#b9c7d7;background:#b9c7d719}.challenge-scores{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;text-align:center;margin-top:18px;padding:15px 10px;border-radius:15px;background:#0916258c}.challenge-scores>div small{display:block;color:var(--muted);font-size:9px;letter-spacing:1px}.challenge-scores>div strong{display:block;font-size:26px;margin-top:4px}.challenge-scores>div strong span{font-size:13px;color:var(--gold)}.challenge-versus{font-size:9px;color:#7790aa;font-weight:800}.challenge-outcome{margin:12px 1px 0;color:#b9c7d7;font-size:11px;line-height:1.45}.archive-empty{padding:26px 18px;text-align:center}.archive-empty>span{display:block;color:var(--gold);font-size:28px}.archive-empty strong{display:block;font-size:14px;margin-top:8px}.archive-empty p{font-size:11px;line-height:1.5;color:var(--muted);margin:7px 0 0}
@media(max-width:400px){.tab-button{font-size:8px}.tab-icon{font-size:18px}.pot-form-row{grid-template-columns:1fr}.challenge-card{padding:14px}}

/* A brighter, softer rink-side look */
:root{color-scheme:light;--bg:#f4f8ff;--panel:#ffffff;--panel-hi:#f5f8ff;--line:rgba(56,83,126,.13);--text:#293750;--muted:#77849a;--cyan:#3187a8;--gold:#cc8d26;--green:#328b69;--radius:23px}
body{background:radial-gradient(ellipse at 4% 0%,#e2f5ff 0,transparent 39%),radial-gradient(ellipse at 100% 16%,#f9eaff 0,transparent 32%),linear-gradient(180deg,#f6f9ff 0%,#f1f6ff 100%);color:var(--text)}
h1,h2,h3,h4,.brand h1,.score-number,.countdown{font-family:ui-rounded,"SF Pro Rounded",system-ui,-apple-system,sans-serif}
h2{letter-spacing:-1.5px}h3{letter-spacing:-.2px}.eyebrow{color:#8b96aa}.brand .eyebrow{color:#8d9ab1}.brand h1{color:#2c3a53}.cloud-status{background:#fff;color:#708199;border-color:#e4ebf5;box-shadow:0 3px 12px #334b6a0a}.status-dot{background:#56b58d;box-shadow:0 0 10px #56b58d55}
.panel{background:linear-gradient(150deg,#fff,#fbfdff);border-color:#e3ebf5;box-shadow:0 8px 24px #334b6a0c}.scoreboard{background:linear-gradient(145deg,#fff 0%,#f3f9ff 54%,#fbf6ff 100%);border-color:#e1eaf5}.scoreboard::after{content:"✦";position:absolute;right:18px;top:12px;color:#efbf55;font-size:17px;opacity:.8}.score-ribbon{background:linear-gradient(90deg,#eff9ff,#f5f1ff);color:#667891;border-top:1px solid #e7edf7}.versus{color:#a0aabd}.versus span{background:#dbe4ef}.player-name{color:#52627a}.score-caption{color:#8c9aaf}.sophie-mark{background:#def4fa;color:#287f9d}.kate-mark{background:#eee4fa;color:#7654a1}
.month-chip{background:#fff;border-color:#e8e9f2;color:#66758d;box-shadow:0 4px 12px #334b6a0a}.chip-star{color:#e3a733}.accent,.next-kicker{color:#3187a8}.button-quiet,.text-button{color:#2e819f}.button-quiet{background:#f3fbff;border-color:#cfe8f2}.button-outline{background:#f2faff;color:#327f9a;border-color:#d5eaf1}.button-primary{background:linear-gradient(135deg,#70c5dc,#76b5d0);color:#153b4d;box-shadow:0 5px 14px #49a2bd2b}.button{border-radius:14px}.button:active,.activity-card:active,.quick-activity:active{filter:brightness(.98)}
.home-next-card{background:linear-gradient(135deg,#fff 52%,#f0faff)}.home-game-date,.game-date-badge{background:#e8f5fa;color:#347f99}.home-game-date{font-family:ui-rounded,system-ui,sans-serif}.home-game-copy strong,.game-row-info strong{color:#34435d}.home-game-copy small,.game-meta,.game-row-info small{color:#7b899e}.home-game-count,.game-row-right{color:#c78924}.home-chevron{color:#9aacc1}.quick-activity,.activity-card{background:linear-gradient(145deg,#fff,#f5f8ff);border-color:#e2eaf4;color:#3c4b63;box-shadow:0 5px 16px #334b6a09}.quick-activity{border-radius:17px}.quick-activity span{color:#5aaac3}.activity-icon{color:#58a9c2}.activity-card:nth-child(2) .activity-icon,.activity-card:nth-child(5) .activity-icon{color:#9a79bd}.activity-card:nth-child(3) .activity-icon{color:#e2a943}.activity-rule,.activity-note{color:#8491a5}
.rest-tracker{background:linear-gradient(135deg,#fff 15%,#f3faff 75%,#fbf5ff);border-color:#e3eaf5}.rest-player{background:#f8faff;border-color:#ebeff7}.rest-player strong{color:#4c5b73}.rest-player small{color:#8692a5}.rest-count{color:#c68b2d}.rest-tracker-heading .eyebrow{color:#7295aa}.rest-since-label{color:#8995a8}
.next-game{background:linear-gradient(130deg,#f2fbff,#fff);border-color:#dfedf4}.empty-puck{background:#eaf7fb;box-shadow:inset 0 0 12px #71c5d51c;border-color:#d3ebf1}.empty-game strong{color:#44536c}.countdown{color:#c98e2c}.countdown small{color:#91a0b3}.game-list{background:transparent}.game-row{border-color:#e4eaf2}.game-row-button:hover{background:#f7fbff}.past-games{background:linear-gradient(145deg,#fbfaff,#f7f8ff);border-color:#e8e6f2}.past-card{border-color:#e7eaf2}.review-link{color:#347f9a}.player-review-link{background:#f2f8fc;border-color:#e1eaf2}.review-text,.final-score{color:#7e8ba0}.final-score.recorded{color:#b98221}.schedule-heading-icon{background:#e9f6fa}.upcoming-icon{color:#3586a2}.completed-icon{background:#fff5dd;color:#c28a26}.schedule-count{background:#fff;border-color:#e3eaf3;color:#77869b}.completed-heading{border-color:#e1e8f1}
.page-intro>p:last-child{color:#77869b}.page-intro h2{color:#2f3e57}.tabbar{background:rgba(255,255,255,.92);border-color:#e4eaf3;box-shadow:0 -5px 22px #344b6a0a}.tab-button{color:#8a96a9}.tab-button.is-active{color:#2c829e}.tab-icon{font-family:ui-rounded,system-ui,sans-serif}.modal{background:#fff;color:#2c3b54;border-color:#e0e8f2;box-shadow:0 22px 70px #23395626}.modal::backdrop{background:#283b5680;backdrop-filter:blur(5px)}.modal label,.pot-form label{color:#57667d}.modal input,.modal select,.modal textarea,.pot-form input,.pot-form select{background:#f7f9fd;color:#2d3c54;border-color:#dbe4ef}.modal input:focus,.modal select:focus,.modal textarea:focus,.pot-form input:focus,.pot-form select:focus{border-color:#5eabc3}.modal-top h3{color:#30415b}.close-button{background:#f0f4f9;color:#718098}.form-hint,.review-prompt{color:#7d8ba0}.stat-points{background:#fff9eb;border-color:#f1e2bf;color:#bd8626}.toast{background:#2f809c;color:#fff}.detail-result{background:linear-gradient(135deg,#f0faff,#fff9e9);border-color:#e6edf3}.detail-result span,.detail-subtitle,.detail-period{color:#7d8ba0}.detail-section{border-color:#e7edf4}.detail-section>p,.detail-review p{color:#586780}.detail-muted{color:#8995a8!important}.detail-review{border-color:#e9edf3}.detail-review span{color:#bd8526}.training-summary-grid>div{background:#f6f9ff;border-color:#e5ecf5}.training-summary-grid strong{color:#358ba6}.detail-activity-list{color:#a6792e!important}.game-row-button:focus-visible,.past-row:focus-visible,.next-featured-button:focus-visible,.home-next-button:focus-visible{outline-color:#3289a6}.next-featured-button:hover{background:#f6fbff;border-radius:15px}
.pot-balance-card{background:radial-gradient(ellipse at 50% 0%,#fff7df 0%,#fff 75%);border-color:#f0e6cd}.pot-balance-card .eyebrow{color:#ad842f}.pot-balance-card>strong{color:#c18a28}.pot-balance-card>p:last-child{color:#7b8799}.pot-rule-card{background:#fffdf7}.pot-rule-star{background:#fff4d7;color:#d39a2c}.pot-rule-card p{color:#78869a}.pot-entry-section{background:#fff}.pot-ledger{background:#fff}.pot-ledger-row{border-color:#e9edf3}.pot-ledger-icon.added{background:#e9f7f0;color:#3c9b72}.pot-ledger-icon.spent{background:#fff0ed;color:#d77d6e}.pot-ledger-copy strong{color:#465670}.pot-ledger-copy small{color:#8995a8}.pot-ledger-amount.added{color:#348b68}.pot-ledger-amount.spent{color:#c96f62}.challenge-card{background:linear-gradient(145deg,#fff,#fafbff)}.challenge-scores{background:#f5f8fd}.challenge-scores>div small{color:#8794a7}.challenge-scores>div strong{color:#40516c}.challenge-scores>div strong span{color:#d4a038}.challenge-versus{color:#9aa7b9}.challenge-winner{background:#fff5dc;color:#ad7a22}.challenge-winner.tied{background:#eff2f6;color:#75839a}.challenge-outcome{color:#697890}.archive-empty{background:#fff}.archive-empty>span{color:#dfa937}.archive-empty p{color:#8390a4}.quiet-empty{color:#8390a4}
@media(max-width:700px){.app-shell{background:transparent}.scoreboard{box-shadow:0 8px 24px #334b6a0c}.rest-tracker{box-shadow:0 7px 19px #334b6a09}.home-next-card,.next-game,.pot-balance-card{box-shadow:0 8px 24px #334b6a0c}}

/* Keep the phone tab bar anchored to the visible screen edge. */
@media(max-width:700px){
  .tabbar{position:fixed!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;max-width:none!important;transform:none!important;margin:0!important;z-index:100;padding:8px 6px calc(env(safe-area-inset-bottom) + 8px);-webkit-backdrop-filter:blur(18px);}
  .app-shell{padding-bottom:calc(env(safe-area-inset-bottom) + 96px)}
}

@media(max-width:700px){
  .tabbar{top:var(--tabbar-visible-bottom,100dvh)!important;bottom:auto!important;transform:translateY(-100%)!important}
}

/* Pin the root-level navigation to the physical bottom safe area. */
@media(max-width:700px){
  .tabbar{position:fixed!important;top:auto!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;max-width:none!important;transform:none!important;margin:0!important;z-index:100;padding:8px 6px calc(env(safe-area-inset-bottom) + 8px);}
}

/* Use a fixed-height app frame: only the selected screen scrolls, while the
   tab bar occupies its own bottom safe-area slot. This avoids viewport and
   browser-toolbar changes moving the navigation on iPhone. */
@media(max-width:700px){
  html,body{height:100%;min-height:0;overflow:hidden}
  body{height:100vh;height:100dvh}
  .app-shell{position:relative;width:100%;max-width:760px;height:100vh;height:100dvh;min-height:0;margin:0 auto;display:flex;flex-direction:column;overflow:hidden;padding:calc(env(safe-area-inset-top) + 12px) 14px 0}
  .topbar{flex:0 0 auto}
  .app-main{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;padding-bottom:calc(100px + env(safe-area-inset-bottom))}
  .tabbar{position:fixed!important;top:auto!important;right:0!important;bottom:0!important;left:0!important;transform:none!important;width:100vw!important;max-width:none!important;margin:0!important;z-index:100;padding:8px 6px calc(env(safe-area-inset-bottom) + 8px);-webkit-backdrop-filter:blur(18px)}
}
