/* lagoon — bay water and squeezed orange.
   THE LAW: LIGHT FLOATS. The page is a shallow bay, panels are white and RISE
   off it on a soft shadow. See themes/README.md for the family rules.

   The rule that makes this palette work, and the one to keep in mind before
   editing any value here: COLOUR LIVES IN THE BIG AREAS, WORDS STAY INK. Text on
   a light ground must be dark to be readable, so a palette that puts its colour
   in the text ends up heavy no matter how fresh the hues are. Everything bright
   here is a surface, a bed or a fill — never a word.

   Two consequences worth not "fixing":
   - --accent-rgb is the BRIGHT turquoise, NOT --accent. Every alpha tint in the
     product derives from that triple, so the washes, chip beds and hover rows go
     fresh aqua while --accent stays dark enough to carry text. cockpit.css uses
     the accent as a text colour in ~208 places and as a background in ~108, which
     is why the two cannot be the same value.
   - Hairlines are still graphite. Cyan at .18 alpha over white is invisible. */
:root[data-theme="lagoon"]{
  color-scheme:light;

  /* Surfaces — the largest area on the page IS the türkis, which is also how it
     overpowers everything else. These were a chroma of 20/29/35; the bay still
     reads as bay at 14/17/21, and the colour that carries the theme moved to the
     card band (--card-flow) where it is a statement rather than a wash. */
  --bg:#e8f4f6;
  /* Near-white, not pale aqua. The dashboard's cards are drawn on --surface, and
     at #f0fafb they were bay water on bay water — the page had no figure and no
     ground, which is exactly what "too much türkis" was describing. */
  --surface:#f8fdfd;
  --panel:#ffffff;            /* the card: rises, with --lift */
  --panel-2:#d9ebee;          /* chips are aqua, not grey */
  --field:#edf9fa;            /* a well, one step down from the card */
  --rail:#dfeef0;

  /* ink — 14.0:1 on the bay, and the only dark values in the palette */
  --ink:#0f2529;
  --ink-dim:#3a5459;
  --ink-dimmer:#566f75;

  /* accent: two depths of one hue. --accent carries text (4.8:1 on the page),
     --accent-br fills controls with dark ink on top (7.8:1). */
  --accent:#0b757e;
  --accent-hi:#064e55;        /* hover moves toward CONTRAST on paper */
  /* --accent-lo is the QUIET accent, and it must stay legible: cockpit.css uses
     it as a TEXT colour in ~8 places (the rail counts, file paths, trace ids)
     despite its old "decorative only" wording. At the palest türkis it measured
     1.5:1 on a card and the rail counts simply disappeared. */
  --accent-lo:#3aa6b0;
  --accent-br:#2dc7d2;        /* opt-in bright fill; read via var(--accent-fill) */
  --accent-br-hi:#23b0ba;     /* its hover: deepens slightly, ink stays at 5.7:1.
                                 Without this the hover falls back to --accent-hi,
                                 which is near-black here — 1.6:1 under dark ink. */
  --on-accent:#062b30;        /* dark ink on the bright fill — this is the trick */

  /* Scarlet, and the hue is pinned from both sides: at #dc5140 it sat 13 from
     the coral --t-claim, and at raspberry #d12f4a it sat 59 from the magenta
     --t-finding. This clears claim by 74 and finding by 69. */
  --red:#d02f3f;
  --red-ink:#a02030;
  --green:#2fb383;
  --green-ink:#157a53;

  /* The seven type marks. They stay deeper than the surfaces because a 7px mark
     needs 3.2:1 against white and every bright warm hue fails that — #ffab3d is
     1.9:1. Closest pair here is 94 apart, the most separable set in the family.
     --t-qa left the teal family entirely: türkis is the interface now, so a teal
     dot read as "selected" rather than as a type. It takes lime. */
  --t-source:#7d8b91; --t-atomic:#3d7ce0; --t-qa:#628f0f;
  --t-claim:#e2542c;  --t-summary:#a87a0c; --t-pattern:#8452d8;
  --t-finding:#cc2f80;
  --atomic-ink:#2f63b8;
  --pattern-ink:#6b3fb8;

  /* rgb triples — every alpha tint derives from these */
  --accent-rgb:45,199,210;    /* BRIGHT, see the header */
  --deep-rgb:196,226,231;     /* recessed beds; .55 over the bay → deeper aqua */
  --panel-rgb:210,234,239;
  --panel2-rgb:222,241,244;
  --red-rgb:208,47,63;
  --green-rgb:60,200,150;
  --claim-rgb:226,84,44;
  --atomic-rgb:61,124,224;
  --pattern-rgb:132,82,216;
  --ink-dimmer-rgb:86,111,117;
  --shadow-rgb:40,110,120;    /* a cool shadow; near-black bruises a light bay */
  --sheen-rgb:15,37,41;

  --line:rgba(15,37,41,.10);
  --line-soft:rgba(15,37,41,.06);
  --rust:#b8502c;
  /* heat runs pale sun → squeezed orange: the one ramp that should be warm */
  --hm1:#fff4e2; --hm2:#ffd9a8; --hm3:#f9a03c; --hm4:#d9660f;
  --s-ignored:#7a8b8f;
  /* the signature, and the only decorative colour in the theme: türkis entering
     on the left, sun leaving on the right */
  /* The wash across the top of the page — the palette's spectrum at page scale.
     It was five small radials centred ABOVE the viewport (`-12%`, 420px tall), so
     all that ever reached the screen was their faded bottom edge, and on a türkis
     page the türkis end of it was invisible anyway. Now: wider than the viewport,
     tall enough that the body of each stop lands ON the page, and weighted warm —
     the cool end has the bay water to sit against and needs less, the sun end is
     doing the work of putting orange on the screen. */
  /* Bigger than the viewport on purpose: the stops are the size of the page, so
     the top of every screen sits inside a colour rather than under the edge of
     one. Reaching to 46% vertically is what lets it read as light filling the
     upper page instead of a stripe along the top. */
  --lamp:none;   /* painted on the fixed layer instead — see --lamp-fixed */
  --lamp-fixed:
    radial-gradient(120vw 80vh at -8% -18%,rgba(45,199,210,.30),transparent 68%),
    radial-gradient(105vw 72vh at 26% -22%,rgba(143,227,233,.30),transparent 64%),
    radial-gradient(95vw 66vh at 56% -20%,rgba(111,203,143,.17),transparent 62%),
    radial-gradient(112vw 76vh at 86% -16%,rgba(250,150,60,.30),transparent 66%),
    radial-gradient(100vw 70vh at 110% -10%,rgba(255,190,90,.38),transparent 64%);
  /* …and the half that moves. Two big soft blooms only — the drift is meant to be
     noticed after a minute, not watched. See body::before in cockpit.css for why
     this is a separate layer and not an animated background. */
  --lamp-drift:
    radial-gradient(95vw 66vh at 12% 4%,rgba(45,199,210,.20),transparent 62%),
    radial-gradient(90vw 62vh at 90% -2%,rgba(250,150,60,.24),transparent 62%);
  --lift:0 1px 2px rgba(40,110,120,.10),0 10px 28px -14px rgba(40,110,120,.42);
  --veil:rgba(226,243,246,.75);
  --dial-on:rgba(45,199,210,.22);
  --graph-bg:#f0fafb;
  --graph-veil:rgba(255,255,255,.80);

  /* Attention that is not an error. This is the one palette that splits it from
     the accent: türkis means the interface, orange means look here. The note
     reads in INK on a peach bed with a bright orange border, so no orange text
     colour exists to collide with the amber --t-summary dot. */
  /* This palette FLOATS: a white card lifting off bay water. Without this the
     card and the page differ only by hue and the whole idea is invisible. */
  --panel-lift:0 1px 2px rgba(40,110,120,.10),0 10px 28px -14px rgba(40,110,120,.42);
  /* the palette's own spectrum, on the top edge of every card — türkis in, sun
     out. This is where the orange in "bay water and squeezed orange" actually
     lands on a page; before it, lagoon read as türkis and nothing else. */
  --card-flow:linear-gradient(90deg,#2dc7d2 0%,#8fe3e9 34%,#ffd9a8 68%,#f9a03c 100%);

  --attn-ink:#0f2529; --attn-rgb:250,150,60; --attn-bed:.20; --attn-bd:.62;
}

/* graphite hairlines, as in every light-family theme */
:root[data-theme="lagoon"]{
  --bd:1px solid rgba(15,37,41,.10);
  --bd-soft:1px solid rgba(15,37,41,.06);
  --bd-firm:1px solid rgba(15,37,41,.20);
  --wash:rgba(var(--accent-rgb),.12);
}
