#screen-assistant.active { display:block; }
.assistant-page { width:100%; max-width:1200px; margin:auto; box-sizing:border-box; }
.assistant-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.assistant-heading .page-title { margin:8px 0; }
.assistant-heading .page-sub { margin:0; }
.assistant-kicker { font-size:10px; letter-spacing:.12em; color:var(--text-3); font-weight:700; }
.assistant-layout { display:grid; grid-template-columns:260px minmax(0,1fr); gap:24px; align-items:start; }
.assistant-controls { padding:20px; border:1px solid var(--border); border-radius:14px; background:var(--surface); }
.assistant-controls h2 { margin:0 0 20px; font-size:15px; }
.assistant-controls label { display:grid; gap:7px; font-size:12px; margin-bottom:16px; min-width:0; }
.assistant-controls select, .assistant-controls input { width:100%; min-width:0; box-sizing:border-box; padding:10px; height:44px; border:1px solid var(--border); border-radius:9px; color:var(--text); background-color:var(--bg); font:inherit; font-size:13px; }
.assistant-controls p { font-size:11px; line-height:1.6; color:var(--text-3); margin:10px 0 0; }
.assistant-controls details { border-top:1px solid var(--border); padding-top:14px; margin-top:18px; font-size:11px; line-height:1.5; }
.assistant-controls summary { cursor:pointer; }
.assistant-conversation { min-width:0; border:1px solid var(--border); border-radius:16px; background:var(--surface); overflow:hidden; }
.assistant-context { padding:16px 22px; border-bottom:1px solid var(--border); font-size:12px; color:var(--text-2); overflow-wrap:anywhere; }
#assistant-log { display:flex; flex-direction:column; gap:20px; padding:24px; min-height:300px; }
.assistant-message { max-width:100%; min-width:0; padding:18px; border:1px solid var(--border); border-radius:12px; background:var(--bg); scroll-margin-top:140px; overflow-wrap:anywhere; }
.assistant-message small { font-size:11px; font-weight:700; color:var(--text-3); }
.assistant-message p { margin:9px 0 0; white-space:pre-line; font-size:14px; line-height:1.75; }
.assistant-user { align-self:flex-end; max-width:85%; background:var(--surface); border-color:var(--accent); padding:12px 16px; }
.assistant-user p { font-size:13px; line-height:1.5; }
.assistant-choices { display:grid; gap:8px; margin-top:18px; }
.assistant-choices button, #assistant-more, #assistant-change { min-height:44px; padding:11px 14px; color:var(--text); border:1px solid var(--border); border-radius:9px; background:var(--surface); text-align:left; font:inherit; font-size:12px; line-height:1.5; cursor:pointer; }
.assistant-choices button:hover, #assistant-more:hover { border-color:var(--accent); }
.assistant-page button:focus-visible, .assistant-page input:focus-visible, .assistant-page select:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.assistant-bottom { padding:16px 22px; border-top:1px solid var(--border); display:flex; justify-content:space-between; gap:12px; align-items:center; }
.assistant-bottom span { font-size:10px; color:var(--text-3); }
@media(min-width:701px) and (max-width:1150px) {
 .app-nav { flex-wrap:wrap; }
 .app-nav .finance-nav { position:static; transform:none; order:3; flex-basis:100%; justify-content:center; }
}
@media(max-width:700px) {
 .assistant-heading { align-items:flex-start; gap:12px; flex-wrap:wrap; margin-bottom:18px; }
 .assistant-heading .page-title { font-size:25px; }
 .assistant-heading .page-sub { font-size:12px; line-height:1.6; }
 .assistant-heading .btn { min-height:40px; font-size:11px; }
 .assistant-layout { grid-template-columns:minmax(0,1fr); gap:16px; }
 .assistant-controls { padding:16px; }
 .assistant-controls h2 { margin-bottom:14px; font-size:14px; }
 .assistant-controls label { font-size:11px; margin-bottom:12px; }
 .assistant-controls select, .assistant-controls input { font-size:12px; }
 .assistant-context { padding:13px 14px; font-size:11px; line-height:1.5; }
 #assistant-log { padding:14px; gap:14px; min-height:220px; }
 .assistant-message { padding:14px; scroll-margin-top:74px; }
 .assistant-message p { font-size:13px; line-height:1.7; }
 .assistant-choices button { font-size:12px; padding:10px; }
 .assistant-bottom { padding:12px 14px; flex-wrap:wrap; }
}
@media(prefers-reduced-motion:reduce) { .assistant-page { scroll-behavior:auto; } }

