/* Shared neutral surfaces and semantic colors; reusable by every application shell. */
:root,html[data-theme="light"] {
 color-scheme:light;
 --bg-page:#f4f5f7;
 --bg-surface:#ffffff;
 --bg-raised:#f9fafb;
 --border-color:#e4e7ec;
 --text-main:#101828;
 --text-muted:#475467;
 --text-subtle:#667085;
 --success:#16804a;
 --success-soft:#ecfdf3;
 --success-text:#067647;
 --warning:#eaaa08;
 --warning-soft:#fffaeb;
 --warning-text:#93370d;
 --danger:#d92d20;
 --danger-soft:#fef3f2;
 --danger-text:#b42318;
 --info:#1570ef;
 --info-soft:#eff8ff;
 --info-text:#175cd3;
 --on-danger:#ffffff;
 --overlay:rgb(0 0 0 / .55);
 --white:#ffffff;
 --transparent:transparent;
 --shadow-color:rgb(0 0 0 / .08);
}
/* Zero specificity: brand values come from the tenant, these are only fallbacks. */
:where(html) {
 --primary:#2563eb;
 --secondary:#0e7490;
 --accent:#7c3aed;
 --on-primary:#ffffff;
 --on-secondary:#ffffff;
 --on-accent:#ffffff;
 --primary-text:var(--primary);
}
html {
 --secondary-text:color-mix(in srgb,var(--secondary) 72%,var(--text-main));
 --accent-text:color-mix(in srgb,var(--accent) 72%,var(--text-main));
 --primary-soft:color-mix(in srgb,var(--primary) 10%,var(--bg-surface));
 --secondary-soft:color-mix(in srgb,var(--secondary) 12%,var(--bg-surface));
 --accent-soft:color-mix(in srgb,var(--accent) 12%,var(--bg-surface));
}
html[data-theme="dark"] {
 color-scheme:dark;
 --bg-page:#0c0e12;
 --bg-surface:#15181e;
 --bg-raised:#1d2129;
 --border-color:#39404d;
 --text-main:#f2f4f7;
 --text-muted:#b4bcc8;
 --text-subtle:#8a93a3;
 --success:#47cd89;
 --success-soft:#123226;
 --success-text:#75e0a7;
 --warning:#fec84b;
 --warning-soft:#392d16;
 --warning-text:#fedf89;
 --danger:#f97066;
 --danger-soft:#3b2021;
 --danger-text:#fda29b;
 --info:#53b1fd;
 --info-soft:#152d44;
 --info-text:#84caff;
 --on-danger:#101828;
 --overlay:rgb(0 0 0 / .55);
 --white:#ffffff;
 --transparent:transparent;
 --shadow-color:rgb(0 0 0 / .08);
}
/* Compatibility names resolve in the element's current theme and palette. */
:root {
 --bg-sidebar:var(--bg-surface);
 --bg-sidebar-hover:var(--bg-raised);
 --bg-sidebar-active:var(--primary);
 --text-sidebar:var(--text-muted);
 --text-sidebar-bright:var(--text-main);
 --border-focus:var(--primary);
 --primary-hover:var(--primary);
 --link:var(--primary-text);
 --text-on-primary:var(--on-primary);
 --admin-secondary:var(--secondary);
 --admin-accent:var(--accent);
 --admin-teal:var(--secondary-text);
 --pill-green:var(--success-text);
 --pill-orange:var(--warning-text);
 --pill-blue:var(--info-text);
 --pill-purple:var(--accent-text);
 --pill-red:var(--danger-text);
 --pill-grey:var(--text-muted);
 --danger-hover:var(--danger);
 --shadow-sm:0 1px 2px var(--shadow-color);
 --shadow-md:0 4px 6px var(--shadow-color);
 --shadow-lg:0 10px 15px var(--shadow-color);
}
dialog { background:var(--bg-surface); color:var(--text-main); }
/* Paper output never inherits a browser's dark surfaces. */
@media print {
 :root,html[data-theme="dark"],html[data-theme="light"] {
  color-scheme:light;
  --bg-page:#ffffff;
  --bg-surface:#ffffff;
  --bg-raised:#f9fafb;
  --border-color:#e4e7ec;
  --text-main:#101828;
  --text-muted:#475467;
  --text-subtle:#667085;
        --success-soft:#ecfdf3;
  --success-text:#067647;
  --warning-soft:#fffaeb;
  --warning-text:#93370d;
  --danger-soft:#fef3f2;
  --danger-text:#b42318;
  --info-soft:#eff8ff;
  --info-text:#175cd3;
 }
}
