/* 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;--session-hint:#7c3aed}
/* @lat: [[session-live-state#Rules]] */
/* Decision: AGENTS.md Decisions > Session timer. Connection errors also show before a chat loads. */
:where(html[data-theme="dark"]){--danger:#ffb3be}

*{box-sizing:border-box}html[data-microphone-live]:not([data-engine=webkitgtk]),html[data-microphone-live]:not([data-engine=webkitgtk]) 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}
#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))}/* Decision: AGENTS.md Decisions > Child session rows */
#session-initial-task{min-width:0;max-width:min(900px,100%);box-sizing:border-box;width:min(640px,82%);margin-left:auto;margin-right:2%;border-color:#3a3c42;background:#2b2d31;color:#f2f3f5}
#session-initial-task>summary{color:#b5b8bf;font-size:12px;cursor:pointer}
#session-initial-task pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;min-width:0;margin:8px 0 0;font:inherit;color:inherit}
body{--message-base-ink:var(--ink);--message-base-muted:var(--muted);--message-base-accent:var(--accent);--message-base-line:var(--line);--message-base-surface:var(--surface);--message-base-page:var(--page);--message-base-selected:var(--tab-selected)}
/* Decision: AGENTS.md Decisions > Text. Nested surfaces use the page palette, not an outer own-message ink. */
.message{--ink:var(--message-base-ink);--muted:var(--message-base-muted);--accent:var(--message-base-accent);--line:var(--message-base-line);--surface:var(--message-base-surface);--page:var(--message-base-page);--tab-selected:var(--message-base-selected);color:var(--ink);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)}
/* Your own prompts and their previews share one readable blue surface. */
/* Decision: AGENTS.md Decisions > Prompt preview */
.user-prompt,.message.user.own-message:is(:not([data-provenance="machine"]),.routed-user-request),body.conversation-visible .message.user.own-message:is(:not([data-provenance="machine"]),.routed-user-request),body.conversation-archived .message.user.own-message:is(:not([data-provenance="machine"]),.routed-user-request){--ink:#ffffff;--muted:#dcebff;--accent:#ffffff;--line:#80bcff;--surface:var(--own-raised);--page:var(--own-raised);--tab-selected:var(--own-raised);border-color:var(--own-bubble);background:var(--own-bubble);color:var(--ink)}
:is(.own-message,.user-prompt){--own-bubble:#0062cc;--own-raised:#075bb4}
html[data-theme="dark"] :is(.own-message,.user-prompt){--own-bubble:#0865cf;--own-raised:#0a5db8}
.message.user.own-message:is(:not([data-provenance="machine"]),.routed-user-request) a{color:#ffffff;text-decoration:underline}.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}
.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-perch{position:relative;height:0}#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 small{display:block;color:var(--muted);padding-top:12px}
.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{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}

#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;-webkit-user-select:text;user-select:text}.runtime-instructions-button{padding:1px 4px;border:0;border-radius:3px;background:transparent;color:var(--muted);font-size:11px;font-weight:400;line-height:1.4;cursor:pointer}.runtime-instructions-button:is(:hover,:focus-visible){background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--ink)}.runtime-instructions-button:focus-visible{outline:1px solid currentColor;outline-offset:2px}#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}#voice-feed[data-state="connecting"]{cursor:wait}#voice-feed .microphone-error{color:var(--danger)}#surface-state.error{border-color:var(--danger);color:var(--danger)}
#voice-feed .microphone-icon{width:20px;height:20px;overflow:visible}
#voice-feed .microphone-pin{display:none;position:absolute;top:1px;right:1px;width:14px;height:14px;padding:2px;box-sizing:border-box;border-radius:50%;background:var(--accent);color:var(--surface);stroke-width:3}
#voice-feed[data-state="on"][data-focus="here"][data-pinned="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
#voice-feed[data-state="on"][data-focus="here"][data-pinned="true"] .microphone-pin{display:block}
#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 article :is(ul,ol){list-style:none}.message article li{position:relative}.message article li::before{position:absolute;-webkit-user-select:none;user-select:none}.message article ul>li::before{content:"";inset-inline-start:-.95em;top:calc(.5lh - .17em);width:.34em;height:.34em;border-radius:50%;background:currentColor}.message article ul ul>li::before{box-sizing:border-box;border:1.5px solid currentColor;background:transparent}.message article ol>li::before{content:counter(list-item) ".";inset-inline-end:100%;padding-inline-end:.45em;font-variant-numeric:tabular-nums}
.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 {min-width:0}.message.user .message-body{max-height:min(620px,60vh);overflow-y:auto;scrollbar-gutter:stable}.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"] {color:var(--danger)}
/* Decision: AGENTS.md Decisions > Text. Metadata uses the message surface’s readable ink. */
.message.user .message-meta{justify-content:flex-start;flex-wrap:wrap;--muted:var(--ink)}
.message-repeat-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.3em;padding:0 5px;border:1px solid var(--danger);border-radius:999px;background:var(--tab-surface,var(--surface));color:var(--ink);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}
.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-controls .message-permalink{margin-left:0}
.message-permalink{display:inline-flex;margin-left:auto;padding:0;border:0;background:none;cursor:pointer;color:var(--muted);font:11px/1.4 ui-monospace,monospace;text-decoration:none}.message-permalink:hover,.message-permalink:focus-visible{color:var(--ink)}
.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(--ink);background:var(--surface);font-size:11px}.message-retry{display:block;margin-top:6px;padding:1px 9px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--accent);font-size:11px;font-weight:700;cursor:pointer}.message-retry:is(:hover,:focus-visible){background:color-mix(in srgb,var(--accent) 12%,transparent)}.message.delivery-failed,#composer-context #composer-status.error{border-color:var(--danger)}
.handoff-context-message .message-body{overflow-wrap:anywhere}.runtime-panel{display:grid;gap:8px;align-content:start;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--page)}.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}
.session-runtime-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)}.session-runtime-popover>header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--line)}.session-runtime-popover h2{margin:0;font-size:13px}.session-runtime-popover>header button{padding:1px 6px;background:transparent;color:var(--ink)}.session-runtime-popover .runtime-panel{gap:7px;padding:9px}

