/* Source Sans 3, Adobe Fonts (SIL Open Font License); served locally. */
@font-face{font-family:'Source Sans 3';src:url('/assets/fonts/source-sans-3-regular.woff2') format('woff2');font-weight:200 900;font-style:normal;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('/assets/fonts/source-sans-3-italic.woff2') format('woff2');font-weight:200 900;font-style:italic;font-display:swap}
:root{--agent-message-font:'Source Sans 3',system-ui,sans-serif;--console-inline-gutter:8px;--page:#eaf8fb;--surface:#ffffff;--tab-surface:#cceff4;--tab-selected:#b9e1ff;--user-surface:#fff0c7;--divider:#c8e0e5;--activity:#49bdd0;--footer-chrome:#cceff4;--footer-control:#f7fdff;--footer-ink:#163d49;--footer-line:#83abb5;--footer-selected:#b9e1ff;--ink:#102f3b;--muted:#4d6973;--line:#7fa4ad;--accent:#006d83;--danger:#9d3044;--progress-connector:color-mix(in srgb,var(--accent) 55%,var(--muted))}
*{box-sizing:border-box}html[data-microphone-live],html[data-microphone-live] body{overscroll-behavior-y:none}html,body{margin:0;min-height:100%;background-color:var(--page);color:var(--ink);font:15px/1.5 system-ui,sans-serif}button,textarea{font:inherit}button{border:1px solid #123d2f;border-radius:7px;background:var(--accent);color:var(--button-ink,#fff);padding:8px 13px;cursor:pointer;border-color:var(--accent)}[hidden],body[data-execution="true"] #conversation > :not(#timeline){display:none!important}button:disabled{opacity:.55;cursor:default}
@media(prefers-reduced-motion:reduce){#fairy-mascot{transform:none!important}body[data-activity-state="active"] #fairy-mascot .fairy-mascot-sprite{background-position:0 0;animation:none!important}}
#workshop{width:calc(100% - 2 * var(--console-inline-gutter));margin:0 auto;padding:0 0 28px}.gate{display:grid;place-content:center;text-align:center}.gate>#inline-login>p{margin:0 0 10px;color:var(--muted);font-size:12px;line-height:1.4}#conversation{--conversation-gap:18px;--page-chrome:92px;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--conversation-gap);align-items:start;min-height:calc(100vh - var(--page-chrome));padding-top:var(--session-tabs-height);--sidebar-chrome-gap:12px;--session-tabs-height:44px;--session-rail-top-gap:4px}#slow-lane{min-width:0;display:flex;flex-direction:column;min-height:calc(100vh - var(--page-chrome) - var(--session-tabs-height) - var(--conversation-gap))}#timeline-count,#system-sessions-count{color:var(--muted);font-weight:400}#timeline-list{margin:0;list-style:none;user-select:text;grid-row:2}#timeline-list li{display:grid;border-top:1px solid #d8ded8;border-left:4px solid transparent;border-right:4px solid transparent}#timeline-list time,#timeline-list .timeline-summary{color:var(--muted);overflow-wrap:anywhere}:is(#messages,.session-preview-messages){flex:none;min-height:0;padding:8px 0 0;user-select:text}.message{margin:0 0 12px;padding:11px 13px;border:1px solid var(--line);border-radius:9px;background:var(--surface);white-space:pre-wrap;overflow-wrap:anywhere}.message.user{background:var(--user-surface)}.message.assistant article{white-space:normal;font-family:var(--agent-message-font)}.message.assistant article>:first-child{margin-top:0}.message.assistant article>:last-child{margin-bottom:0}.message-kaomoji{display:block;margin:0 0 5px;white-space:pre;font-size:1.05em;line-height:1.2}
.message-kaomoji.is-inline{display:inline;margin:0}
.spinner{width:12px;height:12px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#resume,#retry{align-self:flex-start;margin:0 8px 8px 0}#composer-dock{--footer-clearance:64px;--composer-gutter:12px;position:fixed;left:var(--console-inline-gutter);bottom:calc(max(var(--footer-clearance),var(--composer-viewport-inset,0px)) + var(--composer-gutter));z-index:6;width:calc(100% - 2 * var(--console-inline-gutter))}#composer-dock::after{content:'';position:absolute;top:100%;left:0;right:0;height:calc(var(--footer-clearance) + var(--composer-gutter));background:var(--page);pointer-events:none}#composer{position:relative;overflow:clip;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:10px}#composer textarea{display:block;width:100%;min-width:0;resize:vertical;border:0;background:transparent;color:var(--ink);outline:0}.composer-actions{display:flex;justify-content:flex-end;gap:6px}.composer-actions button{min-height:28px;padding:3px 8px;border-radius:6px;font-size:12px;line-height:20px}#composer small{display:block;color:var(--muted);padding-top:12px}.usage-meter{display:grid;grid-template-columns:70px 100px minmax(80px,1fr) auto;align-items:center;gap:8px;color:var(--muted);font-size:12px}.usage-track{height:7px;overflow:hidden;border-radius:999px}.usage-track span{display:block;height:100%;background:var(--accent)}.usage-meter.unavailable .usage-track{opacity:.45}
#fairy-mascot{z-index:6;width:80px;height:80px;pointer-events:none;filter:drop-shadow(0 3px 5px rgba(11,82,105,.52));transform-origin:center}.fairy-mascot-sprite{display:block;width:100%;height:100%;background-image:var(--fairy-suite-url,url('/fairy-session-cozy-perch-frames-v2.webp'));background-position:100% 0;background-size:300% 100%;background-repeat:no-repeat;filter:hue-rotate(var(--fairy-hue,0deg))}#fairy-mascot::before{content:'';position:absolute;right:17px;bottom:4px;width:38px;height:5px;border-radius:50%;background:rgba(0,109,131,.2);filter:blur(2px)}body[data-activity-state="active"] .fairy-mascot-sprite,body[data-fairy-motion-state="active"] .fairy-mascot-sprite,body[data-fairy-motion-state="arriving"] .fairy-mascot-sprite,body[data-fairy-motion-state="departing"] .fairy-mascot-sprite{animation:fairy-work-gesture 18s steps(1,end) infinite}@keyframes fairy-work-gesture{0%,14.9%,16%,44.9%,46%,74.9%,76%,77.9%,79%,100%{background-position:0 0}15%,15.9%,45%,45.9%,75%,75.9%,78%,78.9%{background-position:50% 0}}
#timeline-list li{border-color:var(--divider)}
.message.assistant a{color:var(--accent)}
.message.assistant.generated-image-message{display:inline-block;vertical-align:top;width:auto;max-width:calc(100% - 8px);margin:0 8px 8px 0;padding:8px;white-space:normal}.generated-image-link{max-width:100%;border-radius:8px;overflow:hidden;background:var(--page);cursor:zoom-in}.generated-image-link:focus-visible,#context-track:focus-visible,#compaction-value:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.generated-image-link img{display:block;width:auto;height:auto;max-width:min(192px,100%);max-height:192px;object-fit:contain}.generated-image-status{display:block;padding:6px 3px;color:var(--muted);font-size:12px}
.usage-track{background:var(--tab-surface)}
#timeline-list li[data-activity-at] time,#timeline-list li[data-activity-at] .timeline-summary{color:var(--muted)}
#timeline-list li{cursor:pointer;overflow:hidden}#timeline-list li:is(:hover,:focus-visible){background:color-mix(in srgb,var(--activity) 16%,var(--surface));outline:2px solid var(--accent);outline-offset:-2px}#timeline-list time,#timeline-list strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#timeline-list details pre{max-height:320px;overflow:auto;margin:7px 0 2px;padding:8px;border:1px solid var(--line);border-radius:5px;background:var(--page);color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;font:11px/1.4 ui-monospace,monospace}.lane-section-body{min-width:0;max-width:100%;padding:0 10px 10px;overscroll-behavior:contain}#timeline .lane-section-body{display:grid;min-height:0;grid-template-rows:auto minmax(0,1fr);overflow:hidden}#timeline-list{min-height:0;overscroll-behavior:contain;max-height:48vh;overflow:auto;padding:0}
#session-loc{display:block;background:transparent}#session-loc-value{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:11px;font-weight:400}#session-loc svg{display:block;width:100%;height:34px;margin-top:8px;overflow:visible}#session-loc path{fill:none;stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke}
#runtime-instructions{width:min(720px,calc(100% - 24px));max-height:min(760px,calc(100% - 24px));padding:0;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);box-shadow:0 18px 60px rgba(16,47,59,.28)}#runtime-instructions::backdrop{background:rgba(16,47,59,.42)}#runtime-instructions>header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line);background:var(--surface)}#runtime-instructions h2,#runtime-instructions h3{margin:0;color:var(--ink)}#runtime-instructions h2{font-size:16px}#runtime-instructions h3{font-size:13px}#runtime-instructions-close{display:grid;width:32px;height:32px;flex:none;place-content:center;padding:0;background:transparent;color:var(--ink);border-color:var(--line);font-size:20px}#runtime-instructions-state{margin:0;padding:16px;color:var(--muted)}#runtime-instructions-body{padding:14px}#runtime-instructions section{margin:0 0 14px}#runtime-instructions ul{margin:5px 0 0;padding-left:20px}#runtime-instructions details{border-top:1px solid var(--line);padding-top:10px}#runtime-instructions summary{color:var(--accent);font-weight:700;cursor:pointer}#runtime-instructions pre{max-height:42vh;overflow:auto;margin:8px 0 0;padding:10px;border:1px solid var(--line);border-radius:7px;background:var(--page);color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.45 ui-monospace,monospace;user-select:text}.runtime-instructions-button{padding:1px 7px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--accent);font-size:11px;font-weight:700;cursor:pointer}.runtime-instructions-button:is(:hover,:focus-visible){background:color-mix(in srgb,var(--accent) 12%,transparent)}#runtime-instructions-sections details+details{margin-top:10px}#runtime-instructions-sections summary span{color:var(--muted);font-weight:400;font-size:12px}
.platform-footer [data-platform-nav]{flex:0 0 auto!important}

/* Microphone status shares the action bar so a status change never adds a row above or below the composer. */.voice-feed-control{display:flex;flex:1 1 auto;min-width:0;margin-right:auto;align-items:center;gap:inherit;color:var(--muted);font-size:12px}
#voice-feed{position:relative;display:grid;flex:0 0 28px;width:28px;height:28px;place-content:center;padding:0;background:var(--surface);color:var(--ink);border-color:var(--line);font-size:14px}#voice-feed[data-capture="on"]{border-color:var(--accent);color:var(--accent)}#voice-feed[data-state="connecting"]{border-color:#805d16;color:#805d16;cursor:wait}#voice-feed[data-state="warning"]{border-color:#805d16;background:#fff8e8;color:#805d16}#voice-feed[data-state="error"],#surface-state.error{border-color:var(--danger);color:var(--danger)}
#voice-feed[data-focus="here"]{border-color:#7c3aed;background:#7c3aed;color:#fff}
#voice-feed .microphone-icon{width:20px;height:20px;overflow:visible}
#voice-feed:is([data-state="error"],[data-state="warning"])::after{content:"!";position:absolute;top:-5px;right:-5px;display:grid;place-items:center;width:13px;height:13px;border:1px solid currentColor;border-radius:50%;background:var(--surface);color:var(--danger);font:bold 10px/1 system-ui,sans-serif}
#voice-feed-delivery,#voice-feed-delivery[hidden]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.message.assistant article pre{max-width:100%;overflow:auto;overscroll-behavior-x:contain;margin:8px 0;padding:9px 11px;border:1px solid var(--line);border-radius:6px;background:var(--page);color:var(--ink);font:12px/1.45 ui-monospace,monospace}.message.assistant article code{border-radius:3px;padding:1px 4px;background:var(--page);color:var(--ink);font-family:ui-monospace,monospace}.message.assistant article pre code{padding:0;background:none}.message.assistant article .table-wrap{max-width:100%;overflow:auto;overscroll-behavior-x:contain}.message.assistant article table{margin:8px 0;border-collapse:collapse;font-size:.88em;line-height:1.45;font-variant-numeric:tabular-nums;color:var(--ink)}.message.assistant article :is(th,td){padding:5px 9px;border:1px solid var(--line);text-align:left;vertical-align:top;overflow-wrap:break-word}.message.assistant article th{background:var(--page);color:var(--ink);font-weight:650}
.message-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}.message-stamp{display:block;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}#timeline-list details,.message-body,.usage-meter>*,#provider-access .provider-choice>span{min-width:0}.message.user .message-body{max-height:min(620px,60vh);overflow-y:auto;scrollbar-gutter:stable}#timeline-list li.has-detail summary,.message-agent-link,#session-account{cursor:pointer}.message-agent-link[data-state="running"]{color:var(--muted);cursor:wait}#timeline-list .terminal strong,#timeline-list .tool_error strong,#runtime-instructions-state.error,.message-agent-link[data-state="failed"],#timeline-list li.is-stale strong{color:var(--danger)}
.message-provenance-details{margin-left:auto;color:var(--muted);font-size:10px}.message-provenance-details summary{cursor:pointer;font-weight:650}.message-provenance-details span{display:block;margin-top:4px}
.message.user .message-meta{justify-content:flex-start;flex-wrap:wrap}
.message-controls{display:flex;align-items:center;justify-content:flex-end;flex:0 0 auto;flex-wrap:wrap;gap:8px;margin-left:auto;max-width:100%}.message-provenance-details[open],.message-controls:has(.message-provenance-details[open]){flex-basis:100%}.message-controls :is(.message-permalink,.message-provenance-details){margin-left:0}
.message-permalink{display:inline-flex;margin-left:auto;color:var(--muted)!important;line-height:1;opacity:.42;text-decoration:none}.message-permalink svg{width:16px;height:16px}.message-permalink:hover,.message-permalink:focus-visible{opacity:.8}.message[data-event-seq].message-linked-target{outline:4px solid var(--accent);outline-offset:3px}
.timeline-permalink{color:var(--accent);font-size:12px;line-height:1.5;text-decoration:underline}
.timeline-linked-target{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent);outline:0}
.message.notification{margin-right:12%;border-style:dashed;background:#fff4c7;color:#24382f}
.message.notification.unread{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
.message.control{margin-right:12%;border-style:dashed;background:var(--page);color:var(--muted)}
.message-delivery-state{display:block;margin-top:7px;color:var(--danger);font-size:11px}.message.delivery-failed,#composer-header:has(#composer-status.error){border-color:var(--danger)}
.usage-meter>span:not(.usage-track),.handoff-context-message .message-body{overflow-wrap:anywhere}#runtime-settings-body{padding:14px 16px}#runtime-settings-panels{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.runtime-panel{display:grid;gap:8px;align-content:start;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--page)}.runtime-panel-error{margin:0;color:var(--danger);font-size:12px}.runtime-field{display:grid;gap:4px;font-size:12px;color:var(--muted)}.runtime-field select{padding:4px 6px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font:inherit;font-size:12px}.runtime-field select:disabled{opacity:.55}.runtime-field-inline{grid-template-columns:auto auto 1fr;align-items:center;gap:6px}.runtime-field-inline small{grid-column:1/-1;color:var(--muted)}#runtime-settings-error{margin:12px 0 0;color:var(--danger);font-size:12px}#runtime-settings-save-state{min-height:14px;margin:8px 0 0;color:var(--muted);font-size:11px}#runtime-settings-save-state:empty{margin:0}
.runtime-harness-field{margin:0 0 10px}.runtime-harness-field select{width:100%;padding:5px 7px;font-weight:700}
.runtime-settings-popover{position:fixed;inset:auto;width:min(340px,calc(100vw - 16px));max-height:calc(100vh - 60px);margin:0;padding:0;overflow:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);box-shadow:0 10px 28px rgba(18,48,37,.22)}.runtime-settings-popover>header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--line)}.runtime-settings-popover h2{margin:0;font-size:13px}.runtime-settings-popover>header button{padding:1px 6px;background:transparent;color:var(--ink)}.runtime-settings-popover #runtime-settings-state{margin:10px}.runtime-settings-popover #runtime-settings-body{padding:10px}#timeline,.runtime-settings-popover #runtime-settings-panels{display:block}.runtime-settings-popover .runtime-panel{gap:7px;padding:9px}
#timeline-list li[data-side="operator"]{border-left-color:var(--line)}#timeline-list li[data-side="crossing"]{border-left-color:var(--accent)}#timeline-list li[data-side="agent"]{border-right-color:var(--line)}
#timeline-list li.is-stale{border-right-color:var(--danger)}
#session-search #system-sessions-list{max-width:100%;margin:0;padding:0 10px 8px;list-style:none}#session-search #system-sessions-list li{display:flex;min-width:0;align-items:center;gap:8px;padding:5px 0;border-top:1px solid #d8ded8}#session-search #system-sessions-list .closed-session-identity{display:grid;min-width:0;flex:1}#session-search #system-sessions-list strong,#session-search #system-sessions-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#session-search #system-sessions-list small{color:var(--muted);font:10px/1.4 ui-monospace,monospace}#session-search #system-sessions-list button{flex:none;padding:4px 7px;border-color:var(--line);background:var(--surface);color:var(--ink)}
#system-sessions-list button:disabled{opacity:1;background:var(--page);color:var(--muted)}
#system-sessions-list button:not(:disabled):hover{background:var(--tab-selected);color:var(--ink)}
#system-sessions-list button:focus-visible,#session-account:focus-visible,#composer-status:focus-visible,#composer .composer-actions :is(#clear-composer,#stop-response,#send):focus-visible,#background-work .background-work-watch:focus-visible,.turn-profile-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:820px){:root{--console-inline-gutter:4.5px}#workshop{width:calc(100% - 2 * var(--console-inline-gutter))}#conversation{display:flex;min-height:calc(100vh - 144px);flex-direction:column}#slow-lane{min-height:0;width:100%}#composer-dock{--footer-clearance:112px;left:var(--console-inline-gutter);right:var(--console-inline-gutter);width:auto}.usage-meter{grid-template-columns:64px 1fr}.usage-track{grid-column:1/-1}
}
#current-app{display:flex;align-items:center;gap:5px;min-width:0;max-width:min(200px,45vw);color:var(--ink);text-decoration:none;cursor:pointer}#current-app:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}#current-app-tooltip{width:min(280px,calc(100vw - 16px))}.source-history-heading{display:flex;justify-content:space-between;gap:12px;font-weight:600}.current-app-identity{display:grid;grid-template-columns:16px minmax(0,1fr);flex:1;min-width:0;align-items:center;gap:6px}.current-app-identity img{width:16px;height:16px;flex:none;border-radius:3px;object-fit:contain}#current-app-name{grid-column:2;min-width:0;overflow:hidden;color:var(--ink);font:inherit;text-overflow:ellipsis;white-space:nowrap}
/* Workshop atmosphere: reuse the product's pixel-art world without sacrificing the console. */
body[data-fairystack-shell="conversation"]{--page:#edf7f1;--surface:#fffdf5;--tab-surface:#dcebdc;--tab-selected:#fff3bf;--user-surface:#e3f0df;--divider:#c8d8c9;--footer-chrome:#183f37;--footer-control:#fffdf5;--footer-ink:#17372f;--footer-line:#8eb9a5;--footer-selected:#dcebdc;--ink:#17372f;--muted:#526b61;--line:#8ea99b;--accent:#176f60;background:#dcecdf;color:var(--ink)}
body.conversation-visible::before{position:fixed;inset:0;z-index:0;background:linear-gradient(180deg,rgba(238,248,241,.66) 0,rgba(238,248,241,.88) 48%,rgba(238,248,241,.88) 100%),url('/assets/fairystack-treehouse-workshop-v3.webp') center top/cover no-repeat;content:"";pointer-events:none}
body.conversation-visible::after{position:fixed;inset:0;z-index:0;background:radial-gradient(circle at 12% 17%,rgba(255,235,124,.2) 0 2px,transparent 3px),radial-gradient(circle at 88% 30%,rgba(135,240,203,.18) 0 2px,transparent 3px);background-size:83px 83px,117px 117px;content:"";pointer-events:none}
body.conversation-visible #workshop{position:relative;z-index:1}
body.conversation-visible .message{border-color:rgba(73,111,91,.52);border-radius:12px;background:rgba(255,253,245,.94);box-shadow:0 5px 18px rgba(45,78,58,.1),inset 0 1px rgba(255,255,255,.8);backdrop-filter:blur(8px)}
body.conversation-visible .message.user{border-color:rgba(93,125,73,.52);background:rgba(227,240,223,.95)}
body.conversation-visible #composer-dock::after{background:linear-gradient(180deg,rgba(237,247,241,0),rgba(237,247,241,.94) 28%)}
body.conversation-visible #composer{border-color:var(--line);background:var(--surface);color:var(--ink)}
#composer textarea{margin:0;padding:4px 6px;font-size:12.6px;height:111px;border-radius:0}
.composer-actions{align-items:center;padding:6px;border-top:1px solid var(--divider)}.composer-actions button{margin-top:0}
body.conversation-visible .message.user[data-provenance="machine"]{border-color:#8ca0aa;background:rgba(233,239,242,.96);box-shadow:0 4px 14px rgba(54,76,86,.08)}
@media(max-width:820px){body.conversation-visible::before{background:linear-gradient(180deg,rgba(238,248,241,.76),rgba(238,248,241,.88) 43%,rgba(238,248,241,.88) 100%),url('/assets/fairystack-treehouse-workshop-v3.webp') 42% top/cover no-repeat}body.conversation-visible .message{backdrop-filter:none}}
@media(prefers-contrast:more){body.conversation-visible::before{opacity:.28}body.conversation-visible .message,body.conversation-visible #composer{border-width:2px;background:#fffdf5;box-shadow:none}}
:where(html[data-theme="dark"]) body.conversation-visible{--page:#10251f;--danger:#ffb3be;--surface:#182f27;--tab-surface:#244239;--tab-selected:#4c492d;--user-surface:#243f34;--divider:#36544a;--footer-chrome:#0a1714;--footer-control:#1b352d;--footer-ink:#edf6ea;--footer-line:#608a7a;--footer-selected:#315f51;--ink:#edf6ea;--muted:#aec6bb;--line:#587c6e;--accent:#7bd4b8;--button-ink:#10251f;background:#10251f;color:var(--ink)}:where(html[data-theme="dark"]) body.conversation-visible::before{background:linear-gradient(180deg,rgba(11,28,23,.66),rgba(11,28,23,.9) 52%,rgba(11,28,23,.9) 100%),url('/assets/fairystack-treehouse-workshop-v3.webp') center top/cover no-repeat}:where(html[data-theme="dark"]) body.conversation-visible .message{border-color:#587c6e;background:rgba(24,47,39,.95);color:var(--ink);box-shadow:0 10px 28px rgba(0,0,0,.28)}:where(html[data-theme="dark"]) body.conversation-visible .message.user{background:rgba(36,63,52,.96)}:where(html[data-theme="dark"]) body.conversation-visible #composer-dock::after{background:linear-gradient(180deg,rgba(16,37,31,0),rgba(16,37,31,.96) 28%)}
:where(html[data-theme="dark"]) body.conversation-visible .message.user[data-provenance="machine"]{border-color:#718a96;background:rgba(35,54,63,.97)}
#fairy-mascot{position:fixed!important;left:0!important;top:0!important;right:auto!important;bottom:auto!important;animation:none!important;transform:translate3d(0,0,0);will-change:transform}
body[data-fairy-motion-state="idle"] #fairy-mascot{filter:none}
body[data-fairy-motion-state="idle"] #fairy-mascot::before{top:calc(var(--fairy-dock-y,72%) - 2px);right:auto;bottom:auto;left:calc(var(--fairy-dock-x,56%) - 14px);width:28px;height:4px;background:rgba(11,82,105,.14);filter:blur(2px)}
body[data-fairy-motion-state="active"] #fairy-mascot::before,
body[data-fairy-motion-state="arriving"] #fairy-mascot::before,
body[data-fairy-motion-state="departing"] #fairy-mascot::before{top:30%;right:auto;bottom:auto;left:76%;width:22px;height:22px;border-radius:0;background:radial-gradient(circle at 78% 25%,#fff 0 1px,#75f0ff 2px,transparent 4px),radial-gradient(circle at 38% 68%,#f5d878 0 1px,transparent 3px),radial-gradient(circle at 22% 18%,#d7a8ff 0 1px,transparent 3px);filter:none;opacity:0;animation:fairy-wand-sparkle 18s steps(1,end) infinite}
@keyframes fairy-wand-sparkle{0%,14.9%,16%,44.9%,46%,74.9%,76%,77.9%,79%,100%{opacity:0;transform:scale(.45)}15%,15.9%,45%,45.9%,75%,75.9%,78%,78.9%{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){#fairy-mascot{position:fixed!important;left:0!important;top:0!important;right:auto!important;transform:translate3d(0,0,0)}body[data-fairy-motion-state="active"] .fairy-mascot-sprite{background-position:0 0;animation:none!important}}
/* Authentication changes page content, never the shared shell geometry. */
.gate{position:relative;width:calc(100% + 16px);min-height:calc(100dvh - var(--platform-footer-height));margin-left:-8px;overflow:hidden;background:#173a2b url('/assets/fairystack-treehouse-workshop-v3.webp') center/cover no-repeat;isolation:isolate}
body.activation-visible #workshop{width:100%;margin:0;padding:0}
#access-gate[data-activation-visible="true"]{width:100%;margin-left:0;padding:64px 16px 32px}
.gate::before{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(13,38,27,.24),rgba(13,38,27,.05) 52%,rgba(13,38,27,.2)),linear-gradient(0deg,rgba(11,34,24,.22),transparent 45%);content:""}
.gate:not([data-activation-visible="true"]){background:transparent}
.gate:not([data-activation-visible="true"])>#access-message,#conversation[data-session-switch="held"] :is(#slow-lane,#composer-dock),.execution-turn-feed.is-pending,body[data-composer-editing="true"] .fairy-mascot-ghost,#slow-lane:has(>#session-loading:not([hidden]))>#session-notes{visibility:hidden}
.gate>#access-message{position:relative;padding:8px 12px;border-radius:6px;background:rgba(255,253,241,.94);color:#173a2b;box-shadow:0 8px 28px rgba(12,39,27,.25)}
.gate>#inline-login{position:relative;z-index:1;width:min(390px,calc(100vw - 32px));margin:auto;padding:28px 30px 30px;border:2px solid #9c8754;border-radius:38px 8px;background:rgba(255,253,241,.96);color:#173a2b;box-shadow:10px 12px 0 rgba(226,189,88,.82),0 24px 70px rgba(10,34,23,.45);text-align:left;backdrop-filter:blur(4px);--gate-ink:#173a2b;--gate-muted:#4f685c;--gate-label:#385443;--gate-input:#fffdf0;--gate-input-ink:#173a2b;--gate-line:#70826b;--gate-focus:#214d37;--gate-link:#214d37;--gate-button:#214d37;--gate-button-hover:#173a2b;--gate-button-ink:#fff;--gate-error:#9b2f1f}
.gate>#inline-login::after{position:absolute;right:16px;bottom:14px;width:34px;height:18px;background:radial-gradient(circle at 50% 50%,#f3d66b 0 2px,transparent 3px),radial-gradient(circle at 18% 30%,#79c99d 0 1px,transparent 2px),radial-gradient(circle at 82% 72%,#79c99d 0 1px,transparent 2px);content:"";opacity:.72;pointer-events:none}
.gate .activation-brand{display:flex;align-items:center;gap:8px;margin:0 0 22px;color:#52705e;font:800 12px/1 ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase}
.gate .activation-brand img{width:25px;height:25px;border-radius:7px;image-rendering:auto}
.gate #activation-intro{margin:0 0 22px;padding:0 0 18px;border-bottom:1px solid #cbbd91}
.gate #activation-intro .activation-kicker{margin:0 0 7px;color:#52705e;font:800 10px/1.2 ui-monospace,monospace;letter-spacing:.1em;text-transform:uppercase}
.gate #activation-intro h1{margin:0;color:#173a2b;font:700 34px/.98 Georgia,serif;letter-spacing:-.035em}
.gate #activation-intro p:not(.activation-kicker){margin:10px 0 0;color:#4f685c;font-size:14px;line-height:1.45}
.gate #activation-intro strong{color:#173a2b;font-weight:800;overflow-wrap:anywhere}
.gate #auth-inline .auth-form-group{margin-bottom:14px}
/* One palette for every AuthReturn element in the sign-in card; skins remap the variables. */
.gate #auth-inline :is(.auth-form,.auth-container,.auth-area,.auth-field-help,.auth-password-match,.auth-branding,.auth-buttons){background:transparent;color:var(--gate-ink)}
.gate #auth-inline :is(.auth-toggle,.auth-field-help,.auth-branding,.auth-branding *){color:var(--gate-muted)}
.gate #auth-inline .auth-form-group label{color:var(--gate-label);font:800 12px/1.2 ui-monospace,monospace;letter-spacing:.04em;text-transform:uppercase}
.gate #auth-inline :is(input,textarea,select){border:2px solid var(--gate-line);border-radius:7px;background:var(--gate-input);color:var(--gate-input-ink)}
.gate #auth-inline :is(input,textarea)::placeholder{color:var(--gate-muted);opacity:1}
.gate #auth-inline :is(input,textarea,select):focus{border-color:var(--gate-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--gate-focus) 30%,transparent)}
.gate #auth-inline .auth-password-toggle{background:transparent;color:var(--gate-muted)}
.gate #auth-inline .auth-submit-btn{min-height:46px;border:2px solid var(--gate-button);border-radius:6px 18px 18px;background:var(--gate-button);color:var(--gate-button-ink);font:800 12px/1 ui-monospace,monospace;letter-spacing:.04em;text-transform:uppercase;box-shadow:4px 5px 0 #e2bd58}
.gate #auth-inline .auth-submit-btn:hover{background:var(--gate-button-hover)}
.gate #auth-inline :is(a,.auth-forgot-password,.auth-toggle a){color:var(--gate-link);font-weight:800}
.gate #auth-inline .auth-error{color:var(--gate-error)}
@media(max-width:620px){.gate{width:calc(100% + 9px);margin-left:-4.5px;background-position:58% center}.gate>#inline-login{padding:24px 22px 26px;border-radius:28px 7px;box-shadow:7px 8px 0 rgba(226,189,88,.82),0 18px 48px rgba(10,34,23,.42)}}
:where(html[data-theme="dark"]) .gate>#inline-login{background:rgba(255,253,241,.96);color:#173a2b}
#conversation:where([data-surface]:not([data-surface="conversation"])){grid-template-columns:minmax(0,1fr)}
#conversation:where([data-surface]:not([data-surface="conversation"])) #slow-lane{min-height:calc(100vh - 54px)}
#surface-view:not([hidden]){display:block;width:min(1240px,calc(100% - 24px));margin:12px auto 24px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--page);color:var(--ink)}
#surface-view[data-surface="agent-config"]:not([hidden]){width:min(620px,calc(100% - 24px))}
#surface-state{margin:8px 0;padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--muted)}
#surface-root .hidden{display:none!important}
.utc-local{position:relative;border-bottom:1px dotted var(--muted);cursor:help;font-variant-numeric:tabular-nums;user-select:text}.utc-local:is(:hover,:focus-visible)::after{content:attr(data-utc);position:absolute;left:50%;bottom:calc(100% + 4px);z-index:5;padding:2px 7px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font-size:11px;line-height:1.3;white-space:nowrap;transform:translateX(-50%);box-shadow:0 4px 12px rgba(16,47,59,.16);pointer-events:none}
#provider-activation,#provider-dialog{width:min(520px,calc(100vw - 32px));padding:24px;border:1px solid #9c8754;border-radius:20px 7px;background:#fffdf1;color:#173a2b;text-align:left;box-shadow:0 12px 40px #10251f40}
#provider-dialog{max-height:90dvh;overflow:auto}#provider-dialog::backdrop,#account-switcher::backdrop,#sign-in-dialog::backdrop{background:#10251f99}
#provider-access h1{margin:0 0 16px;font-size:23px;line-height:1.25;outline:none}#provider-access p{margin:12px 0;font-size:16px;line-height:1.5;overflow-wrap:anywhere}
#provider-access .provider-choice{display:flex;align-items:center;gap:12px;padding:15px;margin:10px 0;border:1px solid #cbbd91;border-radius:10px;background:#f8f4e5;color:#173a2b;font-size:16px;cursor:pointer}#provider-access .provider-choice:has(input:checked){border-color:#176047;background:#e5f0df}#provider-access .provider-choice input{width:18px;height:18px;flex:0 0 auto;accent-color:#176047}#provider-access .provider-choice small{display:block;font-size:13px;color:#375e49}
#provider-access .provider-logo{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border:1px solid #cbbd91;border-radius:9px;background:#fffdf1;color:#181818}#provider-access .provider-logo img{display:block;width:30px;height:30px;object-fit:contain}
#provider-access [data-next],#provider-continue,#provider-access form button{display:block;width:100%;margin-top:20px;padding:12px 16px;font-size:16px}#provider-access .provider-back{display:block;width:auto;background:transparent;color:#176047;border:0;box-shadow:none;padding:5px 0;margin:0 0 12px;font-size:14px;text-decoration:underline;text-underline-offset:3px}#provider-access .provider-success-choice{display:block;width:100%;text-align:left;margin:16px 0 0;padding:12px 16px;font-size:16px;background:#f8f4e5;color:#173a2b;border-color:#cbbd91;box-shadow:none}
#provider-access .provider-success-choice:hover:not(:disabled){background:#e5ecdf;border-color:#176047}
#provider-access [data-claude-consent] a{color:inherit;background:inherit;text-decoration:underline}
#provider-access [data-setup-help]{margin-top:24px}
#provider-access .provider-setup-image{display:block;width:100%;height:auto;border:1px solid #cbbd91;border-radius:9px;cursor:default}#provider-access [data-device-code]{padding:14px;border:1px solid #9c8754;border-radius:9px;font:700 25px ui-monospace,monospace;letter-spacing:.07em;text-align:center;background:#f8f4e5;color:#173a2b}
#provider-access form label{display:grid;gap:10px;font-size:16px}#provider-access form input{width:100%;padding:12px;border:1px solid #9c8754;border-radius:7px;background:#fffdf1;color:#173a2b;font-size:16px}
:where(html[data-theme="dark"]) #provider-access .provider-choice,:where(html[data-theme="dark"]) #provider-access .provider-success-choice,:where(html[data-theme="dark"]) #provider-access [data-device-code]{background:#203b31;color:#edf6ea;border-color:#608a7a}:where(html[data-theme="dark"]) #provider-access .provider-choice:has(input:checked){background:#315548;border-color:#a6ead4}
:where(html[data-theme="dark"]) #provider-access .provider-success-choice:hover:not(:disabled){background:#29493d;border-color:#a6ead4}:where(html[data-theme="dark"]) #provider-access .provider-choice small,:where(html[data-theme="dark"]) #provider-access .provider-back{color:#a6ead4}:where(html[data-theme="dark"]) #provider-access .provider-setup-image{border-color:#608a7a}
#composer-status{flex:1 1 12ch;min-width:0;overflow:hidden;text-overflow:ellipsis;margin:0;line-height:1.4;white-space:nowrap;user-select:text;background:transparent;text-align:left;cursor:pointer;max-width:24ch;font-size:12px;color:inherit;border:1px solid transparent;border-radius:7px;padding:3px 7px;text-decoration:none}#composer-status.error,#prompt-trace[data-state="failed"] .prompt-trace-title{color:var(--danger)}
.gate:has(>#provider-activation:not([hidden])){place-content:start center;padding-top:48px}#provider-access{min-height:390px}#provider-access button:focus-visible,#provider-access input:focus-visible{outline:3px solid #be9131;outline-offset:3px}@media(max-width:600px){.gate:has(>#provider-activation:not([hidden])){padding-top:24px}}
#provider-access button.provider-choice{width:100%;text-align:left;font-weight:600;box-shadow:none}#provider-access button.provider-choice:hover{border-color:#176047}
#prompt-trace{color:var(--ink);background:var(--surface);font-size:12px;line-height:1.25}
.prompt-trace-header{display:flex;align-items:center;gap:8px;min-width:0}
#prompt-trace .prompt-trace-title{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
#prompt-trace .prompt-trace-stages{display:flex;flex:none;list-style:none;padding:0;margin:0}
#prompt-trace .prompt-trace-stages li{display:flex;position:relative;align-items:center;justify-content:center;width:22px;height:24px;padding:0;cursor:help;border-radius:4px}
#prompt-trace .prompt-trace-stages li+li::before{content:'';position:absolute;right:16px;width:12px;height:1px;background:var(--line)}
.trace-dot{z-index:1;display:grid;place-content:center;width:10px;height:10px;border:1px solid var(--muted);border-radius:50%;background:var(--surface);color:var(--ink);font-size:10px}
[data-state="done"]>.trace-dot{background:var(--accent);border-color:var(--accent)}
[data-state="running"]>.trace-dot{background:var(--accent);border:2px solid var(--accent);box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--accent);animation:trace-dot-live 1.6s ease-in-out infinite}@keyframes trace-dot-live{50%{box-shadow:0 0 0 2px var(--surface),0 0 0 5px color-mix(in srgb,var(--accent) 35%,transparent)}}
[data-state="error"]>.trace-dot{background:var(--surface);color:var(--danger);border-color:var(--danger)}
.prompt-trace-stages li:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}
.trace-dot-tooltip{position:fixed;inset:auto;margin:0;max-width:min(280px,calc(100vw - 16px));padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font:12px/1.4 system-ui;box-shadow:0 4px 12px #102f5928;white-space:normal;user-select:text}
.message-link-address{max-width:min(480px,calc(100vw - 16px));overflow-wrap:anywhere}
#prompt-trace p{margin:4px 0;color:var(--muted);overflow-wrap:anywhere}
#prompt-trace[data-state="stalled"] .prompt-trace-title{color:#805900}
:where(html[data-theme="dark"]) #prompt-trace[data-state="stalled"] .prompt-trace-title{color:#ffe8a3}
#prompt-trace-panel{min-width:0;padding:3px 10px;border-bottom:1px solid var(--divider);color:var(--ink);background:var(--surface)}
#prompt-trace-empty{margin:3px 0;color:var(--muted)}
#composer-frame #composer{border:0;border-top:1px solid var(--divider);border-radius:0}
#provider-access [data-secondary-account],#provider-access [data-next],#provider-access [data-status],#provider-access .provider-choice small{overflow-wrap:anywhere;white-space:normal}
#composer-header{display:flex;align-items:center;flex-wrap:wrap;gap:3px 6px;min-width:0;margin:0;padding:4px 6px;border:1px solid var(--line);border-bottom:0;border-radius:10px 10px 0 0;background:var(--tab-selected);color:var(--ink);-webkit-user-select:none;user-select:none;min-height:34px}
#composer-header>#app-fps{position:static;inset:auto;z-index:auto;grid-column:1/-1;max-width:100%;background:var(--surface);color:var(--ink);border-color:var(--line)}
#composer-header #context-meter{display:flex;flex:0 1 auto;flex-wrap:wrap;justify-content:flex-end;margin-left:auto;min-width:0;align-items:center;gap:6px;font-size:11px;line-height:14px;color:var(--muted)}
#composer-header #context-meter .usage-track{flex:0 0 100px;width:100px;height:24px;background:transparent;border-radius:0;overflow:visible;cursor:help}
#compaction-value{cursor:help;font-variant-numeric:tabular-nums}
#context-track svg{display:block;width:100%;height:24px;overflow:visible}#context-bar{fill:none;stroke:var(--ink);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:620px){#composer-header{padding-inline:4px;gap:5px 6px}#composer-header #context-meter{gap:4px;font-size:10px;flex-wrap:nowrap;flex:1 1 auto}}
#account-switcher{width:min(480px,calc(100vw - 32px));box-sizing:border-box;padding:24px;border:1px solid #9c8754;border-radius:20px 7px;background:#fffdf1;color:#173a2b;box-shadow:0 12px 40px #10251f40;--surface:#fffdf1;--ink:#173a2b;--muted:#526548}
#account-switcher h2{margin:0 32px 12px 0;font-size:1.1rem}
#account-switcher p{line-height:1.5;overflow-wrap:anywhere}
#account-switcher a{color:#285c46;text-decoration:underline}
#provider-dialog-close,.account-switch-close{float:right;padding:3px 9px}
.account-switch-options{display:flex;gap:8px;flex-wrap:wrap}
.account-switch-options button{border:1px solid #9c8754;border-radius:8px;padding:8px 12px;background:#eef0d9;color:#173a2b}
.account-switch-options button:disabled{background:#e6e5da;color:#62665a;cursor:default}
:where(html[data-theme="dark"]) #provider-activation,:where(html[data-theme="dark"]) #provider-dialog,:where(html[data-theme="dark"]) #provider-access form input,:where(html[data-theme="dark"]) #account-switcher{background:#182f27;color:#edf6ea;border-color:#608a7a}:where(html[data-theme="dark"]) #account-switcher a{color:#a6ead4}:where(html[data-theme="dark"]) .account-switch-options button{background:#203b31;color:#edf6ea;border-color:#608a7a}:where(html[data-theme="dark"]) .account-switch-options button:disabled{background:#27372f;color:#a2b0a5}
:where(html[data-theme="dark"]) #account-switcher{--surface:#182f27;--ink:#edf6ea;--muted:#b8cbbd}
#session-speed { display:flex; align-items:center; gap:4px; flex-wrap:wrap; color:inherit; background:inherit; font-size:12px; }
.message.user[data-provenance="human"] .message-body{max-height:none;overflow:visible}
#session-account{color:var(--ink);font-size:12px;font-weight:600}.message.notification[data-origin="quota_handoff"],.message.notification[data-origin="account_switch"],body.conversation-archived .message{background:var(--surface);color:var(--ink);border-color:var(--line)}
/* Archive state is contextual; leave other conversations and surfaces unchanged. */
body.conversation-archived{--page:#e1e3e5;--surface:#f5f5f5;--user-surface:#eceeef;--ink:#292e33;--muted:#555e66;--line:#929ba3;--divider:#c2c7cc;background-color:var(--page);color:var(--ink)}
#archived-session-notice{display:block;width:fit-content;margin:8px 10px 0;padding:3px 8px;border:1px solid #929ba3;border-radius:7px;background:#d8dcdf;color:#292e33;font-size:12px;white-space:nowrap}
:where(html[data-theme="dark"]) body.conversation-archived{--page:#25282c;--surface:#303439;--user-surface:#383d42;--ink:#edf0f2;--muted:#bdc4cb;--line:#727d87;--divider:#525b64}:where(html[data-theme="dark"]) #archived-session-notice{background:#424a52;color:#edf0f2;border-color:#88939d}
body.conversation-archived::before,#background-work .background-work-watch:hover,body[data-execution="true"] #timeline-list li:nth-child(even){background:var(--page)}
body.conversation-archived .message.user{background:var(--user-surface);color:var(--ink)}
body.conversation-archived #composer-dock::after{background:linear-gradient(transparent,var(--page) 28%)}
.message-queue-times{display:flex;flex-wrap:wrap;gap:3px 12px;margin:0;color:var(--muted);background:transparent;font-size:11px;font-variant-numeric:tabular-nums}.message-queue-times time{white-space:normal}
#session-speed optgroup,#session-speed option { color:var(--ink); background:var(--surface); }
#session-speed select { font:inherit; color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:2px 4px; }
.handoff-context {color: inherit;background: inherit;--context-bg:#f0e7f8;--context-ink:#392849;--context-line:#bba5ca}
.handoff-context summary,.message .markdown-disclosure > summary{ cursor: pointer; font-weight: 600; }
.handoff-context-text { white-space: pre-wrap; overflow-wrap: anywhere; margin-top: .5rem; }
.handoff-context-note { margin:.5rem 0; font-size:.85rem; }
body.conversation-visible .handoff-context .handoff-context-message { background:var(--context-bg); color:var(--context-ink); border:1px solid var(--context-line); border-radius:10px; padding:12px; margin-top:10px; margin-bottom:10px; min-width:0; }
.handoff-context-message .message-meta, .handoff-context-message small { color:var(--context-ink); }
.handoff-context-message a { color:#63368a; }
  :where(html[data-theme="dark"]) .handoff-context{ --context-bg:#382e46; --context-ink:#f0e5fb; --context-line:#806b94; }
  :where(html[data-theme="dark"]) .handoff-context-message a{ color:#dcc0f5; }
#composer-session-reference{position:relative;font-size:11px;color:var(--muted);white-space:nowrap}
#composer-session-id{color:var(--ink);font-size:11px;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;cursor:pointer}
#composer-session-copied{user-select:none;position:absolute;left:50%;top:50%;z-index:1;padding:1px 6px;border-radius:4px;font-size:10px;line-height:15px;white-space:nowrap;pointer-events:none;opacity:0;transform:translate(-50%,-50%);background:var(--ink);color:var(--surface)}
#composer-session-copied[data-state="failed"]{background:var(--danger);color:var(--surface)}
#composer-session-copied.flash{animation:session-id-copied 1.4s ease-out forwards}
@keyframes session-id-copied{0%{opacity:0;transform:translate(-50%,-50%) scale(.85)}12%,55%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(1)}}
@media(prefers-reduced-motion:reduce){#composer-session-copied.flash{animation:session-id-copied-still 1.4s steps(1,end) forwards}@keyframes session-id-copied-still{0%{opacity:1}100%{opacity:0}}}
#composer-session-id:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
#composer-header #composer-session-link{display:inline-flex;align-items:center;justify-content:center;margin:0;padding:4px 6px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;-webkit-tap-highlight-color:transparent}
#composer-header #composer-session-link[hidden]{display:none}
#composer-header #composer-session-link:hover{color:var(--ink);border-color:var(--muted)}
#composer-session-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
#composer-session-link svg{width:12px;height:12px}
#composer-session-link-tooltip{max-width:min(460px,calc(100vw - 16px));overflow-wrap:anywhere}
@media(max-width:620px){#session-speed{font-size:11px}#session-speed select{padding-inline:4px}}
.message.user{width:min(640px,82%);margin-left:auto;margin-right:2%}
.message.user[data-provenance="machine"]{margin-left:2%;margin-right:auto}
.message.assistant{width:min(760px,86%);margin-left:2%;margin-right:auto}
/* Phone reading uses the available width; input stays 16px to avoid focus zoom. */
@media(max-width:620px){
  :root{--console-inline-gutter:3px}
  html,body{font-size:14px}
  .message{padding:8px;margin-bottom:9px}
  .message.assistant{width:100%;margin-inline:0}
  .message.user{width:96%;margin-left:auto;margin-right:0}
  .message.user[data-provenance="machine"]{margin-left:0;margin-right:auto}
  .message.assistant article :is(h1,h2){font-size:1.2em}
  .message.assistant article h3{font-size:1.1em}
  .message.assistant article :is(ul,ol){padding-inline-start:20px}
}
#slow-lane:has(>#messages:not([hidden])):has(>#composer-dock:not([hidden])){padding-bottom:var(--composer-clearance,390px)}
#timeline-list li{height:28px;min-height:28px;max-height:28px;grid-template-columns:64px minmax(70px,120px) minmax(0,1fr) auto auto;gap:6px;align-items:center;padding:3px 7px;font-size:11px;line-height:20px}
#timeline-list li:last-child,.message-progress .message:last-child{margin-bottom:0}
#timeline-list time{grid-column:1;grid-row:1}
#timeline-list .timeline-summary{-webkit-box-orient:vertical;display:block;grid-column:3;grid-row:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
#timeline-list .timeline-permalink{grid-column:5;grid-row:1;margin:0}
#timeline .lane-section-body{padding-bottom:6px}
@media(max-width:620px){#timeline-list li{grid-template-columns:60px 76px minmax(0,1fr) auto auto;gap:4px;padding-inline:4px}}
#system-sessions-list li[data-working="true"] strong::before{content:"● ";color:var(--accent)}
#app-session-spend{width:calc(100% - 20px);margin:0 10px 6px;border-collapse:collapse;color:var(--ink);font:11px/1.4 ui-monospace,monospace}
#app-session-spend th,#app-session-spend td{padding:2px 4px;border-bottom:1px solid var(--line);text-align:right;font-weight:400}
#app-session-spend :is(thead th,th[scope=row]){text-align:left}
#app-session-spend thead th{color:var(--muted);font-family:system-ui,sans-serif}
#app-session-spend tr[data-total=true] :is(th,td){font-weight:700}
#system-sessions-badge{position:absolute;top:-6px;right:-7px;min-width:15px;padding:0 4px;border:1px solid var(--surface);border-radius:8px;background:var(--muted);color:var(--surface);font:700 9px/13px system-ui,sans-serif;text-align:center}
#system-sessions-badge[data-working="true"]{background:var(--accent);color:var(--surface)}
#voice-feed[data-capture="off"] .microphone-on,#voice-feed:not([data-capture="off"]) .microphone-off,.gate:not([data-activation-visible="true"])::before,.gate>#access-message:empty,#provider-access .provider-choice small:empty,#composer-options-open[data-menu-empty],#composer-voice-details{display:none}
#composer-header #session-speed>[role=status]{max-width:22ch;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:help}
.message-tutoring-topic{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;user-select:text}
.message.user[data-provenance="human"] .message-meta{flex-wrap:wrap;gap:6px}
.message.system-member-message{border-style:solid;background:var(--surface);color:var(--ink);text-align:left;font-size:inherit}.message.system-member-message .message-meta{justify-content:flex-start;flex-wrap:wrap;gap:5px}.message.system-member-message .message-author,.message.user[data-provenance="human"] .message-stamp,.message.user .runtime-instructions-button,.message.user .message-permalink{flex-shrink:0}
.message-author{min-width:0;color:var(--ink);background:inherit;font-size:11px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:text}
/* Clip rounded composer edges without introducing hidden scrolling ancestors
   between the textarea and its viewport-positioned dock. Native selection and
   the edit menu must share the textarea's scrolling coordinate space. */
#composer-frame{position:relative;border:1px solid var(--line);border-radius:10px;overflow:clip;background:var(--surface);color:var(--ink)}
#composer-frame #composer-header{border:0;border-radius:0}
#composer-model{display:inline-flex;align-items:center;flex:0 0 auto;white-space:nowrap}
#timeline{width:min(900px,calc(100vw - 24px));max-height:75vh;overflow:auto;margin:auto;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink)}
#activity-status-detail{font-size:12px;overflow-wrap:anywhere;margin:0 0 10px}
#session-account-tooltip{white-space:normal;max-width:min(620px,calc(100vw - 24px));max-height:60vh;overflow:auto}
#session-account-tooltip table{width:100%;border-collapse:collapse;font-size:11px;font-variant-numeric:tabular-nums}
.provider-mark{width:11px;height:11px;flex:none;color:var(--muted)}
tr[data-selected="true"] .provider-mark{color:#0d8a6a}
tr[data-selected="true"] .provider-mark-claude{color:#c15f3c}
:where(html[data-theme="dark"]) tr[data-selected="true"] .provider-mark{color:#3fd0a6}:where(html[data-theme="dark"]) tr[data-selected="true"] .provider-mark-claude{color:#e0896a}
#session-account-tooltip caption{text-align:left;color:var(--muted);padding-bottom:5px;font-size:10px}
#session-account-tooltip th,#session-account-tooltip td{padding:4px 6px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
#session-account-tooltip thead th{color:var(--muted);font-weight:600}
#session-account-tooltip tbody th{white-space:nowrap;font-weight:500}
#session-account-tooltip tr[data-selected="true"]{background:var(--tab-selected);color:var(--ink)}
#session-account-tooltip .account-quota-note td{color:var(--muted);font-size:10px;overflow-wrap:anywhere}
#session-account-tooltip p{margin:0}
@media(max-width:520px){:is(#messages,.session-slide) .message.user[data-provenance="human"] .message-meta{gap:3px}:is(#messages,.session-slide) .message.user .message-stamp,:is(#messages,.session-slide) .message-tutoring-topic{font-size:10px}:is(#messages,.session-slide) .message.user .runtime-instructions-button{font-size:10px;padding:1px 4px;line-height:1.4}}
/* Phone controls stay within the reading width. */
@media(max-width:620px){
  #composer textarea{font-size:16px}
  #composer-header select{appearance:none;-webkit-appearance:none;font-size:16px;max-width:100%;padding-right:22px;background-color:var(--surface);color:var(--ink);background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 11px) 50%,calc(100% - 6px) 50%;background-size:5px 5px;background-repeat:no-repeat}
  #composer-status{flex:1 1 12ch;max-width:none}
  #composer .composer-actions{flex-wrap:nowrap;justify-content:flex-start;gap:6px;min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin}
  .voice-feed-control{flex:1 1 0;margin-right:0}
  #voice-feed{flex-basis:36px;width:36px}
  #composer-frame{min-width:0;max-width:100%}
  #composer-voice-details{display:flex;flex:1 1 100%;flex-wrap:wrap;gap:8px;align-items:center;padding-top:8px;border-top:1px solid var(--line);background:var(--surface);color:var(--ink)}
  body:has(#voice-feed[data-state="error"],#composer-status.error) #composer-options-open{border-color:var(--danger);color:var(--danger)}
  body:has(#voice-feed[data-state="error"],#composer-status.error) #composer-options-open::after{content:"!";font-size:13px;font-weight:700}
}
/* The composer's … button opens the app menu (platform-footer, docked); wide bars carry the leading entries inline
   (platform-footer data-inline), phones add the session options to the menu. */
#composer-options-open{position:relative;flex:0 0 auto;display:flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;padding:6px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);cursor:pointer}
#composer-options-open:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
#composer .composer-actions>fairystack-footer{flex:1 1 0;min-width:0;align-self:stretch}
#composer .composer-actions:has(>fairystack-footer) .voice-feed-control{flex-grow:0}
#composer-options-open:is([data-notice="true"],[data-release-state="active"],[data-release-state="failed"],[data-release-state="unavailable"])::before{content:"";position:absolute;top:-5px;right:-5px;display:grid;place-items:center;width:10px;height:10px;border:1px solid var(--surface);border-radius:50%;background:#b52c45;color:#fff;font:800 10px/1 system-ui}
#composer-options-open:is([data-release-state="active"],[data-release-state="failed"],[data-release-state="unavailable"])::before{width:15px;height:15px;content:"!"}
#composer-options-open[data-release-state="active"]::before{content:"↑";background:#246748}
#composer-options-open[data-release-state="unavailable"]::before{content:"?";background:#795500}
fairystack-footer>#composer-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:6px;box-sizing:border-box;margin:0 0 4px;padding:4px 4px 8px;border:0;border-bottom:1px solid var(--menu-line,var(--line));border-radius:0;background:transparent;color:inherit}
:where(html[data-theme="dark"]) #composer-frame,:where(html[data-theme="dark"]) #session-error,:where(html[data-theme="dark"]) .background-job-result{--danger:#ffb3be}
.session-slide{position:fixed;z-index:10;overflow:hidden;pointer-events:none;contain:strict;background:transparent;color:var(--ink)}
.session-slide-pane{position:absolute;inset:0;overflow:hidden;background:transparent;color:var(--ink);will-change:transform}
/* Keep the actual backdrop painted; only one transcript may contribute pixels. */
body.session-sliding #slow-lane>:not(#composer-dock):not(#session-notes):not(.session-slide-live){opacity:0}
/* The incoming live pane owns the settling motion; its composer stays fixed. */
.session-slide-live{will-change:transform}
body.session-sliding{overflow-x:clip}
body[data-execution="true"] #timeline{display:block;position:static;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;border-radius:0;box-sizing:border-box;background:var(--surface);color:var(--ink)}
body[data-execution="true"] #timeline-list{max-height:55vh;min-height:120px}
.execution-layout{display:grid;grid-template-columns:clamp(120px,20vw,260px) minmax(0,1fr);height:100%;gap:0;margin:0;border:0;border-radius:0;overflow:hidden;background:var(--page);color:var(--ink)}
.execution-layout h3{font-size:14px;margin:0 0 12px}
.execution-layout nav{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:8px}
.execution-layout nav button{display:block;width:100%;text-align:left;padding:12px;margin-bottom:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}
.execution-layout nav button span{display:block;font-size:11px;margin-top:3px}
.execution-layout nav button[aria-current="true"]{border-color:var(--ink);box-shadow:inset 3px 0 var(--ink)}
.execution-layout code{overflow-wrap:anywhere;font-size:12px}
.execution-layout p,.execution-layout details{font-size:12px}
body[data-execution="true"] #timeline-list li{height:auto;max-height:none;padding:10px 12px;gap:10px;font-size:12px;border-radius:0;box-sizing:border-box}
body[data-execution="true"] #prompt-trace-panel{margin-block:18px}
@media(max-width:620px){body[data-execution="true"] #timeline-list li{padding:10px 8px;gap:8px}}
.session-slide-neighbor .session-preview-messages{display:flow-root;min-width:0}
.execution-turn-panel{min-width:0;min-height:0;padding:0;background:var(--surface);color:var(--ink)}
.execution-turn-activity{position:relative;min-width:0;height:100%;margin:0;padding:0}
.execution-turn-feed{display:flex;flex-direction:column;height:100%;min-height:0}
.execution-turn-feed>p{flex:none}
.execution-activity-host{flex:1;min-height:0}
.execution-activity-host #timeline-activity-panel{height:100%}
body[data-execution="true"] .execution-activity-host #timeline-list{min-height:0;max-height:none}
.execution-activity-placeholder{position:absolute;inset:0;margin:0;padding:12px;color:var(--muted);background:var(--surface)}
#app-session-spend tr[data-paused=true] th,.execution-activity-placeholder[role="alert"],.message-recap[data-state="failed"] .generated-image-status,.message-recap[data-state="timed_out"] .generated-image-status,#composer-header #composer-status.error{color:var(--danger)}
.message .markdown-disclosure { margin: .6rem 0; padding: .45rem .65rem; border: 1px solid var(--line); border-radius: .5rem; background: var(--surface); color: var(--ink); }
.message .markdown-disclosure > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.message-secret-handoff{display:block;min-width:0;height:auto;max-height:none;margin-top:14px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface);color:var(--ink)}.message-secret-handoff>p,.message-secret-handoff>button{margin:12px}.message-recap .generated-image-link[hidden],.message-recap-progress :is(.llm-progress-title,.llm-progress-actions,.llm-progress-logs-container,.llm-progress-branding),#session-account-tooltip .compact-account-status:empty{display:none}.message-secret-frame{display:block;width:100%;max-height:none;flex:none;border:0;background:var(--surface);color:var(--ink)}
#composer-status-tooltip{max-width:min(560px,calc(100vw - 16px));max-height:calc(100vh - 24px);overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}
#background-work .background-work-heading h3{margin:0}
#session-error{flex:none;margin:0 0 12px;padding:11px 13px;border:1px solid var(--danger);border-radius:9px;background:var(--surface);color:var(--danger);white-space:pre-wrap;overflow-wrap:anywhere;user-select:text;max-height:25vh;overflow:auto;position:relative;padding-right:46px}
/* Immersive image inspection uses the treehouse night palette in either page theme. */
ik-lightbox.generated-image-viewer{--ik-bg:#172e29;--ik-text:#edf4e8;--ik-muted:#bfceba;--ik-line:#466052;--ik-accent:#c4dfa0;--ik-overlay:rgba(9,25,21,.9)}
.generated-image-status button{margin-left:4px}
.message-recap{position:relative;order:1;margin:10px 0 0;white-space:normal;color:var(--ink);background:var(--surface)}
:is(.message-recap,.generated-image-message:has(img[data-source-url*="/images/recap-"]),.message-inline-image:has(img[data-source-url*="/images/recap-"])) .generated-image-link{width:100%;height:auto;max-width:none;padding:0;background:var(--surface);color:var(--ink)}
:is(.message-recap,.generated-image-message:has(img[data-source-url*="/images/recap-"]),.message-inline-image:has(img[data-source-url*="/images/recap-"])) .generated-image-link img{display:block;width:100%;height:auto;max-width:none;max-height:none;object-fit:contain}
.message-recap .generated-image-status,.session-task-list summary>span,.message-recap-progress :is(.llm-progress-title,.llm-progress-info){color:var(--muted);background:var(--surface)}
.message-recap-progress{font:12px/1.4 var(--agent-message-font);color:var(--muted);background:var(--surface)}
.message-recap-progress .llm-progress-wrapper{padding:6px 0;margin:0;background:var(--surface);color:var(--muted);border:0}
.message-recap-text-status{color:var(--muted);background:var(--surface);white-space:normal}
/* Both representations contribute their natural height without moving the text nodes. */
.message-inline-image:has(img[data-source-url*="/images/recap-"]){display:block;width:100%;margin:8px 0}
button.generated-image-link{padding:0;border:0}
.generated-image-link{width:192px;height:192px;display:flex;align-items:center;justify-content:center}
/* A perched fairy shares the composer's fixed layer, including native overscroll. */
body[data-fairy-motion-state="idle"] #fairy-mascot{position:absolute!important;left:100%!important;top:0!important;transform:translate3d(calc(-34px - var(--fairy-dock-x,100%)),calc(-1 * var(--fairy-dock-y,62px)),0)!important;will-change:auto}
@media(max-width:820px){body[data-fairy-motion-state="idle"] #fairy-mascot{transform:translate3d(calc(-22px - var(--fairy-dock-x,100%)),calc(-1 * var(--fairy-dock-y,54px)),0)!important}}
/* Fairy trail ghosts (decorations.js ctx.trail), drawn beneath the flying fairy. */
.fairy-mascot-ghost{position:fixed;left:0;top:0;z-index:5;width:80px;height:80px;pointer-events:none;transform-origin:center}
@media(max-width:820px){#fairy-mascot,.fairy-mascot-ghost{width:70px;height:70px}}
.message.generated-image-message,.message:has(>.message-reactions),#session-search-open{position:relative}
.message-inline-image{position:relative;display:inline-block;vertical-align:top;margin:4px 8px 4px 0;white-space:normal}.message-inline-image 
.background-job-result{white-space:normal;color:var(--ink);background:inherit}
.background-job-result .background-job-summary{margin:0;font-weight:600;overflow-wrap:anywhere}
.background-job-result .background-job-error,.turn-profile[data-state="disconnected"] .turn-profile-state,.turn-profile[data-state="failed"] .turn-profile-state{color:var(--danger)}
.background-job-result details{margin-top:4px}
.background-job-result summary{cursor:pointer;color:var(--muted);font-size:12px}
.background-job-result pre{margin:8px 0 0;max-height:320px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.5 ui-monospace,monospace;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:10px}
/* Unsupported popovers must not become permanently visible inline help. */
@supports not selector(:popover-open){[popover][role="tooltip"]{display:none}}
#composer-dock[data-keyboard="open"]{bottom:calc(var(--composer-viewport-inset,0px) + var(--composer-gutter))}
#background-work{width:min(760px,calc(100vw - 16px));max-width:calc(100vw - 16px);max-height:min(65vh,520px);overflow:auto;padding:12px;white-space:normal;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);pointer-events:auto;text-align:left;font-size:12px}#background-work h3{margin:0 0 8px;font-size:13px}#background-work table{width:100%;border-collapse:collapse;table-layout:fixed}#background-work th,#background-work td{padding:7px 6px;text-align:left;vertical-align:top;overflow-wrap:anywhere;border-bottom:1px solid var(--line)}#background-work th:first-child{width:40%}#background-work small{display:block;color:var(--muted)}#background-work summary{cursor:pointer;font-weight:600}#background-work td[data-state]{background:var(--surface);color:var(--ink);font-weight:600}#background-work td[data-state=succeeded]{background:#d9f4df;color:#195d31}#background-work td:is([data-state=failed],[data-state=lost]){background:#ffe3e6;color:#8b2234}#background-work td[data-state] small{color:inherit;font-weight:400}#background-work dl{margin:8px 0;color:var(--muted)}#background-work dd{margin:0 0 6px}#background-work pre{max-height:180px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;padding:6px;background:var(--page);color:var(--ink);font-size:11px}
/* Composer actions share the Send button's geometry; color expresses the action. */
#composer .composer-actions :is(#clear-composer,#stop-response,#send){min-height:34px;padding:5px 12px;border:1px solid;border-radius:7px;font-size:13px;line-height:20px;font-weight:700;box-shadow:none;text-shadow:none;opacity:1}
#composer .composer-actions :is(#clear-composer,#stop-response,#send):not(:disabled):is(:hover,:focus-visible){background-image:linear-gradient(#ffffff1f,#ffffff1f);cursor:pointer}
#composer .composer-actions #send{border-color:#105b4e;background:#176f60;color:#fff}
#composer .composer-actions #stop-response{border-color:#792236;background:#a12c42;color:#fff}
#composer .composer-actions #clear-composer{border-color:#668374;background:#f3f6f2;color:#2a493e}
#composer .composer-actions #stop-response:disabled{border-color:#763543;background:#763543;color:#fff;opacity:1}
#composer .composer-actions #send:disabled{border-color:#376c5f;background:#376c5f;color:#fff;opacity:1}
#composer .composer-actions #clear-composer:disabled{border-color:#819b8a;background:#e2e8e3;color:#4a6256;opacity:1}
:where(html[data-theme="dark"]) #composer .composer-actions #clear-composer{border-color:#789b8b;background:#233c32;color:#e0f2e5}
:where(html[data-theme="dark"]) #composer .composer-actions #clear-composer:disabled{border-color:#789b8b;background:#2f4138;color:#b7c9bb}
:where(html[data-theme="dark"]) #composer .composer-actions #stop-response{border-color:#da8b9c;background:#a12c42;color:#fff}
:where(html[data-theme="dark"]) #composer .composer-actions #stop-response:disabled{border-color:#b4697c;background:#763543;color:#fff}
.composer-action-short{display:none}
.composer-action-icon{display:none;width:20px;height:20px;flex:none}
.composer-options-icon{width:20px;height:20px}
@media(max-width:620px){
  #composer-options-open{display:block;margin-right:auto;min-width:36px;padding:0 8px;background:var(--surface);color:var(--ink);border:1px solid var(--line);font-size:22px}
  #composer-header #background-work-trigger{display:flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink)}
  #composer-header #composer-status{flex:1 1 auto;max-width:none}
  #composer .composer-actions :is(#clear-composer,#stop-response,#send){min-height:36px;flex:0 0 36px;width:36px;padding:0;font-size:22px}
  #composer-frame #composer-header,#composer .composer-action-label,#background-work th:last-child,#background-work td:last-child{display:none}
  #composer-header #background-work-trigger .composer-action-icon,#composer .composer-action-icon{display:block}
  #composer textarea{height:70px;min-height:70px;max-height:130px;resize:none;overflow-y:auto;overscroll-behavior-y:contain}
  body[data-composer-editing="true"] #composer-dock{--composer-gutter:4px}
  body[data-composer-editing="true"] #composer textarea{min-height:40px;max-height:100px}
  body[data-composer-editing="true"] #composer .composer-actions{padding:3px 6px;gap:4px}
  body[data-composer-editing="true"] #fairy-mascot{visibility:hidden}
  body[data-composer-editing="true"] #conversation{--session-tabs-height:32px}
}
/* Reserve reading space while composing on a phone; drafts stay in the same node. */
#session-account-tooltip th button{display:inline-flex;align-items:center;gap:4px;appearance:none;font:inherit;border:0;border-radius:0;background:transparent;color:inherit;padding:0;margin:0;cursor:pointer;text-align:inherit;line-height:inherit}
#session-account-tooltip th button:disabled{cursor:default;opacity:1}
#session-account-tooltip .account-email-anchor{display:inline-flex}
#session-account-tooltip .account-email-anchor:focus-visible,#session-account-tooltip button:focus-visible{outline:2px solid #447a59;outline-offset:2px}
#background-work > button{margin-top:8px;padding:5px 9px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}#background-work > button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
#background-work .background-work-watch{margin-left:8px;padding:1px 7px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font-weight:500;text-decoration:none}
#session-error-close{position:absolute;right:6px;top:6px;width:30px;height:30px;padding:0;border:1px solid transparent;border-radius:7px;background:var(--surface);color:var(--danger);font-size:22px;line-height:1;cursor:pointer}#session-error-close:hover,#session-error-close:focus-visible{border-color:currentColor}#session-error-text{white-space:pre-wrap;overflow-wrap:anywhere}
:where(html[data-theme="dark"]) #background-work td[data-state=succeeded]{background:#203f2c;color:#b5efc5}:where(html[data-theme="dark"]) #background-work td:is([data-state=failed],[data-state=lost]){background:#4c2530;color:#ffc2cc}
#background-work table{font-size:12px}
#background-work .background-work-heading{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;margin-bottom:8px}#background-work .background-work-heading small{font-size:11px;color:var(--muted)}#background-work .background-work-lanes{margin-left:auto;font-size:12px;color:var(--ink)}
#session-account-tooltip tr[data-switchable="true"]:hover{background:var(--tab-surface);color:var(--ink)}
/* Shared label typography; interactive labels retain a hover affordance. */
:is(#composer-session-id,#session-account,#current-app,#composer-model,#background-work-trigger,#composer-status),
#session-speed select{
  font-family:inherit;font-size:12px;font-weight:400;line-height:1.4;
  color:var(--ink);background:transparent;border:0;border-radius:0;
  box-shadow:none;padding:2px 0;text-decoration:none;
}
#composer-header :is(#session-account,#current-app,#composer-status):hover,
#session-speed select:hover{
  background:transparent;box-shadow:none;text-decoration:underline;text-underline-offset:3px;
}
#background-work-trigger:focus-visible,#composer-header :is(#session-account,#current-app,#composer-status):focus-visible,#session-speed select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:620px){#composer-header #session-speed select{font-size:16px;background-color:transparent;padding-right:22px}}
/* Each metadata item shares one visible boundary in both header layouts. */
#composer-header :is(#composer-session-reference,#session-account,#current-app,#session-speed,#composer-model,#composer-status,#context-meter){
  border:1px solid var(--line);border-radius:6px;padding:4px 8px;
  color:var(--ink);background:transparent;margin-inline-start:0;
}
#composer-header #context-meter{margin-inline-start:auto}
#composer-header>.composer-width-pending[hidden]{display:block!important;visibility:hidden;pointer-events:none}
.generated-image-full{margin:0;display:flex;flex-direction:column;align-items:center;max-width:100%;color:#edf4e8;background:#172e29}
.generated-image-full img{display:block;max-width:100%;max-height:calc(90vh - 135px);object-fit:contain}
.generated-image-full.generated-image-sharpening img{min-width:min(92vw,720px);image-rendering:auto;filter:blur(.4px)}
.generated-image-full figcaption{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;padding:10px 14px;font-size:12px;line-height:1.5;color:#edf4e8;background:#172e29;user-select:text}
.generated-image-full button{padding:0;border:0;font:inherit;color:#c4dfa0;background:#172e29;text-decoration:underline;cursor:pointer}
.generated-image-full a.generated-image-download{font:inherit;color:#c4dfa0;background:#172e29;text-decoration:underline}
/* Compact recorded tool count and elapsed timer. */
.turn-profile{display:block;user-select:text;margin:10px 0 16px;padding:8px 12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:12px;max-width:100%;min-width:0}
.turn-profile-heading{display:flex;align-items:center;flex-wrap:wrap;gap:7px;min-width:0}.turn-profile-total{font-variant-numeric:tabular-nums}.turn-profile-state{color:var(--muted);font-size:11px}
.turn-profile-host{display:block;width:100%;box-sizing:border-box;margin:0 0 12px;padding:0;background:transparent;color:var(--ink)}
.turn-profile-host>.turn-profile{margin:0;border:1px solid color-mix(in srgb,#8fd79c 40%,var(--line));background:color-mix(in srgb,#8fd79c 18%,var(--surface));color:var(--ink)}
.turn-profile-open{margin-left:auto;color:var(--ink);font-size:11px;text-decoration:underline}
.turn-profile-activity{margin-top:4px;overflow-wrap:anywhere}
/* Read-only execution ledger and event inspector. */
.activity-table{flex-direction:column;min-height:0;min-width:0;color:var(--ink);background:var(--surface)}
.activity-table-heading,body[data-execution="true"] #timeline-list li{display:grid;box-sizing:border-box}
.activity-table-heading{font-size:11px;font-weight:600;color:var(--muted);background:var(--page);border-bottom:1px solid var(--line);flex:none}
body[data-execution="true"] #timeline-list li:is(:hover,:focus-visible){outline:1px solid var(--accent);outline-offset:-1px}
body[data-execution="true"] #timeline-list :is(.timeline-summary,.timeline-permalink){grid-column:auto;grid-row:auto}
body[data-execution="true"] #timeline-list .timeline-summary{white-space:normal;overflow-wrap:anywhere;color:var(--ink);display:block}
/* Execution dedicates the viewport to evidence and persistent turn navigation. */
body[data-execution="true"] #workshop{width:100%;max-width:none;margin:0;padding:0}
body[data-execution="true"] #conversation{display:block;width:100%;height:100dvh;min-height:0;margin:0;padding:0;overflow:hidden}
body[data-execution="true"] :is(fairystack-footer,#session-tabs,#prompt-trace-panel,#activity-status-detail){display:none!important}
body[data-execution="true"] #execution-turns{height:100%;min-height:0}
.execution-sidebar{display:flex;flex-direction:column;min-height:0;overflow:hidden;border-right:1px solid var(--line);background:var(--page);color:var(--ink)}
.execution-turn-feed>p{margin:0;padding:6px 12px;background:var(--page);color:var(--muted)}
body[data-execution="true"] #timeline .lane-section-body{display:flex;flex-direction:column}
body[data-execution="true"] .activity-table{flex:1}
/* Every saved inspector field is a first-class ledger column. */
.activity-table-heading,body[data-execution="true"] #timeline-list li{grid-template-columns:var(--activity-grid-columns,minmax(84px,min(180px,30%)) minmax(0,1fr));min-width:0;width:100%;gap:0;padding:0}
.activity-table-heading>span,#timeline-list [role="cell"]{min-width:0;padding:8px;border-right:1px solid var(--divider);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.activity-table #timeline-list{scrollbar-gutter:stable;width:100%;min-width:0;overflow:visible;flex:none}
.activity-table{position:relative;display:block;overflow:auto}
.activity-table-heading{scrollbar-gutter:stable;position:sticky;top:0;z-index:2}
#timeline-list [data-column="Detail"],#timeline-list [data-column="Saved event JSON"] pre{font:12px/1.5 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;color:var(--ink);background:transparent}
#timeline-list [data-column="Saved event JSON"] button{background:var(--surface);color:var(--ink);display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0;border:0;font-size:10px;text-align:left}
#timeline-list [data-column="Saved event JSON"] [role="status"]{font-size:12px;color:var(--muted);background:transparent}
/* Fitted ledger: a selected cell has a separate, selectable full-value reader. */
body[data-execution="true"] #timeline-list li{border-left:0;border-right:0;background:var(--surface);color:var(--ink);cursor:default;align-items:stretch;min-height:99px;line-height:18px}
body[data-execution="true"] #timeline-list [role="cell"]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;font-size:11px}
body[data-execution="true"] #timeline-list [role="cell"][data-column="Detail"]{display:block;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:18px;max-height:105px;overflow-y:auto;scrollbar-gutter:stable;cursor:text}
body[data-execution="true"] #timeline-list [role="cell"][data-column="Timestamp"]{white-space:normal;overflow-wrap:anywhere;font-size:12px;font-variant-numeric:tabular-nums}
#composer-header #context-meter>span:not([role="tooltip"]),.message.user .runtime-instructions-button,.turn-profile-calls,.turn-profile-total,body[data-execution="true"] #timeline-list .timeline-summary{white-space:nowrap}
#timeline-list [role="cell"]:is(:focus-visible,.is-selected-cell),.activity-table-heading>span:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;background:var(--tab-selected);color:var(--ink)}
#timeline-list [data-column="Saved event JSON"] :is(pre,[role="status"]),.activity-cell-body [role="status"]:empty,#session-progress .message-progress>summary,.session-summary-region:has(#session-digest:not([hidden]))>.session-summary-empty,#session-progress:has(.message-progress)>.session-progress-empty,#slow-lane:has(>#messages[hidden])>#session-notes,#conversation[data-session-switch="held"] #session-notes{display:none}
#timeline-list [data-column="Saved event JSON"][data-state="completed"]::after{content:'JSON';color:var(--ink)}
#background-work-trigger,#session-account-tooltip tr[data-switchable="true"],.activity-table-heading>span{cursor:pointer}
#activity-cell-panel{position:relative;flex:none;width:100%;height:clamp(200px,35dvh,360px);max-height:45%;min-height:0;display:flex;flex-direction:column;border-top:1px solid var(--line);background:var(--surface);color:var(--ink);user-select:text}
#activity-cell-panel>header{display:flex;align-items:start;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--page);color:var(--ink)}
#activity-cell-panel h2{margin:0;font-size:16px;overflow-wrap:anywhere}
.activity-cell-context{margin:0 0 4px;font-size:12px;color:var(--muted)}
.activity-cell-close{flex:none;width:36px;height:36px;padding:0;font-size:22px;background:var(--surface);color:var(--ink);border-color:var(--line)}
.activity-cell-body{flex:1;min-height:0;overflow:auto;padding:10px 12px}
.activity-cell-body pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.6 ui-monospace,monospace;color:var(--ink);background:var(--surface);user-select:text}
.activity-cell-body [role="status"]{margin:0 0 12px;font-size:12px;color:var(--muted)}
.activity-cell-action{margin-bottom:12px;background:var(--surface);color:var(--ink);border-color:var(--line)}
#activity-cell-panel>footer{padding:6px 12px;border-top:1px solid var(--line)}
#activity-cell-panel a{color:var(--accent);background:var(--surface)}
@media(min-width:1000px){#activity-cell-panel{width:50%;align-self:center;border-inline:1px solid var(--line)}}
@media(max-width:900px){.activity-table:not([data-visible-columns="1"]):not([data-visible-columns="2"]) .activity-table-heading>span{writing-mode:vertical-rl;transform:rotate(180deg);height:150px;padding:6px 1px;text-overflow:ellipsis;font-size:10px}.activity-table-heading{align-items:stretch}}
.activity-table-toolbar{flex:none;display:flex;justify-content:flex-end;padding:3px 6px;border-bottom:1px solid var(--line);background:var(--page);color:var(--ink)}
.activity-table-toolbar>button{padding:3px 10px;font-size:12px;background:var(--surface);color:var(--ink);border-color:var(--line)}
#activity-columns{position:fixed;inset:36px 8px auto auto;margin:0;width:min(360px,calc(100vw - 16px));max-height:calc(100dvh - 48px);overflow:auto;padding:14px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);box-shadow:0 8px 28px #0003;font-size:12px}
.activity-column-options{display:grid;grid-template-columns:1fr 1fr;gap:9px 12px;margin:12px 0}
.activity-column-options label{display:flex;align-items:start;gap:5px;min-width:0;cursor:pointer}
.activity-column-options input{accent-color:var(--accent);margin:3px 0 0}
.activity-column-presets{display:flex;gap:8px;border-top:1px solid var(--line);padding-top:10px}
.activity-column-presets button{font-size:12px;padding:5px 8px;background:var(--page);color:var(--ink);border-color:var(--line)}
.execution-layout .execution-sidebar-heading{flex:none;margin:0;padding:10px 12px;border-bottom:1px solid var(--line);font-size:12px;background:var(--page);color:var(--ink)}
@media(max-width:620px){.execution-layout nav{padding:5px}.execution-layout nav button{padding:7px;font-size:11px;overflow-wrap:anywhere}.execution-layout nav button span{font-size:10px}}
@media(max-width:620px){#current-app-tooltip{padding:14px}}
/* A page microphone keeps its explicitly selected conversation destination. */
#voice-feed-incident{position:relative;z-index:1;display:flex;height:0;min-width:0;padding:0 6px;gap:6px;align-items:flex-end;justify-content:flex-end;pointer-events:none}
#voice-feed-incident>*{margin-bottom:4px;pointer-events:auto}
.voice-clip-strip{display:flex;flex:0 1 auto;gap:3px;align-items:center;justify-content:flex-end;min-width:0;max-width:60%;padding:3px 5px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);--clip-recording:#8b979c;--clip-saved:#5f6b70;--clip-sending:#2f6fd6;--clip-retrying:#a86d00;--clip-words:#22804a}.voice-clip-strip[hidden]{display:none}
:where(html[data-theme="dark"]) .voice-clip-strip{--clip-recording:#a7b3b8;--clip-saved:#d3dcdf;--clip-sending:#7aa7f0;--clip-retrying:#f0c26b;--clip-words:#7fd6a5}
.voice-clip{position:relative;flex:0 0 auto;height:8px;border-radius:2px;background:var(--clip-saved);outline:none;transition:opacity .9s ease}.voice-clip.is-fading{opacity:0}.voice-clip[data-stage="failed"]{cursor:pointer}.voice-clip[data-stage="recording"]{background:var(--clip-recording);animation:voice-clip-pulse 1s ease-in-out infinite alternate}.voice-clip[data-stage="sending"]{background:var(--clip-sending)}.voice-clip[data-stage="retrying"]{background:var(--clip-retrying);animation:voice-clip-pulse .5s ease-in-out infinite alternate}.voice-clip[data-stage="words"]{background:var(--clip-words)}.voice-clip[data-stage="empty"]{background:transparent;box-shadow:inset 0 0 0 1px var(--muted)}.voice-clip[data-stage="failed"]{background:var(--danger)}.voice-clip[data-stage="discarded"]{background:repeating-linear-gradient(135deg,var(--muted) 0 2px,transparent 2px 4px)}
.voice-clip:is(:hover,:focus-visible)::after{content:attr(data-tip);position:absolute;bottom:14px;right:0;z-index:5;width:max-content;max-width:280px;padding:4px 7px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font-size:12px;line-height:1.3;white-space:normal;pointer-events:none}
@keyframes voice-clip-pulse{from{opacity:1}to{opacity:.55}}@media(prefers-reduced-motion:reduce){.voice-clip{animation:none!important}}
#voice-feed-status:not([hidden]){display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;flex:0 1 auto;min-width:0;padding:3px 8px;border:1px solid var(--line);border-radius:6px;white-space:normal;overflow-wrap:anywhere;text-align:left;color:var(--danger);background:var(--surface);font-size:12px;line-height:1.3;user-select:text;cursor:text}
@media(max-width:620px){#voice-feed-status:not([hidden]){-webkit-line-clamp:1}}

/* Capstones own the conversation; recorded commentary has a secondary lane. */
.message-progress{min-width:0;margin:0 0 12px;padding:0;border:1px solid var(--line);border-radius:0;background:var(--surface);color:var(--ink);white-space:normal;align-self:start}
.message-progress>summary{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;font-size:12px;line-height:1.5;list-style:none;color:var(--muted);background:var(--surface);border-radius:inherit}
.message-progress>summary::-webkit-details-marker{display:none}
.message-progress>summary::before{content:'▸';color:var(--accent)}
.message-progress[open]>summary::before{content:'▾'}
.message-progress-label{font-weight:650;color:var(--ink)}
.message-progress-count{margin-left:auto;font-variant-numeric:tabular-nums}
.message-progress-body{padding:0 10px 10px;max-height:min(420px,50vh);overflow:auto;overscroll-behavior:none;scrollbar-gutter:stable;color:var(--ink);background:var(--surface)}
.message-progress .message{width:100%;margin:0 0 10px;padding:10px;box-sizing:border-box;box-shadow:none;background:var(--surface);color:var(--ink);font-size:13px;line-height:1.6}
.message-progress .message-kaomoji{font-size:1em}
.message-progress .message-meta{align-items:flex-start;justify-content:flex-start;gap:5px 10px}
.message-progress .message-queue-times{display:grid;flex-basis:100%;gap:1px;line-height:1.4}
.message-progress .message-controls{justify-content:flex-start;gap:12px;margin-left:0}
.message-progress .runtime-instructions-button{padding:1px 0;border:0;border-radius:0;background:transparent;color:var(--accent);font-size:11px;font-weight:500;line-height:1.5}
.message-progress .runtime-instructions-button:is(:hover,:focus-visible){background:transparent;text-decoration:underline}
.message-progress .message-provenance-details{font-size:11px;line-height:1.5}
.message-progress .message-provenance-details summary{padding:1px 0;color:var(--accent);font-weight:500}
.message-progress .message-controls .message-permalink{color:var(--accent)!important;opacity:.75}
/* Inline previews keep one reading column; the live session owns a fixed split pane. */
:is(#messages,.session-preview-messages)>.message-progress{width:100%;box-sizing:border-box}
/* Composer flight layer (6) clears notes (5), below navigation/dialog layers. */
#session-notes{position:fixed;z-index:5;top:52px;bottom:var(--composer-clearance,320px);right:var(--console-inline-gutter);width:clamp(300px,29vw,420px);min-height:0;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:0;overflow:hidden;user-select:text}
#session-notes :is(a,button):focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.session-notes-split{position:absolute;inset:0;min-height:0;display:flex;flex-direction:column}
/* No rubber-band: bottom-follow would snap a bounce mid-flight and flicker. */
.session-summary-region,#session-progress{min-height:0;overflow:auto;overscroll-behavior:none;scrollbar-gutter:stable;background:var(--surface);color:var(--ink);overflow-anchor:none}
.session-summary-region{flex:0 1 auto}
.session-progress-region{flex:1 0 64px;min-height:0;display:flex;flex-direction:column;border-top:1px solid var(--line);background:var(--surface);color:var(--ink)}
.session-progress-region>h2{flex:none;margin:0;padding:9px 12px;font-size:13px;color:var(--ink);background:var(--surface)}
#session-progress{flex:1;padding:0 8px 8px}
#session-progress .message-progress{margin:0;border:0;border-top:1px solid var(--progress-connector);background:var(--surface);color:var(--ink)}
#session-progress .progress-conversation-link{padding:5px 2px 8px;color:var(--muted);background:var(--surface);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body[data-execution="true"] #timeline-list .timeline-permalink,#session-progress .progress-conversation-link:hover{color:var(--ink)}
#progress-connectors{position:fixed;inset:0;width:100vw;height:100vh;z-index:6;pointer-events:none;overflow:visible;fill:var(--progress-connector);stroke:var(--progress-connector);stroke-width:1}
#progress-connectors path{fill:none}
#session-progress .message-progress-body{padding:0 2px 12px;max-height:none;overflow:visible;scrollbar-gutter:auto}
#session-notes #session-digest{margin:0;border:0;border-radius:0;font-size:13px;padding:12px}
.session-summary-empty,.session-progress-empty{padding:12px;margin:0;font-size:13px;color:var(--muted);background:var(--surface)}
.progress-conversation-link{display:block;padding:0 12px 10px;font-size:12px;line-height:1.5;color:var(--accent);background:var(--surface);overflow-wrap:anywhere}
@media(min-width:1100px){
 #slow-lane:has(>#session-notes)>:is(#messages,#messages-more){width:calc(100% - clamp(300px,29vw,420px) - 24px);margin-inline:0;box-sizing:border-box}
 #slow-lane:has(>#session-notes) #messages>.message.assistant{width:100%;max-width:900px;margin-inline:0;box-sizing:border-box}
}
@media(max-width:1099px){
 #session-notes{position:static;width:100%;max-height:none;overflow:visible;margin:0 0 12px;box-sizing:border-box;box-shadow:none}
 #session-notes .session-notes-split{position:static}
 #session-notes :is(.session-summary-region,#session-progress){overflow:visible;overscroll-behavior:auto;scrollbar-gutter:auto}
 #session-notes .session-progress-region,#messages>.message-progress .progress-conversation-link{display:none}
 #messages>.message-progress .message-progress-body{max-height:none;overflow:visible;overscroll-behavior:auto;scrollbar-gutter:auto}
}

/* File attachments reuse the composer controls on desktop and mobile. */
#attach-files{flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:8px;min-width:36px;min-height:36px;padding:6px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink)}
#attach-files svg{width:20px;height:20px}
#composer-header #attach-files{min-height:44px;padding:8px 12px}
#composer-header #attach-files .attach-files-label{display:inline}
#attach-files:disabled{background:var(--page);color:var(--muted);cursor:wait}
@media(pointer:coarse){#composer #attach-files{min-width:44px;min-height:44px}}
.message-attachment .generated-image-status{display:block;font-size:12px;line-height:1.4;color:var(--muted);background:var(--surface)}
.message-progress>summary:focus-visible,#attach-files:focus-visible,.message-attachment .generated-image-link:focus-visible,#session-search :is(input,button):focus-visible,#session-search-open:focus-visible,#session-replies :focus-visible,#composer-reply :focus-visible,.message-reply-button:focus-visible,.message-reply-context:focus-visible,.background-active-job :is(a,button):focus-visible,.background-work-actions :is(a,button):focus-visible,#session-restore-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Find stays compact above the conversation, with touch equivalents to Return. */
#session-search-open,#session-restore-open,#session-replies-open,#room-link{display:grid;place-items:center;flex:none;width:32px;height:32px;margin:0 0 5px 4px;padding:6px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--accent)}
#session-tabs .session-toolbar-icon{display:block;flex:none;width:20px;height:20px}
@media(max-width:620px){
  fairystack-footer > :is(#room-link,#session-replies-open){display:flex;grid-column:1 / -1;align-items:center;justify-content:flex-start;gap:12px;width:100%;height:auto;min-height:44px;margin:0;padding:10px 12px;border:0;border-radius:10px;background:var(--menu-bg,var(--surface));color:var(--menu-ink,var(--ink));text-align:left}
  fairystack-footer .session-menu-label{display:block;font-size:15px;font-weight:500;line-height:1.3}
  fairystack-footer .session-toolbar-icon{display:block;width:18px;height:18px;margin-inline:2px;color:var(--menu-muted,currentColor)}
  fairystack-footer :is(#session-replies-open > span,.chat-unread-badge){position:static;order:1;margin-left:auto}
}
#new-session[aria-busy="true"]::after{content:"…"}
#session-search{position:fixed;inset:52px 12px auto auto;z-index:70;margin:0;width:min(620px,calc(100vw - 24px));max-height:calc(100dvh - 70px);box-sizing:border-box;overflow:auto;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);box-shadow:0 8px 32px #0003}
#session-search .session-search-input,#session-search .session-search-navigation{display:flex;align-items:center;gap:6px}
#session-search input{width:100%;min-width:0;min-height:42px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:var(--page);color:var(--ink);font:16px/1.3 system-ui}
#session-search input::placeholder,.reaction-picker input::placeholder,#session-library input::placeholder{color:var(--muted);opacity:1}
#session-search button{flex:none;min-width:40px;min-height:40px;padding:4px;border:1px solid var(--line);border-radius:7px;background:var(--page);color:var(--ink);font-size:20px}
#session-search button:disabled{background:var(--surface);color:var(--muted);opacity:1;cursor:default}
#session-search [role="status"]{flex:1;margin-block:8px;font-size:12px;color:var(--muted);background:var(--surface)}
#session-search [data-preview]{border-top:1px solid var(--line);padding-top:8px;font-size:13px;line-height:1.45;overflow-wrap:anywhere;user-select:text}
::highlight(session-search){background:#ffe27a;color:#302300}
.session-search-target{outline:2px solid var(--accent);outline-offset:3px;scroll-margin-top:230px}
html[data-theme="dark"] ::highlight(session-search){background:#ba8a25;color:#090704}
@media(max-width:700px){#session-search{inset:49px 8px auto;width:calc(100vw - 16px)}}

/* Personal session replies: shared transcript, private unread state. */
#session-replies-open,#room-link,#session-restore-open{position:relative;cursor:pointer}
body[data-execution="true"] #timeline-activity-panel,#room-link{padding:0}
#room-link[aria-current="page"],.member-mentions>button:is([aria-selected=true],:hover){background:var(--tab-selected);color:var(--ink)}
#session-replies-open span{position:absolute;top:1px;right:1px;border-radius:12px;min-width:17px;padding:1px 4px;font:700 11px system-ui;background:var(--accent);color:var(--surface)}
#session-replies{width:min(460px,calc(100vw - 24px));max-height:75dvh;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink)}
#session-replies::backdrop{background:rgba(0,0,0,.4)}
#session-replies header{display:flex;align-items:center;justify-content:space-between;gap:12px}
#session-replies button,#composer-reply button{min-width:32px;min-height:32px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);cursor:pointer}
#session-replies [role=status]{font-size:13px;color:var(--muted);background:var(--surface)}
#session-replies [data-replies-list]{display:grid;gap:8px}
#session-replies [data-replies-list]>a{display:grid;gap:5px;padding:12px;border:1px solid var(--line);border-radius:10px;text-decoration:none;background:var(--surface);color:var(--ink);overflow-wrap:anywhere}
#session-replies [data-unread=true]{border-left:4px solid var(--accent)!important;background:var(--tab-selected)!important;color:var(--ink)}
#session-replies small{color:var(--muted)}
.member-mentions{position:fixed;inset:auto;margin:0;box-sizing:border-box;overflow:auto;padding:5px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);box-shadow:0 8px 28px #0004}
.member-mentions>button{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:7px 9px;border:0;border-radius:6px;background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.member-mentions>button>span:last-child{min-width:0;overflow-wrap:anywhere}
#composer-reply{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 10px;padding:8px 10px;border-left:3px solid var(--accent);border-bottom:1px solid var(--line);background:var(--tab-selected);color:var(--ink);font-size:12px}
#composer-reply>[data-reply-label]{display:grid;gap:3px;min-width:0;overflow-wrap:anywhere}
#composer-reply [data-reply-author]{color:var(--ink);font-weight:650;text-decoration:none}
#composer-reply label{grid-column:1;display:flex;align-items:center;gap:5px;color:var(--ink)}
#composer-reply input{width:16px;height:16px;margin:0;accent-color:var(--accent)}
#composer-reply button{grid-column:2;grid-row:1 / span 2;min-height:44px;padding:5px 9px;white-space:nowrap;font-size:12px}
#composer-reply button:is(:hover,:focus-visible){background:var(--page);color:var(--ink);border-color:var(--accent)}
.message.has-reply-button{display:grid;grid-template-columns:minmax(0,1fr) 28px;column-gap:8px}
.message.has-reply-button>*{grid-column:1 / -1}
.message.has-reply-button>.message-body{grid-column:1;align-self:last baseline}
.message>.message-reply-button{grid-column:2;align-self:last baseline;z-index:2;display:block;width:28px;height:20px;margin:0;padding:0;border:0;background:transparent;color:var(--muted);box-shadow:none;font:16px/20px system-ui;cursor:pointer}
.message.member-message.has-reply-button{grid-template-columns:calc(var(--member-header-height) + var(--member-header-gap) + 1lh) minmax(0,1fr) 28px}
.message.member-message.has-reply-button>:not(.member-avatar){grid-column:2 / -1}
.message.member-message.has-reply-button>.member-avatar{grid-column:1}
.message.member-message.has-reply-button>.message-body{grid-column:2}
.message.member-message.has-reply-button>.message-reply-button{grid-column:3;grid-row:2}
.message-reply-button:hover{background:transparent;color:var(--ink)}
.message-reply-button svg{display:block;width:20px;height:20px;margin:auto}
.message .message-reply-context{display:block;width:fit-content;max-width:100%;padding:3px 0;margin:0 0 6px;color:var(--accent);background:transparent;font-size:12px;text-decoration:none;white-space:normal;overflow-wrap:anywhere}
#composer-reply [data-reply-author]:is(:hover,:focus-visible),.message-reply-context:hover{text-decoration:underline}
.attach-files-label,.session-menu-label,#new-session[aria-busy="true"] .session-toolbar-icon,#background-work-active:empty,.message-reaction-list:empty,#session-search[data-mode="search"] #system-sessions{display:none}
.background-active-list{border-top:1px solid var(--line);background:var(--surface);color:var(--ink)}
.background-active-summary{display:flex;align-items:center;gap:8px;min-height:32px;padding:0 10px;font-size:12px;cursor:pointer;list-style:none}
.background-active-summary::-webkit-details-marker{display:none}
.background-active-summary::before{content:'›';flex:none;font-size:16px;line-height:1}
.background-active-list[open]>.background-active-summary::before{transform:rotate(90deg)}
.background-active-count{flex:none;font-weight:600}
.background-active-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);background:var(--surface)}
.background-active-error{flex:none;color:var(--ink);background:var(--surface);font-weight:600}
.background-active-summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.background-active-details{padding:0 10px 6px;max-height:26vh;overflow:auto}
.background-active-job{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:5px 0;font-size:12px}
.background-active-description{flex:1 1 220px;min-width:0;overflow-wrap:anywhere}
.background-active-description strong{font-weight:600}.background-active-description small{display:block;color:var(--muted);background:var(--surface)}
.background-active-job a,.background-work-actions a{color:var(--ink);background:var(--surface);text-decoration:underline;text-underline-offset:3px}
.background-active-job button,.background-work-actions button{font:inherit;padding:5px 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);cursor:pointer}
.background-active-job button:disabled,.background-work-actions button:disabled{background:var(--page);color:var(--muted);cursor:wait}
.background-work-actions{display:flex;align-items:center;gap:12px;margin:8px 0}
.background-stop-error{flex-basis:100%;background:var(--surface);color:var(--ink)}
@media(max-width:620px){.background-active-description{flex-basis:100%}.background-active-job :is(a,button){min-height:32px;display:inline-flex;align-items:center}}

/* Shared emoji memberships, with a touch-sized picker and stable message nodes. */
.message-reactions{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:0;white-space:normal}
.message-reactions:has(.message-reaction-status:not([hidden])){margin-top:8px}
.message-reaction-list{position:absolute;bottom:0;left:6px;max-width:calc(100% - 64px);transform:translateY(50%);z-index:2;display:flex;gap:5px;padding:4px;overflow-x:auto;scrollbar-width:none}
.message-reaction-list::-webkit-scrollbar{display:none}
.message-reaction-slot{display:inline-flex;flex:none}
.message-reactions button{min-height:28px;min-width:32px;padding:2px 8px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);font:13px/1.5 system-ui;cursor:pointer}
.message-reactions .message-reaction[aria-pressed=true]{border-color:var(--accent);background:var(--tab-selected);color:var(--ink);box-shadow:inset 0 0 0 1px var(--accent)}
.message-reactions button:disabled{opacity:1;color:var(--muted);background:var(--surface);cursor:default}
.message-reactions .message-reaction-add{position:absolute;top:0;right:10px;transform:translateY(-50%);z-index:2;font-size:16px;color:var(--muted);background:var(--surface);border-style:solid}
.message-reaction-add svg{display:block}
.message-progress-body .message-reaction-add{top:-1px;transform:none}
.message-reaction-status{font-size:12px;color:var(--muted);background:var(--surface);overflow-wrap:anywhere}
.message-reaction-slot .trace-dot-tooltip{max-width:min(380px,calc(100vw - 24px));white-space:normal;overflow-wrap:anywhere}
.reaction-picker{position:fixed;inset:auto;margin:0;width:min(330px,calc(100vw - 24px));max-height:min(390px,70dvh);padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:0 12px 35px #0003;overflow:auto}
.reaction-picker header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.reaction-picker button{padding:3px;border:1px solid transparent;border-radius:8px;background:var(--surface);color:var(--ink);min-height:36px;min-width:32px;cursor:pointer}
.reaction-picker header button{font-size:20px;border-color:var(--line)}
.reaction-picker input{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--page);color:var(--ink);font:14px system-ui}
.reaction-picker-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;margin-top:9px}
.reaction-picker-grid button{font-size:23px;line-height:1.3}
.reaction-picker button:hover{background:var(--tab-selected);color:var(--ink);border-color:var(--line)}
.reaction-picker-label{min-height:18px;margin:8px 0 0;font:12px/1.4 system-ui;color:var(--muted);background:var(--surface)}
.message-reactions :focus-visible,.reaction-picker :focus-visible,#session-library :is(button,input,select,textarea,a):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
#voice-feed-dismiss{flex:none;min-height:24px;padding:3px 8px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:6px;font-size:12px;cursor:pointer}#voice-feed-dismiss:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
#voice-feed-status[data-tone="info"]{color:var(--ink);background:var(--surface)}#voice-feed-status[data-tone="muted"]{color:var(--muted);background:var(--surface)}
/* Search owns the catalog and transcript matches; a whole row opens its session. */
#session-library{padding:4px 14px 14px;color:var(--ink);background:var(--surface)}
#session-library button{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:7px 10px;cursor:pointer}
#session-library button:hover{background:var(--tab-selected);color:var(--ink)}
#session-library button:disabled{background:var(--page);color:var(--muted);cursor:default}
#session-library [data-history-list]{list-style:none;padding:0;margin:8px 0}
#session-library [data-history-list]>li{border-top:1px solid var(--line)}
#session-library [data-history-open]{display:grid;gap:6px;width:100%;text-align:left;border:0;border-radius:0;padding:12px 4px}
#session-library [data-history-open] p{margin:0;color:var(--ink)}
#session-library .history-session-name{font-weight:600;font-size:14px;color:inherit;overflow-wrap:anywhere}
#session-library small{font-size:12px;line-height:1.5;color:var(--muted)}
#session-library [data-history-status]{font-size:13px;color:var(--ink)}

/* One selectable headline; operational detail stays in the session API. */
#session-digest{background:var(--surface);color:var(--ink);overflow-wrap:anywhere;user-select:text}
#session-digest [data-digest-gist]{margin:0;font-weight:600}
#session-digest [data-digest-state]{margin:10px 0 0;color:var(--danger);background:var(--surface)}
#session-search #session-library button{font-size:13px;min-width:0;padding:6px 9px}
#session-search[data-mode="restore"] [data-history-list]{max-height:195px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
#session-search[data-mode="restore"] #session-library [data-history-open]{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:3px 4px;min-height:38px}
#session-search[data-mode="restore"] #session-library .history-session-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500}
#session-search[data-mode="restore"] [data-history-list] small{font-size:11px;white-space:nowrap}
#session-search [data-search-restore]{display:block;margin-top:8px;padding:6px 9px;font-size:13px}
#session-search [data-preview] p{margin:6px 0;white-space:pre-wrap}
#session-search #system-sessions{overflow-x:auto;border-top:1px solid var(--line)}
#session-search #system-sessions summary{font-size:14px;padding:10px;cursor:pointer}
#session-search .session-search-controls{position:sticky;top:-10px;z-index:1;margin:-10px -10px 0;padding:10px;background:var(--surface);color:var(--ink);border-bottom:1px solid var(--line)}
#session-search:not(:has(.session-search-navigation:not([hidden]))) .session-search-controls{border-bottom:0}
@media(max-width:520px){#session-search[data-mode="restore"] [data-history-list]{max-height:225px}#session-library{padding:4px 10px 10px}#session-search[data-mode="restore"] [data-history-list] small{display:none}#session-search[data-mode="restore"] #session-library [data-history-open]{min-height:44px}}
.message-stream-error{display:block;margin-top:7px;background:var(--surface);color:var(--danger);font-size:12px}
.message[data-stream-state="streaming"] .message-body::after{content:"";display:inline-block;width:2px;height:1em;margin-left:3px;vertical-align:-.1em;background:var(--ink);animation:message-writing 1s steps(2,end) infinite}
.message-progress:has([data-stream-state="streaming"])>summary::after{content:" · Writing…";color:var(--muted);background:var(--surface);font-weight:400}
@keyframes message-writing{50%{opacity:0}}
@media(prefers-reduced-motion:reduce){[data-state="running"]>.trace-dot,.message[data-stream-state="streaming"] .message-body::after,#session-loading .spinner{animation:none}}
/* Jobs started by this session's background agents sit under their agent. */
#background-work tr:is([data-depth="1"],[data-depth="2"]) td:first-child{border-left:2px solid var(--line)}#background-work tr[data-depth="1"] td:first-child{padding-left:20px}#background-work tr[data-depth="2"] td:first-child{padding-left:38px}.background-active-job[data-depth="1"]{margin-left:16px}.background-active-job[data-depth="2"]{margin-left:32px}
/* Desktop docks the session sidebar (Lanes tree) on the left; the console shifts right of it. */
body{--session-sidebar:0px;padding-left:var(--session-sidebar)}
@media(min-width:621px){
 html:not([data-focused-surface]) body:not([data-execution="true"]).conversation-visible{--session-sidebar:clamp(320px,30vw,500px)}
 #conversation{--session-tabs-height:12px}
 #session-notes{top:12px}
 #composer-dock{left:calc(var(--session-sidebar) + var(--console-inline-gutter));width:calc(100% - var(--session-sidebar) - 2 * var(--console-inline-gutter))}
}

/* Task outcomes share the existing session work view and poll owner. */
.session-task-list{color:var(--ink);background:var(--surface);user-select:text}
.session-task-list>details{margin:10px 0;border-top:1px solid var(--line);padding-top:8px}
.session-task-list summary{display:flex;justify-content:space-between;gap:12px}
.session-task-list ul{list-style:none;padding:0;margin:8px 0}
.session-task-list li{display:flex;align-items:flex-start;gap:8px;padding:7px 0;color:var(--ink);background:var(--surface)}
.session-task-content{flex:1;min-width:0}
.session-task-close{flex:none;min-width:32px;min-height:32px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:var(--surface);font-size:20px;cursor:pointer}
.session-task-close:is(:hover,:focus-visible){color:var(--ink);background:var(--page)}
.session-task-close:disabled{color:var(--muted);background:var(--surface);cursor:wait}
.session-task-mark{flex:none;font-size:16px;line-height:1.2;color:var(--muted);background:var(--surface)}
.session-task-list [data-task-state=completed]>.session-task-mark{color:#195d31;background:#d9f4df}
.session-task-list [data-task-state=active]>.session-task-mark{color:var(--accent);background:var(--surface)}
.session-task-list .session-task-status{color:var(--ink);background:var(--surface)}
.session-task-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:3px}
.session-task-links a{color:var(--ink);background:var(--surface);text-underline-offset:3px}
.session-job-history{border-top:1px solid var(--line);padding-top:10px;margin-top:12px}
.session-job-history>.background-work-heading{margin-top:12px}
:where(html[data-theme=dark]) .session-task-list [data-task-state=completed]>.session-task-mark{color:#b5efc5;background:#203f2c}

/* Session outcomes stay directly reachable without opening session options. */
#composer .composer-actions #background-work-trigger{flex:none;min-height:34px;padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font-size:12px;font-weight:600;line-height:20px;white-space:nowrap}
#composer .composer-actions #background-work-trigger:is(:hover,:focus-visible){background:var(--page);color:var(--ink)}
@media(max-width:620px){
  #composer .composer-actions button{display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;flex:0 0 44px;width:44px;min-width:44px;height:44px;min-height:44px;box-sizing:border-box;margin-top:0;padding:0;border-radius:6px}
  #composer .composer-actions .composer-action-label,#composer .composer-actions #current-app-name{display:none}
  #composer .composer-actions .composer-action-short{display:block;font-size:10px;line-height:10px;font-weight:600;letter-spacing:.02em;color:inherit;background:transparent}
  #composer .composer-actions .voice-feed-control{flex:0 0 auto;min-width:44px}
  #composer .composer-actions #current-app{display:flex;flex:0 0 44px;width:44px;min-width:44px;max-width:44px;height:44px;box-sizing:border-box;flex-direction:column;justify-content:center;gap:2px;padding:0;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink)}
  #composer .composer-actions #current-app .current-app-identity{display:block;flex:none;height:20px}
  #composer .composer-actions #current-app-icon{width:20px;height:20px}
  #composer .composer-actions #current-app:has(#current-app-icon[hidden]) .current-app-launch{display:block;height:20px;font-size:22px;line-height:20px}
  #composer .composer-actions #current-app .current-app-launch,#composer .composer-actions #current-app:has(#current-app-icon[hidden]) .current-app-identity{display:none}
  #composer .composer-actions #current-app[aria-disabled="true"]{color:var(--muted);cursor:default}
}

#sign-in-dialog:not([open]){display:none}
#session-loading{display:flex;align-items:center;justify-content:center;gap:12px;min-height:min(36vh,260px);margin:0;padding:24px;color:var(--ink);background:var(--page);border-radius:12px;text-align:center;font-size:15px}
#session-loading .spinner{flex:none;width:22px;height:22px;border-width:3px;will-change:transform}
#session-loading[data-state="failed"] .spinner{visibility:hidden;animation-play-state:paused}
#session-loading[data-state="failed"]{color:var(--danger);background:var(--page)}
#session-replies .device-notifications{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink)}
#session-replies [data-push-toggle]{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px 12px;cursor:pointer}
#session-replies [data-push-toggle]:disabled{color:var(--muted);background:var(--surface);cursor:default}
#session-replies [data-push-status]{color:var(--muted);margin:8px 0 0;font-size:.9em}
#composer-delivery-status{margin:0;padding:7px 12px;background:var(--surface);color:var(--ink);border-bottom:1px solid var(--line);font-size:13px;line-height:1.4;white-space:normal;overflow-wrap:anywhere;user-select:text}
@media(max-width:620px){
  fairystack-footer>#composer-header>:is(button,#session-speed){display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;gap:5px;width:auto;min-width:0;min-height:30px;height:auto;margin:0;padding:4px 7px;font:600 12px/1.3 system-ui;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--ink)}
  fairystack-footer>#composer-header>#composer-session-reference{flex:0 0 auto;padding:3px 2px}
  fairystack-footer>#composer-header>#composer-status{flex:1 1 100%;order:1;min-height:0;padding:3px 2px;font-size:12px;white-space:normal}
  fairystack-footer>#composer-header>#context-meter{flex:0 1 auto;flex-wrap:nowrap;gap:4px;margin:0}
  fairystack-footer>#composer-header #context-meter .usage-track{flex:0 0 90px;width:90px}
  fairystack-footer>#composer-header>:is(#background-work-trigger,#attach-files,#clear-composer){order:2}
  fairystack-footer>#composer-header .composer-action-icon,fairystack-footer>#composer-header #attach-files svg{display:block;width:16px;height:16px}
  fairystack-footer>#composer-header>#composer-voice-details{order:3;gap:6px;padding-top:5px}
  fairystack-footer>#composer-header>#app-fps{order:4}
  fairystack-footer>#composer-header>.composer-width-pending[hidden]{display:none!important}
}

#composer-model .composer-model-effort:not(:empty)::before{content:" · "}
@media(max-width:620px){
  #composer .composer-actions #composer-model{display:flex;flex-direction:column;justify-content:center;align-items:center;flex:0 1 auto;min-width:0;max-width:110px;gap:1px;font-size:11px;line-height:1.2;color:var(--ink);background:var(--surface);user-select:text}
  #composer .composer-actions #composer-model>span{max-width:100%;overflow:hidden;text-overflow:ellipsis}
  #composer-model .composer-model-effort{font-size:10px;color:var(--muted)}
  #composer-model .composer-model-effort:not(:empty)::before{content:none}
}

html #sign-in-dialog.gate[open]{width:fit-content;min-height:0;margin:auto;padding:0;border:0;outline:0;overflow:visible;background:transparent;box-shadow:none}
