:root{--bg:#fff;--surface:#f4f5f7;--panel:#fff;--sidebar:#f8f9fb;--ink:#111827;--muted:#6b7280;--accent:#ea580c;--accent-soft:#fdecd9;--border:#e6e8eb;--danger:#dc2626;--radius:8px;--sidebar-w:256px;color-scheme:light}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:-apple-system,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{font-weight:650;line-height:1.25;letter-spacing:-.01em}.container{max-width:920px;margin:0 auto;padding:32px 28px}.btn{display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:8px 14px;cursor:pointer;font-weight:550}.btn:hover{filter:brightness(1.05)}.btn:disabled{opacity:.6;cursor:default}.btn-ghost{display:inline-flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:7px 12px;cursor:pointer;color:var(--ink)}.btn-ghost:hover{background:var(--surface)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--border);background:var(--panel);border-radius:var(--radius);cursor:pointer;color:var(--ink)}.icon-btn:hover{background:var(--surface)}.icon-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color .12s,box-shadow .12s}a.card:hover{border-color:var(--accent);box-shadow:0 1px 6px rgba(37,99,235,.08);text-decoration:none}.field{width:100%;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:9px 11px}.field:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.muted{color:var(--muted)}.rail-shell{display:flex;min-height:100vh}.rail-main{flex:1 1;min-width:0}.icon-rail{width:64px;flex:0 0 64px;background:var(--sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:4px;position:-webkit-sticky;position:sticky;top:0;height:100vh;z-index:10050}.rail-logo{color:var(--ink);margin-bottom:10px;display:flex}.rail-icon{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:10px;color:var(--muted);cursor:pointer;background:none;border:none}.rail-icon:hover{background:var(--accent-soft);color:var(--ink)}.rail-icon.active{background:var(--accent-soft);color:var(--accent)}.rail-spacer{flex:1 1}.rail-avatar{width:36px;height:36px;border-radius:50%;background:#2b2f36;color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:600;cursor:pointer}.panel-shell{display:flex;flex:1 1;min-width:0}.panel-main{flex:1 1;min-width:0}.list-panel,.panel-main{height:100vh;overflow-y:auto}.list-panel{width:288px;flex:0 0 288px;border-right:1px solid var(--border);background:var(--panel);padding:16px 12px;position:-webkit-sticky;position:sticky;top:0}.panel-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:4px 10px 12px;justify-content:space-between}.panel-item,.panel-title{display:flex;align-items:center}.panel-item{gap:11px;padding:10px;border-radius:10px;cursor:pointer;color:var(--ink)}.panel-item:hover{background:var(--surface);text-decoration:none}.panel-item.active{background:var(--accent-soft)}.panel-item .pi-icon{width:34px;height:34px;flex:0 0 34px;border-radius:9px;background:var(--surface);display:flex;align-items:center;justify-content:center;color:var(--muted)}.panel-item.active .pi-icon{background:#fff;color:var(--accent)}.panel-item .pi-title{font-size:14.5px;font-weight:550;line-height:1.2}.panel-item .pi-sub{font-size:12.5px;color:var(--muted)}.panel-item .pi-text{min-width:0;overflow:hidden}.panel-item .pi-sub,.panel-item .pi-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-toggle{display:none}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));grid-gap:16px;gap:16px}.job-log{max-height:420px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.7}.job-log-line{display:flex;gap:12px;color:var(--ink)}.job-log-line.warn{color:#92660a}.job-log-line.error{color:var(--danger)}.job-log-time{flex:0 0 auto;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.settings-shell{display:flex;gap:32px;margin-top:24px;align-items:flex-start}.settings-nav{flex:0 0 220px;display:flex;flex-direction:column;gap:2px}.settings-tab{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:10px 12px;background:none;border-radius:8px;border:none;border-left:2px solid transparent;color:var(--muted);font-size:14px;font-weight:500;cursor:pointer}.settings-tab.active,.settings-tab:hover{background:var(--surface);color:var(--ink)}.settings-tab.active{border-left-color:var(--accent);font-weight:600}.settings-panel{flex:1 1;min-width:0}.settings-h2{font-size:22px;margin:0 0 14px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.settings-status{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px}.settings-status[data-ok=true]{background:#dcfce7;color:#15803d}.settings-status[data-ok=false]{background:var(--panel);color:var(--muted)}.doc-group{border:1px solid var(--border);border-radius:12px;background:var(--panel);padding:12px 14px}.doc-group>.doc-group-head{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink);list-style:none}.doc-chapter{border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:10px 12px}.doc-chapter>.doc-chapter-head{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;font-weight:600;color:var(--ink);list-style:none}.doc-chapter-head::-webkit-details-marker,.doc-group-head::-webkit-details-marker{display:none}.doc-count{margin-left:auto;font-size:11px;font-weight:600;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:1px 8px;letter-spacing:0}.doc-chapter .doc-count{background:var(--panel)}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:18px;display:block;color:var(--ink)}.stat-card.clickable{transition:border-color .12s,box-shadow .12s}.stat-card.clickable:hover{border-color:var(--accent);box-shadow:0 1px 8px rgba(234,88,12,.1);text-decoration:none}.stat-card .sc-head{display:flex;align-items:center;justify-content:space-between;color:var(--muted)}.stat-card .sc-label{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.stat-card .sc-value{font-size:34px;font-weight:650;margin:8px 0 4px}.stat-card .sc-name{font-size:16px;font-weight:600;margin:10px 0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-card .sc-sub{font-size:13px;color:var(--muted)}.graph-box{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:12px;height:380px;overflow:hidden}.graph-empty{inset:0;display:flex;align-items:center;justify-content:center;font-size:14px}.graph-empty,.graph-hint{position:absolute;color:var(--muted)}.graph-hint{top:12px;right:14px;font-size:12px;background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:3px 10px}.graph-node{cursor:pointer}.links-list{margin-top:12px;display:flex;flex-direction:column;gap:6px}.link-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--panel)}.link-text{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.graph-node circle{transition:fill .12s}.graph-node:hover circle{fill:var(--accent-soft)}.section-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:28px 0 12px}.pdf-viewer{display:flex;flex-direction:column;height:100vh}.pdf-toolbar{gap:8px;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--panel);position:-webkit-sticky;position:sticky;top:0;z-index:10}.pdf-pages,.pdf-toolbar{display:flex;align-items:center}.pdf-pages{flex:1 1;overflow-y:auto;padding:20px;flex-direction:column;gap:18px;background:var(--surface)}.pdf-page-wrap{position:relative;box-shadow:0 1px 8px rgba(17,24,39,.1);background:#fff;border-radius:2px}.pdf-page{display:block}.textLayer{position:absolute;text-align:initial;inset:0;overflow:clip;opacity:1;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0 0}.textLayer span.markedContent{top:0;height:0}.textLayer ::selection{background:rgba(37,99,235,.28)}.anno-layer{position:absolute;inset:0;z-index:3}.anno-layer.note-tool{cursor:crosshair}.anno-hl{border-radius:1px}.anno-hl,.hook-layer{position:absolute;pointer-events:none}.hook-layer{inset:0;z-index:4}.hook-badge{position:absolute;transform:translate(-50%,-50%);width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;border:1.5px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center;cursor:pointer;pointer-events:auto}.hook-badge:hover{filter:brightness(1.1)}.link-target{display:flex;align-items:center;gap:7px;width:100%;text-align:left;border:1px solid var(--border);background:var(--panel);border-radius:8px;padding:7px 9px;margin-top:4px;cursor:pointer;color:var(--ink)}.link-target:hover{background:var(--accent-soft);border-color:var(--accent)}.link-target .lt-label{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-target .lt-file{font-size:11.5px;margin-left:auto;flex:0 0 auto}.voice-hl{position:absolute;pointer-events:none;background:rgba(37,99,235,.22);box-shadow:inset 0 0 0 1px rgba(37,99,235,.35);border-radius:2px;transition:opacity .1s}.doc-editor{display:flex;flex-direction:column;height:100vh}.editor-body{flex:1 1;display:flex;min-height:0}.md-split{flex:1 1;display:grid;grid-template-columns:1fr 1fr;min-height:0}.rec-panel{width:320px;flex:0 0 320px;border-left:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;overflow-y:auto;padding:14px;gap:10px}.rec-head{font-size:14px}.rec-controls{display:flex;gap:8px;align-items:center}.rec-controls .field{flex:1 1}.rec-list{gap:14px;margin-top:4px}.rec-item,.rec-list{display:flex;flex-direction:column}.rec-item{border:1px solid var(--border);border-radius:8px;padding:10px;gap:6px}.rec-transcript{font-size:13px;line-height:1.5;white-space:pre-wrap;max-height:220px;overflow-y:auto;background:var(--surface);border-radius:6px;padding:8px 10px}@media (max-width:760px){.rec-panel{width:100%;flex-basis:auto}.editor-body{flex-direction:column}}.md-input{border:none;border-right:1px solid var(--border);padding:24px 28px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:14px;line-height:1.65;resize:none;outline:none;background:var(--panel);color:var(--ink)}.md-preview{padding:24px 36px;overflow-y:auto;background:var(--bg)}.md-preview>:first-child{margin-top:0}.md-preview h1{font-size:28px}.md-preview h2{font-size:21px;margin-top:1.4em}.md-preview h3{font-size:17px}.md-preview li,.md-preview p{line-height:1.7}.md-preview pre{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 14px;overflow-x:auto}.md-preview code{font-family:ui-monospace,monospace;font-size:.9em}.md-preview blockquote{margin:1em 0;padding-left:14px;border-left:3px solid var(--accent);color:var(--muted)}.md-preview table{border-collapse:collapse}.md-preview td,.md-preview th{border:1px solid var(--border);padding:6px 10px}.tldraw-wrap{position:relative;flex:1 1;min-height:0}@media (max-width:760px){.md-split{grid-template-columns:1fr}.md-input{border-right:none;border-bottom:1px solid var(--border)}}.add-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:31;min-width:190px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(17,24,39,.16);padding:5px}.link-pending{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:3px 6px 3px 12px;margin-right:8px;max-width:280px;overflow:hidden}.modal-scrim{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:10000;display:flex;align-items:center;justify-content:center}.modal{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px;width:460px;max-width:92vw;max-height:80vh;overflow-y:auto;box-shadow:0 12px 40px rgba(17,24,39,.2)}.hook-list{gap:6px}.hook-list,.hook-option{display:flex;flex-direction:column}.hook-option{align-items:flex-start;gap:2px;text-align:left;border:1px solid var(--border);background:var(--panel);border-radius:8px;padding:9px 11px;cursor:pointer}.hook-option:hover{background:var(--accent-soft);border-color:var(--accent)}.hook-label{font-size:14px;font-weight:500}.ctx-menu{position:fixed;z-index:10001;min-width:180px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(17,24,39,.18);padding:5px}.ctx-item{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:none;background:none;border-radius:7px;cursor:pointer;color:var(--ink);font-size:14px;text-align:left}.ctx-item:hover{background:var(--surface)}.ctx-item.danger{color:var(--danger)}.ctx-item.danger:hover{background:#fee2e2}.voice-bar{display:flex;align-items:center;gap:10px;padding:8px 14px;border-top:1px solid var(--border);background:var(--panel)}.voice-time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:13px;min-width:40px}.voice-scrub{flex:1 1;accent-color:var(--accent);cursor:pointer}.voice-rate{border:1px solid var(--border);border-radius:var(--radius);padding:5px 6px;background:var(--panel);cursor:pointer}.voice-caption{max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}@media (max-width:760px){.voice-caption{display:none}}.anno-note{position:absolute;transform:translate(-50%,-50%);width:20px;height:20px;border-radius:50% 50% 50% 2px;display:flex;align-items:center;justify-content:center;color:#92660a;background:#ffe08a;border:1px solid #d4a72c;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.2)}.anno-note-editor{position:absolute;z-index:20;width:220px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:8px;box-shadow:0 6px 20px rgba(17,24,39,.16)}.swatch{width:20px;height:20px;border-radius:50%;border:2px solid transparent;cursor:pointer}.swatch.active{border-color:var(--ink)}.file-row{display:flex;align-items:center;gap:12px;padding:12px 14px}.file-row .file-name{font-size:15px}.badge{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--surface);color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.badge.processing{background:#fef3c7;color:#92660a}.badge.error{background:#fee2e2;color:var(--danger)}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:28px;text-align:center;color:var(--muted);cursor:pointer;background:var(--panel);transition:border-color .12s,background .12s}.dropzone.drag{border-color:var(--accent);background:var(--accent-soft)}@media (max-width:760px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:40;width:var(--sidebar-w);transform:translateX(-100%);transition:transform .2s ease}.sidebar.open{transform:translateX(0)}.menu-toggle{display:inline-flex;align-items:center;gap:6px;position:fixed;top:12px;left:12px;z-index:50;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px;cursor:pointer}.scrim{position:fixed;inset:0;background:rgba(0,0,0,.25);z-index:30}.container{padding-top:56px}}