/* i-do enterprise desk — v2 · GENERATED by build.py from tokens.json · do not edit */
/* Foundations: Saudi DGA "Platforms Code" 4.0.0 (tokens verified 2026-10-08).
   Deviation: primary = i-do blue #0b46be, not DGA primary-sa-flag #25935f. */

:root{
  /* ── primitives · DGA neutral & gray, verbatim ── */
  --neutral-25:#fcfcfd;
  --neutral-50:#f9fafb;
  --neutral-100:#f3f4f6;
  --neutral-200:#e5e7eb;
  --neutral-300:#d2d6db;
  --neutral-400:#9da4ae;
  --neutral-500:#6c727e;
  --neutral-600:#4d5761;
  --neutral-700:#384250;
  --neutral-800:#1f2a37;
  --neutral-900:#111927;
  --neutral-950:#0c111b;
  --gray-25:#fafafa;
  --gray-50:#f5f5f6;
  --gray-100:#f0f1f1;
  --gray-200:#ececed;
  --gray-300:#cecfd2;
  --gray-400:#94969c;
  --gray-500:#85888e;
  --gray-600:#61646c;
  --gray-700:#333741;
  --gray-800:#1f242f;
  --gray-900:#161b26;
  --gray-950:#0c111d;
  /* ── primitives · i-do primary on DGA's neutral lightness ladder ── */
  --primary-25:#fbfcff;
  --primary-50:#f7faff;
  --primary-100:#eef4ff;
  --primary-200:#dbe8ff;
  --primary-300:#c0d7ff;
  --primary-400:#70a1ff;
  --primary-500:#2c68e2;
  --primary-600:#0d48c0;
  --primary-700:#00339e;
  --primary-800:#001f69;
  --primary-900:#001247;
  --primary-950:#000b35;
  /* ── primitives · DGA semantic, verbatim — RESERVED for state ── */
  --error-25:#fffbfa;
  --error-50:#fef3f2;
  --error-100:#fee4e2;
  --error-200:#fecdca;
  --error-300:#fda29b;
  --error-400:#f97066;
  --error-500:#f04438;
  --error-600:#d92d20;
  --error-700:#b42318;
  --error-800:#912018;
  --error-900:#7a271a;
  --error-950:#55160c;
  --warning-25:#fffcf5;
  --warning-50:#fffaeb;
  --warning-100:#fef0c7;
  --warning-200:#fedf89;
  --warning-300:#fec84b;
  --warning-400:#fdb022;
  --warning-500:#f79009;
  --warning-600:#dc6803;
  --warning-700:#b54708;
  --warning-800:#93370d;
  --warning-900:#7a2e0e;
  --warning-950:#4e1d09;
  --success-25:#f6fef9;
  --success-50:#ecfdf3;
  --success-100:#dcfae6;
  --success-200:#abefc6;
  --success-300:#75e0a7;
  --success-400:#47cd89;
  --success-500:#17b26a;
  --success-600:#079455;
  --success-700:#067647;
  --success-800:#085d3a;
  --success-900:#074d31;
  --success-950:#053321;
  --info-25:#f5faff;
  --info-50:#eff8ff;
  --info-100:#d1e9ff;
  --info-200:#b2ddff;
  --info-300:#84caff;
  --info-400:#53b1fd;
  --info-500:#2e90fa;
  --info-600:#1570ef;
  --info-700:#175cd3;
  --info-800:#1849a9;
  --info-900:#194185;
  --info-950:#102a56;
  /* ── primitives · one accent per Super App — identity only, never state ── */
  --app-erp-25:#fbfcff;
  --app-erp-50:#f7faff;
  --app-erp-100:#eef4ff;
  --app-erp-200:#dbe8ff;
  --app-erp-300:#c0d7ff;
  --app-erp-400:#70a1ff;
  --app-erp-500:#2c68e2;
  --app-erp-600:#0d48c0;
  --app-erp-700:#00339e;
  --app-erp-800:#001f69;
  --app-erp-900:#001247;
  --app-erp-950:#000b35;
  --app-hr-25:#f9fdfd;
  --app-hr-50:#f4fcfb;
  --app-hr-100:#e9f8f6;
  --app-hr-200:#d4edea;
  --app-hr-300:#b5e0da;
  --app-hr-400:#71b1aa;
  --app-hr-500:#23827a;
  --app-hr-600:#00645d;
  --app-hr-700:#004c47;
  --app-hr-800:#00312d;
  --app-hr-900:#001e1c;
  --app-hr-950:#001513;
  --app-crm-25:#fcfcff;
  --app-crm-50:#faf9ff;
  --app-crm-100:#f4f2ff;
  --app-crm-200:#e7e3ff;
  --app-crm-300:#d7ceff;
  --app-crm-400:#a792ee;
  --app-crm-500:#7858ca;
  --app-crm-600:#5d39a9;
  --app-crm-700:#48248d;
  --app-crm-800:#2f0e64;
  --app-crm-900:#1e0445;
  --app-crm-950:#140531;
  --app-platform-25:#fbfcfe;
  --app-platform-50:#f8fafd;
  --app-platform-100:#f1f4f9;
  --app-platform-200:#e2e8f0;
  --app-platform-300:#cdd6e3;
  --app-platform-400:#98a5b7;
  --app-platform-500:#647389;
  --app-platform-600:#48576c;
  --app-platform-700:#354255;
  --app-platform-800:#1f2a39;
  --app-platform-900:#121925;
  --app-platform-950:#0c1119;
  --app-smartops-25:#f9fdff;
  --app-smartops-50:#f5fbff;
  --app-smartops-100:#e9f6ff;
  --app-smartops-200:#d0ecfe;
  --app-smartops-300:#afddfa;
  --app-smartops-400:#67acd6;
  --app-smartops-500:#007bae;
  --app-smartops-600:#005d84;
  --app-smartops-700:#004766;
  --app-smartops-800:#002d43;
  --app-smartops-900:#001c2b;
  --app-smartops-950:#001320;
  --app-events-25:#fdfbff;
  --app-events-50:#fbf9ff;
  --app-events-100:#f6f2ff;
  --app-events-200:#ebe1ff;
  --app-events-300:#ddcbff;
  --app-events-400:#af93de;
  --app-events-500:#805bb7;
  --app-events-600:#643d97;
  --app-events-700:#4e297c;
  --app-events-800:#331457;
  --app-events-900:#21093b;
  --app-events-950:#17072a;
  --app-secure-25:#fffbfb;
  --app-secure-50:#fff8f8;
  --app-secure-100:#fff0f1;
  --app-secure-200:#ffdee0;
  --app-secure-300:#ffc4c8;
  --app-secure-400:#ea7e8a;
  --app-secure-500:#c13953;
  --app-secure-600:#9e1038;
  --app-secure-700:#7d0028;
  --app-secure-800:#530018;
  --app-secure-900:#36000d;
  --app-secure-950:#290008;
  --app-agriculture-25:#f9fef9;
  --app-agriculture-50:#f4fdf5;
  --app-agriculture-100:#e9f9ec;
  --app-agriculture-200:#d3f0d8;
  --app-agriculture-300:#b5e4bd;
  --app-agriculture-400:#70b680;
  --app-agriculture-500:#218744;
  --app-agriculture-600:#00682d;
  --app-agriculture-700:#005021;
  --app-agriculture-800:#003313;
  --app-agriculture-900:#002009;
  --app-agriculture-950:#001705;
  --app-facility-25:#f9fef9;
  --app-facility-50:#f4fdf5;
  --app-facility-100:#e9f9ec;
  --app-facility-200:#d3f0d8;
  --app-facility-300:#b5e4bd;
  --app-facility-400:#70b680;
  --app-facility-500:#218744;
  --app-facility-600:#00682d;
  --app-facility-700:#005021;
  --app-facility-800:#003313;
  --app-facility-900:#002009;
  --app-facility-950:#001705;
  --app-visits-25:#fbfcff;
  --app-visits-50:#f8faff;
  --app-visits-100:#f1f3ff;
  --app-visits-200:#e0e6ff;
  --app-visits-300:#cbd3fc;
  --app-visits-400:#959fd9;
  --app-visits-500:#616bb1;
  --app-visits-600:#464e91;
  --app-visits-700:#343a77;
  --app-visits-800:#1f2253;
  --app-visits-900:#111438;
  --app-visits-950:#0b0e28;
  --app-property-25:#fffbfa;
  --app-property-50:#fff8f5;
  --app-property-100:#fff1ea;
  --app-property-200:#ffe0d0;
  --app-property-300:#fcc9b0;
  --app-property-400:#d8906b;
  --app-property-500:#ad5623;
  --app-property-600:#8a3b00;
  --app-property-700:#6b2c00;
  --app-property-800:#461a00;
  --app-property-900:#2d0e00;
  --app-property-950:#210900;
  --app-lending-25:#fefcf7;
  --app-lending-50:#fdfaf2;
  --app-lending-100:#faf4e5;
  --app-lending-200:#f1e6cd;
  --app-lending-300:#e5d4aa;
  --app-lending-400:#baa161;
  --app-lending-500:#8c6d01;
  --app-lending-600:#6a5200;
  --app-lending-700:#523e00;
  --app-lending-800:#342700;
  --app-lending-900:#211800;
  --app-lending-950:#181000;

  /* ── roles · the ONLY colours a component may name ── */
  --surface:#ffffff;
  --canvas:var(--neutral-50);
  --surface-sunken:var(--neutral-100);
  --text-primary:var(--neutral-900);
  --text-secondary:var(--neutral-600);
  --text-tertiary:var(--neutral-500);
  --text-on-fill:#ffffff;
  --border:var(--neutral-200);
  --border-strong:var(--neutral-300);
  --field-border:var(--neutral-500);
  --primary:var(--primary-600);
  --primary-hover:var(--primary-700);
  --primary-soft:var(--primary-50);
  --link:var(--primary-600);
  --link-visited:var(--primary-800);
  --focus:var(--primary-500);
  --band:var(--primary-100);
  --band-text:var(--neutral-900);
  --band-muted:var(--neutral-600);
  --band-focus:var(--primary-500);
  --footer-bg:var(--primary-900);
  --footer-text:#ffffff;
  --footer-muted:var(--primary-300);
  --footer-border:var(--primary-800);
  --footer-control:var(--primary-400);
  --footer-focus:#ffffff;
  --disc:var(--primary-600);
  --disc-icon:#ffffff;
  --disc-soft:var(--primary-100);
  --disc-soft-icon:var(--primary-600);
  --status-error-text:var(--error-700);
  --status-error-bg:var(--error-50);
  --status-error-icon:var(--error-600);
  --status-error-border:var(--error-200);
  --status-warning-text:var(--warning-700);
  --status-warning-bg:var(--warning-50);
  --status-warning-icon:var(--warning-600);
  --status-warning-border:var(--warning-200);
  --status-success-text:var(--success-700);
  --status-success-bg:var(--success-50);
  --status-success-icon:var(--success-600);
  --status-success-border:var(--success-200);
  --status-info-text:var(--info-700);
  --status-info-bg:var(--info-50);
  --status-info-icon:var(--info-600);
  --status-info-border:var(--info-200);
  /* accent defaults to primary; [data-app] rescopes it */
  --accent-25:var(--primary-25);
  --accent-50:var(--primary-50);
  --accent-100:var(--primary-100);
  --accent-200:var(--primary-200);
  --accent-300:var(--primary-300);
  --accent-400:var(--primary-400);
  --accent-500:var(--primary-500);
  --accent-600:var(--primary-600);
  --accent-700:var(--primary-700);
  --accent-800:var(--primary-800);
  --accent-900:var(--primary-900);
  --accent-950:var(--primary-950);

  /* ── type · IBM Plex Sans (DGA) + IBM Plex Sans Arabic (DGA names no Arabic face) ── */
  --font-sans:"IBM Plex Sans Arabic","IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --fw-regular:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700;
  --fs-display-2xl:4.5rem; --lh-display-2xl:5.625rem;   /* 72/90px */
  --fs-display-xl:3.75rem; --lh-display-xl:4.5rem;   /* 60/72px */
  --fs-display-lg:3rem; --lh-display-lg:3.75rem;   /* 48/60px */
  --fs-display-md:2.25rem; --lh-display-md:2.75rem;   /* 36/44px */
  --fs-display-sm:1.875rem; --lh-display-sm:2.375rem;   /* 30/38px */
  --fs-display-xs:1.5rem; --lh-display-xs:2rem;   /* 24/32px */
  --fs-text-xl:1.25rem; --lh-text-xl:1.875rem;   /* 20/30px */
  --fs-text-lg:1.125rem; --lh-text-lg:1.75rem;   /* 18/28px */
  --fs-text-md:1rem; --lh-text-md:1.5rem;   /* 16/24px */
  --fs-text-sm:0.875rem; --lh-text-sm:1.25rem;   /* 14/20px */
  --fs-text-xs:0.75rem; --lh-text-xs:1.125rem;   /* 12/18px */
  --fs-text-2xs:0.625rem; --lh-text-2xs:0.875rem;   /* 10/14px */
  --lh-text-sm-body:var(--lh-text-sm);   /* was 21px (#v2-001) — DGA verbatim now, Asmaa 2026-10-19 */
  /* DGA rule 8 — display tracking −2% is never applied to Arabic (breaks the joined script). */
  --tracking-display:-0.02em;

  /* ── space · DGA scale, 4px base (same base as v1) ── */
  --space-0:0px; --space-0-5:2px; --space-1:4px; --space-1-5:6px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px; --space-6:24px; --space-8:32px; --space-10:40px; --space-12:48px; --space-16:64px; --space-20:80px; --space-24:96px; --space-32:128px; --space-40:160px;
  /* ── radius · DGA values, monotonic subset (DGA 2xl/3xl are smaller than xl — not carried) ── */
  --radius-none:0; --radius-xs:2px; --radius-sm:4px; --radius-md:8px; --radius-lg:16px; --radius-xl:24px; --radius-full:9999px;
  /* component radii — Components Library (Figma), 2026-10-19 */
  --radius-btn:var(--radius-sm); --radius-tab:var(--radius-sm); --radius-card:var(--radius-lg); --radius-modal:var(--radius-md); --radius-banner:var(--radius-xs);
  /* component sizes — Components Library. Drawn at DGA's size; where that is under 44px a hit area keeps DGA rule 12 */
  --btn-h-lg:40px;
  --btn-h-md:32px;
  --btn-h-sm:24px;
  --field-h-lg:40px;
  --field-h-md:32px;
  --row-h:64px;
  --row-h-compact:48px;
  --th-h:48px;
  --tag-h-md:32px;
  --tag-h-sm:24px;
  --tag-h-xs:20px;
  --check-md:24px;
  --check-sm:20px;
  --check-xs:16px;
  --switch-w:48px;
  --switch-h:24px;
  --tab-h-lg:52px;
  --tab-h-md:44px;
  --tab-h-sm:36px;
  --modal-w:600px;
  --banner-h:56px;
  /* component spacing — Foundations › Spacing, Desktop value here; Tablet and Mobile below */
  --card-pad:32px;
  --card-gap:24px;
  --section-pad:32px;
  --section-gap:32px;
  --modal-pad:24px;
  --modal-gap:8px;
  --cell-v:8px;
  --cell-h:16px;
  --cell-gap:8px;
  --alert-v:8px;
  --alert-h:24px;
  --notif-pad:16px;
  --notif-gap:16px;
  --toast-v:16px;
  --toast-h:24px;
  --tab-v:12px;
  --tab-h:16px;
  --btn-pad-lg:16px;
  --btn-pad-md:12px;
  --btn-pad-sm:8px;
  --btn-gap:4px;
  --btn-group-gap:8px;
  --link-gap:8px;
  --links-gap:12px;
  --text-gap:8px;
  --icon-text-gap:8px;
  --field-label-gap:8px;
  --label-gap:4px;
  --step-gap:8px;
  --pager-gap:8px;
  --acc-pad-lg:16px;
  --acc-pad-md:12px;
  /* ── elevation · DGA, verbatim ── */
  --shadow-xs:0px 1px 2px 0px rgba(16,24,40,.05);
  --shadow-sm:0px 1px 2px 0px rgba(16,24,40,.06),0px 1px 3px 0px rgba(16,24,40,.1);
  --shadow-md:0px 2px 4px -2px rgba(16,24,40,.06),0px 4px 8px -2px rgba(16,24,40,.1);
  --shadow-lg:0px 4px 6px -2px rgba(16,24,40,.03),0px 12px 16px -4px rgba(16,24,40,.08);
  --shadow-xl:0px 8px 8px -4px rgba(16,24,40,.03),0px 20px 24px -4px rgba(16,24,40,.08);
  --shadow-2xl:0px 24px 48px -12px rgba(16,24,40,.18);
  /* ── layout · DGA ── breakpoints 600 / 960 / 1280 (media queries use the literals) ── */
  --container-max:1280px; --container-pad:16px; --paragraph-max:720px; --target-min:44px;
  --width-xxs:320px; --width-xs:384px; --width-sm:480px; --width-md:560px; --width-lg:640px;   /* DGA width scale */
  /* sizes — DGA entity-logo placeholder 125×42; DGA avatar M 40/48 */
  --size-logo-w:125px; --size-logo-h:42px; --size-avatar:40px; --size-tile:48px; --size-tile-sm:40px; --size-chip:36px;
  /* grid minimum columns and panel heights — layout constants, named once */
  --grid-kpi:220px; --grid-tile:240px; --grid-card:280px; --grid-panel:300px; --panel-max-h:420px;
  /* documents: two 500px columns at most — a field is never wider than --width-md */
  --form-max:1040px; --toc-w:240px;
  /* bars — on the 4px base; DGA publishes no header height */
  --header-h:72px; --appbar-h:56px; --side-w:264px; --rail-w:72px; --accent-strip:3px;
  --chart-h:256px;   /* one body height for every chart card — rows stay even */
  --scrim:rgb(12 17 27 / .4);   /* neutral-950 at 40% — DGA --alpha-* scale is not carried */
  /* ── motion · DGA publishes NO motion tokens. Minimal, and off under reduced motion. ── */
  --dur-fast:120ms; --dur:180ms; --ease:cubic-bezier(.2,0,0,1);
}
@media (min-width:960px){:root{--container-pad:32px}}
/* DGA tablet (600–959) and mobile (<600): type and component spacing step down — Foundations, Figma modes */
@media (min-width:600px) and (max-width:959px){:root{--fs-display-2xl:3.5rem;--lh-display-2xl:4.5rem;--fs-display-xl:3rem;--lh-display-xl:4rem;--fs-display-lg:2.25rem;--lh-display-lg:3rem;--fs-display-md:1.875rem;--lh-display-md:2.5rem;--fs-display-sm:1.5rem;--lh-display-sm:2rem;--fs-display-xs:1.25rem;--lh-display-xs:1.75rem;--fs-text-xl:1.125rem;--lh-text-xl:1.625rem;--fs-text-lg:1rem;--lh-text-lg:1.5rem;--fs-text-md:0.875rem;--lh-text-md:1.25rem;--fs-text-sm:0.75rem;--lh-text-sm:1rem;--fs-text-xs:0.625rem;--lh-text-xs:0.875rem;--fs-text-2xs:0.5rem;--lh-text-2xs:0.75rem;--card-pad:24px;--card-gap:20px;--section-pad:24px;--section-gap:24px;--modal-pad:24px;--modal-gap:8px;--cell-v:8px;--cell-h:16px;--cell-gap:8px;--alert-v:8px;--alert-h:24px;--notif-pad:16px;--notif-gap:16px;--toast-v:16px;--toast-h:24px;--tab-v:12px;--tab-h:16px;--btn-pad-lg:16px;--btn-pad-md:12px;--btn-pad-sm:8px;--btn-gap:4px;--btn-group-gap:8px;--link-gap:8px;--links-gap:12px;--text-gap:8px;--icon-text-gap:8px;--field-label-gap:8px;--label-gap:4px;--step-gap:8px;--pager-gap:8px;--acc-pad-lg:16px;--acc-pad-md:12px;}}
@media (max-width:599px){:root{--fs-display-2xl:3rem;--lh-display-2xl:4rem;--fs-display-xl:2.5rem;--lh-display-xl:3.5rem;--fs-display-lg:2rem;--lh-display-lg:2.5rem;--fs-display-md:1.5rem;--lh-display-md:2rem;--fs-display-sm:1.25rem;--lh-display-sm:1.75rem;--fs-display-xs:1.125rem;--lh-display-xs:1.5rem;--fs-text-xl:1.125rem;--lh-text-xl:1.625rem;--fs-text-lg:1rem;--lh-text-lg:1.5rem;--fs-text-md:0.875rem;--lh-text-md:1.25rem;--fs-text-sm:0.75rem;--lh-text-sm:1rem;--fs-text-xs:0.625rem;--lh-text-xs:0.875rem;--fs-text-2xs:0.5rem;--lh-text-2xs:0.75rem;--card-pad:16px;--card-gap:12px;--section-pad:16px;--section-gap:16px;--modal-pad:16px;--modal-gap:8px;--cell-v:4px;--cell-h:12px;--cell-gap:4px;--alert-v:8px;--alert-h:16px;--notif-pad:12px;--notif-gap:8px;--toast-v:12px;--toast-h:16px;--tab-v:8px;--tab-h:12px;--btn-pad-lg:16px;--btn-pad-md:12px;--btn-pad-sm:8px;--btn-gap:4px;--btn-group-gap:4px;--link-gap:4px;--links-gap:8px;--text-gap:4px;--icon-text-gap:4px;--field-label-gap:8px;--label-gap:4px;--step-gap:16px;--pager-gap:4px;--acc-pad-lg:16px;--acc-pad-md:12px;}}
@media (prefers-reduced-motion:reduce){:root{--dur-fast:0ms;--dur:0ms}}

