:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#263629;background:#fafbf8;font-size:15px}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:10px;background:#315944;color:white;padding:12px 16px}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #a8c6a7;outline-offset:2px}[hidden]{display:none!important}#login{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:390px;padding:36px;border:1px solid #dce4d9;background:white;border-radius:20px;box-shadow:0 20px 60px #26362908}.mark{font-size:34px;color:#315944}.login-card h1{font-size:26px;margin:16px 0 8px}.login-card p,small{color:#6d7c70}.login-card label{display:block;margin:22px 0}.login-card input{display:block;width:100%;padding:12px;border:1px solid #dce4d9;border-radius:8px;margin-top:8px}.login-card button{width:100%}.error{color:#a43a3a!important}#workspace{display:flex;height:100dvh}aside{width:260px;flex-shrink:0;background:#eef2e9;padding:24px 16px;display:flex;flex-direction:column;border-right:1px solid #dce4d9}.brand{font-weight:650;font-size:18px;margin:0 8px 26px}#history{flex:1;overflow:auto;margin-top:18px}.history-item{display:block;background:transparent;color:#405344;text-align:left;width:100%;margin:4px 0;padding:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-item:hover,.history-item.selected{background:#dfe8d9}.aside-bottom{display:flex;flex-direction:column;gap:12px;padding-top:16px;color:#69776b;font-size:12px}.quiet{background:transparent;color:#69776b;padding:8px}main{flex:1;min-width:0;display:flex;flex-direction:column}header{height:72px;display:flex;align-items:center;gap:12px;border-bottom:1px solid #e7ebe4;padding:0 28px}header h2{font-size:16px;font-weight:500;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#menu{display:none}#setup{margin:18px 28px 0;padding:14px 18px;background:#fff5db;color:#785c19;border-radius:12px;line-height:1.6}#messages{flex:1;overflow:auto;padding:30px max(28px,calc((100% - 760px)/2));min-height:0}.welcome{text-align:center;margin-top:min(12vh,120px);color:#637267}.welcome h1{font-size:30px;color:#315944;font-weight:550}.welcome p{line-height:1.8}.message{padding:20px 0;line-height:1.85}.message.user{background:#edf2e8;border-radius:14px;padding:18px 22px;margin:10px 0}.speaker{font-weight:650;font-size:13px;color:#315944;margin-bottom:6px}.content{white-space:pre-wrap;overflow-wrap:anywhere}#composer{margin:10px max(28px,calc((100% - 760px)/2)) 0;padding:12px;background:white;border:1px solid #d8e0d4;border-radius:16px;display:flex;gap:10px;flex-wrap:wrap;box-shadow:0 5px 20px #26362905}textarea{resize:none;flex:1;border:0;outline:0;background:transparent;line-height:1.7;padding:6px;min-width:0}#send{align-self:end;font-size:22px;width:42px;height:42px;padding:0}.composer-note{width:100%;color:#889486;font-size:11px;text-align:center}#notice{min-height:34px;text-align:center;color:#86533c;font-size:13px;padding:8px 16px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:720px){aside{display:none;position:fixed;z-index:5;top:72px;bottom:0;left:0;width:250px;box-shadow:8px 0 30px #26362920}.show-sidebar aside{display:flex}#menu{display:block}header{padding:0 16px}.welcome h1{font-size:24px}#messages{padding:18px}#setup{margin:12px 16px 0}#composer{margin:10px 16px 0}}

/* Keep only model selection in the bottom-left controls. */
.aside-bottom #model,.aside-bottom #account,.aside-bottom #usage,.aside-bottom #disconnect,.aside-bottom #logout{display:none!important}.aside-bottom #model-picker{width:100%;padding:10px;border:1px solid #cbd7c7;border-radius:10px;background:#fafbf8;color:#405344}

#attachments{width:100%;display:flex;gap:12px;flex-wrap:wrap}.attachment{position:relative}.attachment img{width:88px;height:88px;object-fit:cover;border-radius:8px}.attachment button{position:absolute;right:-5px;top:-5px;border-radius:50%;padding:0;width:25px;height:25px}.reference-image{display:block;max-width:100%;max-height:360px;object-fit:contain;border-radius:10px;margin:10px 0}#attach{align-self:end;background:#eef2e9;color:#315944;padding:10px;white-space:nowrap}#notice{flex-shrink:0}

