:root{--color-bg:#f6f8fb;--color-surface:#fff;--color-surface-strong:#eef4f7;--color-text:#17212b;--color-muted:#5f6f7f;--color-border:#d8e2ea;--color-primary:#0f766e;--color-primary-hover:#115e59;--color-primary-soft:#d9f3ef;--color-secondary:#4257b2;--color-accent:#d95f39;--color-danger:#b42318;--color-danger-bg:#fff0ed;--color-success:#167647;--color-success-bg:#e8f6ef;--shadow-sm:0 1px 2px rgba(23,33,43,.08);--shadow-md:0 16px 40px rgba(23,33,43,.12)}html[data-theme=midnight]{--color-bg:#101827;--color-surface:#182235;--color-surface-strong:#23324a;--color-text:#f7fafc;--color-muted:#bac6d3;--color-border:#33445e;--color-primary:#63d6c5;--color-primary-hover:#8be5d8;--color-primary-soft:#193f46;--color-secondary:#9fa8ff;--color-accent:#ff9f76;--color-danger:#ff9b92;--color-danger-bg:#3f2023;--color-success:#7ee2a8;--color-success-bg:#1d3b2d;--shadow-sm:0 1px 2px rgba(0,0,0,.28);--shadow-md:0 18px 46px rgba(0,0,0,.34)}html[data-theme=orchard]{--color-bg:#fbf7f2;--color-surface:#fff;--color-surface-strong:#f1ebe1;--color-text:#2c2723;--color-muted:#70675f;--color-border:#e1d7ca;--color-primary:#8f3f31;--color-primary-hover:#743327;--color-primary-soft:#f6ded7;--color-secondary:#2f6f73;--color-accent:#b6771d;--color-danger:#a5281f;--color-danger-bg:#fff0ed;--color-success:#216e43;--color-success-bg:#eaf5ee}html[data-theme=champions]{--color-bg:#1a1a1d;--color-surface:#242428;--color-surface-strong:#2e2e34;--color-text:#f3f2f7;--color-muted:#a8a6b3;--color-border:#3c3c45;--color-primary:#7c3aed;--color-primary-hover:#9461f2;--color-primary-soft:#2f2348;--color-secondary:#c4b5fd;--color-accent:#a78bfa;--color-danger:#f87171;--color-danger-bg:#3b2226;--color-success:#6ee7b7;--color-success-bg:#1d3a2f;--shadow-sm:0 1px 2px rgba(0,0,0,.35);--shadow-md:0 18px 46px rgba(0,0,0,.4)}*{box-sizing:border-box}html{background:var(--color-bg)}body,html{min-height:100%}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--color-text);background:linear-gradient(180deg,var(--color-surface-strong) 0,var(--color-bg) 360px);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--color-primary);font-weight:700;text-decoration:none}a:hover{color:var(--color-primary-hover)}button,input{font:inherit}button{min-height:48px;padding:.85rem 1rem;border:0;border-radius:8px;color:#fff;background:var(--color-primary);box-shadow:var(--shadow-sm);cursor:pointer;font-weight:800;transition:background-color .16s ease,box-shadow .16s ease,transform .16s ease}button:hover:not(:disabled){background:var(--color-primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.68}input{width:100%;min-height:48px;padding:.8rem .9rem;border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);background:var(--color-surface);font-size:1rem;transition:border-color .16s ease,box-shadow .16s ease}input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-soft)}label{display:block;margin-bottom:.45rem;color:var(--color-text);font-size:.9rem;font-weight:800}p{line-height:1.7}.app-shell{min-height:100vh}.site-nav{position:-webkit-sticky;position:sticky;top:0;z-index:10;border-bottom:1px solid color-mix(in srgb,var(--color-border),transparent 25%);background:color-mix(in srgb,var(--color-surface),transparent 8%);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.nav-inner{display:flex;justify-content:space-between;max-width:1120px;margin:0 auto;padding:1rem 1.25rem;gap:1rem}.brand,.nav-inner{align-items:center}.brand{display:inline-flex;gap:.65rem;color:var(--color-text);font-size:1rem;font-weight:900}.brand-mark{display:grid;width:34px;height:34px;place-items:center;border-radius:8px;color:#fff;background:var(--color-primary);box-shadow:var(--shadow-sm)}.nav-links{display:flex;align-items:center;gap:.25rem}.nav-link{border-radius:8px;color:var(--color-muted);font-size:.92rem;font-weight:800;padding:.65rem .85rem}.nav-link:hover{color:var(--color-text);background:var(--color-primary-soft)}.nav-button{min-height:auto;padding:.65rem .85rem;border:1px solid var(--color-border);color:var(--color-text);background:var(--color-surface);box-shadow:none;font-size:.92rem}.nav-button:hover:not(:disabled){color:#fff;background:var(--color-primary);box-shadow:var(--shadow-sm)}.page{width:min(1120px,calc(100% - 2rem));margin:0 auto;padding:3.5rem 0}.hero{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(280px,.88fr);grid-gap:2rem;gap:2rem;align-items:center;min-height:calc(100vh - 190px)}.hero-content{max-width:680px}.eyebrow{display:inline-flex;width:-moz-fit-content;width:fit-content;align-items:center;gap:.45rem;margin:0 0 1rem;padding:.38rem .7rem;border:1px solid var(--color-border);border-radius:999px;color:var(--color-secondary);background:var(--color-surface);font-size:.78rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.hero h1,.page-header h1{max-width:760px;margin:0;color:var(--color-text);font-size:clamp(2.35rem,6vw,4.9rem);line-height:.98}.lead{max-width:680px;margin:1.35rem 0 0;color:var(--color-muted);font-size:1.15rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:1.8rem}.button-link,.secondary-link{display:inline-flex;min-height:48px;align-items:center;justify-content:center;border-radius:8px;font-weight:900;padding:.85rem 1rem}.button-link{color:#fff;background:var(--color-primary);box-shadow:var(--shadow-sm)}.button-link:hover{color:#fff;background:var(--color-primary-hover);box-shadow:var(--shadow-md)}.secondary-link{border:1px solid var(--color-border);color:var(--color-text);background:var(--color-surface)}.secondary-link:hover{color:var(--color-text);border-color:var(--color-primary)}.auth-card,.status-panel{border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);box-shadow:var(--shadow-md)}.status-panel{padding:1.2rem}.status-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--color-border)}.status-row:last-child{border-bottom:0}.status-label{color:var(--color-muted);font-size:.84rem;font-weight:800}.status-value{color:var(--color-text);font-weight:900;text-align:right}.feature-section{padding:0 0 4rem}.section-heading{max-width:720px;margin:0 0 1.25rem;font-size:1.8rem}.home-section-lead{margin-top:0;max-width:720px}.feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:1rem;gap:1rem;margin:0;padding:0;list-style:none}.feature-card{min-height:150px;padding:1.1rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);box-shadow:var(--shadow-sm)}.feature-card strong{display:block;margin-bottom:.45rem;font-size:1rem}.feature-card span{color:var(--color-muted);font-size:.94rem;line-height:1.55}.auth-page{display:grid;place-items:center;min-height:calc(100vh - 120px);padding-top:2rem;padding-bottom:2rem}.auth-card{width:min(100%,440px);padding:1.75rem;box-shadow:var(--shadow-md)}.auth-card h1{margin:0;font-size:1.8rem;line-height:1.15;text-align:center}.auth-card .lead{margin:.6rem auto 0;max-width:320px;font-size:.96rem;line-height:1.55;text-align:center}.auth-form{display:grid;grid-gap:.95rem;gap:.95rem;margin-top:1.45rem}.form-footer{margin:1.1rem 0 0;color:var(--color-muted);font-size:.95rem;text-align:center}.error-message{border:1px solid color-mix(in srgb,var(--color-danger),transparent 62%);border-radius:8px;color:var(--color-danger);background:var(--color-danger-bg)}.error-message,.success-message{padding:.85rem .95rem;font-weight:700}.success-message{border:1px solid color-mix(in srgb,var(--color-success),transparent 62%);border-radius:8px;color:var(--color-success);background:var(--color-success-bg)}.team-form-card{width:min(100%,520px)}.team-textarea{width:100%;min-height:120px;padding:.8rem .9rem;border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);background:var(--color-surface);font-size:1rem;resize:vertical;transition:border-color .16s ease,box-shadow .16s ease}.team-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-soft)}.team-textarea:disabled,input:disabled{cursor:not-allowed;opacity:.72}.teams-empty-card{width:min(100%,560px);padding:1.75rem;text-align:center}.teams-empty-card h2{margin:0;font-size:1.4rem}.teams-empty-card .lead{margin:.75rem auto 1.25rem}.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:1rem;gap:1rem;margin:0;padding:0;list-style:none}.team-card{display:grid;grid-gap:.85rem;gap:.85rem;padding:1.2rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);box-shadow:var(--shadow-sm)}.team-card-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem}.team-card h2{min-width:0;margin:0;font-size:1.15rem;overflow-wrap:anywhere}.team-card-description{margin:0;color:var(--color-muted);line-height:1.55}.team-role-badge{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;max-width:100%;box-sizing:border-box;padding:.3rem .65rem;border-radius:999px;color:var(--color-secondary);background:var(--color-primary-soft);font-size:.72rem;font-weight:800;line-height:1.2;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}.team-meta{display:flex;align-items:center;gap:.75rem;margin-top:1rem}.team-meta-text{color:var(--color-muted);font-size:.9rem}.document-page{width:min(860px,calc(100% - 2rem))}.page-header{margin-bottom:2rem}.updated-date{margin:1rem 0 0;color:var(--color-muted);font-style:italic}.policy-section{margin-top:1rem;padding:1.25rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface)}.policy-section h2{margin:0 0 .75rem;font-size:1.15rem}.policy-section p{margin:0;color:var(--color-muted)}.policy-section p+p,.policy-section p+ul{margin-top:.85rem}.policy-section ul{margin:0;padding-left:1.25rem;color:var(--color-muted)}.policy-section li+li{margin-top:.45rem}@media (max-width:860px){.nav-inner{align-items:flex-start;flex-direction:column}.nav-links{width:100%;flex-wrap:wrap}.hero{grid-template-columns:1fr;min-height:auto}.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.page{width:min(100% - 1rem,1120px);padding:2rem 0}.hero h1,.page-header h1{font-size:2.45rem}.button-link,.hero-actions,.secondary-link{width:100%}.feature-grid{grid-template-columns:1fr}.auth-card{padding:1.4rem}}.battle-page{max-width:1120px}.profile-page .page-header{text-align:center}.profile-page .page-header .lead{margin-left:auto;margin-right:auto}.profile-page .profile-panel{width:min(100%,440px);margin:0 auto 1.5rem}.profile-page .profile-billing{width:min(100%,440px);margin:0 auto;text-align:center}.profile-page .profile-billing h2{margin:0 0 .4rem;font-size:1.25rem}.profile-page .profile-billing .lead{margin:0 auto 1rem}.profile-page .profile-billing-actions{justify-content:center}.battles-page .page-header,.profile-page>.error-message,.profile-page>.lead{text-align:center}.battles-page .page-header .lead{margin-left:auto;margin-right:auto}.battles-page .hero-actions{justify-content:center}.battles-page .battle-upload-progress{margin-left:auto;margin-right:auto}.battles-page .battle-usage-line,.battles-page>.error-message,.battles-page>.lead{text-align:center}.battles-page .teams-empty-card{margin:0 auto}.battles-page .team-card{text-align:center;justify-items:center}.battles-page .team-card-header{width:100%;flex-direction:column;align-items:center;justify-content:center;gap:.55rem}.battles-page .team-card-description{width:100%}.battles-page .battle-card-actions{justify-content:center;width:100%}.battle-status-badge{min-height:1.6rem;padding-inline:.75rem}.battle-usage-line{margin:0 0 1.25rem;color:var(--color-muted)}.battle-upsell{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem 1.25rem;width:min(100%,640px);margin:0 auto 1.75rem;padding:1rem 1.15rem;border:1px solid color-mix(in srgb,var(--color-primary) 45%,var(--color-border));border-radius:12px;background:color-mix(in srgb,var(--color-primary-soft) 70%,var(--color-surface));text-align:left}.battle-upsell-copy{flex:1 1 16rem;min-width:0}.battle-upsell-copy strong{display:block;color:var(--color-text);font-size:1rem}.battle-upsell-copy p{margin:.35rem 0 0;color:var(--color-muted);font-size:.94rem;line-height:1.5}.battle-upsell-cta{flex:0 0 auto;min-height:44px;padding:.7rem 1rem;white-space:nowrap;border:0;cursor:pointer}.battle-upsell-actions{display:flex;flex-wrap:wrap;gap:.65rem;justify-content:center}.battle-upsell-cta:disabled{cursor:not-allowed;opacity:.68}.battle-file-label.is-disabled{cursor:not-allowed;opacity:.68;box-shadow:none}.battle-file-label.is-disabled:hover{background:var(--color-primary);box-shadow:none}.battle-file-label{display:inline-flex;align-items:center;cursor:pointer}.battle-file-label input{display:none}.battle-upload-progress{margin-top:1rem;max-width:28rem}.battle-upload-progress-meta{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.4rem;font-size:.95rem;color:var(--color-muted)}.battle-upload-progress-track{height:.65rem;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--color-border) 55%,var(--color-surface-strong))}.battle-upload-progress-fill{height:100%;border-radius:inherit;background:var(--color-primary);transition:width .12s ease-out}.battle-card-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:.85rem}.battle-muted-text{color:var(--color-muted);font-size:.92rem}.battle-share-bar{gap:.85rem 1.25rem;margin-bottom:1.25rem;padding:.9rem 1rem;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface)}.battle-share-actions,.battle-share-bar{display:flex;flex-wrap:wrap;align-items:center}.battle-share-actions{gap:.75rem}.battle-share-url{max-width:min(100%,420px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem}.battle-viewer{--battle-muted:var(--color-muted);--battle-hp-high:#34d399;--battle-hp-mid:#fbbf24;--battle-hp-low:#f87171;--battle-player:#6ee7b7;--battle-opponent:#fca5a5;--battle-panel:var(--color-surface);--battle-panel-2:var(--color-surface-strong);--battle-border:var(--color-border);--battle-chip:color-mix(in srgb,var(--color-border) 65%,var(--color-primary-soft))}.battle-viewer-header{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.battle-viewer-title{margin:0;font-size:1.35rem}.battle-hint,.battle-summary,.battle-turn-meta,.battle-viewer-subtitle{color:var(--battle-muted)}.battle-hint,.battle-summary,.battle-turn-meta{margin:.35rem 0 0}.battle-controls{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center}.battle-filter-toggle{display:inline-flex;align-items:center;gap:.45rem;margin:0;color:var(--battle-muted);font-weight:600;font-size:.92rem}.battle-filter-toggle input{width:1rem;min-height:1rem;accent-color:var(--color-primary)}.battle-nav-btn{min-height:42px;padding:.55rem .9rem;border:1px solid var(--battle-border);border-radius:10px;background:var(--color-surface);color:var(--color-text);box-shadow:none;font-weight:700}.battle-nav-btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.battle-nav-btn:disabled{opacity:.45}.battle-grid{display:grid;grid-template-columns:1.3fr 1fr;grid-gap:1rem;gap:1rem}.battle-panel{padding:1rem;border:1px solid var(--battle-border);border-radius:16px;background:var(--battle-panel)}.battle-headline{margin:0 0 .35rem;font-size:1.15rem}.battle-steps{display:flex;flex-direction:column;gap:.65rem;margin-top:.85rem}.battle-step{padding:.75rem .85rem;border-radius:12px;border-left:3px solid var(--color-primary);background:var(--battle-panel-2)}.battle-step.move{border-left-color:#7c3aed}.battle-step.hp_change{border-left-color:var(--battle-opponent)}.battle-step.sent_out,.battle-step.switch_in{border-left-color:var(--battle-player)}.battle-step.flinch,.battle-step.stat_change,.battle-step.status{border-left-color:#d97706}.battle-step.field,.battle-step.weather{border-left-color:#0284c7}.battle-step-top{display:flex;justify-content:space-between;gap:.75rem;align-items:baseline}.battle-step-summary{font-weight:700}.battle-chip,.battle-effect,.battle-step-time{color:var(--battle-muted);font-size:.85rem}.battle-chip{display:inline-block;margin-right:.4rem;padding:.1rem .45rem;border-radius:999px;background:var(--battle-chip);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.battle-effects{display:flex;flex-direction:column;gap:.35rem;margin-top:.5rem;padding-left:.75rem;border-left:1px solid var(--battle-border)}.battle-side-title{display:flex;justify-content:space-between;gap:.75rem;margin:0 0 .65rem;font-weight:800;font-size:.95rem}.battle-side-title.player{color:var(--battle-player)}.battle-side-title.opponent{color:var(--battle-opponent)}.battle-team-panel+.battle-team-panel{margin-top:1rem}.battle-pokemon{margin-bottom:.65rem;padding:.75rem;border-radius:12px;background:var(--battle-panel-2)}.battle-pokemon.inactive{opacity:.55}.battle-pokemon.fainted{opacity:.4}.battle-poke-row{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.45rem}.battle-poke-name{font-weight:700}.battle-poke-hp{color:var(--battle-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.battle-hp-bar{height:8px;margin-bottom:.5rem;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--color-bg) 70%,var(--color-border))}.battle-hp-fill{height:100%;border-radius:999px;transition:width .2s ease}.battle-tags{display:flex;flex-wrap:wrap;gap:.35rem}.battle-tags.effects{margin-top:.4rem}.battle-tag{padding:.15rem .5rem;border-radius:999px;background:var(--battle-chip);color:var(--color-text);font-size:.78rem}.battle-tag.move{background:#4c1d95;color:#f5f3ff}.battle-tag.status{background:#78350f;color:#fffbeb}.battle-tag.stat{background:#1e3a8a;color:#eff6ff}.battle-field-box{margin-top:.85rem;padding-top:.85rem;border-top:1px solid var(--battle-border);color:var(--battle-muted);font-size:.92rem}.battle-empty{padding:1.25rem .5rem;color:var(--battle-muted);text-align:center}.battle-hint{margin-top:1rem;text-align:center;font-size:.85rem}@media (max-width:860px){.battle-grid{grid-template-columns:1fr}}