/* ==========================================================================
   COLOR TOKENS
   Two layers: raw ramps (never used directly in components) + semantic aliases
   (what components reference). A future dark theme redefines the semantic
   layer under [data-theme="dark"] — components never change.

   Rules of the palette:
   - Brand orange (#F07E13, from the BIORUS logo) is used SPARINGLY: primary
     actions, active nav, brand marks. It never floods large areas.
   - Base is warm: ivory app background, near-white surfaces, taupe-tinted
     neutrals. No cold gray-blue in the base.
   - Status signals are a SEPARATE muted palette so they never compete with or
     get confused for the brand orange, even across 100+ table rows.
   ========================================================================== */
:root {
  /* --- Brand: BIORUS orange ------------------------------------------------ */
  --orange-50:  #FFF4E6;
  --orange-100: #FFE2BE;
  --orange-200: #FDC07C;
  --orange-300: #FBA13C;
  --orange-400: #FB8A0C;   /* hover — brighter */
  --orange-500: #F07E13;   /* PRIMARY — logo orange */
  --orange-600: #DE6600;   /* pressed — deeper */
  --orange-700: #B44A00;   /* on-tint text */

  /* --- Warm neutrals (taupe-tinted; no cold blue-gray) --------------------- */
  --warm-0:   #FFFFFF;
  --warm-25:  #FEFDFB;   /* raised surface */
  --warm-50:  #FAF8F5;   /* app background — ivory */
  --warm-100: #F4F0EA;   /* sunken / hover row */
  --warm-150: #EDE8E0;   /* subtle divider */
  --warm-200: #E4DED4;   /* default border */
  --warm-300: #D3CABB;   /* strong border / field border */
  --warm-400: #B4A999;   /* disabled text */
  --warm-500: #8C8271;   /* subtle text */
  --warm-600: #6B6252;   /* muted text */
  --warm-700: #4E4638;   /* secondary text */
  --warm-800: #332D22;   /* body text */
  --warm-900: #211C14;   /* headings — warm near-black */

  /* --- Status ramps (muted, calm — safe for dense tables) ------------------ */
  --red-50:#FCEDE9; --red-100:#F8D9D2; --red-500:#D9584A; --red-600:#C93C2F; --red-700:#A52C20;
  --amber-50:#FDF4DA; --amber-100:#F8E6B6; --amber-500:#D69C15; --amber-600:#B47A00; --amber-700:#8F5F00;
  --green-50:#EDF6E6; --green-100:#DCEDCE; --green-500:#639C4C; --green-600:#41802C; --green-700:#316721;
  --blue-50:#EAF2F9; --blue-100:#D3E4F3; --blue-500:#4A87B8; --blue-600:#2A6D9E; --blue-700:#1F567E;

  /* === SEMANTIC ALIASES (components reference only these) ================== */

  /* Brand */
  --brand:            var(--orange-500);
  --brand-hover:      var(--orange-400);
  --brand-active:     var(--orange-600);
  --brand-tint:       var(--orange-100);
  --brand-tint-weak:  var(--orange-50);
  --brand-on:         #FFFFFF;
  --text-brand:       var(--orange-700);

  /* Surfaces & background */
  --bg-app:          var(--warm-50);
  --surface:         var(--warm-0);      /* cards, panels */
  --surface-raised:  var(--warm-25);
  --surface-sunken:  var(--warm-100);    /* table header, wells, inputs at rest */
  --surface-hover:   var(--warm-100);
  --surface-selected:var(--orange-50);

  /* Glass — ONLY floating layers (modal, dropdown, sticky header). Never
     under tables/lists/forms. */
  --glass-bg:      rgba(253, 251, 248, 0.72);
  --glass-border:  rgba(255, 255, 255, 0.65);
  --glass-blur:    16px;

  /* Text */
  --text-heading:   var(--warm-900);
  --text-body:      var(--warm-800);
  --text-secondary: var(--warm-700);
  --text-muted:     var(--warm-600);
  --text-subtle:    var(--warm-500);
  --text-disabled:  var(--warm-400);
  --text-inverse:   #FFFFFF;

  /* Borders */
  --border-subtle: var(--warm-150);
  --border:        var(--warm-200);
  --border-strong: var(--warm-300);
  --border-field:  var(--warm-300);

  /* Focus — orange contour glow (a halo/ring, not a diffuse under-glow) */
  --focus-ring:      rgba(240, 126, 19, 0.22);
  --focus-ring-solid:var(--orange-400);

  /* --- Status: semantic (alerts, badges) --------------------------------- */
  --status-danger-fg:var(--red-600);   --status-danger-edge:var(--red-500);   --status-danger-bg:var(--red-50);   --status-danger-bg-strong:var(--red-100);
  --status-warning-fg:var(--amber-600);--status-warning-edge:var(--amber-500);--status-warning-bg:var(--amber-50); --status-warning-bg-strong:var(--amber-100);
  --status-success-fg:var(--green-600);--status-success-edge:var(--green-500);--status-success-bg:var(--green-50); --status-success-bg-strong:var(--green-100);
  --status-info-fg:var(--blue-600);    --status-info-edge:var(--blue-500);    --status-info-bg:var(--blue-50);     --status-info-bg-strong:var(--blue-100);
  --status-neutral-fg:var(--warm-600); --status-neutral-edge:var(--warm-400); --status-neutral-bg:var(--warm-100); --status-neutral-bg-strong:var(--warm-150);

  /* --- Deadline signals (the CRM's core status language) ------------------ */
  --signal-overdue-fg:var(--status-danger-fg);   --signal-overdue-bg:var(--status-danger-bg);   --signal-overdue-edge:var(--status-danger-edge);      /* просрочено */
  --signal-due-soon-fg:var(--status-warning-fg); --signal-due-soon-bg:var(--status-warning-bg); --signal-due-soon-edge:var(--status-warning-edge);   /* скоро срок */
  --signal-ontrack-fg:var(--status-success-fg);  --signal-ontrack-bg:var(--status-success-bg);  --signal-ontrack-edge:var(--status-success-edge);    /* долгий срок / в норме */
  --signal-progress-fg:var(--status-info-fg);    --signal-progress-bg:var(--status-info-bg);    --signal-progress-edge:var(--status-info-edge);      /* идёт работа */
  --signal-idle-fg:var(--status-neutral-fg);     --signal-idle-bg:var(--status-neutral-bg);     --signal-idle-edge:var(--status-neutral-edge);       /* нет задачи */
}
