:root{--ink:#202e2a;--muted:#78817b;--green:#285a49;--soft:#eef3ed;--line:#e3e5df;--paper:#fff;--canvas:#f2f1eb;--serif:Georgia,'Times New Roman',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-family:var(--sans);color:var(--ink);font-size:14px;background:#f9faf6}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{border:0;background:none;color:inherit;cursor:pointer}button:hover{color:var(--green)}button:disabled{opacity:.4;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #689780;outline-offset:3px}a{color:var(--green)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}
.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid var(--line);background:#fcfdf9;gap:16px}.brand{display:flex;gap:13px;align-items:center;color:var(--ink);text-decoration:none;font-family:var(--serif);font-size:25px;letter-spacing:-.9px}.brand-mark{font-size:32px;font-style:italic;display:block;border:1px solid #c6d3c5;border-radius:12px;width:41px;height:43px;text-align:center;line-height:39px;background:#eef3e9;letter-spacing:-2px;padding-right:2px}.brand-sub{display:block;font:10px var(--sans);letter-spacing:.2px;color:var(--muted);margin-top:4px}.workspace-label{font-size:9px;letter-spacing:1.6px;color:#7f897e;display:flex;gap:8px;align-items:center}.tiny-dot{width:5px;height:5px;border-radius:100%;background:#91a787}.connection{font-size:11px;display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:7px}.status-dot{width:6px;height:6px;border-radius:50%;background:#bc9b65}.connection.ready .status-dot{background:#5a926a}.arrow{color:#9aab9e;margin-left:6px}.workspace{height:calc(100dvh - 78px);display:grid;grid-template-columns:230px minmax(360px,1fr) 420px}.sidebar{padding:26px 18px 0 22px;display:flex;flex-direction:column;min-height:0;background:#f8f9f3;border-right:1px solid var(--line)}.section-label{font-size:9px;font-weight:600;letter-spacing:1.4px;color:#7c867b;display:flex;justify-content:space-between;align-items:center}.icon-button{font-size:21px;min-width:29px;height:29px;display:inline-flex;align-items:center;justify-content:center;border-radius:5px}.icon-button:hover{background:#e9eee5}.sidebar select{width:100%;margin-top:17px;background:#eff2e9;border:1px solid #dce2d5;color:#364f40;padding:12px 8px;font-size:12px;border-radius:6px;font-weight:550;text-overflow:ellipsis}.book-caption{font-size:10px;margin:10px 2px 24px;color:var(--muted)}.sidebar-tabs,.companion-tabs{display:flex;border-bottom:1px solid var(--line);gap:23px}.sidebar-tabs button,.companion-tabs button{font-size:12px;color:var(--muted);padding:0 0 12px;position:relative}.sidebar-tabs button.active,.companion-tabs button.active{color:var(--green)}.sidebar-tabs button.active:after,.companion-tabs button.active:after{content:'';position:absolute;height:2px;background:var(--green);bottom:-1px;left:0;right:0}#outline{overflow:auto;flex:1;padding:12px 0;scrollbar-width:thin;scrollbar-color:#d8ded2 transparent}.outline-item{width:100%;text-align:left;display:flex;gap:8px;align-items:baseline;font-size:11px;line-height:1.6;padding:10px 8px;margin:2px 0;border-radius:5px;color:#687467}.outline-item.active{background:#e9eee1;color:#2d553e}.outline-item:hover{background:#eff2e9}.outline-item span:first-child{flex:1}.outline-item small{color:#9ca894;font-size:9px}.outline-item.search-result{display:block}.outline-item.search-result small{display:block}.sidebar-footer{border-top:1px solid var(--line);padding:20px 0}.sidebar-footer p{font:13px/1.6 var(--serif);color:#788071;margin:10px 0}#search-box input{width:100%;border:1px solid var(--line);padding:10px;margin-top:14px;border-radius:5px;font-size:12px;background:white}
.reader{min-width:0;min-height:0;position:relative;display:flex;flex-direction:column;background:var(--canvas)}.reader-toolbar{height:59px;flex-shrink:0;border-bottom:1px solid #e3e3da;display:flex;align-items:center;gap:15px;padding:0 20px;background:#fafaf6}.page-navigation{display:flex;gap:7px;align-items:center;font-size:11px}.page-navigation input{width:42px;text-align:center;border:1px solid #dce0d6;background:white;padding:5px;border-radius:4px;appearance:textfield}.page-navigation input::-webkit-inner-spin-button{appearance:none}#page-total{color:var(--muted);white-space:nowrap}.toolbar-right{margin-left:auto;display:flex;gap:5px;align-items:center;font-size:11px}.toolbar-right a{text-decoration:none;border-left:1px solid #ddd;padding-left:13px;margin-left:7px}.reading-location{display:flex;justify-content:space-between;padding:18px 28px 13px;gap:12px;min-height:45px;font-size:10px;color:#7a8175}.reading-location span:last-child{font-size:8px;letter-spacing:1px;white-space:nowrap;color:#959a8d}#chapter-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-scroller{overflow:auto;flex:1;padding:8px 28px 36px;scrollbar-width:thin;scrollbar-color:#cdd2c5 transparent;position:relative}.pdf-page{position:relative;background:white;box-shadow:0 4px 22px #343b2b12;min-width:250px;width:100%;margin:0 auto}.pdf-page img{display:block;width:100%;height:auto;user-select:none;pointer-events:none}.text-layer{position:absolute;inset:0;overflow:hidden;line-height:1;text-size-adjust:none}.text-layer span{position:absolute;white-space:pre;color:transparent;transform-origin:0 0;cursor:text;font-family:Arial,sans-serif}.text-layer ::selection{background:#80b49765;color:transparent}.page-loading{font:18px var(--serif);text-align:center;padding:100px 20px;color:#7e867a}.reader-footer{font-size:9px;color:#91998b;display:flex;justify-content:space-between;gap:10px;padding:12px 27px;border-top:1px solid #e4e5dc;background:#f7f7f0}.selection-menu{position:fixed;z-index:20;background:#244a3a;color:#fff;border-radius:8px;padding:7px;box-shadow:0 5px 20px #142a3e25;display:flex;align-items:center;gap:4px;max-width:calc(100vw - 24px)}.selection-menu>span{font-size:9px;color:#bed0bd;padding:0 8px}.selection-menu button{padding:8px;font-size:11px;border-radius:5px;color:white}.selection-menu button:hover{background:#3a6150}
.companion{border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0;background:#fcfdf9;min-width:0}.companion-header{padding:28px 24px 20px;display:flex;justify-content:space-between;align-items:center}.companion-header .section-label{font-size:8px;letter-spacing:1.3px}h1{font:22px/1.2 var(--serif);font-weight:400;letter-spacing:-.5px;margin:9px 0 0}.companion-tabs{margin:0 24px;gap:24px}.discussion{flex:1;display:flex;flex-direction:column;min-height:0}.messages{flex:1;overflow:auto;padding:26px 24px;scrollbar-width:thin;scrollbar-color:#d9dfd2 transparent}.message{margin-bottom:26px;min-width:0}.message-heading{font-size:9px;font-weight:600;color:#71846e;letter-spacing:1.1px;margin-bottom:11px;display:flex;justify-content:space-between;align-items:center}.message.user .message-body{background:#edf2e6;border-radius:9px;padding:13px 15px;font-size:12px;color:#485640}.message.user .message-body p{margin:0}.message-body{font-size:13px;line-height:1.85;overflow-wrap:anywhere}.message-body p{margin:0 0 12px}.message-body h1,.message-body h2,.message-body h3{font:19px/1.4 var(--serif);margin:18px 0 10px;letter-spacing:0}.message-body li{margin:6px 0}.message-body ul,.message-body ol{padding-left:22px}.message-body pre{background:#edf0e8;padding:13px;overflow:auto;border-radius:5px;white-space:pre-wrap;font-size:11px}.message-body code{font-size:11px;background:#edf0e8;padding:2px 4px}.message-body table{font-size:11px;border-collapse:collapse;display:block;overflow:auto}.message-body th,.message-body td{border:1px solid var(--line);padding:7px}.message-body blockquote{border-left:2px solid #9cb88a;padding-left:12px;color:#728369;margin-left:0}.katex-display{overflow:auto;padding:5px 0}.citation{color:var(--green);font-size:10px;background:#eaf0e2;border-radius:3px;padding:2px 4px;white-space:nowrap}.visual-card{width:100%;padding:14px;border:1px solid #d9e5cc;background:#f2f6eb;border-radius:7px;margin:8px 0;text-align:left;font-size:12px;display:flex;justify-content:space-between;gap:8px}.message-context{font-size:10px;color:#8f9a88;margin-top:7px}.message.error .message-body{color:#96583d;background:#fbf2eb;padding:12px;border-radius:6px}.thinking{font-size:12px;color:#829377;display:flex;gap:8px;align-items:center}.thinking:before{content:'';width:7px;height:7px;background:#8bac7a;border-radius:50%;animation:pulse 1.4s infinite}@keyframes pulse{50%{opacity:.25}}.composer{border-top:1px solid var(--line);padding:14px 20px 12px;background:#fcfdf9}.context-pill{font-size:10px;color:#74856b;display:flex;align-items:center;gap:7px;margin:0 1px 12px;min-height:18px}.context-pill span:nth-child(2){flex:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.context-pill .icon-button{font-size:16px;min-width:20px;height:20px}#question-form{border:1px solid #d7dfce;background:white;border-radius:8px;padding:11px 12px 9px;box-shadow:0 2px 5px #30432304}#question-form:focus-within{border-color:#92ad7d}textarea{resize:vertical}#question{border:0;outline:none;width:100%;background:none;line-height:1.6;font-size:12px;color:#384a32;max-height:180px;min-height:58px}textarea::placeholder{color:#9ca795}.composer-bottom{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:5px}#composer-hint{font-size:8px;color:#9aa591}.send-button{background:#355e43;color:white;width:30px;height:30px;border-radius:7px;font-size:20px}.send-button:hover{background:#497951;color:white}.primary-button{padding:11px 16px;background:#335e45;color:white;border-radius:6px;font-size:12px}.primary-button:hover{background:#467755;color:white}.empty-note{font-size:12px;color:#939e89;line-height:1.8;padding-top:20px}
dialog{border:1px solid #dce3d5;border-radius:14px;padding:30px;width:min(520px,calc(100vw - 32px));color:var(--ink);box-shadow:0 25px 100px #1b392735;background:#fcfdf9}dialog::backdrop{background:#17291e60;backdrop-filter:blur(3px)}dialog h2{font:28px var(--serif);font-weight:400;margin:12px 0 16px}dialog p{font-size:12px;line-height:1.9;color:#7a8672}.dialog-close{float:right;margin-top:-12px;margin-right:-12px}#settings-form label{display:block;font-size:11px;color:#5a7150;margin:16px 0}#settings-form input{width:100%;display:block;padding:11px;border:1px solid #d5dfcc;border-radius:5px;margin-top:8px;background:white;font-size:12px}.key-status{font-size:11px;color:#5d804d;background:#edf4e5;border:1px solid #dfe9d7;padding:12px;border-radius:6px}.settings-note{font-size:10px;line-height:1.8;color:#8a9582}.error-text{color:#a36545;font-size:12px}#visual-dialog{width:min(870px,calc(100vw - 24px));padding:25px}#visual-container iframe{border:0;width:100%;height:min(620px,70dvh);background:#f6f8ef;border-radius:8px}.visual-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.visual-heading h2{font-size:24px;margin-top:8px}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#2b4f39;color:#fff;padding:12px 20px;border-radius:8px;box-shadow:0 5px 25px #19332420;font-size:12px;z-index:50;max-width:90vw}.sidebar-hidden .workspace{grid-template-columns:0 minmax(360px,1fr) 420px}.sidebar-hidden .sidebar{visibility:hidden;padding:0;overflow:hidden}
@media(min-width:1650px){.workspace{grid-template-columns:260px minmax(360px,1fr) 470px}.sidebar-hidden .workspace{grid-template-columns:0 minmax(360px,1fr) 470px}.messages{padding:32px}.companion-header{padding:30px 32px 24px}.companion-tabs{margin:0 32px}.composer{padding:18px 28px}.pdf-page{max-width:920px}}
@media(max-width:1200px){.workspace{grid-template-columns:190px minmax(320px,1fr) 355px}.sidebar{padding-left:14px;padding-right:12px}.sidebar-hidden .workspace{grid-template-columns:0 minmax(320px,1fr) 355px}.reading-location span:last-child{display:none}.companion-header{padding:24px 19px 20px}h1{font-size:20px}.messages{padding:24px 19px}.companion-tabs{margin:0 19px}.page-scroller{padding-left:18px;padding-right:18px}.reader-toolbar{padding:0 12px;gap:7px}.workspace-label{display:none}.toolbar-right a span{display:none}.composer{padding:13px}.reader-footer span:last-child{display:none}}
@media(max-width:950px){.workspace{grid-template-columns:minmax(320px,1fr) 355px}.sidebar{display:none}.sidebar-hidden .workspace{grid-template-columns:minmax(320px,1fr) 355px}body:not(.sidebar-hidden) .sidebar.mobile-open{display:flex;position:fixed;top:78px;bottom:0;left:0;width:240px;z-index:25;box-shadow:10px 0 40px #18392520}.topbar{padding:0 18px}}
@media(max-width:700px){.topbar{height:66px;padding:0 15px}.brand{font-size:22px}.brand-sub{font-size:8px}.brand-mark{width:35px;height:38px;line-height:35px}.connection{font-size:9px;padding:8px;max-width:150px}.workspace,.sidebar-hidden .workspace{display:flex;flex-direction:column;height:auto}.reader{height:70dvh;min-height:440px}.companion{min-height:650px;height:85dvh;border-top:1px solid var(--line);border-left:0}.reader-toolbar{height:50px}.reading-location{padding:12px 20px}.page-scroller{padding:4px 20px 25px}.sidebar.mobile-open{top:66px!important}.companion-header{padding:24px}.companion-tabs{margin:0 24px}.messages{padding:24px}.composer{padding:16px 22px}.selection-menu>span{display:none}.selection-menu button{font-size:10px}.reader-footer{padding:10px 20px}.workspace-label{display:none}}
.message-usage{font-size:10px;line-height:1.6;color:#72816b;margin-top:8px}

.composer-actions{display:flex;align-items:center;gap:7px;flex-shrink:0}.voice-button{width:32px;height:32px;border:1px solid #d7dfce;border-radius:7px;color:var(--green);display:grid;place-items:center}.voice-button:hover{background:#eef3e9}.voice-button.recording{color:#b44338;border-color:#c66b61;background:#fff0ee;box-shadow:0 0 0 3px #c66b6118}.voice-button.recording svg{animation:pulse 1.4s infinite}#voice-cancel{font-size:10px;padding:5px;color:#925240}#voice-status{font-size:10px;line-height:1.5;color:#65765b;margin:8px 0 0}#voice-status:empty{display:none}.voice-disclosure{font-size:9px;line-height:1.6;color:#7d8b73;margin:8px 3px 0}

/* Appearance is applied before first paint and shared by the whole workspace. */
:root{color-scheme:light}
.theme-sun,.connection-icon{display:none}
[data-theme="dark"] .theme-sun{display:block}
[data-theme="dark"] .theme-moon{display:none}
:root[data-theme="dark"]{color-scheme:dark;--ink:#e3eae4;--muted:#a1afa5;--green:#9bcca9;--soft:#29392e;--line:#38453c;--paper:#202923;--canvas:#141b17;--surface:#1c251f;--raised:#253229;background:#141b17}
[data-theme="dark"] :is(.topbar,.companion,.composer,.reader-toolbar,dialog,.topbar-toggle){background:var(--surface);border-color:var(--line);color:var(--ink)}
[data-theme="dark"] :is(.sidebar,.reader-footer){background:#18211b;border-color:var(--line)}
[data-theme="dark"] :is(.brand-mark,.sidebar select,.visual-card,.key-status,.speech-bar){background:var(--raised);border-color:var(--line);color:var(--ink)}
[data-theme="dark"] :is(#question-form,#note-draft,#search-box input,#settings-form input,.page-navigation input,.zoom-control input,.speech-bar select,.speech-buttons button){background:#151e18;border-color:#46574a;color:var(--ink)}
[data-theme="dark"] #question{color:var(--ink)}
[data-theme="dark"] :is(input,textarea)::placeholder{color:#93a297}
[data-theme="dark"] :is(.section-label,.outline-item,.sidebar-footer p,.reading-location,.reading-location span:last-child,.reader-footer,.panel-button,.message-heading,.message-context,.message-usage,.context-pill,#composer-hint,.voice-disclosure,#voice-status,.empty-note,dialog p,#settings-form label,.settings-note,.speech-copy small){color:var(--muted)}
[data-theme="dark"] :is(.outline-item small,.arrow){color:#a4b59e}
[data-theme="dark"] :is(.outline-item.active,.focus-modes [aria-pressed="true"],#layout-contents[aria-expanded="true"]){background:#314735;color:#c2e3b9}
[data-theme="dark"] :is(.message.user .message-body,.message-body pre,.message-body code,.citation,#note-count){background:#293b2e;color:var(--ink)}
[data-theme="dark"] .message-body blockquote{color:#b4c7ad;border-color:#7aa271}
[data-theme="dark"] :is(.icon-button,.panel-button,.topbar-toggle,.layout-controls button,.outline-item,.voice-button):hover{background:#344838;color:#c2e3b9}
[data-theme="dark"] :is(.toolbar-right a,.focus-modes,.visual-card){border-color:var(--line)}
[data-theme="dark"] .panel-divider{background:#29362c}
[data-theme="dark"] .panel-divider:before{background:#637961}
[data-theme="dark"] .panel-divider:hover,[data-theme="dark"] .panel-divider:focus-visible{background:#425540}
[data-theme="dark"] :is(.page-scroller,.messages,#outline){scrollbar-color:#52664f transparent}
[data-theme="dark"] .pdf-page{background:#191919;box-shadow:0 4px 22px #0005}
/* A display-only night treatment; the PDF file and selectable text stay intact. */
[data-theme="dark"] .pdf-page img{filter:invert(.9) hue-rotate(180deg)}
[data-theme="dark"] .text-layer ::selection{background:#91d5ab70;color:transparent}
[data-theme="dark"] .message.error .message-body{background:#3b2822;color:#f4b59b}
[data-theme="dark"] :is(.error-text,#voice-cancel){color:#f0ad98}
[data-theme="dark"] .voice-button.recording{background:#422923;border-color:#c98579;color:#ffb5a7}
[data-theme="dark"] dialog::backdrop{background:#050b08b3}
@media(max-width:900px) and (min-width:701px),(max-width:420px){
  .topbar-actions #connection{padding:7px;gap:4px;flex-shrink:0}
  .topbar-actions #connection-label,.topbar-actions #connection .arrow{display:none}
  .connection-icon{display:block;font-size:16px;line-height:1}
}
