/* One semantic contract. Both themes define every interactive color family.
 * Text/border/soft/solid/on-solid are intentionally paired; no automatic invert.
 */
:root,[data-theme="light"] {
 color-scheme: light;
 --canvas:#f6f8f5; --surface:#ffffff; --surface-raised:#ffffff; --surface-alt:#edf3ed;
 --text:#162b23; --muted:#52685c; --subtle:#68796e; --border:#dce5dd; --border-strong:#839789;
 --primary:#086448; --primary-hover:#054d37; --primary-active:#033b2a; --on-primary:#ffffff;
 --primary-soft:#e5f3e9; --primary-text:#075538; --primary-border:#a4cdb2;
 --secondary:#dceee0; --secondary-hover:#c9e3d0; --on-secondary:#164e32;
 --info:#245cba; --info-hover:#194a9a; --on-info:#ffffff; --info-soft:#edf3fe; --info-text:#23519c; --info-border:#b0c7ec;
 --success:#226a41; --success-hover:#185431; --on-success:#ffffff; --success-soft:#eaf6ed; --success-text:#205b37; --success-border:#a3cbaf;
 --warning:#80550c; --warning-hover:#674309; --on-warning:#ffffff; --warning-soft:#fff5de; --warning-text:#76500d; --warning-border:#d8bb74;
 --danger:#b83243; --danger-hover:#962737; --on-danger:#ffffff; --danger-soft:#fff0f1; --danger-text:#a72b3d; --danger-border:#e7b0b8;
 --accent:#9a6514; --accent-hover:#7d500d; --on-accent:#ffffff; --accent-soft:#f8efd7; --accent-text:#775110; --accent-border:#d8bb75;
 --neutral:#52685c; --on-neutral:#ffffff; --neutral-soft:#edf1ee; --neutral-text:#526057; --neutral-border:#c3cfc6;
 --focus:#1269c1; --selection:#bfe6cb; --selection-text:#103b24;
 --overlay:rgb(9 26 19 / .57); --shadow:0 8px 32px rgb(15 48 30 / .065); --shadow-lg:0 22px 70px rgb(13 40 26 / .16);
 --tooltip-bg:#1b3228; --tooltip-text:#ffffff; --skeleton:#e6ece6; --skeleton-shine:#f6f9f5;
 --scrollbar:#91a698; --scrollbar-hover:#607e6a; --disabled-bg:#e9eeea; --disabled-text:#6c7d70;
 --hero:#0b4e38; --hero-deep:#073a2a; --hero-text:#f5fff7; --hero-muted:#c5e2cf; --hero-line:rgb(201 236 209 / .24);
 --hero-accent:#d6edbc; --hero-card:#ffffff; --hero-card-text:#18392a; --hero-card-muted:#536e5e;
 --hero-chip:#e7f2e9; --hero-chip-text:#23523b; --hero-card-border:#dceadf;
 --footer:#eef3ed;
 --radius-sm:.65rem; --radius:1rem; --radius-lg:1.5rem; --radius-xl:2rem;
 --gutter:clamp(1.125rem,4vw,3.25rem); --max-width:80rem; --header-height:4.5rem;
 --font:Inter,"Segoe UI",Arial,sans-serif; --ease:cubic-bezier(.2,.75,.25,1); --transition:180ms var(--ease);
}
[data-theme="dark"] {
 color-scheme:dark;
 --canvas:#0f1c16; --surface:#17271f; --surface-raised:#1d3027; --surface-alt:#21372b;
 --text:#ecf4ed; --muted:#b4c7b8; --subtle:#9cb2a2; --border:#344d3d; --border-strong:#6f8b78;
 --primary:#83d9ad; --primary-hover:#a2e8c4; --primary-active:#bcedd0; --on-primary:#092b1c;
 --primary-soft:#233f2e; --primary-text:#a1e4bd; --primary-border:#487b58;
 --secondary:#2b4937; --secondary-hover:#385e46; --on-secondary:#c6ecd0;
 --info:#92beff; --info-hover:#b1d0ff; --on-info:#112e54; --info-soft:#1b324b; --info-text:#b0d2ff; --info-border:#486f9f;
 --success:#8ed6a5; --success-hover:#a6e6bc; --on-success:#102f1b; --success-soft:#213c29; --success-text:#a3e3b6; --success-border:#487853;
 --warning:#f0c56e; --warning-hover:#ffda8d; --on-warning:#392900; --warning-soft:#3e321b; --warning-text:#f3d493; --warning-border:#8d7040;
 --danger:#ff9aa6; --danger-hover:#ffb5be; --on-danger:#471523; --danger-soft:#42242c; --danger-text:#ffb0ba; --danger-border:#985660;
 --accent:#e3c386; --accent-hover:#f3d6a4; --on-accent:#35250b; --accent-soft:#3a321f; --accent-text:#e9cfa0; --accent-border:#837247;
 --neutral:#b8cbbc; --on-neutral:#203427; --neutral-soft:#2a3c30; --neutral-text:#c1d2c4; --neutral-border:#516d58;
 --focus:#a7d1ff; --selection:#466d51; --selection-text:#ffffff;
 --overlay:rgb(0 9 5 / .76); --shadow:0 8px 32px rgb(0 0 0 / .12); --shadow-lg:0 22px 70px rgb(0 0 0 / .35);
 --tooltip-bg:#e6f2e8; --tooltip-text:#162e1d; --skeleton:#2a3d2f; --skeleton-shine:#3a4f3f;
 --scrollbar:#526e5b; --scrollbar-hover:#89a990; --disabled-bg:#2a3a2e; --disabled-text:#91a497;
 --hero:#123d2c; --hero-deep:#0a2c1f; --hero-text:#f1faf2; --hero-muted:#bed7c5; --hero-line:rgb(187 224 197 / .21);
 --hero-accent:#d3eabb; --hero-card:#203c2d; --hero-card-text:#edf8ef; --hero-card-muted:#b2c9b8;
 --hero-chip:#314d3a; --hero-chip-text:#c9ebd1; --hero-card-border:#40644b;
 --footer:#14251b;
}
@supports (width:1svw) { :root { --gutter:clamp(1.125rem,4svw,3.25rem); } }
