:root{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:#eff2f7;background:#0b0f17}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:0;border-radius:10px;padding:11px 14px;color:#fff;background:#334155}button.primary{background:#f97316}button.secondary{background:#233044}button:disabled{opacity:.4;cursor:not-allowed}input,select{padding:10px;background:#101827;border:1px solid #344155;border-radius:9px;color:#fff;width:100%}.shell{max-width:1120px;margin:auto;padding:20px}.top{display:flex;justify-content:space-between;align-items:center;gap:12px}.brand-wrap{display:flex;align-items:center;gap:12px}.brand-logo{width:42px;height:42px;object-fit:contain;border-radius:10px;background:#ffffff0d;padding:3px;box-shadow:0 0 0 1px #2b394b inset}.brand{font-weight:900;font-size:26px;letter-spacing:1px}.muted{color:#9daec3;font-size:13px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.tabs button.active{background:#f97316}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:15px}.card{background:#151f2d;border:1px solid #2b394b;padding:18px;border-radius:16px;margin-bottom:14px}.card h2,.card h3{margin:0 0 14px}.pill{display:inline-block;padding:5px 8px;background:#2c3b4f;border-radius:30px;font-size:12px}.kpi{font-weight:900;font-size:28px;margin:8px 0}.row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.stack{display:grid;gap:10px}.red{background:#971c2d}.black{background:#050506;border:1px solid #4b5563}.team{border-radius:13px;padding:15px;min-height:160px}.team h3{margin-top:0}.member{padding:8px 0;border-bottom:1px solid #ffffff26}.small{font-size:12px}.notice{background:#233348;border-left:4px solid #f97316;padding:12px;border-radius:9px;margin:12px 0}label{display:grid;gap:5px;font-size:13px;color:#c8d4e2}table{border-collapse:collapse;width:100%}td,th{text-align:left;border-bottom:1px solid #354052;padding:10px 5px;font-size:13px}.hide{display:none!important}.choice{display:flex;align-items:center;gap:8px;cursor:pointer;padding:6px 0}.choice input{width:auto}header{padding-bottom:12px;border-bottom:1px solid #26364a}footer{padding:22px 0;color:#93a4b7;font-size:12px}.team-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.team-panel{border-radius:18px;padding:18px;border:1px solid #ffffff20;box-shadow:0 10px 30px #00000040}.team-panel.red{background:linear-gradient(180deg,#c62828,#7f1d1d)}.team-panel.black{background:linear-gradient(180deg,#20242b,#050506)}.team-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.team-title{font-size:26px;font-weight:900;letter-spacing:1px}.team-badge{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:999px;background:#ffffff18;font-weight:900;border:1px solid #ffffff2a}.team-sub{font-size:13px;color:#f3f4f6cc;margin-bottom:10px}.team-roster{background:#ffffff10;border:1px solid #ffffff1e;border-radius:14px;padding:10px 12px;min-height:160px}.team-roster .member{border-bottom:1px solid #ffffff1c}.team-roster .member:last-child{border-bottom:0}.pref-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.pref-box{background:#101827;border:1px solid #334155;border-radius:14px;padding:14px}.pref-box h4{margin:0 0 10px;font-size:15px}.empty-note{color:#cbd5e1;font-size:13px;opacity:.85}.small-pills{display:flex;gap:6px;flex-wrap:wrap}.small-pill{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;background:#243244;border:1px solid #334155}.small-pill.red{background:#581c1c;border-color:#7f1d1d}.small-pill.black{background:#111827;border-color:#4b5563}.small-pill.any{background:#1e293b}.section-note{margin-top:10px;color:#9fb0c6;font-size:13px}@media(max-width:580px){.shell{padding:12px}.brand{font-size:21px}.card{padding:14px}.team-title{font-size:22px}}.attendance-summary{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:18px}.attendance-summary span{border:1px solid #344155;background:#101827;border-radius:10px;padding:8px 10px;font-size:12px}.status-section{padding:13px;border:1px solid #324155;border-radius:12px;margin:12px 0;background:#111b29}.status-section h3{margin:0 0 8px}.status-count{border-radius:99px;background:#26354a;padding:3px 10px;font-weight:700}.status-member{display:flex;align-items:center;justify-content:space-between;gap:8px}.status-tag{white-space:nowrap;border-radius:99px;padding:4px 8px;font-size:11px;font-weight:700}.status-tag.yes{background:#14532d;color:#bbf7d0}.status-tag.wait{background:#713f12;color:#fef08a}.status-tag.no{background:#7f1d1d;color:#fecaca}.status-tag.maybe{background:#334155;color:#e2e8f0}.team-panel .team-icon{font-size:32px;line-height:1}.team-panel .roster-label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;opacity:.8;margin:12px 0 6px;font-weight:800}.team-panel .team-roster{margin-top:8px}.team-panel .team-roster .member{padding:9px 2px}.pref-note{padding:12px 14px;margin:14px 0;background:#233348;border-radius:11px;border-left:4px solid #f97316}.pref-neutral{margin-top:15px}.pref-neutral h3{margin-top:0}.pref-team{min-height:200px}.team-panel .team-sub{color:#fff}.pref-neutral .small-pill{margin:3px}.team-kicker{color:#f97316;font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}.jersey{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;height:47px;flex:0 0 44px;filter:drop-shadow(0 2px 2px #0006)}.jersey svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.jersey-number{position:relative;z-index:1;font-size:14px;font-weight:900;line-height:1;margin-top:5px;text-shadow:0 1px 2px #0009;color:#fff}.jersey.red-shirt svg{fill:#db283c;stroke:#ffb4bd}.jersey.black-shirt svg{fill:#15191f;stroke:#99a5b4}.player-line{display:flex;align-items:center;gap:12px;padding:6px 0;border-bottom:1px solid #ffffff22}.player-line:last-child{border-bottom:0}.player-name{font-weight:650;overflow-wrap:anywhere}.field-card{padding:10px 12px;border-radius:14px;margin-bottom:8px;border:1px solid rgba(255,255,255,.16);background:linear-gradient(180deg,#ffffff1a,#ffffff0d);box-shadow:inset 0 1px #ffffff14}.field-card:last-child{margin-bottom:0}.field-card .player-line{border:0;padding:0}.player-admin-list{display:grid;gap:8px;margin:12px 0}.player-admin-row{display:grid;grid-template-columns:minmax(0,1fr) 95px auto;gap:9px;align-items:center}.player-admin-row input{min-width:0}.player-number-note{font-size:12px;color:#9daec3}.roster-label{font-weight:800;letter-spacing:.05em;margin:10px 0 6px}.team-board{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:560px){.team-board{gap:8px}.team-panel{padding:9px}.team-title{font-size:17px}.team-sub{font-size:11px}.jersey{width:31px;height:37px;flex-basis:31px}.jersey-number{font-size:11px}.player-line{gap:5px}.player-name{font-size:12px}.field-card{padding:8px}.keeper-card{padding:6px}.team-icon{display:none}.player-admin-row{grid-template-columns:minmax(0,1fr) 70px auto}}.profile-link{cursor:pointer;border:0;background:transparent;color:inherit;padding:0;font:inherit;text-align:left;border-bottom:1px dashed #ffffff55}.profile-link:hover{color:#fdba74}.profile-link:focus-visible{outline:2px solid #fb923c;outline-offset:3px}.profile-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#000000b8;display:flex;align-items:center;justify-content:center;padding:18px}.profile-modal{width:min(100%,440px);background:#151f2d;border:1px solid #4a5568;border-radius:20px;padding:24px;box-shadow:0 30px 80px #000a}.profile-head{display:flex;align-items:center;gap:16px}.profile-shirt{width:78px;height:78px;display:grid;place-items:center;background:#202c3d;border-radius:15px}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:22px 0}.profile-stat{background:#0f1724;border-radius:12px;padding:12px 7px;text-align:center}.profile-stat b{display:block;font-size:23px;color:#fb923c}.profile-stat small{color:#b5c3d4;font-size:11px}.profile-close{float:right;background:#374151}.profile-desc{font-size:13px;color:#b4c2d1;line-height:1.5}.keeper-card{position:relative;isolation:isolate;overflow:hidden;min-height:124px;border-radius:15px;margin:12px 0 18px;padding:13px 11px;background:#ffffff24;border:1px solid rgba(255,255,255,.35);box-shadow:inset 0 1px #ffffff20}.team-panel.red .keeper-card{background:#ffffff2e}.team-panel.black .keeper-card{background:#ffffff1a}.goalie-helmet{position:absolute;right:-9px;top:-13px;width:130px;height:145px;color:#fff;opacity:.13;pointer-events:none;z-index:-1;transform:rotate(-12deg)}.keeper-content{position:relative;z-index:1}.keeper-label{font-size:11px;font-weight:900;letter-spacing:.12em;color:#fff;opacity:.9;margin:0 0 10px}.keeper-card .player-line{border:0;padding:4px 0;min-width:0}.keeper-card .jersey{width:55px;height:58px;flex-basis:55px}.keeper-card .jersey-number{font-size:17px}.keeper-card .profile-link{font-size:15px;font-weight:800}.keeper-card .empty-note{padding:10px 0;color:#fff}.neutral-role{font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;margin-top:12px;margin-bottom:4px;color:#aebfd2}@media(max-width:560px){.keeper-card{padding:10px 8px;min-height:110px}.goalie-helmet{width:106px;height:122px;right:-17px;top:-5px}.keeper-card .jersey{width:43px;height:48px;flex-basis:43px}.keeper-card .jersey-number{font-size:14px}.keeper-card .profile-link{font-size:13px}}.player-management-row{display:grid;grid-template-columns:minmax(120px,1.6fr) minmax(85px,.7fr) auto;gap:9px;align-items:end;padding:12px;background:#101827;border:1px solid #344155;border-radius:12px}.player-management-row.inactive-player{opacity:.68}.player-management-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.player-management-actions button{padding:9px 10px;font-size:12px}.player-management-actions .deactivate{background:#75313b}.player-management-actions .reactivate{background:#18644a}.player-state{font-size:11px;font-weight:800;padding:5px 7px;border-radius:20px}.player-state.on{background:#14532d;color:#bbf7d0}.player-state.off{background:#44403c;color:#d6d3d1}@media(max-width:650px){.player-management-row{grid-template-columns:minmax(0,1fr) 85px}.player-management-actions{grid-column:1/-1}}.admin-attendance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:13px 0}.admin-attendance-grid label{min-width:0}
