/*
 * CoS Workspace UI
 * A dense, readable project-and-conversation tool.
 * Flat surfaces, clear boundaries, stable controls. No simulated glass.
 */
@font-face {font-family:"CoS Icons";src:url("icons.woff2") format("woff2");font-display:block}
@font-face {font-family:"Topology Sans";src:url("fonts/TopologySans-Regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face {font-family:"Topology Sans";src:url("fonts/TopologySans-Medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face {font-family:"Topology Sans";src:url("fonts/TopologySans-SemiBold.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face {font-family:"Topology Sans";src:url("fonts/TopologySans-Bold.woff2") format("woff2");font-weight:700;font-display:swap}
:root {
  color-scheme:dark;
  --page:#111317;--surface:#1b1e24;--surface-high:#252932;--surface-top:#303641;
  --ink:#f1f3f7;--soft:#a9b0bd;--outline:#767f8f;--edge:#323740;
  --primary:#6689fa;--on-primary:#0b1230;--secondary:#303745;--on-secondary:#f1f3f7;
  --red:#ff929c;--attention:#e9c585;--focus:#92afff;--bubble:#272e3b;
  --dock-action:#f1f3f7;--dock-border:#414752;
  --control-hit:44px;--control-icon:20px;--content-width:740px;
  --r-sm:10px;--r-md:14px;--r-lg:20px;
  --label:.875rem;--caption:.75rem;--ease-out:cubic-bezier(.2,0,0,1);
  --motion-press:120ms;--motion-open:220ms;--motion-close:170ms;
  --font:"Topology Sans",system-ui,"Noto Sans KR",sans-serif;
  font:400 16px/1.6 var(--font);
  color:var(--ink);background:var(--page);-webkit-font-smoothing:antialiased;
}
:root[data-theme=light] {
  color-scheme:light;
  --page:#fafbfc;--surface:#eef0f4;--surface-high:#e5e9f0;--surface-top:#d9dee9;
  --ink:#202530;--soft:#596373;--outline:#737f91;--edge:#d6dce6;
  --primary:#355bc7;--on-primary:#ffffff;--secondary:#dfe6f5;--on-secondary:#202530;
  --red:#ba3140;--attention:#835615;--focus:#355bc7;--bubble:#e9edf8;
  --dock-action:#202530;--dock-border:#cfd5e1;
}
*,*::before,*::after {box-sizing:border-box}
html,body {height:100%;overflow:hidden;overscroll-behavior:none}
body {margin:0}
[hidden] {display:none!important}
:where(.connect-screen,.sidebar,.chat-header,.composer-area,.ui-content,.sidebar-drawer,.row-popover,[data-sonner-toaster]) {-webkit-user-select:none;user-select:none}
:where(input,textarea,[contenteditable=true],[data-selectable=true],.event) {-webkit-user-select:text;user-select:text}
:where(button,summary,.role,.delivery-status) {-webkit-user-select:none;user-select:none}
button,a,summary,[role=button],[role=option],[data-vaul-drawer] {-webkit-tap-highlight-color:transparent}
::selection {background:var(--primary);color:var(--on-primary)}
button,input,textarea,select {font:inherit}
button,input,select {min-height:44px}
button {display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--ink);padding:9px 13px;cursor:pointer;touch-action:manipulation;font-size:var(--label);font-weight:500}
button:disabled {opacity:.48;cursor:default}
button.primary {background:var(--primary);color:var(--on-primary);font-weight:600}
button.tonal {background:var(--secondary);color:var(--on-secondary)}
.danger {color:var(--red)}
input,textarea,select {min-width:0;max-width:100%;font-size:1rem;color:var(--ink);background:var(--surface);border:1px solid var(--edge);border-radius:var(--r-sm);padding:12px 14px}
input,textarea {width:100%}
input::placeholder,textarea::placeholder {color:var(--soft);opacity:1}
select {width:100%}
textarea {resize:none}
label {font-size:var(--label)}
:focus-visible {outline:2px solid var(--focus);outline-offset:2px}
button:focus:not(:focus-visible),a:focus:not(:focus-visible),summary:focus:not(:focus-visible),[role=dialog]:focus:not(:focus-visible) {outline:none}
p {margin:0 0 12px}
h1,h2,h3 {margin:0;line-height:1.3;font-weight:600;letter-spacing:-.025em}
h2 {font-size:1.375rem}
a {color:inherit;text-decoration-color:var(--soft);text-underline-offset:3px;overflow-wrap:anywhere}
.small {font-size:var(--caption)}
.muted {color:var(--soft)}
.text-button {color:var(--primary);padding-inline:12px}
.sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.i,[data-icon]::before {display:inline-block;font-family:"CoS Icons";font-size:var(--control-icon);font-weight:400;line-height:1;speak:never}
.i {display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.i[data-icon]::before {font-size:inherit}
.icon-button {position:relative;display:inline-grid;place-items:center;flex:0 0 44px;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border-radius:11px;font-size:0;color:var(--soft)}
.icon-button::before {font-size:var(--control-icon)}
[data-icon=chat]::before { content:"\e168"; }
[data-icon=menu]::before { content:"\e2f0"; }
[data-icon=server]::before { content:"\e2a0"; }
[data-icon=new]::before,[data-icon=edit]::before { content:"\e3b4"; }
[data-icon=search]::before { content:"\e30c"; }
[data-icon=down]::before { content:"\e136"; }
[data-icon=plus]::before { content:"\e3d4"; }
[data-icon=minus]::before { content:"\e32a"; }
[data-icon=theme]::before { content:"\e472"; }
[data-icon=close]::before { content:"\e4f6"; }
[data-icon=settings]::before { content:"\e272"; }
[data-icon=workers]::before { content:"\e68e"; }
[data-icon=refresh]::before { content:"\e094"; }
[data-icon=send]::before { content:"\e08e"; }
[data-icon=stop]::before { content:"\e46c"; }
[data-icon=pin]::before { content:"\e65c"; }
[data-icon=file]::before { content:"\e230"; }
[data-icon=copy]::before { content:"\e1ca"; }
[data-icon=folder]::before { content:"\e25a"; }
[data-icon=checks]::before { content:"\e53a"; }
[data-icon=clock]::before { content:"\e19a"; }
[data-icon=warning]::before { content:"\e4e2"; }
[data-icon=connected]::before { content:"\e4ea"; }
[data-icon=offline]::before { content:"\e4f2"; }
[data-icon=info]::before { content:"\e2ce"; }
[data-icon=more]::before { content:"\e1fe"; }
[data-icon=source]::before { content:"\e288"; }
[data-icon=trash]::before { content:"\e4a6"; }
/* Connection */
.workspace,.connect-screen {position:fixed;inset-inline:0;inset-block-start:var(--app-top,0px);height:var(--app-height,100dvh)}
.connect-screen {display:grid;place-items:center;overflow-y:auto;padding:24px max(20px,env(safe-area-inset-left))}
.connect-form {display:grid;gap:12px;width:min(100%,390px);padding:36px 30px;border-radius:20px;background:var(--surface);border:1px solid var(--edge)}
.connect-brand {display:flex;align-items:center;gap:10px;font-size:.9375rem;font-weight:600;color:var(--ink);margin-bottom:25px}
.connect-logo {width:32px;height:32px;border-radius:10px}
.connect-brand .muted {font-weight:400}
.connect-form h1 {font-size:1.625rem}
.connect-help {color:var(--soft);font-size:var(--label);margin:0 0 18px;line-height:1.6}
.connect-form input {background:var(--page)}
.connect-form .primary {margin-top:8px}
.status-text {margin:8px 4px 0;font-size:var(--label);overflow-wrap:anywhere;color:var(--soft)}
.status-text:empty {display:none}
.status-text[data-error=true] {color:var(--red)}
/* App shell, fixed navigation area */
.workspace {display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);overflow:hidden}
#sidebarHost {display:none;min-width:0;min-height:0}
.sidebar {display:flex;flex-direction:column;gap:0;height:100%;min-height:0;padding:20px 12px max(12px,env(safe-area-inset-bottom));background:var(--surface)}
.sidebar-heading {display:flex;align-items:center;gap:10px;padding:0 6px 13px 10px;min-height:54px}
.sidebar-heading .app-mark {display:block}
.app-mark {width:30px;height:30px;object-fit:contain;border-radius:10px}
.app-name {font-size:1.05rem;font-weight:650;letter-spacing:-.035em;flex:1;min-width:0;white-space:nowrap}
.app-name-sub {color:var(--soft);font-weight:400}
.sidebar-heading .icon-button {color:var(--soft)}
button.new-chat.primary {justify-content:flex-start;flex:0 0 auto;min-height:46px;margin:8px 4px 10px;padding:0 14px;border:1px solid var(--edge);border-radius:11px;text-align:start;background:var(--surface-high);color:var(--ink);font-weight:500}
.new-chat .i {font-size:19px;color:var(--primary)}
.sidebar-link {display:flex;justify-content:flex-start;gap:13px;min-height:46px;margin:2px 4px 10px;padding-inline:13px;text-align:start;color:var(--ink);font-size:.9rem}
.sidebar-link .i {font-size:20px;color:var(--soft)}
.search-field {display:none;align-items:center;gap:10px;margin:2px 4px 14px;padding-inline:12px;background:var(--surface-high);border-radius:10px}
.sidebar.search-open .search-field {display:flex}
.search-field input {background:transparent;border:0;padding-inline:0;font-size:var(--label)}
.search-field .i {font-size:18px;color:var(--soft)}
.session-scroll {min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.project-toolbar {display:flex;align-items:center;justify-content:space-between;min-width:0;margin:11px 4px 4px;padding-inline-start:13px}
.project-toolbar h2 {font-size:.735rem;color:var(--soft);font-weight:600;letter-spacing:.035em}
.project-toolbar .icon-button {color:var(--soft)}
#projectList {margin-bottom:25px}
.project-row {display:flex;min-width:0;align-items:center;border-radius:10px}
.project-toggle {display:flex;justify-content:flex-start;flex:1;min-width:0;gap:12px;padding-inline:12px 0;font-size:.875rem;font-weight:400;text-align:start}
.project-toggle .i {color:var(--soft)}
.project-toggle .i[data-icon=folder] {font-size:19px}
.project-name {min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.project-caret {font-size:12px;transform:rotate(-90deg)}
.project-toggle[aria-expanded=true] .project-caret {transform:none}
.project-action {flex:0 0 44px;width:44px}
.project-row .project-action[data-project-new] {width:0;min-width:0;flex-basis:0;padding:0;opacity:0;visibility:hidden;pointer-events:none}
.project-row:has([aria-expanded=true]) .project-action[data-project-new],.project-row:focus-within .project-action[data-project-new] {width:44px;min-width:44px;flex-basis:44px;opacity:1;visibility:visible;pointer-events:auto}
.project-chats {margin-inline-start:22px;padding-inline-start:6px;border-inline-start:1px solid var(--edge)}
.project-more {width:100%;justify-content:flex-start;font-size:var(--caption);color:var(--soft)}
.session-section {margin-bottom:17px}
.session-section>summary {min-height:38px;padding:8px 14px;font-size:.75rem;color:var(--soft);cursor:pointer}
.session-row {display:flex;align-items:center;width:100%;min-width:0;border-radius:10px}
.session-open {flex:1;min-width:0;justify-content:flex-start;gap:11px;padding:9px 11px;font-size:.875rem;text-align:start;font-weight:400}
.session-glyph {font-size:18px;color:var(--soft)}
.session-row strong {flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;font-size:var(--label)}
.session-row small {color:var(--soft);white-space:nowrap;font-size:.6875rem}
.session-menu {opacity:0}
.session-row:hover .session-menu,.session-row:focus-within .session-menu {opacity:1}
.session-row[aria-current=page] {background:var(--secondary);color:var(--on-secondary)}
.session-row[aria-current=page] .session-glyph {color:var(--on-secondary)}
.sidebar-footer {display:flex;align-items:center;gap:8px;padding:12px 5px 0;border-top:1px solid var(--edge)}
.sidebar-footer .server-cluster {display:flex;min-width:0;flex:1;align-items:center}
.server-cluster>.icon-button {flex:0 0 36px;width:36px;min-width:36px}
.server-switcher {min-width:0;flex:1;justify-content:flex-start;gap:6px;text-align:start;padding-inline:4px;color:var(--soft);font-size:var(--caption)}
#serverName {flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.server-switcher .i:last-child {font-size:14px}
.connection-icon {color:var(--soft)}
.connection-icon[data-icon=connected] {color:#81c2a6}
.sidebar-footer .footer-settings {color:var(--soft)}
/* Conversation shell */
.chat {display:flex;flex-direction:column;min-width:0;min-height:0;touch-action:pan-y pinch-zoom;background:var(--page)}
.chat-header {display:flex;align-items:center;gap:10px;flex-shrink:0;min-height:66px;padding:8px max(16px,env(safe-area-inset-right)) 8px max(16px,env(safe-area-inset-left));border-bottom:1px solid var(--edge)}
.chat-heading {flex:1;min-width:0;padding-inline:2px}
.chat-heading h1 {font-size:.98rem;letter-spacing:-.018em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-heading p {margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-heading p:empty {display:none}
.header-actions {display:inline-flex;align-items:center;gap:2px;flex-shrink:0;margin-inline-start:auto}
.header-actions .icon-button {background:transparent;color:var(--soft)}
.chat-header .header-legacy-action {display:none}
#pinChat[aria-pressed=true] {color:var(--primary);background:var(--secondary)}
.timeline {flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scroll-padding-block:24px;overscroll-behavior:contain;overflow-anchor:none;padding:27px max(18px,env(safe-area-inset-right)) 44px max(18px,env(safe-area-inset-left))}
#events,#pendingMessages,.welcome {max-width:var(--content-width);margin-inline:auto}
.welcome {display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;min-height:0;text-align:center;padding:12px 0 18px}
.welcome-mark {display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;margin-bottom:12px;border-radius:16px;border:1px solid var(--edge);background:var(--surface);color:var(--primary)}
.welcome-mark .i {font-size:21px}
.welcome h2 {font-size:clamp(1.4rem,4vw,1.8rem);font-weight:600;letter-spacing:-.045em;text-wrap:balance}
.welcome-description {font-size:.8125rem;color:var(--soft);line-height:1.5;margin:7px 0 17px}
.welcome-suggestions {display:grid;gap:7px;width:min(100%,430px)}
.welcome-suggestion {width:100%;min-height:46px;justify-content:flex-start;gap:13px;text-align:start;font-weight:400;font-size:.875rem;padding:10px 13px;color:var(--ink);background:var(--surface);border:1px solid var(--edge);border-radius:12px}
.welcome-suggestion .i {display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--surface-high);font-size:18px;color:var(--soft)}
.welcome-suggestion>span:nth-child(2) {flex:1}
.suggestion-arrow {font-size:1.05rem;color:var(--soft)}
/* Transcript */
.event {min-width:0;margin-block:0 30px;overflow-wrap:anywhere;font-size:.98rem;line-height:1.75}
.event.user {width:fit-content;max-width:min(84%,610px);margin-inline-start:auto;padding:12px 17px;background:var(--bubble);color:var(--ink);border:1px solid var(--edge);border-radius:18px;white-space:pre-wrap;line-height:1.6}
.event.user p {margin:0}
.event .role {color:var(--soft);font-size:var(--caption);font-weight:600;margin-bottom:8px}
.event.assistant.final>.role {position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.event.assistant>:last-child {margin-bottom:0}
.event h2 {font-size:1.33rem;margin-block:30px 12px}
.event h3 {font-size:1.1rem;margin-block:25px 10px}
.event p {margin-block:0 14px}
.event ul,.event ol {margin-block:10px 16px;padding-inline-start:25px}
.event li {margin-block:4px}
.event blockquote {margin:15px 0;padding:8px 16px;border-inline-start:3px solid var(--outline);background:var(--surface);border-radius:0 var(--r-sm) var(--r-sm) 0}
.event code {font:.875em/1.6 ui-monospace,monospace;background:var(--surface-high);padding:2px 5px;border-radius:5px}
.event pre {max-width:100%;overflow-x:auto;margin:16px 0;padding:18px;border-radius:12px;border:1px solid var(--edge);background:var(--surface);font:.825rem/1.65 ui-monospace,monospace;white-space:pre}
.event pre code {padding:0;background:none}
.event details {font-size:var(--label);color:var(--soft)}
summary {cursor:pointer;min-height:40px;align-content:center}
.event details[open] {padding:10px 14px;border-radius:var(--r-sm);background:var(--surface)}
.event details p {margin-block:12px 0}
.event details pre {white-space:pre-wrap;overflow-wrap:anywhere}
.table-scroll {max-width:100%;overflow-x:auto}
.event table {border-collapse:collapse;font-size:var(--label);width:100%}
.event td,.event th {padding:10px 12px;text-align:start;border-bottom:1px solid var(--edge)}
.event th {color:var(--soft);font-weight:600}
.citation {display:inline-flex;flex-wrap:wrap;gap:4px;max-width:100%;margin-inline:.25em;vertical-align:middle;font-size:.8125em}
.citation-link {display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:100%;padding:2px 7px;border-radius:6px;background:var(--surface);color:var(--soft);text-decoration:none}
.citation-link>.i {font-size:1em}
.citation-domain {min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.citation-link:hover,.citation-link:focus-visible {color:var(--ink);background:var(--surface-top)}
.event.notice-event {font-size:var(--label);color:var(--soft);margin-block:12px}
.event.error {color:var(--red)}
.truncated {font-size:var(--caption);color:var(--soft);margin-top:8px}
.event-actions {display:flex;gap:2px;margin-top:6px}
.event-actions .icon-button {color:var(--soft);width:44px;height:44px;min-height:44px}
.activity-group {margin-block:0 22px;font-size:var(--label);color:var(--soft);overflow-wrap:anywhere}
.activity-group>summary {display:list-item;min-height:40px;padding:8px 2px;color:var(--soft);font-weight:500}
.activity-group[data-error=true]>summary {color:var(--red)}
.activity-group-body {padding:8px 0 8px 15px;margin-inline-start:5px;border-inline-start:1px solid var(--edge)}
.activity-group-body>.event {margin-block:0 5px}
.message-receipt {display:flex;justify-content:flex-end;margin-top:5px}
.message-receipt .icon-button {width:44px;height:44px;min-height:44px}
.unavailable-image {min-width:48px;min-height:48px;color:var(--soft)}
.media-grid {display:flex;flex-wrap:wrap;gap:8px;margin-block:12px}
.media-grid button {padding:0;overflow:hidden;border-radius:10px}
.media-grid img {display:block;max-width:min(100%,320px);max-height:300px;object-fit:contain;outline:1px solid var(--edge);outline-offset:-1px}
.file-caption {font-size:var(--caption);color:var(--soft);white-space:normal}
/* Persistent input dock: a stable two-row editor */
.composer-area {display:flex;flex-direction:column;flex-shrink:0;min-height:0;width:100%;max-width:calc(var(--content-width) + 48px);max-height:calc(var(--app-height,100dvh) * .60);margin-inline:auto;padding:0 max(14px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));overflow:visible}
.composer-status {flex:0 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
#composer {flex:0 0 auto;display:grid;grid-template-columns:44px minmax(0,1fr) auto 44px 44px;grid-template-rows:auto auto auto auto 44px;align-items:center;gap:0 4px;margin:0;padding:8px 10px 9px;border:1px solid var(--dock-border);border-radius:18px;background:var(--surface)}
#composer:focus-within {border-color:var(--outline)}
#composer:has(#stop[hidden]) {grid-template-columns:44px minmax(0,1fr) auto 0 44px}
.composer-toolbar {display:contents}
#composerEdit {grid-column:1/-1;grid-row:1;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:var(--caption);color:var(--soft);padding-inline:5px}
#composerEditLabel {min-width:0;overflow-wrap:anywhere}
#cancelEdit {flex-shrink:0}
#draftAttachments {grid-column:1/-1;grid-row:2}
#selectedSkills {grid-column:1/-1;grid-row:3}
#prompt {grid-column:1/-1;grid-row:4;display:block;min-height:52px;max-height:min(190px,35vh);field-sizing:content;border:0;border-radius:8px;background:transparent;padding:12px 5px 8px;color:var(--ink);font-size:1rem;line-height:1.55}
#prompt:focus-visible {outline:none}
#attach {grid-column:1;grid-row:5;color:var(--soft)}
.model-controls {display:flex;min-width:0;align-items:center;grid-column:2/4;grid-row:5}
#stop {grid-column:4;grid-row:5}
#send {grid-column:5;grid-row:5}
.model-picker {display:inline-flex;justify-content:flex-start;gap:7px;min-width:0;max-width:min(38vw,200px);height:40px;padding-inline:10px;border-radius:8px;color:var(--soft);white-space:nowrap;font-size:.875rem}
.model-picker>span:first-child {min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.model-picker .i {font-size:14px}
#composer .icon-button {flex:0 0 44px;width:44px;height:44px;min-height:44px}
#composer .send-button {color:var(--on-primary);background:var(--primary);border-radius:11px}
#composer .send-button:disabled {opacity:1;color:var(--soft);background:var(--surface-high)}
#composer .stop-button {color:var(--on-primary);background:var(--primary);border-radius:11px}
#composer .send-button.command-send {width:auto;max-width:42vw;min-width:44px;padding-inline:12px;font-size:var(--label);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:10px}
.send-button.command-send::before {display:none}
.selected-skills {display:flex;flex-wrap:wrap;gap:6px;padding:5px 3px 8px}
.selected-skill {display:inline-flex;align-items:center;gap:2px;min-width:0;max-width:100%;border:1px solid var(--edge);border-radius:9px;background:var(--surface-high);padding-inline-start:10px;font-size:var(--label)}
.selected-skill>span {min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.selected-skill>.icon-button {color:var(--soft)}
.selected-skill>.icon-button::before {font-size:16px}
#attach[data-busy=true]::after,#send[data-busy=true]::after,#refresh[data-busy=true]::after {content:"";position:absolute;inset:10px;border:2px solid currentColor;border-inline-end-color:transparent;border-radius:50%}
#attach[data-busy=true]::before,#send[data-busy=true]::before,#refresh[data-busy=true]::before {opacity:0}
.attachment-strip {display:flex;overflow-x:auto;gap:8px;max-width:100%;padding:4px}
.attachment-strip:empty {display:none}
.attachment-chip {display:flex;align-items:center;gap:8px;max-width:240px;flex-shrink:0;border:1px solid var(--edge);border-radius:10px;padding:4px 4px 4px 8px;background:var(--surface-high);font-size:var(--caption)}
.attachment-chip span {overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.attachment-chip img {width:48px;height:48px;object-fit:cover;border-radius:7px}
.attachment-preview {min-width:48px;padding:0;border-radius:7px}
.attachment-preview img {display:block}
.attachment-chip .icon-button {width:44px;height:44px;min-height:44px}
.notice {margin:0 16px 10px;padding:11px 14px;border:1px solid var(--edge);border-radius:10px;background:var(--surface);font-size:var(--label);overflow-wrap:anywhere}
.notice p {margin:0}
.composer-area .notice {margin-inline:0}
.jump-wrap {display:flex;justify-content:center;position:relative;flex:0 0 0;height:0}
.jump-wrap>button {position:absolute;inset-block-end:15px;width:44px;height:44px;min-height:44px;border:1px solid var(--edge);background:var(--surface-high);border-radius:12px;box-shadow:0 4px 14px #0003}
.input-queue {display:grid;gap:7px;margin-bottom:9px}
.input-queue:empty {display:none}
.queue-group {border:1px solid var(--edge);border-radius:12px;overflow:hidden;background:var(--surface)}
.queue-group>summary {min-height:44px;padding:9px 15px;color:var(--ink);font-weight:500}
.queue-list {display:grid;gap:6px;padding:5px 8px 9px}
.queue-row {display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-width:0;min-height:50px;padding:5px 6px 5px 12px;border:1px solid var(--edge);border-radius:10px;background:var(--surface);font-size:var(--label)}
.queue-group .queue-row {border:0;background:var(--surface-high)}
.queue-row .icon-button {width:44px;height:44px;min-height:44px}
.queue-content {flex:1 1 100%;min-width:0}
.queue-content>summary {display:flex;gap:8px;align-items:center;min-height:44px}
.queue-content>summary::after {content:'+';flex-shrink:0;color:var(--soft)}
.queue-content[open]>summary::after {content:'−'}
.queue-preview {display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;max-height:3.2em;overflow:hidden;overflow-wrap:anywhere;flex:1;min-width:0;line-height:1.6}
.queue-text {max-height:10rem;overflow-y:auto;overscroll-behavior:contain;margin-block:4px 8px;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text}
.queue-row>.delivery-status {min-width:0;max-width:100%;margin-inline-end:auto;white-space:normal;text-align:start}
.pending-message-text {max-height:8rem;overflow-y:auto;overscroll-behavior:contain;white-space:pre-wrap}
.delivery-status {display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:2px 8px;font-size:var(--caption);font-weight:500;color:var(--soft)}
.delivery-status::before {font-size:14px}
.delivery-status[data-tone=error] {color:var(--red)}
.delivery-status[data-tone=attention],.uncertain-actions {color:var(--attention)}
.uncertain-actions {display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-inline:10px 4px;border:1px solid var(--attention);border-radius:10px;background:var(--surface)}
.uncertain-actions .delivery-status {min-height:44px}
.agent-plan {margin:0 auto 8px;width:100%;font-size:var(--label);overflow-wrap:anywhere}
.plan-shell {border:1px solid var(--edge);border-radius:12px;background:var(--surface)}
.plan-shell>summary {min-height:44px;padding:9px 15px;color:var(--ink);font-weight:600}
.plan-body {max-height:min(42vh,360px);overflow-y:auto;overscroll-behavior:contain;padding:5px 15px 14px;-webkit-user-select:text;user-select:text}
.plan-body>p,.plan-body li>p {white-space:pre-wrap}
.plan-body ol {margin:0;padding-inline-start:24px}
.plan-body li {padding-block:5px}
.plan-step-title {display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.plan-step-title>span:first-child {min-width:0}
.plan-step-status {flex-shrink:0;color:var(--soft);font-size:var(--caption)}
.plan-body li[data-status=in_progress] .plan-step-status {color:var(--primary);font-weight:600}
.plan-body li>p {margin:4px 0 8px;color:var(--soft);font-size:var(--caption)}
.slash-menu {max-height:230px;overflow-y:auto;overscroll-behavior:contain;padding:5px;margin-bottom:9px;border:1px solid var(--edge);border-radius:12px;background:var(--surface);font-size:var(--label)}
.slash-menu button {display:block;width:100%;text-align:start}
.slash-menu strong,.slash-menu small {display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.slash-menu strong {font-weight:600}
.slash-menu small {font-size:var(--caption);color:var(--soft)}
.slash-menu button[aria-selected=true] {background:var(--surface-high)}
/* Panels, sheets, popovers and menus */
.sidebar-drawer {position:fixed;inset:var(--app-top,0px) auto auto 0;height:var(--app-height,100dvh);width:min(330px,88vw);outline-offset:-3px;background:var(--surface);border-inline-end:1px solid var(--edge);overflow:hidden;touch-action:pan-y;box-shadow:8px 0 32px #0006}
#mobileSidebarHost {height:100%;min-height:0}
.nav-overlay {touch-action:pan-y pinch-zoom}
.ui-overlay {position:fixed;inset:var(--app-top,0px) 0 auto;height:var(--app-height,100dvh);background:rgba(0,0,0,.65)}
.ui-content[data-state=closed],.ui-overlay[data-state=closed],.sidebar-drawer[data-state=closed] {pointer-events:none}
.ui-content {position:fixed;inset-block-start:calc(var(--app-top,0px) + var(--app-height,100dvh) / 2);inset-inline-start:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;width:min(480px,calc(100% - 32px));max-height:calc(var(--app-height,100dvh) - 32px);padding:24px;border:1px solid var(--edge);border-radius:18px;background:var(--surface);color:var(--ink);box-shadow:0 18px 70px #0007}
.ui-content[data-vaul-drawer] {touch-action:pan-y pinch-zoom}
.ui-content[data-vaul-drawer][data-app-sheet=false]::after {content:none}
.dialog-head {display:flex;align-items:center;justify-content:space-between;gap:14px;flex-shrink:0;margin-bottom:15px}
.dialog-head h2 {min-width:0;overflow-wrap:anywhere;font-size:1.18rem;letter-spacing:-.025em}
.dialog-head .icon-button {color:var(--soft)}
.ui-description {margin-bottom:18px;color:var(--soft);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65}
.ui-body {min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;touch-action:pan-y pinch-zoom}
.ui-body form {display:grid;gap:4px}
.ui-field {display:block;margin-block:6px 10px;color:var(--soft);font-size:var(--label);font-weight:500}
.ui-field input,.ui-field textarea,.ui-field select {display:block;margin-top:8px;background:var(--page);color:var(--ink)}
.ui-footer {display:flex;justify-content:flex-end;gap:9px;padding-top:19px}
.ui-footer button {min-height:44px;border-radius:10px;padding-inline:17px}
.ui-button {display:inline-flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0}
.ui-outline {border:1px solid var(--edge);background:var(--surface-high)}
.choice-items,.model-choices {display:grid;gap:5px}
.model-choices {max-height:min(42vh,360px);overflow-y:auto;overscroll-behavior:contain}
.choice-line {display:flex;align-items:center;gap:4px;min-width:0}
.choice-row {display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;width:100%;min-height:52px;padding:11px 13px;text-align:start;font-size:.92rem;font-weight:500;border-radius:10px;overflow-wrap:anywhere}
.choice-row>.i:first-child {color:var(--soft)}
.choice-line .choice-row {flex:1}
.choice-text {flex:1;min-width:0}
.choice-text>span,.choice-text>small {display:block}
.choice-text small {color:var(--soft);font-weight:400;margin-top:2px;white-space:pre-wrap;font-size:var(--caption)}
.choice-row[aria-pressed=true],.model-choices .choice-row[aria-pressed=true] {background:var(--secondary);color:var(--on-secondary)}
.choice-row[aria-pressed=true]>.i:last-child {color:var(--primary)}
.model-choices .choice-row>span:first-child {min-width:0;overflow-wrap:anywhere}
.choice-empty {margin:0;padding:15px;color:var(--soft);font-size:var(--label)}
.model-back {justify-content:flex-start;gap:8px;min-height:40px;padding-inline:4px;color:var(--soft);font-weight:500}
.model-back .i {transform:rotate(90deg);font-size:16px}
.reasoning-control {margin-top:18px;padding:17px 4px 3px;border-top:1px solid var(--edge)}
.reasoning-heading {display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:17px}
.reasoning-heading h3 {font-size:var(--label);font-weight:500;color:var(--soft)}
.reasoning-heading output {font-size:.9375rem;font-weight:600;color:var(--ink)}
.ui-slider {position:relative;display:flex;align-items:center;width:100%;min-height:44px;padding:12px 5px;touch-action:none;user-select:none}
.ui-slider[data-disabled] {opacity:.45}
.ui-slider-track {position:relative;flex:1;height:6px;overflow:hidden;border-radius:99px;background:var(--surface-top)}
.ui-slider-range {position:absolute;height:100%;background:var(--primary);border-radius:99px}
.ui-slider-thumb {display:grid;place-items:center;width:23px;height:23px;background:var(--primary);border:3px solid var(--surface);border-radius:50%;box-shadow:0 0 0 1px var(--primary)}
.reasoning-ticks {display:flex;justify-content:space-between;gap:1px;overflow-x:auto;overscroll-behavior:contain;padding-bottom:4px}
.reasoning-ticks button {position:relative;flex:1 0 44px;max-width:86px;min-width:44px;min-height:44px;padding:4px 3px;color:var(--soft);font-size:.73rem;font-weight:400;white-space:nowrap}
.reasoning-ticks button[aria-pressed=true] {color:var(--primary);font-weight:600}
.row-popover {width:max-content;min-width:228px;max-width:calc(100vw - 24px);padding:6px;border:1px solid var(--edge);border-radius:13px;background:var(--surface);box-shadow:0 12px 30px #0006}
.row-popover-item {width:100%;min-height:46px;justify-content:flex-start;gap:13px;text-align:start;padding:9px 13px;font-size:.875rem;border-radius:9px}
.row-popover-item .i {color:var(--soft);font-size:19px}
.row-popover-item.danger .i {color:var(--red)}
.schedule-fields {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.schedule-help {font-size:var(--caption);color:var(--soft);margin-bottom:8px}
.schedule-help p {margin:0 0 8px}
.project-colors {display:flex;flex-wrap:wrap;gap:4px;border:0;padding:0;margin:16px 0}
.project-colors legend {color:var(--soft);font-size:var(--label);margin-bottom:10px}
.project-colors button {position:relative}
.project-colors [aria-pressed=true] {outline:2px solid var(--focus);outline-offset:-2px}
.project-colors .i {position:absolute;color:var(--ink);background:var(--surface);border-radius:50%;font-size:12px}
.color-swatch {display:block;width:19px;height:19px;border-radius:50%;background:currentColor}
[data-color=blue] {color:#80acdf}
[data-color=green] {color:#78b494}
[data-color=amber] {color:#c7a354}
[data-color=purple] {color:#b297ce}
[data-color=rose] {color:#d894ab}
[data-color=teal] {color:#66b3b0}
[data-color=none] {color:var(--soft)}
.color-swatch[data-color=none] {background:none;border:1px solid var(--soft)}
.ui-content.ui-sheet {inset:auto 0 calc(100% - var(--app-top,0px) - var(--app-height,100dvh));transform:none;width:100%;max-height:calc(var(--app-height,100dvh) - max(16px,env(safe-area-inset-top)));padding:23px max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));border-radius:20px 20px 0 0;border-inline:0;border-bottom:0}
.ui-content.ui-sheet .dialog-head {touch-action:none;user-select:none}
.ui-content[data-app-sheet=false][data-vaul-drawer] {transform:translate(-50%,-50%)}
.ui-content[data-app-kind=model] .ui-body {overflow-y:auto}
@media(min-width:40.01rem) {
  .ui-content[data-app-kind=model] {inset-block-start:calc(var(--app-top,0px) + var(--app-height,100dvh) / 2);inset-block-end:auto;width:min(460px,calc(100vw - 40px));max-height:calc(var(--app-height,100dvh) - 70px);border-radius:18px;background:var(--surface)}
  .ui-content[data-app-sheet=false][data-app-kind=model][data-vaul-drawer] {transform:translate(-50%,-50%)}
}
.ui-content.ui-media {width:min(1000px,calc(100% - 24px))}
.ui-media .ui-body {display:flex;flex-direction:column}
.image-stage {display:flex;align-items:center;justify-content:center;flex-shrink:1;height:clamp(160px,calc(var(--app-height,100dvh) * .55),640px);min-height:80px;overflow:hidden;touch-action:none;user-select:none;border-radius:10px;background:var(--page)}
.image-stage img {display:block;max-width:100%;max-height:100%;object-fit:contain;pointer-events:none}
.image-stage[data-zoomed=true] {cursor:grab}
.image-stage[data-zoomed=true]:active {cursor:grabbing}
.image-tools {display:flex;flex-shrink:0;align-items:center;justify-content:center;gap:8px;margin-top:10px}
.zoom-reset {min-width:80px;font-variant-numeric:tabular-nums}
.image-help {flex-shrink:0;text-align:center;font-size:var(--caption);margin:4px 0 0}
.app-toast[data-sonner-toast] {font:500 var(--label)/1.5 var(--font);color:var(--ink);background:var(--surface-high);border:1px solid var(--edge);border-radius:12px;box-shadow:0 6px 28px #0004}
.app-toast [data-close-button] {color:var(--soft);background:var(--surface-high);border-color:var(--edge)}
.app-toast[data-type=error] [data-icon] {color:var(--red)}
[data-sonner-toaster] {z-index:auto}
/* Every platform receives the same geometry; responsiveness follows available room. */
@media(min-width:56rem) {
  .workspace {grid-template-columns:284px minmax(0,1fr)}
  .workspace.nav-collapsed {grid-template-columns:minmax(0,1fr)}
  #sidebarHost {display:block}
  .workspace.nav-collapsed #sidebarHost {display:none}
  #openSidebar {display:inline-grid}
  .chat-header {padding:10px 26px}
  .timeline {padding-inline:26px}
  .composer-area {max-width:calc(var(--content-width) + 48px)}
}
@media(max-width:430px) {
  .chat-header {padding-inline:12px;gap:4px}
  .header-actions {gap:0}
  .chat-heading h1 {font-size:.92rem}
  .composer-area {padding-inline:10px}
  .model-picker {max-width:40vw}
  .schedule-fields {grid-template-columns:minmax(0,1fr)}
  .welcome-description {max-width:280px}
}
@media(min-height:46rem) {
  .welcome {padding-block:30px 48px}
  .welcome-mark {flex-basis:52px;width:52px;height:52px;margin-bottom:22px}
  .welcome-mark .i {font-size:25px}
  .welcome h2 {font-size:1.9rem}
  .welcome-description {margin:10px 0 32px;font-size:.875rem}
  .welcome-suggestion {min-height:54px}
}
@media(max-height:30rem) {
  .chat-header {min-height:50px;padding-block:2px}
  #chatMeta {display:none}
  #prompt {min-height:44px;max-height:94px;padding-block:6px}
  .composer-area {max-height:calc(var(--app-height,100dvh) * .68);padding-block:3px}
  .welcome {padding:8px 0}
  .welcome-mark,.welcome-description {display:none}
  .welcome h2 {font-size:1.2rem;margin-bottom:12px}
  .welcome-suggestions {gap:4px}
}
@media(hover:none) {
  .session-row .session-menu {opacity:1}
}
@media(hover:hover) and (pointer:fine) {
  button:hover:not(:disabled) {background:var(--surface-top)}
  button.primary:hover:not(:disabled) {background:var(--primary);filter:brightness(1.08)}
  button.new-chat.primary:hover:not(:disabled) {background:var(--surface-top);filter:none}
  .project-row:hover,.session-row:hover {background:var(--surface-high)}
  .session-row[aria-current=page]:hover {background:var(--secondary)}
  #composer .send-button:hover:not(:disabled),#composer .stop-button:hover:not(:disabled) {background:var(--primary)}
  .welcome-suggestion:hover:not(:disabled) {background:var(--surface-high);border-color:var(--outline)}
}
button:active:not(:disabled) {filter:brightness(.94)}
@media(prefers-reduced-motion:no-preference) {
  button {transition:background-color var(--motion-press) ease,color var(--motion-press) ease,opacity var(--motion-press) ease}
  .icon-button:active:not(:disabled) {transform:scale(.97)}
  .ui-overlay[data-state=open] {animation:fade-in var(--motion-open) ease}
  .ui-overlay[data-state=closed] {animation:fade-out var(--motion-close) ease}
  .ui-content:not([data-vaul-drawer])[data-state=open],.ui-content[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-app-sheet=false][data-state=open] {animation:dialog-in var(--motion-open) var(--ease-out)}
  .ui-content:not([data-vaul-drawer])[data-state=closed],.ui-content[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-app-sheet=false][data-state=closed] {animation:dialog-out var(--motion-close) ease}
  .row-popover[data-state=open] {animation:menu-in 150ms var(--ease-out);transform-origin:top right}
  .row-popover[data-state=closed] {animation:menu-out 120ms ease;transform-origin:top right}
  #attach[data-busy=true]::after,#send[data-busy=true]::after,#refresh[data-busy=true]::after {animation:upload-spin 900ms linear infinite}
  @keyframes fade-in {from {opacity:0}to {opacity:1}}
  @keyframes fade-out {to {opacity:0}}
  @keyframes dialog-in {from {opacity:0;translate:0 6px}to {opacity:1;translate:0 0}}
  @keyframes dialog-out {to {opacity:0;translate:0 4px}}
  @keyframes menu-in {from {opacity:0;transform:translateY(4px) scale(.985)}to {opacity:1;transform:translateY(0) scale(1)}}
  @keyframes menu-out {to {opacity:0;transform:translateY(3px) scale(.99)}}
  @keyframes upload-spin {to {transform:rotate(360deg)}}
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {scroll-behavior:auto!important;animation:none!important;transition:none!important}
}
@media(forced-colors:active) {
  button,input,select,textarea {border:1px solid ButtonText}
  .ui-slider-range,.ui-slider-thumb {background:Highlight}
}
