:root{--bg: #f4f1ec;--bg-surface: #fffefb;--bg-alt: #ede9e2;--bg-dark: #1c1917;--bg-inset: #2c2824;--text: #1c1917;--text-muted: #6b6055;--text-subtle: #8a8079;--text-dim: #4a4540;--text-invert: #f4f1ec;--accent: #9b4f19;--accent-light: #c4742a;--accent-dim: #f2e6da;--accent-wash: rgba(155, 79, 25, .1);--accent-glow: rgba(155, 79, 25, .12);--border: #d4cdc4;--border-strong: #a09487;--white: #ffffff;--color-error: #c0392b;--color-error-soft: #e07070;--color-error-bg: #fdf0f0;--color-warn: #e5c68a;--color-warn-bg: #fef3c7;--color-diff-bg: #fffdf5;--obs: #1d5fa8;--obs-bg: #e8f0fa;--interp: #6d28d9;--interp-bg: #f0ebfd;--cons: #166534;--cons-bg: #e8f5ed;--theory: #92500a;--theory-bg: #fdf0e3;--font-display: Georgia, "Palatino Linotype", Palatino, serif;--font-body: system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: ui-monospace, "Cascadia Code", "Source Code Pro", "Courier New", monospace;--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--tracking-tight: -.02em;--tracking-snug: -.015em;--tracking-normal: 0em;--tracking-wide: .04em;--tracking-wider: .06em;--tracking-widest: .08em;--leading-tight: 1.25;--leading-snug: 1.4;--leading-normal: 1.6;--leading-body: 1.7;--leading-relaxed: 1.8;--leading-loose: 1.9;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--max-w: 1200px;--max-w-prose: 70ch;--radius-xs: 2px;--radius-sm: 3px;--radius-md: 4px;--radius-pill: 20px;--radius-full: 40px;--shadow-sm: 0 2px 8px rgba(28, 25, 23, .08);--shadow-md: 0 2px 12px rgba(155, 79, 25, .12);--shadow-accent: 0 2px 10px rgba(155, 79, 25, .1);--shadow-overlay: 0 4px 24px rgba(0, 0, 0, .3);--z-base: 1;--z-above: 2;--z-tooltip: 100;--z-nav: 200;--z-overlay: 300;--ease: .2s ease;--ease-fast: .15s ease;--ease-slow: .5s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;overflow-x:hidden}.container{width:100%;max-width:var(--max-w);margin-inline:auto;padding-inline:var(--space-8)}@media(max-width:768px){.container{padding-inline:var(--space-6)}}h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;line-height:var(--leading-tight);color:var(--text)}p{max-width:var(--max-w-prose)}a{color:var(--accent);text-decoration-thickness:1px}a:hover{color:var(--accent-light)}strong{font-weight:var(--weight-semibold)}section{padding-block:var(--space-20)}.label{display:inline-block;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);padding:.1em .4em;border-radius:var(--radius-sm);vertical-align:middle;line-height:var(--leading-snug);white-space:nowrap}.label-obs{color:var(--obs);background:var(--obs-bg)}.label-interp{color:var(--interp);background:var(--interp-bg)}.label-cons{color:var(--cons);background:var(--cons-bg)}.label-theory{color:var(--theory);background:var(--theory-bg)}body:not([data-admin="1"]) .admin-only{display:none!important}body[data-admin="1"] .admin-locked-note{display:none!important}.locked-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-8);margin-block:var(--space-4)}.locked-panel p{font-size:var(--text-base);color:var(--text-muted);margin-bottom:var(--space-4);max-width:60ch}.locked-link{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--accent);text-decoration:none}.locked-link:hover{color:var(--accent-light)}.prose p{line-height:var(--leading-relaxed);margin-bottom:.75em;max-width:var(--max-w-prose)}.prose h1,.prose h2,.prose h3{font-family:var(--font-display);color:var(--text);line-height:var(--leading-tight);margin:1.5em 0 .4em}.prose h2{font-size:var(--text-xl)}.prose h3{font-size:var(--text-lg)}.prose ul,.prose ol{padding-left:1.5em;margin-bottom:.75em}.prose li{line-height:var(--leading-body);margin-bottom:.2em}.prose strong{font-weight:var(--weight-semibold);color:var(--text)}.prose em{font-style:italic}.prose code{font-family:var(--font-mono);font-size:.88em;background:var(--bg-alt);padding:.1em .35em;border-radius:var(--radius-xs)}.prose blockquote{border-left:2px solid var(--border-strong);padding-left:1em;color:var(--text-muted);margin:1em 0}.prose hr{border:none;border-top:1px solid var(--border);margin:1.5em 0}[data-tooltip]{position:relative;cursor:help;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:var(--text-muted);text-underline-offset:2px}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + var(--space-2));left:50%;transform:translate(-50%);background:var(--text);color:var(--bg);font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-normal);letter-spacing:var(--tracking-normal);text-transform:none;line-height:var(--leading-normal);padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs);white-space:normal;max-width:28ch;text-align:center;pointer-events:none;opacity:0;transition:opacity var(--ease-fast);z-index:var(--z-tooltip)}[data-tooltip]:hover:after{opacity:1}.lib-page{padding-block:var(--space-16) var(--space-24);background:var(--bg);min-height:80vh}.lib-page .container{max-width:900px}.page-head{margin-bottom:var(--space-12)}.lib-page h1{font-size:clamp(var(--text-2xl),3vw,var(--text-4xl));letter-spacing:var(--tracking-snug);margin-bottom:var(--space-4)}.page-sub{font-size:var(--text-base);color:var(--text-muted);line-height:var(--leading-body);max-width:68ch}.upload-section{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-8);margin-bottom:var(--space-12)}.upload-section h2{font-size:var(--text-xl);margin-bottom:var(--space-6)}.drop-zone{border:2px dashed var(--border);border-radius:var(--radius-md);padding:var(--space-10) var(--space-8);text-align:center;cursor:pointer;background:var(--bg);transition:border-color var(--ease),background var(--ease)}.drop-zone:hover,.drop-zone.drag-over{border-color:var(--accent);background:var(--accent-dim)}.drop-icon{font-size:var(--text-3xl);color:var(--border-strong);margin-bottom:var(--space-2);max-width:none}.drop-text{font-size:var(--text-base);color:var(--text);max-width:none;margin-bottom:var(--space-1)}.drop-hint{font-size:var(--text-sm);color:var(--text-muted);max-width:none}.extract-progress{padding:var(--space-6) 0}.extract-progress p{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-muted);max-width:none}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-bottom:var(--space-6)}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field-wide{grid-column:span 2}.field-full{grid-column:1 / -1}.field label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);letter-spacing:var(--tracking-wide)}.req{color:var(--accent)}.field input,.field select{font-family:var(--font-body);font-size:var(--text-sm);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);background:var(--bg);color:var(--text)}.field input:focus,.field select:focus{outline:2px solid var(--accent);border-color:var(--accent)}.text-preview{margin-bottom:var(--space-6)}.text-preview label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);letter-spacing:var(--tracking-wide);display:block;margin-bottom:var(--space-2)}.field-hint{font-size:var(--text-xs);color:var(--text-muted);margin-bottom:var(--space-3);max-width:none}.text-preview textarea{width:100%;font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-normal);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-5);background:var(--bg);color:var(--text);resize:vertical;min-height:200px}.char-count{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--space-2);max-width:none}.form-actions{display:flex;gap:var(--space-4)}.submit-btn{background:var(--accent);color:var(--white);border:none;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-8);font-family:var(--font-mono);font-size:var(--text-sm);cursor:pointer;transition:background var(--ease)}.submit-btn:hover:not(:disabled){background:var(--accent-light)}.submit-btn:disabled{opacity:.45;cursor:not-allowed}.cancel-btn{background:none;color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-6);font-family:var(--font-mono);font-size:var(--text-sm);cursor:pointer}.upload-status{margin-top:var(--space-4)}.status-ok{font-size:var(--text-sm);color:var(--cons);max-width:none}.status-err{font-size:var(--text-sm);color:var(--color-error);max-width:none}.search-section{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-8);margin-bottom:var(--space-12)}.search-section h2{font-size:var(--text-xl);margin-bottom:var(--space-2)}.section-sub{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-6);max-width:68ch}.section-sub code{font-family:var(--font-mono);font-size:var(--text-xs);background:var(--bg-alt);padding:.1em .4em;border-radius:var(--radius-xs)}.search-bar{display:flex;gap:var(--space-3);margin-bottom:var(--space-6)}.passage-search-input{flex:1;font-family:var(--font-body);font-size:var(--text-base);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);background:var(--bg);color:var(--text)}.passage-search-input:focus{outline:2px solid var(--accent);border-color:var(--accent)}.search-go-btn{background:var(--accent);color:var(--white);border:none;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-6);font-family:var(--font-mono);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;transition:background var(--ease)}.search-go-btn:hover:not(:disabled){background:var(--accent-light)}.search-go-btn:disabled{opacity:.45;cursor:not-allowed}.search-results{border-top:1px solid var(--border);padding-top:var(--space-6)}.sr-loading,.sr-empty,.sr-error{font-size:var(--text-sm);color:var(--text-muted);max-width:none}.sr-error{color:var(--color-error)}.sr-count{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);margin-bottom:var(--space-5);max-width:none;letter-spacing:var(--tracking-wide)}.sr-count em{color:var(--accent);font-style:normal}.sr-list{display:flex;flex-direction:column;gap:var(--space-4)}.sr-item{padding:var(--space-5) var(--space-6);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);border-left:3px solid var(--accent)}.sr-citation{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap}.sr-key{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--accent)}.sr-page,.sr-section{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.sr-snippet{font-size:var(--text-base);line-height:var(--leading-body);color:var(--text);margin-bottom:var(--space-3);max-width:80ch}.sr-snippet mark{background:var(--color-warn-bg);color:var(--text);border-radius:var(--radius-xs);padding:0 2px}.sr-source{font-size:var(--text-xs);color:var(--text-muted);font-style:normal;max-width:none}.sr-source em{font-style:italic}.library-head{display:flex;align-items:center;gap:var(--space-6);margin-bottom:var(--space-6);flex-wrap:wrap}.library-head h2{font-size:var(--text-2xl)}.doc-count{font-size:var(--text-lg);color:var(--text-muted)}.search-box{margin-left:auto;font-family:var(--font-body);font-size:var(--text-sm);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);background:var(--bg-surface);color:var(--text);width:240px}.search-box:focus{outline:2px solid var(--accent);border-color:var(--accent)}.doc-list{display:flex;flex-direction:column;gap:var(--space-2)}.loading,.empty-lib{font-size:var(--text-base);color:var(--text-muted);padding:var(--space-8) 0;max-width:none}.doc-row{display:flex;align-items:center;gap:var(--space-6);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4) var(--space-6)}.doc-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.doc-key{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--accent);letter-spacing:var(--tracking-wide);max-width:none}.doc-title{font-size:var(--text-base);color:var(--text);font-weight:var(--weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:none}.doc-meta{font-size:var(--text-xs);color:var(--text-muted);max-width:none}.doc-right{display:flex;align-items:center;gap:var(--space-4);flex-shrink:0}.chunk-count{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.del-btn{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);background:none;border:1px solid var(--border);border-radius:var(--radius-xs);padding:var(--space-1) var(--space-3);cursor:pointer;transition:color var(--ease),border-color var(--ease)}.del-btn:hover{color:var(--color-error);border-color:var(--color-error)}@media(max-width:640px){.form-grid{grid-template-columns:1fr}.field-wide,.field-full{grid-column:span 1}.library-head{flex-direction:column;align-items:flex-start}.search-box{width:100%;margin-left:0}.search-bar{flex-direction:column}.search-go-btn{width:100%}.form-actions{flex-direction:column}.submit-btn,.cancel-btn{width:100%;text-align:center}.doc-row{flex-wrap:wrap}.doc-right{margin-top:var(--space-2);width:100%;justify-content:space-between}}
