:root{--bg-primary: #0a0a0a;--bg-panel: #141414;--bg-card: #0f0f0f;--accent: #00e676;--accent-dim: #00c853;--accent-glow: rgba(0, 230, 118, .3);--text: #e0e0e0;--text-muted: #757575;--text-dim: #444;--border: #1e1e1e;--p1-color: #42a5f5;--p2-color: #ef5350}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg-primary);color:var(--text);min-height:100vh}.app{max-width:1200px;margin:0 auto;padding:60px 16px 16px}.game-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;margin-bottom:16px}.game-header h1{font-size:1.2rem;color:var(--accent)}.demo-badge{background:var(--accent);color:var(--bg);font-size:.7rem;font-weight:700;padding:2px 10px;border-radius:4px;letter-spacing:1px}.round-info{display:flex;flex-direction:column;align-items:center;gap:2px}.round-label{font-size:.9rem;color:var(--text-muted)}.round-scores{font-size:.8rem}.p1-score{color:var(--p1-color)}.p2-score{color:var(--p2-color)}.score-divider{color:var(--text-dim)}.connection-status{font-size:.8rem;padding:4px 8px;border-radius:4px}.connection-status.connected{background:var(--accent-dim);color:#000}.connection-status.disconnected{background:#c62828;color:#fff}.players-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.player-panel{padding:16px 20px;border-radius:10px;background:var(--bg-panel);border:2px solid var(--border);display:flex;align-items:center;gap:14px}.player-panel.p1{border-left:5px solid var(--p1-color)}.player-panel.p2{border-left:5px solid var(--p2-color)}.player-avatar{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid var(--border)}.player-panel.p1 .player-avatar{border-color:var(--p1-color)}.player-panel.p2 .player-avatar{border-color:var(--p2-color)}.player-icon{font-size:2.2rem}.player-name-text{font-size:1.5rem;font-weight:700;color:var(--text)}.playmat-container{display:flex;flex-direction:column;gap:0;margin-bottom:16px;border-radius:12px;overflow:hidden;border:2px solid var(--border)}.player-mat{background:var(--bg-panel);padding:12px 16px}.p1-mat{border-bottom:1px solid var(--border)}.p2-mat{border-top:1px solid var(--border)}.mat-label{font-weight:700;font-size:.95rem;color:var(--text);margin-bottom:8px}.p2-mat .mat-label{margin-bottom:0;margin-top:8px}.mat-zones{display:flex;gap:12px;overflow-x:auto}.mat-zone{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:8px 14px;text-align:center;min-width:80px;flex-shrink:0}.mat-zone.hotdogs{border-color:#ffc10766}.zone-count{font-size:1.2rem;font-weight:700;color:var(--text)}.mat-zone.hotdogs .zone-count{color:#ffc107}.zone-label{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.arena{background:linear-gradient(180deg,#0a1f0a,#0d2e0d 30%,#0d2e0d 70%,#0a1f0a);padding:8px 12px 12px}.arena-title{text-align:center;margin-bottom:8px;line-height:1}.arena-the{display:block;font-size:.6rem;color:#39ff14;font-weight:700;text-transform:uppercase;letter-spacing:3px}.arena-text{display:block;font-size:1.4rem;font-weight:900;color:#00e676;text-transform:uppercase;letter-spacing:4px;-webkit-text-stroke:1px #000;text-shadow:0 0 10px rgba(57,255,20,.5),0 1px 2px rgba(0,0,0,.8)}.arena-slots{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.arena-slot{background:#39ff140f;border:1px dashed rgba(57,255,20,.25);border-radius:6px;padding:6px;display:flex;flex-direction:column;align-items:center;gap:4px;transition:border-color .3s,box-shadow .3s}.arena-slot.active{border:2px solid #39ff14;box-shadow:0 0 16px #39ff1466;background:#39ff141a}.arena-slot.completed{border-color:#39ff144d;border-style:solid;opacity:.85}.arena-slot-num{font-size:.65rem;font-weight:700;color:#39ff1466;text-transform:uppercase}.arena-slot.active .arena-slot-num{color:#39ff14}.arena-hero{width:100%}.arena-vs{font-size:.7rem;color:#39ff1459;font-weight:700}.mat-zone.discard{border-color:#ef53504d}.mat-zone.discard .zone-count{color:var(--p2-color)}.arena-winner{color:var(--accent);font-size:.9rem}.arena-active-icon{color:var(--accent);font-size:.9rem;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.arena-dash{font-size:.65rem}.arena-slot-result{font-size:.65rem;font-weight:700;color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.hero-card{padding:6px;border-radius:4px;margin:2px 0;font-size:.8rem;background:var(--bg-card);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}.hero-card.empty{color:var(--text-dim);text-align:center;background:#0000004d;text-shadow:none;min-height:50px;display:flex;align-items:center;justify-content:center}.hero-icon{font-size:.7rem}.hero-name{font-weight:700;font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero-weapon{font-size:.65rem;opacity:.85}.hero-power{font-size:.9rem;font-weight:700}.power-diff.buff{color:#00e676;font-size:.7rem}.power-diff.debuff{color:#ef5350;font-size:.7rem}.live-score{color:var(--accent);font-weight:700;font-size:.85rem}.hero-card.steel,.hero-card.glow,.hero-card.super,.hero-card.gum{color:#1a1a1a;text-shadow:none}.active-effects{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:12px;margin-bottom:16px}.active-effects h3{font-size:.9rem;margin-bottom:8px;color:var(--accent)}.no-effects{font-size:.8rem;color:var(--text-dim)}.effect-entry{display:flex;gap:12px;align-items:center;font-size:.8rem;padding:4px 0;border-bottom:1px solid var(--border)}.effect-entry:last-child{border-bottom:none}.effect-source{font-weight:700;min-width:140px;white-space:nowrap}.effect-desc{flex:1;color:#b0b0b0}.effect-duration{font-size:.7rem;color:var(--text-muted);white-space:nowrap}.effect-trigger{display:inline-block;margin-left:6px;padding:1px 5px;background:#1a2a1a;border:1px solid var(--accent-dim);border-radius:3px;font-size:.7rem;color:var(--accent)}.mat-zone.effects-zone{border-color:#00e6764d;min-width:120px;max-width:200px;flex-shrink:0;text-align:left;padding:6px 10px}.mat-effect{font-size:.68rem;padding:3px 0;border-bottom:1px solid rgba(255,255,255,.05);line-height:1.3}.mat-effect:last-child{border-bottom:none}.mat-effect-name{color:var(--accent);font-weight:700}.mat-effect-desc{color:var(--text);margin-left:4px}.mat-effect-dur{color:var(--text-muted);font-size:.6rem;margin-left:4px}.plays-played{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:12px;margin-bottom:16px}.plays-played h3{font-size:.9rem;margin-bottom:10px;color:var(--accent)}.plays-battle{margin-bottom:10px}.plays-battle:last-child{margin-bottom:0}.plays-battle-header{font-size:.75rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;margin-bottom:4px;padding-bottom:3px;border-bottom:1px solid var(--border)}.plays-battle-players{display:grid;grid-template-columns:1fr 1fr;gap:12px}.plays-player-name{font-size:.7rem;font-weight:700;color:var(--text-muted);margin-bottom:3px}.p1-plays .plays-player-name{color:var(--p1-color)}.p2-plays .plays-player-name{color:var(--p2-color)}.play-chip{display:inline-block;padding:2px 8px;margin:2px 4px 2px 0;background:var(--bg-card);border:1px solid var(--border);border-radius:4px;font-size:.78rem;color:var(--text);cursor:pointer;transition:border-color .15s}.play-chip:hover{border-color:var(--accent);color:var(--accent)}.plays-none{font-size:.78rem;color:var(--text-dim)}.card-overlay-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000}.card-overlay{background:var(--bg-panel);border:2px solid var(--accent);border-radius:12px;padding:24px;max-width:400px;width:90%;position:relative}.card-overlay-close{position:absolute;top:8px;right:12px;background:none;border:none;color:var(--text-muted);font-size:1.4rem;cursor:pointer}.card-overlay-close:hover{color:var(--text)}.card-overlay-name{font-size:1.2rem;color:var(--accent);margin-bottom:8px}.card-overlay-cost{font-size:.9rem;color:#ffc107;font-weight:700;margin-bottom:12px}.card-overlay-desc{font-size:.9rem;color:var(--text);line-height:1.5}.event-log{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:12px;max-height:300px;overflow-y:auto}.event-log h3{font-size:.9rem;margin-bottom:8px;color:var(--accent)}.event-log-entry{font-size:.8rem;padding:4px 0;border-bottom:1px solid var(--border);line-height:1.4;white-space:pre-wrap}.event-log-entry:last-child{border-bottom:none}.waiting{text-align:center;padding:60px 20px;color:var(--text-muted)}.waiting h2{font-size:2.4rem;margin-bottom:12px;color:var(--accent);letter-spacing:1px}.game-selector{list-style:none;padding:0}.game-selector li{padding:12px;margin:8px 0;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:border-color .2s}.game-selector li:hover{border-color:var(--accent)}.menu-toggle{position:fixed;top:12px;left:12px;z-index:1001;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;color:var(--accent);font-size:1.4rem;width:40px;height:40px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .2s}.menu-toggle:hover{border-color:var(--accent)}.menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:999}.menu-drawer{position:fixed;top:0;left:-260px;width:260px;height:100vh;background:var(--bg-panel);border-right:1px solid var(--border);z-index:1000;transition:left .25s ease;padding:60px 0 20px}.menu-drawer.open{left:0}.menu-header{padding:0 20px 16px;border-bottom:1px solid var(--border)}.menu-header h2{color:var(--accent);font-size:1.3rem}.menu-links{list-style:none;padding:12px 0}.menu-links li a{display:flex;align-items:center;gap:10px;padding:12px 20px;color:var(--text);text-decoration:none;font-size:.95rem;transition:background .15s}.menu-links li a:hover{background:#00e67614}.menu-links li a.active{color:var(--accent);background:#00e6761f;border-left:3px solid var(--accent)}.menu-link-icon{font-size:1.1rem}.page{padding-top:10px}.page h2{color:var(--accent);margin-bottom:16px;font-size:1.3rem}.empty-state{color:var(--text-muted);text-align:center;padding:40px}.back-button{margin-top:12px;padding:8px 16px;background:var(--bg-panel);color:var(--text);border:1px solid var(--border);border-radius:4px;cursor:pointer;transition:border-color .2s}.back-button:hover{border-color:var(--accent)}.history-list{display:flex;flex-direction:column;gap:8px}.history-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:12px 16px;display:grid;grid-template-columns:120px 1fr 150px;align-items:center;gap:16px;transition:border-color .2s}.history-card:hover{border-color:var(--accent)}.history-date-col{display:flex;flex-direction:column}.history-date{font-size:.85rem;color:var(--text)}.history-time{font-size:.75rem;color:var(--text-muted)}.history-matchup{display:flex;align-items:center;gap:8px;font-weight:700;justify-content:center}.history-vs{color:var(--text-muted);font-weight:400;font-size:.85rem}.history-result-col{text-align:right;font-size:.9rem}.history-winner{color:var(--accent)}.history-tie{color:var(--text-muted)}.stats-table{width:100%;border-collapse:collapse;background:var(--bg-panel);border-radius:8px;overflow:hidden}.stats-table th{text-align:left;padding:10px 16px;background:#00e67614;color:var(--accent);font-size:.85rem;border-bottom:1px solid var(--border)}.stats-table td{padding:10px 16px;border-bottom:1px solid var(--border);font-size:.9rem}.stats-table tr:last-child td{border-bottom:none}.stats-table tr:hover td{background:#00e6760a}.stats-player-name{font-weight:700}.ai-recs{margin-bottom:24px}.ai-recs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.ai-recs-header h3{color:var(--accent)}.ai-meta{font-size:.75rem;color:var(--text-muted)}.ai-loading{text-align:center;padding:20px;color:var(--text-muted);font-style:italic}.ai-recs-list{display:flex;flex-direction:column;gap:10px}.ai-rec-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:12px 16px}.ai-rec-top{display:flex;justify-content:space-between;margin-bottom:6px}.ai-rec-category{font-size:.75rem;text-transform:uppercase;color:var(--text-muted)}.ai-rec-priority{font-size:.7rem;font-weight:700;text-transform:uppercase}.ai-rec-title{font-weight:700;font-size:.95rem;margin-bottom:4px}.ai-rec-desc{font-size:.85rem;color:#b0b0b0;line-height:1.4}.stats-overview{color:var(--text-muted);margin-bottom:20px}.stats-section{margin-bottom:24px}.stats-section h3{color:var(--text);margin-bottom:10px;font-size:1rem}.trends-row{display:flex;gap:12px}.trend-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:12px 20px;text-align:center;min-width:120px}.trend-label{font-size:.75rem;color:var(--text-muted);margin-bottom:4px}.trend-value{font-size:1.1rem;font-weight:700;color:var(--accent)}.weapon-bars{display:flex;flex-direction:column;gap:8px}.weapon-bar-row{display:flex;align-items:center;gap:10px}.weapon-label{min-width:50px;font-size:.85rem;font-weight:700}.weapon-bar-track{flex:1;height:20px;background:var(--bg-card);border-radius:4px;overflow:hidden}.weapon-bar-fill{height:100%;border-radius:4px;transition:width .3s}.weapon-rate{min-width:100px;font-size:.8rem;color:var(--text-muted);text-align:right}.clickable-name{cursor:pointer;color:var(--accent)}.clickable-name:hover{text-decoration:underline}.premium-gate{text-align:center;padding:60px 20px}.premium-gate-icon{font-size:3rem;margin-bottom:12px}.premium-gate h3{color:var(--accent);margin-bottom:8px}.premium-gate p{color:var(--text-muted);margin-bottom:20px;max-width:400px;margin-left:auto;margin-right:auto}.round-detail{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:16px}.round-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.round-detail-header h3{margin:0;font-size:1rem}.round-detail-result{color:var(--accent);font-weight:700;font-size:.9rem}.round-arena{margin-bottom:12px}.round-arena-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}.round-arena-slot{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:8px;text-align:center;font-size:.8rem}.round-arena-battle-num{font-size:.7rem;font-weight:700;color:var(--text-muted);margin-bottom:4px}.round-hero-info{display:flex;flex-direction:column;gap:2px}.round-hero-name{font-weight:700;font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.round-hero-score{font-size:.85rem;font-weight:700;color:var(--accent)}.round-hero-empty{color:var(--text-dim)}.round-arena-vs{font-size:.65rem;color:var(--text-dim);margin:2px 0}.round-arena-winner{font-size:.65rem;color:var(--accent);font-weight:700;margin-top:4px}.round-plays-section{border-top:1px solid var(--border);padding-top:10px}.round-plays-section h4{font-size:.85rem;color:var(--text-muted);margin:0 0 6px}.round-plays-battle{font-size:.8rem;margin-bottom:4px;display:flex;gap:12px;flex-wrap:wrap}.round-plays-battle-label{font-weight:700;color:var(--text-muted);min-width:25px}.round-plays-player{color:var(--text)}.round-plays-player strong{color:var(--text-muted)}.play-timeline{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:12px;max-height:500px;overflow-y:auto}.timeline-entry{display:flex;gap:10px;align-items:flex-start;padding:6px 0;border-bottom:1px solid var(--border);font-size:.8rem}.timeline-entry:last-child{border-bottom:none}.timeline-time{color:var(--text-dim);font-size:.7rem;min-width:65px;flex-shrink:0}.timeline-icon{flex-shrink:0}.timeline-message{white-space:pre-wrap;line-height:1.4}.game-detail-header{margin-bottom:16px}.game-detail-header h2{margin-bottom:4px}.game-detail-meta{display:flex;gap:16px;font-size:.9rem}.game-detail-winner{color:var(--accent);font-weight:700}.game-detail-tie,.game-detail-date{color:var(--text-muted)}.round-summaries{display:flex;gap:12px;margin-bottom:16px}.round-summary-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:12px 16px;display:flex;flex-direction:column;gap:4px;font-size:.85rem;min-width:120px}.round-power{color:var(--text-muted);font-size:.8rem}.history-card.clickable{cursor:pointer}.history-detail-link{color:var(--accent);font-size:.8rem}.payment-warning{position:fixed;top:0;left:0;right:0;background:#c62828;color:#fff;padding:8px 16px;font-size:.85rem;text-align:center;z-index:1003;display:flex;align-items:center;justify-content:center;gap:12px}.payment-warning-btn{background:#fff;color:#c62828;border:none;padding:4px 12px;border-radius:4px;font-size:.8rem;font-weight:700;cursor:pointer}.user-menu-status{padding:8px 16px;font-size:.75rem;border-bottom:1px solid var(--border)}.sub-status{color:var(--text-muted)}.sub-status.warning{color:#ff8a65}.admin-message{background:#00e6761a;border:1px solid var(--accent);border-radius:6px;padding:10px 16px;margin-bottom:16px;font-size:.85rem;color:var(--accent)}.admin-metrics{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin-bottom:24px}.metric-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:16px;text-align:center}.metric-value{font-size:1.8rem;font-weight:700;color:var(--accent)}.metric-label{font-size:.8rem;color:var(--text-muted);margin-top:4px}.admin-grant{margin-bottom:24px}.admin-grant h3{color:var(--text);margin-bottom:8px;font-size:1rem}.grant-form{display:flex;gap:8px}.grant-input{flex:1;padding:8px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.85rem}.grant-input:focus{outline:none;border-color:var(--accent)}.grant-btn{padding:8px 20px;background:var(--accent);color:#000;border:none;border-radius:6px;font-weight:700;cursor:pointer}.revoke-btn{padding:4px 10px;background:none;border:1px solid var(--p2-color);color:var(--p2-color);border-radius:4px;font-size:.75rem;cursor:pointer}.revoke-btn:hover{background:#ef53501a}@media(max-width:600px){.admin-metrics{grid-template-columns:repeat(2,1fr)}}.pricing-page h2{text-align:center;margin-bottom:24px}.pricing-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:700px;margin:0 auto}.pricing-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:24px;position:relative}.pricing-card.featured{border-color:var(--accent)}.pricing-badge{position:absolute;top:-10px;right:16px;background:var(--accent);color:#000;font-size:.65rem;font-weight:700;padding:3px 8px;border-radius:3px}.pricing-card h3{font-size:1.2rem;margin-bottom:8px}.pricing-price{font-size:2rem;font-weight:700;color:var(--accent)}.pricing-period{font-size:.85rem;color:var(--text-muted);margin-bottom:4px}.pricing-commitment{font-size:.72rem;color:var(--text-dim);margin-bottom:16px;font-style:italic}.pricing-footer{text-align:center;margin-top:32px;font-size:.8rem;color:var(--text-muted)}.tos-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.tos-modal{background:var(--bg-card, #1a1d22);border:1px solid var(--border, #2a2e35);border-radius:8px;padding:24px;max-width:480px;width:100%;box-shadow:0 10px 40px #00000080}.tos-modal h3{margin:0 0 4px}.tos-modal-price{margin:0 0 16px;font-size:.9rem;color:var(--text-muted)}.tos-modal-commit{font-style:italic}.tos-modal-check{display:block;padding:12px;margin:12px 0;background:#ffffff08;border-radius:6px;font-size:.9rem;line-height:1.5;cursor:pointer}.tos-modal-check input{margin-right:4px}.tos-modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:16px}.pricing-footer a{color:var(--accent);text-decoration:none}.pricing-footer a:hover{text-decoration:underline}.legal-content{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:20px;margin-top:16px}.pricing-features{list-style:none;padding:0;margin-bottom:20px}.pricing-features li{padding:6px 0;font-size:.85rem;border-bottom:1px solid var(--border)}.pricing-features li.included{color:var(--text)}.pricing-features li.excluded{color:var(--text-dim)}.pricing-action{text-align:center}.pricing-btn{padding:10px 24px;border:1px solid var(--border);border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s;background:var(--bg-card);color:var(--text)}.pricing-btn.primary{background:var(--accent);color:#000;border-color:var(--accent);font-weight:700}.pricing-btn.primary:hover{background:var(--accent-dim)}.pricing-btn.secondary:hover{border-color:var(--accent)}.pricing-btn:disabled{opacity:.5;cursor:not-allowed}.pricing-error{color:var(--p2-color);font-size:.8rem;margin-top:8px;text-align:center}@media(max-width:600px){.pricing-cards{grid-template-columns:1fr}}.auth-header{position:fixed;top:12px;right:12px;z-index:1001}.login-button{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#5865f2;color:#fff;border:none;border-radius:6px;font-size:.85rem;cursor:pointer;transition:background .2s}.login-button:hover{background:#4752c4}.login-button svg{flex-shrink:0}.user-menu{position:relative}.user-menu-toggle{display:flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;background:var(--bg-panel);border:1px solid var(--border);border-radius:20px;color:var(--text);cursor:pointer;transition:border-color .2s}.user-menu-toggle:hover{border-color:var(--accent)}.user-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover}.user-avatar-fallback{width:28px;height:28px;border-radius:50%;background:var(--accent);color:#000;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}.user-name{font-size:.85rem;font-weight:500}.user-menu-dropdown{position:absolute;top:100%;right:0;margin-top:6px;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;min-width:180px;overflow:hidden;z-index:1002}.user-menu-dropdown button{display:block;width:100%;padding:10px 16px;background:none;border:none;color:var(--text);text-align:left;font-size:.85rem;cursor:pointer;transition:background .15s}.user-menu-dropdown button:hover{background:#00e67614}.user-menu-dropdown .logout-btn{color:var(--p2-color);border-top:1px solid var(--border)}.sub-badge{display:inline-block;padding:2px 6px;border-radius:3px;font-size:.65rem;font-weight:700;text-transform:uppercase}.sub-badge.premium{background:var(--accent);color:#000}.sub-badge.free{background:var(--border);color:var(--text-muted)}.home-page{max-width:800px;margin:0 auto}.home-hero{text-align:center;padding:60px 20px 40px}.home-hero h1{font-size:2.4rem;color:var(--accent);margin-bottom:12px;letter-spacing:1px}.home-tagline{font-size:1.1rem;color:var(--text-muted);max-width:500px;margin:0 auto 24px;line-height:1.5}.home-hero-actions{display:flex;gap:12px;justify-content:center}.home-btn{padding:12px 28px;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s;border:none}.home-btn.primary{background:var(--accent);color:#000}.home-btn.primary:hover{background:var(--accent-dim)}.home-btn.secondary{background:transparent;border:1px solid var(--accent);color:var(--accent)}.home-btn.secondary:hover{background:#00e6761a}.home-features{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:0 20px;margin-bottom:40px}.home-feature-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:24px;cursor:pointer;transition:border-color .2s,transform .15s;position:relative}.home-feature-card:hover{border-color:var(--accent);transform:translateY(-2px)}.home-feature-card.premium{border-color:#00e6764d}.home-feature-icon{font-size:1.8rem;margin-bottom:10px}.home-feature-card h3{font-size:1.05rem;color:var(--text);margin-bottom:6px}.home-feature-card p{font-size:.85rem;color:var(--text-muted);line-height:1.4;margin-bottom:12px}.home-premium-tag{position:absolute;top:12px;right:12px;background:var(--accent);color:#000;font-size:.6rem;font-weight:700;padding:2px 6px;border-radius:3px;text-transform:uppercase}.home-feature-cta{font-size:.85rem;color:var(--accent);font-weight:600}.home-bottom{text-align:center;padding:20px;border-top:1px solid var(--border)}.home-bottom-text{color:var(--text-dim);font-size:.85rem}@media(max-width:600px){.home-features{grid-template-columns:1fr}.home-hero h1{font-size:1.8rem}.home-hero-actions{flex-direction:column;align-items:center}}.deck-tabs{display:flex;gap:0;margin-bottom:20px;border-bottom:2px solid var(--border)}.deck-tab{padding:10px 24px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-size:1rem;font-weight:700;cursor:pointer;margin-bottom:-2px;transition:color .2s,border-color .2s}.deck-tab:hover{color:var(--text)}.deck-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.deck-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.deck-create-btn{padding:8px 20px;background:var(--accent);color:#000;border:none;border-radius:6px;font-weight:700;font-size:.85rem;cursor:pointer}.deck-create-btn:hover{background:var(--accent-dim)}.deck-cancel-btn{padding:8px 16px;background:none;border:1px solid var(--border);color:var(--text-muted);border-radius:6px;font-size:.85rem;cursor:pointer}.deck-create-form{display:flex;gap:8px;margin-bottom:20px;align-items:center}.deck-style-select{padding:8px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.85rem}.deck-error{color:var(--p2-color);font-size:.85rem;margin-bottom:12px}.deck-csv-actions{display:flex;align-items:center;gap:8px;margin:8px 0 12px}.deck-csv-btn{background:var(--panel-bg, #1e1e24);border:1px solid var(--border, #444);color:var(--text, #e6e6e6);font-size:.85rem;padding:6px 12px;border-radius:4px;cursor:pointer}.deck-csv-btn:hover{border-color:var(--accent)}.deck-csv-status{font-size:.8rem;color:var(--text-muted);margin-left:4px}.csv-help-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.csv-help-modal{background:var(--panel-bg, #1e1e24);border:1px solid var(--border, #444);border-radius:6px;padding:20px 24px;max-width:560px;width:calc(100% - 40px);color:var(--text, #e6e6e6);font-size:.9rem}.csv-help-modal h3{margin-top:0;margin-bottom:10px}.csv-help-modal code{background:#ffffff14;padding:1px 5px;border-radius:3px;font-size:.85rem}.csv-help-example{background:#ffffff0a;border:1px solid var(--border, #444);border-radius:4px;padding:10px 12px;margin:10px 0;font-size:.8rem;overflow-x:auto;white-space:pre}.csv-help-modal ul{padding-left:20px;margin:10px 0}.csv-help-modal li{margin-bottom:6px}.csv-help-note{color:var(--text-muted);font-size:.85rem;margin-top:8px}.csv-help-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.deck-csv-btn-primary{background:var(--accent, #6a8dff);border-color:var(--accent, #6a8dff);color:#fff}.deck-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;margin-bottom:20px}.deck-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:20px;cursor:pointer;transition:border-color .2s,transform .15s}.deck-card:hover{border-color:var(--accent);transform:translateY(-2px)}.deck-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.deck-card-header h3{font-size:1.2rem;margin:0}.deck-style-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;padding:2px 8px;border-radius:3px}.deck-style-badge.dbs{background:#00e67626;color:var(--accent)}.deck-style-badge.checklist{background:#42a5f526;color:var(--p1-color)}.deck-dbs-bar{position:relative;height:24px;background:var(--bg-card);border-radius:4px;overflow:hidden;margin-bottom:8px}.deck-dbs-fill{height:100%;background:var(--accent);opacity:.3;border-radius:4px;transition:width .3s}.deck-dbs-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:var(--text)}.deck-counts{display:flex;gap:16px;font-size:.9rem;color:var(--text-muted);margin-bottom:10px}.deck-card-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);padding-top:10px}.deck-stats{display:flex;gap:12px;font-size:.8rem}.deck-record{color:var(--accent);font-weight:700}.deck-battle-rate{color:var(--text-muted)}.deck-stats-empty{font-size:.8rem;color:var(--text-dim)}.deck-delete-btn{padding:4px 10px;background:none;border:1px solid var(--p2-color);color:var(--p2-color);border-radius:4px;font-size:.75rem;cursor:pointer}.deck-delete-btn:hover{background:#ef53501a}.deck-upgrade-banner{background:var(--bg-panel);border:1px solid var(--accent);border-radius:8px;padding:16px;text-align:center;color:var(--text-muted);font-size:.9rem;display:flex;align-items:center;justify-content:center;gap:12px}@media(max-width:600px){.deck-grid{grid-template-columns:1fr}.deck-create-form{flex-wrap:wrap}}.deck-builder-page{max-width:1200px;margin:0 auto}.deck-settings{margin-bottom:12px}.deck-settings-name{margin-bottom:8px}.deck-name-display{cursor:pointer;display:inline-flex;align-items:center;gap:8px}.deck-name-edit-icon{font-size:.7rem;color:var(--text-muted)}.deck-name-edit{display:flex;gap:8px;align-items:center}.deck-settings-row{margin-bottom:8px}.deck-toggles{display:flex;gap:16px}.deck-toggle{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text-muted);cursor:pointer}.deck-toggle input[type=checkbox]{accent-color:var(--accent)}.deck-validation{margin-bottom:12px}.deck-valid-badge{display:inline-block;padding:4px 12px;border-radius:4px;font-size:.8rem;font-weight:700;text-transform:uppercase;margin-bottom:6px}.deck-valid-badge.valid{background:#00e67626;color:var(--accent)}.deck-valid-badge.invalid{background:#ef535026;color:var(--p2-color)}.deck-val-errors,.deck-val-warnings{font-size:.8rem;margin-top:4px}.deck-val-error{color:var(--p2-color);padding:2px 0}.deck-val-warning{color:#ffa726;padding:2px 0}.deck-builder-panels{display:grid;grid-template-columns:3fr 2fr;gap:16px;align-items:start}.deck-builder-left,.deck-builder-right{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:16px}.card-browser-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.card-browser-header h3{margin:0;font-size:1rem}.card-browser-count{font-size:.8rem;color:var(--text-muted)}.card-browser-filters{margin-bottom:12px}.card-browser-search{width:100%;padding:8px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.85rem;margin-bottom:8px}.card-browser-search:focus{outline:none;border-color:var(--accent)}.card-browser-toggles{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.card-browser-select{padding:6px 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:.8rem}.card-browser-has-card{display:flex;align-items:center;gap:4px;font-size:.8rem;color:var(--accent);cursor:pointer}.card-browser-controls{margin-bottom:10px}.card-browser-controls .card-browser-search{margin-bottom:0}.card-browser-col-headers{display:flex;padding:6px 8px;font-size:.75rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;border-bottom:1px solid var(--border);background:var(--bg-card);border-radius:4px 4px 0 0;gap:8px}.cb-col-id{flex-shrink:0;width:110px}.cb-col-name{flex:1;min-width:0}.cb-col-cost,.cb-col-dbs{width:40px;text-align:right}.cb-col-action{width:50px}.card-browser-list{max-height:500px;overflow-y:auto}.card-browser-loading,.card-browser-empty{color:var(--text-muted);font-size:.85rem;text-align:center;padding:20px}.bonus-slot-grid{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.bonus-slot{width:48px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:4px;font-size:.75rem;font-weight:700;border:2px dashed var(--border);color:var(--text-muted)}.bonus-slot.filled{background:#39ff141a;border:2px solid var(--accent);color:var(--accent)}.bonus-slot.empty{background:var(--bg-card)}.bonus-slot-summary{margin-bottom:12px;padding:8px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px}.bonus-slot-label{font-size:.8rem;color:var(--text-muted);margin-bottom:4px}.bonus-slot-counts{display:flex;gap:12px;font-size:.85rem;font-weight:700}.hero-card-row{display:grid;grid-template-columns:50px 1fr 80px 80px 140px 70px;align-items:center;padding:4px 8px;font-size:.85rem;border-bottom:1px solid var(--border);gap:8px}.hero-card-row:hover{background:var(--bg-card)}.hero-card-row.bonus{border-left:3px solid var(--accent)}.hero-row-power{font-weight:700;text-align:center}.hero-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-row-weapon{font-weight:700;font-size:.78rem}.hero-row-set,.hero-row-parallel{font-size:.72rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-row-parallel-select{background:var(--panel-bg, #1e1e24);border:1px solid var(--border, #444);color:var(--text, #e6e6e6);font-size:.72rem;padding:1px 4px;border-radius:3px;max-width:100%}.hero-row-variation{font-size:.72rem;color:var(--text-muted);font-style:italic}.hero-row-action{text-align:center;font-size:.75rem;font-weight:700;color:var(--text-muted)}.hero-browser-filters{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.hero-power-input{width:90px;padding:6px 8px;background:var(--bg-card);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:.85rem}.hero-browser-header{display:grid;grid-template-columns:50px 1fr 80px 80px 140px 70px;gap:8px;padding:6px 8px;font-size:.75rem;font-weight:700;color:var(--text-muted);border-bottom:2px solid var(--border);text-transform:uppercase}.hero-browser-list{max-height:500px;overflow-y:auto}.hero-deck-summary{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.hero-deck-count{font-weight:700;font-size:1.1rem}.hero-deck-format-badge{background:var(--accent);color:var(--bg);padding:2px 10px;border-radius:4px;font-size:.75rem;font-weight:700}.hero-power-dist{margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.hero-power-dist h4{font-size:.8rem;color:var(--text-muted);margin-bottom:8px}.hero-power-bars{display:flex;flex-direction:column;gap:4px}.hero-power-bar-row{display:flex;align-items:center;gap:8px;font-size:.75rem}.hero-power-label{width:30px;text-align:right;color:var(--text-muted)}.hero-power-bar{flex:1;height:8px;background:var(--bg-card);border-radius:4px;overflow:hidden}.hero-power-bar-fill{height:100%;background:var(--accent);border-radius:4px;transition:width .3s}.hero-power-count{width:25px;color:var(--text-muted)}.card-row-wrapper{border-bottom:1px solid var(--border)}.card-row-wrapper:last-child{border-bottom:none}.card-row{display:flex;align-items:center;padding:6px 8px;font-size:.82rem;gap:8px;cursor:pointer}.card-row:hover{background:#ffffff05}.card-row-id{flex-shrink:0;width:110px;font-size:.7rem;color:var(--text-muted);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-row-info{flex:1;min-width:0}.card-row-desc{padding:4px 8px 8px 126px;font-size:.78rem;color:var(--text-muted);line-height:1.4}.card-row-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.card-row-tags{display:flex;gap:4px;margin-top:2px}.card-tag{font-size:.6rem;font-weight:700;text-transform:uppercase;padding:1px 4px;border-radius:2px}.card-tag.bonus{background:#42a5f533;color:var(--p1-color)}.card-tag.htd{background:#ffc10733;color:#ffc107}.card-row-stats{display:flex;gap:10px;flex-shrink:0}.card-row-cost{color:#ffc107;font-weight:700;min-width:28px;text-align:right}.card-row-dbs{color:var(--accent);font-weight:700;min-width:28px;text-align:right}.card-row-action{padding:3px 10px;border-radius:4px;font-size:.7rem;font-weight:700;cursor:pointer;flex-shrink:0;border:none}.card-row-action.add{background:var(--accent);color:#000}.card-row-action.add:hover{background:var(--accent-dim)}.card-row-action.remove{background:none;border:1px solid var(--p2-color);color:var(--p2-color)}.card-row-action.remove:hover{background:#ef53501a}.deck-card-counts{display:flex;gap:12px;font-size:.8rem;color:var(--text-muted);margin:8px 0}.count-ok{color:var(--accent)}.count-warn{color:var(--p2-color)}.deck-section{margin-top:12px}.deck-section h4{font-size:.85rem;color:var(--text-muted);margin-bottom:4px}.deck-empty{color:var(--text-dim);font-size:.85rem;text-align:center;padding:30px 10px}@media(max-width:768px){.deck-builder-panels{grid-template-columns:1fr}}.inventory-controls{margin-bottom:16px}.inventory-top-row{display:flex;gap:8px;align-items:center}.inventory-top-row .card-browser-search{flex:1;margin-bottom:0}.inventory-filter-toggle{padding:8px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.85rem;cursor:pointer;white-space:nowrap}.inventory-filter-toggle:hover{border-color:var(--accent)}.inventory-filter-panel{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:10px;padding:10px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px}.inventory-list{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;overflow:hidden}.inventory-header-row{display:flex;padding:8px 12px;font-size:.75rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;border-bottom:1px solid var(--border);background:var(--bg-card)}.inventory-row{display:flex;padding:8px 12px;font-size:.82rem;border-bottom:1px solid var(--border);align-items:center}.inventory-row:last-child{border-bottom:none}.inventory-row.owned{background:#00e6760a}.inv-col-cardid{flex:1.2;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.75rem;color:var(--text-muted);font-family:monospace}.inv-col-name{flex:1.8;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inv-col-set{flex:1;color:var(--text-muted);font-size:.75rem;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable:hover{color:var(--accent)}.inventory-count{font-size:.8rem;color:var(--text-dim);text-align:right;margin-top:8px}.inv-col-cost{width:40px;text-align:right;color:#ffc107;font-weight:700}.inv-col-dbs{width:40px;text-align:right;color:var(--accent);font-weight:700}.inv-col-action{width:70px;text-align:right}.inv-add-btn{padding:3px 10px;background:var(--accent);color:#000;border:none;border-radius:4px;font-size:.7rem;font-weight:700;cursor:pointer}.inv-add-btn:hover{background:var(--accent-dim)}.inv-remove-btn{padding:3px 10px;background:none;border:1px solid var(--p2-color);color:var(--p2-color);border-radius:4px;font-size:.7rem;font-weight:700;cursor:pointer}.inv-remove-btn:hover{background:#ef53501a}.attach-deck{display:flex;align-items:center;gap:8px;margin:12px 0;padding:10px 14px;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;font-size:.85rem}.attach-deck.attached{color:var(--accent)}.attach-deck-select{padding:6px 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:.85rem}.attach-deck-btn{padding:6px 14px;background:var(--accent);color:#000;border:none;border-radius:4px;font-size:.8rem;font-weight:700;cursor:pointer}.attach-deck-btn:disabled{opacity:.4;cursor:not-allowed}.attach-deck-error{color:var(--p2-color);font-size:.8rem}.checklist-list{display:flex;flex-direction:column;gap:12px}.checklist-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:12px 16px}.checklist-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.checklist-meta{font-size:.8rem;color:var(--text-muted)}.checklist-actions{display:flex;gap:8px}.csv-upload-label{cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.checklist-add-form{margin-top:8px}.checklist-textarea{width:100%;padding:8px;background:var(--bg-card);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:.82rem;font-family:inherit;resize:vertical;margin-bottom:8px}.checklist-textarea:focus{outline:none;border-color:var(--accent)}.checklist-add-actions{display:flex;gap:8px}@media(max-width:900px){.arena-slots{grid-template-columns:repeat(4,1fr)}.mat-zones{flex-wrap:wrap}}@media(max-width:600px){.arena-slots{grid-template-columns:repeat(3,1fr)}.players-row{grid-template-columns:1fr}.mat-zone{min-width:60px;padding:6px 10px}}
