/* Keep the chat column flexible inside both the desktop shell and mobile tabs. */
main[data-page=ai] .ai-page{width:100%;min-width:0;max-width:820px;gap:16px}
main[data-page=ai] .page-heading,main[data-page=memory] .page-heading{flex-wrap:wrap}
main[data-page=ai] .page-heading>div,main[data-page=memory] .page-heading>div{min-width:0}
main[data-page=ai] .page-actions,main[data-page=memory] .page-actions{max-width:100%;flex-wrap:wrap}
main[data-page=ai] .page-actions .button,main[data-page=memory] .page-actions .button{white-space:normal;overflow-wrap:anywhere}
main[data-page=ai] .ai-context{min-width:0;max-width:100%;margin:0;gap:10px}
main[data-page=ai] .ai-context>svg{flex:none}
main[data-page=ai] .ai-context select{width:100%;min-width:0;max-width:360px;min-height:44px;text-overflow:ellipsis}
main[data-page=ai] .ai-welcome{display:grid;grid-template-columns:minmax(0,1fr) 88px;align-items:center;gap:24px;padding:24px;min-height:164px}
main[data-page=ai] .ai-welcome>div{max-width:none;min-width:0}
main[data-page=ai] .ai-welcome>span{position:static;width:88px;height:88px}
main[data-page=ai] .ai-welcome h2{font-size:clamp(22px,2.6vw,28px);line-height:1.2;overflow-wrap:anywhere}
main[data-page=ai] .ai-welcome p{line-height:1.6;margin-top:10px;overflow-wrap:anywhere}
main[data-page=ai] .ai-suggestions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
main[data-page=ai] .ai-suggestion{min-width:0;display:grid;grid-template-columns:36px minmax(0,1fr) 14px;align-items:center;gap:12px;min-height:88px;padding:16px}
main[data-page=ai] .ai-suggestion>strong{min-width:0;margin:0;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
main[data-page=ai] .ai-suggestion>svg{align-self:center;margin:0;width:14px;height:14px}
/* Welcome content follows normal document scrolling; the composer cannot cover
   the last prompt in a second, independently scrolling welcome container. */
main[data-page=ai] .chat-messages:has(#chat-welcome){max-height:none;overflow:visible;min-height:0;padding:0}
main[data-page=ai] .ai-page:has(#chat-welcome) .ai-composer{position:relative;bottom:auto}
main[data-page=ai] .chat-messages{min-width:0;scroll-padding-block:16px}
main[data-page=ai] .chat-message,main[data-page=ai] .chat-card,main[data-page=ai] .ai-question{min-width:0;max-width:100%;overflow-wrap:anywhere}
main[data-page=ai] .chat-user{max-width:90%}
main[data-page=ai] .chat-text{min-width:0;overflow-wrap:anywhere}
main[data-page=ai] .chat-text pre{max-width:100%;overflow:auto;white-space:pre-wrap}
main[data-page=ai] .chat-text table{display:block;max-width:100%;overflow:auto}
main[data-page=ai] .chat-text img{max-width:100%;height:auto}
main[data-page=ai] .ai-card-header{align-items:flex-start;min-width:0}
main[data-page=ai] .ai-card-header>div{min-width:0;overflow-wrap:anywhere}
main[data-page=ai] .ai-card-header>.settings-icon{flex:none}
main[data-page=ai] .settings-stack .button{max-width:100%;white-space:normal;overflow-wrap:anywhere}
main[data-page=ai] .settings-stack :is(h2,h3,p){overflow-wrap:anywhere}
main[data-page=ai] .ai-card-fields>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:12px}
main[data-page=ai] .ai-card-fields :is(dt,dd){min-width:0;margin:0;overflow-wrap:anywhere}
main[data-page=ai] .ai-card-fields dd{text-align:end}
main[data-page=ai] :is(.chat-card-actions,.follow-up-chips){display:flex;flex-wrap:wrap;gap:8px;min-width:0;max-width:100%}
main[data-page=ai] :is(.chat-card-actions,.follow-up-chips)>.button{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:start}
main[data-page=ai] .ai-question{width:100%}
main[data-page=ai] .ai-confirm-notice>svg{flex:none}
main[data-page=ai] .ai-confirm-notice>p{min-width:0;overflow-wrap:anywhere}
main[data-page=ai] .ai-composer{min-width:0;width:100%;z-index:2;grid-template-columns:44px minmax(0,1fr) 44px;gap:6px;margin-top:0;scroll-margin-block:16px}
main[data-page=ai] .ai-composer textarea{min-width:0;min-height:52px;max-height:160px;font-size:16px;line-height:1.5;overflow:auto}
main[data-page=ai] .ai-composer .attachment-tool{width:44px;min-width:44px}
main[data-page=ai] .ai-composer :is(button[type=submit],#chat-stop){width:44px;height:44px;min-height:44px}
main[data-page=ai] .attachment-chips{min-width:0;max-width:100%;max-height:136px;overflow:auto;padding:4px}
main[data-page=ai] .attachment-chip{min-width:0;max-width:100%}
main[data-page=ai] .attachment-chip :is(img,svg,button){flex:none}
main[data-page=ai] .attachment-chip span{min-width:0}
main[data-page=memory] .memory-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-block:16px;border-bottom:1px solid var(--line)}
main[data-page=memory] .memory-row:first-child{padding-top:0}
main[data-page=memory] .memory-row:last-child{border-bottom:0;padding-bottom:0}
main[data-page=memory] .memory-row>div:first-child{min-width:0;flex:1;overflow-wrap:anywhere}
main[data-page=memory] .memory-row>.row{flex-wrap:wrap;flex:none;gap:8px}
dialog.ai-dialog{max-width:calc(100vw - 24px)}
dialog.ai-dialog :is(.modal-heading h2,.modal-body,.field){min-width:0;overflow-wrap:anywhere}
dialog.ai-dialog :is(input,textarea,select){min-width:0;max-width:100%}
dialog.ai-dialog .ai-history-row{display:flex;flex-direction:row;align-items:center;min-width:0;gap:12px}
dialog.ai-dialog .history-open{min-width:0;flex:1;text-align:start;white-space:normal;overflow-wrap:anywhere;background:transparent;border:0;color:inherit;padding:0}
dialog.ai-dialog .history-open :is(strong,small){display:block}
dialog.ai-dialog .history-open small{margin-top:6px}
dialog.ai-dialog .ai-history-row>.icon-button{flex:none}
@media(max-width:760px){
  main[data-page=ai] .ai-page{gap:14px}
  main[data-page=ai] .ai-welcome{grid-template-columns:minmax(0,1fr) 52px;gap:14px;padding:20px;min-height:148px}
  main[data-page=ai] .ai-welcome>span{width:52px;height:52px}
  main[data-page=ai] .ai-welcome>span svg{width:28px;height:28px}
  main[data-page=ai] .ai-suggestions{grid-template-columns:minmax(0,1fr);gap:8px}
  main[data-page=ai] .ai-suggestion{min-height:68px;padding:12px 14px;gap:12px}
  main[data-page=ai] .ai-composer{bottom:calc(76px + env(safe-area-inset-bottom));border-radius:24px}
  main[data-page=ai] .ai-context select{font-size:16px!important;max-width:100%}
  main[data-page=memory] .memory-row{flex-direction:column;gap:12px}
  main[data-page=memory] .memory-row>.row{width:100%}
}
@media(max-width:360px){
  main[data-page=ai] .ai-welcome{grid-template-columns:minmax(0,1fr);min-height:0;padding:18px}
  main[data-page=ai] .ai-welcome>span{display:none}
  main[data-page=ai] .ai-card-fields>div{grid-template-columns:minmax(0,1fr);gap:3px}
  main[data-page=ai] .ai-card-fields dd{text-align:start}
}
/* On short viewports, including a raised virtual keyboard, keep all controls in
   the document flow so a sticky composer cannot obscure the entire transcript. */
@media(max-height:540px){
  main[data-page=ai] .ai-composer{position:relative;bottom:auto}
  main[data-page=ai] .chat-messages:not(:has(#chat-welcome)){min-height:120px;max-height:45dvh;overflow-y:auto}
}

/* Keep conversation navigation inside the transcript, clear of the composer. */
main[data-page=ai] .ai-transcript{position:relative;min-width:0}
main[data-page=ai] .chat-messages:not(:has(#chat-welcome)){padding-bottom:64px;overflow-anchor:none}
main[data-page=ai] .ai-jump-latest{position:absolute;inset-inline:12px;bottom:var(--ai-jump-bottom,12px);display:flex;justify-content:center;pointer-events:none}
main[data-page=ai] .ai-jump-latest[hidden]{display:none}
main[data-page=ai] .ai-jump-latest button{pointer-events:auto;min-height:44px;max-width:100%;white-space:normal;overflow-wrap:anywhere;box-shadow:0 4px 16px rgb(0 0 0 / .12)}
