.catalog-help-links{flex-wrap:wrap;gap:10px;margin:0;display:flex}.download-link{align-items:center;text-decoration:none;display:inline-flex}.help-subtitle{margin:8px 0 0;font-size:.95rem}.help-list{color:var(--text-dim);margin:0;padding-left:20px;font-size:.9rem;line-height:1.5}.help-list code,.catalog-help code{font-family:var(--font-mono);color:var(--text);font-size:.85em}.upload-entry{overflow-wrap:anywhere}.upload-rejected{color:var(--error)}.upload-errors{margin:2px 0 0;padding-left:18px}.story-extraction{max-width:18rem;color:var(--text-dim);white-space:normal;overflow-wrap:anywhere;margin:4px 0 0;font-size:.8rem}.action-group{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.import-table .action-group{margin-top:0}.import-table .secondary-button{min-height:36px;padding:6px 12px}.danger-button{background:var(--surface);border:1px solid var(--error);border-radius:var(--radius-sm);min-height:40px;color:var(--error);font:inherit;cursor:pointer;padding:8px 16px;font-weight:600}.danger-button:hover:not(:disabled){background:var(--error-bg)}.danger-button:disabled{opacity:.45;cursor:not-allowed}.radio-option input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex:none;margin:0}.stories-notice{border:1px solid var(--ok);border-radius:var(--radius-sm);background:var(--bg-elevated);margin:0;padding:10px 14px;font-size:.9rem}.candidate-whole{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.candidate-fieldset{border:0;min-width:0;margin:0;padding:0}.candidate-legend{margin-bottom:6px;font-weight:600}.candidate-list{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);max-height:28rem;margin:0;padding:0;list-style:none;overflow:auto}.candidate-item{border-bottom:1px solid var(--border)}.candidate-item:last-child{border-bottom:0}.candidate-label{padding:8px 10px 8px calc(10px + var(--candidate-level,0) * 18px);cursor:pointer;align-items:flex-start;gap:10px;display:flex}.candidate-label.is-selected{background:var(--accent-tint-strong);outline:2px solid var(--accent);outline-offset:-2px}.candidate-label input{width:18px;height:18px;accent-color:var(--accent);flex:none;margin:3px 0 0}.candidate-body{flex-direction:column;gap:2px;min-width:0;display:flex}.candidate-head{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.candidate-heading{overflow-wrap:anywhere;font-weight:600}.candidate-meta{color:var(--text-dim);font-size:.8rem}.candidate-excerpt{color:var(--text-dim);overflow-wrap:anywhere;font-size:.85rem}.candidate-excerpt-label{color:var(--text-faint);font-weight:600}.badge-cand-ok{border-color:var(--ok);color:var(--ok)}.badge-cand-too_short,.badge-cand-too_long,.badge-cand-ambiguous,.badge-cand-collection{border-color:var(--warn);color:var(--warn)}.candidate-form{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding-top:8px;display:flex}.review-panel h3,.review-panel h4{margin:0}.review-subtitle{color:var(--text);font-size:1rem}.review-reader-note{border-left:4px solid var(--accent);background:var(--accent-tint);color:var(--text);padding:8px 12px;font-size:.9rem}.review-visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.review-views{border:0;flex-wrap:wrap;align-items:center;gap:6px 18px;margin:0;padding:6px 0;display:flex}.review-views legend{float:left;margin-right:6px;padding:0}.review-radio{cursor:pointer;align-items:center;gap:6px;font-size:.9rem;display:inline-flex}.review-issues-bar{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.review-issue-count{color:var(--text);font-size:.9rem}.review-issue-live{min-height:1.4em;color:var(--text-dim);font-family:var(--font-mono);flex-basis:100%;font-size:.85rem}.review-legend{color:var(--text-dim);flex-direction:column;gap:4px;margin:0;padding:0;font-size:.85rem;list-style:none;display:flex}.review-mark{color:var(--text);border-radius:3px;padding:0 1px;scroll-margin:4rem}.review-mark.is-unsupported{outline:1px solid var(--error);-webkit-text-decoration:underline wavy var(--error);text-decoration:underline wavy var(--error);text-underline-offset:3px;background:#f871714d}.review-mark.is-converted{outline:1px dashed var(--warn);-webkit-text-decoration:underline dotted var(--warn);text-decoration:underline dotted var(--warn);text-underline-offset:3px;background:#fbbf2424}.review-mark[data-name]:before{content:"[" attr(data-name) "]";font-family:var(--font-ui);font-size:.72em;font-style:italic}.review-mark.is-active{outline:3px solid var(--accent-strong);outline-offset:1px;background:var(--accent-tint-strong)}.review-columns{display:block}.review-columns.is-side-by-side{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@media (width<=720px){.review-columns.is-side-by-side{grid-template-columns:minmax(0,1fr)}}.review-column{flex-direction:column;gap:6px;min-width:0;display:flex}.review-textarea{box-sizing:border-box;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:100%;min-height:24rem;color:var(--text);font:inherit;resize:vertical;padding:12px 14px;line-height:1.6}.review-textarea.is-short{min-height:8rem}.review-editor,.review-kept-copy,.review-unlock,.review-toolbar,.review-draft-bar,.review-remove{flex-direction:column;gap:8px;display:flex}.review-draft-bar{border:1px solid var(--warn);border-radius:var(--radius-sm);background:#fbbf240f;padding:10px 12px}.review-draft-status{font-size:.9rem}.review-warning{border:1px solid var(--warn);border-radius:var(--radius-sm);background:#2a2514;border-left-width:4px;padding:10px 14px;font-size:.9rem;line-height:1.5}.review-warning ul{margin:6px 0 8px;padding-left:20px}.review-conflict{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.review-remove{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);padding:14px}.review-remove-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.review-remove-table td,.review-remove-table th{vertical-align:middle}.review-glyph{text-align:center;border-radius:4px;min-width:1.5em;padding:0 6px;font-size:1.1rem;display:inline-block}.review-glyph.is-unsupported{outline:1px solid var(--error);background:#f871714d}.review-glyph.is-converted{outline:1px dashed var(--warn);background:#fbbf2424}.review-replacement-input{width:6rem;min-height:34px;font-family:var(--font-mono)}.review-excerpts{font-family:var(--font-mono);overflow-wrap:anywhere;flex-direction:column;gap:10px;margin:0;padding-left:22px;font-size:.85rem;display:flex}.review-excerpts p{white-space:pre-wrap;margin:0}.review-excerpt-label{min-width:3.5rem;color:var(--text-dim);font-family:var(--font-ui);display:inline-block}.review-excerpt-mark{color:var(--text);border-radius:3px;padding:0 2px}.review-excerpt-mark.is-removed{outline:1px solid var(--error);background:#f871714d;font-style:italic}.review-excerpt-mark.is-replaced{outline:1px solid var(--ok);background:#34d39933}.review-saving{border:1px solid var(--warn);border-radius:6px;margin:8px 0;padding:8px 12px;font-weight:600}.review-textarea[readonly][aria-busy=true]{opacity:.7;cursor:progress}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b1220;--bg-elevated:#121a2b;--surface:#182235;--surface-2:#1f2b42;--border:#2a3855;--border-strong:#3a4d70;--text:#e6edf7;--text-dim:#93a3bd;--text-faint:#5f6f8a;--accent:#22d3ee;--accent-strong:#67e8f9;--accent-ink:#062a33;--accent-tint:#22d3ee14;--accent-tint-strong:#22d3ee29;--correct:#e6edf7;--error:#f87171;--error-bg:#f871712e;--warn:#fbbf24;--ok:#34d399;--radius:12px;--radius-sm:8px;--font-ui:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SFMono-Regular", "JetBrains Mono", "Cascadia Code", Menlo, Consolas, monospace}*,:before,:after{box-sizing:border-box}body{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5}h1,h2,h3,h4,p,dl,dd{margin:0}ul{margin:0;padding:0;list-style:none}button,input,select{font:inherit;color:inherit}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{flex-direction:column;gap:24px;max-width:960px;margin:0 auto;padding:24px;display:flex}.app>*{min-width:0}.storage-warning{z-index:1000;border:1px solid var(--warn);border-radius:var(--radius-sm);color:var(--text);background:#2a2514;border-left-width:4px;padding:12px 16px;font-size:.9rem;position:sticky;top:0;box-shadow:0 8px 24px #00000059}.start-screen{flex-direction:column;gap:24px;display:flex}.start-header{flex-direction:column;gap:6px;padding-top:8px;display:flex}.start-title{letter-spacing:-.02em;font-size:clamp(2rem,4vw + 1rem,2.75rem);font-weight:700;line-height:1.1}.start-tagline{color:var(--text-dim)}.setup-section,.history-panel,.mistakes-chart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.setup-section{flex-direction:column;gap:16px;display:flex}.section-title{color:var(--text);font-size:1rem;font-weight:600}.mode-group{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.mode-card{text-align:left;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);min-height:44px;color:var(--text);cursor:pointer;flex-direction:column;align-items:flex-start;gap:6px;padding:16px;transition:background-color .15s,border-color .15s;display:flex}.mode-card:hover{background:var(--surface-2);border-color:var(--border-strong)}.mode-card.is-selected,.mode-card.is-selected:hover{background:var(--accent-tint);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.mode-card-title{font-size:1rem;font-weight:600}.mode-card-description{color:var(--text-dim);font-size:.875rem;line-height:1.45}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-label{color:var(--text-dim);font-size:.875rem;font-weight:500}.field-input,.field-select{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;min-height:40px;color:var(--text);padding:8px 12px;font-size:1rem}.field-input{font-variant-numeric:tabular-nums;max-width:12rem}.field-select{cursor:pointer}.field-input[aria-invalid=true]{border-color:var(--error)}.field-input:disabled,.field-select:disabled{opacity:.5;cursor:not-allowed}.field-error{color:var(--error);font-size:.875rem}.content-controls{flex-wrap:wrap;gap:16px;display:flex}.content-controls>.field{flex:14rem}.field-file{width:100%;min-height:40px;color:var(--text-dim);cursor:pointer;font-size:.9rem}.content-summary{color:var(--text-dim);font-size:.9rem}.content-summary.is-loading{font-style:italic}.content-warning{color:var(--warn);margin:0;font-size:.85rem;line-height:1.5}.content-warning-char{font-family:var(--font-mono);background:#ffffff14;border-radius:4px;margin:0 2px;padding:0 5px}.content-error{color:var(--error);font-size:.9rem}.story-panel{gap:6px}.story-title{font-size:1.05rem;font-weight:600}.story-author,.story-license{color:var(--text-dim)}.story-attribution{color:var(--text-dim);font-size:.85rem}.story-source-link{color:var(--accent);text-decoration:none}.story-source-link:hover{text-underline-offset:3px;text-decoration:underline}.story-resume{border:0;flex-direction:column;gap:4px;min-width:0;margin:10px 0 0;padding:0;display:flex}.story-resume-legend{color:var(--text-dim);margin-bottom:4px;padding:0;font-size:.875rem}.radio-option{cursor:pointer;align-items:center;gap:10px;min-height:40px;display:flex}.radio-option input[type=radio]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex:none;margin:0}.radio-option-label{font-size:.95rem}.start-button{background:var(--accent);border-radius:var(--radius);width:100%;min-height:52px;color:var(--accent-ink);letter-spacing:.01em;cursor:pointer;border:0;padding:12px 24px;font-size:1.125rem;font-weight:700;transition:background-color .15s}.start-button:hover:not(:disabled){background:var(--accent-strong)}.start-button:disabled{opacity:.4;cursor:not-allowed}.model-summary{border-top:1px solid var(--border);color:var(--text-dim);flex-direction:column;gap:12px;margin-top:4px;padding-top:16px;font-size:.875rem;display:flex}.model-summary-title{color:var(--text);font-size:.95rem;font-weight:600}.model-summary-empty{line-height:1.45}.model-lists{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.model-list{flex-direction:column;gap:8px;min-width:0;display:flex}.model-list-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:.75rem;font-weight:600}.model-rows{flex-direction:column;gap:4px;display:flex}.model-row{background:var(--bg-elevated);border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;grid-template-columns:4.5ch minmax(0,1fr) auto;align-items:baseline;gap:12px;padding:6px 10px;display:grid}.model-unit{font-family:var(--font-mono);color:var(--text);font-weight:600}.model-stat{color:var(--text-dim);white-space:nowrap}.history-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.history-scope{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);gap:2px;padding:3px;display:inline-flex}.history-scope-button{min-height:34px;color:var(--text-dim);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:4px 12px;font-size:.875rem}.history-scope-button:hover{color:var(--text)}.history-scope-button.is-selected,.history-scope-button.is-selected:hover{background:var(--accent);color:var(--accent-ink);font-weight:600}.history-empty{color:var(--text-dim)}.history-table-wrap{-webkit-overflow-scrolling:touch;border-radius:var(--radius-sm);width:100%;overflow-x:auto}.history-table{border-collapse:collapse;width:100%;min-width:36rem;font-size:.9rem}.history-table th,.history-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:10px 12px}.history-table th{color:var(--text-dim);white-space:nowrap;font-size:.8rem;font-weight:600}.history-table tbody tr:last-child td{border-bottom:0}.history-row:hover td{background:var(--surface-2)}.history-content{overflow-wrap:anywhere;min-width:8rem}.drill-screen{flex-direction:column;gap:20px;display:flex;position:relative}.stats-bar{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:2px;min-width:0;padding:12px 14px;display:flex}.stat-label{text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-size:.7rem;font-weight:600;overflow:hidden}.stat-value{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text);font-size:clamp(1.25rem,2.5vw + .75rem,1.875rem);font-weight:600;line-height:1.2;overflow:hidden}.drill-meta{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:.875rem;display:flex}.drill-mode{border:1px solid var(--border);text-transform:uppercase;letter-spacing:.06em;color:var(--text);border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:600}.drill-content{overflow-wrap:anywhere;min-width:0}.story-progress{flex-direction:column;gap:8px;display:flex}.story-progress-label{color:var(--text-dim);font-size:.875rem}.story-progress-bar{background:var(--surface-2);border-radius:999px;height:4px;overflow:hidden}.story-progress-fill{height:100%;width:calc(var(--value,0) * 100%);background:var(--accent);border-radius:inherit;transition:width .4s}.story-context{border-left:2px solid var(--border);color:var(--text-dim);padding-left:12px;font-size:.95rem;font-style:italic}.target-text{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font-mono);color:var(--text-dim);white-space:pre-wrap;overflow-wrap:break-word;margin:0;padding:clamp(20px,4vw,36px);font-size:clamp(1.35rem,2.6vw + .6rem,2rem);line-height:1.7;transition:border-color .15s,box-shadow .15s}.target-text.needs-correction{border-color:var(--error)}.drill-screen:has(.typing-input:focus) .target-text.needs-correction{border-color:var(--error)}.drill-screen:has(.typing-input:focus) .target-text{border-color:var(--accent);box-shadow:0 0 0 3px #22d3ee24}.target-char{-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:4px}.target-char.is-pending{color:var(--text-dim)}.target-char.is-correct{color:var(--text)}.target-char.is-incorrect{color:var(--error);background:var(--error-bg)}.target-char.is-current{color:var(--accent-strong);background:var(--accent-tint-strong);box-shadow:inset 0 -3px 0 var(--accent);animation:1.4s ease-in-out infinite target-pulse}@keyframes target-pulse{0%,to{background-color:#22d3ee1a}50%{background-color:#22d3ee3d}}.typing-input{opacity:0;caret-color:#0000;pointer-events:none;background:0 0;border:0;width:1px;height:1px;margin:0;padding:0;font-size:16px;position:absolute;top:0;left:0}.typing-input:focus-visible{outline:none}.drill-status{place-items:center;min-height:32px;margin-top:-8px;display:grid}.drill-status>*{grid-area:1/1;margin:0}.drill-status .is-hidden{visibility:hidden}.focus-hint{background:var(--bg-elevated);border:1px solid var(--accent);color:var(--accent-strong);border-radius:999px;padding:4px 12px;font-size:.8rem}.correction-hint{background:var(--bg-elevated);border:1px solid var(--error);color:var(--error);border-radius:999px;padding:4px 12px;font-size:.8rem}.notice{z-index:1;background:var(--bg-elevated);border:1px solid var(--warn);max-width:100%;color:var(--warn);text-align:center;border-radius:999px;padding:4px 14px;font-size:.875rem}.mistakes-chart{flex-direction:column;gap:12px;display:flex}.mistakes-title{font-size:1rem;font-weight:600}.mistakes-empty{color:var(--text-dim);font-size:.9rem}.mistakes-list{flex-direction:column;gap:8px;display:flex}.mistake-bar{font-variant-numeric:tabular-nums;grid-template-columns:2.5ch minmax(0,1fr) 4ch;align-items:center;gap:10px;display:grid}.mistake-label{font-family:var(--font-mono);text-align:center;white-space:pre;color:var(--text);font-weight:600}.mistake-track{background:var(--bg-elevated);border-radius:999px;height:12px;overflow:hidden}.mistake-fill{height:100%;width:calc(var(--value,0) * 100%);background:var(--error);border-radius:inherit;min-width:2px;display:block}.mistake-count{text-align:right;color:var(--text-dim)}.break-screen{z-index:900;overscroll-behavior:contain;background:var(--bg);padding:24px;display:flex;position:fixed;inset:0;overflow-y:auto}.break-screen:focus{outline:none}.break-content{text-align:center;flex-direction:column;align-items:center;gap:20px;width:100%;max-width:40rem;margin:auto;display:flex}.break-label{text-transform:uppercase;letter-spacing:.12em;color:var(--text-dim);font-size:.9rem;font-weight:600}.break-countdown{font-variant-numeric:tabular-nums;color:var(--accent);font-size:clamp(5rem,22vw,11rem);font-weight:700;line-height:1}.break-note{color:var(--text-dim)}.break-resume-note{color:var(--text-dim);margin:0;font-size:.8rem}.break-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;width:100%;display:grid}.break-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:4px;padding:14px 12px;display:flex}.break-stat-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-size:.7rem;font-weight:600}.break-stat-value{font-variant-numeric:tabular-nums;color:var(--text);font-size:clamp(1.25rem,2.5vw + .75rem,1.75rem);font-weight:600}.break-content .mistakes-chart{text-align:left;width:min(100%,30rem)}.break-content .end-session-button{margin-top:8px}.download-csv-button{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:40px;color:var(--text);font:inherit;cursor:pointer;padding:8px 14px;font-size:.9rem;font-weight:600;transition:background-color .15s,border-color .15s}input[type=file]::file-selector-button{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:40px;color:var(--text);font:inherit;cursor:pointer;padding:8px 14px;font-size:.9rem;font-weight:600;transition:background-color .15s,border-color .15s}.download-csv-button:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}input[type=file]::file-selector-button:hover{background:var(--surface-2);border-color:var(--border-strong)}.download-csv-button:disabled{opacity:.5;cursor:not-allowed}input[type=file]::file-selector-button{margin-right:12px}.end-session-button{border:1px solid var(--border);border-radius:var(--radius-sm);min-height:36px;color:var(--text-dim);cursor:pointer;background:0 0;padding:6px 14px;font-size:.875rem;transition:color .15s,border-color .15s}.end-session-button:hover{color:var(--text);border-color:var(--text-dim)}.drill-screen>.end-session-button{align-self:flex-end}[hidden]{display:none!important}.is-numeric{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}@media (width<=719px){.app{gap:20px;padding:16px}.setup-section,.history-panel,.mistakes-chart{padding:16px}.mode-group{grid-template-columns:minmax(0,1fr)}.content-controls{flex-direction:column}.content-controls>.field{flex:none;width:100%}.field-input{max-width:none}.model-lists{grid-template-columns:minmax(0,1fr)}.history-header{flex-direction:column;align-items:stretch}.history-scope{display:flex}.history-scope-button{flex:1 1 0}.download-csv-button{width:100%}.break-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=420px){.stat{padding:10px}.stats-bar{gap:8px}.target-text{padding:16px}.mistake-bar{grid-template-columns:2ch minmax(0,1fr) 3.5ch;gap:8px}.break-screen{padding:16px}.break-stat{padding:12px 10px}}@media (prefers-reduced-motion:reduce){.target-char.is-current{animation:none}.story-progress-fill,.mode-card,.start-button,.download-csv-button,.end-session-button,.target-text{transition:none}}.auth-screen{flex-direction:column;gap:16px;max-width:28rem;margin:0 auto;padding:48px 24px;display:flex}.auth-screen.is-wide{max-width:36rem}.auth-title,.view-title{color:var(--text);font-size:1.5rem;font-weight:700}.auth-title:focus,.view-title:focus,.section-title:focus{outline:none}.auth-lede,.view-lede,.field-hint{color:var(--text-dim);margin:0;font-size:.9rem;line-height:1.5}.auth-lede code,.form-notice code{font-family:var(--font-mono);background:var(--surface-2);border-radius:4px;padding:1px 6px}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-fieldset{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);flex-direction:column;gap:14px;min-width:0;margin:0;padding:16px;display:flex}.auth-legend{color:var(--text);padding:0 8px;font-weight:600}.field-input.is-wide{max-width:none}.auth-submit{margin-top:4px}.auth-passkey{align-self:stretch}.form-alert,.form-notice,.form-status{border-radius:var(--radius-sm);margin:0;padding:10px 14px;font-size:.9rem;line-height:1.5}.form-alert{border:1px solid var(--error);background:var(--error-bg);color:var(--text);border-left-width:4px}.form-notice{border:1px solid var(--border-strong);border-left:4px solid var(--accent);background:var(--accent-tint);color:var(--text)}.form-notice p{margin:0 0 4px}.form-status{border:1px solid var(--ok);color:var(--text);background:#34d3991a;border-left-width:4px}.form-status[hidden]{display:none}.field-input[aria-invalid=true],.field-select[aria-invalid=true]{border-color:var(--error)}.secondary-button,.link-button{font:inherit;cursor:pointer}.secondary-button{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);min-height:40px;color:var(--text);padding:8px 16px;font-weight:600}.secondary-button:hover:not(:disabled){background:var(--surface-2);border-color:var(--accent)}.secondary-button:disabled,.link-button:disabled,.start-button.review-button:disabled{opacity:.45;cursor:not-allowed}.link-button{border-radius:var(--radius-sm);color:var(--accent);background:0 0;border:0;padding:6px 8px;text-decoration:underline}.link-button:hover:not(:disabled){color:var(--accent-strong)}.start-button.review-button{width:auto;min-height:40px;padding:8px 20px;font-size:1rem}.family-shell{flex-direction:column;display:flex}.app-bar{flex-wrap:wrap;align-items:center;gap:8px 20px;width:100%;max-width:960px;margin:0 auto;padding:12px 24px 0;display:flex}.app-bar-user{color:var(--text-dim);margin:0;font-size:.9rem}.app-bar-name{color:var(--text);font-weight:600}.app-bar-role,.app-bar-admin{text-transform:capitalize}.app-nav{flex-wrap:wrap;flex:auto;gap:4px;display:flex}.nav-button{border-radius:var(--radius-sm);min-height:36px;color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;padding:6px 14px}.nav-button:hover{color:var(--text);background:var(--surface)}.nav-button.is-current{color:var(--text);background:var(--accent-tint-strong);border-color:var(--accent)}.app-bar-actions{gap:4px;display:flex}.member-grid{gap:16px;display:grid}.member-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:14px;min-width:0;padding:16px;display:flex}.member-name{font-size:1.125rem;font-weight:600}.member-sub{color:var(--text-dim);margin:2px 0 0;font-size:.85rem}.member-stats{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:12px;margin:0;display:grid}.member-stats dt{color:var(--text-dim);font-size:.8rem}.member-stats dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:1.05rem}.member-subtitle{color:var(--text-dim);margin:0 0 6px;font-size:.9rem;font-weight:600}.member-story-list{margin:0;padding-left:18px}.member-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.inline-form .form-status{flex-basis:100%}.inline-form .field-input{max-width:20rem}.passkey-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.passkey-item{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);flex-wrap:wrap;align-items:center;gap:4px 16px;padding:10px 14px;display:flex}.passkey-name{font-weight:600}.passkey-meta{color:var(--text-dim);flex:auto;font-size:.85rem}.passkey-add{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.upload-result{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-elevated);padding:10px 14px;font-size:.9rem}.upload-result p{margin:0 0 6px}.upload-list{color:var(--text-dim);margin:0 0 6px;padding-left:18px}.import-table{min-width:52rem}.import-table td{vertical-align:top}.import-actions{white-space:nowrap}.badge{border:1px solid var(--border-strong);white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:.8rem;display:inline-block}.badge-ready,.badge-approved{border-color:var(--ok);color:var(--ok)}.badge-failed,.badge-rejected{border-color:var(--error);color:var(--error)}.badge-queued,.badge-running,.badge-pending_review{border-color:var(--warn);color:var(--warn)}.job-error{max-width:20rem;color:var(--error);white-space:normal;margin:6px 0 0;font-size:.85rem}.review-panel{background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius);flex-direction:column;gap:10px;padding:16px;display:flex}.review-panel p{margin:0}.story-content-notes,.story-counts{color:var(--text-dim);font-size:.9rem}.story-rights-note{border-left:4px solid var(--warn);background:#2a2514;padding:8px 12px;font-size:.9rem}.review-text{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);max-height:24rem;padding:12px 14px;line-height:1.6;overflow:auto}.review-text p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 .8em}.member-history{flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:.75rem;display:flex}.member-history .history-table-wrap{align-self:stretch}