#session-account:focus-visible,#composer-status:focus-visible,#background-work .background-work-watch: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}
}
#current-app{display:flex;align-items:center;gap:5px;min-width:0;max-width:min(140px,35vw);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-excessivecode-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/excessivecode-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:16px;height:111px;border-radius:0}
#composer #input[data-compact-font]{font-size:12.6px}
.composer-actions{align-items:center;padding:6px;border-top:1px solid var(--divider);-webkit-user-select:none;user-select:none}.composer-actions button{margin-top:0}
body.conversation-visible .message.user[data-provenance="machine"]:not(.routed-user-request){border-color:#8ca0aa;background:rgba(233,239,242,.96);color:var(--message-base-ink);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/excessivecode-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;--session-hint:#c4a7ff;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/excessivecode-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"]:not(.routed-user-request){border-color:#718a96;background:rgba(35,54,63,.97);color:var(--message-base-ink)}
/* 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/excessivecode-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"] #slow-lane {visibility:hidden}
.gate>#access-message{position:relative;padding:8px 12px;border-radius:6px;background:var(--surface);color:var(--ink);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}
/* 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 :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 :is(a,.auth-forgot-password,.auth-toggle a){color:var(--gate-link);font-weight:800}
@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}
#provider-activation,#provider-dialog{width:min(520px,calc(100vw - 32px));padding:24px;border:1px solid var(--line);border-radius:14px;background:var(--surface,#fff);color:var(--ink,#202020);text-align:left;box-shadow:0 12px 40px #10251f40}
#provider-dialog{max-height:90dvh;overflow-y:auto;scrollbar-gutter:stable;overscroll-behavior:contain}#provider-dialog::backdrop,#sign-in-dialog::backdrop{background:#10251f99}
#provider-access h1{margin:0 24px 16px 0;font-size:22px;line-height:1.25;outline:none}#provider-access p{margin:12px 0;font-size:15px;line-height:1.5;overflow-wrap:anywhere}
#provider-access .provider-card{padding:12px;margin:12px 0;border:1px solid var(--line);border-radius:10px;background:var(--surface,#fff);color:var(--ink,#202020)}
#provider-access .provider-card header{display:flex;align-items:center;gap:12px;margin-bottom:8px}#provider-access .provider-card h2{margin:0;font-size:16px;line-height:1.3}
#provider-access .provider-logo{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:7px;background:#fff;color:#181818}#provider-access .provider-logo img{display:block;width:30px;height:30px;object-fit:contain}
#provider-access .provider-account{display:block;width:100%;padding:6px 0;margin:0;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;background:transparent;color:var(--ink);text-align:left;font-size:13px;overflow-wrap:anywhere;white-space:normal}
#provider-access .provider-account:hover{background:var(--tab-selected,var(--page))}
#provider-access .provider-connect,#session-account-tooltip .provider-connect{display:inline-block;width:auto;max-width:100%;margin-top:12px;padding:7px 12px;border:1px solid #d76b26;border-radius:7px;background:#fff;color:#512b12;box-shadow:none;font-size:13px;font-weight:600;line-height:1.4;white-space:normal}
#provider-access .provider-connect:hover:not(:disabled),#session-account-tooltip .provider-connect:hover:not(:disabled){background:#fff3e9;color:#512b12}
:where(html[data-theme="dark"]) #provider-access .provider-connect,:where(html[data-theme="dark"]) #session-account-tooltip .provider-connect{background:var(--surface);color:var(--ink);border-color:#ea9d64}
#provider-access [data-next],#provider-continue{display:block;width:100%;margin-top:20px;padding:12px 16px;font-size:16px}#provider-access .provider-back{display:block;width:auto;background:transparent;color:var(--ink);border:0;box-shadow:none;padding:5px 0;margin:0 0 12px;font-size:14px;text-decoration:none}
#provider-access .provider-success-choice{display:block;width:100%;text-align:left;margin:16px 0 0;padding:12px 16px;font-size:16px;background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:none}
#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 var(--line);border-radius:9px;cursor:default}#provider-access [data-device-code]{padding:14px;border:1px solid var(--line);border-radius:9px;font:700 25px ui-monospace,monospace;letter-spacing:.07em;text-align:center;background:var(--surface);color:var(--ink)}
#provider-access form label{display:grid;gap:8px;font-size:14px}#provider-access form input{width:100%;padding:10px;border:1px solid var(--line);border-radius:7px;background:var(--surface,#fff);color:var(--ink,#202020);font-size:16px}
#provider-access [data-go-form]:not([hidden]){display:grid;gap:12px}
#composer-status{flex:1 1 12ch;min-width:0;overflow:hidden;text-overflow:ellipsis;margin:0;line-height:1.4;white-space:nowrap;-webkit-user-select:text;user-select:text;background:transparent;text-align:left;max-width:12ch;font-size:12px;color:inherit;border:1px solid transparent;border-radius:7px;padding:3px 7px;text-decoration:none}#composer-status.error {color:var(--danger);cursor:pointer}
.gate:has(>#provider-activation:not([hidden])){place-content:start center;padding-top:48px}#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}}
#prompt-trace{color:var(--ink);background:var(--surface);font-size:12px;line-height:1.25}
@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)}}
.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;-webkit-user-select:text;user-select:text}
.message-link-address{max-width:min(480px,calc(100vw - 16px));overflow-wrap:anywhere}
.link-address-label{display:block;font-weight:600}.message-link-address .message-link-url{color:var(--muted,var(--ink));font:11px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace}
#prompt-trace p{margin:4px 0;color:var(--muted);overflow-wrap:anywhere}
#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-next],#provider-access [data-status]{overflow-wrap:anywhere;white-space:normal}
/* Decision: AGENTS.md Decisions > Composer footer. Former header items sit at the left of the footer row. */
#composer-status-slot,#composer-fps-slot{display:contents}
#composer-context{display:flex;flex:0 0 auto;max-width:100%;height:var(--composer-footer-h);align-items:center;flex-wrap:nowrap;overflow:hidden;gap:4px 6px;min-width:0;margin:0;padding:0;border:0;background:transparent;color:var(--ink);-webkit-user-select:none;user-select:none}
#composer-context #app-fps{position:static;inset:auto;z-index:auto;max-width:100%;background:var(--surface);color:var(--ink);border-color:var(--line)}
/* Decision: AGENTS.md Decisions > Microphone ask. Keep the ask and draft in separate flow rows. */
#composer-entry{display:grid;min-width:0}
#composer-entry>:is(#input,.composer-speech-wrap){grid-area:2/1;min-width:0}
#composer-entry>#microphone-ask{grid-area:1/1;min-width:0}
#composer-entry>#microphone-ask{position:relative;inset:auto;width:calc(100% - 24px);max-width:480px;margin:8px auto;padding:16px;box-shadow:none}
#microphone-ask p{margin:8px 0 12px}
#microphone-ask .account-switch-options{justify-content:flex-end}
@media(max-height:700px){#composer-entry>#microphone-ask{margin:4px auto;padding:8px}#composer-entry>#microphone-ask h2{margin:0 0 4px}#composer-entry>#microphone-ask p{margin:4px 0 8px;line-height:1.3}#composer-entry>#microphone-ask button{padding:6px 8px}}
#microphone-ask{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}
#microphone-ask h2{margin:0 32px 12px 0;font-size:1.1rem}
#microphone-ask p{line-height:1.5;overflow-wrap:anywhere}
#provider-dialog-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"]) #microphone-ask{background:#182f27;color:#edf6ea;border-color:#608a7a}: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"]) #microphone-ask{--surface:#182f27;--ink:#edf6ea;--muted:#b8cbbd}
.message.user:is([data-provenance="human"],.routed-user-request) .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}
.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}
.session-id-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)}
.session-id-copied[data-state="failed"]{background:var(--danger);color:var(--surface)}
.session-id-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){.session-id-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-context #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-context #composer-session-link[hidden]{display:none}
#current-app-share,.factory-idea-share{position:relative;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(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent}
#current-app-share[hidden],#phone-app-share[hidden]{display:none!important}
#phone-app-share{position:relative}
/* Decision: AGENTS.md Decisions > App share. Phones hide the footer context group, so phone Share sits in the button row. */
@media(min-width:621px){#phone-app-share{display:none!important}}
#current-app-share:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
#current-app-share svg,.factory-idea-share svg{width:14px;height:14px}
#composer-context #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}
.message.user{width:min(640px,82%);margin-left:auto;margin-right:2%}
.message.user[data-provenance="machine"]:not(.routed-user-request){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"]:not(.routed-user-request){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])){padding-bottom:var(--conversation-scroll-tail,0px)}
#slow-lane:has(>#messages:not([hidden])):has(>#composer-dock:not([hidden])){padding-bottom:calc(var(--composer-clearance,390px) + var(--conversation-scroll-tail,0px))}
#timeline-list li:last-child{margin-bottom:0}

#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}
#voice-feed:not([data-state="error"],[data-state="denied"]) .microphone-error,#voice-feed:is([data-state="error"],[data-state="denied"]) :is(.microphone-on,.microphone-off),#voice-feed:not([data-state="off"]) .microphone-off,#voice-feed[data-state="off"] .microphone-on,.gate:not([data-activation-visible="true"])::before,.gate>#access-message:empty,#composer-voice-details{display:none}
.message.user:is([data-provenance="human"],.routed-user-request) .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:is([data-provenance="human"],.routed-user-request) .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;-webkit-user-select:text;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-model{display:inline-flex;align-items:center;flex:0 0 auto;white-space:nowrap;cursor:pointer}#session-runtime-body{padding:10px 10px 0}#session-runtime-state{margin:6px 10px 10px;color:var(--muted);font-size:11px}#session-runtime-state:empty{display:none}@media(max-width:620px){#session-runtime select{font-size:16px}}
#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:is([data-provenance="human"],.routed-user-request) .message-meta{gap:3px}:is(#messages,.session-slide) .message.user .message-stamp{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-context 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}
  #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)}
}
/* 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 .composer-actions>excessivecode-footer{flex:1 1 0;min-width:0;align-self:stretch}
#composer .composer-actions:has(>excessivecode-footer) .voice-feed-control{flex-grow:0}
/* The phone menu has one list; keep the live controls and their popovers. */
.composer-menu-label{display:none}
html:has(excessivecode-footer[data-menu-open]),body:has(excessivecode-footer[data-menu-open]){overflow:hidden}

: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}
.session-slide-heading{position:fixed;z-index:101;overflow:hidden;pointer-events:none;background:var(--page);color:var(--ink)}
.session-slide-heading>span{position:absolute;inset:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;will-change:transform}
/* Keep the actual backdrop painted; only one transcript may contribute pixels. */
body.session-sliding #slow-lane>:not(#composer-dock):not(.session-slide-live){opacity:0}
/* The phone's in-flow running summary slides as part of the outgoing copy. */
/* 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"] #prompt-trace-panel{margin-block:18px}

#app-session-spend tr[data-paused=true] th,#composer-context #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 .json-fields { margin: .55rem 0; white-space: normal; } .message .json-fields > dt { margin-top: .45rem; color: var(--muted); font-size: 12px; font-weight: 600; } .message .json-fields > dd { margin: 0; }
.message .json-fields .json-fields, .message .json-items { margin: .2rem 0; padding-left: .7rem; border-left: 2px solid var(--line); list-style: none; white-space: normal; }
.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}#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:6px 6px 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;-webkit-user-select:text;user-select:text;max-height:25vh;overflow:auto;position:relative;padding-right:46px}
.generated-image-status button{margin-left:4px}
:is(.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(.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}
.session-task-list summary>span{color:var(--muted);background:var(--surface)}
/* 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}
.message.generated-image-message,#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 {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. */
/* One button shape for the whole action bar; individual buttons only change colour. */
/* One size and corner for every control in the composer bar, including the footer icons inside it (platform-footer.css reads these). */
.composer-actions{--bar-control-size:36px;--bar-control-radius:6px}
.composer-actions :where(button){display:inline-flex;flex:none;align-items:center;justify-content:center;gap:6px;box-sizing:border-box;min-height:var(--bar-control-size);margin:0;padding:5px 10px;border:1px solid var(--line);border-radius:var(--bar-control-radius);background:var(--surface);color:var(--ink);font-size:13px;font-weight:600;line-height:20px;white-space:nowrap;box-shadow:none;text-shadow:none;cursor:pointer}
.composer-actions :where(#voice-feed){width:var(--bar-control-size);padding:0}
.composer-actions :where(button):not(:disabled):is(:hover,:focus-visible){background:var(--page)}
.composer-actions :where(button):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
#composer .composer-actions :is(#clear-composer,#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 #clear-composer{border-color:#668374;background:#f3f6f2;color:#2a493e}
#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}
.composer-action-short{display:none}
.composer-action-icon{display:none;width:20px;height:20px;flex:none}
@media(max-width:620px){
  #composer-context :is(#background-work-trigger,#attach-photo){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-context #composer-status{flex:1 1 auto;max-width:none}
  #composer-frame #composer-context,#composer .composer-action-label,#background-work th:last-child,#background-work td:last-child{display:none}
  #composer-context :is(#background-work-trigger,#attach-photo) .composer-action-icon,#composer .composer-action-icon{display:block}
  /* Decision: AGENTS.md Decisions > Viewed session badge */
  #composer .composer-speech-wrap{display:grid;grid-template-rows:100px 26px}
  /* A narrow Mac or PC window is still a desktop: keep the desktop field height. */
  html[data-desktop-composer="true"] body:not([data-super-voice="true"]) #composer .composer-speech-wrap{grid-template-rows:114px 26px}
  #composer textarea{height:100%;min-height:100%;max-height:100%;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 .composer-speech-wrap{grid-template-rows:70px 26px}
  body[data-composer-editing="true"] #composer .composer-actions{padding:3px 6px;gap:4px}
  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 .training-light{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle;box-shadow:0 0 0 1px var(--line)}#session-account-tooltip .training-light.off{background:#2e9d5b}#session-account-tooltip .training-light.on{background:#d0414f}#session-account-tooltip .training-light.unconfirmed{background:var(--muted)}#session-account-tooltip .training-light:focus-visible{outline:2px solid #447a59;outline-offset:2px}
#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)}
/* Shared label typography; interactive labels retain a hover affordance. */
:is(#composer-session-id,#session-account,#current-app,#composer-model,#composer-status){
  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-context :is(#session-account,#current-app,#composer-model,#composer-status):hover{
  background:transparent;box-shadow:none;text-decoration:underline;text-underline-offset:3px;
}
#composer-model:focus-visible,#composer-context :is(#session-account,#current-app,#composer-status):focus-visible{outline:2px solid var(--accent);outline-offset:3px}
/* Each metadata item shares one visible boundary in both header layouts. */
#composer-context :is(#composer-session-reference,#session-account,#current-app,#composer-model,#composer-status){
  border:1px solid var(--line);border-radius:6px;padding:4px 8px;
  color:var(--ink);background:transparent;margin-inline-start:0;
}
#composer-context #current-app{max-width:min(140px,35vw)}
#composer-context #composer-status{flex:0 1 16ch;max-width:16ch}
#composer-status.safety-guard,#composer-context #composer-status.safety-guard{
  flex:0 1 auto;max-width:100%;white-space:normal;overflow-wrap:anywhere;
  padding:4px 8px;border:1px solid var(--skin-warn,var(--accent));border-radius:999px;
  background:var(--skin-warn-bg,var(--tab-selected));color:var(--skin-warn,var(--ink));font-weight:600;
}
@media(max-width:620px){#composer-frame>#composer-status.safety-guard{display:block;width:fit-content;max-width:calc(100% - 16px);margin:6px 8px}}
/* Compact recorded tool count and elapsed timer. */

/* Read-only execution ledger and event inspector. */
/* 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(excessivecode-footer,#session-tabs,#prompt-trace-panel,#activity-status-detail){display:none!important}
body[data-execution="true"] #execution-turns{height:100%;min-height:0}
/* Every saved inspector field is a first-class ledger column. */
/* Fitted ledger: a selected cell has a separate, selectable full-value reader. */
.message.user .runtime-instructions-button,body[data-execution="true"] #timeline-list .timeline-summary {white-space:nowrap}
#timeline-list [data-column="Saved event JSON"] :is(pre,[role="status"]) {display:none}
#background-work-trigger,#attach-photo,#session-account-tooltip tr[data-switchable="true"] {cursor:pointer}

#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}

@media(max-width:620px){#current-app-tooltip{padding:14px}}
/* Its own row under the message, never over the typed text. */
#voice-feed-incident{display:flex;min-width:0;padding:0 6px 4px;gap:6px;align-items:center;justify-content:flex-end}
#voice-feed-incident:not(:has(>:not([hidden]))){display:none}
.composer-speech-wrap{position:relative;min-width:0;overflow:hidden}
.composer-speech-field{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}
.composer-speech-field>textarea{flex:1;min-height:0}
.composer-speech-field>.composer-speech-mirror{flex:none;max-height:28px;overflow:auto;white-space:nowrap;color:var(--ink);pointer-events:auto}
.composer-speech-mirror{position:relative;user-select:none}

.voice-clip-strip{display:inline;white-space:normal;color:var(--ink);--clip-saved:#5f6b70;--clip-sending:#2f6fd6;--clip-retrying:#a86d00;--clip-words:#22804a;--clip-word-ink:#fff}.voice-clip-strip[hidden]{display:none}
.voice-clip-strip>.voice-clip{margin-inline-start:4px;vertical-align:middle;pointer-events:auto}
:where(html[data-theme="dark"]) .voice-clip-strip{--clip-saved:#d3dcdf;--clip-sending:#7aa7f0;--clip-retrying:#f0c26b;--clip-words:#7fd6a5;--clip-word-ink:#102318}
.voice-clip{position:relative;flex:0 0 auto;height:18px;display:inline-flex;align-items:center;justify-content:center;font:600 11px/1 system-ui;font-variant-numeric:tabular-nums;color:var(--clip-word-ink);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="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="failed"]{background:var(--danger)}
.voice-clip:is(:hover,:focus-visible)::after{content:attr(data-tip);position:absolute;bottom:24px;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}
.voice-clip-strip[data-preview-only="true"]{border-color:transparent;background:transparent;padding:0;color:var(--muted)}
.voice-clip[data-preview="true"]{height:14px;border-radius:0;border-bottom:2px solid var(--line);background:transparent;color:var(--muted);font-size:10px;font-weight:400;animation:none;transition: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;-webkit-user-select:text;user-select:text;cursor:copy}#voice-feed-status[data-copied]::before{content:'Copied · ';color:var(--ink)}
@media(max-width:620px){#voice-feed-status:not([hidden]){-webkit-line-clamp:1}}

/* Text shows main-chat messages only; updates stay hidden. */
/* Decision: AGENTS.md Decisions > Progress */
@media(min-width:1100px){
 #slow-lane>:is(#messages,#messages-more,#session-initial-task){margin-inline:0;box-sizing:border-box}
 #slow-lane #messages>.message.assistant{width:100%;max-width:900px;margin-inline:0;box-sizing:border-box}
}
}

/* File attachments reuse the composer controls on desktop and mobile. */
.message-attachment .generated-image-status{display:block;font-size:12px;line-height:1.4;color:var(--muted);background:var(--surface)}
.message-attachment .generated-image-link:focus-visible,#session-search :is(input,button):focus-visible,#session-search-open:focus-visible,#session-replies :focus-visible,.background-active-job :is(a,button):focus-visible,.background-work-actions :is(a,button):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-replies-open{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,#super-navigation .session-toolbar-icon{display:block;flex:none;width:20px;height:20px}
@media(max-width:620px){
  excessivecode-footer > #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}
  excessivecode-footer .session-menu-label{display:block;font-size:15px;font-weight:500;line-height:1.3}
  excessivecode-footer .session-toolbar-icon{display:block;width:18px;height:18px;margin-inline:2px;color:var(--menu-muted,currentColor)}
  excessivecode-footer #session-replies-open > span{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;overscroll-behavior:contain;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,#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;-webkit-user-select:text;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{position:relative;cursor:pointer}
body[data-execution="true"] #timeline-activity-panel{padding:0}
#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{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]>:is(a,div){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)}
.session-menu-label,#new-session[aria-busy="true"] .session-toolbar-icon,#background-work-active:empty{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-job-elapsed{flex:none;font-variant-numeric:tabular-nums;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}}

#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-search #session-library button{font-size:13px;min-width:0;padding:6px 9px}
#session-search [data-preview] p{margin:6px 0;white-space:pre-wrap}

#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-library{padding:4px 10px 10px}}
.message-stream-error{display:block;margin-top:7px;background:var(--surface);color:var(--danger);font-size:12px}
.message[data-stream-state="streaming"] .message-body>article::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}
@keyframes message-writing{50%{opacity:0}}
@media(prefers-reduced-motion:reduce){.message[data-stream-state="streaming"] .message-body>article::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:260px}
 #conversation{--session-tabs-height: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);-webkit-user-select:text;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. */
@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[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}
/* Decision: AGENTS.md Decisions > Work signal. Background work is a still, dashed ring. */
.spinner.is-background{animation:none;border-style:dashed;border-color:var(--muted)}
#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)}
#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;-webkit-user-select:text;user-select:text}

#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);-webkit-user-select:text;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:inherit}
  #composer-model .composer-model-effort:not(:empty)::before{content:none}
}

html #sign-in-dialog.gate[open]{width:fit-content;min-height:0;max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));margin:auto;padding:0;border:0;outline:0;overflow:auto;place-content:start;background:transparent;box-shadow:none}
#sign-in-dialog>[data-close]{position:sticky;top:0;z-index:1;justify-self:end;min-height:40px;margin:0 0 6px;padding:8px 12px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:8px}

.artifact-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;justify-content:space-between;margin:8px 0;color:var(--ink);background:var(--surface)}

.artifact-tabs{display:flex;align-items:center;gap:4px;flex-wrap:wrap;color:var(--ink);background:var(--surface);font:12px/1.4 var(--agent-message-font)}
.artifact-tabs button,.artifact-panel>button{min-height:30px;padding:4px 9px;border:1px solid var(--line);border-radius:5px;color:var(--ink);background:var(--surface);font:inherit;cursor:pointer}
.artifact-tabs button[aria-selected=true]{color:var(--ink);background:rgb(from var(--tab-selected) r g b / 1);border-color:var(--accent);font-weight:700}
.artifact-tab{display:flex}

.artifact-panel{margin:0;color:var(--ink);background:var(--surface)}.artifact-panel .generated-image-link{width:100%;height:auto;max-width:none;padding:0;color:var(--ink);background:var(--surface)}.artifact-panel img{display:block;width:100%;height:auto;max-width:none;max-height:none;object-fit:contain}
.message>.message-body[hidden],.artifact-panel[hidden]{display:none}
.message-chart{color:var(--ink);background:var(--surface);white-space:normal}
.message-inline-chart{margin:14px 0 0}
.message-chart figcaption{margin:0 0 6px;font-weight:650}
.message-chart-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px}
.message-chart-legend>span{display:inline-flex;align-items:center;gap:5px}
.message-chart-legend i{width:12px;height:3px;display:inline-block}
.message-chart-scroll{overflow-x:auto;max-width:100%}
.message-chart svg{display:block;width:100%;height:auto;max-width:none;color:var(--ink);background:var(--surface);font:12px var(--agent-message-font);-webkit-user-select:text;user-select:text}
.message-chart svg text{fill:var(--ink)}
.message-chart-grid{stroke:var(--line);stroke-opacity:.4}
.message-chart-zero{stroke:var(--muted)}
.message-chart-reference{stroke:var(--danger);stroke-width:1.5;stroke-dasharray:5 4}
.message-chart-point{cursor:help;outline:none}
.message-chart-point:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.message-chart-status{display:block;color:var(--danger);background:var(--surface);font-size:12px}

:root .message.assistant .message-body .artifact-text-panel :is(article,p,li,blockquote){font-size:inherit;font-weight:inherit;line-height:inherit}
:root .message.assistant .message-body .artifact-text-panel:not(.artifact-summary-panel)>article{font-size:clamp(28px,3vw,36px);font-weight:700;line-height:1.35}
.artifact-text-panel[hidden],.artifact-bar[hidden]{display:none!important}
.artifact-text-panel+.artifact-summary-panel{margin-top:12px}
[data-info-tooltip-portal]{--info-tooltip-bg:var(--surface);--info-tooltip-text:var(--ink);--info-tooltip-border:var(--line)}
[data-info-tooltip-portal] a{color:var(--accent);background:var(--surface)}

.message-link-access{display:table;margin-bottom:5px;padding:2px 7px;border:1px solid var(--line);border-radius:5px;background:var(--tab-surface);color:var(--ink);font-weight:700;font-size:11px}.message-link-access[data-access="agent"]{background:var(--accent);color:var(--button-ink,#fff);border-color:var(--accent)}.message-link-url{display:block}

/* Journal project pills follow the containing conversation's semantic palette. */
.conversation-projects{display:flex;flex-wrap:wrap;gap:5px;white-space:normal;margin-top:8px;font:12px/1.4 system-ui,sans-serif}
#linked-projects{margin:0 0 9px}

.conversation-interval{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;margin:0 0 6px;padding:3px 8px;border:0;border-radius:var(--skin-radius,7px);color:var(--muted);background:var(--surface);font:12px/1.4 system-ui,sans-serif}
.conversation-interval .conversation-projects{margin:0}

#composer-session-tooltip{-webkit-user-select:text;user-select:text}
.opening-summary{margin:0}.opening-prompt-toggle{display:block;margin-top:6px;padding:1px 9px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--accent);font-size:11px;font-weight:700;cursor:pointer}.opening-prompt-toggle:is(:hover,:focus-visible){background:color-mix(in srgb,var(--accent) 12%,transparent)}.opening-prompt-full{max-height:60vh;overflow:auto;margin-top:8px;padding-top:8px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}
#agent-read{width:min(720px,calc(100% - 24px));max-height:calc(100% - 48px);overflow:auto;padding:0 14px 14px;color:var(--ink)}#agent-read::backdrop{background:rgba(16,47,59,.42)}#agent-read>header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;background:var(--surface);white-space:normal}#agent-read>header>span{min-width:0;color:var(--muted);font-size:12px;overflow-wrap:anywhere}
html body.conversation-visible .message.user.bot-prompt-message.bot-prompt-message[data-provenance="machine"]{white-space:normal;box-shadow:none;background:color-mix(in srgb,var(--skin-accent,var(--accent)) 14%,var(--skin-raised,var(--surface)));color:var(--skin-ink,var(--ink))}.bot-prompt-label{margin:0 0 4px;font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--skin-ink,var(--ink));opacity:.75}.bot-prompt p{margin:0}.bot-prompt ol{margin:0;padding-left:20px}.bot-prompt li+li{margin-top:2px}

/* Multi reply draft and message actions. */



.message-route-source{font-size:11px;color:inherit;white-space:nowrap}
/* The Mac's small Super window uses the same draft, mic and Send owners. */
body[data-super-voice="true"] #session-tab-bar,
body[data-super-voice="true"] #session-tabs,
body[data-super-voice="true"] #slow-lane > :not(#composer-dock),
body[data-super-voice="true"] #composer-perch,
body[data-super-voice="true"] #background-work-active {display:none!important}
body[data-super-voice="true"] :is(#workshop,#conversation,#slow-lane){display:block;min-height:0;height:auto;width:100%;max-width:none;margin:0;padding:0}
body[data-super-voice="true"] #composer-dock{position:fixed;inset:34px 8px 8px;width:auto;visibility:visible;--footer-clearance:0px}
body[data-super-voice="true"] #composer-dock::after{display:none}
body[data-super-voice="true"] #composer-frame{display:flex;flex-direction:column;height:100%;background:var(--surface);color:var(--ink)}
body[data-super-voice="true"] #composer{display:flex;flex:1;flex-direction:column;min-height:0}
body[data-super-voice="true"] #composer .composer-speech-wrap{display:flex;flex-direction:column;flex:1;min-height:60px}
body[data-super-voice="true"] #composer .composer-speech-field{flex:1;min-height:60px}
body[data-super-voice="true"] #composer #input{height:100%!important;min-height:60px;max-height:none;resize:none;padding:10px;font-size:16px}
body[data-super-voice="true"] #composer .composer-actions{flex:none}
body[data-super-voice="true"] #composer :is(#current-app,#composer-model){display:none!important}
body[data-super-voice="true"] #composer-delivery-status{flex:none}
body[data-super-voice="true"] #composer .voice-feed-control{flex:1}


/* @lat: [[super-prompt-preview#Latest message]] */
/* iPhone Super keeps one compact line above the composer; the list takes the rest. */
body[data-super-view="overview"]{overflow:hidden}
body[data-super-view="overview"] :is(#messages-more,#session-diagram-pane,#session-initial-task){display:none!important}
body[data-super-view="overview"] #slow-lane:has(>#messages:not([hidden])):has(>#composer-dock:not([hidden])){position:fixed;top:var(--super-phone-top,44px);bottom:var(--composer-clearance,390px);left:var(--console-inline-gutter);right:var(--console-inline-gutter);width:auto;min-height:0;padding:0;gap:8px}
/* Decision: AGENTS.md Decisions > Stable views. Read-only phone access has no composer to size the lane. */
body.ios-controls[data-super-view="overview"] #slow-lane:not(:has(>#composer-dock:not([hidden]))){position:fixed;top:var(--super-phone-top,44px);bottom:var(--platform-footer-height,0px);left:var(--console-inline-gutter);right:var(--console-inline-gutter);width:auto;min-height:0;padding:0;gap:8px}
body[data-super-view="overview"] :is(#super-session-routes,#messages){flex:1 1 0;min-height:0;overflow:auto;overscroll-behavior:contain;max-width:none;background:var(--page);color:var(--ink)}
body[data-super-view="overview"] #super-session-routes{flex:1 1 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px;width:100%;margin:0}
body[data-super-view="overview"] #super-session-routes>*{flex-shrink:0}
body[data-super-view="overview"] #messages{flex:0 0 auto;overflow:visible;border-top:1px solid var(--line);padding-top:4px}
body[data-super-view="overview"] #messages:empty{display:none}
.super-latest-message{display:flex;align-items:center;gap:6px;min-width:0;background:var(--page);color:var(--ink)}
.super-latest-message>.super-monitor-message{flex:1;min-width:0;margin:0}
.super-latest-message .compact-message-art,.super-latest-message .compact-message-art .text-art-picture{width:18px;height:18px}
.super-latest-status{flex:0 1 auto;min-width:0;max-width:45%;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.super-latest-message.is-failed .super-latest-status{color:var(--ink)}
.super-latest-retry,.super-latest-detail{flex:none;padding:4px 8px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--ink);font:600 12px system-ui;cursor:pointer}
.super-overview-messages{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:6px;padding:6px;align-items:start}
.super-overview-messages .message{margin:0!important;padding:7px!important;min-width:0;max-width:100%;font-size:12px}
.super-overview-messages .message.user{grid-column:1;grid-row:1;max-height:180px;overflow:auto}
.super-overview-messages .message.assistant{grid-column:2;grid-row:1}
.super-overview-messages .message-body{overflow-wrap:anywhere;min-width:0}

:root .super-overview-messages .message.assistant .message-body .artifact-text-panel:not(.artifact-summary-panel)>article{font-size:16px;line-height:1.35}
.super-overview-messages .artifact-tabs{gap:3px;flex-wrap:wrap}
.super-overview-messages .artifact-tabs button{font-size:10px;padding:5px}

.super-overview-messages .message-meta{display:flex;font-size:9px;line-height:1.3;margin-bottom:4px}


#composer-speech-context { display:block; position:static; white-space:normal; padding:0 8px 4px; }
.message > .viewed-session-context:not([hidden]) { display:block; margin-top:6px; }
#composer-speech-context[hidden], .viewed-session-context[hidden] { display:none; }
@media(max-width:620px){
  #composer-speech-context{display:flex;align-items:flex-start;white-space:nowrap;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain}
  #composer-speech-context a{flex:none}
}
.viewed-session-context a, #super-session-routes .viewed-session-context a { display:inline-block; vertical-align:baseline; margin-inline-start:4px; pointer-events:auto; user-select:text; -webkit-user-select:text; font:11px/1.2 var(--font-mono,monospace); color:var(--muted); background:var(--surface); border:1px solid var(--line); border-radius:4px; padding:2px 5px; text-decoration:none; }

/* Decision: AGENTS.md Decisions > Super session panels */
.super-server-status{display:flex;align-items:center;flex-wrap:wrap;gap:6px;flex:none;color:var(--ink);background:var(--surface);padding:4px 0}
.super-server-status button{font:inherit;font-size:12px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:5px 8px;max-width:100%}
.super-server-status [role=status]{font-size:12px;overflow-wrap:anywhere}
/* @lat: [[session-visuals#Server groups]] */
.super-server-heading{flex:none;cursor:pointer;user-select:text;margin:12px 0 0;padding:6px 8px;font-size:14px;font-weight:650;line-height:1.4;color:var(--ink);background:var(--surface);border-bottom:2px solid var(--line);overflow-wrap:anywhere}
.super-session-monitor{display:flex;flex-direction:column;gap:8px;width:100%;align-items:stretch;container-type:inline-size}
/* @lat: [[session-visuals#Correspondence]] */
/* Decision: AGENTS.md Decisions > Super session panels */
.super-monitor-session{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px;min-width:0;width:100%;max-width:100%;box-sizing:border-box;flex:none;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:4px 12px;align-items:start}
.super-monitor-session>header{grid-column:1;grid-row:1}
.super-monitor-session>.super-monitor-meta{grid-column:1;grid-row:2}
.super-monitor-session>.super-monitor-messages{grid-column:2;grid-row:1}
.super-monitor-session>.super-monitor-body{grid-column:2;grid-row:2;max-height:160px}
@container (max-width:580px){.super-monitor-session{grid-template-columns:minmax(0,1fr)}.super-monitor-session>.super-monitor-messages{grid-column:1;grid-row:3}.super-monitor-session>.super-monitor-body{grid-column:1;grid-row:4}}
.super-monitor-session header{display:flex;justify-content:space-between;gap:6px;align-items:baseline}
.super-monitor-session>header,.super-monitor-session>.super-monitor-meta{flex-shrink:0}
.super-monitor-session header a{color:var(--ink)}
.super-monitor-heading{flex:1;min-width:0;cursor:pointer}
.super-monitor-session header a,.super-monitor-session header img{-webkit-user-drag:none}
.super-monitor-session header a,.super-monitor-session header a span{-webkit-user-select:text;user-select:text;cursor:pointer}
.super-monitor-session{-webkit-user-select:text;user-select:text}
.super-monitor-topic{display:block;font-weight:650}
.super-monitor-title{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-top:1px}
.super-monitor-title[hidden],.super-monitor-app[hidden]{display:none}
.super-monitor-app{display:inline-flex;align-items:center;gap:5px;padding:2px 6px;border:1px solid var(--accent);border-radius:5px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--ink);font-weight:650}
.super-monitor-session header>.session-tab-favicon{flex:none;align-self:center}
.super-monitor-meta{display:flex;align-items:center;gap:6px;min-width:0;margin-top:4px;font-size:11px;color:var(--muted);white-space:nowrap}
.super-monitor-meta .super-monitor-app{flex:0 1 auto;min-width:0;max-width:45%}
.super-monitor-meta .super-monitor-app>span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.super-monitor-config{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
.super-monitor-id{flex:none;font-family:var(--font-mono,monospace)}
.super-monitor-elapsed{font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}
/* Decision: AGENTS.md Decisions > Super toolbar */
#super-navigation{order:-1;flex:1 0 100%;display:flex;align-items:center;justify-content:flex-start;gap:6px;min-width:0;max-width:100%;overflow-x:auto}
#super-navigation[hidden]{display:none}
#super-navigation #session-sidebar-head{display:contents}
#session-diagram #super-navigation button{box-sizing:border-box;height:32px;min-height:32px;padding:0 8px;line-height:20px}
#super-navigation .server-identity{display:flex;align-items:center;gap:6px;flex:none;min-width:max-content;height:32px}
#session-diagram #super-navigation .server-identity>button{flex:none;max-width:none;font-size:12px;overflow:visible}
#session-diagram #super-navigation .server-account{margin:0;border:0;background:transparent}
#session-diagram #super-navigation :is(#session-search-open,#session-replies-open){padding:0}
#super-navigation #new-session{display:none}
.super-monitor-session header>span:not(.super-monitor-heading){display:flex;gap:6px;align-items:center;color:var(--muted);flex-shrink:0}
.super-monitor-body{min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.super-monitor-children{font-size:12px;margin-top:4px}
.super-monitor-children-nested{margin-left:10px;border-left:1px solid var(--line);padding-left:6px}
.super-monitor-children-nested:empty{display:none}
.super-monitor-child-link{display:flex;align-items:center;gap:5px;min-width:0;padding:2px 0;color:var(--ink);text-decoration:none;-webkit-user-drag:none}
.super-monitor-child-link:hover{background:var(--page);color:var(--ink)}
.super-monitor-child-link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.super-monitor-child-link .spinner{flex:none;width:10px;height:10px}
.super-monitor-child-link code{flex:none;font-size:10px;color:var(--muted)}
.super-monitor-child-title{flex:1;min-width:0}
/* One line per label: live text changes must not change a Super row's height. */
:is(.super-monitor-topic,.super-monitor-title,.super-monitor-child-title,.super-overview-row>header>a){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.super-monitor-session{background:color-mix(in srgb,var(--work-tint) 14%,var(--surface));border-color:color-mix(in srgb,var(--work-tint) 45%,var(--line))}
:where(.super-monitor-session){--work-tint:var(--muted)}
.super-session-monitor :is([data-state="running"],[data-state="active"]){--work-tint:#3989e8}
.super-session-monitor :is([data-state="queued"],[data-state="requested"]){--work-tint:#c79416}
.super-session-monitor [data-state="completed"]{--work-tint:#29975a}
.super-session-monitor :is([data-state="failed"],[data-state="errored"],[data-state="blocked"],[data-state="lost"]){--work-tint:var(--danger)}
.super-session-monitor :is([data-state="interrupted"],[data-state="stopped"],[data-state="cancelled"]){--work-tint:#9763bd}


body.ios-controls #new-session{display:none}
@media(max-width:620px){body.ios-controls #composer .composer-actions button{flex-shrink:1;min-width:36px}body.ios-controls #composer .composer-actions{gap:4px}}


.super-monitor-session,.super-overview-row{cursor:pointer}

/* Decision: AGENTS.md Decisions > Agent sessions. Full width must not become full height in the phone column. */
/* Long-press view of a part's AGENTS.md Decisions entry. */
[data-decision]{-webkit-touch-callout:none}

.message-chart-axis-label{font-size:12px;line-height:1.4;text-align:center;overflow-wrap:anywhere;color:var(--ink);background:var(--surface)}

.message.side-agent-message{padding:6px 10px}
.side-agent-note{min-width:0;color:inherit;background:transparent}
.side-agent-note-summary{cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85em;color:var(--muted);background:transparent;max-width:100%}
.side-agent-note-summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.side-agent-note[open]>.side-agent-note-summary{margin-bottom:8px}

/* Both app hovers keep a white source line on black in every theme. */
#session-loc,.app-source-history{display:block;min-width:0}
#session-loc svg,.app-source-history svg{display:block;width:100%;height:34px;background:#000;color:#fff}
#session-loc svg path,.app-source-history svg path{fill:none;stroke:#fff;stroke-width:1.5;vector-effect:non-scaling-stroke}

.source-history-time{display:block;margin-top:5px;color:var(--ink);background:transparent;font-size:11px;line-height:1.4;font-variant-numeric:tabular-nums}.app-source-history:focus-visible,#session-loc:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.source-history-axis{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;font-variant-numeric:tabular-nums}.source-history-axis span{border-top:1px solid var(--line);padding-top:2px}



html[data-native-mac],html[data-native-mac] *{scrollbar-width:none!important}html[data-native-mac]::-webkit-scrollbar,html[data-native-mac] *::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}

/* Decision: AGENTS.md Decisions > Text */
#composer-frame{-webkit-user-select:none;user-select:none}
#composer-frame :is(textarea,input,[contenteditable="true"],[role="status"],[role="tooltip"],[role="dialog"],#session-error-text,#background-work-active,[data-reply-label]){-webkit-user-select:text;user-select:text}
/* @lat: [[factory-ideas#Design]] */
.factory-ideas{width:100%;max-width:720px;margin:auto;padding:24px 16px;color:var(--ink);background:var(--page);user-select:text;-webkit-user-select:text}
.factory-ideas h2{font-size:22px;line-height:1.25;margin:0 0 8px;font-weight:600;letter-spacing:-.02em}
.factory-ideas>p{margin:0 0 18px;color:var(--muted);background:var(--page);font-size:14px}
.factory-idea-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.factory-idea{display:flex;flex-direction:column;gap:7px;align-items:flex-start;justify-content:center;min-height:100px;padding:16px;border:1px solid var(--line);border-radius:12px;text-align:left;white-space:normal;color:var(--ink);background:var(--surface);cursor:pointer;font:inherit}
.factory-idea strong{font-size:15px;font-weight:600;line-height:1.3}
.factory-idea span{font-size:13px;line-height:1.4;color:var(--muted);background:transparent}
.factory-idea:hover,.factory-idea:focus-visible{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px}
.factory-idea-card{display:flex;flex-direction:column;min-width:0}
.factory-idea-card>.factory-idea{width:100%;height:100%}
.factory-idea:disabled{cursor:wait}
.factory-idea:disabled[data-started="true"]{cursor:default;border-color:var(--accent)}
.factory-idea:disabled:hover{outline:none}
.factory-idea-state{display:flex;flex-wrap:wrap;gap:8px;padding:8px 2px;color:var(--muted);background:var(--page);font-size:13px}
.factory-idea-state:empty{display:none}
.factory-idea-state{align-items:center}
@media(max-width:620px){.factory-idea-share{min-width:36px;min-height:36px}}
.factory-idea-state a{color:var(--accent);background:var(--page)}
.factory-ideas .factory-idea-expiry{font-size:12px;margin:16px 0 0}
.factory-idea-expiry:empty{display:none}
.factory-live{margin:20px 0 0;color:var(--ink);background:var(--page)}
.factory-live[hidden]{display:none}
.factory-live h3{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--muted);background:var(--page)}
.factory-live-row{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 8px}
.factory-live-app{flex:0 0 168px;scroll-snap-align:start;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:var(--surface);text-decoration:none}
.factory-live-app:hover,.factory-live-app:focus-visible{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:1px}
.factory-live-app img{display:block;width:100%;aspect-ratio:1200/630;object-fit:cover;background:var(--line)}
.factory-live-app span{padding:7px 9px;font-size:13px;font-weight:600;line-height:1.3;color:var(--ink);background:var(--surface);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.factory-ideas .factory-idea-status{margin:12px 0 0;color:var(--ink);background:var(--page)}
.factory-idea-status:empty{display:none}
@media(max-width:540px){.factory-ideas{padding:44px 10px 16px}.factory-ideas h2{font-size:19px}.factory-idea-list{grid-template-columns:1fr;gap:8px}.factory-idea{min-height:76px;padding:12px;gap:4px}}
/* @lat: [[super-prompt-preview#Rules]] */
.super-monitor-messages{display:grid;gap:4px;min-width:0}
.super-monitor-messages:empty{display:none}
/* @lat: [[super-prompt-preview#iPhone]] */
.super-overview-row>.super-monitor-messages:not(:empty){padding:0 8px 8px}
.super-overview-row .super-monitor-message .compact-message-art,.super-overview-row .super-monitor-message .compact-message-art .text-art-picture{width:18px;height:18px}
.super-monitor-message{display:block;min-width:0;padding:6px 8px;border-radius:9px;font-size:13px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}
a.super-monitor-message:hover{text-decoration:underline}
.super-monitor-message:focus-visible{outline:2px solid var(--ink);outline-offset:-3px}

.super-monitor-session[data-selected]{outline:2px solid var(--accent);outline-offset:-1px}
.super-monitor-body:empty{display:none}

.super-monitor-reply{background:var(--surface);color:var(--ink);border:1px solid var(--line)}

/* @lat: [[super-prompt-preview#Expressive previews]] */
.super-monitor-text{flex:none;min-height:26px;padding:2px 7px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--ink);font:600 12px/1.4 system-ui;cursor:pointer}
.super-monitor-text:focus-visible,.super-monitor-heading:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.super-monitor-message{display:flex;align-items:center;gap:6px}
.message-preview-text{display:block;min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.super-monitor-message .message-preview-text{font:inherit;line-height:inherit}
.super-monitor-message .message-preview-text.message-decoration .text-run{display:inline;font-size:inherit;line-height:inherit;white-space:inherit;margin:0;padding:0;transform:none;letter-spacing:normal}
.super-monitor-message .message-preview-text .compact-frame{display:inline;width:auto;max-width:none;margin:0;padding:0 3px;border-radius:3px;font:inherit}
.super-monitor-message .compact-message-art{float:none;flex:none;width:28px;height:28px;margin:0}
.super-monitor-message .compact-message-art .text-art-picture{width:28px;height:28px;margin:0}

.super-monitor-heading{text-decoration:none}

/* Decision: AGENTS.md Decisions > Phone swipes. @lat: [[phone-swipes#Design]] */
.session-slide-neighbor .session-preview-messages{display:flow-root;min-width:0}
#swipe-review{width:min(560px,calc(100vw - 24px));max-height:75dvh;overflow:auto;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink)}
#swipe-review header{display:flex;justify-content:space-between;align-items:center;gap:8px}
#swipe-review ol{list-style:none;margin:0;padding:0}
#swipe-review li{display:flex;flex-wrap:wrap;gap:8px;padding:10px 0;border-top:1px solid var(--line)}
#swipe-review li span{flex-basis:100%;overflow-wrap:anywhere}
#swipe-review button{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:8px}
#swipe-review button:disabled{background:var(--page);color:var(--muted)}

/* @lat: [[page-suggestions#Rules]] */
#page-suggestions{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;height:44px;min-height:44px;flex-shrink:0;padding:6px 0;overflow-x:auto;overflow-y:hidden;background:var(--surface);color:var(--ink)}
#page-suggestions button{flex:0 0 auto;white-space:nowrap;height:30px;padding:4px 9px;background:var(--footer-control);color:var(--footer-ink);border:1px solid var(--footer-line);font-size:13px;text-align:left}
#page-suggestions button:is(:hover,:focus-visible){background:var(--footer-selected);outline:2px solid var(--accent);outline-offset:1px}
#page-suggestions button[data-kind="session"]{border-color:var(--session-hint);box-shadow:inset 3px 0 0 var(--session-hint)}

/* @lat: [[super-chart#Design]] */
/* Decision: AGENTS.md Decisions > Session mix */
.super-session-mix{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px;min-width:0;flex:none;box-sizing:border-box}
.super-session-mix figure{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:0 12px}
.super-session-mix figcaption{margin:0;font-size:14px}
.super-session-mix .message-chart-legend{margin-left:auto}
.super-session-mix :is(.message-chart-scroll,.message-chart-status){flex:0 0 100%;min-width:0}
.super-session-mix .message-chart-scroll svg{height:75px}
.super-session-mix .session-mix-scope{font-size:11px;color:var(--muted);background:var(--surface);margin:6px 0 0}
.super-session-mix>[role=status]{font-size:12px}
.super-session-mix button{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:4px 8px;font:inherit;margin-left:8px}
.super-session-mix [hidden]{display:none}

/* Decision: AGENTS.md Decisions > Session view errors */
#session-error-text[data-markdown]{display:block;white-space:normal}#session-error-text article>:first-child{margin-top:0}#session-error-text article>:last-child{margin-bottom:0}#session-error-text a{color:inherit;text-decoration:underline}#session-error-text pre{white-space:pre-wrap}
/* Decision: AGENTS.md Decisions > Navigation hints — no layout shift or flashing. */
:is(.super-monitor-session,.super-overview-row)[data-navigation-hint]{outline:3px solid var(--accent);outline-offset:-3px;box-shadow:inset 6px 0 0 var(--accent)}

.gate #private-demo-link{margin-top:16px;color:var(--gate-link,var(--accent));background:transparent;text-underline-offset:3px}

/* Decision: AGENTS.md Decisions > Composer footer */
excessivecode-footer[hidden]{display:contents!important}
#composer .composer-actions{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:4px 6px;overflow:visible;flex-wrap:nowrap;--composer-footer-h:32px}
#composer-links{display:flex;flex:1 1 0;min-width:0;height:var(--composer-footer-h);align-items:center;gap:6px;overflow:hidden}
#composer-links #page-suggestions{height:var(--composer-footer-h);min-height:0;padding:0;min-width:0;flex:1;gap:4px;overflow:hidden;flex-wrap:nowrap}
#composer-context #composer-session-reference{flex:none;cursor:pointer}
#composer-links #page-suggestions button{height:var(--composer-footer-h);min-height:var(--composer-footer-h);padding:0 8px;font-size:12px;min-width:0;max-width:11rem;overflow:hidden;text-overflow:ellipsis}
#composer-buttons{display:flex;flex:none;align-items:center;justify-content:flex-end;gap:5px;max-width:100%;margin-left:auto}
#composer-buttons .voice-feed-control{flex:none;margin:0}
#composer-buttons button{height:var(--composer-footer-h);min-height:var(--composer-footer-h)}
#composer-buttons #voice-feed-delivery{display:none}
#composer textarea{height:76px;min-height:54px}
@media(max-width:620px){#composer-buttons{gap:4px}#composer-buttons button{padding:4px 6px}#composer-buttons #voice-feed{padding:0}#composer-links{flex-basis:48px}}
@media(max-width:620px){
  #composer #composer-buttons :is(#composer-super-open,#phone-app-share,#attach-photo,#background-work-trigger,#clear-composer,#voice-feed,#send){flex:0 0 44px;width:44px;min-width:44px;min-height:var(--composer-footer-h);padding:2px}
  /* Hints get their own scrolling row so they never slide under the buttons. */
}

#page-suggestions .hint-full{min-width:0;overflow:hidden;text-overflow:ellipsis}

#session-error[data-repair] #session-error-text p{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 6px}

.quota-chart-controls,.quota-chart-legend{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:10px}
.quota-chart-controls strong{margin-right:auto}.quota-chart-controls button{font:inherit;padding:2px 6px;border:1px solid var(--line);border-radius:4px;background:var(--surface);color:var(--ink);cursor:pointer}
.quota-chart-controls button[aria-pressed="true"]{background:var(--tab-selected)}
.quota-chart-legend span:not([popover]){display:inline-flex;gap:4px;align-items:center}.quota-chart-legend i{display:inline-block;width:8px;height:8px;border-radius:50%}

.message-meta{position:relative}

/* Decision: AGENTS.md Decisions > Private server request */
/* Decision: AGENTS.md Decisions > Server access. The prompt count is a vital notice; session details shrink first. */
#demo-budget{flex:none;white-space:nowrap;font-size:12px}
#composer-links:has(#demo-budget:not([hidden])){flex:0 1 auto}
#composer .composer-actions:has(#demo-budget:not([hidden])) #composer-context{flex:0 1 auto}
/* Phones size footer buttons as 44px icons; the pill keeps its words and shrinks before the count. */
#composer .composer-actions #server-request-open{display:block;flex:0 1 auto;width:auto;min-width:0;height:28px;min-height:28px;padding:0 10px;overflow:hidden;text-overflow:ellipsis;border:1px solid var(--accent);border-radius:999px;background:var(--surface);color:var(--ink)}
#server-request-open{flex:none;padding:2px 8px;border:1px solid var(--accent);border-radius:999px;background:var(--surface);color:var(--ink);font-size:12px;line-height:1.4;white-space:nowrap;cursor:pointer}
#sign-in-reason{margin:0 0 12px;color:var(--gate-ink,#173a2b);font-weight:700;font-size:14px;line-height:1.4}
.gate>#server-request{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}
#server-request h1{margin:0 0 6px;color:#173a2b;font:700 28px/1.05 Georgia,serif;letter-spacing:-.03em}
#server-request-terms{margin:0 0 16px;color:#385443;font-size:14px;font-weight:700}
#server-request form{display:grid;gap:8px}
#server-request label{color:#385443;font-size:13px;font-weight:700}
#server-request input{padding:9px 10px;border:2px solid #70826b;border-radius:7px;background:#fffdf0;color:#173a2b;font:inherit}
.gate>#server-request form button{padding:10px 14px;border:0;border-radius:7px;background:#214d37;color:#fff;font-weight:700;cursor:pointer}
.gate>#server-request form button:disabled{opacity:.6}
#server-request [role=status]{margin:12px 0 0;color:#173a2b;font-size:15px;line-height:1.45}
.gate>#server-request #server-request-back{margin-top:16px;padding:0;border:0;background:transparent;color:#214d37;text-decoration:underline;cursor:pointer;font-size:13px}

/* App-wide Super faults float outside the session and its composer. */
#super-recovery-notice{position:fixed;z-index:1500;top:calc(env(safe-area-inset-top,0px) + 24px);left:50%;transform:translateX(-50%);box-sizing:border-box;width:min(420px,calc(100vw - 32px));padding:20px 46px 20px 22px;border:1px solid var(--danger);border-radius:16px;background:var(--surface);color:var(--ink);box-shadow:0 18px 65px #0005,0 3px 12px #0003}
#super-recovery-notice[hidden]{display:none}
#super-recovery-notice strong{color:var(--danger)}
#super-recovery-notice p{margin:10px 0;line-height:1.5}
#super-recovery-notice a{color:inherit;text-decoration:underline}
#super-recovery-notice button{position:absolute;right:10px;top:10px;border:0;background:transparent;color:inherit;font-size:24px;cursor:pointer}

/* Decision: AGENTS.md Decisions > Session metrics */
.message[data-origin="utility_scorer"]{background:var(--surface);color:var(--ink);border:1px dashed var(--line);text-align:left}.message[data-origin="utility_scorer"] .message-body{white-space:normal}
.stop-notice>summary{cursor:pointer;color:var(--muted);font-size:.9em;list-style-position:inside}.stop-notice[open]>summary{margin-bottom:6px}.utility-score-note>summary{cursor:pointer;font-weight:600}.utility-score-note[open]>summary{margin-bottom:8px}

/* Decision: AGENTS.md Decisions > Super session panels. Phone cells have no message snippets. */
:is(body[data-super-view="overview"] #super-session-routes,.super-squares-monitor)>:not(.super-overview-row){grid-column:1 / -1}
body[data-super-view="overview"] #messages:not(:has(.super-latest-message:not([hidden]))){display:none}
.super-latest-message[hidden],.super-latest-message>button[hidden]{display:none}

/* Decision: AGENTS.md Decisions > System status */
.super-system-status{grid-column:1/-1;margin:2px 0 8px;font:15px/1.4 Georgia,'Iowan Old Style',serif;color:var(--ink);background:transparent;user-select:text}
/* Decision: AGENTS.md Decisions > Questions */
.super-questions{grid-column:1/-1;margin:10px 0 4px;color:var(--ink);background:transparent;user-select:text;min-width:0}
.super-questions h2{margin:0 0 4px;font:600 13px/1.3 system-ui,sans-serif;color:var(--muted)}
.super-questions .super-questions-fold{all:unset;cursor:pointer;color:var(--muted)}
.super-questions .super-questions-fold::before{content:'▸ ';display:inline-block}
.super-questions .super-questions-fold[aria-expanded="true"]::before{content:'▾ '}
.super-questions .super-questions-fold:focus-visible{outline:2px solid var(--accent)}
.super-questions ol[hidden]{display:none}
.super-questions ol{margin:0;padding:0;list-style:none;display:grid;gap:12px}
.super-questions .super-question{min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);overflow:hidden;position:relative}
/* Decision: AGENTS.md Decisions > Questions. Override shared button padding so the X stays centered. */
:is(.super-squares-monitor,#super-session-routes) .super-questions .super-question-remove{position:absolute;top:6px;right:6px;width:24px;height:24px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer}
:is(.super-squares-monitor,#super-session-routes) .super-questions .super-question-remove .fs-icon{width:16px;height:16px;display:block}
:is(.super-squares-monitor,#super-session-routes) .super-questions .super-question-remove:is(:hover,:focus-visible){background:var(--page);color:var(--ink)}
/* Decision: AGENTS.md Decisions > Questions. Keep the title grid outside the X column. */
:is(.super-squares-monitor,#super-session-routes) .super-questions .super-question-text{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:baseline;box-sizing:border-box;width:auto;margin-right:36px;padding:9px 0 8px 12px;color:var(--ink);font:600 15px/1.35 Georgia,'Iowan Old Style',serif;text-decoration:none;overflow-wrap:anywhere}
.super-questions .super-question-text::before{content:'Q';flex:none;font:700 11px/1 system-ui,sans-serif;color:var(--accent);border:1px solid var(--accent);border-radius:4px;padding:2px 4px;user-select:none}
.super-questions .super-question-text:hover{text-decoration:underline}
.super-questions .super-question-answer{margin:0;padding:8px 12px 10px 12px;border-top:1px solid var(--line);border-left:3px solid var(--accent);background:var(--page);color:var(--ink);font:14px/1.45 system-ui,sans-serif;overflow-wrap:anywhere;min-width:0}
.super-questions .super-question-answer :is(article,p){margin:0}
.super-questions .super-question-answer a{color:var(--accent)}
.super-questions .super-question-answer a[href*="?session="]{font-family:ui-monospace,Menlo,monospace}
.super-questions .super-question[data-state=open] .super-question-answer{color:var(--muted);font-style:italic;border-left-color:var(--line)}
.super-questions .super-question-error{margin:4px 0 0;font:13px/1.3 system-ui,sans-serif;color:var(--danger)}
.super-system-status .status-mood{font-weight:700;font-size:20px;letter-spacing:-.01em;margin-right:2px}
.super-system-status .status-calm{color:var(--muted)}
.super-system-status .status-busy,.super-system-status .status-count{color:var(--accent)}
.super-system-status .status-attention{color:color-mix(in srgb,var(--danger) 55%,var(--accent));font-weight:600}
.super-system-status .status-trouble{color:var(--danger);font-weight:600}
.super-system-status .status-background{color:var(--muted)}
.super-system-status .status-topic{font-style:italic}

/* Decision: AGENTS.md Decisions > Navigation hints */
.hint-compact{display:none}
html[data-iphone-composer="true"] #composer .composer-actions{flex-wrap:nowrap;min-height:44px}
html[data-iphone-composer="true"] #composer-links,
html[data-iphone-composer="true"] #composer-links:has(#page-suggestions:not(:empty)){flex:1 1 0;min-width:0;height:44px}
html[data-iphone-composer="true"] #composer-links #page-suggestions{height:44px;min-height:44px;overflow-x:auto}
html[data-iphone-composer="true"] #composer #composer-links #page-suggestions button{display:flex;width:44px;min-width:44px;height:44px;min-height:44px;padding:2px;justify-content:center}
html[data-iphone-composer="true"] .hint-full{display:none}
html[data-iphone-composer="true"] .hint-compact{display:flex;flex-direction:column;align-items:center;font-size:10px;line-height:12px;font-weight:600}
html[data-iphone-composer="true"] .hint-symbol{font-size:18px;line-height:21px}
html[data-iphone-composer="true"] #session-undo-close{display:none}
html[data-iphone-composer="true"] body[data-super-view="overview"] #mobile-session-close{display:none}
html[data-iphone-composer="true"] #session-tabs #composer-super-open{display:flex;flex:none;order:10;flex-direction:column;align-self:stretch;align-items:center;justify-content:center;width:44px;height:100%;min-height:0;padding:2px;border:0;background:var(--page);color:var(--ink)}
html[data-iphone-composer="true"] #session-tabs #composer-super-open .composer-action-label{display:none}
html[data-iphone-composer="true"] #session-tabs #composer-super-open .composer-action-icon{display:block;width:18px;height:18px}
html[data-iphone-composer="true"] #session-tabs #composer-super-open .composer-action-short{display:block;font-size:10px;line-height:12px}
html[data-iphone-composer="true"]:not([data-hint-photo="true"]) #attach-photo,
html[data-iphone-composer="true"]:not([data-hint-mic="true"]) .voice-feed-control{display:none}
/* Hidden navigation has no header button to reserve space for. */
html[data-iphone-composer="true"] body:has(>excessivecode-footer[hidden]){--mobile-navigation-clearance:0px}

#composer #quota-availability{flex:0 0 auto;width:auto;min-width:max-content;min-height:28px;padding:2px 6px;font-size:11px;font-variant-numeric:tabular-nums;color:var(--muted);border-color:transparent;background:transparent}

/* Decision: AGENTS.md Decisions > Super session panels. One color-only square per chat, on iPhone and Mac. */
.super-squares-monitor{display:grid;align-content:start;gap:3px;justify-content:start;width:100%;height:100%;overflow:auto;padding:12px 16px;box-sizing:border-box;background:var(--page);color:var(--ink)}
.super-squares-monitor .super-overview-row[data-selected]{outline:2px solid var(--ink);outline-offset:1px}
:is(body[data-super-view="overview"] #super-session-routes,.super-squares-monitor){grid-template-columns:repeat(auto-fill,18px);gap:5px;justify-content:start}
:is(body[data-super-view="overview"] #super-session-routes,.super-squares-monitor) .super-overview-row{position:relative;display:block;width:18px;height:18px;min-width:18px;max-width:18px;min-height:18px;max-height:18px;aspect-ratio:1;align-self:start;justify-self:start;overflow:visible;box-sizing:border-box;margin:0;padding:0 0 3px;border:1px solid color-mix(in srgb,var(--state-color) 70%,var(--ink));border-radius:2px;background:var(--state-color,var(--muted));color:var(--ink)}
:is(body[data-super-view="overview"] #super-session-routes,.super-squares-monitor) .super-overview-row:focus-visible{outline:2px solid var(--ink);outline-offset:1px}
:is(body[data-super-view="overview"],.super-squares-monitor) [data-state=waiting]{--state-color:var(--accent)}
:is(body[data-super-view="overview"],.super-squares-monitor) [data-state=stuck]{--state-color:var(--danger)}
:is(body[data-super-view="overview"],.super-squares-monitor) [data-state=running]{--state-color:#1d7559}
:is(body[data-super-view="overview"],.super-squares-monitor) [data-state=queued]{--state-color:#b07c12}
:is(body[data-super-view="overview"],.super-squares-monitor) [data-state=background]{--state-color:color-mix(in srgb,#1d7559 55%,var(--page))}
:is(body[data-super-view="overview"],.super-squares-monitor) [data-state=quiet]{--state-color:color-mix(in srgb,var(--page) 80%,var(--muted))}
:is(body[data-super-view="overview"],.super-squares-monitor) [data-state=done]{--state-color:color-mix(in srgb,#1d7559 25%,var(--page))}
:is(body[data-super-view="overview"],.super-squares-monitor) .super-server-heading{margin:8px 0 1px;padding:0;font-size:11px;cursor:default}
:is(body[data-super-view="overview"],.super-squares-monitor) .super-system-status{margin:0 0 6px;font:15px/1.5 system-ui;color:var(--ink)}
:is(body[data-super-view="overview"],.super-squares-monitor) .super-system-status p{margin:0 0 9px}
/* Decision: AGENTS.md Decisions > Super dashboard. System status sits apart from the squares. */
.super-status-report{margin:6px 0 22px;padding:14px 18px 12px;border:1px solid var(--line);border-radius:10px;background:var(--page);color:var(--ink)}
.super-system-status .super-status-report>:last-child{margin-bottom:0}
.super-chief-report .message-decoration{font:inherit;color:var(--ink);background:var(--page)}
.super-status-report .session-report-generated{display:block;margin:0 0 4px;font-size:11px;color:var(--muted);background:var(--page)}
/* Decision: AGENTS.md Decisions > Super dashboard. On iPhone the framed report stays tight so squares share the first screen. */
@media(max-width:620px){
  .super-status-report{margin:2px 0 10px;padding:8px 10px}
  :is(body[data-super-view="overview"],.super-squares-monitor) .super-system-status{font-size:14px;line-height:1.4}
  :is(body[data-super-view="overview"],.super-squares-monitor) .super-system-status .super-chief-report p{margin:0 0 4px}
  .super-phone-priorities{margin:2px 0 0;padding-left:20px;font-size:13px;line-height:1.35}
  .super-phone-priorities li{margin:0 0 3px}
}
/* Decision: AGENTS.md Decisions > Super dashboard (iPhone). Limit boxes show only what needs a decision:
   near or at a cap, or a failed read to retry. Mac keeps every box. */
html[data-iphone-composer="true"] #super-session-routes .super-limit-square:not([data-state=near],[data-state=blocked],.super-limit-retry){display:none}
html[data-iphone-composer="true"] #super-session-routes .super-limit-group:not(:has(.super-limit-square:is([data-state=near],[data-state=blocked],.super-limit-retry))){display:none}
.super-phone-priorities{margin:8px 0 12px;padding-left:24px;font-size:14px;line-height:1.45}
.super-phone-priorities li{padding-left:3px;margin:0 0 7px}
.super-status-key{display:flex;flex-wrap:wrap;gap:4px 10px;font:10px/1.4 system-ui;color:var(--muted);background:var(--page)}
.super-status-key span{display:flex;gap:3px;align-items:center}
.super-status-key span::before{content:'';width:10px;height:10px;flex:none;border:1px solid var(--line);border-radius:1px;background:var(--state-color)}
/* Decision: AGENTS.md Decisions > Phone priorities. A short action stays above the conversation. */
#phone-next-action{padding:8px 10px;border-left:3px solid var(--accent);background:var(--surface);color:var(--ink);font:600 14px/1.4 system-ui;user-select:text}
body[data-super-view="overview"] #phone-next-action{display:none}
/* Decision: AGENTS.md Decisions > Server group status. State totals survive folding. */
.super-server-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:3px 8px}
.super-server-name{min-width:0}
.super-server-counts{display:flex;gap:7px;flex-wrap:wrap;font:10px/1.4 system-ui;color:var(--muted);background:var(--page)}
.super-server-counts [data-state=error]{color:var(--danger)}
.super-server-counts [data-state=wait]{color:var(--accent)}

/* Decision: Phone swipes — replay measured motion, never invented screen video. */
#swipe-review .swipe-playback{position:relative;flex-basis:100%;height:150px;overflow:hidden;border:1px solid var(--line);background:var(--surface-alt)}
#swipe-review .swipe-playback>[data-current]{position:absolute;inset:0;display:grid;place-items:center;background:var(--page);border-inline:1px solid var(--line)}
#swipe-review .swipe-finger{position:absolute;width:16px;height:16px;transform:translate(-50%,-50%);border:2px solid var(--ink);border-radius:50%;background:var(--accent)}
#swipe-review small,#swipe-review textarea{flex-basis:100%}
#swipe-review textarea{min-height:64px;max-width:100%;color:var(--ink);background:var(--page);font:inherit}

/* Decision: AGENTS.md Decisions > Square hover card */
.super-hover-card{position:fixed;z-index:1000;display:grid;grid-template-columns:repeat(var(--hover-columns,1),minmax(0,1fr));align-items:start;gap:8px;width:min(340px,calc(100vw - 16px));box-sizing:border-box;font:13px/1.35 system-ui;pointer-events:none}
.super-hover-card[hidden]{display:none}
/* Decision: AGENTS.md Decisions > Square hover card. Each match has its own card in the shared row. */
.super-hover-session{min-width:0;box-sizing:border-box;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface,var(--page));color:var(--ink);box-shadow:0 6px 20px rgb(0 0 0 / .18);text-decoration:none}
.super-hover-session:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.super-hover-head{display:flex;gap:8px;align-items:center;margin-bottom:6px}
.super-hover-head>div{min-width:0;display:flex;flex-direction:column}
.super-hover-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.super-hover-meta{color:var(--muted);font-size:11px}
.super-hover-art{flex:0 0 36px;width:36px;height:36px;display:grid;place-items:center;font-size:22px;overflow:hidden}
.super-hover-art svg,.super-hover-art .text-art-picture{width:36px;height:36px;max-width:36px;max-height:36px}
.super-hover-line{margin:4px 0 0;padding:3px 7px;border-radius:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:color-mix(in srgb,var(--muted) 12%,transparent);color:var(--ink)}
.super-hover-line.user-prompt{background:var(--own-bubble);color:#fff}

.super-global-limits{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;color:var(--ink);background:var(--page);padding:4px 0;min-width:0;flex:none;font-size:11px}
.super-limit-group{display:flex;flex-wrap:wrap;align-items:center;gap:4px;max-width:100%;color:inherit;background:inherit}
.super-limit-label{white-space:nowrap;color:var(--muted);background:var(--page)}
.super-limit-square,:is(#session-diagram,#conversation,#session-library) .super-global-limits .super-limit-square{display:grid;place-items:center;box-sizing:border-box;flex:0 0 32px;width:32px;height:32px;min-width:32px;max-width:32px;min-height:32px;max-height:32px;aspect-ratio:1;align-self:center;padding:0;border:1px solid var(--ink);border-radius:2px;background:var(--limit-color,#555);color:#fff;font-size:10px;font-weight:600;line-height:1;cursor:pointer}
.super-limit-square[data-state=ok]{--limit-color:#22633f}.super-limit-square[data-state=near]{--limit-color:#865800}.super-limit-square[data-state=blocked]{--limit-color:#9b3030}.super-limit-square:focus-visible{outline:2px solid var(--ink);outline-offset:2px}

.super-limit-tables{flex:0 0 100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;font-size:11px;color:var(--ink);background:var(--surface)}
.super-limit-tables table{width:100%;border-collapse:collapse;color:inherit;background:inherit;table-layout:auto}
.super-limit-tables :is(th,td){text-align:left;vertical-align:top;padding:3px 5px 3px 0;border-bottom:1px solid var(--line);color:inherit;background:inherit;overflow-wrap:anywhere}
.super-limit-tables caption{text-align:left;font-weight:600;margin-bottom:3px;color:inherit;background:inherit}

/* Decision: AGENTS.md Decisions > Utility rate; @lat: [[super-chart#Utility rate units]] */
.utility-rate-units{display:flex;justify-content:flex-end;gap:3px;margin-bottom:3px}
.utility-rate-units button[aria-pressed="true"]{border-color:var(--accent);font-weight:700}

/* Decision: AGENTS.md Decisions > Super dashboard. 18px squares with 9px numbers read at 1x on Mac and 3x on iPhone alike. */
:is(body[data-super-view="overview"] #super-session-routes,.super-squares-monitor) .super-overview-row{display:grid;place-items:center;font:800 9px/1 ui-monospace,monospace;text-decoration:none;color:var(--ink)}
/* Decision: AGENTS.md Decisions > Super dashboard. Each fill picks its own readable number ink in both themes. */
:is(body[data-super-view="overview"] #super-session-routes,.super-squares-monitor) .super-overview-row:is([data-state=waiting],[data-state=stuck]){color:var(--page)}
:is(body[data-super-view="overview"] #super-session-routes,.super-squares-monitor) .super-overview-row[data-state=running]{color:#fff}
:is(body[data-super-view="overview"] #super-session-routes,.super-squares-monitor) .super-overview-row[data-state=queued]{color:#1b1b1b}
/* Decision: AGENTS.md Decisions > Super dashboard. The bottom bar is the server's badge color (skins.css --server-fill), set off by a page-colored line so it reads on any state fill.
   Work rings run around the square's edge, outside the number: the fast solid sweep is a live turn, the slow muted dashes are background work (Work signal timings). */
:is(body[data-super-view="overview"] #super-session-routes,.super-squares-monitor) .super-overview-row[data-server-color]::before{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--server-fill);box-shadow:0 -1px 0 var(--page);pointer-events:none}
@property --super-ring-turn{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes super-ring-turn{to{--super-ring-turn:360deg}}
:is(body[data-super-view="overview"] #super-session-routes,.super-squares-monitor) .super-overview-row:is([data-state=running],[data-state=background])::after{content:"";position:absolute;inset:-3px;border-radius:4px;padding:1.5px;background:conic-gradient(from var(--super-ring-turn),var(--accent) 0 30%,transparent 30%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:super-ring-turn .8s linear infinite;pointer-events:none}
:is(body[data-super-view="overview"] #super-session-routes,.super-squares-monitor) .super-overview-row[data-state=background]::after{background:repeating-conic-gradient(from var(--super-ring-turn),var(--muted) 0 22.5deg,transparent 22.5deg 45deg);animation-duration:4s}
@media(prefers-reduced-motion:reduce){:is(body[data-super-view="overview"] #super-session-routes,.super-squares-monitor) .super-overview-row::after{animation:none}}

@media(max-width:620px){
  #composer #composer-links,
  html[data-iphone-composer="true"] #composer #composer-links:has(#page-suggestions:not(:empty)){flex:1 1 44px;min-width:44px;height:44px}
  #composer #composer-links #page-suggestions{height:44px;min-height:44px;overflow-x:auto}
  #composer #composer-links #page-suggestions button{display:flex;flex:0 0 44px;width:44px;min-width:44px;height:44px;padding:2px;justify-content:center}
  #composer #composer-links .hint-full{display:none}
  #composer #composer-links .hint-compact{display:flex;flex-direction:column;align-items:center;font-size:10px;line-height:12px;font-weight:600}
  #composer #composer-links .hint-symbol{font-size:18px;line-height:21px}
  /* Decision: AGENTS.md Decisions > Composer footer
     Match intrinsic widths to the touch targets; WebKit otherwise allocates 32px
     for a 44px flex item and clips Send inside the action scroller. */
  #composer #composer-buttons{flex:none;min-width:max-content;overflow:visible;justify-content:flex-end}
}

/* Decision: AGENTS.md Decisions > Navigation hints */
/* @lat: [[page-suggestions#Hint menu]] */
.navigation-hint-menu{position:fixed;inset:auto;margin:0;width:320px;max-width:calc(100vw - 16px);max-height:60vh;overflow:auto;padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);box-shadow:0 6px 24px #0003}
.navigation-hint-menu button{display:block;min-height:44px;width:100%;text-align:left;white-space:normal;padding:10px;border:0;border-radius:4px;background:var(--surface);color:var(--ink);font:inherit}
.navigation-hint-menu button:is(:hover,:focus-visible){background:var(--footer-selected);outline:2px solid var(--accent);outline-offset:-2px}
.navigation-hint-menu .hint-compact{display:none!important}
.navigation-hint-menu .hint-full{display:block!important;white-space:normal}
#page-suggestions .hint-menu-trigger{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

#page-suggestions .hint-menu-trigger{display:flex;gap:4px;align-items:center}
#page-suggestions .hint-menu-trigger span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}
#page-suggestions .hint-menu-trigger span:last-child{flex:none}

.super-server-quota{font-size:11px;font-weight:500;white-space:nowrap;color:var(--ink);background:var(--surface)}

.super-account-table{color:var(--ink);background:var(--surface);overflow:auto;min-width:0}
.super-account-table table{width:100%;border-collapse:collapse;font-size:11px;font-variant-numeric:tabular-nums}
.super-limit-tables .super-account-table :is(th,td){overflow-wrap:normal}
.super-account-table :is(th,td){padding:4px 6px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);color:var(--ink);background:var(--surface)}
.super-account-table .account-email-anchor{display:inline-flex;align-items:center;gap:3px}.super-account-table .training-light{display:inline-block;width:10px;height:10px;background:var(--muted);box-shadow:0 0 0 1px var(--line)}
.super-account-table .training-light.off{background:#2e9d5b}.super-account-table .training-light.on{background:#d0414f}
.super-quota-burndown{min-width:0;color:var(--ink);background:var(--surface)}
.account-burndown{display:block;color:var(--ink);background:var(--surface);margin:6px 0;max-width:100%}.account-burndown svg{display:block;width:100%;height:120px;overflow:visible}
.account-burndown svg text{fill:var(--ink);font:9px system-ui}.account-burndown .quota-grid{fill:none;stroke:var(--line);stroke-width:.5}.account-burndown .quota-step{fill:none;stroke-width:1.5}
#page-suggestions button[aria-disabled="true"],.navigation-hint-menu button[aria-disabled="true"]{cursor:wait}

#page-suggestions button[data-kind="search-status"],.navigation-hint-menu button[data-kind="search-status"]{opacity:1}

@media(max-width:620px){.super-limit-tables{grid-template-columns:minmax(0,1fr)}}

.super-limit-details{container-type:inline-size;width:100%;box-sizing:border-box}
@container(max-width:480px){.super-limit-tables{grid-template-columns:minmax(0,1fr)}}
/* Wide: the Accounts table keeps whole words; the chart takes the rest. */
@container(min-width:481px){.super-limit-tables{grid-template-columns:fit-content(64%) minmax(180px,1fr)}.super-account-table :is(th,td){padding:4px 5px 4px 0}}

.account-burndown .quota-imported{stroke-dasharray:4 3}

/* Decision: AGENTS.md Decisions > Navigation hints */
/* @lat: [[page-suggestions#Rules]] */
.hint-compact{letter-spacing:.03em}

/* Decision: AGENTS.md Decisions > Global limits. A count names its server; quota names one session. */
.super-global-limits .super-limit-count,:is(#session-diagram,#conversation,#session-library) .super-global-limits .super-limit-count{flex-basis:auto;width:auto;min-width:32px;max-width:none;aspect-ratio:auto;padding:0 6px}
.super-global-limits .super-limit-session,:is(#session-diagram,#conversation,#session-library) .super-global-limits .super-limit-session{flex:0 0 auto;width:max-content;min-width:48px;max-width:none;height:auto;min-height:38px;max-height:none;aspect-ratio:auto;padding:4px 6px;grid-template-rows:auto auto;gap:2px;white-space:nowrap;text-align:center;font-size:11px;line-height:1.2}

/* Decision: AGENTS.md Decisions > Navigation hints */
#page-suggestions .hint-loading,.navigation-hint-menu .hint-loading{flex:none;box-sizing:border-box;width:12px;height:12px}
#page-suggestions button:has(.hint-loading:not([hidden])),.navigation-hint-menu button:has(.hint-loading:not([hidden])){display:inline-flex;align-items:center;gap:4px}
#page-suggestions .hint-menu-trigger .spinner{flex:none;box-sizing:border-box;width:12px;height:12px}
#page-suggestions button[data-kind="search-empty"],.navigation-hint-menu button[data-kind="search-empty"]{opacity:1;color:var(--footer-ink);background:var(--footer-control)}
@media(prefers-reduced-motion:reduce){#page-suggestions .spinner,.navigation-hint-menu .spinner{animation:none}}

/* Decision: AGENTS.md Decisions > Super session panels */
/* @lat: [[super-chart#Phone views]] */
#super-phone-views:not([hidden]){display:flex;gap:6px;flex:0 0 auto;background:var(--page);color:var(--ink)}
#super-phone-views button{padding:7px 9px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:6px}
#super-phone-views button[aria-pressed="true"]{background:var(--ink);color:var(--page)}
body[data-super-phone-view="dashboard"] #super-session-routes .super-questions{display:none!important}
body[data-super-phone-view="questions"] #super-session-routes{display:block!important}
body[data-super-phone-view="questions"] #super-session-routes>:not(.super-questions){display:none!important}
body[data-super-phone-view="questions"] #messages{display:none!important}
body[data-super-phone-view="conversation"] #super-session-routes{display:none!important}
/* Decision: AGENTS.md Decisions > Factory stop fault. Phone reasons wrap within the scrollable error banner. */
html[data-iphone-composer="true"] #session-error-text{min-width:0;cursor:pointer}
/* Decision: AGENTS.md Decisions > Text */
body[data-super-phone-view="conversation"] #super-phone-views{position:fixed;top:calc(var(--super-phone-top,44px) - 9px);left:var(--console-inline-gutter);right:var(--console-inline-gutter);z-index:20;padding:15px 0 6px}
body[data-super-phone-view="conversation"] #session-view-tabs{display:none!important}
body[data-super-phone-view="conversation"] #messages{padding-top:48px}

/* Decision: AGENTS.md Decisions > Stable views. One full-size loading area, no partial squares. */
.super-view-loading{grid-column:1/-1;min-height:260px;margin:0;display:grid;place-content:center;color:var(--muted);background:var(--page);font:15px/1.5 system-ui}
body[data-super-view="overview"] #session-loading{display:none}
/* Utility loads on its own below the working dashboard, with its chart space held. */
.super-session-mix{min-height:190px}

/* Decision: AGENTS.md Decisions > Navigation hints */
.sent-navigation-hints { display: flex; flex-wrap: wrap; gap: 4px; margin: 4px 0; }
.sent-navigation-hints[hidden] { display: none; }
.sent-navigation-hints button { font: inherit; font-size: 12px; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: 5px 8px; max-width: 100%; overflow-wrap: anywhere; cursor: pointer; }
#composer-session-link{position:relative}

/* Decision: AGENTS.md Decisions > Session link. Navigation keeps the composer usable. */
#conversation[data-session-switch="held"] #composer-dock{visibility:visible}

/* Decision: AGENTS.md Decisions > Composer footer
   @lat: [[composer-footer#Metadata slots]]
   Stable role tracks share one native scroller. Updates never measure widths. */
@media(min-width:621px){
  /* @lat: [[composer-footer#Content height]]
     Desktop height belongs to the native field, not its flex share. */
  body:not(.ios-controls):not([data-super-voice="true"]) #composer .composer-speech-field>textarea{flex:none;height:114px}
  #composer{container-type:inline-size;container-name:composer}
  #composer .composer-actions{display:grid;align-items:start;grid-template-columns:var(--quota-slot,32px) minmax(0,1fr) clamp(48px,calc(80cqi - 230px),220px) max-content;padding:2px 4px;gap:2px;--bar-control-size:28px;--composer-footer-h:28px}
  #composer .composer-actions>#quota-availability{grid-column:1;grid-row:1;width:100%;min-width:0;padding-inline:0;font-size:11px}
  #composer-context{grid-column:2;grid-row:1}
  #composer-links{grid-column:3;grid-row:1;min-width:0;container:composer-hints / inline-size}
  /* A Demo visitor's prompt count and Log in / private server pill keep their words; the metadata strip scrolls instead. */
  #composer .composer-actions:has(#demo-budget:not([hidden])){grid-template-columns:32px minmax(0,1fr) fit-content(50%) max-content}
  /* Photo (Mac) and Clear (Mac app) are hidden for the whole device, so their slots go to the metadata strip. */
  #composer-buttons{--action-size:28px;display:grid;grid-template-columns:var(--photo-slot,var(--action-size)) var(--action-size) var(--clear-slot,var(--action-size)) var(--action-size) var(--action-size);gap:2px;grid-column:4;grid-row:1}
  #composer-buttons:has(>#attach-photo[hidden]){--photo-slot:0px}
  #composer-buttons:has(>#clear-composer[hidden]){--clear-slot:0px}
  #composer-buttons button{width:100%;min-width:0;padding-inline:4px;gap:2px;overflow:hidden}
  #composer-buttons .composer-action-label{min-width:0;overflow:hidden;text-overflow:ellipsis}
  #composer-buttons #attach-photo{grid-column:1;grid-row:1}
  #composer-buttons #background-work-trigger{grid-column:2;grid-row:1}
  #composer-buttons #clear-composer{grid-column:3;grid-row:1}
  #composer-buttons .voice-feed-control{grid-column:4;grid-row:1}
  #composer-buttons #send{grid-column:5;grid-row:1}
  /* ID / model / status / prior view / FPS / account / app / link / share / voice.
     Explicit columns reserve hidden roles without visible placeholders. */
  /* @lat: [[composer-footer#Native scrollbar policy]] Native Mac keeps the shared important hide. */
  #composer .composer-actions #composer-context{display:grid;grid-template-columns:36px clamp(84px,12cqi,96px) 80px 52px 40px 64px 96px 28px 28px 40px;gap:2px;grid-template-rows:var(--composer-footer-h);height:auto;align-items:start;min-width:0;max-width:100%;overflow-x:scroll;overflow-y:hidden;scrollbar-width:thin;overscroll-behavior-x:contain;position:relative}
  #composer-context>*{grid-row:1;min-width:0}
  #composer-context #composer-session-reference{grid-column:1;box-sizing:border-box;width:100%;height:var(--composer-footer-h);padding:2px;display:flex;align-items:center}
  #composer-context #composer-session-reference[hidden]{display:none}
  #composer-context #composer-model{grid-column:2;display:block;width:100%;min-width:0;max-width:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:left}
  #composer-context #composer-model>span{display:inline}
  #composer-status-slot{display:block;grid-column:3;position:relative;height:var(--composer-footer-h)}
  #composer-context #composer-status{display:block;width:100%;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:24px}
  /* @lat: [[composer-footer#Guard geometry]] Legacy guard wrapping remains phone-only. */
  #composer-context #composer-status.safety-guard{padding:2px 4px;white-space:nowrap;max-width:none}
  #composer-context #composer-status[hidden]{display:none}
  #composer-context #composer-prior-session{grid-column:4;display:block;box-sizing:border-box;width:52px;height:var(--composer-footer-h);padding:2px 4px;font:inherit;font-size:12px;line-height:24px;white-space:nowrap;text-decoration:none}
  #composer-context #composer-prior-session[hidden]{display:none}
  #composer-fps-slot{display:flex;grid-column:5;width:40px;height:var(--composer-footer-h);align-items:center;overflow:hidden}
  #composer-context #app-fps{flex:none;max-width:40px;box-sizing:border-box}
  #composer-context #session-account{grid-column:6;width:100%}
  #composer-context #composer-session-link{grid-column:8;width:100%}
  #composer-context #current-app{grid-column:7;width:100%;max-width:none}
  #composer-context #current-app-share{grid-column:9;width:100%}
  #composer-voice-details{grid-column:10;overflow:hidden}
  #composer-context :is(button,#current-app,#composer-status){box-sizing:border-box;height:var(--composer-footer-h);min-height:0;padding:2px 4px;background:var(--surface);color:var(--ink)}
  /* @lat: [[composer-footer#Scroll edges]]
     Text controls have no pill edge for the native viewport to cut into an arc. */
  #composer .composer-actions #composer-context :is(#composer-session-reference,#composer-session-id,#composer-model,#composer-status,#session-account,#current-app,#composer-session-link,#current-app-share,#composer-prior-session){border:0;border-radius:0;box-shadow:none;background:transparent;color:var(--ink)}
  #composer .composer-actions #composer-context :is(#composer-session-id,#composer-model,#composer-status,#session-account,#current-app,#composer-session-link,#current-app-share,#composer-prior-session):hover{background:transparent;text-decoration:underline;text-underline-offset:3px}
  #composer .composer-actions #composer-context :is(#composer-session-id,#composer-model,#composer-status,#session-account,#current-app,#composer-session-link,#current-app-share,#composer-prior-session):focus-visible{outline:2px solid var(--accent);outline-offset:-2px;background:transparent}
  #composer-context :is(#session-account,#current-app){min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  #composer-context #current-app .current-app-identity{display:flex;align-items:center;min-width:0;gap:3px}
  #composer-context #current-app-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #composer-links #page-suggestions{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;gap:2px}
  #composer-links #page-suggestions::-webkit-scrollbar{display:none}
  #composer #composer-links #page-suggestions button{width:auto;min-width:0;max-width:100%;flex:0 0 auto;justify-content:flex-start;padding-inline:4px;border-radius:4px}
  #composer-buttons :is(#attach-photo,#background-work-trigger,#clear-composer,#send){width:var(--action-size);padding:2px;gap:0}
  #composer-buttons .composer-action-label{display:none}
  #composer-buttons .composer-action-icon{display:block;width:18px;height:18px}
  /* The existing hint slot owns label fit; draft changes never change its budget. */
  @container composer-hints (max-width:120px){
    #composer #composer-links .hint-full{display:none}
    #composer #composer-links .hint-compact{display:flex;flex:none;flex-direction:column;align-items:center;font-size:10px;line-height:12px;font-weight:600}
    #composer #composer-links #page-suggestions button{padding-block:0;justify-content:center}
  }
  @container composer-hints (max-width:128px){
    #composer #composer-links .hint-menu-trigger .hint-full{display:none}
    #composer #composer-links .hint-menu-trigger .hint-compact{display:flex;flex:none;flex-direction:column;align-items:center;font-size:10px;line-height:12px;font-weight:600}
    #composer #composer-links #page-suggestions .hint-menu-trigger{padding-block:0;justify-content:center}
  }
  @container composer (max-width:440px){
    #composer .composer-actions{--quota-slot:28px}
    #composer #quota-availability{font-size:10px;padding-inline:0}
    #composer-buttons{--action-size:26px;gap:0}
  }
}
/* The menu trigger shares the compact label without clipping its chevron. */
#composer #composer-links .hint-menu-trigger{gap:0}
#composer #composer-links .hint-menu-trigger>span:last-child{flex:none;font-size:10px;margin-left:auto}
#composer #composer-links .hint-menu-trigger>.spinner{width:8px;height:8px}

#session-diagram{position:relative;box-sizing:border-box;overflow:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;background:var(--page);color:var(--ink);min-width:0;padding:8px 8px 12px;--graph-detail-surface:var(--surface);--graph-detail-ink:var(--ink);--graph-detail-muted:var(--muted);--graph-detail-line:var(--line);--graph-detail-alt:var(--tab-surface)}
#session-diagram h1{font:600 20px/1.25 system-ui;margin:0 0 10px;color:var(--ink);letter-spacing:-.03em}
#session-diagram button:not(.graph-annotation-note button,.super-word-reference){background:var(--surface);color:var(--ink);border:1px solid var(--line);font-size:12px;padding:7px 10px;white-space:nowrap}
.diagram-workspace{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:20px;align-items:stretch;min-height:0;flex:1;overflow:hidden}
#session-diagram [data-drawing]{min-width:0;min-height:0;height:100%;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;user-select:text}
#session-diagram [data-drawing] > svg:not(.graph-annotation-ink){display:block;width:100%;height:auto;min-width:0;max-height:none}
#session-diagram [data-status]{color:var(--muted);font-size:13px;margin:0;padding:6px 8px}
#session-diagram[data-state=failed] [data-status]{color:var(--danger)}
#session-diagram[data-state=missing] [data-status]{color:var(--danger);background:var(--surface)}
#session-diagram[data-state=missing] .diagram-workspace{display:none}
#session-diagram:is([data-representation=webpage],[data-representation=super]) .diagram-workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}
#session-diagram:is([data-representation=webpage],[data-representation=super]) graph-detail-overlay{display:none}
.model-webpage-host{width:100%;height:100%;min-height:240px}
.model-webpage-host iframe{display:block;width:100%;height:100%;min-height:240px;border:0;background:var(--page);color:var(--ink)}
#session-diagram graph-detail-overlay{position:static;height:100%;min-height:0;--graph-detail-height:100%}
body.diagram-split #slow-lane{min-width:0}
#session-diagram[data-state=empty] .diagram-workspace{display:none}
#session-diagram[data-state=empty]{min-height:0}
#session-diagram [data-node-id]:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
@media(max-width:1000px){.diagram-workspace{grid-template-columns:minmax(0,1fr)}#session-diagram{padding:8px 0 20px}.diagram-workspace{gap:10px}#session-diagram h1{font-size:18px}}

#session-diagram{container-type:inline-size}
#session-diagram [data-drawing] > svg:not(.graph-annotation-ink){flex:none}
@container(max-width:1050px){.diagram-workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(70px,1fr) minmax(0,130px)}}

#session-diagram[hidden]{display:none}
.diagram-heading{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;flex:none;margin-bottom:10px}
#session-diagram .diagram-heading h1{flex:1;min-width:0;margin:0}
/* Flag's row height is reserved so showing it cannot move the drawing. */
#session-diagram:not([data-representation=super]) .diagram-heading{min-height:34px}
/* @lat: [[super-chart#Design]] */
/* Decision: AGENTS.md Decisions > Session mix */
#session-diagram[data-representation=super] .diagram-heading{gap:0;margin-bottom:0}
#session-diagram[data-representation=super] .diagram-heading h1{display:none}

#session-diagram-pane{position:fixed;left:calc(var(--session-sidebar) + var(--console-inline-gutter));width:var(--diagram-column-width);top:var(--diagram-pane-top,0px);z-index:7;background:var(--page);color:var(--ink);min-width:0;border-right:3px solid var(--accent)}
#session-diagram-pane[hidden]{display:none}
#session-diagram-pane.is-split{height:var(--diagram-pane-height,40vh);display:flex;flex-direction:column}
#session-diagram-pane.is-split #session-diagram{flex:1;min-height:0;display:flex;flex-direction:column}
body.diagram-split #messages{scroll-margin-top:calc(var(--diagram-text-top,45vh) + 12px)}

#session-diagram .diagram-feedback{position:absolute;bottom:8px;left:8px;right:8px;z-index:2;max-height:35%;overflow:auto;background:var(--page);color:var(--ink)}
#session-diagram [data-status]:empty{display:none}

#session-diagram{--graph-annotation-surface:var(--surface);--graph-annotation-ink:var(--ink);--graph-annotation-blue:var(--accent);--graph-annotation-red:var(--danger);--graph-annotation-green:var(--skin-good,var(--ink))}

#session-diagram h1,.diagram-feedback{flex:none}

#session-split-divider{position:absolute;right:-5px;top:0;bottom:0;width:12px;z-index:8;cursor:col-resize;touch-action:none}
#session-split-divider:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;background:var(--tab-surface)}
#session-diagram-pane:not(.is-split) #session-split-divider{display:none}

@container(max-width:1050px){#session-diagram:not([data-detail-active=true]) .diagram-workspace{grid-template-rows:minmax(70px,1fr)}#session-diagram:not([data-detail-active=true]) graph-detail-overlay{display:none}}

/* Desktop keeps Model and Text beside each other, with readable pane minima. */
body.diagram-columns{min-width:calc(var(--session-sidebar) + 2 * var(--console-inline-gutter) + 556px)}
/* @lat: [[split-layout-owner#Horizontal minimum]]
   Pan the fixed sidebar with the other fixed columns; keep vertical docking. */
body.diagram-columns #session-tabs{left:calc(-1 * var(--split-scroll-x,0px))}
body.diagram-columns #slow-lane{padding-left:calc(var(--diagram-column-width) + 12px)}

.diagram-zoom-controls{flex:none;align-self:flex-start;display:flex;gap:2px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:6px}
.diagram-zoom-controls[hidden]{display:none}
#session-diagram .diagram-zoom-controls button{min-width:32px;min-height:32px;padding:4px 7px;border:0;background:var(--surface);color:var(--ink);font:600 13px/1 system-ui}
#session-diagram .diagram-zoom-controls button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}

/* The composer belongs below Model; Text can use the full height beside it.
   @lat: [[layout-rule-retirement#Ownership]] */
body.diagram-columns #composer-dock{width:var(--diagram-column-width)}
body.diagram-columns #slow-lane:has(>#messages:not([hidden])):has(>#composer-dock:not([hidden])){padding-bottom:calc(24px + var(--conversation-scroll-tail,0px))}
body.diagram-columns #messages>.message.user:is([data-provenance="human"],.routed-user-request){max-height:min(25vh,180px);overflow:auto;overscroll-behavior:contain}
body.diagram-columns #messages>.message.user.latest-human-prompt{position:sticky;top:12px;z-index:3;max-height:min(37.5vh,270px)}

/* Phone width or mobile device policy uses tabs. Keep the
   drawing mounted at its real size while Text is shown. */
#session-view-tabs{position:sticky;z-index:8;display:flex;gap:4px;padding:4px;background:var(--page);color:var(--ink);overscroll-behavior:contain}
#session-view-tabs[hidden]{display:none}
#session-view-tabs button{flex:1;min-height:36px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font-size:14px}
#session-view-tabs button[aria-pressed=true]{background:var(--tab-selected,var(--surface));color:var(--accent);border-color:var(--accent)}
body.mobile-model-tabs #session-diagram-pane{display:flex!important;flex-direction:column;left:var(--mobile-model-left);right:var(--console-inline-gutter);width:auto;height:var(--diagram-pane-height);border:0;visibility:hidden;pointer-events:none}
body.mobile-model-tabs #session-diagram{display:flex;flex:1;min-height:0;flex-direction:column;padding:8px 0}
body.mobile-model-tabs #session-split-divider{display:none}
body.mobile-model-active{overflow:hidden;overscroll-behavior:none}
body.mobile-model-active #session-diagram-pane{visibility:visible;pointer-events:auto}
body.mobile-model-active #session-view-tabs{position:fixed;left:var(--mobile-model-left);right:var(--console-inline-gutter)}
body.mobile-model-active #slow-lane>:is(#messages,#messages-more,#super-session-routes,#resume){visibility:hidden;pointer-events:none}
body[data-super-view="overview"].mobile-model-tabs #session-diagram-pane{display:flex!important}

body.mobile-model-tabs :is(.model-webpage-host,.model-webpage-host iframe){min-height:0!important}

#session-diagram[data-representation=activity] .diagram-workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}
#session-diagram[data-representation=activity] graph-detail-overlay{display:none}

/* Decision: AGENTS.md Decisions > Canvas widgets */
.session-report{box-sizing:border-box;padding:14px;color:var(--ink);background:transparent;font:400 17px/1.55 system-ui;overflow-wrap:anywhere}
.session-report p{margin:0 0 16px}.session-report h2{font-size:20px}
.session-report-generated[hidden]{display:none}
.session-report-generated{display:block;margin-top:12px;color:var(--ink);background:transparent;font:400 12px/1.5 system-ui}
.session-report a{color:var(--accent);cursor:pointer}
.session-report .message-decoration{--decoration-ink:var(--ink);font:inherit}

.model-webpage-host{position:relative}

/* Decision: AGENTS.md Decisions > Diagram flag */
#session-diagram .diagram-zoom-controls{align-items:center;flex-wrap:wrap}
#session-diagram .diagram-zoom-controls a{color:var(--accent);background:var(--surface);padding:4px 7px;font-size:12px}
#session-diagram .diagram-flag-status{color:var(--ink);background:var(--surface);font-size:12px;max-width:100%;overflow-wrap:anywhere}
#session-diagram .diagram-zoom-controls button[aria-pressed=true]{color:var(--danger);background:var(--surface)}
#session-diagram .diagram-zoom-controls button:disabled{opacity:.65}

/* Decision: AGENTS.md Decisions > Canvas widgets */
#session-diagram[data-representation=report] .diagram-workspace{display:flex;flex-direction:column;gap:0}
#session-diagram[data-representation=report] graph-detail-overlay{display:none}
#session-diagram[data-representation=report] [data-drawing]{flex:1;min-height:0}
.session-report-host{display:flex;box-sizing:border-box;min-height:100%;height:100%;padding:24px;overflow:auto;color:var(--ink);background:var(--page)}
.session-report-host .session-report{flex:none;width:100%;max-width:44rem;margin:auto;padding:0}
.session-canvas-content{width:100%;max-width:44rem;margin:auto}
.session-links{margin-top:28px;padding-top:16px;border-top:1px solid var(--line);font:400 14px/1.5 system-ui}
.session-links h2{font-size:16px;margin:0 0 12px}
.session-links ul{list-style:none;margin:0;padding:0}
.session-links li{margin:0 0 16px}
.session-links li a{color:var(--accent);overflow-wrap:anywhere}
.session-links li span{display:block;margin-top:2px;color:var(--muted);overflow-wrap:anywhere}
@media(max-width:600px){.session-report-host{padding:16px}}

:host,#session-tabs{--page:#edf7f1;--surface:#fffdf5;--tab-surface:#dcebdc;--tab-selected:#fff3bf;--ink:#17372f;--muted:#526b61;--line:#8ea99b;--accent:#176f60;--create-bg:#32754c;--create-hover:#285f3d;--create-ink:#ffffff;--urgent:#c92f43;--urgent-edge:#a31324;--urgent-ink:#ffffff;--alert-ink:#8d2635}
/* Desktop sessions keep background agents nested under their parent. */
#session-tabs{position:fixed;top:0;bottom:var(--platform-footer-height,49px);left:0;z-index:20;isolation:isolate;box-sizing:border-box;display:flex;flex-direction:column;width:var(--session-sidebar,440px);padding:8px 0 0;overflow:clip;background:var(--page);color:var(--ink);border-right:1px solid var(--line);box-shadow:4px 0 16px rgba(34,68,51,.1);view-transition-name:excessivecode-session-tabs}
body:not(.conversation-visible)>#session-tabs,#mobile-session-header,#mobile-session-close{display:none}
#session-tabs[data-shared="true"]{view-transition-name:none}
#session-tab-strip{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0}
#session-sidebar-head{--sidebar-control-height:32px;display:flex;align-items:center;gap:6px;padding:0 10px 8px}
@media(min-width:621px){#session-sidebar-head>button{height:var(--sidebar-control-height);min-height:var(--sidebar-control-height);border:0}}
#session-sidebar-head>#new-session{margin-inline-start:auto}
@media(min-width:621px){#session-sidebar-head>.server-identity{min-width:56px}}
#session-sidebar-head>:is(#session-search-open,#session-replies-open){margin:0}
.session-tab{display:grid;grid-template-columns:minmax(0,1fr) 22px;grid-template-rows:auto;align-items:center;column-gap:1px}
.session-tab>*{grid-row:1}
#session-lanes-status{margin:4px 10px 0;color:var(--muted);font:700 11px/1.2 ui-monospace,monospace;-webkit-user-select:text;user-select:text}
#session-lanes-status[data-state="failed"]{color:var(--alert-ink)}
#session-tab-list{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:2px;padding:4px 4px 10px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;overflow-anchor:none;scrollbar-width:thin}
/* Two grays tell who started a session: a person, or an agent or app working on its own. */
.session-tab{--muted:color-mix(in srgb,var(--ink) 82%,var(--page));--row-bg:color-mix(in srgb,var(--ink) 4%,var(--page));position:relative;flex:none;min-height:40px;padding:0 4px 0 0;border:1px solid transparent;border-radius:0;background:var(--row-bg);touch-action:pan-y}
.session-tab[data-initiation="agent"]{--row-bg:color-mix(in srgb,var(--ink) 12%,var(--page))}
.session-tab:not(:has([aria-selected="true"])):hover{--row-bg:color-mix(in srgb,var(--tab-surface) 55%,var(--page))}
.session-tab[data-factory]:not(:has([aria-selected="true"])):hover{--row-bg:color-mix(in srgb,var(--factory) 45%,var(--page))}
.session-tab>:is(button,a):first-child{position:relative;display:grid;grid-column:1;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:4px 1px 4px calc(19px + var(--depth,0) * 14px);border:0;border-radius:0;background:transparent;color:var(--ink);font:inherit;text-align:left;text-decoration:none;white-space:nowrap;cursor:pointer}
.session-tab>:is(button,a):first-child *{cursor:inherit}
.session-tab>:is(button,a):first-child:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.session-tab-copy{display:grid;row-gap:3px;min-width:0;align-content:center;text-align:left}
/* Decision: AGENTS.md Decisions > Factory row. Hazard marks identify type; the right-edge selection frame stays distinct from factory amber. */
.session-tab[data-factory]{--factory:#ffb000;--factory-ink:#1b1400;--factory-row-bg:color-mix(in srgb,var(--factory) 24%,var(--page));--row-bg:var(--factory-row-bg)}
.session-tab[data-factory]:not(:has([aria-selected="true"])){box-shadow:inset 0 0 0 1px var(--factory)}
.session-tab[data-factory]::before{position:absolute;top:0;bottom:0;left:0;width:9px;background:repeating-linear-gradient(135deg,var(--factory) 0 5px,var(--factory-ink) 5px 10px);content:"";pointer-events:none;z-index:2}
.session-tab[data-factory]>.session-tab-fold{z-index:3}
.session-tab[data-factory]>.session-tab-fold::before{padding:2px 1px;border-radius:4px;background:var(--factory-ink);color:var(--factory);box-shadow:0 0 0 1px var(--factory)}
/* Decision: AGENTS.md Decisions > Row buttons. Above row buttons (z-index 4), so rows scrolled under it stay hidden. */
/* Its own band above the list: the page-colored ring hides rows in the list padding, the line marks the split. */
.session-tab[data-super="true"]{position:sticky;top:0;z-index:5;background:var(--row-bg);margin-bottom:6px;box-shadow:0 0 0 4px var(--page),0 5px 0 4px var(--line)}
/* @lat: [[super-sidebar#Design]] */
/* Decision: AGENTS.md Decisions > Prompt preview */
.session-tab>.super-latest-request{display:block;grid-column:1 / -1;grid-row:2;max-height:calc(4.35em + 16px);overflow:auto;margin:2px 8px 10px;padding:8px;border-radius:9px;font:12px/1.45 system-ui;white-space:pre-wrap;overflow-wrap:anywhere;text-decoration:none;user-select:text;-webkit-user-select:text}
.super-latest-request>a{display:block;color:inherit;text-decoration:none}
.super-latest-request>.viewed-session-context:not([hidden]){display:block;margin-top:6px;white-space:normal}
.super-latest-request>a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
#session-tab-list .session-tab[data-super="true"]>.session-tab-fold{bottom:auto;height:40px}
.session-tab-title{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.25;font-size:12.5px;user-select:text;-webkit-user-select:text}
.session-tab [aria-selected="true"] .session-tab-title,.session-tab[data-surface] .session-tab-title{font-weight:700}
.session-tab-app{background:var(--row-bg);display:flex;min-width:0;align-items:center;gap:3px;overflow:hidden;color:var(--muted);font-size:10px;line-height:1.3;white-space:nowrap;cursor:text;user-select:text;-webkit-user-select:text}
.session-tab-app .session-tab-detail{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
/* The short session ID becomes a badge on hover; clicking it copies the full ID. */
.session-tab-app .session-tab-id{position:relative;flex:none;overflow:visible;border-radius:3px;font-family:ui-monospace,monospace;-webkit-user-select:none;user-select:none}
.session-tab-app .session-tab-id:hover{background:var(--surface);color:var(--ink);box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--line);cursor:pointer}
.session-tab-id~:is(.session-tab-model:not([hidden]),.session-tab-detail:not(:empty))::before{content:'\b7';margin-right:3px}
/* Metadata stays in flow below the title, so model codes and timers cannot cover words. */
/* Decision: AGENTS.md Decisions > Sidebar model. */
.session-tab-app .session-tab-model{flex:0 1 auto;min-width:3ch;overflow:hidden;text-overflow:ellipsis}
/* A linked server's name ends in an ellipsis when the row is narrow. */
.session-tab-app .session-tab-server{flex:0 1 auto;min-width:3ch;overflow:hidden;text-overflow:ellipsis}
.session-tab-model:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.session-tab-elapsed{position:static;flex:none;margin-left:auto;padding:0 4px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font-size:9px;line-height:11px;font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none}
.session-tab-elapsed:not([data-stopped]){border-color:#000;background:#fff;color:#000;font-weight:700}
.session-tab-elapsed[data-stopped]{color:var(--muted)}
.runtime-fast-mark{display:inline-grid;width:11px;height:11px;margin:0 3px 0 0;place-content:center;vertical-align:-1px;color:#b8860b}.runtime-fast-mark svg{width:10px;height:10px;fill:currentColor}
:where(html[data-theme="dark"]) .runtime-fast-mark{color:#f2c14e}
.session-state{display:grid;width:20px;height:20px;place-content:center}
.session-fairy{position:relative;background-image:var(--fairy-suite-url);background-position:100% 0;background-size:300% 100%;background-repeat:no-repeat;filter:hue-rotate(var(--fairy-hue,0deg))}
.session-fairy.is-working::after,.session-lane-glyph.is-working::after{position:absolute;inset:1px;border:2px solid var(--accent);border-top-color:transparent;border-radius:50%;content:"";animation:session-tab-spin .8s linear infinite}
.session-fairy.is-working::after{inset:-6px;border-width:1.5px}
/* Decision: AGENTS.md Decisions > Work signal. Background work is a slow, muted dashed ring; thinking is the fast solid spinner. */
.session-fairy.is-background::after{position:absolute;inset:-6px;border:1.5px dashed var(--muted);border-radius:50%;content:"";animation:session-tab-spin 4s linear infinite}
.session-tab-favicon{display:block;width:16px;height:16px;object-fit:contain}
.session-fairy:has(.session-tab-favicon:not([hidden])),.session-fairy:has(.session-tab-score:not([hidden])){background-image:none;filter:none}
.session-tab-score{box-sizing:border-box;min-width:20px;height:18px;padding:0 2px;font-size:10.5px}
.session-tab-score[data-band="none"]{color:var(--muted);background:var(--surface)}
/* Keep the terminal error mark red even on hue-shifted fallback fairies. */
.session-fairy.is-halted{filter:none}
/* Decision: AGENTS.md Decisions > Factory row. Same red as the halted mark. */
/* Decision: AGENTS.md Decisions > Factory row. Blocked is an amber status light; red × stays for errors. */
#session-tab-list .session-tab[data-blocked] .session-tab-detail{color:#7a4a00;font-weight:700}
:where(html[data-theme="dark"]) #session-tab-list .session-tab[data-blocked] .session-tab-detail{color:#ffd27a}
.session-fairy.is-blocked{filter:none}
.session-fairy.is-blocked::before{content:"";position:absolute;left:-9px;bottom:-5px;z-index:1;box-sizing:border-box;width:10px;height:10px;border:1.5px solid #fffdf5;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffe9a8 0 20%,#f2a900 55%,#c47f00);box-shadow:0 0 0 1px #7a4a00,0 0 6px 1px #f2a900;pointer-events:none}
:where(html[data-theme="dark"]) .session-fairy.is-blocked::before{border-color:#182f27;box-shadow:0 0 0 1px #ffd27a,0 0 7px 2px #f2a900}
/* Drawn strokes, not a font glyph: a glyph's x sits below the circle's center (2026-11-03, Super1744572). */
.session-fairy.is-halted::before{content:"";position:absolute;left:-9px;bottom:-5px;z-index:1;box-sizing:border-box;width:11px;height:11px;border:1px solid #a51d32;border-radius:50%;background:linear-gradient(45deg,transparent 40%,currentColor 40% 60%,transparent 60%) center/6px 6px no-repeat,linear-gradient(-45deg,transparent 40%,currentColor 40% 60%,transparent 60%) center/6px 6px no-repeat;background-color:#fffdf5;color:#a51d32;pointer-events:none}
:where(html[data-theme="dark"]) .session-fairy.is-halted::before{background-color:#182f27;color:#ff9bab;border-color:#ff9bab}
/* Sessions with background agents fold them away behind a gutter caret; a folded caret carries the agent count. */
#session-tab-list .session-tab>.session-tab-fold{position:absolute;top:0;bottom:0;left:0;z-index:2;display:grid;width:15px;place-content:center;padding:0;border:0;border-radius:0;background:transparent;color:var(--muted);font:700 10px/1 system-ui,sans-serif;cursor:pointer}
.session-tab-fold::before{content:"▾"}
.session-tab-fold[aria-expanded="false"]::before{content:"▸"}
.session-tab-fold[data-count]:not([data-count=""])::before{content:"▸\A" attr(data-count);white-space:pre;text-align:center;font-size:9px;line-height:1.1}
.session-tab-fold:is(:hover,:focus-visible){background:color-mix(in srgb,var(--tab-surface) 80%,var(--accent));color:var(--accent);outline:0}
/* Child rows hang off their parent: a rail drops from the parent's icon and the rows sit flat on the page, not as cards. */
.session-lane-children{position:relative;display:flex;flex:none;flex-direction:column;gap:2px;margin-top:-2px;padding-bottom:4px}
.session-lane-children::before{position:absolute;top:0;bottom:6px;left:28px;z-index:1;width:2px;border-radius:1px;background:color-mix(in srgb,var(--accent) 55%,var(--page));content:"";pointer-events:none}
.session-lane-child{--row-bg:var(--page);min-height:32px}
.session-lane-child .session-tab-title{font-size:11.5px}
.session-lane-child .session-lane-glyph{position:relative;color:var(--muted);font-size:13px}
.session-lane-glyph.is-working{font-size:0}
.session-lane-glyph.is-working::after{inset:3px}
/* Decision: AGENTS.md Decisions > Child session rows. Muted ink needs its unblended page surface. */
.session-completed-children{display:flex;flex:none;align-items:center;gap:8px;min-height:30px;margin:0 4px 0 33px;padding:4px 8px;border:0;border-radius:0;background:var(--page);color:var(--muted);font:11.5px/1.3 system-ui,sans-serif;text-align:left;cursor:pointer;-webkit-user-select:text;user-select:text}
.session-completed-children::before{content:'▸';color:var(--muted)}
.session-completed-children[aria-expanded="true"]::before{content:'▾'}
.session-completed-children:hover{background:var(--tab-surface);color:var(--ink)}
.session-completed-children:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;background:var(--tab-surface);color:var(--ink)}
/* Human chats stay at the top level. Agent sessions nest below their group.
   Rows stay siblings so the Lanes renderer can keep their tracks and children. */
#session-tabs :is(#session-tab-list,.session-server,.session-server-rows)>.session-app-group{display:flex;flex:none;align-items:baseline;gap:8px;min-height:32px;margin:8px 0 0;padding:5px 10px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:var(--surface);color:var(--ink);font:700 12.5px/1.3 system-ui,sans-serif;text-align:left;cursor:pointer;-webkit-user-select:text;user-select:text}
#session-tabs :is(#session-tab-list,.session-server,.session-server-rows)>.session-app-group::before{content:'▸';color:var(--accent)}
#session-tabs :is(#session-tab-list,.session-server,.session-server-rows)>.session-app-group[aria-expanded="true"]::before{content:'▾'}
#session-tabs :is(#session-tab-list,.session-server,.session-server-rows)>.session-app-group>span{color:var(--muted);font-size:11px;font-weight:400}
#session-tabs :is(#session-tab-list,.session-server,.session-server-rows)>.session-app-group:hover{background:var(--tab-surface);color:var(--ink)}
#session-tabs :is(#session-tab-list,.session-server,.session-server-rows)>.session-app-group:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
#session-tabs :is(#session-tab-list,.session-server-rows)>.session-agent-head{display:flex;flex:none;align-items:baseline;gap:8px;min-height:32px;margin:0 0 0 18px;padding:6px 10px;border:0;border-left:1px solid var(--line);border-radius:0;background:var(--surface);color:var(--ink);font:12.5px/1.3 system-ui,sans-serif;text-align:left;cursor:pointer;-webkit-user-select:text;user-select:text}
.session-agent-head::before{content:'▸';color:var(--muted)}
.session-agent-head[aria-expanded="true"]::before{content:'▾'}
.session-agent-head>span{color:var(--muted);font-size:11px;font-weight:400}
.session-agent-head[data-working]>span{color:var(--accent)}
#session-tabs :is(#session-tab-list,.session-server-rows)>.session-agent-head:hover{background:var(--tab-surface);color:var(--ink)}
#session-tabs :is(#session-tab-list,.session-server-rows)>.session-agent-head:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.session-tab[data-app-group],.session-tab[data-app-group]+.session-lane-children{position:relative;margin-left:36px}
.session-tab[data-app-group]::after,.session-tab[data-app-group]+.session-lane-children::after{position:absolute;top:-3px;bottom:-1px;left:-1px;border-left:1px solid var(--line);content:"";pointer-events:none}
:is(#session-tab-list,.session-server-rows)>[data-app-group-folded],:is(#session-tab-list,.session-server-rows)>[data-app-group-folded]+.session-lane-children{display:none}
.session-tab[data-surface]>button:first-child{grid-column:1 / 3}
/* Row actions stay above titles that expand across the activity track. */
.session-tab-close{position:relative;z-index:4;grid-column:2;display:grid;align-self:center;box-sizing:border-box;width:21px;height:21px;place-content:center;padding:0 0 2px;border:0;border-radius:50%;background:var(--row-bg);color:var(--muted);font-size:15px;line-height:1;cursor:pointer}
.session-tab .session-tab-close:is(:hover,:focus-visible){background:color-mix(in srgb,var(--tab-selected) 78%,var(--accent));color:var(--accent);outline:2px solid color-mix(in srgb,var(--accent) 34%,transparent);outline-offset:-2px}
#new-session{display:grid;flex:none;width:38px;min-width:38px;height:32px;min-height:0;place-content:center;padding:0;border:0;border-radius:0;background:var(--create-bg);color:var(--create-ink);font-size:19px;line-height:1;cursor:pointer}#new-session:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}#new-session:is(:hover,:focus-visible):not(:disabled){background:var(--create-hover)}#new-session:disabled{cursor:not-allowed;opacity:.55}
@keyframes session-tab-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.session-fairy:is(.is-working,.is-background)::after,.session-lane-glyph.is-working::after{animation:none}}
.session-tab .session-tab-mic{position:absolute;z-index:4;right:3px;bottom:0;display:grid;box-sizing:border-box;width:24px;height:22px;min-height:0;margin:0;place-content:center;padding:0;border:1px solid transparent;border-radius:50%;background:var(--row-bg);color:var(--accent);font-size:13px;line-height:1;cursor:pointer;user-select:none}.session-tab[data-voice-delivered="true"] .session-tab-mic{background:#dff0e4;color:#173b26}
.session-tab .session-tab-mic:is(:hover,:focus-visible){background:var(--tab-selected);color:var(--ink);outline:2px solid var(--accent);outline-offset:-2px}
:where(html[data-theme="dark"]) .session-tab[data-voice-delivered="true"] .session-tab-mic{background:#2c3b33;color:#b8e7c7}
.session-tab:has(.session-tab-mic:not([hidden])) .session-tab-close{align-self:start;height:18px;margin-top:2px}
.session-lane-child:has(.session-tab-mic:not([hidden])){min-height:42px}

/* Mobile has one stable, selectable session heading; the transcript owns navigation. */
@media(max-width:620px){
  #session-tabs{inset:0 0 auto;width:auto;height:44px;flex-direction:row;align-items:flex-end;padding:4px calc(4.5px + var(--mobile-navigation-clearance,0px)) 0 4.5px;border-right:0;border-bottom:1px solid rgba(55,100,78,.45);box-shadow:0 5px 18px rgba(34,68,51,.13)}
  #session-tab-strip{flex-direction:row;align-self:stretch}
  #session-sidebar-head{display:contents}
  #session-sidebar-head>#new-session{margin-inline-start:2px}
  #session-tabs :is(#session-tab-list,#session-lanes-status,#session-search-open){display:none}
  #new-session{align-self:stretch;width:30px;min-width:30px;height:auto;margin:0 2px 4px}
  #session-tabs #session-replies-open{display:grid;place-items:center;align-self:flex-start;margin:0 0 0 4px;width:var(--mobile-header-control-size,36px);height:var(--mobile-header-control-size,36px);min-width:0;min-height:0;padding:0;border:0;line-height:1}
  body[data-composer-editing="true"] #session-tabs #session-replies-open{margin-top:1px}
  #mobile-session-header{display:flex;flex:1;min-width:0;overflow:hidden;flex-direction:column;justify-content:center;gap:2px;padding:0 4px 3px;color:var(--ink);background:var(--page);user-select:text;-webkit-user-select:text}
  .mobile-session-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;color:var(--muted);font-size:10px;line-height:12px}
  body[data-super-view="overview"] #mobile-session-model{display:none}
  #mobile-session-model{flex:none;color:var(--ink);white-space:nowrap;user-select:text}
  /* Decision: AGENTS.md Decisions > Server badge. Layout only; skins.css owns its server color. */
  #mobile-session-header #mobile-instance-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mobile-session-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
  #session-tabs #session-lanes-status:not([hidden]){display:block;position:fixed;top:48px;left:8px;right:8px;margin:0;padding:10px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);font-size:12px;line-height:1.4}
  #session-tabs #mobile-release-version{flex:0 1 auto;min-width:0;min-height:0;overflow:hidden;text-overflow:ellipsis;margin:0;padding:0;border:0;border-radius:2px;background:var(--page);color:var(--muted);font:inherit;font-variant-numeric:tabular-nums;white-space:nowrap;cursor:pointer;user-select:text;-webkit-user-select:text}
  #session-tabs #mobile-release-version[data-page-state="old"]{color:var(--ink);background:var(--tab-selected)}
  #session-tabs #mobile-release-version:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  #mobile-session-title{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;line-height:17px}
  #session-tabs #mobile-session-close{display:grid;flex:none;align-self:stretch;width:44px;place-items:center;margin:0;padding:0;border:0;border-radius:4px;background:var(--page);color:var(--muted);font:22px/1 system-ui;cursor:pointer}
  #session-tabs #mobile-session-close:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
  #session-tabs #mobile-session-close:disabled{color:var(--muted);background:var(--surface);cursor:wait}
  body[data-composer-editing="true"] #session-tabs{height:32px;padding-top:0}
  body[data-composer-editing="true"] #mobile-session-header{gap:0;padding-bottom:0}
  body[data-composer-editing="true"] .mobile-session-meta{font-size:9px;line-height:11px}
  body[data-composer-editing="true"] #mobile-session-title{font-size:12px;line-height:15px}
  body[data-composer-editing="true"] #new-session{margin-block:1px 3px;min-height:26px;height:26px;padding-block:1px}
}
:where(html[data-theme="dark"]) #session-tabs{--page:#10251f;--surface:#182f27;--tab-surface:#244239;--tab-selected:#4c492d;--ink:#edf6ea;--muted:#aec6bb;--line:#587c6e;--accent:#7bd4b8;--create-bg:#86c99a;--create-hover:#a0dbb1;--create-ink:#102b1b;--urgent:#b3263a;--urgent-edge:#ff9bab;--urgent-ink:#ffffff;--alert-ink:#ffb7c0}
#session-tab-list .session-tab[data-attention="urgent"]{--row-bg:var(--urgent);border-color:var(--urgent-edge)}
#session-tab-list .session-tab[data-attention="urgent"] :is(button,a,.session-tab-app,.session-tab-close){color:var(--urgent-ink)}

/* Excessive Code for Mac: the window buttons float over the sidebar's top-left corner. */
@media(min-width:621px){html[data-mac-titlebar] #session-tabs{top:28px;padding-top:8px}}
@media(max-width:620px){html[data-mac-titlebar] #session-tabs{padding-left:76px}}

/* Current server identity stays visible independently of the composer and app menu. */
.server-identity{display:grid;grid-template-rows:18px 14px;row-gap:1px;flex:0 1 120px;min-width:0;height:33px;background:none;color:var(--ink)}
#session-sidebar-head .server-identity>#desktop-instance-name{display:flex;align-items:center;min-width:0;max-width:100%;height:18px;min-height:0;padding:0 8px;font-size:12px;line-height:18px}
.server-identity>.server-account{min-height:0;height:14px;margin:0;padding:0 8px;font-size:10px;line-height:14px}
@media(max-width:620px){.server-identity{display:none}}
.server-account{display:block;min-width:0;max-width:100%;margin:0 10px 6px;padding:2px 8px;border:0;border-radius:0;background:none;color:var(--ink);font:11px/1.4 system-ui;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;user-select:text;-webkit-user-select:text}
.server-account:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:620px){#session-tab-strip>.server-account{display:none}.mobile-session-meta{gap:5px}.mobile-session-meta .server-account{flex:1;min-width:45px;margin:0;padding:0;font:inherit}.mobile-session-meta #mobile-instance-name{flex:none;max-width:26%}.mobile-session-meta #mobile-release-version{max-width:28%}}


/* Sessions an app started: collapsed below the operator's own until opened. */
#system-sessions{flex:none;max-height:40%;overflow-y:auto;margin:0 4px 8px;border-top:1px solid var(--line);color:var(--ink)}
#system-sessions>summary{padding:8px 6px;font-size:12px;font-weight:600;cursor:pointer}
#system-sessions>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
#system-sessions #system-sessions-list{padding:0 6px 4px}
@media(max-width:620px){#session-tabs #system-sessions{display:none}}

@media(max-width:620px){
  #session-tabs #mobile-session-id-copy{position:relative;flex:none;min-width:32px;min-height:0;margin:-5px 0;padding:5px 2px;border:0;border-radius:3px;background:var(--page);color:var(--ink);font:11px/12px ui-monospace,monospace;cursor:pointer;-webkit-tap-highlight-color:transparent}
  #session-tabs #mobile-session-id-copy[hidden]{display:none}
  #session-tabs #mobile-session-id-copy:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
  #session-tabs #mobile-session-id-copy:active{background:var(--tab-selected)}
}

/* One front door, above the individual conversations. Uses the host palette. */
#super-session-open{display:flex;align-items:center;gap:8px;flex:none;margin:0 4px 8px;padding:10px 12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
#super-session-open:disabled{color:var(--muted);cursor:wait}
#super-session-open:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
#super-session-routes{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
#super-session-routes[hidden],#super-session-open[hidden]{display:none}
#super-session-routes a{display:flex;gap:8px;align-items:center;padding:6px 10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:6px;text-decoration:none}
#super-session-routes small{color:var(--muted)}
@media(max-width:620px){#super-session-open{padding:6px;margin:0 2px 4px;width:30px;min-width:30px;height:32px;align-self:flex-start;justify-content:center}#super-session-open :is(span,small){display:none}#super-session-open .session-toolbar-icon{width:16px;height:16px}}

.sidebar-detail-reveal{position:fixed;inset:auto;box-sizing:border-box;width:max-content;margin:0;padding:0 8px 0 0;border:0;background:var(--page);color:var(--ink);line-height:1.25;white-space:normal;overflow-wrap:anywhere;box-shadow:0 2px 8px -2px #102f5940;pointer-events:none}
.sidebar-detail-reveal[data-kind="tooltip"]{max-width:min(300px,calc(100vw - 16px));padding:4px 7px 5px;border:1px solid var(--line);border-radius:5px;background:var(--ink);color:var(--page);font:400 11px/1.3 system-ui,sans-serif;box-shadow:0 3px 10px -2px rgb(0 0 0/.35)}
.sidebar-tip-head{display:block;white-space:nowrap}
.sidebar-tip-detail{display:-webkit-box;margin-top:2px;overflow:hidden;color:color-mix(in srgb,var(--page) 80%,var(--ink));font-size:10px;-webkit-box-orient:vertical;-webkit-line-clamp:3}

/* Decision: AGENTS.md Decisions > Child session rows. */
.session-lane-child .session-tab-detail{display:inline-flex;align-items:center;gap:5px}
.session-child-status{color:var(--skin-good,#23814c);font-size:10px;line-height:1}
.session-child-status[data-state="running"]{color:var(--accent)}
.session-child-status[data-state="failed"]{color:var(--danger)}
.session-child-time{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--muted)}

#session-initial-task pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;margin:8px 0}
.session-lane-child:has(>.session-tab-fold)>a{padding-right:42px}

/* Decision: AGENTS.md Decisions > Session history. */
/* Session priority score badge. */
.session-issue-score{display:grid;place-items:center;height:22px;border-radius:5px;font:800 11.5px/1 ui-monospace,monospace;background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.session-issue-score[data-band="urgent"]{background:#c92f43;border-color:#c92f43;color:#fff}
.session-issue-score[data-band="high"]{background:#ffb000;border-color:#ffb000;color:#1b1400}
/* Decision: AGENTS.md Decisions > Waiting for a person. Neon blue beats every band. */
.session-issue-score[data-waiting="true"]{background:#1fe4ff;border-color:#0a8fb0;color:#03141a;box-shadow:0 0 6px rgb(31 228 255/.6)}

/* Decision: AGENTS.md Decisions > Selected session. One frame for every row, clear of the factory's left stripe. */
#session-tabs .session-tab:has(>[aria-selected="true"]){
  --row-bg:var(--factory-row-bg,var(--tab-selected));
  --muted:color-mix(in srgb,var(--ink) 80%,var(--page));
  background:var(--row-bg);color:var(--ink);border-color:var(--accent);
  box-shadow:inset 0 0 0 1px var(--accent),inset -5px 0 0 var(--accent);
}
#session-tab-list .session-tab[data-attention="urgent"]:has(>[aria-selected="true"]) :is(button,a,.session-tab-app,.session-tab-close){color:var(--ink)}

/* Keep row actions inside one paint/hit-test layer, including WebKit scrolling. */
.session-tab{isolation:isolate}
#session-undo-close{display:grid;place-items:center;width:30px;min-width:30px;padding:0;border:0;background:transparent;color:var(--ink);font-size:22px;cursor:pointer}
#session-undo-close:disabled{opacity:.5;cursor:wait}
@media(max-width:620px){#session-undo-close{align-self:stretch;margin-bottom:4px}}

/* Decision: AGENTS.md Decisions > Linked sidebar. The app palette owns every server group. */
.session-linked-servers,.session-server,.session-server-rows{display:flex;flex:none;flex-direction:column;gap:2px;min-width:0}
.session-server-status{padding:5px 10px;background:var(--page);color:var(--alert-ink);font:12px/1.4 system-ui,sans-serif;overflow-wrap:anywhere}
.session-server-status button{margin-left:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}
.session-server-rows>.session-tab>:first-child{grid-column:1 / -1}

/* Decision: AGENTS.md Decisions > Stable views. Linked chats and children share one first reveal. */
#session-tab-list[data-loading=true]{position:relative;min-height:260px}
#session-tab-list[data-loading=true]>*{visibility:hidden;pointer-events:none}
#session-tab-list[data-loading=true]::before{content:'Loading sessions…';position:absolute;top:18px;left:12px;color:var(--muted);background:var(--page);font:13px/1.5 system-ui}

/* @lat: [[phone-swipes#Read-only inspection navigation]] */
#session-tabs #mobile-session-close[data-inspection]{font:600 12px/1 system-ui}

.work-loop{--run-done:#2f8a3f;--run-problem:#b57f00;--run-failed:#c23a2e;--run-running:#2f6fbf;background:var(--surface);color:var(--ink);padding:16px 8px;max-width:1000px}
html[data-theme="dark"] .work-loop{--run-done:#4fbf62;--run-problem:#e0b030;--run-failed:#ec6a5c;--run-running:#6aa2ec}
.work-loop-track{position:relative;height:44px;border-bottom:1px solid var(--line)}
.work-loop-mark{display:block;position:absolute;bottom:0;width:6px;height:36px;margin-left:-3px;padding:0;border:0;border-radius:3px 3px 0 0;cursor:pointer;background:var(--run-done)}
.work-loop-mark:hover,.work-loop-mark:focus-visible,.work-loop-mark[aria-pressed=true]{height:44px;outline:2px solid var(--ink);outline-offset:1px}
.work-loop [data-outcome=problem]{background:var(--run-problem)}.work-loop [data-outcome=failed]{background:var(--run-failed)}.work-loop [data-outcome=running]{background:var(--run-running)}
.work-loop-days{position:relative;height:20px;font-size:12px;color:var(--muted)}.work-loop-days span{position:absolute;top:3px;transform:translateX(-50%);white-space:nowrap}
.work-loop-legend{margin:12px 0 0;font-size:13px;color:var(--muted)}.work-loop-dot{display:inline-block;width:9px;height:9px;border-radius:2px;margin:0 4px 0 12px;vertical-align:-1px;background:var(--run-done)}.work-loop-dot:first-child{margin-left:0}
.work-loop-detail{margin-top:14px;min-height:4em;color:var(--ink)}.work-loop-detail p{margin:2px 0;color:var(--muted)}.work-loop-detail a{color:var(--accent);margin-right:12px}
.system-page{color:var(--ink);background:var(--page)}
.system-page a{color:var(--ink)}
.system-page audio{display:block;width:100%;margin:8px 0}

/* Decision: AGENTS.md Decisions > Shared factory use */
.factory-usage{max-width:960px;font:14px/1.5 var(--skin-font,system-ui);color:var(--ink);background:var(--page);user-select:text}
.factory-usage>p{max-width:76ch;margin:0 0 16px}
.factory-usage table{width:100%;border-collapse:collapse;text-align:left;background:var(--surface);color:var(--ink)}
.factory-usage caption{text-align:left;padding:8px 0;background:var(--page);color:var(--ink);font-weight:600}
.factory-usage th,.factory-usage td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top;font-variant-numeric:tabular-nums}
.factory-usage small{display:block;font-size:12px;font-weight:400;color:inherit;background:transparent}
.factory-usage .factory-usage-note{margin-top:12px}
@media(max-width:600px){.factory-usage thead{display:none}.factory-usage tr{display:block;padding:8px 0;border-bottom:1px solid var(--line)}.factory-usage th,.factory-usage td{display:block;padding:3px 10px;border:0}.factory-usage td::before{content:attr(data-label) ': ';font-weight:600}.factory-usage small{display:block;margin-left:0}}

/* Decision: AGENTS.md Decisions > Factory dashboard. The containing app/bridge owns this palette. */
.factory-dashboard{display:grid;gap:24px;padding:12px;max-width:900px;color:var(--ink);background:var(--page);font:14px/1.5 var(--skin-font,system-ui);overflow-wrap:anywhere;user-select:text}
.factory-dashboard section{min-width:0;padding:0 0 20px;border-bottom:1px solid var(--line);background:var(--page);color:var(--ink)}
.factory-dashboard h2{font-size:18px;line-height:1.3;margin:0 0 10px;color:var(--ink)}
.factory-dashboard p{margin:6px 0}.factory-dashboard dl{display:grid;grid-template-columns:minmax(90px,130px) minmax(0,1fr);gap:6px 16px;margin:12px 0 0}.factory-dashboard dt{color:var(--muted)}.factory-dashboard dd{margin:0}
.factory-dashboard table{width:100%;border-collapse:collapse;color:var(--ink);background:var(--surface);text-align:left}.factory-dashboard th,.factory-dashboard td{padding:7px 10px;border-bottom:1px solid var(--line)}.factory-dashboard th{font-weight:650}
.factory-dashboard svg{display:block;width:100%;height:auto;max-height:270px;overflow:visible;color:var(--ink);background:var(--page)}.factory-dashboard svg text{fill:var(--ink);font:12px system-ui;user-select:text}.factory-dashboard article{padding:8px 0}.factory-dashboard a{color:var(--ink);text-decoration:underline;margin-right:12px}@media(max-width:480px){.factory-dashboard svg text{font-size:22px}.factory-dashboard{padding:8px}.factory-dashboard dl{grid-template-columns:1fr;gap:2px}.factory-dashboard dd{margin:0 0 8px}}

/* Decision: AGENTS.md Decisions > Factory dashboard */
/* @lat: [[factory-status#Evaluation]] */
/* @lat: [[factory-status#Compact table]] */
.factory-overview{max-width:1100px;padding:12px;gap:16px;--factory-high:#17613c;--factory-mid:#815200;--factory-low:#a52f35}
html[data-theme="dark"] .factory-overview{--factory-high:#8bdfad;--factory-mid:#f5ca77;--factory-low:#ffaaaa}
.factory-overview>div{display:grid;gap:20px;min-width:0}.factory-overview section{border:0;padding:0}
.factory-overview section>h2{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--page);margin:0 0 6px}
.factory-table{table-layout:fixed}
.factory-table thead th{font-size:11px;color:var(--muted);background:var(--surface);white-space:nowrap}
.factory-table th:first-child{width:52%}.factory-table th:nth-child(2),.factory-table th:nth-child(3){width:12%;text-align:right}.factory-table th:last-child{width:24%}
.factory-table th,.factory-table td{vertical-align:middle}
.factory-table .factory-core{font-weight:400}
.factory-item h3{font-size:13px;line-height:1.3;margin:0;font-weight:650;color:var(--ink)}
.factory-item h3 a{color:var(--ink);background:var(--surface);text-decoration:none;margin:0}.factory-item h3 a:hover{text-decoration:underline}
.factory-item h3 a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.factory-item .factory-summary{font-size:12px;line-height:1.35;margin:3px 0 0;color:var(--muted);background:var(--surface)}
.factory-failing,.factory-meta .factory-failing{color:var(--danger);font-weight:600}
.factory-meta{font-size:11px;line-height:1.4;color:var(--muted);background:var(--surface)}.factory-meta span{display:block}
.factory-value{background:var(--surface);color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.factory-value strong{font-size:20px;line-height:1.2;font-weight:700;white-space:nowrap}
.factory-value[data-tone="high"] strong{color:var(--factory-high)}.factory-value[data-tone="mid"] strong{color:var(--factory-mid)}.factory-value[data-tone="low"] strong{color:var(--factory-low)}
@media(max-width:520px){.factory-overview{padding:4px}.factory-table th:first-child{width:43%}.factory-table th:nth-child(2),.factory-table th:nth-child(3){width:18%}.factory-table th:last-child{width:21%}.factory-dashboard .factory-table th,.factory-dashboard .factory-table td{padding:7px 4px}.factory-value strong{font-size:17px}.factory-item h3{font-size:12px}.factory-item .factory-summary{font-size:11px}.factory-table thead th{font-size:10px}.factory-meta{font-size:10px}}

/* Worker mode-only return on the existing factory status surface. */
.factory-worker-control button{min-height:44px;min-width:64px;margin-inline-start:8px}
/* Decision: AGENTS.md Decisions > Graph factory. Workflow DAG on the factory status page; same palette as the factory index. */
.factory-graph{--graph-done:#17613c;--graph-warn:#815200;--graph-fail:#a52f35}
html[data-theme="dark"] .factory-graph{--graph-done:#8bdfad;--graph-warn:#f5ca77;--graph-fail:#ffaaaa}
.factory-graph-scroll{overflow-x:auto;background:var(--page)}
.factory-dashboard .factory-graph-scroll svg{max-height:none;width:100%;min-width:640px}
.factory-graph .graph-edge{fill:none;stroke:var(--muted);stroke-width:1.2}.factory-graph .graph-arrow{fill:var(--muted)}
.factory-graph .graph-node rect{fill:var(--surface);stroke:var(--line);stroke-width:1.5}
.factory-graph .graph-node[data-state="done"] rect{stroke:var(--graph-done)}.factory-graph .graph-node[data-state="running"] rect{stroke:var(--accent)}
.factory-graph .graph-node[data-state="deviated"] rect{stroke:var(--graph-warn);stroke-width:2}.factory-graph .graph-node[data-state="failed"] rect{stroke:var(--graph-fail);stroke-width:2.5}
.factory-dashboard .factory-graph .graph-label{fill:var(--ink);font:600 12px system-ui}.factory-dashboard .factory-graph .graph-counts{fill:var(--muted);font:12px system-ui}
.factory-dashboard .factory-graph .graph-count-done{fill:var(--graph-done)}.factory-dashboard .factory-graph .graph-count-failed{fill:var(--graph-fail)}.factory-dashboard .factory-graph .graph-count-deviated{fill:var(--graph-warn)}
.factory-graph .graph-node:focus-visible rect{outline:2px solid var(--accent)}

/* @lat: [[config-metrics-efficiency#Quota cell colors]] */
/* Decision: AGENTS.md Decisions > Shared factory use */
.factory-usage{--quota-room:#1f6b45;--quota-near:#7a5310;--quota-limit:#8a2d35}
html[data-theme="dark"] .factory-usage{--quota-room:#9fe0b8;--quota-near:#f1d38c;--quota-limit:#f3b3ba}
.factory-usage [data-quota-tone="room"]{--quota-color:var(--quota-room)}
.factory-usage [data-quota-tone="near"]{--quota-color:var(--quota-near)}
.factory-usage [data-quota-tone="limit"]{--quota-color:var(--quota-limit)}
.factory-usage td[data-quota-tone]{
  color:var(--ink);background-color:color-mix(in srgb,var(--quota-color) 16%,var(--surface));
  background-image:linear-gradient(var(--quota-color),var(--quota-color));
  background-size:var(--quota-fill) 4px;background-repeat:no-repeat;background-position:left bottom;
}
/* Workflow trial stays quiet until opened; use the dashboard's saved Theme. */
.factory-overview .factory-workflow{margin-top:10px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--page);color:var(--ink);font-size:12px;min-width:0;overflow-wrap:anywhere}
.factory-workflow summary{cursor:pointer;font-weight:600;min-height:24px}
.factory-workflow details{margin-top:8px}
.factory-workflow summary:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.factory-workflow a{display:inline-block}
/* Decision: AGENTS.md Decisions > Sidekick geometry */
.sidekick-system{max-width:900px;color:var(--ink);background:var(--page);font:15px/1.5 system-ui}
.sidekick-world{position:relative;height:480px;border:1px solid var(--line);background:var(--surface);color:var(--ink);isolation:isolate}
.sidekick-phase{position:absolute;top:8px;left:12px;right:12px;margin:0;color:var(--ink);background:var(--surface);z-index:2;font-size:13px}
.sidekick-boxes{position:absolute;inset:0 0 auto;height:280px}
.sidekick-demo-box,.sidekick-demo-composer{position:absolute!important;left:8%;width:84%;box-sizing:border-box;height:65px;padding:12px;background:var(--page);color:var(--ink);border:1px solid var(--line);font-size:13px}
.sidekick-demo-box:first-child{top:160px}.sidekick-demo-box:nth-child(2){top:270px}
.sidekick-demo-composer{top:425px;height:42px}
.sidekick-geometry{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:3}
.sidekick-geometry rect,.sidekick-geometry polyline,.sidekick-geometry line{fill:none;stroke-width:2;vector-effect:non-scaling-stroke}
.sidekick-outline{stroke:var(--line);stroke-dasharray:3 5}.sidekick-edge{stroke:#23763d}.sidekick-route{stroke:#245fc9;stroke-dasharray:6 4}.sidekick-cell{stroke:#8b37ad;stroke-dasharray:3 3}.sidekick-contact{fill:var(--ink);stroke:var(--page);stroke-width:2}
html[data-theme="dark"] .sidekick-edge{stroke:#69d68c}html[data-theme="dark"] .sidekick-route{stroke:#81acff}html[data-theme="dark"] .sidekick-cell{stroke:#db9cfa}
.sidekick-system table{width:100%;border-collapse:collapse;color:var(--ink);background:var(--page)}.sidekick-system th,.sidekick-system td{text-align:left;vertical-align:top;padding:8px;border-bottom:1px solid var(--line)}.sidekick-system th{width:105px}.sidekick-system p{margin:10px 0}.sidekick-system .sidekick-phase{margin:0}.sidekick-key,.sidekick-readout{font-size:13px}.sidekick-system a{color:var(--ink)}
@media(max-width:480px){.sidekick-system{font-size:14px}.sidekick-system th{width:82px}.sidekick-key{line-height:1.6}}

html[data-excessivecode-skin="blank_paper"] .sidekick-system .sidekick-stage:not([hidden]){display:block!important}

/* Global layout contract. Footer visuals live inside platform-footer's shadow root. */
@media(prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}
::view-transition-group(root){animation-duration:140ms;animation-timing-function:ease-out}
::view-transition-old(root){animation:excessivecode-page-out 100ms ease-in both}
::view-transition-new(root){animation:excessivecode-page-in 140ms ease-out both}
@keyframes excessivecode-page-out{to{opacity:.82}}
@keyframes excessivecode-page-in{from{opacity:.82}}
html{height:100%}
/* Trackpad rubber-banding could stick on macOS WebKit, leaving fixed chrome drawn off its hit-test position.
   WebKitGTK stops wheel scrolling under a root overscroll lock (skins.js marks it). */
@media(hover:hover) and (pointer:fine){html:not([data-engine=webkitgtk]),html:not([data-engine=webkitgtk]) body{overscroll-behavior:none}}
body[data-excessivecode-shell]{--platform-footer-height:49px;min-height:100%;margin:0;background-color:#dcecdf;background-position:center top;background-size:cover;background-attachment:fixed;color:#17372f}
body[data-excessivecode-shell]:not([data-excessivecode-shell="conversation"]){background-image:linear-gradient(180deg,rgba(238,248,241,.78),rgba(238,248,241,.92)),url('/assets/excessivecode-treehouse-workshop-v3.webp')}
body[data-excessivecode-shell]>excessivecode-footer{position:fixed;inset:auto 0 0;z-index:30;display:block;width:100%;height:var(--platform-footer-height);margin:0;view-transition-name:excessivecode-footer}
::view-transition-old(excessivecode-footer),::view-transition-new(excessivecode-footer){animation:none;mix-blend-mode:normal}
body[data-excessivecode-shell="viewport"]{height:100vh;height:100dvh;overflow:hidden;padding-bottom:var(--platform-footer-height)}
body[data-excessivecode-shell="viewport"]>main{height:100%;max-height:100%;overflow:auto;overscroll-behavior:contain}
body[data-excessivecode-shell="document"],body[data-excessivecode-shell="conversation"]{padding-bottom:var(--platform-footer-height)}
body[data-excessivecode-shell="conversation"] #composer-dock{--footer-clearance:var(--platform-footer-height)}
@media(max-width:760px){body[data-excessivecode-shell]{--platform-footer-height:45px}}
/* A visible composer carries the navigation once the footer docks (platform-footer.js): inline in wide bars, otherwise only its popups. */
body[data-excessivecode-shell]>excessivecode-footer[data-placement="composer"][data-docked]{inset:auto auto 0 0;width:0;height:0;overflow:hidden}
body[data-excessivecode-shell]:has(excessivecode-footer[data-placement="composer"][data-docked]){--platform-footer-height:0px;--mobile-navigation-clearance:0px}
/* A hidden bottom bar reserves no space under the composer or sidebar. */
body[data-excessivecode-shell]:has(>excessivecode-footer[hidden]){--platform-footer-height:0px}
:where(html[data-theme="dark"]) body[data-excessivecode-shell]{background-color:#10251f;color:#edf6ea}:where(html[data-theme="dark"]) body[data-excessivecode-shell]:not([data-excessivecode-shell="conversation"]){background-image:linear-gradient(180deg,rgba(11,28,23,.76),rgba(11,28,23,.94)),url('/assets/excessivecode-treehouse-workshop-v3.webp')}
@media(max-width:620px){
  body[data-excessivecode-shell]{--platform-footer-height:0px;--mobile-navigation-clearance:42px;--mobile-header-control-size:36px}
  body[data-excessivecode-shell]>excessivecode-footer{inset:4px 6px auto auto;width:var(--mobile-header-control-size);height:var(--mobile-header-control-size)}
  body[data-excessivecode-shell="conversation"] #composer-dock{--composer-gutter:max(12px,env(safe-area-inset-bottom))}
}

@media(max-width:620px){
  body[data-excessivecode-shell="conversation"][data-composer-editing="true"] #composer-dock{--composer-gutter:4px}
  body[data-excessivecode-shell="conversation"][data-composer-editing="true"]{--mobile-header-control-size:28px}
  body[data-excessivecode-shell="conversation"][data-composer-editing="true"]>excessivecode-footer{inset:1px 6px auto auto}
}

:is(#surface-view,.surface-snapshot)[data-surface="backups"]{&{max-width:1180px;color:var(--ink);background:var(--page)}&{--page:#eef4ee;--surface:#fffdf5;--surface-alt:#e7f0e8;--ink:#17372f;--muted:#5a7067;--line:#9bb1a6;--accent:#176f60;--good:#1f714a;--good-bg:#d9efdc;--warn:#7a5310;--warn-bg:#f6ecc8;--bad:#812d35;--bad-bg:#f4d9d9}button{font:inherit}.page-head{margin-bottom:12px}.page-head h1,.backup-instrument h2,.history h2{margin:0}.page-head h1{font-size:clamp(24px,3vw,34px)}.page-head>p:last-child{margin:3px 0;color:var(--muted)}.eyebrow{margin:0;color:var(--accent);font:800 11px/1.4 ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}.backup-instrument,.history{border:1px solid var(--line);border-radius:14px;background:var(--surface)}.backup-instrument>header,.history>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}.backup-instrument h2,.history h2{font-size:18px}.state-pill{padding:4px 9px;border:1px solid currentColor;border-radius:999px;background:var(--surface-alt);font:800 11px/1.3 ui-monospace,monospace;white-space:nowrap}.state-pill[data-state="healthy"]{background:var(--good-bg);color:var(--good)}.state-pill[data-state="attention"]{background:var(--warn-bg);color:var(--warn)}.state-pill[data-state="failed"]{background:var(--bad-bg);color:var(--bad)}.backup-flow{display:grid;grid-template-columns:var(--flow-columns,minmax(150px,1fr) 42px minmax(150px,1fr) 42px minmax(150px,1fr) 42px minmax(150px,1fr));align-items:stretch;padding:24px 16px 18px;overflow-x:auto}.flow-node{display:flex;min-height:128px;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:14px;border:2px solid var(--line);border-radius:13px;background:var(--surface-alt);color:var(--ink);text-align:left;cursor:pointer}.flow-node span{color:var(--muted);font:800 10px/1.3 ui-monospace,monospace;letter-spacing:.07em;text-transform:uppercase}.flow-node strong{display:block;margin:8px 0;font-size:18px;line-height:1.15}.flow-node small{color:var(--muted);font-size:12px}.flow-node:is(:hover,:focus-visible){border-color:var(--accent);outline:none}.flow-node[aria-pressed="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent);background:var(--surface)}.flow-edge{display:grid;place-content:center;color:var(--accent);font-size:24px;font-weight:900}.flow-edge span{display:block;color:var(--muted);font:700 9px/1.2 ui-monospace,monospace;text-align:center}.stage-detail{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,1fr);gap:22px;margin:0 16px 16px;padding:16px;border:1px solid var(--line);border-radius:11px;background:var(--surface-alt)}.stage-detail h3,.stage-detail p,.stage-detail dl{margin:0}.stage-detail h3{font-size:17px}.stage-detail p{margin-top:5px;color:var(--muted)}.stage-detail dl{display:grid;grid-template-columns:minmax(96px,1fr) minmax(0,1.7fr);align-content:start;gap:5px 14px}.stage-detail dt{color:var(--muted)}.stage-detail dd{margin:0;font-weight:750;text-align:right;overflow-wrap:anywhere}.history{margin-top:12px}.history ol{margin:0;padding:0 16px;list-style:none}.history li{display:grid;grid-template-columns:190px minmax(0,1fr);gap:16px;padding:11px 0;border-top:1px solid var(--line)}.history li:first-child{border-top:0}.history time{color:var(--muted);font:700 12px/1.4 ui-monospace,monospace}.history strong{font-size:13px}.empty{padding:18px;color:var(--muted)}@media(max-width:780px){.backup-flow{grid-template-columns:1fr;padding:16px}.flow-node{min-height:94px}.flow-edge{height:38px;transform:rotate(90deg)}.stage-detail{grid-template-columns:1fr}.history li{grid-template-columns:1fr;gap:3px}}:where(html[data-theme="dark"]) &{--page:#17231f;--surface:#22312b;--surface-alt:#2b3f35;--ink:#eef6ef;--muted:#b8c9c0;--line:#587066;--accent:#79cba9;--good:#d6f2dd;--good-bg:#1f4a30;--warn:#f4e6b3;--warn-bg:#4a3d10;--bad:#f5cfd3;--bad-bg:#4c1f26}}
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .state-pill[data-state="pending"]{color:var(--muted);background:var(--surface-alt)}
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .recovery-proof{grid-column:1/-1;border-top:1px solid var(--line);padding-top:16px;min-width:0;color:var(--ink);background:var(--surface-alt)}
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .recovery-proof h3{margin:14px 0 8px}
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .recovery-proof h3:first-child{margin-top:0}
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .recovery-procedure{padding-left:22px;margin:8px 0;display:grid;gap:10px}
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .recovery-proof li{padding-left:3px}
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .recovery-proof p{color:var(--ink);line-height:1.5}
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .recovery-proof .trust-boundary{border-left:3px solid var(--accent);padding-left:12px}
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .recovery-run{margin-top:12px;border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--surface);color:var(--ink)}
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .recovery-run h4{margin:0;font-size:15px}
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .recovery-run>p{font-size:12px;color:var(--muted)}
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .recovery-table-wrap{overflow-x:auto;margin:10px 0}
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .recovery-table{width:100%;border-collapse:collapse;text-align:left;font-size:13px;background:var(--surface);color:var(--ink)}
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .recovery-table th,:is(#surface-view,.surface-snapshot)[data-surface="backups"] .recovery-table td{border-bottom:1px solid var(--line);padding:9px 6px;vertical-align:top;overflow-wrap:anywhere}
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .recovery-table th{background:var(--surface-alt);color:var(--ink)}
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .recovery-table td:nth-child(2){white-space:nowrap}
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .fingerprints{margin-top:7px;font-size:12px}
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .fingerprints summary{cursor:pointer;color:var(--accent);background:transparent}
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .fingerprints dl{display:block;margin-top:7px}
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .fingerprints dd{font:11px/1.6 ui-monospace,monospace;text-align:left;overflow-wrap:anywhere;color:var(--ink)}
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .method-sources a{color:var(--accent);background:transparent;margin-right:10px}
@media(max-width:520px){:is(#surface-view,.surface-snapshot)[data-surface="backups"] .recovery-table{min-width:420px}}
/* Decorative arrows never cover adjacent stage controls on narrow screens. */
:is(#surface-view,.surface-snapshot)[data-surface="backups"] .flow-edge{pointer-events:none}
@media(max-width:780px){:is(#surface-view,.surface-snapshot)[data-surface="backups"] :is(.backup-instrument,.history)>header{flex-direction:column;align-items:flex-start}}

:is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]){&{max-width:1080px;color:var(--ink);background:var(--page)}&{--good:#1f6b45;--mixed:#7a5310;--bad:#8a2d35;--unclear:#5d6b64;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--claude-bg:#dbe8f9;--gpt-bg:#fde3d7;--other-bg:#d6f2e7;--effort-1:#f1effc;--effort-2:#d6d0f6;--effort-3:#ada3ef;--effort-4:#6250d6;--effort-5:#382b8f;--effort-strong-ink:#ffffff}:where(html[data-theme="dark"]) &{--good:#9fe0b8;--mixed:#f1d38c;--bad:#f3b3ba;--unclear:#b4c3bb;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--claude-bg:#72b7f0;--gpt-bg:#f5b16e;--other-bg:#65c9a4;--model-ink:#15122b;--effort-ink:#15122b;--effort-1:#8a78c2;--effort-2:#a18bd4;--effort-3:#baa0e5;--effort-4:#d5b9f2;--effort-5:#eed8ff;--effort-strong-ink:#15122b}.page-head h1{margin:0;font-size:clamp(24px,3vw,32px)}.page-head p{margin:4px 0 14px;color:var(--muted)}.sessions-table{width:100%;border-collapse:collapse;background:var(--surface);color:var(--ink);font-size:14px}.sessions-table th,.sessions-table td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.sessions-table thead th{color:var(--muted);font-size:12px;font-weight:700}.sessions-table th[scope=row]{font-weight:600;min-width:220px}.sessions-table th[scope=row] a{color:var(--ink)}.sessions-table small{display:block;color:var(--muted);font-weight:400;font-size:12px}.sessions-vote{white-space:nowrap}.sessions-vote button{font:inherit;padding:2px 7px;margin-right:4px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--ink);opacity:.5;cursor:pointer}.sessions-vote button[aria-pressed=true]{opacity:1;background:var(--selected);border-color:var(--accent)}.sessions-vote small{white-space:normal}.sessions-verdict{display:inline-block;min-width:58px;margin-right:8px;font:700 12px/1.6 ui-monospace,monospace;text-transform:uppercase}.sessions-verdict[data-verdict=good]{color:var(--good)}.sessions-verdict[data-verdict=mixed]{color:var(--mixed)}.sessions-verdict[data-verdict=bad]{color:var(--bad)}.sessions-verdict[data-verdict=unclear],.sessions-muted{color:var(--muted)}.sessions-error{color:var(--bad)}.sessions-table .sessions-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.sessions-chart{margin:0 0 18px;padding:10px 12px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px}.sessions-chart figcaption{color:var(--muted);font-size:12px;font-weight:700}.sessions-plot{position:relative}.sessions-plot svg{display:block;width:100%;height:auto;font:11px system-ui,sans-serif}.sessions-plot text{fill:var(--muted)}.sessions-plot .grid{stroke:var(--line);stroke-width:1}.sessions-plot .dot circle{fill:var(--dot);fill-opacity:.35;stroke:var(--dot);stroke-width:2}.sessions-legend{display:flex;flex-wrap:wrap;gap:4px 16px;margin:6px 0 0;padding:0;list-style:none;font-size:12px;color:var(--ink)}.sessions-legend li::before{content:'';display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:50%;background:var(--dot);vertical-align:-1px}.sessions-plot .dot .label{fill:var(--ink);font-weight:600}.sessions-plot .dot:is(:hover,:focus) circle{fill-opacity:.7}.sessions-plot .dot:focus{outline:none}.sessions-tip{position:absolute;transform:translate(-50%,calc(-100% - 14px));max-width:320px;padding:6px 9px;border-radius:8px;background:var(--ink);color:var(--surface);font-size:12px;pointer-events:none;z-index:2}.sessions-work{position:relative}.sessions-work>span{cursor:default;border-bottom:1px dotted var(--muted)}.sessions-tasks{display:none;position:absolute;right:0;top:100%;z-index:3;width:min(360px,80vw);margin:0;padding:8px 10px;list-style:none;text-align:left;white-space:normal;background:var(--ink);color:var(--surface);border-radius:8px;font-size:12px}.sessions-work:is(:hover,:focus-within) .sessions-tasks{display:block}.sessions-tasks li{padding:2px 0}.sessions-tasks .sessions-verdict{min-width:74px;color:var(--surface)}#sessions-utility-days{position:relative}#sessions-selector{position:relative}.sessions-selector{width:100%;max-width:560px;margin-top:8px;border-collapse:collapse;font-size:13px;color:var(--ink)}.sessions-selector th,.sessions-selector td{padding:5px 8px;border-bottom:1px solid var(--line);text-align:left}.sessions-selector thead th{color:var(--muted);font-size:12px;cursor:default}.sessions-selector thead th:focus-visible{outline:2px solid var(--accent)}.sessions-selector .sessions-num{text-align:right;font-variant-numeric:tabular-nums}.sessions-selector td.shaded{background:color-mix(in srgb,color-mix(in srgb,var(--good) var(--shade),var(--bad)) 22%,var(--surface))}.sessions-selector th small{margin-left:6px;color:var(--muted);font-weight:400}.sessions-selector th.sessions-model small{display:inline}.sessions-stacks-wrap{overflow-x:auto;margin-top:8px}.sessions-stacks{display:flex;gap:10px;align-items:flex-end;width:max-content}.sessions-stack{display:flex;flex-direction:column;align-items:stretch;width:92px;font-size:11px;color:var(--ink)}.sessions-stack .slices{display:flex;flex-direction:column;border-bottom:1px solid var(--muted)}.sessions-stack .total{margin-bottom:3px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}.sessions-stack strong{margin-top:5px;text-align:center;font-size:12px}.sessions-stack small{text-align:center;color:var(--muted)}.sessions-stack .slice{display:flex;flex:none;box-sizing:border-box;min-height:1px;border-top:1px solid var(--surface);overflow:hidden;color:inherit;text-decoration:none;line-height:1}.sessions-stack .slice span{display:flex;align-items:center;flex:1;min-width:0;padding:0 4px;white-space:nowrap;overflow:hidden}.sessions-stack .slice:is(:hover,:focus-visible){outline:2px solid var(--ink);outline-offset:-1px}.sessions-stack .model{color:var(--model-ink,var(--ink))}.sessions-stack .effort{color:var(--effort-ink,var(--ink))}.sessions-stack .model[data-provider=claude]{background:var(--claude-bg)}.sessions-stack .model[data-provider=gpt]{background:var(--gpt-bg)}.sessions-stack .model[data-provider=other]{background:var(--other-bg)}.sessions-stack .effort[data-effort=minimal],.sessions-stack .effort[data-effort=low],.sessions-stack .effort[data-effort=unknown]{background:var(--effort-1)}.sessions-stack .effort[data-effort=medium]{background:var(--effort-2)}.sessions-stack .effort[data-effort=high]{background:var(--effort-3)}.sessions-stack .effort[data-effort=xhigh]{background:var(--effort-4);color:var(--effort-strong-ink)}.sessions-stack .effort[data-effort=max]{background:var(--effort-5);color:var(--effort-strong-ink)}.sessions-table .sessions-day th{padding:16px 10px 6px;background:var(--page);color:var(--ink);font-size:13px;font-weight:700}.sessions-model{white-space:nowrap}.sessions-model span::before{content:'';display:inline-block;width:9px;height:9px;margin-right:6px;border-radius:50%;background:var(--dot)}#sessions-more{margin-top:12px;font:inherit;padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}
}
@media(max-width:640px){:is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]) .sessions-table th[scope=row]{min-width:0}}
:is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]){
  .sessions-stacks{gap:18px}
  .sessions-day-group{display:flex;flex-direction:column;gap:6px}
  .sessions-day-columns{display:flex;align-items:flex-end;gap:8px}
  .sessions-stack>strong{min-height:2.5em;display:flex;justify-content:center;align-items:flex-start}
  .sessions-stack>small{min-height:2.5em}
  .sessions-stack-date{display:block;text-align:center;color:var(--ink);font-size:12px}
  .sessions-stack>strong:focus-visible{outline:2px solid var(--accent)}
  /* Decision: AGENTS.md Decisions > Utility per day. Narrow columns fit two weeks; a slice under 3px keeps
     its colors instead of a page-colored separator. */
  #sessions-utility-days .sessions-stacks{gap:6px}
  #sessions-utility-days .sessions-day-columns{gap:2px}
  #sessions-utility-days:not(.sessions-days-compact) .sessions-stack{width:56px;font-size:10px}
  #sessions-utility-days .sessions-stack>small{min-height:1.4em;font-variant-numeric:tabular-nums}
  .sessions-stack .slice.thin{border-top:0}
  .sessions-day-totals h2,.sessions-day-review h2{margin:0 0 6px;font-size:14px;color:var(--ink)}
  .sessions-day-totals .sessions-selector,.sessions-day-review .sessions-selector{max-width:none}
  .sessions-totals th[scope=row]{font-weight:400;white-space:nowrap}
  .sessions-totals th[scope=row] a{color:var(--ink)}
  .sessions-totals tr[aria-current=true] :is(th,td){background:color-mix(in srgb,var(--accent) 18%,var(--surface));color:var(--ink)}
  .sessions-totals tr.sessions-baseline :is(th,td){border-top:2px solid var(--line);color:var(--muted);font-weight:600;background:var(--surface)}
  .sessions-reasons th[scope],.sessions-reasons tbody th{font-weight:600;white-space:nowrap;vertical-align:top}
  .sessions-reasons td,.sessions-sample td,.sessions-sample th{vertical-align:top}
  .sessions-sample tbody th{font-weight:400}
  .sessions-sample tbody th small{display:block;color:var(--muted);font-size:11px}
  .sessions-movers{margin:4px 0;padding:0;list-style:none}
  .sessions-movers li{padding:2px 0;color:var(--ink)}
  .sessions-movers small{color:var(--muted)}
  .sessions-gain{color:var(--good);font-variant-numeric:tabular-nums}
  .sessions-loss{color:var(--bad);font-variant-numeric:tabular-nums}
  .sessions-review-about{max-width:46rem;color:var(--muted)}
}
:is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]){
 .sessions-work-types h2{font-size:16px;margin:0 0 12px}
 .sessions-work-type-table{width:100%;table-layout:fixed;border-collapse:collapse;margin:0 0 20px;color:var(--ink);background:var(--surface);font-size:13px}
 .sessions-work-type-table caption{text-align:left;font-size:14px;font-weight:700;padding:8px 0;color:var(--ink);background:var(--surface)}
 .sessions-work-type-table :is(th,td){padding:8px;border:1px solid var(--line);text-align:left;vertical-align:top;overflow-wrap:anywhere;color:var(--ink);background:var(--surface)}
 .sessions-work-type-table thead th{overflow-wrap:normal;font-size:11px;color:var(--muted)}
 .sessions-work-type-table th:first-child{width:32%}.sessions-work-type-table th:nth-child(2){width:20%}.sessions-work-type-table th:nth-child(3){width:13%}.sessions-work-type-table th:nth-child(4){width:14%}
 .sessions-work-type-table .sessions-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
 .sessions-work-type-table td:nth-child(2){white-space:normal}
 .sessions-work-type-table small{display:block;font-size:11px;color:var(--muted);font-weight:400}
 .sessions-work-type-table :is(th[tabindex],td[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
}
@media(max-width:520px){:is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]){
 .sessions-work-types{padding:10px 8px}.sessions-work-type-table{font-size:12px}
 .sessions-work-type-table :is(th,td){padding:7px 5px}.sessions-work-type-table thead th{font-size:10px}
 .sessions-work-type-table th:first-child{width:27%}.sessions-work-type-table th:nth-child(2){width:20%}.sessions-work-type-table th:nth-child(3){width:14%}.sessions-work-type-table th:nth-child(4){width:19%}
}}
@media(max-width:640px){:is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]){
 .sessions-table{display:block;width:100%;table-layout:auto}
 .sessions-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .sessions-table tbody{display:block}.sessions-table tr{display:block;margin-bottom:20px;border-top:2px solid var(--line)}
 .sessions-table th[scope=row]{display:block;padding:10px;overflow-wrap:anywhere;min-width:0}
 .sessions-table td{display:block;position:relative;padding-left:88px;white-space:normal;text-align:left;overflow-wrap:anywhere;min-width:0}
 .sessions-table td::before{content:attr(data-label);position:absolute;left:10px;top:10px;width:70px;font-size:11px;color:var(--muted);font-weight:600}
 .sessions-table .sessions-num{text-align:left;white-space:normal}.sessions-table .sessions-day{margin:0;border:0}
 .sessions-table .sessions-day th{display:block}.sessions-table .sessions-model{white-space:normal}
 .sessions-selector{font-size:12px;table-layout:fixed}.sessions-selector th,.sessions-selector td{padding:6px 4px;overflow-wrap:anywhere;white-space:normal}
 .sessions-selector .sessions-model{white-space:normal;width:45%}.sessions-selector .sessions-chance{min-width:0}.sessions-selector .sessions-chance span{max-width:calc(100% - 8px)}
}}

:is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]) {
  .sessions-routing-scroll{overflow-x:auto}
  .sessions-routing{max-width:none;min-width:850px;background:var(--surface);color:var(--ink)}
  .sessions-routing caption{text-align:left;font-weight:600;padding:8px 0;color:var(--ink)}
  .sessions-routing th,.sessions-routing td{border:1px solid var(--line)}
  .sessions-routing thead th{max-width:90px;white-space:normal}
  .sessions-routing th.sessions-model{min-width:160px}
  .sessions-routing th.sessions-model small{display:block;margin-left:0}
  .sessions-routing td:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
}

:is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]) {
  /* @lat: [[config-metrics-efficiency#Rules]] */
  .sessions-config-scroll{overflow-x:auto}
  .sessions-config-table .sessions-config-score{font-weight:750}
  .sessions-config-table{width:100%;min-width:460px;border-collapse:collapse;font-size:13px;color:var(--ink);background:var(--surface)}
  .sessions-config-table caption{text-align:left;font-size:14px;font-weight:600;padding:0 0 10px;color:var(--ink);background:var(--surface)}
  .sessions-config-table :is(th,td){padding:8px;border:1px solid var(--line);text-align:left;vertical-align:top;color:var(--ink);background:var(--surface)}
  .sessions-config-table thead th{font-size:12px;color:var(--muted)}
  .sessions-config-table thead .sessions-num{white-space:normal}
  .sessions-config-table a:not(.sessions-config-badges){color:var(--accent)}
  .sessions-config-table th[scope=row]{min-width:170px;font-weight:400;overflow-wrap:normal}
  .sessions-config-table small{display:block;margin-top:3px;font-size:12px;color:var(--muted)}
  .sessions-config-table td.sessions-metric small{color:inherit}
  .sessions-config-table .sessions-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
  .sessions-config-table th[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
}

:is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]) {
  .sessions-config-facets{display:flex;flex-wrap:wrap;gap:8px 14px;margin:0 0 12px;padding:0;border:0;min-width:0;color:var(--ink);background:var(--surface);font-size:12px}
  .sessions-config-facets label{display:flex;align-items:center;gap:5px;cursor:pointer}
  .sessions-config-facets input{margin:0;accent-color:var(--accent)}
  .sessions-config-facets input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
}

:is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]) {
  .sessions-config-table td[data-decision="Config metric cell"]{padding:5px 6px}
  .sessions-metric-value{display:block}
  .sessions-metric-plots{display:flex;gap:4px;justify-content:flex-end;align-items:flex-end;margin-top:3px;color:var(--ink)}
  .sessions-metric-hist{display:block;width:40px;height:20px;opacity:.55}
  .sessions-metric-spark{display:block;width:64px;height:20px}
  :is(.sessions-metric-hist,.sessions-metric-spark):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
}

:is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]) .sessions-loading{display:flex;align-items:center;gap:8px;min-height:36px;margin:0;color:var(--muted);background:var(--surface);font-size:13px}
:is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]) .sessions-loading .spinner{flex:none}
@media(prefers-reduced-motion:reduce){:is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]) .sessions-loading .spinner{animation:none}}

:is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]) .sessions-model-filter{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:13px;color:var(--ink);background:var(--surface)}
:is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]) .sessions-model-filter select{font:inherit;max-width:100%;min-width:0;padding:6px 8px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
:is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]) .sessions-model-filter select:disabled{color:var(--muted);background:var(--surface)}
/* Decision: AGENTS.md Decisions > Session metrics. Days share the original data and slice links. */
@media(max-width:700px){
  :is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]){
    min-width:0;width:100%;box-sizing:border-box;
    .sessions-chart{padding:12px;margin-bottom:12px;max-width:100%;box-sizing:border-box;overflow-x:auto}
    .sessions-chart figcaption{line-height:1.5}
    .sessions-table{min-width:620px}
    .sessions-table-scroll{max-width:100%;overflow-x:auto}
  }
  :is(#surface-view,.surface-snapshot) #sessions-utility-days.sessions-days-compact{
    overflow:visible;
    .sessions-stacks-wrap{overflow:visible}
    .sessions-stacks{width:100%;gap:2px}
    .sessions-day-group{flex:1;min-width:0;gap:5px}
    .sessions-day-columns{width:100%;gap:2px}
    .sessions-stack{width:0;flex:1;min-width:0;font-size:9px}
    .sessions-stack .total{font-size:9px;white-space:nowrap;line-height:14px}
    .sessions-stack>small{display:none}
    .sessions-stack .slice{min-height:0;border:0}
    .sessions-stack .slice span{padding:0}
    .sessions-stack-date{font-size:10px;white-space:nowrap;height:32px;line-height:12px}
    .sessions-stack-date>span{display:inline-block;transform:rotate(-55deg);margin-top:9px}
  }
}

:is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]) {
  .sessions-config-badges{display:inline-flex;flex-wrap:wrap;align-items:center;gap:5px;text-decoration:none;max-width:100%}
  .sessions-config-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border:1px solid var(--line);border-radius:7px;font-size:12px;line-height:1.35;background:var(--surface);color:var(--ink);max-width:100%;white-space:nowrap;flex-shrink:0;cursor:help;user-select:text}
  .sessions-config-badge::before{content:'';width:6px;height:6px;flex:none;border:1px solid currentColor;border-radius:50%;background:currentColor}
  .sessions-config-badge[data-state=on]{border-color:color-mix(in srgb,var(--good) 55%,var(--line));background:color-mix(in srgb,var(--good) 12%,var(--surface));color:var(--ink)}
  .sessions-config-badge[data-state=on]::before{color:var(--good)}
  .sessions-config-badge[data-state=off]{border-color:color-mix(in srgb,var(--bad) 40%,var(--line));background:color-mix(in srgb,var(--bad) 8%,var(--surface));color:var(--ink)}
  .sessions-config-badge[data-state=off]::before{color:var(--bad);background:transparent}
  .sessions-config-badge[data-state=unknown]{border-style:dashed;background:var(--page);color:var(--muted)}
  .sessions-config-badge[data-state=unknown]::before{border-radius:0;background:transparent}
  .sessions-config-badge:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  #sessions-config-filter{display:flex;align-items:center;gap:10px}
  #sessions-config-filter[hidden]{display:none}
}


:is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]){--st-model-lightness:42%}html[data-theme="dark"] :is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]){--st-model-lightness:68%}

/* Decision: AGENTS.md Decisions > Session metrics. Details never overlay session links. */

/* Decision: AGENTS.md Decisions > Session metrics. Phone space belongs to the report. */
@media(max-width:700px){
 #workshop:has(#surface-view:is([data-surface="sessions"],[data-surface="utility"]):not([hidden])){width:100%;margin:0;padding:0}
 #surface-view:is([data-surface="sessions"],[data-surface="utility"]):not([hidden]){width:100%;max-width:none;margin:0;padding:0;border:0;border-radius:0}
 :is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]) :is(.session-timeline,.st-demo){margin:0;padding:0;border:0;border-radius:0}
}

@media(max-width:620px){
 :is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]){
  .st-layout{grid-template-columns:minmax(0,1fr)}
  .st-annotations{height:auto!important;margin-top:0;overflow:visible}
  .st-chunk{position:relative;top:auto!important;height:auto!important;overflow:visible}
 }
}

/* Decision: AGENTS.md Decisions > Session metrics. Phone controls leave the chart in the first screen. */
@media(max-width:620px){
 :is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]){
  .page-head h1{font-size:18px;line-height:24px;margin:0}
  .st-toolbar{gap:4px;font-size:12px}
  .st-toolbar button{min-height:32px;min-width:32px;padding:4px 7px;font-size:12px}
  .st-toolbar input{min-width:0;width:100%;min-height:32px;padding:4px 7px;box-sizing:border-box;font-size:12px}
  .st-range{width:100%;font-size:11px;line-height:16px}
 }
}

/* Decision: AGENTS.md Decisions > Session mix. Four compact views above the scored session rows. */
:is(#surface-view,.surface-snapshot)[data-surface="sessions"] .sessions-mix{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 18px}
:is(#surface-view,.surface-snapshot)[data-surface="sessions"] .sessions-mix figure{margin:0;padding:10px 12px;min-width:0;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px}
:is(#surface-view,.surface-snapshot)[data-surface="sessions"] .sessions-mix .message-chart-scroll svg{height:150px}
:is(#surface-view,.surface-snapshot)[data-surface="sessions"] .sessions-mix>:is([role=status],button,.sessions-loading){grid-column:1/-1;margin:0}
:is(#surface-view,.surface-snapshot)[data-surface="sessions"] .sessions-mix-status{color:var(--bad);font-size:13px}
:is(#surface-view,.surface-snapshot)[data-surface="sessions"] .sessions-mix-retry{justify-self:start;font:inherit;padding:4px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}
:is(#surface-view,.surface-snapshot)[data-surface="sessions"] .sessions-mix [hidden]{display:none}
@media(max-width:760px){:is(#surface-view,.surface-snapshot)[data-surface="sessions"] .sessions-mix{grid-template-columns:minmax(0,1fr)}}

#session-parent-link:not([hidden]){display:block;width:fit-content;max-width:100%;margin:6px auto 2px;padding:3px 10px;border:1px solid var(--line);border-radius:999px;color:var(--ink);background:var(--surface);font-size:12px;line-height:1.4;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#session-parent-link:hover{background:var(--tab-selected)}

/* Decision: AGENTS.md Decisions > Phone swipes */
#phone-session-scope{display:flex;gap:6px;align-items:center;font-size:12px}
#phone-session-scope[hidden]{display:none}
#phone-session-scope button,#phone-session-scope-menu button,#composer-clipboard-menu button{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:6px 10px;font:inherit}
#composer-clipboard-menu{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px;max-width:90vw}
#composer-clipboard-menu:popover-open{display:flex;gap:8px;align-items:center}

#phone-session-scope{flex:none}
#session-tabs #phone-session-scope button{min-width:28px;min-height:22px;height:22px;padding:0 5px;margin:0;font-size:14px}
#phone-session-scope-menu{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px}
#phone-session-scope-menu:popover-open{display:flex;flex-direction:column;gap:8px}

/* Decision: AGENTS.md Decisions > Paste; selection stays native outside the phone draft. */
#input[data-clipboard-menu="only"]{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;caret-color:transparent;touch-action:none}

/* Decision: AGENTS.md Decisions > Session metrics. Text keeps the containing theme's ink. */
:is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]) :is(.sessions-config-table,.sessions-selector,.sessions-work-type-table) td.sessions-metric {
  color:var(--ink);background:color-mix(in srgb,var(--metric-color) var(--metric-strength),var(--surface));
}

/* Decision: AGENTS.md Decisions > Session metrics */
@media(min-width:701px){
 #surface-view[data-surface="sessions"]:not([hidden]){width:100%;max-width:none;box-sizing:border-box;margin:8px 0 24px;padding:8px}
 .surface-snapshot[data-surface="sessions"]{max-width:none}
}
.sessions-table small.sessions-faults-caused{color:var(--bad)}
:is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]) .sessions-mood{min-width:110px;white-space:normal}:is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]) .sessions-mood .sessions-verdict{min-width:0;margin:0}

/* Exact source families replace pooled config links in role comparisons. */
.sessions-source-count{border:0;background:transparent;color:var(--ink);font:inherit;padding:4px;cursor:pointer}
.sessions-config-sources{font-weight:normal;font-size:.85em;margin-top:4px}
.sessions-config-sources summary{cursor:pointer}
.sessions-config-sources>p{max-width:40rem;white-space:normal}
.sessions-pick-reason{font-size:12px;white-space:normal;max-width:300px;margin-top:6px}
.sessions-pick-reason>summary{cursor:pointer}
.sessions-pick-reason>p{margin:6px 0}
.sessions-pick-sources{display:flex;flex-wrap:wrap;gap:4px 8px}
.sessions-pick-source>small{display:block}
.sessions-pick-source>a{margin-right:8px}
/* Phone rows are cards; the wider table minimum must not survive that layout. */
@media(max-width:640px){
 :is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]) .sessions-table{min-width:0}
}
@media(max-width:700px){
 .sessions-config-sources>a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;box-sizing:border-box;padding:6px;margin:2px 0}
 .sessions-config-sources>summary{padding:10px 0;min-height:40px;box-sizing:border-box}
 .sessions-source-count{min-width:40px;min-height:40px}
 .sessions-config-facets>label{min-height:36px;box-sizing:border-box}
 .sessions-pick-reason>summary{min-height:40px;box-sizing:border-box;padding:10px 0}
 .sessions-pick-source>a{display:inline-flex;align-items:center;min-height:44px;padding:0 4px}
}
/* Keep full setup labels from pushing wall time out of the first screen. */
.sessions-config-table th[scope=row]{width:300px;max-width:330px}
.sessions-config-table .sessions-config-badges{max-width:310px}
.sessions-config-table .sessions-config-badge{max-width:300px;white-space:normal;overflow-wrap:anywhere}
.sessions-config-table .sessions-config-sources>p{max-width:310px}

:is(#surface-view,.surface-snapshot) .sessions-day-review{font-size:13px}:is(#surface-view,.surface-snapshot) .sessions-day-review p{margin:3px 0}:is(#surface-view,.surface-snapshot) .sessions-day-review a{color:var(--ink)}

/* Recorded-token tree: subset colors, one scale, lazy children, phone-safe rows. */
.token-profile { max-width: 1000px; margin: 1rem auto; }
.token-profile-controls { display: flex; align-items: center; gap: 1rem; }
.token-profile-node { padding: .45rem 0; border-bottom: 1px solid var(--border, #8884); }
.token-profile-line { cursor: pointer; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .3rem .75rem; align-items: center; }
summary.token-profile-line::before { content: '▸'; grid-row: 1; }
summary.token-profile-line { grid-template-columns: 1ch minmax(0, 1fr) auto; }
details[open] > summary.token-profile-line::before { content: '▾'; }
.token-profile-name { overflow-wrap: anywhere; }
.token-profile-meter { display: block; grid-column: 1 / -1; height: 7px; background: #8882; border-radius: 3px; overflow: hidden; }
.token-profile-scale { display: flex; height: 100%; }
.token-profile-input { background: #4b8cdb; }
.token-profile-cached { background: #269b93; }
.token-profile-output { background: #9b6bd1; }
.token-profile-info { font-size: .85em; line-height: 1.5; margin: .4rem 0; overflow-wrap: anywhere; }
.token-profile-info p { margin: .2rem 0; }
.token-profile-children { margin-left: min(2vw, 1rem); padding-left: .5rem; border-left: 1px solid #8884; }
@media (max-width: 600px) { .token-profile { margin: .75rem 0; } .token-profile-children { margin-left: 0; padding-left: .4rem; } }
/* Exact period controls stay in Tokens, with the editor shown only on demand. */
.token-profile-controls { flex-wrap: wrap; gap: .5rem .75rem; }
.token-profile-controls > label, .token-profile-custom > label { min-width: 0; max-width: 100%; }
.token-profile-controls select { max-width: 100%; }
.token-profile-controls select, .token-profile-custom input { border: 1px solid var(--line); border-radius: 6px; padding: .35rem; color: var(--ink); background: var(--surface); }
.token-profile-custom { display: flex; flex-wrap: wrap; align-items: end; gap: .5rem .75rem; flex-basis: 100%; min-width: 0; }
.token-profile-custom[hidden] { display: none; }
.token-profile-custom > label { display: flex; flex-direction: column; flex: 1 1 16rem; gap: .25rem; }
.token-profile-custom input { box-sizing: border-box; width: 100%; min-width: 0; font: inherit; }
.token-profile-custom p { flex-basis: 100%; margin: 0; }
.token-profile-copy-note { overflow-wrap: anywhere; }
@media (max-width: 600px) {
  .token-profile-controls button, .token-profile-controls select, .token-profile-custom input { min-height: 44px; }
  .token-profile-controls select, .token-profile-custom input { font-size: 16px; }
  .token-profile-custom > label { flex-basis: 100%; }
}

/* Local navigation keeps the canonical tree and its measures intact. */
.token-profile-find { flex-basis: 100%; min-width: 0; }
.token-profile-find summary { cursor: pointer; }
.token-profile-find input { max-width: 100%; width: 16rem; box-sizing: border-box; }
.token-profile-find > * { margin-right: .4rem; }
.token-profile-find-status { display: block; overflow-wrap: anywhere; font-size: .85em; }
.token-profile-line[data-find-match] { outline: 2px solid currentColor; outline-offset: -2px; }
.token-profile-find input { border: 1px solid var(--line); border-radius: 6px; padding: .35rem; color: var(--ink); background: var(--surface); font: inherit; }
@media (max-width: 600px) {
  .token-profile-find input { min-height: 44px; font-size: 16px; }
  .token-profile-find summary { min-height: 44px; align-content: center; }
}

/* Utility report rows stack without squeezing dates or long money-report labels. */
@media(max-width:640px){
 :is(#surface-view,.surface-snapshot):is([data-surface="sessions"],[data-surface="utility"]) .sessions-day-totals .sessions-totals{
  display:block;width:100%;min-width:0;table-layout:auto;
  thead{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  tbody{display:block}
  tr{display:block;margin-bottom:16px;border-top:2px solid var(--line)}
  th[scope=row]{display:block;min-width:0;width:auto;white-space:normal;overflow-wrap:anywhere;padding:10px}
  td,td.sessions-num{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:8px 10px;min-width:0;width:auto;text-align:left;white-space:normal;overflow-wrap:anywhere}
  td::before{content:attr(data-label);position:static;width:auto;font-size:12px;font-weight:600;color:var(--muted)}
 }
}

/* Decision: AGENTS.md Decisions > Session metrics */
.sessions-config-synopsis { color: var(--ink); background: var(--surface); font-size: 1.05rem; line-height: 1.6; max-width: 65ch; }
.sessions-config-synopsis strong { color: var(--accent); font-size: 1.15em; }

/* Shared trusted text effects for live replies and studio examples. */
.message.assistant>.message-body,.message-decoration{font:400 18px/1.7 var(--agent-message-font,'Source Sans 3',system-ui,sans-serif)}
.message-decoration{--decoration-ink:var(--skin-ink,var(--ink,#172f27));--text-blue:#9dd4ff;--text-purple:#d8b4ff;--text-green:#aff59b;--text-red:#ffa7b4;--text-contrast:#ffffff;color:var(--decoration-ink);container-type:inline-size;display:flow-root;overflow-wrap:anywhere}
html[data-theme="light"] .message-decoration{--text-blue:#215685;--text-purple:#683791;--text-green:#285d1b;--text-red:#9b2941;--text-contrast:#111111}
.message.assistant article.message-decoration p{font:inherit;color:inherit;margin:0 0 1.1em;background:none;-webkit-text-fill-color:currentColor}
.text-run{color:var(--decoration-ink);background:transparent;white-space:pre-wrap}
.text-run[data-tone="blue"]{color:var(--text-blue)}.text-run[data-tone="purple"]{color:var(--text-purple)}.text-run[data-tone="green"]{color:var(--text-green)}.text-run[data-tone="red"]{color:var(--text-red)}
.text-run[data-style="hero"]{display:block;max-width:100%;font:800 clamp(38px,13cqw,96px)/1.03 'Bricolage Grotesque',system-ui,sans-serif;letter-spacing:-.05em;margin:.12em 0 .18em}
.text-run[data-style="echo"]{display:inline-block;font-weight:800;font-size:1.65em;line-height:1.3;letter-spacing:-.035em;text-shadow:3px 3px color-mix(in srgb,currentColor 35%,transparent);padding:0 5px 5px 0}
.text-run[data-style="label"]{font:600 11px/1.5 ui-monospace,monospace;letter-spacing:.17em}
.text-run[data-style="serif"]{font:italic 1.35em/1.5 Georgia,serif}
.text-run[data-style="quiet"]{opacity:.8;font-size:.9em}
.text-run[data-style="mark"]{font-weight:700}
.text-run[data-motion="float"]{animation:text-float 4s ease-in-out infinite}
.text-run[data-motion="pulse"]{animation:text-pulse 5s ease-in-out infinite}
@keyframes text-float{50%{transform:translateY(-3px)}}
@keyframes text-pulse{50%{text-shadow:0 0 16px currentColor}}
[data-skin-motion="paused"] .text-run{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.text-run{animation:none!important}}
@media(forced-colors:active){.text-run{color:CanvasText!important;opacity:1!important;text-shadow:none!important}}
@media print{.text-run{animation:none!important;text-shadow:none!important}}
.text-run[data-tone="contrast"]{color:var(--text-contrast)}
.text-run[data-style="cutout"]{display:inline-block;font:800 clamp(20px,5.5cqw,38px)/1.3 'Bricolage Grotesque',system-ui,sans-serif;letter-spacing:-.03em;transform:rotate(-2deg);padding:.12em .08em}
.text-run[data-style="stamp"]{display:inline-block;font:800 clamp(19px,5cqw,34px)/1.35 ui-monospace,monospace;letter-spacing:-.06em;text-transform:uppercase;transform:rotate(2deg);padding:.12em .08em}

/* Semantic color roles act like syntax highlighting for prose. */
.text-run[data-tone="keyword"]{color:var(--text-purple)}.text-run[data-tone="string"]{color:var(--text-green)}.text-run[data-tone="number"]{color:var(--text-blue)}.text-run[data-tone="comment"]{color:var(--decoration-ink);opacity:.8}

/* Composable group boundaries and decorative, code-owned imagery. */
.text-group{--group-ink:var(--decoration-ink);display:flow-root;container-type:inline-size;min-width:0;margin:0 0 1.1em;background:transparent;color:inherit}
:is(.text-group,.text-motif):is([data-tone="blue"],[data-tone="number"]){--group-ink:var(--text-blue)}
:is(.text-group,.text-motif):is([data-tone="purple"],[data-tone="keyword"]){--group-ink:var(--text-purple)}
:is(.text-group,.text-motif):is([data-tone="green"],[data-tone="string"]){--group-ink:var(--text-green)}
:is(.text-group,.text-motif)[data-tone="red"]{--group-ink:var(--text-red)}:is(.text-group,.text-motif)[data-tone="contrast"]{--group-ink:var(--text-contrast)}
.text-group[data-frame="card"]{border:1px solid var(--group-ink);border-radius:12px;padding:18px}
.text-group[data-frame="bubble"]{border:1px solid var(--group-ink);border-radius:30px 30px 30px 8px;padding:22px;box-shadow:inset 0 0 24px color-mix(in srgb,var(--group-ink) 8%,transparent)}
.text-group[data-frame="rail"]{border-left:3px solid var(--group-ink);padding:8px 0 8px 16px}
/* Several frames on one paragraph nest; inner frames tighten so text keeps its width. */
.message-decoration p:last-child,.text-group .text-group,.message-decoration .text-group>p:last-child{margin-bottom:0}
.text-group .text-group:is([data-frame="card"],[data-frame="bubble"]){padding:10px}
.text-group .text-group[data-frame="rail"]{padding:4px 0 4px 10px}
.text-run[data-style="tag"]{display:inline-block;max-width:100%;box-sizing:border-box;border:1px solid currentColor;border-radius:999px;padding:.08em .65em;margin:.1em .08em;font-size:.9em;font-weight:600;line-height:1.6;vertical-align:baseline;background:transparent}
.text-run[data-effect="glow"]{text-shadow:0 0 4px currentColor,0 0 14px color-mix(in srgb,currentColor 75%,transparent),0 0 32px color-mix(in srgb,currentColor 45%,transparent)}
.text-icon{display:inline-block;margin-right:.3em;line-height:1;user-select:none}.text-icon::before{content:attr(data-symbol)}
.text-motif{--group-ink:var(--decoration-ink);position:relative;display:block;float:right;width:56px;height:56px;box-sizing:border-box;margin:0 0 14px 16px;color:var(--group-ink);background:transparent;pointer-events:none;user-select:none}
.text-motif::before,.text-motif::after{content:'';position:absolute;box-sizing:border-box}
.text-motif[data-motif="orbit"]{border:1px solid currentColor;border-radius:50%}.text-motif[data-motif="orbit"]::before{inset:12px -5px;border:1px solid currentColor;border-radius:50%;transform:rotate(-35deg)}.text-motif[data-motif="orbit"]::after{width:8px;height:8px;left:6px;top:0;background:currentColor;border-radius:50%}
.text-motif[data-motif="moon"]{border:1px solid currentColor;border-radius:50%;overflow:hidden}.text-motif[data-motif="moon"]::before{inset:0;background:currentColor;border-radius:50%;-webkit-mask:radial-gradient(circle 26px at 42px 17px,transparent 99%,#000);mask:radial-gradient(circle 26px at 42px 17px,transparent 99%,#000)}
.text-motif[data-motif="spark"]::before{inset:0;background:currentColor;clip-path:polygon(50% 0,61% 36%,100% 50%,61% 62%,50% 100%,38% 62%,0 50%,38% 36%)}
.text-motif[data-motif="bloom"]::before{inset:0;--ring:transparent 11px,currentColor 11px 12px,transparent 12.5px;background:radial-gradient(circle at 16px 16px,var(--ring)),radial-gradient(circle at 40px 16px,var(--ring)),radial-gradient(circle at 16px 40px,var(--ring)),radial-gradient(circle at 40px 40px,var(--ring))}.text-motif[data-motif="bloom"]::after{width:10px;height:10px;left:23px;top:23px;background:currentColor;border-radius:50%}
@media(forced-colors:active){.text-group{--group-ink:CanvasText!important}.text-motif{display:none}.text-run[data-effect="glow"]{text-shadow:none!important}}
@media print{.text-run[data-effect="glow"]{text-shadow:none!important}.text-motif{display:none}}

/* Small drawings are inert DOM marks; captions preserve their meaning as text. */
.text-art{float:right;color:var(--decoration-ink);background:transparent}
.text-art-picture{position:relative;container-type:inline-size;isolation:isolate;width:min(100%,320px);aspect-ratio:1;margin:0;overflow:hidden;color:var(--decoration-ink)}
.text-art-line,.text-art-pixel,.text-art-picture[data-art="ascii"]{--art-ink:var(--decoration-ink)}
:is(.text-art-line,.text-art-pixel,.text-art-picture)[data-tone="blue"],:is(.text-art-line,.text-art-pixel,.text-art-picture)[data-tone="number"]{--art-ink:var(--text-blue)}
:is(.text-art-line,.text-art-pixel,.text-art-picture)[data-tone="purple"],:is(.text-art-line,.text-art-pixel,.text-art-picture)[data-tone="keyword"]{--art-ink:var(--text-purple)}
:is(.text-art-line,.text-art-pixel,.text-art-picture)[data-tone="green"],:is(.text-art-line,.text-art-pixel,.text-art-picture)[data-tone="string"]{--art-ink:var(--text-green)}
:is(.text-art-line,.text-art-pixel,.text-art-picture)[data-tone="red"]{--art-ink:var(--text-red)}
:is(.text-art-line,.text-art-pixel,.text-art-picture)[data-tone="contrast"]{--art-ink:var(--text-contrast)}
.text-art-line{position:absolute;display:block;border-radius:999px;transform-origin:0 50%;background:var(--art-ink)}
.text-art-picture[data-art="pixels"]{display:grid;background:transparent}
.text-art-pixel[data-tone]{background:var(--art-ink)}
.text-art figcaption{font:400 12px/1.5 system-ui,sans-serif;color:var(--decoration-ink);display:none}
/* Terminal-style ASCII art is real selectable text, scaled so its widest line fits.
   The selector outranks app and skin code-block rules for message <pre>. */
.message-decoration .text-art-stack .text-art{container-type:inline-size;float:none;width:100%;margin:0}
.text-art .text-art-picture[data-art="ascii"].text-art-picture{aspect-ratio:auto;width:100%;box-sizing:border-box;margin:0;padding:0;border:0;border-radius:0;overflow:hidden;background:transparent;color:var(--art-ink);-webkit-text-fill-color:currentColor;font:600 min(13px,calc(100cqw / (var(--ascii-columns,24) * .6 + .5)))/1.12 ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;letter-spacing:0;white-space:pre;overflow-wrap:normal;text-shadow:0 0 6px color-mix(in srgb,currentColor 40%,transparent);pointer-events:auto;-webkit-user-select:text;user-select:text}
@media(forced-colors:active){.text-art-line,.text-art-pixel,.text-art-picture[data-art="ascii"]{--art-ink:CanvasText!important}.text-art .text-art-picture[data-art="ascii"].text-art-picture{text-shadow:none}}
@media print{.text-art .text-art-picture[data-art="ascii"].text-art-picture{text-shadow:none}}
.text-art-picture{background:transparent}

/* Only pending/error feedback needs text; successful rendering speaks for itself. */
.decoration-status{display:flex;align-items:center;min-width:0;margin:6px 0 0;color:var(--skin-muted,#53636a);background:transparent;font:400 11px/1.5 system-ui,sans-serif}
.decoration-status-text{min-width:0;color:inherit;background:transparent}
.decoration-status-text:empty,.decoration-status[data-state="completed"]{display:none}
/* Tables and code keep the plain renderer's layout: whole words, horizontal
   scrolling, and a full-width line below any floated artwork. */
.message-decoration :is(.table-wrap,pre){clear:both;overflow-wrap:normal}
.decoration-status:is([data-state="failed"],[data-state="timed_out"]){color:var(--skin-ink,#18232a)}
/* A paragraph's drawings share one floated column, so several never overlap. */
.message-decoration .text-art-stack{float:right;clear:right;display:flex;flex-direction:column;gap:8px;pointer-events:none;max-width:180px;width:32%;margin:0 0 8px 12px;color:var(--decoration-ink);background:transparent}
.message-decoration .text-motif+.text-motif{margin-left:6px}
/* Unframed art shares the article's text flow, including later paragraphs.
   Framed groups retain their own boundary alongside the shared artwork. */
.message-decoration .text-group[data-frame="none"]{display:contents;container-type:normal}
.message-decoration .text-run[data-style="hero"]{font-size:clamp(28px,7cqw,56px)}
@media(max-width:520px){.message-decoration .text-art-stack{width:28%;max-width:110px}.message-decoration .text-group[data-frame="bubble"]{padding:14px}.message-decoration .text-motif{zoom:.64}}

/* Mobile reading experiment: the same source and decoration plan, compact type.
   Keep the conclusion readable before flourishes or trailing verification. */
@media(max-width:620px){
  .message.assistant>.message-body,.message-decoration{font-size:14px;line-height:1.5}
  .message-decoration .text-run:is([data-style="hero"],[data-style="echo"],[data-style="serif"],[data-style="cutout"],[data-style="stamp"]){font-size:1.1em;line-height:1.4;letter-spacing:normal;text-shadow:none;transform:none}
  .message-decoration .text-run[data-style="hero"]{display:inline;margin:0}
  .message-decoration .text-run[data-effect="glow"]{text-shadow:none}
  .message-decoration .text-group{margin-bottom:.65em}
  .message-decoration .text-group:is([data-frame="card"],[data-frame="bubble"]){padding:6px;border-radius:8px}
  .message-decoration .text-art-stack{width:20%;max-width:64px;margin:0 0 6px 8px;gap:6px}
  .message-decoration .text-group .text-group:is([data-frame="card"],[data-frame="bubble"]){padding:4px}
  /* Motif drawings are sized for 56px; zoom keeps their parts inside the box. */
  .message-decoration .text-motif{zoom:.43}
}

:is(#surface-view,.surface-snapshot)[data-surface="spending"]{--page:#f4f0df;--surface:#fffdf3;--ink:#20382f;--muted:#587066;--line:#c9d2c6;--bar:#2f7d5f;--warn:#a3243b;max-width:720px;background:var(--page);color:var(--ink)}
:where(html[data-theme="dark"]) :is(#surface-view,.surface-snapshot)[data-surface="spending"]{--page:#17231f;--surface:#22312b;--ink:#eef6ef;--muted:#b8c9c0;--line:#4a5f56;--bar:#79cba9;--warn:#ff8a9b}
.spending{padding:4px;min-width:0;background:var(--page);color:var(--ink)}
.spending h1{font-size:18px;margin:0 0 12px}
.spending h2{font-size:13px;font-weight:600;margin:20px 0 8px;color:var(--muted)}
.spending [data-status],.spend-basis{color:var(--muted);font-size:13px}
.spend-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 8px}
.spend-tile{display:grid;gap:2px;min-width:0;color:var(--ink)}
.spend-tile span{font-size:12px;color:var(--muted)}
.spend-tile strong{font-size:15px;font-variant-numeric:tabular-nums;white-space:nowrap}
.spend-hero{grid-column:1/-1;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.spend-hero strong{font-size:34px;line-height:1.1}
.spend-readout{margin:18px 0 6px;font-size:13px;color:var(--ink);font-variant-numeric:tabular-nums}
.spend-bars{display:flex;align-items:stretch;gap:2px;height:120px;border-bottom:1px solid var(--line)}
.spend-bar{flex:1 1 0;min-width:0;padding:0;border:0;background:transparent;display:flex;align-items:flex-end;cursor:pointer}
.spend-bar span{display:block;width:100%;border-radius:4px 4px 0 0;background:var(--bar)}
.spend-bar[aria-pressed="true"] span{background:var(--ink)}
.spend-bar:focus-visible{outline:2px solid var(--ink);outline-offset:1px}
.spend-rank{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.spend-rank-head{display:flex;justify-content:space-between;gap:12px;font-size:14px}
.spend-rank-head :first-child{min-width:0;overflow-wrap:anywhere;color:var(--ink)}
.spend-rank-head strong{font-variant-numeric:tabular-nums;white-space:nowrap}
.spend-meter{height:4px;margin-top:4px;border-radius:2px;background:var(--line)}
.spend-meter span{display:block;height:100%;border-radius:2px;background:var(--bar)}
.spend-basis{margin:20px 0 0}
.spend-balance{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:4px;font-size:13px;color:var(--muted)}
.spend-balance span{flex:1 1 auto;font-variant-numeric:tabular-nums}
.spend-balance[data-low="true"] span{color:var(--warn);font-weight:600}
.spend-balance input{width:7.5em;padding:3px 6px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit}
.spend-balance button{padding:3px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}
.spend-balance button:disabled{opacity:.6;cursor:progress}
.spend-purchase-note{margin:2px 0 0;font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.spend-purchase-note a{color:var(--ink)}
.spend-rank li:is([data-status="cancelled"],[data-status="failed"]) .spend-rank-head{color:var(--muted);text-decoration:line-through}

.session-diagnostics{background:var(--page);color:var(--ink);padding:16px;min-width:0}.session-diagnostics h1{font-size:18px;margin:0 0 12px}.session-diagnostics [role=status]{color:var(--muted);font-size:13px}.session-diagnostics [role=alert]{background:var(--page);color:var(--ink)}.device-counts{overflow:auto;max-width:100%}.device-counts table{border-collapse:collapse;width:100%;font-size:14px}.device-counts caption{color:var(--muted);background:var(--page);font-size:12px;text-align:left;padding-bottom:8px}.device-counts :is(th,td){padding:10px;text-align:left;border-bottom:1px solid var(--line);background:var(--page);color:var(--ink)}.device-counts :is(th,td):last-child{text-align:right;font-variant-numeric:tabular-nums}

.issue-page article{max-width:760px}.issue-page h1{font-size:20px;line-height:1.3;margin:0 0 8px;white-space:normal}.issue-page .session-issue-score{display:inline-grid;min-width:30px}.issue-page dt{color:var(--muted);background:var(--page)}.issue-page dd{margin:0;color:var(--ink);background:var(--page)}.issue-page .session-tab-id{position:relative;padding:0 3px;border-radius:3px;font-family:ui-monospace,monospace;cursor:pointer;user-select:none}.issue-page .session-tab-id:hover{background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px var(--line)}

.slow-operations-table td:first-child{overflow-wrap:anywhere}.slow-operations-table td:nth-child(2){min-width:120px;font-variant-numeric:tabular-nums}.slow-trend{display:block;width:120px;height:28px;color:var(--accent);background:var(--page);margin:4px 0}.slow-operations-table small{display:block;color:var(--muted);background:var(--page);font-size:11px}

.feature-ledger-table td:first-child small{display:block;color:var(--muted);background:var(--page);font-size:12px;margin-top:2px}.feature-ledger-table td:nth-child(2),.feature-ledger-table td:nth-child(3){font-variant-numeric:tabular-nums}.feature-ledger-table td:nth-child(3){min-width:110px}.feature-ledger-bar{display:block;height:4px;margin-top:4px;border-radius:2px;background:var(--accent)}.feature-ledger-table tr[data-unassigned] td{color:var(--danger,var(--ink));background:var(--page)}
/* Decision: AGENTS.md Decisions > Private server request */
.server-funnel{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.server-funnel div{min-width:96px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink)}.server-funnel dt{color:var(--muted);font-size:11px}.server-funnel dd{margin:2px 0 0;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.stranger-check{margin:-8px 0 16px;color:var(--ink)}.server-requests-table td:first-child{overflow-wrap:anywhere}.server-requests-table tr.ours td{color:var(--muted)}.feature-ledger-table tr[data-piece] td{font-size:13px;border-bottom-style:dashed}.feature-ledger-fold{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin:0 4px 0 -4px;padding:0;border:0;border-radius:4px;background:var(--page);color:var(--ink);font:inherit;cursor:pointer;vertical-align:middle}.feature-ledger-fold:hover,.feature-ledger-fold:focus-visible{background:var(--surface);color:var(--ink)}

.done-today{max-width:860px}.done-today h2{font-size:15px;margin:18px 0 8px;color:var(--ink);background:var(--page)}.done-today article{padding:10px 0;border-bottom:1px solid var(--line);background:var(--page);color:var(--ink)}.done-today h3{font-size:15px;margin:0}.done-today h3 a{color:var(--ink)}.done-today small{display:block;color:var(--muted);background:var(--page);font-size:12px}.done-today-reason{margin:4px 0;font-size:14px}.done-today-verdict{display:inline-block;margin-right:8px;font:700 12px/1.6 ui-monospace,monospace;text-transform:uppercase;color:var(--muted)}.done-today-verdict[data-verdict=good]{color:#1f6b45}.done-today-verdict[data-verdict=mixed]{color:#7a5310}.done-today-verdict[data-verdict=bad]{color:#8a2d35}html[data-theme="dark"] .done-today-verdict[data-verdict=good]{color:#9fe0b8}html[data-theme="dark"] .done-today-verdict[data-verdict=mixed]{color:#f1d38c}html[data-theme="dark"] .done-today-verdict[data-verdict=bad]{color:#f3b3ba}.done-today ul{margin:6px 0 0;padding:0;list-style:none;font-size:14px}.done-today li{padding:3px 0}.done-today li small{margin-left:0}.done-today blockquote{margin:8px 0 0;padding:6px 10px;border-left:3px solid var(--line);background:var(--surface);color:var(--ink);font-size:13px}.done-today blockquote strong{display:block;font-size:12px;color:var(--muted);background:var(--surface)}.done-today blockquote p{margin:2px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}

.theme-panel{--tp-bg:#f1f0f3;--tp-panel:#ffffff;--tp-ink:#252330;--tp-muted:#5d5a68;--tp-line:#c4c0cd;--tp-accent:#6a45c8;--tp-bad:#b3261e;color:var(--tp-ink);font:14px/1.5 system-ui,sans-serif;display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
.theme-controls{display:grid;gap:12px;min-width:0}
#surface-view[data-surface="theme"]:not([hidden]){width:min(1560px,calc(100% - 24px))}
:where(html[data-theme="dark"]) .theme-panel{--tp-bg:#19191f;--tp-panel:#25252e;--tp-ink:#eeedf5;--tp-muted:#b3afc1;--tp-line:#514d61;--tp-accent:#b6a1ff;--tp-bad:#ffb3be}
html[data-excessivecode-skin] .theme-panel{--tp-bg:var(--skin-page);--tp-panel:var(--skin-panel);--tp-ink:var(--skin-ink);--tp-muted:var(--skin-muted);--tp-line:var(--skin-line);--tp-accent:var(--skin-accent);--tp-bad:var(--skin-bad)}
.theme-panel *{box-sizing:border-box}
.theme-panel button{background:var(--tp-panel);color:var(--tp-ink);border:1px solid var(--tp-line);border-radius:4px;padding:5px 12px;cursor:pointer;font:inherit;font-size:13px}
.theme-panel button[aria-pressed="true"]{background:var(--tp-ink);color:var(--tp-panel);border-color:var(--tp-ink)}
.theme-panel button:disabled{color:var(--tp-muted);cursor:wait}
.theme-panel :is(button,input,.wallpaper-focus):focus-visible{outline:3px solid var(--tp-accent);outline-offset:2px}
.theme-panel input[type="range"],.theme-panel input[type="checkbox"]{accent-color:var(--tp-accent)}
.theme-head{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between}
.theme-head h1{margin:0;font-size:17px}
.theme-error{margin:0;font-size:12px;color:var(--tp-bad)}
.theme-swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:10px}
.theme-panel .theme-swatch{display:grid;gap:6px;padding:6px;text-align:left;border-radius:6px;background:var(--tp-panel);color:var(--tp-ink)}
.theme-panel .theme-swatch[aria-pressed="true"]{background:var(--tp-panel);color:var(--tp-ink);border-color:var(--tp-accent);box-shadow:0 0 0 2px var(--tp-accent)}
.theme-swatch-art{position:relative;display:block;height:70px;padding:8px;border-radius:4px;background:var(--swatch-page);border:1px solid var(--swatch-line);overflow:hidden}
.swatch-panel{display:grid;gap:4px;align-content:start;height:100%;width:72%;padding:6px 8px;background:var(--swatch-panel);border:1px solid var(--swatch-line);border-radius:min(var(--swatch-radius),10px)}
.swatch-panel b{font:700 15px/1 var(--swatch-font);color:var(--swatch-ink)}
.swatch-panel i{display:block;height:3px;border-radius:2px;background:var(--swatch-muted)}
.swatch-panel i+i{width:60%;background:var(--swatch-accent)}
.swatch-button{position:absolute;right:8px;bottom:8px;width:24px;height:12px;border-radius:min(var(--swatch-radius),6px);background:var(--swatch-button)}
.theme-swatch[data-theme-id="prismatic"] .theme-swatch-art{background:#0b0b18 url('/assets/default-wallpapers/prismatic-pools-v1.webp') 33% 55%/cover}
.theme-swatch[data-theme-id="prismatic"] .swatch-panel{width:62%;background:color-mix(in srgb,var(--swatch-panel) 88%,transparent)}
.theme-swatch-name{display:flex;align-items:center;gap:6px;font-size:12px;line-height:1.3;overflow-wrap:anywhere}
.theme-swatch[aria-pressed="true"] .theme-swatch-name{font-weight:700}
@media(max-width:760px){.theme-swatches{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}}
/* Sidekick's swatch shows its grassy field. */
.theme-swatch[data-theme-id="sidekick"] .theme-swatch-art{background:linear-gradient(#f3f5e833,#f3f5e833),url('/assets/default-wallpapers/meadow-v1.webp') center 58%/cover}

.theme-decorations,.theme-decorations [data-decorations]{display:flex;flex-wrap:wrap;gap:8px 20px}
.theme-decorations label{display:inline-flex;align-items:center;gap:6px;color:var(--tp-ink)}
