:root[data-theme=dark]{--bg-primary: #1a1a2e;--bg-secondary: #16213e;--bg-card: #0f3460;--bg-card-hover: #1a4a7a;--text-primary: #e2e8f0;--text-secondary: #94a3b8;--border: #2d3748;--accent: #6390f0;--drawer-bg: #0d1117;--topbar-bg: rgba(26, 26, 46, .85);--shadow: 0 4px 20px rgba(0, 0, 0, .5);--input-bg: #0f3460;--dropdown-bg: #16213e;--dropdown-hover: #0f3460}:root[data-theme=light]{--bg-primary: #f0f4ff;--bg-secondary: #e8eeff;--bg-card: #ffffff;--bg-card-hover: #f0f4ff;--text-primary: #1a202c;--text-secondary: #4a5568;--border: #e2e8f0;--accent: #6390f0;--drawer-bg: #ffffff;--topbar-bg: rgba(240, 244, 255, .85);--shadow: 0 4px 20px rgba(0, 0, 0, .15);--input-bg: #ffffff;--dropdown-bg: #ffffff;--dropdown-hover: #f0f4ff}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,sans-serif;background:var(--bg-primary);color:var(--text-primary);transition:background .3s,color .3s;min-height:100vh;line-height:1.5}button{cursor:pointer;border:none;background:none;font-family:inherit;color:inherit}a{text-decoration:none;color:inherit}ul{list-style:none}img{display:block}#root{min-height:100vh}.layout{min-height:100vh;display:flex;flex-direction:column}.layout__main{padding-top:60px;flex:1;overflow-x:hidden}.topbar{position:fixed;top:0;left:0;right:0;height:60px;z-index:100;background:var(--topbar-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 16px;box-shadow:var(--shadow);transition:background .3s,border-color .3s}.topbar__menu-btn,.topbar__theme-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:8px;color:var(--text-primary);transition:background .2s,color .2s;border:none;background:none;padding:0}.topbar__menu-btn:hover,.topbar__theme-btn:hover{background:var(--border)}.topbar__right{display:flex;align-items:center;gap:4px}.topbar__sign-in{display:flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:8px;background:var(--accent);color:#fff;font-size:.875rem;font-weight:600;border:none;cursor:pointer;transition:opacity .15s}.topbar__sign-in:hover{opacity:.85}@media (max-width: 360px){.topbar__sign-in-text{display:none}.topbar__sign-in{width:40px;height:40px;padding:0;justify-content:center}}.topbar__user-wrap{position:relative}.topbar__avatar{width:34px;height:34px;border-radius:50%;background:var(--accent);color:#fff;font-size:.875rem;font-weight:700;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .15s}.topbar__avatar:hover{opacity:.85}.topbar__user-menu{position:absolute;top:calc(100% + 8px);right:0;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:8px;min-width:180px;box-shadow:0 8px 24px #00000040;z-index:300;display:flex;flex-direction:column;gap:4px}.topbar__user-email{font-size:.78rem;color:var(--text-secondary);padding:4px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar__sign-out{display:flex;align-items:center;gap:8px;padding:8px;border-radius:6px;font-size:.85rem;color:var(--text-primary);background:none;border:none;cursor:pointer;width:100%;transition:background .15s}.topbar__sign-out:hover{background:var(--bg-secondary)}.topbar__brand{display:flex;align-items:center;gap:10px}.topbar__title{font-size:1.3rem;font-weight:800;letter-spacing:-.5px;color:var(--accent)}.topbar__pokeball,.drawer__pokeball{width:32px;height:32px;border-radius:50%;background:linear-gradient(180deg,#ef4444 50%,#ffffff 50%);border:2px solid #333;position:relative;overflow:hidden;flex-shrink:0}.topbar__pokeball-line,.drawer__pokeball-line{position:absolute;top:50%;left:0;right:0;height:2px;background:#333;transform:translateY(-50%)}.topbar__pokeball-btn,.drawer__pokeball-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid #333;z-index:1}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.5);z-index:199}.drawer{position:fixed;top:0;left:0;bottom:0;width:280px;z-index:200;background:var(--drawer-bg);border-right:1px solid var(--border);display:flex;flex-direction:column;box-shadow:4px 0 24px #0000004d;transition:background .3s,border-color .3s}.drawer__header{padding:20px;border-bottom:1px solid var(--border)}.drawer__logo{display:flex;align-items:center;gap:12px}.drawer__pokeball{width:40px;height:40px}.drawer__title{font-size:1.5rem;font-weight:800;color:var(--accent);letter-spacing:-.5px}.drawer__nav{flex:1;padding:16px 12px;display:flex;flex-direction:column;gap:4px}.drawer__link{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:10px;font-size:.95rem;font-weight:500;color:var(--text-secondary);transition:background .2s,color .2s}.drawer__link:hover{background:var(--border);color:var(--text-primary)}.drawer__link--active{background:var(--accent);color:#fff}.drawer__link--active:hover{background:var(--accent);color:#fff;opacity:.9}.drawer__footer{padding:16px;border-top:1px solid var(--border)}.drawer__theme-toggle{display:flex;align-items:center;gap:10px;width:100%;padding:10px 16px;border-radius:10px;font-size:.9rem;color:var(--text-secondary);transition:background .2s,color .2s;border:none;background:none}.drawer__theme-toggle:hover{background:var(--border);color:var(--text-primary)}.page{max-width:1100px;margin:0 auto;padding:32px 20px 60px}.page__header{margin-bottom:32px}.page__title{font-size:1.75rem;font-weight:800;color:var(--text-primary);margin-bottom:6px;letter-spacing:-.5px}.page__subtitle{color:var(--text-secondary);font-size:.95rem}.type-badge{display:inline-flex;align-items:center;gap:4px;border-radius:20px;color:#fff;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.3);letter-spacing:.5px;white-space:nowrap;line-height:1}.type-badge--sm{font-size:.65rem;padding:4px 8px}.type-badge--md{font-size:.75rem;padding:6px 12px}.type-badge--lg{font-size:.8rem;padding:6px 10px}.type-badge__emoji{font-size:1em;line-height:1}.type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px 10px;margin-bottom:40px;justify-items:center}@media (min-width: 480px){.type-grid{grid-template-columns:repeat(4,1fr)}}@media (min-width: 768px){.type-grid{grid-template-columns:repeat(6,1fr)}}.type-grid__cell{display:flex;flex-direction:column;align-items:center;gap:8px}.type-grid__card{border-radius:50%;width:80px;height:80px;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;padding:0;flex-shrink:0}.type-grid__card--dimmed{opacity:.4}.type-grid__icon{width:55%;height:55%;object-fit:contain}.type-grid__label{font-size:.6rem;font-weight:700;color:var(--text-primary);letter-spacing:.8px;text-align:center;white-space:nowrap}.matchup-display{margin-top:8px}.matchup-display__selected-types{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px;align-items:center}.matchup-display__panels{display:grid;grid-template-columns:1fr;gap:20px}@media (min-width: 768px){.matchup-display__panels{grid-template-columns:1fr 1fr}}.matchup-display__panel{background:var(--bg-card);border-radius:16px;border:1px solid var(--border);padding:20px;box-shadow:var(--shadow);transition:background .3s,border-color .3s}.matchup-section__title{font-size:1rem;font-weight:700;color:var(--text-primary);margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--border)}.matchup-section__content{display:flex;flex-direction:column;gap:14px}.matchup-group{display:flex;flex-direction:column;gap:8px}.matchup-group__header{display:flex;align-items:center;justify-content:space-between}.matchup-group__label{font-size:.78rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.matchup-group__multiplier{font-size:.85rem;font-weight:800;padding:2px 8px;border-radius:6px;min-width:36px;text-align:center}.matchup-group__multiplier--quad{background:rgba(239,68,68,.15);color:#ef4444}.matchup-group__multiplier--double{background:rgba(249,115,22,.15);color:#f97316}.matchup-group__multiplier--half{background:rgba(59,130,246,.15);color:#3b82f6}.matchup-group__multiplier--quarter{background:rgba(99,102,241,.15);color:#6366f1}.matchup-group__multiplier--immune{background:rgba(100,116,139,.15);color:#64748b}.matchup-group__badges{display:flex;flex-wrap:wrap;gap:6px;overflow:hidden}.matchup-group--neutral .matchup-group__neutral-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 10px;background:var(--bg-secondary);border-radius:8px;font-size:.78rem;color:var(--text-secondary);transition:background .2s;border:1px solid var(--border);cursor:pointer}.matchup-group--neutral .matchup-group__neutral-toggle:hover{background:var(--border);color:var(--text-primary)}.matchup-group__neutral-count{font-weight:600}.pokemon-search{position:relative;max-width:500px;margin-bottom:32px}.pokemon-search__input-wrapper{position:relative;display:flex;align-items:center}.pokemon-search__icon{position:absolute;left:14px;color:var(--text-secondary);pointer-events:none;z-index:1}.pokemon-search__input{width:100%;padding:14px 44px;background:var(--input-bg);border:2px solid var(--border);border-radius:12px;font-size:1rem;color:var(--text-primary);outline:none;transition:border-color .2s,background .3s;font-family:inherit}.pokemon-search__input:focus{border-color:var(--accent)}.pokemon-search__input::placeholder{color:var(--text-secondary)}.pokemon-search__clear{position:absolute;right:14px;font-size:1.2rem;color:var(--text-secondary);width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s;line-height:1;padding:0;border:none;background:none;cursor:pointer}.pokemon-search__clear:hover{background:var(--border);color:var(--text-primary)}.pokemon-search__dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--dropdown-bg);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);max-height:320px;overflow-y:auto;z-index:50;padding:4px}.pokemon-search__item{display:flex;align-items:center;gap:12px;padding:10px 14px;cursor:pointer;transition:background .15s;border-radius:8px}.pokemon-search__item:hover,.pokemon-search__item--active{background:var(--dropdown-hover)}.pokemon-search__sprite{width:40px;height:40px;object-fit:contain;image-rendering:pixelated;flex-shrink:0}.pokemon-search__name{font-weight:600;font-size:.9rem;color:var(--text-primary);text-transform:capitalize}.pokemon-card{margin-top:8px}.pokemon-card--loading,.pokemon-card--error{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px;color:var(--text-secondary);background:var(--bg-card);border-radius:16px;border:1px solid var(--border);margin-bottom:24px}.pokemon-card__spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.pokemon-card__identity{display:flex;align-items:center;gap:24px;background:var(--bg-card);border-radius:16px;border:1px solid var(--border);padding:24px;margin-bottom:24px;box-shadow:var(--shadow);transition:background .3s,border-color .3s}.pokemon-card__sprite{width:120px;height:120px;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(0,0,0,.2));flex-shrink:0}.pokemon-card__info{display:flex;flex-direction:column;gap:10px}.pokemon-card__name{font-size:1.8rem;font-weight:800;color:var(--text-primary);text-transform:capitalize;letter-spacing:-.5px}.pokemon-card__types{display:flex;gap:8px;flex-wrap:wrap}.toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%);z-index:999;background:#1e293b;color:#f1f5f9;padding:12px 20px;border-radius:12px;display:flex;align-items:center;gap:10px;font-size:.9rem;font-weight:500;box-shadow:0 8px 32px #0006;white-space:nowrap;border:1px solid rgba(255,255,255,.1);pointer-events:none}.toast__icon{font-size:1.1rem}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}@media (max-width: 480px){.page__title{font-size:1.4rem}.pokemon-card__identity{flex-direction:column;text-align:center}.pokemon-card__types{justify-content:center}.pokemon-card__name{font-size:1.5rem}}.battle-slots{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:start;margin-bottom:32px}.battle-slots__vs{display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:900;color:var(--text-secondary);padding-top:72px;letter-spacing:2px}@media (max-width: 640px){.battle-slots{grid-template-columns:1fr}.battle-slots__vs{padding-top:0;text-align:center}}.pokemon-slot__label{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);margin-bottom:10px}.pokemon-slot .pokemon-search{max-width:100%;margin-bottom:12px}.pokemon-slot__card{background:var(--bg-card);border-radius:16px;border:1px solid var(--border);padding:20px;display:flex;flex-direction:column;align-items:center;gap:10px;box-shadow:var(--shadow);transition:background .3s,border-color .3s}.pokemon-slot__sprite{width:110px;height:110px;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(0,0,0,.2))}.pokemon-slot__info{display:flex;flex-direction:column;align-items:center;gap:6px}.pokemon-slot__name{font-size:1.1rem;font-weight:800;text-transform:capitalize;color:var(--text-primary)}.pokemon-slot__types{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.pokemon-slot__loading{display:flex;justify-content:center;padding:32px 0}.battle-result__section{background:var(--bg-card);border-radius:16px;border:1px solid var(--border);padding:24px;margin-bottom:20px;box-shadow:var(--shadow);transition:background .3s,border-color .3s}.battle-result__columns{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}@media (max-width: 640px){.battle-result__columns{grid-template-columns:1fr}}.battle-result__panel{background:var(--bg-card);border-radius:16px;border:1px solid var(--border);padding:20px;box-shadow:var(--shadow);transition:background .3s,border-color .3s}.battle-result__panel-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--border)}.battle-result__descriptions{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}@media (max-width: 640px){.battle-result__descriptions{grid-template-columns:1fr}}.advantage-bar__names{display:flex;justify-content:space-between;margin-bottom:10px}.advantage-bar__name{font-size:.95rem;font-weight:700;color:var(--text-primary);text-transform:capitalize}.advantage-bar__track{height:22px;border-radius:11px;overflow:hidden;display:flex;background:var(--bg-secondary)}.advantage-bar__fill{height:100%}.advantage-bar__fill--a{border-radius:11px 0 0 11px}.advantage-bar__fill--b{border-radius:0 11px 11px 0}.advantage-bar__label{text-align:center;margin-top:12px;font-size:.9rem;font-weight:600;color:var(--text-primary)}.advantage-bar__scores{display:flex;justify-content:space-between;margin-top:6px}.advantage-bar__score{font-size:.72rem;color:var(--text-secondary);font-weight:600}.stats-bars{display:flex;flex-direction:column;gap:8px}.stats-bars__row{display:flex;align-items:center;gap:10px}.stats-bars__label{font-size:.68rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px;width:48px;flex-shrink:0;text-align:right}.stats-bars__pair{flex:1;display:flex;flex-direction:column;gap:3px}.stats-bars__bar-wrapper{display:flex;align-items:center;gap:6px}.stats-bars__track{flex:1;height:8px;border-radius:4px;background:var(--bg-secondary);overflow:hidden}.stats-bars__bar{height:100%;border-radius:4px}.stats-bars__value{font-size:.68rem;font-weight:700;color:var(--text-secondary);width:26px;text-align:right;flex-shrink:0}.type-matchup-breakdown{display:flex;flex-direction:column;gap:20px}.type-matchup-breakdown__subtitle{font-size:.75rem;font-weight:600;color:var(--text-secondary);margin-bottom:10px;text-transform:uppercase;letter-spacing:.5px}.type-matchup-breakdown__row{display:flex;align-items:center;gap:6px;margin-bottom:8px;flex-wrap:wrap}.type-matchup-breakdown__arrow{font-size:.75rem;color:var(--text-secondary)}.type-matchup-breakdown__vs{display:flex;gap:4px;flex-wrap:wrap}.type-matchup-breakdown__equals{font-size:.75rem;color:var(--text-secondary)}.pokemon-desc{background:var(--bg-card);border-radius:12px;border:1px solid var(--border);padding:16px;transition:background .3s,border-color .3s}.pokemon-desc__name{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-secondary);margin-bottom:8px}.pokemon-desc__text{font-size:.88rem;color:var(--text-primary);line-height:1.65}.pokemon-desc--loading{display:flex;justify-content:center;padding:24px;background:var(--bg-card);border-radius:12px;border:1px solid var(--border)}.home-page{max-width:900px;margin:0 auto;padding:32px 20px 80px}.home-hero{position:relative;min-height:52vh;display:flex;align-items:center;overflow:hidden;margin-bottom:16px}.home-hero__silhouettes{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.home-hero__silhouette{position:absolute;filter:brightness(0) opacity(.05);-webkit-user-select:none;user-select:none}.home-hero__content{position:relative;z-index:1;width:100%}.home-hero__eyebrow{font-size:.72rem;font-weight:700;letter-spacing:2px;color:var(--accent);margin-bottom:12px}.home-hero__title{font-size:clamp(2rem,5vw,3.2rem);font-weight:800;color:var(--text-primary);letter-spacing:-1px;line-height:1.1;margin-bottom:14px}.home-hero__subtitle{font-size:1rem;color:var(--text-secondary);margin-bottom:40px;max-width:480px}.home-nav-cards{display:grid;grid-template-columns:1fr;gap:12px}@media (min-width: 560px){.home-nav-cards{grid-template-columns:repeat(3,1fr)}}.home-nav-card{display:flex;flex-direction:column;gap:8px;padding:20px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);transition:border-color .2s,background .3s;text-decoration:none;color:inherit}.home-nav-card:hover{border-color:var(--accent)}.home-nav-card__icon{color:var(--accent)}.home-nav-card__title{font-size:.95rem;font-weight:700;color:var(--text-primary)}.home-nav-card__desc{font-size:.8rem;color:var(--text-secondary);line-height:1.5}.home-section{margin-top:56px}.home-section--card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px;box-shadow:var(--shadow);transition:background .3s,border-color .3s;margin-top:0}.home-section__label{font-size:.68rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.home-section__title{font-size:1.3rem;font-weight:800;color:var(--text-primary);letter-spacing:-.3px;margin-bottom:6px}.home-section__subtitle{font-size:.85rem;color:var(--text-secondary);margin-bottom:28px}.home-two-col{display:grid;grid-template-columns:1fr;gap:20px;margin-top:56px}@media (min-width: 640px){.home-two-col{grid-template-columns:1fr 1fr}}.home-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 10px;justify-items:center}@media (min-width: 480px){.home-mini-grid{grid-template-columns:repeat(6,1fr)}}.home-mini-grid__cell{display:flex;flex-direction:column;align-items:center;gap:6px}.home-mini-grid__card{border-radius:50%;width:60px;height:60px;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;padding:0}.home-mini-grid__icon{width:55%;height:55%;object-fit:contain}.home-mini-grid__label{font-size:.55rem;font-weight:700;color:var(--text-primary);letter-spacing:.6px;text-align:center;white-space:nowrap}.home-featured{display:flex;flex-direction:column;gap:14px}.home-featured__matchup{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.home-featured__arrow,.home-featured__equals{font-size:.9rem;color:var(--text-secondary);font-weight:600}.home-featured__desc{font-size:.88rem;color:var(--text-secondary);line-height:1.6;font-style:italic}.home-featured__refresh{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:600;color:var(--accent);background:none;border:1px solid var(--border);border-radius:8px;padding:6px 12px;cursor:pointer;transition:background .2s,border-color .2s;align-self:flex-start;font-family:inherit}.home-featured__refresh:hover{background:var(--bg-secondary);border-color:var(--accent)}.home-did-you-know{display:flex;flex-direction:column;gap:20px;height:100%}.home-did-you-know__body{flex:1;min-height:80px;display:flex;align-items:flex-start;overflow:hidden}.home-did-you-know__fact{font-size:.92rem;color:var(--text-primary);line-height:1.7}.home-did-you-know__nav{display:flex;align-items:center;gap:12px}.home-did-you-know__btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:none;cursor:pointer;color:var(--text-secondary);transition:background .2s,color .2s;font-family:inherit}.home-did-you-know__btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.home-did-you-know__counter{font-size:.75rem;color:var(--text-secondary);font-weight:600}.topbar__brand{text-decoration:none;color:inherit}.type-pokemon-showcase{display:flex;flex-direction:column;gap:2rem;margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--border)}.pokemon-row__title{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:.75rem}.pokemon-row__list{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.5rem;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.pokemon-row__list::-webkit-scrollbar{height:4px}.pokemon-row__list::-webkit-scrollbar-track{background:transparent}.pokemon-row__list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.pokemon-mini-card{display:flex;flex-direction:column;align-items:center;gap:.25rem;min-width:72px;padding:.5rem .25rem;border-radius:10px;background:var(--bg-card);border:1px solid var(--border);transition:background .15s,transform .15s;cursor:default;flex-shrink:0}.pokemon-mini-card:hover{background:var(--bg-card-hover);transform:translateY(-2px)}.pokemon-mini-card__sprite{width:56px;height:56px;image-rendering:pixelated}.pokemon-mini-card__name{font-size:.65rem;font-weight:600;color:var(--text-secondary);text-align:center;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pokemon-mini-card--skeleton{min-width:72px;height:96px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;flex-shrink:0;animation:skeleton-pulse 1.4s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.pokemon-row__grid{display:flex;flex-wrap:wrap;gap:.5rem}.pokemon-row__show-more{display:block;margin:.6rem auto 0;background:none;border:none;cursor:pointer;font-size:.75rem;font-weight:600;color:var(--accent);padding:4px 8px;border-radius:6px;transition:background .15s;font-family:inherit}.pokemon-row__show-more:hover{background:var(--bg-secondary)}.showcase-filters{display:flex;flex-direction:column;gap:.6rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border);margin-bottom:.5rem}.showcase-filters__row{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.showcase-filters__label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);flex-shrink:0}.showcase-filters__divider{width:1px;height:16px;background:var(--border);margin:0 .2rem}.filter-pill{padding:3px 10px;border-radius:20px;border:1px solid var(--border);background:none;cursor:pointer;font-size:.75rem;font-weight:600;color:var(--text-secondary);font-family:inherit;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.filter-pill:hover{background:var(--bg-secondary);color:var(--text-primary)}.filter-pill--active{background:var(--accent);color:#fff;border-color:var(--accent)}.filter-pill--active:hover{background:var(--accent);color:#fff}.filter-chip{padding:3px 8px;border-radius:20px;border:1px solid var(--border);background:none;cursor:pointer;font-size:.7rem;font-weight:600;color:var(--text-secondary);font-family:inherit;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.filter-chip:hover{background:var(--bg-secondary);color:var(--text-primary)}.filter-chip.filter-pill--active{background:var(--accent);color:#fff;border-color:var(--accent)}.filter-chip.filter-pill--active:hover{background:var(--accent);color:#fff}.auth-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem}.auth-modal{position:relative;z-index:201;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:2rem;width:100%;max-width:420px;max-height:90dvh;overflow-y:auto;box-shadow:0 20px 60px #0006}.auth-modal__close{position:absolute;top:1rem;right:1rem;background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s}.auth-modal__close:hover{color:var(--text-primary);background:var(--bg-secondary)}.auth-modal__title{font-size:1.3rem;font-weight:700;color:var(--text-primary);margin:0 0 1.25rem}.auth-modal__subtitle{font-size:.85rem;color:var(--text-secondary);margin:-.75rem 0 1.25rem}.auth-social-btns{display:flex;flex-direction:column;gap:.5rem}.social-btn{display:flex;align-items:center;gap:.75rem;width:100%;padding:.6rem 1rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:.875rem;font-weight:500;font-family:inherit;cursor:pointer;transition:background .15s,border-color .15s}.social-btn:hover{background:var(--bg-secondary);border-color:var(--text-secondary)}.social-btn:disabled{opacity:.5;cursor:not-allowed}.auth-divider{display:flex;align-items:center;gap:.75rem;margin:1rem 0;color:var(--text-secondary);font-size:.8rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-form{display:flex;flex-direction:column;gap:.65rem}.auth-input{width:100%;padding:.6rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);color:var(--text-primary);font-size:.875rem;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s}.auth-input:focus{border-color:var(--accent)}.auth-submit{width:100%;padding:.65rem 1rem;border:none;border-radius:8px;background:var(--accent);color:#fff;font-size:.9rem;font-weight:600;font-family:inherit;cursor:pointer;margin-top:.25rem;transition:opacity .15s}.auth-submit:hover{opacity:.9}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.auth-footer{display:flex;align-items:center;gap:.4rem;margin-top:1rem;font-size:.82rem;flex-wrap:wrap}.auth-footer__text{color:var(--text-secondary)}.auth-footer__sep{flex:1}.auth-link{background:none;border:none;padding:0;cursor:pointer;color:var(--accent);font-size:.82rem;font-family:inherit;text-decoration:underline}.auth-link:hover{opacity:.8}.auth-error{font-size:.8rem;color:#e05252;margin:0}.auth-success{font-size:.85rem;color:#4caf7d;background:rgba(76,175,125,.1);border:1px solid rgba(76,175,125,.3);border-radius:8px;padding:.75rem;margin:.5rem 0}.drawer__auth{display:flex;flex-direction:column;gap:.5rem;padding:.75rem 0;margin-bottom:.5rem}.drawer__user{display:flex;align-items:center;gap:.6rem;padding:0 .25rem}.drawer__avatar{width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.drawer__user-email{font-size:.78rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer__sign-in{display:flex;align-items:center;gap:.6rem;width:100%;padding:.55rem .75rem;border:none;border-radius:8px;background:var(--accent);color:#fff;font-size:.875rem;font-weight:600;font-family:inherit;cursor:pointer;transition:opacity .15s}.drawer__sign-in:hover{opacity:.9}.drawer__create-account{display:flex;align-items:center;gap:.6rem;width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:8px;background:none;color:var(--text-primary);font-size:.875rem;font-family:inherit;cursor:pointer;transition:background .15s}.drawer__create-account:hover{background:var(--bg-secondary)}.drawer__sign-out{display:flex;align-items:center;gap:.6rem;width:100%;padding:.45rem .75rem;border:1px solid var(--border);border-radius:8px;background:none;color:var(--text-secondary);font-size:.82rem;font-family:inherit;cursor:pointer;transition:background .15s,color .15s}.drawer__sign-out:hover{background:var(--bg-secondary);color:var(--text-primary)}.teams-page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.teams-page__new-wrap{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.teams-page__new-btn{display:inline-flex;align-items:center;gap:6px;padding:0 1rem;height:36px;border-radius:8px;background:var(--accent);color:#fff;font-size:.875rem;font-weight:600;border:none;cursor:pointer;text-decoration:none;transition:opacity .15s}.teams-page__new-btn:hover{opacity:.85}.teams-page__new-btn--disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.teams-page__limit-badge{font-size:.75rem;color:var(--text-secondary);background:var(--bg-secondary);padding:4px 8px;border-radius:6px}.teams-page__toast{background:var(--accent);color:#fff;padding:8px 14px;border-radius:8px;font-size:.875rem;margin-bottom:1rem;width:fit-content}.teams-page__loading,.teams-page__empty{color:var(--text-secondary);text-align:center;padding:3rem 0}.teams-page__empty{display:flex;flex-direction:column;align-items:center;gap:1rem}.teams-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.team-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:1rem;display:flex;flex-direction:column;gap:.75rem;transition:border-color .15s,box-shadow .15s}.team-card:hover{border-color:var(--accent);box-shadow:0 4px 16px #00000026}.team-card__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.team-card__name{font-size:1rem;font-weight:700;color:var(--text-primary);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-card__actions{display:flex;gap:4px;flex-shrink:0}.team-card__btn{width:30px;height:30px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);background:none;border:none;cursor:pointer;text-decoration:none;transition:background .15s,color .15s}.team-card__btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.team-card__btn--danger:hover{background:#fee2e2;color:#ef4444}.team-card__sprites{display:flex;gap:2px}.team-card__sprite{width:40px;height:40px;image-rendering:pixelated}.team-card__empty-sprite{width:40px;height:40px;border-radius:50%;background:var(--bg-secondary);border:1px dashed var(--border)}.team-card__types{display:flex;flex-wrap:wrap;gap:4px}.team-builder-page{padding-bottom:80px}.team-builder__header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.team-builder__back{display:flex;align-items:center;gap:4px;color:var(--text-secondary);font-size:.875rem;background:none;border:none;cursor:pointer;padding:6px 10px;border-radius:8px;transition:background .15s,color .15s;flex-shrink:0}.team-builder__back:hover{background:var(--bg-secondary);color:var(--text-primary)}.team-builder__name-input{flex:1;min-width:140px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:1rem;font-weight:700;color:var(--text-primary);outline:none;transition:border-color .15s}.team-builder__name-input:focus{border-color:var(--accent)}.team-builder__save-btn{display:flex;align-items:center;gap:6px;padding:0 1rem;height:38px;border-radius:8px;background:var(--accent);color:#fff;font-size:.875rem;font-weight:600;border:none;cursor:pointer;transition:opacity .15s;flex-shrink:0}.team-builder__save-btn:hover{opacity:.85}.team-builder__save-btn:disabled{opacity:.5;cursor:not-allowed}.team-builder__error{color:#ef4444;font-size:.875rem;margin-bottom:1rem}.team-builder__desktop{display:grid;grid-template-columns:1fr 340px;gap:1.5rem;align-items:start}.team-builder__hint{background:var(--bg-card);border:1px dashed var(--border);border-radius:14px;padding:2rem;text-align:center;color:var(--text-secondary);font-size:.9rem}.team-builder__analysis{margin-top:2rem;display:flex;flex-direction:column;gap:1rem}.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media (min-width: 800px){.slot-grid{grid-template-columns:repeat(3,1fr)}}.slot-grid__slot{background:var(--bg-card);border:2px solid var(--border);border-radius:12px;padding:.75rem .5rem;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;transition:border-color .15s,box-shadow .15s;min-height:110px}.slot-grid__slot:hover{border-color:var(--accent)}.slot-grid__slot--active{border-color:var(--accent);box-shadow:0 0 0 3px #6390f040}.slot-grid__sprite{width:64px;height:64px;image-rendering:pixelated}.slot-grid__empty-sprite{width:64px;height:64px;border-radius:50%;background:var(--bg-secondary)}.slot-grid__name{font-size:.78rem;font-weight:600;color:var(--text-primary);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.slot-grid__types{display:flex;flex-wrap:wrap;gap:2px;justify-content:center}.slot-grid__empty-label{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--text-secondary);font-size:.75rem}.slot-editor{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:1rem;display:flex;flex-direction:column;gap:1rem}.slot-editor__header{display:flex;align-items:center;justify-content:space-between}.slot-editor__title{font-size:.9rem;font-weight:700;color:var(--text-secondary)}.slot-editor__close{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);background:none;border:none;cursor:pointer;transition:background .15s}.slot-editor__close:hover{background:var(--bg-secondary)}.slot-editor__pokemon-row{display:flex;align-items:center;gap:.5rem}.slot-editor__sprite{width:56px;height:56px;image-rendering:pixelated;flex-shrink:0}.slot-editor__search-wrap{position:relative;flex:1}.slot-editor__search{width:100%;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:.9rem;color:var(--text-primary);outline:none;transition:border-color .15s}.slot-editor__search:focus{border-color:var(--accent)}.slot-editor__clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center}.slot-editor__dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;z-index:50;overflow:hidden;box-shadow:0 8px 24px #0003;list-style:none;padding:4px}.slot-editor__dropdown li button{display:block;width:100%;text-align:left;padding:8px 10px;border-radius:6px;font-size:.875rem;color:var(--text-primary);background:none;border:none;cursor:pointer;transition:background .1s}.slot-editor__dropdown li button:hover{background:var(--bg-secondary)}.slot-editor__types{display:flex;gap:4px;flex-wrap:wrap}.move-search{display:flex;flex-direction:column;gap:.5rem}.move-search__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.move-search__label{font-size:.8rem;font-weight:600;color:var(--text-secondary);flex-shrink:0}.move-search__count{color:var(--accent)}.move-search__input{flex:1;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:.82rem;color:var(--text-primary);outline:none}.move-search__input:focus{border-color:var(--accent)}.move-search__loading{font-size:.8rem;color:var(--text-secondary)}.move-search__list{display:flex;flex-direction:column;gap:3px;max-height:180px;overflow-y:auto}.move-search__item{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;border-radius:6px;border:1px solid var(--border);background:var(--bg-secondary);cursor:pointer;font-size:.8rem;color:var(--text-primary);text-align:left;transition:background .1s,border-color .1s;gap:.5rem}.move-search__item:hover{background:var(--bg-card);border-color:var(--accent)}.move-search__item--selected{background:rgba(99,144,240,.15);border-color:var(--accent)}.move-search__item--disabled{opacity:.4;cursor:not-allowed}.move-search__item-name{font-weight:500;flex:1}.move-search__item-meta{display:flex;align-items:center;gap:4px;flex-shrink:0}.move-search__item-cat{font-size:.7rem;color:var(--text-secondary);text-transform:capitalize}.move-search__item-power{font-size:.7rem;color:var(--text-secondary)}.item-search{display:flex;flex-direction:column;gap:.4rem}.item-search__label{font-size:.8rem;font-weight:600;color:var(--text-secondary)}.item-search__row{display:flex;align-items:center;gap:.5rem;position:relative}.item-search__sprite{width:24px;height:24px;flex-shrink:0}.item-search__input{flex:1;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;padding:6px 10px;font-size:.875rem;color:var(--text-primary);outline:none}.item-search__input:focus{border-color:var(--accent)}.item-search__clear{font-size:1rem;color:var(--text-secondary);background:none;border:none;cursor:pointer;line-height:1;padding:2px}.item-search__dropdown{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 8px 24px #00000026;display:flex;flex-direction:column}.item-search__option{padding:8px 12px;font-size:.875rem;color:var(--text-primary);background:none;border:none;cursor:pointer;text-align:left;transition:background .1s}.item-search__option:hover{background:var(--bg-secondary)}.item-search__loading,.item-search__empty{padding:8px 12px;font-size:.82rem;color:var(--text-secondary)}.slot-wizard{display:flex;flex-direction:column;gap:1rem}.slot-wizard__progress{display:flex;gap:8px;justify-content:center}.slot-wizard__dot{width:28px;height:8px;border-radius:4px;background:var(--border);border:none;cursor:pointer;transition:background .15s}.slot-wizard__dot--active{background:var(--accent)}.slot-wizard__dot--filled{background:rgba(99,144,240,.5)}.slot-wizard__dot--active.slot-wizard__dot--filled{background:var(--accent)}.slot-wizard__step-label{text-align:center;font-size:.85rem;color:var(--text-secondary)}.slot-wizard__nav{display:flex;justify-content:space-between;gap:.5rem}.slot-wizard__nav-btn{display:flex;align-items:center;gap:4px;padding:8px 16px;border-radius:8px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);font-size:.875rem;cursor:pointer;transition:background .15s}.slot-wizard__nav-btn:hover{background:var(--bg-secondary)}.slot-wizard__nav-btn:disabled{opacity:.4;cursor:not-allowed}.slot-wizard__nav-btn--next{background:var(--accent);color:#fff;border-color:var(--accent)}.slot-wizard__nav-btn--next:hover{opacity:.85}.analysis-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:1.25rem}.analysis-panel--ai{border-color:#6390f066}.analysis-panel__title{font-size:1rem;font-weight:700;color:var(--text-primary);margin:0 0 1rem;display:flex;align-items:center;gap:6px}.analysis-panel__warning{display:flex;align-items:center;gap:6px;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:8px;padding:8px 10px;font-size:.82rem;color:var(--text-primary);margin-bottom:.75rem}.analysis-panel__warning-icon{color:#ef4444}.type-coverage-grid{display:flex;flex-direction:column;gap:4px}.type-coverage-row{display:flex;align-items:center;gap:8px}.type-coverage-row .type-badge{min-width:68px}.type-coverage-bars{display:flex;gap:4px;flex:1;align-items:center}.type-coverage-bar{padding:2px 6px;border-radius:4px;font-size:.7rem;font-weight:600;white-space:nowrap}.type-coverage-bar--weak{background:rgba(239,68,68,.2);color:#ef4444}.type-coverage-bar--resist{background:rgba(34,197,94,.2);color:#16a34a}.type-coverage-bar--immune{background:rgba(148,163,184,.2);color:var(--text-secondary)}.type-coverage-legend{display:flex;gap:8px;margin-top:.5rem;flex-wrap:wrap}.stat-overview{display:flex;flex-direction:column;gap:6px}.stat-overview-row{display:flex;align-items:center;gap:8px}.stat-overview-label{width:32px;font-size:.75rem;font-weight:600;color:var(--text-secondary);flex-shrink:0}.stat-overview-bar-track{flex:1;height:10px;background:var(--bg-secondary);border-radius:5px;overflow:hidden}.stat-overview-bar{height:100%;border-radius:5px;transition:width .4s ease}.stat-overview-value{width:28px;text-align:right;font-size:.75rem;color:var(--text-secondary);flex-shrink:0}.ai-analysis-loading{display:flex;align-items:center;gap:.75rem;color:var(--text-secondary);font-size:.9rem}.ai-analysis-spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.ai-analysis-overall{font-size:.9rem;color:var(--text-primary);line-height:1.6;margin-bottom:.75rem}.ai-analysis-section{margin-bottom:.75rem}.ai-analysis-section-title{font-size:.8rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 .4rem;display:flex;align-items:center;gap:4px}.ai-analysis-list{list-style:disc;padding-left:1.25rem;font-size:.875rem;color:var(--text-primary);display:flex;flex-direction:column;gap:2px}.ai-role-chips{display:flex;flex-wrap:wrap;gap:6px}.ai-role-chip{padding:4px 10px;border-radius:20px;font-size:.8rem;font-weight:600}.ai-role-chip--attacker{background:rgba(239,68,68,.15);color:#ef4444}.ai-role-chip--tank{background:rgba(34,197,94,.15);color:#16a34a}.ai-role-chip--support{background:rgba(99,144,240,.15);color:var(--accent)}.ai-analysis-suggestions{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px}.ai-analysis-suggestions li{font-size:.875rem;color:var(--text-primary);display:flex;flex-direction:column;gap:1px}.ai-suggestion-pokemon{font-weight:700;color:var(--accent);font-size:.8rem}.ai-suggestion-tip{color:var(--text-primary)}.ai-analysis-synergy{font-size:.875rem;color:var(--text-primary);line-height:1.5}.shared-team__header{margin-bottom:1.5rem}.shared-team__slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-bottom:1.5rem}.shared-slot-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:.875rem;display:flex;gap:.75rem;align-items:flex-start}.shared-slot-card__sprite{width:64px;height:64px;image-rendering:pixelated;flex-shrink:0}.shared-slot-card__info{display:flex;flex-direction:column;gap:4px;min-width:0}.shared-slot-card__name{font-weight:700;font-size:.9rem;color:var(--text-primary)}.shared-slot-card__types{display:flex;flex-wrap:wrap;gap:3px}.shared-slot-card__item{display:flex;align-items:center;gap:4px;font-size:.78rem;color:var(--text-secondary)}.shared-slot-card__moves{list-style:none;padding:0;display:flex;flex-direction:column;gap:2px;margin-top:2px}.shared-slot-card__moves li{display:flex;align-items:center;gap:4px;font-size:.78rem;color:var(--text-primary)}.shared-team__cta{text-align:center;padding:2rem;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;margin-top:1.5rem;display:flex;flex-direction:column;align-items:center;gap:.75rem}.shared-team__cta p{color:var(--text-secondary);font-size:.9rem}.shared-team__cta-btn{display:inline-flex;padding:8px 20px;background:var(--accent);color:#fff;border-radius:8px;font-size:.875rem;font-weight:600;text-decoration:none;transition:opacity .15s}.shared-team__cta-btn:hover{opacity:.85}
