/* ORATOR UI foundations · P56 · identical distribution copies.
   Canonical contract: docs/ORATOR_DESIGN_SYSTEM/UI_PASSPORT.md.
   Do not redefine application state colours here. */
:root {
 --orator-ui-accent:#F5A04F; --orator-ui-radius-icon:14px;
 --orator-ui-radius-text:999px; --orator-ui-control-sm:30px;
 --orator-ui-scroll-track:#07111D; --orator-ui-scroll-thumb:#52657A;
 --orator-ui-scroll-hover:#6D8198;
}
html[data-theme="light"] {
 --orator-ui-scroll-track:#F0EEE9; --orator-ui-scroll-thumb:#9AA8B7;
 --orator-ui-scroll-hover:#7F8FA0;
 --orator-ui-platinum:linear-gradient(128deg,#fffdf9 0%,#f8f7f4 18%,#eeede9 35%,#e4e3df 51%,#f0efeb 68%,#faf9f6 84%,#f4f3ef 100%);
}
/* Bare theme glyph, not a lifting button. Focus/hit area remain accessible. */
html[data-theme] body :is(button.theme-toggle,#roomView button[data-buddy-theme-proxy]),
html[data-theme] body :is(button.theme-toggle,#roomView button[data-buddy-theme-proxy]):is(:hover,:active,:focus) {
 width:44px!important; min-width:44px!important; height:44px!important; min-height:44px!important;
 flex:0 0 44px!important; padding:0!important; display:inline-grid; place-items:center;
 border:0!important; border-radius:8px!important; background:transparent!important;
 box-shadow:none!important; transform:none!important; filter:none!important;
 color:var(--muted-strong,var(--text-soft,var(--muted,#9caec3)))!important;
 transition:color .2s ease; -webkit-tap-highlight-color:transparent;
}
html[data-theme] body :is(button.theme-toggle,#roomView button[data-buddy-theme-proxy])::before,
html[data-theme] body :is(button.theme-toggle,#roomView button[data-buddy-theme-proxy])::after {content:none!important}
html[data-theme] body :is(button.theme-toggle,#roomView button[data-buddy-theme-proxy]):is(:hover,:focus-visible){color:var(--orator-ui-accent)!important}
html[data-theme] body :is(button.theme-toggle,#roomView button[data-buddy-theme-proxy]):focus-visible{outline:2px solid var(--orator-ui-accent)!important;outline-offset:0!important}
html[data-theme] body :is(button.theme-toggle,#roomView button[data-buddy-theme-proxy]) svg{width:20px!important;height:20px!important;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
html[data-theme] body :is(button.theme-toggle,#roomView button[data-buddy-theme-proxy]) [data-theme-icon]{display:grid;place-items:center}
html[data-theme="dark"] .orator-theme-moon,html[data-theme="light"] .orator-theme-sun{display:none!important}
/* Standard scrollbar in Firefox, rounded 10/6px gutter where WebKit styling is available.
   Chromium otherwise prioritises scrollbar-width/color over its rounded pseudo-elements. */
html,body *{scrollbar-width:thin;scrollbar-color:var(--orator-ui-scroll-thumb) var(--orator-ui-scroll-track)}
@supports selector(::-webkit-scrollbar){
 html,body *{scrollbar-width:auto;scrollbar-color:auto}
 html::-webkit-scrollbar,body *::-webkit-scrollbar{width:10px;height:10px}
 html::-webkit-scrollbar-track,body *::-webkit-scrollbar-track{background:var(--orator-ui-scroll-track);border-radius:999px}
 html::-webkit-scrollbar-thumb,body *::-webkit-scrollbar-thumb{min-height:32px;border:2px solid var(--orator-ui-scroll-track);border-radius:999px;background:var(--orator-ui-scroll-thumb);background-clip:padding-box}
 html::-webkit-scrollbar-thumb:hover,body *::-webkit-scrollbar-thumb:hover{background:var(--orator-ui-scroll-hover);background-clip:padding-box}
 html::-webkit-scrollbar-corner,body *::-webkit-scrollbar-corner{background:var(--orator-ui-scroll-track)}
}
@media(prefers-reduced-motion:reduce){html[data-theme] body :is(button.theme-toggle,#roomView button[data-buddy-theme-proxy]){transition:none}}
@media(forced-colors:active){
 html,body *{scrollbar-color:auto!important;scrollbar-width:auto!important}
 html[data-theme] body :is(button.theme-toggle,#roomView button[data-buddy-theme-proxy]){color:ButtonText!important}
 html[data-theme] body :is(button.theme-toggle,#roomView button[data-buddy-theme-proxy]):focus-visible{outline-color:Highlight!important}
}

/* P62 · owner-approved Account Hub theme rail.
   Theme lives inside Account Hub only; the two explicit choices replace the former
   duplicate topbar glyph/toggle. Keep these bytes identical in all three web copies. */
.orator-theme-rail{
 display:inline-grid;grid-template-columns:repeat(2,28px);gap:3px;justify-self:end;
 padding:3px;border:1px solid var(--line,var(--line-strong,rgba(255,255,255,.12)));
 border-radius:9px;background:var(--surface-2,var(--panel-3,rgba(255,255,255,.035)));
}
.orator-theme-choice{
 width:28px;height:28px;padding:0;border:0;border-radius:7px;background:transparent;
 color:var(--muted-strong,var(--text-soft,var(--muted,#9caec3)));display:grid;place-items:center;
 cursor:pointer;box-shadow:none;transform:none;transition:background-color .16s ease,color .16s ease;
}
.orator-theme-choice:hover,.orator-theme-choice:focus-visible{
 color:var(--orator-ui-accent);background:color-mix(in srgb,var(--orator-ui-accent) 10%,transparent);
}
.orator-theme-choice:focus-visible{outline:2px solid var(--orator-ui-accent);outline-offset:1px}
.orator-theme-choice[aria-pressed="true"]{background:var(--orator-ui-accent);color:#241805}
.orator-theme-choice svg{
 width:17px!important;height:17px!important;fill:none;stroke:currentColor;stroke-width:1.7;
 stroke-linecap:round;stroke-linejoin:round;
}
@media(prefers-reduced-motion:reduce){.orator-theme-choice{transition:none}}
@media(forced-colors:active){
 .orator-theme-choice{border:1px solid ButtonText;background:ButtonFace;color:ButtonText}
 .orator-theme-choice[aria-pressed="true"]{background:Highlight;color:HighlightText}
}

