:root{--color-paper: oklch(97% .012 58);--color-paper-2: oklch(94% .016 58);--color-paper-3: oklch(90% .018 58);--color-rule: oklch(82% .018 52);--color-rule-strong: oklch(68% .022 48);--color-neutral: oklch(48% .018 44);--color-muted: oklch(39% .018 42);--color-ink-2: oklch(28% .018 38);--color-ink: oklch(19% .016 34);--color-accent: oklch(52% .18 29);--color-accent-soft: oklch(91% .04 32);--color-accent-ink: oklch(98% .008 55);--color-focus: oklch(20% .02 36);--color-error: oklch(48% .18 26);--color-success: oklch(44% .11 150);--font-display: "Bricolage Grotesque", "Arial Narrow", sans-serif;--font-body: "Geist", "Avenir Next", sans-serif;--space-3xs: .125rem;--space-2xs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2.5rem;--space-2xl: 4rem;--space-3xl: 6rem;--space-4xl: 9rem;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.25rem;--text-lg: 1.5625rem;--text-xl: 1.953rem;--text-2xl: 2.441rem;--text-display: clamp(2.7rem, 6vw, 5rem);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-micro: .12s;--dur-short: .22s;--dur-long: .42s;--rule-thin: 1px;--radius-sm: .45rem;--radius-md: .8rem;--radius-lg: 1.25rem;--page-gutter: clamp(1rem, 4vw, 4rem);--page-max: 88rem}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}html,body{overflow-x:clip;background:var(--color-paper);color:var(--color-ink)}body{font-family:var(--font-body);font-size:var(--text-base);line-height:1.55}button,input,select,textarea{font:inherit;color:inherit}button,input,select{min-height:44px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}a{color:inherit}.shell{width:min(100% - 2 * var(--page-gutter),var(--page-max));margin:0 auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) 0}.wordmark{font-family:var(--font-display);font-size:var(--text-md);font-weight:700;letter-spacing:-.04em}.topbar-note{color:var(--color-muted);font-size:var(--text-sm)}.intro{padding:var(--space-xl) 0 var(--space-lg)}h1,h2,h3,p{margin-top:0}h1{max-width:12ch;margin-bottom:var(--space-md);font-family:var(--font-display);font-size:clamp(2.6rem,7vw,5rem);font-weight:700;letter-spacing:-.065em;line-height:.98;overflow-wrap:anywhere}.intro p{max-width:58ch;margin-bottom:0;color:var(--color-muted)}.accent{color:var(--color-accent)}.workspace{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:var(--space-xl);align-items:start;padding:var(--space-md) 0 var(--space-2xl)}.rail{min-width:0}.section-kicker{display:flex;align-items:center;gap:var(--space-xs);margin:0 0 var(--space-sm);color:var(--color-neutral);font-size:var(--text-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase}.section-kicker:before{width:1.4rem;height:1px;content:"";background:var(--color-accent)}.upload{display:grid;gap:var(--space-sm);padding:var(--space-lg);border:1px dashed var(--color-rule-strong);border-radius:var(--radius-md);background:var(--color-paper-2)}.upload-copy{margin:0}.upload input[type=file]{width:100%;max-width:100%;padding:.4rem;border:1px solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-paper)}.subtle{color:var(--color-muted);font-size:var(--text-sm)}.toolbar{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-sm)}.button{min-width:44px;padding:.55rem .9rem;border:1px solid var(--color-rule-strong);border-radius:999px;background:transparent;font-weight:600;transition:background var(--dur-short) var(--ease-out),color var(--dur-short) var(--ease-out)}.button:hover:not(:disabled){background:var(--color-paper-3)}.button.primary{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-ink)}.button.primary:hover:not(:disabled){background:var(--color-ink);border-color:var(--color-ink)}.button.danger{color:var(--color-error)}.field{display:grid;gap:.3rem;min-width:0}.field label,.field-label{font-size:var(--text-xs);font-weight:700}.field input,.field select,.field textarea,.text-output{width:100%;min-width:0;min-height:44px;padding:.6rem .7rem;border:1px solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-paper)}.field textarea,.text-output{resize:vertical}.text-output{min-height:11rem;margin-top:var(--space-sm);font-family:var(--font-body);font-size:var(--text-sm)}.settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm);margin-top:var(--space-lg)}.settings .wide{grid-column:1 / -1}.period-list{display:grid;gap:var(--space-xs)}.period-row{display:grid;grid-template-columns:3rem minmax(0,1fr) minmax(0,1fr);align-items:center;gap:var(--space-xs)}.period-row input{width:100%}.panel-heading{display:flex;align-items:end;justify-content:space-between;gap:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-rule-strong)}.panel-heading h2{margin:0;font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:-.04em}.candidate-list{display:grid}.candidate{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--color-rule)}.candidate-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xs);min-width:0}.candidate-fields .title-field,.candidate-fields .raw-field{grid-column:1 / -1}.candidate-side{display:flex;flex-direction:column;align-items:end;justify-content:space-between;gap:var(--space-xs)}.confidence{color:var(--color-muted);font-size:var(--text-xs);white-space:nowrap}.mode-switch{display:flex;gap:var(--space-xs);margin:var(--space-md) 0}.mode-switch button[aria-pressed=true]{border-color:var(--color-ink);background:var(--color-ink);color:var(--color-paper)}.error-list{margin:var(--space-md) 0;padding-left:1.25rem;color:var(--color-error)}.summary{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-rule-strong)}.summary strong{font-family:var(--font-display);font-size:var(--text-lg)}.empty{padding:var(--space-xl) 0;color:var(--color-muted)}footer{padding:var(--space-md) 0 var(--space-xl);border-top:1px solid var(--color-rule);color:var(--color-muted);font-size:var(--text-xs)}footer p{margin:0}.status{min-height:1.5em;color:var(--color-accent);font-size:var(--text-sm)}.candidate-warning{grid-column:1 / -1;margin:0;color:var(--color-error);font-size:var(--text-sm)}.button{white-space:nowrap}.button:active:not(:disabled){background:var(--color-paper-3);color:var(--color-ink)}input:disabled,select:disabled,textarea:disabled{opacity:.55;cursor:not-allowed}.field :is(input,select,textarea):focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.toolbar,.mode-switch{align-items:center;flex-wrap:wrap}h1,h2{min-width:0;overflow-wrap:anywhere}@media(max-width:768px){.workspace{grid-template-columns:minmax(0,1fr);gap:var(--space-xl)}.intro{padding-top:var(--space-lg)}}@media(max-width:414px){.candidate{grid-template-columns:minmax(0,1fr)}.candidate-side{flex-direction:row;align-items:center}.candidate-fields,.settings{grid-template-columns:minmax(0,1fr)}.candidate-fields .title-field,.candidate-fields .raw-field,.settings .wide{grid-column:auto}.summary{align-items:stretch;flex-direction:column}.summary .button{width:100%}.topbar-note{max-width:15ch;text-align:right}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
