:root{
  --bg:#0a0f16;
  --bg-2:#111824;
  --panel:#141d2a;
  --panel-2:#1a2433;
  --text:#f5f7fb;
  --muted:#93a0b4;
  --line:rgba(255,255,255,.08);
  --accent:#ef4056;
  --accent-2:#4bc8ff;
  --shadow:0 12px 34px rgba(0,0,0,.28);
  --radius:22px;
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --safe-top:env(safe-area-inset-top,0px);
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color-scheme:dark;
}
:root[data-theme="light"]{
  --bg:#f3f6fa;
  --bg-2:#ffffff;
  --panel:#ffffff;
  --panel-2:#eef2f7;
  --text:#152033;
  --muted:#657286;
  --line:rgba(18,31,48,.09);
  --shadow:0 14px 34px rgba(28,49,78,.12);
  color-scheme:light;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}
body{overscroll-behavior-y:none}
button,input,select{font:inherit}
button{color:inherit}
.app-shell{min-height:100dvh;max-width:1500px;margin:0 auto;background:var(--bg);position:relative}
.topbar{position:sticky;top:0;z-index:40;padding:calc(12px + var(--safe-top)) 14px 8px;background:linear-gradient(180deg,var(--bg) 82%,color-mix(in srgb,var(--bg) 88%,transparent));backdrop-filter:blur(18px)}
.brand-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;align-items:center;gap:10px;border:0;background:transparent;padding:0;cursor:pointer;text-align:left}
.brand-lens{width:38px;height:38px;border:4px solid #dce5ea;border-radius:50%;display:grid;place-items:center;box-shadow:0 0 0 2px rgba(18,54,73,.7)}
.brand-lens span{display:block;width:25px;height:25px;border-radius:50%;background:radial-gradient(circle at 34% 30%,#e9fbff 0 12%,#7bddff 28%,#28a9dd 63%,#0c5f8e 100%)}
.brand-copy{display:flex;flex-direction:column;line-height:1.05}
.brand-copy strong{font-size:16px;letter-spacing:.14em}
.brand-copy small{margin-top:5px;color:var(--muted);font-size:11px;letter-spacing:.05em}
.top-actions{display:flex;gap:8px}.icon-btn,.filter-btn{border:1px solid var(--line);background:var(--panel);border-radius:14px;min-width:42px;height:42px;display:grid;place-items:center;box-shadow:0 5px 16px rgba(0,0,0,.08);cursor:pointer}.icon-btn{font-size:19px}
.search-row{display:grid;grid-template-columns:1fr 46px;gap:9px;margin-top:13px}
.search-box{height:46px;border:1px solid var(--line);background:var(--panel);border-radius:16px;display:grid;grid-template-columns:28px 1fr 28px;align-items:center;padding:0 10px;box-shadow:0 4px 18px rgba(0,0,0,.05)}
.search-box>span{color:var(--muted);font-size:21px;transform:rotate(-12deg)}
.search-box input{border:0;outline:0;background:transparent;color:var(--text);font-size:15px;min-width:0;width:100%}.search-box input::placeholder{color:var(--muted)}
.clear-search{border:0;background:transparent;color:var(--muted);font-size:20px;cursor:pointer;opacity:0;pointer-events:none}.search-box.has-value .clear-search{opacity:1;pointer-events:auto}
.filter-btn{position:relative;font-size:19px}.filter-btn em{position:absolute;right:-3px;top:-5px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--accent);font-style:normal;font-size:10px;display:none;place-items:center;color:white;border:2px solid var(--bg)}.filter-btn em.active{display:grid}
.jump-strip{display:flex;gap:7px;overflow-x:auto;padding:9px 1px 2px;scrollbar-width:none}.jump-strip::-webkit-scrollbar{display:none}.jump-chip{flex:0 0 auto;border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:999px;padding:7px 11px;font-size:12px;cursor:pointer}.jump-chip.active{background:var(--text);color:var(--bg);border-color:var(--text);font-weight:700}
.view{padding:6px 14px calc(88px + var(--safe-bottom));min-height:70dvh;outline:0}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:10px;margin:10px 0 12px}.section-head h1,.section-head h2{margin:0;font-size:22px}.section-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.section-head .count{color:var(--muted);font-size:12px;white-space:nowrap}
.dex-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pokemon-card{border:1px solid var(--line);border-radius:20px;padding:10px 11px 11px;text-align:left;background:linear-gradient(145deg,color-mix(in srgb,var(--type-color,#6b7280) 23%,var(--panel)),var(--panel) 72%);min-height:202px;position:relative;overflow:hidden;box-shadow:0 8px 22px rgba(0,0,0,.12);cursor:pointer}.pokemon-card::after{content:"";position:absolute;width:135px;height:135px;border-radius:50%;right:-38px;top:35px;border:18px solid rgba(255,255,255,.04)}.card-topline{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:1}.card-number{font-size:11px;color:var(--muted);font-weight:700;letter-spacing:.08em}.caught-dot{width:8px;height:8px;border-radius:50%;background:transparent;border:1px solid rgba(255,255,255,.22)}.pokemon-card.is-caught .caught-dot{background:#6de48d;border-color:#6de48d;box-shadow:0 0 10px rgba(109,228,141,.45)}
.card-art-wrap{height:118px;display:grid;place-items:center;position:relative;z-index:1}.card-art{max-width:118px;max-height:118px;object-fit:contain;filter:drop-shadow(0 12px 13px rgba(0,0,0,.27));transition:transform .2s ease}.pokemon-card:active .card-art{transform:scale(.96)}.card-name{position:relative;z-index:1;font-size:16px;font-weight:800;margin-top:-1px}.card-types,.type-row{position:relative;z-index:1;display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.type-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.03em;background:color-mix(in srgb,var(--badge-color,#6b7280) 78%,#000);color:white;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.bottom-nav{position:fixed;z-index:50;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,1500px);height:calc(70px + var(--safe-bottom));padding:7px 8px var(--safe-bottom);display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(20px)}.bottom-nav button{border:0;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;border-radius:14px}.bottom-nav button span{font-size:20px;line-height:1}.bottom-nav button small{font-size:10px}.bottom-nav button.active{color:var(--text);background:var(--panel)}
.empty-state{min-height:45dvh;display:grid;place-items:center;text-align:center;padding:40px 22px}.empty-state .orb{width:72px;height:72px;border-radius:50%;border:12px solid var(--panel-2);margin:0 auto 18px;position:relative}.empty-state .orb::before{content:"";position:absolute;height:9px;background:var(--panel-2);left:-12px;right:-12px;top:20px}.empty-state h3{margin:0 0 8px}.empty-state p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
/* detail */
.detail{margin:-6px -14px 0}.detail-hero{padding:11px 16px 18px;background:radial-gradient(circle at 50% 48%,color-mix(in srgb,var(--type-color) 42%,transparent),transparent 44%),linear-gradient(180deg,color-mix(in srgb,var(--type-color) 24%,var(--bg)),var(--bg));position:relative;overflow:hidden}.detail-hero::after{content:"";position:absolute;width:260px;height:260px;border:34px solid rgba(255,255,255,.035);border-radius:50%;right:-78px;top:90px}.detail-head{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:8px;position:relative;z-index:2}.detail-head button{width:40px;height:40px;border-radius:14px;border:1px solid var(--line);background:rgba(0,0,0,.12);font-size:19px}.detail-title{text-align:center}.detail-title small{display:block;color:var(--muted);font-size:11px;letter-spacing:.1em}.detail-title h1{margin:2px 0 5px;font-size:26px}.detail-title .type-row{justify-content:center;margin-top:0}.favorite-btn.active{color:#ffd35a}.hero-art-wrap{height:250px;display:grid;place-items:center;position:relative;z-index:1}.hero-art{max-height:235px;max-width:88%;filter:drop-shadow(0 20px 24px rgba(0,0,0,.3));animation:floatIn .35s ease both}.cry-btn{position:absolute;right:18px;bottom:22px;width:45px;height:45px;border-radius:50%;border:1px solid var(--line);background:var(--panel);z-index:4;font-size:18px;box-shadow:var(--shadow)}@keyframes floatIn{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.form-strip{display:flex;gap:8px;overflow-x:auto;padding:0 2px 2px;scrollbar-width:none;position:relative;z-index:3}.form-strip::-webkit-scrollbar{display:none}.form-chip{flex:0 0 auto;border:1px solid var(--line);background:rgba(0,0,0,.1);color:var(--muted);border-radius:999px;padding:7px 10px;font-size:11px}.form-chip.active{background:var(--text);color:var(--bg);border-color:var(--text);font-weight:800}
.track-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;position:relative;z-index:3}.track-btn{border:1px solid var(--line);background:rgba(0,0,0,.1);border-radius:14px;padding:9px 10px;font-size:12px;color:var(--muted)}.track-btn.active{background:var(--panel);color:var(--text);font-weight:800}.track-btn.seen.active{box-shadow:inset 0 0 0 1px #4bc8ff55}.track-btn.caught.active{box-shadow:inset 0 0 0 1px #6de48d55}
.detail-tabs{position:sticky;top:137px;z-index:25;display:flex;gap:2px;padding:7px 12px;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(15px);border-bottom:1px solid var(--line)}.detail-tabs button{flex:1;border:0;background:transparent;color:var(--muted);padding:10px 4px;border-radius:12px;font-size:12px}.detail-tabs button.active{background:var(--panel);color:var(--text);font-weight:800}.detail-body{padding:14px 14px 22px}
.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.info-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:12px}.info-card small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.info-card strong{display:block;margin-top:5px;font-size:14px}.flavor-card,.panel-card{margin-top:10px;border:1px solid var(--line);background:var(--panel);border-radius:18px;padding:14px}.flavor-card p{margin:0;color:var(--text);font-size:13px;line-height:1.58}.subheading{display:flex;align-items:center;justify-content:space-between;margin:18px 0 8px}.subheading h3{font-size:15px;margin:0}.subheading small{color:var(--muted)}
.evolution-chain{display:flex;align-items:center;gap:7px;overflow-x:auto;padding:3px 0 4px;scrollbar-width:none}.evo-node{flex:0 0 100px;border:1px solid var(--line);background:var(--panel);border-radius:16px;padding:8px;text-align:center}.evo-node img{width:70px;height:70px;object-fit:contain}.evo-node strong{display:block;font-size:11px}.evo-arrow{flex:0 0 auto;color:var(--muted);font-size:18px}.evo-arrow small{display:block;font-size:8px;max-width:76px;text-align:center;line-height:1.2}
.stat-row{display:grid;grid-template-columns:58px 36px 1fr;align-items:center;gap:7px;margin:10px 0}.stat-row span{font-size:11px;color:var(--muted)}.stat-row strong{text-align:right;font-size:12px}.stat-track{height:8px;background:var(--panel-2);border-radius:99px;overflow:hidden}.stat-fill{height:100%;width:0;border-radius:99px;background:var(--type-color);animation:grow .55s ease forwards}@keyframes grow{to{width:var(--pct)}}.stat-total{display:flex;justify-content:space-between;margin-top:13px;padding-top:12px;border-top:1px solid var(--line);font-size:12px}.chart-wrap{display:grid;place-items:center;margin-top:10px}.radar{width:min(310px,90vw);height:auto}.radar polygon,.radar line{stroke:var(--line);fill:none}.radar .area{fill:color-mix(in srgb,var(--type-color) 25%,transparent);stroke:var(--type-color);stroke-width:2}.radar text{fill:var(--muted);font-size:9px}
.segmented{display:inline-flex;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:3px}.segmented button{border:0;background:transparent;color:var(--muted);padding:6px 9px;border-radius:9px;font-size:10px}.segmented button.active{background:var(--panel-2);color:var(--text);font-weight:800}
.move-list{display:flex;flex-direction:column;gap:8px}.move-row{border:1px solid var(--line);background:var(--panel);border-radius:15px;padding:11px;display:grid;grid-template-columns:1fr auto;gap:7px}.move-title{display:flex;align-items:center;gap:7px}.move-title strong{font-size:13px}.move-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:5px;color:var(--muted);font-size:10px}.learn-tag{font-size:9px;background:var(--panel-2);padding:4px 7px;border-radius:999px;color:var(--muted);align-self:start}.move-row details{grid-column:1/-1}.move-row summary{font-size:10px;color:var(--muted);cursor:pointer}.move-row p{font-size:11px;line-height:1.5;color:var(--muted);margin:7px 0 0}
.forms-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.form-card{border:1px solid var(--line);background:var(--panel);border-radius:18px;padding:10px;text-align:center}.form-card img{width:130px;height:130px;max-width:100%;object-fit:contain}.form-card strong{display:block;font-size:12px}.shiny-toggle{display:flex;align-items:center;gap:8px}.toggle{width:42px;height:24px;border-radius:99px;background:var(--panel-2);padding:3px;border:1px solid var(--line)}.toggle i{display:block;width:16px;height:16px;border-radius:50%;background:var(--muted);transition:.2s}.toggle.active{background:#6f58c9}.toggle.active i{transform:translateX(17px);background:white}
/* lists / reference */
.list-stack{display:flex;flex-direction:column;gap:9px}.reference-row,.menu-row{border:1px solid var(--line);background:var(--panel);border-radius:17px;padding:12px 13px;display:flex;align-items:center;gap:11px;cursor:pointer}.reference-row .bubble,.menu-row .bubble{width:40px;height:40px;border-radius:13px;background:var(--panel-2);display:grid;place-items:center;font-weight:900}.reference-row .copy,.menu-row .copy{min-width:0;flex:1}.reference-row strong,.menu-row strong{display:block;font-size:13px}.reference-row small,.menu-row small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.reference-row .chev,.menu-row .chev{color:var(--muted)}
.type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.type-card{border:0;border-radius:17px;padding:16px;background:var(--type-color);color:white;text-align:left;min-height:82px;box-shadow:0 10px 24px color-mix(in srgb,var(--type-color) 28%,transparent)}.type-card strong{font-size:15px}.type-card small{display:block;opacity:.8;margin-top:5px;font-size:10px}
.type-explorer{border:1px solid var(--line);background:var(--panel);border-radius:20px;padding:14px;margin-bottom:14px}.type-explorer h3{margin:0 0 10px}.effect-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.effect-label{width:100%;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:1px}.matrix-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.type-matrix{border-collapse:collapse;font-size:8px;min-width:720px}.type-matrix th,.type-matrix td{border:1px solid var(--line);width:36px;height:32px;text-align:center}.type-matrix th{position:sticky;top:0;background:var(--panel);z-index:2}.type-matrix th:first-child{left:0;z-index:3}.type-matrix td:first-child{position:sticky;left:0;background:var(--panel);font-weight:800}.mult-2{background:rgba(99,223,124,.22);color:#77ee8e;font-weight:900}.mult-half{background:rgba(255,211,90,.12);color:#f0c85a}.mult-zero{background:rgba(255,255,255,.035);color:var(--muted)}
/* filter + modal */
.modal-backdrop{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.58);backdrop-filter:blur(8px);display:grid;align-items:end;justify-items:center}.modal-sheet{width:min(100%,640px);max-height:88dvh;overflow:auto;background:var(--bg-2);border:1px solid var(--line);border-radius:26px 26px 0 0;padding:18px 16px calc(18px + var(--safe-bottom));box-shadow:0 -22px 50px rgba(0,0,0,.3)}.modal-sheet.center{align-self:center;border-radius:24px;max-width:440px;margin:16px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.modal-head h2{margin:0;font-size:19px}.modal-close{border:1px solid var(--line);background:var(--panel);width:38px;height:38px;border-radius:12px}.filter-section{margin:14px 0}.filter-section h3{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px}.choice-grid{display:flex;gap:7px;flex-wrap:wrap}.choice-chip{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:8px 11px;font-size:11px;color:var(--muted)}.choice-chip.active{background:var(--text);color:var(--bg);border-color:var(--text);font-weight:800}.modal-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:8px;position:sticky;bottom:0;background:linear-gradient(180deg,transparent,var(--bg-2) 25%);padding-top:18px}.btn{border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:12px;font-weight:800;font-size:12px}.btn.primary{background:var(--accent);border-color:var(--accent);color:white}.btn.danger{background:#8f2533;border-color:#a62d3f;color:white}.btn:disabled{opacity:.45}
.input{width:100%;border:1px solid var(--line);background:var(--panel);border-radius:14px;color:var(--text);padding:12px 13px;outline:0}.field-label{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin:12px 0 6px}
.toast-root{position:fixed;z-index:120;left:50%;bottom:calc(82px + var(--safe-bottom));transform:translateX(-50%);width:min(calc(100% - 28px),430px);pointer-events:none}.toast{background:var(--text);color:var(--bg);padding:11px 13px;border-radius:14px;box-shadow:var(--shadow);font-size:12px;font-weight:700;margin-top:8px;animation:toastIn .18s ease both}@keyframes toastIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
/* compare / teams */
.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.compare-card{border:1px solid var(--line);background:var(--panel);border-radius:18px;padding:12px;text-align:center}.compare-card img{width:120px;height:120px;max-width:100%;object-fit:contain}.compare-card h3{margin:4px 0 6px;font-size:14px}.compare-stat{display:grid;grid-template-columns:1fr 38px;gap:5px;align-items:center;text-align:left;margin-top:6px}.compare-stat span{font-size:9px;color:var(--muted)}.compare-stat strong{font-size:10px;text-align:right}.team-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.team-slot{min-height:116px;border:1px dashed var(--line);background:var(--panel);border-radius:17px;display:grid;place-items:center;text-align:center;padding:8px}.team-slot img{width:74px;height:74px;object-fit:contain}.team-slot strong{font-size:10px}.team-slot.empty{color:var(--muted);font-size:24px}.weakness-strip{display:flex;gap:6px;flex-wrap:wrap}.count-badge{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:7px 9px;font-size:10px}
.progress-card{border:1px solid var(--line);background:var(--panel);border-radius:18px;padding:14px;margin-bottom:10px}.progress-head{display:flex;justify-content:space-between;gap:8px}.progress-head strong{font-size:12px}.progress-head span{font-size:11px;color:var(--muted)}.progress-track{height:8px;border-radius:99px;background:var(--panel-2);margin-top:8px;overflow:hidden}.progress-track i{display:block;height:100%;border-radius:99px;background:var(--accent-2)}
.admin-note{border:1px solid var(--line);background:var(--panel);border-radius:16px;padding:12px;font-size:11px;color:var(--muted);line-height:1.5}.admin-note strong{color:var(--text)}
@media (min-width:620px){.topbar{padding-left:22px;padding-right:22px}.view{padding-left:22px;padding-right:22px}.dex-grid{grid-template-columns:repeat(3,1fr);gap:12px}.pokemon-card{min-height:220px}.card-art-wrap{height:130px}.card-art{max-height:130px;max-width:130px}.detail{margin-left:-22px;margin-right:-22px}.hero-art-wrap{height:310px}.hero-art{max-height:290px}.detail-body{max-width:860px;margin:0 auto}.info-grid{grid-template-columns:repeat(4,1fr)}.forms-grid{grid-template-columns:repeat(3,1fr)}.type-grid{grid-template-columns:repeat(3,1fr)}}
@media (min-width:980px){.app-shell{border-left:1px solid var(--line);border-right:1px solid var(--line)}.topbar{display:grid;grid-template-columns:auto minmax(340px,650px) auto;align-items:center;gap:22px;padding-bottom:12px}.brand-row{display:contents}.top-actions{grid-column:3}.search-row{grid-column:2;grid-row:1;margin:0}.jump-strip{grid-column:1/-1}.dex-grid{grid-template-columns:repeat(5,1fr)}.bottom-nav{width:auto;left:50%;bottom:16px;height:68px;padding:6px;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);grid-template-columns:repeat(5,90px)}.view{padding-bottom:110px}.detail-tabs{top:105px}.detail-hero{padding-top:24px}.detail-body{max-width:980px}.type-grid{grid-template-columns:repeat(6,1fr)}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
.shiny-btn{position:absolute;left:18px;bottom:22px;width:45px;height:45px;border-radius:50%;border:1px solid var(--line);background:var(--panel);z-index:4;font-size:20px;box-shadow:var(--shadow);color:var(--muted)}
.shiny-btn.active{color:#ffe079;background:#5e4e21;box-shadow:0 0 24px rgba(255,224,121,.2)}
