:root{color-scheme:light;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: #c6aa90;--field-text: #2c211b;--label: #332720;--label-muted: #6a5648;--header-border: #744d36;--accent: #d67642;--accent-hover: #bb5d2d;--accent-contrast: #ffffff;--accent-soft: #ffe2ca;--accent-text: #984d27;--valid-text: #984d27;--focus: #f0a069;--focus-ring: rgb(240 160 105 / .24);--focus-ring-strong: rgb(240 160 105 / .38);--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: #a23a32;--error-border: #d25345;--error-bg: #fff0ec;--warning-border: #d67642;--warning-bg: #ffecd8;--warning-text: #9a4d22;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: #665b55;--field-text: #f8efe5;--label: #f6eee5;--label-muted: #ddd0c4;--header-border: #6e615b;--accent: #ffb072;--accent-hover: #ffc08d;--accent-contrast: #241711;--accent-soft: #3f2c22;--accent-text: #ffc08d;--valid-text: #ffc08d;--focus: #ffb072;--focus-ring: rgb(255 176 114 / .26);--focus-ring-strong: rgb(255 176 114 / .42);--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: #ffaea5;--error-border: #ff6e62;--error-bg: #3b1d1b;--warning-border: #ffb072;--warning-bg: #3d2a1d;--warning-text: #ffd0a4}*{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:18px}.app-header{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:10px 0 18px;border-bottom:2px solid var(--header-border)}.app-brand{min-width:0}.eyebrow{margin:0 0 4px;font-size:.78rem;font-weight:700;letter-spacing:0;color:var(--accent-text);text-transform:uppercase}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}.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:1rem}h3{margin-bottom:0;font-size:.95rem}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px}.theme-toggle{display:inline-flex;min-height:38px;align-items:center;justify-content:center;gap:8px;border:1px solid var(--panel-border);border-radius:6px;background:var(--panel-bg);color:var(--text);padding:8px 11px;font-weight:800}.theme-toggle:hover{background:var(--surface-hover)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start;padding-top:18px}.main-column,.side-column{display:grid;gap:14px}.team-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.side-column{position:sticky;top:14px}.section-panel,.pokemon-slot,.actions-panel{border:1px solid var(--panel-border);border-radius:8px;background:var(--panel-bg);box-shadow:0 1px 2px var(--shadow)}.section-panel,.pokemon-slot{padding:14px}.actions-panel{display:grid;gap:10px;padding:14px}.actions-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:10px}.section-heading,.slot-heading,.action-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.section-heading,.slot-heading{margin-bottom:12px}.import-heading{margin-bottom:0}.import-heading-left{display:inline-flex;align-items:center;gap:8px}.import-clear-button{flex:0 0 auto}.heading-actions{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px}.import-paste-button{display:inline-flex;align-items:center;gap:6px;min-height:34px;border:1px solid var(--secondary-border);border-radius:999px;background:var(--accent-soft);color:var(--accent-text);padding:5px 12px;font-size:.82rem;font-weight:700;cursor:pointer}.import-paste-button:hover{background:var(--suggestion-hover)}.import-paste-button:focus-visible{outline:2px solid var(--focus-ring-strong);outline-offset:2px}.collapse-button{display:inline-flex;min-height:38px;align-items:center;gap:8px;border:0;background:transparent;color:var(--text);padding:0;font-weight:800}.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:18px}.player-info-column{display:grid;gap:12px}.division-field{display:grid;gap:8px;min-width:0;margin:0;border:0;padding:0}.division-field legend{padding:0;color:var(--label-muted);font-size:1rem;font-weight:700}.division-options{display:flex;min-height:39px;align-items:center;gap:12px;flex-wrap:wrap}.radio-option{display:inline-flex;align-items:center;gap:6px;color:var(--text);font-size:1rem;font-weight:650}.radio-option input{width:16px;height:16px;margin:0;accent-color:var(--accent)}.date-field-control{position:relative;display:flex;align-items:center;gap:3px;min-height:39px;border:1px solid var(--field-border);border-radius:6px;background:var(--field-bg);padding-right:8px}.date-field-control:focus-within{border-color:var(--focus);outline:3px solid var(--focus-ring)}.date-field-control.is-invalid{border-color:var(--error-border);background:var(--error-bg)}.date-field-control .dob-part{width:26px;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:42px}.player-info-panel .field.dob-field{--in-field-label-width: 130px}.date-sep{color:var(--label-muted);font-weight:700}.slot-top-grid{display:grid;gap:10px;margin-bottom:10px}.slot-pdf-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(88px,102px);gap:12px;align-items:start}.slot-main-column,.slot-stats-column{display:grid;gap:8px}.field{position:relative;display:grid;gap:5px}.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:6px;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:3px solid var(--focus-ring)}.field.is-invalid input,input.is-invalid,select.is-invalid{border-color:var(--error-border);background:var(--error-bg)}.division-field.is-invalid{outline:2px solid var(--error-border);outline-offset:2px;border-radius:6px}.field.is-warning input,input.is-warning,select.is-warning{border-color:var(--warning-border);background:var(--warning-bg)}.field-help{margin:0;font-size:.75rem;color:var(--muted)}.player-info-panel{--in-field-label-width: 190px}.pokemon-slot{--in-field-label-width: 140px}.in-field-form .field{gap:0}.in-field-form .field>label{position:absolute;z-index:1;top:1px;left:4px;display:flex;width:var(--in-field-label-width);height:37px;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) + 10px)}.in-field-form .date-field-control{padding-left:calc(var(--in-field-label-width) + 10px)}.in-field-form .field>input,.in-field-form .field>select{min-height:39px}.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:39px;border:1px solid var(--field-border);border-radius:6px;background:var(--field-bg);color:var(--field-text);padding:8px 7px;line-height:1.2;text-align:center}.stat-field input:focus{border-color:var(--focus);outline:3px solid var(--focus-ring)}.autocomplete-field{z-index:0}.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:8px;background:var(--panel-bg);box-shadow:0 14px 32px var(--menu-shadow)}.suggestion{display:flex;width:100%;min-height:38px;align-items:center;justify-content:space-between;gap:8px;border:0;border-bottom:1px solid var(--suggestion-border);background:transparent;padding:8px 10px;color:var(--text);text-align:left}.suggestion:hover,.suggestion:focus{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:26px;align-items:center;gap:6px;border-radius:999px;padding:3px 9px;font-size:.76rem;font-weight:700}.tag{background:var(--accent-soft);color:var(--accent-text)}.status-pill.valid{background:var(--accent-soft);color:var(--valid-text)}.status-pill.invalid,.status-pill.warning{background:var(--warning-bg);color:var(--warning-text)}.primary-action,.secondary-action,.icon-button{display:inline-flex;min-height:38px;align-items:center;justify-content:center;gap:8px;border-radius:6px;font-weight:700;text-decoration:none}.primary-action{border:1px solid var(--accent);background:var(--accent);color:var(--accent-contrast);padding:9px 13px}.primary-action:hover:not(:disabled){background:var(--accent-hover)}.secondary-action{border:1px solid var(--secondary-border);background:var(--panel-bg);color:var(--text);padding:9px 13px}.secondary-action:hover{background:var(--surface-hover)}.icon-button{width:34px;border:1px solid var(--panel-border);background:var(--panel-bg);color:var(--label-muted)}.slot-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}.validation-summary-button:hover,.validation-summary-button:focus-visible{outline:2px solid var(--focus-ring-strong);outline-offset:-3px}.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}.issue-peek{display:none;gap:8px;margin-top:12px}.issue-peek-more{margin:0;border:0;background:transparent;padding:2px 0 0;font-size:.78rem;font-weight:600;color:var(--danger-text);text-align:left;text-decoration:underline;cursor:pointer}.actions-panel .is-muted{opacity:.5}.override-action{display:inline-flex;min-height:34px;align-items:center;justify-content:center;gap:8px;border:1px dashed var(--error-border);border-radius:6px;background:var(--error-bg);color:var(--danger-text);padding:7px 13px;font-weight:700;cursor:pointer}.override-action:hover:not(:disabled){border-style:solid}.issue{display:grid;gap:2px;width:100%;border-left:4px solid;border-radius:6px;border-top:0;border-right:0;border-bottom:0;padding:9px 10px;color:var(--text);text-align:left}.issue strong{font-size:.74rem}.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}.issue-action:hover,.issue-action:focus{outline:2px solid var(--focus-ring-strong);outline-offset:1px}.empty-state{margin-bottom:0;color:var(--muted)}.error-text,.warning-text{color:var(--danger-text)}@media(max-width:1080px){.layout{grid-template-columns:1fr}.side-column{position:static}}@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) 36px;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:100%;font-size:.88rem}.header-subtitle a{display:block;width:fit-content;max-width:100%}.subtitle-join{display:none}.header-actions{z-index:2;grid-column:2;grid-row:1;align-self:start;justify-self:end}.theme-toggle{width:36px;min-height:36px;gap:0;padding:0}.theme-toggle span{display:none}.form-grid,.player-info-grid,.team-form{grid-template-columns:1fr}.section-heading,.slot-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}.player-info-panel .division-field{position:relative;display:block;min-height:39px;padding-left:calc(var(--in-field-label-width) + 10px)}.player-info-panel .division-field legend{position:absolute;top:1px;left:4px;display:flex;width:var(--in-field-label-width);height:37px;align-items:center;justify-content:flex-end;color:var(--label);font-weight:800;line-height:1;text-align:right}.player-info-panel .division-options{min-width:0}.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:14px;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 14px}.validation-panel .issue-list{flex:1 1 auto;min-height:0;max-height:264px;margin:0 14px 14px}.validation-panel.has-errors:not(.is-expanded) .issue-peek{display:grid;margin:0 14px 14px}.validation-panel.is-expanded .issue-peek{display:none}.validation-panel.is-expanded .validation-summary{margin-bottom:0}.validation-panel .empty-state{display:none}.actions-panel{grid-template-columns:minmax(0,1fr);gap:14px;padding:14px}.actions-row{gap:14px}.actions-panel .primary-action,.actions-panel .secondary-action,.actions-panel .override-action{min-width:0;min-height:42px;padding:8px 9px;font-size:.88rem;line-height:1.1;text-align:center;white-space:normal}.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=date-of-birth]{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:10px}.stat-field input{padding-right:6px;padding-left:6px}}
