/* JUWEL OS · FORM LAYER ONLY (CODE FREEZE companion)
   ============================================================
   Founder law (2026-07-15): the BASE PRODUCT UI is frozen candy OS.
   This file may ONLY change form: colors, soft radii, focus rings,
   button polish, animation easing tokens.

   NEVER use this file to:
     - redesign windows / dock / chat / menubar layout
     - strip lava-lamp / floor bloom / liquid chrome
     - replace product apps or change how the OS works
     - turn Central into a different product shell

   Central = same juwel.ai product OS + additive company apps.

   NOTE (2026-07-27, REV9-FACET-APPS-CORE-01): the "frozen candy OS"
   doctrine above is HISTORICAL. FACET (docs/brand/BRAND_SYSTEM.md,
   2026-07-09) retired candy for all UI; the ENTITY alone stays canon
   (see os/juwel-os-liquid.css). Layout is still frozen — this file
   still may only change form.

   2026-07-17 (AX-TOKENS-01): now a DIFF-ONLY overlay. Stage/ink/
   line/edge/topaz/amber/motion tokens are inherited from
   juwel-ds.css (loaded first in os.html) — restating them here
   only drifted (--ink-3 .42 AA fail, --topaz-soft, --edge,
   --amber-glow, dark --topaz-deep). Kept below: the field/accent
   gem families this adoption layer normalizes (contract-tested)
   plus meadow-unique inks not present in ds.
   ============================================================ */
:root{
  /* field/accent gem families — normalized by this last adoption
     layer (contract: os/__tests__/humanist-meadow-contract.test.js);
     values mirror juwel-ds.css, do not drift them here */
  --sapphire:#5BB7FF;--sapphire-2:#83C9FF;--sapphire-deep:#2E8FD9;--sapphire-soft:#E3F1FC;
  --jade:#3ECF8E;--jade-2:#5FDCA4;--jade-deep:#22A96C;--jade-soft:#E2F6EC;
  --garnet:#C44B7A;--garnet-2:#D9709A;--garnet-deep:#A63862;--garnet-soft:#F8E6EE;
  /* --sapphire-ink/--jade-ink were restated here as "meadow-unique". Stale
     since 2026-07-27: ds.css owns both (light :52-53, dark :137-138). This
     file loads last and its :root TIES ds.css's :root, so the light literals
     won — a second seam, invisible to a designer swapping ds. Removed; values
     were byte-identical, so no-op today. (Dark never at risk: ds.css's
     html[data-theme="dark"] is (0,1,1) and outranks :root.) */
}
/* Soft button form only — keep candy .pbtn.amber as nectar for real JUWEL acts */
.pbtn{border-radius:var(--r-md);}
/* FILL-SHIFT keyboard-focus form (a11y) — does not restyle layout chrome.
   T1-W1-RING (2026-07-25), founder law: "no ring at all — a soft fill shift."
   This file LOADS LAST (os.html), so the old `outline:2px solid var(--focus-ring)
   !important` here repainted a near-black box over every app's softer focus.
   Replaced by: outline killed outright, the element's own background takes the
   warm --focus-fill tint, its own border deepens to --focus-edge, and a 1px
   hugging edge at offset 0 (radius-inheriting) carries WCAG 2.1 SC 1.4.11.
   The tint is an INSET WASH, not a background swap, so amber controls
   (.chat-send, .pbtn.amber) keep their nectar and merely lift.
   Contract pin: outline:none!important + inset 0 0 0 999px var(--focus-wash)
   (humanist-meadow-contract / focus-ring-system). */
.pbtn:focus-visible,
button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible{
  outline:none!important;
  outline-offset:0!important;
  border-color:var(--focus-edge);
  box-shadow:inset 0 0 0 999px var(--focus-wash),0 0 0 1px var(--focus-edge);
}
/* WAVE-0 residual (2026-07-25): text fields must not paint a hard ink box.
   Root cause: --focus-ring = --ink (#1A1612) + 2px solid !important on every
   input/textarea/select stacked on top of soft mineral border+glow in apps.
   Kill outline on fields; local soft rings (or fallback below) keep a11y.
   Same-element later rule + !important beats the contract block above. */
input:focus-visible,
textarea:focus-visible,
select:focus-visible{
  outline:none!important;
  outline-offset:0!important;
}
/* Soft mineral fallback when a field has no local :focus chrome — 3px
   whisper ring, never solid ink-1 frame. Does not use !important so
   apps/actions/gsuite soft box-shadows still win when present. */
input:focus-visible,
textarea:focus-visible,
select:focus-visible{
  border-color:color-mix(in srgb,var(--ink-1) 28%,var(--line));
  box-shadow:0 0 0 3px color-mix(in srgb,var(--ink-1) 10%,transparent);
}
/* Shell composers own topaz meniscus (shell !important); keep form layer
   from flashing hard ink before/without shell override. */
.fd-composer:focus-within,#chatbar.focused{
  border-color:var(--topaz);
}
/* Respect reduced motion at the form layer only.
   FACET §7 asks for crossfades, NOT "no motion at all": a blanket
   transition:none here also killed the glint's own reduced-motion path
   (juwel-ds.css .glint, a 150ms opacity pulse), so a reduced-motion user
   got no signal that JUWEL acted or that a receipt was signed. Animations
   still die; transitions collapse to a 150ms opacity crossfade. */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-property:opacity!important;transition-duration:.15s!important;scroll-behavior:auto!important;}
}
/* Do not flatten windows, bubbles, dock, or liquid chrome here. */