/* ── per-app scope: everything inside [data-app] takes that app's accent — identity roles included ── */
:root{--mark:var(--primary)}
[data-app="erp"]{--accent-25:var(--app-erp-25);--accent-50:var(--app-erp-50);--accent-100:var(--app-erp-100);--accent-200:var(--app-erp-200);--accent-300:var(--app-erp-300);--accent-400:var(--app-erp-400);--accent-500:var(--app-erp-500);--accent-600:var(--app-erp-600);--accent-700:var(--app-erp-700);--accent-800:var(--app-erp-800);--accent-900:var(--app-erp-900);--accent-950:var(--app-erp-950);--disc:var(--app-erp-600);--disc-soft:var(--app-erp-50);--disc-soft-icon:var(--app-erp-700);--band:var(--app-erp-100);--band-focus:var(--app-erp-700);--mark:var(--app-erp-600);}
[data-app="hr"]{--accent-25:var(--app-hr-25);--accent-50:var(--app-hr-50);--accent-100:var(--app-hr-100);--accent-200:var(--app-hr-200);--accent-300:var(--app-hr-300);--accent-400:var(--app-hr-400);--accent-500:var(--app-hr-500);--accent-600:var(--app-hr-600);--accent-700:var(--app-hr-700);--accent-800:var(--app-hr-800);--accent-900:var(--app-hr-900);--accent-950:var(--app-hr-950);--disc:var(--app-hr-600);--disc-soft:var(--app-hr-50);--disc-soft-icon:var(--app-hr-700);--band:var(--app-hr-100);--band-focus:var(--app-hr-700);--mark:var(--app-hr-600);}
[data-app="crm"]{--accent-25:var(--app-crm-25);--accent-50:var(--app-crm-50);--accent-100:var(--app-crm-100);--accent-200:var(--app-crm-200);--accent-300:var(--app-crm-300);--accent-400:var(--app-crm-400);--accent-500:var(--app-crm-500);--accent-600:var(--app-crm-600);--accent-700:var(--app-crm-700);--accent-800:var(--app-crm-800);--accent-900:var(--app-crm-900);--accent-950:var(--app-crm-950);--disc:var(--app-crm-600);--disc-soft:var(--app-crm-50);--disc-soft-icon:var(--app-crm-700);--band:var(--app-crm-100);--band-focus:var(--app-crm-700);--mark:var(--app-crm-600);}
[data-app="platform"]{--accent-25:var(--app-platform-25);--accent-50:var(--app-platform-50);--accent-100:var(--app-platform-100);--accent-200:var(--app-platform-200);--accent-300:var(--app-platform-300);--accent-400:var(--app-platform-400);--accent-500:var(--app-platform-500);--accent-600:var(--app-platform-600);--accent-700:var(--app-platform-700);--accent-800:var(--app-platform-800);--accent-900:var(--app-platform-900);--accent-950:var(--app-platform-950);--disc:var(--app-platform-600);--disc-soft:var(--app-platform-50);--disc-soft-icon:var(--app-platform-700);--band:var(--app-platform-100);--band-focus:var(--app-platform-700);--mark:var(--app-platform-600);}
[data-app="smartops"]{--accent-25:var(--app-smartops-25);--accent-50:var(--app-smartops-50);--accent-100:var(--app-smartops-100);--accent-200:var(--app-smartops-200);--accent-300:var(--app-smartops-300);--accent-400:var(--app-smartops-400);--accent-500:var(--app-smartops-500);--accent-600:var(--app-smartops-600);--accent-700:var(--app-smartops-700);--accent-800:var(--app-smartops-800);--accent-900:var(--app-smartops-900);--accent-950:var(--app-smartops-950);--disc:var(--app-smartops-600);--disc-soft:var(--app-smartops-50);--disc-soft-icon:var(--app-smartops-700);--band:var(--app-smartops-100);--band-focus:var(--app-smartops-700);--mark:var(--app-smartops-600);}
[data-app="events"]{--accent-25:var(--app-events-25);--accent-50:var(--app-events-50);--accent-100:var(--app-events-100);--accent-200:var(--app-events-200);--accent-300:var(--app-events-300);--accent-400:var(--app-events-400);--accent-500:var(--app-events-500);--accent-600:var(--app-events-600);--accent-700:var(--app-events-700);--accent-800:var(--app-events-800);--accent-900:var(--app-events-900);--accent-950:var(--app-events-950);--disc:var(--app-events-600);--disc-soft:var(--app-events-50);--disc-soft-icon:var(--app-events-700);--band:var(--app-events-100);--band-focus:var(--app-events-700);--mark:var(--app-events-600);}
[data-app="secure"]{--accent-25:var(--app-secure-25);--accent-50:var(--app-secure-50);--accent-100:var(--app-secure-100);--accent-200:var(--app-secure-200);--accent-300:var(--app-secure-300);--accent-400:var(--app-secure-400);--accent-500:var(--app-secure-500);--accent-600:var(--app-secure-600);--accent-700:var(--app-secure-700);--accent-800:var(--app-secure-800);--accent-900:var(--app-secure-900);--accent-950:var(--app-secure-950);--disc:var(--app-secure-600);--disc-soft:var(--app-secure-50);--disc-soft-icon:var(--app-secure-700);--band:var(--app-secure-100);--band-focus:var(--app-secure-700);--mark:var(--app-secure-600);}
[data-app="agriculture"]{--accent-25:var(--app-agriculture-25);--accent-50:var(--app-agriculture-50);--accent-100:var(--app-agriculture-100);--accent-200:var(--app-agriculture-200);--accent-300:var(--app-agriculture-300);--accent-400:var(--app-agriculture-400);--accent-500:var(--app-agriculture-500);--accent-600:var(--app-agriculture-600);--accent-700:var(--app-agriculture-700);--accent-800:var(--app-agriculture-800);--accent-900:var(--app-agriculture-900);--accent-950:var(--app-agriculture-950);--disc:var(--app-agriculture-600);--disc-soft:var(--app-agriculture-50);--disc-soft-icon:var(--app-agriculture-700);--band:var(--app-agriculture-100);--band-focus:var(--app-agriculture-700);--mark:var(--app-agriculture-600);}
[data-app="facility"]{--accent-25:var(--app-facility-25);--accent-50:var(--app-facility-50);--accent-100:var(--app-facility-100);--accent-200:var(--app-facility-200);--accent-300:var(--app-facility-300);--accent-400:var(--app-facility-400);--accent-500:var(--app-facility-500);--accent-600:var(--app-facility-600);--accent-700:var(--app-facility-700);--accent-800:var(--app-facility-800);--accent-900:var(--app-facility-900);--accent-950:var(--app-facility-950);--disc:var(--app-facility-600);--disc-soft:var(--app-facility-50);--disc-soft-icon:var(--app-facility-700);--band:var(--app-facility-100);--band-focus:var(--app-facility-700);--mark:var(--app-facility-600);}
[data-app="visits"]{--accent-25:var(--app-visits-25);--accent-50:var(--app-visits-50);--accent-100:var(--app-visits-100);--accent-200:var(--app-visits-200);--accent-300:var(--app-visits-300);--accent-400:var(--app-visits-400);--accent-500:var(--app-visits-500);--accent-600:var(--app-visits-600);--accent-700:var(--app-visits-700);--accent-800:var(--app-visits-800);--accent-900:var(--app-visits-900);--accent-950:var(--app-visits-950);--disc:var(--app-visits-600);--disc-soft:var(--app-visits-50);--disc-soft-icon:var(--app-visits-700);--band:var(--app-visits-100);--band-focus:var(--app-visits-700);--mark:var(--app-visits-600);}
[data-app="property"]{--accent-25:var(--app-property-25);--accent-50:var(--app-property-50);--accent-100:var(--app-property-100);--accent-200:var(--app-property-200);--accent-300:var(--app-property-300);--accent-400:var(--app-property-400);--accent-500:var(--app-property-500);--accent-600:var(--app-property-600);--accent-700:var(--app-property-700);--accent-800:var(--app-property-800);--accent-900:var(--app-property-900);--accent-950:var(--app-property-950);--disc:var(--app-property-600);--disc-soft:var(--app-property-50);--disc-soft-icon:var(--app-property-700);--band:var(--app-property-100);--band-focus:var(--app-property-700);--mark:var(--app-property-600);}
[data-app="lending"]{--accent-25:var(--app-lending-25);--accent-50:var(--app-lending-50);--accent-100:var(--app-lending-100);--accent-200:var(--app-lending-200);--accent-300:var(--app-lending-300);--accent-400:var(--app-lending-400);--accent-500:var(--app-lending-500);--accent-600:var(--app-lending-600);--accent-700:var(--app-lending-700);--accent-800:var(--app-lending-800);--accent-900:var(--app-lending-900);--accent-950:var(--app-lending-950);--disc:var(--app-lending-600);--disc-soft:var(--app-lending-50);--disc-soft-icon:var(--app-lending-700);--band:var(--app-lending-100);--band-focus:var(--app-lending-700);--mark:var(--app-lending-600);}

