/* Shared accessible palette. Selection is set before the first paint. */
:root,html[data-theme=light]{color-scheme:light;--ui-bg:#f3f6fa;--ui-panel:#ffffff;--ui-raised:#eaf0f7;--ui-soft:#f7f9fc;--ui-text:#172b41;--ui-muted:#4b6075;--ui-border:#b9c9d8;--ui-accent:#006c95;--ui-button:#006c95;--ui-button-text:#ffffff;--ui-success:#146745;--ui-success-bg:#e5f5ed;--ui-warning:#795100;--ui-warning-bg:#fff2d8;--ui-danger:#a52a37;--ui-danger-bg:#fce9ed;--ui-info:#175f96;--ui-info-bg:#e6f1ff;--ui-shadow:0 12px 32px #152e4710}
html[data-theme=dark]{color-scheme:dark;--ui-bg:#101722;--ui-panel:#192535;--ui-raised:#24354b;--ui-soft:#14202f;--ui-text:#eef4fb;--ui-muted:#b2c2d3;--ui-border:#455b73;--ui-accent:#75d6f3;--ui-button:#167a9f;--ui-button-text:#ffffff;--ui-success:#86e1b4;--ui-success-bg:#173b30;--ui-warning:#f8d183;--ui-warning-bg:#3e331d;--ui-danger:#ffb1b8;--ui-danger-bg:#3b2530;--ui-info:#a1ceff;--ui-info-bg:#1a354f;--ui-shadow:0 12px 32px #0003}
html[data-theme]{--bg:var(--ui-bg);--panel:var(--ui-panel);--panel-2:var(--ui-raised);--panel-3:var(--ui-soft);--text:var(--ui-text);--muted:var(--ui-muted);--line:var(--ui-border);--border:var(--ui-border);--accent:var(--ui-accent);--accent-2:var(--ui-button);--warn:var(--ui-warning);--danger:var(--ui-danger);--blue:var(--ui-info);--obise-bg:var(--ui-bg);--obise-panel:var(--ui-panel);--obise-raised:var(--ui-raised);--obise-line:var(--ui-border);--obise-text:var(--ui-text);--obise-muted:var(--ui-muted);--obise-accent:var(--ui-accent)}
html[data-theme] body{background:var(--ui-bg);color:var(--ui-text)}
.theme-choice{display:inline-flex;align-items:center;gap:6px;color:var(--ui-muted);font:600 12px/1.3 system-ui,sans-serif;white-space:nowrap;flex-shrink:0}
.theme-choice>svg{width:17px;height:17px;flex-shrink:0}
html[data-theme] .theme-choice select{width:auto;min-height:34px;max-width:135px;padding:5px 22px 5px 8px;border:1px solid var(--ui-border);border-radius:7px;background:var(--ui-panel);color:var(--ui-text);font:600 12px/1.3 system-ui,sans-serif;cursor:pointer}
html[data-theme] :is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid var(--ui-accent);outline-offset:3px}
html[data-theme] :is(input,textarea)::placeholder{color:var(--ui-muted);opacity:1}
.brand-graphic{display:inline-block;flex-shrink:0;line-height:0}.brand-graphic img{display:block;width:100%;height:100%;object-fit:contain}
.brand-graphic .logo-for-dark{display:none}html[data-theme=dark] .brand-graphic .logo-for-light{display:none}html[data-theme=dark] .brand-graphic .logo-for-dark{display:block}
html[data-theme] .obise-player{color:var(--ui-text);background:var(--ui-panel);border-color:var(--ui-border);--op-ink:var(--ui-text);--op-accent:var(--ui-accent)}
html[data-theme] .op-controls{background:var(--ui-panel);color:var(--ui-text);border-color:var(--ui-border)}
html[data-theme] .op-controls button{color:var(--ui-text);background:transparent}
html[data-theme] .op-controls button:is(:hover,.selected){background:var(--ui-raised);color:var(--ui-accent)}
html[data-theme] .op-modes{border-color:var(--ui-border)}
html[data-theme] .op-progress input{accent-color:var(--ui-button)}
html[data-theme] :is(.op-flyout-panel,.weather-panel,.nearby-panel){background:var(--ui-panel);color:var(--ui-text);border-color:var(--ui-border);box-shadow:var(--ui-shadow)}
html[data-theme] :is(.nearby-panel-head,.weather-main){border-color:var(--ui-border)}
html[data-theme] .nearby-panel-head button{background:var(--ui-raised);color:var(--ui-text)}
html[data-theme] .nearby-panel a{background:var(--ui-panel);color:var(--ui-text)}
html[data-theme] .nearby-panel a:hover{background:var(--ui-raised)}
html[data-theme] :is(.weather-content,.weather-current-text,.weather-main strong,.weather-temp,.weather-stat,.weather-stat strong){color:var(--ui-text)}
html[data-theme] .weather-stat{background:var(--ui-soft);border-color:var(--ui-border)}
html[data-theme] :is(.weather-content small,.weather-stat small,.nearby-panel small){color:var(--ui-muted)}
html[data-theme] .weather-content a{color:var(--ui-accent);text-decoration:underline}
html[data-theme] .weather-condition-icon{background:var(--ui-raised);color:var(--ui-accent)}
html[data-theme] .weather-stat>.weather-value-icon{color:var(--ui-accent)}
html[data-theme] .op-timelapse-note{color:var(--ui-muted);background:var(--ui-panel)}
/* Native customer banner colors and photo/status artwork remain independent. */
html[data-theme] .op-message{color:#fff;background:#0a101a}
html[data-theme] .op-message>strong{color:#fff}html[data-theme] .op-message>p{color:#e0e7f0}
html[data-theme] .op-message button{color:#fff;background:#172536;border-color:#8ba9c3}
html[data-theme] .op-state-active .op-status{background:#101926;color:#e1ebf5;border-color:#627b95}
.op-controls .theme-choice{margin-left:auto}.op-controls .theme-choice>svg{display:none}html[data-theme] .op-controls .theme-choice select{max-width:110px;min-height:30px;font-size:11px;padding-left:5px}
@media(max-width:600px){.theme-choice{gap:4px}.theme-choice>svg{display:none}html[data-theme] .theme-choice select{max-width:105px;font-size:11px}.op-controls{flex-wrap:wrap}}
@media print{html[data-theme] body{background:#fff;color:#172b41}.theme-choice{display:none!important}}

html.theme-changing *,html.theme-changing *:before,html.theme-changing *:after{transition:none!important}
html[data-theme] .nearby-panel-head{background:var(--ui-panel);color:var(--ui-text)}

html[data-theme] .op-banner-tool,html[data-theme] .op-banner-tool:hover{background:var(--banner-bg,#eef4f1);color:var(--banner-text,#153731)}
html[data-theme] .op-banner :is(.op-banner-line,.op-banner-datetime){color:var(--banner-text,#153731);opacity:1}
