:root{--text:#6b6375;--text-h:#08060d;--text-muted:#8a8591;--bg:#fff;--border:#e5e4e7;--card-bg:#f4f3ec;--card-bg-selected:#aa3bff14;--accent:#aa3bff;--sans:system-ui, "Segoe UI", Roboto, sans-serif;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{--text:#9ca3af;--text-h:#f3f4f6;--text-muted:#6b7280;--bg:#16171d;--border:#2e303a;--card-bg:#1f2028;--card-bg-selected:#c084fc1f;--accent:#c084fc}}*{box-sizing:border-box}body{min-height:100svh;margin:0}#root{max-width:1400px;margin:0 auto}h1,h2{color:var(--text-h);font-weight:500}p{margin:0}.app-nav{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;padding:1rem 1rem 0;display:flex}.app-nav__brand{letter-spacing:-.01em;color:var(--text-h);font-size:1.15rem;font-weight:700}.app-nav__tabs{gap:.5rem;display:flex}.app-nav__tab{font:inherit;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.5rem .9rem;font-size:.9rem;font-weight:600;text-decoration:none}.app-nav__tab--active{color:var(--text-h);border-bottom-color:var(--accent)}.page-hero{border:1px solid var(--border);background:linear-gradient(135deg, var(--card-bg) 0%, var(--bg) 100%);border-radius:1rem;margin:1.5rem 1rem 1.75rem;padding:1.75rem 2rem}.page-hero__title{letter-spacing:-.03em;color:var(--text-h);margin:0 0 .5rem;font-size:2.25rem;font-weight:700}.page-hero__description{max-width:60ch;color:var(--text-muted);margin:0;font-size:.95rem;line-height:1.5}.filter-tray__backdrop{opacity:0;pointer-events:none;z-index:20;background:#00000059;transition:opacity .2s;position:fixed;inset:0}.filter-tray__backdrop--open{opacity:1;pointer-events:auto}.filter-tray{background:var(--bg);border-left:1px solid var(--border);z-index:21;flex-direction:column;width:min(320px,85vw);height:100vh;transition:transform .2s;display:flex;position:fixed;top:0;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-8px 0 24px #00000026}.filter-tray--open{transform:translate(0)}.filter-tray__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem;display:flex}.filter-tray__header h2{margin:0;font-size:1.1rem}.filter-tray__close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:.25rem;font-size:1.1rem;line-height:1}.filter-tray__body{flex-direction:column;gap:1.25rem;padding:1rem;display:flex}.filter-tray__section h3{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 .6rem;font-size:.75rem;font-weight:700}.type-filter{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.type-filter__chip{color:#fff;text-transform:capitalize;cursor:pointer;opacity:.45;border:2px solid #0000;border-radius:999px;padding:.2rem .7rem;font-size:.7rem;font-weight:600;transition:opacity .1s,border-color .1s}.type-filter__chip--active{opacity:1;border-color:var(--text-h)}.type-filter__clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.2rem .4rem;font-size:.75rem;text-decoration:underline}.pokedex{padding:0 1rem 1.5rem}.pokedex__filters{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.pokedex__search{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:.5rem;min-width:180px;padding:.4rem .7rem;font-size:.85rem}.pokedex__filter-btn{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);cursor:pointer;border-radius:.5rem;align-items:center;gap:.4rem;padding:.4rem .8rem;font-size:.8rem;font-weight:600;display:inline-flex}.pokedex__filter-btn:hover{border-color:var(--accent)}.pokedex__filter-badge{background:var(--accent);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:1.1rem;height:1.1rem;padding:0 .3rem;font-size:.65rem;font-weight:700;display:inline-flex}.pokedex__count{color:var(--text-muted);white-space:nowrap;margin-left:auto;font-size:.8rem}.pokedex__table-wrap{border:1px solid var(--border);border-radius:.5rem;overflow-x:auto}.pokedex__table{border-collapse:collapse;width:100%;font-size:.8rem}.pokedex__table th,.pokedex__table td{text-align:left;white-space:nowrap;border-bottom:1px solid var(--border);padding:.4rem .6rem}.pokedex__table thead th{background:var(--card-bg);z-index:1;position:sticky;top:0}.pokedex__table tbody tr:hover{background:var(--card-bg)}.pokedex__sort-btn{font:inherit;color:var(--text-h);cursor:pointer;background:0 0;border:none;align-items:center;gap:.25rem;padding:0;font-weight:600;display:inline-flex}.pokedex__sort-arrow{color:var(--accent);font-size:.6rem}.pokedex__sprite-cell{width:40px}.pokedex__sprite-cell img{object-fit:contain;width:32px;height:32px;image-rendering:pixelated;display:block}.pokedex__dim{color:var(--text-muted)}.pokedex__name{text-transform:capitalize;font-weight:600}.pokedex__types{gap:.3rem;display:flex}.pokedex__type-badge{color:#fff;text-transform:capitalize;border-radius:999px;padding:.1rem .5rem;font-size:.65rem;font-weight:600}.pokedex__bst{font-weight:700}.pokedex__pagination{justify-content:center;align-items:center;gap:1rem;margin-top:.75rem;font-size:.85rem;display:flex}.pokedex__pagination button{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);cursor:pointer;border-radius:.4rem;padding:.3rem .8rem}.pokedex__pagination button:disabled{opacity:.4;cursor:not-allowed}.pokedex__message{text-align:center;color:var(--text-muted);padding:2rem}.pokemon-picker{position:relative}.pokemon-picker--inline{align-items:center;width:100%;height:100%;display:flex}.pokemon-picker__search{width:100%;font:inherit;border:1px solid var(--accent);background:var(--bg);color:var(--text-h);border-radius:.5rem;padding:.5rem .7rem;font-size:.85rem}.pokemon-picker__results{border:1px solid var(--border);z-index:15;background:var(--bg);border-radius:.5rem;width:100%;max-height:320px;margin:.4rem 0 0;padding:0;list-style:none;position:absolute;top:100%;left:0;overflow-y:auto;box-shadow:0 8px 20px #0000001f}.pokemon-picker__result{border:none;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;align-items:center;gap:.6rem;padding:.4rem .6rem;display:flex}.pokemon-picker__result:hover{background:var(--card-bg)}.pokemon-picker li:last-child .pokemon-picker__result{border-bottom:none}.pokemon-picker__result img{object-fit:contain;width:32px;height:32px;image-rendering:pixelated}.pokemon-picker__name{text-transform:capitalize;flex:1;font-size:.8rem;font-weight:600}.pokemon-picker__types{gap:.25rem;display:flex}.pokemon-picker__type-badge{color:#fff;text-transform:capitalize;border-radius:999px;padding:.1rem .5rem;font-size:.62rem;font-weight:600}.pokemon-picker__empty{border:1px solid var(--border);color:var(--text-muted);text-align:center;z-index:15;background:var(--bg);border-radius:.5rem;width:100%;margin-top:.4rem;padding:.6rem;font-size:.8rem;position:absolute;top:100%;left:0}.team-builder{flex:1;min-width:0}.team-builder__details-card{border:1px solid var(--border);background:var(--card-bg);border-radius:.75rem;margin-bottom:1.5rem;padding:1.25rem}.team-builder__details-header{justify-content:space-between;align-items:baseline;margin-bottom:1rem;display:flex}.team-builder__details-header h2{margin:0;font-size:1.05rem}.team-builder__count{color:var(--text-muted);white-space:nowrap;font-size:.85rem;font-weight:400}.team-builder__field{margin-bottom:.9rem;display:block}.team-builder__field:last-of-type{margin-bottom:0}.team-builder__field-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);justify-content:space-between;align-items:baseline;margin-bottom:.3rem;font-size:.75rem;font-weight:700;display:flex}.team-builder__field-optional{text-transform:none;letter-spacing:normal;font-weight:400}.team-builder__char-count{text-transform:none;letter-spacing:normal;color:var(--text-muted);font-weight:400}.team-builder__name-input,.team-builder__description-input{width:100%;font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:.5rem;padding:.5rem .7rem;font-size:.9rem}.team-builder__name-input{text-transform:capitalize;font-weight:600}.team-builder__description-input{resize:vertical;font-family:inherit;line-height:1.4}.team-builder__details-footer{justify-content:flex-end;margin-top:1rem;display:flex}.team-builder__save-btn{font:inherit;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border-radius:.5rem;padding:.5rem 1.1rem;font-size:.85rem;font-weight:600}.team-builder__save-btn:disabled{opacity:.4;cursor:not-allowed}.team-builder__error{color:#dc2626;background:#dc26261a;border-radius:.4rem;margin:.75rem 0 0;padding:.5rem .7rem;font-size:.8rem}.team-builder__roster{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:84px;gap:1rem 1.25rem;margin:0;padding:0 0 1.75rem;list-style:none;display:grid}.team-builder__roster>li:nth-child(2n){transform:translateY(1.75rem)}.team-builder__roster>li:nth-child(2n).team-builder__slot--dragging{transform:translateY(1.75rem)scale(1.04)rotate(-1deg)}.team-builder__slot{border:1px solid var(--border);background:var(--bg);border-radius:.6rem;align-items:center;gap:.6rem;height:84px;padding:.5rem .8rem;transition:transform .12s,box-shadow .12s,opacity .12s;display:flex;position:relative}.team-builder__slot[draggable=true]{cursor:grab}.team-builder__slot--dragging{opacity:.9;cursor:grabbing;z-index:5;position:relative;transform:scale(1.04)rotate(-1deg);box-shadow:0 12px 24px #00000040}.team-builder__slot-number{background:var(--accent);color:#fff;border:2px solid var(--bg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;font-size:.7rem;font-weight:700;display:flex;position:absolute;top:-.55rem;left:-.55rem}.team-builder__drag-handle{color:var(--text-muted);cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0;font-size:1rem;line-height:1}.team-builder__slot img{object-fit:contain;width:48px;height:48px;image-rendering:pixelated;flex-shrink:0}.team-builder__slot-info{flex-direction:column;flex:1;gap:.2rem;display:flex}.team-builder__slot-name{text-transform:capitalize;font-size:.85rem;font-weight:600}.team-builder__slot-types{flex-wrap:wrap;gap:.3rem;display:flex}.team-builder__type-badge{color:#fff;text-transform:capitalize;border-radius:999px;padding:.1rem .5rem;font-size:.65rem;font-weight:600}.team-builder__remove-btn{border:1px solid var(--border);background:var(--bg);color:var(--text-h);cursor:pointer;border-radius:.4rem;flex-shrink:0;width:1.8rem;height:1.8rem;font-size:.7rem}.team-builder__slot--empty{color:var(--text-muted);cursor:pointer;border-style:dashed;justify-content:center;font-size:.8rem}.team-builder__slot--empty:hover,.team-builder__slot--empty:focus-visible{border-color:var(--accent);color:var(--accent);outline:none}.team-builder__slot--searching{border-style:solid;border-color:var(--accent);z-index:6;padding:.5rem}.team-builder__slot--searching .pokemon-picker--inline{flex:1;min-width:0}.team-builder__message{text-align:center;color:var(--text-muted);padding:2rem}.team-list{flex-direction:column;gap:.75rem;min-width:220px;display:flex}.team-list__new-btn{font:inherit;border:1px dashed var(--border);color:var(--text-h);cursor:pointer;text-align:left;background:0 0;border-radius:.5rem;padding:.55rem .7rem;font-size:.85rem;font-weight:600}.team-list__new-btn:hover{border-color:var(--accent);color:var(--accent)}.team-list__new-btn--active{border-style:solid;border-color:var(--accent);background:var(--card-bg-selected);color:var(--accent)}.team-list__items{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.team-list__item{border-radius:.5rem;align-items:center;gap:.2rem;padding:.1rem;display:flex}.team-list__item--active{background:var(--card-bg-selected)}.team-list__name{text-align:left;font:inherit;color:var(--text-h);cursor:pointer;text-transform:capitalize;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;border-radius:.4rem;flex:1;padding:.5rem .6rem;font-size:.85rem;overflow:hidden}.team-list__icon-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:.4rem;padding:.3rem;font-size:.8rem}.team-list__icon-btn:hover{color:var(--text-h);background:var(--card-bg)}.team-list__empty{color:var(--text-muted);padding:.5rem .6rem;font-size:.8rem}.teams-page__layout{align-items:flex-start;gap:2rem;padding:0 1rem 1.5rem;display:flex}.teams-page__message{text-align:center;color:var(--text-muted);padding:2rem}
