/* AI chat uses the existing DS-2 surface, typography, focus and motion tokens. */
#app .page-ai-chat{padding:var(--s-4);max-width:none;}
.page-ai-chat>.footer-note{display:none;}
#app .ai-chat{display:grid;grid-template-columns:minmax(10rem,14rem) minmax(0,1fr);height:calc(100dvh - var(--topbar-h) - var(--s-6));min-height:36rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-1);color:var(--text);}
.ai-chat *{box-sizing:border-box;}
.ai-chat .chat-sidebar{display:flex;flex-direction:column;background:var(--surface-2);border-right:1px solid var(--border);min-width:0;}
.ai-chat .chat-sidebar-head{display:flex;flex-direction:column;gap:var(--s-4);padding:var(--s-5) var(--s-4);}
.ai-chat .chat-history{flex:1;overflow:auto;min-height:0;padding:var(--s-2);display:flex;flex-direction:column;gap:var(--s-1);}
.ai-chat .chat-history button{display:block;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;background:transparent;border:0;color:var(--text-2);padding:var(--s-3);border-radius:var(--r-sm);box-shadow:none;min-height:var(--control-h);}
.ai-chat .chat-history button.selected{background:var(--surface-selected);color:var(--accent-text);font-weight:600;}
.ai-chat .chat-sidebar-foot{display:grid;gap:var(--s-3);padding:var(--s-4);border-top:1px solid var(--border);}
.ai-chat .chat-connection{font-size:var(--fs-xs);color:var(--text-3);}
.ai-chat .chat-main{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;position:relative;}
.ai-chat .chat-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--divider);}
.ai-chat .chat-head>div:first-child{display:flex;gap:var(--s-3);align-items:center;flex-wrap:wrap;}
.ai-chat .chat-head h1{font-size:var(--fs-lg);line-height:1.4;letter-spacing:-.02em;margin:0;}
.ai-chat .chat-head span{color:var(--text-3);font-size:var(--fs-sm);}
.ai-chat .chat-head-actions{display:flex;gap:var(--s-2);}
.ai-chat .chat-head-actions button{font-size:var(--fs-xs);padding:var(--s-1) var(--s-2);}
.ai-chat .chat-messages{overflow:auto;min-height:0;scrollbar-gutter:auto;padding:var(--s-5) max(var(--s-5),calc((100% - 51rem)/2));overscroll-behavior:contain;}
.ai-chat .chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;text-align:center;padding:var(--s-5) 0;}
.ai-chat .chat-empty-icon{color:var(--accent-text);font-size:var(--fs-2xl);background:var(--accent-soft);border-radius:var(--r-lg);padding:var(--s-3) var(--s-4);}
.ai-chat .chat-empty h2{font-size:var(--fs-2xl);letter-spacing:-.03em;line-height:1.3;margin:var(--s-5) 0 var(--s-3);}
.ai-chat .chat-empty p{max-width:34rem;color:var(--text-3);line-height:1.8;}
.ai-chat .chat-starters{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-3);margin:var(--s-4) 0;}
.ai-chat .chat-message{padding:var(--s-4) 0 var(--s-5);min-width:0;}
.ai-chat .chat-message--user{padding:var(--s-4) var(--s-5);margin:var(--s-2) 0 var(--s-5) var(--s-6);background:color-mix(in srgb,var(--accent) 24%,var(--surface));border-radius:var(--r-lg);}
.ai-chat .chat-message-label{font-size:var(--fs-sm);font-weight:650;color:var(--text);display:flex;gap:var(--s-3);margin-bottom:var(--s-3);}
.ai-chat .chat-message-label span{font-size:var(--fs-xs);font-weight:400;color:var(--text-3);}
.ai-chat .chat-markdown{font-size:var(--fs-lg);line-height:1.85;overflow-wrap:anywhere;}
.ai-chat .chat-markdown p{margin:0 0 var(--s-2);}
.ai-chat .chat-markdown h3{font-size:var(--fs-xl);margin:var(--s-4) 0 var(--s-2);}
.ai-chat .chat-user-text{white-space:pre-wrap;}
.ai-chat .chat-markdown pre{white-space:pre;overflow:auto;max-width:100%;padding:var(--s-4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);font-size:var(--fs-sm);line-height:1.7;}
.ai-chat .chat-markdown code{font-size:var(--fs-sm);background:var(--surface-2);padding:var(--s-1);border-radius:var(--r-xs);}
.ai-chat .chat-markdown pre code{padding:0;}
.ai-chat .chat-markdown blockquote{margin:var(--s-3) 0;padding-left:var(--s-4);border-left:3px solid var(--border-strong);color:var(--text-2);}
.ai-chat .chat-markdown ul{padding-left:var(--s-5);margin:var(--s-2) 0;}
.ai-chat .chat-markdown a{color:var(--accent-text);text-decoration:underline;}
.ai-chat .chat-table{max-width:100%;overflow:auto;}
.ai-chat .chat-table table{font-size:var(--fs-sm);width:100%;border-collapse:collapse;}
.ai-chat .chat-table :is(th,td){padding:var(--s-2) var(--s-3);border:1px solid var(--border);text-align:left;white-space:normal;}
.ai-chat .chat-message-tools{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-3);}
.ai-chat .chat-message-tools button{font-size:var(--fs-xs);min-height:var(--control-h-sm);padding:var(--s-1) var(--s-2);}
.ai-chat .chat-message-tools small,.ai-chat .chat-working{font-size:var(--fs-xs);color:var(--text-3);}
.ai-chat .chat-composer{margin:var(--s-3) max(var(--s-5),calc((100% - 51rem)/2)) var(--s-4);padding:var(--s-3);border:1px solid var(--border-strong);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-1);min-width:0;}
.ai-chat #chat-input{resize:vertical;max-height:15rem;min-height:5rem;width:100%;border:0;outline:0;box-shadow:none;border-radius:var(--r-sm);padding:var(--s-2);background:transparent;font-size:var(--fs-lg);line-height:1.6;color:var(--text);}
.ai-chat .chat-composer:focus-within{border-color:var(--accent);}
.ai-chat .chat-composer-tools{display:flex;justify-content:space-between;align-items:center;gap:var(--s-2);}
.ai-chat .chat-composer-tools>div{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-2);}
.ai-chat .chat-composer-tools button{min-height:var(--control-h);font-size:var(--fs-sm);padding:var(--s-2) var(--s-3);}
.ai-chat .chat-composer-tools label{display:flex;gap:var(--s-1);align-items:center;color:var(--text-3);font-size:var(--fs-xs);}
.ai-chat .chat-composer-tools select{width:auto;min-height:var(--control-h);font-size:var(--fs-sm);padding:var(--s-1) var(--s-2);}
.ai-chat .chat-send{white-space:nowrap;}
.ai-chat .chat-composer-hint{font-size:var(--fs-xs);color:var(--text-3);padding:var(--s-2) var(--s-2) 0;}
.ai-chat .chat-files{display:flex;flex-wrap:wrap;gap:var(--s-2);}
.ai-chat .chat-file{display:flex;align-items:center;gap:var(--s-2);max-width:100%;padding:var(--s-2);border:1px solid var(--border);border-radius:var(--r-md);font-size:var(--fs-xs);margin-bottom:var(--s-2);background:var(--surface);}
.ai-chat .chat-file>.chat-image-preview{display:flex;align-items:center;justify-content:center;padding:0;border:0;min-height:0;background:transparent;box-shadow:none;cursor:zoom-in;}
.ai-chat .chat-file img{width:3rem;height:3rem;object-fit:contain;border-radius:var(--r-xs);}
.ai-chat .chat-file>span:not(.chat-file-icon){min-width:0;display:grid;gap:var(--s-1);}
.ai-chat .chat-file strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:15rem;font-weight:500;}
.ai-chat .chat-file small,.ai-chat .chat-hint{color:var(--text-3);font-size:var(--fs-xs);line-height:1.7;}
.ai-chat .chat-file-icon{font-size:var(--fs-xl);color:var(--accent-text);}
.ai-chat .chat-error,.chat-dialog .chat-error{color:var(--danger);font-size:var(--fs-sm);line-height:1.6;overflow-wrap:anywhere;}
.ai-chat .chat-skeleton{padding:var(--s-5);display:grid;gap:var(--s-4);}
.ai-chat .chat-skeleton>div{height:var(--s-4);background:var(--surface-3);border-radius:var(--r-xs);}
.ai-chat .chat-skeleton>div:last-child{width:60%;}
.ai-chat :is(button,select,a){transition:background var(--dur-hover) var(--ease-out),color var(--dur-hover) var(--ease-out);}
.ai-chat button:hover{background:var(--surface-hover);color:var(--accent-text);}
.ai-chat button.primary:hover{background:var(--accent);color:var(--on-accent);}
.ai-chat :is(button,select,a):focus-visible,.chat-dialog :is(button,input,select):focus-visible{outline:3px solid var(--accent-ring);outline-offset:2px;}
.ai-chat button:active{transform:scale(var(--press-scale));}
.ai-chat :is(button,select,textarea):disabled{opacity:.5;cursor:not-allowed;transform:none;}
.ai-chat .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.chat-dialog{width:min(35rem,calc(100% - var(--s-6)));max-height:90dvh;overflow:auto;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-3);padding:var(--s-5);}
.chat-dialog::backdrop{background:var(--glass);backdrop-filter:var(--glass-blur);}
.chat-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);}
.chat-dialog h2{font-size:var(--fs-xl);margin:0;}
.chat-settings{display:grid;gap:var(--s-4);margin-top:var(--s-4);font-size:var(--fs-sm);}
.chat-settings label{display:grid;gap:var(--s-2);font-weight:550;}
.chat-settings :is(input,select){width:100%;min-width:0;}
.chat-settings p{line-height:1.7;color:var(--text-3);margin:0;}
.chat-settings-actions{display:flex;justify-content:flex-end;align-items:center;gap:var(--s-3);}
@media(max-width:1100px){#app .ai-chat{grid-template-columns:10rem minmax(0,1fr);}.ai-chat .chat-head{padding:var(--s-4);}.ai-chat .chat-messages{padding:var(--s-4);}.ai-chat .chat-composer{margin-inline:var(--s-4);}.ai-chat .chat-composer-tools label{font-size:0;}.ai-chat .chat-composer-tools select{font-size:var(--fs-sm);}}
@media(max-width:760px){#app .page-ai-chat{padding:var(--s-2);}#app .ai-chat{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);height:calc(100dvh - var(--topbar-h) - var(--s-4));min-height:34rem;border-radius:var(--r-md);}.ai-chat .chat-sidebar{border-right:0;border-bottom:1px solid var(--border);display:grid;grid-template-columns:1fr auto;}.ai-chat .chat-sidebar-head{flex-direction:row;align-items:center;padding:var(--s-2);gap:var(--s-2);}.ai-chat .chat-sidebar-head strong,.ai-chat .chat-connection{display:none;}.ai-chat .chat-history{grid-row:2;grid-column:1/-1;flex-direction:row;max-height:3rem;padding:var(--s-1) var(--s-2);}.ai-chat .chat-history:empty{display:none;}.ai-chat .chat-history button{width:auto;max-width:10rem;flex-shrink:0;padding:var(--s-1) var(--s-3);min-height:var(--control-h-sm);}.ai-chat .chat-sidebar-foot{grid-row:1;grid-column:2;padding:var(--s-2);border:0;}.ai-chat .chat-head{padding:var(--s-2) var(--s-3);}.ai-chat .chat-head-actions{gap:var(--s-1);}.ai-chat .chat-head-actions button{min-height:var(--control-h-sm);}.ai-chat .chat-head>div:first-child{gap:var(--s-1);}.ai-chat .chat-head span{font-size:var(--fs-xs);}.ai-chat .chat-messages{padding:var(--s-3);}.ai-chat .chat-composer{margin:var(--s-2);padding:var(--s-2);}.ai-chat .chat-composer-tools button{padding:var(--s-2);}.ai-chat .chat-composer-tools>div{gap:var(--s-1);}.ai-chat .chat-composer-hint{font-size:var(--fs-xs);}.ai-chat .chat-empty h2{font-size:var(--fs-xl);}.ai-chat .chat-message--user{margin-left:var(--s-4);padding:var(--s-3);}.ai-chat .chat-file strong{max-width:10rem;}.ai-chat #chat-input{font-size:var(--fs-lg);min-height:4rem;}.ai-chat .chat-starters{gap:var(--s-2);}.ai-chat .chat-history>.chat-hint{margin:0;}}
@media(prefers-reduced-motion:reduce){.ai-chat :is(button,select,a){transition:none;}.ai-chat button:active{transform:none;}}
/* Keep the composer inside the real viewport, including the wrapped mobile top bar. */
#app .ai-chat{min-height:0;}
.ai-chat #chat-draft-files{max-height:8rem;overflow:auto;}
#app#app#app#app#app#app#app#app .ai-chat .chat-history button{border:0;background:transparent;color:var(--text-2);box-shadow:none;}
#app#app#app#app#app#app#app#app .ai-chat .chat-history button:hover{background:var(--surface-hover);color:var(--accent-text);}
#app#app#app#app#app#app#app#app .ai-chat .chat-history button.selected{background:var(--surface-selected);color:var(--accent-text);font-weight:600;}
@media(max-width:760px){.ai-chat #chat-draft-files{max-height:6rem;}.ai-chat .chat-empty{padding:var(--s-3) 0;}.ai-chat .chat-empty-icon{padding:var(--s-2);}.ai-chat .chat-empty h2{margin-top:var(--s-3);}.ai-chat .chat-history{max-height:2.5rem;}}

/* Per-conversation model selection shares the existing composer controls. */
.ai-chat .chat-composer-tools #chat-model{max-width:13rem;min-width:0;}
.ai-chat .chat-composer-tools .chat-model-label{font-size:var(--fs-xs);color:var(--text-3);}
.ai-chat .chat-composer-tools>div{min-width:0;}
@media(max-width:760px){.ai-chat .chat-composer-tools .chat-model-label{flex-basis:100%;}.ai-chat .chat-composer-tools #chat-model{max-width:min(13rem,100%);}.ai-chat .chat-composer-tools{align-items:flex-end;}}

/* Give saved replies more of the viewport; keep every existing control visible. */
#app#app#app#app .content.page-ai-chat{padding-block:var(--s-2);}
.ai-chat .chat-head{padding-block:var(--s-2);}
.ai-chat .chat-messages{padding-block:var(--s-3);}
.ai-chat .chat-message{padding-block:var(--s-3);}
.ai-chat .chat-message--assistant .chat-markdown{font-size:var(--fs-sm);line-height:1.75;}
.ai-chat .chat-message--assistant .chat-markdown h3{font-size:var(--fs-lg);}
.ai-chat .chat-composer{margin-block:var(--s-2);padding:var(--s-2);}
.ai-chat #chat-input{box-sizing:border-box;height:calc(4.8em + 2 * var(--s-1));min-height:calc(4.8em + 2 * var(--s-1));padding-block:var(--s-1);font-size:var(--fs-md);line-height:1.6;}
.ai-chat .chat-composer-hint{padding-top:var(--s-1);}

/* The AI route is a full-height chat canvas, without the two title bars. */
#app#app#app#app .main:has(>.page-ai-chat)>.topbar{display:none;}
#app#app#app#app .content.page-ai-chat{padding:0;max-width:none;margin:0;}
#app .ai-chat{height:100dvh;border:0;border-radius:0;box-shadow:none;}
.ai-chat .chat-head{display:none;}
.ai-chat .chat-main{grid-template-rows:minmax(0,1fr) auto;}
.ai-chat .chat-main:has(>.chat-error){grid-template-rows:auto minmax(0,1fr) auto;}
.ai-chat .chat-composer-hint:empty{display:none;}
@media(max-width:760px){
 #app#app#app#app .main:has(>.page-ai-chat)>.topbar{display:contents;}
 #app .main:has(>.page-ai-chat)>.topbar>.actions{display:contents;}
 #app .main:has(>.page-ai-chat)>.topbar :is(.crumb,.topright){display:none;}
 #app .main:has(>.page-ai-chat)>.topbar .menu-btn{display:inline-flex;position:fixed;top:var(--s-2);left:var(--s-2);z-index:9;align-items:center;justify-content:center;width:var(--control-h);height:var(--control-h);padding:var(--s-2);background:var(--surface);}
 .ai-chat .chat-sidebar-head{padding-left:calc(var(--control-h) + var(--s-2) + var(--s-2));}
}

/* Memory tools use the existing sidebar and dialog, preserving the full-height canvas. */
.chat-memory-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2);}
.chat-memory-compact{display:none;}
.chat-memory-panel{display:grid;gap:var(--s-4);margin-top:var(--s-4);}
.chat-memory-help,.chat-memory-notice{font-size:var(--fs-xs);line-height:1.7;color:var(--text-3);margin:0;}
.chat-memory-preferences{display:grid;gap:var(--s-2);padding-bottom:var(--s-4);border-bottom:1px solid var(--divider);}
.chat-memory-preferences label{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-sm);min-height:var(--control-h);}
.chat-memory-preferences input{width:auto;}
.chat-memory-list{display:grid;gap:var(--s-3);}
.chat-memory-item{border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s-3);}
.chat-memory-item>div:first-child{display:flex;justify-content:space-between;gap:var(--s-2);align-items:center;}
.chat-memory-item strong{font-size:var(--fs-sm);}
.chat-memory-item small{font-size:var(--fs-xs);color:var(--text-3);}
.chat-memory-item p,.chat-memory-empty p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--fs-sm);line-height:1.7;margin:var(--s-2) 0;}
.chat-memory-item-actions{display:flex;gap:var(--s-2);justify-content:flex-end;}
.chat-memory-evidence{margin:var(--s-2) 0;padding-left:var(--s-3);border-left:2px solid var(--border-strong);font-size:var(--fs-xs);line-height:1.7;color:var(--text-3);white-space:pre-wrap;overflow-wrap:anywhere;}
.chat-memory-empty{padding:var(--s-4);background:var(--surface-2);border-radius:var(--r-md);}
.chat-summary-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--fs-sm);line-height:1.8;padding:var(--s-3);background:var(--surface-2);border-radius:var(--r-md);}
.chat-dialog #chat-memory-edit-form textarea{width:100%;min-height:6rem;resize:vertical;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--s-2);font:inherit;}
.chat-dialog :is(#chat-memory-settings-form,#chat-memory-edit-form,#chat-memory-delete-form) button:focus-visible,.chat-dialog #chat-memory-edit-form textarea:focus-visible{outline:3px solid var(--accent-ring);outline-offset:2px;}
@media(max-width:760px){
 .chat-memory-wide{display:none;}.chat-memory-compact{display:inline;}
 .ai-chat .chat-sidebar-foot{display:flex;gap:var(--s-1);align-items:center;}
 .chat-memory-actions{display:flex;gap:var(--s-1);}
 .chat-memory-item>div:first-child{flex-wrap:wrap;}
}

/* Chat images: one fullscreen control, with the original image/context menu intact. */
#cat-lightbox#cat-lightbox#cat-lightbox.chat-image-fullscreen:has(.lb-info-compact){padding:0;gap:0;grid-template-rows:minmax(0,1fr);}
#cat-lightbox#cat-lightbox#cat-lightbox.chat-image-fullscreen:has(.lb-info-compact)>.lb-top{position:absolute;top:var(--s-2);right:var(--s-2);z-index:6;margin:0;max-width:calc(100% - 2 * var(--s-2));}
#cat-lightbox#cat-lightbox#cat-lightbox.chat-image-fullscreen:has(.lb-info-compact)>.lb-stage{grid-row:1;padding:0;width:100%;height:100%;}
#cat-lightbox#cat-lightbox#cat-lightbox.chat-image-fullscreen:has(.lb-info-compact) .lb-frame{--lb-frame-w:100%;--lb-frame-h:100%;border-radius:0;resize:none;}
#cat-lightbox#cat-lightbox#cat-lightbox.chat-image-fullscreen:has(.lb-info-compact) .lb-slide img{border-radius:0;}
#cat-lightbox#cat-lightbox#cat-lightbox.chat-image-fullscreen:has(.lb-info-compact)>:is(.lb-hint,.lb-strip,.lb-info-compact){display:none;}

#cat-lightbox#cat-lightbox#cat-lightbox.chat-image-fullscreen:has(.lb-info-compact)>.lb-nav{grid-area:1 / 1;top:50%;bottom:auto;margin:0;}

/* Chat reading/composer skin: scoped DS-2 tokens, existing empty/loading and actions retained. */
#app .ai-chat{--chat-font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;--chat-body-size:14px;--chat-heading-size:16px;--chat-code-size:13px;--chat-label-size:12px;--chat-tool-size:13px;--chat-body-line:22.75px;--chat-reading-width:var(--chat-composer-width);--chat-composer-width:60rem;--chat-radius:calc(var(--r-lg) + var(--s-1));font-family:var(--chat-font);-webkit-font-smoothing:auto;text-rendering:auto;}
#app#app#app#app#app .ai-chat .chat-messages{padding:var(--s-5) max(var(--s-5),calc((100% - var(--chat-reading-width))/2));}
#app#app#app#app#app .ai-chat .chat-message{padding-block:var(--s-3) var(--s-4);}
#app#app#app#app#app .ai-chat .chat-markdown{font:400 var(--chat-body-size)/var(--chat-body-line) var(--chat-font);letter-spacing:normal;color:var(--text);}
#app#app#app#app#app .ai-chat .chat-markdown :is(p,ul,li,blockquote){font-family:var(--chat-font);font-size:var(--chat-body-size);line-height:var(--chat-body-line);}
#app#app#app#app#app .ai-chat .chat-markdown p{margin:0 0 var(--s-4);}
#app#app#app#app#app .ai-chat .chat-markdown>:last-child{margin-bottom:0;}
#app#app#app#app#app .ai-chat .chat-markdown h3{font:600 var(--chat-heading-size)/1.5 var(--chat-font);letter-spacing:normal;margin:var(--s-4) 0 var(--s-2);color:var(--text);}
#app#app#app#app#app .ai-chat .chat-markdown h3:first-child{margin-top:0;}
#app#app#app#app#app .ai-chat .chat-markdown ul{padding-left:var(--s-5);margin:var(--s-2) 0;}
#app#app#app#app#app .ai-chat .chat-markdown li+li{margin-top:var(--s-1);}
#app#app#app#app#app .ai-chat .chat-markdown strong{font-weight:600;}
#app#app#app#app#app .ai-chat .chat-markdown :is(pre,code){font-family:var(--font-mono);font-size:var(--chat-code-size);line-height:var(--chat-body-line);}
#app#app#app#app#app .ai-chat .chat-markdown pre{border-color:var(--border);border-radius:var(--r-md);box-shadow:none;}
#app#app#app#app#app .ai-chat .chat-table table{font-size:var(--chat-tool-size);line-height:var(--chat-body-line);}
#app#app#app#app#app .ai-chat .chat-message-label{font:500 var(--chat-label-size)/1.5 var(--chat-font);color:var(--text-2);margin-bottom:var(--s-2);}
#app#app#app#app#app .ai-chat .chat-message-label span{font:400 var(--chat-label-size)/1.5 var(--chat-font);color:var(--text-2);}
#app#app#app#app#app .ai-chat .chat-message--user{width:fit-content;max-width:92%;margin:var(--s-3) 0 var(--s-5) auto;padding:var(--s-3) var(--s-4);border-radius:var(--chat-radius);}
#app#app#app#app#app .ai-chat .chat-message--assistant{margin-bottom:var(--s-3);}
#app#app#app#app#app .ai-chat .chat-message-tools{gap:var(--s-2);margin-top:var(--s-2);}
#app#app#app#app#app .ai-chat .chat-message-tools button{background:transparent;color:var(--text-2);border:1px solid transparent;box-shadow:none;border-radius:var(--r-sm);font-size:var(--fs-xs);}
#app#app#app#app#app .ai-chat .chat-message-tools button:hover{background:var(--surface-hover);color:var(--text);}
#app#app#app#app#app .ai-chat .chat-composer{margin:var(--s-2) max(var(--s-5),calc((100% - var(--chat-composer-width))/2)) var(--s-3);padding:var(--s-2);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--chat-radius);box-shadow:var(--shadow-1);}
#app#app#app#app#app .ai-chat .chat-composer:focus-within{border-color:var(--text-2);box-shadow:0 0 0 1px var(--text-2);}
#app#app#app#app#app .ai-chat #chat-input{font:400 var(--chat-body-size)/var(--chat-body-line) var(--chat-font);letter-spacing:normal;color:var(--text);background:transparent;border:0;outline:0;box-shadow:none;padding:var(--s-2);height:calc(4.8em + 2 * var(--s-2));min-height:calc(4.8em + 2 * var(--s-2));}
#app#app#app#app#app .ai-chat #chat-input::placeholder{color:var(--chat-placeholder, var(--text-3));opacity:1;}
#app#app#app#app#app .ai-chat .chat-composer-tools{gap:var(--s-2);padding-top:var(--s-1);align-items:center;}
#app#app#app#app#app .ai-chat .chat-composer-tools>div{gap:var(--s-2);}
#app#app#app#app#app .ai-chat .chat-composer-tools :is(button,select){font-family:var(--chat-font);font-size:var(--chat-tool-size);font-weight:400;min-height:var(--control-h-sm);border-radius:var(--r-md);box-shadow:none;color:var(--text-2);background:transparent;border:1px solid transparent;}
#app#app#app#app#app .ai-chat .chat-composer-tools :is(button,select):hover{background:var(--surface-hover);color:var(--text);}
#app#app#app#app#app .ai-chat .chat-composer-tools label{color:var(--text-2);font-family:var(--chat-font);font-size:var(--fs-xs);gap:var(--s-1);}
#app#app#app#app#app .ai-chat .chat-composer-tools .chat-send{min-height:var(--control-h-sm);background:var(--text);border-color:var(--text);color:var(--surface);padding-inline:var(--s-4);font-weight:600;}
#app#app#app#app#app .ai-chat .chat-composer-tools .chat-send:hover{background:var(--text-2);border-color:var(--text-2);color:var(--surface);}
#app#app#app#app#app .ai-chat .chat-composer-tools :is(button,select):focus-visible{outline:2px solid var(--text-2);outline-offset:2px;}
#app#app#app#app#app .ai-chat .chat-composer-tools :is(button,select):disabled{opacity:.5;cursor:not-allowed;transform:none;}
#app#app#app#app#app .ai-chat .chat-sidebar{font-family:var(--chat-font);}
@media(max-width:1100px){#app#app#app#app#app .ai-chat .chat-messages{padding-inline:var(--s-4);}#app#app#app#app#app .ai-chat .chat-composer{margin-inline:var(--s-4);}#app#app#app#app#app .ai-chat .chat-composer-tools label{font-size:var(--fs-xs);}}
@media(max-width:760px){#app#app#app#app#app .ai-chat .chat-messages{padding:var(--s-3);}#app#app#app#app#app .ai-chat .chat-message--user{max-width:100%;}#app#app#app#app#app .ai-chat .chat-composer{margin:var(--s-2);padding:var(--s-2);}#app#app#app#app#app .ai-chat .chat-composer-tools{align-items:flex-end;}#app#app#app#app#app .ai-chat .chat-composer-tools>div{gap:var(--s-1);}#app#app#app#app#app .ai-chat .chat-composer-tools .chat-model-label{flex-basis:100%;order:2;}#app#app#app#app#app .ai-chat .chat-composer-tools label:not(.chat-model-label){order:1;}}

/* 20261018 user-supplied Codex reference: screenshot-local tokens, original hooks retained. */
#app .ai-chat{--chat-text-reference:#1a1c1e;--chat-placeholder:#cdcece;--chat-composer-fill:#fff;--chat-composer-stroke:#eee;--chat-composer-action:#3a83f7;--chat-composer-radius:var(--s-5);--chat-tool-height:calc(var(--s-5) + var(--s-1));--chat-reference-shadow:0 1px 3px rgb(0 0 0 / 3%),0 8px 32px rgb(0 0 0 / 3%);}
:root[data-theme="dark"] #app .ai-chat{--chat-text-reference:var(--text);--chat-placeholder:var(--text-3);--chat-composer-fill:var(--surface);--chat-composer-stroke:var(--border);--chat-composer-action:var(--accent-text);--chat-reference-shadow:var(--shadow-1);}
#app#app#app#app#app .ai-chat .chat-markdown{color:var(--chat-text-reference);}
#app#app#app#app#app .ai-chat .chat-composer{padding:var(--s-2);background:var(--chat-composer-fill);border-color:var(--chat-composer-stroke);border-radius:var(--chat-composer-radius);box-shadow:var(--chat-reference-shadow);margin-bottom:var(--s-3);}
#app#app#app#app#app .ai-chat .chat-composer:focus-within{border-color:var(--border-strong);box-shadow:var(--chat-reference-shadow);}
#app#app#app#app#app .ai-chat .chat-composer:has(#chat-input:focus-visible){outline:2px solid var(--border-strong);outline-offset:2px;}
#app#app#app#app#app .ai-chat #chat-input{display:block;padding:0;resize:vertical;height:3lh;min-height:3lh;border-radius:0;color:var(--chat-text-reference);}
#app#app#app#app#app .ai-chat .chat-composer-tools{padding-top:var(--s-1);align-items:center;gap:var(--s-2);}
#app#app#app#app#app .ai-chat .chat-composer-tools>div{flex:1;gap:var(--s-1);flex-wrap:nowrap;}
#app#app#app#app#app .ai-chat .chat-composer-tools :is(button,select){min-height:var(--chat-tool-height);height:var(--chat-tool-height);padding:var(--s-1);border-radius:var(--r-sm);color:var(--chat-text-reference);}
#app#app#app#app#app .ai-chat .chat-composer-tools>div>button{display:inline-flex;align-items:center;justify-content:center;width:var(--chat-tool-height);flex:none;font-size:var(--fs-xl);padding:var(--s-1);}
#app#app#app#app#app .ai-chat .chat-composer-icon{width:var(--s-4);height:var(--s-4);display:block;pointer-events:none;flex:none;}
#app#app#app#app#app .ai-chat .chat-composer-tools .chat-model-label{margin-left:auto;flex-basis:auto;min-width:0;order:0;}
#app#app#app#app#app .ai-chat .chat-composer-tools label{font-size:var(--chat-tool-size);order:0;min-width:0;}
#app#app#app#app#app .ai-chat .chat-composer-tools #chat-model{max-width:13rem;text-overflow:ellipsis;}
#app#app#app#app#app .ai-chat .chat-composer-tools .chat-send{display:inline-flex;align-items:center;justify-content:center;flex:none;width:var(--chat-tool-height);height:var(--chat-tool-height);min-height:var(--chat-tool-height);padding:var(--s-1);border-radius:50%;color:var(--on-accent);background:var(--chat-composer-action);border-color:transparent;}
#app#app#app#app#app .ai-chat .chat-composer-tools .chat-send:hover{background:var(--accent);color:var(--on-accent);border-color:transparent;}
#app#app#app#app#app .ai-chat .chat-composer-hint:empty{display:none;}
@media(max-width:1100px){#app#app#app#app#app .ai-chat .chat-composer-tools #chat-model{max-width:11rem;}}
@media(max-width:760px){#app#app#app#app#app .ai-chat .chat-composer{padding:var(--s-3);}#app#app#app#app#app .ai-chat .chat-composer-tools>div{flex-wrap:wrap;}#app#app#app#app#app .ai-chat .chat-composer-tools .chat-model-label{margin-left:0;}#app#app#app#app#app .ai-chat .chat-composer-tools #chat-model{max-width:9rem;}#app#app#app#app#app .ai-chat .chat-composer-tools{align-items:flex-end;}#app#app#app#app#app .ai-chat .chat-composer-tools :is(button,select){min-height:var(--control-h);height:var(--control-h);}#app#app#app#app#app .ai-chat .chat-composer-tools>div>button{width:var(--control-h);}#app#app#app#app#app .ai-chat .chat-composer-tools .chat-send{width:var(--control-h);height:var(--control-h);min-height:var(--control-h);}}

/* User message, assistant prose and typed draft share one typography contract. */
#app#app#app#app#app .ai-chat :is(.chat-user-text,.chat-message--assistant .chat-markdown,#chat-input){font-family:var(--chat-font);font-size:var(--chat-body-size);font-weight:400;line-height:var(--chat-body-line);letter-spacing:normal;color:var(--chat-text-reference);-webkit-font-smoothing:auto;text-rendering:auto;}

/* Only the AI assistant opts into zoom/pan and full-width screenshot reading. */
#cat-lightbox#cat-lightbox#cat-lightbox#cat-lightbox#cat-lightbox.lb-chat-reader .lb-frame{position:relative;width:100%;height:100%;min-width:0;min-height:0;resize:none;overflow:hidden;}
#cat-lightbox#cat-lightbox#cat-lightbox#cat-lightbox#cat-lightbox.lb-chat-reader .lb-track{display:block;position:relative;transform:none;transition:none;width:100%;height:100%;}
#cat-lightbox#cat-lightbox#cat-lightbox#cat-lightbox#cat-lightbox.lb-chat-reader .lb-slide{display:none;position:absolute;inset:0;width:100%;height:100%;overflow:hidden;}
#cat-lightbox#cat-lightbox#cat-lightbox#cat-lightbox#cat-lightbox.lb-chat-reader .lb-slide:has(.lb-img){display:block;}
#cat-lightbox#cat-lightbox#cat-lightbox#cat-lightbox#cat-lightbox.lb-chat-reader .lb-img{position:absolute;inset:auto;left:0;top:0;max-width:none;max-height:none;object-fit:fill;transform-origin:0 0;transition:none;animation:none;cursor:grab;touch-action:none;user-select:none;-webkit-user-drag:none;}
#cat-lightbox#cat-lightbox#cat-lightbox#cat-lightbox#cat-lightbox.lb-chat-reader.lb-image-dragging .lb-img{cursor:grabbing;}
#cat-lightbox#cat-lightbox#cat-lightbox#cat-lightbox#cat-lightbox.lb-chat-reader.chat-image-fullscreen{grid-template-rows:auto minmax(0,1fr);gap:var(--s-2);padding:var(--s-2);}
#cat-lightbox#cat-lightbox#cat-lightbox#cat-lightbox#cat-lightbox.lb-chat-reader.chat-image-fullscreen>.lb-top{position:relative;grid-row:1;top:auto;right:auto;max-width:100%;width:100%;}
#cat-lightbox#cat-lightbox#cat-lightbox#cat-lightbox#cat-lightbox.lb-chat-reader.chat-image-fullscreen>.lb-stage{grid-row:2;min-height:0;padding:0;}
#cat-lightbox#cat-lightbox#cat-lightbox#cat-lightbox#cat-lightbox.lb-chat-reader.chat-image-fullscreen>.lb-nav{grid-area:2 / 1;}

/* Personal conversation folders and recents share the workbench design tokens. */
.ai-chat .chat-sidebar{min-height:0;}
.ai-chat .chat-sidebar-head>button{display:flex;align-items:center;gap:var(--s-2);text-align:left;}
.ai-chat .chat-sidebar svg{width:1rem;height:1rem;flex-shrink:0;}
.ai-chat .chat-history{gap:var(--s-5);padding:var(--s-2) var(--s-3);}
.ai-chat .chat-sidebar-section{min-width:0;}
.ai-chat .chat-section-head{display:flex;align-items:center;justify-content:space-between;min-height:var(--control-h-sm);gap:var(--s-2);padding-inline:var(--s-2);margin-bottom:var(--s-1);}
.ai-chat .chat-section-head h2{margin:0;font-size:var(--fs-xs);font-weight:500;color:var(--text-3);}
.ai-chat .chat-project-row,.ai-chat .chat-history-row{position:relative;display:flex;align-items:center;min-width:0;border-radius:var(--r-sm);}
.ai-chat .chat-project-chats{margin-left:var(--s-3);padding-left:var(--s-2);border-left:1px solid var(--divider);}
.ai-chat .chat-project-chats[hidden]{display:none;}
.ai-chat .chat-project-name{min-width:0;overflow:hidden;text-overflow:ellipsis;}
.ai-chat .chat-sidebar-empty{margin:var(--s-2);font-size:var(--fs-xs);line-height:1.6;color:var(--text-3);}
.ai-chat .chat-project-arrow{display:flex;transition:transform var(--duration-fast,160ms) var(--ease-standard,ease);}
.ai-chat .chat-project-toggle[aria-expanded=true] .chat-project-arrow{transform:rotate(90deg);}
#app#app#app#app#app#app#app#app .ai-chat .chat-history .chat-history-title{flex:1;min-width:0;width:auto;padding-right:calc(var(--control-h-sm) + var(--s-2));}
#app#app#app#app#app#app#app#app .ai-chat .chat-history :is(.chat-project-toggle,.chat-project-empty){display:flex;align-items:center;gap:var(--s-2);flex:1;min-width:0;width:auto;padding:var(--s-2);font-size:var(--fs-sm);}
#app#app#app#app#app#app#app#app .ai-chat .chat-history :is(.chat-row-menu,.chat-section-head>button){display:inline-flex;align-items:center;justify-content:center;width:var(--control-h-sm);min-width:var(--control-h-sm);min-height:var(--control-h-sm);height:var(--control-h-sm);padding:var(--s-1);flex-shrink:0;font-size:var(--fs-md);}
#app#app#app#app#app#app#app#app .ai-chat .chat-history .chat-history-row>.chat-row-menu{position:absolute;z-index:2;right:var(--s-1);opacity:0;pointer-events:none;}
#app#app#app#app#app#app#app#app .ai-chat .chat-history .chat-history-row:is(:hover,:focus-within,:has(.selected))>.chat-row-menu{opacity:1;pointer-events:auto;background:var(--surface-2);}
#app#app#app#app#app#app#app#app .ai-chat .chat-history button:focus-visible{outline:2px solid var(--accent-ring);outline-offset:-2px;}
#app#app#app#app#app#app#app#app .ai-chat .chat-history button:disabled{opacity:.5;cursor:wait;}
@media(hover:none){#app#app#app#app#app#app#app#app .ai-chat .chat-history .chat-history-row>.chat-row-menu{opacity:1;pointer-events:auto;}}
@media(max-width:760px){
 .ai-chat .chat-sidebar{grid-template-columns:minmax(0,1fr);}
 .ai-chat .chat-sidebar-head{grid-row:1;grid-column:1;}
 .ai-chat .chat-sidebar-foot{grid-row:2;grid-column:1;flex-wrap:wrap;padding-inline:var(--s-2);}
 .ai-chat .chat-history{grid-row:3;grid-column:1;}
 .ai-chat .chat-history{display:flex;flex-direction:column;gap:var(--s-3);max-height:30dvh;min-height:6rem;padding:var(--s-2) var(--s-3);}
 .ai-chat .chat-sidebar-section{flex-shrink:0;}
 .ai-chat .chat-history-row{width:100%;}
 #app#app#app#app#app#app#app#app .ai-chat .chat-history .chat-history-title{max-width:none;}
 .ai-chat .chat-sidebar-head{padding-right:var(--s-1);}
 .ai-chat .chat-sidebar-head>button{gap:var(--s-1);padding-inline:var(--s-2);}
 .ai-chat .chat-sidebar-foot{gap:var(--s-1);padding-left:0;}
 .ai-chat .chat-sidebar-foot>button{padding-inline:var(--s-2);}
}
@media(prefers-reduced-motion:reduce){.ai-chat .chat-project-arrow{transition:none;}}
