:root{--bg:#faf9f7;--bg-secondary:#f2f0ec;--bg-surface:#e8e6e0;--bg-raised:#fff;--text:#1a1a18;--text-secondary:#4a4946;--text-muted:#6b6a66;--border:#e3e1db;--border-subtle:#efedea;--border-strong:#c9c6bf;--accent:#8c2f39;--accent-hover:#76262f;--danger:var(--text);--on-accent:var(--bg-raised);--on-danger:var(--bg-raised);--toast-fg:var(--bg);--fill-1:color-mix(in srgb, var(--text) 8%, transparent);--fill-2:color-mix(in srgb, var(--text) 18%, transparent);--fill-3:color-mix(in srgb, var(--text) 38%, transparent);--hl-mark:color-mix(in srgb, var(--text) 12%, transparent);--pdf-page:#fff;--shadow:none;--shadow-page:0 1px 6px #0000001f;--shadow-pop:0 2px 0 var(--border-strong);--overlay:#1a1a1866;--sidebar-width:176px;--reader-max-width:720px;--font-ui:"Helvetica Neue", Helvetica, Arial, "Liberation Sans", sans-serif;--font-sans:"Helvetica Neue", Helvetica, Arial, "Liberation Sans", sans-serif;--font-serif:Georgia, Charter, "Times New Roman", serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--space-0:.125rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--text-2xs:.6875rem;--text-xs:.8125rem;--text-sm:.875rem;--text-base:.9375rem;--text-md:1rem;--text-lg:1.125rem;--leading-tight:1.3;--leading-snug:1.45;--leading-normal:1.5;--leading-relaxed:1.75;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--icon-sm:1rem;--icon-md:1.1rem;--icon-lg:1.4rem;--icon-xl:1.7rem;--radius-sm:0;--radius:0;--radius-lg:0;--radius-pill:999px;--transition-fast:.1s ease;--transition:.15s ease}:root[data-theme=frappe]{--bg:#0c0c0d;--bg-secondary:#141415;--bg-surface:#1f1f21;--bg-raised:#18181a;--text:#ededec;--text-secondary:#b4b3b0;--text-muted:#8a8985;--border:#2a2a2c;--border-subtle:#232325;--border-strong:#3a3a3d;--accent:#df938b;--accent-hover:#e7a9a2;--pdf-page:#e9e7e2;--shadow-page:0 1px 8px #00000080;--overlay:#0009}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;border-radius:var(--radius);font-family:var(--font-ui);font-size:var(--text-sm);padding:var(--space-2) var(--space-4);transition:var(--transition-fast);text-transform:lowercase;border:none}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg-raised);border:1px solid var(--border);color:var(--text)}.btn-secondary:hover{background:var(--bg-secondary)}.btn-danger{border:1px solid var(--border-strong);color:var(--text);background:0 0}.btn-danger:hover,.btn-danger:focus-visible{background:var(--text);color:var(--bg)}.btn-sm{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}.btn-icon{padding:var(--space-1);color:var(--text-secondary);font-family:var(--font-sans);background:0 0;align-items:center;display:inline-flex}.btn-icon:hover{color:var(--accent)}.fab-keep{display:none}.header-keep{border-radius:var(--radius-pill);width:36px;height:36px;font-size:var(--icon-lg);justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}input,textarea,select{font-family:var(--font-sans);font-size:var(--text-base);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-raised);color:var(--text);width:100%}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent);outline:none}textarea{resize:vertical;min-height:80px}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.article-reader,.pdf-reader .textLayer,.pdf-reader .textLayer span,.hl-text,.hl-note,input,textarea,code,pre,.selectable,.selectable *{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}.article-reader ::selection{background:var(--hl-mark)}.pdf-reader .textLayer ::selection{background:var(--hl-mark)}.layout{height:100vh;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.sidebar-header{padding:var(--space-3) var(--space-2);justify-content:center;align-items:center;display:flex}.sidebar-brand-disc{border-radius:var(--radius-pill);background:var(--text);width:36px;height:36px;color:var(--bg);transition:background var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sidebar-brand-disc:hover{background:var(--text-secondary)}.sidebar-footer{margin-top:var(--space-3);padding:var(--space-1) var(--space-2);flex-shrink:0;align-items:center;display:flex}.theme-toggle{cursor:pointer;font-size:var(--icon-md);color:var(--text-secondary);padding:var(--space-2);border-radius:var(--radius);line-height:1;font-family:var(--font-ui);background:0 0;border:none;justify-content:center;align-items:center;min-width:36px;min-height:36px;display:inline-flex}.theme-toggle:hover{color:var(--accent);background:var(--bg-surface)}.sidebar-close{cursor:pointer;font-size:var(--icon-md);color:var(--text-secondary);padding:var(--space-1);background:0 0;border:none;line-height:1;display:none}.sidebar-backdrop,.notes-backdrop{display:none}.sidebar-nav{padding:var(--space-2) 0}.sidebar-nav a,.sidebar-nav button{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-3);text-align:left;width:100%;color:var(--text-secondary);font-family:var(--font-ui);font-size:var(--text-xs);text-transform:lowercase;transition:var(--transition-fast);background:0 0;border-left:2px solid #0000;border-radius:0;text-decoration:none;display:flex}.sidebar-nav a:hover,.sidebar-nav button:hover{background:var(--bg-surface);color:var(--text);text-decoration:none}.sidebar-nav a.active{border-left-color:var(--accent);color:var(--accent)}.nav-count{padding-left:var(--space-2);color:var(--text-muted);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;margin-left:auto}.sidebar-nav a.active .nav-count{color:var(--accent)}.sidebar-gap{height:var(--space-5)}.main-content{flex-direction:column;flex:1;display:flex;overflow-y:auto}.page-header{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0;justify-content:space-between;align-items:center;display:flex;position:relative}.header-wordmark{font-family:var(--font-ui);font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:-.01em;text-transform:lowercase;color:var(--text);white-space:nowrap;pointer-events:auto;text-decoration:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.header-wordmark:hover{color:var(--text);text-decoration:none}.page-header-right{align-items:center;gap:var(--space-2);display:flex}.header-theme-toggle-wrap{display:none}.page-header h2{font-family:var(--font-ui);font-size:var(--text-sm);font-weight:var(--weight-medium);letter-spacing:.04em;text-transform:lowercase}.page-content{padding:var(--space-5);flex:1}.page-content h3,.page-content h4{text-transform:lowercase}.card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);box-shadow:var(--shadow)}.page-content>.card+.card{margin-top:var(--space-4)}.card-title{font-size:var(--text-md);margin-bottom:var(--space-2)}.muted{font-size:var(--text-base);color:var(--text-secondary)}.export-preview{margin-top:var(--space-2);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-secondary);color:var(--text-secondary);font-family:var(--font-ui);font-size:var(--text-xs);line-height:var(--leading-normal);white-space:pre-wrap;overflow-x:auto}.form-error{color:var(--text);font-weight:var(--weight-semibold);font-size:var(--text-sm);margin-bottom:var(--space-2);padding-left:var(--space-2);border-left:2px solid var(--text)}.form-error:before{content:"! "}.link-button{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.link-button:hover{opacity:.8}.copy-row{gap:var(--space-2);margin-top:var(--space-2);align-items:center;display:flex}.copy-row code{min-width:0;font-size:var(--text-sm);overflow-wrap:anywhere;background:var(--bg-secondary);padding:var(--space-1) var(--space-2);border-radius:var(--radius);flex:1}.field-label{font-size:var(--text-xs);font-weight:var(--weight-medium);margin-bottom:var(--space-1);text-transform:lowercase;display:block}.kv-table{width:100%;font-size:var(--text-base)}.kv-table td:first-child{padding:var(--space-2);font-weight:var(--weight-medium);width:120px}.token-table{width:100%;font-size:var(--text-sm)}.token-table thead tr{text-align:left;color:var(--text-secondary)}.token-table th:first-child,.token-table td:first-child{padding:var(--space-1)}.token-table td:last-child{text-align:right}.doc-list{gap:var(--space-2);flex-direction:column;display:flex}.masonry{gap:var(--space-2);align-items:flex-start;display:flex}.masonry-col{gap:var(--space-2);flex-direction:column;flex:1 1 0;min-width:0;display:flex}.masonry .doc-item-title{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.doc-item{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-raised);cursor:pointer;transition:var(--transition-fast);display:flex}.doc-item:hover{border-color:var(--border-strong)}.doc-item:active{transform:scale(.992)}.doc-item-menu{padding:var(--space-1) var(--space-1);font-size:var(--icon-sm);letter-spacing:.04em;color:var(--text-muted);border-radius:var(--radius);opacity:.5;transition:var(--transition-fast);background:0 0;border:none;flex-shrink:0;align-self:center;line-height:1}.doc-item:hover .doc-item-menu{opacity:1}.doc-item-menu:hover{color:var(--text);background:var(--bg-surface)}.doc-item-menu:focus-visible{opacity:1;outline:2px solid var(--accent);outline-offset:1px}.doc-item-icon{border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:32px;height:32px;font-family:var(--font-ui);font-size:var(--text-2xs);font-weight:var(--weight-medium);letter-spacing:.04em;text-transform:lowercase;color:var(--text-secondary);background:var(--fill-1);flex-shrink:0;justify-content:center;align-items:center;display:flex}.doc-item-content{flex:1;min-width:0}.doc-item-title{font-size:var(--text-base);font-weight:var(--weight-medium);white-space:nowrap;text-overflow:ellipsis;color:var(--text);overflow:hidden}.doc-item-meta{font-family:var(--font-ui);font-size:var(--text-2xs);color:var(--text-muted);margin-top:var(--space-1);gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.doc-item-reading-prompt{margin-top:var(--space-2);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-secondary);align-items:center;gap:var(--space-2);font-family:var(--font-ui);font-size:var(--text-xs);color:var(--text-secondary);flex-wrap:wrap;display:flex}.doc-item-reading-prompt span{font-weight:var(--weight-semibold);color:var(--text)}.doc-item-footer{gap:var(--space-1);margin-top:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.doc-type{padding:var(--space-0) var(--space-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--text-2xs);font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);display:inline-block}.tag{padding:var(--space-0) var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--text-2xs);color:var(--text-secondary);text-transform:none;background:0 0;display:inline-block}.tag:before{content:"#";opacity:.55}button.tag{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.status-badge{padding:var(--space-0) var(--space-2);border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--text-2xs);font-weight:var(--weight-medium);text-transform:lowercase;align-items:baseline;gap:.4em;display:inline-flex}.status-dot{font-size:.9em;line-height:1}.status-badge.to_read{border:1px solid var(--border-strong);color:var(--text-secondary)}.status-badge.reading{background:var(--text);color:var(--bg)}.status-badge.archived{border:1px dashed var(--border-strong);color:var(--text-muted)}.status-badge.archived .status-word{text-decoration:line-through}.modal-overlay{background:var(--overlay);z-index:1000;padding:var(--space-4);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.modal h3{font-family:var(--font-ui);font-size:var(--text-sm);font-weight:var(--weight-medium);letter-spacing:.04em;margin-bottom:var(--space-4);text-transform:lowercase}.modal .form-group{margin-bottom:var(--space-4)}.modal label{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:var(--weight-medium);margin-bottom:var(--space-1);color:var(--text-secondary);text-transform:lowercase;display:block}.modal .btn-row{gap:var(--space-2);margin-top:var(--space-4);justify-content:flex-end;display:flex}.reader-container{flex-direction:column;flex:1;height:100vh;display:flex}.reader-toolbar{padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border);align-items:center;gap:var(--space-2);background:var(--bg-secondary);flex-shrink:0;display:flex}.reader-body{flex:1;position:relative;overflow:auto}.reader-margin-toggle{color:var(--text-secondary);padding:var(--space-1);cursor:pointer;transition:var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.reader-margin-toggle:hover,.reader-margin-toggle.active{color:var(--text)}.reader-margin-mark{transform:scaleX(-1)}.selection-popup{z-index:500;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-pop);padding:var(--space-1);animation:.1s slideIn;position:fixed;transform:translate(-50%)}.article-reader{max-width:var(--reader-max-width);padding:var(--space-6) var(--space-5);font-family:var(--font-serif);font-size:var(--text-lg);line-height:var(--leading-relaxed);color:var(--text);margin:0 auto}.article-reader h1,.article-reader h2,.article-reader h3{font-family:var(--font-sans);color:var(--text);margin:1.5em 0 .5em;font-weight:600}.article-reader p{margin-bottom:1em}.article-reader pre{background:var(--bg-secondary);border:1px solid var(--border);padding:var(--space-4);border-radius:var(--radius);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-normal);overflow-x:auto}.article-reader code{font-family:var(--font-mono);background:var(--bg-secondary);border-radius:var(--radius-sm);padding:.15em .3em;font-size:.85em}.article-reader pre code{background:0 0;padding:0}.article-reader img{border-radius:var(--radius);max-width:100%;height:auto}.article-reader blockquote{border-left:2px solid var(--border-strong);padding-left:var(--space-4);color:var(--text-secondary);margin:1em 0;font-style:italic}.article-reader a{color:var(--accent)}.pdf-container{width:100%;height:100%}.pdf-container iframe{border:none;width:100%;height:100%}.epub-container{width:100%;height:100%;position:relative}.search-bar{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.search-bar input{background:var(--bg)}.filter-bar{gap:var(--space-2);padding:var(--space-2) var(--space-5);border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-wrap:wrap;align-items:center;display:flex}.filter-bar select{width:auto}.filter-tabs{gap:var(--space-1);flex-wrap:wrap;display:flex}.filter-tab{border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--text-xs);color:var(--text-secondary);padding:var(--space-1) var(--space-3);text-transform:lowercase;background:0 0}.filter-tab:hover{border-color:var(--border-strong);color:var(--text)}.filter-tab.active{border-color:var(--accent);color:var(--accent)}.empty-state{text-align:center;padding:var(--space-7);color:var(--text-muted);font-family:var(--font-ui);font-size:var(--text-xs)}.empty-state p{margin-top:var(--space-2)}.loading{padding:var(--space-7);color:var(--text-muted);font-family:var(--font-ui);font-size:var(--text-xs);justify-content:center;align-items:center;display:flex}.highlight-list{gap:var(--space-3);flex-direction:column;display:flex}.highlight-item{padding:var(--space-3);border-left:2px solid var(--text);background:var(--bg-raised);border-radius:0}.highlight-item .hl-text{font-family:var(--font-serif);font-style:italic;font-size:var(--text-base);margin-bottom:var(--space-2);color:var(--text)}.highlight-item .hl-note{font-size:var(--text-sm);color:var(--text-secondary);padding-left:var(--space-2);border-left:2px solid var(--border)}.highlight-item .hl-meta{font-family:var(--font-ui);font-size:var(--text-2xs);color:var(--text-muted);margin-top:var(--space-2)}.notes-panel{border-left:1px solid var(--border);background:var(--bg-secondary);width:340px;padding:var(--space-4);flex-shrink:0;overflow-y:auto}.marginalia-head{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.notes-panel h3{font-family:var(--font-ui);font-size:var(--text-2xs);font-weight:var(--weight-medium);text-transform:lowercase;letter-spacing:.12em;color:var(--text-muted)}.marginalia-close{cursor:pointer;font-size:var(--icon-md);color:var(--text-secondary);padding:var(--space-1);background:0 0;border:none;line-height:1;display:none}.marginalia-lenses{gap:var(--space-1);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.marginalia-lens{padding:var(--space-1) var(--space-2);cursor:pointer;font-family:var(--font-ui);font-size:var(--text-2xs);text-transform:lowercase;color:var(--text-muted);transition:var(--transition-fast);background:0 0;border:none;border-bottom:1px solid #0000;align-items:center;gap:.35em;display:inline-flex}.marginalia-lens:hover{color:var(--text)}.marginalia-lens.active{color:var(--text);border-bottom-color:var(--accent)}.marginalia-lens-count{color:var(--text-muted);font-variant-numeric:tabular-nums}.marginalia-lens.active .marginalia-lens-count{color:var(--text-secondary)}.marginalia-section{margin-bottom:var(--space-5)}.marginalia-section h4{font-family:var(--font-ui);font-size:var(--text-2xs);font-weight:var(--weight-medium);text-transform:lowercase;letter-spacing:.12em;color:var(--text-muted);margin-bottom:var(--space-3)}.marginalia-empty{font-size:var(--text-sm);color:var(--text-muted)}.marginalia-list{gap:var(--space-3);flex-direction:column;display:flex}.passage-card{padding:var(--space-3);border-left:2px solid var(--text);background:var(--bg-raised)}.passage-card.has-note{border-left-color:var(--accent)}.passage-quote{font-family:var(--font-serif);font-style:italic;font-size:var(--text-base);color:var(--text);margin:0}.passage-note{text-align:left;width:100%;margin-top:var(--space-2);padding-left:var(--space-2);border:none;border-left:2px solid var(--border);cursor:pointer;font-family:var(--font-ui);font-size:var(--text-sm);color:var(--text-secondary);background:0 0;display:block}.passage-note:hover{color:var(--text);border-left-color:var(--text-secondary)}.passage-editor{margin-top:var(--space-2)}.passage-editor textarea{font-size:var(--text-sm)}.passage-actions{gap:var(--space-2);margin-top:var(--space-1);display:flex}.passage-meta{gap:var(--space-3);margin-top:var(--space-2);font-size:var(--text-2xs);display:flex}.passage-remove{color:var(--text-muted)}.note-card{padding:var(--space-3);border-left:2px solid var(--border);background:var(--bg-raised);font-size:var(--text-sm);color:var(--text)}.note-card p{margin:0}.note-compose{margin-top:var(--space-3)}.note-compose textarea{font-size:var(--text-sm)}.note-compose .btn-primary{margin-top:var(--space-1)}.context-menu{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-pop);z-index:500;min-width:130px;padding:var(--space-1) 0;animation:.1s slideIn;position:fixed}.context-menu button{text-align:left;width:100%;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--text);background:0 0;border-radius:0;display:block}.context-menu button:hover{background:var(--bg-secondary)}.toast{bottom:var(--space-5);right:var(--space-5);align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-4);border-radius:var(--radius);background:var(--text);color:var(--toast-fg);font-family:var(--font-ui);font-size:var(--text-xs);z-index:2000;animation:.2s slideIn;display:flex;position:fixed}.toast-undo{color:var(--toast-fg);font-family:var(--font-ui);font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:0 var(--space-1);margin-left:var(--space-2);cursor:pointer;background:0 0;border:none;text-decoration:underline}@keyframes slideIn{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.login-page{min-height:100vh;padding:var(--space-4);justify-content:center;align-items:center;display:flex}.login-card{width:100%;max-width:360px}.login-brand{align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);flex-direction:column;display:flex}.login-brand-mark{color:var(--text)}.login-card h1{font-family:var(--font-ui);font-size:1.5rem;font-weight:var(--weight-semibold);text-align:center;letter-spacing:-.02em;text-transform:lowercase;color:var(--text)}.login-card .form-group{margin-bottom:var(--space-4)}.login-card label{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:var(--weight-medium);margin-bottom:var(--space-1);color:var(--text-secondary);text-transform:lowercase;display:block}.login-card button{width:100%;margin-top:var(--space-2)}.login-card .error{color:var(--text);font-weight:var(--weight-semibold);font-family:var(--font-ui);font-size:var(--text-xs);margin-top:var(--space-2)}.login-card .error:before{content:"! "}.theme-options{gap:var(--space-2);flex-wrap:wrap;display:flex}.theme-option{gap:var(--space-0);min-width:120px;padding:var(--space-2) var(--space-3);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);text-align:left;flex-direction:column;flex:1;align-items:flex-start;display:flex}.theme-option:hover{border-color:var(--accent)}.theme-option.active{border-color:var(--accent);background:var(--fill-1)}.theme-option-label{font-family:var(--font-ui);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text)}.theme-option-hint{font-family:var(--font-ui);font-size:var(--text-2xs);color:var(--text-muted)}@media (width<=768px){.sidebar{display:none}.sidebar.open{z-index:100;width:100%;max-width:210px;padding-bottom:env(safe-area-inset-bottom,0px);display:flex;position:fixed;inset:0}.sidebar.open .sidebar-header{padding-top:calc(var(--space-3) + env(safe-area-inset-top,0px));justify-content:space-between}.sidebar.open .sidebar-close{display:inline-flex}.sidebar-backdrop{z-index:99;background:var(--overlay);display:block;position:fixed;inset:0}.main-content{padding-top:env(safe-area-inset-top,0px)}.page-header{padding:var(--space-2) var(--space-3)}.page-content{padding:var(--space-3)}.filter-bar{padding:var(--space-2) var(--space-3);gap:var(--space-2);flex-direction:column;align-items:stretch}.filter-bar form{flex:unset}.filter-bar select{width:100%}.notes-panel{display:none}.notes-panel.open{z-index:100;width:min(360px,86vw);box-shadow:var(--shadow-pop);padding-top:calc(var(--space-4) + env(safe-area-inset-top,0px));padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));display:block;position:fixed;top:0;bottom:0;right:0}.notes-panel.open .marginalia-close{display:inline-flex}.notes-backdrop{z-index:99;background:var(--overlay);display:block;position:fixed;inset:0}.search-bar{padding:var(--space-2) var(--space-3)}.article-reader{padding:var(--space-4);font-size:var(--text-md)}.reader-toolbar{padding:var(--space-2) var(--space-3);gap:var(--space-2)}.layout>button.mobile-menu-btn{box-shadow:var(--shadow-pop);bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px))!important;left:calc(var(--space-4) + env(safe-area-inset-left,0px))!important}.fab-keep{bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));right:calc(var(--space-4) + env(safe-area-inset-right,0px));border-radius:var(--radius-pill);background:var(--accent);width:48px;height:48px;color:var(--on-accent);font-size:var(--icon-xl);z-index:99;box-shadow:var(--shadow-pop);justify-content:center;align-items:center;padding:0;line-height:1;display:flex;position:fixed}.header-keep{display:none}.page-header>div:first-child{flex:1;justify-content:flex-start}.header-theme-toggle-wrap{display:flex}.sidebar-footer .theme-toggle{display:none}.toast{bottom:calc(var(--space-5) + env(safe-area-inset-bottom,0px));left:var(--space-3);right:var(--space-3);justify-content:space-between}}mark.cmp-hl{background:var(--hl-mark);box-shadow:inset 0 -1px 0 var(--text);border-radius:var(--radius-sm);cursor:pointer;padding:0 1px}mark.cmp-hl.has-note{box-shadow:inset 0 -2px 0 var(--accent)}.highlight-note-popover{z-index:500;width:280px;max-width:calc(100vw - var(--space-4));background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-pop);padding:var(--space-2);animation:.1s slideIn;position:fixed;transform:translate(-50%)}.highlight-note-popover textarea{resize:vertical;width:100%;font-size:var(--text-sm);font-family:var(--font-ui)}.highlight-note-popover-foot{justify-content:space-between;align-items:center;gap:var(--space-2);margin-top:var(--space-1);display:flex}.highlight-note-popover-foot .hint{font-size:var(--text-xs);color:var(--text-secondary)}.pdf-reader{padding:var(--space-4) 0}.pdf-page{margin:0 auto var(--space-3);box-shadow:var(--shadow-page);background:var(--pdf-page);position:relative}.pdf-page canvas{display:block}.pdf-hl-layer{pointer-events:none;position:absolute;inset:0}.pdf-hl{background:var(--hl-mark);box-shadow:inset 0 -1px 0 var(--text);pointer-events:auto;cursor:pointer;border-radius:1px;position:absolute}.pdf-hl.has-note{box-shadow:inset 0 -2px 0 var(--accent)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.ask-page{max-width:720px}.ask-lede{color:var(--text-secondary);margin-bottom:var(--space-4)}.ask-compose{gap:var(--space-2);align-items:flex-start;display:flex}.ask-compose textarea{font-family:var(--font-serif);font-size:var(--text-lg);flex:1;min-height:0}.ask-compose .btn-primary{white-space:nowrap}.ask-suggestions{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.ask-chip{border:1px solid var(--border-strong);color:var(--text-secondary);padding:var(--space-1) var(--space-3);font-size:var(--text-sm);background:0 0}.ask-chip:hover{color:var(--accent);border-color:var(--accent)}.ask-error{margin-top:var(--space-4);padding:var(--space-3);border:1px solid var(--border-strong);color:var(--text-secondary)}.ask-result{margin-top:var(--space-5)}.ask-question{font-family:var(--font-serif);font-size:var(--text-lg);color:var(--text);padding-left:var(--space-3);border-left:2px solid var(--accent);margin-bottom:var(--space-4)}.ask-answer{font-family:var(--font-serif);font-size:var(--text-lg);white-space:pre-wrap;word-wrap:break-word;line-height:1.6}.ask-citation{font-family:var(--font-sans);vertical-align:super;color:var(--accent);padding:0 1px;font-size:.75em;font-weight:600;text-decoration:none}.ask-citation:hover{text-decoration:underline}.ask-sources li:target{background:var(--accent-subtle,#0000000d)}.ask-cursor{vertical-align:text-bottom;background:var(--accent);width:.5em;height:1.1em;margin-left:1px;animation:1s steps(2,start) infinite ask-blink;display:inline-block}@keyframes ask-blink{to{visibility:hidden}}.ask-sources{margin-top:var(--space-6);border-top:1px solid var(--border);padding-top:var(--space-4)}.ask-sources h3{margin-bottom:var(--space-3)}.ask-sources ol{padding-left:var(--space-5);margin:0}.ask-sources li{margin-bottom:var(--space-4)}.ask-source-title{font-weight:600}.ask-source-ord{color:var(--text-secondary);font-size:var(--text-sm)}.ask-source-text{margin-top:var(--space-1);color:var(--text-secondary);font-size:var(--text-sm);line-height:1.5}
