@layer theme { /* Alert panel: a left accent stripe on a panel card; the type variants recolour the frame. * `background: var(--fs-panel)` used to be repeated per variant to out-specify base's * gradients — a layer does that for free (theme beats base whatever the specificity), so * one rule does it. */ .alert-message { padding: var(--fs-space-3-5) var(--fs-space-4); border-radius: var(--fs-radius-lg); border: var(--fs-hairline); /* logical: the stripe marks the READING start of the alert, so it swaps sides with the * document (LuCI ships ar/fa/he catalogues) — physical, it sat on the far edge in RTL. */ border-inline-start: 3px solid var(--fs-accent); /* The surface is OPAQUE and the status tint rides on top of it. A variant that replaces the * background with `var(--fs-*-fill)` paints an 18% wash with nothing behind it — invisible on * a flat canvas, and transparent to the wallpaper under Appearance -> Wallpaper, where the * tile reads straight through every status alert. * * So --fs-panel stays the background-COLOUR for every variant and the tint is a * background-IMAGE layer over it. The named `-fill` step is unchanged, so an untinted router * sees the same pixels, and the local `--fs-alert-tint` is what keeps this one rule instead * of six `background:` overrides that each have to re-state the panel. */ background-color: var(--fs-panel); background-image: linear-gradient(var(--fs-alert-tint, transparent), var(--fs-alert-tint, transparent)); color: var(--fs-text); gap: var(--fs-space-3); } /* ---- status lives in the stripe and the surface; the ring is always neutral ---- * * Split between `border-color` (all four sides, including the 3px stripe) and * `border-left-color` (the stripe alone), four of seven alerts wear a coloured ring and three a * grey one — a hierarchy nobody designed, with the difference between "not applied yet" and * "this is about to fail" hanging on one pixel of frame. * * The surface carries it instead, at the ladder's named `-fill` step, which * docs/design-system.md describes as the callout surface — exactly what an alert is. Not a fresh * `color-mix()`: an unnamed level is how four spellings of one tint appeared here before. * * `:not(.btn)` is load-bearing: `admin/system/flash` renders its confirm control as * `