:root {
    --background: 220 20% 98%;
    --foreground: 222.2 47.4% 11.2%;

    --muted: 214 10% 92%;
    --muted-foreground: 220 8% 46.9%;

    --popover: 0 0% 100%;
    --popover-foreground: 222.2 47.4% 11.2%;

    /* Declared once, not per theme: this surface must not invert with the page
       the way --foreground does. */
    --hint: 220 14% 16%;
    --hint-foreground: 213 31% 91%;

    --border: 214.3 24% 88%;
    --input: 214.3 31.8% 91.4%;

    --divider: 220 13% 91%;

    --card: 220 20% 99%;
    --card-foreground: 222.2 47.4% 11.2%;

    --primary: 222.2 47.4% 6%;
    --primary-foreground: 210 40% 96%;

    --secondary: 210 40% 96.1%;
    --secondary-foreground: 222.2 47.4% 11.2%;

    --accent: 223 45% 91%;
    --accent-foreground: 223 70% 30%;

    --ring: 215 20.2% 65.1%;

    --radius: 0.5rem;

    --destructive: 0 84% 60%;
    --destructive-foreground: 0 84.2% 22%;

    --success: 142.1 70.6% 45.3%;
    --success-foreground: 142.1 70.6% 22%;

    --warning: 38 92% 50%;
    --warning-foreground: 38 92% 22%;

    /* Attention beacons (in-app guides): hotter than --warning, never used for state */
    --beacon: 30 100% 50%;

    --neutral: 220, 29%, 92%;
    --neutral-foreground: 230, 17%, 27%;

    --sidebar: 216 10% 94.5%;
    --sidebar-panel: 216 10% 96.25%;

    --litera: 223, 12%, 23%;
    --postilize: 220, 14%, 96%;

    --indigo: 239 84% 67%;

    /* Adoption-matrix product hues (TASK-5180). Light values ARE the Tailwind -500
       shades (teal / amber / indigo / rose). Fixed quadrant identity in the User
       Activity Matrix, so never reassign or reorder them. Exposed via
       tailwind.config.js as bg-cleanse / bg-signals / bg-outreach / bg-chat so
       callers never reach for a raw scale or an inline dark: variant. */
    --product-cleanse: 173 80% 40%;
    --product-signals: 38 92% 50%;
    --product-outreach: 239 84% 67%;
    --product-chat: 350 89% 60%;
}
.dark {
    --background: 218 22% 7%;
    --foreground: 213 31% 91%;

    --muted: 220 13% 13%;
    --muted-foreground: 215 10% 56.9%;

    --popover: 220 14% 16%;
    --popover-foreground: 215 20.2% 65.1%;

    --border: 216 16% 14%;
    --input: 216 34% 17%;
    --divider: 220 9% 26%;

    --card: 215 20% 8%;
    --card-foreground: 213 31% 91%;

    --primary: 210 40% 92%;
    --primary-foreground: 222.2 47.4% 6%;

    --secondary: 222.2 47.4% 11.2%;
    --secondary-foreground: 210 40% 98%;

    --accent: 223 30% 17%;
    --accent-foreground: 223 65% 85%;

    --ring: 216 34% 17%;

    --radius: 0.5rem;

    --destructive: 0 84% 60%;
    --destructive-foreground: 0 85.7% 97.3%;

    --success: 142.1 70.6% 25.3%;
    --success-foreground: 142.1 70.6% 90%;

    --warning: 38 92% 30%;
    --warning-foreground: 38 92% 90%;

    --beacon: 32 100% 62%;

    --neutral: 223, 17%, 27%;
    --neutral-foreground: 212, 38%, 91%;

    --sidebar: 220 14% 9%;
    --sidebar-panel: 220 14% 8%;

    --indigo: 239 84% 67%;

    --postilize: 220, 12%, 11%;

    /* Same four hues, re-stepped for the dark ground rather than opacity-faded:
       the light -500 values sit above the dark lightness band and glare. These
       land all four inside OKLCH L 0.48-0.67 against both --card and --muted,
       keeping adjacent-pair colour-blind separation above the safe floor. */
    --product-cleanse: 173 78% 32%;
    --product-signals: 38 88% 40%;
    --product-outreach: 239 72% 62%;
    --product-chat: 350 78% 50%;
}

