:root{
/* --- Neutrals: warm charcoal ramp derived from the logotype black #231F20 --- */
--ink-950:#141112;--ink-900:#231F20;--ink-800:#2F2B2C;--ink-700:#3C3738;--ink-600:#514B4C;--ink-500:#6A6364;--ink-400:#8B8385;--ink-300:#ADA6A7;--ink-200:#CDC7C7;--ink-100:#E5E1E0;--ink-050:#F2EFEE;
--paper:#FAF9F7;--white:#FFFFFF;
/* --- Brand orange: sampled from the SECAM logotype (#F79233). The single accent. --- */
--brand-050:#FEF4E8;--brand-100:#FCE4C8;--brand-300:#FBC489;--brand-400:#F9A855;--brand-500:#F79233;--brand-600:#DE7714;--brand-700:#A9550A;--brand-800:#7A3D07;
/* --- IR red: live / recording / alarm only. Crimson, kept clear of the brand orange. --- */
--ir-400:#F04A5E;--ir-500:#DE1B34;--ir-600:#B00F26;
/* --- Support semantics (used sparingly, status and data only) --- */
--ok-500:#2F7D53;--ok-050:#E9F3EC;
--warn-500:#C99A06;--warn-050:#FAF2DC;
--steel-500:#2A6BC7;--steel-050:#E9F0FB;

/* --- Semantic aliases: use these in components --- */
--text-primary:var(--ink-900);--text-secondary:var(--ink-600);--text-muted:var(--ink-400);--text-inverse:var(--paper);--text-inverse-muted:var(--ink-300);--text-accent:var(--brand-700);
--surface-page:var(--paper);--surface-card:var(--white);--surface-sunken:var(--ink-050);--surface-inverse:var(--ink-900);--surface-inverse-2:var(--ink-800);--surface-accent:var(--brand-500);
--border-hairline:rgba(35,31,32,.14);--border-hairline-2:rgba(35,31,32,.08);--border-strong:var(--ink-900);--border-inverse:rgba(250,249,247,.18);--border-accent:var(--brand-600);
--accent:var(--brand-500);--accent-hover:var(--brand-400);--accent-press:var(--brand-600);--accent-ink:var(--ink-900);
--live:var(--ir-500);
--logotype-ink:var(--brand-600);
--focus-ring:var(--ink-900);--focus-ring-inverse:var(--brand-400);
--overlay-scrim:rgba(20,17,18,.62);
/* Duotone treatment for photography (charcoal shadows, paper highlights) */
--duotone-shadow:var(--ink-900);--duotone-highlight:var(--ink-200);
}
/* Inverse scope: any dark section. Put class="secam-dark" on the wrapper. */
.secam-dark{--text-primary:var(--paper);--text-secondary:var(--ink-300);--text-muted:var(--ink-400);--text-inverse:var(--ink-900);--surface-page:var(--ink-900);--surface-card:var(--ink-800);--surface-sunken:var(--ink-800);--border-hairline:rgba(250,249,247,.16);--border-hairline-2:rgba(250,249,247,.08);--border-strong:var(--paper);--focus-ring:var(--brand-400);--text-accent:var(--brand-400);--logotype-ink:var(--brand-500);color:var(--text-primary);background:var(--surface-page)}
