:root{--bg:#0f1419;--surface:#1a222c;--surface2:#232d3a;--border:#2f3d4d;--text:#e8eef4;--muted:#8b9bab;--accent:#3d9cf5;--accent-dim:#2a6fb0;--success:#3ecf8e;--danger:#f07178;--warn-bg:#2d2618;--warn-border:#6b5a2a;--radius:10px;--font:"Inter","Segoe UI",system-ui,-apple-system,sans-serif}*,:after,:before{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;background:radial-gradient(1200px 600px at 10% -10%,#1a2a3d 0,#0f1419 55%);background:radial-gradient(1200px 600px at 10% -10%,#1a2a3d 0,var(--bg) 55%);color:#e8eef4;color:var(--text);font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-family:var(--font);margin:0;min-height:100vh}a{color:#3d9cf5;color:var(--accent)}code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.9em}.shell{display:flex;flex-direction:column;min-height:100vh}.topbar{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f1419d9;border-bottom:1px solid #2f3d4d;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:1rem 1.5rem;position:sticky;top:0;z-index:10}.brand{color:#e8eef4;color:var(--text);font-weight:700;letter-spacing:-.02em;text-decoration:none}.main{flex:1 1;margin:0 auto;max-width:920px;padding:1.5rem 1.25rem 3rem;width:100%}.page-head h1{font-size:1.75rem;letter-spacing:-.03em;margin:0 0 .35rem}.page-head .muted{margin:0 0 1.25rem}.muted{color:#8b9bab;color:var(--muted)}.small{font-size:.875rem}.card{background:#1a222c;background:var(--surface);border:1px solid #2f3d4d;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius);margin-bottom:1.25rem;padding:1.25rem 1.35rem}.card h2{font-size:1.1rem;margin:0 0 .75rem}.success-card{background:linear-gradient(145deg,#15251f,#1a222c);background:linear-gradient(145deg,#15251f,var(--surface));border-color:#3ecf8e59}.banner{border-radius:10px;border-radius:var(--radius);font-size:.9rem;line-height:1.45;margin-bottom:1rem;padding:.85rem 1rem}.banner.warn{background:#2d2618;background:var(--warn-bg);border:1px solid #6b5a2a;border:1px solid var(--warn-border);color:#e8dcc8}.banner-inline{margin-bottom:1rem}.hint{color:#8b9bab;color:var(--muted);font-size:.875rem;line-height:1.45;margin:0 0 1rem}.error{color:#ffb4b8;margin:.5rem 0}.form{display:flex;flex-direction:column;gap:.85rem}.form.inline{align-items:center;flex-direction:row;flex-wrap:wrap;margin-top:1rem}.form.inline input{flex:1 1;min-width:180px}.field-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}@media (max-width:560px){.field-row{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:.35rem}.field span{color:#8b9bab;color:var(--muted);font-size:.8rem;letter-spacing:.04em;text-transform:uppercase}input[type=date],input[type=email],input[type=number],input[type=text],select{background:#232d3a;background:var(--surface2);border:1px solid #2f3d4d;border:1px solid var(--border);border-radius:8px;color:#e8eef4;color:var(--text);font:inherit;padding:.55rem .65rem}.home-grid{grid-gap:1rem;align-items:start;display:grid;gap:1rem;grid-template-columns:300px 1fr}@media (max-width:880px){.home-grid{grid-template-columns:1fr}}.sidebar h3{font-size:1rem;margin:.5rem 0}.main-column{min-width:0}.divider{background:#2f3d4d;background:var(--border);height:1px;margin:.75rem 0}.list-row.left{justify-content:flex-start}.night-block h3{margin-bottom:.3rem}input:focus{outline:2px solid #2a6fb0;outline:2px solid var(--accent-dim);outline-offset:1px}.btn{align-items:center;border:1px solid #0000;border-radius:8px;cursor:pointer;display:inline-flex;font:inherit;font-weight:600;gap:.35rem;justify-content:center;padding:.55rem 1rem;text-decoration:none}.btn:disabled{cursor:not-allowed;opacity:.5}.btn.primary{background:linear-gradient(180deg,#4fa8ff,#3d9cf5);background:linear-gradient(180deg,#4fa8ff,var(--accent));border-color:#6bb8ff;color:#0a0f14}.btn.secondary{background:#232d3a;background:var(--surface2);border-color:#2f3d4d;border-color:var(--border);color:#e8eef4;color:var(--text)}.btn.text{background:#0000;border:none;color:#8b9bab;color:var(--muted);padding:.35rem .5rem}.btn.text.danger{color:#f07178;color:var(--danger)}.btn.small{font-size:.85rem;padding:.35rem .65rem}.actions-row{margin-top:1rem}.link-block{display:block;padding:.5rem 0;word-break:break-all}.stack{display:flex;flex-direction:column;gap:.35rem}.label{color:#8b9bab;color:var(--muted);font-size:.75rem;letter-spacing:.06em;margin-top:.5rem;text-transform:uppercase}.tabs{display:flex;gap:.35rem;margin-bottom:1rem}.tab{background:#232d3a;background:var(--surface2);border:1px solid #2f3d4d;border:1px solid var(--border);border-radius:8px;color:#8b9bab;color:var(--muted);cursor:pointer;font:inherit;padding:.45rem .85rem}.tab.active{background:#1a222c;background:var(--surface);border-color:#2a6fb0;border-color:var(--accent-dim);color:#e8eef4;color:var(--text)}.list{list-style:none;margin:0;padding:0}.list-row{align-items:center;border-bottom:1px solid #2f3d4d;border-bottom:1px solid var(--border);display:flex;gap:.75rem;justify-content:space-between;padding:.55rem 0}.list-row:last-child{border-bottom:none}.check-list .list-row{border-bottom:none;padding:.35rem 0}.fieldset{border:1px solid #2f3d4d;border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem}.fieldset legend{color:#8b9bab;color:var(--muted);font-size:.85rem;padding:0 .35rem}.check{align-items:center;cursor:pointer;display:flex;gap:.5rem}.row-form{align-items:flex-end;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;font-size:.9rem;width:100%}.table td,.table th{border-bottom:1px solid #2f3d4d;border-bottom:1px solid var(--border);padding:.5rem .65rem;text-align:left}.table th{color:#8b9bab;color:var(--muted);font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.round-block{margin-top:1.25rem}.round-block h3{color:#8b9bab;color:var(--muted);font-size:1rem;margin:0 0 .65rem}.match-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.match-card{background:#232d3a;background:var(--surface2);border:1px solid #2f3d4d;border:1px solid var(--border);border-radius:8px;padding:.85rem}.court-label{color:#8b9bab;color:var(--muted);font-size:.7rem;letter-spacing:.08em;margin-bottom:.5rem;text-transform:uppercase}.teams{line-height:1.35;margin-bottom:.65rem}.vs{color:#8b9bab;color:var(--muted);font-size:.8rem;margin:.2rem 0}.score-row{align-items:center;display:flex;flex-wrap:wrap;gap:.35rem}.score-input{text-align:center;width:3.25rem}.dash{color:#8b9bab;color:var(--muted)}.match-card-head{align-items:center;display:flex;gap:.5rem;justify-content:space-between;margin-bottom:.5rem}.icon-btn{align-items:center;background:#0000;border:1px solid #2f3d4d;border:1px solid var(--border);border-radius:10px;color:#8b9bab;color:var(--muted);cursor:pointer;display:inline-flex;height:2rem;justify-content:center;padding:0;width:2rem}.icon-btn:hover:not(:disabled){border-color:#2a6fb0;border-color:var(--accent-dim);color:#3d9cf5;color:var(--accent)}.icon-btn:disabled{cursor:not-allowed;opacity:.5}.match-card--conflict{border-color:#f071788c;box-shadow:inset 0 0 0 1px #f071782e}.modal-backdrop{align-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a0f14a6;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:50}.modal{margin:0;max-width:520px;width:100%}.modal-head{align-items:center;display:flex;gap:.75rem;justify-content:space-between;margin-bottom:.5rem}.modal-head h2{margin:0}.season-card .season-card-lead{font-size:.875rem;line-height:1.5;margin:0 0 1rem}.season-card-empty{margin:0}.season-date-list{display:flex;flex-direction:column;gap:.5rem;list-style:none;margin:0;padding:0}.season-date-row{align-items:center;background:#232d3a;background:var(--surface2);border:1px solid #2f3d4d;border:1px solid var(--border);border-radius:10px;display:flex;gap:1rem;justify-content:space-between;padding:.7rem 1rem;transition:border-color .15s ease,background .15s ease}.season-date-row--complete{background:linear-gradient(120deg,#3ecf8e14,#232d3a 45%);background:linear-gradient(120deg,#3ecf8e14 0,var(--surface2) 45%);border-color:#3ecf8e66}.season-date-copy{display:flex;flex-direction:column;gap:.2rem;min-width:0}.season-date-weekday{color:#8b9bab;color:var(--muted);font-size:.72rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase}.season-date-primary{color:#e8eef4;color:var(--text);font-size:1.08rem;font-weight:650;letter-spacing:-.025em;line-height:1.2}.season-date-check{align-items:center;background:#3ecf8e2e;border:1px solid #3ecf8e59;border-radius:50%;color:#3ecf8e;color:var(--success);display:inline-flex;flex-shrink:0;font-size:1rem;font-weight:700;height:2rem;justify-content:center;line-height:1;width:2rem}.season-date-pending{border:1px dashed #2f3d4d;border:1px dashed var(--border);border-radius:50%;flex-shrink:0;height:2rem;opacity:.45;width:2rem}.matchups-recap-card .matchups-recap-lead{font-size:.875rem;line-height:1.5;margin:0 0 1.1rem}.recap-nights-stack{display:flex;flex-direction:column;gap:1.35rem}details.recap-night{background:#232d3a;background:var(--surface2);border:1px solid #2f3d4d;border:1px solid var(--border);border-radius:12px;overflow:hidden}.recap-night-summary{align-items:center;cursor:pointer;display:flex;gap:.75rem;justify-content:space-between;list-style:none;padding:.95rem 1.1rem;transition:background .14s ease;-webkit-user-select:none;user-select:none}.recap-night-summary::-webkit-details-marker{display:none}.recap-night-summary::marker{content:""}details.recap-night>.recap-night-summary{list-style:none}.recap-night-summary:hover{background:#ffffff0a}.recap-night-summary:focus{outline:none}.recap-night-summary:focus-visible{outline:2px solid #2a6fb0;outline:2px solid var(--accent-dim);outline-offset:-2px}.recap-night-summary-text{align-items:flex-start;display:flex;flex-direction:column;gap:.2rem;min-width:0;text-align:left}.recap-night-chevron{border-bottom:2px solid #8b9bab;border-bottom:2px solid var(--muted);border-right:2px solid #8b9bab;border-right:2px solid var(--muted);flex-shrink:0;height:.42rem;transform:rotate(-45deg);transition:transform .2s ease,border-color .14s ease;width:.42rem}details.recap-night[open]>.recap-night-summary .recap-night-chevron{margin-top:.12rem;transform:rotate(45deg)}details.game-night-roster{background:#1a222c;background:var(--surface);border:1px solid #2f3d4d;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius);margin-bottom:1.25rem;overflow:hidden;padding:0}.game-night-roster-summary{align-items:center;cursor:pointer;display:flex;gap:.75rem;justify-content:space-between;list-style:none;padding:1rem 1.35rem;transition:background .14s ease;-webkit-user-select:none;user-select:none}.game-night-roster-summary::-webkit-details-marker{display:none}.game-night-roster-summary::marker{content:""}details.game-night-roster>.game-night-roster-summary{list-style:none}.game-night-roster-summary:hover{background:#ffffff0a}.game-night-roster-summary:focus{outline:none}.game-night-roster-summary:focus-visible{outline:2px solid #2a6fb0;outline:2px solid var(--accent-dim);outline-offset:-2px}.game-night-roster-summary-text{align-items:flex-start;display:flex;flex-direction:column;gap:.2rem;min-width:0;text-align:left}.game-night-roster-heading{font-size:1.1rem;font-weight:650;letter-spacing:-.02em;margin:0}.game-night-roster-collapsed-hint{color:#8b9bab;color:var(--muted);font-size:.8125rem;line-height:1.35;margin:0}details.game-night-roster[open] .game-night-roster-collapsed-hint{display:none}details.game-night-roster[open]>.game-night-roster-summary .recap-night-chevron{margin-top:.12rem;transform:rotate(45deg)}.game-night-roster-body{border-top:1px solid #2f3d4d;border-top:1px solid var(--border);padding:0 1.35rem 1.25rem}.game-night-roster-body>.hint{margin-top:.85rem}.recap-night-body{border-top:1px solid #2f3d4d;border-top:1px solid var(--border);padding:.85rem 1.1rem 1.15rem}.recap-night-title{font-size:1.05rem;font-weight:650;letter-spacing:-.02em;margin:0}.recap-night-sub{font-size:.78rem;letter-spacing:.06em;margin:0;text-transform:uppercase}.recap-night-empty{font-size:.9rem;margin:0}.recap-carousel-toolbar{align-items:center;display:flex;gap:.75rem;justify-content:center;margin-bottom:.55rem}.recap-carousel-toolbar--solo{margin-bottom:.35rem}.recap-carousel-btn{background:#1a222c;background:var(--surface);border:1px solid #2f3d4d;border:1px solid var(--border);border-radius:10px;color:#e8eef4;color:var(--text);font-size:1.35rem;font-weight:500;height:2.35rem;line-height:1;min-width:2.35rem;padding:0}.recap-carousel-btn:hover:not(:disabled){border-color:#2a6fb0;border-color:var(--accent-dim);color:#3d9cf5;color:var(--accent)}.recap-carousel-label{min-width:8.5rem;text-align:center}.recap-carousel-round{color:#e8eef4;color:var(--text);font-size:.82rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase}.recap-carousel-of{color:#8b9bab;color:var(--muted);font-weight:500}.recap-carousel-dots{display:flex;gap:.4rem;justify-content:center;margin-bottom:.85rem}.recap-dot{background:#2f3d4d;background:var(--border);border:none;border-radius:50%;cursor:pointer;height:7px;opacity:.65;padding:0;transition:transform .12s ease,opacity .12s ease;width:7px}.recap-dot:hover{opacity:1}.recap-dot--active{background:#3d9cf5;background:var(--accent);opacity:1;transform:scale(1.25)}.recap-round-pane{min-height:2rem}.recap-match-grid{grid-gap:.65rem;display:grid;gap:.65rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));list-style:none;margin:0;padding:0}.recap-match-card{background:#1a222c;background:var(--surface);border:1px solid #2f3d4d;border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;gap:.55rem;padding:.75rem .85rem}.recap-court-badge{color:#8b9bab;color:var(--muted);font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.recap-match-teams{display:flex;flex-direction:column;gap:.45rem}.recap-team-label{font-size:.88rem;font-weight:500;line-height:1.35}.recap-score-slot{align-items:center;display:flex;justify-content:center;min-height:1.75rem}.recap-score-pill{font-feature-settings:"tnum";align-items:center;background:#3d9cf51f;border:1px solid #3d9cf547;border-radius:999px;display:inline-flex;font-variant-numeric:tabular-nums;gap:.35rem;padding:.25rem .65rem}.recap-score-num{font-size:1rem;font-weight:750;letter-spacing:-.02em}.recap-score-sep{font-size:.85rem}.recap-score-pending,.recap-score-sep{color:#8b9bab;color:var(--muted);font-weight:600}.recap-score-pending{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.shell--share{min-height:100vh;min-height:100dvh}.shell--share .topbar--share{border-bottom:1px solid #2f3d4d;border-bottom:1px solid var(--border);padding:.4rem .65rem}.main--share{margin:0 auto;max-width:28rem;padding:.35rem .5rem 1rem;width:100%}.schedule-share{background:#1a222c;background:var(--surface);border:1px solid #2f3d4d;border:1px solid var(--border);border-radius:8px;font-size:clamp(.62rem,2.8vw,.75rem);line-height:1.22;padding:.4rem .45rem .5rem}.schedule-share__header{border-bottom:1px solid #2f3d4d;border-bottom:1px solid var(--border);margin-bottom:.35rem;padding-bottom:.3rem}.schedule-share__title{font-size:clamp(.75rem,3.5vw,.88rem);font-weight:700;letter-spacing:-.02em;line-height:1.15;margin:0}.schedule-share__meta{color:#8b9bab;color:var(--muted);font-size:clamp(.55rem,2.4vw,.62rem);letter-spacing:.06em;margin:.12rem 0 0;text-transform:uppercase}.schedule-share__round{margin-top:.28rem;page-break-inside:avoid}.schedule-share__round-head{color:#3d9cf5;color:var(--accent);font-size:clamp(.55rem,2.5vw,.62rem);font-weight:700;letter-spacing:.1em;margin:0 0 .08rem;text-transform:uppercase}.schedule-share__courts{display:flex;flex-direction:column;gap:0}.schedule-share__court{grid-gap:.15rem .25rem;align-items:baseline;border-bottom:1px solid #2f3d4da6;display:grid;gap:.15rem .25rem;grid-template-columns:1.1rem minmax(0,1fr);padding:.06rem 0}.schedule-share__court:last-child{border-bottom:none}.schedule-share__court-num{color:#8b9bab;color:var(--muted);font-size:.85em;font-weight:700;text-align:right}.schedule-share__match{min-width:0;word-break:break-word}.schedule-share__team{font-weight:600}.schedule-share__vs{color:#8b9bab;color:var(--muted);font-weight:500;margin:0 .06rem}.schedule-share__score{font-feature-settings:"tnum";color:#3ecf8e;color:var(--success);font-variant-numeric:tabular-nums;font-weight:700;margin-left:.2rem;white-space:nowrap}.schedule-share__sit{color:#8b9bab;color:var(--muted);font-size:.9em;font-style:italic;margin:.08rem 0 0;padding-left:1.35rem}@media print{.no-print{display:none!important}.shell--share,body{background:#fff!important}.main--share{max-width:none;padding:.25rem}.schedule-share{background:#fff!important;border:1px solid #ccc;color:#111!important;font-size:9pt;-webkit-print-color-adjust:exact;print-color-adjust:exact}.schedule-share__court-num,.schedule-share__meta,.schedule-share__sit,.schedule-share__vs{color:#444!important}.schedule-share__round-head{color:#06c!important}.schedule-share__score{color:#0a7!important}}
/*# sourceMappingURL=main.5d0f519b.css.map*/