:root{font-family:system-ui,sans-serif;color:#e8e5df;background:#141615;font-synthesis:none;color-scheme:dark}*{box-sizing:border-box}body{margin:0}header{height:64px;border-bottom:1px solid #3b403a;display:flex;align-items:center;justify-content:space-between;padding:0 24px}.brand{color:#ff792f;font:700 19px monospace;letter-spacing:2px;text-decoration:none}.brand span{color:#999f95;font-size:12px;letter-spacing:0}.indicator,.status,.item-kind{font:11px monospace;letter-spacing:1px;color:#91b88b}h1{font-size:32px;letter-spacing:-1px;font-weight:600}h2{font-size:14px;font-weight:600}p{line-height:1.6}button,input,textarea{font:inherit;border:1px solid #4c5248;border-radius:0}button{background:#242823;color:#e8e5df;padding:10px 14px;cursor:pointer;min-height:42px}button:hover:not(:disabled){border-color:#ff792f}button:disabled{opacity:.45;cursor:default}button.primary{background:#ff792f;color:#171510;border-color:#ff792f;font-weight:600}input,textarea{width:100%;background:#101210;color:#f0eee8;padding:12px}textarea{min-height:90px;resize:vertical}label{display:grid;gap:8px;margin:18px 0;font-size:13px}label .muted{white-space:pre-wrap}fieldset{border:1px solid #3b403a;margin:16px 0}.layout{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:calc(100dvh - 64px)}aside{border-right:1px solid #3b403a;padding:20px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.session{width:100%;text-align:left;margin-top:12px;display:grid;gap:8px}.session span{font:12px monospace;color:#9aaa91}.chosen{border-left:3px solid #ff792f}main{min-width:0;padding:24px;max-width:1100px;width:100%}.login{max-width:500px;margin:8vh auto}.login h1,.empty h1{font-size:44px}.muted{color:#a3aa9e;font-size:13px}.error{border-left:3px solid #f2594e;background:#321d1b;padding:12px;overflow-wrap:anywhere}.error button{margin-left:12px}.session-heading{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.session-heading h1{margin-right:auto}.conversation{margin:24px 0}article{padding:18px;border-top:1px solid #343a32}article.user{border-left:2px solid #ff792f;background:#1b201b}.item-kind{margin-bottom:12px}pre{font:13px/1.65 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0}code{font-size:13px;color:#ffb079}details{padding:10px 0}summary{cursor:pointer;color:#a3aa9e}.approval{border:1px solid #ff792f;padding:20px;margin:20px 0}.approval button,.setup>button{margin-right:8px;margin-top:8px}.composer{position:sticky;bottom:0;background:#141615;padding:14px 0}.composer>div{display:flex;gap:8px;margin-top:8px}.diagnostics{margin-top:20px}.back{display:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.empty{padding-top:15vh}.setup{max-width:680px}@media(max-width:700px){header{padding:0 16px}.brand span{display:none}.layout{display:block}.layout.detail aside{display:none}.layout:not(.detail) aside{border-right:0;border-bottom:1px solid #3b403a}.layout:not(.detail) main:has(.empty){display:none}main{padding:16px}.back{display:block}.session-heading{gap:10px}.session-heading h1{width:100%;font-size:26px}.login h1,.empty h1{font-size:36px}.composer{padding-bottom:max(14px,env(safe-area-inset-bottom))}}
:root .runtime-panel,.environment-card{border:1px solid #3b403a;padding:18px;margin:20px 0}.environment-nav{width:100%;margin-bottom:20px}.resource-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.checkbox{display:flex;align-items:center}.checkbox input{width:20px;height:20px}.environment-actions{display:flex;gap:8px;flex-wrap:wrap}.runtime-panel a{color:#ff9b61}

/* The application frame stays inside the viewport; each panel owns its scroll. */
html,body,#app{height:100%;overflow:hidden}
#app{height:100dvh;display:flex;flex-direction:column}
header{flex:0 0 64px;background:#141615;z-index:1}
.layout{flex:1;min-height:0;overflow:hidden}
aside{min-height:0;overflow-y:auto;overscroll-behavior:contain}
.layout>main{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.login{overflow-y:auto;min-height:0}
.layout>main.chat-main{display:flex;flex-direction:column;overflow:hidden;padding-bottom:0}
.session-heading{flex:none;border-bottom:1px solid #3b403a;padding-bottom:12px}
.session-heading h1{font-size:24px;margin:0 auto 0 0;overflow-wrap:anywhere}
.transcript{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:12px 12px 16px 0}
.transcript:focus-visible{outline:1px solid #ff792f;outline-offset:-1px}
.conversation{margin:16px 0}
.composer{position:static;flex:none;border-top:1px solid #3b403a;padding:12px 0 max(12px,env(safe-area-inset-bottom))}
.composer textarea{display:block;height:80px;min-height:52px;max-height:25dvh}
.activity{display:flex;align-items:center;gap:10px;padding:20px 18px;color:#91b88b;font:13px monospace}
.activity.waiting{color:#ff9b61}
.app-notice{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px;border-bottom:1px solid #ff792f;background:#292017;color:#ffbf93;font-size:13px;overflow-wrap:anywhere}
.app-notice button{flex:none}
.app-notice[aria-label="Codex takeover"]{display:block;max-height:40dvh;overflow:auto}
.app-notice[aria-label="Codex takeover"] p{margin:0 0 .6rem}
.app-notice[aria-label="Codex takeover"] details{margin-bottom:.6rem}
.global-error{flex:0 1 auto;min-height:0;max-height:40dvh;overflow-y:auto}
.activity-marker{width:8px;height:8px;background:currentColor;animation:working-pulse 1.4s ease-in-out infinite}
@keyframes working-pulse{50%{opacity:.25}}
@media(prefers-reduced-motion:reduce){.activity-marker{animation:none}}
@media(max-width:700px){
  .layout>aside{height:100%}
  .session-heading h1{width:auto;font-size:20px}
  .session-heading{gap:8px}
  .transcript{padding-right:0}
  .composer textarea{height:64px}
}

select{font:inherit;border:1px solid #4c5248;border-radius:0;padding:10px;background:#101210;color:#f0eee8;width:100%}.host-picker{overflow-wrap:anywhere}.session small{overflow-wrap:anywhere}
.connection{padding:16px 0;display:grid;gap:8px}
.connection-open{display:grid;text-align:left;gap:8px;width:100%;overflow-wrap:anywhere}
.connection-open small{color:#a3aa9e}
.connection>div{display:flex;gap:8px}
header{gap:12px}

/* Project overview and stable agent identities. */
.layout{grid-template-columns:340px minmax(0,1fr)}
.server-heading{padding:0 0 16px;border-bottom:1px solid #3b403a;margin-bottom:16px;overflow-wrap:anywhere}
.eyebrow{font:10px ui-monospace,monospace;letter-spacing:1.2px;color:#a3aa9e}
.server-heading h2{font-size:18px;margin:8px 0}.server-heading p{font:12px ui-monospace,monospace;color:#a3aa9e;margin:8px 0 0}
.session-tree ul{list-style:none;padding:0;margin:0}.session-tree .tree-folder>ul{border-left:1px solid #3b403a;margin-left:5px;padding-left:12px}
.tree-environment{margin:20px 0}.tree-environment h3{font:11px ui-monospace,monospace;color:#a3aa9e;overflow-wrap:anywhere}
.folder-name{padding:12px 0 6px;font:12px/1.5 ui-monospace,monospace;color:#e8e5df;overflow-wrap:anywhere}
.tree-agent .session{margin:6px 0 12px;gap:6px;padding:12px;min-width:0;background:#1b1e1a}
.agent-identity{display:flex;align-items:center;gap:8px;font-size:14px;overflow-wrap:anywhere}
.agent-icon{font-size:21px;letter-spacing:0;margin-right:8px;flex:none}.agent-identity .agent-icon{margin:0}
.session .session-title{font:12px/1.4 system-ui,sans-serif;color:#c1c7bb;overflow-wrap:anywhere}
.session .agent-status{font:11px ui-monospace,monospace}.session .location-source{color:#8f978a;font:10px ui-monospace,monospace}
.agent-status::before,.session-heading .status::before{content:'■';font-size:8px;margin-right:6px}
.agent-status.working,.status.working{color:#91b88b}.agent-status.waiting,.status.waiting{color:#ff9b61}
.agent-status.failed,.status.failed{color:#f2594e}.agent-status.disconnected,.status.disconnected{color:#a3aa9e}
.agent-status.idle,.status.idle{color:#c1c7bb}
.session-heading-text{flex:1;min-width:0}.session-heading-text h1{display:flex;align-items:center}
.session-heading-text p{margin:5px 0 0;font-size:13px;color:#a3aa9e;overflow-wrap:anywhere}
.thread-reference{display:block;font:11px/1.5 ui-monospace,monospace;color:#a3aa9e;margin-top:5px;overflow-wrap:anywhere;user-select:all}
.session-controls{border:1px solid #4c5248;padding:16px;margin:0 0 20px}
.session-controls h2{font-size:18px;margin-top:0}.session-controls h3{font-size:15px}

.session-controls button{margin:4px 8px 4px 0}.control-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.goal-actions{display:flex;flex-wrap:wrap}.accepted-model,.goal-status{font:12px/1.6 ui-monospace,monospace;color:#ffb079;overflow-wrap:anywhere}
.session-controls textarea{min-height:100px}.controls-toggle{font-size:12px}
@media(max-width:700px){.control-fields{grid-template-columns:1fr}.controls-toggle{margin-left:auto}.session-controls{padding:12px}}
@media(max-width:700px){
  .session-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px}
  .session-heading>.back{grid-column:1;grid-row:1;justify-self:start}
  .session-heading>.controls-toggle{grid-column:2;grid-row:1;margin:0}
  .session-heading-text{grid-column:1 / -1;grid-row:2}
  .session-heading>.status{grid-column:1;grid-row:3}
  .session-heading>button:not(.back):not(.controls-toggle){grid-column:2;grid-row:3}
}
.session-context{padding:8px 0 16px;border-bottom:1px solid #3b403a}
.context-project p{margin:8px 0;overflow-wrap:anywhere}.environment-label{font:11px ui-monospace,monospace;color:#a3aa9e;margin-right:10px}
.context-description{font-size:14px}.session-identifiers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.session-identifiers label{margin:0;gap:6px;font:11px ui-monospace,monospace;color:#a3aa9e}
input.session-uuid{font:11px ui-monospace,monospace;padding:10px 7px;letter-spacing:-.3px;color:#d8ddd1;cursor:text;min-width:0}
.connections-page .session-tree{display:none}
@media(max-width:1000px){.session-identifiers{grid-template-columns:1fr}}
@media(max-width:700px){.layout{display:block}.server-heading h2{font-size:20px}.tree-agent .session{padding:14px}.session-heading-text h1{font-size:20px}.session-identifiers{gap:10px}.empty{padding-top:24px}}

.message-queue{border:1px solid #4c5248;padding:12px;margin:16px 0}.queued-message{border-top:1px solid #343a32;padding:8px 0}.composer-shortcut{font-size:11px;color:#a3aa9e;margin:6px 0 0;line-height:1.3}

/* Settings are independent of conversation length and scroll position. */
.session-modal{padding:0;border:1px solid #4c5248;background:#141615;color:#e8e5df;width:min(760px,calc(100vw - 32px));max-width:calc(100vw - 32px);height:min(820px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);overflow:hidden}
.session-modal[open]{display:flex;flex-direction:column}
.session-modal::backdrop{background:rgb(0 0 0 / .7)}
.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:none;padding:12px 16px;border-bottom:1px solid #4c5248}
.modal-heading h2{font-size:18px;margin:0}.modal-heading button{flex:none}
.modal-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px;scrollbar-gutter:stable;overflow-wrap:anywhere}
.modal-body .session-controls{border:0;padding:0}.modal-body .session-controls>h2{display:none}
.session-inbox{flex:0 1 auto;min-height:0;max-height:28dvh;overflow-y:auto;overscroll-behavior:contain;border-top:1px solid #4c5248}
.session-inbox:empty{display:none}.session-inbox .approval,.session-inbox .message-queue{margin:8px 0;padding:12px}
.session-inbox .approval h2{margin-top:0}.session-inbox textarea{min-height:64px}
.session-inbox .approval{border-color:#805033;border-left:3px solid #ff792f;background:#1c1e1a;padding:12px;overflow-wrap:anywhere}
.approval-heading{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:6px 16px;margin-bottom:10px}
.approval-heading h2{margin:0;font-size:15px}.approval-status{font:12px/1.5 ui-monospace,monospace;color:#ffb079}
.approval-reason{margin:8px 0;font-size:14px;white-space:pre-wrap}
.approval-command{background:#101210;border:1px solid #3b403a;padding:10px;max-height:160px;overflow:auto;tab-size:4}
.approval-context{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;margin:10px 0;font-size:12px}
.approval-context:empty{display:none}.approval-context dt{color:#a3aa9e}.approval-context dd{margin:0;min-width:0}.approval-context code{white-space:pre-wrap}
.approval-permissions h3{font-size:13px;margin:10px 0 4px}.approval-permissions pre{max-height:160px;overflow:auto}
.approval-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.approval .approval-actions button{margin:0;min-height:44px;flex:1 0 auto;font-size:13px;padding:8px 12px}
.approval-actions .approval-cancel{color:#f69a91}.approval button:focus-visible,.approval summary:focus-visible{outline:2px solid #ff792f;outline-offset:2px}
.approval-details{margin-top:10px;padding:8px 0 0;border-top:1px solid #3b403a;font-size:12px}.approval-details p{margin:8px 0}.approval-details pre{max-height:240px;overflow:auto}
.approval label{margin:12px 0}.approval form>button{min-height:44px}
@media(max-width:420px){.approval-context{grid-template-columns:minmax(0,1fr);gap:3px}.approval-context dd{margin-bottom:5px}}
.session-heading-text h1,.session-heading-text p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.session-heading-text h1{display:block}.session-heading-text .agent-icon{display:inline}
@media(max-width:700px){.session-modal{width:calc(100vw - 16px);max-width:calc(100vw - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}.modal-body{padding:12px}.session-heading-text p{display:none}}
@media(max-height:600px){header{flex-basis:44px;height:44px}.session-heading{padding-bottom:6px}.session-heading-text h1{font-size:16px}.session-heading-text p,.thread-reference,.composer-shortcut{display:none}.composer{padding-top:6px;padding-bottom:6px}.composer textarea{height:52px}.session-inbox{max-height:22dvh}}

/* Target editing lives in the independently scrolling controls dialog. */
.target-picker, .target-registry { margin-block: 1rem; }
.target-picker fieldset { border: 0; padding: 0; min-width: 0; }
.target-directory { margin-block: .75rem; }
.target-directory input { width: 100%; min-width: 0; box-sizing: border-box; }
.target-registry code { overflow-wrap: anywhere; }
.transcript{overflow-anchor:none;scroll-behavior:auto}
.transcript-toolbar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0;color:#a3aa9e;font:11px ui-monospace,monospace}
.transcript-toolbar button{min-height:32px;padding:5px 8px;font-size:11px}

/* Usage stays outside the history and never changes the transcript's width. */
.weekly-usage{flex:none;margin:0;padding:6px 16px;border-bottom:1px solid #3b403a;font:12px ui-monospace,monospace;background:#1b1e1a}
.weekly-usage summary{color:#c1c7bb;min-height:22px;line-height:22px}.weekly-details{max-height:22dvh;overflow-y:auto;overscroll-behavior:contain;padding-bottom:8px}.weekly-details p{margin:8px 0}.weekly-window{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;margin:8px 0}.weekly-window small{color:#a3aa9e}
meter{width:80px;height:12px;accent-color:#91b88b}
.context-usage{display:inline-flex;align-items:center;flex-wrap:wrap;gap:5px 8px;font:11px ui-monospace,monospace;color:#c1c7bb}.context-usage meter{width:56px}.context-usage small{flex-basis:100%;color:#a3aa9e}.context-usage.unavailable{color:#8f978a}
.transcript-position{display:grid;gap:3px}.modal-body>.context-usage{margin-bottom:16px}.session .context-usage span{font-size:11px}
.composer>div{flex-wrap:wrap}.composer>div button{flex-shrink:0}
@media(max-width:700px){.composer>div{display:grid;grid-template-columns:1fr 1fr}.composer>div button{padding:8px;min-width:0}}

.background-terminal { border-top: 1px solid var(--border, #555); padding-block: .75rem; overflow-wrap: anywhere; }
.background-terminal pre { white-space: pre-wrap; overflow-wrap: anywhere; }
.transcript-toolbar { flex-wrap: wrap; }

/* Server connection belongs to the header; session creation belongs to the sidebar. */
.app-header{height:auto;min-height:64px;flex:0 0 auto;padding:10px 20px;gap:12px}
.current-server{display:grid;gap:3px;min-width:0;margin-right:auto}
.current-server strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:32vw}
.connection-actions{display:flex;gap:8px}
.new-session-nav{width:100%;margin-bottom:16px;text-align:left}
.new-session-form fieldset{border:0;padding:0;margin:0;min-width:0}
.new-session-form button[type="submit"]{margin-top:16px}
.new-session-form h3{font-size:14px;margin-top:24px}
.creation-target{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-bottom:1px solid #343a32}
.creation-target label{flex:1;margin:12px 0}
.target-directory button{margin-right:8px}
.create-vm,.resume-session{border-top:1px solid #3b403a;margin-top:20px;padding-top:16px}
.session-executors{color:#a3aa9e;overflow-wrap:anywhere}
.session-tree>ul{list-style:none;padding:0;margin:0}
@media(max-width:700px){
 .app-header{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 12px;padding:8px 16px}
 .current-server{margin:0}.current-server strong{max-width:100%}
 .connection-actions button{min-height:34px;padding:6px 9px;font-size:12px}
 .app-header .indicator{justify-self:end;font-size:10px}
}

/* Separate session behavior, execution, context and history without hiding decisions. */


.control-section .target-picker{margin-top:0}
.control-section .session-context{border-bottom:0}
.control-section .context-usage{margin-bottom:12px}
.session-archive button{margin-top:4px}
.device-settings{border-top:1px solid #3b403a;margin-top:24px;padding-top:16px}
button:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid #ff792f;outline-offset:3px}
input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #ff792f;outline-offset:1px}
.resource-fields{grid-template-columns:repeat(2,minmax(0,1fr))}

/* Small phones still need a readable transcript between fixed controls. */
@media(max-height:600px){
 .layout>main.chat-main{padding-top:8px}
 .thread-reference{display:block;font-size:9px;line-height:1.4}
 .transcript-position>span:first-child{display:none}
}
@media(max-width:380px) and (max-height:600px){
 .transcript-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px}
 .transcript-toolbar .background-toggle{min-width:0}
 .transcript-position{grid-column:1 / -1;grid-row:2;display:block}
}
/* Compact aligned flag rows retain a side-by-side selector on phones. */
.feature-flag { display:grid; grid-template-columns:minmax(0,1fr) 8rem; align-items:start; gap:12px; padding:8px 0; border-bottom:1px solid #3b403a; }
.feature-flag .feature-info { min-width:0; }
.feature-flag label { display:block; margin:0 0 3px; line-height:1.4; }
.feature-flag code { overflow-wrap:anywhere; }
.feature-flag small { display:block; font-size:11px; line-height:1.4; }
.feature-flag select { width:100%; min-width:0; min-height:42px; padding:8px; font-size:13px; }
.feature-flag .feature-description { padding:3px 0 0; font-size:12px; }
.feature-flag p { margin:4px 0; }
@media(max-width:420px){.feature-flag{grid-template-columns:minmax(0,1fr) 6.5rem;gap:8px}}

/* Keep history actions separate from session navigation and touch accessible. */
.tree-agent{position:relative}
.item-status{margin-left:12px;color:#a3aa9e}.item-status.failed{color:#ff8075}.item-status.running{color:#91b88b}.tool-heading{overflow-wrap:anywhere}.tool-paths{padding-left:20px;overflow-wrap:anywhere}.activity.disconnected{color:#a3aa9e}.plan-steps{padding-left:24px}.plan-steps li{margin:8px 0}.plan-steps span{color:#a3aa9e;font:12px monospace;margin-right:10px}
.chat-main>.error{flex-shrink:0;max-height:15dvh;overflow:auto;margin:6px 0}

/* Compact server chrome and stacked connection editing. */
.app-header{flex-wrap:wrap}
.app-header .weekly-usage{position:relative;border:0;padding:0;background:transparent;margin-left:auto}
.app-header .weekly-details{position:absolute;right:0;top:100%;width:min(420px,calc(100vw - 32px));max-height:60dvh;padding:12px;border:1px solid #4c5248;background:#1b1e1a;z-index:2}
.connections>p{margin:0 0 12px}
.connection{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:stretch;gap:0;padding:0;margin:8px 0;border:1px solid #4c5248}
.connection>button{border:0;margin:0;background:transparent}
.connection>button+button{border-left:1px solid #4c5248}
.connection>button:hover{background:#242823;box-shadow:inset 0 0 0 1px #ff792f}
.connection>button:focus-visible{outline:2px solid #ff792f;outline-offset:-2px}
.session-modal.content-sized{height:fit-content;max-height:calc(100dvh - 64px)}
.connection-open{display:flex;align-items:baseline;gap:12px;min-width:0;text-align:left;background:transparent;border-color:transparent;padding:8px}
.connection-open strong,.connection-open small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.connection-open strong{font-size:14px}.connection-open small{color:#a3aa9e;font-size:12px}
.add-action{--dash-color:#4c5248;width:100%;margin-top:12px;text-align:left;border:1px solid transparent;color:#a3aa9e;background:repeating-linear-gradient(to right,var(--dash-color) 0 var(--add-dash-length),transparent var(--add-dash-length) var(--add-dash-period)) top left / 100% 1px no-repeat,repeating-linear-gradient(to right,var(--dash-color) 0 var(--add-dash-length),transparent var(--add-dash-length) var(--add-dash-period)) bottom left / 100% 1px no-repeat,repeating-linear-gradient(to bottom,var(--dash-color) 0 var(--add-dash-length),transparent var(--add-dash-length) var(--add-dash-period)) top left / 1px 100% no-repeat,repeating-linear-gradient(to bottom,var(--dash-color) 0 var(--add-dash-length),transparent var(--add-dash-length) var(--add-dash-period)) top right / 1px 100% no-repeat;background-origin:border-box}
.add-action:hover:not(:disabled){--dash-color:#ff792f;color:#ff792f;border-color:transparent}
.connection-form label:first-child{margin-top:0}
@media(max-width:700px){
 .app-header .connection-actions{grid-column:1 / -1;flex-wrap:wrap}
 .app-header .weekly-usage{grid-column:1;grid-row:3;margin:0;min-width:0;font-size:11px}
 .app-header .weekly-details{left:0;right:auto}
 .app-header .indicator{grid-column:2;grid-row:3}
 .connection-open{display:grid;gap:3px}
 .connection>button:not(.connection-open){padding:8px;font-size:12px}
}

/* DDU console density: small framed sections, orange ticks, aligned controls. */
.server-settings{font-size:13px;line-height:1.4}
.server-settings>h1{font:600 18px ui-monospace,monospace;letter-spacing:0;margin:0 0 12px}
.server-settings h2{display:flex;align-items:center;gap:8px;font:600 13px ui-monospace,monospace;letter-spacing:.6px;text-transform:uppercase;color:#ffb079;margin:0}
.server-settings h2::before{content:"";width:3px;height:14px;background:#ff792f;flex:none}
.server-settings h3{font:600 12px ui-monospace,monospace;margin:0 0 8px}

.server-settings .account-status{display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px}
.server-settings p{margin:6px 0;line-height:1.4}
.server-settings .account-status p{margin:0}
.server-settings .account-status .muted{flex-basis:100%}
.server-settings button,.server-settings input,.server-settings select{font-size:13px;min-height:32px;padding:6px 10px}
.server-settings button{font-family:ui-monospace,monospace}
.server-settings label{margin:8px 0;gap:4px}
.server-settings details{padding:6px 0}
.server-settings .feature-catalog{padding:0}
.server-settings .feature-catalog>summary{color:#ffb079}
.server-settings .feature-catalog>summary h2{display:inline-flex}
.server-settings .feature-catalog>label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px}
.server-settings .feature-list{max-height:360px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.server-settings .feature-flag{padding:5px 6px;gap:8px}
.server-settings .feature-flag:nth-child(even){background:#1b1e1a}
.server-settings .feature-flag label{margin:0 0 2px}
.server-settings .feature-flag code{font-size:12px}
.server-settings .feature-description{padding:1px 0 0}
.server-settings .runtime-restart{border-top:1px solid #3b403a;margin-top:8px}
.server-settings .target-registry{margin:10px 0}
.server-settings .target-registry>p{color:#a3aa9e;font-size:12px}
:root .server-settings .environment-card{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;border:0;border-top:1px solid #3b403a;background:#141615;padding:8px;margin:0}
.server-settings .environment-card h3,.server-settings .environment-card p{margin:0}
.server-settings .environment-card code{font-size:12px}
.server-settings .environment-card .error{flex-basis:100%;padding:8px}
.server-settings .environment-actions{margin-left:auto;gap:6px}
.server-settings .target-management-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border-top:1px solid #3b403a;padding-top:10px}
.server-settings .target-management-grid>section{min-width:0}
.server-settings .create-vm{margin:0;border:0;padding:6px 0}
.server-settings .resource-fields{gap:8px}
@media(max-width:700px){
 .server-settings .target-management-grid{grid-template-columns:1fr}
 .server-settings .feature-list{max-height:45dvh}
}
@media(pointer:coarse){
 .server-settings button,.server-settings select,.server-settings input{min-height:42px}
 .server-settings summary{min-height:32px;line-height:32px}
}

/* Compact header, usage readouts and session navigation. */
.app-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 16px;min-height:54px}
.app-header .brand{font-weight:800;white-space:nowrap;color:#ff792f}
.app-header .current-server{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;margin:0;min-width:0}
.app-header .current-server strong{color:#f0eee8;max-width:24vw;font-size:14px}
.app-header .indicator{font:12px ui-monospace,monospace;letter-spacing:0;color:#91b88b}
.app-header .indicator.disconnected{color:#a3aa9e}
.app-header .weekly-usage{margin-left:auto}
.app-header button{font-size:12px;min-height:34px;padding:6px 10px}
.weekly-window{display:grid;grid-template-columns:1fr auto;gap:6px 10px}
.weekly-window strong{grid-column:1 / -1;font-size:12px}
.weekly-window meter{width:100%;height:9px}
meter{appearance:none;-webkit-appearance:none;border:0;border-radius:0;background:#343a32}
meter::-webkit-meter-bar{border:0;border-radius:0;background:#343a32}
meter::-webkit-meter-optimum-value{border-radius:0;background:#91b88b}
meter::-webkit-meter-suboptimum-value{border-radius:0;background:#91b88b}
meter::-webkit-meter-even-less-good-value{border-radius:0;background:#91b88b}
meter::-moz-meter-bar{border-radius:0;background:#91b88b}
.tree-agent .session{gap:3px;margin-top:4px;padding:8px 36px 8px 10px}
.tree-agent .session-title{font:600 13px system-ui,sans-serif;color:#e8e5df}
.tree-agent .agent-identity{font-size:11px;font-weight:400;color:#a3aa9e}
.tree-agent .agent-icon{font-size:12px}
.tree-agent .session-state,.tree-agent .session-state span{font:11px ui-monospace,monospace;letter-spacing:0}
.tree-agent .context-usage{font-size:10px;gap:6px}
.tree-agent .context-usage span{font-size:10px}
.tree-agent .background-count{color:#75b8f7;font-size:11px}
.tree-agent .background-unknown{font-size:10px}
.session-heading{display:flex;align-items:center;gap:8px;padding:6px 0;flex-wrap:wrap}
.session-heading-text{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;min-width:0;flex:1}
.session-heading-text h1{font-size:14px;margin:0;max-width:100%}
.session-heading-text .agent-name{font-size:12px;color:#a3aa9e}
.session-heading-text .thread-reference{display:inline;font-size:10px;overflow-wrap:anywhere}
.session-heading>.status{font-size:10px}
.session-heading>.session-close{flex:none;min-width:42px;padding:4px 10px;font-size:20px;line-height:1}
.transcript-frame{position:relative;display:flex;flex:1;min-height:0}
.transcript-frame>.transcript{min-width:0}
.jump-latest{position:absolute;right:12px;bottom:10px;z-index:1;font-size:12px;padding:7px 10px;min-height:34px}
.composer>div{flex-wrap:wrap;align-items:center;gap:6px}
.composer>div>button{font-size:12px;padding:6px 10px;min-height:34px}
.composer .background-toggle{color:#75b8f7}
.composer .context-usage{margin-left:auto;font-size:11px}
.server-settings .feature-catalog>summary{display:flex;align-items:center;justify-content:space-between;list-style:none}
.server-settings .feature-catalog>summary::-webkit-details-marker{display:none}
.server-settings .feature-catalog>summary::after{content:"▸";color:#a3aa9e}
.server-settings .feature-catalog[open]>summary::after{content:"▾"}
/* Session controls use the same density as server settings. */
.compact-controls{font-size:13px;line-height:1.4}
.compact-controls h3{font:600 13px ui-monospace,monospace;margin:0 0 8px}
.compact-controls p{margin:6px 0;line-height:1.4}
.compact-controls .session-controls{border:0;padding:0;margin:0}

.compact-controls label{display:grid;grid-template-columns:minmax(100px,1fr) minmax(0,2fr);align-items:center;gap:8px;margin:8px 0}
.compact-controls label.checkbox{display:flex}
.compact-controls button,.compact-controls input,.compact-controls select{font-size:12px;min-height:32px;padding:6px 8px}
.compact-controls textarea{font-size:13px;min-height:65px}
.compact-controls details{padding:5px 0}
.compact-controls .runtime-panel{padding:8px;margin:8px 0}
.compact-controls .session-context{padding:6px 0}
.compact-controls .session-identifiers{grid-template-columns:1fr;gap:4px;margin-top:8px}
.compact-controls .control-fields{gap:8px}
.compact-controls .goal-actions{gap:6px;flex-wrap:wrap}
.new-session-form h3{margin:12px 0 6px}
.new-session-form label,.saved-search label{margin:8px 0;gap:5px}
.target-add-actions,.staged-ssh{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0}
.target-add-actions .add-action{width:auto;flex:1;margin:0;font-size:12px;padding:8px}
.saved-thread{margin-top:6px;padding:8px;gap:3px}
.saved-thread small{font-size:11px;color:#a3aa9e}

@media(max-width:700px){
 .app-header .connection-actions,.app-header .weekly-usage,.app-header .indicator{grid-column:auto;grid-row:auto}
 .app-header .current-server strong{max-width:45vw}
 .app-header .weekly-usage{margin:0;flex:1;min-width:180px}
 .app-header .weekly-usage summary{white-space:normal}
 .session-heading{display:flex}
 .session-heading>.back{padding:4px 7px;min-height:30px}
 .session-heading-text h1{width:auto;font-size:14px}
 .compact-controls .control-fields{grid-template-columns:1fr}
 .compact-controls label{grid-template-columns:minmax(95px,1fr) minmax(0,2fr)}
}
@media(pointer:coarse){
 .compact-controls button,.compact-controls input,.compact-controls select,.composer>div>button,.app-header button{min-height:42px}
}

/* Dense transcript activity, preserving independently expandable raw output. */
.conversation article { padding: .45rem .65rem; margin: .3rem 0; }
.conversation .item-kind { margin-bottom: .2rem; font-size: .72rem; }
.conversation pre { margin: .25rem 0; line-height: 1.4; }
.tool-group { margin: .3rem 0; border-left: 2px solid var(--border, #43483e); padding: .2rem .5rem; }
.tool-group > summary { font-size: .8rem; padding: .2rem 0; cursor: pointer; }
.activity-description { display: inline; margin-left: .65rem; color: #a4aa9c; overflow-wrap: anywhere; }
.tool-group:not([open]) .activity-description { display: inline-block; max-width: min(52vw, 42rem); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }
.tool-group article { border: 0; border-top: 1px solid #30352e; background: transparent; padding: .35rem .3rem; }
.activity-running { color: #92c77e; }
.tool-group .failed { color: #f08072; }
.command-preview { color: #adb3a7; font-size: .8rem; }
.tool-paths { margin: .25rem 0; padding-left: 1rem; }
.conversation .diff-view { overflow-x: auto; white-space: pre; font-size: .78rem; }
.diff-line { display: flex; min-width: max-content; }
.diff-line code { white-space: pre; color: inherit; }
.diff-number { display: inline-block; width: 4ch; flex: 0 0 4ch; text-align: right; padding-right: 1ch; color: #92998b; user-select: none; }
.diff-add { background: #213a2b; color: #b6dfb7; }
.diff-delete { background: #4a221d; color: #edb5aa; }
.diff-hunk { color: #8dbad5; }
.goal-indicator { color: #82b9e5; }
.directory-field,.directory-navigation { display: flex; gap: .4rem; align-items: end; }
.directory-field > label,.directory-navigation > input { flex: 1; min-width: 0; }
.directory-entries { margin:0; }
.directory-entries button { display: block; width: 100%; text-align: left; padding: .4rem .6rem; border:1px solid #43483e;position:relative; overflow-wrap: anywhere; }

@media(max-width:600px) { .conversation article { padding: .3rem .4rem; } .target-directory { flex-wrap: wrap; } }

.session-error { display: flex; align-items: center; gap: .75rem; margin: .6rem 0; }
.session-error > span { flex: 1; min-width: 0; }
.session-error > button { flex: 0 0 auto; margin: 0; }

/* Shared setup primitives: one dash pattern and one accent across all screens. */
:root { --add-dash-length: 8px; --add-dash-period: 13px; --control-height: 38px; }
.section-accent,.server-settings .section-accent,.new-session-form .section-accent { display:flex;align-items:center;gap:8px;font:600 13px ui-monospace,monospace;letter-spacing:.6px;text-transform:uppercase;color:#ffb079;margin:14px 0 8px; }
.section-accent::before { content:"";width:3px;height:14px;background:#ff792f;flex:none; }
.server-settings .section-accent { margin:0; }
.field-action { display:flex;align-items:end;gap:8px;margin:8px 0; }
.field-action > label { flex:1;min-width:0;margin:0; }
.field-action input,.field-action > button { min-height:var(--control-height);height:var(--control-height);padding:8px 10px; }
.field-action > button { flex:none;margin:0; }
.compact-controls .field-action > label { display:grid;grid-template-columns:1fr; }
.search-input { position:relative; }
.search-input input { padding-right:108px;min-height:42px; }
.search-input button { position:absolute;right:1px;top:1px;bottom:1px;margin:0;border:0;border-left:1px solid #4c5248;min-height:0;padding:6px 12px; }
.search-input:focus-within { outline:1px solid #ff792f; }

.directory-entries button + button { margin-top:-1px; }
.directory-entries button:hover,.directory-entries button:focus-visible { border-color:#ff792f;z-index:1; }
.add-action:focus-visible { --dash-color:#ff792f;color:#ff792f;outline:1px solid #ff792f;outline-offset:3px; }
.modal-body > .setup { max-width:none; }
.modal-body > .setup label { margin:10px 0;gap:5px; }
.modal-body > .setup fieldset,.new-session-form > fieldset { border:0;padding:0;margin:0;min-width:0; }


.compact-controls .field-action input,.compact-controls .field-action > button { height:var(--control-height); }
.modal-body .field-action > label { margin:0; }
.target-add-actions { align-items:stretch; }

/* Reserve both optional activity lines so session controls never move. */
.tree-agent .session-activity-slots { display:grid; grid-template-rows:16px 16px 16px; gap:3px; height:54px; min-width:0; }
.tree-agent .session-activity-slots > span { display:block; min-width:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; line-height:16px; }
.tree-agent .session-activity-slots small { line-height:16px; }
.steering-status { display:block; color:#82b9e5; }

/* The corner action shares the card outline but owns its hover/focus state. */

.tree-agent { margin:4px 0 12px; }
.tree-agent .session { margin:0; padding-right:46px; }

.tree-agent .session-title.working { color:#91b88b; }
.tree-agent .session-title.waiting { color:#ff9b61; }
.tree-agent .session-title.failed { color:#f2594e; }
.tree-agent .session-title.disconnected { color:#a3aa9e; }

/* Settings grow with their contents, leaving 32px above and below the dialog. */

.server-settings .feature-list { max-height:none; overflow:visible; }

.composer > .composer-actions { display:flex; flex-wrap:wrap; }
.composer-enter-sends { display:flex; align-items:center; gap:6px; margin:0; min-height:34px; font-size:12px; white-space:nowrap; }
.composer-enter-sends input { margin:0; flex:none; }
@media(max-width:700px) { .composer-enter-sends { min-height:42px; } }

/* Independent corner controls; reordering uses a reserved left gutter. */
.tree-agent .session-title { padding-right:78px; min-height:30px; }

.tree-agent .session-star-action { right:37px; }
.tree-agent .session-edit-action { right:74px; }
.tree-agent .session-star-action.starred { color:#ffbf69; }

.archived-sessions .session-title { padding-right:78px; }

.message-queue { padding:8px 10px; margin:8px 0; }
.message-queue h2 { margin:0 0 4px; font-size:12px; }
.queued-message { display:flex; align-items:flex-start; gap:8px; padding:6px 0; }
.queued-message pre { flex:1; min-width:0; margin:0; }
.queued-message button { flex:none; margin:0; padding:4px 8px; min-height:32px; font-size:12px; }
@media(max-width:700px) { .queued-message button { min-height:42px; } }

.control-warning { color:#f2cc60; font-weight:700; }

:root .server-settings .target-registry .environment-card { border:1px solid #4c5248; margin:8px 0; padding:10px; }

.compact-controls .target-picker > h3,.compact-controls .session-settings > h3 { font-size:12px; margin:10px 0 8px; }

.tree-agent:has(> .session-drag-handle) { padding-left:20px; }
.tree-agent .session-drag-handle { position:absolute; left:0; top:0; bottom:0; width:20px; min-width:20px; min-height:38px; padding:0; border:1px solid #4c5248; border-right:0; background:#1b1e1a; color:#a3aa9e; cursor:grab; touch-action:none; user-select:none; }
.tree-agent .session-drag-handle[aria-pressed="true"] { cursor:grabbing; color:#ffbf69; background:#343a32; }
.tree-agent .session-drag-handle:focus-visible { outline:2px solid #ffbf69; outline-offset:1px; z-index:2; }
.reorder-hint { position:fixed; z-index:20; max-width:calc(100vw - 32px); padding:6px 8px; background:#343a32; color:#ffbf69; border:1px solid #ffbf69; font-size:12px; pointer-events:none; }
.background-terminal { display:flex; align-items:flex-start; gap:12px; padding:8px 0; }
.background-command { flex:1; min-width:0; }
.background-command pre { margin:0 0 4px; }
.background-command small,.background-command code { display:block; overflow-wrap:anywhere; }
.background-terminal > button { flex:none; padding:4px 8px; }
.background-diagnostics { font-size:11px; }
.goal-edit-actions { display:flex; flex-wrap:wrap; gap:6px; min-height:38px; }
.compact-controls .goal-actions { min-height:80px; align-content:flex-start; }
.restart-blockers { margin:6px 0; padding-left:18px; font-size:12px; }
@media(max-width:700px) { .tree-agent:has(> .session-drag-handle) { padding-left:26px; } .tree-agent .session-drag-handle { width:26px; min-width:26px; } .goal-edit-actions { min-height:46px; } .compact-controls .goal-actions { min-height:92px; } }

/* Capacity drains from the left; labels retain normal reading direction. */
.context-usage meter,.weekly-window meter{transform:scaleX(-1)}

.reorder-toggle{margin-left:auto;padding:3px 8px;font-size:11px;min-height:32px}

.conversation .item-kind{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px}
.message-time{margin-left:auto;color:#939b90;font:10px ui-monospace,monospace;letter-spacing:0;white-space:nowrap}

.push-settings p { overflow-wrap: anywhere; }
/* The component owns its editor and audio controls inside its shadow root. */
.score-player-host { width: 100%; height: min(680px, 75dvh); min-height: 340px; }
.score-player { margin: 12px 0; border: 1px solid var(--border, #444); }
.score-player > p { padding: 8px; }
.open-score { margin: 4px 8px 4px 0; }

/* Shared popup sizing: content can use the viewport; changing listings stay fixed. */
.session-modal.stable-sized { height:min(720px,calc(100dvh - 64px)); }
.session-modal.stable-sized > .modal-body { flex:1;display:flex;flex-direction:column;gap:10px;overflow:hidden; }
.picker-results { flex:1;min-height:0;overflow-y:auto;scrollbar-gutter:stable; }

.directory-navigation { flex:none; }
.session-modal.stable-sized .modal-body > button { flex:none;align-self:flex-start; }

.resume-actions { display:flex;align-items:center;justify-content:space-between;gap:8px; }
.resume-actions .checkbox { min-width:0; }
.resume-actions .checkbox input { flex:none; }
.resume-actions > button { flex:none;font-size:13px;padding:8px; }
.creation-target > .target-directory { flex-basis:100%;min-width:0;margin:0 0 10px; }
button.primary:hover:not(:disabled) { background:#ff995f;border-color:#ffb88f; }
button.primary:active:not(:disabled) { background:#dd5e1b;box-shadow:inset 0 2px 4px #713510; }
button.primary:focus-visible { outline:2px solid #ffc6a5;outline-offset:3px; }

.session-list > ul { padding-left:0; }
@media(max-width:700px) {
 .session-modal.content-sized { max-height:calc(100dvh - 16px); }
 .session-modal.stable-sized { height:calc(100dvh - 16px); }
}

/* Shared group chrome, used by administration, session controls and setup editors. */
:root { --group-border:#3b403a; --group-background:#101210; --group-padding:10px; --group-gap:10px; }
:root .ui-group { min-width:0;border:1px solid var(--group-border);background:var(--group-background);padding:var(--group-padding);margin:0 0 var(--group-gap); }
:root .ui-group > .section-accent { margin:0 0 8px; }
.ui-group p { margin:6px 0;line-height:1.4; }
.ui-group label { margin:8px 0;gap:5px; }
.ui-group > :last-child { margin-bottom:0; }
.ui-group .resource-fields { gap:8px; }
.ui-group .field-action > label { margin:0; }
.ui-group .field-action { margin-bottom:0; }
.modal-body > .connection-form { max-width:none; }
.modal-body .actions { display:flex;flex-wrap:wrap;gap:8px; }
.add-action:active:not(:disabled) { --dash-color:#ffb079;color:#ffb079;background-color:#292017; }
@media(pointer:coarse) {
 .server-settings button,.server-settings input,.server-settings select,.session-view-switch button,.reorder-toggle { min-height:42px; }
 .server-settings input[type=checkbox] { min-height:20px; }
}

.compact-controls h3:not(.section-accent) { border:0;padding:0;color:#e8e5df; }
.session-modal.stable-sized .modal-body > .ui-group { flex:none;margin-bottom:0; }
.picker-results > .saved-thread:first-child { margin-top:0; }

.folder-add-session .add-action { min-height:30px; margin:0 0 6px; padding:4px 10px; font-size:12px; }

.composer-model-picker { display:flex; align-items:center; flex-wrap:wrap; gap:6px; min-width:0; max-width:100%; }
.composer-model-picker label { display:flex; align-items:center; gap:6px; min-width:0; margin:0; font-size:12px; }
.composer-model-picker select { width:auto; min-width:0; max-width:200px; min-height:38px; padding:6px; }

@media(max-width:380px) { .composer-model-picker select { max-width:120px; } }

@media(max-width:380px) and (max-height:600px) { .composer > .composer-actions { row-gap:2px; } .composer-model-picker select { min-height:34px; } }

/* Prompt source comparison retains plain text and a native editable textarea. */
.prompt-model-row,.prompt-editor-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0}
.prompt-model-row select{flex:1;min-width:160px}.prompt-settings fieldset{border:0;padding:0;min-width:0}
.prompt-settings textarea{width:100%;font-family:ui-monospace,monospace}
.prompt-editor{width:min(1100px,82vw);max-width:100%;display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.prompt-diff{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.prompt-editor strong{display:block;margin-bottom:6px}.prompt-edit-area{position:relative;height:52vh;min-height:240px}
.prompt-original pre,.prompt-edit-area pre,.prompt-edit-area textarea{font:13px/21px ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;tab-size:4;padding:10px 10px 10px calc(var(--prompt-gutter) + 10px);margin:0;border:1px solid #3b403a;border-radius:0;box-sizing:border-box;width:100%;height:52vh;min-height:240px;overflow:auto;scrollbar-gutter:stable}
.prompt-edit-area pre,.prompt-edit-area textarea{position:absolute;inset:0;height:100%}
.prompt-edit-area textarea{resize:none;background:transparent}.prompt-diff .prompt-edit-area textarea{color:transparent;caret-color:#fff}
.prompt-edit-area pre{pointer-events:none;color:transparent}.prompt-editor .prompt-line{position:relative;display:block;min-height:21px}
.prompt-editor .prompt-line-number{position:absolute;right:calc(100% + 10px);width:var(--prompt-gutter);height:100%;padding-right:1ch;border-right:1px solid #3b403a;box-sizing:border-box;text-align:right;white-space:nowrap;color:#9a9d95;user-select:none}
.prompt-diff-options{grid-column:1/-1;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.prompt-diff-options label{margin:0}
.prompt-diff .prompt-line{color:#a3aa9e}.prompt-diff .diff-delete{background:#261c1b;color:#e8e5df}.prompt-diff .diff-add{background:#1a271d;color:#e8e5df}
.prompt-diff .diff-delete .diff-word{background:#582825;color:#ffb7b0;text-decoration:line-through}.prompt-diff .diff-add .diff-word{background:#244b31;color:#bef0c9;text-decoration:underline;text-underline-offset:3px}
.prompt-nowrap pre,.prompt-nowrap textarea{white-space:pre;overflow-wrap:normal}.prompt-nowrap .prompt-line{width:max-content;min-width:100%}
.instruction-file{max-height:55vh;overflow:auto;white-space:pre-wrap}
@media(max-width:700px){.prompt-editor{width:82vw}.prompt-diff{grid-template-columns:minmax(0,1fr)}.prompt-original pre{height:24vh;min-height:100px}}

/* Forms own scrolling content and a persistent action footer. */
.ui-form { min-width:0;min-height:0;display:flex;flex-direction:column; }
.form-fields { min-width:0;min-height:0; }
.form-actions { display:flex;align-items:center;flex-wrap:wrap;gap:8px;flex:none;padding:10px 0 0;margin-top:10px;border-top:1px solid var(--group-border);background:#141615; }
.form-actions > button { margin:0; }
.modal-body:has(> .ui-form) { display:flex;flex-direction:column;overflow:hidden; }
.modal-body > .ui-form { flex:1;overflow:hidden; }
.modal-body > .ui-form > .form-fields { overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable; }
.modal-body > .ui-form > .form-actions { padding-bottom:2px; }
.ui-group .form-actions { background:var(--group-background); }
.compact-controls .form-actions { position:sticky;bottom:-16px;z-index:2;padding-bottom:10px; }
.compact-controls .ui-form > .form-fields > .ui-group { margin-bottom:0; }
.field-error { display:block;grid-column:1/-1;color:#ff938a;font-size:12px;line-height:1.4; }
input[aria-invalid="true"] { border-color:#f2594e; }
.form-fields fieldset { min-width:0; }

/* Shared icon interaction; placement is owned by the containing view. */
:root .icon-button { display:inline-flex;align-items:center;justify-content:center;flex:none;width:38px;height:38px;min-width:38px;min-height:38px;padding:0;margin:0;border:1px solid #4c5248;background:#1b1e1a;color:#e8e5df;font:20px/1 ui-monospace,monospace; }
.icon-button > span { pointer-events:none; }
:root .icon-button:hover:not(:disabled) { background:#30352e;color:#ffbf69;border-color:#ff792f;z-index:3; }
:root .icon-button:active:not(:disabled) { background:#414738;box-shadow:inset 0 2px 3px #101210; }
:root .icon-button:focus-visible { outline:2px solid #ff9b61;outline-offset:2px;z-index:3; }
:root .icon-button.destructive { color:#f2594e; }
:root .icon-button.destructive:hover:not(:disabled) { background:#4a221d;color:#ffb1aa;border-color:#f2594e; }
.tree-agent .icon-button { position:absolute;top:0; }
.tree-agent .session-archive-action { right:0; }
:root .icon-button.starred { color:#ffbf69; }
.session-view-switch { display:flex;gap:0;margin-left:auto; }
.session-view-switch button { min-height:32px;padding:3px 8px;font-size:11px; }
.session-view-switch button + button { margin-left:-1px; }
.session-view-switch button[aria-pressed="true"] { background:#30352e;color:#ffbf69;border-color:#ff792f;position:relative;z-index:1; }
.session-view-switch + .reorder-toggle { margin-left:0; }
aside > .section-title { flex-wrap:wrap;gap:6px; }
@media(max-width:700px) { .compact-controls .form-actions { bottom:-12px; } }
@media(pointer:coarse) {
 :root .icon-button { width:42px;height:42px;min-width:42px;min-height:42px; }
 .tree-agent .session-star-action { right:41px; }
 .tree-agent .session-edit-action { right:82px; }
 .session-view-switch button { min-height:42px; }
}

/* Incoming system shares use the ordinary session and modal controls. */
.share-text { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 12rem; overflow: auto; }
.share-file { overflow-wrap: anywhere; }
.share-sessions { display: grid; gap: 8px; margin: 10px 0; }
.share-sessions button { display: grid; gap: 4px; text-align: left; }

/* Compact previews share the same touch target in drafts and transcripts. */
.image-widget { display: inline-block; max-width: 100%; }
.image-button { min-width: 44px; min-height: 44px; padding: 4px; vertical-align: middle; max-width: 100%; }
.image-thumbnail { display: block; width: 48px; height: 48px; object-fit: contain; border-radius: 4px; }
.image-expanded { display: block; max-width: 100%; max-height: 65dvh; object-fit: contain; margin: 12px auto; }
.image-warning { color: #d9a526; }
.composer > .composer-images { display: flex; flex-wrap: nowrap; gap: 6px; overflow-x: auto; max-height: 64px; flex-shrink: 0; padding: 2px 0; }
.composer-images .image-widget { flex-shrink: 0; }

/* Informational cache-age estimate, separate from warnings and errors. */
.tree-agent .session-state .cache-indicator { color:#75b8f7; margin-left:6px; font-size:14px; }
.cache-info { flex:none; color:#b7dcff; background:#192b3b; border-left:3px solid #75b8f7; padding:8px 12px; font-size:12px; line-height:1.5; overflow-wrap:anywhere; }

.session-sort { grid-template-columns:auto minmax(0,1fr);align-items:center;margin:8px 0; }
.session-sort select { min-width:0;width:100%; }

.project-git { display:block;font:11px/1.5 monospace;overflow-wrap:anywhere;margin:2px 0 6px;color:#a3aa9e; }
.project-git.clean { color:#91b88b; }
.project-git.dirty { color:#ffb079; }
.project-git.unavailable { color:#a3aa9e; }
.project-git.failed { color:#f58c82; }