.thinking-label{color:#69776b;display:flex;align-items:baseline}.thinking-dots{display:inline-flex;width:1.4em;margin-left:2px}.thinking-dots span{animation:thinking-dot 1.2s infinite;opacity:0}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes thinking-dot{0%,15%{opacity:0}25%,75%{opacity:1}90%,100%{opacity:0}}@media(prefers-reduced-motion:reduce){.thinking-dots span{animation:none;opacity:1}}

body{overflow:hidden}#workspace{height:var(--app-height,100dvh)}header{flex-shrink:0}#voice{align-self:end;width:42px;height:42px;padding:10px;background:#eef2e9;color:#315944}#voice.recording{background:#a43a3a;color:white}#composer{flex-shrink:0}#message{font-size:16px}#messages{overscroll-behavior:contain}#notice{min-height:28px;padding:6px 12px}aside{padding-bottom:max(16px,env(safe-area-inset-bottom))}#login{height:var(--app-height,100dvh);overflow:auto;min-height:0}@media(max-width:720px){header{height:56px;padding:0 12px;padding-top:env(safe-area-inset-top)}aside{top:calc(56px + env(safe-area-inset-top));width:min(82vw,290px);padding:20px 14px}#composer{display:grid;grid-template-columns:1fr 42px 42px;margin:6px 10px 0;gap:6px;padding:10px}#attachments{grid-column:1/-1}#message{grid-column:1/-1;min-height:48px;max-height:130px;line-height:1.5;padding:4px;resize:none}#attach{grid-column:1;justify-self:start;height:42px}#voice{grid-column:2}#send{grid-column:3}.composer-note{grid-column:1/-1;font-size:10px}#notice{padding-bottom:max(6px,env(safe-area-inset-bottom));font-size:12px}#messages{padding:12px 16px}.welcome{margin-top:8vh}.welcome h1{font-size:23px}.message{padding:14px 0}.reference-image{max-height:240px}.login-card{padding:26px}.attachment img{width:70px;height:70px}}

@media(max-width:720px){#attachments{grid-row:1}#message{grid-row:2}#attach,#voice,#send{grid-row:3}.composer-note{grid-row:4}}

#theme{font-size:22px;min-width:42px;min-height:42px}#logout-visible{min-height:42px}[data-theme=dark]{color-scheme:dark;background:#181b19;color:#e3e9e3}[data-theme=dark] aside{background:#212723;border-color:#343c35}[data-theme=dark] header{border-color:#343c35}[data-theme=dark] .quiet,[data-theme=dark] .history-item{color:#bdc9be}[data-theme=dark] .history-item:hover,[data-theme=dark] .history-item.selected{background:#334036}[data-theme=dark] #composer,[data-theme=dark] .login-card{background:#242a25;border-color:#424d43}[data-theme=dark] .message.user{background:#2b382e}[data-theme=dark] .speaker,[data-theme=dark] .welcome h1,[data-theme=dark] .mark{color:#afd4b5}[data-theme=dark] .welcome,[data-theme=dark] .thinking-label,[data-theme=dark] small,[data-theme=dark] .login-card p{color:#a4b2a6}[data-theme=dark] #attach,[data-theme=dark] #voice{background:#344238;color:#d3e5d5}[data-theme=dark] #voice.recording{background:#a43a3a;color:white}[data-theme=dark] .aside-bottom #model-picker,[data-theme=dark] .login-card input{background:#242c26;color:#e3e9e3;border-color:#48554a}[data-theme=dark] #message{color:#e3e9e3}[data-theme=dark] #notice{color:#e5bbaa}[data-theme=dark] .error{color:#ffa9a9!important}@media(max-width:720px){header{gap:5px}header h2{font-size:14px}#theme{padding:5px;min-width:36px}#logout-visible,#delete-chat{font-size:12px;padding:6px}}

.message.assistant{border-top:1px solid #dfe5dc;margin-top:22px;padding-top:20px}.message.assistant .speaker{display:flex;align-items:center;justify-content:space-between;gap:12px}.elapsed{font-size:12px;font-weight:400;color:#7b897c;font-variant-numeric:tabular-nums}.thinking>.elapsed{display:block;margin-top:8px}[data-theme=dark] .message.assistant{border-color:#354039}[data-theme=dark] .elapsed{color:#9aaa9d}@media(max-width:720px){.message.assistant{margin-top:16px;padding-top:16px}.elapsed{font-size:11px}}

.voice-options{width:100%;display:flex;gap:8px;align-items:center}.voice-options button{padding:7px 12px;background:#eef2e9;color:#526756;font-size:12px;border-radius:20px;min-height:34px}.voice-options #voice-mode.enabled{background:#315944;color:white}[data-theme=dark] .voice-options button{background:#344238;color:#d3e5d5}[data-theme=dark] .voice-options #voice-mode.enabled{background:#4c7557;color:white}@media(max-width:720px){.voice-options{grid-column:1/-1;grid-row:4}.composer-note{grid-row:5}.voice-options button{min-height:38px}}

#drop-hint{display:none;pointer-events:none;position:fixed;z-index:20;inset:14px;border:2px dashed #6d9f79;border-radius:20px;background:#f5faf2ef;color:#315944;align-items:center;justify-content:center;flex-direction:column;gap:12px;font-size:24px;font-weight:600}#drop-hint span{font-size:13px;font-weight:400}.image-dragging #drop-hint{display:flex}[data-theme=dark] #drop-hint{background:#1f2d24ef;color:#c7e5ce;border-color:#7ca889}

/* Safari viewport, accessible navigation and compact phone controls. */
main{position:relative;min-height:0}header h2{min-width:0}#more,#sidebar-close{display:none}.header-actions{position:relative}#action-menu{display:flex;gap:8px}.brand{display:flex;align-items:center;justify-content:space-between}#sidebar-backdrop{position:absolute;inset:0;background:#0006;border-radius:0;z-index:4;padding:0}input,select{font-size:16px}#message{overflow-y:auto}#notice:empty{min-height:8px;padding:0}button{touch-action:manipulation}#history{-webkit-overflow-scrolling:touch}#messages{-webkit-overflow-scrolling:touch}#attach,#voice,#send{height:44px;min-width:44px}#model-picker{min-height:44px}
@media(max-width:720px){
 #workspace,#login{position:fixed;top:var(--viewport-top,0px);left:0;right:0;height:var(--app-height,100dvh)}
 #workspace{overflow:hidden}#login{align-items:safe center;padding:20px 16px;scroll-padding:24px}.login-card{margin:auto;width:100%;padding:24px}
 header{height:calc(52px + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(8px,env(safe-area-inset-right)) 0 max(8px,env(safe-area-inset-left));gap:4px}
 header h2{font-size:15px;margin:0 6px}#menu,#theme,#more,#sidebar-close{display:block;flex-shrink:0;min-width:44px;min-height:44px;padding:8px;font-size:22px}
 #action-menu{display:none;position:absolute;right:0;top:48px;z-index:8;min-width:144px;padding:6px;flex-direction:column;border:1px solid #d8e0d4;background:#fff;border-radius:12px;box-shadow:0 8px 30px #0002}#action-menu.open{display:flex}#action-menu button{font-size:15px;text-align:left;min-height:44px;padding:10px 12px}
 aside{position:absolute;top:0;bottom:0;left:0;width:min(86%,310px);padding:calc(8px + env(safe-area-inset-top)) 14px max(16px,env(safe-area-inset-bottom));z-index:5}.brand{font-size:16px;margin:0 0 12px}.aside-bottom{flex-shrink:0}#history{min-height:0}.show-sidebar main{pointer-events:none}
 #messages{padding:12px max(14px,env(safe-area-inset-right)) 12px max(14px,env(safe-area-inset-left))}
 #composer{grid-template-columns:auto 1fr 44px 44px;margin:6px max(8px,env(safe-area-inset-right)) 0 max(8px,env(safe-area-inset-left));padding:8px;gap:6px}
 #attachments{grid-column:1/-1;grid-row:1}#message{grid-column:1/-1;grid-row:2;min-height:40px;max-height:130px;padding:4px;font-size:16px;line-height:1.5}
 #attach{grid-column:1;grid-row:3;padding:8px;font-size:13px}#voice{grid-column:3;grid-row:3}#send{grid-column:4;grid-row:3;width:44px}
 .voice-options{grid-column:2;grid-row:3;min-width:0;width:auto;gap:0;flex-wrap:wrap}.voice-options button{padding:6px;font-size:11px;min-height:44px;white-space:nowrap}.composer-note{grid-row:4;grid-column:1/-1;line-height:1.4}
 #stop-reading{display:none!important}#notice{min-height:0;padding:4px 12px max(4px,env(safe-area-inset-bottom));font-size:12px;max-height:72px;overflow:auto}#notice:empty{min-height:calc(6px + env(safe-area-inset-bottom));padding:0}
 .keyboard-open header{height:48px;padding-top:0}.keyboard-open .composer-note{display:none}.keyboard-open #notice:empty{min-height:4px}.keyboard-open #notice{padding-bottom:4px}.keyboard-open aside{padding-top:8px;padding-bottom:10px}
 .welcome{margin-top:clamp(12px,5vh,40px)}.welcome h1{font-size:22px}.welcome p{font-size:14px}.attachment img{width:56px;height:56px}.attachment button{width:32px;height:32px;right:-3px;top:-3px}
 [data-theme=dark] #action-menu{background:#242a25;border-color:#424d43}
}
@media(max-width:720px) and (max-height:450px){header{height:44px;padding-top:0}.composer-note{display:none}#message{min-height:32px}#composer{margin-top:2px;padding:6px;gap:4px}.welcome{margin-top:8px}.welcome h1{margin:6px 0}}

/* Compact composer: no voice conversation, one-line draft by default. */
#composer{width:calc(100% - 48px);max-width:680px;margin:8px auto 0;padding:8px;gap:6px}#message{min-height:36px;line-height:1.5;padding:6px}.composer-note{line-height:1.4}
@media(max-width:720px){#composer{width:calc(100% - max(16px,env(safe-area-inset-left)) - max(16px,env(safe-area-inset-right)));max-width:520px;margin:6px auto 0;grid-template-columns:1fr 44px 44px;padding:6px 8px;gap:4px}#message{min-height:36px;padding:6px 4px}#attach{grid-column:1}#voice{grid-column:2}#send{grid-column:3}.composer-note{grid-row:4;font-size:10px}}

@media(max-width:720px){.composer-note{display:none}}

#theme{font-size:16px;max-width:122px;padding:6px;border:0;border-radius:8px;background:transparent;color:inherit;cursor:pointer}#theme option{background:#fafbf8;color:#263629}[data-theme=dark] #theme option{background:#242a25;color:#e3e9e3}@media(max-width:720px){#theme{width:110px;min-width:0;font-size:16px;padding:4px}}

/* Unified message composer, matching the reference's input-and-tools structure. */
:root{color:#242424;background:#fff}aside{background:#f8f8f8;border-color:#e7e7e7}.brand,.speaker,.welcome h1{color:#242424}.quiet,.welcome{color:#666}.history-item{color:#444}.history-item:hover,.history-item.selected{background:#eaeaea}header{border-color:#eee}.message.user{background:#f3f3f3}.message.assistant{border-color:#e6e6e6}
#composer{display:flex;flex-direction:column;flex-wrap:nowrap;width:calc(100% - 48px);max-width:680px;margin:8px auto 0;padding:12px;border:1px solid #dedede;border-radius:26px;background:#fff;gap:6px;box-shadow:0 2px 8px #00000005}
#message{display:block;flex:none;width:100%;min-height:36px;margin:0;padding:6px 4px;color:inherit;font-size:16px;line-height:1.5}
.composer-tools{display:grid;grid-template-columns:44px minmax(0,1fr) 44px 44px;gap:6px;align-items:center;width:100%}
#attach,#voice,#send{grid-column:auto;grid-row:auto;align-self:center;justify-self:auto;width:44px;height:44px;min-width:44px;margin:0;padding:0;border-radius:50%;background:transparent;color:#333;display:flex;align-items:center;justify-content:center}#attach{font-size:28px;font-weight:300}#attach:hover,#voice:hover{background:#f1f1f1}#voice.recording{background:#a43a3a;color:white}#send{background:#222;color:white;font-size:25px}
#model-picker{display:block;min-width:0;width:100%;max-width:220px;min-height:44px;padding:8px 4px;border:0;border-radius:10px;background:transparent;color:inherit;font:inherit;font-size:16px;text-overflow:ellipsis;cursor:pointer}#model-picker option{background:#fff;color:#242424}
.composer-note{flex-shrink:0;width:100%;padding:6px 12px 0;font-size:11px;color:#888}.reference-image{border-radius:14px}
[data-theme=dark]{background:#212121;color:#ececec}[data-theme=dark] aside{background:#171717;border-color:#333}[data-theme=dark] header{border-color:#333}[data-theme=dark] .brand,[data-theme=dark] .speaker,[data-theme=dark] .welcome h1{color:#ececec}[data-theme=dark] .quiet,[data-theme=dark] .welcome,[data-theme=dark] .history-item{color:#bbb}[data-theme=dark] .history-item:hover,[data-theme=dark] .history-item.selected{background:#2a2a2a}[data-theme=dark] .message.user{background:#303030}[data-theme=dark] .message.assistant{border-color:#3b3b3b}[data-theme=dark] #composer{background:#303030;border-color:#424242}[data-theme=dark] #attach,[data-theme=dark] #voice{background:transparent;color:#ececec}[data-theme=dark] #attach:hover,[data-theme=dark] #voice:hover{background:#414141}[data-theme=dark] #voice.recording{background:#a43a3a;color:#fff}[data-theme=dark] #send{background:#ececec;color:#202020}[data-theme=dark] #model-picker{color:#ececec}[data-theme=dark] #model-picker option{background:#303030;color:#ececec}
@media(max-width:720px){#composer{width:calc(100% - max(16px,env(safe-area-inset-left)) - max(16px,env(safe-area-inset-right)));max-width:680px;margin:6px auto 0;padding:8px 10px;border-radius:24px;gap:4px}#message{padding:6px 4px;min-height:36px}.composer-tools{gap:4px}#model-picker{font-size:16px;padding:6px 2px}.composer-note{display:none}}
@media(max-width:720px) and (max-height:450px){#composer{padding:6px 8px;margin-top:2px}}

.composer-tools #attach{grid-column:1}.composer-tools #model-picker{grid-column:2}.composer-tools #voice{grid-column:3}.composer-tools #send{grid-column:4}

:root{--chat-font-size:16px}.message .content{font-size:var(--chat-font-size)}#message{font-size:max(16px,var(--chat-font-size))}
.composer-tools{grid-template-columns:44px minmax(0,1fr) 44px 44px 44px}.composer-tools .font-controls{grid-column:3}.composer-tools #voice{grid-column:4}.composer-tools #send{grid-column:5}.font-controls{position:relative;width:44px;height:44px}#font-toggle{width:44px;height:44px;padding:0;border-radius:50%;background:transparent;color:inherit;font-size:17px}#font-toggle:hover{background:#f1f1f1}#font-panel{position:absolute;right:0;bottom:52px;width:184px;padding:12px;border:1px solid #dedede;border-radius:14px;background:#fff;color:#242424;box-shadow:0 6px 24px #0002;z-index:7}#font-panel label{display:block;font-size:14px;margin-bottom:8px}#font-size{width:100%;min-height:44px;font-size:16px;padding:8px;border:1px solid #ddd;border-radius:8px;background:#fff;color:#242424}[data-theme=dark] #font-toggle:hover{background:#414141}[data-theme=dark] #font-panel{background:#303030;border-color:#484848;color:#ececec}[data-theme=dark] #font-size{background:#252525;border-color:#555;color:#ececec}

.content a{color:#2563a6;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.reply-image-card{margin:12px 0;white-space:normal}.reply-image{display:block;width:auto;max-width:100%;max-height:420px;object-fit:contain;border-radius:14px}.reply-image-card figcaption{margin-top:6px;font-size:13px;line-height:1.6}.image-unavailable{color:#777}[data-theme=dark] .content a{color:#91c5ff}[data-theme=dark] .image-unavailable{color:#bbb}@media(max-width:720px){.reply-image{max-height:300px}}

.composer-tools{display:flex;gap:6px}.composer-tools #model-picker{flex:0 1 auto;min-width:0;width:auto;max-width:220px}.composer-tools #attach,.composer-tools #voice,.composer-tools #send,.composer-tools .font-controls{flex-shrink:0}.composer-tools .font-controls{margin-left:auto}.composer-note{display:block;line-height:1.5}@media(max-width:720px){.composer-tools{gap:4px}.composer-note{display:block;padding:4px 16px 0;font-size:10px}.keyboard-open .composer-note{display:none}}
/* Conversation typography and functional reply actions. */
.markdown{white-space:normal;line-height:1.8}.markdown p{margin:0 0 1em}.markdown>:last-child{margin-bottom:0}.markdown strong{font-weight:700}.markdown h2,.markdown h3,.markdown h4,.markdown h5,.markdown h6{line-height:1.45;font-weight:650;margin:1.3em 0 .55em}.markdown>:first-child{margin-top:0}.markdown h2{font-size:1.35em}.markdown h3{font-size:1.18em}.markdown h4,.markdown h5,.markdown h6{font-size:1.05em}.markdown ul,.markdown ol{padding-left:1.5em;margin:.6em 0 1em}.markdown li{padding-left:.15em;margin:.3em 0}.markdown li p{margin:.25em 0}.markdown blockquote{margin:1em 0;padding:8px 16px;border-left:3px solid #ccc;color:#555}.markdown .callout{border:1px solid #e0e6ee;border-left:3px solid #7095be;background:#f7f9fc;border-radius:10px;padding:12px 16px;color:inherit}.callout-label{font-weight:650;margin-bottom:5px}.markdown .callout.tip{border-color:#c8dfd1;background:#f5faf6}.markdown .callout.warning,.markdown .callout.caution{border-color:#ead5b0;background:#fffbf1}.markdown code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;background:#f1f1f1;padding:2px 5px;border-radius:5px;overflow-wrap:anywhere}.code-block{border:1px solid #e1e1e1;background:#f7f7f7;border-radius:12px;margin:1em 0;overflow:hidden}.code-head{display:flex;align-items:center;justify-content:space-between;padding:4px 10px;border-bottom:1px solid #e5e5e5;font-size:12px;color:#666}.code-block pre{margin:0;padding:14px 16px;overflow:auto;white-space:pre;line-height:1.65;-webkit-overflow-scrolling:touch}.code-block pre code{background:transparent;padding:0;border-radius:0;overflow-wrap:normal;white-space:pre}.markdown hr{border:0;border-top:1px solid #ddd;margin:1.4em 0}.table-scroll{max-width:100%;overflow:auto;margin:1em 0;-webkit-overflow-scrolling:touch}.markdown table{border-collapse:collapse;width:100%;min-width:280px;font-size:.94em}.markdown th,.markdown td{border-bottom:1px solid #ddd;text-align:left;padding:9px 12px;vertical-align:top}.markdown th{font-weight:650;background:#f7f7f7}.reply-actions{display:flex;align-items:center;gap:2px;flex-wrap:wrap;margin-top:12px;color:#777}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:36px;min-height:36px;flex-shrink:0;padding:8px;border:0;border-radius:8px;background:transparent;color:inherit}.icon-button:hover,.icon-button.active{background:#ededed;color:#222}.answer-versions{display:flex;align-items:center;gap:2px;margin-left:6px;font-size:12px}.answer-versions .icon-button{width:28px;padding:4px}.message.user{max-width:92%;margin-left:auto;width:fit-content}.message.user .reply-actions{margin-top:8px}.message.assistant{border-top:0;margin-top:14px;padding-top:14px}.message.assistant .speaker{margin-bottom:14px}.elapsed{font-size:11px}#edit-banner{display:flex;align-items:center;gap:8px;padding:6px 4px;border-bottom:1px solid #ddd;font-size:12px;color:#666}#edit-banner span{flex:1}#cancel-edit{width:36px;height:36px;padding:0;font-size:24px;background:transparent;color:inherit}
[data-theme=dark] .markdown blockquote{border-color:#555;color:#bbb}[data-theme=dark] .markdown code{background:#383838}[data-theme=dark] .code-block{background:#181818;border-color:#444}[data-theme=dark] .code-head{border-color:#444;color:#bbb}[data-theme=dark] .code-block pre code{background:transparent}[data-theme=dark] .markdown th{background:#2d2d2d}[data-theme=dark] .markdown th,[data-theme=dark] .markdown td,[data-theme=dark] .markdown hr{border-color:#444}[data-theme=dark] .markdown .callout{background:#242b34;border-color:#42556f}[data-theme=dark] .markdown .callout.tip{background:#232e26;border-color:#46694e}[data-theme=dark] .markdown .callout.warning,[data-theme=dark] .markdown .callout.caution{background:#302a20;border-color:#75613e}[data-theme=dark] .reply-actions{color:#aaa}[data-theme=dark] .icon-button:hover,[data-theme=dark] .icon-button.active{background:#363636;color:#eee}[data-theme=dark] #edit-banner{color:#bbb;border-color:#444}
@media(max-width:720px){.reply-actions{gap:0}.icon-button{width:40px;min-height:40px}.answer-versions .icon-button{width:32px}.markdown blockquote{padding-left:12px}.markdown .callout{padding:10px 12px}.message.user{max-width:94%;padding:12px 16px}.markdown th,.markdown td{padding:8px}.message.assistant .speaker{margin-bottom:10px}}

.stream-caret{display:inline-block;margin-left:3px;font-size:.6em;vertical-align:middle;animation:stream-pulse 1s infinite}.streaming .code-head .icon-button{visibility:hidden}.reply-state{font-size:11px;font-weight:400;color:#888;margin-left:8px}@keyframes stream-pulse{50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.stream-caret{animation:none}}

.article-card{background:#f5f5f5;border:1px solid #e0e0e0;border-radius:20px;margin:18px 0 22px;overflow:hidden;min-width:0}.article-head{display:flex;align-items:center;gap:4px;padding:12px 18px;color:#777;font-size:.85em}.article-head>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.article-body{padding:4px 22px 22px;overflow-wrap:anywhere}.article-body>:first-child{margin-top:0}.article-body>:last-child{margin-bottom:0}.streaming .article-head .icon-button{visibility:hidden}.article-dialog{box-sizing:border-box;width:min(880px,calc(100% - 32px));max-height:calc(100dvh - 40px);padding:0;border:1px solid #ddd;border-radius:20px;background:#f5f5f5;color:inherit;font-size:var(--chat-font-size,16px);overflow:auto}.article-dialog::backdrop{background:rgba(0,0,0,.6)}.article-dialog>.article-head{position:sticky;top:0;background:inherit;z-index:1}.article-dialog .article-body{padding-top:12px;line-height:1.8}[data-theme=dark] .article-card,[data-theme=dark] .article-dialog{background:#282828;border-color:#454545;color:#e5e5e5}[data-theme=dark] .article-head{color:#aaa}@media(max-width:720px){.article-card{border-radius:16px;margin:16px 0}.article-head{padding:8px 12px}.article-body{padding:4px 16px 18px}.article-dialog{width:calc(100% - 16px);max-height:calc(100dvh - 24px);border-radius:16px}}

.message-date{display:block;text-align:center;font-size:12px;color:#888;margin:22px 0 14px;font-variant-numeric:tabular-nums}.message.user,[data-theme=dark] .message.user{background:transparent;padding:0;margin:0 0 18px auto;max-width:92%;border-radius:0}.question-bubble{background:#20549b;color:#fff;padding:13px 20px;border-radius:26px;overflow-wrap:anywhere}.question-bubble .content{line-height:1.65}.question-bubble .reference-image{border-radius:12px}.message.user .reply-actions{justify-content:flex-end;min-height:40px;margin-top:6px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s}.message.user.actions-open .reply-actions,.message.user:focus-within .reply-actions{opacity:1;visibility:visible;pointer-events:auto}.message.user:focus-visible{outline:2px solid #739bd0;outline-offset:4px;border-radius:24px}.reply-meta{display:flex;align-items:center;gap:8px;margin-top:14px}.reply-meta .reply-state{margin-left:0}[data-theme=dark] .question-bubble{background:#1c447e}[data-theme=dark] .message-date{color:#aaa}@media(hover:hover) and (pointer:fine){.message.user:hover .reply-actions{opacity:1;visibility:visible;pointer-events:auto}}@media(max-width:720px){.message.user{max-width:96%}.question-bubble{padding:12px 18px;border-radius:24px}.message-date{margin:18px 0 12px;font-size:11px}.message.user .reply-actions{min-height:44px}.message.user .reply-actions .icon-button{width:44px;min-height:44px}}

.history-row{display:flex;align-items:center;border-radius:10px;margin:4px 0;min-width:0}.history-row .history-item{flex:1;min-width:0;margin:0;background:transparent;text-overflow:ellipsis}.history-row.selected,.history-row:hover{background:#eaeaea}.history-delete{width:40px;min-height:40px;opacity:0;visibility:hidden;pointer-events:none;margin-right:3px;color:#777}.history-row.actions-open .history-delete,.history-row:focus-within .history-delete{opacity:1;visibility:visible;pointer-events:auto}.history-delete:hover{color:#bf3434;background:#fbe9e9}[data-theme=dark] .history-row.selected,[data-theme=dark] .history-row:hover{background:#2a2a2a}[data-theme=dark] .history-row .history-item{background:transparent}[data-theme=dark] .history-delete{color:#aaa}[data-theme=dark] .history-delete:hover{color:#ff9999;background:#452727}@media(hover:hover) and (pointer:fine){.history-row:hover .history-delete{opacity:1;visibility:visible;pointer-events:auto}}@media(max-width:720px){.history-delete{width:44px;min-height:44px}.history-row{min-height:44px}}

.delete-dialog{width:min(400px,calc(100% - 32px));padding:24px;border:1px solid #ddd;border-radius:18px;color:inherit;background:#fff}.delete-dialog::backdrop{background:#0008}.delete-dialog h2{font-size:20px;margin:0 0 12px}.delete-dialog p{line-height:1.7;overflow-wrap:anywhere;margin:0 0 22px}.delete-dialog-actions{display:flex;justify-content:flex-end;gap:10px}.delete-dialog .confirm-delete{background:#b52e2e;color:#fff}.delete-dialog-actions button{min-height:44px}[data-theme=dark] .delete-dialog{background:#2b2b2b;border-color:#444}

.citation-link{display:inline-block;font-size:.75em;background:#eee;color:#555!important;text-decoration:none!important;padding:1px 7px;border-radius:12px;margin:0 3px;vertical-align:baseline}.citation-link:hover{background:#dce8f8}.reply-sources{margin:14px 0;font-size:13px;color:#666}.reply-sources summary{cursor:pointer;padding:8px 0;min-height:40px}.source-row{display:flex;flex-direction:column;gap:3px;padding:9px 12px;margin:6px 0;border:1px solid #ddd;border-radius:10px;overflow-wrap:anywhere}.source-row a{color:#255c9c}.source-row small{font-size:11px;color:#888}[data-theme=dark] .citation-link{background:#3b3b3b;color:#ccc!important}[data-theme=dark] .citation-link:hover{background:#345075}[data-theme=dark] .reply-sources{color:#aaa}[data-theme=dark] .source-row{border-color:#444}[data-theme=dark] .source-row a{color:#9fc3f6}

.sidebar-tools{display:flex;align-items:center;gap:6px;margin-top:14px}.sidebar-tools input{width:100%;min-width:0;border:1px solid #e2e2e2;border-radius:9px;padding:9px 11px;background:transparent;color:inherit;font-size:14px}.sidebar-tools .icon-button{color:#777}#history{margin-top:12px}.history-group{margin-bottom:18px}.history-group-head{display:flex;align-items:center;gap:4px;min-height:36px;color:#888;font-size:13px;padding:2px 6px;border-radius:8px}.history-group-head>span{flex:1}.folder-toggle{flex:1;min-width:0;background:transparent;color:inherit;text-align:left;font-size:14px;padding:8px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-more{width:32px;min-height:32px;color:inherit}.history-group-content{min-height:36px}.history-group:has(.folder-toggle) .history-group-content{padding-left:12px}.history-empty{color:#999;font-size:12px;padding:8px 12px}.history-row .history-item{font-size:14px;padding:11px 8px}.history-more{width:30px;min-height:36px;color:#777;opacity:0;visibility:hidden;pointer-events:none;flex-shrink:0;font-size:20px}.history-delete{width:30px;min-height:36px;margin-right:2px;padding:6px}.history-row.actions-open .history-more,.history-row:focus-within .history-more{opacity:1;visibility:visible;pointer-events:auto}.history-row.dragging{opacity:.45}.sidebar-drop{outline:2px solid #6b9bd1;outline-offset:-2px;background:#dceafa!important}.sidebar-dialog{width:min(400px,calc(100% - 24px));max-height:calc(100dvh - 40px);overflow:auto;background:#fff;color:inherit;border:1px solid #ddd;padding:20px;border-radius:18px}.sidebar-dialog::backdrop{background:#0008}.sidebar-dialog-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}.sidebar-dialog-head h2{font-size:18px;margin:0;flex:1}.sidebar-dialog-head .icon-button{color:#888}.sidebar-dialog-caption{font-size:13px;color:#888;overflow-wrap:anywhere}.sidebar-dialog input,.sidebar-dialog select{display:block;min-width:0;width:100%;background:transparent;color:inherit;border:1px solid #ddd;padding:10px;border-radius:8px;font-size:16px;margin:8px 0}.sidebar-dialog label{display:block;font-size:14px}.sidebar-dialog form>button{margin-top:8px}.sidebar-menu-action{display:block;text-align:left;background:transparent;color:inherit;width:100%;min-height:44px;border-radius:8px;padding:10px}.sidebar-menu-action:hover{background:#eee}.sidebar-rename{display:flex;align-items:center;gap:8px}.sidebar-rename input{flex:1}.sidebar-rename button{flex-shrink:0;font-size:13px;padding:10px;margin:0!important}.sidebar-dialog select{max-width:100%}[data-theme=dark] .sidebar-tools input,[data-theme=dark] .sidebar-dialog input,[data-theme=dark] .sidebar-dialog select{border-color:#444}[data-theme=dark] .sidebar-dialog{background:#282828;border-color:#444}[data-theme=dark] .sidebar-menu-action:hover{background:#3b3b3b}[data-theme=dark] .sidebar-drop{background:#273e5a!important}[data-theme=dark] .history-more{color:#aaa}@media(hover:hover) and (pointer:fine){.history-row:hover .history-more{opacity:1;visibility:visible;pointer-events:auto}}@media(max-width:720px){.history-more,.history-delete{width:40px;min-height:44px}.sidebar-tools .icon-button{width:44px;min-height:44px}.history-group-head{min-height:44px}.folder-more{width:40px;min-height:40px}.folder-toggle{min-height:44px}.history-group:has(.folder-toggle) .history-group-content{padding-left:8px}}

/* Quiet pill composer: one surface, no textarea focus rectangle. */
#composer{display:grid;grid-template-columns:44px minmax(120px,1fr) auto 44px 44px 44px;align-items:center;column-gap:4px;row-gap:6px;padding:8px 10px;border-radius:32px;background:#f4f4f4;border-color:#e5e5e5;box-shadow:none}
#composer .composer-tools{display:contents}
#composer #message{grid-column:2;grid-row:auto;width:100%;min-height:36px;max-height:130px;padding:6px 2px;align-self:center;border:0;outline:none;box-shadow:none;border-radius:0;background:transparent}
#composer #message:focus,#composer #message:focus-visible{outline:none;box-shadow:none}
#composer #attach{grid-column:1;grid-row:auto}
#composer #model-picker{grid-column:3;grid-row:auto;width:auto;max-width:180px;padding:6px 2px}
#composer .font-controls{grid-column:4;grid-row:auto;margin:0}
#composer #voice{grid-column:5;grid-row:auto}
#composer #send{grid-column:6;grid-row:auto;align-self:center}
#composer #attachments,#composer #edit-banner{grid-column:1/-1;grid-row:auto}
#composer button:focus-visible,#composer select:focus-visible{outline:2px solid #888;outline-offset:1px}
[data-theme=dark] #composer{background:#303030;border-color:#414141}
@media(max-width:1050px){#composer{grid-template-columns:44px minmax(80px,1fr) 44px 44px;border-radius:28px}#composer #message{grid-column:2;grid-row:auto}#composer #attach{grid-column:1;grid-row:auto}#composer #voice{grid-column:3;grid-row:auto}#composer #send{grid-column:4;grid-row:auto}#composer #model-picker{grid-column:2;grid-row:auto;justify-self:start;max-width:100%;min-height:32px}#composer .font-controls{grid-column:4;grid-row:auto;width:44px;height:32px}#composer #font-toggle{height:32px}#composer{row-gap:2px}}
#composer{--composer-row:1}#composer:has(#attachments:not([hidden])),#composer:has(#edit-banner:not([hidden])){--composer-row:2}#composer:has(#attachments:not([hidden])):has(#edit-banner:not([hidden])){--composer-row:3}
#composer #message,#composer #attach,#composer #model-picker,#composer .font-controls,#composer #voice,#composer #send{grid-row:var(--composer-row)}#composer #edit-banner{grid-row:1}#composer #attachments{grid-row:1}#composer:has(#edit-banner:not([hidden])) #attachments{grid-row:2}
@media(max-width:1050px){#composer #model-picker,#composer .font-controls{grid-row:calc(var(--composer-row) + 1)}}

/* Minimal new-chat navigation row. */
#new-chat{display:flex;align-items:center;justify-content:flex-start;gap:12px;width:100%;min-height:44px;padding:10px 12px;border-radius:10px;background:transparent;color:inherit;font-weight:500;font-size:16px;text-align:left;box-shadow:none}
#new-chat svg{flex-shrink:0}#new-chat:hover{background:#ebebeb}#new-chat:focus-visible{outline:2px solid #888;outline-offset:1px}[data-theme=dark] #new-chat{background:transparent;color:#ececec}[data-theme=dark] #new-chat:hover{background:#2a2a2a}

/* Sidebar title matching the supplied reference. */
.brand{font-size:24px;font-weight:600;letter-spacing:-.5px;line-height:1.3}.brand-name{display:block;color:inherit}

/* Compact anchored conversation menu, without shortcut hints. */
.conversation-menu{position:fixed;z-index:30;width:248px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow-y:auto;padding:7px;background:#fff;color:#242424;border:1px solid #dedede;border-radius:16px;box-shadow:0 8px 28px #0002;outline:none}
.conversation-menu-item{display:flex;align-items:center;gap:12px;width:100%;min-height:42px;padding:9px 12px;text-align:left;font-size:15px;font-weight:500;color:inherit;background:transparent;border-radius:8px}.conversation-menu-item>svg{width:20px;height:20px;flex-shrink:0}.conversation-menu-item>span:not(.menu-chevron){flex:1;min-width:0;overflow-wrap:anywhere}.menu-chevron{font-size:23px;color:#999}.conversation-menu-item:hover{background:#eee}.conversation-menu-item:focus-visible{outline:2px solid #888;outline-offset:-2px}.conversation-menu-separator{height:1px;margin:6px 10px;background:#e5e5e5}.conversation-menu-item.menu-danger{color:#c44242}.history-row.unread .history-item{font-weight:650}.history-row.unread::before{content:'';width:6px;height:6px;flex-shrink:0;border-radius:50%;background:#6099df;margin-left:6px}.sidebar-dialog button:focus-visible,.sidebar-dialog input:focus-visible{outline:2px solid #888;outline-offset:1px}.sidebar-dialog form>button{background:#222;color:#fff}
[data-theme=dark] .conversation-menu{background:#2b2b2b;color:#eee;border-color:#414141;box-shadow:0 8px 28px #0005}[data-theme=dark] .conversation-menu-item:hover{background:#3a3a3a}[data-theme=dark] .conversation-menu-separator{background:#464646}[data-theme=dark] .conversation-menu-item.menu-danger{color:#f29494}[data-theme=dark] .sidebar-dialog form>button{background:#eee;color:#222}@media(max-width:720px){.conversation-menu-item{min-height:44px}.conversation-menu{width:248px}}

.teaching-diagram{margin:18px 0;border:1px solid #ddd;border-radius:18px;overflow:hidden;background:#fff;max-width:100%}.diagram-toolbar{display:flex;align-items:center;gap:4px;padding:8px 12px;color:#667085;background:#f7f8fa}.diagram-toolbar>span{flex:1;min-width:0;font-size:13px}.diagram-toolbar .icon-button{font-size:11px;width:40px}.teaching-diagram>svg{display:block;width:100%;height:auto}.teaching-diagram>.diagram-narrow{display:none}.diagram-pending{padding:14px;color:#888;font-size:13px}.diagram-dialog{width:min(1100px,calc(100% - 20px));max-height:calc(100dvh - 24px);padding:10px;border:1px solid #ddd;border-radius:18px;background:#fff;overflow:auto;color:#333}.diagram-dialog::backdrop{background:#0009}.diagram-dialog>.icon-button{display:flex;margin-left:auto;position:sticky;top:0;background:#fff}.diagram-dialog>svg{display:block;width:100%;min-width:640px;height:auto}[data-theme=dark] .teaching-diagram{border-color:#444}[data-theme=dark] .diagram-toolbar{background:#2d2d2d;color:#bbb}@media(max-width:600px){.teaching-diagram>.diagram-wide{display:none}.teaching-diagram>.diagram-narrow{display:block}.diagram-toolbar{padding:6px 8px}.diagram-toolbar .icon-button{min-height:44px}}

.message.user.question-editing{width:100%;max-width:100%}.question-editor{background:var(--editor-bg,#f0f0f0);border:1px solid #d5d5d5;border-radius:24px;padding:18px;width:100%}.question-edit-input{display:block;width:100%;min-height:100px;max-height:360px;overflow-y:auto;resize:vertical;font:inherit;font-size:max(16px,var(--chat-font-size,16px));line-height:1.65;color:inherit;border:0;background:transparent;padding:4px;outline:none!important;box-shadow:none}.question-edit-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:14px;flex-wrap:wrap}.question-edit-buttons button{background:#fff;color:#222;border-radius:22px;padding:10px 16px;min-height:44px}.question-edit-buttons .question-edit-save{background:#222;color:white}.question-edit-images{display:flex;gap:8px;margin-bottom:10px}.question-edit-images img{width:72px;height:72px;object-fit:cover;border-radius:12px}[data-theme=dark] .question-editor{--editor-bg:#303030;border-color:#454545;color:#eee}[data-theme=dark] .question-edit-buttons button{background:#454545;color:#eee}[data-theme=dark] .question-edit-buttons .question-edit-save{background:#eee;color:#222}@media(max-width:720px){.question-editor{padding:14px;border-radius:20px}.question-edit-buttons button{padding:10px 14px}}

/* Mobile uses the document scroller so Safari can respond to native page gestures. */
#composer-dock{flex-shrink:0}
@media(max-width:720px){
 html{overflow-x:clip;scroll-padding-top:60px;scroll-padding-bottom:var(--dock-height,140px)}
 body{overflow:visible}body.show-sidebar{overflow:hidden}
 #workspace{position:relative;top:auto;left:auto;right:auto;height:auto;min-height:100dvh;overflow:visible}
 #workspace main{min-height:100dvh;padding-bottom:var(--dock-height,140px)}
 #workspace header{position:sticky;top:0;z-index:4;background:#fff}
 #messages{flex:1;overflow:visible;overscroll-behavior:auto;min-height:calc(100svh - 60px - var(--dock-height,140px))}
 #composer-dock{position:fixed;z-index:4;left:0;right:0;top:calc(var(--viewport-top,0px) + var(--app-height,100dvh) - var(--dock-height,140px));background:#fff;padding-bottom:env(safe-area-inset-bottom);}
 #composer-dock #notice{padding-bottom:4px}#composer-dock #notice:empty{min-height:6px}
 #sidebar{position:fixed;top:var(--viewport-top,0px);bottom:auto;height:var(--app-height,100dvh);z-index:10}
 #sidebar-backdrop{position:fixed;top:var(--viewport-top,0px);height:var(--app-height,100dvh);bottom:auto;z-index:9}
 [data-theme=dark] #workspace header,[data-theme=dark] #composer-dock{background:#212121}
 .keyboard-open #composer-dock{padding-bottom:0}
}
