/* Shared semantic colors. Explicit modes are resolved before the first paint. */
:root{--ct-surface:#ffffff;--ct-bg:#f1f8f4;--ct-soft:#eaf5ee;--ct-text:#163c30;--ct-muted:#4e695c;--ct-line:#bacfc3;--ct-primary:#087f61;--ct-on:#ffffff;--ct-danger:#aa2037;--ct-danger-soft:#fff0f2;--ct-focus:#087f61;--ct-disabled:#e0e9e3;--ct-disabled-text:#52675b}
:root[data-theme=dark]{--ct-surface:#123127;--ct-bg:#091f18;--ct-soft:#1b3f2e;--ct-text:#e7f6ed;--ct-muted:#b8cfc1;--ct-line:#557461;--ct-primary:#76dcb7;--ct-on:#07281b;--ct-danger:#ffb2bf;--ct-danger-soft:#512630;--ct-focus:#91efd0;--ct-disabled:#263e32;--ct-disabled-text:#b2c5b9}
/* Removing a gradient must leave a real background behind the primary label. */
.site-design.admin-body button{background-color:var(--sd-accent,var(--ct-primary));color:var(--sd-on,var(--ct-on))}
.site-design.admin-body button.danger{background:var(--ct-danger-soft)!important;color:var(--ct-danger)!important;border:1px solid var(--ct-danger)!important}
.site-design.admin-body #confirmAccept{background:var(--sd-accent,var(--ct-primary))!important;color:var(--sd-on,var(--ct-on))!important;border:1px solid var(--sd-accent,var(--ct-primary))!important}
body.site-design.admin-body .confirm-dialog{background:var(--sd-surface,var(--ct-surface))!important;color:var(--sd-text,var(--ct-text))!important;border:1px solid var(--sd-line,var(--ct-line))!important}
body.site-design.admin-body .confirm-dialog p{color:var(--sd-muted,var(--ct-muted))!important}
/* Inactive and disabled controls stay legible; hidden controls remain hidden. */
body :is(button,.button,.btn):is(:disabled,[aria-disabled=true]){opacity:1!important;filter:none!important;background:var(--ct-disabled)!important;color:var(--ct-disabled-text)!important;border-color:var(--ct-line)!important;box-shadow:none!important;cursor:not-allowed}
body :is(button,.button,.btn,[role=button]):focus-visible{outline:3px solid var(--ct-focus)!important;outline-offset:3px}
body :is(button,.button,.btn):not(:disabled):not([aria-disabled=true]):hover{filter:brightness(.94)}
:root[data-theme=dark] body :is(button,.button,.btn):not(:disabled):not([aria-disabled=true]):hover{filter:brightness(1.08)}
/* Workspace login screens used hard-coded white cards and input colors. */
body.wu-admin-login{background:var(--ct-bg)!important;color:var(--ct-text)!important}
body.wu-portal .wu-login-card{background:var(--ct-surface)!important;color:var(--ct-text)!important;border-color:var(--ct-line)!important}
body.wu-portal .wu-login-visual h1{color:var(--ct-text)!important}
body.wu-portal .wu-login-visual p,body.wu-portal .wu-login-card :is(label,.muted){color:var(--ct-muted)!important}
body.wu-portal .wu-login-card input:not([type=checkbox]):not([type=radio]){background:var(--ct-surface)!important;color:var(--ct-text)!important;border-color:var(--ct-line)!important}
body.wu-portal .wu-login-card button.primary{background:var(--ct-primary)!important;color:var(--ct-on)!important;border:1px solid var(--ct-primary)!important}
body.wu-portal .wu-login-card .login-error{color:var(--ct-danger)!important}
#globalTheme{font:inherit;min-height:42px;max-width:150px;border:1px solid var(--ct-line);border-radius:10px;padding:8px 11px;background:var(--ct-surface);color:var(--ct-text)}
.wu-admin-login>header #globalTheme{margin-left:auto}
/* News administration also participates in the same saved/system theme. */
body.news-admin-page{background:var(--ct-bg);color:var(--ct-text);--bg:var(--ct-bg);--card:var(--ct-surface);--soft:var(--ct-soft);--text:var(--ct-text);--muted:var(--ct-muted);--line:var(--ct-line);--accent:var(--ct-primary);--white:var(--ct-on);--danger:var(--ct-danger)}
body.news-admin-page .top{flex-wrap:wrap}
body.news-admin-page .tools{flex-wrap:wrap;gap:10px}
body.news-admin-page button.danger{background:var(--ct-danger-soft);color:var(--ct-danger);border-color:var(--ct-danger)}
@media(max-width:760px){body :is(button,.button,.btn):not(.admin-color-swatch):not(.admin-color-close):not([data-photo-index]):not(.drawer-close){touch-action:manipulation}body.news-admin-page .tools{width:100%}body.news-admin-page .tools>*{flex:1 1 auto}body.news-admin-page .row{flex-wrap:wrap;gap:12px}body.news-admin-page .news-admin-layout{grid-template-columns:minmax(0,1fr)}.wu-admin-login>header{flex-wrap:wrap}}
.site-design.admin-body #confirmAccept.danger{background:var(--ct-danger-soft)!important;color:var(--ct-danger)!important;border-color:var(--ct-danger)!important}
:root:not([data-theme=dark]) body.site-design{--sd-accent:var(--commercial-primary,var(--ct-primary));--sd-on:var(--sd-brand-on,var(--ct-on))}
@media(max-width:760px){body.site-design.admin-body button:not(.admin-color-popover button){min-height:44px!important}}
/* Legacy public gradients faded to mint beneath white labels. Keep drawer links plain. */
body.site-design.front-body button:not(.ghost):not(.danger):not(:where(#sideMenu button)){background-color:var(--sd-accent,var(--ct-primary));background-image:none;color:var(--sd-on,var(--ct-on))}
body.site-design.sd-portal #modal>.close{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;padding:0!important;display:grid;place-items:center}
body.wu-portal .wu-login-card .wu-auth-tabs button{background:transparent!important;color:var(--ct-muted)!important;border-color:var(--ct-line)!important}
body.wu-portal .wu-login-card .wu-auth-tabs button.active{background:var(--ct-soft)!important;color:var(--ct-text)!important;border-color:var(--ct-primary)!important}
body.site-design.front-body #floatingSupport .headset-caption{background:var(--sd-accent,var(--ct-primary))!important;color:var(--sd-on,var(--ct-on))!important}

body.news-page{background:var(--ct-bg);color:var(--ct-text)}
.news-page :is(.news-top,.news-card,.news-article,.news-empty){background:var(--ct-surface);color:var(--ct-text);border-color:var(--ct-line)}
.news-page :is(.news-hero,.news-footer){border-color:var(--ct-line)}
.news-page :is(.news-hero p,.news-card p,.news-card time,.news-article time,.news-summary,.news-footer){color:var(--ct-muted)}
.news-page :is(.news-top nav a[aria-current],.news-card span,.news-back){color:var(--ct-primary)!important}
.news-page .news-cover-empty{background:var(--ct-soft);color:var(--ct-primary)}
.news-page .news-summary{border-color:var(--ct-primary)}
.news-page .news-top nav{flex-wrap:wrap;align-items:center;gap:12px 20px}
.news-page :is(.news-back,.news-pagination a,.news-top nav a){min-height:44px;display:inline-flex;align-items:center}
