.dashboard *,.dashboard :before,.dashboard :after{box-sizing:border-box}.dashboard{--d-bg:#0b1020;--d-panel:#111a2e;--d-raised:#16213a;--d-border:#24304d;--d-text:#e8ecf8;--d-muted:#8b97b8;--d-accent:#3b6cff;--d-accent-2:#5b85ff;--d-good:#22c55e;--d-warn:#f59e0b;--d-bad:#ef4444;--d-gold:#facc15;--d-catch:#a855f7;--d-xp:#60a5fa;--d-radius:12px;box-sizing:border-box;background:radial-gradient(1200px 600px at 50% -200px, #1a2550 0%, transparent 60%), var(--d-bg);min-height:100vh;color:var(--d-text);font-variant-numeric:tabular-nums;flex-direction:column;gap:16px;padding:16px;font-size:14px;display:flex}@media (prefers-color-scheme:light){.dashboard{--d-bg:#eef1f8;--d-panel:#fff;--d-raised:#f4f6fb;--d-border:#d6dcea;--d-text:#121829;--d-muted:#5d6784;--d-accent:#2f5bea;--d-accent-2:#2f5bea;background:var(--d-bg)}}.dashboard button{font:inherit;cursor:pointer}.dashboard button:disabled{cursor:default;opacity:.5}.dashboard .muted{color:var(--d-muted)}.small-text{margin:2px 0 0;font-size:12px}.dashboard button.primary,.dashboard .stage button,.dashboard .window button:not(.secondary):not(.link):not(.route):not(.window-close):not(.poke-pick):not(.icon-button){background:var(--d-accent);color:#fff;border:1px solid #0000;border-radius:8px;padding:6px 12px}.dashboard button.secondary{color:var(--d-text);border:1px solid var(--d-border);background:0 0;border-radius:8px;padding:6px 12px}.dashboard button.small{align-items:center;gap:6px;padding:4px 10px;font-size:13px;display:inline-flex}.icon-button{border:1px solid var(--d-border);background:var(--d-raised);width:30px;height:30px;color:var(--d-text);border-radius:8px;place-items:center;display:inline-grid}.icon-button.danger{color:var(--d-bad)}.chip{border:1px solid var(--d-border);background:var(--d-raised);color:var(--d-text);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;display:inline-flex}button.chip{border-color:var(--d-good);color:var(--d-good)}.dash-header{grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;display:grid}.brand{align-items:center;gap:12px;display:flex}.brand-name{letter-spacing:-.5px;margin:0;font-size:30px;font-weight:800}.brand-name span{color:var(--d-accent-2)}.tagline{letter-spacing:3px;color:var(--d-muted);margin:2px 0 0;font-size:11px}.slot-switch{justify-items:center;gap:4px;display:grid;position:relative}.slot-button{border:1px solid var(--d-border);background:var(--d-panel);min-width:220px;color:var(--d-text);border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:8px 18px;display:inline-flex}.version{color:var(--d-muted);font-size:12px}.slot-menu{z-index:50;border:1px solid var(--d-border);background:var(--d-panel);border-radius:10px;min-width:260px;margin:0;padding:6px;list-style:none;position:absolute;top:44px;box-shadow:0 12px 30px #00000059}.slot-menu button{text-align:left;width:100%;color:var(--d-text);background:0 0;border:none;border-radius:8px;gap:2px;padding:8px 10px;display:grid}.slot-menu button:hover:not(:disabled){background:var(--d-raised)}.exit{justify-self:end;justify-items:end;gap:4px;display:grid}.exit .primary{border-radius:10px;align-items:center;gap:10px;padding:10px 18px;font-weight:600;display:inline-flex;box-shadow:0 6px 20px #3b6cff59}.save-status{color:var(--d-muted);font-size:12px}.save-status.error{color:var(--d-bad)}.dash-problem{border:1px solid var(--d-bad);background:#ef44441f;border-radius:10px;justify-content:space-between;align-items:center;margin:0;padding:8px 12px;display:flex}.dash-grid{flex:1;grid-template-columns:minmax(0,26fr) minmax(0,46fr) minmax(0,28fr);align-items:start;gap:16px;display:grid}.center-column,.side-column{gap:16px;min-width:0;display:grid}.panel{background:var(--d-panel);border:1px solid var(--d-border);border-radius:var(--d-radius);padding:16px}.panel-head{align-items:center;gap:12px;margin-bottom:12px;display:flex}.panel-head>div{flex:1}.panel-head h2{margin:0;font-size:18px;font-weight:600}.panel-head h2:only-of-type:last-of-type{flex:1}.subtitle{color:var(--d-muted);margin:2px 0 0;font-size:12px}.panel-icon{color:var(--d-accent-2);flex-shrink:0;width:28px;height:28px}.switch{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:inline-flex}.switch input{opacity:0;width:1px;height:1px;position:absolute}.switch span{background:var(--d-border);border-radius:999px;width:38px;height:22px;transition:background .15s;position:relative}.switch span:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:3px;left:3px}.switch input:checked+span{background:var(--d-good)}.switch input:checked+span:after{transform:translate(16px)}.switch input:focus-visible+span{outline:2px solid var(--d-accent-2);outline-offset:2px}.bar{background:var(--d-raised);border-radius:999px;height:8px;overflow:hidden}.bar.large{height:12px}.bar span{border-radius:inherit;height:100%;transition:width .3s;display:block}.bar.hp.good span{background:var(--d-good)}.bar.hp.warn span{background:var(--d-warn)}.bar.hp.bad span{background:var(--d-bad)}.bar.xp{height:4px;margin-top:4px}.bar.xp span{background:var(--d-xp)}.types{gap:4px;display:inline-flex}.type-pill{border-radius:999px;padding:1px 7px;font-size:11px;font-weight:600}.team-cards{gap:10px;margin:0;padding:0;list-style:none;display:grid}.team-card{border:1px solid var(--d-border);background:var(--d-raised);border-radius:10px;transition:border-color .15s,box-shadow .15s}.team-card.active{border-color:var(--d-good);box-shadow:0 0 0 1px var(--d-good), 0 0 18px #22c55e40}.team-card.fainted{opacity:.55}.team-card.shiny strong{color:var(--d-gold)}.team-card-main{width:100%;color:inherit;text-align:left;background:0 0;border:none;align-items:center;gap:12px;padding:8px 10px;display:flex}.sprite-frame{flex-shrink:0;place-items:center;width:64px;height:64px;display:grid;position:relative}.sprite-frame img{max-width:64px;max-height:64px;image-rendering:pixelated}.sprite-frame.small{width:56px;height:56px}.team-card-info,.fighter-info{flex:1;gap:4px;min-width:0;display:grid}.team-card-top{justify-content:space-between;gap:8px;display:flex}.level,.hp-text{color:var(--d-muted);font-size:12px}.team-card-actions{flex-wrap:wrap;gap:6px;padding:0 10px 10px 86px;display:flex}.location-chip{white-space:nowrap}.stage{background:linear-gradient(#1c2a52 0%,#14243a 55%,#0f1c24 100%);border-radius:10px;align-items:center;min-height:300px;padding:16px;display:grid;position:relative;overflow:hidden}.stage.kind-town{background:linear-gradient(#274a7a 0%,#1f4f4a 60%,#173a2e 100%)}.stage.kind-forest{background:linear-gradient(#1b3a2a 0%,#13301f 55%,#0c2016 100%)}.stage.kind-cave{background:linear-gradient(#2a2233 0%,#1c1826 60%,#120f19 100%)}.stage.kind-water{background:linear-gradient(#16395f 0%,#0f2f52 55%,#0a223d 100%)}.enemy{color:#e8ecf8;grid-template-columns:1fr 1fr;align-items:center;gap:16px;display:grid}.enemy-sprite{place-items:center;min-height:220px;display:grid;position:relative}.enemy-sprite img{width:min(100%,220px);image-rendering:pixelated;filter:drop-shadow(0 10px 18px #00000073)}.attacker-hit img{animation:.3s ease-out attacker-nudge}.defender-hit img{animation:.32s ease-out defender-flash}@keyframes attacker-nudge{50%{transform:translate(10px)}}@keyframes defender-flash{35%{opacity:.2}}.enemy-name{align-items:center;gap:8px;margin:0;font-size:28px;font-weight:700;display:flex}.enemy-level{justify-content:space-between;margin:10px 0 6px;font-size:18px;display:flex}.stat-tiles{background:#00000040;border:1px solid #ffffff1f;border-radius:10px;grid-template-columns:repeat(3,1fr);margin:14px 0 0;display:grid}.stat-tiles>div{text-align:center;padding:10px 6px}.stat-tiles>div+div{border-left:1px solid #ffffff1f}.stat-tiles dt{color:#b8c2de;flex-direction:column;align-items:center;gap:4px;font-size:12px;display:flex}.stat-tiles dd{margin:4px 0 0;font-size:18px;font-weight:700}.stat-tiles.compact{background:#0000001f;margin-top:4px}.stat-tiles.compact>div{padding:6px 4px}.stat-tiles.compact dt{color:var(--d-muted);font-size:10px}.stat-tiles.compact dd{margin-top:2px;font-size:14px}.damage{color:#fff;text-shadow:0 2px 6px #000000b3;pointer-events:none;font-size:22px;font-weight:800;animation:.9s ease-out forwards damage-float;position:absolute;top:10%;right:10%}.damage.critical{color:var(--d-gold);font-size:28px}@keyframes damage-float{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-40px)}}.fighter{background:var(--d-raised);border-radius:10px;align-items:center;gap:12px;margin-top:12px;padding:10px 12px;display:flex}.starter-choice,.town-stage{color:#e8ecf8;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;display:flex}.town-stage{flex-direction:column}.town-name{margin:0;font-size:26px;font-weight:700}.starter-choice button{justify-items:center;gap:8px;min-width:130px;display:grid;padding:12px 18px!important}.starter-choice img{width:96px;image-rendering:pixelated}.log-panel .log{background:var(--d-raised);border-radius:8px;align-content:start;gap:4px;height:200px;margin:0;padding:8px 12px;font-size:13px;list-style:none;display:grid;overflow-y:auto}.log time{color:var(--d-muted);margin-right:6px}.tone-catch{color:var(--d-catch)}.tone-gold{color:var(--d-gold)}.tone-bad{color:var(--d-bad)}.tone-good{color:var(--d-good)}.location-card{border:1px solid var(--d-border);background:var(--d-raised);border-radius:10px;align-items:center;gap:12px;padding:10px;display:flex}.location-art{background:linear-gradient(#5b9bd5 0%,#7fbf6a 60%,#3f7f3a 100%);border-radius:8px;flex-shrink:0;width:110px;height:72px}.kind-town .location-art{background:linear-gradient(#8ec5ff 0%,#b6e3a8 55%,#6aa05a 100%)}.kind-forest .location-art{background:linear-gradient(#2f6b3a 0%,#1f4f2a 60%,#163a1f 100%)}.kind-cave .location-art{background:linear-gradient(#4b3f5c 0%,#2c2438 60%,#1a1523 100%)}.kind-water .location-art{background:linear-gradient(#6fb3ff 0%,#2f78c4 60%,#1d4f86 100%)}.location-name{align-items:center;gap:6px;margin:0;font-size:16px;font-weight:600;display:flex}.trainer-row{border:1px solid var(--d-border);background:var(--d-raised);width:100%;color:var(--d-text);text-align:left;border-radius:10px;align-items:center;gap:10px;margin-top:10px;padding:10px 12px;display:flex}.trainer-row span{flex:1}.check{align-items:center;gap:8px;margin:6px 0;display:flex}.ball-picker{border:none;border-top:1px solid var(--d-border);grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0;padding:12px 0 0;display:grid}.ball-picker legend{padding:0 0 8px}.ball-option{cursor:pointer;justify-items:center;gap:4px;font-size:13px;display:grid}.ball-option strong{font-size:16px}.coins{border:1px solid var(--d-border);background:var(--d-raised);border-radius:10px;align-items:center;gap:10px;margin:0;padding:12px;display:flex}.coins svg{color:var(--d-gold)}.coins strong{color:var(--d-gold);margin-left:auto;font-size:22px}.dock{grid-template-columns:repeat(8,1fr);gap:10px;display:grid}.dock-item{border:1px solid var(--d-border);background:var(--d-panel);color:var(--d-text);text-align:left;border-radius:10px;align-items:center;gap:10px;padding:12px;transition:border-color .15s,background .15s;display:flex}.dock-item:hover:not(:disabled){border-color:var(--d-accent-2)}.dock-item.open{border-color:var(--d-accent-2);color:#fff;background:linear-gradient(#2748a8,#1d3580)}.dock-icon{color:var(--d-accent-2);place-items:center;display:grid}.dock-item.open .dock-icon{color:#fff}.dock-text{min-width:0;display:grid}.dock-text span{color:var(--d-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.dock-item.open .dock-text span{color:#cfd8ff}.window{background:var(--d-panel);color:var(--d-text);border:1px solid var(--d-border);border-radius:var(--d-radius);outline:none;flex-direction:column;display:flex;position:fixed;box-shadow:0 18px 50px #00000073}.window.front{border-color:var(--d-accent-2)}.window-title{border-bottom:1px solid var(--d-border);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;align-items:center;gap:10px;padding:10px 12px 10px 16px;display:flex}.window-title:active{cursor:grabbing}.window-title:focus-visible{outline:2px solid var(--d-accent-2);outline-offset:-2px}.window-title h2{flex:1;margin:0;font-size:16px}.window-close{width:30px;height:30px;color:var(--d-muted);background:0 0;border:none;border-radius:8px;place-items:center;display:grid}.window-close:hover{background:var(--d-raised);color:var(--d-text)}.window-body{flex:1;padding:16px;overflow:auto}.window-resize{cursor:nwse-resize;touch-action:none;background:linear-gradient(135deg, transparent 50%, var(--d-border) 50%);border-bottom-right-radius:var(--d-radius);width:18px;height:18px;position:absolute;bottom:0;right:0}.window.sheet{border-radius:0;inset:0}.window.sheet:not(.front){display:none}.window .virtual-list,.window .team-list>li{background:var(--d-raised);border-color:var(--d-border)}.window .route{color:var(--d-accent-2)}.window .route-current{color:var(--d-good)}.window .route:disabled{color:var(--d-muted)}@media (width<=1199px){.dash-grid{grid-template-columns:minmax(0,38fr) minmax(0,62fr)}.side-column{grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.dock{grid-template-columns:repeat(4,1fr)}}@media (width<=767px){.dashboard{gap:10px;padding:10px 10px 84px}.dash-header{grid-template-columns:auto 1fr;gap:8px}.brand{grid-column:1/-1}.brand-name{font-size:22px}.tagline,.version{display:none}.slot-button{min-width:0;padding:8px 12px}.exit .primary{padding:8px 12px}.dash-grid{grid-template-columns:minmax(0,1fr)}.dash-grid>.team-panel{order:2}.dash-grid>.center-column{order:1}.dash-grid>.side-column{order:3;grid-template-columns:minmax(0,1fr)}.team-cards{grid-auto-columns:78%;grid-auto-flow:column;overflow-x:auto}.enemy{grid-template-columns:1fr}.enemy-sprite{min-height:140px}.dock{z-index:90;background:var(--d-panel);border-top:1px solid var(--d-border);gap:4px;padding:6px;display:flex;position:fixed;bottom:0;left:0;right:0;overflow-x:auto}.dock-item{flex-direction:column;gap:2px;min-width:72px;padding:6px 10px}.dock-text span{display:none}}@media (prefers-reduced-motion:reduce){.dashboard *,.dashboard :after{transition:none!important;animation:none!important}}@media (width>=1200px){.dashboard{height:100vh;min-height:0;overflow:hidden}.dash-grid{align-items:stretch;min-height:0}.dash-grid>.team-panel,.side-column{min-height:0;overflow-y:auto}.side-column{grid-template-rows:auto auto minmax(160px,1fr)}.center-column{grid-template-rows:auto minmax(0,1fr);min-height:0}.log-panel{flex-direction:column;min-height:0;display:flex}.log-panel .log{flex:1;height:auto;min-height:80px}.side-column{align-content:start}}.heal-bar{border:1px solid var(--d-border);background:var(--d-raised);border-radius:10px;align-items:center;gap:10px;margin-bottom:12px;padding:8px 10px;display:flex}.heal-icon{color:#f472b6;flex-shrink:0}.heal-track{flex:1;gap:4px;min-width:0;display:grid}.bar.heal span{background:linear-gradient(90deg,#f472b6,#fb7185);transition:width .2s linear}.heal-text{color:var(--d-muted);font-size:12px}.view-switch{border:1px solid var(--d-border);background:var(--d-raised);border-radius:9px;gap:4px;margin:4px 0 10px;padding:3px;display:inline-flex}.dashboard .view-switch button{white-space:nowrap;border:none;border-radius:7px;padding:4px 14px}.dashboard .view-switch button.active{background:var(--d-accent);color:#fff}.dashboard .view-switch button.secondary{background:0 0;border:none}.region-map{position:relative}.map-zoom{z-index:2;gap:4px;display:flex;position:absolute;top:8px;right:8px}.map-scroll{border:1px solid var(--d-border);border-radius:14px;max-height:70vh;overflow:auto}.map-scroll svg{min-width:100%;height:auto;display:block}.map-sea{fill:#0f2547}.map-land{fill:#15291f;stroke:#2f5a45;stroke-width:3px;stroke-linejoin:round}.map-feature{cursor:pointer;outline:none}.map-feature[aria-disabled=true]{cursor:default}.map-hit{fill:none;stroke:#0000;stroke-width:22px;stroke-linecap:round}.map-path{fill:none;stroke:#6d8fd8;stroke-width:7px;stroke-linecap:round;stroke-linejoin:round;transition:stroke .15s}.map-route.water .map-path{stroke:#5fb4ff;stroke-dasharray:2 10}.map-node{fill:#2c4b8c;stroke:#9fb6ff;stroke-width:2px;transition:fill .15s}.map-town .map-node{fill:#3b6cff}.map-fishing .map-node{fill:#155a8a;stroke:#5fb4ff}.map-icon{color:#dff1ff}.map-label{fill:#dbe4ff;paint-order:stroke;stroke:#0b1020;stroke-width:3px;pointer-events:none;font-size:13px}.map-label.town{font-size:15px;font-weight:700}.map-label.small{fill:#b9c6ea;font-size:11px}.map-trainer{fill:var(--d-gold);stroke:#0b1020;stroke-width:2px}.map-marks .mark-caught{color:#3b82f6}.map-marks .mark-shiny{color:var(--d-gold)}.map-feature.state-locked .map-path{stroke:#4a5570;stroke-dasharray:6 8}.map-feature.state-locked .map-node{fill:#2a3144;stroke:#56617c}.map-feature.state-locked .map-label{fill:#6f7a96}.map-feature.state-current .map-path{stroke:var(--d-good)}.map-feature.state-current .map-node{fill:var(--d-good);stroke:#d8ffe6;filter:drop-shadow(0 0 6px #22c55eb3)}.map-feature:not([aria-disabled=true]):hover .map-path,.map-feature:not([aria-disabled=true]):focus-visible .map-path{stroke:#fff}.map-feature:not([aria-disabled=true]):hover .map-node,.map-feature:not([aria-disabled=true]):focus-visible .map-node{stroke:#fff;stroke-width:3px}.map-feature:focus-visible .map-label{fill:#fff;text-decoration:underline}.map-legend{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.legend-swatch{border-radius:3px;width:12px;height:12px;display:inline-block}.legend-swatch.current{background:var(--d-good)}.legend-swatch.open{background:#3b6cff}.legend-swatch.locked{background:#2a3144;border:1px solid #56617c}.legend-swatch.trainer{background:var(--d-gold);border-radius:50%}.map-chip rect{fill:#0b1020d1;stroke:#9fb6ff8c;stroke-width:1px}.map-chip text{fill:#e6ecff;pointer-events:none;font-size:11px;font-weight:600}.map-feature.state-locked .map-chip text{fill:#8d97b3}.map-feature.state-current .map-chip rect{fill:#14532d;stroke:var(--d-good)}.map-credit{margin-top:2px;font-size:11px}.on-art .map-path{stroke:#0000;stroke-width:16px}.on-art .map-route.water .map-path{stroke:#0000;stroke-dasharray:none}.on-art .map-node{fill:#0000;stroke:#0000}.on-art .map-area .map-node{fill:#3b6cff8c;stroke:#fff;stroke-width:2px}.on-art .map-fishing .map-node{fill:#155a8a;stroke:#fff}.on-art .map-label{fill:#e8ecf8;stroke:#0b1020;stroke-width:4px;font-weight:700}.map-scroll:has(.on-art){background:#0b1020}.on-art .map-feature.state-locked .map-path{stroke:#080c188c;stroke-width:20px;stroke-dasharray:none}.on-art .map-feature.state-locked .map-node{fill:#080c188c;stroke:#080c18b3}.on-art .map-feature.state-locked .map-label{fill:#7d88a6}.on-art .map-feature.state-current .map-path{stroke:#4ade80;stroke-width:9px}.on-art .map-feature.state-current .map-hit{stroke:#04130acc;stroke-width:15px}.on-art .map-feature.state-current .map-node{fill:#4ade8040;stroke:#4ade80;stroke-width:5px;filter:drop-shadow(0 0 2px #04130a)drop-shadow(0 0 5px #0009)}.on-art .map-feature:not([aria-disabled=true]):hover .map-path,.on-art .map-feature:not([aria-disabled=true]):focus-visible .map-path{stroke:#ffffff8c;stroke-width:16px}.on-art .map-feature:not([aria-disabled=true]):hover .map-node,.on-art .map-feature:not([aria-disabled=true]):focus-visible .map-node{fill:#ffffff40;stroke:#fff;stroke-width:3px}.progress-summary{border-radius:var(--d-radius);border:1px solid var(--d-border);background:var(--d-raised);align-items:center;gap:12px;padding:12px 14px;display:flex}.progress-summary>div{flex:1;gap:6px;display:grid}.summary-icon{color:var(--d-gold);width:28px;height:28px}.achievement-list,.achievement-species,.update-list{margin:0;padding:0;list-style:none}.achievement-list{gap:8px;display:grid}.achievement{border:1px solid var(--d-border);background:var(--d-raised);border-radius:12px;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.achievement-badge{width:36px;height:36px;color:var(--d-muted);background:#ffffff0f;border-radius:50%;place-items:center;display:grid}.achievement.complete{border-color:#facc1573}.achievement.complete .achievement-badge{background:var(--d-gold);color:#1a1400}.achievement-body{gap:4px;min-width:0;display:grid}.achievement-count{font-variant-numeric:tabular-nums;color:var(--d-muted);white-space:nowrap;font-size:.85rem}.achievement-species{flex-wrap:wrap;gap:4px 10px;display:flex}.achievement-species li{color:var(--d-muted);align-items:center;gap:2px;font-size:.85rem;display:inline-flex}.achievement-species li.caught{color:var(--d-text)}.achievement-species li.caught span{text-decoration:line-through;-webkit-text-decoration-color:var(--d-good);text-decoration-color:var(--d-good)}.achievement-species img{image-rendering:pixelated}.achievement-species img.silhouette{filter:brightness(0)drop-shadow(0 0 1px #ffffff73)}.stats-page{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;display:grid}.stat-card{border:1px solid var(--d-border);background:var(--d-raised);border-radius:12px;padding:12px 14px}.stat-card h3{margin:0 0 8px;font-size:.95rem}.stat-card dl{gap:4px;margin:0;display:grid}.stat-row{justify-content:space-between;gap:10px;font-size:.9rem;display:flex}.stat-row dt{color:var(--d-muted)}.stat-row dd{font-variant-numeric:tabular-nums;text-align:right;margin:0;font-weight:600}.updates-intro{margin-top:0}.update-list{gap:10px;display:grid}.update{border:1px solid var(--d-border);background:var(--d-raised);border-radius:12px;padding:10px 14px}.update h3{margin:0 0 4px;font-size:1rem}.update h4{color:var(--d-accent);margin:6px 0 2px;font-size:.9rem}.update ul{margin:0;padding-left:18px}.dashboard button.grind-button{white-space:nowrap;align-items:center;gap:4px;margin-left:8px;padding:2px 8px;font-size:11px;display:inline-flex}.nearby-panel{flex-direction:column;min-height:0;display:flex}.nearby-list{gap:4px;min-height:0;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.dashboard button.nearby-row{border:1px solid var(--d-border);background:var(--d-raised);width:100%;color:var(--d-text);text-align:left;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2px 10px;padding:5px 10px;font-weight:400;display:flex}.dashboard button.nearby-row:not(:disabled):hover,.dashboard button.nearby-row:focus-visible{border-color:var(--d-accent)}.dashboard button.nearby-row.locked{opacity:.55}.nearby-name{align-items:center;gap:6px;font-weight:600;display:inline-flex}.nearby-meta{color:var(--d-muted);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;font-size:12px;display:flex}.nearby-xp{color:var(--d-text)}.nearby-lock{align-items:center;gap:3px;display:inline-flex}.grind-tip{z-index:1000;border:1px solid var(--d-border);background:var(--d-panel);width:min(340px,100vw - 16px);color:var(--d-text);pointer-events:none;border-radius:10px;padding:10px 12px;font-size:13px;position:fixed;box-shadow:0 12px 30px #00000059}.grind-title{color:var(--d-muted);margin:0 0 8px}.grind-title strong{color:var(--d-text)}.grind-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.grind-list li{background:var(--d-raised);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;padding:6px 8px;display:grid}.grind-list li:first-child{border:1px solid #4ade8073}.grind-list li.current{outline:1px dashed var(--d-accent)}.grind-name{font-weight:600}.grind-here{color:var(--d-good);align-items:center;gap:2px;margin-left:6px;font-size:11px;font-weight:500;display:inline-flex}.grind-rate{grid-column:1/-1;font-size:12px}.grind-risk{border-radius:999px;align-self:start;padding:1px 8px;font-size:11px;font-weight:600}.grind-risk.risk-safe{color:#86efac;background:#22c55e2e}.grind-risk.risk-risky{color:#fcd34d;background:#f59e0b2e}.grind-risk.risk-faints{color:#fca5a5;background:#ef44442e}.grind-note,.grind-empty{margin:8px 0 0}.grind-footer{color:var(--d-muted);margin:8px 0 0;font-size:11px}.wiki{grid-template-columns:170px minmax(0,1fr);gap:14px;min-height:100%;display:grid}.wiki-nav{align-content:start;gap:4px;display:grid}.dashboard .wiki-nav button{text-align:left;border-color:#0000}.dashboard .wiki-nav button.active{background:var(--d-raised);border-color:var(--d-accent)}.wiki-body{min-width:0;line-height:1.5}.wiki-body h3{margin:0 0 8px}.wiki-body h4{margin:16px 0 6px}.wiki-body ul{padding-left:18px}.wiki-table{border-collapse:collapse;width:100%;margin:8px 0;font-size:13px}.wiki-table th,.wiki-table td{border-bottom:1px solid var(--d-border);text-align:left;vertical-align:top;padding:5px 8px}.wiki-table th{color:var(--d-muted);font-weight:600}.wiki-faq{border:1px solid var(--d-border);background:var(--d-raised);border-radius:10px;margin-bottom:6px;padding:8px 12px}.wiki-faq summary{cursor:pointer;font-weight:600}.wiki-faq p{margin:6px 0 0}@media (width<=767px){.wiki{grid-template-columns:minmax(0,1fr)}.wiki-nav{grid-auto-columns:max-content;grid-auto-flow:column;overflow-x:auto}}.map-legendary .map-node,.on-art .map-legendary .map-node{fill:var(--d-gold);stroke:#fff7d6;stroke-width:2px}.on-art .map-feature.map-legendary.state-locked .map-node{fill:#78641eb3;stroke:#080c18b3}.prestige-badge{color:var(--d-gold);white-space:nowrap;background:#facc1529;border-radius:999px;align-items:center;gap:2px;margin-left:4px;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.dashboard button.prestige-chip{border-color:var(--d-gold);color:var(--d-gold)}.log-feeds{flex:1;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:10px;min-height:0;display:grid}.log-feed{flex-direction:column;min-height:0;display:flex}.log-feed-head{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.log-feed-head h3{color:var(--d-muted);margin:0;font-size:.85rem}.log-feed .log{flex:1;min-height:80px}.log-tabs{gap:4px;margin-left:auto;display:none}.dashboard .log-tabs button.active{border-color:var(--d-accent);background:var(--d-raised)}.log-empty{font-style:italic;list-style:none}@media (width<=900px){.log-feeds{grid-template-columns:minmax(0,1fr)}.log-tabs{display:inline-flex}.log-feeds.show-battle .feed-highlights,.log-feeds.show-highlights .feed-battle{display:none}}.achievement-bonuses{color:var(--d-good);margin:8px 0;font-size:.85rem}.achievement{grid-template-columns:36px minmax(0,1fr) auto auto}.achievement-bonus{border:1px solid var(--d-border);color:var(--d-muted);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:11px}.achievement-bonus.earned{color:#86efac;border-color:#22c55e80}@media (width<=767px){.achievement{grid-template-columns:36px minmax(0,1fr) auto}.achievement-bonus{grid-column:2/-1;justify-self:start}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f7f7f8;--fg:#1c1c1e;--muted:#6b6b70;--card:#fff;--border:#d9d9de;--accent:#3a5bd9;font-family:system-ui,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#161618;--fg:#ececf0;--muted:#9a9aa2;--card:#1f1f23;--border:#34343a;--accent:#7d97ff}}body{background:var(--bg);color:var(--fg);margin:0}.page{max-width:900px;margin:0 auto;padding:24px 16px}.notice{border-left:4px solid var(--accent);background:var(--card);padding:10px 14px}.slots{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:0;list-style:none;display:grid}.slot{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:16px}.slot h2{margin:0 0 8px;font-size:1.1rem}.muted{color:var(--muted)}button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:6px;padding:6px 14px}button:disabled{opacity:.6;cursor:default}.classic{flex-direction:column;height:100vh;display:flex}.classic-bar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:8px 16px;display:flex}.classic iframe{background:#fff;border:0;flex:1}.row{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;display:flex}fieldset.row{border:0;padding:0}button.secondary{color:var(--accent);background:0 0}button.link{color:var(--accent);background:0 0;border:0;padding:2px 4px;text-decoration:underline}.links{margin-top:12px;font-size:.9rem}textarea{box-sizing:border-box;background:var(--bg);width:100%;color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:8px;font-family:ui-monospace,monospace;font-size:.8rem}.modal-backdrop{background:#00000073;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--card);border:1px solid var(--border);border-radius:10px;width:min(560px,100%);max-height:90vh;padding:16px 20px;overflow:auto}.modal-head{justify-content:space-between;align-items:center;display:flex}.modal-head h2{margin:0;font-size:1.1rem}.problem,.warnings{color:#c2410c}.summary{grid-template-columns:max-content 1fr;gap:4px 12px;display:grid}.summary dt{color:var(--muted)}.summary dd{margin:0}.backups{padding:0;list-style:none}.backups li{border-bottom:1px solid var(--border);justify-content:space-between;gap:8px;padding:6px 0;display:flex}.file input{margin-left:6px}.header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.account{align-items:center;gap:10px;display:flex}.form{gap:10px;margin-bottom:12px;display:grid}.form label{gap:4px;display:grid}.form input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:6px;padding:6px 8px}.cloud{margin:6px 0;font-size:.9rem}.cloud.ok{color:#15803d}.cloud.warn{color:#c2410c}.sides{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.side{border:1px solid var(--border);border-radius:8px;padding:8px 12px}.side h3{margin:4px 0 8px;font-size:1rem}.settings fieldset{border:1px solid var(--border,#444);border-radius:6px;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;margin:0 0 1rem;padding:.75rem 1rem;display:flex}.settings legend{padding:0 .25rem;font-weight:600}.settings fieldset p{flex-basis:100%;margin:0}.pokedex label{margin-bottom:.5rem;display:inline-block}.virtual-list{border:1px solid var(--border);background:var(--card);border-radius:6px}.virtual-list li{white-space:nowrap;text-overflow:ellipsis;padding:0 .75rem;line-height:26px;list-style:none;overflow:hidden}:root{--dex-blue:#2a37be;--dex-gold:#a88a00}@media (prefers-color-scheme:dark){:root{--dex-blue:#8fa0ff;--dex-gold:#e0c040}}.dex-flag-0{color:var(--muted)}.dex-flag-2{color:var(--dex-gold);opacity:.8}.dex-flag-3,.dex-flag-5{color:var(--dex-blue);opacity:.6}.dex-flag-4,.dex-flag-7{color:var(--dex-gold);opacity:.6}.dex-flag-3,.dex-flag-4{font-style:italic}.dex-flag-6,.dex-flag-8{font-weight:700}.dex-flag-6{color:var(--dex-blue)}.dex-flag-8{color:var(--dex-gold)}.poke-row{justify-content:space-between;align-items:center;gap:.75rem;height:100%;display:flex}.poke-row .poke-name{text-overflow:ellipsis;overflow:hidden}.poke-who{align-items:center;gap:8px;min-width:0;display:flex}.poke-who img{object-fit:contain;width:32px;height:32px;image-rendering:pixelated;flex-shrink:0}.poke-row.shiny .poke-name{color:var(--dex-gold);font-weight:700}.poke-row.fainted .poke-name{color:var(--muted);text-decoration:line-through}.poke-actions{flex-shrink:0;gap:.25rem;display:flex}.poke-actions button{padding:.1rem .5rem;font-size:.85rem}.storage .row label{margin-right:1rem}.team-list{gap:.5rem;margin:.75rem 0 0;padding:0;list-style:none;display:grid}.team-list>li{border:1px solid var(--border);background:var(--card);border-radius:6px;padding:.25rem .75rem}.team-list>li.active{border-color:var(--accent)}.poke-pick{color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:.75rem;padding:0;display:flex}.poke-pick img{image-rendering:pixelated}.routes{columns:2 16rem;margin:.75rem 0 0;padding:0;list-style:none}.routes li{break-inside:avoid;align-items:center;gap:.35rem;display:flex}.route{color:var(--accent);text-align:left;cursor:pointer;background:0 0;border:none;padding:.15rem 0}.route-current{color:#3a9a1a;font-weight:700}.route-locked,.route:disabled{color:var(--muted);cursor:default}.map .region{margin:.75rem 0;display:block}.route-completion,.route-completion-legend,.route-completion-legend span{align-items:center;display:inline-flex}.route-completion{flex:none;gap:.2rem}.route-completion-caught{color:#3b82f6;display:inline-flex}.route-completion-shiny{color:#d9a600;display:inline-flex}.route-completion-legend{color:var(--muted);gap:.9rem;margin:.75rem 0 0;font-size:.8rem}.route-completion-legend span{gap:.25rem}.route-completion-legend span:first-child svg{color:#3b82f6}.route-completion-legend span:last-child svg{color:#d9a600}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.town .balls{border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;gap:.5rem 1.25rem;padding:.5rem 1rem;display:flex}.shop{margin:.25rem 0 1rem;padding:0;list-style:none}.shop li{padding:.2rem 0}.route-row{position:relative}.route-preview{z-index:1000;border:1px solid var(--d-border,var(--border));background:var(--d-panel,var(--card));pointer-events:none;border-radius:10px;width:min(360px,100vw - 16px);padding:10px 12px;position:fixed;box-shadow:0 12px 30px #00000059}.route-preview-title,.route-preview-rod{color:var(--d-muted,var(--muted));margin:0 0 6px;font-size:12px}.route-preview-rod{margin-top:6px}.route-preview-list{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.route-preview-list li{background:var(--d-raised,var(--bg));text-align:center;border-radius:8px;justify-items:center;gap:2px;padding:4px;font-size:11px;display:grid}.route-preview-list img{object-fit:contain;width:48px;height:48px;image-rendering:pixelated}.route-preview-list img.silhouette{filter:brightness(0)drop-shadow(0 0 1px #ffffff73)}.route-preview-list li.unseen span{color:var(--d-muted,var(--muted))}.route-preview-list li span svg{vertical-align:-2px;color:#3b82f6;margin-left:2px}.zone-card{border:1px solid var(--d-border,var(--border));background:var(--d-raised,var(--card));border-radius:10px;margin-bottom:12px;padding:10px 12px}.zone-title{margin:0 0 8px}.zone-requirements{gap:8px;margin:0;padding:0;list-style:none;display:grid}.zone-requirement{gap:4px;font-size:12px;display:grid}.zone-requirement.main{font-size:13px}.zone-label{justify-content:space-between;gap:8px;display:flex}.bar.zone{height:6px;display:block}.zone-requirement.main .bar.zone{height:10px}.bar.zone span{background:var(--d-accent-2,var(--accent))}.zone-requirement.done .bar.zone span{background:var(--d-good,#22c55e)}.dex-row{align-items:center;gap:8px;height:100%;display:flex}.dex-row img{object-fit:contain;width:32px;height:32px;image-rendering:pixelated;flex-shrink:0}.dex-row img.silhouette,.virtual-list img.silhouette{filter:brightness(0)drop-shadow(0 0 1px #ffffff73);opacity:.8}.pokedex .virtual-list li{line-height:normal}.dex-row.has-tip{cursor:help}.dex-row.has-tip:focus-visible{outline:2px solid var(--d-accent,var(--accent));outline-offset:-2px;border-radius:6px}.where-tip{z-index:1000;border:1px solid var(--d-border,var(--border));background:var(--d-panel,var(--card));width:min(320px,100vw - 16px);color:var(--d-text,inherit);pointer-events:none;border-radius:10px;padding:10px 12px;font-size:13px;position:fixed;box-shadow:0 12px 30px #00000059}.where-title{color:var(--d-muted,var(--muted));margin:0 0 6px}.where-title strong{color:var(--d-text,inherit)}.where-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.where-list li{background:var(--d-raised,var(--bg));border-radius:8px;gap:1px;padding:5px 8px;display:grid}.where-list li.locked,.where-note.locked{opacity:.6}.where-meta{color:var(--d-muted,var(--muted));flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.where-rod,.where-lock,.where-here{align-items:center;gap:2px;display:inline-flex}.where-here{color:var(--d-good,green);margin-left:6px;font-size:11px}.where-note{margin:6px 0 0}.regional-dex{border:1px solid var(--d-border,var(--border));background:var(--d-raised,var(--bg));border-radius:10px;margin:8px 0;padding:8px 10px}.regional-odds{flex-wrap:wrap;align-items:center;gap:4px;margin:0 0 6px;display:flex}.regional-odds svg{color:var(--d-gold,gold)}.regional-dex ul{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:4px 12px;margin:0;padding:0;font-size:12px;list-style:none;display:grid}.regional-dex li{color:var(--d-muted,var(--muted));justify-content:space-between;display:flex}.regional-dex li span:last-child{font-variant-numeric:tabular-nums;align-items:center;gap:3px;display:inline-flex}.regional-dex li.complete{color:var(--d-good,green)}.filter-bar{flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0;display:flex}.filter-search{border:1px solid var(--d-border,var(--border));background:var(--d-raised,var(--bg));border-radius:8px;flex:160px;align-items:center;gap:6px;min-width:0;padding:4px 8px;display:inline-flex}.filter-search input{min-width:0;color:inherit;background:0 0;border:none;outline:none;flex:1}.filter-bar select{flex:0 auto}
