body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root[data-theme=light]{--accent-color: #ff7a59;--accent-color-2: #ffb86b;--accent-gradient: linear-gradient(135deg, var(--accent-color) 0%, var(--accent-color-2) 100%);--highlight-color: #ffd6a5;--highlight-color-2: #ff9a76;--highlight-gradient: linear-gradient(135deg, var(--highlight-color) 0%, var(--highlight-color-2) 100%);--bg-primary: #fcf6f2;--bg-secondary: #fffdfa;--bg-card: #fffdfa;--bg-card-hover: #fff7f2;--text-primary: #2b2b2b;--text-secondary: #5b5250;--text-tertiary: #7a6f6c;--border-color: #efe6e1;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .15);--navbar-bg: transparent;--navbar-text: var(--text-primary);--input-bg: rgba(255, 250, 246, .95);--input-border: rgba(0, 0, 0, .04);--input-focus-bg: #fffdfa;--input-focus-border: rgba(255, 122, 89, .3);--tag-bg: transparent;--tag-hover-bg: rgba(255, 122, 89, .08);--filter-section-bg: #fffdfa;--results-text: #6b5a57}:root[data-theme=dark]{--accent-color: #4c6ef5;--accent-color-2: #6b8cff;--accent-gradient: linear-gradient(135deg, var(--accent-color) 0%, var(--accent-color-2) 100%);--highlight-color: #f093fb;--highlight-color-2: #f5576c;--highlight-gradient: linear-gradient(135deg, var(--highlight-color) 0%, var(--highlight-color-2) 100%);--bg-primary: #0f1419;--bg-secondary: #1a1f2e;--bg-card: #252d3d;--bg-card-hover: #2d3548;--text-primary: #e2e8f0;--text-secondary: #cbd5e0;--text-tertiary: #a0aec0;--border-color: #2d3748;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--navbar-bg: transparent;--navbar-text: var(--text-primary);--input-bg: rgba(37, 45, 61, .95);--input-border: rgba(255, 255, 255, .1);--input-focus-bg: #2d3548;--input-focus-border: rgba(102, 126, 234, .5);--tag-bg: transparent;--tag-hover-bg: rgba(102, 126, 234, .2);--filter-section-bg: #1a1f2e;--results-text: #a0aec0}.App{text-align:center;background-color:var(--bg-primary);min-height:100vh;transition:background-color .3s ease}.App-header{background:var(--navbar-bg);padding:1.5rem 2rem;box-shadow:var(--shadow-md);color:var(--navbar-text);position:sticky;top:0;z-index:100;transition:all .3s ease}.navbar-content{width:100%;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;box-sizing:border-box}.App-header h1{font-size:2rem;margin:0;font-weight:700;text-shadow:2px 2px 4px rgba(0,0,0,.2);white-space:nowrap}.navbar-actions{display:flex;align-items:center;gap:1rem;flex:1;max-width:600px}.navbar-search{flex:1;padding:12px 20px;border-radius:25px;border:2px solid var(--input-border);background:var(--input-bg);color:var(--text-primary);font-size:15px;transition:all .3s ease;box-shadow:var(--shadow-sm)}.navbar-search:focus{outline:none;border-color:var(--input-focus-border);background:var(--input-focus-bg);box-shadow:var(--shadow-md);transform:translateY(-2px)}.navbar-search::placeholder{color:var(--text-tertiary)}.theme-toggle{width:48px;height:48px;border-radius:50%;border:2px solid rgba(255,255,255,.3);background:#ffffff26;font-size:1.5rem;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.theme-toggle:hover{background:#ffffff40;transform:rotate(20deg) scale(1.1);border-color:#ffffff80}.theme-toggle:active{transform:rotate(20deg) scale(.95)}@media(max-width:768px){.App-header{padding:1rem}.navbar-content{flex-direction:column;gap:1rem;align-items:stretch}.App-header h1{font-size:1.5rem;text-align:center}.navbar-actions{max-width:100%;flex-direction:row}.navbar-search{flex:1}.theme-toggle{width:44px;height:44px;font-size:1.3rem}}@media(max-width:480px){.navbar-content{gap:.75rem}.App-header h1{font-size:1.3rem}.navbar-search{padding:10px 16px;font-size:14px}}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pokedex{background-color:var(--bg-primary);min-height:100vh;padding-bottom:2rem;padding-left:1.25rem;padding-right:1.25rem;box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}.pokemon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;padding:1rem;margin:0;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.pokemon-card{display:flex;flex-direction:column;align-items:center;background-color:var(--bg-card);padding:1rem;border-radius:12px;box-shadow:var(--shadow-sm);cursor:pointer;transition:all .2s ease;border:1px solid var(--border-color)}.pokemon-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);background-color:var(--bg-card-hover)}.pokemon-card img{width:100px;height:100px;object-fit:contain}.pokemon-card p{margin-top:1rem;font-weight:700;text-transform:capitalize;color:var(--text-primary)}.card-top{position:relative;width:100%;display:flex;align-items:center;justify-content:center}.fav-btn{position:absolute;top:6px;right:8px;background:#0000000f;border:1px solid var(--border-color);width:34px;height:34px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem;transition:transform .12s ease,background .12s ease}.fav-btn.active{background:var(--accent-color);color:#fff;border-color:transparent}.favorites-section{padding:0 1.25rem;margin:.5rem 0 1rem}.favorites-list{display:flex;gap:.75rem;overflow-x:auto;padding-bottom:.5rem}.favorite-chip{display:inline-flex;align-items:center;gap:.5rem;background:var(--bg-card);padding:.35rem .6rem;border-radius:999px;border:1px solid var(--border-color);cursor:pointer}.favorite-chip img{width:36px;height:36px;object-fit:contain}.filter-section{margin:1rem 0;width:100%}.filter-section:first-of-type{margin-top:1.5rem}.filter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.filter-title{font-size:1rem;font-weight:700;color:var(--text-primary);margin:0}.clear-filters-btn{background:none;border:none;color:var(--accent-color);font-weight:700;cursor:pointer;padding:.25rem .5rem;border-radius:6px;transition:all .12s ease}.clear-filters-btn:hover{opacity:.9}.tag-container{display:flex;gap:.6rem;overflow-x:auto;padding:.4rem 0;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;max-width:100%;align-items:center}.tag-container::-webkit-scrollbar{height:6px}.tag-container::-webkit-scrollbar-track{background:transparent}.tag-container::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:10px}.tag-container::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.type-block{display:inline-flex;align-items:center;gap:.6rem;flex-shrink:0;padding:.25rem .5rem;border-radius:10px;border:1.5px solid var(--border-color);background:transparent;cursor:pointer;transition:transform .12s ease,background .12s ease;white-space:nowrap;height:36px}.type-block:hover{transform:translateY(-2px)}.type-block .type-swatch{width:22px;height:22px;border-radius:6px;border:1.5px solid var(--border-color);display:inline-block;box-sizing:border-box}.type-block.vertical{width:72px;height:auto;padding:8px 6px;flex-direction:column;justify-content:center;gap:6px;border-radius:10px}.type-swatch-outer{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1.5px solid var(--border-color);box-sizing:border-box}.type-swatch-outer img.type-icon{filter:drop-shadow(0 1px 1px rgba(0,0,0,.12))}.type-block.vertical .type-label{font-size:.78rem;font-weight:700;text-align:center;display:block}.type-swatch img.type-icon,.type-swatch-outer img.type-icon{width:24px;height:24px;max-width:100%;max-height:100%;display:block;object-fit:contain}.type-block .type-label{font-size:.85rem;font-weight:600;text-transform:capitalize;color:var(--text-primary)}.type-block.active{background:linear-gradient(90deg,var(--accent-gradient));color:#fff;border-color:transparent}.type-block.active .type-label{color:#fff}.tag-scroll-wrapper{position:relative;display:flex;align-items:center}.tag-scroll-wrapper .scroll-btn{background:var(--bg-card);border:1px solid var(--border-color);width:36px;height:36px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;margin:0 8px;box-shadow:var(--shadow-sm);transition:transform .12s ease,opacity .12s ease;flex-shrink:0}.tag-scroll-wrapper .scroll-btn.disabled{opacity:.45;cursor:default}.tag-scroll-wrapper .scroll-btn:hover:not(.disabled){transform:translateY(-2px)}.tag-container::-webkit-scrollbar{height:0}.tag-container{-ms-overflow-style:none;scrollbar-width:none}.generation-tag{border-color:var(--accent-color);color:var(--accent-color)}.generation-tag.active{background:var(--accent-gradient)!important;border-color:var(--accent-color)}.results-info{width:100%;margin:1rem 0;padding:0 1.25rem}.results-info p{color:var(--results-text);font-size:.95rem;font-weight:500}.generation-group{width:100%;margin:2rem 0;padding:0 1.25rem}.generation-header{display:flex;justify-content:space-between;align-items:center;background:var(--filter-section-bg);padding:.9rem 1rem;border-radius:12px;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-sm);margin-bottom:1rem;border-left:6px solid var(--accent-color)}.generation-header:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.generation-title{color:var(--text-primary);font-size:1.25rem;font-weight:700;margin:0;display:flex;align-items:center;gap:.75rem}.pokemon-count{font-size:1rem;font-weight:500;opacity:.9}.collapse-toggle{background:transparent;border:1px solid var(--border-color);color:var(--text-primary);border-radius:8px;width:40px;height:40px;font-size:1rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.collapse-toggle:hover{background:#ffffff4d;transform:scale(1.1)}.loading{text-align:center;padding:2rem;font-size:1.1rem;color:var(--accent-color);font-weight:600}.filters{display:none}@media(max-width:768px){.search-input{width:90%;margin:1rem auto;padding:12px 18px;font-size:14px}.filter-section{padding:.75rem}.filter-title{font-size:1rem}.tag-filter{padding:.4rem .8rem;font-size:.8rem}.tag-container{gap:.4rem;flex-wrap:nowrap}.generation-group{margin:1.5rem auto;padding:0 .5rem}.generation-header{padding:1rem;border-radius:10px}.generation-title{font-size:1.1rem;flex-direction:column;align-items:flex-start;gap:.25rem}.pokemon-count{font-size:.85rem}.collapse-toggle{width:36px;height:36px;font-size:.9rem}.pokemon-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem;padding:.75rem}}@media(max-width:480px){.generation-title{font-size:1rem}.pokemon-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem}}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.pokemon-card{animation:fadeIn .3s ease}.modal{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000;animation:fadeIn .2s ease-in;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}[data-theme=dark] .modal{background:#000000d9}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-content{background:var(--bg-secondary);border-radius:20px;padding:0;width:95%;max-width:650px;max-height:85vh;box-shadow:var(--shadow-lg);overflow:hidden;display:flex;flex-direction:column;animation:slideUp .3s ease-out;position:relative;border:1px solid var(--border-color)}.close-button{position:absolute;top:1rem;right:1rem;background:var(--bg-card);border:2px solid var(--border-color);border-radius:50%;width:36px;height:36px;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:10;box-shadow:var(--shadow-sm);color:var(--text-primary)}.close-button:hover{background:var(--bg-card-hover);transform:rotate(90deg);box-shadow:var(--shadow-md)}.detail-header{background:var(--accent-gradient);padding:2rem 1.5rem 1.5rem;color:#fff}.header-content{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.pokemon-name{margin:0;font-size:2rem;font-weight:700;text-transform:capitalize;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.pokemon-id{font-size:1.5rem;font-weight:600;opacity:.9;background:#fff3;padding:.25rem .75rem;border-radius:12px}.pokemon-types{display:flex;gap:.5rem;flex-wrap:wrap}.type-badge{display:inline-block;padding:.4rem 1rem;border-radius:20px;font-size:.9rem;font-weight:600;text-transform:capitalize;color:#fff;box-shadow:0 2px 8px #0003}.detail-body{padding:1.5rem;overflow-y:auto;flex:1;background:var(--bg-primary)}.pokemon-image-container{text-align:center;margin-bottom:1.5rem;background:var(--bg-card);padding:1rem;border-radius:16px;box-shadow:var(--shadow-sm)}.pokemon-image-container{text-align:center;margin-bottom:1.5rem}.pokemon-image{width:200px;height:200px;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(0,0,0,.15));transition:transform .3s ease}.pokemon-image:hover{transform:scale(1.1)}.total-stats{margin-top:.5rem;font-size:1.1rem;font-weight:600;color:var(--accent-color)}.tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid var(--border-color);overflow-x:auto;padding-bottom:.5rem}.tab{background:none;border:none;padding:.6rem 1rem;font-size:.9rem;font-weight:600;cursor:pointer;border-radius:8px 8px 0 0;transition:all .2s ease;color:var(--text-secondary);white-space:nowrap}.tab:hover{background:var(--tag-hover-bg);color:var(--accent-color)}.tab.active{background:var(--accent-gradient);color:#fff;box-shadow:0 -2px 8px #4c6ef52e}.tab-content{min-height:200px;animation:fadeIn .3s ease-in}.stats-section{display:flex;flex-direction:column;gap:1rem}.stat-row{display:grid;grid-template-columns:140px 1fr 50px;align-items:center;gap:1rem}.stat-name{font-weight:600;text-transform:capitalize;color:var(--text-primary);font-size:.9rem}.stat-bar-container{background:var(--border-color);border-radius:10px;height:20px;overflow:hidden;box-shadow:inset 0 2px 4px #0000001a}.stat-bar{height:100%;border-radius:10px;transition:width .5s ease,background-color .3s ease;box-shadow:0 2px 4px #0000001a}.stat-value{font-weight:700;font-size:1rem;color:var(--text-primary);text-align:right}.abilities-section{display:flex;flex-direction:column;gap:.75rem}.ability-item{background:var(--bg-card);padding:1rem;border-radius:12px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-sm);transition:transform .2s ease;border:1px solid var(--border-color)}.ability-item:hover{transform:translate(5px)}.ability-name{font-weight:600;text-transform:capitalize;font-size:1rem;color:var(--text-primary)}.hidden-badge{background:var(--highlight-gradient);color:#fff;padding:.3rem .8rem;border-radius:12px;font-size:.8rem;font-weight:600}.evolution-section{padding:1rem 0}.evolution-chain{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:1rem}.evolution-stage{background:var(--bg-card);color:var(--text-primary);padding:1.2rem;border-radius:12px;text-align:center;min-width:110px;box-shadow:var(--shadow-sm);transition:transform .15s ease;border:1px solid var(--border-color)}.evolution-stage:hover{transform:scale(1.05)}.evolution-name{font-weight:700;font-size:1.1rem;text-transform:capitalize;margin-bottom:.5rem}.evolution-stage-label{font-size:.85rem;opacity:.9}.evolution-arrow{font-size:2rem;color:var(--accent-color);font-weight:700}.loading-spinner,.no-evolution{text-align:center;padding:2rem;color:var(--text-secondary);font-style:italic}.moves-section{max-height:400px;overflow-y:auto}.moves-list{display:grid;gap:.5rem}.move-item{background:var(--bg-card);padding:.75rem 1rem;border-radius:10px;display:flex;justify-content:space-between;align-items:center;transition:all .2s ease;border:1px solid var(--border-color);border-left:4px solid var(--accent-color)}.move-item:hover{background:var(--bg-card-hover);transform:translate(5px)}.move-name{font-weight:600;text-transform:capitalize;color:var(--text-primary)}.move-learn-method{font-size:.85rem;color:var(--text-secondary);text-transform:capitalize;background:var(--border-color);padding:.25rem .75rem;border-radius:8px}.moves-note{text-align:center;margin-top:1rem;padding:.75rem;background:#fff3cd;border-radius:8px;color:#856404;font-size:.9rem}[data-theme=dark] .moves-note{background:#ffc10733;color:#ffc107}.effectiveness-section{display:flex;flex-direction:column;gap:1.5rem}.effectiveness-group{background:var(--bg-card);padding:1.25rem;border-radius:12px;box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.effectiveness-title{margin:0 0 1rem;font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.effectiveness-title.weak{color:#dc3545}.effectiveness-title.resistant{color:#28a745}.effectiveness-title.immune{color:#6c757d}.type-pills{display:flex;flex-wrap:wrap;gap:.5rem}.type-pill{padding:.5rem 1rem;border-radius:20px;font-size:.9rem;font-weight:600;text-transform:capitalize;color:#fff;box-shadow:0 2px 6px #0003;transition:transform .2s ease}.type-pill:hover{transform:translateY(-2px);box-shadow:0 4px 10px #0000004d}.detail-body::-webkit-scrollbar,.moves-list::-webkit-scrollbar{width:8px}.detail-body::-webkit-scrollbar-track,.moves-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.detail-body::-webkit-scrollbar-thumb,.moves-list::-webkit-scrollbar-thumb{background:var(--accent-gradient);border-radius:10px}.detail-body::-webkit-scrollbar-thumb:hover,.moves-list::-webkit-scrollbar-thumb:hover{background:var(--accent-gradient)}@media(max-width:600px){.modal-content{width:100%;max-height:95vh;border-radius:20px 20px 0 0}.pokemon-name{font-size:1.5rem}.pokemon-id{font-size:1.2rem}.tabs{gap:.25rem}.tab{padding:.5rem .75rem;font-size:.8rem}.stat-row{grid-template-columns:100px 1fr 40px;gap:.5rem}.stat-name{font-size:.8rem}.evolution-chain{flex-direction:column}.evolution-arrow{transform:rotate(90deg)}}.install-prompt{position:fixed;bottom:20px;left:20px;right:20px;z-index:1000;max-width:420px;margin:0 auto;animation:slideUp .4s cubic-bezier(.16,1,.3,1)}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideUpMobile{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.install-prompt-content{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:16px;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.install-prompt-icon{flex-shrink:0;width:56px;height:56px;display:flex;align-items:center;justify-content:center}.install-prompt-icon img{width:100%;height:100%;object-fit:contain;border-radius:12px;box-shadow:0 2px 8px #0000001a}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.install-prompt-header{display:flex;align-items:center;gap:16px}.install-prompt-text{flex:1;min-width:0}.install-prompt-text h3{margin:0 0 2px;font-size:1rem;font-weight:600;color:var(--text-primary)}.install-prompt-text p{margin:0;font-size:.875rem;color:var(--text-secondary);line-height:1.3}.install-prompt-actions{display:flex;gap:8px;flex-shrink:0}.install-prompt-button{padding:8px 16px;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.install-button{background:var(--accent-gradient);color:#fff;box-shadow:0 2px 6px #ff7a594d}.install-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ff7a5966}.install-button:active{transform:translateY(0)}.dismiss-button{background:transparent;color:var(--text-secondary);padding:8px 12px}.dismiss-button:hover{background:var(--bg-card-hover);color:var(--text-primary)}@media(max-width:768px){.install-prompt{bottom:0;left:0;right:0;max-width:100%;animation:slideUpMobile .4s cubic-bezier(.16,1,.3,1)}.install-prompt-content{border-radius:16px 16px 0 0;padding:20px;border-bottom:none}.install-prompt-icon{width:60px;height:60px}.install-prompt-text h3{font-size:1.05rem}.install-prompt-text p{font-size:.875rem}.install-prompt-actions{margin-top:4px}.install-prompt-button{padding:10px 20px;font-size:.9rem}.dismiss-button{padding:10px 16px}}@media(max-width:480px){.install-prompt-content{padding:18px 16px}.install-prompt-icon{width:56px;height:56px}.install-prompt-text h3{font-size:1rem}.install-prompt-text p{font-size:.85rem}}
