:root{--pk-sky:#b2ebf2;--pk-grass:#c5e1a5;--pk-grass-deep:#558b2f;--pk-pink:#f48fb1;--pk-purple:#ce93d8;--pk-yellow:#fff59d;--text:#5d4037;--text-h:#3e2723;--text-soft:#6e5550;--bg:#e0f7fa;--surface:#fff;--surface-rim:#fff;--surface-soft:#ffffffa6;--border:#b2ebf2;--code-bg:#eceff1;--accent:var(--pk-grass);--accent-text:#1b5e20;--accent-fg:#1b5e20;--accent-bg:#c5e1a559;--accent-border:#aed581;--danger:#c2185b;--danger-text:#fff;--shadow:0 8px 16px #5d40372e;--shadow-lg:0 18px 30px -10px #5d403740;--sans:"Nunito", system-ui, "Segoe UI", sans-serif;--heading:"Luckiest Guy", system-ui, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--pk-sky:#4fc3d9;--pk-grass:#9ccc65;--pk-grass-deep:#c5e1a5;--pk-pink:#f06292;--pk-purple:#ba68c8;--pk-yellow:#fdd835;--text:#c8cfe5;--text-h:#f0f3ff;--text-soft:#a0aac4;--bg:#131826;--surface:#1f2436;--surface-rim:#2a3049;--surface-soft:#1f2436a6;--border:#2a3049;--code-bg:#262c40;--accent:var(--pk-grass);--accent-text:#0f1729;--accent-fg:#c5e1a5;--accent-bg:#9ccc652e;--accent-border:#9ccc658c;--danger:#c2185b;--danger-text:#fff;--shadow:0 8px 16px #00000073;--shadow-lg:0 18px 30px -10px #0009}}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--pk-sky:#4fc3d9;--pk-grass:#9ccc65;--pk-grass-deep:#c5e1a5;--pk-pink:#f06292;--pk-purple:#ba68c8;--pk-yellow:#fdd835;--text:#c8cfe5;--text-h:#f0f3ff;--text-soft:#a0aac4;--bg:#131826;--surface:#1f2436;--surface-rim:#2a3049;--surface-soft:#1f2436a6;--border:#2a3049;--code-bg:#262c40;--accent:var(--pk-grass);--accent-text:#0f1729;--accent-fg:#c5e1a5;--accent-bg:#9ccc652e;--accent-border:#9ccc658c;--danger:#c2185b;--danger-text:#fff;--shadow:0 8px 16px #00000073;--shadow-lg:0 18px 30px -10px #0009}html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--pk-sky:#b2ebf2;--pk-grass:#c5e1a5;--pk-grass-deep:#558b2f;--pk-pink:#f48fb1;--pk-purple:#ce93d8;--pk-yellow:#fff59d;--text:#5d4037;--text-h:#3e2723;--text-soft:#6e5550;--bg:#e0f7fa;--surface:#fff;--surface-rim:#fff;--surface-soft:#ffffffa6;--border:#b2ebf2;--code-bg:#eceff1;--accent:var(--pk-grass);--accent-text:#1b5e20;--accent-fg:#1b5e20;--accent-bg:#c5e1a559;--accent-border:#aed581;--danger:#c2185b;--danger-text:#fff;--shadow:0 8px 16px #5d40372e;--shadow-lg:0 18px 30px -10px #5d403740}body{background:var(--bg);color:var(--text);margin:0;overflow-x:hidden}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;background:var(--bg);flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:400}h1{letter-spacing:1.5px;text-transform:uppercase;-webkit-text-stroke:1px #00000014;margin:32px 0;font-size:64px}@media (width<=1024px){h1{margin:20px 0;font-size:40px}}h2{letter-spacing:.5px;margin:0 0 8px;font-size:22px;line-height:118%}@media (width<=1024px){h2{font-size:18px}}p{margin:0}code{font-family:var(--mono);background:var(--code-bg);border-radius:6px;padding:4px 8px;font-size:15px;line-height:135%}.app-nav{z-index:50;background:var(--surface-soft);-webkit-backdrop-filter:blur(10px);border-bottom:4px solid var(--pk-sky);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 20px;display:flex;position:sticky;top:0}.nav-spacer{flex:1}.nav-btn{color:var(--text-h);cursor:pointer;background:0 0;border:2px solid #0000;border-radius:999px;padding:8px 22px;font-size:14px;font-weight:700;transition:background .2s,color .2s,border-color .2s,box-shadow .2s,transform .15s}.nav-btn:hover{background:color-mix(in srgb, var(--pk-yellow) 60%, transparent)}.nav-btn.active{background:var(--pk-grass);color:var(--accent-text);border-color:var(--surface-rim);box-shadow:var(--shadow)}.nav-reset,.theme-toggle{opacity:.75;padding:6px 14px;font-size:12px;transition:opacity .2s,background .2s,color .2s}:is(.nav-reset,.theme-toggle):hover{opacity:1;background:color-mix(in srgb, var(--pk-yellow) 70%, transparent)}.nav-reset.danger{background:var(--danger);color:var(--danger-text);opacity:1}.nav-reset.danger:hover{background:var(--danger);opacity:.85;color:var(--danger-text)}.area-manager{flex-direction:column;gap:24px;padding:32px 32px 64px;display:flex}@media (width<=1024px){.area-manager{padding:20px 16px 48px}}.area-tabs{flex-wrap:wrap;gap:10px;display:flex}.area-tab{background:var(--surface);color:var(--text-h);cursor:pointer;box-shadow:var(--shadow);border:2px solid #0000;border-radius:999px;align-items:center;gap:8px;padding:8px 20px;font-size:14px;font-weight:700;transition:background .2s,color .2s,border-color .2s,transform .15s;display:flex}.area-tab:hover{border-color:var(--pk-sky);transform:translateY(-2px)}.area-tab.active{background:var(--pk-grass);color:var(--accent-text);border-color:var(--surface-rim)}.area-tab-count{background:var(--code-bg);color:var(--text);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.area-tab.active .area-tab-count{color:var(--accent-text);background:#ffffff80}.area-controls{gap:12px;display:flex}.area-filter{border:2px solid var(--pk-sky);background:var(--surface);color:var(--text-h);border-radius:999px;width:240px;padding:10px 16px;font-size:14px;font-weight:600;transition:border-color .2s,box-shadow .2s}.area-filter:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);outline:none}.area-empty{color:var(--text-soft);font-size:14px;font-style:italic}.area-pokemon-list{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.area-pokemon-row{border-bottom:1px solid var(--border);text-align:left;align-items:center;gap:10px;padding:12px 4px;font-size:14px;display:flex}.area-pokemon-row .pokemon-name{color:var(--text-h);flex:1;font-weight:700}.area-pokemon-tags{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:6px;min-width:240px;display:flex}.area-row-actions{flex-shrink:0}.housed-tag{color:var(--pk-grass-deep);background:#c5e1a566}.area-pokemon-no{color:var(--text-soft);font-variant-numeric:tabular-nums;min-width:36px;font-size:12px;font-weight:700}.area-houses{flex-direction:column;gap:14px;padding-bottom:8px;display:flex}.area-houses-header{justify-content:space-between;align-items:center;display:flex}.houses-list{flex-direction:column;gap:12px;display:flex}.house-card{background:var(--surface);border:3px solid var(--surface-rim);box-shadow:var(--shadow-lg);border-radius:20px;flex-direction:column;gap:12px;padding:16px 18px;display:flex}.house-card-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.house-card-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.house-expand-btn{color:var(--accent-text);background:var(--pk-grass);cursor:pointer;border:none;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:700;transition:opacity .2s,transform .15s}.house-expand-btn:hover{opacity:.85;transform:translateY(-1px)}.house-name-btn{color:var(--text-h);cursor:pointer;text-align:left;border:none;border-bottom:2px dashed var(--pk-sky);background:0 0;padding:0;font-size:16px;font-weight:800;transition:border-color .2s}.house-name-btn:hover{border-bottom-color:var(--accent)}.house-name-input{color:var(--text-h);border:none;border-bottom:2px solid var(--accent);background:0 0;outline:none;width:100%;padding:0;font-size:16px;font-weight:800}.house-delete-btn{color:var(--text-soft);cursor:pointer;background:0 0;border:none;border-radius:999px;flex-shrink:0;padding:4px 8px;font-size:12px;font-weight:700;transition:color .2s,background .2s}.house-delete-btn:hover{color:var(--danger-text);background:var(--danger)}.house-members{flex-wrap:wrap;gap:8px;display:flex}.house-member{background:var(--code-bg);border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:13px;display:flex}.house-member .pokemon-name{color:var(--text-h);font-weight:700}.builder-header{justify-content:space-between;align-items:flex-start;width:100%;display:flex}.builder-header h1{margin:0}.builder-header-actions{gap:8px;padding-top:12px;display:flex}.builder-area-label{color:var(--accent-fg);background:var(--accent-bg);border-radius:999px;margin:8px 0 0;padding:4px 12px;font-size:13px;font-weight:700;display:inline-block}.builder-save-row{padding-top:8px}.builder-save-picker{flex-direction:column;align-items:center;gap:10px;padding-top:8px;display:flex}.save-picker-label{color:var(--text-soft);margin:0;font-size:13px;font-weight:700}.save-picker-areas{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.save-btn{border:2px solid var(--surface-rim);background:var(--pk-grass);color:var(--accent-text);cursor:pointer;box-shadow:var(--shadow-lg);text-transform:uppercase;letter-spacing:.5px;border-radius:999px;padding:12px 36px;font-size:16px;font-weight:800;transition:opacity .2s,transform .15s}.save-btn:hover{opacity:.92;transform:translateY(-2px)}.area-list-divider{text-transform:uppercase;letter-spacing:.8px;color:var(--text-soft);border-bottom:2px solid var(--pk-sky);padding:16px 0 8px;font-size:11px;font-weight:800}.area-row-actions select{border:2px solid var(--pk-sky);background:var(--surface);color:var(--text-h);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700}.area-row-actions select:focus{border-color:var(--accent);outline:none}.house-builder{flex-direction:column;align-items:center;gap:28px;padding:24px 32px 64px;display:flex}@media (width<=1024px){.house-builder{gap:22px;padding:20px 16px 48px}}@media (width<=768px){.house-builder{padding-bottom:calc(80px + max(env(safe-area-inset-bottom), var(--viewport-bottom-offset,0px)))}}.subtitle-row{align-items:center;gap:16px;margin-top:-8px;display:flex}.subtitle{color:var(--text-soft);margin:0;font-weight:700}.clear-btn{border:2px solid var(--pk-sky);background:var(--surface);color:var(--text-h);cursor:pointer;border-radius:999px;padding:6px 16px;font-size:13px;font-weight:700;transition:border-color .2s,color .2s,transform .15s}.clear-btn:hover{border-color:var(--accent);color:var(--accent-fg);transform:translateY(-1px)}.area-filter-row{flex-wrap:wrap;justify-content:center;gap:10px;width:100%;display:flex}.pokemon-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;width:100%;display:grid}.pokemon-card{border:3px solid var(--surface-rim);background:var(--surface);cursor:pointer;text-align:left;box-shadow:var(--shadow-lg);border-radius:20px;flex-direction:column;gap:10px;padding:16px 16px 18px;transition:border-color .2s,box-shadow .2s,transform .2s ease-in-out;display:flex}.pokemon-card:hover{transform:translateY(-4px)rotate(1deg)}.pokemon-card.selected{border-color:var(--accent);background:var(--accent-bg);box-shadow:0 0 0 3px var(--accent-bg), var(--shadow-lg);transform:translateY(-2px)}.pokemon-card.special{opacity:.6}.pokemon-card.disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.pokemon-name{color:var(--text-h);letter-spacing:-.01em;font-size:18px;font-weight:900}.projected-score{color:var(--accent-fg);background:var(--accent-bg);letter-spacing:.2px;border-radius:999px;align-self:flex-start;margin-top:4px;padding:3px 10px;font-size:12px;font-weight:800}.pokemon-tags{flex-wrap:wrap;gap:6px;display:flex}.pokemon-tag{background:var(--code-bg);color:var(--text);letter-spacing:.2px;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:800}.special-tag{font-style:italic}.pokemon-tag-area{background:var(--accent-bg);color:var(--accent-fg);border:1px solid var(--accent-border)}.pokemon-tag.habitat-Bright{color:#1b5e20;background:#dcedc8}.pokemon-tag.habitat-Warm{color:#a02100;background:#ffe0b2}.pokemon-tag.habitat-Humid{color:#0d47a1;background:#bbdefb}.pokemon-tag.habitat-Cool{color:#006064;background:#b2ebf2}.pokemon-tag.habitat-Dark{color:#1a237e;background:#c5cae9}.pokemon-tag.habitat-Dry{color:#37474f;background:#eceff1}html[data-theme=dark] .pokemon-tag.habitat-Bright{color:#c5e1a5;background:#9ccc6533}html[data-theme=dark] .pokemon-tag.habitat-Warm{color:#ffcc80;background:#ffa7262e}html[data-theme=dark] .pokemon-tag.habitat-Humid{color:#90caf9;background:#42a5f533}html[data-theme=dark] .pokemon-tag.habitat-Cool{color:#80deea;background:#4fc3d933}html[data-theme=dark] .pokemon-tag.habitat-Dark{color:#b0bce4;background:#7e84c538}html[data-theme=dark] .pokemon-tag.habitat-Dry{color:#cfd8dc;background:#b0bec52e}@media (prefers-color-scheme:dark){html:not([data-theme=light]) .pokemon-tag.habitat-Bright{color:#c5e1a5;background:#9ccc6533}html:not([data-theme=light]) .pokemon-tag.habitat-Warm{color:#ffcc80;background:#ffa7262e}html:not([data-theme=light]) .pokemon-tag.habitat-Humid{color:#90caf9;background:#42a5f533}html:not([data-theme=light]) .pokemon-tag.habitat-Cool{color:#80deea;background:#4fc3d933}html:not([data-theme=light]) .pokemon-tag.habitat-Dark{color:#b0bce4;background:#7e84c538}html:not([data-theme=light]) .pokemon-tag.habitat-Dry{color:#cfd8dc;background:#b0bec52e}}.show-unallocated-btn{color:var(--accent-fg);background:var(--surface);border:2px dashed var(--accent);cursor:pointer;border-radius:999px;padding:8px 22px;font-size:13px;font-weight:700;transition:background .2s,transform .15s}.show-unallocated-btn:hover{background:var(--accent-bg);transform:translateY(-1px)}.pokemon-favorites{color:var(--text);flex-direction:column;gap:4px;margin:4px 0 0;padding:0;font-size:13px;font-weight:600;list-style:none;display:flex}.pokemon-favorites li{align-items:center;gap:8px;display:flex}.pokemon-favorites li:before{content:"";background:var(--pk-sky);border-radius:50%;flex-shrink:0;width:6px;height:6px}.compat-prompt{color:var(--text-soft);font-weight:700}.compat-view{background:var(--surface);border:3px solid var(--surface-rim);width:100%;max-width:480px;box-shadow:var(--shadow-lg);border-radius:20px;flex-direction:column;gap:16px;padding:24px;display:flex}.compat-roster{color:var(--text-h);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;font-size:17px;font-weight:800;display:flex}.compat-plus{color:var(--text-soft);font-weight:700}.compat-score{justify-content:center;align-items:baseline;gap:6px;display:flex}.score-number{letter-spacing:-.02em;font-size:64px;font-weight:900;line-height:1}.score-label{color:var(--text-soft);text-transform:uppercase;letter-spacing:.5px;font-size:20px;font-weight:800}.score-high .score-number{color:var(--pk-grass-deep)}.score-mid .score-number{color:var(--accent-fg)}.score-low .score-number{color:var(--text-soft)}.compat-pairs{flex-direction:column;gap:0;margin:0;padding:0;font-size:14px;font-weight:600;list-style:none;display:flex}.compat-pairs li{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:10px 0;display:flex}.compat-pairs li span:first-child{color:var(--text)}.pair-score{background:var(--code-bg);border-radius:999px;padding:3px 10px;font-size:13px;font-weight:800}.pair-score.score-high{color:var(--pk-grass-deep);background:#c5e1a566}.pair-score.score-mid{color:var(--accent-fg);background:var(--accent-bg)}.pair-score.score-low{color:var(--text-soft)}.shared-favorites{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:14px;display:flex}.shared-favorites-heading{text-transform:uppercase;letter-spacing:.8px;color:var(--text-soft);margin:0;font-size:12px;font-weight:800}.shared-favorites-group{align-items:baseline;gap:10px;font-size:13px;display:flex}.shared-count{color:var(--accent-fg);background:var(--accent-bg);text-align:center;border-radius:999px;flex-shrink:0;min-width:52px;padding:2px 10px;font-weight:800}.shared-list{color:var(--text-h);font-weight:600}.suggested-items{border-top:1px solid var(--border);flex-direction:column;gap:12px;padding-top:14px;display:flex}.suggested-group-label{text-transform:uppercase;letter-spacing:.6px;color:var(--text-soft);margin:0 0 6px;font-size:11px;font-weight:800}.suggested-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.suggested-list li{flex-wrap:wrap;align-items:baseline;gap:8px;font-size:13px;display:flex}.suggested-name{color:var(--text-h);font-weight:700}.suggested-groups{color:var(--text-soft);font-size:12px;font-weight:600}.mobile-only{display:none}.desktop-only{display:contents}@media (width<=768px){.mobile-only{display:block}.desktop-only{display:none}}.drawer-backdrop{z-index:10;background:#00000059;position:fixed;inset:0}.compat-drawer{z-index:11;background:var(--surface);border-top:3px solid var(--surface-rim);padding-bottom:max(env(safe-area-inset-bottom), var(--viewport-bottom-offset,0px));border-radius:24px 24px 0 0;transition:transform .25s;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 28px #00000029}.drawer-handle{cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:10px;width:100%;padding:12px 20px 14px;display:flex}.drawer-pill{background:var(--pk-sky);border-radius:3px;flex-shrink:0;width:44px;height:5px}.drawer-summary{justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.drawer-names{color:var(--text-h);text-align:left;flex:1;font-size:14px;font-weight:800}.drawer-hint{color:var(--text-soft);font-size:12px;font-style:italic;font-weight:600}.drawer-score{flex-shrink:0;font-size:24px;font-weight:900}.drawer-score.score-high{color:var(--pk-grass-deep)}.drawer-score.score-mid{color:var(--accent-fg)}.drawer-score.score-low{color:var(--text-soft)}.drawer-body{flex-direction:column;gap:16px;max-height:70vh;padding:0 20px 32px;display:flex;overflow-y:auto}.drawer-body .compat-view{max-width:100%;box-shadow:none;background:0 0;border:none;padding:0}.farms-view{flex-direction:column;gap:16px;padding:32px 32px 64px;display:flex}@media (width<=1024px){.farms-view{padding:20px 16px 48px}}.farm-sections{flex-direction:column;gap:18px;margin-top:12px;display:flex}.farm-section{background:var(--surface);border:3px solid var(--surface-rim);box-shadow:var(--shadow-lg);border-radius:20px;flex-direction:column;gap:14px;padding:18px 20px;display:flex}.farm-section-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.farm-section-title{color:var(--text-h);margin:0;font-size:18px;font-weight:800}.farm-section-count{color:var(--text-soft);font-size:12px;font-weight:700}.farm-empty{color:var(--text-soft);margin:0;font-size:14px;font-style:italic}.farm-habitats{flex-direction:column;gap:10px;display:flex}.farm-habitat-row{border:2px solid var(--border);background:var(--surface-soft);border-radius:14px;overflow:hidden}.farm-habitat-row.expanded{border-color:var(--pk-sky)}.farm-habitat-toggle{cursor:pointer;text-align:left;width:100%;color:var(--text-h);background:0 0;border:none;align-items:center;gap:12px;padding:10px 14px;font-size:14px;font-weight:700;transition:background .15s;display:flex}.farm-habitat-toggle:hover{background:color-mix(in srgb, var(--pk-yellow) 30%, transparent)}.farm-habitat-count{color:var(--text-soft);flex:1;font-size:12px;font-weight:700}.farm-habitat-chevron{color:var(--text-soft);font-size:18px;font-weight:900;line-height:1}.farm-groupings{flex-direction:column;gap:10px;padding:8px 14px 14px;display:flex}.grouping-card{background:var(--surface);border:2px solid var(--border);border-radius:14px;flex-direction:column;gap:10px;padding:12px 14px;display:flex}.grouping-card-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.grouping-score{font-variant-numeric:tabular-nums;font-size:18px;font-weight:900}.grouping-score.score-high{color:var(--pk-grass-deep)}.grouping-score.score-mid{color:var(--accent-fg)}.grouping-score.score-low{color:var(--text-soft)}.grouping-create-btn{border:2px solid var(--pk-grass);background:var(--pk-grass);color:var(--accent-text);cursor:pointer;border-radius:999px;padding:6px 16px;font-size:13px;font-weight:700;transition:opacity .2s,transform .15s}.grouping-create-btn:hover{opacity:.85;transform:translateY(-1px)}.grouping-members{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.grouping-member{flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.grouping-member .pokemon-name{color:var(--text-h);min-width:90px;font-weight:700}
