*,: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 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}.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}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,.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}.compact-teams{grid-template-columns:1fr 1fr;gap:10px;display:grid}.compact-team-col{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px}.compact-team-header{text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);margin-bottom:8px;padding-bottom:6px;font-size:11px;font-weight:700}.compact-team-header.p1{color:var(--accent)}.compact-team-header.p2{color:var(--teal)}.compact-slot{background:#ffffff05;border-radius:4px;align-items:center;gap:6px;margin-bottom:3px;padding:4px 6px;display:flex}.compact-slot.p1{border-left:3px solid var(--accent)}.compact-slot.p2{border-left:3px solid var(--teal)}.compact-slot-empty{border:1px dashed #ffffff0d;border-radius:4px;align-items:center;gap:6px;margin-bottom:3px;padding:4px 6px;display:flex}.compact-slot-num{color:var(--text-muted);min-width:14px;font-size:10px;font-weight:700}.compact-slot-text{color:var(--text-muted);font-size:10px;font-style:italic}.compact-slot-sprite{width:28px;height:28px;image-rendering:pixelated;flex-shrink:0}.compact-slot-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:600;overflow:hidden}.compact-slot-nick{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:9px;font-style:italic;overflow:hidden}.compact-team-extra{border-top:1px solid var(--border);gap:6px;margin-top:6px;padding-top:6px;display:flex}.compact-extra-badge{font-size:10px;font-weight:600}.compact-extra-dead{color:var(--red)}.compact-extra-boxed{color:var(--purple)}.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}.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{gap:12px;display:flex}.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{grid-template-columns:1fr}.stats-per-player{flex-direction:column}}
