@import"https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500;700&display=swap";.toasts{position:fixed;bottom:var(--space-4);right:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);z-index:100;max-width:min(28rem,calc(100vw - 2rem))}.toast{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius);border-left:3px solid;background:var(--surface-raised);box-shadow:var(--shadow-lifted);font-size:var(--text-sm)}.toast-error{border-color:var(--danger)}.toast-info{border-color:var(--green)}.toast-close{margin-left:auto;padding:0 var(--space-1);border:none;background:none;color:var(--text-faint);font-size:var(--text-lg);line-height:1}.shell{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-3) var(--space-5);background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.brand{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text);text-decoration:none}.brand:hover{text-decoration:none}.brand-mark{height:26px;width:auto}.brand-name{font-family:var(--font-display);font-weight:700;letter-spacing:.04em}.nav{display:flex;align-items:center;gap:var(--space-1);flex:1;flex-wrap:wrap}.nav a{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--text-sm);font-weight:500}.nav a:hover{color:var(--text);background:var(--surface-raised);text-decoration:none}.nav a.active{color:var(--text);background:var(--surface-raised)}.topbar-end{display:flex;align-items:center;gap:var(--space-3);margin-left:auto}.content{flex:1;width:100%;max-width:82rem;margin:0 auto;padding:var(--space-5)}@media (max-width: 640px){.topbar{gap:var(--space-3);padding:var(--space-3);flex-wrap:wrap}.content{padding:var(--space-3)}}.nav-external:after{content:" ↗";font-size:.75em;vertical-align:super;opacity:.7}.nav-badge{display:inline-block;min-width:1.3em;margin-left:var(--space-2);padding:0 .35em;border-radius:var(--radius-pill);background:var(--attention);color:var(--bg);font-size:var(--text-xs);font-weight:700;text-align:center;vertical-align:middle}.checkin-pill{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-pill);font-size:var(--text-sm);color:var(--text-muted);text-decoration:none;white-space:nowrap}.checkin-pill:hover{color:var(--text)}.checkin-pill.is-in{border-color:var(--green);color:var(--green)}.nav-toggle{display:none;padding:var(--space-2) var(--space-3);font-size:var(--text-base);line-height:1}.nav-sheet{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4);background:var(--bg);overflow-y:auto}.nav-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.nav-sheet-identity{display:flex;align-items:center;gap:var(--space-3)}.nav-sheet-name{color:var(--text-muted);text-decoration:none}.nav-sheet-name:hover{color:var(--text)}.nav-sheet-close{padding:0;width:2.5rem;height:2.5rem;font-size:var(--text-lg);line-height:1;background:transparent;border:1px solid var(--border)}.nav-sheet-links{display:flex;flex-direction:column;gap:var(--space-2)}.nav-sheet-links a{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);font-size:var(--text-lg);color:var(--text);text-decoration:none;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.nav-sheet-links a.active{border-color:var(--green);color:var(--green)}@media (max-width: 1024px){.nav{display:none}.topbar{flex-wrap:nowrap;gap:var(--space-3)}.topbar-end{order:2;margin-left:auto}.nav-toggle{display:block;order:3}}@media (min-width: 761px){.nav-sheet-identity{display:none}}@media (max-width: 760px){.topbar-end button,.topbar-end a.small{display:none}.topbar-end .checkin-pill,.topbar-end .topbar-signin{display:inline-flex}}.rank-tag{display:inline-block;padding:1px var(--space-2);border:1px solid;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:600;line-height:1.4;letter-spacing:.02em;white-space:nowrap;background:color-mix(in srgb,currentColor 12%,transparent)}.court{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);min-height:11rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:inherit;text-decoration:none;transition:border-color .15s ease,background .15s ease}a.court:hover{border-color:var(--border-strong);background:var(--surface-raised);text-decoration:none}.court-live{border-left:3px solid var(--green)}.court-empty{border-left:3px solid var(--border)}.court-fresh{border-color:var(--attention);border-left-color:var(--attention);box-shadow:0 0 0 1px var(--attention-dim),var(--shadow)}.court-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.court-number{font-family:var(--font-display);font-size:var(--text-court);font-weight:700;line-height:.85;color:var(--text)}.court-timing{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}.court-clock{font-size:var(--text-lg);font-weight:500;color:var(--text-muted)}.court-started{font-size:var(--text-xs)}.court-idle{font-size:var(--text-sm);color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em}.court-teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-3);flex:1}.court-net{width:1px;align-self:stretch;background:repeating-linear-gradient(to bottom,var(--border-strong) 0 4px,transparent 4px 8px)}.team{display:flex;flex-direction:column;gap:var(--space-2)}.team-right{align-items:flex-end;text-align:right}.team-player{display:flex;flex-direction:column;gap:2px}.player-name{font-size:var(--text-player);font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.player-meta{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs)}.team-right .player-meta{flex-direction:row-reverse}.player-rating{color:var(--text-faint)}.court-waiting{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-faint);font-size:var(--text-sm)}@media (max-width: 640px){.court{min-height:0;padding:var(--space-3)}.court-number{font-size:var(--text-2xl)}.player-name{font-size:var(--text-base)}}.court-yours{border-color:var(--rank-expert);box-shadow:0 0 0 1px var(--rank-expert)}.team-player.is-me .player-name{color:var(--rank-expert);font-weight:800}.team-player.is-me .player-name:after{content:" ◄";font-size:.7em;vertical-align:middle}.team-right .team-player.is-me .player-name:after{content:none}.team-right .team-player.is-me .player-name:before{content:"► ";font-size:.7em;vertical-align:middle}.board{display:flex;flex-direction:column;gap:var(--space-5)}.board-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.board-head p{margin:var(--space-1) 0 0}.live{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap}.live-dot{width:7px;height:7px;border-radius:50%}.live-on{background:var(--green);box-shadow:0 0 0 3px var(--green-dim)}.live-off{background:var(--text-faint)}.courts{display:grid;grid-template-columns:repeat(auto-fill,minmax(23rem,1fr));gap:var(--space-4)}.waiting h2{display:flex;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-3)}.waiting-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}.waiting-player{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);font-size:var(--text-sm)}.waiting-name{font-weight:500}.waiting-stack{font-size:var(--text-xs)}.no-session{max-width:32rem;margin:var(--space-8) auto;text-align:center}.no-session h1{margin-bottom:var(--space-3)}@media (max-width: 640px){.courts{grid-template-columns:1fr;gap:var(--space-3)}}.join{max-width:40rem;margin:0 auto}.join-head h1,.join-head p{margin:0}.join-names{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.join-note{margin:0}.join-mismatch{margin:0;color:var(--danger)}.join-legend{display:flex;flex-direction:column;gap:var(--space-1)}.join-legend-title{margin:0;font-size:var(--text-lg)}.rank-pick{display:grid;grid-template-columns:7.5rem 1fr;align-items:center;gap:var(--space-1) var(--space-4);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface-raised);cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,background-color .12s ease}.rank-pick:hover{border-color:var(--pick)}.rank-pick-input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.rank-pick-name{font-weight:700;color:var(--pick)}.rank-pick-blurb{color:var(--text-muted);font-size:var(--text-sm)}.rank-picked{border-color:var(--pick);background:color-mix(in srgb,var(--pick) 12%,var(--surface-raised));box-shadow:inset 0 0 0 1px var(--pick),0 0 20px -6px var(--pick)}.rank-picked .rank-pick-blurb{color:var(--text)}.rank-pick:focus-within{outline:2px solid var(--pick);outline-offset:2px}@media (prefers-reduced-motion: reduce){.rank-pick{transition:none}}.join-submit{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.join-desk h2{margin:0 0 var(--space-2);font-size:var(--text-base)}.join-desk p{margin:0;color:var(--text-muted);font-size:var(--text-sm)}@media (max-width: 560px){.join-names{grid-template-columns:1fr}.rank-pick{grid-template-columns:1fr;border-radius:var(--radius)}}.join-optional{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3) var(--space-4)}@media (max-width: 560px){.join-optional{grid-template-columns:1fr}}.join-warn{color:var(--attention)}.join-waiver{max-height:16rem;overflow-y:auto;padding:var(--space-3);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm)}.join-waiver p{margin:0 0 var(--space-3)}.join-waiver p:last-child{margin-bottom:0}.join-agree{display:flex;align-items:flex-start;gap:var(--space-3);font-size:var(--text-sm);cursor:pointer}.join-agree input[type=checkbox]{appearance:none;-webkit-appearance:none;flex:none;width:1.15rem;height:1.15rem;margin:.1em 0 0;padding:0;border:1px solid var(--border-strong);border-radius:4px;background:var(--bg);cursor:pointer;display:grid;place-content:center;transition:background-color .12s ease,border-color .12s ease}.join-agree input[type=checkbox]:before{content:"";width:.6rem;height:.32rem;border-left:2px solid var(--bg);border-bottom:2px solid var(--bg);transform:rotate(-45deg) translate(1px,-1px);opacity:0;transition:opacity 90ms ease}.join-agree input[type=checkbox]:hover{border-color:var(--green)}.join-agree input[type=checkbox]:checked{background:var(--green);border-color:var(--green)}.join-agree input[type=checkbox]:checked:before{opacity:1}.join-agree input[type=checkbox]:focus-visible{outline:2px solid var(--green);outline-offset:2px}.join-waiver h3{margin:var(--space-3) 0 var(--space-1);font-size:var(--text-sm);color:var(--text)}.join-waiver section:first-of-type h3{margin-top:var(--space-2)}.join-waiver-notice{font-weight:600;color:var(--text);letter-spacing:.03em}.join-waiver-ack{margin:0;font-weight:600;letter-spacing:.03em;color:var(--text-muted)}.landing{display:flex;flex-direction:column;gap:var(--space-8);padding-block:var(--space-6)}.hero{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);max-width:44rem}.status{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:500;color:var(--text-muted);letter-spacing:.02em}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--text-faint)}.status-live{color:var(--text);border-color:var(--green)}.status-live .status-dot{background:var(--green);box-shadow:0 0 0 3px var(--green-dim)}.hero-title{font-family:var(--font-display);font-size:clamp(2.5rem,7vw,4.5rem);font-weight:700;line-height:1.02;letter-spacing:-.03em;margin:0}.hero-accent{color:var(--green)}.hero-lede{font-size:var(--text-lg);line-height:1.55;color:var(--text-muted);margin:0;max-width:34rem}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.cta{display:inline-block;padding:var(--space-3) var(--space-5);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;color:var(--text);transition:background .15s ease,border-color .15s ease}.cta:hover{background:var(--surface-raised);text-decoration:none}.cta-primary{background:var(--green);border-color:var(--green);color:#0d1a0e}.cta-primary:hover{background:var(--green-bright);border-color:var(--green-bright)}.explainers{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:var(--space-4)}.explainer{padding:var(--space-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.explainer h3{margin-bottom:var(--space-2);font-size:var(--text-base)}.explainer p{margin:0;font-size:var(--text-sm);line-height:1.6}.closing{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center}.closing p{margin:0;max-width:30rem}@media (max-width: 640px){.landing{gap:var(--space-6)}.closing{padding:var(--space-6) var(--space-4)}}.cta-outline{border-color:var(--green);color:var(--green)}.cta-outline:hover{background:var(--green-dim);border-color:var(--green-bright);color:var(--green-bright);box-shadow:0 0 0 3px var(--green-dim)}.ladder{max-width:44rem;margin:0 auto}.ladder-head h1,.ladder-head p{margin:0}.ladder-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);counter-reset:none}.ladder-row{display:grid;grid-template-columns:2.5rem minmax(0,1fr) auto 4rem 3.5rem;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-left:3px solid transparent;border-radius:var(--radius)}.ladder-place{font-weight:700;color:var(--text-muted);text-align:right}.podium-1 .ladder-place,.podium-2 .ladder-place,.podium-3 .ladder-place{font-size:var(--text-lg)}.podium-1 .ladder-place,.podium-1 .ladder-rating{color:var(--medal-gold)}.podium-2 .ladder-place,.podium-2 .ladder-rating{color:var(--medal-silver)}.podium-3 .ladder-place,.podium-3 .ladder-rating{color:var(--medal-bronze)}.podium-1{border-left-color:var(--medal-gold)}.podium-2{border-left-color:var(--medal-silver)}.podium-3{border-left-color:var(--medal-bronze)}.ladder-row.is-you{border-color:var(--green);background:var(--green-dim)}.ladder-row.is-you .ladder-name:after{content:" — you";color:var(--text-muted);font-size:var(--text-xs)}.ladder-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.ladder-record{text-align:right;font-size:var(--text-sm)}.ladder-rating{text-align:right;font-weight:700}.ladder-note{margin:0}.ladder-more{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}@media (max-width: 560px){.ladder-row{grid-template-columns:2rem minmax(0,1fr) auto 3rem}.ladder-record{display:none}}.ladder-search{max-width:22rem}.ladder-error{color:var(--danger)}.account{max-width:36rem;margin:0 auto}.account-head h1,.account-head p{margin:0}.account h2{margin:0;font-size:var(--text-base)}.account p{margin:0}.account-names{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.account-note{margin:0}.account-link{color:var(--green)}.account-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}.account-danger{border-color:var(--danger);margin-top:var(--space-6)}.account-danger h2{color:var(--danger)}@media (max-width: 560px){.account-names{grid-template-columns:1fr}}.membership h2{margin:0;font-size:var(--text-base)}.membership p{margin:0}.membership-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.membership-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--surface-raised);border:1px solid var(--border);border-left:3px solid var(--green);border-radius:var(--radius-sm);font-size:var(--text-sm)}.membership-what{display:flex;flex-direction:column;gap:2px;min-width:0}.membership-term{font-weight:600}.membership-year{margin-left:auto;white-space:nowrap}.membership-row.is-revoked{border-left-color:var(--border-strong);opacity:.65}.membership-row.is-revoked .membership-term{text-decoration:line-through}.membership-revoked-note{color:var(--text-muted)}.membership-remove{flex:none;padding:0;width:1.6rem;height:1.6rem;line-height:1;font-size:var(--text-base);border-radius:var(--radius-sm);background:transparent;border:1px solid transparent;color:var(--text-muted)}.membership-remove:hover,.membership-remove:focus-visible{color:var(--danger);border-color:var(--danger)}.membership-confirm{padding:var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-raised)}.membership-confirm.is-danger{border-color:var(--danger)}.membership-covers{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.membership-covers li{display:flex;justify-content:space-between;gap:var(--space-3);font-size:var(--text-sm)}.membership-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}.membership-actions button:first-child{border-color:var(--border-strong);font-weight:600}.membership-note{margin:0}.membership-history>summary{cursor:pointer;font-size:var(--text-sm);color:var(--text-muted);padding:var(--space-1) 0}.membership-history>summary:hover{color:var(--text)}.membership-history[open]>summary{margin-bottom:var(--space-2)}.membership-history .membership-row{border-left-color:var(--border)}.membership-status{padding:var(--space-3);border:1px solid var(--border);border-left:3px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-raised);font-size:var(--text-sm)}.membership-status.is-on{border-left-color:var(--green)}.membership-status.is-on strong{color:var(--green)}.membership-terms{list-style:none;margin:var(--space-2) 0 0;padding:0;display:flex;flex-direction:column;gap:2px}.membership-terms li{display:flex;justify-content:space-between;gap:var(--space-3);font-size:var(--text-sm)}.player-tabs{display:inline-flex;align-self:flex-start;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-raised)}.player-tab{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--text-muted);text-decoration:none;border:none}.player-tab+.player-tab{border-left:1px solid var(--border)}.player-tab:hover{color:var(--text)}.player-tab.active{background:var(--surface);color:var(--text);font-weight:600}.player-tab:focus-visible{outline:2px solid var(--green);outline-offset:-2px}.reset h2{margin:0;font-size:var(--text-base)}.reset p{margin:0}.reset-code{font-size:var(--text-xl);font-weight:700;padding:var(--space-3) var(--space-4);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius);-webkit-user-select:all;user-select:all;word-break:break-all}.reset-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}.profile-page{max-width:52rem;margin:0 auto}.profile-page .profile-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.profile-page .profile-head h1{margin:0}.profile-page .profile-who{display:flex;align-items:baseline;gap:var(--space-3);flex-wrap:wrap}.profile-page .profile-username{margin-top:calc(-1 * var(--space-3))}.profile-page .profile-rating{display:flex;align-items:center;gap:var(--space-3)}.profile-page .profile-rating .num{font-size:var(--text-xl);font-weight:600}.profile-page .profile-status{display:inline-flex;align-items:center;padding:2px var(--space-4);border:1px solid var(--border);border-radius:var(--radius-pill);font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap}.profile-page .profile-status.is-in{border-color:var(--green);color:var(--green)}.profile-page .profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3) var(--space-4)}@media (max-width: 560px){.profile-page .profile-grid{grid-template-columns:1fr}}.profile-page .profile-warn{color:var(--attention);margin:0}.profile-page .profile-waiver{border-color:var(--attention)}.search{display:flex;flex-direction:column;gap:var(--space-3)}.search-none{margin:0}.search-results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);max-height:26rem;overflow-y:auto}.search-hit{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.search-who{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.search-name{font-weight:600}.search-meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);font-size:var(--text-xs)}.search-state{color:var(--text-muted)}.search-actions{display:inline-flex;align-items:center;gap:var(--space-2)}.stacking{max-width:40rem;margin:0 auto}.stacking-head h1,.stacking-head p{margin:0}.stacking h2{margin:0;font-size:var(--text-base)}.stacking p{margin:0}.is-stacked{border-color:var(--green);box-shadow:inset 3px 0 0 var(--green)}.stacking-partner{font-size:var(--text-lg)}.stacking-count{display:inline-block;min-width:1.4em;padding:0 .35em;border-radius:var(--radius-pill);background:var(--attention);color:var(--bg);font-size:var(--text-xs);font-weight:700;text-align:center}.request-card{padding:var(--space-3);background:var(--surface-raised);border:1px solid var(--border);border-left:3px solid var(--attention);border-radius:var(--radius-sm)}.request-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.request-who{display:inline-flex;align-items:center;gap:var(--space-2)}.request-message{color:var(--text-muted);font-style:italic}.request-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}.levelling{padding:var(--space-2) var(--space-3);border-left:3px solid var(--attention);background:var(--attention-dim);border-radius:var(--radius-sm);color:var(--text)}.favourites{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.favourite-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm)}.favourite-row .levelling{grid-column:1 / -1}.favourite-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.favourite-state{white-space:nowrap}.star{padding:0 var(--space-2);border-color:transparent;background:none;color:var(--text-faint);font-size:var(--text-lg);line-height:1}.star:hover:not(:disabled){color:var(--rank-advanced);border-color:transparent}.star.is-starred{color:var(--rank-advanced)}.adjust h2{margin:0;font-size:var(--text-base)}.adjust p{margin:0}.adjust-fields{display:flex;align-items:flex-end;gap:var(--space-4);flex-wrap:wrap}.adjust-fields input{max-width:9rem}.adjust-delta{display:flex;flex-direction:column;gap:var(--space-1)}.adjust-amount{font-size:var(--text-lg);font-weight:700;color:var(--text-muted)}.adjust-amount.up{color:var(--green)}.adjust-amount.down{color:var(--danger)}.chart{margin:0;position:relative}.chart-svg{width:100%;height:auto;display:block;overflow:visible}.chart-grid{stroke:var(--chart-grid);stroke-width:1}.chart-band{stroke:var(--chart-grid);stroke-width:1;stroke-dasharray:3 4}.chart-band-label{fill:var(--text-faint);font-size:9px;font-family:var(--font-body);letter-spacing:.04em}.chart-axis{fill:var(--text-faint);font-size:10px;font-family:var(--font-data)}.chart-line{fill:none;stroke:var(--chart-line);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart-crosshair{stroke:var(--border-strong);stroke-width:1}.chart-focus{fill:var(--chart-line);stroke:var(--surface);stroke-width:2}.chart-admin-mark{fill:var(--chart-admin);stroke:var(--surface);stroke-width:2}.chart-placement-mark{fill:var(--surface);stroke:var(--chart-line);stroke-width:2}.chart-legend{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-2);font-size:var(--text-xs);color:var(--text-muted)}.legend-item{display:inline-flex;align-items:center;gap:var(--space-2)}.legend-line{width:14px;height:2px;background:var(--chart-line);border-radius:1px}.legend-diamond{width:8px;height:8px;background:var(--chart-admin);transform:rotate(45deg)}.legend-ring{width:9px;height:9px;border:2px solid var(--chart-line);border-radius:50%}.chart-tooltip{position:absolute;top:0;transform:translate(-50%);display:flex;align-items:baseline;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lifted);font-size:var(--text-xs);white-space:nowrap;pointer-events:none}.chart-tooltip strong{font-size:var(--text-base)}.chart-delta.up{color:var(--chart-line)}.chart-delta.down{color:var(--danger)}.chart-tip-label{color:var(--text-muted)}.chart-tip-reason{max-width:14rem;overflow:hidden;text-overflow:ellipsis}.profile{max-width:62rem}.profile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.profile-head p{margin:var(--space-1) 0 0}.profile-rating{display:flex;align-items:center;gap:var(--space-3)}.profile-number{font-size:var(--text-2xl);font-weight:700;line-height:1}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:var(--space-3)}.tile{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.tile-value{font-size:var(--text-xl);font-weight:700;line-height:1.1}.tile-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.streak-up{color:var(--chart-line)}.streak-down{color:var(--danger)}.games{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.game-row{display:grid;grid-template-columns:3.5rem 3.5rem 5.5rem 1fr auto auto;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--surface-raised);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-sm)}.game-won{border-left-color:var(--chart-line)}.game-lost{border-left-color:var(--danger)}.game-result{font-weight:600;font-size:var(--text-xs)}.game-result.won{color:var(--chart-line)}.game-result.lost{color:var(--danger)}.game-score{font-weight:600}.game-matchup{display:flex;align-items:baseline;gap:var(--space-1);font-size:var(--text-xs);color:var(--text-muted)}.game-matchup.is-underdog{color:var(--attention)}.game-matchup-gap{opacity:.7}.game-people{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-delta.up{color:var(--chart-line)}.game-delta.down{color:var(--danger)}.game-when{font-size:var(--text-xs)}.h2h{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:var(--space-5)}.h2h h3{font-size:var(--text-sm);font-weight:600}.h2h-list{list-style:none;margin:0;padding:0;max-width:26rem;display:flex;flex-direction:column;gap:var(--space-2)}.h2h-legend{margin:0;text-align:right;padding-right:.25rem}.h2h-row{display:grid;grid-template-columns:minmax(6rem,1fr) 5rem 2.5rem 2rem;align-items:center;gap:var(--space-2);font-size:var(--text-sm)}.h2h-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.h2h-bar{height:6px;background:var(--panel);border-radius:var(--radius-pill);overflow:hidden}.h2h-fill{display:block;height:100%;background:var(--chart-line);border-radius:var(--radius-pill)}.h2h-rate{text-align:right}.h2h-count{text-align:right;font-size:var(--text-xs)}@media (max-width: 640px){.game-row{grid-template-columns:3rem 3rem 1fr;row-gap:var(--space-1)}.game-matchup.is-even{display:none}.game-people{grid-column:1 / -1;white-space:normal}}.game-row.is-clickable{cursor:pointer}.game-row.is-clickable:hover{border-color:var(--border-strong)}.game-row.is-clickable:focus-visible{outline:2px solid var(--green);outline-offset:2px}.gc-backdrop{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:#0009}.gc{width:min(34rem,100%);max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius)}.gc:focus{outline:none}.gc-head{display:flex;align-items:center;gap:var(--space-3)}.gc-headline{display:flex;align-items:baseline;gap:var(--space-3)}.gc-verdict{font-weight:600}.gc-verdict.won{color:var(--chart-line)}.gc-verdict.lost{color:var(--danger)}.gc-score{font-size:var(--text-lg);font-weight:600}.gc-close{margin-left:auto;padding:0;width:1.75rem;height:1.75rem;line-height:1;background:transparent;border:1px solid transparent;color:var(--text-muted)}.gc-close:hover,.gc-close:focus-visible{color:var(--text);border-color:var(--border-strong)}.gc-teams{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.gc-team{padding:var(--space-3);background:var(--surface-raised);border:1px solid var(--border);border-top:2px solid var(--border);border-radius:var(--radius-sm)}.gc-team.is-winner{border-top-color:var(--chart-line)}.gc-team-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-2)}.gc-team-avg{font-weight:600}.gc-people{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-sm)}.gc-people li{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-2)}.gc-facts{display:flex;flex-wrap:wrap;gap:var(--space-4);margin:0}.gc-facts div{display:flex;flex-direction:column;gap:2px}.gc-facts dt{font-size:var(--text-xs);color:var(--text-faint)}.gc-facts dd{margin:0;font-size:var(--text-sm)}.gc-facts dd.up{color:var(--chart-line)}.gc-facts dd.down{color:var(--danger)}@media (max-width: 480px){.gc-teams{grid-template-columns:1fr}}.game-head{display:grid;grid-template-columns:3.5rem 3.5rem 5.5rem 1fr auto auto;gap:var(--space-3);padding:0 var(--space-3);border-left:3px solid transparent;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em}.game-head-right{text-align:right}@media (max-width: 640px){.game-head{display:none}}.h2h-pager{display:flex;align-items:center;gap:var(--space-3)}.h2h-pager button{padding:0 var(--space-3);line-height:1.8;min-width:2rem}.h2h-pager button:disabled{opacity:.4}.tonight{max-width:36rem;margin:0 auto}.tonight-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.tonight-head h1{margin:0}.tonight-head p{margin:var(--space-1) 0 0}.tonight-rating{display:flex;align-items:center;gap:var(--space-3)}.tonight-number{font-size:var(--text-xl);font-weight:700;line-height:1}.tonight-status{display:flex;flex-direction:column;gap:var(--space-3);align-items:flex-start;padding:var(--space-6) var(--space-5)}.tonight-status h2{margin:0;font-size:var(--text-lg)}.tonight-status p{margin:0}.tonight-status.is-in{border-color:var(--green);box-shadow:inset 3px 0 0 var(--green)}.tonight-court{font-size:var(--text-xl);color:var(--green-bright)}.tonight-action{font-size:var(--text-base);padding:var(--space-3) var(--space-6)}.tonight-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:var(--space-4)}.tonight-link{display:flex;flex-direction:column;gap:var(--space-1);text-decoration:none;color:inherit;transition:border-color .12s ease}.tonight-link:hover,.tonight-link:focus-visible{border-color:var(--border-strong)}@media (prefers-reduced-motion: reduce){.tonight-link{transition:none}}.tonight-alerts{margin:0}.tonight-alerts h2{margin:0;font-size:var(--text-base)}.tonight-alerts p{margin:0}.score-entry{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-5);max-width:42rem;margin-inline:auto;width:100%}.score-side{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);text-align:center}.score-names{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.score-name{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:600}.score-input{font-size:var(--text-2xl);font-weight:700;text-align:center;padding:var(--space-2);max-width:6rem}.score-versus{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.1em}.fill-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:var(--space-2)}@media (max-width: 640px){.score-entry{grid-template-columns:1fr;gap:var(--space-3)}.score-versus{display:none}}.score-input::-webkit-outer-spin-button,.score-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.score-input{-moz-appearance:textfield;appearance:textfield}.roster-page{max-width:46rem;margin:0 auto}.roster-head h1,.roster-head p{margin:0}.roster-filters{display:flex;gap:var(--space-2);flex-wrap:wrap}.roster-filter.is-active{border-color:var(--green);color:var(--green)}.roster-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.roster-entry{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-left:3px solid transparent;border-radius:var(--radius)}.roster-entry.is-in{border-left-color:var(--green);background:var(--green-dim)}.roster-who{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.roster-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-meta{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;font-size:var(--text-sm)}.roster-games{color:var(--text-muted)}.roster-court{color:var(--green-bright);font-weight:600}.gh{max-width:62rem;margin:0 auto}.gh-filters{display:flex;gap:var(--space-3);flex-wrap:wrap}.gh-search{flex:1 1 16rem}.gh-court-filter{width:6rem}.gh-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.gh-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);overflow:hidden}.gh-open{display:grid;grid-template-columns:5.5rem 2.5rem 1fr auto 1fr 2.5rem;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3);background:none;border:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.gh-open:hover{background:var(--surface-raised)}.gh-when{display:flex;flex-direction:column;line-height:1.25;font-size:var(--text-xs)}.gh-day{color:var(--text)}.gh-time{color:var(--text-faint)}.gh-court{font-weight:600;color:var(--green);text-align:center}.gh-side{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gh-side.is-right{text-align:right}.gh-score{font-weight:600;white-space:nowrap}.gh-length{font-size:var(--text-xs);text-align:right}.gh-row.is-voided{border-style:dashed}.gh-row.is-voided .gh-open{opacity:.55}.gh-row.is-voided .gh-side,.gh-row.is-voided .gh-score{text-decoration:line-through}.gh-row.is-voided .gh-court{color:var(--text-faint)}.gh-row.is-cancelled .gh-open{opacity:.5}.gh-cancelled{font-size:var(--text-xs);color:var(--text-faint);white-space:nowrap}.gh-note{margin:0;padding:0 var(--space-3) var(--space-3);font-size:var(--text-xs);color:var(--attention)}.gh-note.is-revised{color:var(--text-muted)}.gh-more{display:flex;justify-content:center}.gh-error{color:var(--danger)}.gh-backdrop{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:#0009}.gh-dialog{width:min(34rem,100%);max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius)}.gh-dialog-head{display:flex;align-items:baseline;gap:var(--space-3)}.gh-dialog-head h2{margin:0;font-size:var(--text-base);font-weight:600}.gh-close{margin-left:auto;padding:0 var(--space-2);background:none;border:none;color:var(--text-muted);font-size:var(--text-lg);cursor:pointer}.gh-close:hover{color:var(--text)}.gh-teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-3)}.gh-team{display:flex;flex-direction:column;gap:var(--space-1)}.gh-team.is-right{text-align:right}.gh-team a{color:var(--text);text-decoration:none}.gh-team a:hover{text-decoration:underline}.gh-score-edit{display:flex;align-items:center;gap:var(--space-3)}.gh-score-edit input{width:5rem;text-align:center;font-size:var(--text-lg)}@media (max-width: 720px){.gh-open{grid-template-columns:4.5rem 2.2rem 1fr auto}.gh-side.is-right,.gh-length{display:none}}.sgc-backdrop{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:#0009}.sgc{width:min(32rem,100%);max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius)}.sgc:focus{outline:none}.sgc-head{display:flex;align-items:baseline;gap:var(--space-3)}.sgc-score{font-size:var(--text-xl);font-weight:600}.sgc-close{margin-left:auto;padding:0 var(--space-2);background:none;border:none;color:var(--text-muted);font-size:var(--text-lg);cursor:pointer}.sgc-close:hover{color:var(--text)}.sgc-teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-3)}.sgc-team{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm)}.sgc-team.is-winner{border-color:var(--green)}.sgc-player{display:flex;align-items:center;gap:var(--space-2);color:var(--text);text-decoration:none}.sgc-player:hover{text-decoration:underline}.sgc-player .num{margin-left:auto}.sgc-average{padding-top:var(--space-2);border-top:1px solid var(--border)}.sgc-gap{margin:0}.sgc-error{color:var(--danger);margin:0}@media (max-width: 520px){.sgc-teams{grid-template-columns:1fr}.sgc-versus{text-align:center}}.bgd-backdrop{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:#0009}.bgd{width:min(44rem,100%);max-height:85vh;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius)}.bgd:focus{outline:none}.bgd-head{display:flex;align-items:baseline;gap:var(--space-3)}.bgd-title{margin:0;font-size:var(--text-base);font-weight:600}.bgd-close{margin-left:auto;padding:0 var(--space-2);background:none;border:none;color:var(--text-muted);font-size:var(--text-lg);cursor:pointer}.bgd-close:hover{color:var(--text)}.bgd-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.bgd-row{display:grid;grid-template-columns:1fr auto 1fr auto;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font:inherit;text-align:left;cursor:pointer}.bgd-row:hover{border-color:var(--border-strong)}.bgd-side{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bgd-side.is-right{text-align:right}.bgd-score{font-weight:600}.bgd-meta{min-width:4rem;text-align:right}.bgd-error{color:var(--danger);margin:0}@media (max-width: 560px){.bgd-row{grid-template-columns:1fr auto}.bgd-side.is-right{text-align:left}.bgd-meta{display:none}}.hist{display:flex;flex-direction:column;gap:var(--space-1)}.hist-svg{width:100%;height:auto;display:block}.hist-bar{fill:var(--chart-line);fill-opacity:.65}.hist-bar.is-hover{fill-opacity:1}.hist-bar.is-tail{fill:var(--attention);fill-opacity:.8}.hist-bar.tone-good{fill:var(--chart-ramp-good)}.hist-bar.tone-fair{fill:var(--chart-ramp-fair)}.hist-bar.tone-mid{fill:var(--chart-ramp-mid)}.hist-bar.tone-warn{fill:var(--chart-ramp-warn)}.hist-bar.tone-bad{fill:var(--chart-ramp-bad)}.hist-bar.tone-void{fill:var(--chart-ramp-void)}.hist-hit{fill:transparent;cursor:pointer}.hist-grid{stroke:var(--chart-grid);stroke-width:1;stroke-dasharray:2 3}.hist-grid.is-axis{stroke-dasharray:none}.hist-ytick{fill:var(--text-faint);font-size:8px;text-anchor:end}.hist-tick{fill:var(--text-faint);font-size:9px;text-anchor:middle}.hist-tick.is-start{text-anchor:start}.hist-tick.is-end{text-anchor:end}.hist-foot,.hist-empty{margin:0;min-height:1.3em}.hist-open{padding:0;border:none;background:none;font:inherit;color:var(--text-muted);text-decoration:underline;cursor:pointer}.hist-open:hover{color:var(--text)}.history{max-width:56rem;margin:0 auto}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.history-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.history-card.is-live{border-color:var(--green)}.history-head{display:flex;align-items:baseline;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);background:transparent;border:none;text-align:left;cursor:pointer}.history-head:hover{background:var(--surface-raised)}.history-date{font-weight:600}.history-live{padding:1px var(--space-2);border:1px solid var(--green);border-radius:var(--radius-pill);font-size:var(--text-xs);color:var(--green);white-space:nowrap}.history-summary{margin-left:auto}.history-chevron{width:1rem;text-align:center;color:var(--text-muted)}.history-stats{display:grid;grid-template-columns:minmax(6rem,.55fr) 1fr 1fr;gap:var(--space-3) var(--space-5);margin:0;padding:0 var(--space-4) var(--space-4);align-items:start}.history-stat dt{font-size:var(--text-xs);color:var(--text-faint)}.history-stat dd{margin:0;font-size:var(--text-lg);font-weight:600}.history-stat dd.small{font-size:var(--text-xs);font-weight:400}.history-stat-chart{margin:var(--space-2) 0 0}.history-stat.warn dd:first-of-type{color:var(--attention)}.history-players{padding:0 var(--space-4) var(--space-4);border-top:1px solid var(--border);padding-top:var(--space-3)}.history-attendance{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:var(--space-2) var(--space-4);font-size:var(--text-sm)}.history-attendance li{display:flex;align-items:center;gap:var(--space-2)}.history-attendance li .num{margin-left:auto;white-space:nowrap}.history-court{padding:0 var(--space-2);border-radius:var(--radius-sm);background:var(--attention-dim);color:var(--attention);font-size:var(--text-xs)}@media (max-width: 640px){.history-stats{grid-template-columns:1fr}.history-summary{margin-left:0;width:100%}.history-head{flex-wrap:wrap}}:root{--bg: #161719;--surface: #1e2024;--surface-raised: #26282d;--panel: #2c2c2c;--border: #3a3f47;--border-strong: #4a505a;--text: #ffffff;--text-muted: #a0a0a0;--text-faint: #6e737b;--green: #4caf50;--green-bright: #00c853;--green-dim: rgba(76, 175, 80, .14);--danger: #f44336;--danger-dim: rgba(244, 67, 54, .15);--attention: #e8c07d;--attention-dim: rgba(232, 192, 125, .15);--chart-line: #199e70;--chart-admin: #c98500;--chart-grid: #2b2f36;--chart-ramp-good: #199e70;--chart-ramp-fair: #6f9a2e;--chart-ramp-mid: #9a9420;--chart-ramp-warn: #c07a1d;--chart-ramp-bad: #bd4f3c;--chart-ramp-void: #4a5058;--medal-gold: #e8b923;--medal-silver: #c4ccd4;--medal-bronze: #d98a44;--rank-beginner: #7d8590;--rank-novice: #58a6ff;--rank-intermediate: #3fb950;--rank-advanced: #d29922;--rank-expert: #bc8cff;--font-display: "Archivo", system-ui, sans-serif;--font-body: "Inter", system-ui, -apple-system, sans-serif;--font-data: "JetBrains Mono", "Courier New", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.25rem;--text-xl: 1.75rem;--text-2xl: 2.5rem;--text-court: 3.5rem;--text-player: 1.125rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem;--radius: 8px;--radius-sm: 5px;--radius-pill: 999px;--shadow: 0 2px 8px rgba(0, 0, 0, .35);--shadow-lifted: 0 6px 20px rgba(0, 0, 0, .45)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em;margin:0}h1{font-size:var(--text-xl)}h2{font-size:var(--text-lg)}h3{font-size:var(--text-base)}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}.num{font-family:var(--font-data);font-variant-numeric:tabular-nums}button{font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-raised);color:var(--text);cursor:pointer;transition:background .12s ease,border-color .12s ease}button:hover:not(:disabled){background:var(--panel);border-color:var(--border-strong)}button:disabled{background:var(--surface);border-color:var(--border);color:var(--text-faint);cursor:not-allowed}button.primary{background:var(--green);border-color:var(--green);color:#0d1a0e;font-weight:600}button.primary:hover:not(:disabled){background:var(--green-bright);border-color:var(--green-bright)}button.primary:disabled,button.danger:disabled{background:var(--surface);border-color:var(--border);color:var(--text-faint)}button.danger{background:transparent;border-color:var(--danger);color:var(--danger)}button.danger:hover:not(:disabled){background:var(--danger-dim)}input,select{font-family:var(--font-body);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);width:100%}input:focus,select:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:2px}input::placeholder{color:var(--text-faint)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4)}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.small{font-size:var(--text-sm)}.row{display:flex;align-items:center;gap:var(--space-3)}.spread{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.stack{display:flex;flex-direction:column;gap:var(--space-3)}.empty{color:var(--text-muted);text-align:center;padding:var(--space-8) var(--space-4)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.auth-form{max-width:24rem;margin:var(--space-8) auto}.outline-button{display:inline-block;padding:var(--space-2) var(--space-4);border:1px solid var(--green);border-radius:var(--radius-sm);background:transparent;color:var(--green);font-size:var(--text-sm);font-weight:600;line-height:1.4;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.outline-button:hover{background:var(--green-dim);border-color:var(--green-bright);color:var(--green-bright);box-shadow:0 0 0 3px var(--green-dim);text-decoration:none}.person-link{color:inherit;text-decoration:none}.person-link:hover,.person-link:focus-visible{color:var(--green);text-decoration:underline}.login-routes{list-style:none;margin:0;padding:0;line-height:1.4}.desk{display:grid;grid-template-columns:repeat(auto-fit,minmax(22rem,1fr));gap:var(--space-4);align-items:start}.roster{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);max-height:32rem;overflow-y:auto;padding-right:var(--space-1)}.roster-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm)}.roster-who{display:flex;flex-direction:column;gap:2px;min-width:0}.roster-name{font-weight:600}.roster-meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);font-size:var(--text-xs)}.stack-box{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.stack-slot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:3rem;padding:var(--space-2) var(--space-3);border:1px dashed var(--border-strong);border-radius:var(--radius-sm)}.stack-slot-filled{border-style:solid;border-color:var(--green);background:var(--green-dim)}@media (max-width: 640px){.stack-box{grid-template-columns:1fr}}.desk-action{align-self:flex-start}
