@import"https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600&family=JetBrains+Mono:wght@400;500;600;700&display=swap";:root{--bg: #0c0e14;--bg-surface: #151820;--bg-hover: #1e2230;--bg-elevated: #252a38;--border: #2e3348;--border-subtle: #232840;--text: #e8ebf2;--text-secondary: #b0b8cc;--text-muted: #7d85a0;--accent: #4ADE80;--accent-hover: #6AEE9A;--accent-dim: rgba(74, 222, 128, .12);--accent-glow: rgba(74, 222, 128, .25);--accent-gradient: linear-gradient(135deg, #4ADE80, #FACC15);--accent-gradient-text: linear-gradient(135deg, #4ADE80, #A3E635);--red: #f87171;--blue: #60a5fa;--green: #4ade80;--yellow: #fbbf24;--purple: #c084fc;--cyan: #22d3ee;--orange: #fb923c;--radius: 10px;--radius-sm: 6px;--shadow-card: 0 1px 3px rgba(0, 0, 0, .4), 0 4px 16px rgba(0, 0, 0, .25);--shadow-card-hover: 0 4px 8px rgba(0, 0, 0, .45), 0 12px 32px rgba(0, 0, 0, .3);--shadow-glow: 0 0 20px rgba(74, 222, 128, .15);--font-body: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Cascadia Code", "Fira Code", monospace;--font-display: "Chakra Petch", "IBM Plex Sans", sans-serif}*{margin:0;padding:0;box-sizing:border-box}::selection{background:#4ade8040;color:#fff}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.app-shell{display:flex;flex-direction:column;height:100vh}.app-nav{display:flex;align-items:center;gap:24px;padding:0 20px;height:52px;background:#151820bf;border-bottom:1px solid var(--border-subtle);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);-webkit-app-region:drag;position:relative;z-index:100}.app-title{font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:1px;text-transform:uppercase;background:var(--accent-gradient-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 0 8px rgba(74,222,128,.3))}.nav-links{display:flex;gap:2px;-webkit-app-region:no-drag;position:relative}.nav-link{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:6px 16px;border-radius:var(--radius);font-family:var(--font-body);font-size:13px;font-weight:500;transition:color .2s,background .2s;position:relative}.nav-link:hover{color:var(--text);background:#ffffff0d}.nav-link.active{color:var(--accent);background:var(--accent-dim)}.nav-link.active:after{content:"";position:absolute;bottom:-1px;left:16px;right:16px;height:2px;background:var(--accent);border-radius:2px 2px 0 0}.topbar-right{display:flex;align-items:center;gap:2px;margin-left:auto;-webkit-app-region:no-drag}.window-controls{display:flex;align-items:center;gap:2px}.window-btn{display:flex;align-items:center;justify-content:center;width:36px;height:28px;background:none;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:color .15s,background .15s}.window-btn:hover{color:var(--text);background:#ffffff14}.window-btn-close:hover{color:#fff;background:#e53935}.app-shell.is-fullscreen .app-nav,.demo-viewer.is-fullscreen .app-nav{-webkit-app-region:no-drag}.app-shell.is-fullscreen .window-btn:not(.window-btn-close):not([title="Exit Fullscreen"]):not([title=Fullscreen]),.demo-viewer.is-fullscreen .window-btn:not(.window-btn-close):not([title="Exit Fullscreen"]):not([title=Fullscreen]){display:none}.app-content{flex:1;overflow-y:auto;padding:24px;background:radial-gradient(ellipse at 20% 0%,rgba(74,222,128,.04) 0%,transparent 50%),radial-gradient(ellipse at 80% 100%,rgba(250,204,21,.03) 0%,transparent 50%)}.btn{background:var(--bg-hover);color:var(--text);border:1px solid var(--border);padding:7px 16px;border-radius:var(--radius);cursor:pointer;font-family:var(--font-body);font-size:13px;font-weight:500;transition:background .15s,border-color .15s,transform .1s}.btn:hover{background:var(--bg-elevated);border-color:var(--text-muted)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#0c0e14;font-weight:600}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:var(--shadow-glow)}.btn-link{background:none;border:none;color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px;font-size:inherit;font-family:inherit;padding:0}.btn-link:hover{color:var(--accent-hover)}.progress-section{margin-bottom:16px}.progress-bar-track{height:6px;background:var(--bg-hover);border-radius:3px;overflow:hidden;margin-bottom:6px}.progress-bar-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--accent) 0%,#A3E635 50%,var(--accent) 100%);background-size:200% 100%;box-shadow:0 0 12px #4ade8059;transition:width .15s ease-out;animation:shimmer 2s ease-in-out infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.progress-text{font-size:12px;color:var(--text-secondary);display:flex;align-items:center;gap:8px}.progress-cached{color:var(--green);font-size:11px;font-weight:600}.progress-filename{color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:400px}.alert{padding:10px 14px;border-radius:var(--radius);font-size:13px;margin-bottom:14px}.alert-warning{background:#fbbf241a;border:1px solid rgba(251,191,36,.3);color:var(--yellow)}.errors-section{margin-bottom:14px}.errors-toggle{background:#f8717114;border:1px solid rgba(248,113,113,.25);color:var(--red);padding:7px 14px;border-radius:var(--radius);cursor:pointer;font-family:var(--font-body);font-size:12px;width:100%;text-align:left;display:flex;align-items:center;justify-content:space-between;transition:background .15s}.errors-toggle:hover{background:#f871711f}.toggle-icon{font-size:10px;opacity:.7}.errors-list{background:var(--bg-surface);border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius) var(--radius);max-height:200px;overflow-y:auto;padding:8px}.error-item{font-size:11px;color:var(--text-secondary);padding:3px 6px;font-family:var(--font-mono)}.summary-inline{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);margin-bottom:10px;padding:0 2px}.summary-inline strong{font-family:var(--font-mono);font-weight:600;font-variant-numeric:tabular-nums}.stat-sep{opacity:.3;color:var(--text-muted)}.hl-breakdown{display:inline-flex;gap:6px;margin-left:2px;font-size:11px;font-weight:500}.stat-matches{color:var(--accent)}.stat-wins{color:var(--green)}.stat-losses{color:var(--red)}.stat-highlights{color:var(--cyan)}.stat-total-hl{color:var(--purple)}.stat-multi{color:var(--red)}.stat-ace{color:var(--purple)}.stat-clutch{color:var(--orange)}.stat-hot{color:var(--green)}.stat-long{color:var(--yellow)}.search-bar{position:relative;margin-bottom:10px}.search-input{width:100%;background:var(--bg-surface);color:var(--text);border:1px solid var(--border);padding:9px 36px 9px 14px;border-radius:var(--radius);font-family:var(--font-body);font-size:13px;transition:border-color .2s,box-shadow .2s}.search-input::placeholder{color:var(--text-muted)}.search-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:18px;padding:2px 6px;border-radius:50%;line-height:1;transition:color .15s,background .15s}.search-clear:hover{color:var(--text);background:var(--bg-hover)}.filter-bar{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:12px}.filter-buttons{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.filter-right{display:flex;align-items:center;gap:10px}.filter-count{font-size:12px;color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.view-toggle{display:flex;gap:4px}.filter-btn{background:none;border:1px solid var(--border);color:var(--text-secondary);padding:5px 14px;border-radius:var(--radius);cursor:pointer;font-family:var(--font-body);font-size:12px;font-weight:500;transition:all .15s}.filter-btn:hover{background:var(--bg-hover);color:var(--text);border-color:var(--text-muted)}.filter-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);font-weight:600}.filter-select{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border);padding:5px 26px 5px 10px;border-radius:var(--radius);font-family:var(--font-body);font-size:12px;cursor:pointer;transition:border-color .15s;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%237d85a0'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.filter-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.filter-select:hover{color:var(--text);border-color:var(--text-muted)}.hl-filter-bar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.hl-filter-btn{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:20px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;font-family:var(--font-body);font-size:12px;font-weight:500;transition:all .15s}.hl-filter-btn:hover{border-color:var(--text-muted);color:var(--text-secondary)}.hl-filter-cnt{background:#ffffff0f;border-radius:8px;padding:0 6px;font-size:11px;font-variant-numeric:tabular-nums}.hl-filter-all.active{--fc: var(--accent)}.hl-filter-multi.active{--fc: var(--red)}.hl-filter-ace.active{--fc: var(--purple)}.hl-filter-clutch.active{--fc: var(--orange)}.hl-filter-hot.active{--fc: var(--green)}.hl-filter-streak.active{--fc: var(--yellow)}.hl-filter-fb.active{--fc: var(--red)}.hl-filter-flag.active{--fc: var(--cyan)}.hl-filter-long.active{--fc: var(--yellow)}.hl-filter-btn.active{border-color:var(--fc);color:var(--fc);background:color-mix(in srgb,var(--fc) 10%,transparent)}.hl-filter-btn.active .hl-filter-cnt{background:color-mix(in srgb,var(--fc) 15%,transparent)}.demo-list-sticky-header{position:sticky;top:-24px;z-index:10;background:var(--bg);margin:-24px -24px 0;padding:24px 24px 12px;border-bottom:1px solid var(--border-subtle)}.demo-list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.demo-list-header h2{font-family:var(--font-display);font-size:20px;font-weight:600;letter-spacing:.5px}.demo-list-items{display:flex;flex-direction:column;gap:6px}.day-heading{display:flex;align-items:center;justify-content:space-between;padding:10px 4px 6px;margin-top:10px}.day-heading:first-child{margin-top:0}.day-heading-text{font-family:var(--font-display);font-size:13px;font-weight:600;color:var(--text);letter-spacing:.3px}.day-heading-count{font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums}.demo-report-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-card);transition:border-color .2s,box-shadow .25s,transform .25s;animation:cardIn .35s ease-out both}.demo-report-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-1px);border-color:var(--border)}.demo-report-card.has-highlights{border-left:3px solid var(--yellow)}.demo-report-card.has-ace{border-left-color:var(--purple)}.demo-report-card.has-clutch{border-left-color:var(--orange)}.demo-report-card.spectator{opacity:.55}.demo-report-card.spectator:hover{opacity:.75}.demo-report-card.spectator.has-highlights{opacity:1}@keyframes cardIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.demo-report-header{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;cursor:pointer;transition:background .15s;gap:12px}.demo-report-header:hover{background:var(--bg-hover)}.demo-header-left{flex:1;min-width:0}.demo-report-title{display:flex;align-items:center;gap:8px;margin-bottom:3px}.demo-map{font-family:var(--font-mono);font-weight:600;font-size:14px;color:var(--text)}.match-type-badge{font-size:10px;padding:2px 6px;border-radius:var(--radius-sm);background:var(--accent-dim);color:var(--accent);font-weight:600;letter-spacing:.3px;text-transform:uppercase}.spectator-badge{font-size:10px;padding:2px 6px;border-radius:var(--radius-sm);background:#7d85a01f;color:var(--text-muted);font-weight:500;text-transform:uppercase}.demo-report-subtitle{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--text-secondary);flex-wrap:wrap}.demo-pov-info{display:flex;align-items:center;gap:5px}.team-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.team-dot-red{background:var(--red)}.team-dot-blue{background:var(--blue)}.team-dot-purple{background:var(--purple)}.team-dot-yellow{background:var(--yellow)}.team-dot-none{background:var(--text-muted)}.pov-name{font-weight:600;color:var(--text)}.pov-kd{color:var(--text-secondary);font-family:var(--font-mono);font-size:11px}.demo-score-inline{font-weight:600;font-family:var(--font-mono);font-size:12px}.score-red{color:var(--red)}.score-blue{color:var(--blue)}.score-purple{color:var(--purple)}.score-yellow{color:var(--yellow)}.outcome-badge{font-size:10px;padding:2px 6px;border-radius:var(--radius-sm);font-weight:700;letter-spacing:.5px;text-transform:uppercase}.outcome-win{background:#4ade8026;color:var(--green)}.outcome-loss{background:#f871711f;color:var(--red)}.outcome-draw{background:#fbbf241f;color:var(--yellow)}.demo-duration-inline{font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-size:12px}.demo-date-inline{color:var(--text-muted);font-size:11px}.demo-filename-inline{color:var(--text-muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.demo-header-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.expand-icon{font-size:10px;color:var(--text-muted);transition:transform .25s ease-out}.demo-report-card.expanded .expand-icon{transform:rotate(180deg)}.mini-badges{display:flex;gap:4px;flex-wrap:wrap}.mini-badge{font-size:10px;padding:2px 7px;border-radius:var(--radius-sm);font-weight:600;white-space:nowrap;letter-spacing:.2px}.badge-multi{background:#f8717126;color:var(--red)}.badge-ace{background:#c084fc26;color:var(--purple);box-shadow:0 0 8px #c084fc33;animation:badgePulse 2.5s ease-in-out infinite}.badge-clutch{background:#fb923c26;color:var(--orange);box-shadow:0 0 6px #fb923c26}.badge-hot{background:#4ade8026;color:var(--green)}.badge-streak{background:#fbbf2426;color:var(--yellow)}.badge-fb{background:#f871711f;color:var(--red)}.badge-flag{background:#22d3ee26;color:var(--cyan)}.badge-long{background:#fbbf2426;color:var(--yellow)}@keyframes badgePulse{0%,to{box-shadow:0 0 6px #c084fc26}50%{box-shadow:0 0 14px #c084fc59}}.demo-report-body{border-top:1px solid var(--border-subtle);padding:16px}.demo-detail-toolbar{display:flex;align-items:center;justify-content:space-between}.demo-report-details{display:flex;gap:16px;font-size:12px;color:var(--text-secondary);font-family:var(--font-mono)}.demo-report-actions{display:flex;gap:10px}.detail-separator{border:none;border-top:1px solid var(--border-subtle);margin:16px 0}.demo-report-section{margin-bottom:16px}.demo-report-section h4{font-family:var(--font-display);font-size:12px;font-weight:600;margin-bottom:8px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px}.round-highlights{display:flex;flex-direction:column;gap:4px}.round-row{display:flex;align-items:center;gap:8px;padding:5px 10px;border-radius:var(--radius);background:var(--bg);transition:background .15s}.round-row:hover{background:var(--bg-hover)}.round-label{font-size:11px;font-weight:600;color:var(--text-secondary);font-family:var(--font-mono);min-width:28px;flex-shrink:0}.round-time{font-size:11px;color:var(--text-muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums;min-width:32px;flex-shrink:0}.round-badges{display:flex;flex-direction:column;gap:8px;flex:1}.hl-item{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.hl-chip{font-size:10px;padding:2px 8px;border-radius:var(--radius-sm);font-weight:600;white-space:nowrap;flex-shrink:0}.hl-detail{font-size:10.5px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hl-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.hl-frame{font-size:10px;color:#555;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.hl-btn{display:inline-flex;align-items:center;gap:5px;padding:3px 12px;border-radius:6px;font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s;white-space:nowrap}.hl-btn:disabled{opacity:.35;cursor:not-allowed}.hl-btn-view{border:1px solid #10b981;background:#10b98117;color:#10b981}.hl-btn-view:hover:not(:disabled){background:#10b98130;border-color:#34d399;color:#34d399}.hl-btn-play{border:1px solid #f59e0b;background:#f59e0b17;color:#f59e0b}.hl-btn-play:hover:not(:disabled){background:#f59e0b30;border-color:#fbbf24;color:#fbbf24}.hl-btn-copy{border:1px solid #2a2a45;background:#15153099;color:#aaa}.hl-btn-copy:hover:not(:disabled){border-color:#60a5fa;color:#60a5fa}.hl-btn-record{border:1px solid #ef4444;background:#ef444417;color:#ef4444}.hl-btn-record:hover:not(:disabled){background:#ef444430;border-color:#f87171;color:#f87171}.hl-btn-record.recording{animation:pulse-record 1.5s ease-in-out infinite}@keyframes pulse-record{0%,to{opacity:1}50%{opacity:.5}}.hl-btn-movie{border:1px solid rgba(74,222,128,.3);background:#4ade8012;color:#4ade80}.hl-btn-movie:hover:not(:disabled){background:#4ade8026;border-color:#4ade8099;color:#86efac}.hl-btn-movie-stale{border-color:#facc1559;background:#facc1512;color:#facc15}.hl-btn-movie-stale:hover:not(:disabled){background:#facc1524;border-color:#facc1599;color:#fde047}.movie-mode-progress{font-size:11px;color:var(--text-muted);font-family:var(--font-mono);align-self:center;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.movie-mode-chip{display:inline-flex;align-items:center;font-size:10px;font-family:var(--font-mono);padding:2px 6px;border-radius:4px;border:1px solid;text-decoration:none;cursor:default}.movie-mode-chip.chip-ok{color:#4ade80;border-color:#4ade8040;background:#4ade8012}.movie-mode-chip.chip-warn{color:#facc15;border-color:#facc1540;background:#facc1512}a.movie-mode-chip.chip-warn{cursor:pointer}a.movie-mode-chip.chip-warn:hover{background:#facc1526;border-color:#facc1580}.player-layout{display:flex;flex-direction:column;gap:8px}.teams-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.team-column{background:var(--bg);border-radius:var(--radius);overflow:hidden;border:1px solid var(--border-subtle)}.team-column-header{display:flex;align-items:center;gap:6px;padding:6px 10px;font-family:var(--font-display);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px}.team-header-red{color:var(--red);background:#f8717114}.team-header-blue{color:var(--blue);background:#60a5fa14}.team-header-purple{color:var(--purple);background:#c084fc14}.team-header-yellow{color:var(--yellow);background:#fbbf2414}.team-column-players{display:flex;flex-direction:column}.team-player-row{display:flex;align-items:center;justify-content:space-between;padding:4px 10px;font-size:12px;border-bottom:1px solid var(--border-subtle);transition:background .1s}.team-player-row:last-child{border-bottom:none}.team-player-row:hover{background:#ffffff05}.pov-row{background:#4ade800d}.pov-row .player-name{font-weight:600;color:var(--accent)}.player-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text)}.player-stats{display:flex;gap:8px;flex-shrink:0;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.player-kd{color:var(--text-muted);font-size:11px}.player-ratio{color:var(--text);font-size:11px;font-weight:500;min-width:24px;text-align:right}.spectators-section{display:flex;align-items:baseline;gap:8px;padding:6px 0;font-size:11px;color:var(--text-muted)}.spectators-label{font-family:var(--font-display);font-weight:600;text-transform:uppercase;letter-spacing:.8px;font-size:10px;flex-shrink:0}.spectators-list{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary)}.team-badge{font-size:10px;padding:2px 6px;border-radius:var(--radius-sm);font-weight:500;text-transform:uppercase}.team-red{background:#f8717126;color:var(--red)}.team-blue{background:#60a5fa26;color:var(--blue)}.team-purple{background:#c084fc26;color:var(--purple)}.team-yellow{background:#fbbf2426;color:var(--yellow)}.settings-page{max-width:640px}.settings-page h2{font-family:var(--font-display);font-size:20px;font-weight:600;margin-bottom:24px;letter-spacing:.5px}.settings-section{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:20px;margin-bottom:16px;box-shadow:var(--shadow-card)}.settings-section h3{font-family:var(--font-display);font-size:14px;font-weight:600;margin-bottom:14px;color:var(--text);display:flex;align-items:center;gap:8px}.settings-section h3 .section-icon{font-size:16px;opacity:.7}.settings-field{margin-bottom:14px}.settings-field:last-child{margin-bottom:0}.settings-field label{display:block;font-size:13px;color:var(--text-secondary);margin-bottom:5px;font-weight:500}.field-hint{margin-left:8px;font-size:11px;color:var(--text-muted);font-weight:400}.settings-field input{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--border);padding:8px 12px;border-radius:var(--radius);font-family:var(--font-body);font-size:13px;transition:border-color .2s,box-shadow .2s}.settings-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.settings-field input[type=number]{font-family:var(--font-mono);max-width:160px}.settings-field select{width:100%;max-width:280px;background:var(--bg);color:var(--text);border:1px solid var(--border);padding:8px 12px;border-radius:var(--radius);font-family:var(--font-body);font-size:13px;cursor:pointer;transition:border-color .2s,box-shadow .2s}.settings-field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.settings-field--toggle{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.settings-field--toggle label{flex:1}.settings-field--toggle input[type=checkbox].toggle{appearance:none;-webkit-appearance:none;flex-shrink:0;width:40px;height:22px;background:var(--border);border-radius:11px;cursor:pointer;position:relative;transition:background .2s;margin-top:2px}.settings-field--toggle input[type=checkbox].toggle:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;background:#fff;border-radius:50%;transition:left .2s}.settings-field--toggle input[type=checkbox].toggle:checked{background:var(--accent)}.settings-field--toggle input[type=checkbox].toggle:checked:after{left:21px}.input-group{display:flex;gap:8px}.input-group input{flex:1}.settings-status{margin-top:14px;padding:10px 14px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);font-size:13px;color:var(--text-secondary)}.settings-status.status-success{border-color:#4ade804d;color:var(--green)}.settings-status.status-error{border-color:#f871714d;color:var(--red)}.empty-state{text-align:center;padding:60px 40px;color:var(--text-secondary)}.empty-state-icon{width:80px;height:80px;margin:0 auto 20px;opacity:.4}.empty-state-icon svg{width:100%;height:100%}.empty-state h3{font-family:var(--font-display);font-size:16px;font-weight:600;margin-bottom:8px;color:var(--text)}.empty-state p{margin-bottom:6px;color:var(--text-muted);font-size:13px}.empty-state .btn-primary{margin-top:16px;padding:10px 24px;font-size:14px}.highlight-card{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--radius-sm);background:#ffffff08;cursor:pointer;transition:background .15s}.highlight-card:hover{background:#ffffff0f}.highlight-icon{font-size:11px;font-weight:700;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;background:#ffffff14;flex-shrink:0}.highlight-info{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.highlight-desc{font-size:11px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.highlight-detail{font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.highlight-time{font-size:10px;color:var(--text-muted);font-family:var(--font-mono);flex-shrink:0}.demo-viewer{position:relative;width:100%;height:100vh;display:flex;flex-direction:column;background:#0a0a12;overflow:hidden}.viewer-canvas{flex:1;min-height:0}.viewer-canvas canvas{display:block}.viewer-actions{border-left:1px solid var(--border-subtle);margin-left:4px;padding-left:6px}.viewer-action-play{color:#f59e0b!important}.viewer-action-play:hover{background:#f59e0b1a!important;color:#fbbf24!important}.viewer-action-trim{color:var(--accent)!important}.viewer-action-trim:hover{background:#4ade801a!important}.viewer-action-record{color:#ef4444!important}.viewer-action-record:hover{background:#ef44441a!important;color:#f87171!important}.viewer-action-record:disabled{opacity:.5;cursor:not-allowed}.viewer-action-record.recording{animation:pulse-record 1.5s ease-in-out infinite}.viewer-merge-error{color:#ef4444;font-size:.75rem;padding:4px 8px}.viewer-merge-ok{color:#4ade80;font-size:.75rem;padding:4px 8px}.nav-select{background:transparent;border:1px solid var(--border-subtle);color:var(--text-muted);font-family:var(--font-body);font-size:.8rem;padding:4px 8px;border-radius:var(--radius-sm);cursor:pointer;outline:none;-webkit-app-region:no-drag}.nav-select:hover{color:var(--text);border-color:var(--border);background:#ffffff0d}.nav-select:disabled{opacity:.5;cursor:not-allowed}.nav-select option{background:var(--bg-surface);color:var(--text)}.viewer-settings-topbar-btn{padding:6px 8px!important;display:flex;align-items:center;justify-content:center;margin-right:8px}.viewer-loading,.viewer-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:200;background:#000000e6;border:1px solid var(--accent);padding:18px 28px;border-radius:4px;font-size:14px;color:var(--text)}.viewer-error{color:var(--red);border-color:#f871714d}.viewer-info-panel{position:absolute;top:64px;left:20px;background:#000000d9;padding:20px;border:1px solid var(--accent);border-radius:4px;z-index:100;max-width:350px}.viewer-info-panel h1{font-family:var(--font-display);font-size:18px;margin:0 0 15px;color:#0fc;text-transform:uppercase;letter-spacing:2px}.viewer-info-panel p{font-size:12px;margin:5px 0;color:#8fa}.vip-label{color:#666;margin-right:6px}.vip-controls-hint{margin-top:15px!important;color:#666!important;font-size:10px!important;line-height:1.6}.viewer-map-download-prompt{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:120;background:#0a0c14eb;backdrop-filter:blur(12px);border:1px solid rgba(74,222,128,.3);border-radius:var(--radius);padding:20px 28px;display:flex;align-items:center;gap:16px;font-family:var(--font-body);font-size:14px;color:var(--text);box-shadow:0 4px 24px #00000080,0 0 20px #4ade8014}.viewer-map-download-prompt strong{color:var(--accent)}.viewer-map-download-actions{display:flex;gap:8px;flex-shrink:0}.viewer-map-download-btn{background:#4ade8026;color:var(--accent);border:1px solid var(--accent);padding:6px 18px;border-radius:4px;cursor:pointer;font-family:var(--font-body);font-size:13px;font-weight:600;transition:background .15s,box-shadow .15s}.viewer-map-download-btn:hover{background:#4ade8040;box-shadow:0 0 12px #4ade8033}.viewer-map-download-skip{background:transparent;color:var(--text-muted);border:1px solid var(--border);padding:6px 14px;border-radius:4px;cursor:pointer;font-family:var(--font-body);font-size:13px;transition:background .15s,color .15s}.viewer-map-download-skip:hover{background:var(--bg-hover);color:var(--text-secondary)}.viewer-map-download-error{border-color:#f8717166}.viewer-map-download-error span{color:var(--red)}.viewer-map-download-done{border-color:#4ade8066;flex-direction:column;align-items:flex-start;max-width:460px}.viewer-map-download-done .viewer-map-download-skip{align-self:flex-end}.viewer-map-download-result{display:flex;flex-direction:column;gap:8px;width:100%}.viewer-map-download-files{list-style:none;margin:0;max-height:160px;overflow-y:auto;font-family:var(--font-mono);font-size:11px;color:var(--text-muted);background:#0000004d;border-radius:var(--radius-sm);padding:8px 10px}.viewer-map-download-files li{padding:1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.viewer-map-download-notfound{border-color:var(--border)}.viewer-map-download-notfound span{color:var(--text-muted)}.viewer-player-list{position:absolute;top:64px;right:20px;background:#000000d9;padding:20px;border:1px solid var(--accent);border-radius:4px;z-index:100;max-height:400px;overflow-y:auto;min-width:200px}.viewer-player-list h2{font-family:var(--font-display);font-size:14px;margin:0 0 10px;color:#0fc;text-transform:uppercase;letter-spacing:1px}.vpl-hint{font-size:9px;color:#666;margin-bottom:8px}.vpl-items{display:flex;flex-direction:column;gap:2px}.vpl-item{display:flex;align-items:center;gap:10px;padding:5px 8px;font-size:12px;cursor:pointer;border-radius:3px;transition:background .2s,border-color .2s;border:1px solid transparent}.vpl-item:hover{background:#00ff881a;border-color:#00ff884d}.vpl-item.following{background:#0f83;border-color:var(--accent)}.vpl-item.following:after{content:attr(data-mode-label);margin-left:auto;font-size:9px;color:var(--accent);letter-spacing:1px;font-weight:700}.vpl-item.following .vpl-score{display:none}.vpl-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.vpl-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.vpl-pov-badge{font-size:10px;flex-shrink:0}.vpl-score{margin-left:auto;font-size:11px;color:#999;font-family:var(--font-mono);white-space:nowrap}.viewer-settings-area{position:absolute;top:52px;right:14px;z-index:150}.viewer-settings-panel{min-width:180px;max-height:calc(100vh - 80px);overflow-y:auto;background:#0a0a12eb;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:10px 14px;backdrop-filter:blur(12px)}.viewer-settings-panel h3{margin:0 0 8px;font-size:11px;font-family:var(--font-display);color:#888;text-transform:uppercase;letter-spacing:.05em}.vs-toggle{display:flex;align-items:center;gap:8px;font-size:13px;color:#ccc;cursor:pointer;user-select:none}.vs-toggle input[type=checkbox]{appearance:none;width:34px;height:18px;border-radius:9px;background:#ffffff1f;position:relative;cursor:pointer;transition:background .2s;flex-shrink:0}.vs-toggle input[type=checkbox]:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#666;transition:transform .2s,background .2s}.vs-toggle input[type=checkbox]:checked{background:#4ade8059}.vs-toggle input[type=checkbox]:checked:after{transform:translate(16px);background:#4ade80}.vs-toggle input[type=checkbox]:disabled{opacity:.4;cursor:not-allowed}.vs-toggle+.vs-toggle{margin-top:4px}.vs-divider{height:1px;background:#ffffff14;margin:8px 0 4px}.vs-hint{font-size:10px;color:#666;font-style:italic}.vs-setting-group{display:flex;align-items:center;gap:8px;margin-top:6px}.vs-label{font-size:11px;color:#aaa;min-width:52px}.vs-seg-btn{display:inline-flex;border-radius:6px;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.vs-seg-btn button{background:#ffffff0d;border:none;color:#888;font-size:10px;font-family:var(--font-body);padding:3px 10px;cursor:pointer;transition:background .15s,color .15s}.vs-seg-btn button:not(:last-child){border-right:1px solid rgba(255,255,255,.08)}.vs-seg-btn button:hover:not(:disabled){background:#ffffff1a;color:#ccc}.vs-seg-btn button.active{background:#4ade8033;color:#4ade80}.vs-seg-btn button:disabled{opacity:.4;cursor:not-allowed}.viewer-kill-feed{position:absolute;top:20px;right:300px;width:300px;z-index:100;pointer-events:none}.kf-item{background:#000c;border-left:3px solid #ff4444;padding:8px 12px;margin-bottom:4px;font-size:11px;animation:killFeedSlide .3s ease-out;opacity:1;transition:opacity .5s;color:#ccc}.kf-killer{font-weight:700}.kf-kill-count{color:#888;font-size:10px}.kf-victim{font-weight:700}@keyframes killFeedSlide{0%{transform:translate(50px);opacity:0}to{transform:translate(0);opacity:1}}.viewer-score-display{position:absolute;bottom:80px;right:20px;background:#000000e6;border:2px solid var(--accent);border-radius:8px;padding:15px 30px;z-index:150;text-align:center;min-width:200px}.vsd-round{font-size:14px;font-weight:700;color:var(--accent);letter-spacing:1px;text-transform:uppercase;margin-bottom:4px}.vsd-time{font-family:var(--font-mono);font-size:28px;font-weight:700;color:#0fc;letter-spacing:2px}.vsd-scores{display:flex;justify-content:center;gap:40px;margin-top:10px}.vsd-team{text-align:center}.vsd-team-name{font-size:12px;text-transform:uppercase;letter-spacing:1px}.vsd-team-score{font-family:var(--font-mono);font-size:32px;font-weight:700}.vsd-blue .vsd-team-name,.vsd-blue .vsd-team-score{color:#48f}.vsd-red .vsd-team-name,.vsd-red .vsd-team-score{color:#f44}.vsd-purple .vsd-team-name,.vsd-purple .vsd-team-score{color:#a47de8}.vsd-yellow .vsd-team-name,.vsd-yellow .vsd-team-score{color:#daaa3f}.vsd-match-info{font-size:10px;color:#666;margin-top:8px}.viewer-event-stats{position:absolute;bottom:80px;left:20px;background:#000000d9;padding:10px 15px;border:1px solid var(--accent);border-radius:4px;z-index:100;font-size:11px}.viewer-event-stats h3{font-family:var(--font-display);font-size:12px;margin:0 0 8px;color:#0fc;text-transform:uppercase}.ves-stat{display:flex;justify-content:space-between;gap:20px;margin:3px 0;color:#8fa}.ves-value{color:#fc0;font-family:var(--font-mono)}.viewer-round-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000000e6;border:2px solid var(--accent);padding:30px 60px;font-family:var(--font-display);font-size:24px;text-transform:uppercase;letter-spacing:4px;z-index:300;text-align:center;animation:roundOverlayFade 3s ease-out forwards;pointer-events:none}.viewer-round-overlay.round-start{border-color:var(--accent);color:var(--accent)}.viewer-round-overlay.round-end-blue{border-color:#48f;color:#48f}.viewer-round-overlay.round-end-red{border-color:#f44;color:#f44}.viewer-round-overlay.round-end-purple{border-color:#a47de8;color:#a47de8}.viewer-round-overlay.round-end-yellow{border-color:#daaa3f;color:#daaa3f}.viewer-round-overlay.round-end-tie{border-color:#888;color:#888}.viewer-round-overlay.game-start{border-color:#fbbf24;color:#fbbf24}.viewer-round-overlay.game-end{border-color:#a855f7;color:#a855f7}.viewer-round-overlay.overtime{border-color:#f97316;color:#f97316}@keyframes roundOverlayFade{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}10%{opacity:1;transform:translate(-50%,-50%) scale(1)}70%{opacity:1}to{opacity:0}}.viewer-crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:120;pointer-events:none;width:20px;height:20px}.viewer-crosshair:before,.viewer-crosshair:after{content:"";position:absolute;background:#fff9;border-radius:1px}.viewer-crosshair:before{top:50%;left:0;width:100%;height:2px;transform:translateY(-50%)}.viewer-crosshair:after{left:50%;top:0;width:2px;height:100%;transform:translate(-50%)}.viewer-controls{background:#05050feb;border-top:1px solid rgba(0,255,136,.2);flex-shrink:0}.tl-bar{position:relative;width:100%;height:38px;padding:0 20px;cursor:pointer;user-select:none}.tl-track{position:absolute;left:20px;right:20px;top:20px;height:4px;background:#1a1a2e;border-radius:2px}.tl-progress{height:100%;width:0%;background:linear-gradient(90deg,#00ff8821,#00ff8845);border-radius:2px}.tl-marker-area{position:absolute;left:20px;right:20px;top:0;height:100%}.tl-playhead{position:absolute;top:10px;width:2px;height:24px;background:var(--accent);transform:translate(-1px);pointer-events:none;z-index:12}.tl-playhead:before{content:"";position:absolute;top:-3px;left:-5px;width:12px;height:12px;background:var(--accent);border-radius:50%;box-shadow:0 0 8px #0f86}.tl-round-band{position:absolute;top:17px;height:10px;opacity:.12;pointer-events:none;z-index:1}.tl-round-band.odd{background:#0f8}.tl-round-band.even{background:#48f}.tl-round-marker{position:absolute;top:26px;width:1px;height:8px;z-index:5;pointer-events:none}.tl-round-marker.rs{background:#0f86}.tl-round-marker.re{background:#f446}.tl-round-marker.re-blue{background:#48f9;height:10px}.tl-round-marker.re-red{background:#f449;height:10px}.tl-round-marker.re-purple{background:#a47de899;height:10px}.tl-round-marker.re-yellow{background:#daaa3f99;height:10px}.tl-round-marker.re-tie{background:#8889;height:10px}.tl-hl-marker{position:absolute;top:6px;width:10px;height:10px;border-radius:50%;transform:translate(-5px);z-index:8;cursor:pointer;border:1.5px solid rgba(255,255,255,.25);transition:transform .12s,box-shadow .12s}.tl-hl-marker:hover{transform:translate(-5px) scale(1.6);z-index:20;border-color:#fff9}.tl-hl-tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#080814f5;border:1px solid #333;border-radius:6px;padding:5px 10px;white-space:nowrap;font-size:11px;color:#ddd;pointer-events:none;opacity:0;transition:opacity .12s;z-index:100;font-family:var(--font-body)}.tl-hl-tooltip .hl-type-badge{display:inline-block;font-size:9px;font-weight:700;padding:1px 6px;border-radius:8px;color:#fff;margin-right:5px;text-transform:uppercase;letter-spacing:.03em}.tl-hl-tooltip .hl-time{color:#888;font-variant-numeric:tabular-nums;margin-left:6px}.tl-hl-marker:hover .tl-hl-tooltip{opacity:1}.tl-kill-marker{position:absolute;top:20px;width:4px;height:8px;background:#ef4444b3;border-radius:1px;transform:translate(-2px);z-index:7;cursor:pointer;transition:transform .12s,background .12s}.tl-kill-marker:hover{transform:translate(-2px) scaleX(1.5) scaleY(1.3);background:#ef4444;z-index:20}.tl-kill-tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#080814f5;border:1px solid #333;border-radius:6px;padding:5px 10px;white-space:nowrap;font-size:11px;color:#ddd;pointer-events:none;opacity:0;transition:opacity .12s;z-index:100;font-family:var(--font-body)}.tl-kill-tooltip .kill-victim{color:#ef4444;font-weight:600}.tl-kill-tooltip .hl-time{color:#888;font-variant-numeric:tabular-nums;margin-left:6px}.tl-kill-marker:hover .tl-kill-tooltip{opacity:1}.tl-controls-row{display:flex;align-items:center;gap:14px;padding:6px 20px 8px}.tl-btn{background:var(--accent);color:#000;border:none;padding:6px 14px;cursor:pointer;font-family:var(--font-body);font-weight:700;font-size:12px;border-radius:2px;transition:all .15s}.tl-btn:hover{background:var(--accent-hover)}.tl-btn:active{transform:scale(.95)}.tl-btn-play{min-width:80px}.tl-time-display{font-size:13px;min-width:60px;text-align:center;color:var(--accent);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.tl-speed-control{display:flex;align-items:center;gap:8px;margin-left:auto}.tl-speed-label{font-size:12px;color:var(--text-muted)}.tl-speed-select{background:#222;color:var(--accent);border:1px solid var(--accent);padding:5px 10px;font-family:var(--font-body);font-size:12px;cursor:pointer;border-radius:2px}.tl-speed-select:focus{outline:none}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.player-name-wrapper{cursor:pointer}.player-profile-popover{z-index:1000;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 20px #0006;padding:10px 12px;width:max-content;max-width:300px;max-height:320px;display:flex;flex-direction:column;white-space:normal;animation:popover-fade-in .15s ease-out}@keyframes popover-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.popover-loading,.popover-empty{font-size:12px;color:var(--text-muted);text-align:center;padding:4px 0}.popover-header{display:flex;align-items:center;gap:6px;padding-bottom:6px;border-bottom:1px solid var(--border);flex-shrink:0}.popover-display-name{font-weight:600;font-size:13px}.popover-clan{font-size:12px;color:var(--accent)}.popover-id{margin-left:auto;font-size:10px;color:var(--text-muted);font-family:var(--font-mono)}.popover-body{overflow-y:auto;padding:6px 0;min-height:0}.popover-field{display:flex;gap:8px;font-size:11px;padding:2px 0;line-height:1.4}.popover-field-bio{flex-direction:column;gap:2px}.popover-label{color:var(--text-muted);flex-shrink:0;min-width:70px}.popover-value{color:var(--text);word-break:break-word}.popover-value-scroll{max-height:60px;overflow-y:auto}.popover-website{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.popover-link{display:block;width:100%;padding:6px 0 0;background:none;border:none;border-top:1px solid var(--border);color:var(--accent);font-size:11px;cursor:pointer;text-align:center;flex-shrink:0;transition:color .15s}.popover-link:hover{color:var(--accent-hover)}.server-browser{display:flex;flex-direction:column;gap:16px}.server-browser-header{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.server-browser-header h2{font-family:var(--font-display);font-size:20px;font-weight:600;margin:0}.server-browser-stats{display:flex;gap:16px;align-items:center;flex:1}.stat-item{font-size:13px;color:var(--text-secondary)}.stat-value{font-family:var(--font-mono);font-weight:600;color:var(--accent)}.stat-muted{font-size:12px;color:var(--text-muted)}.server-browser-loading,.server-browser-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 0;color:var(--text-muted)}.server-table{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--bg-surface)}.server-table-header{display:grid;grid-template-columns:1fr 140px 90px 80px 80px 72px;gap:0;padding:0;background:var(--bg-elevated);border-bottom:1px solid var(--border)}.server-table-header>*{padding:10px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:none;border:none;cursor:pointer;text-align:left;white-space:nowrap;user-select:none;transition:color .15s}.server-table-header>*:hover{color:var(--text)}.server-table-header>div{cursor:default}.server-row-group{border-bottom:1px solid var(--border-subtle)}.server-row-group:last-child{border-bottom:none}.server-row{display:grid;grid-template-columns:1fr 140px 90px 80px 80px 72px;gap:0;cursor:pointer;transition:background .15s}.server-row:hover,.server-row-group.expanded .server-row{background:var(--bg-hover)}.server-row>div{padding:10px 12px;font-size:13px;display:flex;align-items:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.server-name{font-weight:500;overflow:hidden;text-overflow:ellipsis}.server-col-players .has-players{color:var(--accent);font-weight:600;font-family:var(--font-mono)}.server-col-players,.server-col-ping{font-family:var(--font-mono);font-size:12px}.server-col-flags{gap:4px}.server-flag{display:inline-flex;align-items:center;justify-content:center;padding:1px 5px;font-size:10px;font-weight:600;font-family:var(--font-mono);border-radius:3px;background:var(--bg-elevated);color:var(--text-muted);border:1px solid var(--border)}.flag-cert{color:var(--accent);border-color:var(--accent-dim)}.server-col-join{justify-content:center}.ping-good{color:var(--green)}.ping-ok{color:var(--yellow)}.ping-bad{color:var(--red)}.btn-sm{padding:4px 12px;font-size:12px;border-radius:var(--radius-sm)}.btn-accent{background:var(--accent-dim);color:var(--accent);border:1px solid rgba(74,222,128,.2);cursor:pointer;font-weight:600;transition:background .15s,border-color .15s}.btn-accent:hover{background:#4ade8033;border-color:#4ade8059}.server-players{background:var(--bg);border-top:1px solid var(--border-subtle);padding:8px 12px 12px 24px}.server-players-empty{padding:12px 24px}.player-list-header{display:grid;grid-template-columns:1fr 80px 80px;padding:4px 8px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border-subtle);margin-bottom:2px}.player-row{display:grid;grid-template-columns:1fr 80px 80px;padding:4px 8px;font-size:13px;border-radius:var(--radius-sm);transition:background .1s}.player-row:hover{background:var(--bg-hover)}.player-col-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-col-score,.player-col-ping{font-family:var(--font-mono);font-size:12px;text-align:right}.window-controls{display:none!important}.app-nav,.nav-links,.topbar-right,.app-shell.is-fullscreen .app-nav,.demo-viewer.is-fullscreen .app-nav{-webkit-app-region:unset}.wasm-loading{display:flex;align-items:center;justify-content:center;height:100vh;font-family:var(--font-display);font-size:1.25rem;color:var(--text-secondary);background:var(--bg)}.fullscreen-prompt{display:flex;align-items:center;justify-content:center;height:100vh;padding:2rem;background:var(--bg)}.fullscreen-prompt-card{display:flex;flex-direction:column;align-items:center;gap:1rem;max-width:28rem;padding:3rem 2.5rem;text-align:center;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg, 12px)}.fullscreen-prompt-icon{font-size:3rem;line-height:1}.fullscreen-prompt-card h2{margin:0;font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--text)}.fullscreen-prompt-card p{margin:0;font-family:var(--font-body);font-size:.95rem;line-height:1.5;color:var(--text-secondary)}.fullscreen-prompt-card .text-muted{color:var(--text-muted)}.fullscreen-prompt-card .text-sm{font-size:.8rem}.fullscreen-prompt-card code{font-family:var(--font-mono);font-size:.8rem;padding:.15em .4em;background:var(--bg-hover);border-radius:4px}.fullscreen-prompt-card .btn-lg{padding:.75rem 2rem;font-size:1rem}.connect-folder-section{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem 1rem;text-align:center}.connect-folder-section p{color:var(--text-secondary);max-width:28rem}.connect-folder-status{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:var(--radius-sm);background:var(--accent-dim);color:var(--accent);font-size:.875rem}
