:root{--font-display: "Outfit", system-ui, -apple-system, sans-serif;--font-body: system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: ui-monospace, "Cascadia Code", "SF Mono", Menlo, monospace;--bg-app: #0b1220;--bg-elevated: #111827;--bg-card: #1e293b;--bg-card-hover: #243044;--bg-muted: #0f172a;--bg-input: #0f172a;--border-subtle: rgba(148, 163, 184, .18);--border-strong: rgba(148, 163, 184, .35);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--text-inverse: #0f172a;--accent: #3b82f6;--accent-hover: #60a5fa;--accent-soft: rgba(59, 130, 246, .16);--accent-hot: #f59e0b;--accent-hot-soft: rgba(245, 158, 11, .16);--danger: #ef4444;--danger-soft: rgba(239, 68, 68, .14);--success: #22c55e;--success-soft: rgba(34, 197, 94, .14);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow-md: 0 8px 24px rgba(0, 0, 0, .35);--shadow-glow: 0 0 0 1px var(--border-subtle), 0 0 24px rgba(59, 130, 246, .08);--ease-out: cubic-bezier(.22, 1, .36, 1);--dur-fast: .12s;--dur-med: .22s;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;font-family:var(--font-body);line-height:1.5;color:var(--text-primary);background:var(--bg-app);color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(59,130,246,.12),transparent),var(--bg-app);color:var(--text-primary)}#root{min-height:100vh}a{color:var(--accent-hover);transition:color var(--dur-fast) var(--ease-out)}a:hover{color:#93c5fd}.container{max-width:480px;margin:0 auto;padding:2rem 1rem}.card{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-glow)}h1{font-family:var(--font-display);font-size:1.65rem;font-weight:800;letter-spacing:-.02em;margin:0 0 1rem;color:var(--text-primary)}h2{font-family:var(--font-display);font-weight:700;color:var(--text-primary)}form{display:flex;flex-direction:column;gap:1rem}label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;font-weight:600;color:var(--text-secondary)}input,select,textarea{padding:.6rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:1rem;background:var(--bg-input);color:var(--text-primary);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.password-field{display:flex;align-items:stretch;gap:0;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-input);overflow:hidden;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.password-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.password-field-input{flex:1;min-width:0;border:none!important;border-radius:0!important;box-shadow:none!important;background:transparent}.password-field-input:focus{outline:none;box-shadow:none!important}.password-field-toggle{flex-shrink:0;padding:0 .75rem;border:none;border-left:1px solid var(--border-subtle);border-radius:0;background:transparent;color:var(--text-secondary);font-family:var(--font-display);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;box-shadow:none}.password-field-toggle:hover:not(:disabled){background:var(--bg-card-hover);color:var(--text-primary);box-shadow:none}input[type=file]{padding:.4rem;color:var(--text-secondary);cursor:pointer}input[type=file]::file-selector-button{margin-right:.75rem;padding:.5rem .85rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-card-hover);color:var(--text-primary);font-family:var(--font-display);font-size:.9rem;font-weight:700;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}input[type=file]::-webkit-file-upload-button{margin-right:.75rem;padding:.5rem .85rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-card-hover);color:var(--text-primary);font-family:var(--font-display);font-size:.9rem;font-weight:700;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=file]:hover::file-selector-button,input[type=file]:hover::-webkit-file-upload-button{border-color:var(--accent);background:var(--accent-soft)}select option{background:var(--bg-elevated);color:var(--text-primary)}button{padding:.7rem 1rem;border:none;border-radius:var(--radius-sm);background:var(--accent);color:#fff;font-family:var(--font-display);font-size:1rem;font-weight:700;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}button:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 0 20px #3b82f640}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}button.secondary{background:transparent;color:var(--text-primary);border:1px solid var(--border-strong)}button.secondary:hover:not(:disabled){background:var(--bg-card-hover);border-color:var(--accent);box-shadow:none}.error{color:#fca5a5;font-size:.9rem;margin:0}.success{color:#86efac;font-size:.9rem}.hint{color:var(--text-secondary);font-size:.9rem;margin:0}.nav-links{margin-top:1rem;text-align:center;font-size:.9rem}.crest-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:.6rem;margin:1rem 0;max-height:360px;overflow:auto;padding:.25rem}.crest-item{aspect-ratio:5 / 6;border:2px solid var(--border-subtle);border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;text-align:center;padding:.35rem;background:var(--bg-muted);transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.crest-item.selected{border-color:var(--accent);background:var(--accent-soft)}.crest-item.unavailable{opacity:.35;cursor:not-allowed}.crest-preview-row{display:flex;align-items:center;gap:1rem;margin:1rem 0 .5rem;padding:.75rem;background:var(--bg-muted);border-radius:10px;border:1px solid var(--border-subtle)}.crest-preview-label{margin:0 0 .25rem;font-weight:600;font-family:var(--font-display)}.team-crest{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:0}.team-crest-img{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}.team-crest-fallback{width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 30% 30%,#475569,#1e293b);display:block}.team-crest-sm{width:2.5rem;height:3rem}.team-crest-md{width:4rem;height:4.8rem}.team-crest-lg{width:5.5rem;height:6.6rem}.team-crest-badge{position:absolute;top:-.15rem;right:-.2rem;min-width:1.15em;height:1.15em;padding:0 .2em;border-radius:999px;background:#0f172ae0;border:1.5px solid rgba(248,250,252,.85);color:#f8fafc;font-weight:800;font-size:.65rem;display:inline-flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 1px 3px #00000059}.team-crest-md .team-crest-badge{font-size:.75rem;min-width:1.25em;height:1.25em}.team-crest-lg .team-crest-badge{font-size:.9rem;min-width:1.35em;height:1.35em;top:-.1rem;right:-.15rem}.team-crest.is-selected .team-crest-badge{border-color:#93c5fd}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.team-home-header{display:flex;align-items:center;gap:.85rem;margin:.75rem 0}.auction-team-identity{display:flex;align-items:center;gap:.6rem}.recovery-team-cell{display:inline-flex;align-items:center;gap:.5rem}.admin-roster-card-header{display:flex;align-items:flex-start;gap:.65rem}.tv-roster-cell-header{display:flex;align-items:flex-start;gap:.5rem;margin-bottom:.35rem}.tv-roster-cell-header h2{margin:0}.admin-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.admin-list li{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.admin-actions{display:flex;gap:.5rem}.admin-actions button.approve{background:#16a34a}.admin-actions button.reject{background:#dc2626}.auction-admin,.auction-team{max-width:640px}.auction-section{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-subtle)}.auction-section h2{font-size:1.1rem;margin:0 0 .75rem}.auction-status{font-size:.85rem;color:var(--text-secondary)}.auction-countdown{font-size:2rem;font-weight:700;text-align:center;margin:1rem 0}.auction-countdown.large{font-size:3rem}.auction-teams-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0}.auction-teams-grid ul{list-style:none;padding:0;margin:0}.missing-team{color:#fca5a5;font-weight:600}.recovery-table{width:100%;border-collapse:collapse;margin-top:.75rem;font-size:.9rem}.recovery-table th,.recovery-table td{text-align:left;padding:.4rem .5rem;border-bottom:1px solid var(--border-subtle);vertical-align:middle}.tv-recovery-banner{text-align:center;padding:.75rem 1rem;background:#1e3a5f;color:#f8fafc;font-size:1.25rem;font-weight:600}.tv-recovery-countdown{font-variant-numeric:tabular-nums;font-weight:800}.tv-pause-banner{text-align:center;padding:.65rem 1rem;margin-bottom:.4rem;background:#7c2d12;color:#ffedd5;font-size:clamp(1.1rem,2vw,1.6rem);font-weight:700;letter-spacing:.02em;flex-shrink:0}.tv-spareggio-banner{text-align:center;padding:.55rem 1rem;margin-bottom:.4rem;background:#1e3a5f;color:#e0f2fe;font-size:clamp(1rem,1.8vw,1.35rem);font-weight:650;letter-spacing:.01em;flex-shrink:0}.spareggio-banner{font-weight:600}.auction-pause-banner{margin:.75rem 0;padding:.65rem .9rem;background:#7c2d12;border:1px solid rgba(251,146,60,.45);border-radius:var(--radius-sm);color:#ffedd5;font-weight:600}.auction-team-header{margin-bottom:1rem}.roster-counts{font-size:.9rem}.roster-counts span{margin-right:.5rem}.player-placeholder{width:80px;height:80px;background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:var(--text-muted);margin-bottom:.75rem}.player-placeholder.large{width:120px;height:120px;font-size:1rem;margin:0 auto 1rem}.player-avatar{position:relative;border-radius:50%;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;margin-bottom:.75rem;border:3px solid transparent;box-shadow:inset 0 1px #ffffff40;line-height:1;-webkit-user-select:none;user-select:none}.player-avatar-md{width:5rem;height:5rem}.player-avatar-lg{width:7.5rem;height:7.5rem;margin:0 auto 1rem}.player-avatar-role{font-weight:800;letter-spacing:.02em}.player-avatar-md .player-avatar-role{font-size:1.65rem}.player-avatar-lg .player-avatar-role{font-size:2.5rem}.player-avatar-initial{font-weight:700;opacity:.9;margin-top:.1rem}.player-avatar-md .player-avatar-initial{font-size:.75rem}.player-avatar-lg .player-avatar-initial{font-size:1rem}.player-avatar-cat-p{background:radial-gradient(circle at 30% 28%,#60a5fa,#1d4ed8);border-color:#93c5fd;color:#eff6ff}.player-avatar-cat-d{background:radial-gradient(circle at 30% 28%,#4ade80,#15803d);border-color:#86efac;color:#f0fdf4}.player-avatar-cat-c{background:radial-gradient(circle at 30% 28%,#fbbf24,#b45309);border-color:#fde68a;color:#fffbeb}.player-avatar-cat-a{background:radial-gradient(circle at 30% 28%,#f87171,#b91c1c);border-color:#fecaca;color:#fef2f2}.player-avatar-cat-unknown{background:radial-gradient(circle at 30% 28%,#94a3b8,#475569);border-color:#cbd5e1;color:#f8fafc}.bid-actions{display:flex;flex-wrap:wrap;gap:.5rem}.bid-reminder-alert{background:var(--accent-hot-soft);border:2px solid rgba(245,158,11,.55);color:#fde68a;padding:1rem;border-radius:8px;font-weight:700;margin-bottom:1rem;animation:pulse .8s ease-in-out infinite alternate}@keyframes pulse{0%{filter:brightness(1)}to{filter:brightness(1.12)}}.tv-screen{--tv-fs-hero: clamp(3.25rem, 6.5vw, 8rem);--tv-fs-overlay-hero: clamp(3.75rem, 7.5vw, 9.5rem);--tv-fs-overlay-body: clamp(1.85rem, 3.6vw, 4.75rem);--tv-fs-rail-title: clamp(1.2rem, 2.2vw, 2.75rem);--tv-fs-rail-name: clamp(1.7rem, 3.1vw, 4rem);--tv-fs-rail-meta: clamp(1.3rem, 2.4vw, 3rem);--tv-fs-rank-num: clamp(1.6rem, 2.8vw, 3.5rem);--tv-fs-team-name: clamp(.95rem, 1.35vw, 1.35rem);--tv-fs-team-credits: clamp(.95rem, 1.35vw, 1.35rem);--tv-fs-team-meta: clamp(.72rem, 1vw, .95rem);--tv-crest: clamp(2.75rem, 3.8vw, 5rem);--tv-rail-pad-y: clamp(.55rem, 1vw, 1.1rem);--tv-rail-gap: clamp(.4rem, .8vw, .9rem);min-height:100vh;height:100vh;overflow:hidden;background:#0f172a;color:#f8fafc;display:flex;flex-direction:column;padding:.65rem .85rem .75rem;box-sizing:border-box}.tv-error{align-items:center;justify-content:center;text-align:center}.tv-bootstrapping{align-items:center;justify-content:center}.tv-bootstrapping .tv-muted{font-size:clamp(1.25rem,2.5vw,2rem);margin:0}.tv-status-bar{display:flex;justify-content:space-between;font-size:.75rem;opacity:.55;margin-bottom:.4rem;flex-shrink:0}.tv-status-link{color:inherit;text-decoration:underline;text-underline-offset:2px}.tv-status-link:hover{opacity:1;color:var(--accent-hover)}.tv-teams-strip{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:.4rem;flex-shrink:0}.tv-teams-header{margin-bottom:.55rem}.tv-teams-footer{margin-top:.55rem;padding-top:.55rem;border-top:1px solid #334155}.tv-main{flex:1;min-height:0;display:grid;grid-template-columns:minmax(20vw,24%) 1fr minmax(22vw,26%);gap:clamp(.75rem,1.5vw,1.5rem) clamp(1rem,2vw,2rem);align-items:stretch}.tv-sidebar h2,.tv-live-ranking-title{font-family:var(--font-display);font-size:var(--tv-fs-rail-title);margin:0 0 clamp(.5rem,1vw,.9rem);text-transform:uppercase;letter-spacing:.08em;opacity:.7}.tv-sidebar-left,.tv-sidebar-right{min-width:0;display:flex;flex-direction:column}.tv-remaining{margin:0 0 clamp(.55rem,1vw,.9rem);font-size:var(--tv-fs-rail-meta);font-weight:600;color:#94a3b8}.tv-queue{list-style:none;padding:0;margin:0}.tv-queue li{padding:var(--tv-rail-pad-y) 0;border-bottom:1px solid #334155;display:flex;flex-direction:column;gap:.25em;line-height:1.2}.tv-queue-name{font-size:var(--tv-fs-rail-name);font-weight:700}.tv-queue-meta{font-size:var(--tv-fs-rail-meta);font-weight:600;color:#94a3b8}.tv-muted{opacity:.45}.tv-center{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}.tv-stage{display:flex;flex-direction:column;align-items:center}.tv-player-card h1{font-family:var(--font-display);font-size:var(--tv-fs-hero);font-weight:800;letter-spacing:-.02em;margin:.35rem 0 .4rem;line-height:1.05}.tv-player-category{margin:0;font-size:clamp(1.5rem,2.8vw,3.25rem);font-weight:600;color:#cbd5e1}.tv-player-meta{margin:.35rem 0 0;font-size:clamp(1.4rem,2.5vw,3rem);color:#94a3b8}.tv-base{font-weight:700;color:#e2e8f0;opacity:1}.tv-countdown{font-family:var(--font-display);font-size:clamp(5.5rem,11vw,10rem);font-weight:800;line-height:1;margin:.85rem 0 0;color:#38bdf8;font-variant-numeric:tabular-nums}.tv-live-ranking{width:100%;margin-top:0}.tv-live-ranking-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--tv-rail-gap)}.tv-live-ranking-item{display:grid;grid-template-columns:clamp(2rem,2.8vw,3.5rem) var(--tv-crest) 1fr;align-items:center;gap:clamp(.45rem,.9vw,.85rem);padding:var(--tv-rail-pad-y) clamp(.55rem,1vw,1rem);border-radius:clamp(8px,.6vw,14px);background:#1e293bf2;border:1px solid #334155;text-align:left;animation:tv-rank-enter .45s ease-out both}.tv-live-ranking-item.rank-1{border-color:#fbbf24;box-shadow:0 0 18px #fbbf2429;background:#45300a8c}.tv-live-ranking-item.rank-2{border-color:#94a3b8}.tv-live-ranking-item.rank-3{border-color:#b45309}.tv-live-ranking-item.is-flash{animation:tv-rank-flash .7s ease-out}.tv-live-rank-num{font-size:var(--tv-fs-rank-num);font-weight:800;color:#94a3b8;font-variant-numeric:tabular-nums}.rank-1 .tv-live-rank-num{color:#fbbf24}.tv-crest-badge{width:var(--tv-crest);height:var(--tv-crest);border-radius:50%;background:radial-gradient(circle at 30% 30%,#475569,#1e293b);border:2px solid #64748b;display:inline-flex;align-items:center;justify-content:center}.rank-1 .tv-crest-badge{border-color:#fbbf24}.tv-crest-initial{font-weight:800;font-size:calc(var(--tv-crest) * .4);color:#e2e8f0}.tv-live-ranking .team-crest-sm{width:var(--tv-crest);height:var(--tv-crest)}.tv-live-team-name{font-size:var(--tv-fs-rail-name);font-weight:700;letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes tv-rank-enter{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes tv-rank-flash{0%{transform:scale(1);filter:brightness(1)}35%{transform:scale(1.03);filter:brightness(1.25)}to{transform:scale(1);filter:brightness(1)}}.crest-placeholder{display:inline-flex;width:2rem;height:2rem;background:#334155;border-radius:4px;align-items:center;justify-content:center;font-size:.7rem}.tv-waiting{text-align:center;padding:3rem 1.5rem}.tv-waiting h1{font-family:var(--font-display);font-size:clamp(2.25rem,5vw,3.5rem);font-weight:800;letter-spacing:-.02em;opacity:.95;margin:0 0 .75rem;background:linear-gradient(135deg,#f1f5f9,#60a5fa);-webkit-background-clip:text;background-clip:text;color:transparent}.tv-waiting:after{content:"";display:block;width:3rem;height:3px;margin:1.25rem auto 0;border-radius:2px;background:var(--accent);opacity:.7;animation:tv-wait-pulse 1.6s ease-in-out infinite}@keyframes tv-wait-pulse{0%,to{opacity:.35;transform:scaleX(.7)}50%{opacity:.9;transform:scaleX(1)}}.tv-team-cell{background:#1e293b;border-radius:8px;padding:.4rem .45rem;display:flex;flex-direction:column;justify-content:center;gap:.12rem;border:2px solid transparent;min-width:0}.tv-team-cell-text{display:flex;flex-direction:column;gap:.12rem;min-width:0}.tv-team-name-row{display:flex;align-items:baseline;justify-content:space-between;gap:.35rem;min-width:0}.tv-team-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--tv-fs-team-name);font-weight:700;line-height:1.15;min-width:0}.tv-team-credits{flex-shrink:0;font-size:var(--tv-fs-team-credits);font-weight:800;font-variant-numeric:tabular-nums;color:#7dd3fc;line-height:1.1;opacity:1}.tv-team-cat{opacity:.75;font-size:var(--tv-fs-team-meta);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tv-team-cell-text strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--tv-fs-team-name);line-height:1.15}.tv-team-missing{border-color:#ef4444;animation:tv-blink .6s ease-in-out infinite alternate}@keyframes tv-blink{0%{box-shadow:0 0 #ef444466}to{box-shadow:0 0 12px 4px #ef4444cc}}.tv-grace-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#dc2626e0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100;text-align:center;padding:1.5rem}.tv-grace-overlay h1{font-size:2.5rem;margin:0 0 .5rem}.tv-grace-countdown{font-size:8rem;font-weight:800;line-height:1;margin:.5rem 0;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.35);font-variant-numeric:tabular-nums}.tv-waiting-sub{margin:0;font-size:clamp(1.25rem,2.8vw,1.75rem);color:var(--muted, #94a3b8);opacity:.95}.tv-waiting-finished:after{animation:none;opacity:.45}.tv-grace-missing-count{font-size:clamp(1.25rem,2.5vw,1.75rem);font-weight:700;margin:0 0 1rem;color:#fff}.tv-grace-missing-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.65rem 1.25rem;max-width:min(90vw,56rem)}.tv-grace-missing-list li{font-size:clamp(1.35rem,3.2vw,2.25rem);font-weight:800;letter-spacing:-.02em;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.35)}.tv-grace-sub{font-size:1.25rem;margin:0 0 1.5rem;opacity:.95}.tv-resolved-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172af2;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:90;text-align:center;padding:clamp(1rem,3vw,3rem);gap:clamp(.75rem,2vh,2rem)}.tv-resolved-overlay h1{font-family:var(--font-display);font-size:var(--tv-fs-overlay-hero);font-weight:800;letter-spacing:-.02em;line-height:1.05;margin:0;max-width:90vw}.tv-resolved-overlay ul{list-style:none;margin:0;padding:0;font-size:var(--tv-fs-overlay-body);font-weight:700;line-height:1.35}.import-summary{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-subtle)}.import-summary ul{margin:.5rem 0;padding-left:1.25rem}.import-errors{max-height:200px;overflow-y:auto;font-size:.85rem;color:#fca5a5}.error-box{margin-top:1rem}.admin-teams-page{max-width:900px}.admin-table-wrap{overflow-x:auto;margin-top:1rem}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table th,.admin-table td{padding:.6rem .5rem;border-bottom:1px solid var(--border-subtle);text-align:left;vertical-align:top;color:var(--text-primary)}.admin-table th{font-weight:600;font-family:var(--font-display);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--bg-muted)}.admin-row-actions{display:flex;flex-direction:column;gap:.35rem}.admin-row-actions button{font-size:.8rem;padding:.4rem .6rem}.temp-password-box{margin:1rem 0 1.25rem;padding:1rem 1.25rem;border:1px solid rgba(59,130,246,.45);border-radius:var(--radius-md);background:var(--accent-soft)}.temp-password-box h2{margin:0 0 .5rem;font-size:1.1rem}.temp-password-value{font-family:var(--font-mono);font-size:1.5rem;font-weight:700;letter-spacing:.08em;margin:.75rem 0;padding:.5rem .75rem;background:var(--bg-muted);border-radius:8px;border:1px solid var(--border-subtle);color:var(--text-primary)}button.reject{background:var(--danger)}button.reject:hover:not(:disabled){background:#f87171}.confirm-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:50;padding:1rem}.confirm-modal{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:1.5rem;max-width:400px;width:100%;box-shadow:var(--shadow-md)}.confirm-modal h2{margin-top:0;font-size:1.2rem}.auction-reset-section{margin-top:2rem;padding:1.25rem;border:1px dashed rgba(239,68,68,.45);border-radius:var(--radius-md);background:var(--danger-soft)}.auction-reset-section h2{margin:0 0 .5rem;font-size:1rem;color:#fca5a5}button.reset-dev{background:var(--danger);margin-top:.75rem}button.reset-dev:hover:not(:disabled){background:#f87171}.admin-home{max-width:720px}.admin-home .card h1{margin-bottom:1.25rem}.admin-dash-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.85rem;margin-top:.5rem}@media(max-width:520px){.admin-dash-grid{grid-template-columns:1fr}}.admin-dash-card{position:relative;display:block;padding:1.15rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-muted);color:inherit;text-decoration:none;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-med) var(--ease-out),background var(--dur-fast) var(--ease-out)}.admin-dash-card:hover{border-color:var(--accent);background:var(--bg-card-hover);box-shadow:0 0 20px #3b82f61f}.admin-dash-card h2{font-family:var(--font-display);font-size:1.05rem;margin:0 0 .35rem;padding-right:5rem;color:var(--text-primary)}.admin-dash-card p{margin:0;font-size:.85rem;color:var(--text-secondary)}.admin-dash-card-badge{position:absolute;top:.75rem;right:.75rem;max-width:48%;text-align:right}.admin-dash-badge{display:inline-block;padding:.2rem .5rem;border-radius:6px;font-size:.7rem;font-weight:600;line-height:1.3}.admin-dash-badge-neutral{background:#94a3b82e;color:var(--text-secondary)}.admin-dash-badge-amber{background:var(--accent-hot-soft);color:#fde68a}.admin-dash-badge-green{background:var(--success-soft);color:#86efac}.admin-nav{position:sticky;top:0;z-index:40;background:#0f172aeb;border-bottom:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.admin-nav-inner{max-width:960px;margin:0 auto;padding:.5rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.admin-nav-links{display:flex;flex-wrap:wrap;gap:.25rem .75rem;align-items:center}.admin-nav-link{font-size:.875rem;font-family:var(--font-display);font-weight:600;color:var(--text-secondary);text-decoration:none;padding:.35rem .1rem;border-bottom:2px solid transparent;letter-spacing:.01em;transition:color var(--dur-fast) var(--ease-out)}.admin-nav-link:hover{color:var(--accent-hover)}.admin-nav-link-active{color:var(--accent-hover);border-bottom-color:var(--accent)}.admin-nav-logout{flex-shrink:0;padding:.4rem .75rem;font-size:.85rem;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-subtle)}.admin-nav-logout:hover:not(:disabled){background:var(--bg-card-hover);border-color:var(--border-strong)}.admin-layout-main{min-height:calc(100vh - 3rem)}.tv-pin-input{font-size:2rem;letter-spacing:.35em;text-align:center;font-family:ui-monospace,monospace;font-weight:700}.tv-login{max-width:360px}.roster-accordion{margin:.75rem 0 1rem;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-muted);padding:.5rem .75rem}.roster-accordion summary{cursor:pointer;font-weight:600;list-style:none;color:var(--text-primary)}.roster-accordion summary::-webkit-details-marker{display:none}.roster-board{display:flex;flex-direction:column;gap:1rem;margin-top:.5rem}.roster-board.compact{gap:.5rem}.roster-category-title{margin:0 0 .35rem;font-size:.95rem;font-family:var(--font-display);color:var(--text-primary)}.roster-board.compact .roster-category-title{font-size:.8rem}.roster-category-count{font-weight:400;color:var(--text-muted)}.roster-player-list{list-style:none;margin:0;padding:0}.roster-player-row{display:grid;grid-template-columns:1fr auto auto;gap:.5rem .75rem;align-items:baseline;padding:.25rem 0;border-bottom:1px solid var(--border-subtle);font-size:.9rem}.roster-board.with-index .roster-player-row{grid-template-columns:auto 1fr auto auto}.roster-board.compact .roster-player-row{font-size:.8rem;grid-template-columns:1fr auto}.roster-board.compact.with-index .roster-player-row{grid-template-columns:auto 1fr auto}.roster-board.compact .roster-player-club{display:none}.roster-player-index{font-variant-numeric:tabular-nums;font-weight:600;color:var(--text-muted);min-width:1.5em}.tv-rosters-overlay .roster-player-index{color:#94a3b8}.roster-player-name{font-weight:500;color:var(--text-primary)}.roster-player-club{color:var(--text-muted);font-size:.85em}.roster-player-price{font-variant-numeric:tabular-nums;font-weight:600;text-align:right;color:var(--text-primary)}.roster-shared-badge{display:inline-block;margin-left:.35rem;padding:.05rem .3rem;font-size:.7em;font-weight:700;vertical-align:middle;background:var(--accent-hot-soft);color:#fde68a;border-radius:3px}.roster-empty{color:var(--text-muted);font-size:.9rem}.roster-shared-summary{margin:0 0 1rem;padding:.5rem .75rem;background:var(--accent-hot-soft);border:1px solid rgba(245,158,11,.4);border-radius:6px;color:#fde68a;font-size:.9rem}.admin-rosters-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin-top:1rem}.admin-roster-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:.75rem;background:var(--bg-muted)}.admin-roster-card-header h2{margin:0 0 .25rem;font-size:1.05rem}.admin-roster-card-header .hint{margin:0 0 .5rem}.tv-rosters-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0f172a;color:#f8fafc;display:flex;flex-direction:column;padding:1rem 1.25rem 1.5rem;overflow:auto}.tv-rosters-overlay-header{flex-shrink:0;margin-bottom:.75rem}.tv-rosters-overlay-header h1{margin:0;font-size:1.75rem;letter-spacing:.02em}.tv-rosters-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem 1rem;align-content:start}.tv-roster-cell{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:.65rem .8rem;min-width:0}.tv-roster-cell-header{margin-bottom:.35rem}.tv-roster-team-name{margin:0 0 .2rem;font-size:clamp(1.05rem,1.6vw,1.45rem);font-weight:700;line-height:1.15}.tv-roster-cell h2{margin:0 0 .15rem;font-size:clamp(1.05rem,1.6vw,1.45rem)}.tv-roster-meta{margin:0 0 .4rem;font-size:clamp(.85rem,1.2vw,1.1rem);color:#94a3b8;display:flex;flex-wrap:wrap;gap:.25rem}.tv-roster-credits{font-weight:700;color:#7dd3fc;font-variant-numeric:tabular-nums}.tv-rosters-overlay .roster-category-title{color:#cbd5e1}.tv-rosters-overlay .roster-player-row{border-bottom-color:#ffffff14}.tv-rosters-overlay .roster-shared-badge{background:#fbbf24;color:#422006}.nav-links{margin:0 0 .75rem;font-size:.9rem}.category-hint-banner{margin:.75rem 0;padding:.65rem .9rem;background:var(--accent-hot-soft);border:1px solid rgba(245,158,11,.4);border-radius:var(--radius-sm);color:#fde68a;font-weight:600;font-size:.95rem}.admin-transition-overlay,.tv-category-overlay,.tv-session-finished-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;display:flex;align-items:center;justify-content:center;background:#0f172ae0;color:#f8fafc;text-align:center;padding:1.5rem}.admin-transition-overlay h2,.tv-category-overlay h1,.tv-session-finished-overlay h1{margin:0;font-size:clamp(1.5rem,4vw,2.75rem);line-height:1.25;max-width:18ch}.tv-session-finished-overlay{z-index:55;background:#0f172af0}.admin-shell{min-height:100vh;background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(59,130,246,.12),transparent),var(--bg-app);color:var(--text-primary)}.admin-shell .admin-layout-main{min-height:calc(100vh - 3rem)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem 1rem 2rem}.auth-page .container{width:100%;max-width:420px;margin:0;padding:0}.auth-brand{font-family:var(--font-display);font-weight:800;font-size:clamp(1.75rem,5vw,2.35rem);letter-spacing:-.03em;text-align:center;margin:0 0 1.35rem;background:linear-gradient(135deg,#f1f5f9 30%,#60a5fa);-webkit-background-clip:text;background-clip:text;color:transparent}.auth-page .card h1{font-size:.95rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:1.25rem}.auth-page label{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.auth-page .nav-links{color:var(--text-muted)}.admin-auction{max-width:720px;margin:0 auto;padding:var(--space-4) var(--space-4) var(--space-6)}.admin-auction .card{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-glow);padding:var(--space-5)}.admin-auction h1{font-family:var(--font-display);font-weight:800;font-size:1.65rem;letter-spacing:-.02em;margin:0 0 var(--space-3);color:var(--text-primary)}.admin-auction h2{font-family:var(--font-display);font-weight:700;letter-spacing:-.01em;color:var(--text-primary)}.admin-auction .auction-status{color:var(--text-secondary);font-family:var(--font-mono);font-size:.8rem}.admin-auction .hint{color:var(--text-secondary);font-size:.85rem}.admin-auction .error{color:#fca5a5;background:var(--danger-soft);border:1px solid rgba(239,68,68,.35);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}.admin-auction .success{color:#86efac}.admin-auction label{color:var(--text-secondary);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.admin-auction input,.admin-auction select{background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.5rem .65rem;font-size:.95rem;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.admin-auction input:focus,.admin-auction select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.admin-auction select option{background:var(--bg-elevated);color:var(--text-primary)}.admin-auction button{background:var(--accent);color:#fff;border-radius:var(--radius-sm);font-family:var(--font-display);font-weight:700;padding:.55rem .9rem;font-size:.9rem;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.admin-auction button:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 0 20px #3b82f640}.admin-auction button:active:not(:disabled){transform:translateY(1px)}.admin-auction button.secondary{background:transparent;color:var(--text-primary);border:1px solid var(--border-strong)}.admin-auction button.secondary:hover:not(:disabled){background:var(--bg-card-hover);border-color:var(--accent);box-shadow:none}.admin-auction button.reset-dev{background:var(--danger)}.admin-auction button.reset-dev:hover:not(:disabled){background:#f87171;box-shadow:0 0 16px #ef444440}.admin-auction .auction-section{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--border-subtle)}.admin-auction .session-tiebreak-block{display:flex;flex-direction:column;gap:var(--space-3);margin:var(--space-3) 0}.admin-auction .session-toggle{display:flex;flex-direction:row;align-items:center;gap:var(--space-3);cursor:pointer;-webkit-user-select:none;user-select:none;margin:0;text-transform:none;letter-spacing:0;font-size:.95rem;font-weight:600;color:var(--text-primary)}.admin-auction .session-toggle.is-disabled{cursor:not-allowed;opacity:.65}.admin-auction .session-toggle input{position:absolute;opacity:0;width:1px;height:1px;margin:0;padding:0;border:0;pointer-events:none}.admin-auction .session-toggle-track{position:relative;flex-shrink:0;width:2.75rem;height:1.5rem;border-radius:999px;background:var(--bg-muted);border:1px solid var(--border-strong);transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.admin-auction .session-toggle-thumb{position:absolute;top:2px;left:2px;width:1.15rem;height:1.15rem;border-radius:50%;background:var(--text-secondary);box-shadow:var(--shadow-sm);transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.admin-auction .session-toggle input:checked+.session-toggle-track{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.admin-auction .session-toggle input:checked+.session-toggle-track .session-toggle-thumb{transform:translate(1.2rem);background:#fff}.admin-auction .session-toggle input:focus-visible+.session-toggle-track{box-shadow:0 0 0 3px var(--accent-soft);border-color:var(--accent)}.admin-auction .session-toggle-text{line-height:1.3}.admin-auction .session-tiebreak-threshold{margin:0;margin-left:calc(2.75rem + var(--space-3));padding-left:var(--space-3);border-left:2px solid var(--border-subtle);transition:opacity var(--dur-fast) var(--ease-out)}.admin-auction .session-tiebreak-threshold.is-dimmed{opacity:.45}.admin-auction .session-tiebreak-threshold select:disabled{cursor:not-allowed;opacity:1}.admin-auction .auction-section h2{font-size:.95rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin:0 0 var(--space-2)}.admin-auction .auction-countdown{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--text-primary)}.admin-auction .missing-team{color:#fca5a5}.admin-auction .auction-teams-grid h3{font-family:var(--font-display);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0 0 var(--space-2)}.admin-auction .temp-password-box{margin:var(--space-3) 0 var(--space-4);padding:var(--space-4);border:1px solid rgba(59,130,246,.45);border-radius:var(--radius-md);background:var(--accent-soft);box-shadow:inset 0 0 0 1px #3b82f61f}.admin-auction .temp-password-box h2{margin:0 0 var(--space-2);font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-hover)}.admin-auction .temp-password-value{font-family:var(--font-mono);font-size:1.75rem;font-weight:700;letter-spacing:.2em;margin:var(--space-3) 0;padding:var(--space-3);background:var(--bg-muted);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);color:var(--text-primary);text-align:center}.admin-auction .category-hint-banner{background:var(--accent-hot-soft);border:1px solid rgba(245,158,11,.4);color:#fde68a;border-radius:var(--radius-sm)}.admin-auction .recovery-table{font-size:.85rem}.admin-auction .recovery-table th{color:var(--text-muted);font-family:var(--font-display);font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-strong)}.admin-auction .recovery-table td{border-bottom:1px solid var(--border-subtle);color:var(--text-primary);padding:.45rem .4rem}.admin-auction .recovery-table tr:hover td{background:#ffffff08}.admin-auction .auction-reset-section{margin-top:var(--space-5);padding:var(--space-4);border:1px dashed rgba(239,68,68,.45);border-radius:var(--radius-md);background:var(--danger-soft)}.admin-auction .auction-reset-section h2{margin:0 0 var(--space-2);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:#fca5a5}.admin-auction .admin-transition-overlay{background:#0b1220eb}.admin-auction .admin-transition-overlay h2{font-family:var(--font-display);font-weight:800}.sound-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;border-radius:999px;border:1px solid rgba(148,163,184,.35);background:#0f172ad9;color:#e2e8f0;cursor:pointer;vertical-align:middle;transition:background .15s ease,border-color .15s ease,color .15s ease}.sound-toggle:hover{border-color:var(--accent);color:#fff}.sound-toggle-muted{color:#94a3b8;opacity:.85}.sound-toggle-icon{display:flex;line-height:0}.sound-toggle-tv{position:fixed;right:1rem;bottom:1rem;z-index:200;width:3rem;height:3rem;box-shadow:0 4px 18px #00000073}.sound-toggle-inline{width:1.85rem;height:1.85rem;margin-left:.15rem}.sound-toggle-inline .sound-toggle-icon svg{width:16px;height:16px}.tv-audio-unlock-banner{position:fixed;left:50%;top:1.25rem;transform:translate(-50%);z-index:210;padding:.65rem 1.25rem;border:1px solid rgba(59,130,246,.55);border-radius:999px;background:#0f172aeb;color:#e2e8f0;font-weight:700;font-size:.95rem;cursor:pointer;box-shadow:0 6px 24px #0006;animation:tv-audio-banner-pulse 1.8s ease-in-out infinite}.tv-audio-unlock-banner:hover{border-color:var(--accent);color:#fff}@keyframes tv-audio-banner-pulse{0%,to{box-shadow:0 6px 24px #0006}50%{box-shadow:0 6px 28px #3b82f659}}.tv-fx-open .tv-player-card{animation:auction-fx-open .45s ease-out}.tv-fx-tick{animation:auction-fx-tick .4s ease-out}.tv-fx-resolve{animation:auction-fx-resolve .55s ease-out}.tv-fx-grace-in{animation:auction-fx-grace .5s ease-out}.auction-fx-open{animation:auction-fx-open .45s ease-out}.auction-fx-tick{animation:auction-fx-tick .4s ease-out}@keyframes auction-fx-open{0%{transform:scale(.96);box-shadow:0 0 #3b82f600}40%{transform:scale(1.03);box-shadow:0 0 0 3px #3b82f68c}to{transform:scale(1);box-shadow:0 0 #3b82f600}}@keyframes auction-fx-tick{0%{transform:scale(1);color:inherit}35%{transform:scale(1.18);color:#fbbf24}to{transform:scale(1)}}@keyframes auction-fx-resolve{0%{filter:brightness(1)}30%{filter:brightness(1.35)}to{filter:brightness(1)}}@keyframes auction-fx-grace{0%{box-shadow:inset 0 0 #fff0}40%{box-shadow:inset 0 0 80px 20px #ffffff2e}to{box-shadow:inset 0 0 #fff0}}.auction-team-nav{display:flex;flex-wrap:wrap;align-items:center;gap:.15rem 0}