/* ── dark theme · roles chosen again from the same ramps; accents mirrored on the ladder; gated above ── */
html[data-theme="dark"]{color-scheme:dark;--surface:var(--neutral-800);--canvas:var(--neutral-900);--surface-sunken:var(--neutral-900);--text-primary:var(--neutral-50);--text-secondary:var(--neutral-200);--text-tertiary:var(--neutral-300);--text-on-fill:#ffffff;--border:var(--neutral-700);--border-strong:var(--neutral-600);--field-border:var(--neutral-500);--primary:var(--primary-500);--primary-hover:var(--primary-600);--primary-soft:var(--primary-900);--link:var(--primary-300);--link-visited:var(--primary-200);--focus:var(--primary-300);--band:var(--primary-950);--band-text:var(--neutral-50);--band-muted:var(--neutral-300);--band-focus:var(--primary-300);--footer-bg:var(--primary-950);--footer-text:#ffffff;--footer-muted:var(--primary-300);--footer-border:var(--primary-900);--footer-control:var(--primary-400);--footer-focus:#ffffff;--disc:var(--primary-400);--disc-icon:var(--neutral-950);--disc-soft:var(--primary-900);--disc-soft-icon:var(--primary-300);--status-error-text:var(--error-400);--status-error-bg:#442b32;--status-error-icon:var(--error-400);--status-error-border:var(--error-800);--status-warning-text:var(--warning-400);--status-warning-bg:#45362d;--status-warning-icon:var(--warning-400);--status-warning-border:var(--warning-800);--status-success-text:var(--success-400);--status-success-bg:#1a3f3d;--status-success-icon:var(--success-400);--status-success-border:var(--success-800);--status-info-text:var(--info-400);--status-info-bg:#1d385c;--status-info-icon:var(--info-400);--status-info-border:var(--info-800);--accent-25:var(--primary-950);--accent-50:var(--primary-900);--accent-100:var(--primary-800);--accent-200:var(--primary-700);--accent-300:var(--primary-600);--accent-400:var(--primary-500);--accent-500:var(--primary-400);--accent-600:var(--primary-300);--accent-700:var(--primary-200);--accent-800:var(--primary-100);--accent-900:var(--primary-50);--accent-950:var(--primary-25);--shadow-xs:0 1px 2px rgb(0 0 0 / .4);--shadow-sm:0 1px 3px rgb(0 0 0 / .5);--shadow-md:0 4px 8px -2px rgb(0 0 0 / .5);--shadow-lg:0 12px 16px -4px rgb(0 0 0 / .5);--shadow-xl:0 20px 24px -4px rgb(0 0 0 / .55);--shadow-2xl:0 24px 48px -12px rgb(0 0 0 / .6);--scrim:rgb(0 0 0 / .6);}
html[data-theme="dark"]{--mark:var(--primary)}
html[data-theme="dark"] [data-app="erp"]{--accent-25:var(--app-erp-950);--accent-50:var(--app-erp-900);--accent-100:var(--app-erp-800);--accent-200:var(--app-erp-700);--accent-300:var(--app-erp-600);--accent-400:var(--app-erp-500);--accent-500:var(--app-erp-400);--accent-600:var(--app-erp-300);--accent-700:var(--app-erp-200);--accent-800:var(--app-erp-100);--accent-900:var(--app-erp-50);--accent-950:var(--app-erp-25);--disc:var(--app-erp-400);--disc-soft:var(--app-erp-900);--disc-soft-icon:var(--app-erp-300);--band:var(--app-erp-950);--band-focus:var(--app-erp-300);--mark:var(--app-erp-400);--disc-icon:var(--neutral-950);}
html[data-theme="dark"] [data-app="hr"]{--accent-25:var(--app-hr-950);--accent-50:var(--app-hr-900);--accent-100:var(--app-hr-800);--accent-200:var(--app-hr-700);--accent-300:var(--app-hr-600);--accent-400:var(--app-hr-500);--accent-500:var(--app-hr-400);--accent-600:var(--app-hr-300);--accent-700:var(--app-hr-200);--accent-800:var(--app-hr-100);--accent-900:var(--app-hr-50);--accent-950:var(--app-hr-25);--disc:var(--app-hr-400);--disc-soft:var(--app-hr-900);--disc-soft-icon:var(--app-hr-300);--band:var(--app-hr-950);--band-focus:var(--app-hr-300);--mark:var(--app-hr-400);--disc-icon:var(--neutral-950);}
html[data-theme="dark"] [data-app="crm"]{--accent-25:var(--app-crm-950);--accent-50:var(--app-crm-900);--accent-100:var(--app-crm-800);--accent-200:var(--app-crm-700);--accent-300:var(--app-crm-600);--accent-400:var(--app-crm-500);--accent-500:var(--app-crm-400);--accent-600:var(--app-crm-300);--accent-700:var(--app-crm-200);--accent-800:var(--app-crm-100);--accent-900:var(--app-crm-50);--accent-950:var(--app-crm-25);--disc:var(--app-crm-400);--disc-soft:var(--app-crm-900);--disc-soft-icon:var(--app-crm-300);--band:var(--app-crm-950);--band-focus:var(--app-crm-300);--mark:var(--app-crm-400);--disc-icon:var(--neutral-950);}
html[data-theme="dark"] [data-app="platform"]{--accent-25:var(--app-platform-950);--accent-50:var(--app-platform-900);--accent-100:var(--app-platform-800);--accent-200:var(--app-platform-700);--accent-300:var(--app-platform-600);--accent-400:var(--app-platform-500);--accent-500:var(--app-platform-400);--accent-600:var(--app-platform-300);--accent-700:var(--app-platform-200);--accent-800:var(--app-platform-100);--accent-900:var(--app-platform-50);--accent-950:var(--app-platform-25);--disc:var(--app-platform-400);--disc-soft:var(--app-platform-900);--disc-soft-icon:var(--app-platform-300);--band:var(--app-platform-950);--band-focus:var(--app-platform-300);--mark:var(--app-platform-400);--disc-icon:var(--neutral-950);}
html[data-theme="dark"] [data-app="smartops"]{--accent-25:var(--app-smartops-950);--accent-50:var(--app-smartops-900);--accent-100:var(--app-smartops-800);--accent-200:var(--app-smartops-700);--accent-300:var(--app-smartops-600);--accent-400:var(--app-smartops-500);--accent-500:var(--app-smartops-400);--accent-600:var(--app-smartops-300);--accent-700:var(--app-smartops-200);--accent-800:var(--app-smartops-100);--accent-900:var(--app-smartops-50);--accent-950:var(--app-smartops-25);--disc:var(--app-smartops-400);--disc-soft:var(--app-smartops-900);--disc-soft-icon:var(--app-smartops-300);--band:var(--app-smartops-950);--band-focus:var(--app-smartops-300);--mark:var(--app-smartops-400);--disc-icon:var(--neutral-950);}
html[data-theme="dark"] [data-app="events"]{--accent-25:var(--app-events-950);--accent-50:var(--app-events-900);--accent-100:var(--app-events-800);--accent-200:var(--app-events-700);--accent-300:var(--app-events-600);--accent-400:var(--app-events-500);--accent-500:var(--app-events-400);--accent-600:var(--app-events-300);--accent-700:var(--app-events-200);--accent-800:var(--app-events-100);--accent-900:var(--app-events-50);--accent-950:var(--app-events-25);--disc:var(--app-events-400);--disc-soft:var(--app-events-900);--disc-soft-icon:var(--app-events-300);--band:var(--app-events-950);--band-focus:var(--app-events-300);--mark:var(--app-events-400);--disc-icon:var(--neutral-950);}
html[data-theme="dark"] [data-app="secure"]{--accent-25:var(--app-secure-950);--accent-50:var(--app-secure-900);--accent-100:var(--app-secure-800);--accent-200:var(--app-secure-700);--accent-300:var(--app-secure-600);--accent-400:var(--app-secure-500);--accent-500:var(--app-secure-400);--accent-600:var(--app-secure-300);--accent-700:var(--app-secure-200);--accent-800:var(--app-secure-100);--accent-900:var(--app-secure-50);--accent-950:var(--app-secure-25);--disc:var(--app-secure-400);--disc-soft:var(--app-secure-900);--disc-soft-icon:var(--app-secure-300);--band:var(--app-secure-950);--band-focus:var(--app-secure-300);--mark:var(--app-secure-400);--disc-icon:var(--neutral-950);}
html[data-theme="dark"] [data-app="agriculture"]{--accent-25:var(--app-agriculture-950);--accent-50:var(--app-agriculture-900);--accent-100:var(--app-agriculture-800);--accent-200:var(--app-agriculture-700);--accent-300:var(--app-agriculture-600);--accent-400:var(--app-agriculture-500);--accent-500:var(--app-agriculture-400);--accent-600:var(--app-agriculture-300);--accent-700:var(--app-agriculture-200);--accent-800:var(--app-agriculture-100);--accent-900:var(--app-agriculture-50);--accent-950:var(--app-agriculture-25);--disc:var(--app-agriculture-400);--disc-soft:var(--app-agriculture-900);--disc-soft-icon:var(--app-agriculture-300);--band:var(--app-agriculture-950);--band-focus:var(--app-agriculture-300);--mark:var(--app-agriculture-400);--disc-icon:var(--neutral-950);}
html[data-theme="dark"] [data-app="facility"]{--accent-25:var(--app-facility-950);--accent-50:var(--app-facility-900);--accent-100:var(--app-facility-800);--accent-200:var(--app-facility-700);--accent-300:var(--app-facility-600);--accent-400:var(--app-facility-500);--accent-500:var(--app-facility-400);--accent-600:var(--app-facility-300);--accent-700:var(--app-facility-200);--accent-800:var(--app-facility-100);--accent-900:var(--app-facility-50);--accent-950:var(--app-facility-25);--disc:var(--app-facility-400);--disc-soft:var(--app-facility-900);--disc-soft-icon:var(--app-facility-300);--band:var(--app-facility-950);--band-focus:var(--app-facility-300);--mark:var(--app-facility-400);--disc-icon:var(--neutral-950);}
html[data-theme="dark"] [data-app="visits"]{--accent-25:var(--app-visits-950);--accent-50:var(--app-visits-900);--accent-100:var(--app-visits-800);--accent-200:var(--app-visits-700);--accent-300:var(--app-visits-600);--accent-400:var(--app-visits-500);--accent-500:var(--app-visits-400);--accent-600:var(--app-visits-300);--accent-700:var(--app-visits-200);--accent-800:var(--app-visits-100);--accent-900:var(--app-visits-50);--accent-950:var(--app-visits-25);--disc:var(--app-visits-400);--disc-soft:var(--app-visits-900);--disc-soft-icon:var(--app-visits-300);--band:var(--app-visits-950);--band-focus:var(--app-visits-300);--mark:var(--app-visits-400);--disc-icon:var(--neutral-950);}
html[data-theme="dark"] [data-app="property"]{--accent-25:var(--app-property-950);--accent-50:var(--app-property-900);--accent-100:var(--app-property-800);--accent-200:var(--app-property-700);--accent-300:var(--app-property-600);--accent-400:var(--app-property-500);--accent-500:var(--app-property-400);--accent-600:var(--app-property-300);--accent-700:var(--app-property-200);--accent-800:var(--app-property-100);--accent-900:var(--app-property-50);--accent-950:var(--app-property-25);--disc:var(--app-property-400);--disc-soft:var(--app-property-900);--disc-soft-icon:var(--app-property-300);--band:var(--app-property-950);--band-focus:var(--app-property-300);--mark:var(--app-property-400);--disc-icon:var(--neutral-950);}
html[data-theme="dark"] [data-app="lending"]{--accent-25:var(--app-lending-950);--accent-50:var(--app-lending-900);--accent-100:var(--app-lending-800);--accent-200:var(--app-lending-700);--accent-300:var(--app-lending-600);--accent-400:var(--app-lending-500);--accent-500:var(--app-lending-400);--accent-600:var(--app-lending-300);--accent-700:var(--app-lending-200);--accent-800:var(--app-lending-100);--accent-900:var(--app-lending-50);--accent-950:var(--app-lending-25);--disc:var(--app-lending-400);--disc-soft:var(--app-lending-900);--disc-soft-icon:var(--app-lending-300);--band:var(--app-lending-950);--band-focus:var(--app-lending-300);--mark:var(--app-lending-400);--disc-icon:var(--neutral-950);}
