:root{--ink:#1a1a2e;--sheet:#fff;--wash:#f4f4f7;--border:#f0f0f4;--card-border:#e3e3eb;--muted:#8a8a99;--font-display:"Sora", system-ui, sans-serif;--font-ui:"Manrope", system-ui, sans-serif}*{box-sizing:border-box}body{font-family:var(--font-ui);color:var(--ink);background:var(--wash);margin:0}h1,h2,h3{font-family:var(--font-display);margin:0 0 8px}.screen{min-height:100vh;padding:24px}.screen-center{justify-content:center;align-items:center;display:flex}.ink-bg{background:var(--ink);color:var(--sheet)}.muted{color:var(--muted)}.error-text{color:#c0392b;font-weight:600}.card{background:var(--sheet);color:var(--ink);border-radius:20px;width:100%;max-width:420px;padding:32px;box-shadow:0 8px 30px #1a1a2e1f}.btn{font-family:var(--font-ui);cursor:pointer;text-align:center;border:none;border-radius:12px;padding:14px 20px;font-size:16px;font-weight:700;text-decoration:none;display:inline-block}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--ink);color:var(--sheet);width:100%;margin-top:16px}.btn-ghost{color:inherit;background:0 0;border:1px solid}.signin-card{text-align:center}.brand-mark{font-family:var(--font-display);background:var(--ink);color:var(--sheet);border-radius:16px;width:56px;height:56px;margin:0 auto 12px;font-size:20px;font-weight:800;line-height:56px}.brand-title{font-size:28px}.auth-divider{color:var(--muted);align-items:center;gap:12px;margin:20px 0 14px;font-size:13px;font-weight:600;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.email-auth-form input{width:100%;font-family:var(--font-ui);border:1px solid var(--border);background:var(--sheet);text-align:left;border-radius:10px;margin-bottom:10px;padding:12px;font-size:16px;display:block}.email-auth-form .btn{margin-top:4px}.auth-links{flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:14px;display:flex}.auth-link{color:var(--muted);font-family:var(--font-ui);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:600;text-decoration:underline}.auth-notice{margin-top:12px;font-size:14px}.form-card label{margin-top:16px;font-size:14px;font-weight:600;display:block}.form-card input,.form-card select{width:100%;font-family:var(--font-ui);border:1px solid var(--border);background:var(--wash);border-radius:10px;margin-top:6px;padding:12px;font-size:16px;display:block}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=480px){.form-row{grid-template-columns:1fr}}.dash-header{justify-content:space-between;align-items:center;max-width:720px;margin:0 auto 24px;display:flex}.team-grid{gap:16px;max-width:720px;margin:0 auto;display:grid}.team-card{min-height:140px;color:var(--sheet);border-radius:20px;flex-direction:column;justify-content:center;gap:10px;padding:32px 28px;text-decoration:none;display:flex}.team-mono{font-family:var(--font-display);opacity:.85;font-size:14px;font-weight:800}.team-name{font-family:var(--font-display);text-transform:uppercase;font-size:27px;font-weight:700}.team-division{opacity:.85;font-weight:600}.team-screen{padding:0}.team-header{color:var(--sheet);padding:48px 24px 56px}.team-header h1{text-transform:uppercase;margin:0}.division-pill{background:#fff3;border-radius:999px;margin-top:8px;padding:4px 12px;font-size:13px;font-weight:700;display:inline-block}.sheet{background:var(--sheet);border-radius:28px 28px 0 0;max-width:720px;min-height:40vh;margin-top:-28px;margin-left:auto;margin-right:auto;padding:32px 24px}.back-link{color:inherit;opacity:.8;width:fit-content;margin-bottom:16px;font-size:14px;font-weight:600;text-decoration:none;display:block}.season-label{opacity:.85;margin-left:8px;font-size:13px;font-weight:600;display:inline-block}.season-select{font-family:var(--font-ui);color:inherit;opacity:.9;cursor:pointer;background:0 0;border:1px solid;border-radius:8px;margin-left:8px;padding:2px 6px;font-size:13px;font-weight:600}.season-select option{color:var(--ink);background:var(--sheet)}.archived-banner{margin:0 0 14px;font-size:13px}.stale-chip{color:var(--muted);border:1px solid var(--card-border);white-space:nowrap;border-radius:999px;margin-left:6px;padding:1px 8px;font-size:11px;font-weight:700;display:inline-block}.tab-row{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.tab-pill{font-family:var(--font-ui);border:1px solid var(--border);background:var(--wash);color:var(--ink);cursor:pointer;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:700}.tab-active{color:var(--sheet);border-color:#0000}.game-row{border-bottom:1px solid var(--border);align-items:center;gap:14px;padding:14px 0;display:flex}.game-date{flex-direction:column;align-items:center;min-width:44px;display:flex}.game-month{text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:700}.game-day{font-family:var(--font-display);font-size:20px;font-weight:700}.game-info{flex-direction:column;flex:1;min-width:0;display:flex}.game-opponent{font-weight:700}.game-meta{font-size:13px}.game-score{font-family:var(--font-display);font-weight:700}.badge{color:var(--sheet);border-radius:8px;padding:4px 10px;font-size:12px;font-weight:800}.badge-live{background:#d0342c}.badge-upcoming{background:var(--wash);color:var(--muted);border:1px solid var(--border)}.badge-final{background:var(--ink)}.badge-tie{background:var(--muted)}.roster-row{border-bottom:1px solid var(--border);align-items:center;gap:14px;padding:12px 0;display:flex}.avatar{font-family:var(--font-display);text-align:center;border-radius:50%;flex-shrink:0;width:42px;height:42px;font-size:14px;font-weight:700;line-height:42px}.roster-name{flex:1;font-weight:700}.add-btn{color:var(--ink);border-color:var(--border);margin-bottom:16px}.inline-form{background:var(--wash);border-radius:16px;margin-bottom:20px;padding:20px}.inline-form label{margin-top:12px;font-size:14px;font-weight:600;display:block}.inline-form input,.inline-form select{width:100%;font-family:var(--font-ui);border:1px solid var(--border);background:var(--sheet);border-radius:10px;margin-top:6px;padding:12px;font-size:16px;display:block}.form-actions{justify-content:flex-end;gap:12px;margin-top:16px;display:flex}.btn-inline{width:auto;margin-top:0}.hero-card{color:var(--sheet);border-radius:20px;flex-direction:column;gap:6px;margin-bottom:20px;padding:24px;display:flex}.hero-label{text-transform:uppercase;opacity:.85;font-size:13px;font-weight:800}.hero-opponent{font-family:var(--font-display);font-size:24px;font-weight:700}.hero-detail{opacity:.9;font-weight:600}.last-game-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:14px 0;display:flex}a.game-row,a.last-game-row,a.hero-card{color:inherit;text-decoration:none}a.hero-card{color:var(--sheet)}.game-hero{padding-bottom:64px}.status-pill{text-transform:uppercase;background:#fff3;border-radius:999px;margin:4px 0 12px;padding:4px 12px;font-size:12px;font-weight:800;display:inline-block}.game-hero-opponent{text-transform:uppercase}.game-hero-score{font-family:var(--font-display);font-size:56px;font-weight:800;line-height:1.1}.game-hero-detail{opacity:.9;margin-top:6px;font-weight:600;display:block}.detail-section{background:var(--sheet);border:1px solid var(--card-border);border-radius:16px;margin-bottom:14px;padding:16px 18px}.detail-section h3{margin-bottom:4px}.detail-flat{margin:4px 0 14px}.detail-flat h3{margin-bottom:8px}.detail-section .member-row:last-child,.detail-section .goal-row:last-child,.detail-section .roster-row:last-child,.detail-section .link-row:last-child{border-bottom:none}.record-box{background:var(--wash);border-radius:16px;margin-bottom:24px;padding:20px}.record-title{text-align:center;margin-bottom:12px}.record-figures{justify-content:center;align-items:center;gap:24px;display:flex}.record-figure{flex-direction:column;align-items:center;display:flex}.record-num{font-family:var(--font-display);font-size:32px;font-weight:800}.record-label{color:var(--muted);font-size:12px;font-weight:700}.record-divider{background:var(--border);width:1px;height:40px}.recap-feed-card{background:var(--wash);color:inherit;border-radius:16px;margin-bottom:14px;padding:18px 20px;text-decoration:none;display:block}.recap-feed-meta{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;font-size:13px;display:flex}.tourn-box{border-radius:16px;margin-bottom:16px;padding:16px 20px}.tourn-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.tourn-head h3{margin:0}.tourn-placement{font-family:var(--font-display);font-weight:800}.tourn-line{margin:6px 0 0;font-weight:700}.tourn-edit{color:inherit;font-family:var(--font-ui);cursor:pointer;background:0 0;border:none;margin-top:8px;margin-right:14px;padding:0;font-size:13px;font-weight:700;text-decoration:underline}.tourn-placement-form{align-items:center;gap:10px;margin-top:8px;display:flex}.tourn-placement-form input{border:1px solid var(--border);font-family:var(--font-ui);border-radius:10px;flex:1;padding:10px;font-size:15px}.tourn-name{font-weight:700}.leader-value{font-family:var(--font-display);text-align:right;min-width:32px;font-size:20px;font-weight:800}.log-line{margin:6px 0}.recap-card{background:var(--wash);border-radius:16px;padding:18px 20px}.recap-headline{font-family:var(--font-display);margin:0 0 8px;font-size:18px}.recap-text{margin:0;line-height:1.55}.recap-btn{margin-top:12px}.avail-row{border:none;border-bottom:1px solid var(--border);width:100%;font-family:var(--font-ui);text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:16px;display:flex}button.avail-row{cursor:pointer}.avail-chip{border-radius:999px;padding:5px 12px;font-size:12px;font-weight:800}.avail-yes{color:#1e7f4f;background:#e4f5ea}.avail-maybe{color:#9a6b0f;background:#fdf1d6}.avail-no{background:var(--ink);color:var(--sheet)}.avail-injured{color:#c0392b;background:#fbe3e3}a.roster-row{color:inherit;text-decoration:none}.avatar-img{object-fit:cover;border-radius:50%;flex-shrink:0;width:42px;height:42px}.player-hero-row{align-items:center;gap:16px;display:flex}.player-photo{object-fit:cover;border:3px solid #fff6;border-radius:50%;width:76px;height:76px}.player-photo-fallback{width:76px;height:76px;font-size:24px;line-height:76px}.player-stat-hero{justify-content:center;align-items:center;gap:24px;padding:6px 0;display:flex}.stat-extras{margin-top:8px;font-size:13px}.game-log-row{color:inherit;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:8px 0;text-decoration:none;display:flex}.game-log-line{font-weight:700}.home-section{background:var(--sheet);border:1px solid var(--card-border);border-radius:16px;margin-top:16px;padding:16px 18px}.home-section h3{margin-bottom:8px}.home-section .link-row:last-child,.home-section .roster-row:last-child{border-bottom:none}.link-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 0;display:flex}.link-main{color:inherit;flex:1;align-items:center;gap:10px;text-decoration:none;display:flex}.link-kind{text-transform:uppercase;background:var(--wash);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:800}.link-add{margin-top:10px}.wizard-card{max-width:480px}.wizard-steps{flex-wrap:wrap;gap:6px;margin-bottom:20px;display:flex}.step-dot{background:var(--wash);color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:700}.step-active{background:var(--ink);color:var(--sheet);border-color:var(--ink)}.step-done{color:var(--ink)}.color-input{cursor:pointer;height:48px;padding:4px!important}.time-parts{gap:6px;margin-top:6px;display:flex}.time-parts select{flex:1;min-width:0;margin-top:0!important}.color-presets{grid-template-columns:repeat(7,1fr);gap:8px;margin-top:8px;margin-bottom:8px;display:grid}.color-chip{aspect-ratio:1;border:2px solid var(--border);cursor:pointer;border-radius:50%;width:100%;min-height:30px;padding:0}.color-chip-selected{border-color:var(--ink);box-shadow:0 0 0 2px var(--sheet), 0 0 0 4px var(--ink)}.hex-field{gap:8px;margin-top:6px;display:flex}.hex-field .hex-swatch{flex-shrink:0;width:56px;margin-top:0!important}.hex-field .hex-text{text-transform:uppercase;flex:1;margin-top:0!important}.banner-label input{margin-top:6px}.settings-back{color:var(--muted);margin-bottom:12px;font-size:14px;font-weight:600;text-decoration:none;display:inline-block}.archived-list{max-width:720px;margin:28px auto 0}.archived-head{text-transform:uppercase;opacity:.6;font-size:14px}.member-teams{max-width:720px;margin:0 auto}.tile-top{align-items:center;gap:10px;display:flex}.tile-division{font-family:var(--font-display);background:#0000002e;border-radius:999px;flex-shrink:0;padding:6px 14px;font-size:15px;font-weight:800}.tile-record{font-family:var(--font-display);background:#00000040;border-radius:999px;flex-shrink:0;margin-left:auto;padding:6px 14px;font-size:16px;font-weight:800}.tile-live{color:#fff;background:#d0342c}.tile-season{opacity:.85;font-size:16px;font-weight:600}.team-header-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.header-record{text-align:right;flex-shrink:0}.header-record-num{font-family:var(--font-display);font-size:24px;font-weight:800;line-height:1.1;display:block}.header-record-label{text-transform:uppercase;letter-spacing:.06em;opacity:.8;font-size:11px;font-weight:700}.sortable-tile{cursor:grab;touch-action:manipulation}.sortable-tile:active{cursor:grabbing}.dash-invites{max-width:720px;margin:0 auto 20px}.dash-invite-row{background:#ffffff1a;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding:14px 18px;display:flex}.dash-section-head{text-transform:uppercase;opacity:.6;margin:28px 0 12px;font-size:14px}.archived-row{color:inherit;opacity:.7;align-items:center;gap:10px;padding:8px 0;font-weight:700;text-decoration:none;display:flex}.preview-card{color:var(--sheet);border-radius:20px;flex-direction:column;gap:4px;margin-top:20px;padding:24px;display:flex}.preview-badges{align-items:center;gap:10px;margin-top:10px;display:flex}.preview-avatar{width:34px;height:34px;font-size:12px;line-height:34px}.wizard-list-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.wizard-subhead{margin-top:20px;font-size:15px}.wizard-review{background:var(--wash);border-radius:12px;margin-top:20px;padding:14px}.wizard-nav{justify-content:space-between;align-items:center;margin-top:24px;display:flex}.btn-small{margin:0;padding:8px 14px;font-size:14px}.dash-actions{gap:10px;display:flex}.people-link{color:inherit;opacity:.85;font-size:13px;font-weight:700;text-decoration:none}.owner-links{flex-wrap:wrap;gap:18px;margin-top:16px;display:flex}.member-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:10px 0;display:flex}.member-row .roster-name{flex:1}.member-identity{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.member-contact{flex-wrap:wrap;gap:10px;font-size:13px;display:flex}.member-phone{color:inherit;font-weight:600}.role-chip{text-transform:uppercase;background:var(--wash);color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:800}.role-owner{background:var(--ink);color:var(--sheet);border-color:var(--ink)}.role-coach{color:#1e7f4f;background:#e4f5ea;border-color:#0000}.role-scorekeeper{color:#9a6b0f;background:#fdf1d6;border-color:#0000}.member-remove{margin-top:0;font-size:13px}.member-edit-link{color:var(--ink);font-family:var(--font-ui);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:700}.member-edit-form{margin:10px 0 16px}.goal-review-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:10px 0;display:flex}.goal-review-row:last-child{border-bottom:none}.goal-review-row .roster-name{flex:1}.member-cancel{color:var(--muted);margin-left:10px}.invite-hint{margin-top:10px;font-size:13px}.player-link-group{margin-top:16px}.player-link-label{font-size:14px;font-weight:600;display:block}.player-link-hint{margin:4px 0 8px;font-size:13px}.player-link-group select{width:100%;font-family:var(--font-ui);border:1px solid var(--border);background:var(--sheet);border-radius:10px;margin-bottom:8px;padding:12px;font-size:16px;display:block}.link-another-btn{color:var(--ink);font-family:var(--font-ui);cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;font-weight:700;text-decoration:underline}.invite-block{margin-bottom:24px}.invite-card{background:var(--wash);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;padding:14px 16px;display:flex}.invite-card .btn{margin-top:0}.invite-or{text-align:center;margin-top:16px;font-size:13px}.btn-danger-link{color:#c0392b;font-family:var(--font-ui);cursor:pointer;background:0 0;border:none;margin-top:16px;padding:0;font-size:14px;font-weight:700;display:block}.btn-danger{color:var(--sheet);background:#c0392b}.danger-confirm{background:#fdf3f2;border:1px solid #f5c6c0;border-radius:12px;margin-top:16px;padding:14px}.danger-confirm p{margin:0 0 4px;font-weight:600}.detail-actions{flex-wrap:wrap;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.live-screen{color:#fff;background:#222240;max-width:560px;min-height:100vh;margin:0 auto;padding:16px}.live-topbar{margin-bottom:12px}.live-exit{color:#fff;opacity:.7;font-size:14px;font-weight:600;text-decoration:none}.live-surface{background:#34345a;border-radius:16px;margin-bottom:16px;padding:16px}.tap-btn{min-width:44px;min-height:44px;font-family:var(--font-ui);cursor:pointer;border:none;border-radius:12px;padding:0 14px;font-size:16px;font-weight:800}.tap-btn:disabled{opacity:.35;cursor:default}.tap-light{color:#fff;background:#ffffff24}.tap-dark{color:#fff;background:#222240}.tap-accent{color:#222240;background:#f2b33d}.tap-big{min-width:72px;font-size:18px}.tap-end{color:#222240;width:100%;min-height:52px;font-family:var(--font-ui);cursor:pointer;background:#fff;border:none;border-radius:14px;margin-bottom:24px;font-size:17px;font-weight:800}.live-score-row{justify-content:center;align-items:center;gap:20px;display:flex}.live-side{flex-direction:column;align-items:center;gap:8px;min-width:96px;display:flex}.live-side-name{text-transform:uppercase;opacity:.75;text-align:center;font-size:13px;font-weight:700}.live-num{font-family:var(--font-display);font-size:52px;font-weight:800;line-height:1}.live-dash{font-family:var(--font-display);opacity:.5;font-size:32px}.live-ticker-row{justify-content:space-between;align-items:center;gap:12px;margin-top:14px;display:flex}.live-ticker{opacity:.8;font-size:14px;font-weight:600}.live-half-row{justify-content:center;margin-top:12px;display:flex}.live-half-btn{width:100%}.live-half-indicator{opacity:.85;padding:6px 0;font-size:14px;font-weight:700}.log-halftime{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:700}.pending-banner{color:#222240;background:#f2b33d;border-radius:16px;margin-bottom:16px;padding:14px 16px}.pending-text{margin-bottom:10px;font-weight:800;display:block}.pending-actions{flex-wrap:wrap;gap:10px;display:flex}.live-section-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.live-section-head h2{text-transform:uppercase;opacity:.75;margin:0;font-size:15px}.live-player-row{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.live-player-row:last-child{border-bottom:none}.live-player-name{font-weight:700}.live-half-tag{opacity:.6;margin-left:6px;font-size:12px;font-weight:600}.live-actions{gap:8px;display:flex}.live-hint{opacity:.65;font-size:14px}.live-confirm p{margin:0 0 12px;font-weight:700}.edit-mode-banner{color:#222240;background:#f2b33d;border-radius:12px;margin-bottom:16px;padding:10px 14px;font-size:14px;font-weight:700}.sheet-overlay{z-index:10;background:#0000008c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.goalie-sheet{color:#fff;background:#34345a;border-radius:20px 20px 0 0;width:100%;max-width:560px;max-height:75vh;padding:20px;overflow-y:auto}.goalie-sheet h2{margin-bottom:4px}.goalie-row{color:#fff;text-align:left;background:#ffffff14;justify-content:space-between;align-items:center;width:100%;margin-top:8px;display:flex}.goalie-on{color:#f2b33d;font-weight:800}.goalie-off{opacity:.5;font-weight:600}.sheet-done{width:100%;margin-top:16px}.goals-note{margin-bottom:10px;font-size:13px}.goal-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:10px 0;display:flex}.goal-main{flex-direction:column;gap:2px;min-width:0;display:flex}.goal-cat{font-size:12px}.goal-actions{flex-shrink:0;gap:8px;display:flex}.goal-btn{font-family:var(--font-ui);border:1px solid var(--border);background:var(--wash);color:var(--ink);border-radius:999px;padding:7px 12px;font-size:13px;font-weight:700}.goal-btn-achieved{color:#fff;border-color:#0000}.goal-add{margin-top:12px;margin-bottom:0}.goal-picker{background:var(--wash);border-radius:16px;margin-top:12px;padding:14px}.goal-cats{flex-wrap:wrap;gap:8px;display:flex}.goal-cat-pill{padding:7px 13px;font-size:13px}.goal-chips{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.goal-chip{font-family:var(--font-ui);border:1px solid var(--border);color:var(--ink);text-align:left;background:#fff;border-radius:12px;padding:8px 13px;font-size:13px;font-weight:600}.goal-chip:disabled{opacity:.45}.goal-picker-done{margin-top:12px}.goal-history{margin-top:14px}.goal-history-head{margin-bottom:6px;font-size:14px}.goal-done-row{align-items:center;gap:8px;padding:5px 0;display:flex}.goal-done-row .muted{margin-left:auto;font-size:13px}.goal-check{font-weight:800}.focus-item{border-bottom:1px solid var(--border)}.focus-item:last-child{border-bottom:none}.focus-row{justify-content:space-between;align-items:center;gap:10px;padding:9px 0;display:flex}.focus-count{font-family:var(--font-ui);cursor:pointer;border:none;border-radius:999px;flex-shrink:0;padding:5px 12px;font-size:13px;font-weight:800}.focus-names{flex-wrap:wrap;gap:8px;padding:2px 0 12px;display:flex}.focus-name{font-family:var(--font-ui);border:1px solid var(--border);background:var(--wash);color:var(--ink);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;text-decoration:none}.link-actions{gap:10px;display:flex}.link-actions .link-add{margin-bottom:0}.team-photo{border:1px solid var(--card-border);border-radius:16px;width:100%;margin-bottom:10px;display:block}.team-photo-actions{align-items:center;gap:14px;margin-bottom:16px;display:flex}.team-photo-btn{cursor:pointer;margin-bottom:0}.btn-disabled{opacity:.6;pointer-events:none}.recap-actions{flex-wrap:wrap;gap:10px;display:flex}.recap-actions .recap-btn{margin-bottom:0}.recap-locked-note{margin-top:10px;font-size:13px}.recap-unlock{color:var(--muted);font-family:var(--font-ui);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:600;text-decoration:underline}.load-error{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:16px;display:flex}.load-error .error-text{margin:0}.feature-toggle{cursor:pointer;align-items:flex-start;gap:12px;padding:10px 0;display:flex}.feature-toggle input{width:18px;height:18px;accent-color:var(--ink);margin-top:3px}.feature-toggle span{flex-direction:column;gap:2px;font-weight:400;display:flex}.feature-blurb{font-size:13px}.role-manager{color:#6d28d9;background:#ede9fe}.csv-import{margin:4px 0 16px}.csv-actions{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.csv-btn{cursor:pointer;margin-bottom:0}.csv-template-link,.csv-help summary{color:var(--muted);font-family:var(--font-ui);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:600;text-decoration:underline}.csv-help{margin-top:8px}.csv-help summary{text-decoration:none;list-style-position:inside}.csv-help p{margin:6px 0 0 14px;font-size:13px}.csv-preview{background:var(--wash);border-radius:16px;margin-top:12px;padding:14px 16px}.csv-count{margin:0 0 6px;font-weight:700}.csv-row,.csv-error-line{margin:2px 0;font-size:13px}.csv-errors{margin-bottom:10px}.csv-ok{color:#0fa3a3;margin-top:8px;font-weight:700}.tools-drawer{margin:4px 0 12px}.tools-toggle{color:var(--muted);font-family:var(--font-ui);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:700}.tools-body{margin-top:10px}.view-switch{color:inherit;font-family:var(--font-ui);cursor:pointer;background:#ffffff24;border:1px solid #ffffff73;border-radius:999px;margin-top:10px;padding:6px 14px;font-size:13px;font-weight:700;display:block}.view-switch-on{color:var(--ink);background:#ffffffe6}.view-pill{border:1px solid var(--card-border);background:var(--wash);color:var(--muted);font-family:var(--font-ui);cursor:pointer;border-radius:999px;margin:-8px 0 16px;padding:6px 14px;font-size:13px;font-weight:700;display:block}.drill-grid{grid-template-columns:1fr;gap:10px;margin-top:8px;display:grid}@media (width>=560px){.drill-grid{grid-template-columns:1fr 1fr}}.drill-card{border:1px solid var(--card-border);background:var(--sheet);color:inherit;border-radius:14px;align-items:center;gap:12px;padding:8px;text-decoration:none;display:flex}.drill-thumb{object-fit:cover;background:var(--wash);border-radius:8px;flex-shrink:0;width:104px;height:58px}.drill-thumb-playlist{color:var(--muted);justify-content:center;align-items:center;font-size:12px;font-weight:800;display:flex}.drill-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.drill-title{font-size:14px;font-weight:700}.drill-sub{font-size:12px}.drill-pick-tag{margin:4px 0 0 4px;font-size:12px;display:block}.focus-drills-link{color:var(--muted);font-size:12px;font-weight:700;text-decoration:underline}.drill-lib-line{margin-top:14px}.drill-choice-on{background:var(--ink);color:var(--sheet);border-color:var(--ink)}.drill-picker-section{margin-top:10px}.drill-row{align-items:center;gap:10px;display:flex}.drill-row .drill-card{flex:1;min-width:0}.drill-intro{flex:1;margin-bottom:0}.drill-hidden{margin-top:10px}.drill-hidden-row{margin:4px 0;font-size:13px}.drill-hidden-row .csv-template-link{margin-left:10px}
