:root{color-scheme:light;--control-height: 40px;--radius: 2px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--page-bg: #fff1df;--text: #2c211b;--muted: #75665b;--panel-bg: #fff9f1;--panel-border: #e1c3a8;--field-bg: #fffdf8;--field-border: #9e8268;--field-text: #2c211b;--label: #332720;--label-muted: #6a5648;--header-border: #744d36;--accent: #d67642;--accent-hover: #bb5d2d;--accent-soft: #ffe2ca;--accent-text: #984d27;--button-bg: #b45a2a;--button-bg-hover: #9c4a20;--button-text: #ffffff;--success-bg: #e6f4ea;--success-text: #1f6b3f;--focus: #b45a2a;--surface-hover: #f7e4d2;--suggestion-hover: #ffe8d5;--suggestion-border: #ecd6c4;--shadow: rgb(75 48 32 / .1);--menu-shadow: rgb(75 48 32 / .22);--secondary-border: #ad9078;--danger-text: #b42318;--error-border: #c62828;--error-bg: #fdecea;--warning-border: #b7791f;--warning-bg: #fef7dc;--warning-text: #854d0e;color:var(--text);background:var(--page-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}:root[data-theme=dark]{color-scheme:dark;--page-bg: #0d0d0e;--text: #f8efe5;--muted: #cfc4ba;--panel-bg: #2f2f33;--panel-border: #4a4647;--field-bg: #151516;--field-border: #8a7d76;--field-text: #f8efe5;--label: #f6eee5;--label-muted: #ddd0c4;--header-border: #6e615b;--accent: #ffb072;--accent-hover: #ffc08d;--accent-soft: #3f2c22;--accent-text: #ffc08d;--button-bg: #ffb072;--button-bg-hover: #ffc08d;--button-text: #241711;--success-bg: #173325;--success-text: #9fdcb4;--focus: #ffb072;--surface-hover: #3b3a3d;--suggestion-hover: #413126;--suggestion-border: #403c3c;--shadow: rgb(0 0 0 / .36);--menu-shadow: rgb(0 0 0 / .6);--secondary-border: #766c66;--danger-text: #ffb4ab;--error-border: #ff6b6b;--error-bg: #3b1d1b;--warning-border: #e5b53a;--warning-bg: #3a3014;--warning-text: #f5d58a}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--page-bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}.app-shell{width:min(1400px,100%);margin:0 auto;padding:16px}.app-header{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:12px 0 16px;border-bottom:2px solid var(--header-border)}.app-brand{display:flex;min-width:0;align-items:center;gap:16px}.brand-text{min-width:0}.brand-logo{flex:0 0 auto;display:block;line-height:0}.brand-logo img{width:auto;height:88px}h1,h2,h3,p{margin-top:0}.app-title{max-width:100%;margin-bottom:0;font-size:clamp(2rem,4vw,3rem);line-height:1;overflow-wrap:anywhere}.undo-toast{position:fixed;z-index:1300;top:calc(12px + env(safe-area-inset-top));left:50%;display:flex;max-width:calc(100vw - 24px);align-items:center;gap:12px;border:1px solid var(--panel-border);border-radius:var(--radius);background:var(--panel-bg);box-shadow:0 14px 32px var(--menu-shadow);padding:8px 8px 8px 16px;color:var(--text);font-weight:600;transform:translate(-50%);white-space:nowrap}.header-subtitle{max-width:720px;margin:8px 0 0;color:var(--muted);font-size:.95rem;font-weight:650;line-height:1.35}.header-subtitle a{color:var(--accent-text);display:inline-block;overflow-wrap:anywhere;text-decoration-thickness:.08em;text-underline-offset:.08em}.header-subtitle a:hover,.header-subtitle a:focus-visible{color:var(--accent-hover)}h2{margin-bottom:0;font-size:1.125rem}h3{margin-bottom:0;font-size:1rem}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:16px}.theme-toggle{display:inline-flex;min-height:var(--control-height);align-items:center;justify-content:center;gap:8px;border:1px solid var(--secondary-border);border-radius:var(--radius);background:var(--panel-bg);color:var(--text);padding:8px 12px;font-weight:700}.theme-toggle:hover{background:var(--surface-hover)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start;padding-top:16px}.main-column,.side-column{display:grid;gap:16px}.team-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.side-column{position:sticky;top:16px}.section-panel,.pokemon-slot,.actions-panel{border:1px solid var(--panel-border);border-radius:var(--radius);background:var(--panel-bg);box-shadow:0 1px 2px var(--shadow)}.section-panel,.pokemon-slot{padding:16px}.actions-panel{display:grid;gap:12px;padding:16px}.actions-row>button{white-space:nowrap}.actions-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:12px}.section-heading,.slot-heading,.action-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-heading,.slot-heading{margin-bottom:12px}.import-heading{margin-bottom:0}.import-clear-button{flex:0 0 auto}.heading-actions{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px}.collapse-button{display:inline-flex;min-height:var(--control-height);align-items:center;gap:8px;border:0;background:transparent;color:var(--text);padding:0;font-weight:800}.collapse-button:hover{color:var(--accent-text)}.collapse-button svg{transition:transform .16s ease}.collapse-button[aria-expanded=true] svg{transform:rotate(180deg)}.collapsible-body{display:grid;gap:12px;margin-top:12px}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.player-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 50px}.player-info-column{display:grid;gap:8px}.division-field{position:relative;display:block;min-width:0;height:var(--control-height);margin:0;border:1px solid var(--field-border);border-radius:var(--radius);background:var(--field-bg);padding:0 8px 0 calc(var(--in-field-label-width) + 12px);container-type:inline-size}.division-field legend{position:absolute;top:0;bottom:0;left:3px;display:flex;width:var(--in-field-label-width);align-items:center;justify-content:flex-end;padding:0;color:var(--label);font-size:1rem;font-weight:800;line-height:1;text-align:right}.division-options{display:flex;height:100%;min-width:0;align-items:center;gap:.7em;font-size:min(calc(100cqi / 14.6),1rem)}.radio-option{display:inline-flex;align-items:center;gap:.35em;color:var(--field-text);font-weight:400;white-space:nowrap}.radio-option input{width:.95em;height:.95em;margin:0;accent-color:var(--accent)}.date-field-control{position:relative;display:flex;align-items:center;gap:4px;min-height:var(--control-height);border:1px solid var(--field-border);border-radius:var(--radius);background:var(--field-bg);padding-right:8px}.date-field-control:focus-within{border-color:var(--focus);outline:2px solid var(--focus);outline-offset:1px}.date-field-control .dob-part{width:1.9em;min-width:0;min-height:0;flex-shrink:0;border:0;background:transparent;color:var(--field-text);padding:4px 0;text-align:center;line-height:1.2}.date-field-control .dob-part:focus{outline:none}.date-field-control .dob-part.dob-year{width:3.1em}.date-sep{color:var(--label-muted);font-weight:700}.slot-top-grid{display:grid;gap:8px;margin-bottom:8px}.slot-pdf-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(88px,102px);gap:12px;align-items:start}.slot-main-column,.slot-pdf-grid.no-stats{grid-template-columns:minmax(0,1fr)}.slot-stats-column{display:grid;gap:8px}.field{position:relative;display:grid;gap:4px}.replica-lookup{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin-bottom:12px}.replica-lookup .replica-field input{text-transform:uppercase;letter-spacing:.08em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.replica-lookup .replica-error{grid-column:1 / -1;margin:0;font-size:.85rem;color:var(--danger-text)}.replica-fetch-button:disabled{opacity:.6;cursor:default}.field label{font-size:.78rem;font-weight:700;color:var(--label-muted)}.field input,.field select,.field textarea{width:100%;min-width:0;border:1px solid var(--field-border);border-radius:var(--radius);background:var(--field-bg);color:var(--field-text);padding:8px;line-height:1.2}.field textarea{resize:vertical;line-height:1.35}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--focus);outline:2px solid var(--focus);outline-offset:1px}.field.is-invalid input,input.is-invalid,select.is-invalid,.division-field.is-invalid,.date-field-control.is-invalid{border-color:var(--error-border);background:var(--error-bg);box-shadow:inset 0 0 0 1px var(--error-border)}.field.is-warning input,input.is-warning,select.is-warning{border-style:dashed;border-color:var(--warning-border);background:var(--warning-bg)}.field-help{margin:0;font-size:.75rem;color:var(--muted)}.player-info-panel,.pokemon-slot{--in-field-label-width: 140px}.in-field-form .field{gap:0}.in-field-form .field>label{position:absolute;z-index:1;top:0;bottom:0;left:4px;display:flex;width:var(--in-field-label-width);align-items:center;justify-content:flex-end;color:var(--label);font-size:1rem;font-weight:800;line-height:1.05;pointer-events:none;text-align:right}.in-field-form .field.compact-label>label{font-size:.76rem}.in-field-form .field>input,.in-field-form .field>select,.in-field-form .field>textarea{padding-left:calc(var(--in-field-label-width) + 12px)}.in-field-form .date-field-control{padding-left:calc(var(--in-field-label-width) + 12px)}.in-field-form .field>input,.in-field-form .field>select{min-height:var(--control-height)}.stat-field{position:relative;display:grid;gap:0;align-content:start}.stat-field label{position:absolute;z-index:1;top:5px;left:8px;color:var(--label);font-size:.66rem;font-weight:800;line-height:1;pointer-events:none}.stat-field input{width:100%;min-width:0;min-height:var(--control-height);border:1px solid var(--field-border);border-radius:var(--radius);background:var(--field-bg);color:var(--field-text);padding:8px;line-height:1.2;text-align:center}.stat-field input.is-invalid{border-color:var(--error-border);background:var(--error-bg);box-shadow:inset 0 0 0 1px var(--error-border)}.stat-field input.is-warning{border-style:dashed;border-color:var(--warning-border);background:var(--warning-bg)}.stat-field input:focus{border-color:var(--focus);outline:2px solid var(--focus);outline-offset:1px}.autocomplete-field{z-index:0}.autocomplete-field input{text-overflow:ellipsis}.autocomplete-field.is-open{z-index:100}.autocomplete-field.is-disabled{opacity:.58}.autocomplete-field.is-disabled input{cursor:not-allowed}.suggestions{position:absolute;z-index:1000;top:calc(100% + 4px);left:0;right:0;overflow:auto;max-height:240px;border:1px solid var(--field-border);border-radius:var(--radius);background:var(--panel-bg);box-shadow:0 14px 32px var(--menu-shadow)}.suggestion{display:flex;width:100%;min-height:var(--control-height);align-items:center;justify-content:space-between;gap:8px;border:0;border-bottom:1px solid var(--suggestion-border);background:transparent;padding:8px 12px;color:var(--text);text-align:left}.suggestion:hover,.suggestion:focus,.suggestion[aria-selected=true]{background:var(--suggestion-hover)}.suggestion small{color:var(--muted)}.tag,.status-pill-group{display:inline-flex;align-items:center;gap:8px}.status-pill{display:inline-flex;min-height:28px;align-items:center;gap:8px;border-radius:var(--radius);padding:4px 8px;font-size:.76rem;font-weight:700;white-space:nowrap}.tag{background:var(--accent-soft);color:var(--accent-text)}.status-pill.valid{background:var(--success-bg);color:var(--success-text)}.status-pill.invalid{background:var(--error-bg);color:var(--danger-text)}.status-pill.warning{background:var(--warning-bg);color:var(--warning-text)}.status-pill.pending{background:var(--surface-hover);color:var(--muted)}.primary-action,.secondary-action,.icon-button{display:inline-flex;min-height:var(--control-height);align-items:center;justify-content:center;gap:8px;border-radius:var(--radius);font-weight:700;text-decoration:none}.primary-action{border:1px solid var(--button-bg);background:var(--button-bg);color:var(--button-text);padding:8px 12px}.primary-action:hover:not(:disabled){border-color:var(--button-bg-hover);background:var(--button-bg-hover)}.secondary-action{border:1px solid var(--secondary-border);background:var(--panel-bg);color:var(--text);padding:8px 12px}.secondary-action:hover{background:var(--surface-hover)}.icon-button{width:var(--control-height);border:1px solid var(--secondary-border);background:var(--panel-bg);color:var(--label-muted)}.icon-button:hover{background:var(--surface-hover);color:var(--text)}button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.slot-clear-button,.player-clear-button{flex:0 0 auto}.issue-list{display:grid;gap:8px;max-height:560px;overflow:auto}.validation-summary{margin-bottom:0}.validation-summary-button{width:100%;border:0;background:transparent;color:var(--text);cursor:pointer;padding:0;text-align:left}@media(hover:hover){.validation-summary-button:hover{background:var(--surface-hover)}}.validation-summary-button:focus-visible{outline-offset:-4px}.validation-panel .issue-list{display:none}.validation-panel.is-expanded .validation-summary{margin-bottom:12px}.validation-panel.is-expanded .issue-list{display:grid}.issue-list.compact{max-height:220px;margin-top:12px}.override-action{display:inline-flex;min-height:var(--control-height);align-items:center;justify-content:center;justify-self:center;gap:6px;border:0;background:transparent;color:var(--danger-text);padding:8px 12px;font-weight:700;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}.override-action:hover:not(:disabled){text-decoration-thickness:2px}.issue{display:grid;gap:4px;width:100%;border-left:4px solid;border-radius:var(--radius);border-top:0;border-right:0;border-bottom:0;padding:8px 12px;color:var(--text);text-align:left}.issue-group{display:grid;gap:6px}.issue-group-heading{margin:4px 0 0;color:var(--label-muted);font-size:.74rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.issue span{font-size:.84rem}.issue.error{border-color:var(--error-border);background:var(--error-bg)}.issue.warning{border-color:var(--warning-border);background:var(--warning-bg)}.issue-action{cursor:pointer}@media(hover:hover){.issue-action:hover span{text-decoration:underline;text-underline-offset:.2em}}.empty-state{margin-bottom:0;color:var(--muted)}.error-text,.warning-text{color:var(--danger-text)}@media(max-width:1320px){.player-info-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:1080px){.layout{grid-template-columns:minmax(0,1fr) 320px}.team-form{grid-template-columns:minmax(0,1fr)}}@media(max-width:760px){.app-shell{padding:12px 12px var(--mobile-floating-tray-clearance, calc(220px + env(safe-area-inset-bottom)) )}.app-header{display:grid;grid-template-columns:minmax(0,1fr) var(--control-height);align-items:start;width:100%;min-width:0}.app-brand{grid-column:1 / -1;grid-row:1;width:100%;min-width:0}.app-title{width:100%;font-size:clamp(1.42rem,6.4vw,1.9rem);line-height:1.05}.header-subtitle{width:auto;margin-right:calc(-1 * (var(--control-height) + 8px));font-size:min(.88rem,calc((100vw - 24px) / 35.6));white-space:nowrap}.header-actions{z-index:2;grid-column:2;grid-row:1;align-self:start;justify-self:end}.theme-toggle{width:var(--control-height);gap:0;padding:0}.theme-toggle span{display:none}.brand-logo img{height:64px}.app-brand{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"logo title" "subtitle subtitle";align-items:center;gap:0 12px;padding-right:calc(var(--control-height) + 8px)}.brand-text{display:contents}.brand-logo{grid-area:logo}.app-brand .app-title{grid-area:title}.app-brand .header-subtitle{grid-area:subtitle}.import-paste-button{width:var(--control-height);padding:0}.import-paste-label{display:none}.layout,.form-grid,.player-info-grid,.team-form{grid-template-columns:1fr}.import-heading,.action-row{align-items:start}.field input,.field select,.field textarea,.stat-field input,.division-field{scroll-margin-block-end:calc(var(--mobile-floating-tray-clearance, calc(220px + env(safe-area-inset-bottom)) ) + 8px)}.player-info-panel{--in-field-label-width: 140px}.player-info-panel .field>label{line-height:1;white-space:normal}.player-info-panel .field>label[for=trainer-name],.player-info-panel .field>label[for=team-name]{font-size:.76rem}.player-info-panel .field>label[for=switch-profile]{font-size:.86rem}.side-column{position:fixed;z-index:1200;top:auto;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));left:12px;display:flex;flex-direction:column;gap:16px;max-height:min(48vh,380px);overflow:hidden;overscroll-behavior:contain;transform:translateY(0);transition:opacity .16s ease,transform .16s ease}.app-shell.is-mobile-field-editing{padding-bottom:12px}.app-shell.is-mobile-field-editing .side-column{opacity:0;pointer-events:none;transform:translateY(calc(100% + 28px + env(safe-area-inset-bottom)))}.side-column .section-panel,.side-column .actions-panel{box-shadow:0 14px 32px var(--menu-shadow)}.validation-panel{display:flex;flex-direction:column;flex:0 1 auto;min-height:0;overflow:hidden;padding:0}.side-column .actions-panel{flex:0 0 auto}.validation-panel .section-heading{align-items:center;margin-bottom:0}.validation-summary{min-height:44px;padding:0 16px}.validation-panel .issue-list{flex:1 1 auto;min-height:0;max-height:156px;margin:0 16px 16px}.validation-panel.is-expanded .validation-summary{margin-bottom:0}.validation-panel .empty-state{display:none}.actions-panel{grid-template-columns:minmax(0,1fr);gap:8px;padding:16px}.actions-row{gap:8px}.actions-panel .primary-action,.actions-panel .secondary-action,.actions-panel .override-action{min-width:0;min-height:var(--control-height);padding:8px;font-size:.88rem;line-height:1.1;text-align:center;white-space:nowrap}.actions-panel .primary-action svg,.actions-panel .secondary-action svg{flex:0 0 auto}.actions-panel .action-label{min-width:0}.actions-panel .error-text{grid-column:1 / -1;margin-bottom:0}}@media(max-width:420px){.player-info-panel,.pokemon-slot{--in-field-label-width: 88px}.player-info-panel .field>label{font-size:.84rem}.player-info-panel .field>label[for=trainer-name]{font-size:.68rem}.player-info-panel .field>label[for=team-name]{font-size:.62rem}.player-info-panel .field>label[for=switch-profile],.player-info-panel .field>label[for=dob-month]{font-size:.72rem}.player-info-panel .division-field legend{font-size:.72rem}.pokemon-slot label[for$=-stat-alignment]{font-size:.7rem}.slot-pdf-grid{grid-template-columns:minmax(0,1fr) minmax(84px,92px);gap:8px}.stat-field input{padding-right:4px;padding-left:4px}}@media(max-width:360px){.actions-panel .collapsible-label{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
