:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, 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}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}*{box-sizing:border-box}.app{min-height:100vh;padding:20px}header{text-align:center;margin-bottom:24px}header h1{height:40px;margin:0 0 8px}header h1 .logo{object-fit:contain;height:100%;animation:none}@keyframes gradient-shift{0%,to{background-position:0%}50%{background-position:100%}}.logo{margin:0 auto;display:block}header p{color:var(--text);margin:0}header .pokemon-count{color:var(--accent);margin-top:8px;font-size:.9rem}.controls{justify-content:center;gap:16px;margin-bottom:24px;display:flex}.clear-btn{color:#fff;cursor:pointer;background:#e74c3c;border:none;border-radius:8px;padding:8px 16px;font-size:14px;transition:background .2s}.clear-btn:hover{background:#c0392b}.today-btn{color:#fff;cursor:pointer;background:#3498db;border:none;border-radius:8px;padding:8px 16px;font-size:14px;text-decoration:none;transition:background .2s}.today-btn:hover{background:#2980b9}.main-content{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:24px;display:flex}.grid-wrapper{flex-direction:column;align-items:center;display:flex}.type-labels-top{gap:4px;margin-bottom:4px;display:flex}.corner-spacer{flex-direction:column;justify-content:center;align-items:center;width:100px;display:flex}.corner-label{color:var(--text);text-transform:uppercase;letter-spacing:.5px;font-size:10px}.constraint-selector{align-items:stretch;width:102px;display:flex}.constraint-select{border:2px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);cursor:pointer;text-align:center;border-radius:6px;padding:6px 8px;font-size:12px}.constraint-select:focus{border-color:var(--accent);outline:none}.constraint-select optgroup{font-style:normal;font-weight:600}.constraint-display{border:2px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);text-align:center;border-radius:6px;justify-content:center;align-items:center;padding:6px 8px;font-size:12px;font-weight:500;display:flex}.grid-with-row-labels{gap:4px;display:flex}.type-labels-left{flex-direction:column;gap:4px;display:flex}.type-labels-left .constraint-selector{width:100px;height:102px}.type-labels-left .constraint-select,.type-labels-left .constraint-display{height:100%}.grid{background:#2c3e50;border:3px solid #2c3e50;border-radius:4px;flex-direction:column;gap:4px;display:flex}.row{gap:4px;display:flex}.cell{cursor:pointer;background:#ecf0f1;border:2px solid #0000;border-radius:4px;flex-direction:column;justify-content:flex-end;align-items:center;width:100px;height:100px;transition:all .15s;display:flex;position:relative;overflow:hidden}.cell .pokemon-sprite{object-fit:contain;z-index:0;width:100%;height:100%;position:absolute;top:0;left:0}.cell:hover{background:#d5dbdb}.cell.selected{background:#3498db;box-shadow:0 0 0 3px #2980b9}.cell.filled{background:#fff}.cell.filled:hover{background:#fee}.cell.constrained{border-color:var(--constraint-color,#bdc3c7)}.cell-count{justify-content:center;align-items:center;height:100%;display:flex}.cell-content{text-align:center;z-index:1;background:#808080cc;border-radius:6px;flex-direction:column;align-items:center;gap:1px;margin:4px;padding:4px 8px;display:inline-flex;position:relative}.pokemon-id{color:#7f8c8d;font-size:10px;font-weight:600}.pokemon-name{color:#2c3e50;font-size:12px;font-weight:600;line-height:1.1}.pokemon-types{flex-wrap:wrap;justify-content:center;gap:2px;display:flex}.type-badge,.region-badge,.stage-badge,.form-badge{color:#fff;text-transform:uppercase;text-shadow:0 1px 1px #0000004d;border-radius:3px;padding:1px 4px;font-size:8px;font-weight:600}.evolution-badge{color:#fff;text-transform:uppercase;text-shadow:0 1px 1px #0000004d;border-radius:3px;padding:1px 4px;font-size:7px;font-weight:600}.class-badge{color:#fff;text-transform:uppercase;text-shadow:0 1px 1px #0000004d;border-radius:3px;padding:1px 4px;font-size:8px;font-weight:600}.class-badge-small{color:#fff;text-transform:uppercase;border-radius:3px;flex-shrink:0;padding:1px 4px;font-size:8px;font-weight:600}.possible-count{color:#95a5a6;font-size:26px;font-weight:700}.suggestions-panel{background:var(--bg);border:1px solid var(--border);border-radius:12px;min-width:300px;max-width:340px;max-height:500px;padding:16px;overflow-y:auto}.suggestions-panel h3{color:var(--text-h);flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;font-size:1rem;display:flex}.constraint-tag{color:#fff;border-radius:4px;padding:3px 8px;font-size:10px;font-weight:600}.suggestions-panel h3 .count{color:var(--text);font-weight:400}.pokemon-list{flex-direction:column;gap:8px;display:flex}.pokemon-item{border:1px solid var(--border);background:var(--bg);cursor:pointer;text-align:left;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;transition:all .15s;display:flex}.pokemon-item .pokemon-sprite{object-fit:contain;width:40px;height:40px}.pokemon-item .pokemon-sprite-placeholder{background:var(--code-bg);border-radius:50%;flex-shrink:0;width:40px;height:40px}.pokemon-item:hover{background:var(--accent-bg);border-color:var(--accent-border)}.pokemon-item .pokemon-id{flex-shrink:0;min-width:45px}.pokemon-item .pokemon-name{flex-grow:1;min-width:80px}.pokemon-item .pokemon-types{flex-shrink:0}.region-badge-small{color:#fff;text-transform:uppercase;border-radius:3px;flex-shrink:0;padding:1px 4px;font-size:8px;font-weight:600}.no-pokemon{color:#e74c3c;text-align:center;padding:20px}@media (width<=768px){.cell{width:80px;height:80px}.corner-spacer,.constraint-selector{width:80px}.type-labels-left .constraint-selector{height:80px}.pokemon-name{font-size:10px}.type-badge{font-size:7px}.possible-count{font-size:20px}.main-content{flex-direction:column;align-items:center}.suggestions-panel{width:100%;max-width:320px;max-height:350px}}footer{text-align:center;color:#666;border-top:1px solid #eee;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:32px;padding-top:16px;display:flex}footer a{color:#4ecdc4;align-items:center;gap:6px;text-decoration:none;display:inline-flex}footer a:hover{text-decoration:underline}footer span{margin:0 8px}.app>header{text-align:center;max-width:760px;margin:0 auto 24px}.app>header .logo{width:100%;max-width:320px;height:auto;margin:0 auto 12px;display:block}.app>header h1{color:#222;margin:0 0 12px;font-size:clamp(2rem,5vw,2.8rem);font-weight:700;line-height:1.1}.app>header p{color:#6a6477;max-width:700px;margin:0 auto 12px;font-size:1.05rem;line-height:1.65}.app>header p.lead{font-size:1.12rem}.app .content-section{max-width:760px;margin:32px auto 0;padding:0 4px}.app .content-section h2{color:#222;text-align:center;margin:0 0 12px;font-size:clamp(1.6rem,4vw,2rem);font-weight:700;line-height:1.2}.app .content-section h3{color:#222;margin:24px 0 8px;font-size:1.1rem;font-weight:700;line-height:1.35}.app .content-section p{color:#6a6477;margin:0 0 14px;font-size:1rem;line-height:1.7}@media (width<=600px){.app>header .logo{max-width:280px;margin-bottom:10px}.app>header h1{margin-bottom:10px;font-size:2rem}.app>header p,.app .content-section p{font-size:.98rem;line-height:1.65}.app .content-section h2{font-size:1.7rem}}