/* A viewport-sized conversation keeps navigation and analysis controls in place. */
#screen-assistant.active { position:fixed; inset:0; height:100vh; height:100dvh; min-height:0; display:flex; flex-direction:column; animation:none; }
#screen-assistant > .app-nav { flex-shrink:0; }
#screen-assistant .assistant-page { display:flex; flex-direction:column; flex:1; min-height:0; padding:24px 32px; margin:0 auto; }
.assistant-heading { flex-shrink:0; margin-bottom:18px; }
.assistant-layout { flex:1; min-height:0; align-items:stretch; }
.assistant-controls { min-height:0; overflow-y:auto; overscroll-behavior:contain; }
.assistant-conversation { display:flex; flex-direction:column; min-height:0; }
.assistant-context, .assistant-bottom { flex-shrink:0; }
#assistant-log { flex:1; min-height:0; overflow-y:auto; overscroll-behavior-y:contain; -webkit-overflow-scrolling:touch; scrollbar-gutter:stable; }
.assistant-row { display:flex; gap:10px; align-items:flex-end; flex-shrink:0; min-width:0; }
.assistant-row-user { flex-direction:row-reverse; }
.assistant-avatar { position:relative; display:grid; place-items:center; flex:0 0 32px; height:32px; border-radius:50%; overflow:hidden; background:var(--accent); color:#211a0d; font-weight:800; font-size:14px; }
.assistant-avatar img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.assistant-row-bot .assistant-avatar { border:1px solid var(--border); }
.assistant-message { max-width:calc(100% - 42px); }
.assistant-user { max-width:80%; background:var(--accent); border-color:var(--accent); color:#211a0d; border-bottom-right-radius:4px; }
.assistant-user small, .assistant-user p { color:#211a0d; }
.assistant-user p { font-weight:600; }
.assistant-bot { border-bottom-left-radius:4px; }
@media(max-width:700px) {
 #screen-assistant .assistant-page { padding:12px 12px calc(76px + env(safe-area-inset-bottom)); }
 .assistant-heading { flex-wrap:nowrap; gap:8px; margin-bottom:10px; align-items:center; }
 .assistant-heading .assistant-kicker, .assistant-heading .page-sub { display:none; }
 .assistant-heading .page-title { font-size:20px; margin:0; }
 .assistant-heading .btn { padding:8px 10px; flex-shrink:0; }
 .assistant-layout { display:flex; flex-direction:column; gap:10px; }
 .assistant-controls { flex-shrink:0; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px 12px; padding:10px 12px; max-height:30%; }
 .assistant-controls h2, .assistant-controls > p { display:none; }
 .assistant-controls label { margin:0; gap:4px; }
 .assistant-controls select, .assistant-controls input { height:38px; padding:6px; }
 .assistant-controls details { grid-column:1 / -1; margin:0; padding:0; border:0; }
 .assistant-conversation { flex:1; }
 .assistant-context { padding:9px 12px; }
 #assistant-log { padding:12px 10px; }
 .assistant-message { padding:12px; max-width:calc(100% - 36px); }
 .assistant-row { gap:8px; }
 .assistant-avatar { flex-basis:28px; height:28px; font-size:12px; }
 .assistant-user { max-width:82%; }
 .assistant-bottom { padding:8px 10px; flex-wrap:nowrap; gap:8px; }
 .assistant-bottom button { padding:8px 10px; font-size:11px; }
}

/* Filters sit above the conversation, leaving the full width for messages. */
.assistant-layout { display:flex; flex-direction:column; gap:14px; }
.assistant-controls { display:grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap:10px 18px; padding:14px 18px; flex-shrink:0; max-height:35%; }
.assistant-controls h2 { grid-column:1 / -1; margin:0; font-size:14px; }
.assistant-controls label { margin:0; }
.assistant-controls > p { grid-column:1 / -1; margin:0; }
.assistant-conversation { flex:1; }
.assistant-row { animation:assistant-message-in .24s ease-out both; }
@keyframes assistant-message-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
.assistant-dots { display:flex; align-items:center; gap:5px; height:18px; min-width:38px; }
.assistant-dots span { width:6px; height:6px; border-radius:50%; background:var(--text-2); animation:assistant-dot 1.2s ease-in-out infinite; }
.assistant-dots span:nth-child(2) { animation-delay:.15s; }
.assistant-dots span:nth-child(3) { animation-delay:.3s; }
@keyframes assistant-dot { 0%,60%,100% { opacity:.4; transform:translateY(0); } 30% { opacity:1; transform:translateY(-4px); } }
#assistant-more:disabled { opacity:.5; cursor:default; }
@media(max-width:700px) {
 .assistant-layout { gap:10px; }
 .assistant-controls { padding:10px 12px; gap:8px 12px; max-height:32%; }
 .assistant-controls h2 { display:block; font-size:12px; }
 .assistant-controls > p { display:none; }
}
@media(prefers-reduced-motion:reduce) {
 .assistant-row, .assistant-dots span { animation:none; }
 .assistant-dots span { opacity:.7; }
}

/* Compact filter toolbar. */
.assistant-controls { grid-template-columns:minmax(160px,.8fr) minmax(160px,1fr) minmax(200px,1.3fr); align-items:center; gap:16px; padding:10px 14px; max-height:none; border-radius:12px; }
.assistant-filter-heading { min-width:0; }
.assistant-controls h2 { font-size:12px; line-height:1.4; }
.assistant-filter-heading p { margin:4px 0 0; font-size:10px; line-height:1.4; }
.assistant-controls label { gap:4px; font-size:10px; line-height:1.3; }
.assistant-controls select, .assistant-controls input { height:36px; padding:6px 9px; font-size:12px; border-radius:8px; }
.assistant-layout { gap:10px; }
@media(max-width:700px) {
 .assistant-controls { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); padding:8px 10px; gap:10px; }
 .assistant-filter-heading { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
 .assistant-controls label { font-size:10px; }
 .assistant-controls select, .assistant-controls input { height:36px; font-size:11px; padding:6px; }
}

.assistant-period-form { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:10px; margin-top:18px; }
.assistant-period-form label { display:grid; gap:6px; min-width:0; font-size:12px; }
.assistant-period-form input { box-sizing:border-box; width:100%; min-width:0; height:44px; padding:8px 10px; background:var(--surface); color:var(--text); border:1px solid var(--border); border-radius:9px; font:inherit; }
.assistant-period-form button { min-height:44px; padding:10px 14px; border:0; border-radius:9px; background:var(--accent); color:#211a0d; font:inherit; font-size:12px; font-weight:700; cursor:pointer; }
.assistant-choices .assistant-other { margin-top:8px; border-style:dashed; font-weight:600; }
@media(max-width:700px) {
 .assistant-period-form { grid-template-columns:minmax(0,1fr); }
 .assistant-period-form input { font-size:16px; }
 .assistant-period-form button { width:100%; }
}

/* A single mobile canvas, with only message bubbles separated from it. */
@media(max-width:700px) {
 #screen-assistant .assistant-context { display:none; }
 #screen-assistant .assistant-conversation { background:var(--bg); border:0; border-radius:0; }
 #screen-assistant .assistant-heading { margin-bottom:6px; }
 #screen-assistant #assistant-log { padding:12px 0; scrollbar-gutter:auto; }
 #screen-assistant .assistant-bot { background:var(--surface); }
 #screen-assistant .assistant-choices button { background:var(--bg); }
}
