/* ============================================================================
   Sapient Perception — design tokens
   Single source of truth for color. Version 1.2 · 2026-10-20

   Rule: this file is the color registry. A hex value may appear in markup,
   stylesheets or inline SVG only if it is declared here. In CSS, prefer
   var(--token). In SVG presentation attributes (fill=, stroke=) use the
   literal, because var() is not reliably supported there.

   If a color is needed that is not declared here, it does not exist yet —
   add it with a stated role, or use the nearest registered value.

   Layer 1  Brand      Approved in Brand_Guidelines.pdf
   Layer 2  Extended   Surfaces in production use, approved 2026-09-06
   Layer 3  Diagram    Illustration and data colors, bounded and documented
   Layer 5  Print      Ink and rules on a light ground, approved 2026-09-10
   ========================================================================= */

:root {
  /* -- Layer 1 · Brand -------------------------------------------------- */
  --bg-1:         #0b3334;  /* Ground, raised. Cards on the base layer.      */
  --panel-2:      #095355;  /* Second-level surface, diagram fills.          */
  --muted:        #83a5a5;  /* Muted text, labels, captions. AA floor.       */
  --slate:        #4b5e5b;  /* Quiet strokes and dividers in illustrations.  */
  --text-strong:  #f5f5f5;  /* Headings and strong text.                     */
  --text:         #dde6e8;  /* Body text.                                    */
  --accent:       #13fcc2;  /* The one accent. Focus, links, key figures.    */
  --accent-2:     #0cd9a5;  /* Eyebrows and step labels. A step quieter.     */
  --steel:        #209ea8;  /* Diagram strokes, grid overlays.               */
  --steel-2:      #207ba8;  /* Diagram strokes, cool variant.                */
  --cta:          #e84000;  /* Action. Button fill. Never a heading.         */
  --cta-press:    #c83200;  /* Action, pressed / hover / outline.            */

  /* -- Layer 2 · Extended surfaces (approved 2026-09-06) ---------------- */
  /* Both are in unanimous production use across all 13 pages and were
     absent from the guidelines PDF. Added to the standard rather than
     removed from the build. Pending re-issue of the PDF.                   */
  --bg-0:         #071f21;  /* Ground, deepest. Page background, film bands. */
  --panel:        #0d3b3d;  /* The default card and form surface.            */
  --plate:        #d7e8e1;  /* Third-party logo plates only.                 */
  --line:         rgba(131,165,165,.20);  /* 1 px hairline, everywhere.      */

  /* -- Layer 3 · Diagram and illustration ------------------------------- */
  /* Inline SVG had no tokens to reach for, so 59 ad-hoc hex values entered
     the build. These are the recurring ones, promoted to named roles.
     Appearance is unchanged; the values are the ones already shipping.      */
  --dgm-paper:    #eaf2ee;  /* Light plate inside a figure.                  */
  --dgm-mist:     #9ba8a3;  /* Secondary label text on a light plate.        */
  --dgm-green-300:#6f9a8d;  /* Illustration mid-green, foreground mass.      */
  --dgm-green-500:#3d5c54;  /* Illustration mid-green, shadowed.             */
  --dgm-green-700:#274c43;  /* Illustration green, deepest fill.             */
  --dgm-ink-700:  #2a3b34;  /* Figure ground, lightest.                      */
  --dgm-ink-800:  #1e2e27;  /* Figure ground, mid.                           */
  --dgm-ink-900:  #0d201c;  /* Figure ground, deepest.                       */

  /* Spectral scale — technology.html optics diagrams only.
     These are wavelength colors carrying real information. They are not
     brand colors and must never be used for UI, surfaces or emphasis.      */
  --spec-violet:  #7a5cff;
  --spec-blue:    #4aa3e0;
  --spec-yellow:  #e8d24a;
  --spec-red:     #e05a4d;
  --spec-nir:     #c98a7a;  /* Near-infrared, rendered as false color.       */

  /* State — feedback only. Never decorative.                               */
  --state-alert:  #ff5b5b;

  /* Thermal data — the data set viewer only. Marks a finding the thermal
     image shows as warmer than its surroundings: box, tag, filter chip,
     card marker. Same value as --cta by decision (red-orange reads as
     heat); data, not an action. See BRAND-PRECEDENCE.md 4.4.              */
  --warm:         #e84000;

  /* -- Layer 5 · Print, light ground (approved 2026-09-10) ---------------
     The registry had no ink or rule value for dark-on-light work. Every
     document the estate prints — the Configurator invoice PDF, the price
     list, the price book export — therefore invented its own neutral
     scale off-registry. These four are the sanctioned set. Use them only
     where the ground is light and the artifact is printed or exported;
     screen interfaces stay dark on --bg-0 and --panel.

     --print-ink-muted repeats the value of --slate deliberately, so that
     print work can name its role without borrowing an illustration token.

     Not for email. Mail clients strip custom properties, so email
     templates carry literal hex per SP-Context-App-Standards-2026 5.3.   */
  --print-paper:     #ffffff;  /* Page ground, printed and exported docs.   */
  --print-ink:       #0d201c;  /* Body text on a light ground.              */
  --print-ink-muted: #4b5e5b;  /* Labels, captions, footnotes on light.     */
  --print-line:      #d8e2e0;  /* 1 px hairline and table rule on light.    */


  /* -- Layer 4 - Inherited illustration colors ---------------------------
     A complete inventory of every value already in the build when the
     registry was created, taken from the files themselves. Recorded so
     the registry is truthful and so any NEW value is caught immediately
     by brand-check.py - not because each one is a considered choice.
     Each still needs folding into Layer 1-3 or keeping with a stated
     role. Do it a page at a time, with a visual check.
     Comment shows total occurrences and the pages involved.        */
  --legacy-7c8983: #7c8983;   /* x13  explore */
  --legacy-5c8578: #5c8578;   /* x12  solutions */
  --legacy-0e1e18: #0e1e18;   /* x7  solutions */
  --legacy-2b5a4e: #2b5a4e;   /* x7  platforms */
  --legacy-5f8079: #5f8079;   /* x7  ignite,technology */
  --legacy-3ddc97: #3ddc97;   /* x6  technology */
  --legacy-6b7c75: #6b7c75;   /* x6  explore,solutions */
  --legacy-0d4a4c: #0d4a4c;   /* x5  applications,capture,forge,ignite,technology */
  --legacy-4a6f66: #4a6f66;   /* x5  platforms */
  --legacy-9fc0be: #9fc0be;   /* x5  briefing,explore,ignite,privacy,resources */
  --legacy-1f4038: #1f4038;   /* x4  solutions */
  --legacy-1f4a48: #1f4a48;   /* x4  ignite */
  --legacy-0e201a: #0e201a;   /* x3  explore */
  --legacy-3a4a43: #3a4a43;   /* x3  explore */
  --legacy-4a6b62: #4a6b62;   /* x3  solutions */
  --legacy-0a1512: #0a1512;   /* x2  solutions */
  --legacy-12403e: #12403e;   /* x2  index */
  --legacy-20443b: #20443b;   /* x2  solutions */
  --legacy-234b48: #234b48;   /* x2  technology */
  --legacy-26403a: #26403a;   /* x2  explore */
  --legacy-2dd4bf: #2dd4bf;   /* x2  solutions */
  --legacy-2e7f6b: #2e7f6b;   /* x2  explore */
  --legacy-33443d: #33443d;   /* x2  explore */
  --legacy-ff8a5c: #ff8a5c;   /* x2  briefing */
  --legacy-0a2a2c: #0a2a2c;   /* x1  404 */
  --legacy-0b2b2b: #0b2b2b;   /* x1  platforms */
  --legacy-0c111d: #0c111d;   /* x1  about */
  --legacy-0c3434: #0c3434;   /* x1  solutions */
  --legacy-0f231b: #0f231b;   /* x1  explore */
  --legacy-123a30: #123a30;   /* x1  solutions */
  --legacy-17332c: #17332c;   /* x1  solutions */
  --legacy-1d3b33: #1d3b33;   /* x1  solutions */
  --legacy-2c3a42: #2c3a42;   /* x1  explore */
  --legacy-33564d: #33564d;   /* x1  solutions */
  --legacy-3b4a52: #3b4a52;   /* x1  explore */
  --legacy-3f6f63: #3f6f63;   /* x1  solutions */
  --legacy-5a6b64: #5a6b64;   /* x1  explore */
  --legacy-5c706b: #5c706b;   /* x1  technology */
  --legacy-6f8f88: #6f8f88;   /* x1  technology */
  --legacy-8a968f: #8a968f;   /* x1  explore */
  --legacy-8aa6a3: #8aa6a3;   /* x1  404 */
  --legacy-b9c0bd: #b9c0bd;   /* x1  explore */
  --legacy-c8501f: #c8501f;   /* x1  briefing */
  --legacy-c9d4d2: #c9d4d2;   /* x1  explore */
  --legacy-cfd8d8: #cfd8d8;   /* x1  technology */
  --legacy-cfe0dc: #cfe0dc;   /* x1  index */
  --legacy-e9f2f0: #e9f2f0;   /* x1  404 */

  /* -- Type ------------------------------------------------------------- */
  --font-body:    Poppins, ui-sans-serif, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --font-display: Tomorrow, ui-sans-serif, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --font-brand:   "Exo 2", ui-sans-serif, "Segoe UI", "Helvetica Neue", Arial, sans-serif;

  /* -- Geometry --------------------------------------------------------- */
  --radius-card:  10px;
  --radius-field: 6px;
  --measure:      1120px;
  --hairline:     1px;
}
