:root{--ink:#0e141f;--paper:#fff;--paper-dim:#f6f7f9;--line:#e3e6eb;--text:#12161f;--text-dim:#5b6472;--text-faint:#8a93a3;--ledger:#1b5e4f;--ledger-soft:#e7f1ee;--ledger-deep:#123f35;--amber-soft:#f0b64047;--amber-line:#c88b1c;--sans:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--mono:"IBM Plex Mono", "SF Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--sans);color:var(--text);background:var(--paper-dim);overflow:hidden}.app{grid-template-columns:240px 1fr 1fr;height:100vh;display:grid}.nav{background:var(--ink);color:#c9d2e0;white-space:nowrap;flex-direction:column;display:flex;overflow:hidden}.nav-brand{border-bottom:1px solid #ffffff14;align-items:center;gap:10px;padding:22px 20px 18px;display:flex}.nav-brand .mark{background:linear-gradient(135deg, var(--ledger), #2c8a72);width:26px;height:26px;font-family:var(--mono);color:#effff9;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.nav-brand .name{color:#f3f5f8;font-size:17px;font-weight:600}.nav-brand .sub{color:#6e7a90;font-size:10.5px;font-family:var(--mono);letter-spacing:.04em}.nav-section{letter-spacing:.08em;text-transform:uppercase;color:#5a6478;font-size:11px;font-family:var(--mono);padding:16px 14px 6px}.nav-newchat{color:#e7ebf2;cursor:pointer;border:1px solid #ffffff24;border-radius:8px;align-items:center;gap:8px;margin:14px 14px 4px;padding:9px 12px;font-size:13px;display:flex}.nav-newchat:hover{background:#ffffff0f;border-color:#ffffff47}.nav-list{max-height:30vh;padding-bottom:10px;list-style:none;overflow-y:auto}.nav-item{color:#aeb8c9;text-overflow:ellipsis;white-space:nowrap;padding:9px 20px;font-size:13px;overflow:hidden}.nav-item.nav-empty{color:#5a6478;font-style:italic}.nav-docs{border-top:1px solid #ffffff14;flex:1;padding:4px 0 14px;overflow-y:auto}.doc-row{color:#9aa5b8;align-items:center;gap:8px;padding:7px 20px;font-size:12.5px;display:flex}.doc-row .dot{background:var(--ledger);border-radius:50%;flex-shrink:0;width:6px;height:6px}.doc-row .fname{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat{background:var(--paper);border-right:1px solid var(--line);flex-direction:column;min-width:0;min-height:0;display:flex}.chat-topbar{border-bottom:1px solid var(--line);flex-shrink:0;align-items:center;gap:12px;height:56px;padding:0 18px;display:flex}.chat-title{font-size:16px;font-weight:600}.chat-scroll{flex:1;min-height:0;padding:22px 24px 10px;overflow-y:auto}.chat-empty{text-align:center;max-width:640px;color:var(--text-faint);margin:40px auto;font-size:13.5px}.msg{max-width:640px;margin:0 auto 26px}.msg.user{justify-content:flex-end;display:flex}.msg.user .bubble{background:var(--ink);color:#f3f5f8;border-radius:14px 14px 3px;max-width:80%;padding:10px 16px;font-size:14.5px;line-height:1.55}.msg.bot .bot-row{gap:12px;display:flex}.avatar{background:var(--ledger-soft);width:26px;height:26px;color:var(--ledger-deep);font-family:var(--mono);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.bot-content{flex:1;min-width:0}.bot-text{color:var(--text);font-size:14.5px;line-height:1.75}.bot-text p{margin-bottom:6px}.bot-thinking{color:var(--text-faint);font-size:13.5px;font-style:italic}.bot-error{color:#a33a2e;background:#fbeae7;border:1px solid #f0c9c2;border-radius:8px;padding:8px 12px;font-size:13px}.bot-refusal{color:var(--text-dim);background:var(--paper-dim);border:1px solid var(--line);border-radius:8px;padding:10px 14px;font-size:13.5px;font-style:italic}.cite-row{gap:4px;margin:6px 0 10px;display:flex}.cite{background:var(--ledger-soft);min-width:18px;height:18px;color:var(--ledger-deep);font-family:var(--mono);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;padding:0 4px;font-size:10.5px;font-weight:600;display:inline-flex}.cite:hover{background:var(--ledger);color:#fff}.confidence{font-family:var(--mono);align-items:center;gap:6px;margin-bottom:10px;font-size:11px;display:inline-flex}.confidence .dot{border-radius:50%;width:7px;height:7px}.conf-high{color:#1b5e4f}.conf-high .dot{background:#1b5e4f}.conf-medium{color:#a87310}.conf-medium .dot{background:#f0b640}.conf-low{color:#a33a2e}.conf-low .dot{background:#c0463a}.source-panel{border:1px solid var(--line);border-radius:10px;margin-top:8px;overflow:hidden}.source-panel summary{cursor:pointer;font-family:var(--mono);color:var(--text-dim);background:var(--paper-dim);align-items:center;gap:8px;padding:9px 12px;font-size:11.5px;list-style:none;display:flex}.source-panel summary::-webkit-details-marker{display:none}.source-panel summary .arrow{color:var(--text-faint);margin-left:auto}.source-row{border-top:1px solid var(--line);cursor:pointer;align-items:center;gap:10px;padding:9px 12px;font-size:12.5px;display:flex}.source-row:hover{background:var(--paper-dim)}.source-row .tag{font-family:var(--mono);background:var(--ledger-soft);color:var(--ledger-deep);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:10.5px;font-weight:600;display:flex}.source-row .meta{flex:1;min-width:0}.source-row .fname{color:var(--text);font-weight:500}.source-row .loc{color:var(--text-faint);font-family:var(--mono);margin-left:6px;font-size:10.5px}.source-row .snip{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:11.5px;overflow:hidden}.source-row .go{color:var(--text-faint);flex-shrink:0}.chat-inputbar{border-top:1px solid var(--line);flex-shrink:0;padding:14px 24px 20px}.input-shell{border:1px solid var(--line);background:var(--paper);border-radius:14px;align-items:flex-end;gap:8px;max-width:640px;margin:0 auto;padding:10px 10px 10px 16px;display:flex}.input-shell:focus-within{border-color:var(--ledger)}.input-shell textarea{resize:none;font-family:var(--sans);background:0 0;border:none;outline:none;flex:1;max-height:120px;font-size:14px;line-height:1.5}.send-btn{background:var(--ink);color:#fff;cursor:pointer;border:none;border-radius:9px;flex-shrink:0;width:32px;height:32px}.send-btn:hover{background:var(--ledger-deep)}.input-hint{text-align:center;font-family:var(--mono);color:var(--text-faint);margin-top:8px;font-size:10.5px}.sourceviewer{background:var(--paper-dim);flex-direction:column;min-height:0;display:flex;overflow:hidden}.sv-topbar{border-bottom:1px solid var(--line);background:var(--paper);flex-shrink:0;align-items:center;height:56px;padding:0 16px;display:flex}.sv-tabs{gap:6px;display:flex;overflow-x:auto}.sv-tab{font-family:var(--mono);color:var(--text-dim);white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;padding:6px 10px;font-size:11.5px}.sv-tab.active{background:var(--ink);color:#fff}.sv-tab:not(.active):hover{background:var(--paper-dim);border-color:var(--line)}.sv-scroll{flex-direction:column;flex:1;align-items:center;min-height:0;padding:24px;display:flex;overflow-y:auto}.sv-page{border:1px solid var(--line);color:#2a2f3a;background:#fff;border-radius:3px;width:100%;max-width:640px;padding:28px 32px;font-size:13.5px;line-height:1.85;overflow-x:auto;box-shadow:0 1px 2px #1419230a,0 8px 24px #1419230d}.sv-page p{margin-bottom:12px}.src-tbl{border-collapse:collapse;font-family:var(--mono);white-space:nowrap;margin:8px 0 14px;font-size:11px}.src-tbl td,.src-tbl th{text-align:right;border:1px solid #dadfe6;padding:5px 8px}.src-tbl td.section-row{text-align:left;font-weight:600;font-family:var(--sans);background:#f6f7f9}.src-tbl th{text-align:left;background:#f6f7f9}.src-tbl td:first-child{text-align:left}.sv-missing{color:var(--text-faint);font-size:13px}.hl{background:var(--amber-soft);box-shadow:0 0 0 1px var(--amber-line) inset;border-radius:3px;padding:1px 2px}.hl.flash{animation:1.1s flashhl}@keyframes flashhl{0%{background:#f0b640}to{background:var(--amber-soft)}}.sv-empty{color:var(--text-faint);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:40px;display:flex}.sv-empty .glyph{color:var(--line);font-size:34px}.sv-empty p{max-width:220px;font-size:12.5px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#d3d8e0;border-radius:8px}.nav ::-webkit-scrollbar-thumb{background:#ffffff24}
