:root{--bg:#f4f5f7;--card:#fff;--text:#1d2330;--muted:#5d6678;--border:#d5d9e0;--accent:#c53030;--accent-hover:#a52727;--error:#b42323;--focus:#2f6fdf;--shadow:0 1px 2px #1018280a, 0 8px 24px #1018280f;--grid-dot:#10182824;color:var(--text);background:var(--bg);font-family:system-ui,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#14171f;--card:#1e222c;--text:#e8eaef;--muted:#a0a7b5;--border:#363c4a;--error:#ff9494;--focus:#7aa7ff;--shadow:0 8px 24px #0000004d;--grid-dot:#ffffff14}}*{box-sizing:border-box}body{margin:0}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.auth-page{isolation:isolate;background:radial-gradient(640px circle at 50% 0%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 70%);flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:100vh;padding:48px 16px;display:flex;position:relative}.auth-page:before{content:"";z-index:-1;background-image:radial-gradient(var(--grid-dot) 1.2px, transparent 1.6px);background-size:24px 24px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 35%,#0000 80%);mask-image:radial-gradient(#000 35%,#0000 80%)}.auth-brand{text-align:center}.auth-emblem{margin:0 auto;display:block}.auth-wordmark{letter-spacing:-.02em;margin:8px 0 0;font-size:1.75rem;font-weight:800}.auth-tagline{color:var(--muted);margin:2px 0 0}.auth-card{background:var(--card);border:1px solid var(--border);width:100%;max-width:400px;box-shadow:var(--shadow);border-radius:16px;padding:32px}.auth-card h1{letter-spacing:-.01em;margin:0 0 8px;font-size:1.5rem}.auth-card p{color:var(--muted);margin:0 0 24px;line-height:1.5}.auth-card strong{color:var(--text)}.auth-card .hint{margin-top:-16px;font-size:.875rem}.auth-card form .hint{margin:0 0 4px}.auth-icon{width:48px;height:48px;color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);border-radius:50%;place-items:center;margin-bottom:16px;display:grid}.auth-icon svg{width:24px;height:24px}.spinner{border:4px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;margin-bottom:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}.auth-card .error{color:var(--error);background:color-mix(in srgb, var(--error) 10%, transparent);border:1px solid color-mix(in srgb, var(--error) 45%, transparent);border-radius:8px;padding:10px 12px}.auth-card form{flex-direction:column;gap:8px;display:flex}.auth-card label{font-size:.875rem;font-weight:600}.auth-card input,.auth-card select{min-height:44px;font:inherit;color:inherit;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px;transition:border-color .15s}.auth-card input::placeholder{color:var(--muted)}.auth-card input:focus,.auth-card select:focus{border-color:var(--focus)}.auth-card button{min-height:44px;font:inherit;color:#fff;background:var(--accent);cursor:pointer;border:none;border-radius:8px;margin-top:8px;padding:10px 12px;font-weight:600;transition:background-color .15s}.auth-card button:hover:not(:disabled){background:var(--accent-hover)}.auth-card button:disabled{opacity:.6;cursor:wait}.oauth-button,.auth-card .button-secondary{width:100%;min-height:44px;font:inherit;color:var(--text);background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:10px;margin-top:0;padding:10px 12px;font-weight:600;text-decoration:none;transition:background-color .15s;display:flex}.oauth-button:hover,.auth-card .button-secondary:hover:not(:disabled){background:var(--bg)}.auth-card .divider{align-items:center;gap:12px;margin:24px 0;font-size:.875rem;display:flex}.auth-card .divider:before,.auth-card .divider:after{content:"";border-top:1px solid var(--border);flex:1}.oauth-buttons{flex-direction:column;gap:8px;display:flex}.oauth-button svg{width:18px;height:18px}.oauth-button.discord svg{color:#5865f2}.home-header{background:var(--card);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:12px 24px;display:flex}.home-brand{letter-spacing:-.02em;align-items:center;gap:10px;font-size:1.125rem;font-weight:800;display:flex}a.home-brand{color:inherit;text-decoration:none}.home-main>.slot-number{margin:0 0 4px}.home-main>.error,.sheet-main>.error{color:var(--error);background:color-mix(in srgb, var(--error) 10%, transparent);border:1px solid color-mix(in srgb, var(--error) 45%, transparent);border-radius:8px;padding:10px 12px}.home-user{align-items:center;gap:12px;font-weight:600;display:flex}.home-user .button-secondary{font:inherit;color:var(--text);background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:6px 14px;font-weight:600}.home-user .button-secondary:hover{background:var(--bg)}.home-main{max-width:960px;margin:0 auto;padding:32px 16px 64px}.home-main h1{letter-spacing:-.02em;margin:0 0 32px;font-size:1.75rem}.home-section{margin-bottom:40px}.home-section h2{margin:0 0 4px;font-size:1.25rem}.home-section .section-intro{color:var(--muted);margin:0 0 16px}.home-section .error{color:var(--error);background:color-mix(in srgb, var(--error) 10%, transparent);border:1px solid color-mix(in srgb, var(--error) 45%, transparent);border-radius:8px;padding:10px 12px}.slot-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.slot{min-height:140px;font:inherit;color:var(--text);background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);cursor:pointer;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:16px;transition:border-color .15s,transform .15s;display:flex}.slot:hover:not(:disabled){border-color:var(--accent);transform:translateY(-2px)}.slot:disabled{cursor:default}.slot-empty{color:var(--muted);border:2px dashed var(--border);box-shadow:none;background:0 0}.slot-number{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.75rem;font-weight:700}.slot-title{font-size:1.125rem;font-weight:700}.slot-portrait{object-fit:cover;border:1px solid var(--border);border-radius:50%;flex-shrink:0;width:72px;height:72px}.slot-portrait-empty{color:var(--muted);background:var(--bg);place-items:center;font-size:1.75rem;font-weight:800;display:grid}.slot-text{flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}.slot-title{overflow-wrap:anywhere}.slot-rank{background:color-mix(in srgb, var(--accent) 12%, transparent);border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:700}.slot-icon{width:28px;height:28px}.badge{color:var(--text);background:color-mix(in srgb, var(--muted) 14%, transparent);border-radius:999px;padding:4px 10px;font-size:.8125rem;font-weight:600}.community-card{background:var(--card);border:1px solid var(--border);border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:20px;display:flex}.community-card p{color:var(--muted);margin:0}.home-user .button-secondary{white-space:nowrap}.header-actions{border-right:1px solid var(--border);gap:8px;margin-right:4px;padding-right:12px;display:flex}a.button-secondary{align-items:center;text-decoration:none;display:inline-flex}@media (width<=560px){.home-header{padding:10px 16px}.home-username{display:none}.home-header:has(.header-actions) .home-brand-name{display:none}.header-actions{gap:6px;margin-right:0;padding-right:8px}.home-user{gap:8px}.home-user .button-secondary{padding:6px 10px}.slot-grid{gap:10px}.slot{flex-direction:row;justify-content:flex-start;gap:12px;min-height:64px;padding:12px 16px}.slot-icon{width:22px;height:22px}.slot-portrait{width:44px;height:44px}.slot-portrait-empty{font-size:1.2rem}.slot-text{align-items:flex-start}.slot-title{font-size:1rem}.slot .badge{margin-left:auto}}.site-footer{text-align:center;padding:16px;font-size:.875rem}.site-footer a{color:var(--muted)}.site-footer a:hover{color:var(--text)}.legal-page{max-width:720px;margin:0 auto;padding:32px 16px 48px;line-height:1.6}.legal-page h1{margin:0}.legal-date{color:var(--muted);margin:4px 0 24px}.legal-page h2{margin:32px 0 8px;font-size:1.15rem}.legal-page ul{padding-left:20px}.legal-page li+li{margin-top:6px}.legal-back{margin-top:40px}:root{--sheet-red:#c62828;--sheet-blue:#d32f2f;--sheet-gray:#b71c1c}.sheet-main{max-width:1400px;margin:0 auto;padding:24px 16px 64px}.sheet-main h1:not(.visually-hidden){margin:0 0 8px;font-size:1.75rem}.sheet-layout{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:12px;display:grid}@media (width<=1100px){.sheet-layout{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.sheet-layout{grid-template-columns:1fr}}.sheet-column{flex-direction:column;gap:12px;min-width:0;display:flex}.sheet-card{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;overflow:hidden}.sheet-card-header{color:#fff;margin:0}.sheet-card-header.red{background:var(--sheet-red)}.sheet-card-header.blue{background:var(--sheet-blue)}.sheet-card-header.gray{background:var(--sheet-gray)}.sheet-card-header button{width:100%;font:inherit;letter-spacing:.04em;text-transform:uppercase;color:inherit;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:.95rem;font-weight:800;display:flex}.sheet-card-header button:focus-visible{outline-offset:-4px;outline:2px solid #fff}.sheet-card-toggle{background:#ffffff2e;border-radius:50%;place-items:center;width:20px;height:20px;font-size:1rem;line-height:1;display:inline-grid}.sheet-card-body{padding:12px}.sheet-placeholder{color:var(--muted);margin:0;font-size:.9rem}.sheet-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.sheet-row span,.identity-quick-info span{color:var(--muted);font-size:.8rem}.sheet-row strong{overflow-wrap:anywhere;text-align:right}.identity-summary{grid-template-columns:140px minmax(0,1fr);gap:10px;display:grid}.portrait-column{flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}.identity-portrait{aspect-ratio:5/6;width:100%;font:inherit;color:var(--muted);background:var(--bg);border:1px dashed var(--border);cursor:pointer;border-radius:8px;place-items:center;padding:0;font-size:.8rem;display:grid;position:relative;overflow:hidden}.identity-portrait:has(img){border-style:solid}.identity-portrait:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.identity-portrait img{object-fit:cover;width:100%;height:100%}.portrait-busy{color:var(--text);background:color-mix(in srgb, var(--card) 80%, transparent);place-items:center;font-weight:600;display:grid;position:absolute;inset:0}.portrait-remove{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:.75rem;text-decoration:underline}.portrait-remove:hover{color:var(--error)}.portrait-error{text-align:center;color:var(--error);margin:0;font-size:.75rem}.identity-stack{flex-direction:column;gap:4px;min-width:0;display:flex}.identity-stack .sheet-row{flex-direction:column;align-items:flex-start;gap:0;padding:3px 0 5px}.identity-stack .sheet-row strong{text-align:left;font-size:.95rem}.identity-stack .sheet-row span,.identity-quick-info span{font-size:.7rem}.identity-quick-info{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;display:grid}.identity-quick-info>*{background:var(--bg);border-radius:8px;flex-direction:column;padding:4px 6px;display:flex}.identity-quick-info strong{overflow-wrap:anywhere;font-size:.875rem}.hp-bar{border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;margin-top:12px;padding:8px 12px;display:flex;position:relative;overflow:hidden}.hp-bar .hp-bar-fill{background:#2ea04347;position:absolute;inset:0 auto 0 0}.hp-bar span,.hp-bar strong{position:relative}.rank-pill{background:color-mix(in srgb, var(--accent) 12%, transparent);border-radius:999px;margin:12px 0 0;padding:6px 12px;font-weight:700;display:inline-block}button.editable{font:inherit;color:inherit;text-align:left;cursor:pointer}button.sheet-row.editable{border:none;border-bottom:1px solid var(--border);background:0 0;width:100%}.identity-quick-info button.editable{border:1px solid #0000;border-radius:8px}button.editable:hover{background:color-mix(in srgb, var(--accent) 8%, transparent)}.identity-quick-info button.editable:hover{border-color:var(--border)}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.stat-roll,.stat-readonly{width:100%;font:inherit;color:var(--text);background:var(--bg);border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;display:flex}.stat-roll{cursor:pointer}.stat-roll:hover{border-color:var(--border);background:color-mix(in srgb, var(--accent) 8%, var(--bg))}.stat-roll span,.stat-readonly span{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:.7rem;font-weight:700}.stat-roll strong,.stat-readonly strong{font-size:1.375rem;line-height:1.2}.stat-grid-derived{border-top:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px;padding-top:12px}.sheet-hint{color:var(--muted);margin:6px 0 0;font-size:.8rem}.roll-result{font-size:1.125rem}.roll-result strong{font-size:1.5rem}.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.skill-button{font:inherit;color:var(--text);background:var(--bg);cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;font-size:.9rem;display:flex}.skill-button:hover{border-color:var(--border);background:color-mix(in srgb, var(--accent) 8%, var(--bg))}.skill-button span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.skill-button strong{font-size:1.05rem}button.hp-bar{background:0 0;width:100%}.hp-bar+.sheet-row{margin-top:4px}button.rank-pill{font:inherit;color:var(--text);cursor:pointer;border:none;font-weight:700}button.rank-pill:hover{background:color-mix(in srgb, var(--accent) 22%, transparent)}.notes-box{width:100%;min-height:180px;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);resize:vertical;border-radius:8px;padding:10px 12px;line-height:1.5;display:block}.notes-box:focus{border-color:var(--focus)}.notes-footer{color:var(--muted);justify-content:space-between;gap:8px;margin-top:6px;font-size:.8rem;display:flex}.error-text{color:var(--error)}.notes-retry{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;margin-left:6px;padding:0;font-weight:600;text-decoration:underline}.specialty-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.specialty-entry{background:var(--bg);border-radius:8px;align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.specialty-entry details{flex:1;min-width:0}.specialty-entry summary{cursor:pointer;font-weight:700}.specialty-entry details p{color:var(--muted);margin:6px 0 0;font-size:.875rem;line-height:1.45}.specialty-add{width:100%;font:inherit;color:var(--muted);border:2px dashed var(--border);cursor:pointer;background:0 0;border-radius:8px;margin-top:8px;padding:10px;font-weight:600}.specialty-add:hover{color:var(--text);border-color:var(--accent)}.inventory-heading{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:14px 0 6px;font-size:.8rem;font-weight:700}.gear-slots,.inventory-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.gear-slot{width:100%;font:inherit;color:inherit;text-align:left;background:var(--bg);border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;display:flex}button.gear-slot{cursor:pointer}button.gear-slot:hover,.inventory-item:hover{border-color:var(--accent)}.gear-slot span{color:var(--muted);font-size:.8rem}.gear-slot strong{overflow-wrap:anywhere;text-align:right;min-width:0}.gear-slot.empty strong{color:var(--muted);font-weight:400}.inventory-item{width:100%;font:inherit;color:inherit;text-align:left;background:var(--bg);cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:12px;padding:8px 10px;display:flex}.inventory-item-name{overflow-wrap:anywhere;flex:1;min-width:0;font-weight:600}.inventory-item-count{font-variant-numeric:tabular-nums;color:var(--muted)}.pokemon-sprite{image-rendering:pixelated;object-fit:contain;flex-shrink:0}.pokemon-sprite.missing{color:var(--muted);justify-content:center;align-items:center;display:inline-flex}.pokemon-sprite.missing svg{width:60%;height:60%}.party-list,.box-list{flex-direction:column;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.party-empty{margin-top:8px}.party-slot,.box-entry{width:100%;font:inherit;color:inherit;text-align:left;background:var(--bg);cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;padding:6px 10px 6px 4px;display:flex}.party-slot:hover,.box-entry:hover{border-color:var(--accent)}.party-slot.fainted .pokemon-sprite{filter:grayscale();opacity:.6}.party-slot-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.party-slot-name{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:6px;display:flex}.party-slot-species{color:var(--muted);font-size:.8rem}.active-badge{color:#fff;background:var(--accent);border-radius:999px;padding:1px 8px;font-size:.7rem;font-weight:700}.party-hp{align-items:center;gap:8px;display:flex}.party-hp-track{background:color-mix(in srgb, var(--muted) 20%, transparent);border-radius:999px;flex:1;height:8px;overflow:hidden}.party-hp-fill{border-radius:inherit;background:#2ea043;height:100%;display:block}.party-hp-numbers{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.8rem}.box-entry-name{overflow-wrap:anywhere;flex:1;min-width:0;font-weight:600}.pokedex-row{border-bottom:none;margin-top:8px}.type-badges{flex-wrap:wrap;gap:4px;display:inline-flex}.type-badge{color:#fff;letter-spacing:.02em;text-transform:uppercase;background:var(--type-color,#6b6b6b);border-radius:4px;padding:1px 8px;font-size:.7rem;font-weight:700;line-height:1.5}.type-normal{--type-color:#767650}.type-fire{--type-color:#c4521a}.type-water{--type-color:#3b6fd4}.type-electric{--type-color:#8f7108}.type-grass{--type-color:#3c8429}.type-ice{--type-color:#357f7f}.type-fighting{--type-color:#a3241f}.type-poison{--type-color:#8a3a8a}.type-ground{--type-color:#8e712b}.type-flying{--type-color:#6f5ec4}.type-psychic{--type-color:#d13b6c}.type-bug{--type-color:#6f7d14}.type-rock{--type-color:#857428}.type-ghost{--type-color:#5a4682}.type-dragon{--type-color:#5a2fd6}.type-dark{--type-color:#5a463a}.type-steel{--type-color:#6f6f8c}.type-fairy{--type-color:#b04f86}.pokemon-identity{align-items:center;gap:12px;display:flex}.pokemon-identity-names{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.pokemon-identity-species{margin:0;font-weight:600}.pokemon-identity-species span,.row-hint{color:var(--muted);font-weight:400}.points-badge{color:#fff;vertical-align:middle;background:var(--accent);border-radius:999px;margin-left:8px;padding:1px 8px;font-size:.7rem}.pain-note{margin-top:8px}.ability-slot{width:100%;font:inherit;color:inherit;text-align:left;background:var(--bg);cursor:pointer;border:1px solid #0000;border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.ability-slot:hover{border-color:var(--accent)}.ability-slot-name{flex-wrap:wrap;align-items:center;gap:6px;width:100%;display:flex}.ability-slot-change{color:var(--muted);margin-left:auto;font-size:.8rem}.ability-slot-description{color:var(--muted);font-size:.875rem;line-height:1.45}.small-button{font:inherit;color:var(--text);background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:8px;margin-top:8px;padding:4px 12px;font-size:.85rem;font-weight:600}.small-button:hover:not(:disabled){border-color:var(--accent)}a.party-slot,a.box-entry{text-decoration:none}.move-slots{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.move-slot{width:100%;font:inherit;color:inherit;text-align:left;background:var(--bg);cursor:pointer;border:1px solid #0000;border-radius:8px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.move-slot:hover{border-color:var(--accent)}.move-slot[class*=type-]{background:color-mix(in srgb, var(--type-color) 9%, var(--bg));border-left:5px solid var(--type-color)}.move-slot[class*=type-]:hover{border-color:var(--accent);border-left-color:var(--type-color)}.move-slot-contest{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.8rem;line-height:1.4;display:-webkit-box;overflow:hidden}.mode-switch{background:var(--bg);border:1px solid var(--border);border-radius:999px;margin-bottom:10px;padding:3px;display:inline-flex}.mode-switch button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:5px 16px;font-size:.85rem;font-weight:700}.mode-switch button[aria-pressed=true]{color:#fff;background:var(--accent)}.contest-badge{color:#fff;letter-spacing:.02em;text-transform:uppercase;background:#6b6b6b;border-radius:4px;padding:1px 8px;font-size:.7rem;font-weight:700;line-height:1.5}.contest-cool{background:#c62828}.contest-beautiful{background:#1f5fbf}.contest-cute{background:#b83280}.contest-clever{background:#2e7d32}.contest-tough{background:#8a6d00}.move-slot-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.move-slot-numbers{color:var(--muted);flex-wrap:wrap;gap:4px 12px;font-size:.8rem;display:flex}.move-slot-pp{font-variant-numeric:tabular-nums;margin-left:auto}.move-slot.empty-pp .move-slot-pp{color:var(--error);font-weight:700}.move-slots .move-slot-empty{margin-top:0}.restore-all{margin-top:10px}.defenses-intro{margin-bottom:4px}.defense-list{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.defense-list li{background:var(--bg);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:4px 8px;display:flex}.defense-weak{color:var(--error)}.defense-immune{color:var(--muted)}.party-hp-fill.hp-mid{background:#d4a106}.party-hp-fill.hp-low{background:#c62828}.hp-bar .hp-bar-fill.hp-mid{background:#d4a10659}.hp-bar .hp-bar-fill.hp-low{background:#c628284d}.party-slot-tags{flex-wrap:wrap;gap:4px;display:flex}.status-tags{flex-wrap:wrap;gap:4px;display:inline-flex}.status-tag{--status-color:var(--error);color:var(--text);background:color-mix(in srgb, var(--status-color) 16%, transparent);border:1px solid color-mix(in srgb, var(--status-color) 60%, transparent);border-radius:999px;padding:1px 8px;font-size:.7rem;font-weight:700}.status-burned{--status-color:#e8590c}.status-frostbitten{--status-color:#3b9fd1}.status-paralyzed{--status-color:#e0b000}.status-poisoned{--status-color:#9c36b5}.status-badly-poisoned{--status-color:#5f1f8f}.status-asleep{--status-color:#5c6b8a}.status-confused{--status-color:#d6336c}.status-infatuated{--status-color:#f06595}.status-flinched{--status-color:#868e96}.held-tag{color:var(--text);background:color-mix(in srgb, var(--accent) 12%, transparent);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:999px;padding:1px 8px;font-size:.7rem;font-weight:700}.party-list li[draggable=true],.box-list li[draggable=true]{cursor:grab}.party-list li.dragging,.box-list li.dragging{opacity:.4}.party-list li.drop-before{box-shadow:0 -3px 0 var(--accent)}.party-list li.drop-after{box-shadow:0 3px 0 var(--accent)}.party-list.drop-here,.box-area.drop-here{outline:2px dashed var(--accent);outline-offset:2px;border-radius:8px}.drag-handle{letter-spacing:-2px;color:var(--muted);align-self:stretch;align-items:center;font-size:.8rem;display:flex}.party-list .party-empty{margin:0;padding:12px 4px}.party-hint{margin-top:6px;font-size:.8rem}.party-links{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.party-link{color:inherit;background:var(--bg);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:2px;padding:10px 12px;text-decoration:none;display:flex}.party-link:hover{border-color:var(--accent)}.party-link span{color:var(--muted);font-size:.8rem}.sheet-dialog{width:calc(100% - 32px);color:var(--text)}.sheet-dialog::backdrop{background:#0a0c128c}.sheet-dialog h1{margin-bottom:16px}.dialog-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.dialog-row>div{flex-direction:column;gap:8px;min-width:0;display:flex}.dialog-actions{gap:8px;margin-top:8px;display:flex}.dialog-actions button{flex:1;margin-top:0}.button-danger,.auth-card .button-danger{background:#8b1a1a}.auth-card .button-danger:hover:not(:disabled){background:#6e1414}.settings-list{flex-direction:column;gap:8px;display:flex}.settings-list button{margin-top:0}.action-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-top:16px;display:grid}.auth-card .action-grid button{margin-top:0}.action-grid:empty{display:none}.sheet-dialog>label{margin-bottom:8px;display:block}.sheet-dialog>input,.sheet-dialog>select{width:100%}.auth-card .damage-type-effect{margin:6px 0 12px}.seal-check{flex-direction:column;gap:8px;display:flex}.auth-card .seal-check-condition{align-items:flex-start;gap:10px;font-weight:400;display:flex}.auth-card .seal-check-condition input{min-height:0;margin-top:3px}.seal-check-breakdown{margin:4px 0 0;padding:0;list-style:none}.seal-check-breakdown li{border-bottom:1px solid var(--border);justify-content:space-between;padding:4px 0;display:flex}.seal-check-breakdown .seal-check-total{border-bottom:none;font-weight:700}.picker-dialog{flex-direction:column;max-width:640px;max-height:calc(100vh - 32px);display:flex}.picker-dialog[open]{display:flex}.auth-card .picker-count{margin:6px 0 8px}.picker-list{border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex:1;min-height:120px;margin:0;padding:0;list-style:none;overflow-y:auto}.picker-list li+li{border-top:1px solid var(--border)}.picker-empty{color:var(--muted);padding:16px 4px}.auth-card .picker-option{text-align:left;width:100%;min-height:0;color:var(--text);background:0 0;border-radius:0;flex-direction:column;align-items:flex-start;gap:4px;margin:0;padding:10px 4px;font-weight:400;display:flex}.auth-card .picker-option:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 8%, transparent)}.auth-card .picker-option:disabled{opacity:.55;cursor:not-allowed}.auth-card .picker-option.move-option{border-left:5px solid var(--type-color,var(--border));padding-left:10px}.picker-option-title{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.picker-option-description{color:var(--muted);font-size:.85rem;line-height:1.45}.picker-tag{background:color-mix(in srgb, var(--muted) 14%, transparent);border-radius:999px;padding:1px 8px;font-size:.75rem;font-weight:600}.picker-tag.taken{background:#2ea0432e}.picker-filters{grid-template-columns:1fr 1fr;gap:12px;margin-top:8px;display:grid}.picker-filters>div{flex-direction:column;gap:8px;display:flex}.auth-card .item-tags{flex-wrap:wrap;gap:6px;margin:0 0 8px;display:flex}.auth-card .item-description{white-space:pre-line;line-height:1.5}.auth-card .species-option{flex-direction:row;align-items:center;gap:10px}.species-option-text{flex-direction:column;flex:1;min-width:0;display:flex}.species-option-text .hint{margin:0}.chosen-pokemon{align-items:center;gap:12px;margin-bottom:12px;display:flex}.chosen-pokemon .hint{margin:4px 0 0}.choose-option-form{flex-direction:column;flex:1;min-height:0;display:flex}.choose-option-list{border:none;border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex:1;min-height:120px;margin:0;padding:0;overflow-y:auto}.auth-card .choose-option{cursor:pointer;align-items:flex-start;gap:10px;padding:10px 4px;font-weight:400;display:flex}.choose-option+.choose-option{border-top:1px solid var(--border)}.choose-option:hover{background:color-mix(in srgb, var(--accent) 8%, transparent)}.choose-option.chosen{background:color-mix(in srgb, var(--accent) 12%, transparent)}.choose-option.disabled{opacity:.55;cursor:not-allowed}.auth-card .choose-option input{min-height:0;margin-top:3px}.choose-option>span{flex-direction:column;gap:2px;display:flex}.choose-option-description{color:var(--muted);font-size:.85rem;line-height:1.45}.auth-card .move-roll-detail{margin:0 0 12px}.auth-card .move-facts p{margin:0 0 8px;line-height:1.5}.auth-card .move-facts-line{font-weight:600}.auth-card .move-contest{color:var(--muted);font-size:.9rem}.picker-dialog .dialog-actions{margin-top:12px}.rank-up-dialog{max-width:600px;max-height:calc(100vh - 32px);overflow-y:auto}.rank-up-section{border:none;margin:0 0 16px;padding:0}.rank-up-section legend{margin-bottom:8px;padding:0;font-weight:700}.rank-up-left{color:var(--muted);font-weight:400}.stat-choices{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;display:grid}.stat-choice{background:var(--bg);cursor:pointer;border:2px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;display:flex}.stat-choice:has(input:disabled){cursor:not-allowed;opacity:.55}.stat-choice.chosen,.skill-choice.chosen{background:#2ea04324;border-color:#2ea043b3}.stat-choice input{accent-color:#2ea043;width:18px;height:18px;min-height:0;margin:0}.stat-choice-name,.skill-choice-name{flex:1;min-width:0;font-weight:600}.stat-choice-value,.skill-choice-value{white-space:nowrap;font-weight:700}.skill-choices{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px;display:grid}.skill-choice{background:var(--bg);border:2px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:6px 6px 6px 10px;display:flex}.skill-choice-value{text-align:center;min-width:46px}.skill-choice-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.auth-card .skill-choice button{width:30px;min-height:30px;color:var(--text);background:var(--card);border:1px solid var(--border);flex-shrink:0;margin:0;padding:0;font-size:1.1rem;line-height:1}.auth-card .skill-choice button:hover:not(:disabled){background:var(--card);border-color:var(--text)}.auth-card .skill-choice button:disabled{opacity:.35;cursor:not-allowed}.rank-up-picker{max-height:280px;margin-top:8px}.sheet-dialog .rank-up-section>input{width:100%}.chosen-chips{flex-wrap:wrap;gap:6px;margin:0 0 8px;padding:0;list-style:none;display:flex}.chosen-chips li{background:#2ea04329;border:1px solid #2ea04399;border-radius:999px;align-items:center;gap:4px;padding:3px 4px 3px 10px;font-size:.875rem;font-weight:600;display:inline-flex}.auth-card .chosen-chips button{width:22px;min-height:22px;color:var(--text);background:0 0;border-radius:50%;margin:0;padding:0;font-size:1rem;line-height:1}.auth-card .chosen-chips button:hover{background:#2ea04340}.pokedex-page{color:#d7fff1;background:radial-gradient(circle at 0 0,#ffffff29,#0000 26%),linear-gradient(135deg,#8d151b 0%,#bd2028 42%,#5b0b10 100%);min-height:100vh}.pokedex-shell{width:min(1900px,100%);margin:0 auto;padding:18px}.pokedex-topbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.pokedex-eyebrow{color:#ffffffc2;letter-spacing:.16em;text-transform:uppercase;margin:0 0 4px;font-size:.75rem;font-weight:900}.pokedex-title{color:#fff;letter-spacing:-.06em;text-shadow:0 3px #00000038;margin:0;font-size:clamp(2rem,4vw,4rem);line-height:1}.pokedex-close-button,.pokedex-action-button{font:inherit;color:#fff;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;background:#111827;border:1px solid #ffffff47;border-radius:10px;padding:9px 14px;font-weight:900;text-decoration:none}.pokedex-close-button:hover,.pokedex-action-button:hover:not(:disabled){filter:brightness(1.12)}.pokedex-action-button:disabled{opacity:.6;cursor:not-allowed}.pokedex-action-button.primary{background:#c62828}.pokedex-action-button.secondary{background:#555}.pokedex-console{background:#2b0509;border:4px solid #1b0305;border-radius:22px;grid-template-columns:220px minmax(0,1fr);gap:14px;padding:16px;display:grid;box-shadow:inset 0 0 0 2px #ffffff14,0 18px 44px #00000059}.pokedex-side-panel{background:linear-gradient(#ffffff1f,#0000),#960f18;border:2px solid #0000007a;border-radius:18px;min-width:0;padding:14px}.pokedex-lens{background:radial-gradient(circle at 35% 30%,#fff 0 10%,#83ecff 11% 30%,#1287b9 31% 62%,#05293d 63% 100%);border:6px solid #e5f8ff;border-radius:999px;width:92px;height:92px;position:relative;box-shadow:0 0 0 4px #111827,0 10px 20px #00000061}.pokedex-lens-shine{background:#ffffffbd;border-radius:999px;width:24px;height:16px;position:absolute;top:16px;left:18px;transform:rotate(-25deg)}.pokedex-status-lights{gap:8px;margin:18px 0;display:flex}.pokedex-status-lights span{border:2px solid #00000073;border-radius:999px;width:18px;height:18px}.pokedex-status-lights span:first-child{background:#ef4444}.pokedex-status-lights span:nth-child(2){background:#facc15}.pokedex-status-lights span:nth-child(3){background:#22c55e}.pokedex-readout{color:#6dffb5;background:#0b1f1a;border:2px solid #04110e;border-radius:10px;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.pokedex-readout+.pokedex-readout{margin-top:12px}.pokedex-readout strong{font-size:2rem;line-height:1;display:block}.pokedex-readout span{text-transform:uppercase;margin-top:4px;font-size:.72rem;display:block}.pokedex-screen{background:linear-gradient(#12ffb20f 50%,#0000000f 50%) 0 0/100% 4px,radial-gradient(circle,#5fffb829,#0000 55%),#10251f;border:3px solid #06120f;border-radius:16px;min-width:0;padding:12px;box-shadow:inset 0 0 30px #00000085}.pokedex-controls{flex-wrap:wrap;gap:10px;margin-bottom:10px;display:flex}.pokedex-search,.pokedex-select{min-width:0;min-height:42px;font:inherit;color:#d7fff1;background:#071712;border:1px solid #6dffb552;border-radius:10px;outline:none;padding:10px}.pokedex-search{flex:240px}.pokedex-select{flex:0 180px}.pokedex-search::placeholder{color:#d7fff18c}.pokedex-search:focus,.pokedex-select:focus{border-color:#6dffb5;box-shadow:0 0 0 3px #6dffb51f}.pokedex-empty{color:#6dffb5;margin:8px 0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.pokedex-error{color:#fecaca;background:#ef444429;border:1px solid #ef444457;border-radius:10px;margin:12px 0 0;padding:9px;font-size:.78rem;line-height:1.25}.pokedex-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.pokedex-grid.box-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.dex-card{color:#d7fff1;text-align:center;background:linear-gradient(#6dffb521,#6dffb508),#071712;border:1px solid #6dffb53d;border-radius:10px;flex-direction:column;gap:4px;min-width:0;height:100%;min-height:142px;padding:6px;text-decoration:none;transition:transform .12s,border-color .12s,box-shadow .12s;display:flex}a.dex-card:hover,.box-grid .dex-card:hover{border-color:#6dffb5b3;transform:translateY(-2px);box-shadow:0 0 16px #6dffb52e}.dex-card-link{color:inherit;flex-direction:column;flex:1;align-items:center;gap:4px;text-decoration:none;display:flex}.dex-card-number{color:#6dffb5;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.68rem;font-weight:900;line-height:1}.dex-card-sprite{place-items:center;min-height:60px;display:grid}.dex-card-name{color:#f7fffb;overflow-wrap:anywhere;place-items:center;min-height:24px;margin:0;font-size:.78rem;line-height:1.1;display:grid}.dex-card-species{color:#d7fff1b8;font-size:.68rem}.pokedex-page .type-badges{justify-content:center;margin-top:auto}.pokedex-page .type-badge{border-radius:999px;padding:3px 6px;font-size:.55rem;line-height:1}.pokedex-page .status-tag{color:#f7fffb;background:color-mix(in srgb, var(--status-color) 40%, transparent);border-color:var(--status-color);font-size:.6rem}.pokedex-page .held-tag{color:#d7fff1;background:#6dffb51f;border-color:#6dffb566;font-size:.6rem}.pokedex-page .party-hp{width:100%}.pokedex-page .party-hp-track{background:#6dffb524}.pokedex-page .party-hp-numbers{color:#6dffb5;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.7rem}.dex-card .pokedex-action-button{width:100%;margin-top:4px;padding:6px 8px;font-size:.72rem}.dex-card.missing .pokemon-sprite{filter:brightness(0);opacity:.45}.dex-card.missing .dex-card-name{color:#d7fff18c}.dex-card-missing{color:#d7fff18c;text-transform:uppercase;margin-top:auto;font-size:.6rem}.dex-card.caught{border-color:#6dffb58c}.pokedex-modal{color:#d7fff1;background:#10251f;border:2px solid #6dffb5;border-radius:16px;width:min(560px,100vw - 32px);max-width:none;padding:18px;box-shadow:0 10px 32px #0000008c}.pokedex-modal::backdrop{background:#000000ad}.pokedex-modal-preview{align-items:center;gap:12px;display:flex}.pokedex-modal-preview .pokemon-sprite{background:#071712;border:1px solid #6dffb53d;border-radius:12px}.pokedex-modal-preview span{color:#6dffb5;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:900}.pokedex-modal-preview h2{margin:2px 0 0}.pokedex-modal-note{color:#d7fff1c7;margin:10px 0 0;font-size:.85rem;line-height:1.35}.pokedex-modal-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.pokedex-party-swap{border-top:1px solid #6dffb53d;margin-top:16px;padding-top:14px}.pokedex-party-swap h3{color:#6dffb5;letter-spacing:.12em;text-transform:uppercase;margin:0 0 10px;font-size:.8rem}.pokedex-party-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.pokedex-party-card{min-width:0;font:inherit;color:#d7fff1;text-align:center;cursor:pointer;background:linear-gradient(#6dffb51f,#6dffb508),#071712;border:1px solid #6dffb547;border-radius:12px;justify-items:center;gap:4px;padding:8px;display:grid}.pokedex-party-card:hover:not(:disabled){border-color:#6dffb5bd;box-shadow:0 0 16px #6dffb529}.pokedex-party-card:disabled{opacity:.6;cursor:not-allowed}.pokedex-party-card strong{color:#f7fffb;font-size:.78rem;line-height:1.1}@media (width<=1150px){.pokedex-console{grid-template-columns:1fr}.pokedex-side-panel{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.pokedex-status-lights{margin:0}.pokedex-readout+.pokedex-readout{margin-top:0}}@media (width<=700px){.pokedex-shell,.pokedex-console{padding:10px}.pokedex-lens{width:70px;height:70px}.pokedex-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}.pokedex-party-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pokedex-modal-actions{flex-direction:column}}.themed{min-height:100vh;color:var(--text);background:var(--page-bg,var(--bg))}.theme-default{--bg:#f4f5f7;--card:#fff;--text:#1d2330;--muted:#5d6678;--border:#d5d9e0;--sheet-red:#c62828;--sheet-blue:#d32f2f;--sheet-gray:#b71c1c}@media (prefers-color-scheme:dark){.theme-default{--bg:#14171f;--card:#1e222c;--text:#e8eaef;--muted:#a0a7b5;--border:#363c4a}}.theme-classic{--bg:#f4f4f4;--card:#fff;--text:#111;--muted:#555;--border:#cfcfcf;--sheet-red:#c62828;--sheet-blue:#d32f2f;--sheet-gray:#b71c1c;--accent:#c62828;--accent-hover:#a51f1f;--error:#b42323;--shadow:0 2px 8px #0000002e}.theme-rocket{--bg:#111;--card:#1a1a1a;--text:#f5f5f5;--muted:#bbb;--border:#500;--sheet-red:#c00000;--sheet-blue:#700;--sheet-gray:#333;--accent:#c00000;--accent-hover:#900;--error:#ff9494;--shadow:0 8px 24px #0006}.theme-goldenrod{--bg:#d6c18f;--card:#f1dfae;--text:#2b2b2b;--muted:#4d4d4d;--border:#888;--sheet-red:#7a6100;--sheet-blue:#6b6b6b;--sheet-gray:#5f5f5f;--accent:#7a6100;--accent-hover:#5e4b00;--error:#9e1c1c;--shadow:0 2px 8px #0000002e}.theme-aqua{--bg:#dff6ff;--card:#fff;--text:#102030;--muted:#466070;--border:#9ed6ea;--sheet-red:#007a9e;--sheet-blue:#0b6f99;--sheet-gray:#3f7a90;--accent:#007a9e;--accent-hover:#005f7a;--error:#b42323;--shadow:0 2px 8px #00283c26}.theme-burning{--bg:#3a0f0f;--card:#5a1a1a;--text:#fff3f3;--muted:#ffcaca;--border:#a52828;--sheet-red:#c42a20;--sheet-blue:#c62828;--sheet-gray:#8b1e1e;--accent:#c42a20;--accent-hover:#a01f17;--error:#ffc2c2;--shadow:0 8px 24px #0006}.theme-turf{--bg:#dcefd8;--card:#eef8ea;--text:#17311b;--muted:#446148;--border:#9dc79d;--sheet-red:#2e7d32;--sheet-blue:#2f7a33;--sheet-gray:#4a7a4e;--accent:#2e7d32;--accent-hover:#225e25;--error:#a31d1d;--shadow:0 2px 8px #00280026}.theme-pride{--page-bg:linear-gradient(135deg, #ff0018, #ffa52c, #ffff41, #008018, #0000f9, #86007d);--bg:#f3f3f7;--card:#fffffff0;--text:#111;--muted:#444;--border:#d0d0d8;--sheet-red:#d4005b;--sheet-blue:#1f66d6;--sheet-gray:#8338ec;--accent:#d4005b;--accent-hover:#a80048;--error:#b42323;--shadow:0 2px 10px #00000040}.theme-parchment{--bg:#d8c29d;--card:#f2dfbd;--text:#22160f;--muted:#5f4636;--border:#9c7b5b;--sheet-red:#8a2f1f;--sheet-blue:#a3472d;--sheet-gray:#7a5c42;--accent:#8a2f1f;--accent-hover:#6c2418;--error:#8e1b1b;--shadow:0 2px 8px #3c281433}.settings-heading{margin:0 0 8px;font-size:.875rem;font-weight:600}.theme-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin-bottom:20px;display:grid}.auth-card .theme-option{min-height:0;color:var(--text);background:var(--card);border:2px solid var(--border);flex-direction:column;align-items:flex-start;gap:6px;margin-top:0;padding:8px 10px;font-size:.875rem;font-weight:600;display:flex}.auth-card .theme-option:hover:not(:disabled){background:var(--card);border-color:var(--text)}.auth-card .theme-option[aria-pressed=true]{border-color:var(--focus);box-shadow:0 0 0 1px var(--focus)}.theme-swatches{gap:4px;display:flex}.theme-swatches span{border-radius:50%;width:18px;height:18px}.swatch-red{background:var(--sheet-red)}.swatch-blue{background:var(--sheet-blue)}.swatch-gray{background:var(--sheet-gray)}.theme-pride .home-main{background:var(--card);box-shadow:var(--shadow);border-radius:16px;margin-top:24px;margin-bottom:24px}@media (width<=560px){.theme-pride .home-main{margin:12px}}
