.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Fit assistant inside the shell — avoid a second page-level scrollbar beside the chat. */
html.ai-assistant-active,html.ai-assistant-active body{height:100%;overflow:hidden}
#view-assistant{padding:0!important;overflow:hidden;height:100%;min-height:0;display:flex;flex-direction:column}
.app-shell.ai-assistant-active{height:100vh;max-height:100vh;overflow:hidden;min-height:0}
.app-shell.ai-assistant-active .shell-content{height:100vh;max-height:100vh;overflow:hidden;display:flex;flex-direction:column;min-height:0}
.app-shell.ai-assistant-active .shell-header,.app-shell.ai-assistant-active .shell-footer{flex:none}
.app-shell.ai-assistant-active #view-assistant{flex:1;min-height:0}
.ai-layout{display:grid;grid-template-columns:260px minmax(0,1fr);height:100%;max-height:100%;min-height:0;position:relative;overflow:hidden;background:#121218;flex:1}
.ai-layout.side-collapsed{grid-template-columns:0 minmax(0,1fr)}
.ai-layout.side-collapsed .ai-side{width:0;opacity:0;pointer-events:none;border:0;overflow:hidden}
.ai-side{display:flex;flex-direction:column;min-width:0;background:#0e0e14;border-right:1px solid rgba(255,255,255,.06);transition:width .22s ease,opacity .22s ease}
.ai-side-top{padding:12px;display:flex;flex-direction:column;gap:10px;flex:none}
.ai-new-chat{display:flex;align-items:center;gap:8px;width:100%;border:1px solid rgba(255,255,255,.1);background:transparent;color:#fff;border-radius:999px;padding:10px 14px;font:inherit;cursor:pointer;text-align:left}
.ai-new-chat:hover{background:rgba(169,49,255,.12);border-color:rgba(169,49,255,.45)}
.ai-search input{width:100%;border:0;border-radius:10px;background:#1a1a22;color:#fff;padding:10px 12px;font:inherit}
.ai-convo-list{overflow:auto;min-height:0;padding:4px 8px 16px;scrollbar-width:none;-ms-overflow-style:none}
.ai-convo-list::-webkit-scrollbar{width:0;height:0;display:none}
.ai-convo-group{margin:10px 8px 4px;color:var(--muted);font-size:11px;letter-spacing:.04em;text-transform:uppercase}
.ai-convo{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px;width:100%;border:0;background:transparent;color:#e8e8ef;border-radius:10px;padding:4px 4px 4px 8px}
.ai-convo:hover,.ai-convo.active{background:rgba(255,255,255,.06)}
.ai-convo.active{background:rgba(169,49,255,.16)}
.ai-convo-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;border:0;background:transparent;color:inherit;text-align:left;padding:8px 4px;font:inherit;cursor:pointer;width:100%}
.ai-convo-menu-btn{opacity:0;border:0;background:transparent;color:var(--muted);border-radius:8px;width:28px;height:28px;cursor:pointer}
.ai-convo:hover .ai-convo-menu-btn,.ai-convo.active .ai-convo-menu-btn,.ai-convo-menu-btn:focus{opacity:1}
.ai-convo-menu{position:absolute;z-index:40;min-width:150px;background:#1c1c26;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:6px;box-shadow:0 12px 40px rgba(0,0,0,.45)}
.ai-convo-menu button{display:block;width:100%;border:0;background:transparent;color:#fff;text-align:left;padding:8px 10px;border-radius:8px;font:inherit;cursor:pointer}
.ai-convo-menu button:hover,.ai-convo-menu button:focus{background:rgba(169,49,255,.2);outline:0}
.ai-main{display:flex;flex-direction:column;min-width:0;min-height:0;position:relative}
.ai-topbar{display:flex;align-items:center;gap:10px;padding:10px 16px;flex:none;min-width:0}
.ai-title-block{display:flex;flex-direction:column;gap:2px;min-width:0}
.ai-title{display:none}
.ai-dash-select select{appearance:none;border:0;background:transparent;color:#cfcfd8;font:inherit;font-size:13px;padding:2px 18px 2px 0;max-width:min(360px,55vw);cursor:pointer}
.ai-dash-select select:focus{outline:0;color:#fff}
.ai-topbar-spacer{flex:1;min-width:8px}
.ai-icon-btn,.ai-ghost-btn{border:1px solid transparent;background:transparent;color:#ddd;border-radius:999px;padding:8px 12px;font:inherit;cursor:pointer;flex:none}
.ai-icon-btn:hover,.ai-ghost-btn:hover{background:rgba(255,255,255,.06)}
.ai-pill{border:1px solid var(--border);background:var(--elevated);color:#fff;border-radius:99px;padding:6px 12px;font:inherit;font-size:12px;flex:0 1 auto;max-width:min(100%,28rem);white-space:normal;overflow:visible;text-overflow:clip;line-height:1.35;text-align:left;height:auto;min-height:0;pointer-events:none}
.ai-pill[hidden]{display:none!important}
.ai-pill.loading{display:inline-flex;align-items:flex-start;gap:8px;border-color:rgba(169,49,255,.5);color:#d7b4ff;white-space:normal;overflow:visible;text-overflow:clip}
.ai-pill.down{display:inline-flex;align-items:flex-start;gap:8px;border-color:rgba(255,82,82,.45);color:var(--danger);white-space:normal}
.ai-activity-label{display:inline;white-space:normal;overflow:visible;text-overflow:clip;word-break:normal;overflow-wrap:anywhere;max-width:none}
.ai-spin{width:10px;height:10px;margin-top:3px;border:2px solid rgba(215,180,255,.35);border-top-color:#d7b4ff;border-radius:50%;flex:none;animation:ai-spin .8s linear infinite}
@keyframes ai-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion: reduce){
  .ai-spin,.ai-side{animation:none;transition:none}
}
.ai-workbook-notice{margin:0 16px 8px;padding:10px 12px;border:1px solid rgba(255,193,7,.35);border-radius:12px;background:rgba(255,193,7,.08);color:#f5d68a;font-size:13px;flex:none}
.ai-workbook-notice[hidden]{display:none!important}
.ai-workbook-notice a{color:#fff}
/* ChatGPT-style: scroll with wheel/trackpad, hide the scrollbar track. */
.ai-scroll{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;position:relative;scrollbar-width:none;-ms-overflow-style:none}
.ai-scroll::-webkit-scrollbar{width:0;height:0;display:none;background:transparent}
.ai-jump-latest{position:sticky;bottom:12px;align-self:center;z-index:5;border:1px solid rgba(255,255,255,.16);background:#242430;color:#fff;border-radius:999px;padding:8px 14px;font:inherit;font-size:12px;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.ai-jump-latest[hidden]{display:none!important}
.ai-welcome{max-width:720px;width:min(720px,92%);margin:auto;padding:24px 0 40px;text-align:center}
.ai-welcome h2{margin:0 0 8px;font-size:28px;font-weight:600}
.ai-welcome p{margin:0 0 18px;color:var(--subtext)}
.ai-welcome-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.ai-welcome-actions button{border:1px solid rgba(255,255,255,.12);background:#1a1a22;color:#fff;border-radius:999px;padding:10px 14px;font:inherit;cursor:pointer}
.ai-welcome-actions button:hover{border-color:rgba(169,49,255,.5);background:rgba(169,49,255,.12)}
.ai-welcome[hidden],.ai-welcome-actions[hidden]{display:none}
/* One conversation scroller only — do not nest max-height overflow on .ai-log. */
.ai-log{width:min(760px,92%);margin:0 auto;padding:8px 0 28px;display:flex;flex-direction:column;gap:18px;max-height:none!important;overflow:visible!important;flex:0 0 auto;min-height:0;height:auto}
.ai-msg{max-width:100%;border:0;background:transparent;padding:0;font-size:15px;line-height:1.6;overflow-wrap:anywhere;max-height:none!important;overflow:visible!important;height:auto;white-space:normal}
.ai-msg.user{align-self:flex-end;background:#2a2433;border-radius:18px;padding:10px 14px;max-width:min(68ch,85%);white-space:pre-wrap}
.ai-msg.assistant{align-self:stretch;max-width:100%}
.ai-msg.assistant .ai-md{max-width:68ch;max-height:none;overflow:visible}
.ai-msg.assistant .ai-md .ai-table-wrap{width:100%;overflow-x:auto;overflow-y:hidden;margin:0 0 10px;scrollbar-width:thin}
.ai-msg.assistant .ai-md .ai-table-wrap::-webkit-scrollbar{height:6px}
.ai-msg.assistant .ai-md .ai-table-wrap::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:4px}
.ai-msg.incomplete{opacity:.92}
.ai-msg.incomplete::after{content:'Response incomplete — retry to continue.';display:block;margin-top:8px;font-size:12px;color:var(--warning)}
.ai-convo.busy .ai-convo-title::after{content:' · processing';color:#d7b4ff;font-size:11px}
.ai-msg.assistant .ai-md h1,.ai-msg.assistant .ai-md h2,.ai-msg.assistant .ai-md h3{margin:12px 0 6px;font-size:1.05em}
.ai-msg.assistant .ai-md p{margin:0 0 10px}
.ai-msg.assistant .ai-md ul,.ai-msg.assistant .ai-md ol{margin:0 0 10px;padding-left:1.2em}
.ai-msg.assistant .ai-md pre{overflow:auto;background:#1a1a22;border-radius:10px;padding:10px 12px;font-size:13px}
.ai-msg.assistant .ai-md code{font-family:ui-monospace,Consolas,monospace}
.ai-msg.assistant .ai-md table{border-collapse:collapse;width:100%;margin:0;font-size:13px;min-width:420px}
.ai-msg.assistant .ai-md th,.ai-msg.assistant .ai-md td{border:1px solid rgba(255,255,255,.12);padding:6px 8px;text-align:left}
.ai-draft{display:inline-block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#e0b35a}
.ai-msg-actions{display:flex;flex-wrap:nowrap;align-items:center;gap:4px;margin-top:8px;min-height:32px}
.ai-msg-actions .ai-act{border:0;background:transparent;color:#8e8e9a;border-radius:8px;width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none}
.ai-msg-actions .ai-act svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.ai-msg-actions .ai-act:hover,.ai-msg-actions .ai-act:focus-visible{background:rgba(255,255,255,.08);color:#f3f3f7;outline:0}
.ai-msg-actions .ai-act:focus-visible{box-shadow:0 0 0 2px rgba(169,49,255,.4)}
.ai-msg-actions .ai-act[aria-pressed="true"]{color:#d7b4ff;background:rgba(169,49,255,.14)}
.ai-msg-actions .ai-act:disabled{opacity:.38;cursor:not-allowed}
.ai-version-nav{display:inline-flex;align-items:center;gap:2px;margin-right:6px;color:#8e8e9a;font-size:12px}
.ai-version-nav button{border:0;background:transparent;color:inherit;border-radius:8px;width:24px;height:24px;cursor:pointer}
.ai-version-nav button:hover,.ai-version-nav button:focus-visible{background:rgba(255,255,255,.08);color:#fff;outline:0}
.ai-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:80;background:#242430;color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:8px 14px;font-size:12px;box-shadow:0 10px 30px rgba(0,0,0,.35);pointer-events:none}
.ai-msg-menu{position:absolute;z-index:50;min-width:180px;background:#1c1c26;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:6px;box-shadow:0 12px 40px rgba(0,0,0,.45)}
.ai-msg-menu button{display:block;width:100%;border:0;background:transparent;color:#fff;text-align:left;padding:8px 10px;border-radius:8px;font:inherit;font-size:13px;cursor:pointer}
.ai-msg-menu button:hover,.ai-msg-menu button:focus{background:rgba(169,49,255,.2);outline:0}
.ai-branch-note{margin:0 0 10px;padding:8px 10px;border:1px solid rgba(255,193,7,.3);border-radius:10px;background:rgba(255,193,7,.08);color:#f5d68a;font-size:12px}
.ai-proposal{align-self:stretch;max-width:680px;border:1px solid rgba(255,255,255,.08);background:transparent;border-radius:14px;padding:14px 16px}
.ai-proposal-header{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-bottom:4px}
.ai-proposal h3{margin:0;font-size:18px;font-weight:600;color:#fff;line-height:1.3}
.ai-proposal-meta{margin:0 0 6px;font-size:12px;color:#9a9aa8}
.ai-proposal .ai-summary{margin:0 0 12px;color:#c5c5d0;font-size:14px;line-height:1.45}
.ai-page-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:8px}
.ai-page-list li{display:flex;flex-direction:column;gap:2px;padding:0;border:0;background:transparent}
.ai-page-list strong{font-size:14px;font-weight:600;color:#fff}
.ai-page-list span{color:#9a9aa8;font-size:13px;line-height:1.4}
.ai-blocker{margin:0 0 10px;color:#ff8f8f;font-size:13px;line-height:1.4}
.ai-warning-line{margin:0 0 6px;font-size:13px;color:#e0b35a}
.ai-fold{margin:0 0 10px;border:0;padding:0}
.ai-fold summary{cursor:pointer;color:#9a9aa8;font-size:12px;list-style:none}
.ai-fold summary::-webkit-details-marker{display:none}
.ai-fold[open] summary{color:#cfcfd8}
.ai-fold p,.ai-fold li{color:#b8b8c4;font-size:13px;line-height:1.4}
.ai-fold ul{margin:6px 0 0;padding-left:18px}
.ai-actions{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 2px}
.ai-actions button{border:1px solid rgba(255,255,255,.12);background:#2a2a36;color:#fff;border-radius:999px;padding:7px 13px;font:inherit;font-size:13px;cursor:pointer}
.ai-actions button.secondary{background:transparent}
.ai-actions button:disabled{opacity:.45;cursor:not-allowed}
.ai-msg.assistant{padding-bottom:2px}
.ai-choice-row{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px}
.ai-choice{border:1px solid rgba(255,255,255,.14);background:#1c1c26;color:#fff;border-radius:999px;padding:8px 14px;font:inherit;font-size:13px;cursor:pointer}
.ai-choice:hover,.ai-choice:focus-visible{border-color:rgba(169,49,255,.55);background:rgba(169,49,255,.14);outline:0}
.ai-more{border:0;background:transparent;color:#8e8e9a;border-radius:8px;padding:4px 8px;font:inherit;font-size:12px;cursor:pointer}
.ai-more:hover,.ai-more:focus-visible{background:rgba(255,255,255,.08);color:#fff;outline:0}
.ai-composer-dock{flex:none;padding:0 16px 14px;display:flex;flex-direction:column;align-items:center;gap:8px}
.ai-attach-chip{width:min(760px,100%);display:flex;align-items:center;justify-content:space-between;gap:8px;background:#1a1a22;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:8px 12px;font-size:13px}
.ai-attach-chip[hidden]{display:none}
.ai-composer{width:min(760px,100%);display:grid;grid-template-columns:40px minmax(0,1fr) 40px;gap:8px;align-items:end;background:#1c1c26;border:1px solid rgba(255,255,255,.12);border-radius:28px;padding:10px 12px;box-shadow:0 10px 30px rgba(0,0,0,.28)}
.ai-composer textarea{width:100%;resize:none;min-height:24px;max-height:160px;border:0;background:transparent;color:#fff;padding:8px 0;font:inherit;line-height:1.4;outline:0}
.ai-plus,.ai-send{width:36px;height:36px;border-radius:50%;border:0;cursor:pointer;font:inherit;display:inline-flex;align-items:center;justify-content:center}
.ai-plus{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.16)}
.ai-plus:hover,.ai-plus[aria-expanded="true"]{background:rgba(169,49,255,.18);border-color:rgba(169,49,255,.5)}
.ai-send{background:#a931ff;color:#fff}
.ai-send:disabled{opacity:.45;cursor:not-allowed}
.ai-send.ai-stop{background:#3a3a48}
.ai-composer-note{margin:0;color:var(--muted);font-size:11px}
.ai-plus-menu{position:absolute;z-index:50;min-width:260px;background:#1c1c26;border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:8px;box-shadow:0 16px 48px rgba(0,0,0,.5)}
.ai-plus-menu[hidden]{display:none}
.ai-plus-menu button{display:block;width:100%;border:0;background:transparent;color:#fff;text-align:left;padding:10px 12px;border-radius:10px;font:inherit;cursor:pointer}
.ai-plus-menu button:hover,.ai-plus-menu button:focus{background:rgba(169,49,255,.18);outline:0}
.ai-send[hidden],.ai-stop[hidden],.ai-plus-menu[hidden],.ai-attach-chip[hidden],.ai-welcome[hidden],.ai-pill[hidden],.ai-workbook-notice[hidden]{display:none!important}
.ai-config-panel{margin-top:8px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--elevated)}
.ai-config-panel h3{margin:0 0 8px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--subtext)}
.ai-config-grid{display:grid;grid-template-columns:minmax(110px,160px) minmax(0,1fr);gap:6px 12px;margin:0 0 14px}
.ai-config-grid dt{margin:0;color:var(--muted);font-size:11px}
.ai-config-grid dd{margin:0;color:#fff;font-size:12px;overflow-wrap:anywhere}
@media (max-width:960px){
  .ai-layout{grid-template-columns:minmax(0,1fr);height:100%;max-height:100%}
  .ai-side{position:absolute;inset:0 auto 0 0;width:min(280px,88vw);z-index:20;box-shadow:12px 0 40px rgba(0,0,0,.4)}
  .ai-layout.side-collapsed .ai-side{width:0}
  .ai-composer{grid-template-columns:36px minmax(0,1fr) 36px}
  .ai-dash-select select{max-width:min(240px,46vw)}
}
