*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-deep:#080810;--bg-primary:#0e0e1a;--bg-card:#141422;--bg-card-hover:#1a1a2e;--bg-input:#ffffff0a;--border:#ffffff12;--border-accent:#e9456040;--text:#d4d4d8;--text-dim:#71717a;--text-muted:#52525b;--accent:#e94560;--accent-soft:#e945601f;--teal:#4ecdc4;--teal-soft:#4ecdc41f;--gold:#fbbf24;--gold-soft:#fbbf241a;--red:#ef4444;--red-soft:#ef44441a;--green:#34d399;--green-soft:#34d3991a;--purple:#a78bfa;--purple-soft:#a78bfa1a;--radius:14px;--radius-sm:10px;--radius-xs:7px}html{font-size:16px}body{background:var(--bg-deep);color:var(--text);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;font-weight:400;line-height:1.5}#root{min-height:100vh}.page{max-width:960px;margin:0 auto;padding:1.25rem}.lobby-dashboard{max-width:1200px}.loading,.not-found{min-height:50vh;color:var(--text-dim);justify-content:center;align-items:center;font-size:1rem;display:flex}.section-label{text-transform:uppercase;letter-spacing:1.5px;color:var(--accent);margin-bottom:12px;font-size:10px;font-weight:700}.card{background:linear-gradient(135deg, var(--bg-card), #141422cc);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.card-hover:hover{background:var(--bg-card-hover)}.form-field{margin-bottom:.75rem}.form-field label{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:6px;font-size:10px;font-weight:700;display:block}.form-field input,.form-field select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-xs);width:100%;color:var(--text);padding:10px 12px;font-size:13px;font-weight:400;transition:border-color .2s}.form-field select option{background:var(--bg-card);color:var(--text)}select option{color:#d4d4d8;background:#141422}.form-field input::placeholder{color:var(--text-muted)}.form-field input:focus,.form-field select:focus{border-color:var(--accent);background:#ffffff0f;outline:none}button{background:var(--accent);color:#fff;border-radius:var(--radius-xs);cursor:pointer;border:none;padding:10px 18px;font-size:13px;font-weight:600;transition:transform .15s,filter .15s,background .2s}button:hover:not(:disabled){filter:brightness(1.15);transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.4;cursor:not-allowed}.btn-sm{border-radius:var(--radius-xs);padding:6px 12px;font-size:11px}.btn-ghost{color:var(--text-dim);background:#ffffff0f}.btn-ghost:hover:not(:disabled){background:#ffffff1a}.btn-danger{background:var(--red)}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-teal{background:var(--teal);color:#0e0e1a}.btn-purple{background:var(--purple);color:#0e0e1a}.btn-block{width:100%}.home-container{justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:420px;padding:32px}.login-header{text-align:center;margin-bottom:28px}.login-title{background:linear-gradient(135deg, var(--accent), var(--teal));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:6px;font-size:22px;font-weight:800}.login-subtitle{color:var(--text-dim);font-size:12px;font-weight:500}.login-helper{color:var(--text-muted);text-align:center;margin-top:16px;font-size:11px;line-height:1.6}.login-footer{justify-content:center;margin-top:20px;display:flex}.lang-toggle{border:1px solid var(--border);color:var(--text-dim);border-radius:var(--radius-xs);cursor:pointer;letter-spacing:.5px;background:#ffffff0f;padding:6px 14px;font-size:11px;font-weight:700;transition:background .2s}.lang-toggle:hover{background:#ffffff1a}.error-message{color:var(--red);background:var(--red-soft);border-radius:var(--radius-xs);margin-bottom:8px;padding:8px 12px;font-size:12px}.warning-message{color:var(--gold);background:var(--gold-soft);border-radius:var(--radius-xs);margin-bottom:8px;padding:8px 12px;font-size:12px}.settings-toggle{width:100%;color:var(--text-dim);cursor:pointer;text-align:left;letter-spacing:.5px;background:0 0;border:none;margin-bottom:8px;padding:8px 0;font-size:11px;font-weight:600}.settings-toggle:hover:not(:disabled){color:var(--text);filter:none;transform:none}.settings-panel{border:1px solid var(--border);border-radius:var(--radius-xs);background:#ffffff05;margin-bottom:12px;padding:14px}.settings-description{color:var(--text-dim);margin-top:6px;font-size:11px;line-height:1.5}.route-search-wrapper{align-items:center;display:flex;position:relative}.route-search-wrapper input{width:100%;padding-right:32px}.route-clear-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:4px 6px;font-size:12px;line-height:1;position:absolute;right:6px}.route-clear-btn:hover:not(:disabled){color:var(--text);filter:none;transform:none}.route-starter-option{border-bottom:1px solid var(--border);font-weight:700;color:var(--gold)!important}.route-used-option{color:var(--text-dim)!important}.route-used-check{color:var(--green);margin-right:6px;font-size:12px;font-weight:700}.lobby-header{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.lobby-logo{background:linear-gradient(135deg, var(--accent), #ff6b6b, var(--gold));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:15px;font-weight:800}.lobby-badge{letter-spacing:.5px;border-radius:20px;padding:4px 10px;font-size:10px;font-weight:700}.lobby-badge-game{background:var(--teal-soft);color:var(--teal)}.lobby-badge-code{background:var(--accent-soft);color:var(--accent)}.lobby-header-spacer{flex:1}.btn-logout{color:var(--text-dim);border-radius:var(--radius-xs);background:#ffffff0f;padding:6px 14px;font-size:11px}.tab-bar{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);gap:4px;margin-bottom:24px;padding:4px;display:flex}.tab-btn{color:var(--text-dim);border-radius:var(--radius-xs);cursor:pointer;background:0 0;border:none;flex:1;padding:10px 16px;font-size:12px;font-weight:700;transition:background .2s,color .2s}.tab-btn:hover:not(:disabled){color:var(--text);filter:none;background:#ffffff0a;transform:none}.tab-btn.active,.tab-btn.active:hover:not(:disabled){background:var(--accent);color:#fff}.filter-bar{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.filter-pill{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:#ffffff0f;border-radius:20px;align-items:center;gap:6px;padding:6px 14px;font-size:11px;font-weight:600;transition:all .2s;display:inline-flex}.filter-pill:hover:not(:disabled){filter:none;background:#ffffff1a;transform:none}.filter-pill.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.filter-pill.active-green{border-color:var(--green);background:var(--green-soft);color:var(--green)}.filter-pill.active-red{border-color:var(--red);background:var(--red-soft);color:var(--red)}.filter-pill.active-purple{border-color:var(--purple);background:var(--purple-soft);color:var(--purple)}.filter-pill.active-gold{border-color:var(--gold);background:var(--gold-soft);color:var(--gold)}.filter-count{background:#ffffff1a;border-radius:10px;padding:1px 6px;font-size:10px}.stats-bar{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px;margin-bottom:20px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;padding:12px}.stat-value{margin-bottom:2px;font-size:20px;font-weight:800;display:block}.stat-value-green{color:var(--green)}.stat-value-red{color:var(--red)}.stat-value-purple{color:var(--purple)}.stat-value-gold{color:var(--gold)}.stat-value-teal{color:var(--teal)}.stat-value-accent{color:var(--accent)}.stat-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-size:10px;font-weight:700}.link-form-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;padding:20px}.link-form-toggle{border-radius:var(--radius-xs);background:#ffffff08;gap:4px;margin-bottom:16px;padding:3px;display:flex}.link-form-toggle-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:5px;flex:1;padding:8px 12px;font-size:11px;font-weight:600;transition:all .2s}.link-form-toggle-btn:hover:not(:disabled){filter:none;transform:none}.link-form-toggle-btn.active{background:var(--accent);color:#fff}.link-form-players{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.link-form-player-section{border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffff05;padding:14px}.link-form-player-label{text-transform:uppercase;letter-spacing:1px;color:var(--teal);margin-bottom:10px;font-size:10px;font-weight:700}.pokemon-search-field{position:relative}.pokemon-suggestions{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xs);z-index:100;max-height:200px;margin-top:4px;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0006}.pokemon-suggestions li{cursor:pointer;align-items:center;gap:8px;padding:8px 12px;font-size:12px;transition:background .15s;display:flex}.pokemon-suggestions li:hover{background:var(--bg-card-hover)}.suggestion-sprite{width:32px;height:32px;image-rendering:pixelated}.link-cards-grid{gap:12px;display:grid}.link-card{background:linear-gradient(135deg, var(--bg-card), #141422cc);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .2s,transform .2s;overflow:hidden}.link-card:hover{border-color:#ffffff1f;transform:translateY(-1px)}.link-card-header{border-bottom:1px solid var(--border);background:#ffffff05;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.link-card-route{color:var(--text);font-size:13px;font-weight:700}.link-card-body{grid-template-columns:1fr 1fr;gap:0;display:grid}.link-card-pokemon{align-items:center;gap:10px;padding:14px 16px;display:flex}.link-card-pokemon:first-child{border-right:1px solid var(--border)}.link-card-pokemon.dead{opacity:.5}.link-card-pokemon.dead .pokemon-sprite{filter:grayscale()}.link-card-pokemon.boxed .pokemon-sprite{filter:hue-rotate(270deg)saturate(.7)}.pokemon-sprite{width:48px;height:48px;image-rendering:pixelated;flex-shrink:0}.pokemon-info{flex:1;min-width:0}.pokemon-name{color:var(--text);font-size:13px;font-weight:700;display:block}.pokemon-nickname{color:var(--text-dim);font-size:11px;font-style:italic;display:block}.pokemon-player-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-top:2px;font-size:10px;font-weight:700;display:block}.link-card-actions{border-top:1px solid var(--border);background:#ffffff03;gap:6px;padding:10px 16px;display:flex}.status-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:20px;padding:3px 10px;font-size:10px;font-weight:700}.status-active{background:var(--green-soft);color:var(--green)}.status-boxed{background:var(--purple-soft);color:var(--purple)}.status-dead{background:var(--red-soft);color:var(--red)}.status-failed{color:var(--text-muted);background:#ffffff0f}.active-teams{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px;display:grid}.team-column{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.team-column-header{color:var(--text);margin-bottom:4px;font-size:12px;font-weight:700}.team-column-version{color:var(--text-muted);margin-bottom:12px;font-size:10px}.team-slot{border:1px solid var(--border);border-radius:var(--radius-xs);background:#ffffff05;align-items:center;gap:10px;margin-bottom:6px;padding:8px 10px;display:flex}.team-slot-empty{border-radius:var(--radius-xs);color:var(--text-muted);background:0 0;border:1px dashed #ffffff0d;align-items:center;gap:10px;margin-bottom:6px;padding:8px 10px;font-size:11px;font-style:italic;display:flex}.team-slot .pokemon-sprite{width:40px;height:40px}.team-slot .pokemon-name{font-size:12px}.team-slot .pokemon-nickname{font-size:10px}.rules-grid{gap:12px;display:grid}.rules-section-title{text-transform:uppercase;letter-spacing:1px;color:var(--accent);margin-top:16px;margin-bottom:8px;font-size:11px;font-weight:700}.rules-section-title:first-child{margin-top:0}.rule-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.rule-icon{border-radius:var(--radius-xs);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.rule-icon-green{background:var(--green-soft)}.rule-icon-red{background:var(--red-soft)}.rule-icon-purple{background:var(--purple-soft)}.rule-icon-gold{background:var(--gold-soft)}.rule-icon-teal{background:var(--teal-soft)}.rule-text h4{color:var(--text);margin-bottom:2px;font-size:13px;font-weight:700}.rule-text p{color:var(--text-dim);font-size:12px;line-height:1.5}.rule-inactive{opacity:.4}.player-list{margin-bottom:14px;list-style:none}.player-item{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:10px 12px;display:flex}.player-item:last-child{border-bottom:none}.player-order{color:var(--text-muted);min-width:24px;font-size:10px;font-weight:700}.player-item .player-name{flex:1;font-size:13px;font-weight:600}.player-item .player-version{color:var(--text-dim);font-size:11px}.add-player-form{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.add-player-form .form-field{flex:1;min-width:120px;margin-bottom:0}.event-list{max-height:300px;list-style:none;overflow-y:auto}.event-item{border-bottom:1px solid var(--border);gap:10px;padding:8px 0;font-size:12px;display:flex}.event-item:last-child{border-bottom:none}.event-time{color:var(--text-muted);white-space:nowrap;font-size:11px;font-weight:500}.route-table-wrapper{overflow-x:auto}.route-table{border-collapse:collapse;width:100%;font-size:12px}.route-table th,.route-table td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px}.route-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:10px;font-weight:700}.route-name{white-space:nowrap;font-weight:600}.route-cell{min-width:100px}.route-pokemon{font-size:12px;display:block}.route-empty{color:var(--text-muted)}.box-filters{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.box-filters button{color:var(--text-dim);border:1px solid var(--border);background:#ffffff0f;border-radius:20px;padding:6px 14px;font-size:11px}.box-filters button:hover:not(:disabled){filter:none;background:#ffffff1a;transform:none}.box-filters button.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.box-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;display:grid}.box-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:14px;transition:border-color .2s;display:flex}.box-card:hover{border-color:#ffffff1f}.box-card.status-dead{opacity:.5}.box-card.status-dead .pokemon-sprite{filter:grayscale()}.box-card-info{flex-direction:column;align-items:center;gap:3px;display:flex}.player-tag{color:var(--text-muted);font-size:10px;font-weight:600}.secret-gate{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);max-width:420px;margin:2rem auto;padding:28px}.secret-gate h2{margin-bottom:16px;font-size:15px;font-weight:800}.pokemon-types{gap:4px;margin-top:3px;display:flex}.type-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:4px;padding:2px 6px;font-size:9px;font-weight:700}.type-normal{color:#fff;background:#a8a878}.type-fire{color:#fff;background:#f08030}.type-water{color:#fff;background:#6890f0}.type-grass{color:#fff;background:#78c850}.type-electric{color:#333;background:#f8d030}.type-ice{color:#333;background:#98d8d8}.type-fighting{color:#fff;background:#c03028}.type-poison{color:#fff;background:#a040a0}.type-ground{color:#333;background:#e0c068}.type-flying{color:#fff;background:#a890f0}.type-psychic{color:#fff;background:#f85888}.type-bug{color:#fff;background:#a8b820}.type-rock{color:#fff;background:#b8a038}.type-ghost{color:#fff;background:#705898}.type-dragon{color:#fff;background:#7038f8}.type-dark{color:#fff;background:#705848}.type-steel{color:#333;background:#b8b8d0}.type-fairy{color:#333;background:#ee99ac}.encounter-actions{flex-wrap:wrap;gap:4px;display:flex}.btn-evolve{background:var(--teal-soft);color:var(--teal);border:1px solid #4ecdc433}.btn-evolve:hover:not(:disabled){border-color:var(--teal);background:#4ecdc433}.evolve-picker-backdrop{z-index:99;position:fixed;inset:0}.evolve-picker{z-index:100;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:200px;padding:8px;position:absolute;bottom:calc(100% + 6px);left:0;box-shadow:0 8px 32px #00000080}.evolve-picker-title{text-transform:uppercase;letter-spacing:.5px;color:var(--teal);margin-bottom:6px;padding:0 4px;font-size:10px;font-weight:700}.evolve-picker-option{border-radius:var(--radius-xs);cursor:pointer;width:100%;color:var(--text);background:#ffffff05;border:1px solid #ffffff0d;align-items:center;gap:8px;margin-bottom:4px;padding:8px;font-size:12px;transition:background .15s;display:flex}.evolve-picker-option:hover{filter:none;background:#4ecdc414;border-color:#4ecdc433;transform:none}.evolve-picker-option:last-child{margin-bottom:0}.evolve-picker-sprite{object-fit:contain;width:32px;height:32px;image-rendering:pixelated}.evolve-picker-name{flex:1;font-weight:700}.evolve-picker-types{color:var(--text-muted);font-size:10px}section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:18px}section h2{text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);border-bottom:1px solid var(--border);margin-bottom:14px;padding-bottom:10px;font-size:12px;font-weight:700}.team-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;display:grid}.player-column h3{margin-bottom:2px;font-size:13px;font-weight:700}.player-column .player-version{color:var(--text-muted);margin-bottom:8px;font-size:10px;display:block}.pokemon-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffff05;align-items:center;gap:10px;margin-bottom:6px;padding:10px;display:flex}.logger-form{gap:10px;display:grid}@media (width>=640px){.logger-form{grid-template-columns:1fr 1fr}}.logger-actions{grid-column:1/-1;gap:8px;display:flex}.empty{color:var(--text-muted);font-size:12px;font-style:italic}.lobby-top-row{grid-template-columns:1fr 1fr;align-items:start;gap:20px;margin-bottom:20px;display:grid}.lobby-top-left{flex-direction:column;gap:16px;display:flex}.lobby-top-right{flex-direction:column;gap:12px;min-width:0;display:flex}.dashboard-main{min-width:0}.modal-overlay{z-index:200;background:#000000b3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:600px;max-height:80vh;padding:24px;position:relative;overflow-y:auto}.modal-close-btn{position:absolute;top:12px;right:12px}.btn-accent{background:var(--accent);color:#fff;border:none;font-weight:600}.btn-accent:hover{background:var(--accent);opacity:.85}.header-action-btn{white-space:nowrap}.active-teams-v2{flex-direction:column;gap:12px;display:flex}.team-stats-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.team-stats-box{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px}.team-stats-p1{border-color:#e9456040}.team-stats-p2{border-color:#4ecdc440}.team-stats-name{text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:11px;font-weight:800}.team-stats-p1 .team-stats-name{color:var(--accent)}.team-stats-p2 .team-stats-name{color:var(--teal)}.team-stats-badges{flex-wrap:wrap;gap:8px;display:flex}.team-stat-item{color:var(--text-dim);align-items:center;gap:3px;font-size:10px;display:flex}.team-stat-item strong{color:var(--text);font-size:13px}.team-stat-icon{font-size:12px}.team-stat-label{color:var(--text-muted);font-size:9px}.team-stat-green{color:var(--green)!important}.team-stat-red{color:var(--red)!important}.team-level-cap{background:var(--gold-soft);border-radius:var(--radius-sm);text-align:center;border:1px solid #fbbf2426;padding:10px 14px}.team-level-cap-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);margin-bottom:4px;font-size:10px;font-weight:700}.team-level-cap-nums{justify-content:center;align-items:baseline;gap:6px;display:flex}.team-level-cap-ace{color:var(--gold);font-size:28px;font-weight:800}.team-level-cap-sep{color:var(--text-muted);font-size:14px}.team-level-cap-sec{color:var(--text-dim);font-size:20px;font-weight:700}.team-section-header{text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);font-size:10px;font-weight:700}.team-paired-grid{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:1fr 1fr;gap:0;display:grid;overflow:visible}.team-col-header{text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--border);text-align:center;padding:12px;font-size:14px;font-weight:800}.team-col-p1{color:var(--accent);border-right:1px solid #ffffff0a}.team-col-p2{color:var(--teal)}.team-pair-row{border-bottom:1px solid var(--border);grid-column:1/-1;overflow:visible}.team-pair-row:last-child{border-bottom:none}.team-pair-starter{background:#e9456008}.team-pair-label{color:var(--text-dim);grid-column:1/-1;align-items:center;gap:6px;padding:6px 12px 0;font-size:10px;font-weight:600;display:flex}.team-starter-badge{background:var(--accent);color:#fff;letter-spacing:.5px;border-radius:3px;padding:1px 6px;font-size:8px;font-weight:800}.team-pair-cells{grid-template-columns:1fr 1fr;display:grid;overflow:visible}.team-pair-cells>:first-child{border-right:1px solid #ffffff0a}.team-cell{text-align:center;flex-direction:column;align-items:center;min-height:80px;padding:10px 8px;display:flex}.team-cell-empty{opacity:.2;min-height:52px;color:var(--text-muted);justify-content:center;align-items:center;font-size:11px;display:flex}.team-cell-name{color:#fff;align-items:center;gap:4px;margin-bottom:2px;font-size:13px;font-weight:700;display:flex}.team-cell-nick{color:var(--teal);margin-bottom:4px;font-size:10px;font-style:italic}.team-cell-sprite{object-fit:contain;width:72px;height:72px;margin-bottom:6px}.team-cell-types{justify-content:center;gap:3px;margin-bottom:4px;display:flex}.team-type-badge{text-shadow:0 1px 1px #0000004d;border-radius:4px;padding:2px 7px;font-size:9px;font-weight:700}.team-cell-weaks{flex-wrap:wrap;justify-content:center;gap:2px;display:flex}.team-weak-badge{color:#fff;border-radius:3px;padding:1px 4px;font-size:7px;font-weight:700}.team-legend-badge{background:linear-gradient(135deg, var(--teal), var(--gold));color:#0e0e1a;border-radius:3px;margin-left:4px;padding:1px 5px;font-size:8px;font-weight:800}@media (width<=640px){.team-stats-row{grid-template-columns:1fr}.team-cell-sprite{width:56px;height:56px}}.stats-compact{flex-wrap:wrap;gap:6px;display:flex}.stats-compact-badge{letter-spacing:.3px;border-radius:20px;padding:4px 10px;font-size:10px;font-weight:700}.stats-compact-teal{background:var(--teal-soft);color:var(--teal)}.stats-compact-green{background:var(--green-soft);color:var(--green)}.stats-compact-purple{background:var(--purple-soft);color:var(--purple)}.stats-compact-red{background:var(--red-soft);color:var(--red)}.link-form-compact{padding:14px}.link-form-compact .form-field input,.link-form-compact .form-field select{padding:8px 10px;font-size:12px}.link-form-compact .link-form-player-section{padding:10px}.link-form-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.link-form-collapse-btn{padding:2px 8px!important;font-size:10px!important}.link-card-compact .link-card-header{padding:8px 12px}.link-card-compact .link-card-pokemon{gap:8px;padding:8px 12px}.link-card-compact .pokemon-sprite{width:36px;height:36px}.link-card-compact .pokemon-name{font-size:12px}.link-card-compact .pokemon-nickname{font-size:10px}.link-card-compact .link-card-actions{gap:4px;padding:6px 12px}.btn-icon{text-align:center;min-width:28px;line-height:1;padding:4px 8px!important;font-size:14px!important}.btn-revive{background:var(--green-soft);color:var(--green);border:1px solid #34d39933}.btn-revive:hover:not(:disabled){background:#34d39933}.rules-header-btn{display:none}.rules-collapsible{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.rules-collapse-btn{cursor:pointer;width:100%;color:var(--text);background:0 0;border:none;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.rules-collapse-btn:hover:not(:disabled){filter:none;background:#ffffff08;transform:none}.rules-collapse-icon{color:var(--text-dim);font-size:10px}.rules-collapsible-body{padding:0 14px 14px}.rules-preset-name{color:var(--text);margin-bottom:4px;font-size:13px;font-weight:800}.rules-preset-desc{color:var(--text-dim);margin-bottom:10px;font-size:11px;line-height:1.4}.rules-grid-compact .rule-card,.rule-card-compact{margin-bottom:4px;padding:8px 10px}.rule-icon-sm{width:24px;height:24px;font-size:12px}.rules-grid-compact .rules-section-title{margin-top:10px;margin-bottom:4px;font-size:9px}.rules-grid-compact .rule-text h4{font-size:11px}.rules-grid-compact .rule-text p{font-size:10px}.rules-modal-overlay{z-index:200;background:#000000b3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.rules-modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:600px;max-height:80vh;padding:24px;position:relative;overflow-y:auto}.rules-modal-close{position:absolute;top:12px;right:12px}.event-feed-compact{margin-top:16px}.event-list-compact{list-style:none}.event-item-compact{border-bottom:1px solid var(--border);color:var(--text-dim);gap:8px;padding:4px 0;font-size:11px;display:flex}.event-item-compact:last-child{border-bottom:none}.event-time-compact{color:var(--text-muted);white-space:nowrap;min-width:44px;font-size:10px;font-weight:500}.event-message-compact{color:var(--text-dim)}.event-show-more{text-align:center;width:100%;margin-top:6px}.link-card-compact .link-card-pokemon.dead .pokemon-name{text-decoration:line-through}.rule-toggles{margin-top:10px;margin-bottom:10px}.rule-toggles-section{margin-bottom:8px}.rule-toggles-section-title{text-transform:uppercase;letter-spacing:1px;color:var(--accent);margin-bottom:4px;font-size:9px;font-weight:700}.rule-toggle-row{cursor:pointer;color:var(--text);align-items:center;gap:8px;padding:4px 0;font-size:12px;display:flex}.rule-toggle-row input[type=checkbox]{accent-color:var(--accent);cursor:pointer;width:14px;height:14px}.rule-toggle-label{font-weight:500}.type-analysis{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px}.type-analysis-group{margin-bottom:10px}.type-analysis-heading{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin-bottom:6px;font-size:10px;font-weight:700}.type-analysis-badges{flex-wrap:wrap;gap:4px;display:flex}.type-analysis-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:10px;align-items:center;gap:4px;padding:2px 8px;font-size:9px;font-weight:700;display:inline-flex}.type-analysis-count{background:#00000040;border-radius:6px;padding:0 4px;font-size:8px}.type-analysis-search{margin-top:10px}.type-analysis-input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-xs);width:100%;color:var(--text);padding:8px 10px;font-size:12px}.type-analysis-input::placeholder{color:var(--text-muted)}.type-analysis-input:focus{border-color:var(--accent);outline:none}.type-analysis-result{border:1px solid var(--border);border-radius:var(--radius-xs);background:#ffffff05;margin-top:8px;padding:10px}.type-analysis-result-name{color:var(--text);margin-bottom:6px;font-size:13px;font-weight:700}.type-analysis-sub{margin-top:6px}.type-analysis-sub-label{color:var(--text-dim);margin-bottom:3px;font-size:10px;font-weight:600;display:block}.type-analysis-fit{flex-wrap:wrap;gap:8px;display:flex}.type-analysis-good{color:var(--green);font-size:11px;font-weight:700}.type-analysis-bad{color:var(--red);font-size:11px;font-weight:700}.type-analysis-neutral{color:var(--text-muted);font-size:11px}.type-analysis-none{color:var(--text-muted);font-size:11px;font-style:italic}.type-analysis-mult{background:#0000004d;border-radius:4px;margin-left:2px;padding:0 3px;font-size:8px}.type-analysis-sub-red{color:var(--red)}.type-analysis-sub-teal{color:var(--teal)}.type-analysis-sub-gold{color:var(--gold)}.type-analysis-sub-green{color:var(--green)}.type-analysis-sub-purple{color:var(--purple)}.type-analysis-section-divider{text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);border-bottom:1px solid #ffffff0d;margin-top:12px;margin-bottom:6px;padding-bottom:4px;font-size:9px;font-weight:800}.type-analysis-catch-rate{margin-top:12px}.type-analysis-catch-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.type-analysis-catch-label{color:var(--text-dim);font-size:10px;font-weight:600}.type-analysis-catch-value{font-size:10px;font-weight:700}.type-analysis-catch-bar{background:#ffffff0f;border-radius:3px;height:6px;overflow:hidden}.type-analysis-catch-fill{border-radius:3px;height:100%;transition:width .3s}.type-analysis-catch-hints{color:var(--text-muted);justify-content:space-between;margin-top:3px;font-size:9px;display:flex}.type-analysis-search-wrap{position:relative}.type-analysis-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px;font-size:12px;line-height:1;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.type-analysis-clear:hover{color:var(--text);filter:none;transform:translateY(-50%)}.type-analysis-suggestions{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xs);max-height:280px;margin:4px 0 0;padding:4px 0;list-style:none;overflow-y:auto;box-shadow:0 8px 24px #0006}.type-analysis-suggestions li{cursor:pointer;color:var(--text);align-items:center;gap:10px;padding:8px 12px;font-size:13px;font-weight:600;transition:background .15s;display:flex}.type-analysis-suggestions li:hover{background:#e9456014}.type-analysis-suggestions li img.suggestion-sprite{object-fit:contain;width:36px;height:36px;image-rendering:pixelated;flex-shrink:0}.type-analysis-suggestion-id{color:var(--text-muted);flex-shrink:0;margin-left:auto;font-size:10px}.type-analysis-suggestion-name{white-space:nowrap;font-weight:700}.type-analysis-suggestion-types{flex-shrink:0;gap:3px;display:flex}.type-analysis-detail{border:1px solid var(--border);border-radius:var(--radius-xs);background:#ffffff05;margin-top:10px;padding:12px}.type-analysis-detail-header{align-items:center;gap:12px;margin-bottom:10px;display:flex}.type-analysis-detail-sprite{object-fit:contain;flex-shrink:0;width:80px;height:80px}.type-analysis-detail-name{color:#fff;font-size:16px;font-weight:800}.type-analysis-detail-id{color:var(--text-muted);margin-bottom:4px;font-size:10px}.type-analysis-pokemon-list{flex-direction:column;gap:6px;display:flex}.type-analysis-pokemon-row{border-radius:var(--radius-xs);background:#ffffff05;border:1px solid #ffffff0a;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.type-analysis-pokemon-sprite{object-fit:contain;width:36px;height:36px;image-rendering:pixelated;flex-shrink:0}.type-analysis-pokemon-info{flex:1;min-width:0}.type-analysis-pokemon-name{color:#fff;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:3px;font-size:12px;font-weight:700;display:flex}.type-analysis-pokemon-types{gap:3px;display:inline-flex}.type-analysis-pokemon-weak,.type-analysis-pokemon-resist,.type-analysis-pokemon-immune{flex-wrap:wrap;align-items:center;gap:3px;margin-top:2px;display:flex}.type-analysis-pokemon-label{flex-shrink:0;margin-right:4px;font-size:9px;font-weight:600}.type-analysis-pokemon-label-red{color:var(--red)}.type-analysis-pokemon-label-teal{color:var(--teal)}.type-analysis-pokemon-label-gold{color:var(--gold)}.story-guide-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.story-guide-toggle{cursor:pointer;width:100%;color:var(--text);-webkit-user-select:none;user-select:none;background:0 0;border:none;align-items:center;gap:10px;padding:14px 18px;transition:background .15s;display:flex}.story-guide-toggle:hover:not(:disabled){filter:none;background:#ffffff05;transform:none}.story-guide-toggle-icon{background:linear-gradient(135deg,#34d39926,#4ecdc414);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}.story-guide-toggle-text{text-align:left;flex:1;min-width:0}.story-guide-toggle-title{color:#fff;font-size:13px;font-weight:700;display:block}.story-guide-toggle-sub{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:11px;display:block;overflow:hidden}.story-guide-badge-count{color:var(--gold);white-space:nowrap;background:var(--gold-soft);border-radius:10px;padding:3px 8px;font-size:10px;font-weight:700}.story-guide-arrow{color:var(--text-dim);flex-shrink:0;font-size:12px}.story-guide-body{padding:0 18px 18px}.story-guide-section{margin-bottom:12px}.story-guide-label{letter-spacing:1.5px;color:var(--green);text-transform:uppercase;margin-bottom:8px;font-size:9px;font-weight:700}.story-badge-region{letter-spacing:1px;color:var(--accent);margin-top:8px;margin-bottom:4px;font-size:9px;font-weight:700}.story-badge-region:first-child{margin-top:0}.story-badge-region-league{color:var(--gold)}.story-badge-region-kanto{color:var(--teal)}.story-badge-grid{grid-template-columns:repeat(2,1fr);gap:4px;margin-bottom:4px;display:grid}.story-badge-card{border-radius:var(--radius-xs);border:1px solid var(--border);cursor:pointer;opacity:.6;background:#ffffff05;align-items:center;gap:6px;padding:6px 10px;transition:all .15s;display:flex}.story-badge-card:hover{opacity:.8;background:#ffffff0d}.story-badge-card.done{opacity:1;background:#fbbf240f;border-color:#fbbf244d;box-shadow:0 0 8px #fbbf2414}.story-badge-icon{flex-shrink:0;font-size:16px}.story-badge-info{min-width:0;overflow:hidden}.story-badge-name{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:700;display:block;overflow:hidden}.story-badge-card.done .story-badge-name{color:var(--gold)}.story-badge-sub{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:9px;display:block;overflow:hidden}.story-guide-cap{border:1px solid var(--border);border-radius:var(--radius-xs);background:#ffffff05;padding:12px 14px}.story-cap-info{margin-top:4px}.story-cap-leader{color:var(--text-dim);font-size:12px}.story-cap-numbers{gap:12px;margin-top:8px;display:flex}.story-cap-num{border-radius:var(--radius-xs);flex-direction:column;align-items:center;padding:6px 14px;font-size:22px;font-weight:800;display:flex}.story-cap-ace{background:var(--gold-soft);color:var(--gold)}.story-cap-sec{color:var(--text-dim);background:#ffffff0a}.story-cap-label{letter-spacing:1px;margin-bottom:2px;font-size:9px;font-weight:700}.story-cap-detail{color:var(--text-dim);margin-top:8px;font-size:11px}.story-guide-current{border-radius:var(--radius-sm);background:linear-gradient(135deg,#34d3990f,#4ecdc40a);border:1px solid #34d39926;padding:14px 16px}.story-current-title{color:#fff;margin-bottom:4px;font-size:14px;font-weight:700}.story-current-desc{color:var(--text-dim);font-size:12px;line-height:1.5}.story-enc-list{flex-direction:column;gap:4px;display:flex}.story-enc-row{background:var(--accent-soft);border:1px solid var(--border-accent);border-radius:var(--radius-xs);align-items:center;gap:8px;padding:8px 12px;transition:all .15s;display:flex}.story-enc-row.done{background:var(--green-soft);border-color:#34d39933}.story-enc-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:10px;font-weight:700;display:flex}.story-enc-icon.pending{background:var(--accent);color:#fff}.story-enc-icon.done{background:var(--green);color:#fff}.story-enc-name{color:var(--text);flex:1;font-size:12px;font-weight:600}.story-enc-status{letter-spacing:.5px;font-size:10px;font-weight:700}.story-enc-status.pending{color:var(--accent)}.story-enc-status.done{color:var(--green)}.story-events-list{flex-direction:column;gap:4px;display:flex}.story-event-row{border-radius:var(--radius-xs);background:#ffffff05;border:1px dashed #ffffff14;align-items:flex-start;gap:8px;padding:8px 12px;display:flex}.story-event-icon{flex-shrink:0;margin-top:1px;font-size:14px}.story-event-text{color:var(--text-dim);font-size:12px;line-height:1.4}.story-item-grid{flex-wrap:wrap;gap:4px;display:flex}.story-item-tag{color:var(--text-dim);background:#ffffff08;border:1px solid #ffffff0f;border-radius:6px;align-items:center;gap:4px;padding:5px 10px;font-size:11px;font-weight:500;line-height:1.3;transition:all .15s;display:inline-flex}.story-item-tag:hover{background:#ffffff0f;border-color:#ffffff1a}.story-item-tag.tm{color:var(--purple);background:#a78bfa0a;border-color:#a78bfa26}.story-item-tag.hm{color:var(--accent);background:#e945600a;border-color:#e9456026}.story-item-tag.key{color:var(--gold);background:#fbbf240a;border-color:#fbbf2426}.story-item-tag.ball{color:var(--teal);background:#4ecdc40a;border-color:#4ecdc426}.story-item-tag.held{color:var(--green);background:#34d3990a;border-color:#34d39926}.story-item-tag.heal{color:#fb923c;background:#fb923c0a;border-color:#fb923c26}.story-item-icon{font-size:12px}.story-item-loc{opacity:.6;margin-left:3px;font-size:9px}.story-guide-complete{text-align:center;padding:24px}.story-complete-icon{margin-bottom:8px;font-size:48px}.story-complete-msg{color:var(--gold);font-size:16px;font-weight:800}@media (width<=900px){.lobby-top-row{grid-template-columns:1fr}.rules-header-btn{display:inline-flex}}@media (width<=640px){.link-form-players,.active-teams,.link-card-body{grid-template-columns:1fr}.link-card-pokemon:first-child{border-right:none;border-bottom:1px solid var(--border)}.stats-bar{grid-template-columns:repeat(3,1fr)}}@media (width<=480px){.page{padding:.75rem}.login-card{padding:24px 20px}.team-grid{grid-template-columns:1fr}.box-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.stats-bar{grid-template-columns:repeat(2,1fr)}}.box-section{flex-direction:column;gap:12px;margin-top:16px;display:flex}.box-section-group{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.box-section-header{width:100%;color:var(--text);cursor:pointer;text-transform:uppercase;letter-spacing:1px;background:0 0;border:none;justify-content:space-between;align-items:center;padding:10px 14px;font-size:12px;font-weight:600;display:flex}.box-section-header:hover{background:var(--bg-card-hover)}.box-section-label{color:var(--text-dim)}.box-section-arrow{color:var(--text-muted);font-size:10px}.box-section-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;padding:8px 12px 12px;display:grid}.box-card{border-radius:var(--radius-xs);background:var(--bg-input);border:1px solid var(--border);align-items:center;gap:8px;padding:6px 10px;display:flex}.box-card-dead{background:var(--red-soft);border-color:#ef444426}.box-card-boxed{background:var(--purple-soft);border-color:#a78bfa26}.box-card-sprite{width:32px;height:32px;image-rendering:pixelated}.box-card-info{flex-direction:column;flex:1;min-width:0;display:flex}.box-card-name{white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:600;overflow:hidden}.box-card-nick{color:var(--text-dim);font-size:9px;font-style:italic}.box-card-player{color:var(--text-muted);font-size:9px}.box-card-action{flex-shrink:0;font-size:14px}.stats-compact-wrapper{flex-direction:column;gap:8px;display:flex}.stats-per-player{grid-template-columns:1fr 1fr;gap:10px;display:grid}.stats-player-col{border-radius:var(--radius-xs);background:var(--bg-card);border:1px solid var(--border);flex:1;padding:8px 10px}.stats-player-p1{border-color:#e9456033}.stats-player-p2{border-color:#4ecdc433}.stats-player-name{text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;font-size:10px;font-weight:700;display:block}.stats-player-p1 .stats-player-name{color:var(--accent)}.stats-player-p2 .stats-player-name{color:var(--teal)}.stats-player-badges{flex-wrap:wrap;gap:4px;display:flex}.stats-pbadge{border-radius:4px;padding:2px 6px;font-size:9px;font-weight:600}.stats-pbadge-total{background:var(--bg-input);color:var(--text-dim)}.stats-pbadge-green{background:var(--green-soft);color:var(--green)}.stats-pbadge-purple{background:var(--purple-soft);color:var(--purple)}.stats-pbadge-red{background:var(--red-soft);color:var(--red)}.compact-level-cap{background:var(--gold-soft);border-radius:var(--radius-xs);border:1px solid #fbbf2433;align-items:center;gap:6px;margin-bottom:8px;padding:6px 10px;font-size:10px;font-weight:600;display:flex}.compact-level-cap-label{color:var(--gold);text-transform:uppercase;letter-spacing:1px}.compact-level-cap-sep{color:var(--text-muted)}.compact-level-cap-badge{color:var(--text)}.compact-level-cap-nums{color:var(--gold);margin-left:auto;font-size:12px;font-weight:700}.timeline-section{margin-top:16px}.timeline{padding:20px 0;position:relative;overflow-x:auto}.timeline-track{align-items:center;gap:0;min-width:max-content;padding:40px 20px;display:flex;position:relative}.timeline-line{background:var(--border);height:2px;position:absolute;top:50%;left:0;right:0}.timeline-node{z-index:1;flex-direction:column;align-items:center;min-width:80px;display:flex;position:relative}.timeline-dot{border:2px solid;border-radius:50%;width:12px;height:12px}.timeline-dot.caught{background:var(--green);border-color:var(--green)}.timeline-dot.fainted{background:var(--red);border-color:var(--red)}.timeline-dot.boxed{background:var(--purple);border-color:var(--purple)}.timeline-dot.unboxed{background:var(--teal);border-color:var(--teal)}.timeline-dot.evolved{background:var(--gold);border-color:var(--gold)}.timeline-dot.revived{background:var(--green);border-color:var(--green);box-shadow:0 0 8px var(--green)}.timeline-sprite{width:24px;height:24px;image-rendering:pixelated;margin-bottom:4px}.timeline-time{color:var(--text-muted);margin-top:4px;font-size:9px}.timeline-label{color:var(--text-dim);text-align:center;max-width:80px;font-size:10px;line-height:1.3}@media (width<=600px){.box-section-grid,.stats-per-player{grid-template-columns:1fr}}@keyframes catch-ball{0%{opacity:0;transform:scale(0)rotate(-180deg)}30%{opacity:1;transform:scale(1.3)rotate(0)}50%{transform:scale(1.3)rotate(8deg)}55%{transform:scale(1.3)rotate(-8deg)}60%{transform:scale(1.3)rotate(5deg)}65%{transform:scale(1.3)rotate(0)}80%{opacity:1;transform:scale(.15)}to{opacity:0;transform:scale(0)}}@keyframes catch-flash{0%{opacity:0}40%{opacity:0}55%{opacity:1;background:radial-gradient(circle,#ffffffe6 0%,#4ecdc44d 50%,#0000 70%)}to{opacity:0}}@keyframes catch-sprite-pop{0%{opacity:0;filter:brightness(3);transform:scale(0)translateY(40px)}50%{opacity:1;filter:brightness(1.4);transform:scale(1.15)translateY(-8px)}70%{filter:brightness();transform:scale(.97)translateY(0)}to{opacity:1;filter:brightness();transform:scale(1)translateY(0)}}@keyframes catch-chain{0%{opacity:0;transform:scale(0)rotate(-90deg)}50%{opacity:1;transform:scale(1.5)rotate(0)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes catch-card-glow{0%{border-color:#ffffff12;box-shadow:0 0 #4ecdc400}30%{border-color:#4ecdc499;box-shadow:0 0 30px 10px #4ecdc466}to{border-color:#ffffff12;box-shadow:0 0 #4ecdc400}}@keyframes death-shake{0%,to{transform:translate(0)}10%{transform:translate(-8px)rotate(-2deg)}20%{transform:translate(8px)rotate(2deg)}30%{transform:translate(-6px)rotate(-1deg)}40%{transform:translate(6px)rotate(1deg)}50%{transform:translate(-3px)}60%{transform:translate(3px)}}@keyframes death-flash{0%{opacity:0}20%{opacity:1;background:radial-gradient(circle,#ef4444cc 0%,#ef444433 50%,#0000 70%)}to{opacity:0}}@keyframes death-fade-gray{0%{filter:brightness()saturate();opacity:1}to{filter:brightness(.4)saturate(0);opacity:.5}}@keyframes death-skull{0%{opacity:0;transform:scale(0)rotate(-30deg)}50%{opacity:1;transform:scale(1.4)rotate(10deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes box-shrink{0%{opacity:1;transform:scale(1)}40%{opacity:.8;transform:scale(.8)translateY(-10px)}70%{opacity:.5;transform:scale(.3)translateY(20px)}to{opacity:0;transform:scale(0)translateY(30px)}}@keyframes box-icon-pop{0%{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes box-card-dim{0%{opacity:1;border-color:#a78bfa80;box-shadow:0 0 20px #a78bfa4d}to{opacity:.7;box-shadow:none;border-color:#ffffff12}}@keyframes starter-sprite-glow{0%,to{filter:drop-shadow(0 0 6px #e9456080)drop-shadow(0 0 14px #e9456033)}50%{filter:drop-shadow(0 0 14px #e94560e6)drop-shadow(0 0 28px #e9456059)}}@keyframes legend-sprite-shimmer{0%,to{filter:drop-shadow(0 0 8px #4ecdc499)drop-shadow(0 0 4px #fbbf244d)}50%{filter:drop-shadow(0 0 16px #fbbf24cc)drop-shadow(0 0 8px #4ecdc480)drop-shadow(0 0 30px #fbbf2440)}}@keyframes run-counter-bump{0%{transform:scale(1)}30%{color:var(--gold);transform:scale(1.35)}to{transform:scale(1)}}.anim-overlay{z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.anim-overlay-catch{background:#000000bf}.anim-overlay-death{background:#000000d9}.anim-overlay-box{background:#000000b3}.anim-overlay-flash{pointer-events:none;position:absolute;inset:0}.anim-overlay-subtitle{letter-spacing:2px;text-transform:uppercase;font-size:13px;font-weight:700;position:absolute;bottom:70px}.anim-subtitle-catch{color:var(--teal);text-shadow:0 0 20px #4ecdc480}.anim-subtitle-death{color:var(--red);text-shadow:0 0 15px #ef444466;font-size:11px}.anim-sprite-col{text-align:center}.anim-sprite-col img{object-fit:contain;width:140px;height:140px}.anim-sprite-name{color:#fff;margin-top:8px;font-size:16px;font-weight:800}.anim-sprite-name-death{color:var(--red);font-size:14px}.anim-type-row{justify-content:center;gap:3px;margin-top:4px;display:flex}.sprite-starter-glow{animation:2s ease-in-out infinite starter-sprite-glow}.sprite-legend-glow{animation:3s ease-in-out infinite legend-sprite-shimmer}.link-card-anim-catch{animation:1.5s ease-out catch-card-glow}.link-card-anim-box{animation:2s ease-out forwards box-card-dim}.run-badge-bump{animation:.4s ease-out run-counter-bump}.shop-bookmark,.item-radar{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.shop-bookmark-header,.item-radar-header{cursor:pointer;align-items:center;gap:10px;padding:12px 14px;transition:background .15s;display:flex}.shop-bookmark-header:hover,.item-radar-header:hover{background:#ffffff05}.shop-bookmark-icon,.item-radar-icon{flex-shrink:0;font-size:18px}.shop-bookmark-title-wrap,.item-radar-title-wrap{flex:1;min-width:0}.shop-bookmark-title,.item-radar-title{color:#fff;font-size:13px;font-weight:700}.shop-bookmark-subtitle,.item-radar-subtitle{color:var(--text-dim);font-size:10px}.shop-bookmark-arrow,.item-radar-arrow{color:var(--text-muted);font-size:10px}.shop-bookmark-body,.item-radar-body{padding:0 14px 14px}.shop-bookmark-add-btn{border-radius:var(--radius-xs);width:100%;color:var(--teal);cursor:pointer;background:#4ecdc40f;border:1px dashed #4ecdc433;margin-bottom:10px;padding:8px;font-size:12px;font-weight:600}.shop-bookmark-add-btn:hover{filter:none;background:#4ecdc41a;transform:none}.shop-bookmark-form{border:1px solid var(--border);border-radius:var(--radius-xs);background:#ffffff05;margin-bottom:10px;padding:12px}.shop-bookmark-form-row{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;display:grid}.shop-bookmark-form-actions{gap:8px;display:flex}.shop-bookmark-list{flex-direction:column;gap:4px;display:flex}.shop-bookmark-item{border-radius:var(--radius-xs);background:#ffffff05;border:1px solid #ffffff0a;align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.shop-bookmark-item:hover{border-color:#ffffff14}.shop-bookmark-item-icon{flex-shrink:0;margin-top:1px;font-size:16px}.shop-bookmark-item-info{flex:1;min-width:0}.shop-bookmark-item-name{color:var(--text);font-size:12px;font-weight:700}.shop-bookmark-item-details{color:var(--text-dim);margin-top:1px;font-size:10px}.shop-bookmark-item-notes{color:var(--teal);margin-top:2px;font-size:10px;font-style:italic}.shop-bookmark-item-delete{color:var(--text-muted);cursor:pointer;opacity:.5;background:0 0;border:none;padding:2px 4px;font-size:11px;transition:opacity .15s}.shop-bookmark-item-delete:hover{opacity:1;color:var(--red);filter:none;transform:none}.shop-bookmark-empty{color:var(--text-muted);text-align:center;padding:16px 0;font-size:11px}.item-radar-section{margin-bottom:10px}.item-radar-section-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);border-bottom:1px solid #ffffff0a;margin-bottom:6px;padding-bottom:4px;font-size:10px;font-weight:700}.item-radar-section-current{color:var(--teal)}.item-radar-section-upcoming{color:var(--gold)}.item-radar-row{border-radius:4px;align-items:flex-start;gap:8px;padding:5px 8px;transition:background .15s;display:flex}.item-radar-row:hover{background:#ffffff08}.item-radar-row-dimmed{opacity:.4}.item-radar-row-icon{flex-shrink:0;margin-top:1px;font-size:14px}.item-radar-row-info{flex:1;min-width:0}.item-radar-row-name{color:var(--text);font-size:12px;font-weight:600;display:block}.item-radar-row-location{color:var(--text-dim);font-size:10px;display:block}.item-radar-row-step{color:var(--text-muted);margin-top:1px;font-size:9px;display:block}.item-radar-show-more{width:100%;color:var(--teal);cursor:pointer;background:#ffffff08;border:none;border-radius:4px;margin-top:4px;padding:6px;font-size:11px;font-weight:600}.item-radar-show-more:hover{filter:none;background:#ffffff0f;transform:none}.item-radar-collected-details{margin-top:8px}.item-radar-collected-summary{color:var(--text-muted);cursor:pointer;padding:4px 0;font-size:10px;font-weight:600;list-style:none}.item-radar-collected-summary::-webkit-details-marker{display:none}.item-radar-collected-summary:before{content:"▸ "}details[open]>.item-radar-collected-summary:before{content:"▾ "}.item-radar-section-dimmed{max-height:200px;overflow-y:auto}.team-tooltip{background:var(--bg-card);border-radius:var(--radius-sm);pointer-events:none;border:1px solid #ffffff1f;min-width:280px;max-width:340px;padding:12px;box-shadow:0 12px 40px #0009}.team-tooltip-header{border-bottom:1px solid #ffffff0f;align-items:center;gap:10px;margin-bottom:10px;padding-bottom:8px;display:flex}.team-tooltip-sprite{object-fit:contain;width:40px;height:40px;image-rendering:pixelated;flex-shrink:0}.team-tooltip-name{color:#fff;font-size:14px;font-weight:800}.team-tooltip-id{color:var(--text-muted);margin-left:4px;font-size:10px;font-weight:400}.team-tooltip-types{gap:3px;margin-top:3px;display:flex}.team-tooltip-section{margin-bottom:6px}.team-tooltip-label{text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px;font-size:9px;font-weight:700}.team-tooltip-label-red{color:var(--red)}.team-tooltip-label-teal{color:var(--teal)}.team-tooltip-label-gold{color:var(--gold)}.team-tooltip-label-green{color:var(--green)}.team-tooltip-badges{flex-wrap:wrap;gap:3px;display:flex}.team-type-badge-mult{color:#fff;background:#0000004d;border-radius:3px;margin-left:2px;padding:0 3px;font-size:8px}.team-tooltip-catch{justify-content:space-between;align-items:center;margin-bottom:3px;display:flex}.team-tooltip-catch-label{color:var(--text-dim);font-size:9px;font-weight:600}.team-tooltip-catch-bar{background:#ffffff0f;border-radius:2px;height:4px;margin-bottom:6px;overflow:hidden}.team-tooltip-catch-fill{border-radius:2px;height:100%;transition:width .3s}.team-tooltip-stats-row{justify-content:center;align-items:center;margin-bottom:6px;display:flex}.team-tooltip-atkcat{border-radius:10px;padding:2px 10px;font-size:11px;font-weight:700}.team-tooltip-atkcat-physical{color:#f08030;background:#f0803026}.team-tooltip-atkcat-special{color:#6390f0;background:#6390f026}.team-tooltip-atkcat-mixed{color:#a78bfa;background:#a78bfa26}.team-tooltip-stats-grid{flex-direction:column;gap:3px;display:flex}.team-stat-bar-row{align-items:center;gap:6px;display:flex}.team-stat-bar-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);text-align:right;flex-shrink:0;width:28px;font-size:8px;font-weight:800}.team-stat-bar-value{color:var(--text);text-align:right;flex-shrink:0;width:24px;font-size:10px;font-weight:700}.team-stat-bar-track{background:#ffffff0f;border-radius:3px;flex:1;height:5px;overflow:hidden}.team-stat-bar-fill{border-radius:3px;height:100%;transition:width .3s}
