:root{--bg: #2e3440;--surface: #3b4252;--surface-hover: #434c5e;--border: #4c566a;--text: #eceff4;--text-muted: #d8dee9;--text-dim: #9aa5b8;--gold: #ebcb8b;--gold-dim: #ebcb8b30;--blue: #88c0d0;--red: #bf616a;--green: #a3be8c;--nord-cyan: #8fbcbb;--nord-blue: #81a1c1;--nord-purple: #b48ead;--nord-orange: #d08770;--pixel-font: "Press Start 2P", monospace;--mono-font: "Share Tech Mono", monospace;--body-font: system-ui, -apple-system, sans-serif;--fz-xs: 12px;--fz-sm: 13px;--fz-base: 15px;--fz-md: 16px;--fz-lg: 18px;--fz-xl: 22px;--fz-xxl: 28px}@media(min-width:1440px){:root{--fz-xs: 13px;--fz-sm: 14px;--fz-base: 16px;--fz-md: 18px;--fz-lg: 20px;--fz-xl: 24px;--fz-xxl: 30px}}@media(max-width:768px){:root{--fz-xs: 11px;--fz-sm: 12px;--fz-base: 13px;--fz-md: 14px;--fz-lg: 16px;--fz-xl: 18px;--fz-xxl: 22px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%}body{background:var(--bg);color:var(--text);font-family:var(--body-font);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}@media(max-width:768px){body{font-size:14px}}@media(min-width:1440px){body{font-size:18px}}.app-layout{display:flex;flex-direction:column;height:100vh;width:100%}.topbar{display:flex;align-items:center;justify-content:space-between;height:48px;min-height:48px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--gold-dim);flex-shrink:0;position:sticky;top:0;z-index:100}.topbar-left{flex-shrink:0}.topbar-title{font-family:var(--pixel-font);font-size:12px;color:var(--gold);letter-spacing:2px;white-space:nowrap}.topbar-center{display:flex;align-items:center;gap:0}.tab-group-sep{width:1px;height:18px;background:var(--border);margin:0 10px;opacity:.7}.topbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0;font-family:var(--mono-font);font-size:11px;color:var(--text-muted);letter-spacing:.5px}.tab-btn{background:none;border:none;color:var(--text-muted);font-family:var(--body-font);font-size:13px;font-weight:500;padding:14px 16px;cursor:pointer;position:relative;transition:color .15s;white-space:nowrap}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--gold)}.tab-btn.active:after{content:"";position:absolute;bottom:0;left:16px;right:16px;height:2px;background:var(--gold)}.topbar.v7{background:var(--bg);border-bottom:1px solid var(--border, rgba(255,255,255,.1));font-family:var(--mono-font)}.topbar-brand{font-family:var(--mono-font);font-size:14px;color:var(--text-muted, #999);letter-spacing:.5px}.topbar-brand-acc{color:var(--gold, #ebcb8b);font-weight:600}.topbar-brand-at{color:var(--text-dim, #555)}.tab-btn.v7{display:flex;align-items:center;gap:6px;padding:10px 14px;font-family:var(--mono-font);font-size:12px;letter-spacing:.3px;text-transform:lowercase;border:1px solid transparent}.tab-btn.v7 .tab-key{font-size:9px;padding:1px 4px;background:#ffffff0a;border:1px solid var(--border-dim, rgba(255,255,255,.08));border-radius:2px;color:var(--text-dim, #555)}.tab-btn.v7.active{color:var(--gold);background:#ebcb8b0f}.tab-btn.v7.active .tab-key{color:var(--gold);border-color:var(--gold-dim, rgba(235,203,139,.3))}.topbar-meta{display:flex;align-items:center;gap:8px;font-family:var(--mono-font);font-size:11px;color:var(--text-muted)}.topbar-meta-sep{color:var(--text-dim, #555)}.compete-view{display:flex;flex-direction:column;height:100%;overflow:hidden}.compete-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:24px 28px 16px;border-bottom:1px solid var(--border-dim)}.compete-title{font-family:var(--mono-font);font-size:28px;font-weight:700;color:var(--text);margin:0 0 4px;letter-spacing:-.5px}.compete-title-prompt{color:var(--gold);margin-right:8px}.compete-sub{font-family:var(--mono-font);font-size:12px;color:var(--text-muted);max-width:720px}.compete-hero-cta{display:flex;align-items:center;gap:10px}.compete-hero-cta-hint{font-family:var(--mono-font);font-size:11px;color:var(--text-dim)}.compete-body{flex:1;overflow-y:auto;padding:22px 28px 40px}.compete-section-label{font-family:var(--mono-font);font-size:var(--fz-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:12px}.compete-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}@media(max-width:900px){.compete-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.compete-grid{grid-template-columns:1fr}}.compete-card{display:flex;flex-direction:column;gap:6px;padding:18px;border:1px solid var(--border);background:var(--surface);font-family:var(--mono-font);cursor:pointer;transition:border-color .15s,background .15s}.compete-card:hover{border-color:var(--gold-dim);background:#ebcb8b08}.compete-card.primary{border-color:var(--gold);background:#ebcb8b0f}.compete-card-top{display:flex;justify-content:space-between;align-items:center}.compete-card-glyph{color:var(--gold);font-size:26px;line-height:1}.compete-card-queue{font-size:10px;color:var(--text-dim)}.compete-card-name{font-size:15px;font-weight:600;color:var(--text);margin-top:4px}.compete-card-name.acc{color:var(--gold)}.compete-card-desc{font-size:11px;color:var(--text-muted);line-height:1.5}.compete-card-bottom{display:flex;justify-content:flex-end;margin-top:8px}.compete-card-cta{font-size:10px;color:var(--gold);letter-spacing:1px}.compete-why{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:32px;padding:18px;border:1px solid var(--border-dim);font-family:var(--mono-font)}@media(max-width:720px){.compete-why{grid-template-columns:1fr}}.compete-why-h{font-size:10px;color:var(--gold);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:6px}.compete-why-b{font-size:11px;color:var(--text-muted);line-height:1.7}.compete-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:24px;overflow-y:auto}.compete-dialog{width:100%;max-width:760px;max-height:calc(100vh - 48px);overflow-y:auto;background:var(--bg);border:1px solid var(--gold);font-family:var(--mono-font);padding:24px 28px 20px}.compete-dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.compete-dialog-meta{display:flex;gap:10px;align-items:center}.compete-dialog-tag{font-size:var(--fz-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:2px}.compete-dialog-queue{font-size:var(--fz-xs);color:var(--text-muted)}.compete-dialog-close{background:transparent;border:1px solid var(--border-dim);color:var(--text-muted);width:28px;height:28px;cursor:pointer;font-size:16px;border-radius:3px}.compete-dialog-close:hover{color:var(--text);background:var(--surface)}.compete-dialog-title{font-family:var(--mono-font);font-size:var(--fz-xl);color:var(--text);margin:6px 0 4px;font-weight:700;letter-spacing:-.3px}.compete-dialog-title-glyph{color:var(--gold);margin-right:6px}.compete-dialog-desc{font-size:var(--fz-sm);color:var(--text-muted);margin-bottom:18px}.compete-name-field{margin-bottom:18px;padding:12px 14px;border:1px solid var(--border-dim, var(--border));background:var(--surface)}.compete-name-label{display:block;font-family:var(--mono-font);font-size:var(--fz-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:1.2px;margin-bottom:6px}.compete-name-row{display:flex;align-items:center;gap:10px}.compete-name-input{flex:1;font-family:var(--mono-font);font-size:var(--fz-md);color:var(--text);background:var(--bg);border:1px solid var(--border);padding:8px 12px;outline:none;transition:border-color .15s}.compete-name-input:focus{border-color:var(--gold)}.compete-name-sanitized{font-family:var(--mono-font);font-size:var(--fz-sm);color:var(--text-muted)}.compete-name-sanitized code{background:var(--bg);color:var(--gold);padding:2px 6px;border:1px solid var(--border)}.compete-name-hint{margin-top:6px;font-size:var(--fz-xs);color:var(--text-dim)}.compete-dialog-section{margin-bottom:16px}.compete-code-wrap{position:relative}.compete-code{background:var(--surface);border:1px solid var(--border);padding:12px 14px;font-size:var(--fz-sm);color:var(--text);line-height:1.55;margin:0;white-space:pre-wrap;word-break:break-all;overflow-x:auto}.compete-code-actions{position:absolute;top:8px;right:8px}.compete-dialog-qr{display:flex;gap:14px;align-items:center;padding:12px;border:1px solid var(--border-dim);margin-bottom:16px}.compete-qr-img{width:100px;height:100px;padding:4px;background:#fff;border-radius:3px;flex-shrink:0}.compete-qr-title{font-size:var(--fz-xs);color:var(--gold);text-transform:uppercase;letter-spacing:1.2px;margin-bottom:4px}.compete-qr-steps{font-size:var(--fz-sm);color:var(--text-muted);line-height:1.6}.compete-dialog-next{border:1px solid var(--border-dim);padding:12px 14px;font-size:var(--fz-sm);color:var(--text-muted);line-height:1.7;margin-bottom:18px}.compete-next-label{color:var(--gold);font-weight:600;letter-spacing:.3px;display:block;margin-bottom:4px}.compete-dialog-next ul{margin:0;padding-left:14px}.compete-dialog-next li{margin:2px 0}.compete-dialog-next strong{color:var(--gold)}.compete-dialog-actions{display:flex;gap:10px;justify-content:flex-end}.compete-dialog-watching{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px dashed var(--border-dim);border-radius:4px;margin-bottom:14px;background:var(--surface);transition:border-color .2s,background .2s}.compete-dialog-watching.active{border-style:solid;border-color:var(--gold);background:#ebcb8b0d}.compete-watch-dot{width:10px;height:10px;border-radius:50%;background:var(--text-dim);flex-shrink:0}.compete-dialog-watching.active .compete-watch-dot{background:var(--gold);animation:pulse 1.4s infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.compete-watch-title{font-size:11px;color:var(--text);font-weight:600;margin-bottom:2px}.compete-dialog-watching.active .compete-watch-title{color:var(--gold)}.compete-watch-sub{font-size:10px;color:var(--text-muted);line-height:1.5}.compete-watch-sub strong{color:var(--text);font-weight:600}.compete-dialog-watching.active .compete-watch-sub strong{color:var(--gold)}.me-view{display:flex;flex-direction:column;height:100%;overflow:hidden}.me-hero{display:flex;justify-content:space-between;align-items:flex-start;padding:24px 28px 16px;border-bottom:1px solid var(--border-dim);gap:16px}.me-title{font-family:var(--mono-font);font-size:24px;color:var(--text);margin:0 0 4px;font-weight:700}.me-title-prompt{color:var(--gold);margin-right:8px}.me-title-name{color:var(--gold)}.me-sub{font-family:var(--mono-font);font-size:12px;color:var(--text-muted)}.me-hero-actions{display:flex;gap:8px}.me-body{flex:1;overflow-y:auto;padding:22px 28px 40px;font-family:var(--mono-font)}.me-picker{padding:22px 28px;max-width:560px}.me-picker-label{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:8px}.me-picker-input{width:100%;padding:10px 14px;background:var(--surface);border:1px solid var(--border);color:var(--text);font-family:var(--mono-font);font-size:13px;margin-bottom:12px}.me-picker-input:focus{outline:none;border-color:var(--gold)}.me-picker-list{display:flex;flex-direction:column;gap:2px;margin-bottom:14px}.me-picker-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;padding:8px 12px;background:transparent;border:1px solid transparent;color:var(--text);font-family:var(--mono-font);font-size:12px;cursor:pointer;text-align:left}.me-picker-row:hover{border-color:var(--border-dim);background:var(--surface)}.me-picker-name{font-weight:600}.me-picker-elo{color:var(--gold)}.me-picker-record{color:var(--text-dim)}.me-picker-empty{font-size:11px;color:var(--text-dim);padding:12px;text-align:center}.me-picker-hint{font-size:11px;color:var(--text-muted);margin-top:14px}.me-picker-link{background:none;border:none;color:var(--gold);cursor:pointer;font-family:var(--mono-font);font-size:11px;text-decoration:underline;padding:0}.me-statgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:24px}@media(max-width:600px){.me-statgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}.me-stat{padding:12px;border:1px solid var(--border-dim)}.me-stat-label{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px}.me-stat-value{font-size:22px;font-weight:600;color:var(--text)}.me-section{margin-bottom:28px}.me-section-label{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:10px}.me-table{width:100%;border-collapse:collapse;font-family:var(--mono-font);font-size:12px}.me-table th{text-align:left;padding:8px 12px;border-bottom:1px solid var(--border-dim);color:var(--text-dim);text-transform:uppercase;font-size:9px;letter-spacing:1.5px;font-weight:500}.me-table td{padding:9px 12px;border-bottom:1px solid var(--border-dim);color:var(--text)}.me-table-gt{color:var(--text-muted)}.me-recent-row{cursor:pointer}.me-recent-row:hover{background:var(--surface)}.me-footer-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.me-error,.me-loading{padding:30px 28px;color:var(--text-muted);font-family:var(--mono-font);font-size:12px}button.cta{padding:10px 18px;background:var(--gold);color:var(--bg, #0a0a0a);border:1px solid var(--gold);font-family:var(--mono-font);font-size:12px;font-weight:600;letter-spacing:.3px;cursor:pointer;white-space:nowrap}button.cta:hover,button.cta.ghost{background:transparent;color:var(--gold)}button.cta.ghost:hover{background:var(--gold);color:var(--bg, #0a0a0a)}button.btn{padding:8px 14px;background:transparent;border:1px solid var(--border);color:var(--text-muted);font-family:var(--mono-font);font-size:11px;cursor:pointer;white-space:nowrap}button.btn:hover{color:var(--text);border-color:var(--border-dim)}.watch-layout{display:flex;flex-direction:column;height:100%;overflow:hidden}.watch-header{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 24px 14px;border-bottom:1px solid var(--border-dim);gap:16px;flex-shrink:0}.watch-h1{margin:0 0 4px;font-family:var(--mono-font);font-size:24px;color:var(--text);font-weight:700}.watch-h1-prompt{color:var(--gold);margin-right:8px}.watch-h1-sub{font-family:var(--mono-font);font-size:11px;color:var(--text-muted);display:flex;align-items:center;gap:4px}.watch-grid{display:grid;grid-template-columns:260px 1fr 280px;flex:1;min-height:0;overflow:hidden}@media(max-width:1100px){.watch-grid{grid-template-columns:220px 1fr 240px}}.watch-sidebar{border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.watch-sidebar-filter{display:flex;gap:4px;padding:10px 12px;border-bottom:1px solid var(--border-dim);flex-shrink:0}.watch-filter-chip{padding:3px 10px;font-family:var(--mono-font);font-size:10px;background:transparent;border:1px solid var(--border-dim);color:var(--text-muted);cursor:pointer;letter-spacing:.5px}.watch-filter-chip.active{background:var(--gold);color:var(--bg);border-color:var(--gold)}.watch-sidebar-list{flex:1;overflow-y:auto}.watch-list-section{padding:10px 14px 4px;font-family:var(--mono-font);font-size:9px;color:var(--text-dim);text-transform:uppercase;letter-spacing:1.5px}.watch-match-row{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;padding:10px 14px;border-left:2px solid transparent;background:transparent;border-top:none;border-right:none;border-bottom:none;font-family:var(--mono-font);cursor:pointer;width:100%;text-align:left;color:var(--text)}.watch-match-row:hover{background:var(--surface)}.watch-match-row.active{background:#ebcb8b14;border-left-color:var(--gold)}.watch-match-row.ended{opacity:.7}.watch-match-row.replay{opacity:.75}.watch-match-marker{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:42px}.watch-match-result{font-size:11px;font-weight:700;color:var(--text)}.watch-match-id{font-size:9px;color:var(--text-dim)}.watch-match-body{min-width:0}.watch-match-players{font-size:12px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.watch-match-game{font-size:10px;color:var(--text-dim);margin-top:2px}.watch-sidebar-empty{padding:18px 14px;font-family:var(--mono-font);font-size:11px;color:var(--text-muted);line-height:1.6}.watch-sidebar-empty strong{color:var(--gold)}.watch-center{display:flex;flex-direction:column;min-width:0;overflow:hidden}.watch-board{flex:3;min-height:0;overflow:auto;position:relative;border-bottom:1px solid var(--border)}.watch-feed{flex:2;min-height:0;display:flex;flex-direction:column;overflow:hidden}.watch-feed .action-feed-panel{flex:1;border-left:none;border-top:1px solid transparent;max-width:none;min-width:0;width:100%;min-height:0;height:100%}.playback-controls{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface);padding:6px 12px 4px;display:flex;flex-direction:column;gap:2px;flex-shrink:0}.playback-controls .feed-scrubber{margin:0;padding:4px 0}.playback-controls .action-feed-controls{border-top:none;padding:2px 0;justify-content:flex-start}.watch-empty-center{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 20px;gap:8px}.watch-empty-title{font-family:var(--mono-font);font-size:14px;color:var(--text)}.watch-empty-sub{font-family:var(--mono-font);font-size:11px;color:var(--text-muted)}.watch-empty-sub strong{color:var(--gold)}.watch-empty-queue{display:flex;flex-direction:column;gap:4px;margin-top:4px;font-family:var(--mono-font);font-size:12px}.watch-empty-queue-row{display:flex;gap:8px;align-items:baseline;justify-content:center}.watch-empty-queue-count{color:var(--gold);font-weight:600}.watch-empty-actions{display:flex;gap:10px;margin-top:16px}.watch-context{border-left:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;background:var(--bg)}.watch-context-section{padding:14px 16px;border-bottom:1px solid var(--border-dim)}.watch-context-section:last-child{border-bottom:none}.watch-context-label{font-family:var(--mono-font);font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:10px}.watch-context-player{padding:6px 0;border-bottom:1px solid var(--border-dim);font-family:var(--mono-font)}.watch-context-player:last-child{border-bottom:none}.watch-player-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.watch-player-name{font-size:12px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis}.watch-player-stat{font-size:10px;color:var(--text-muted)}.watch-player-verdict{font-size:10px;margin-top:3px;font-family:var(--mono-font)}.verdict-won{color:var(--green, #4ade80)}.verdict-lost{color:var(--red, #ef4444)}.verdict-draw{color:var(--text-dim)}.watch-moment{padding:6px 10px;margin:4px 0;font-family:var(--mono-font);font-size:11px;color:var(--text);border-left:2px solid var(--border-dim);background:var(--surface);line-height:1.5;display:flex;gap:6px;align-items:flex-start}.watch-moment-turn{color:var(--text-dim);font-variant-numeric:tabular-nums;flex:0 0 auto}.watch-moment-note{flex:1 1 auto;min-width:0;word-break:break-word}.watch-moment.severity-major{border-left-color:var(--gold, #ebcb8b);background:#ebcb8b0f}.watch-moment.severity-minor{border-left-color:var(--blue, #88c0d0)}.watch-moment.impact-win{border-left-color:var(--green, #4ade80)}.watch-moment.impact-loss{border-left-color:var(--red, #ef4444)}.watch-context-empty{font-family:var(--mono-font);font-size:11px;color:var(--text-dim);padding:4px 0}.connect-header-btn{background:var(--gold);color:var(--bg);border:none;padding:5px 14px;font-size:11px;font-weight:700;letter-spacing:.5px;border-radius:4px;cursor:pointer;transition:opacity .15s;margin-right:12px}.connect-header-btn:hover{opacity:.85}.connect-header-btn.active{background:var(--text)}.connect-dropdown{position:relative;z-index:90;border-bottom:1px solid var(--gold-dim);background:var(--bg);padding:0 24px 16px;max-height:70vh;overflow-y:auto}.connect-dropdown-close{display:block;margin:12px auto 0;background:none;border:1px solid var(--border);color:var(--text-muted);padding:4px 20px;font-size:12px;border-radius:3px;cursor:pointer}.connect-dropdown-close:hover{background:var(--surface);color:var(--text)}.connect-qr{display:flex;gap:16px;align-items:center;padding:12px 14px;border:1px solid var(--border-dim);border-radius:4px;background:#ffffff05}.connect-qr-img{width:120px;height:120px;background:#fff;border-radius:4px;padding:4px;flex-shrink:0}.connect-qr-text{flex:1;font-size:12px;color:var(--text-dim);line-height:1.6}.connect-qr-title{font-family:var(--pixel-font);font-size:10px;color:var(--text);letter-spacing:1px;margin-bottom:6px}.connect-qr-steps strong{color:var(--text)}@media(max-width:600px){.connect-qr{flex-direction:column;align-items:flex-start}}.connect-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto}.connect-modal{position:relative;background:var(--bg);border:1px solid var(--gold-dim);border-radius:6px;max-width:780px;width:100%;max-height:calc(100vh - 80px);overflow-y:auto;padding:24px 24px 16px;box-shadow:0 8px 32px #00000080}.connect-modal-close{position:absolute;top:10px;right:10px;background:transparent;border:1px solid var(--border);color:var(--text-muted);width:32px;height:32px;cursor:pointer;font-size:18px;line-height:1;border-radius:3px;z-index:1}.connect-modal-close:hover{background:var(--surface);color:var(--text)}@media(max-width:600px){.connect-modal-overlay{padding:20px 8px}.connect-modal{padding:20px 16px 12px}}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;margin-left:6px;border-radius:8px;background:var(--red);color:#fff;font-size:10px;font-weight:700;line-height:1}.connection-dot{width:8px;height:8px;border-radius:50%;background:var(--red);flex-shrink:0}.connection-dot.connected{background:var(--green)}.connection-label{text-transform:uppercase}.tab-content{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.tab-content>.ranks-page,.tab-content>.compete-view,.tab-content>.me-view,.tab-content>.docs-page{overflow-y:auto;overflow-x:hidden;flex:1;min-height:0}.tab-content>*{animation:fadeIn .15s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.live-waiting{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:400px;gap:24px;padding:48px 24px}.live-waiting-title{font-family:var(--pixel-font);font-size:14px;color:var(--text-dim);letter-spacing:2px;animation:subtlePulse 3s ease-in-out infinite}@keyframes subtlePulse{0%,to{opacity:1}50%{opacity:.4}}.live-queue-summary{display:flex;gap:32px;color:var(--text-muted);font-size:14px}.live-queue-item{display:flex;align-items:center;gap:8px}.live-queue-count{color:var(--gold);font-family:var(--mono-font);font-weight:700}.game-info-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 32px;background:var(--surface);border-bottom:1px solid var(--border)}.game-info-bar .game-name{font-family:var(--pixel-font);font-size:10px;color:var(--gold);letter-spacing:1px}.game-info-bar .game-round{font-family:var(--mono-font);font-size:13px;color:var(--text-muted)}.game-info-bar .game-players{font-size:13px;color:var(--text-muted)}.game-over-overlay{display:flex;flex-direction:column;align-items:center;padding:64px 24px;gap:32px;animation:fadeIn .3s ease-in}.game-over-label{font-family:var(--pixel-font);font-size:10px;color:var(--text-muted);letter-spacing:3px;text-transform:uppercase}.game-over-winner{font-family:var(--pixel-font);font-size:16px;color:var(--gold);letter-spacing:2px;text-align:center}.game-over-standings{width:100%;max-width:560px}.elo-changes{display:flex;flex-direction:column;gap:8px;width:100%;max-width:400px}.elo-changes-title{font-family:var(--pixel-font);font-size:9px;color:var(--text-dim);letter-spacing:1px;margin-bottom:4px}.elo-change-row{display:flex;justify-content:space-between;padding:4px 0;font-size:14px;color:var(--text)}.elo-positive{color:var(--green)}.elo-negative{color:var(--red)}.auction-layout{display:block;height:100%;overflow:hidden}.auction-main{padding:32px;overflow-y:auto;display:flex;flex-direction:column;gap:24px}.auction-header{display:flex;align-items:center;gap:16px;font-family:var(--mono-font);font-size:var(--fz-sm);color:var(--text-muted)}.auction-round{color:var(--gold);font-weight:600;letter-spacing:.4px}.auction-turn-inline{color:var(--text-muted)}.auction-turn-inline strong{color:var(--text);font-weight:600}.auction-sidebar{padding:24px;background:var(--surface);overflow-y:auto;border-left:1px solid var(--border)}.auction-item{display:flex;flex-direction:column;gap:8px}.auction-item-name{font-family:var(--pixel-font);font-size:14px;color:var(--text);letter-spacing:1px}.auction-item-set{display:inline-block;font-family:var(--mono-font);font-size:12px;color:var(--gold);padding:2px 10px;background:var(--gold-dim);border-radius:2px;width:fit-content}.auction-item-desc{color:var(--text-muted);font-size:14px;max-width:520px;line-height:1.5}.auction-bid-display{display:flex;align-items:baseline;gap:12px}.auction-bid-amount{font-family:var(--pixel-font);font-size:28px;color:var(--gold);line-height:1}.auction-bid-unit{font-family:var(--mono-font);font-size:14px;color:var(--text-dim)}.auction-bid-by,.auction-turn{font-size:14px;color:var(--text-muted)}.auction-turn-name{color:var(--gold);font-weight:600}.bid-feed{display:flex;flex-direction:column;gap:2px}.bid-feed-title{font-family:var(--pixel-font);font-size:9px;color:var(--text-dim);letter-spacing:1px;margin-bottom:8px}.bid-entry{display:flex;align-items:baseline;gap:10px;padding:6px 10px;font-size:13px;border-left:2px solid var(--border);transition:background .1s}.bid-entry:hover{background:var(--surface-hover)}.bid-entry.action-bid{border-left-color:var(--gold)}.bid-entry.action-pass,.bid-entry.action-fold{border-left-color:var(--text-dim)}.bid-entry-name{color:var(--text);min-width:90px;font-weight:500}.bid-entry-action{font-family:var(--mono-font);font-size:13px;color:var(--gold)}.bid-entry-action.pass,.bid-entry-action.fold{color:var(--text-dim)}.bid-entry-message{color:var(--text-muted);font-style:italic;font-size:12px}.sidebar-title{font-family:var(--pixel-font);font-size:9px;color:var(--text-dim);letter-spacing:1px;margin-bottom:16px}.standing-row{display:flex;flex-direction:column;gap:4px;padding:12px 0;border-bottom:1px solid var(--border)}.standing-row:last-child{border-bottom:none}.standing-row.is-turn{padding-left:12px;border-left:2px solid var(--gold)}.standing-header{display:flex;justify-content:space-between;align-items:center}.standing-name{font-size:14px;color:var(--text);font-weight:500}.standing-score{font-family:var(--mono-font);font-size:13px;color:var(--gold)}.standing-meta{display:flex;gap:16px;font-size:13px;color:var(--text-muted)}.standing-sets{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}.standing-set-badge{font-family:var(--mono-font);font-size:11px;color:var(--gold);padding:1px 6px;background:var(--gold-dim);border-radius:2px}.round-history{margin-top:8px}.round-history-toggle{background:none;border:none;color:var(--text-muted);font-family:var(--body-font);font-size:13px;cursor:pointer;padding:8px 0;display:flex;align-items:center;gap:8px}.round-history-toggle:hover{color:var(--text)}.round-history-list{display:flex;flex-direction:column;gap:6px;padding-top:8px}.round-entry{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;font-size:13px;background:var(--surface);border-radius:2px}.round-entry-item{color:var(--text)}.round-entry-winner{color:var(--text-muted)}.round-entry-bid{font-family:var(--mono-font);color:var(--gold)}.dungeon-layout{display:block;height:100%;overflow:hidden}.dungeon-main{padding:24px;overflow:auto;display:flex;flex-direction:column;align-items:center;gap:16px}.dungeon-header{display:flex;align-items:center;gap:14px;font-family:var(--mono-font);font-size:var(--fz-sm);color:var(--text-muted);letter-spacing:.3px}.dungeon-turn-no{color:var(--gold);font-weight:600}.dungeon-active-char{text-transform:lowercase;color:var(--text)}.dungeon-sidebar{padding:24px;background:var(--surface);overflow-y:auto;border-left:1px solid var(--border);display:flex;flex-direction:column;gap:24px}.dungeon-grid{display:grid;gap:1px;background:var(--border)}.dungeon-cell{width:48px;height:48px;position:relative;display:flex;align-items:center;justify-content:center;background:#0c0c16}.dungeon-cell.terrain-wall{background:#2a2a3a}.dungeon-cell.terrain-cover{background:repeating-linear-gradient(45deg,#0c0c16,#0c0c16 3px,#141420 3px,#141420 6px)}.dungeon-cell.terrain-high_ground{background:#10102a}.dungeon-cell.terrain-spring{background:#081828}.dungeon-cell.terrain-flag-0{background:#0c1c30}.dungeon-cell.terrain-flag-1{background:#200c0c}.cell-terrain-icon{position:absolute;font-size:14px;color:var(--text-dim);pointer-events:none;opacity:.6}.cell-terrain-icon.spring{color:var(--blue)}.cell-terrain-icon.flag-0{color:var(--blue);font-size:18px}.cell-terrain-icon.flag-1{color:var(--red);font-size:18px}.cell-trap{position:absolute;top:3px;right:3px;width:6px;height:6px;border-radius:50%}.cell-trap.trap-team-0{background:var(--blue);opacity:.6}.cell-trap.trap-team-1{background:var(--red);opacity:.6}.cell-char{display:flex;flex-direction:column;align-items:center;gap:2px;z-index:1}.cell-char-letter{font-family:var(--pixel-font);font-size:10px;line-height:1;padding:3px 4px;border:1px solid;border-radius:2px}.cell-char-letter.team-0{color:var(--blue);border-color:var(--blue)}.cell-char-letter.team-1{color:var(--red);border-color:var(--red)}.cell-char-letter.is-active{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}.cell-char-hp{width:26px;height:3px;background:#1a1a25;border-radius:1px;overflow:hidden}.cell-char-hp-fill{height:100%;transition:width .3s}.cell-char-shield{position:absolute;top:-2px;right:-2px;font-size:8px}.dungeon-turn-info{display:flex;flex-direction:column;gap:8px}.dungeon-turn-label{font-family:var(--pixel-font);font-size:9px;color:var(--text-dim);letter-spacing:1px}.dungeon-turn-team{font-family:var(--pixel-font);font-size:11px}.dungeon-turn-team.team-0{color:var(--blue)}.dungeon-turn-team.team-1{color:var(--red)}.dungeon-ap{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted)}.ap-dot{width:10px;height:10px;border-radius:50%;border:1px solid var(--text-dim)}.ap-dot.filled{background:var(--gold);border-color:var(--gold)}.active-char-card{padding:12px;background:var(--surface-hover);border-radius:2px;display:flex;flex-direction:column;gap:6px}.active-char-class{font-family:var(--pixel-font);font-size:9px;color:var(--gold);letter-spacing:1px}.active-char-stat{font-size:13px;color:var(--text-muted)}.team-section{display:flex;flex-direction:column;gap:8px}.team-label{font-family:var(--pixel-font);font-size:9px;letter-spacing:1px}.team-label.team-0{color:var(--blue)}.team-label.team-1{color:var(--red)}.roster-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:13px;color:var(--text)}.roster-row.dead{opacity:.25;text-decoration:line-through}.roster-hp-bar{width:48px;height:4px;background:#1a1a25;border-radius:1px;overflow:hidden}.roster-hp-fill{height:100%}.action-log{display:flex;flex-direction:column;gap:3px;max-height:200px;overflow-y:auto}.action-log-title{font-family:var(--pixel-font);font-size:9px;color:var(--text-dim);letter-spacing:1px;margin-bottom:6px}.log-entry{font-size:12px;color:var(--text-muted);padding:2px 0;line-height:1.4}.queue-view{padding:48px 24px;display:flex;flex-direction:column;align-items:center;gap:48px;max-width:600px;margin:0 auto}.queue-section{width:100%;display:flex;flex-direction:column;gap:16px;padding:24px;background:var(--surface);border-radius:4px}.queue-game-name{font-family:var(--pixel-font);font-size:11px;color:var(--text);letter-spacing:1px}.queue-players{display:flex;flex-wrap:wrap;gap:8px}.queue-player-chip{padding:6px 14px;background:var(--surface-hover);color:var(--text);font-size:14px;border-radius:2px}.queue-progress-text{font-size:14px;color:var(--text-muted)}.queue-progress-text .ready{color:var(--green);font-weight:600}.queue-bar{width:100%;height:4px;background:var(--surface-hover);border-radius:2px;overflow:hidden}.queue-bar-fill{height:100%;background:var(--gold);transition:width .3s}.queue-bar-fill.is-ready{background:var(--green)}.queue-in-progress{font-family:var(--pixel-font);font-size:10px;color:var(--gold);letter-spacing:1px;animation:subtlePulse 2s ease-in-out infinite}.queue-empty{color:var(--text-dim);font-size:14px}.history-view{padding:32px 24px;max-width:900px;margin:0 auto}.page-title{font-family:var(--pixel-font);font-size:11px;color:var(--text-dim);letter-spacing:1px;margin-bottom:24px}.history-empty{color:var(--text-dim);font-size:14px;text-align:center;padding:64px 0}.rankings-view{padding:32px 24px;max-width:700px;margin:0 auto}.rankings-empty{color:var(--text-dim);font-size:14px;text-align:center;padding:64px 0}.rankings-updated{font-size:12px;color:var(--text-dim);margin-top:16px}.rules-view{padding:clamp(24px,3vw,48px);max-width:min(1100px,95vw);margin:0 auto}.rules-loading{color:var(--text-dim);font-size:14px;text-align:center;padding:64px 0}.rules-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:24px;border-bottom:1px solid var(--border);padding-bottom:12px}.rules-tab-btn{background:var(--surface);color:var(--text-muted);border:1px solid var(--border);padding:8px 14px;font-size:12px;font-weight:600;letter-spacing:.5px;border-radius:4px;cursor:pointer;transition:all .15s;font-family:var(--body-font)}.rules-tab-btn:hover{background:var(--surface-hover);color:var(--text)}.rules-tab-btn.active{background:var(--gold);color:var(--bg);border-color:var(--gold)}.rules-content{line-height:1.7;color:var(--text);font-size:clamp(14px,1vw + 10px,18px)}.rules-content h1{font-family:var(--pixel-font);font-size:clamp(14px,1.2vw + 8px,20px);color:var(--gold);letter-spacing:1px;margin:48px 0 16px}.rules-content h1:first-child{margin-top:0}.rules-content h2{font-family:var(--pixel-font);font-size:clamp(11px,.8vw + 7px,16px);color:var(--text);letter-spacing:1px;margin:32px 0 12px}.rules-content h3{font-family:var(--pixel-font);font-size:clamp(10px,.6vw + 6px,13px);color:var(--text-muted);letter-spacing:1px;margin:24px 0 8px}.rules-content p{margin:0 0 16px;color:var(--text-muted);font-size:inherit}.rules-content ul,.rules-content ol{margin:0 0 16px;padding-left:24px}.rules-content li{margin-bottom:6px;font-size:inherit;color:var(--text)}.rules-content table{width:100%;border-collapse:collapse;margin:0 0 16px;font-size:clamp(13px,.9vw + 9px,16px)}.rules-content table th{text-align:left;font-family:var(--pixel-font);font-size:clamp(9px,.5vw + 6px,12px);color:var(--text-dim);letter-spacing:1px;padding:10px 14px;border-bottom:1px solid var(--border)}.rules-content table td{padding:10px 14px;color:var(--text);border-bottom:1px solid var(--border)}.rules-content table tbody tr:hover{background:var(--surface)}.rules-content code{font-family:var(--mono-font);background:var(--surface);padding:2px 6px;border-radius:2px;font-size:.92em}.rules-content pre{background:var(--surface);padding:16px 20px;border-radius:6px;overflow-x:auto;margin:0 0 20px;font-size:clamp(12px,.8vw + 8px,15px);line-height:1.55}.rules-content pre code{background:none;padding:0;font-size:inherit}.rules-content strong{color:var(--gold);font-weight:600}.rules-content em{color:var(--text-muted)}.rules-content hr{border:none;border-top:1px solid var(--border);margin:32px 0}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th{text-align:left;font-family:var(--pixel-font);font-size:9px;color:var(--text-dim);letter-spacing:1px;padding:10px 12px;border-bottom:1px solid var(--border)}.data-table td{padding:10px 12px;color:var(--text)}.data-table tbody tr:nth-child(2n){background:var(--surface)}.data-table tbody tr:hover{background:var(--surface-hover)}.data-table tbody tr.clickable,.rankings-row-clickable{cursor:pointer}.agent-name-link{color:var(--link, #7aa2f7);text-decoration:none}.rankings-row-clickable:hover .agent-name-link{text-decoration:underline}.rankings-hint{font-size:11px;margin:4px 0 8px}.agent-profile-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:1000;display:flex;align-items:center;justify-content:center;padding:40px 16px}.agent-profile-container{background:var(--bg);border:1px solid var(--border);border-radius:6px;max-width:720px;width:100%;max-height:90vh;overflow-y:auto}.agent-profile{padding:20px 24px}.agent-profile-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--border-dim);padding-bottom:12px;margin-bottom:16px}.agent-profile-header h2{margin:0 0 8px;font-family:var(--pixel-font);font-size:16px;color:var(--text)}.agent-profile-close{background:transparent;border:1px solid var(--border-dim);color:var(--text-dim);width:28px;height:28px;cursor:pointer;font-size:16px;line-height:1;border-radius:3px}.agent-profile-close:hover{color:var(--text);background:var(--surface-hover)}.agent-profile-stats{display:flex;gap:12px;flex-wrap:wrap}.stat-box{display:flex;flex-direction:column;gap:2px;padding:6px 10px;border:1px solid var(--border-dim);border-radius:3px;min-width:60px}.stat-label{font-size:9px;color:var(--text-dim);letter-spacing:.5px}.stat-value{font-family:var(--mono-font);font-size:14px;color:var(--text)}.agent-profile-section{margin-top:20px}.agent-profile-section .section-title{font-family:var(--pixel-font);font-size:10px;color:var(--text-dim);letter-spacing:1px;margin-bottom:8px}.elo-up{color:var(--green, #4ade80)}.elo-down{color:var(--red, #ef4444)}.agent-profile-loading,.agent-profile-error{padding:30px 16px;text-align:center;color:var(--text-dim)}.agent-profile-error{color:var(--red, #ef4444)}.rank-num{font-family:var(--pixel-font);font-size:10px}.rank-1{color:#e8c440}.rank-2{color:#a0a8b8}.rank-3{color:#cd7f32}.text-dim{color:var(--text-dim)}.text-muted{color:var(--text-muted)}.text-gold{color:var(--gold)}.text-green{color:var(--green)}.text-red{color:var(--red)}.text-blue{color:var(--blue)}.font-mono{font-family:var(--mono-font)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}@media(max-width:768px){.topbar{padding:0 12px}.topbar-title{font-size:10px}.tab-btn{font-size:12px;padding:14px 8px}.topbar-right .connection-label{display:none}.auction-layout{grid-template-columns:1fr}.auction-sidebar{border-left:none;border-top:1px solid var(--border)}.dungeon-layout{grid-template-columns:1fr}.dungeon-sidebar{border-left:none;border-top:1px solid var(--border)}.dungeon-cell{width:36px;height:36px}.cell-char-letter{font-size:8px;padding:2px 3px}.queue-view{padding:24px 16px;gap:24px}.history-view,.rankings-view,.rules-view{padding:24px 16px}.game-over-overlay{padding:32px 16px}.data-table{display:block;overflow-x:auto}}.history-detail-header{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--border)}.history-detail-meta{font-size:13px;color:var(--text-muted);margin-left:auto}.history-back-btn{background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:6px 14px;font-size:13px;cursor:pointer;font-family:var(--mono-font);transition:background .15s}.history-back-btn:hover{background:var(--surface-hover)}.history-detail-results{display:flex;gap:12px;padding:10px 16px;flex-wrap:wrap;border-bottom:1px solid var(--border)}.history-standing{font-family:var(--mono-font);font-size:12px;color:var(--text-muted);padding:3px 10px;background:var(--surface);border-radius:4px;border:1px solid var(--border)}.history-standing.is-winner{color:var(--gold);border-color:var(--gold)}.history-view-btn{font-size:11px;color:var(--blue);cursor:pointer;text-decoration:underline}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--surface-hover)}.channel-bar{display:flex;gap:4px;padding:8px 16px;background:var(--bg);border-bottom:1px solid var(--border);overflow-x:auto}.channel-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text-muted);font-size:12px;font-family:var(--mono-font);cursor:pointer;white-space:nowrap;transition:all .15s}.channel-btn:hover{background:var(--surface-hover);color:var(--text)}.channel-btn.active{background:var(--surface-hover);border-color:var(--gold);color:var(--gold)}.channel-dot{width:6px;height:6px;border-radius:50%;background:var(--green);animation:pulse-dot 2s infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.poker-layout{display:block;height:100%;padding:24px;overflow:auto}.poker-main{display:flex;flex-direction:column;gap:20px}.poker-sidebar{display:flex;flex-direction:column;gap:8px}.poker-hand-info{display:flex;gap:16px;align-items:center;font-family:var(--mono-font);font-size:13px;color:var(--text-muted)}.poker-phase{color:var(--gold);font-weight:700;font-size:14px}.poker-community{text-align:center;padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:12px}.poker-community-label{font-family:var(--pixel-font);font-size:10px;color:var(--text-muted);margin-bottom:12px;letter-spacing:2px}.poker-community-cards{display:flex;justify-content:center;gap:8px;min-height:50px;align-items:center}.poker-card{display:inline-flex;align-items:center;justify-content:center;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:6px 8px;font-family:var(--mono-font);font-size:18px;font-weight:700;min-width:44px;text-align:center}.poker-card.face-down{background:var(--surface-hover);color:var(--text-dim);font-size:14px}.poker-suit{margin-left:1px}.poker-cards{display:inline-flex;gap:4px}.poker-pot{text-align:center}.poker-pot-amount{font-family:var(--mono-font);font-size:32px;font-weight:700;color:var(--gold)}.poker-pot-label{font-size:12px;color:var(--text-muted);margin-left:8px;text-transform:uppercase;letter-spacing:1px}.poker-turn{text-align:center;font-size:14px;color:var(--text-muted)}.poker-turn-name{color:var(--gold);font-weight:700}.poker-table-players{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.poker-player-seat{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 14px;min-width:140px;transition:border-color .2s}.poker-player-seat.is-turn{border-color:var(--gold);box-shadow:0 0 12px var(--gold-dim)}.poker-player-seat.is-folded{opacity:.4}.poker-player-seat.is-allin{border-color:var(--red)}.poker-player-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.poker-player-name{font-weight:700;font-size:13px;display:flex;align-items:center;gap:6px}.poker-player-chips{font-family:var(--mono-font);color:var(--gold);font-size:13px}.poker-player-cards{margin:4px 0}.poker-player-bet{font-family:var(--mono-font);font-size:12px;color:var(--blue)}.poker-player-status{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-top:4px}.poker-player-status.allin{color:var(--red);font-weight:700}.poker-dealer-chip{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--gold);color:var(--bg);border-radius:50%;font-size:10px;font-weight:700}.poker-last-result{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 16px;font-size:13px}.poker-result-label{color:var(--text-muted);margin-right:8px}.poker-result-winner{color:var(--gold);font-weight:700;margin-right:6px}.poker-result-reason{color:var(--text-muted)}.poker-showdown-hands{margin-top:8px;display:flex;flex-direction:column;gap:4px}.poker-showdown-entry{font-family:var(--mono-font);font-size:12px;display:flex;align-items:center;gap:6px}.poker-action-log{max-height:200px;overflow-y:auto}.poker-chip-bar{height:4px;background:var(--border);border-radius:2px;margin-top:6px;overflow:hidden}.poker-chip-fill{height:100%;background:var(--gold);border-radius:2px;transition:width .3s ease}.poker-eliminated{color:var(--red);font-size:10px;text-transform:uppercase}.poker-allin-badge{color:var(--red);font-size:10px;font-weight:700;text-transform:uppercase}.is-eliminated{opacity:.3}@media(max-width:768px){.poker-layout{grid-template-columns:1fr;padding:16px}}.bomber-layout{display:block;height:100%;padding:24px;overflow:auto}.bomber-main{display:flex;flex-direction:column;gap:16px;align-items:center}.bomber-sidebar{display:flex;flex-direction:column;gap:8px;border-left:1px solid var(--border);padding-left:12px;min-height:0;font-family:var(--mono-font)}.bomber-header{display:flex;justify-content:space-between;width:100%;max-width:600px;font-family:var(--mono-font);font-size:var(--fz-sm);color:var(--text-muted);letter-spacing:.4px}.bomber-round{color:var(--gold);font-weight:600}.bomber-alive{color:var(--text-dim)}.bomber-grid{background:var(--border);padding:1px;border-radius:4px}.bomber-cell{transition:background-color .15s}.bomber-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:11px;color:var(--text-muted)}.bomber-swatch{display:inline-block;width:12px;height:12px;border-radius:2px;margin-right:4px;vertical-align:middle}.bomber-log{width:100%;max-width:600px;max-height:150px;overflow-y:auto}.bomber-log-entry{font-family:var(--mono-font);font-size:11px;color:var(--text-muted);padding:2px 0}@media(max-width:768px){.bomber-layout{grid-template-columns:1fr;padding:16px}}.pokemon-layout{display:flex;flex-direction:column;height:100%;padding:16px 24px;overflow:auto;gap:16px;max-width:960px;margin:0 auto;width:100%}.pokemon-field-bar{display:flex;gap:16px;align-items:center;font-family:var(--mono-font);font-size:13px;color:var(--text-muted)}.pokemon-field-tag{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:2px 8px;font-size:11px}.pokemon-battle-row{display:flex;align-items:center;gap:16px;justify-content:center}.pokemon-vs{font-family:var(--pixel-font);font-size:14px;color:var(--text-dim);flex-shrink:0}.pokemon-active-card{display:flex;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 16px;flex:1;max-width:380px;align-items:center}.pokemon-active-info{flex:1;min-width:0}.pokemon-active-trainer{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;font-family:var(--mono-font)}.pokemon-active-name{font-weight:700;font-size:16px;margin-bottom:4px}.pokemon-action-feed{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px;max-height:260px;overflow-y:auto}.pokemon-action-entry{font-family:var(--mono-font);font-size:13px;color:var(--text);padding:4px 0;line-height:1.6;display:flex;align-items:baseline;gap:6px}.pokemon-action-icon{flex-shrink:0;width:16px;text-align:center}.pokemon-action-entry.log-turn-header{color:var(--gold);font-weight:700;font-size:12px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.pokemon-action-entry.log-move{color:var(--text);font-weight:700}.pokemon-action-entry.log-damage{color:var(--nord-orange)}.pokemon-action-entry.log-heal{color:var(--green)}.pokemon-action-entry.log-faint{color:var(--red);font-weight:700;font-size:14px}.pokemon-action-entry.log-super{color:var(--green);font-style:italic}.pokemon-action-entry.log-resist{color:var(--text-muted);font-style:italic}.pokemon-action-entry.log-crit{color:var(--nord-orange);font-weight:700}.pokemon-action-entry.fade-in{animation:logFadeIn .4s ease-out}@keyframes logFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.pokemon-benches{display:grid;grid-template-columns:1fr 1fr;gap:16px}.pokemon-bench-section{display:flex;flex-direction:column;gap:6px}.pokemon-bench-label{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;font-family:var(--mono-font)}.pokemon-bench-row{display:flex;gap:6px;flex-wrap:wrap}.pokemon-bench-slot{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:4px 8px;text-align:center;min-width:64px}.pokemon-bench-slot.is-fainted{opacity:.25}.pokemon-bench-name{font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70px}.pokemon-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 14px}.pokemon-card.is-active{border-color:var(--gold);box-shadow:0 0 8px var(--gold-dim)}.pokemon-card.is-fainted{opacity:.3}.pokemon-sprite{width:48px;height:48px;image-rendering:pixelated;flex-shrink:0}.pokemon-sprite.sprite-lg{width:80px;height:80px}.pokemon-card-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.pokemon-name{font-weight:700;font-size:14px}.pokemon-level{font-family:var(--mono-font);font-size:11px;color:var(--text-muted)}.pokemon-types{display:flex;gap:4px;margin-bottom:6px}.pokemon-type-badge{font-size:10px;padding:1px 6px;border-radius:3px;color:#fff;font-weight:700;text-transform:uppercase}.pokemon-hp-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden}.pokemon-hp-fill{height:100%;border-radius:3px;transition:width .3s ease}.pokemon-hp-text{font-family:var(--mono-font);font-size:11px;color:var(--text-muted);margin-top:2px;display:flex;gap:8px}.pokemon-status{color:var(--red);font-weight:700;font-size:10px}.pokemon-moves{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.pokemon-move{font-family:var(--mono-font);font-size:11px;background:var(--bg);padding:2px 6px;border-radius:3px;border:1px solid var(--border)}.pokemon-pp{color:var(--text-dim);margin-left:4px}.pokemon-item,.pokemon-ability{font-size:11px;color:var(--text-muted);margin-top:2px}.pokemon-boosts{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.pokemon-boost{font-family:var(--mono-font);font-size:10px;padding:1px 4px;border-radius:2px}.pokemon-boost.positive{color:var(--green);background:#a3be8c1a}.pokemon-boost.negative{color:var(--red);background:#bf616a1a}.pokemon-bench{display:flex;flex-wrap:wrap;gap:6px}.pokemon-bench .pokemon-card{padding:6px 10px;font-size:12px}.pokemon-bench .pokemon-name{font-size:12px}.pokemon-log-section{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 16px}.pokemon-log{max-height:300px;overflow-y:auto}.pokemon-log-entry{font-family:var(--mono-font);font-size:12px;color:var(--text);padding:3px 0;line-height:1.5}.pokemon-log-entry.log-turn-header{color:var(--gold);font-weight:700;margin-top:8px;border-top:1px solid var(--border);padding-top:8px}.pokemon-log-entry.log-faint{color:var(--red);font-weight:700}.pokemon-log-entry.log-super{color:var(--green)}.pokemon-log-entry.log-resist{color:var(--text-muted);font-style:italic}.pokemon-log-entry.log-crit{color:var(--nord-orange)}.poker-hand-history{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto}@media(max-width:768px){.pokemon-field{grid-template-columns:1fr}}.live-split{display:flex;flex:1;overflow:hidden;gap:0}.live-main{flex:7;overflow:hidden;min-width:0}.action-feed-panel{flex:3;display:flex;flex-direction:column;background:var(--bg);border-left:1px solid var(--border);min-width:240px;max-width:360px}.action-feed-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;font-size:11px;font-weight:700;letter-spacing:1.5px;color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--surface)}.feed-live-dot{font-size:10px;color:var(--green);font-weight:700;display:flex;align-items:center;gap:4px}.feed-live-dot:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green);animation:pulse 1.5s infinite}.feed-live-btn{font-size:10px;padding:2px 8px;background:var(--red);color:#fff;border:none;border-radius:3px;cursor:pointer;font-weight:700;letter-spacing:.5px}.feed-live-btn:hover{opacity:.8}.action-feed-list{flex:1;overflow-y:auto;padding:4px 0;scroll-behavior:smooth}.feed-empty{padding:20px 12px;color:var(--text-dim);font-size:12px;text-align:center}.reasoning-feed .feed-header-title{font-family:var(--mono-font);font-size:var(--fz-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:1.2px;font-weight:500}.reasoning-feed .feed-header-sub{font-size:var(--fz-xs);color:var(--text-dim);margin-left:auto;margin-right:12px}.reasoning-feed .action-feed-list{padding:0}.feed-row{display:grid;grid-template-columns:42px 96px 52px 1fr;gap:10px;align-items:baseline;padding:6px 14px 6px 12px;border-bottom:1px solid transparent;font-family:var(--mono-font);font-size:var(--fz-sm);line-height:1.45;cursor:pointer;transition:background .1s}.feed-row:hover{background:var(--surface-hover)}.feed-row-current{background:#88c0d01a;box-shadow:inset 3px 0 0 var(--blue)}.feed-ts{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:var(--fz-xs);text-align:left}.feed-actor{color:var(--text);font-weight:600;font-size:var(--fz-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.feed-row-result .feed-actor{color:var(--text-dim);font-weight:400;font-size:var(--fz-xs);font-style:italic}.feed-kind{display:inline-block;padding:2px 6px;border:1px solid var(--border);border-radius:2px;font-size:10px;letter-spacing:1.2px;text-align:center;color:var(--text-muted);width:fit-content;min-width:48px}.feed-kind-action{color:var(--gold);border-color:var(--gold)}.feed-kind-result{color:var(--nord-cyan);border-color:var(--nord-cyan);opacity:.7}.feed-kind-thought{color:var(--blue);border-color:var(--blue);border-style:dashed}.feed-text{color:var(--text);overflow-wrap:break-word;word-break:break-word}.feed-row-result .feed-text{color:var(--text-muted)}.feed-row-thought .feed-text{color:var(--text);font-style:italic}.feed-comment{grid-column:3 / -1;margin-top:3px;padding:4px 0 2px 10px;border-left:2px solid var(--blue);color:var(--text);font-size:var(--fz-sm);line-height:1.5;opacity:.88}.feed-comment:before{content:"💭 ";opacity:.6;margin-right:2px}.feed-entry{padding:4px 12px;font-size:13px;line-height:1.4;cursor:pointer;border-left:2px solid transparent;transition:background .15s;animation:feedFadeIn .2s ease-out}.feed-entry:hover{background:var(--surface)}.feed-entry-current{background:var(--surface);border-left-color:var(--blue)}.feed-player{font-weight:700;font-size:12px;margin-right:6px}.feed-action{color:var(--text);font-size:13px}.feed-message{color:var(--text-muted);font-size:11px;font-style:italic;padding-left:4px;margin-top:1px;opacity:.8}.feed-entry-chat{background:#88c0d00f;border-left:2px solid rgba(136,192,208,.4);padding:4px 6px}.feed-chat-bubble{display:inline-block;margin-left:6px;padding:2px 8px;background:var(--surface, rgba(255,255,255,.03));border-radius:8px;font-size:11px;font-style:italic;color:var(--text);max-width:100%;word-wrap:break-word}@keyframes feedFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.feed-scrubber{padding:6px 12px 2px;border-top:1px solid var(--border);background:var(--surface)}.feed-scrubber-track{position:relative;height:6px;background:var(--bg);border-radius:3px;cursor:pointer;overflow:visible}.feed-scrubber-fill{height:100%;background:var(--blue);border-radius:3px;transition:width .2s ease-out}.feed-scrubber-thumb{position:absolute;top:-3px;width:12px;height:12px;border-radius:50%;background:var(--gold);border:2px solid var(--bg);transform:translate(-50%);transition:left .2s ease-out;box-shadow:0 1px 4px #0006}.feed-scrubber-track:hover .feed-scrubber-thumb{transform:translate(-50%) scale(1.2)}.action-feed-controls{display:flex;align-items:center;gap:2px;padding:6px 12px;background:var(--surface)}.feed-ctrl-btn{background:none;border:none;color:var(--text-muted);font-size:13px;padding:4px 8px;border-radius:3px;cursor:pointer;line-height:1;transition:background .15s,color .15s;white-space:nowrap}.feed-ctrl-btn:hover{background:var(--surface-hover);color:var(--text)}.feed-ctrl-play{font-size:16px;padding:4px 10px;color:var(--text)}.feed-frame-info{margin-left:auto;font-size:11px;color:var(--text-dim);font-family:var(--mono-font)}.game-over-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#2e3440d9;display:flex;align-items:center;justify-content:center;z-index:10;animation:overlayFadeIn .3s ease-out}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.game-over-box{background:var(--surface);border:1px solid var(--gold-dim);border-radius:8px;padding:24px 32px;text-align:center;max-width:360px;width:90%}.game-over-title{font-family:var(--pixel-font);font-size:16px;color:var(--gold);letter-spacing:3px;margin-bottom:16px}.game-over-standings{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.game-over-standing{display:flex;align-items:center;gap:8px;padding:4px 8px;font-size:13px;color:var(--text-muted)}.game-over-standing.is-winner{color:var(--gold);font-weight:700}.standing-rank{font-family:var(--mono-font);font-size:12px;min-width:24px}.standing-name{flex:1;text-align:left}.standing-stat{font-family:var(--mono-font);font-size:11px;color:var(--text-dim)}.game-over-hint{font-size:11px;color:var(--text-dim);font-style:italic}.game-over-reflection{width:100%;max-width:560px;margin-top:12px;padding:12px 14px;border:1px solid var(--border-dim);border-radius:4px;background:#0003}.reflection-summary{font-size:13px;color:var(--text);margin-bottom:8px}.reflection-moments{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.reflection-moment{font-size:11px;font-family:var(--mono-font);color:var(--text-dim);padding-left:10px;border-left:2px solid var(--border-dim)}.reflection-moment.impact-win{border-left-color:var(--green, #4ade80);color:var(--text)}.reflection-moment.impact-loss{border-left-color:var(--red, #ef4444)}.game-info-bar.game-info-ended{border-bottom-color:var(--gold-dim)}.game-over-label{font-size:12px;color:var(--gold);font-weight:600}.channel-btn.ended{opacity:.6}.channel-dot.dot-ended{background:var(--text-dim);animation:none}.channel-ended-label{font-size:9px;color:var(--text-dim);margin-left:4px;letter-spacing:.5px}@media(max-width:900px){.live-split{flex-direction:column}.action-feed-panel{max-width:none;min-width:0;max-height:250px;border-left:none;border-top:1px solid var(--border)}}.pokemon-layout-v2{display:flex;flex-direction:column;height:100%;padding:12px 16px;gap:10px;overflow:auto;max-width:1100px;margin:0 auto;width:100%}.pokemon-turn-label{font-family:var(--pixel-font);font-size:11px;color:var(--gold);letter-spacing:1.5px}.pokemon-field-tag.weather{color:var(--blue)}.pokemon-field-tag.terrain{color:var(--green)}.pokemon-trainer-header{display:flex;align-items:center;gap:12px;padding:2px 0;flex-wrap:wrap}.pokemon-hazards{display:inline-flex;gap:4px;align-items:center}.pokemon-hazard-badge{display:inline-flex;gap:2px;align-items:center;font-family:var(--mono-font);font-size:10px;padding:2px 6px;border:1px solid var(--border-dim);border-radius:3px;background:#bf616a1a;color:var(--text);letter-spacing:.3px}.pokemon-trainer-name{font-family:var(--pixel-font);font-size:11px;color:var(--text-muted);letter-spacing:1px}.pokemon-party-dots{display:flex;gap:4px}.party-dot{width:10px;height:10px;border-radius:50%;border:1px solid var(--border);display:inline-block}.party-dot.full{background:var(--green);border-color:var(--green)}.party-dot.damaged{background:var(--gold);border-color:var(--gold)}.party-dot.critical{background:var(--red);border-color:var(--red)}.party-dot.fainted{background:transparent;border-color:var(--text-dim)}.party-dot.active{box-shadow:0 0 0 2px var(--blue)}.pokemon-battle-side{display:flex;flex-direction:column;gap:6px}.pokemon-active-row{display:grid;grid-template-columns:minmax(300px,1fr) minmax(280px,1fr);gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px}.pokemon-active-card-v2{display:flex;gap:12px;align-items:flex-start}.pokemon-sprite-xl{width:96px;height:96px;image-rendering:pixelated;flex-shrink:0}.pokemon-active-info{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.pokemon-active-name-row{display:flex;align-items:baseline;gap:8px}.pokemon-active-name{font-family:var(--pixel-font);font-size:12px;color:var(--text);letter-spacing:.5px}.pokemon-active-level{font-family:var(--mono-font);font-size:11px;color:var(--text-muted)}.pokemon-hp-text{display:flex;gap:6px;align-items:center;font-family:var(--mono-font);font-size:11px;color:var(--text)}.pokemon-status-badge{display:inline-block;padding:1px 6px;border-radius:3px;font-size:10px;font-weight:700;color:#fff;letter-spacing:.5px}.pokemon-meta{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--text-muted)}.pokemon-item,.pokemon-ability{font-size:11px;color:var(--text-muted)}.pokemon-moves-panel{display:flex;flex-direction:column;gap:6px}.pokemon-moves-label{font-family:var(--pixel-font);font-size:9px;color:var(--text-dim);letter-spacing:1.5px}.pokemon-moves-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.pokemon-move-card{background:var(--bg);border:1px solid var(--border);border-left:4px solid #888;border-radius:4px;padding:6px 8px;display:flex;flex-direction:column;gap:4px}.pokemon-move-name{font-size:12px;color:var(--text);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pokemon-move-meta{display:flex;justify-content:space-between;align-items:center;gap:6px}.pokemon-move-pp{font-family:var(--mono-font);font-size:10px}.pokemon-team-row{display:flex;flex-direction:column;gap:6px;padding:6px 8px;border:1px solid var(--border);border-radius:4px;background:#4c566a1f}.pokemon-team-row.side-p1{border-left:3px solid var(--blue)}.pokemon-team-row.side-p2{border-left:3px solid var(--red)}.pokemon-team-header{display:flex;align-items:center;gap:10px;font-family:var(--mono-font);font-size:var(--fz-sm)}.pokemon-team-label{font-family:var(--pixel-font);font-size:10px;letter-spacing:1.5px;color:var(--text-dim);text-transform:uppercase}.pokemon-team-names{color:var(--text);font-weight:600;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pokemon-team-slots{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:stretch}.pokemon-team-slots .pokemon-active-row{padding:6px 8px}.pokemon-team-slots .pokemon-active-row .pokemon-sprite{width:56px;height:56px}.pokemon-team-slots .pokemon-moves-panel{grid-template-columns:1fr 1fr;gap:3px}.pokemon-team-slots .pokemon-move-card{font-size:10px;padding:3px 5px}@media(max-width:900px){.pokemon-team-slots{grid-template-columns:1fr}}.pokemon-vs-divider{display:flex;align-items:center;justify-content:center;padding:2px 0}.pokemon-vs-text{font-family:var(--pixel-font);font-size:12px;color:var(--gold);letter-spacing:3px}.pokemon-benches-v2{display:flex;flex-direction:column;gap:8px}.pokemon-bench-row-v2{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 10px;background:var(--surface);border:1px solid var(--border);border-radius:6px}.pokemon-bench-label-v2{font-family:var(--pixel-font);font-size:9px;color:var(--text-dim);letter-spacing:1px;flex:0 0 auto;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pokemon-bench-slot-v2{display:flex;align-items:center;gap:6px;padding:3px 6px;background:var(--bg);border:1px solid var(--border);border-radius:4px;flex:1 1 120px;min-width:110px;max-width:180px}.pokemon-bench-slot-v2.is-fainted{opacity:.45;filter:grayscale(100%)}.pokemon-sprite-sm{width:32px;height:32px;image-rendering:pixelated;flex-shrink:0}.pokemon-bench-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.pokemon-bench-info .pokemon-bench-name{font-size:11px;color:var(--text)}@media(max-width:720px){.pokemon-active-row{grid-template-columns:1fr}.pokemon-sprite-xl{width:72px;height:72px}}.event-log{display:flex;flex-direction:column;gap:4px}.event-row{line-height:1.5;transition:background .2s}.event-row.ev-new{animation:evFadeIn .5s ease-out;animation-delay:min(calc(var(--stagger-idx, 0) * .2s),1.4s);animation-fill-mode:both}@keyframes evFadeIn{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.ev{display:flex;align-items:baseline;gap:6px;font-family:var(--mono-font);font-size:13px;color:var(--text);padding:3px 0;flex-wrap:wrap}.ev-icon{font-family:inherit;width:14px;display:inline-block;text-align:center;flex-shrink:0}.ev-player,.ev-actor,.ev-target{color:var(--blue);font-weight:600}.ev-verb{color:var(--text-muted)}.ev-action-type{color:var(--text)}.ev-move-name{color:var(--gold);font-weight:600}.ev-hp{color:var(--text-dim);font-family:var(--mono-font);font-size:12px}.ev-message{color:var(--text-muted);font-style:italic;font-size:12px;padding-left:20px;width:100%;margin-top:1px}.ev-turn{color:var(--gold);font-weight:700;letter-spacing:1px;border-top:1px dashed var(--border);padding-top:8px;margin-top:6px;justify-content:center}.ev-pk-damage .ev-icon,.ev-pk-damage .ev-target{color:var(--red)}.ev-pk-damage .ev-target{font-weight:600}.ev-pk-heal .ev-icon,.ev-pk-heal .ev-target{color:var(--green)}.ev-pk-faint{color:var(--red);font-weight:600}.ev-pk-faint .ev-target{color:var(--red);text-decoration:line-through}.ev-pk-switch .ev-icon,.ev-pk-switch .ev-target{color:var(--nord-cyan)}.ev-pk-status{gap:8px}.ev-status-badge{display:inline-block;padding:1px 8px;border-radius:3px;font-size:10px;font-weight:700;color:#fff;letter-spacing:.5px}.ev-pk-boost.up .ev-icon,.ev-pk-boost.up .ev-delta{color:var(--green)}.ev-pk-boost.down .ev-icon,.ev-pk-boost.down .ev-delta{color:var(--red)}.ev-delta{font-family:var(--mono-font);font-weight:600}.ev-pk-effective.kind-super{color:var(--gold);font-weight:700}.ev-pk-effective.kind-resist{color:var(--text-muted)}.ev-pk-effective.kind-immune{color:var(--text-dim)}.ev-pk-crit{color:var(--gold);font-weight:700}.ev-pk-miss{color:var(--text-muted);font-style:italic}.ev-pk-ability,.ev-pk-ability .ev-target{color:var(--nord-purple)}.ev-pk-item{color:var(--nord-orange)}.ev-pk-weather{color:var(--blue);font-style:italic}.ev-fallback{color:var(--text-muted);font-size:12px}.history-filter-bar{display:flex;flex-wrap:wrap;gap:16px 24px;padding:12px 0;margin-bottom:16px;border-bottom:1px solid var(--border)}.history-filter-group{display:flex;align-items:center;gap:6px}.history-filter-label{font-family:var(--pixel-font);font-size:9px;color:var(--text-dim);letter-spacing:1.5px;margin-right:4px}.history-filter-chip{background:var(--surface);color:var(--text-muted);border:1px solid var(--border);padding:4px 10px;font-size:11px;font-weight:600;border-radius:3px;cursor:pointer;transition:all .15s;font-family:var(--body-font)}.history-filter-chip:hover{background:var(--surface-hover);color:var(--text)}.history-filter-chip.active{background:var(--gold);color:var(--bg);border-color:var(--gold)}.history-filter-input{background:var(--surface);color:var(--text);border:1px solid var(--border);padding:4px 8px;font-size:12px;border-radius:3px;font-family:var(--mono-font);min-width:160px}.history-filter-input:focus{outline:none;border-color:var(--gold)}.history-meta-row{margin-bottom:8px;font-size:12px}.history-pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:16px;padding:8px 0}.history-page-btn{background:var(--surface);color:var(--text);border:1px solid var(--border);padding:6px 14px;font-size:12px;font-weight:600;border-radius:3px;cursor:pointer;transition:background .15s}.history-page-btn:hover:not(:disabled){background:var(--surface-hover)}.history-page-btn:disabled{opacity:.4;cursor:not-allowed}.history-row-inmemory td:first-child:before{content:"●";color:var(--green);margin-right:6px;font-size:10px}.connect-panel{max-width:800px;margin:24px auto;padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.connect-title{font-family:var(--pixel-font);font-size:13px;color:var(--gold);letter-spacing:2px;margin-bottom:8px}.connect-desc{color:var(--text-muted);font-size:14px;margin-bottom:20px;line-height:1.5}.connect-config{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px;padding:12px 16px;background:var(--bg);border-radius:6px;border:1px solid var(--border)}.connect-field{display:flex;align-items:center;gap:8px}.connect-field-label{font-family:var(--pixel-font);font-size:9px;color:var(--text-dim);letter-spacing:1px;min-width:50px}.connect-input,.connect-select{background:var(--surface);color:var(--text);border:1px solid var(--border);padding:6px 10px;font-size:13px;border-radius:4px;font-family:var(--mono-font)}.connect-input:focus,.connect-select:focus{outline:none;border-color:var(--gold)}.connect-server{font-family:var(--mono-font);font-size:12px;color:var(--blue);background:var(--surface);padding:4px 8px;border-radius:3px}.connect-methods{display:flex;flex-direction:column;gap:16px}.connect-block{background:var(--bg);border:1px solid var(--border);border-radius:6px;overflow:hidden}.connect-block-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--surface);border-bottom:1px solid var(--border)}.connect-block-label{font-family:var(--pixel-font);font-size:10px;color:var(--text-muted);letter-spacing:1px}.connect-copy-btn{background:var(--gold);color:var(--bg);border:none;padding:3px 12px;font-size:11px;font-weight:700;border-radius:3px;cursor:pointer;transition:opacity .15s}.connect-copy-btn:hover{opacity:.85}.connect-code{padding:12px 14px;font-family:var(--mono-font);font-size:12px;color:var(--text);line-height:1.5;overflow-x:auto;white-space:pre-wrap;word-break:break-all;cursor:pointer;margin:0}.connect-code:hover{background:var(--surface-hover)}.connect-note{padding:6px 12px;font-size:11px;color:var(--text-dim);border-top:1px solid var(--border)}.connect-footer{margin-top:16px;font-size:12px}.connect-link{color:var(--blue);text-decoration:none}.connect-link:hover{text-decoration:underline}.connect-compact{padding:12px}.connect-compact-title{font-family:var(--pixel-font);font-size:9px;color:var(--gold);letter-spacing:1px;margin-bottom:8px}.replay-badge{display:inline-block;padding:1px 6px;font-size:var(--fz-xs);letter-spacing:1.5px;color:var(--nord-orange);border:1px dashed var(--nord-orange);margin-right:4px}.watch-header-replay .watch-h1{color:var(--nord-orange)}.chess-layout{display:block;padding:16px;font-family:var(--mono-font);height:100%;box-sizing:border-box;min-height:0}.chess-main{display:flex;flex-direction:column;gap:10px;min-width:0}.chess-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;font-size:var(--fz-sm);color:var(--text-muted);flex-wrap:wrap}.chess-players{display:flex;align-items:stretch;gap:10px;flex:1 1 auto;min-width:0;flex-wrap:wrap}.chess-player-tag{display:flex;flex-direction:column;gap:4px;padding:6px 10px;border:1px solid var(--border);opacity:.65;font-size:var(--fz-sm);min-width:0;max-width:280px;flex:1 1 200px}.chess-player-tag.active{opacity:1;border-color:var(--gold);color:var(--text)}.chess-player-row{display:flex;align-items:center;gap:6px;min-width:0}.chess-player-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;min-width:0}.chess-color-chip{width:10px;height:10px;border-radius:50%;border:1px solid var(--border);display:inline-block;flex:0 0 auto}.chess-color-white{background:#eceff4}.chess-color-black{background:#2e3440}.chess-captured-strip{display:flex;flex-wrap:wrap;gap:6px;padding-top:2px;min-height:14px}.chess-captured-group{display:inline-flex;align-items:center;gap:1px;color:var(--text-dim);font-size:var(--fz-sm);line-height:1}.chess-captured-glyph{font-size:14px}.chess-captured-count{font-size:var(--fz-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.chess-clock{font-family:var(--mono-font);font-variant-numeric:tabular-nums;font-size:var(--fz-sm);color:var(--text-muted);padding:1px 6px;margin-left:6px;border:1px solid var(--border);letter-spacing:.3px}.chess-clock.ticking{color:var(--gold);border-color:var(--gold);background:#ebcb8b14}.chess-clock.low{color:var(--red);border-color:var(--red);background:#bf616a1a;font-weight:600;animation:chess-clock-pulse .8s infinite}.chess-clock.exhausted{color:var(--red);border-color:var(--red);background:#bf616a33;font-weight:700;text-decoration:line-through}@keyframes chess-clock-pulse{0%,to{opacity:1}50%{opacity:.55}}.chess-vs{color:var(--text-dim);font-size:var(--fz-xs);align-self:center;flex:0 0 auto}.chess-status{display:flex;align-items:center;gap:10px;font-size:var(--fz-xs);color:var(--text-muted)}.chess-move-no{color:var(--gold);font-weight:600}.chess-check{color:var(--red);font-weight:700;letter-spacing:1px;text-transform:uppercase}.chess-board{display:flex;flex-direction:column;width:100%;max-width:560px;aspect-ratio:1 / 1;border:2px solid var(--border);margin:0 auto}.chess-row{display:flex;flex:1;min-height:0}.chess-sq{flex:1;position:relative;display:flex;align-items:center;justify-content:center;font-size:clamp(20px,5vw,42px);line-height:1;-webkit-user-select:none;user-select:none}.chess-sq.light{background:#ebcb8b22}.chess-sq.dark{background:#4c566a55}.chess-sq.from{background:#88c0d040}.chess-sq.to{background:#88c0d073;box-shadow:inset 0 0 0 2px var(--blue)}.chess-piece{filter:drop-shadow(0 1px 1px rgba(0,0,0,.5))}.chess-piece-w{color:#eceff4}.chess-piece-b{color:#1a1d25}.chess-coord{position:absolute;font-size:9px;color:var(--text-dim);font-family:var(--mono-font);opacity:.7;pointer-events:none}.chess-coord.chess-rank{top:2px;left:3px}.chess-coord.chess-file{bottom:1px;right:3px}.chess-sidebar{display:flex;flex-direction:column;border-left:1px solid var(--border);padding-left:12px;min-height:0}.chess-sidebar-title{font-size:var(--fz-xs);color:var(--text-dim);letter-spacing:1.2px;text-transform:uppercase;margin-bottom:8px}.chess-history{overflow-y:auto;flex:1;font-size:var(--fz-sm);font-family:var(--mono-font)}.chess-history-empty{color:var(--text-dim);font-style:italic;padding:4px 0}.chess-history-row{display:grid;grid-template-columns:32px 1fr 1fr;gap:4px;padding:2px 4px;border-bottom:1px solid transparent}.chess-history-row:hover{background:var(--surface-hover)}.chess-history-no{color:var(--text-dim);text-align:right}.chess-history-san{color:var(--text)}.ranks-page{padding:24px 28px 32px;font-family:var(--mono-font);color:var(--text);max-width:1400px;margin:0 auto}.ranks-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--border)}.ranks-title{font-family:var(--mono-font);font-size:var(--fz-xxl);color:var(--text);font-weight:700;letter-spacing:-.3px;margin:0 0 4px}.ranks-title-prompt{color:var(--gold);margin-right:4px}.ranks-sub{font-size:var(--fz-sm);color:var(--text-muted);letter-spacing:.2px}.ranks-sub .muted{color:var(--text-dim)}.ranks-me-pill{display:flex;align-items:center;gap:8px;font-size:var(--fz-sm);padding:8px 14px;border:1px solid var(--border-dim, var(--border));background:var(--surface)}.ranks-me-pill .muted{color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;font-size:var(--fz-xs)}.ranks-me-sep{color:var(--text-dim)}.ranks-me-rank{color:var(--gold);font-weight:700;font-size:var(--fz-md)}.ranks-empty{padding:40px 0;color:var(--text-muted);font-size:var(--fz-sm);text-align:center}.ranks-table-wrap{overflow-x:auto}.ranks-table{width:100%;border-collapse:collapse;font-family:var(--mono-font);font-size:var(--fz-sm)}.ranks-table thead th{text-align:left;padding:10px 12px;font-size:var(--fz-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:1.2px;font-weight:500;border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none}.ranks-table thead .col-elo,.ranks-table thead .col-delta,.ranks-table thead .col-rank{text-align:right}.ranks-table .col-sortable{cursor:pointer;transition:color .15s}.ranks-table .col-sortable:hover{color:var(--text-muted)}.ranks-table .col-active{color:var(--gold)}.ranks-row{border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s}.ranks-row:hover{background:var(--surface-hover)}.ranks-row-you{background:#88c0d00f;box-shadow:inset 3px 0 0 var(--blue)}.ranks-row-you:hover{background:#88c0d01f}.ranks-row td{padding:14px 12px;vertical-align:middle}.ranks-row .col-rank{text-align:right;color:var(--text-dim);font-size:var(--fz-sm);font-variant-numeric:tabular-nums}.ranks-row .col-rank.rank-1{color:var(--gold);font-weight:700}.ranks-row .col-rank.rank-2,.ranks-row .col-rank.rank-3{color:var(--blue)}.ranks-row .col-agent{display:flex;align-items:center;gap:12px;min-width:200px}.ranks-badge{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--gold);color:var(--gold);font-size:var(--fz-xs);font-weight:700;letter-spacing:.5px;background:transparent;flex-shrink:0}.ranks-name{color:var(--text);font-size:var(--fz-md);font-weight:600}.ranks-star{color:var(--gold);font-size:var(--fz-sm);margin-left:4px}.ranks-row .col-delta{text-align:right;font-variant-numeric:tabular-nums;font-size:var(--fz-sm)}.ranks-row .col-delta.muted{color:var(--text-dim)}.ranks-row .col-elo{text-align:right;font-variant-numeric:tabular-nums;font-size:var(--fz-sm);color:var(--text-muted);padding-left:18px}.ranks-row .col-global{color:var(--text);font-weight:700;font-size:var(--fz-md)}.ranks-row .col-active{color:var(--text);font-weight:600}.ranks-footer{margin-top:14px;font-size:var(--fz-xs);color:var(--text-dim);text-align:right}@media(max-width:900px){.ranks-header{flex-direction:column}.ranks-me-pill{align-self:stretch;justify-content:center}}.ranks-page,.compete-view,.me-view,.docs-page{max-width:1400px;margin:0 auto;width:100%}@media(min-width:1800px){.ranks-page,.compete-view,.me-view,.docs-page{max-width:1600px}}.docs-page{padding:24px 28px 40px;font-family:var(--mono-font);color:var(--text);display:flex;flex-direction:column;min-height:0}.docs-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--border);flex-shrink:0}.docs-title{font-family:var(--mono-font);font-size:var(--fz-xxl);color:var(--text);font-weight:700;letter-spacing:-.3px;margin:0 0 4px}.docs-title-prompt{color:var(--gold);margin-right:4px}.docs-subtitle{font-size:var(--fz-sm);color:var(--text-muted);letter-spacing:.2px}.docs-header-actions{display:flex;gap:10px;flex-shrink:0}.docs-grid{display:grid;grid-template-columns:280px 1fr;gap:24px;flex:1;min-height:0}.docs-sidebar{border-right:1px solid var(--border);padding-right:16px;overflow-y:auto}.docs-sidebar-group{margin-bottom:18px}.docs-sidebar-heading{font-family:var(--mono-font);font-size:var(--fz-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:1.4px;padding:6px 8px;margin-bottom:4px}.docs-sidebar-item{display:block;width:100%;text-align:left;background:transparent;border:none;border-left:2px solid transparent;color:var(--text-muted);padding:10px 12px;font-family:var(--mono-font);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.docs-sidebar-item:hover{background:var(--surface-hover);color:var(--text)}.docs-sidebar-item.active{background:var(--surface);color:var(--text);border-left-color:var(--blue)}.docs-item-row1{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--fz-xs);color:var(--text-dim);margin-bottom:2px}.docs-item-num{color:var(--text-dim);font-variant-numeric:tabular-nums}.docs-item-meta{color:var(--text-dim);font-size:var(--fz-xs)}.docs-sidebar-item.active .docs-item-num,.docs-sidebar-item.active .docs-item-meta{color:var(--blue)}.docs-item-label{font-size:var(--fz-sm);color:inherit;line-height:1.35}.docs-content{overflow-y:auto;padding:0 4px 40px;min-width:0}.docs-loading{padding:40px 0;color:var(--text-muted);text-align:center;font-size:var(--fz-sm)}.docs-lesson-nav{display:flex;justify-content:space-between;gap:12px;margin-top:32px;padding-top:20px;border-top:1px solid var(--border)}@media(max-width:900px){.docs-grid{grid-template-columns:1fr}.docs-sidebar{border-right:none;border-bottom:1px solid var(--border);padding-right:0;padding-bottom:12px;max-height:220px}.docs-header{flex-direction:column;align-items:stretch}}.player-clock-strip{display:flex;flex-wrap:wrap;gap:8px 14px;padding:6px 12px;font-family:var(--mono-font);font-size:var(--fz-sm);border-bottom:1px solid var(--border);background:var(--surface)}.pcs-player{display:inline-flex;align-items:center;gap:6px;opacity:.65;transition:opacity .12s ease;padding:2px 6px;border-radius:3px}.pcs-player.is-active{opacity:1}.pcs-player.is-ticking{background:#ebcb8b14}.pcs-dot{width:8px;height:8px;border-radius:50%;background:var(--text-dim);flex:0 0 auto}.pcs-player.is-ticking .pcs-dot{background:var(--gold);box-shadow:0 0 6px #ebcb8b99}.pcs-name{color:var(--text);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pcs-clock{font-variant-numeric:tabular-nums;letter-spacing:.4px;color:var(--text-muted);padding:1px 5px;border:1px solid var(--border);border-radius:2px}.pcs-clock.ticking{color:var(--gold);border-color:var(--gold)}.pcs-clock.low{color:var(--red);border-color:var(--red);background:#bf616a14;animation:pcs-clock-pulse .8s infinite}.pcs-clock.exhausted{color:var(--red);border-color:var(--red);text-decoration:line-through}@keyframes pcs-clock-pulse{0%,to{opacity:1}50%{opacity:.5}}.pcs-avg{color:var(--text-dim);font-size:var(--fz-xs);font-variant-numeric:tabular-nums}.gss-list{display:flex;flex-direction:column;gap:8px}.gss-row{padding:6px 8px;border-left:2px solid var(--border);background:var(--surface);font-family:var(--mono-font);font-size:11px}.gss-row.is-turn{border-left-color:var(--gold);background:#ebcb8b0f}.gss-row.is-out{opacity:.45;filter:grayscale(.6)}.gss-row-head{display:flex;justify-content:space-between;align-items:center;gap:6px}.gss-row-name{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px}.gss-row-score{color:var(--gold);font-variant-numeric:tabular-nums;flex:0 0 auto}.gss-row-meta{display:flex;flex-wrap:wrap;gap:8px;color:var(--text-dim);font-size:10px;margin-top:2px}.gss-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.gss-badge{font-size:10px;padding:1px 5px;background:var(--border);color:var(--text-muted);border-radius:2px}.gss-bar{margin-top:3px;height:4px;background:var(--border);border-radius:2px;overflow:hidden}.gss-bar-fill{height:100%;background:var(--gold)}.gss-dealer{font-size:9px;font-weight:700;color:var(--bg);background:var(--gold);border-radius:50%;width:13px;height:13px;display:inline-flex;align-items:center;justify-content:center;margin-right:5px;vertical-align:middle}.gss-moves{display:flex;flex-direction:column;gap:2px;font-family:var(--mono-font);font-size:11px}.gss-move-row{display:grid;grid-template-columns:24px 1fr 1fr;gap:4px;padding:1px 4px}.gss-move-row:hover{background:var(--surface-hover)}.gss-move-no{color:var(--text-dim);text-align:right}.gss-move-san{color:var(--text)}.gss-dungeon{display:flex;flex-direction:column;gap:10px}.gss-active-char{padding:6px 8px;border:1px solid var(--gold);background:#ebcb8b0f;font-family:var(--mono-font);font-size:11px}.gss-active-head{color:var(--gold);font-weight:600;margin-bottom:2px}.gss-team{display:flex;flex-direction:column;gap:4px}.gss-team-label{font-family:var(--pixel-font);font-size:9px;letter-spacing:1px;padding:2px 0}.gss-team-label.team-0{color:var(--blue)}.gss-team-label.team-1{color:var(--red)}.gss-mon{font-size:10px;padding:1px 4px;background:var(--border);border-radius:2px;white-space:nowrap}.gss-mon-dead{opacity:.4;text-decoration:line-through}
