/* Semantic skin adapter. Classic has no selector match and remains untouched. */
html[data-fairystack-skin]{background:var(--skin-page);color:var(--skin-ink);accent-color:var(--skin-accent);scrollbar-color:var(--skin-line) var(--skin-page)}
html[data-fairystack-skin] body,html[data-fairystack-skin] body[data-fairystack-shell],html[data-fairystack-skin] body:has(#conversation:not([hidden])){--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-fairystack-skin] body:has(#conversation:not([hidden]))::before{background:radial-gradient(ellipse at 80% 0,color-mix(in srgb,var(--skin-accent) 6%,transparent),transparent 60%)}
html[data-fairystack-skin] body::after{display:none}
html[data-fairystack-skin] body:has(#conversation:not([hidden])) .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-fairystack-skin] body:has(#conversation:not([hidden])) .message.user{background:var(--skin-selected);border-left:3px solid var(--skin-accent)}
html[data-fairystack-skin] body:has(#conversation:not([hidden])) .message.user[data-provenance="machine"]{background:var(--skin-raised);border-color:var(--skin-line)}
html[data-fairystack-skin] .message.assistant a,html[data-fairystack-skin] .lane-section>summary,html[data-fairystack-skin] .lane-section-heading{color:var(--skin-accent)}
html[data-fairystack-skin] body:has(#conversation:not([hidden])) #composer-dock::after{background:var(--skin-page)}
html[data-fairystack-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-fairystack-skin] #composer textarea{padding:var(--skin-density);font-family:var(--skin-font)}
html[data-fairystack-skin] body:has(#conversation:not([hidden])) #send{background:var(--skin-button);color:var(--skin-button-ink);border-color:var(--skin-button);border-radius:var(--skin-radius)}
html[data-fairystack-skin] body:has(#conversation:not([hidden])) #enqueue{background:var(--skin-panel);color:var(--skin-accent);border-color:var(--skin-line)}
html[data-fairystack-skin] #fairy-mascot,html[data-fairystack-skin] .activation-fairy-swarm{display:none!important}
html[data-fairystack-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-fairystack-skin] .session-tab:has([aria-selected="true"]){border-color:var(--skin-accent);border-radius:var(--skin-radius) var(--skin-radius) 0 0;box-shadow:none}
html[data-fairystack-skin] .session-fairy{background-image:none;filter:none;transform:none;border:1px solid var(--skin-accent);border-radius:2px}
html[data-fairystack-skin] .session-fairy:not(.is-halted):not(:has(.session-tab-favicon:not([hidden])))::before{content:'/';font:700 15px ui-monospace,monospace;color:var(--skin-accent)}
html[data-fairystack-skin] .session-fairy:has(.session-tab-favicon:not([hidden])){border:0}
html[data-fairystack-skin] :is(#surface-view,dialog,.trace-dot-tooltip){color:var(--skin-ink);background-color:var(--skin-panel);border-color:var(--skin-line)}
html[data-fairystack-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-fairystack-skin] .gate{background:var(--skin-page)}
html[data-fairystack-skin] .gate::before,html[data-fairystack-skin] .gate>#inline-login::after{display:none}
html[data-fairystack-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}
html[data-fairystack-skin] .gate :is(.activation-brand,#activation-intro .activation-kicker,#activation-intro p:not(.activation-kicker)){color:var(--skin-muted)}
html[data-fairystack-skin] .gate :is(#activation-intro h1,#activation-intro strong){color:var(--skin-ink);font-family:var(--skin-display)}
html[data-fairystack-skin] .gate>#inline-login{--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-fairystack-skin] ::selection{background:var(--skin-button);color:var(--skin-button-ink)}
html[data-fairystack-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,#mobile-navigation){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]) #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-fairystack-skin] #composer-frame,html[data-fairystack-skin] #composer-header{border-radius:var(--skin-radius);border-color:var(--skin-line)}
:where(html[data-fairystack-skin]) button{background:var(--skin-button);color:var(--skin-button-ink);border-color:var(--skin-button)}html[data-fairystack-skin] button:disabled{background-color:var(--skin-raised);color:var(--skin-muted);border-color:var(--skin-line);opacity:1}

/* Nocturne studies: the same controls, with distinct material, type and geometry. */
html:is([data-fairystack-skin="belfry"],[data-fairystack-skin="imp"],[data-fairystack-skin="goth-fairy"]) #messages{width:100%;margin-inline:auto;padding:24px 24px 0}
html:is([data-fairystack-skin="belfry"],[data-fairystack-skin="imp"],[data-fairystack-skin="goth-fairy"]) #composer-dock{width:min(1200px,calc(100% - 40px));left:50%;transform:translateX(-50%)}
html:is([data-fairystack-skin="belfry"],[data-fairystack-skin="imp"],[data-fairystack-skin="goth-fairy"]) #composer::after{content:'';position:absolute;top:6px;right:20px;width:118px;height:96px;background:var(--skin-creature) center/contain no-repeat;pointer-events:none}
html:is([data-fairystack-skin="belfry"],[data-fairystack-skin="imp"],[data-fairystack-skin="goth-fairy"]) #composer textarea{min-height:108px;padding:20px 160px 14px 20px;font-size:16px;line-height:1.55}
html:is([data-fairystack-skin="belfry"],[data-fairystack-skin="imp"],[data-fairystack-skin="goth-fairy"]) .composer-actions{padding:0 10px 7px}
html:is([data-fairystack-skin="belfry"],[data-fairystack-skin="imp"],[data-fairystack-skin="goth-fairy"]) #composer-header{padding:7px 14px;font-family:ui-monospace,monospace;min-height:38px;letter-spacing:.01em}
html:is([data-fairystack-skin="belfry"],[data-fairystack-skin="imp"],[data-fairystack-skin="goth-fairy"]) .session-fairy:not(.is-halted):not(:has(.session-tab-favicon:not([hidden])))::before{content:'';width:22px;height:20px;background:var(--skin-creature) center/contain no-repeat}
html:is([data-fairystack-skin="belfry"],[data-fairystack-skin="imp"],[data-fairystack-skin="goth-fairy"]) .session-fairy{border:0}
/* Belfry: a broad oxblood writing desk, severe rails and warm book typography. */
html[data-fairystack-skin="belfry"] body:has(#conversation:not([hidden]))::before{background:var(--skin-creature) right 5vw top 65px/650px auto no-repeat,linear-gradient(90deg,transparent 3%,var(--skin-line) 3.1%,transparent 3.2%,transparent 96.8%,var(--skin-line) 96.9%,transparent 97%);opacity:.16}
html[data-fairystack-skin="belfry"] #messages{max-width:1320px}
html[data-fairystack-skin="belfry"] body:has(#conversation:not([hidden])) .message.assistant{width:73%;margin-left:0;border:0;border-left:3px solid var(--skin-accent);border-radius:0 18px 18px 0;padding:22px 26px;background:var(--skin-panel);box-shadow:6px 6px 0 color-mix(in srgb,var(--skin-line) 18%,transparent)}
html[data-fairystack-skin="belfry"] .message.assistant article{font-family:Georgia,serif;font-size:17px;line-height:1.65}
html[data-fairystack-skin="belfry"] body:has(#conversation:not([hidden])) .message.user{width:57%;margin-right:0;border:1px solid var(--skin-line);border-radius:18px 2px 18px 18px;padding:16px 22px;background:var(--skin-selected);color:var(--skin-ink)}
html[data-fairystack-skin="belfry"] #session-tabs{border-bottom:3px solid var(--skin-button);background:var(--skin-panel)}
html[data-fairystack-skin="belfry"] .session-tab:has([aria-selected="true"]){border-radius:10px 10px 0 0;border-top:2px solid var(--skin-accent);background:var(--skin-selected)}
html[data-fairystack-skin="belfry"] #composer-frame{border:1px solid var(--skin-accent);border-radius:14px 14px 2px 2px;box-shadow:0 12px 40px #0005}
html[data-fairystack-skin="belfry"] #composer{border-radius:0;box-shadow:none;border-top:1px solid var(--skin-line)}
html[data-fairystack-skin="belfry"] body:has(#conversation:not([hidden])) #send{padding-inline:24px;border-radius:2px 10px 2px 10px;font-family:Georgia,serif;font-size:15px}
/* Imp: warm enamel, chunky offset panels, angular tabs and an embedded familiar. */
html[data-fairystack-skin="imp"] body:has(#conversation:not([hidden]))::before{background:var(--skin-creature) right 2vw top 55px/530px auto no-repeat,repeating-linear-gradient(135deg,transparent 0 59px,var(--skin-line) 60px,transparent 61px);opacity:.14}
html[data-fairystack-skin="imp"] #messages{max-width:1220px;padding-top:30px}
html[data-fairystack-skin="imp"] body:has(#conversation:not([hidden])) .message.assistant{width:77%;margin-left:0;border:2px solid var(--skin-line);border-left:8px solid var(--skin-accent);border-radius:2px 24px 24px 24px;padding:20px 24px;background:var(--skin-panel);box-shadow:7px 7px 0 color-mix(in srgb,var(--skin-accent) 15%,var(--skin-page))}
html[data-fairystack-skin="imp"] .message.assistant article{font-size:16px;line-height:1.65}
html[data-fairystack-skin="imp"] .message.assistant strong{font-weight:800;color:var(--skin-accent)}
html[data-fairystack-skin="imp"] body:has(#conversation:not([hidden])) .message.user{width:57%;margin-right:0;border:2px solid var(--skin-line);border-radius:20px 2px 20px 20px;padding:16px 20px;background:var(--skin-selected);color:var(--skin-ink)}
html[data-fairystack-skin="imp"] #session-tabs{background:var(--skin-raised);border-bottom:3px solid var(--skin-accent)}
html[data-fairystack-skin="imp"] .session-tab:has([aria-selected="true"]){border:0;border-radius:0 16px 0 0;background:var(--skin-button);--ink:var(--skin-button-ink);--muted:var(--skin-button-ink)}
html[data-fairystack-skin="imp"] .session-tab:has([aria-selected="true"])::after{background:var(--skin-button)}
html[data-fairystack-skin="imp"] .session-tab [aria-selected="true"] .session-tab-title{font-weight:800}
html[data-fairystack-skin="imp"] #composer-frame{border:2px solid var(--skin-line);border-left:7px solid var(--skin-accent);border-radius:2px 24px 2px 2px;box-shadow:7px 7px 0 color-mix(in srgb,var(--skin-accent) 15%,var(--skin-page))}
html[data-fairystack-skin="imp"] #composer{border-radius:0;box-shadow:none}
html[data-fairystack-skin="imp"] #composer-header{background:var(--skin-raised);color:var(--skin-ink)}
html[data-fairystack-skin="imp"] #composer::after{width:110px;height:104px;top:0;right:20px}
html[data-fairystack-skin="imp"] body:has(#conversation:not([hidden])) #send{padding-inline:24px;border-radius:12px 2px 12px 2px;font-weight:900;box-shadow:3px 3px 0 var(--skin-line)}
/* Goth Fairy: a narrower silver manuscript with winglike corners and moonlit trim. */
html[data-fairystack-skin="goth-fairy"] body:has(#conversation:not([hidden]))::before{background:var(--skin-creature) right 1vw top 55px/680px auto no-repeat,radial-gradient(ellipse at 15% 20%,var(--skin-accent),transparent 60%);opacity:.13}
html[data-fairystack-skin="goth-fairy"] #messages{max-width:1140px;padding-top:28px}
html[data-fairystack-skin="goth-fairy"] body:has(#conversation:not([hidden])) .message.assistant{width:78%;margin-left:0;border:1px solid var(--skin-line);border-top:2px solid var(--skin-accent);border-radius:30px 3px 30px 3px;padding:24px 28px;background:var(--skin-panel);box-shadow:0 5px 25px color-mix(in srgb,var(--skin-accent) 9%,transparent)}
html[data-fairystack-skin="goth-fairy"] .message.assistant article{font-family:Georgia,serif;font-size:17px;line-height:1.7}
html[data-fairystack-skin="goth-fairy"] body:has(#conversation:not([hidden])) .message.user{width:61%;margin-right:0;border:1px solid var(--skin-line);border-radius:3px 24px 3px 24px;padding:16px 22px;background:var(--skin-selected);color:var(--skin-ink)}
html[data-fairystack-skin="goth-fairy"] #session-tabs{background:var(--skin-page);border-color:var(--skin-line)}
html[data-fairystack-skin="goth-fairy"] .session-tab:has([aria-selected="true"]){border:1px solid var(--skin-accent);border-radius:18px 3px 0 0;background:var(--skin-selected)}
html[data-fairystack-skin="goth-fairy"] #composer-dock{width:min(1080px,calc(100% - 40px))}
html[data-fairystack-skin="goth-fairy"] #composer-frame{border:1px solid var(--skin-accent);border-radius:24px 3px 24px 3px;box-shadow:0 0 28px color-mix(in srgb,var(--skin-accent) 12%,transparent)}
html[data-fairystack-skin="goth-fairy"] #composer-header{background:var(--skin-raised);color:var(--skin-ink)}
html[data-fairystack-skin="goth-fairy"] #composer{border-radius:0;box-shadow:none}
html[data-fairystack-skin="goth-fairy"] #composer::after{width:124px;height:106px;top:0;right:18px}
html[data-fairystack-skin="goth-fairy"] body:has(#conversation:not([hidden])) #send{padding-inline:26px;border-radius:20px 3px 20px 3px;font-family:Georgia,serif;font-size:15px}
@media(max-width:620px){
 html:is([data-fairystack-skin="belfry"],[data-fairystack-skin="imp"],[data-fairystack-skin="goth-fairy"]) #messages{padding:14px 6px 0}
 html:is([data-fairystack-skin="belfry"],[data-fairystack-skin="imp"],[data-fairystack-skin="goth-fairy"]) body:has(#conversation:not([hidden])) .message.assistant{width:95%;padding:16px;font-size:15px}
 html:is([data-fairystack-skin="belfry"],[data-fairystack-skin="imp"],[data-fairystack-skin="goth-fairy"]) body:has(#conversation:not([hidden])) .message.user{width:90%;padding:13px 15px;font-size:14px}
 html:is([data-fairystack-skin="belfry"],[data-fairystack-skin="imp"],[data-fairystack-skin="goth-fairy"]) .message.assistant article{font-size:16px;line-height:1.6}
 html:is([data-fairystack-skin="belfry"],[data-fairystack-skin="imp"],[data-fairystack-skin="goth-fairy"]) #composer-dock{width:calc(100% - 16px)}
 html:is([data-fairystack-skin="belfry"],[data-fairystack-skin="imp"],[data-fairystack-skin="goth-fairy"]) #composer textarea{min-height:78px;max-height:28dvh;padding:12px 88px 12px 12px;font-size:16px}
 html:is([data-fairystack-skin="belfry"],[data-fairystack-skin="imp"],[data-fairystack-skin="goth-fairy"]) #composer::after{width:72px;height:68px;right:8px;top:6px}
 html:is([data-fairystack-skin="belfry"],[data-fairystack-skin="imp"],[data-fairystack-skin="goth-fairy"]) .composer-actions{padding:0 4px 4px}
 html:is([data-fairystack-skin="belfry"],[data-fairystack-skin="imp"],[data-fairystack-skin="goth-fairy"]) #composer-frame{box-shadow:none}
}

/* Timing belongs to the same column as its assistant message. */
html[data-fairystack-skin="belfry"] body:has(#conversation:not([hidden])) .turn-profile-host{width:73%;margin-left:0;margin-right:auto}
html[data-fairystack-skin="imp"] body:has(#conversation:not([hidden])) .turn-profile-host{width:77%;margin-left:0;margin-right:auto}
html[data-fairystack-skin="goth-fairy"] body:has(#conversation:not([hidden])) .turn-profile-host{width:78%;margin-left:0;margin-right:auto}
@media(max-width:620px){html:is([data-fairystack-skin="belfry"],[data-fairystack-skin="imp"],[data-fairystack-skin="goth-fairy"]) body:has(#conversation:not([hidden])) .turn-profile-host{width:95%}}
/* Diffusion plates retain their generated alpha; keep detail in the open margin. */
html[data-fairystack-skin="belfry"] body:has(#conversation:not([hidden]))::before{opacity:.38}
html[data-fairystack-skin="imp"] body:has(#conversation:not([hidden]))::before{background-size:480px auto,auto;opacity:.30}
html[data-fairystack-skin="goth-fairy"] body:has(#conversation:not([hidden]))::before{background-size:510px auto,auto;opacity:.35}
html[data-skin-mode="light"]:is([data-fairystack-skin="belfry"],[data-fairystack-skin="imp"],[data-fairystack-skin="goth-fairy"]) body:has(#conversation:not([hidden]))::before{opacity:.18}

.night-creatures{display:none}
/* Seven composer pets; shared controller follows the existing activity state. */
html:is([data-fairystack-skin="spectrum"],[data-fairystack-skin="bat-swarm"],[data-fairystack-skin^="monochrome"]) .night-creatures{display:block;position:absolute;bottom:100%;left:0;width:100%;height:24px;pointer-events:none;user-select:none;overflow:hidden;color:var(--skin-ink);z-index:2}
.night-bat{position:absolute;left:calc((100% - 32px)*.62 + var(--roost));bottom:0;width:26px;height:18px;transform-origin:center;pointer-events:none}
.night-bat-0{--roost:-6px}.night-bat-1{--roost:-4px}.night-bat-2{--roost:-2px}.night-bat-3{--roost:0px}.night-bat-4{--roost:2px}.night-bat-5{--roost:4px}.night-bat-6{--roost:6px}
.night-bat i{display:block;width:100%;height:100%;background:currentColor;clip-path:polygon(30% 18%,38% 0,46% 22%,54% 22%,62% 0,70% 18%,76% 65%,64% 95%,36% 95%,24% 65%)}
.night-creatures:is([data-bat-state="flying"],[data-bat-state="landing"]) .night-bat i{animation:night-flap var(--wingbeat,.36s) steps(1,end) infinite;animation-delay:var(--wing-phase,0s)}
.night-bat-0{--wingbeat:0.31s;--wing-phase:-0.07s}
.night-bat-1{--wingbeat:0.43s;--wing-phase:-0.29s}
.night-bat-2{--wingbeat:0.37s;--wing-phase:-0.13s}
.night-bat-3{--wingbeat:0.49s;--wing-phase:-0.41s}
.night-bat-4{--wingbeat:0.33s;--wing-phase:-0.21s}
.night-bat-5{--wingbeat:0.46s;--wing-phase:-0.09s}
.night-bat-6{--wingbeat:0.39s;--wing-phase:-0.33s}
@keyframes night-flap{0%,100%{clip-path:polygon(0 0,35% 30%,45% 45%,46% 20%,50% 36%,54% 20%,55% 45%,65% 30%,100% 0,85% 75%,62% 65%,50% 100%,38% 65%,15% 75%)}50%{clip-path:polygon(0 85%,30% 40%,44% 35%,46% 10%,50% 25%,54% 10%,56% 35%,70% 40%,100% 85%,72% 68%,60% 80%,50% 100%,40% 80%,28% 68%)}}

/* Bat color is a local appearance choice, shared with the studio preview. */
.night-bat{color:var(--skin-accent,var(--skin-ink))}
html[data-bat-color="ink"] .night-bat{color:var(--skin-ink)}
html[data-bat-color="rainbow"] .night-bat{color:var(--bat-rainbow)}
.night-bat-0{--bat-rainbow:#ff929e}.night-bat-1{--bat-rainbow:#ffc080}.night-bat-2{--bat-rainbow:#ffe799}.night-bat-3{--bat-rainbow:#99e5b8}.night-bat-4{--bat-rainbow:#97d5ff}.night-bat-5{--bat-rainbow:#d4afff}.night-bat-6{--bat-rainbow:#fface1}
html[data-skin-mode="light"] .night-bat-0{--bat-rainbow:#a0253d}html[data-skin-mode="light"] .night-bat-1{--bat-rainbow:#874600}html[data-skin-mode="light"] .night-bat-2{--bat-rainbow:#6c5400}html[data-skin-mode="light"] .night-bat-3{--bat-rainbow:#16623b}html[data-skin-mode="light"] .night-bat-4{--bat-rainbow:#225e90}html[data-skin-mode="light"] .night-bat-5{--bat-rainbow:#64328f}html[data-skin-mode="light"] .night-bat-6{--bat-rainbow:#8d306e}
@media(forced-colors:active){.night-bat{color:CanvasText!important}}

/* Tokyo Neon: neon controls on a solid canvas. */
html[data-fairystack-skin="night-city"]{--city-pink:#ff5edb}
html[data-fairystack-skin="night-city"][data-skin-mode="light"]{--city-pink:#a51b83}
html[data-fairystack-skin="night-city"] body:has(#conversation:not([hidden]))::before{display:none;background:none}
html[data-fairystack-skin="night-city"] #messages{width:100%;max-width:1320px;margin-inline:auto;padding:24px 22px 0}
html[data-fairystack-skin="night-city"] body:has(#conversation:not([hidden])) .message.assistant{border:1px solid var(--skin-line);border-left:3px solid var(--skin-accent);border-radius:0 12px 0 0;box-shadow:-4px 0 18px color-mix(in srgb,var(--skin-accent) 9%,transparent)}
html[data-fairystack-skin="night-city"] body:has(#conversation:not([hidden])) .message.user{border:1px solid var(--city-pink);border-right:3px solid var(--city-pink);border-radius:12px 0 0 0;background:var(--skin-selected)}
html[data-fairystack-skin="night-city"] .message.assistant article{font-size:15px;line-height:1.65}
html[data-fairystack-skin="night-city"] .message.assistant strong{color:var(--city-gold)}
html[data-fairystack-skin="night-city"] .message.assistant code{color:var(--city-lime)}
html[data-fairystack-skin="night-city"] #session-tabs{border-bottom:1px solid var(--skin-accent);box-shadow:0 2px 16px color-mix(in srgb,var(--skin-accent) 18%,transparent)}
html[data-fairystack-skin="night-city"] .session-tab:has([aria-selected="true"]){border-top:2px solid var(--city-pink);border-radius:0 12px 0 0}
html[data-fairystack-skin="night-city"] :is(.session-tab-title,#composer-header){font-family:ui-monospace,monospace;letter-spacing:.025em}
html[data-fairystack-skin="night-city"] #composer-dock{width:min(1240px,calc(100% - 32px));left:50%;transform:translateX(-50%)}
html[data-fairystack-skin="night-city"] #composer-frame{border:1px solid var(--skin-accent);border-top:2px solid var(--city-gold);border-radius:0 16px 0 0;box-shadow:0 -3px 26px color-mix(in srgb,var(--city-gold) 14%,transparent),0 4px 22px #0006}
html[data-fairystack-skin="night-city"] #composer-header{background:var(--skin-raised);color:var(--skin-ink)}
html[data-fairystack-skin="night-city"] #composer{box-shadow:none;border-top:1px solid var(--skin-line)}
@media(max-width:620px){html[data-fairystack-skin="night-city"] #messages{padding:16px 4px 0}html[data-fairystack-skin="night-city"] #composer-dock{width:calc(100% - 12px)}html[data-fairystack-skin="night-city"] body:has(#conversation:not([hidden])) #send{padding-inline:12px}}

/* Tokyo Neon details: layered sign enamel, bright inlays, and warm highlights. */
html:is([data-fairystack-skin="night-city"],[data-fairystack-skin="spectrum"]){--city-gold:#ffd879;--city-lime:#d7ff69;--city-violet:#c6a0ff;--city-orange:#ffac72;--city-enamel:#233653}
html:is([data-fairystack-skin="night-city"],[data-fairystack-skin="spectrum"])[data-skin-mode="light"]{--city-gold:#785200;--city-lime:#466300;--city-violet:#7540a4;--city-orange:#9a4200;--city-enamel:#dceaf4}
html[data-fairystack-skin="night-city"] body:has(#conversation:not([hidden])) .message{padding:20px 22px;border-radius:14px 4px 14px 4px;background-image:linear-gradient(90deg,var(--city-lime),var(--city-gold) 45%,var(--city-orange));background-size:100% 3px;background-repeat:no-repeat;box-shadow:inset 0 0 0 3px var(--skin-panel),0 6px 20px #05081840}
html[data-fairystack-skin="night-city"] body:has(#conversation:not([hidden])) .message.assistant{border-color:var(--skin-accent);border-left-width:1px;box-shadow:inset 3px 0 var(--skin-accent),0 3px 18px color-mix(in srgb,var(--skin-accent) 13%,transparent)}
html[data-fairystack-skin="night-city"] body:has(#conversation:not([hidden])) .message.user{border-right-width:1px;border-radius:4px 14px 4px 14px;background-image:linear-gradient(90deg,var(--city-pink),var(--city-gold));background-size:100% 3px;background-repeat:no-repeat;box-shadow:inset -3px 0 var(--city-pink),0 3px 18px color-mix(in srgb,var(--city-pink) 15%,transparent)}
html[data-fairystack-skin="night-city"] .message.assistant article :is(pre,blockquote){border:1px solid var(--skin-line);border-left:3px solid var(--city-pink);border-radius:6px;background:var(--skin-page);color:var(--skin-ink)}
html[data-fairystack-skin="night-city"] .message.assistant a{text-decoration-color:var(--city-pink);text-underline-offset:4px}
html[data-fairystack-skin="night-city"] .message.assistant li::marker{color:var(--city-gold)}
html[data-fairystack-skin="night-city"] #session-tabs{background:var(--skin-page);background-image:linear-gradient(90deg,color-mix(in srgb,var(--skin-accent) 10%,transparent),transparent 40%,color-mix(in srgb,var(--city-pink) 12%,transparent));border-bottom:2px solid var(--skin-accent)}
html[data-fairystack-skin="night-city"] #session-tab-list .session-tab{border-radius:8px 8px 0 0;border:1px solid var(--skin-line);border-bottom:0;margin-inline:2px;background:var(--skin-panel)}
html[data-fairystack-skin="night-city"] #session-tab-list .session-tab:has([aria-selected="true"]){background:var(--city-enamel);border-color:var(--skin-accent);box-shadow:inset 0 3px var(--city-gold),inset 0 -2px var(--skin-accent),0 -2px 14px color-mix(in srgb,var(--skin-accent) 20%,transparent)}
html[data-fairystack-skin="night-city"] .session-tab-title{font-weight:700;letter-spacing:.025em}
html[data-fairystack-skin="night-city"] .session-tab-app{color:var(--city-gold)}
html[data-fairystack-skin="night-city"] .session-tab-close{color:var(--skin-accent)}
html[data-fairystack-skin="night-city"] #composer-frame{border-radius:16px 4px 16px 4px;border:1px solid var(--skin-accent);border-top:3px solid var(--city-gold);box-shadow:0 -3px 0 color-mix(in srgb,var(--city-gold) 25%,transparent),0 5px 28px #080c3070}
html[data-fairystack-skin="night-city"] #composer-header{border-radius:12px 2px 0 0;background:var(--city-enamel);background-image:linear-gradient(90deg,color-mix(in srgb,var(--skin-accent) 9%,transparent),transparent 50%,color-mix(in srgb,var(--city-pink) 9%,transparent));min-height:40px;padding:7px 10px;gap:8px}
html[data-fairystack-skin="night-city"] #composer textarea{padding:18px 20px;line-height:1.6;caret-color:var(--city-pink)}
html[data-fairystack-skin="night-city"] .composer-actions{border-top:1px solid var(--skin-line);background:var(--skin-raised);padding:8px;gap:7px}
html[data-fairystack-skin="night-city"] .composer-actions button{border:1px solid var(--skin-line);border-radius:7px 2px 7px 2px;background:var(--skin-panel);color:var(--skin-ink);box-shadow:inset 0 1px color-mix(in srgb,var(--skin-ink) 12%,transparent);min-height:32px}
html[data-fairystack-skin="night-city"] button:not(:disabled):hover{outline:1px solid var(--skin-accent);outline-offset:2px}
:host(:is([data-skin="night-city"],[data-skin="spectrum"])) #app-header-nav{border-top:2px solid var(--skin-accent);background:var(--skin-page);box-shadow:0 -3px 18px color-mix(in srgb,var(--skin-accent) 14%,transparent)}
:host(:is([data-skin="night-city"],[data-skin="spectrum"])) :is(.ah-link,#subsystem-toggle){border:1px solid var(--skin-accent);border-radius:7px 2px 7px 2px;color:var(--skin-accent);background:var(--skin-panel);box-shadow:inset 0 -2px color-mix(in srgb,var(--skin-accent) 20%,transparent)}
:host(:is([data-skin="night-city"],[data-skin="spectrum"])) :is(.ah-link,#subsystem-toggle):nth-child(4n+1){color:var(--city-gold);border-color:var(--city-gold)}
:host(:is([data-skin="night-city"],[data-skin="spectrum"])) :is(.ah-link,#subsystem-toggle):nth-child(4n+2){color:var(--city-lime);border-color:var(--city-lime)}
:host(:is([data-skin="night-city"],[data-skin="spectrum"])) :is(.ah-link,#subsystem-toggle):nth-child(4n+3){color:var(--city-violet);border-color:var(--city-violet)}
:host(:is([data-skin="night-city"],[data-skin="spectrum"])) :is(.ah-link,#subsystem-toggle):nth-child(4n){color:var(--city-orange);border-color:var(--city-orange)}
:host(:is([data-skin="night-city"],[data-skin="spectrum"])) .ah-link:is(:hover,:focus-visible,[aria-current="page"]){background:var(--skin-selected);box-shadow:0 0 12px color-mix(in srgb,var(--skin-accent) 25%,transparent)}
@media(max-width:620px){html[data-fairystack-skin="night-city"] body:has(#conversation:not([hidden])) .message{padding:16px 14px}html[data-fairystack-skin="night-city"] .composer-actions{padding:5px;gap:5px}html[data-fairystack-skin="night-city"] body:has(#conversation:not([hidden])) #send{padding-inline:12px}html[data-fairystack-skin="night-city"] #composer textarea{padding:14px}}

/* Monochrome: paper and ink, without atmospheric plates or colored chrome. */
html[data-fairystack-skin^="monochrome"] body{--danger:var(--skin-ink)}
html[data-fairystack-skin^="monochrome"] body:has(#conversation:not([hidden]))::before{display:none}
html[data-fairystack-skin^="monochrome"] :is(#composer-header,#composer-frame,.composer-actions){background:var(--skin-panel);color:var(--skin-ink);border-color:var(--skin-line);box-shadow:none}
html[data-fairystack-skin^="monochrome"] :is(#current-app,#composer-model,#voice-feed,#clear-composer,#composer-options-open,#context-meter,#context-track){background:var(--skin-panel);color:var(--skin-ink);border-color:var(--skin-line)}
html[data-fairystack-skin^="monochrome"] #context-bar{stroke:var(--skin-ink)}
html[data-fairystack-skin^="monochrome"] #composer{box-shadow:none}
html[data-fairystack-skin^="monochrome"] .composer-actions{border-top:1px solid var(--skin-line);padding:6px 8px}
html[data-fairystack-skin^="monochrome"] .message.assistant article :is(pre,code,blockquote){background:var(--skin-raised);color:var(--skin-ink);border-color:var(--skin-line)}
html[data-fairystack-skin^="monochrome"] .message.assistant a{text-decoration:underline;text-underline-offset:3px}
html[data-fairystack-skin^="monochrome"] .turn-profile-host>.turn-profile{background:var(--skin-raised);color:var(--skin-ink);border-color:var(--skin-line)}
html[data-fairystack-skin^="monochrome"] :is(.session-tab-favicon,#current-app-icon){filter:grayscale(1)}
html[data-fairystack-skin^="monochrome"] .session-tab{background:var(--skin-panel);color:var(--skin-ink);border-color:var(--skin-line)}
html[data-fairystack-skin^="monochrome"] .session-tab:has([aria-selected="true"]){background:var(--skin-selected);border-top:2px solid var(--skin-ink)}
:host([data-skin="monochrome"]) :is(.ah-link,#subsystem-toggle,#mobile-navigation){filter:grayscale(1)}
:host([data-skin="monochrome"]) #platform-menu-toggle{background:var(--skin-panel);color:var(--skin-ink);border-color:var(--skin-line);filter:grayscale(1)}

/* Anime and Spectrum share readable controls; their scenery and geometry differ. */
html:is([data-fairystack-skin="anime-dusk"],[data-fairystack-skin="spectrum"]) :is(#composer-header,.composer-actions){background:var(--skin-raised);color:var(--skin-ink);border-color:var(--skin-line)}
html:is([data-fairystack-skin="anime-dusk"],[data-fairystack-skin="spectrum"]) :is(#current-app,#composer-model,#voice-feed,#clear-composer,#composer-options-open){background:var(--skin-panel);color:var(--skin-accent);border-color:var(--skin-line)}
html:is([data-fairystack-skin="anime-dusk"],[data-fairystack-skin="spectrum"]) .composer-actions{padding:7px 10px;border-top:1px solid var(--skin-line)}
html:is([data-fairystack-skin="anime-dusk"],[data-fairystack-skin="spectrum"]) .message.assistant article :is(pre,code,blockquote){background:var(--skin-raised);color:var(--skin-ink);border-color:var(--skin-line)}
html:is([data-fairystack-skin="anime-dusk"],[data-fairystack-skin="spectrum"]) .turn-profile-host>.turn-profile{background:var(--skin-raised);color:var(--skin-ink);border-color:var(--skin-line)}
html[data-fairystack-skin="anime-dusk"] body:has(#conversation:not([hidden]))::before{background:linear-gradient(90deg,#11152b70,transparent 75%),url('/assets/skin-anime-dusk.webp') right center/cover no-repeat;opacity:.85}
html[data-fairystack-skin="anime-dusk"][data-skin-mode="light"] body:has(#conversation:not([hidden]))::before{opacity:.55}
html[data-fairystack-skin="anime-dusk"] body:has(#conversation:not([hidden])) .message{border:2px solid var(--skin-line);box-shadow:4px 4px 0 var(--skin-page)}
html[data-fairystack-skin="anime-dusk"] body:has(#conversation:not([hidden])) .message.user{border-left:5px solid var(--skin-accent);border-radius:4px 16px 4px 16px}
html[data-fairystack-skin="anime-dusk"] #composer{border:2px solid var(--skin-accent);box-shadow:5px 5px 0 var(--skin-page)}
html[data-fairystack-skin="anime-dusk"] #session-tabs{border-bottom:3px solid var(--skin-accent)}
html[data-fairystack-skin="anime-dusk"] .session-tab:has([aria-selected="true"]){box-shadow:inset 0 3px var(--skin-accent)}
html[data-fairystack-skin="anime-dusk"] .session-tab-title{font-weight:750}
html[data-fairystack-skin="spectrum"] #composer-header :is(#current-app,#composer-model){background:transparent;color:var(--skin-ink)}
html[data-fairystack-skin="spectrum"]{--spectrum:linear-gradient(100deg,#ff809d,#ffba72,#f5e780,#89deb3,#85cfff,#b5a0ff,#ed9fdf)}
html[data-fairystack-skin="spectrum"] body:has(#conversation:not([hidden]))::before{background:radial-gradient(ellipse at 0 15%,#ef619d30,transparent 45%),radial-gradient(ellipse at 95% 35%,#65bcff30,transparent 45%),radial-gradient(ellipse at 55% 100%,#a5dc8230,transparent 45%);opacity:1}
html[data-fairystack-skin="spectrum"] #session-tabs{border-bottom:3px solid transparent;border-image:var(--spectrum) 1}
html[data-fairystack-skin="spectrum"] body:has(#conversation:not([hidden])) #composer-frame{border:2px solid transparent;background:linear-gradient(var(--skin-panel),var(--skin-panel)) padding-box,var(--spectrum) border-box;box-shadow:0 0 26px #b5a0ff20}
html[data-fairystack-skin="spectrum"] #composer-frame #composer{border:0;border-top:1px solid var(--skin-line);border-radius:0;background:var(--skin-panel);box-shadow:none}
html[data-fairystack-skin="spectrum"] body:has(#conversation:not([hidden])) .message{border:1px solid var(--skin-line);border-radius:18px}
html[data-fairystack-skin="spectrum"] body:has(#conversation:not([hidden])) .message.assistant{border-top:3px solid transparent;background:linear-gradient(var(--skin-panel),var(--skin-panel)) padding-box,var(--spectrum) border-box;background-color:var(--skin-panel)}
html[data-fairystack-skin="spectrum"] body:has(#conversation:not([hidden])) .message.user{border-left:4px solid var(--skin-accent);border-radius:18px 18px 4px 18px}
html[data-fairystack-skin="spectrum"] .session-tab:has([aria-selected="true"]){background:var(--skin-selected);box-shadow:inset 0 3px var(--skin-accent)}
:host([data-skin="spectrum"]) #app-header-nav{border-top:3px solid transparent;border-image:var(--spectrum) 1}
:host([data-skin="anime-dusk"]) #app-header-nav{border-top:2px solid var(--skin-accent)}
@media(max-width:620px){html:is([data-fairystack-skin="anime-dusk"],[data-fairystack-skin="spectrum"]) .composer-actions{padding:5px;gap:5px}html[data-fairystack-skin="anime-dusk"] body:has(#conversation:not([hidden]))::before{background-position:72% center}}

:host(:is([data-skin="anime-dusk"],[data-skin="spectrum"])) #platform-menu-toggle{background:var(--skin-panel);color:var(--skin-ink);border-color:var(--skin-line)}

@media(prefers-reduced-motion:reduce){.night-creatures *{animation:none!important}.night-bat{transform:none!important}}

/* Rainbow affects prose only; the panel, selection, links, and code stay legible. */
html[data-fairystack-skin="spectrum"]{--rainbow-ink:linear-gradient(100deg,#ff929e,#ffc080,#ffe799,#99e5b8,#97d5ff,#d4afff,#fface1)}
html[data-fairystack-skin="spectrum"][data-skin-mode="light"]{--rainbow-ink:linear-gradient(100deg,#a0253d,#874600,#6c5400,#16623b,#225e90,#64328f,#8d306e)}
@supports(background-clip:text){
 html[data-fairystack-skin="spectrum"] .message.assistant article :is(p,li,h1,h2,h3){background-image:var(--rainbow-ink);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;color:var(--skin-ink)}
 html[data-fairystack-skin="spectrum"] .message.assistant article :is(a,code){-webkit-text-fill-color:var(--skin-ink)}
 html[data-fairystack-skin="spectrum"] .message.assistant article ::selection{-webkit-text-fill-color:var(--skin-button-ink);background:var(--skin-button);color:var(--skin-button-ink)}
}
@media(forced-colors:active){html[data-fairystack-skin="spectrum"] .message.assistant article :is(p,li,h1,h2,h3,a,code){background-image:none;-webkit-text-fill-color:CanvasText;color:CanvasText}}
@media print{html[data-fairystack-skin="spectrum"] .message.assistant article :is(p,li,h1,h2,h3,a,code){background-image:none;-webkit-text-fill-color:#000;color:#000}}

/* Locally hosted expressive type and rainbow 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}
html[data-fairystack-skin="spectrum"] .message.assistant article{max-width:68ch;font-family:ui-monospace,monospace;font-size:16px;line-height:1.8}

/* Ghost in the Shell: a quiet cybernetic reading surface, no invented telemetry. */
html[data-fairystack-skin="ghost-shell"]{--ghost-cyan:#9bddff}
html[data-fairystack-skin="ghost-shell"][data-skin-mode="light"]{--ghost-cyan:#245d7d}
html[data-fairystack-skin="ghost-shell"] body:has(#conversation:not([hidden]))::before{background:repeating-linear-gradient(0deg,transparent 0 3px,color-mix(in srgb,var(--skin-accent) 5%,transparent) 3px 4px),radial-gradient(ellipse at 80% 20%,color-mix(in srgb,var(--skin-accent) 7%,transparent),transparent 60%);opacity:1}
html[data-fairystack-skin="ghost-shell"] #messages{padding:24px 18px 0;max-width:1320px;margin-inline:auto;width:100%}
html[data-fairystack-skin="ghost-shell"] body:has(#conversation:not([hidden])) .message.assistant{border:1px solid var(--skin-line);border-left:3px solid var(--skin-accent);border-radius:0 12px 0 0;box-shadow:-5px 0 0 color-mix(in srgb,var(--skin-accent) 12%,transparent)}
html[data-fairystack-skin="ghost-shell"] .message.assistant article{font:400 16px/1.75 ui-monospace,monospace;max-width:70ch;letter-spacing:-.015em}
html[data-fairystack-skin="ghost-shell"] .message.assistant article>p:first-child{font:600 26px/1.35 'Bricolage Grotesque',system-ui,sans-serif;color:var(--skin-accent);letter-spacing:-.025em}
html[data-fairystack-skin="ghost-shell"] .message.assistant article strong{color:var(--ghost-cyan);font-weight:750}
html[data-fairystack-skin="ghost-shell"] .message.assistant article :is(pre,code,blockquote){background:var(--skin-raised);color:var(--skin-ink);border-color:var(--skin-line)}
html[data-fairystack-skin="ghost-shell"] .message.assistant a{color:var(--ghost-cyan);text-underline-offset:4px}
html[data-fairystack-skin="ghost-shell"] body:has(#conversation:not([hidden])) .message.user{border-left:0;border-right:3px solid var(--ghost-cyan);background:var(--skin-selected);color:var(--skin-ink);border-radius:12px 0 0 0}
html[data-fairystack-skin="ghost-shell"] #session-tabs{border-bottom:1px solid var(--skin-accent);box-shadow:0 3px 0 color-mix(in srgb,var(--skin-accent) 12%,transparent)}
html[data-fairystack-skin="ghost-shell"] .session-tab:has([aria-selected="true"]){box-shadow:inset 0 3px var(--skin-accent);border-radius:0;background:var(--skin-selected)}
html[data-fairystack-skin="ghost-shell"] .session-tab-title{letter-spacing:.04em}
html[data-fairystack-skin="ghost-shell"] #composer{border:1px solid var(--skin-accent);border-radius:0 0 12px 0;box-shadow:0 -4px 0 color-mix(in srgb,var(--skin-accent) 16%,transparent)}
html[data-fairystack-skin="ghost-shell"] :is(#composer-header,.composer-actions){background:var(--skin-raised);color:var(--skin-ink);border-color:var(--skin-line)}
html[data-fairystack-skin="ghost-shell"] :is(#current-app,#composer-model,#voice-feed,#clear-composer,#composer-options-open){background:var(--skin-panel);color:var(--ghost-cyan);border-color:var(--skin-line)}
html[data-fairystack-skin="ghost-shell"] #composer textarea{font:16px/1.65 ui-monospace,monospace;caret-color:var(--skin-accent)}
html[data-fairystack-skin="ghost-shell"] .composer-actions{padding:7px 9px;border-top:1px solid var(--skin-line)}
html[data-fairystack-skin="ghost-shell"] #send{font-weight:800;letter-spacing:.08em;text-transform:uppercase}
html[data-fairystack-skin="ghost-shell"] #context-bar{stroke:var(--ghost-cyan)}
html[data-fairystack-skin="ghost-shell"] .turn-profile-host>.turn-profile{background:var(--skin-raised);color:var(--skin-muted);border-color:var(--skin-line)}
:host([data-skin="ghost-shell"]) #app-header-nav{border-top:1px solid var(--skin-accent);box-shadow:0 -3px 0 color-mix(in srgb,var(--skin-accent) 12%,transparent)}
:host([data-skin="ghost-shell"]) #platform-menu-toggle{background:var(--skin-panel);color:var(--skin-accent);border-color:var(--skin-line)}
@media(max-width:620px){html[data-fairystack-skin="ghost-shell"] #messages{padding:16px 5px 0}html[data-fairystack-skin="ghost-shell"] .message.assistant article{font-size:15px}html[data-fairystack-skin="ghost-shell"] .message.assistant article>p:first-child{font-size:23px}html[data-fairystack-skin="ghost-shell"] .composer-actions{padding:5px;gap:5px}}

/* Shared Tokyo accents; keep the rainbow direction’s square monochrome geometry. */
html:is([data-fairystack-skin="night-city"],[data-fairystack-skin="spectrum"]) body:has(#conversation:not([hidden])) #send{font:700 13px ui-monospace,monospace;letter-spacing:.06em;padding-inline:24px;box-shadow:0 0 16px color-mix(in srgb,var(--skin-accent) 22%,transparent)}
html:is([data-fairystack-skin="night-city"],[data-fairystack-skin="spectrum"]) body:has(#conversation:not([hidden])) #enqueue{border-color:var(--city-orange);color:var(--city-orange)}
html:is([data-fairystack-skin="night-city"],[data-fairystack-skin="spectrum"]) :is(#current-app,#composer-model){border:1px solid var(--skin-line);border-radius:4px;padding:3px 7px;background:var(--skin-panel);color:var(--skin-ink)}
html:is([data-fairystack-skin="night-city"],[data-fairystack-skin="spectrum"]) #current-app{border-color:var(--city-gold);color:var(--city-gold)}
html:is([data-fairystack-skin="night-city"],[data-fairystack-skin="spectrum"]) #composer-model{border-color:var(--city-violet);color:var(--city-violet)}
html:is([data-fairystack-skin="night-city"],[data-fairystack-skin="spectrum"]) #context-track{border-color:var(--city-gold);color:var(--city-gold)}
html:is([data-fairystack-skin="night-city"],[data-fairystack-skin="spectrum"]) body:has(#conversation:not([hidden])) #send{border:1px solid var(--skin-accent);border-bottom:3px solid color-mix(in srgb,var(--skin-button) 65%,#000);border-radius:7px 2px 7px 2px;padding-inline:24px;font-weight:800;box-shadow:0 0 18px color-mix(in srgb,var(--skin-accent) 28%,transparent)}
html:is([data-fairystack-skin="night-city"],[data-fairystack-skin="spectrum"]) body:has(#conversation:not([hidden])) #enqueue{border-color:var(--city-orange);color:var(--city-orange);box-shadow:inset 0 -2px color-mix(in srgb,var(--city-orange) 30%,transparent)}
html:is([data-fairystack-skin="night-city"],[data-fairystack-skin="spectrum"]) #voice-feed{border-color:var(--city-violet);color:var(--city-violet)}
html:is([data-fairystack-skin="night-city"],[data-fairystack-skin="spectrum"]) #composer-options-open{border-color:var(--city-gold);color:var(--city-gold)}
html:is([data-fairystack-skin="night-city"],[data-fairystack-skin="spectrum"]) body:has(#conversation:not([hidden])) :is(#send,#enqueue,#voice-feed,button):disabled{background:var(--skin-raised);color:var(--skin-muted);box-shadow:none;opacity:1}
html[data-fairystack-skin="spectrum"] #session-tabs :is(.session-tab,.session-tab>:is(button,a):first-child){border-radius:0}
html[data-fairystack-skin="spectrum"] #composer-frame{border:2px solid transparent;border-radius:4px;background:linear-gradient(var(--skin-panel),var(--skin-panel)) padding-box,var(--spectrum) border-box}
html[data-fairystack-skin="spectrum"] #composer-header{border-radius:0;gap:8px}
html[data-fairystack-skin="spectrum"] #send{letter-spacing:.06em;font-family:ui-monospace,monospace}
@media(max-width:620px){html:is([data-fairystack-skin="night-city"],[data-fairystack-skin="spectrum"]) body:has(#conversation:not([hidden])) #send{padding-inline:12px}}

/* Badge borders now own composer metadata boundaries. */
html[data-fairystack-skin="spectrum"] #composer-header :is(#session-account,#current-app,#session-speed,#composer-model,#background-work-trigger,#composer-status,#composer-session-reference)::before{content:none}
html[data-fairystack-skin="spectrum"] #composer-header :is(#session-account,#current-app,#session-speed,#composer-model,#background-work-trigger,#composer-status,#composer-session-reference){margin-inline-start:0}
html[data-fairystack-skin="spectrum"] .message.assistant article.message-decoration :is(p,li,h1,h2,h3){background-image:var(--rainbow-ink);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
html[data-fairystack-skin="spectrum"] .message.assistant article .text-run{-webkit-text-fill-color:currentColor}
@media(forced-colors:active){html[data-fairystack-skin="spectrum"] .message.assistant article.message-decoration :is(p,li,h1,h2,h3){background-image:none;-webkit-text-fill-color:CanvasText}}
@media print{html[data-fairystack-skin="spectrum"] .message.assistant article.message-decoration :is(p,li,h1,h2,h3){background-image:none;-webkit-text-fill-color:#000}}

/* 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-fairystack-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-fairystack-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-fairystack-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-fairystack-skin] #surface-view[data-surface="studio"]{background:transparent}
html[data-fairystack-skin] #surface-view[data-surface="apps"] :is(.app,.app-favicon,.app-fallback,.app-actions,.instances,.instances a){border-color:var(--skin-line);border-radius:var(--skin-radius);box-shadow:none}
html[data-fairystack-skin] #surface-view[data-surface="apps"] .app{background:var(--skin-panel);color:var(--skin-ink)}
html[data-fairystack-skin] #surface-view[data-surface="apps"] :is(.app-actions,.instances,.instances a,.app-favicon){background:var(--skin-raised);color:var(--skin-ink)}
html[data-fairystack-skin] #surface-view[data-surface="apps"] :is(.app-name,.instances a){color:var(--skin-accent)}
html[data-fairystack-skin] #surface-view[data-surface="apps"] :is(.app-fallback,.app-actions button,.app-actions .open-app){background:var(--skin-button);color:var(--skin-button-ink);border-color:var(--skin-line);border-radius:var(--skin-radius)}
html[data-fairystack-skin] #surface-view[data-surface="apps"] .app-actions .delete-app{background:var(--skin-panel);color:var(--skin-bad);border-color:var(--skin-bad)}
html[data-fairystack-skin] #surface-view[data-surface="apps"] .app-actions button:disabled{background:var(--skin-raised);color:var(--skin-muted);border-color:var(--skin-line);opacity:1}
html[data-fairystack-skin] #surface-view[data-surface="apps"] :is(input,select,.directory,.app-actions button,.app-actions .open-app):focus-visible{outline:2px solid var(--skin-accent);outline-offset:2px}
html[data-fairystack-skin] #surface-view[data-surface="backups"] :is(.backup-instrument,.history,.flow-node,.stage-detail,.recovery-run){border-radius:var(--skin-radius)}
html[data-fairystack-skin] .onboarding-workbench{--ob-bg:var(--skin-panel);--ob-ink:var(--skin-ink);--ob-muted:var(--skin-muted);--ob-line:var(--skin-line);--ob-accent:var(--skin-accent);--ob-selected:var(--skin-selected);--ob-danger:var(--skin-bad);--ob-warning:var(--skin-warn);border-radius:var(--skin-radius)}
html[data-fairystack-skin] .trial-usage{--usage-bg:var(--skin-panel);--usage-ink:var(--skin-ink);--usage-muted:var(--skin-muted);--usage-line:var(--skin-line);--usage-selected:var(--skin-selected)}
html[data-fairystack-skin] :is(.architecture-model-mount,.architecture-model,.session-store-inspector,.session-store-inspector-loading,.session-store-inspector-error){--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)}
html[data-fairystack-skin] .architecture-model-failure{background:var(--skin-panel);color:var(--skin-bad);border-color:var(--skin-bad)}
html[data-fairystack-skin] #surface-view[data-surface="feature-ledger"] .ledger .loc-count{border-color:color-mix(in srgb,var(--skin-bad) var(--loc-heat),var(--skin-line));background:color-mix(in srgb,var(--skin-bad-bg) var(--loc-heat),var(--skin-panel));color:var(--skin-ink)}

/* Overlay scrollbars consume no layout width: keep the rainbow edge outside their lane. */
html[data-fairystack-skin="spectrum"]{--console-inline-gutter:max(16px,env(safe-area-inset-left),env(safe-area-inset-right))}
/* The recorded-submission dialog pins its own palette; under a skin it wears the skin's. */
html[data-fairystack-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)}
html[data-fairystack-skin] #runtime-instructions .instructions-view{--json-surface:var(--skin-raised)}
