/* Semantic skin adapter. Classic has no selector match and remains untouched. */
html[data-excessivecode-skin]{background:var(--skin-page);color:var(--skin-ink);accent-color:var(--skin-accent);scrollbar-color:var(--skin-line) var(--skin-page)}
html[data-excessivecode-skin] body,html[data-excessivecode-skin] body[data-excessivecode-shell],html[data-excessivecode-skin] body.conversation-visible{--page:var(--skin-page);--surface:var(--skin-panel);--ink:var(--skin-ink);--muted:var(--skin-muted);--line:var(--skin-line);--divider:var(--skin-line);--accent:var(--skin-accent);--activity:var(--skin-accent);--tab-surface:var(--skin-raised);--tab-selected:var(--skin-selected);--user-surface:var(--skin-selected);--footer-chrome:var(--skin-page);--footer-control:var(--skin-panel);--footer-ink:var(--skin-ink);--footer-line:var(--skin-line);--footer-selected:var(--skin-selected);background:var(--skin-page);color:var(--skin-ink);font-family:var(--skin-font)}
html[data-excessivecode-skin] body.conversation-visible::before{background:radial-gradient(ellipse at 80% 0,color-mix(in srgb,var(--skin-accent) 6%,transparent),transparent 60%)}
html[data-excessivecode-skin] body::after{display:none}
html[data-excessivecode-skin] body.conversation-visible #session-loading{border:1px solid var(--skin-line);border-radius:var(--skin-radius);background:var(--skin-panel)}
html[data-excessivecode-skin] body.conversation-visible .message{border:1px solid var(--skin-line);border-radius:var(--skin-radius);background:var(--skin-panel);color:var(--skin-ink);box-shadow:none;backdrop-filter:none;padding:var(--skin-density)}
html[data-excessivecode-skin] body.conversation-visible .message.user{background:var(--skin-selected);border-left:3px solid var(--skin-accent)}
html[data-excessivecode-skin] body.conversation-visible .message.user[data-provenance="machine"]:not(.routed-user-request){background:var(--skin-raised);color:var(--skin-ink);border-color:var(--skin-line)}
html[data-excessivecode-skin] .message.assistant a{color:var(--skin-accent)}
html[data-excessivecode-skin] #composer{border-radius:var(--skin-radius);border-color:var(--skin-line);background:var(--skin-panel);color:var(--skin-ink);box-shadow:0 -2px 0 var(--skin-accent)}
html[data-excessivecode-skin] #composer textarea{padding:var(--skin-density);font-family:var(--skin-font)}
html[data-excessivecode-skin] body.conversation-visible #send{background:var(--skin-button);color:var(--skin-button-ink);border-color:var(--skin-button);border-radius:var(--skin-radius)}
html[data-excessivecode-skin] body.conversation-visible #enqueue{background:var(--skin-panel);color:var(--skin-accent);border-color:var(--skin-line)}
html[data-excessivecode-skin] #session-tabs{--page:var(--skin-page);--surface:var(--skin-panel);--tab-surface:var(--skin-raised);--tab-selected:var(--skin-selected);--ink:var(--skin-ink);--muted:var(--skin-muted);--line:var(--skin-line);--accent:var(--skin-accent);--create-bg:var(--skin-button);--create-hover:var(--skin-button);--create-ink:var(--skin-button-ink);--rail-edge:var(--skin-accent);background:var(--skin-page);border-color:var(--skin-line);box-shadow:none;font-family:var(--skin-font)}
html[data-excessivecode-skin] .session-tab:has([aria-selected="true"]){--row-bg:color-mix(in srgb,var(--skin-accent) 18%,var(--skin-page));border-color:var(--skin-accent);border-radius:0;box-shadow:inset 3px 0 0 var(--skin-accent)}
html[data-excessivecode-skin] .session-fairy{background-image:none;filter:none;transform:none;border:1px solid var(--skin-accent);border-radius:2px}
html[data-excessivecode-skin] .session-fairy:not(.is-halted,.is-blocked):not(:has(.session-tab-favicon:not([hidden]),.session-tab-score:not([hidden])))::before{content:'/';font:700 15px ui-monospace,monospace;color:var(--skin-accent)}
html[data-excessivecode-skin] .session-fairy:has(.session-tab-favicon:not([hidden]),.session-tab-score:not([hidden])){border:0}
html[data-excessivecode-skin] :is(#surface-view,dialog,.trace-dot-tooltip){color:var(--skin-ink);background-color:var(--skin-panel);border-color:var(--skin-line)}
html[data-excessivecode-skin] :is(#surface-view[data-surface],dialog) :is(input,select,textarea){background:var(--skin-page);color:var(--skin-ink);border-color:var(--skin-line)}
html[data-excessivecode-skin] body.conversation-visible #composer-dock::after,html[data-excessivecode-skin] .gate{background:var(--skin-page)}
html[data-excessivecode-skin] .gate>#inline-login{border:1px solid var(--skin-line);border-top:3px solid var(--skin-accent);border-radius:var(--skin-radius);background:var(--skin-panel);color:var(--skin-ink);box-shadow:none;--gate-ink:var(--skin-ink);--gate-muted:var(--skin-muted);--gate-label:var(--skin-ink);--gate-input:var(--skin-page);--gate-input-ink:var(--skin-ink);--gate-line:var(--skin-line);--gate-focus:var(--skin-accent);--gate-link:var(--skin-accent);--gate-button:var(--skin-button);--gate-button-hover:var(--skin-button);--gate-button-ink:var(--skin-button-ink)}
html[data-excessivecode-skin] .gate :is(.activation-brand,#activation-intro .activation-kicker,#activation-intro p:not(.activation-kicker)){color:var(--skin-muted)}
html[data-excessivecode-skin] .gate :is(#activation-intro h1,#activation-intro strong){color:var(--skin-ink);font-family:var(--skin-display)}
html[data-excessivecode-skin] ::selection{background:var(--skin-button);color:var(--skin-button-ink)}
html[data-excessivecode-skin] :focus-visible{outline:2px solid var(--skin-accent);outline-offset:3px}
/* Loaded inside the existing footer shadow root as well as the document. */
:host([data-skinned]){font-family:var(--skin-font);--shell-control-radius:var(--skin-radius)}
:host([data-skinned]) #app-header-nav{background:var(--skin-page);color:var(--skin-ink);border-color:var(--skin-line);box-shadow:none}
:host([data-skinned]) :is(.ah-link,.platform-version,#subsystem-toggle,#subsystem-menu){background:var(--skin-panel);color:var(--skin-ink);border-color:var(--skin-line);border-radius:var(--skin-radius)}
:host([data-skinned]) :is(.ah-link,.platform-version):is(:hover,:focus-visible,[aria-current="page"]){background:var(--skin-selected);color:var(--skin-accent);border-color:var(--skin-accent)}
:host([data-skinned]) :is(.platform-user,#subsystem-menu button,#subsystem-menu a){color:var(--skin-ink)}
:host([data-skinned]) #account-menu{--account-bg:var(--skin-panel);--account-ink:var(--skin-ink);--account-line:var(--skin-line);--account-hover:var(--skin-selected)}
:host([data-skinned]) #release-history{--release-bg:var(--skin-panel);--release-ink:var(--skin-ink);--release-muted:var(--skin-muted);--release-line:var(--skin-line);--release-row:var(--skin-raised);border-radius:var(--skin-radius)}
html[data-excessivecode-skin] #composer-frame{border-radius:var(--skin-radius);border-color:var(--skin-line)}
:where(html[data-excessivecode-skin]) button{background:var(--skin-button);color:var(--skin-button-ink);border-color:var(--skin-button)}html[data-excessivecode-skin] button:disabled{background-color:var(--skin-raised);color:var(--skin-muted);border-color:var(--skin-line);opacity:1}

/* Rainbow bats decoration (decorations/bats.js); bat-swarm.js places each bat. */

html[data-excessivecode-skin] body::after,html[data-excessivecode-skin] .gate::before,html[data-excessivecode-skin] .gate>#inline-login::after{display:none}

/* Locally hosted expressive type and reading voice. */
@font-face{font-family:'Bricolage Grotesque';src:url('/assets/fonts/bricolage-grotesque.ttf') format('truetype');font-weight:200 800;font-style:normal;font-display:swap}

/* Every workshop surface shares the explicit appearance, not the OS palette.
   Local component aliases must be rebound here: inherited body tokens cannot
   override a component's own legacy light palette. */
html[data-excessivecode-skin][data-skin-mode="dark"]{--skin-good:#90ddb0;--skin-good-bg:#173727;--skin-warn:#f1d28c;--skin-warn-bg:#3c3018;--skin-bad:#ffb3be;--skin-bad-bg:#421e28}
html[data-excessivecode-skin][data-skin-mode="light"]{--skin-good:#17633b;--skin-good-bg:#def1e4;--skin-warn:#74500b;--skin-warn-bg:#fff0c9;--skin-bad:#922b40;--skin-bad-bg:#fbe3e8}
html[data-excessivecode-skin] #surface-view[data-surface]{--page:var(--skin-page);--surface:var(--skin-panel);--surface-alt:var(--skin-raised);--ink:var(--skin-ink);--muted:var(--skin-muted);--line:var(--skin-line);--accent:var(--skin-accent);--danger:var(--skin-bad);--good:var(--skin-good);--good-bg:var(--skin-good-bg);--warn:var(--skin-warn);--warn-bg:var(--skin-warn-bg);--bad:var(--skin-bad);--bad-bg:var(--skin-bad-bg);color:var(--skin-ink);background:var(--skin-panel)}
html[data-excessivecode-skin] #surface-view:is([data-surface="studio"],[data-surface="expressive"]){background:transparent}
:host([data-skinned]) .platform-user{background:var(--skin-panel);color:var(--skin-ink)}
html[data-excessivecode-skin] #surface-view[data-surface="backups"] :is(.backup-instrument,.history,.flow-node,.stage-detail,.recovery-run){border-radius:var(--skin-radius)}
html[data-excessivecode-skin] :is(.architecture-model-mount,.architecture-model){--architecture-page:var(--skin-page);--architecture-surface:var(--skin-panel);--architecture-alt:var(--skin-raised);--architecture-ink:var(--skin-ink);--architecture-muted:var(--skin-muted);--architecture-line:var(--skin-line);--architecture-added:var(--skin-good);--architecture-added-fill:var(--skin-good-bg);--architecture-changed:var(--skin-warn);--architecture-changed-fill:var(--skin-warn-bg)}

/* The recorded-submission dialog pins its own palette; under a skin it wears the skin's. */
html[data-excessivecode-skin] #runtime-instructions{--page:var(--skin-page);--surface:var(--skin-panel);--ink:var(--skin-ink);--muted:var(--skin-muted);--line:var(--skin-line);--divider:var(--skin-line);--accent:var(--skin-accent)}

/* Workspace identity remains visible beside the draft and above desktop sessions. */
/* The server name keeps its own colour under every skin, so a post never lands on the wrong server unnoticed. */
:is(#desktop-instance-name,#mobile-instance-name){min-height:0;margin:0;border:0;background:none;color:inherit;font:inherit;text-align:start;cursor:pointer}
:is(#desktop-instance-name,#mobile-instance-name)::after{content:"▾";margin-inline-start:4px;font-size:.85em}
:is(#desktop-instance-name,#mobile-instance-name):focus-visible{outline:2px solid var(--accent,currentColor);outline-offset:2px}
/* One color per server on its badge and its row in the server menu (Jessald teal green, operator 2026-10-25); white ink reads on every fill. */
[data-server-color]{--server-fill:#3f4650}[data-server-color="blue"]{--server-fill:#0071e3}[data-server-color="green"]{--server-fill:#0f8b74}[data-server-color="purple"]{--server-fill:#8944ab}
html[data-server-color] :is(#desktop-instance-name,#mobile-instance-name){background:color-mix(in srgb,var(--server-fill) 92%,#000);color:#fff;border-radius:999px;font-weight:700;letter-spacing:.03em}
html[data-server-color] :is(#desktop-instance-name,#mobile-instance-name):is(:hover,[aria-expanded="true"]){background:color-mix(in srgb,var(--server-fill) 82%,#000)}
#desktop-instance-name{display:block;flex:0 1 auto;min-width:0;max-width:120px;margin:0;padding:4px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:text;user-select:text}
html[data-server-color] #mobile-instance-name{padding:2px 6px;-webkit-user-select:text;user-select:text}
@media(max-width:620px){#desktop-instance-name{display:none}}
[data-instance-name][hidden]{display:none!important}
/* Classic has no skin tokens; give its workshop the same workspace cue. */
html[data-instance]:not([data-excessivecode-skin]) body[data-excessivecode-shell],html[data-instance]:not([data-excessivecode-skin]) body.conversation-visible,html[data-instance]:not([data-excessivecode-skin]) #session-tabs{--page:var(--instance-page);--surface:var(--instance-panel);--user-surface:var(--instance-selected);--tab-surface:var(--instance-raised);--tab-selected:var(--instance-selected);--ink:var(--instance-ink);--muted:var(--instance-muted);--line:var(--instance-line);--divider:var(--instance-line);--accent:var(--instance-accent);background:var(--instance-page);color:var(--instance-ink)}
html[data-instance]:not([data-excessivecode-skin]) body.conversation-visible::before{background:radial-gradient(ellipse at 80% 0,color-mix(in srgb,var(--instance-accent) 8%,transparent),transparent 60%)}
html[data-instance]:not([data-excessivecode-skin]) body.conversation-visible .message{background:var(--instance-panel);color:var(--instance-ink);border-color:var(--instance-line)}
html[data-instance]:not([data-excessivecode-skin]) body.conversation-visible .message.user{background:var(--instance-selected)}
html[data-instance]:not([data-excessivecode-skin]) body.conversation-visible #composer-dock::after{background:var(--instance-page)}

/* The menu list (phone ☰ and the console composer menu) uses the containing skin's palette without desktop tile accents. */
:host([data-skinned][data-menu-list]){--menu-bg:var(--skin-panel);--menu-ink:var(--skin-ink);--menu-line:var(--skin-line);--menu-active:var(--skin-selected);--menu-muted:var(--skin-muted)}
:host([data-skinned]) #instance-list{--instance-bg:var(--skin-panel);--instance-ink:var(--skin-ink);--instance-line:var(--skin-line);--instance-active:var(--skin-selected);border-radius:var(--skin-radius)}
:host([data-skinned][data-menu-list]) #app-header-nav:popover-open{background:var(--menu-bg);color:var(--menu-ink);border:1px solid var(--menu-line);border-image:none;box-shadow:0 12px 40px #0003}
:host([data-skinned][data-menu-list]) #app-header-nav :is(.ah-link,#subsystem-toggle){border:0;border-radius:10px;box-shadow:none;background:var(--menu-bg);color:var(--menu-ink)}
:host([data-skinned][data-menu-list]) #app-header-nav :is(.ah-link,#subsystem-toggle):is(:hover,:focus-visible,[aria-current="page"]){background:var(--menu-active);color:var(--menu-ink);box-shadow:none}

/* The original workshop is a theme of the current console, not a separate UI. */
html[data-skin-family="excessivecode"] body.conversation-visible .message{box-shadow:0 5px 18px color-mix(in srgb,var(--skin-ink) 9%,transparent)}
html[data-skin-family="excessivecode"] .session-fairy:not(.is-halted,.is-blocked):not(:has(.session-tab-favicon:not([hidden]),.session-tab-score:not([hidden]))){background-image:var(--fairy-suite-url);filter:hue-rotate(var(--fairy-hue,0deg));border:0}
html[data-skin-family="excessivecode"] .session-fairy:not(.is-halted,.is-blocked):not(:has(.session-tab-favicon:not([hidden]),.session-tab-score:not([hidden])))::before{content:none}
/* The sitting frame's hips, not its dangling feet, meet the composer header. */

/* Restored Cyberpsychos terminal material. */
html[data-excessivecode-skin="corpo"]{--corpo-blue:#4aa8ff;--corpo-lime:#c8ff2e}
html[data-excessivecode-skin="corpo"][data-skin-mode="light"]{--corpo-blue:#0a58c2;--corpo-lime:#3d5c00}
html[data-excessivecode-skin="corpo"] body{--danger:var(--skin-bad);font-size:13px;line-height:1.4}
html[data-excessivecode-skin="corpo"] body *{font-family:var(--skin-font)!important}
html[data-excessivecode-skin="corpo"] body.conversation-visible::before{background:repeating-linear-gradient(0deg,transparent 0 2px,color-mix(in srgb,var(--corpo-blue) 5%,transparent) 2px 3px);opacity:1}
html[data-excessivecode-skin="corpo"] body.conversation-visible .message{border:1px solid var(--skin-line);padding:8px 10px;font-size:13px}
html[data-excessivecode-skin="corpo"] body.conversation-visible .message.user{border-left:2px solid var(--skin-accent)}
html[data-excessivecode-skin="corpo"] .message.assistant article{font-size:13px;line-height:1.45;text-shadow:0 0 6px color-mix(in srgb,var(--corpo-blue) 28%,transparent)}
html[data-excessivecode-skin="corpo"] .message.assistant article :is(h1,h2,h3){color:var(--corpo-blue);font-size:13px;text-transform:uppercase;letter-spacing:.08em}
html[data-excessivecode-skin="corpo"] .message.assistant article :is(h1,h2,h3)::before{content:'## ';color:var(--skin-accent)}
html[data-excessivecode-skin="corpo"] .message.assistant a{color:var(--corpo-blue)}
html[data-excessivecode-skin="corpo"] .message.assistant article :is(pre,code,blockquote){background:var(--skin-raised);color:var(--corpo-lime);border-color:var(--skin-line)}
html[data-excessivecode-skin="corpo"] :is(#composer-frame,.composer-actions){background:var(--skin-panel);color:var(--skin-ink);border-color:var(--skin-line);box-shadow:none}
html[data-excessivecode-skin="corpo"] #composer{box-shadow:0 -1px 0 var(--skin-accent)}
html[data-excessivecode-skin="corpo"] .session-tab{--promise-white:var(--skin-page);--promise-green:#123e5c;border-color:var(--skin-line);box-shadow:none}
html[data-excessivecode-skin="corpo"] .session-tab:has([aria-selected="true"]){border-left:2px solid var(--corpo-lime)}
html[data-excessivecode-skin="corpo"] #composer .composer-actions #clear-composer{background:transparent;color:var(--skin-ink);border-color:var(--skin-line)}
html[data-excessivecode-skin="corpo"] #composer .composer-actions #stop-response{background:var(--skin-bad);color:var(--skin-page);border-color:var(--skin-bad)}
html[data-excessivecode-skin="corpo"][data-skin-mode="light"] #composer .composer-actions #stop-response{background:#922b40;color:#ffffff;border-color:#922b40}


/* Storefront: square controls and panels, grey surfaces, one blue action and four white-to-mint bats. */
html[data-excessivecode-skin="storefront"] body{font-family:var(--skin-font);-webkit-font-smoothing:antialiased;letter-spacing:-.01em}
html[data-excessivecode-skin="storefront"] body.conversation-visible::before{background:none}
html[data-excessivecode-skin="storefront"] body.conversation-visible .message{border:0;border-radius:0;box-shadow:0 1px 2px color-mix(in srgb,var(--skin-ink) 6%,transparent)}
html[data-excessivecode-skin="storefront"] body.conversation-visible .message.user{border-left:0;border-radius:12px;background:var(--skin-selected)}
html[data-excessivecode-skin="storefront"] #composer{border-radius:0;box-shadow:0 2px 12px color-mix(in srgb,var(--skin-ink) 8%,transparent)}
html[data-excessivecode-skin="storefront"] :is(#composer-frame,#surface-view,#session-loading){border-radius:0}
html[data-excessivecode-skin="storefront"] #composer .composer-actions :is(button,#current-app){border-radius:var(--bar-control-radius)}
html[data-excessivecode-skin="storefront"] #composer-context :is(button,#composer-model){border-radius:0}
html[data-excessivecode-skin="storefront"] button:not(.generated-image-link):not(.provider-connect):not(#session-tab-list *):not([data-instance-name]){border-radius:0}
html[data-excessivecode-skin="storefront"] button:not(#send):not(#stop-response):not(:disabled):not(#session-tab-list *):not(.message-controls button):not(.runtime-instructions-button):not(.generated-image-link):not(.voice-view-tabs [aria-selected="true"]):not(excessivecode-footer *):not([data-instance-name]):not(.server-account):not(.provider-connect):not(.provider-account):not(.provider-back):not(.super-limit-square){background:var(--skin-selected);color:var(--skin-ink);border-color:transparent}
html[data-excessivecode-skin="storefront"] .session-tab:has([aria-selected="true"]){--row-bg:color-mix(in srgb,var(--skin-accent) 18%,var(--skin-page));border-radius:0;border-color:transparent;background:var(--row-bg)}
/* Session rows show their own shade (who started them, or selected), not the storefront button fill. */
html[data-excessivecode-skin="storefront"] #session-tab-list .session-tab>:is(button:first-child,.session-tab-close){background:var(--row-bg)}
html[data-excessivecode-skin="storefront"] .session-fairy{border:0}
html[data-excessivecode-skin="storefront"] .session-fairy:not(.is-halted,.is-blocked):not(:has(.session-tab-favicon:not([hidden]),.session-tab-score:not([hidden])))::before{content:'';display:block;width:6px;height:6px;margin:auto;border-radius:50%;background:var(--skin-muted)}
html[data-excessivecode-skin="storefront"] .gate>#inline-login{border:0;border-radius:0;box-shadow:0 4px 24px color-mix(in srgb,var(--skin-ink) 8%,transparent)}
html[data-excessivecode-skin="storefront"] body :not(code,pre,kbd,samp,code *,pre *){font-family:var(--skin-font)!important}
:host([data-inline][data-skin-family="storefront"]) #inline-nav :is(.ah-link,#subsystem-toggle,.platform-version,.platform-user){background:var(--skin-selected);color:var(--skin-ink);border-color:transparent}
html[data-excessivecode-skin="storefront"] #composer .composer-actions #send{background:var(--skin-button);color:var(--skin-button-ink);border-color:var(--skin-button)}
html[data-excessivecode-skin="storefront"] #composer .composer-actions :is(#clear-composer,#tasks-toggle,button:not(#send):not(#stop-response):not(:disabled)){background:var(--skin-selected);color:var(--skin-ink);border-color:transparent}
/* Keep four sprites in this theme, including every copy drawn by the trail owner. */

/* @lat: [[session-visuals#User messages]]
 * Decision: AGENTS.md Decisions > Text. Own prompts keep one blue surface in every theme, including Blank Paper. */
html:is([data-excessivecode-skin],[data-instance]) body.conversation-visible .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-color:var(--own-bubble);background-image:none;color:#ffffff;backdrop-filter:none}

/* Prismatic: white wire, liquid light, and glass with a thin spectral rim.
   The flock uses its existing owner; no extra animation loop. */
html[data-excessivecode-skin="prismatic"]{--prism-rim:linear-gradient(115deg,#a6f4ed99,#bca4ff88 35%,#ffa9d588 65%,#f4e5a388);--prism-glint:#ffffff38}
html[data-excessivecode-skin="prismatic"][data-theme="light"]{--prism-rim:linear-gradient(115deg,#327d8b88,#7968b488 35%,#b05b8b88 65%,#9c803e88);--prism-glint:#ffffffcc}
html[data-excessivecode-skin="prismatic"] body{-webkit-font-smoothing:antialiased;--danger:var(--skin-bad)}
html[data-excessivecode-skin="prismatic"] body.conversation-visible .message:not(.user){border-color:color-mix(in srgb,var(--skin-line) 70%,transparent);box-shadow:inset 0 1px 0 var(--prism-glint),-7px 0 28px #5ce9df09,7px 0 28px #e69cff0b}
html[data-excessivecode-skin="prismatic"] #composer-frame{background:var(--skin-panel);color:var(--skin-ink);border-color:var(--skin-line)}
html[data-excessivecode-skin="prismatic"] #composer{border:1px solid transparent;background:linear-gradient(var(--skin-panel),var(--skin-panel)) padding-box,var(--prism-rim) border-box;box-shadow:0 -5px 30px #7ab6f218,12px 4px 36px #ed91e012,inset 0 1px 0 var(--prism-glint)}
html[data-excessivecode-skin="prismatic"] #composer .composer-actions #send{background:var(--skin-button);color:var(--skin-button-ink);border-color:var(--skin-button);box-shadow:0 0 14px color-mix(in srgb,var(--skin-button) 18%,transparent)}
html[data-excessivecode-skin="prismatic"] .session-tab:has([aria-selected="true"]){--row-bg:var(--skin-selected);border:1px solid var(--skin-line);border-radius:10px;box-shadow:inset 2px 0 0 var(--skin-accent),inset -1px 0 0 #e5a5db80}
html[data-excessivecode-skin="prismatic"] .session-fairy:not(.is-halted,.is-blocked):not(:has(.session-tab-favicon:not([hidden]),.session-tab-score:not([hidden]))){border:0;background:#302747;border-radius:5px}
html[data-excessivecode-skin="prismatic"] .session-fairy:not(.is-halted,.is-blocked):not(:has(.session-tab-favicon:not([hidden]),.session-tab-score:not([hidden])))::before{content:'';width:22px;height:22px;margin:auto;background:url('/assets/prismatic-wireframe.svg') center/contain no-repeat}
:host([data-skinned][data-skin-family="prismatic"]) #app-header-nav{border-top:1px solid var(--skin-line);box-shadow:inset 0 1px 0 var(--prism-glint)}

/* Sidekick: paper platforms and a small, non-interactive companion. */
html[data-excessivecode-skin="sidekick"] body.conversation-visible::before{background:linear-gradient(#f3f5e8cc,#f3f5e8cc),url('/assets/default-wallpapers/meadow-v1.webp') center 58%/cover}
html[data-excessivecode-skin="sidekick"] body{-webkit-font-smoothing:antialiased;--danger:var(--skin-bad)}
html[data-excessivecode-skin="sidekick"] body.conversation-visible .message{box-shadow:0 3px 0 color-mix(in srgb,var(--skin-line) 35%,transparent);border-top:2px solid var(--skin-line)}
html[data-excessivecode-skin="sidekick"] #composer{box-shadow:0 -3px 0 var(--skin-accent),0 6px 24px #10251f12}
html[data-excessivecode-skin="sidekick"] #composer-frame{background:var(--skin-panel);color:var(--skin-ink);border-color:var(--skin-line)}
html[data-excessivecode-skin="sidekick"] .session-tab:has([aria-selected="true"]){border-radius:8px}
.sidekick-platform{position:relative;anchor-name:--sidekick-support}
.sidekick-stage{position:fixed;inset:auto;left:0;top:0;margin:0;padding:0;border:0;overflow:visible;background:transparent;width:0;height:0;z-index:18;pointer-events:none;user-select:none;--sidekick-size:72px}
/* @lat: [[sidekick#Work gear]]
 * Decision: AGENTS.md Decisions > Theme. Leave room for the raised hard hat. */
.sidekick-super-list{padding-top:96px!important;box-sizing:border-box}
.sidekick-super-list>[data-sidekick-session]{padding-right:64px;min-height:90px}
.sidekick-super-list>[data-sidekick-focus]{box-shadow:inset -3px 0 var(--accent,var(--skin-accent))}
/* @lat: [[sidekick#Phone Super]]
 * Decision: AGENTS.md Decisions > Theme. Phone rows hold her in their right gutter. */
body[data-super-view="overview"] .sidekick-super-list{padding-top:0!important}
body[data-super-view="overview"] .sidekick-super-list>[data-sidekick-session]{min-height:120px}
.sidekick-stage[data-mode="docked"]{position:absolute}
.sidekick-stage[data-anchor-mode="native"]{position-anchor:--sidekick-support;left:anchor(left);top:anchor(top)}
.sidekick-stage::backdrop{display:none}
.sidekick-stage[hidden]{display:none}
.sidekick-actor{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none}
.sidekick-art{position:absolute;background-repeat:no-repeat;pointer-events:none;filter:drop-shadow(0 2px 1px #15251d28);transform-origin:center}

/* Decision: AGENTS.md Decisions > Theme */
html[data-excessivecode-skin="blank_paper"] body.conversation-visible::before,
html[data-excessivecode-skin="blank_paper"] #session-tabs::before,
html[data-excessivecode-skin="blank_paper"] :is(.night-bat,.sidekick-stage,.decoration-trail){display:none!important}
html[data-excessivecode-skin="blank_paper"] :is(#composer,#composer-frame){background:#fff;color:#202020;box-shadow:none;border-color:#e5e5e5}
html[data-excessivecode-skin="blank_paper"] body.conversation-visible .message{border-color:transparent;box-shadow:none;background:#fff;color:#202020}

html[data-excessivecode-skin="sidekick"]:not([data-server-color]) #mobile-instance-name{background:var(--skin-panel);color:var(--skin-ink)}

/* Shared microphone states and pin control; palette belongs to the host. */
#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{display:none}
#voice-feed[data-state="denied"]{border-color:var(--danger);color:var(--danger)}
button.session-tab-mic{pointer-events:auto;cursor:pointer;border-radius:0;background:var(--surface);color:var(--ink)}

/* Decision: AGENTS.md Decisions > Transcription flag. */
#transcription-flag svg { width:16px; height:16px; }
#transcription-flag[data-saved="true"] { color:var(--ink); background:var(--surface); }
#transcription-flag-review { color:var(--ink); background:var(--surface); font-size:12px; }
#transcription-flag-notice { color:var(--ink); background:var(--surface); font-size:12px; }

#transcription-flag-notice:not([hidden]) { display:block; padding:4px 8px; }
