/* ==========================================================================
   CellSMS Aurora — animated overlay theme for the live CellSMS panel.

   Loaded after the app stylesheet. Everything is scoped under
   html.cs-aurora (added by cellsms-aurora.js), so removing that class — or
   the two <link>/<script> tags — restores the original panel exactly.

   Design language
   - Ink canvas + slow aurora (cyan → violet → magenta) behind frosted glass.
   - Brand cyan stays the single action colour; violet only appears in
     gradients; emerald is reserved for "live / SMS arrived" signals.
   - Motion: ease-out-expo entrances (320–450 ms), 140 ms hovers, 40–60 s
     ambient loops. Every animation lives inside prefers-reduced-motion:
     no-preference, so reduced-motion users get a static, still-styled UI.
   ========================================================================== */

@property --cs-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}

/* --------------------------------------------------------------------------
   1. Tokens
   -------------------------------------------------------------------------- */
html.cs-aurora {
  --cs-cyan: 189 94% 55%;
  --cs-cyan-deep: 192 91% 40%;
  --cs-violet: 252 92% 70%;
  --cs-violet-deep: 255 70% 56%;
  --cs-magenta: 318 82% 64%;
  --cs-emerald: 158 78% 48%;
  --cs-amber: 38 96% 58%;
  --cs-rose: 350 88% 62%;

  --cs-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --cs-ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --cs-fast: 140ms;
  --cs-base: 320ms;
  --cs-slow: 450ms;

  --cs-radius-lg: 18px;
  --cs-radius-md: 12px;

  --cs-grad-action: linear-gradient(135deg, hsl(var(--cs-cyan)) 0%, hsl(206 95% 62%) 45%, hsl(var(--cs-violet)) 100%);
  --cs-grad-aurora: linear-gradient(100deg, hsl(var(--cs-cyan)), hsl(var(--cs-violet)), hsl(var(--cs-magenta)), hsl(var(--cs-cyan)));
  --cs-grad-ring: conic-gradient(from var(--cs-angle), hsl(var(--cs-cyan) / 0) 0deg, hsl(var(--cs-cyan)) 70deg, hsl(var(--cs-violet)) 150deg, hsl(var(--cs-magenta) / 0.9) 210deg, hsl(var(--cs-cyan) / 0) 300deg);

  --radius: 0.75rem;
  --font-sans: 'Inter Variable', 'Cairo Variable', system-ui, sans-serif;
}

/* Dark (default) — "Aurora Ink" */
html.cs-aurora.dark {
  --background: 230 47% 4%;
  --foreground: 226 60% 95%;
  --border: 230 30% 14%;
  --card: 229 42% 8%;
  --card-foreground: 226 50% 93%;
  --card-border: 230 30% 15%;
  --popover: 229 42% 8%;
  --popover-foreground: 226 50% 93%;
  --popover-border: 230 30% 18%;
  --primary: 189 94% 55%;
  --primary-foreground: 230 60% 6%;
  --secondary: 230 34% 13%;
  --secondary-foreground: 226 50% 92%;
  --muted: 230 32% 11%;
  --muted-foreground: 226 20% 64%;
  --accent: 252 50% 16%;
  --accent-foreground: 252 100% 88%;
  --input: 230 30% 17%;
  --ring: 189 94% 55%;
  --chart-1: 189 94% 55%;
  --chart-2: 252 92% 70%;
  --chart-3: 158 78% 48%;
  --chart-4: 38 96% 58%;
  --chart-5: 318 82% 64%;
  --sidebar: 232 52% 4%;
  --sidebar-foreground: 224 44% 90%;
  --sidebar-border: 232 32% 12%;
  --sidebar-primary: 189 94% 55%;
  --sidebar-accent: 232 36% 10%;
  --sidebar-ring: 189 94% 55%;
  --icon-default: 226 20% 60%;
  --icon-hover: 189 94% 62%;
  --icon-active: 189 94% 62%;

  --cs-canvas: #04060d;
  --cs-glass: 229 42% 9%;
  --cs-glass-alpha: 0.62;
  --cs-hairline: 230 40% 60% / 0.10;
  --cs-hairline-strong: 230 50% 70% / 0.18;
  --cs-highlight: 0 0% 100% / 0.06;
  --cs-shadow: 0 1px 0 hsl(0 0% 100% / 0.04) inset, 0 18px 40px -22px rgb(0 0 0 / 0.85), 0 2px 8px -2px rgb(0 0 0 / 0.5);
  --cs-aurora-opacity: 1;
  color-scheme: dark;
}

/* Light — "Aurora Pearl" */
html.cs-aurora:not(.dark) {
  --background: 228 45% 97%;
  --foreground: 230 45% 11%;
  --border: 228 26% 88%;
  --card: 0 0% 100%;
  --card-foreground: 230 45% 11%;
  --card-border: 228 30% 90%;
  --popover: 0 0% 100%;
  --popover-border: 228 26% 88%;
  --primary: 192 91% 38%;
  --primary-foreground: 0 0% 100%;
  --secondary: 228 40% 94%;
  --secondary-foreground: 230 45% 20%;
  --muted: 228 36% 94%;
  --muted-foreground: 228 14% 44%;
  --accent: 252 90% 96%;
  --accent-foreground: 255 60% 42%;
  --input: 228 26% 86%;
  --ring: 192 91% 38%;
  --chart-1: 192 91% 38%;
  --chart-2: 255 70% 56%;
  --chart-3: 158 72% 36%;
  --chart-4: 34 92% 48%;
  --chart-5: 318 70% 52%;

  --cs-canvas: #f4f6fc;
  --cs-glass: 0 0% 100%;
  --cs-glass-alpha: 0.72;
  --cs-hairline: 230 40% 30% / 0.10;
  --cs-hairline-strong: 230 40% 30% / 0.16;
  --cs-highlight: 0 0% 100% / 0.8;
  --cs-shadow: 0 1px 0 hsl(0 0% 100% / 0.9) inset, 0 14px 34px -22px rgb(30 40 90 / 0.35), 0 2px 6px -2px rgb(30 40 90 / 0.08);
  --cs-aurora-opacity: 0.55;
  color-scheme: light;
}

/* --------------------------------------------------------------------------
   2. Canvas, ambient aurora and grain
   -------------------------------------------------------------------------- */
html.cs-aurora,
html.cs-aurora body {
  background-color: var(--cs-canvas);
}

html.cs-aurora body {
  background-image: none;
  font-feature-settings: "cv11", "ss01", "ss03";
  text-rendering: optimizeLegibility;
}

html.cs-aurora ::selection {
  background: hsl(var(--cs-cyan) / 0.28);
  color: inherit;
}

/* Surfaces that used to paint an opaque canvas now let the aurora through. */
html.cs-aurora #root > div.min-h-screen.bg-background,
html.cs-aurora .min-h-screen.bg-background {
  background-color: transparent;
}

.cs-ambient {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  opacity: var(--cs-aurora-opacity, 1);
  transition: opacity 600ms var(--cs-ease-out);
}

html.cs-aurora #root {
  position: relative;
  z-index: 1;
}

.cs-ambient .cs-blob {
  position: absolute;
  width: 62vmax;
  height: 62vmax;
  border-radius: 50%;
  filter: blur(90px);
  opacity: 0.42;
  will-change: transform;
  mix-blend-mode: screen;
}

html.cs-aurora:not(.dark) .cs-ambient .cs-blob {
  mix-blend-mode: multiply;
  opacity: 0.30;
  filter: blur(110px);
}

.cs-ambient .cs-blob-1 { top: -30vmax; left: -18vmax; background: radial-gradient(circle at 50% 50%, hsl(var(--cs-cyan) / 0.55), transparent 62%); }
.cs-ambient .cs-blob-2 { top: -24vmax; right: -26vmax; background: radial-gradient(circle at 50% 50%, hsl(var(--cs-violet) / 0.50), transparent 62%); }
.cs-ambient .cs-blob-3 { bottom: -36vmax; left: 18vmax; background: radial-gradient(circle at 50% 50%, hsl(var(--cs-magenta) / 0.26), transparent 60%); }

.cs-ambient .cs-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(hsl(var(--foreground) / 0.045) 1px, transparent 1px),
    linear-gradient(90deg, hsl(var(--foreground) / 0.045) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000 20%, transparent 75%);
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000 20%, transparent 75%);
}

.cs-ambient .cs-grain {
  position: absolute;
  inset: -50%;
  opacity: 0.05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

html.cs-aurora:not(.dark) .cs-ambient .cs-grain { opacity: 0.035; }

.cs-ambient canvas.cs-network {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 900ms var(--cs-ease-out);
}

html.cs-aurora[data-cs-page="auth"] .cs-ambient canvas.cs-network { opacity: 1; }
html.cs-aurora[data-cs-page="auth"] .cs-ambient .cs-blob { opacity: 0.55; }

/* The old login decorations are replaced by the ambient layer. */
html.cs-aurora[data-cs-page="auth"] main.min-h-screen {
  background: transparent !important;
}
html.cs-aurora[data-cs-page="auth"] main.min-h-screen > div.absolute.inset-0,
html.cs-aurora[data-cs-page="auth"] .min-h-screen.bg-background > div.absolute.inset-0,
html.cs-aurora[data-cs-page="auth"] .min-h-screen.bg-background > div.absolute.rounded-full.blur-3xl {
  display: none;
}

/* --------------------------------------------------------------------------
   3. Glass surfaces
   -------------------------------------------------------------------------- */
html.cs-aurora .shadcn-card,
html.cs-aurora section.rounded-2xl.bg-card,
html.cs-aurora .rounded-2xl.border.bg-card {
  position: relative;
  isolation: isolate;
  background: linear-gradient(180deg,
      hsl(var(--cs-glass) / calc(var(--cs-glass-alpha) + 0.08)),
      hsl(var(--cs-glass) / var(--cs-glass-alpha)));
  -webkit-backdrop-filter: blur(16px) saturate(150%);
  backdrop-filter: blur(16px) saturate(150%);
  border-color: hsl(var(--cs-hairline));
  border-radius: var(--cs-radius-lg);
  box-shadow: var(--cs-shadow);
  transition: border-color var(--cs-base) var(--cs-ease-out),
    box-shadow var(--cs-base) var(--cs-ease-out),
    transform var(--cs-base) var(--cs-ease-out);
}

/* Cursor spotlight on the card edge (the JS feeds --cs-mx / --cs-my). */
html.cs-aurora .shadcn-card::before,
html.cs-aurora section.rounded-2xl.bg-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  pointer-events: none;
  z-index: -1;
  background:
    radial-gradient(420px circle at var(--cs-mx, 50%) var(--cs-my, -40%), hsl(var(--cs-cyan) / 0.55), transparent 42%),
    linear-gradient(180deg, hsl(var(--cs-hairline-strong)), transparent 60%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  opacity: 0.55;
  transition: opacity var(--cs-base) var(--cs-ease-out);
}

html.cs-aurora .shadcn-card:hover::before,
html.cs-aurora section.rounded-2xl.bg-card:hover::before {
  opacity: 1;
}

html.cs-aurora .shadcn-card:hover,
html.cs-aurora section.rounded-2xl.bg-card:hover {
  border-color: hsl(var(--cs-hairline-strong));
}

/* Popovers, menus, dialogs */
html.cs-aurora [role="dialog"],
html.cs-aurora [role="menu"],
html.cs-aurora [role="listbox"],
html.cs-aurora .bg-popover {
  background: hsl(var(--cs-glass) / 0.86) !important;
  -webkit-backdrop-filter: blur(22px) saturate(160%);
  backdrop-filter: blur(22px) saturate(160%);
  border-color: hsl(var(--cs-hairline-strong)) !important;
  box-shadow: 0 30px 60px -24px rgb(0 0 0 / 0.6), 0 0 0 1px hsl(var(--cs-hairline));
}

html.cs-aurora [role="dialog"] { border-radius: var(--cs-radius-lg); }

/* --------------------------------------------------------------------------
   4. Sidebar
   -------------------------------------------------------------------------- */
html.cs-aurora aside.fixed.bg-sidebar {
  background-color: hsl(232 52% 4% / 0.72) !important;
  background-image:
    radial-gradient(120% 50% at 0% 0%, hsl(var(--cs-cyan) / 0.14), transparent 60%),
    radial-gradient(90% 40% at 100% 100%, hsl(var(--cs-violet) / 0.12), transparent 60%),
    linear-gradient(180deg, hsl(230 45% 8% / 0.9), hsl(232 55% 4% / 0.95)) !important;
  -webkit-backdrop-filter: blur(24px) saturate(160%);
  backdrop-filter: blur(24px) saturate(160%);
  border-right-color: hsl(var(--cs-hairline)) !important;
}

/* Animated light line along the sidebar edge */
html.cs-aurora aside.fixed.bg-sidebar::after {
  content: "";
  position: absolute;
  top: 0;
  right: -1px;
  width: 1px;
  height: 100%;
  background: linear-gradient(180deg, transparent, hsl(var(--cs-cyan) / 0.7), hsl(var(--cs-violet) / 0.7), transparent);
  background-size: 100% 40%;
  background-repeat: no-repeat;
  opacity: 0.8;
  pointer-events: none;
}

html.cs-aurora aside section.rounded-2xl {
  background: hsl(0 0% 100% / 0.02);
  border-color: hsl(0 0% 100% / 0.05);
}

html.cs-aurora aside [data-testid^="menu-"] {
  transition: background-color var(--cs-fast) ease-out, color var(--cs-fast) ease-out, transform var(--cs-fast) ease-out;
}

html.cs-aurora aside [data-testid^="menu-"]:hover {
  transform: translateX(2px);
}

/* Active nav item: glass pill with a glowing indicator instead of solid cyan */
html.cs-aurora aside [data-testid^="menu-"].bg-cyan-400 {
  background: linear-gradient(90deg, hsl(var(--cs-cyan) / 0.20), hsl(var(--cs-violet) / 0.14)) !important;
  color: hsl(0 0% 100%) !important;
  box-shadow: inset 0 0 0 1px hsl(var(--cs-cyan) / 0.30), 0 8px 24px -10px hsl(var(--cs-cyan) / 0.55) !important;
}

html.cs-aurora aside [data-testid^="menu-"].bg-cyan-400 svg {
  color: hsl(var(--cs-cyan)) !important;
  filter: drop-shadow(0 0 6px hsl(var(--cs-cyan) / 0.7));
}

html.cs-aurora aside [data-testid^="menu-"].bg-cyan-400::before {
  content: "";
  position: absolute;
  left: -4px;
  top: 22%;
  bottom: 22%;
  width: 3px;
  border-radius: 3px;
  background: linear-gradient(180deg, hsl(var(--cs-cyan)), hsl(var(--cs-violet)));
  box-shadow: 0 0 12px hsl(var(--cs-cyan) / 0.8);
}

/* --------------------------------------------------------------------------
   5. Header
   -------------------------------------------------------------------------- */
html.cs-aurora header.sticky.top-0 {
  background: hsl(var(--background) / 0.55) !important;
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  backdrop-filter: blur(18px) saturate(160%);
  border-bottom-color: transparent !important;
}

html.cs-aurora header.sticky.top-0::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, hsl(var(--cs-cyan) / 0.45), hsl(var(--cs-violet) / 0.45), transparent);
  background-size: 200% 100%;
  opacity: 0.7;
}

/* The flat grid inside <main> is replaced by the ambient grid. */
html.cs-aurora main > div.pointer-events-none.absolute.inset-0 {
  display: none;
}

/* --------------------------------------------------------------------------
   6. Buttons
   -------------------------------------------------------------------------- */
html.cs-aurora button,
html.cs-aurora [role="button"],
html.cs-aurora a {
  -webkit-tap-highlight-color: transparent;
}

html.cs-aurora button.bg-primary,
html.cs-aurora a.bg-primary,
html.cs-aurora button.bg-cyan-400,
html.cs-aurora button.bg-cyan-500,
html.cs-aurora button.bg-cyan-600 {
  background-image:
    linear-gradient(110deg, transparent 35%, hsl(0 0% 100% / 0.38) 50%, transparent 65%),
    var(--cs-grad-action) !important;
  background-size: 250% 100%, 100% 100% !important;
  background-position: 130% 0, 0 0 !important;
  background-repeat: no-repeat !important;
  background-color: transparent !important;
  color: hsl(230 60% 6%) !important;
  border-color: hsl(0 0% 100% / 0.14) !important;
  font-weight: 700;
  box-shadow: 0 10px 28px -12px hsl(var(--cs-cyan) / 0.75), 0 0 0 1px hsl(var(--cs-cyan) / 0.25), inset 0 1px 0 hsl(0 0% 100% / 0.35) !important;
  transition: background-position 900ms var(--cs-ease-out), transform var(--cs-fast) ease-out, box-shadow var(--cs-base) var(--cs-ease-out), filter var(--cs-fast) ease-out !important;
}

html.cs-aurora button.bg-cyan-600.text-white {
  background-image:
    linear-gradient(110deg, transparent 35%, hsl(0 0% 100% / 0.28) 50%, transparent 65%),
    linear-gradient(135deg, hsl(var(--cs-cyan-deep)), hsl(var(--cs-violet-deep))) !important;
  color: #fff !important;
}

html.cs-aurora:not(.dark) button.bg-primary {
  background-image:
    linear-gradient(110deg, transparent 35%, hsl(0 0% 100% / 0.3) 50%, transparent 65%),
    linear-gradient(135deg, hsl(var(--cs-cyan-deep)), hsl(var(--cs-violet-deep))) !important;
  color: #fff !important;
}

html.cs-aurora button.bg-primary:hover:not(:disabled),
html.cs-aurora button.bg-cyan-400:hover:not(:disabled),
html.cs-aurora button.bg-cyan-500:hover:not(:disabled),
html.cs-aurora button.bg-cyan-600:hover:not(:disabled) {
  background-position: -30% 0, 0 0 !important;
  transform: translateY(-1px);
  box-shadow: 0 16px 34px -12px hsl(var(--cs-cyan) / 0.85), 0 0 0 1px hsl(var(--cs-cyan) / 0.4), inset 0 1px 0 hsl(0 0% 100% / 0.4) !important;
}

html.cs-aurora button:not(.absolute):not([role="switch"]):not([role="checkbox"]):active:not(:disabled) {
  transform: translateY(0) scale(0.98);
}

/* Outline / ghost buttons */
html.cs-aurora button.border:not(.bg-primary):not([class*="bg-cyan"]):not(.bg-destructive) {
  transition: background-color var(--cs-fast) ease-out, border-color var(--cs-fast) ease-out, color var(--cs-fast) ease-out, transform var(--cs-fast) ease-out;
}

html.cs-aurora.dark button.shadow-xs.border:not(.bg-primary):not([class*="bg-"]) {
  background: hsl(0 0% 100% / 0.03);
  border-color: hsl(var(--cs-hairline-strong)) !important;
}

html.cs-aurora.dark button.shadow-xs.border:not(.bg-primary):not([class*="bg-"]):hover:not(:disabled) {
  border-color: hsl(var(--cs-cyan) / 0.45) !important;
  background: hsl(var(--cs-cyan) / 0.06);
}

/* --------------------------------------------------------------------------
   7. Inputs and form controls
   -------------------------------------------------------------------------- */
html.cs-aurora input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
html.cs-aurora textarea,
html.cs-aurora button[role="combobox"] {
  background-color: hsl(var(--background) / 0.55) !important;
  border-color: hsl(var(--cs-hairline-strong)) !important;
  border-radius: var(--cs-radius-md);
  transition: border-color var(--cs-fast) ease-out, box-shadow var(--cs-base) var(--cs-ease-out), background-color var(--cs-fast) ease-out;
}

html.cs-aurora:not(.dark) input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
html.cs-aurora:not(.dark) textarea,
html.cs-aurora:not(.dark) button[role="combobox"] {
  background-color: hsl(0 0% 100% / 0.8) !important;
}

html.cs-aurora input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):hover,
html.cs-aurora textarea:hover {
  border-color: hsl(var(--cs-cyan) / 0.3) !important;
}

html.cs-aurora input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):focus-visible,
html.cs-aurora textarea:focus-visible,
html.cs-aurora button[role="combobox"]:focus-visible {
  outline: none !important;
  border-color: hsl(var(--cs-cyan) / 0.7) !important;
  box-shadow: 0 0 0 3px hsl(var(--cs-cyan) / 0.16), 0 0 26px -6px hsl(var(--cs-violet) / 0.55) !important;
  --tw-ring-shadow: 0 0 #0000 !important;
  --tw-ring-offset-shadow: 0 0 #0000 !important;
}

html.cs-aurora input::placeholder,
html.cs-aurora textarea::placeholder {
  color: hsl(var(--muted-foreground) / 0.65) !important;
}

/* Icons sitting inside inputs light up with the field */
html.cs-aurora .relative:focus-within > svg.absolute {
  color: hsl(var(--cs-cyan)) !important;
  transition: color var(--cs-fast) ease-out;
}

html.cs-aurora button[role="switch"][data-state="checked"] {
  background-image: var(--cs-grad-action);
  box-shadow: 0 0 14px -2px hsl(var(--cs-cyan) / 0.6);
}

html.cs-aurora button[role="checkbox"][data-state="checked"] {
  background-image: var(--cs-grad-action);
  border-color: transparent;
}

/* --------------------------------------------------------------------------
   8. Tables
   -------------------------------------------------------------------------- */
html.cs-aurora thead tr,
html.cs-aurora.dark thead tr {
  background: hsl(var(--foreground) / 0.025) !important;
}

html.cs-aurora th {
  color: hsl(var(--muted-foreground)) !important;
  letter-spacing: 0.08em;
}

html.cs-aurora tbody tr {
  transition: background-color var(--cs-fast) ease-out, box-shadow var(--cs-fast) ease-out;
}

html.cs-aurora tbody tr:hover {
  background: linear-gradient(90deg, hsl(var(--cs-cyan) / 0.07), hsl(var(--cs-violet) / 0.03) 60%, transparent) !important;
  box-shadow: inset 2px 0 0 hsl(var(--cs-cyan) / 0.8);
}

html.cs-aurora td.font-mono,
html.cs-aurora .font-mono {
  font-variant-numeric: tabular-nums;
}

/* --------------------------------------------------------------------------
   9. Badges, live dots and status
   -------------------------------------------------------------------------- */
html.cs-aurora .rounded-md.border.px-2\.5.py-0\.5.text-xs {
  border-radius: 999px;
}

html.cs-aurora span.rounded-full.bg-emerald-400,
html.cs-aurora span.rounded-full.bg-emerald-500 {
  position: relative;
  background: hsl(var(--cs-emerald)) !important;
  box-shadow: 0 0 10px hsl(var(--cs-emerald) / 0.9) !important;
}

html.cs-aurora span.rounded-full.bg-emerald-400::after,
html.cs-aurora span.rounded-full.bg-emerald-500::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 1px solid hsl(var(--cs-emerald) / 0.8);
  opacity: 0;
}

/* Gradient headline text used across the panel */
html.cs-aurora .bg-clip-text.text-transparent {
  background-image: var(--cs-grad-aurora) !important;
  background-size: 300% 100% !important;
}

/* Page title icon tiles */
html.cs-aurora .rounded-2xl.border.border-cyan-500\/20.bg-cyan-500\/10 {
  background: linear-gradient(135deg, hsl(var(--cs-cyan) / 0.18), hsl(var(--cs-violet) / 0.14)) !important;
  border-color: hsl(var(--cs-cyan) / 0.3) !important;
  box-shadow: 0 0 30px -8px hsl(var(--cs-cyan) / 0.55);
}

/* Stat numbers: tabular figures and a pulse when the value changes */
html.cs-aurora .text-3xl.font-black,
html.cs-aurora .text-2xl.font-black,
html.cs-aurora .text-2xl.font-bold {
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.03em;
}

/* Admin dashboard dark banner */
html.cs-aurora .bg-slate-900.text-white,
html.cs-aurora.dark .dark\:bg-cyan-950\/70 {
  background: linear-gradient(110deg, hsl(230 50% 9%), hsl(245 45% 14%) 55%, hsl(200 60% 12%)) !important;
}

/* App tiles (admin dashboard) */
html.cs-aurora button.group.rounded-xl.border {
  background: hsl(var(--cs-glass) / 0.45);
  transition: transform var(--cs-base) var(--cs-ease-out), border-color var(--cs-base) var(--cs-ease-out), box-shadow var(--cs-base) var(--cs-ease-out);
}

html.cs-aurora button.group.rounded-xl.border:hover {
  border-color: hsl(var(--cs-cyan) / 0.45) !important;
  box-shadow: 0 18px 36px -20px hsl(var(--cs-cyan) / 0.65), inset 0 0 0 1px hsl(var(--cs-cyan) / 0.12) !important;
  transform: translateY(-3px);
}

/* --------------------------------------------------------------------------
   10. Auth pages (login / sign-up)
   -------------------------------------------------------------------------- */
html.cs-aurora[data-cs-page="auth"] h1 {
  letter-spacing: -0.05em;
}

/* The auth card is the split panel (brand aside + form). It clips its
   children (overflow: hidden), so the aurora ring is drawn just inside the
   edge and the outer glow is a box-shadow. */
html.cs-aurora .cs-auth-card {
  position: relative;
  isolation: isolate;
  background: linear-gradient(160deg, hsl(var(--cs-glass) / 0.78), hsl(var(--cs-glass) / 0.58)) !important;
  -webkit-backdrop-filter: blur(26px) saturate(170%);
  backdrop-filter: blur(26px) saturate(170%);
  border: 1px solid hsl(var(--cs-hairline-strong)) !important;
  /* no !important here: the cs-halo animation must be able to override it */
  box-shadow:
    0 50px 140px -50px hsl(var(--cs-violet) / 0.55),
    0 0 90px -30px hsl(var(--cs-cyan) / 0.45),
    0 30px 80px -30px rgb(0 0 0 / 0.7),
    inset 0 1px 0 hsl(var(--cs-highlight));
}

/* Rotating aurora ring */
html.cs-aurora .cs-auth-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1.5px;
  background: var(--cs-grad-ring);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  pointer-events: none;
  z-index: 5;
}

/* Brand panel: living aurora behind the copy */
html.cs-aurora .cs-auth-card > aside {
  background-color: hsl(232 50% 6%) !important;
  background-image:
    radial-gradient(60% 45% at 15% 8%, hsl(var(--cs-cyan) / 0.34), transparent 70%),
    radial-gradient(55% 55% at 95% 95%, hsl(var(--cs-violet) / 0.36), transparent 70%),
    radial-gradient(35% 35% at 75% 35%, hsl(var(--cs-magenta) / 0.16), transparent 70%),
    linear-gradient(160deg, hsl(230 50% 9%), hsl(236 48% 5%)) !important;
  background-size: 160% 160%, 160% 160%, 160% 160%, 100% 100% !important;
  border-right-color: hsl(0 0% 100% / 0.08) !important;
}

html.cs-aurora .cs-auth-card > aside::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(hsl(0 0% 100% / 0.05) 1px, transparent 1px),
    linear-gradient(90deg, hsl(0 0% 100% / 0.05) 1px, transparent 1px);
  background-size: 36px 36px;
  mask-image: radial-gradient(ellipse 70% 60% at 30% 40%, #000 10%, transparent 75%);
  -webkit-mask-image: radial-gradient(ellipse 70% 60% at 30% 40%, #000 10%, transparent 75%);
}

html.cs-aurora .cs-auth-card > aside > * { position: relative; z-index: 1; }
html.cs-aurora .cs-auth-card > aside > div.absolute { position: absolute; z-index: 0; }

/* The two decorative circles become orbits with a travelling light */
html.cs-aurora .cs-auth-card > aside > div.absolute.rounded-full {
  border-color: hsl(var(--cs-cyan) / 0.22) !important;
  box-shadow: inset 0 0 40px -10px hsl(var(--cs-cyan) / 0.25);
}

html.cs-aurora .cs-auth-card > aside > div.absolute.rounded-full::after {
  content: "";
  position: absolute;
  top: -4px;
  left: 50%;
  width: 7px;
  height: 7px;
  margin-left: -3.5px;
  border-radius: 50%;
  background: hsl(var(--cs-cyan));
  box-shadow: 0 0 14px 2px hsl(var(--cs-cyan) / 0.9);
}

html.cs-aurora .cs-auth-card > aside > div.absolute.rounded-full + div.absolute.rounded-full::after {
  background: hsl(var(--cs-violet));
  box-shadow: 0 0 14px 2px hsl(var(--cs-violet) / 0.9);
}

/* Headline with light passing through it */
html.cs-aurora .cs-auth-card > aside h1 {
  background-image: linear-gradient(100deg, #fff 0%, #fff 30%, hsl(var(--cs-cyan)) 45%, hsl(var(--cs-violet)) 55%, #fff 70%, #fff 100%);
  background-size: 250% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Eyebrow pill */
html.cs-aurora .cs-auth-card > aside span.rounded-full.border {
  background-image: linear-gradient(110deg, hsl(var(--cs-cyan) / 0.08) 30%, hsl(var(--cs-cyan) / 0.26) 50%, hsl(var(--cs-cyan) / 0.08) 70%) !important;
  background-size: 250% 100% !important;
  border-color: hsl(var(--cs-cyan) / 0.3) !important;
}

/* Feature checklist */
html.cs-aurora .cs-auth-card > aside .bg-emerald-400\/10 {
  background: hsl(var(--cs-emerald) / 0.14) !important;
  box-shadow: 0 0 0 1px hsl(var(--cs-emerald) / 0.3), 0 0 18px -4px hsl(var(--cs-emerald) / 0.7);
}

/* Form panel: frosted glass instead of a flat page colour */
html.cs-aurora .cs-auth-card > div.bg-background {
  background: hsl(var(--cs-glass) / 0.5) !important;
}

html.cs-aurora .cs-auth-card p.uppercase.text-cyan-500 {
  background-image: linear-gradient(90deg, hsl(var(--cs-cyan)), hsl(var(--cs-violet)));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
}

/* Identity tile next to the form title */
html.cs-aurora .cs-auth-card .rounded-2xl.border.border-cyan-500\/15.bg-cyan-500\/10 {
  background: linear-gradient(135deg, hsl(var(--cs-cyan) / 0.2), hsl(var(--cs-violet) / 0.16)) !important;
  border-color: hsl(var(--cs-cyan) / 0.32) !important;
  box-shadow: 0 0 34px -8px hsl(var(--cs-cyan) / 0.6);
}

/* Password-rule chips on sign-up */
html.cs-aurora .cs-auth-card form span.rounded-full {
  transition: background-color var(--cs-base) var(--cs-ease-out), color var(--cs-base) var(--cs-ease-out), box-shadow var(--cs-base) var(--cs-ease-out);
}

html.cs-aurora .cs-auth-card form span.rounded-full.bg-emerald-500\/10 {
  box-shadow: 0 0 0 1px hsl(var(--cs-emerald) / 0.35), 0 0 14px -4px hsl(var(--cs-emerald) / 0.7);
}

/* Brand mark (sidebar and auth pages) */
html.cs-aurora [aria-label="CellSMS"] > div.rounded-xl {
  background: linear-gradient(135deg, hsl(var(--cs-cyan) / 0.22), hsl(var(--cs-violet) / 0.2)) !important;
  border-color: hsl(var(--cs-cyan) / 0.4) !important;
  box-shadow: 0 0 26px -4px hsl(var(--cs-cyan) / 0.55) !important;
}

html.cs-aurora .cs-auth-card h1,
html.cs-aurora .cs-auth-card h2 {
  text-transform: none;
}

html.cs-aurora [aria-label="CellSMS"] .leading-none span.text-cyan-400 {
  background-image: linear-gradient(90deg, hsl(var(--cs-cyan)), hsl(var(--cs-violet)));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
}

/* --------------------------------------------------------------------------
   11. Live SMS and monitoring
   -------------------------------------------------------------------------- */
html.cs-aurora .shadcn-card article {
  transition: background-color var(--cs-fast) ease-out;
}

html.cs-aurora .shadcn-card article:hover {
  background: linear-gradient(90deg, hsl(var(--cs-cyan) / 0.06), transparent 70%) !important;
}

/* Flag tile in the live stream */
html.cs-aurora .shadcn-card article .h-12.w-14.rounded-xl {
  position: relative;
  background: linear-gradient(145deg, hsl(var(--cs-glass) / 0.9), hsl(var(--cs-glass) / 0.5)) !important;
  border-color: hsl(var(--cs-hairline-strong)) !important;
}

/* Header status chip */
html.cs-aurora header .rounded-lg.border.bg-card\/60 {
  background: hsl(var(--cs-emerald) / 0.06) !important;
  border-color: hsl(var(--cs-emerald) / 0.25) !important;
}

/* Toasts */
html.cs-aurora li[role="status"],
html.cs-aurora [data-radix-toast-viewport] > li {
  background: hsl(var(--cs-glass) / 0.9) !important;
  -webkit-backdrop-filter: blur(20px) saturate(160%);
  backdrop-filter: blur(20px) saturate(160%);
  border-color: hsl(var(--cs-hairline-strong)) !important;
  border-radius: 14px !important;
  box-shadow: 0 24px 60px -20px rgb(0 0 0 / 0.6), inset 0 1px 0 hsl(var(--cs-highlight));
}

/* Scrollbars */
html.cs-aurora ::-webkit-scrollbar { width: 8px; height: 8px; }
html.cs-aurora ::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, hsl(var(--cs-cyan) / 0.35), hsl(var(--cs-violet) / 0.35));
  border: 2px solid transparent;
  background-clip: padding-box;
  border-radius: 8px;
}
html.cs-aurora ::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, hsl(var(--cs-cyan) / 0.6), hsl(var(--cs-violet) / 0.6));
  background-clip: padding-box;
}

/* Keyboard focus ring for everything interactive */
html.cs-aurora :is(a, button, [role="button"], [tabindex]):focus-visible {
  outline: 2px solid hsl(var(--cs-cyan) / 0.8);
  outline-offset: 2px;
}

/* ==========================================================================
   13. Structure — floating app frame, page heroes, feeds and flags
   (JS adds .cs-page-hero, .cs-hero-icon, .cs-stat-card, .cs-flag, .cs-reveal)
   ========================================================================== */

/* ---- Floating app frame on desktop ---------------------------------- */
@media (min-width: 1024px) {
  html.cs-aurora aside.fixed.bg-sidebar {
    top: 14px !important;
    bottom: 14px !important;
    left: 14px !important;
    height: auto !important;
    width: 278px !important;
    border-radius: 26px;
    border: 1px solid hsl(var(--cs-hairline-strong)) !important;
    box-shadow: 0 30px 80px -30px rgb(0 0 0 / 0.75), inset 0 1px 0 hsl(0 0% 100% / 0.07) !important;
  }

  /* the travelling light now runs along the top edge of the floating panel */
  html.cs-aurora aside.fixed.bg-sidebar::after {
    top: 0;
    left: 30px;
    right: 30px;
    width: auto;
    height: 1px;
    background: linear-gradient(90deg, transparent, hsl(var(--cs-cyan) / 0.9), hsl(var(--cs-violet) / 0.9), transparent);
    background-size: 45% 100%;
  }

  html.cs-aurora div.lg\:pl-\[292px\] {
    padding-left: calc(278px + 28px) !important;
    padding-right: 14px;
  }

  html.cs-aurora header.sticky.top-0 {
    top: 14px !important;
    margin-top: 14px;
    height: 66px !important;
    border-radius: 20px;
    border: 1px solid hsl(var(--cs-hairline-strong)) !important;
    box-shadow: 0 22px 50px -32px rgb(0 0 0 / 0.65), inset 0 1px 0 hsl(var(--cs-highlight));
  }

  html.cs-aurora header.sticky.top-0::after {
    left: 24px;
    right: 24px;
  }

  html.cs-aurora main.relative.flex-1 {
    padding: 24px 6px 16px !important;
  }
}

@media (max-width: 1023.98px) {
  html.cs-aurora header.sticky.top-0 {
    top: 8px !important;
    margin: 8px 8px 0;
    border-radius: 16px;
    border: 1px solid hsl(var(--cs-hairline-strong)) !important;
  }

  html.cs-aurora aside.fixed.bg-sidebar {
    border-radius: 0 24px 24px 0;
  }
}

/* ---- Sidebar internals ------------------------------------------------ */
html.cs-aurora aside.fixed.bg-sidebar > div:first-child {
  border-bottom-color: transparent !important;
}

/* identity card */
html.cs-aurora aside.fixed.bg-sidebar .rounded-2xl.border.border-cyan-300\/10 {
  background: linear-gradient(135deg, hsl(var(--cs-cyan) / 0.16), hsl(var(--cs-violet) / 0.13) 60%, hsl(var(--cs-magenta) / 0.08)) !important;
  border-color: hsl(var(--cs-cyan) / 0.24) !important;
  box-shadow: inset 0 1px 0 hsl(0 0% 100% / 0.08), 0 14px 34px -20px hsl(var(--cs-cyan) / 0.7) !important;
}

html.cs-aurora aside .ring-2.rounded-full {
  box-shadow: 0 0 0 2px hsl(var(--cs-cyan) / 0.55), 0 0 20px -2px hsl(var(--cs-cyan) / 0.65) !important;
}

/* nav groups lose their boxes; labels get a glowing dot */
html.cs-aurora aside section.rounded-2xl {
  background: transparent !important;
  border-color: transparent !important;
  padding: 2px !important;
}

html.cs-aurora aside section.rounded-2xl > div:first-child > span:first-child::before {
  content: "";
  display: inline-block;
  width: 5px;
  height: 5px;
  margin-right: 8px;
  vertical-align: 2px;
  border-radius: 50%;
  background: hsl(var(--cs-cyan));
  box-shadow: 0 0 8px hsl(var(--cs-cyan));
}

html.cs-aurora aside section.rounded-2xl + section.rounded-2xl > div:first-child > span:first-child::before { background: hsl(var(--cs-emerald)); box-shadow: 0 0 8px hsl(var(--cs-emerald)); }
html.cs-aurora aside section.rounded-2xl + section.rounded-2xl + section.rounded-2xl > div:first-child > span:first-child::before { background: hsl(var(--cs-violet)); box-shadow: 0 0 8px hsl(var(--cs-violet)); }
html.cs-aurora aside section.rounded-2xl + section.rounded-2xl + section.rounded-2xl + section.rounded-2xl > div:first-child > span:first-child::before { background: hsl(var(--cs-amber)); box-shadow: 0 0 8px hsl(var(--cs-amber)); }

/* nav icons sit in small glass chips */
html.cs-aurora aside div.group.cursor-pointer > svg:first-child {
  box-sizing: content-box;
  padding: 6px;
  border-radius: 10px;
  background: hsl(0 0% 100% / 0.045);
  border: 1px solid hsl(0 0% 100% / 0.05);
  transition: background var(--cs-base) var(--cs-ease-out), box-shadow var(--cs-base) var(--cs-ease-out), color var(--cs-fast) ease-out;
}

html.cs-aurora aside div.group.cursor-pointer {
  padding-top: 5px !important;
  padding-bottom: 5px !important;
  gap: 10px !important;
}

html.cs-aurora aside div.group.cursor-pointer:hover > svg:first-child {
  background: hsl(var(--cs-cyan) / 0.14);
  box-shadow: 0 0 16px -4px hsl(var(--cs-cyan) / 0.8);
}

html.cs-aurora aside [data-testid^="menu-"].bg-cyan-400 > svg:first-child {
  background: linear-gradient(135deg, hsl(var(--cs-cyan) / 0.38), hsl(var(--cs-violet) / 0.32));
  border-color: hsl(var(--cs-cyan) / 0.45);
  box-shadow: 0 0 18px -2px hsl(var(--cs-cyan) / 0.85);
  filter: none;
}

/* nav scroll area fades at its edges instead of cutting items off */
html.cs-aurora aside.fixed.bg-sidebar > div.flex-1.overflow-y-auto {
  mask-image: linear-gradient(to bottom, transparent 0, #000 14px, #000 calc(100% - 20px), transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 14px, #000 calc(100% - 20px), transparent 100%);
  scrollbar-width: thin;
}

/* collapsible branches (Routing, Access & configuration, Content, Billing) */
html.cs-aurora aside div.group.cursor-pointer[data-state="open"] {
  background: hsl(0 0% 100% / 0.045);
  color: hsl(var(--sidebar-foreground));
}

html.cs-aurora aside div.group.cursor-pointer > svg:last-child:not(:first-child) {
  opacity: 0.55;
  transition: transform var(--cs-base) var(--cs-ease-out), opacity var(--cs-fast) ease-out;
}

html.cs-aurora aside div.group.cursor-pointer:hover > svg:last-child:not(:first-child) {
  opacity: 1;
}

/* nested items hang off a glowing tree line */
html.cs-aurora aside .ml-5.border-l {
  position: relative;
  margin-left: 24px !important;
  padding-left: 12px !important;
  border-left-color: transparent !important;
}

html.cs-aurora aside .ml-5.border-l::before {
  content: "";
  position: absolute;
  left: -1px;
  top: 6px;
  bottom: 6px;
  width: 1px;
  border-radius: 1px;
  background: linear-gradient(180deg, hsl(var(--cs-cyan) / 0.6), hsl(var(--cs-violet) / 0.4), transparent);
}

html.cs-aurora aside .ml-5.border-l div.group.cursor-pointer > svg:first-child {
  padding: 4px;
  border-radius: 8px;
}

html.cs-aurora aside .ml-5.border-l div.group.cursor-pointer {
  padding-top: 3px !important;
  padding-bottom: 3px !important;
}

html.cs-aurora aside .ml-5.border-l div.group.cursor-pointer span {
  font-size: 0.82rem !important;
}

/* logout */
html.cs-aurora aside.fixed.bg-sidebar > div:last-child {
  border-top-color: hsl(0 0% 100% / 0.06) !important;
}

html.cs-aurora aside.fixed.bg-sidebar > div:last-child > button {
  border-radius: 12px;
  border: 1px solid hsl(var(--cs-rose) / 0.16);
  background: hsl(var(--cs-rose) / 0.05);
  transition: background var(--cs-fast) ease-out, box-shadow var(--cs-base) var(--cs-ease-out), border-color var(--cs-fast) ease-out;
}

html.cs-aurora aside.fixed.bg-sidebar > div:last-child > button:hover {
  background: hsl(var(--cs-rose) / 0.12) !important;
  border-color: hsl(var(--cs-rose) / 0.35);
  box-shadow: 0 0 20px -6px hsl(var(--cs-rose) / 0.7);
}

/* ---- Header internals ------------------------------------------------ */
html.cs-aurora header.sticky.top-0 p.text-sm.font-semibold {
  font-size: 1.02rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}

html.cs-aurora header.sticky.top-0 button.h-8.w-8 {
  width: 36px;
  height: 36px;
  border-radius: 12px !important;
  background: hsl(var(--foreground) / 0.04);
  border-color: hsl(var(--cs-hairline)) !important;
}

html.cs-aurora header.sticky.top-0 button.h-8.w-8:hover {
  background: hsl(var(--cs-cyan) / 0.12);
  border-color: hsl(var(--cs-cyan) / 0.35) !important;
}

/* ---- Page hero -------------------------------------------------------- */
html.cs-aurora .cs-page-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 22px 24px;
  border-radius: 24px;
  background:
    radial-gradient(120% 160% at 0% 0%, hsl(var(--cs-cyan) / 0.17), transparent 55%),
    radial-gradient(90% 140% at 100% 100%, hsl(var(--cs-violet) / 0.17), transparent 60%),
    hsl(var(--cs-glass) / 0.55);
  border: 1px solid hsl(var(--cs-hairline-strong));
  box-shadow: var(--cs-shadow);
  -webkit-backdrop-filter: blur(16px) saturate(150%);
  backdrop-filter: blur(16px) saturate(150%);
}

html.cs-aurora .cs-page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image:
    linear-gradient(hsl(var(--foreground) / 0.05) 1px, transparent 1px),
    linear-gradient(90deg, hsl(var(--foreground) / 0.05) 1px, transparent 1px);
  background-size: 28px 28px;
  mask-image: radial-gradient(ellipse 60% 90% at 85% 50%, #000, transparent 70%);
  -webkit-mask-image: radial-gradient(ellipse 60% 90% at 85% 50%, #000, transparent 70%);
}

/* soft light that drifts across the hero */
html.cs-aurora .cs-page-hero::after {
  content: "";
  position: absolute;
  top: -50%;
  bottom: -50%;
  left: -30%;
  width: 30%;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(100deg, transparent, hsl(var(--cs-cyan) / 0.10), hsl(var(--cs-violet) / 0.08), transparent);
  transform: skewX(-18deg);
}

html.cs-aurora .cs-page-hero h1 {
  font-size: clamp(1.45rem, 1.05rem + 1.1vw, 2.1rem) !important;
  font-weight: 900 !important;
  letter-spacing: -0.04em;
  line-height: 1.12;
  background-image: linear-gradient(100deg, hsl(var(--foreground)) 0%, hsl(var(--foreground)) 45%, hsl(var(--cs-cyan)) 72%, hsl(var(--cs-violet)) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

html.cs-aurora .cs-page-hero h1 + p,
html.cs-aurora .cs-page-hero p.text-xs.text-muted-foreground,
html.cs-aurora .cs-page-hero p.text-sm.text-muted-foreground {
  font-size: 0.86rem !important;
  margin-top: 4px;
}

html.cs-aurora .cs-hero-icon {
  position: relative;
  display: grid !important;
  place-items: center;
  width: 54px !important;
  height: 54px !important;
  padding: 0 !important;
  flex-shrink: 0;
  border-radius: 17px !important;
  background: linear-gradient(135deg, hsl(var(--cs-cyan) / 0.28), hsl(var(--cs-violet) / 0.24)) !important;
  border: 1px solid hsl(var(--cs-cyan) / 0.4) !important;
  box-shadow: 0 0 38px -8px hsl(var(--cs-cyan) / 0.75), inset 0 1px 0 hsl(0 0% 100% / 0.18);
}

html.cs-aurora .cs-hero-icon > svg {
  width: 26px !important;
  height: 26px !important;
  color: hsl(var(--cs-cyan)) !important;
  filter: drop-shadow(0 0 8px hsl(var(--cs-cyan) / 0.8));
}

html.cs-aurora:not(.dark) .cs-hero-icon > svg { color: hsl(var(--cs-cyan-deep)) !important; }

/* rotating ring around the hero icon */
html.cs-aurora .cs-hero-icon::after {
  content: "";
  position: absolute;
  inset: -5px;
  border-radius: 21px;
  padding: 1.5px;
  background: var(--cs-grad-ring);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  pointer-events: none;
}

/* ---- Stat cards --------------------------------------------------------- */
html.cs-aurora .cs-stat-card {
  overflow: hidden;
}

html.cs-aurora .cs-stat-card::after {
  content: "";
  position: absolute;
  top: 0;
  left: 18px;
  right: 18px;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, transparent, hsl(var(--cs-cyan)), hsl(var(--cs-violet)), transparent);
  opacity: 0.85;
  pointer-events: none;
}

html.cs-aurora .cs-stat-card.border-l-green-500::after,
html.cs-aurora .cs-stat-card.border-l-emerald-500::after { background: linear-gradient(90deg, transparent, hsl(var(--cs-emerald)), transparent); }
html.cs-aurora .cs-stat-card.border-l-amber-500::after,
html.cs-aurora .cs-stat-card.border-l-orange-500::after { background: linear-gradient(90deg, transparent, hsl(var(--cs-amber)), transparent); }
html.cs-aurora .cs-stat-card.border-l-red-500::after,
html.cs-aurora .cs-stat-card.border-l-rose-500::after { background: linear-gradient(90deg, transparent, hsl(var(--cs-rose)), transparent); }
html.cs-aurora .cs-stat-card.border-l-purple-500::after,
html.cs-aurora .cs-stat-card.border-l-violet-500::after { background: linear-gradient(90deg, transparent, hsl(var(--cs-violet)), transparent); }

html.cs-aurora .shadcn-card.border-l-4 {
  border-left-width: 1px !important;
  border-left-color: hsl(var(--cs-hairline)) !important;
}

html.cs-aurora .cs-stat-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 26px 50px -28px hsl(var(--cs-cyan) / 0.55), var(--cs-shadow);
}

html.cs-aurora .cs-stat-card .rounded-2xl.p-3\.5 {
  box-shadow: 0 0 0 1px hsl(var(--foreground) / 0.06), 0 12px 26px -14px currentColor;
  transition: transform var(--cs-base) var(--cs-ease-out);
}

html.cs-aurora .cs-stat-card:hover .rounded-2xl.p-3\.5 {
  transform: scale(1.08) rotate(-4deg);
}

/* ---- Tabs ---------------------------------------------------------------- */
html.cs-aurora [role="tablist"] {
  height: auto !important;
  padding: 5px !important;
  border-radius: 14px !important;
  background: hsl(var(--cs-glass) / 0.6) !important;
  border: 1px solid hsl(var(--cs-hairline-strong));
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

html.cs-aurora [role="tab"] {
  border-radius: 10px !important;
  font-weight: 600;
  transition: background var(--cs-base) var(--cs-ease-out), color var(--cs-fast) ease-out, box-shadow var(--cs-base) var(--cs-ease-out);
}

html.cs-aurora [role="tab"][data-state="active"] {
  background: linear-gradient(135deg, hsl(var(--cs-cyan) / 0.22), hsl(var(--cs-violet) / 0.18)) !important;
  color: hsl(var(--foreground)) !important;
  box-shadow: inset 0 0 0 1px hsl(var(--cs-cyan) / 0.35), 0 8px 22px -12px hsl(var(--cs-cyan) / 0.75) !important;
}

/* ---- Tables: soft zebra rows ------------------------------------------------ */
html.cs-aurora main tbody tr:nth-child(even) {
  background-color: hsl(var(--foreground) / 0.018);
}

/* ---- Live SMS feed: every message becomes its own card ------------------------ */
html.cs-aurora .shadcn-card .divide-y:has(> article) {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px;
}

html.cs-aurora .shadcn-card .divide-y > article {
  flex-shrink: 0;
  border-top-width: 0 !important;
  border-radius: 18px;
  border: 1px solid hsl(var(--cs-hairline)) !important;
  background: linear-gradient(180deg, hsl(var(--cs-glass) / 0.6), hsl(var(--cs-glass) / 0.38));
  padding: 16px 18px !important;
  overflow: hidden;
  transition: border-color var(--cs-base) var(--cs-ease-out), transform var(--cs-base) var(--cs-ease-out), box-shadow var(--cs-base) var(--cs-ease-out);
}

html.cs-aurora .shadcn-card .divide-y > article:hover {
  border-color: hsl(var(--cs-cyan) / 0.35) !important;
  transform: translateY(-1px);
  box-shadow: 0 18px 40px -26px hsl(var(--cs-cyan) / 0.7);
}

html.cs-aurora .shadcn-card article h4 {
  font-size: 1.02rem !important;
  letter-spacing: 0.01em;
}

/* number as a mono pill */
html.cs-aurora .shadcn-card article h4 + p.font-mono {
  display: inline-block;
  margin-top: 6px !important;
  padding: 2px 9px;
  border-radius: 8px;
  background: hsl(var(--foreground) / 0.05);
  border: 1px solid hsl(var(--cs-hairline));
  color: hsl(var(--foreground) / 0.8) !important;
  font-size: 0.8rem !important;
}

/* age as a live pill */
html.cs-aurora .shadcn-card article .shrink-0.text-right > p:first-child {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 999px;
  background: hsl(var(--cs-emerald) / 0.12);
  border: 1px solid hsl(var(--cs-emerald) / 0.28);
  color: hsl(var(--cs-emerald)) !important;
  font-size: 0.75rem !important;
}

/* message text as a chat bubble */
html.cs-aurora .shadcn-card article p.mt-3.text-sm {
  padding: 10px 14px;
  border-radius: 14px 14px 14px 4px;
  background: hsl(var(--cs-cyan) / 0.05);
  border: 1px solid hsl(var(--cs-cyan) / 0.12);
  color: hsl(var(--foreground) / 0.88) !important;
}

/* app badge as a pill */
html.cs-aurora .shadcn-card article span.rounded-lg.px-2\.5 {
  border-radius: 999px !important;
  padding-left: 6px !important;
  box-shadow: inset 0 0 0 1px hsl(var(--foreground) / 0.06);
}

html.cs-aurora .shadcn-card article span.rounded-lg.px-2\.5 > span:first-child {
  border-radius: 999px !important;
}

/* ---- Country flags (replacing emoji flags) --------------------------------- */
html.cs-aurora .cs-flag {
  position: relative;
  min-width: 28px;
  min-height: 21px;
  overflow: hidden;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
}

html.cs-aurora .cs-flag::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: var(--cs-flag) center / cover no-repeat, hsl(var(--muted));
}

/* non-rectangular flags are shown whole instead of cropped */
html.cs-aurora .cs-flag[data-cs-flag="np"]::before {
  background: var(--cs-flag) center / contain no-repeat, hsl(var(--muted) / 0.4);
}

/* the big flag next to the range name in the live feed (static) */
html.cs-aurora article .cs-flag.h-12.w-14 {
  width: 76px !important;
  height: 57px !important;
  border-radius: 12px !important;
  background: transparent !important;
  border-color: hsl(var(--cs-hairline-strong)) !important;
  box-shadow: 0 12px 26px -12px rgb(0 0 0 / 0.65), 0 0 0 1px hsl(var(--foreground) / 0.04);
}

html.cs-aurora article .cs-flag.h-12.w-14::before {
  inset: 2px;
  border-radius: 10px;
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.12);
}

/* inline flags (tables, lists) */
html.cs-aurora span.cs-flag {
  display: inline-block !important;
  width: 30px;
  height: 22px;
  flex-shrink: 0;
  border-radius: 5px;
  vertical-align: middle;
  box-shadow: 0 4px 10px -4px rgb(0 0 0 / 0.5);
}

/* ---- User / client portal (/user/*, /dashboard, agent pages) ------------------- */

/* SMS Dashboard summary cards removed on request; Top applications comes first */
html.cs-aurora .cs-portal-summary-hidden {
  display: none !important;
}

/* Active SMS: "My active numbers" removed on request; the stream takes the row */
html.cs-aurora .cs-portal-hidden {
  display: none !important;
}

html.cs-aurora .cs-single-column {
  grid-template-columns: minmax(0, 1fr) !important;
}

/* portal cards get the same lit edge as admin cards */
html.cs-aurora div.rounded-2xl.border.bg-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  pointer-events: none;
  z-index: -1;
  background:
    radial-gradient(420px circle at var(--cs-mx, 50%) var(--cs-my, -40%), hsl(var(--cs-cyan) / 0.55), transparent 42%),
    linear-gradient(180deg, hsl(var(--cs-hairline-strong)), transparent 60%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  opacity: 0.55;
  transition: opacity var(--cs-base) var(--cs-ease-out);
}

html.cs-aurora div.rounded-2xl.border.bg-card:hover::before { opacity: 1; }

/* hero eyebrow ("User workspace") */
html.cs-aurora .cs-page-hero p.uppercase {
  background-image: linear-gradient(90deg, hsl(var(--cs-cyan)), hsl(var(--cs-violet)));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
}

/* flag chip in front of range labels */
html.cs-aurora .cs-range-flag::before {
  content: "";
  display: inline-block;
  flex-shrink: 0;
  width: 20px;
  height: 15px;
  margin-right: 7px;
  vertical-align: -2px;
  border-radius: 3px;
  background: var(--cs-flag) center / cover no-repeat, hsl(var(--muted));
  box-shadow: 0 0 0 1px hsl(var(--foreground) / 0.12), 0 3px 8px -3px rgb(0 0 0 / 0.5);
}

/* flag images the portal already renders (cdnjs flag-icon-css) */
html.cs-aurora main img[src*="flag-icon-css"] {
  border-radius: 9px !important;
  box-shadow: 0 8px 18px -8px rgb(0 0 0 / 0.6), 0 0 0 1px hsl(var(--foreground) / 0.08) !important;
}

/* portal live stream: each message is a card with a message bubble */
html.cs-aurora main .divide-y:has(> div.p-4.transition-colors) {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px;
}

html.cs-aurora main .divide-y > div.p-4.transition-colors {
  position: relative;
  overflow: hidden;
  flex-shrink: 0; /* the list has a max-height; cards must scroll, not squash */
  border-top-width: 0 !important;
  border-radius: 16px;
  border: 1px solid hsl(var(--cs-hairline)) !important;
  background: linear-gradient(180deg, hsl(var(--cs-glass) / 0.6), hsl(var(--cs-glass) / 0.38));
  transition: border-color var(--cs-base) var(--cs-ease-out), transform var(--cs-base) var(--cs-ease-out), box-shadow var(--cs-base) var(--cs-ease-out);
}

html.cs-aurora main .divide-y > div.p-4.transition-colors:hover {
  border-color: hsl(var(--cs-cyan) / 0.35) !important;
  transform: translateY(-1px);
  box-shadow: 0 18px 40px -26px hsl(var(--cs-cyan) / 0.7);
}

html.cs-aurora main .divide-y > div.p-4.transition-colors:first-child {
  border-color: hsl(var(--cs-emerald) / 0.35) !important;
  box-shadow: 0 0 0 1px hsl(var(--cs-emerald) / 0.12), 0 16px 36px -26px hsl(var(--cs-emerald) / 0.8);
}

html.cs-aurora main .divide-y > div.p-4.transition-colors p.break-words {
  padding: 10px 14px;
  border-radius: 14px 14px 14px 4px;
  background: hsl(var(--cs-cyan) / 0.05);
  border: 1px solid hsl(var(--cs-cyan) / 0.12);
}

html.cs-aurora main .divide-y > div.p-4.transition-colors span.ml-auto {
  padding: 2px 9px;
  border-radius: 999px;
  background: hsl(var(--cs-emerald) / 0.1);
  border: 1px solid hsl(var(--cs-emerald) / 0.25);
  color: hsl(var(--cs-emerald)) !important;
}

/* number rows (active numbers, top ranges) */
html.cs-aurora main .divide-y > div.px-5 {
  transition: background var(--cs-fast) ease-out, box-shadow var(--cs-fast) ease-out;
}

html.cs-aurora main .divide-y > div.px-5:hover {
  background: linear-gradient(90deg, hsl(var(--cs-cyan) / 0.07), transparent 70%);
  box-shadow: inset 2px 0 0 hsl(var(--cs-cyan) / 0.8);
}

/* rank badge in "Top ranges" */
html.cs-aurora main .divide-y span.h-9.w-9.rounded-xl.font-mono {
  background: linear-gradient(135deg, hsl(var(--cs-cyan) / 0.24), hsl(var(--cs-violet) / 0.2)) !important;
  color: hsl(var(--foreground)) !important;
  box-shadow: inset 0 0 0 1px hsl(var(--cs-cyan) / 0.3);
}

/* application tiles (links) */
html.cs-aurora main a.group.border-b.border-r {
  transition: background var(--cs-base) var(--cs-ease-out);
}

html.cs-aurora main a.group.border-b.border-r:hover {
  background: radial-gradient(120% 120% at 0% 0%, hsl(var(--cs-cyan) / 0.1), transparent 60%) !important;
}

/* clickable range cards in "Add numbers" */
html.cs-aurora main .hover\:-translate-y-0\.5.rounded-2xl:hover {
  box-shadow: 0 22px 44px -26px hsl(var(--cs-cyan) / 0.7) !important;
}

/* usage progress bars */
html.cs-aurora main .h-1\.5.rounded-full.bg-muted > div.bg-cyan-500 {
  background: linear-gradient(90deg, hsl(var(--cs-cyan)), hsl(var(--cs-violet))) !important;
  box-shadow: 0 0 12px hsl(var(--cs-cyan) / 0.7);
}

/* empty states */
html.cs-aurora main .rounded-2xl.border-dashed {
  background: hsl(var(--cs-glass) / 0.35) !important;
  border-color: hsl(var(--cs-cyan) / 0.22) !important;
}

html.cs-aurora main .rounded-2xl.border-dashed span.rounded-2xl {
  background: linear-gradient(135deg, hsl(var(--cs-cyan) / 0.2), hsl(var(--cs-violet) / 0.16)) !important;
  color: hsl(var(--cs-cyan)) !important;
  box-shadow: 0 0 30px -8px hsl(var(--cs-cyan) / 0.7);
}

/* ---- Structure motion ---------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
  html.cs-aurora .cs-reveal:not(.cs-revealed) { opacity: 0; transform: translateY(16px); }
  html.cs-aurora .cs-reveal.cs-revealed { animation: cs-reveal-in 700ms var(--cs-ease-out) backwards; animation-delay: calc(var(--cs-ri, 0) * 60ms); }

  html.cs-aurora .cs-page-hero::after { animation: cs-hero-sweep 10s var(--cs-ease-in-out) infinite; }
  html.cs-aurora aside [data-state="open"] > .ml-5.border-l { animation: cs-fade-up 280ms var(--cs-ease-out) both; }
  html.cs-aurora .cs-hero-icon::after { animation: cs-spin 6s linear infinite; }

  html.cs-aurora .animate-pulse.bg-muted {
    background-image: linear-gradient(90deg, transparent, hsl(var(--foreground) / 0.07), transparent);
    background-size: 200% 100%;
    animation: cs-shimmer 1.4s linear infinite;
  }

  @media (min-width: 1024px) {
    /* body in the selector outranks the vertical scan declared in section 12 */
    html.cs-aurora body aside.fixed.bg-sidebar::after { animation: cs-edge-scan-x 8s linear infinite; }
  }
}

@keyframes cs-reveal-in { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes cs-hero-sweep { 0% { left: -40%; } 55%, 100% { left: 120%; } }
@keyframes cs-shimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }
@keyframes cs-edge-scan-x { from { background-position: -60% 0; } to { background-position: 160% 0; } }

/* ==========================================================================
   12. Motion — only when the user has not asked for reduced motion
   ========================================================================== */
@media (prefers-reduced-motion: no-preference) {
  .cs-ambient .cs-blob-1 { animation: cs-drift-1 48s var(--cs-ease-in-out) infinite alternate; }
  .cs-ambient .cs-blob-2 { animation: cs-drift-2 56s var(--cs-ease-in-out) infinite alternate; }
  .cs-ambient .cs-blob-3 { animation: cs-drift-3 62s var(--cs-ease-in-out) infinite alternate; }
  .cs-ambient .cs-grain { animation: cs-grain 1.2s steps(6) infinite; }

  html.cs-paused .cs-ambient *,
  html.cs-paused .cs-auth-card,
  html.cs-paused .cs-auth-card *,
  html.cs-paused .cs-auth-card::before {
    animation-play-state: paused !important;
  }

  html.cs-aurora aside.fixed.bg-sidebar::after { animation: cs-edge-scan 7s linear infinite; }
  html.cs-aurora header.sticky.top-0::after { animation: cs-sheen 9s linear infinite; }

  html.cs-aurora .bg-clip-text.text-transparent { animation: cs-flow 12s linear infinite; }

  html.cs-aurora span.rounded-full.bg-emerald-400::after,
  html.cs-aurora span.rounded-full.bg-emerald-500::after { animation: cs-ping 2.2s var(--cs-ease-out) infinite; }

  /* Auth: card rises and breathes, ring spins, brand panel drifts */
  html.cs-aurora .cs-auth-card { animation: cs-rise 800ms var(--cs-ease-out) both, cs-halo 9s ease-in-out 800ms infinite alternate; }
  html.cs-aurora .cs-auth-card::before { animation: cs-spin 7s linear infinite; }
  html.cs-aurora .cs-auth-card > aside { animation: cs-panel 22s ease-in-out infinite alternate; }
  html.cs-aurora .cs-auth-card > aside > div.absolute.rounded-full { animation: cs-orbit 28s linear infinite; }
  html.cs-aurora .cs-auth-card > aside > div.absolute.rounded-full + div.absolute.rounded-full { animation: cs-orbit 19s linear infinite reverse; }
  html.cs-aurora .cs-auth-card > aside h1 { animation: cs-fade-up 900ms var(--cs-ease-out) 150ms both, cs-flow 9s linear 1s infinite; }
  html.cs-aurora .cs-auth-card > aside span.rounded-full.border { animation: cs-flow 5s linear infinite; }
  html.cs-aurora .cs-stagger { animation: cs-fade-up 600ms var(--cs-ease-out) both; animation-delay: calc(180ms + var(--cs-i, 0) * 70ms); }
  html.cs-aurora [aria-label="CellSMS"] > div.rounded-xl > span.absolute { animation: cs-sheen 4s linear infinite; background-size: 200% 100%; }

  /* Route change */
  html.cs-aurora .cs-page-enter { animation: cs-page 420ms var(--cs-ease-out) both; }

  /* A new SMS in the live stream */
  html.cs-aurora .cs-sms-arrive { animation: cs-arrive 700ms var(--cs-ease-out) both; }
  html.cs-aurora .cs-sms-arrive::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(90deg, hsl(var(--cs-emerald) / 0.22), hsl(var(--cs-cyan) / 0.10) 40%, transparent 75%);
    animation: cs-flash 1800ms var(--cs-ease-out) both;
  }
  html.cs-aurora .cs-sms-arrive::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: linear-gradient(180deg, hsl(var(--cs-emerald)), hsl(var(--cs-cyan)));
    box-shadow: 0 0 14px hsl(var(--cs-emerald) / 0.9);
    animation: cs-flash 2600ms var(--cs-ease-out) both;
  }
  html.cs-aurora .cs-sms-arrive .h-12.w-14.rounded-xl::after {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    border: 2px solid hsl(var(--cs-emerald) / 0.9);
    animation: cs-ping-once 1100ms var(--cs-ease-out) 2 both;
  }

  /* A new row in a live table */
  html.cs-aurora tr.cs-row-arrive > td { animation: cs-row 1600ms var(--cs-ease-out) both; }

  /* A stat value changed */
  html.cs-aurora .cs-value-tick { animation: cs-tick 900ms var(--cs-ease-out); }
}

@keyframes cs-drift-1 { from { transform: translate3d(0, 0, 0) scale(1); } to { transform: translate3d(14vmax, 10vmax, 0) scale(1.15); } }
@keyframes cs-drift-2 { from { transform: translate3d(0, 0, 0) scale(1.05); } to { transform: translate3d(-16vmax, 14vmax, 0) scale(0.9); } }
@keyframes cs-drift-3 { from { transform: translate3d(0, 0, 0) scale(0.95); } to { transform: translate3d(12vmax, -14vmax, 0) scale(1.12); } }
@keyframes cs-grain { 0% { transform: translate(0, 0); } 20% { transform: translate(-3%, 2%); } 40% { transform: translate(2%, -3%); } 60% { transform: translate(-2%, -1%); } 80% { transform: translate(3%, 3%); } 100% { transform: translate(0, 0); } }
@keyframes cs-edge-scan { from { background-position: 0 -40%; } to { background-position: 0 140%; } }
@keyframes cs-sheen { from { background-position: 200% 0; } to { background-position: -200% 0; } }
@keyframes cs-spin { to { --cs-angle: 360deg; } }
@keyframes cs-halo {
  0% { box-shadow: 0 50px 140px -50px hsl(var(--cs-violet) / 0.55), 0 0 90px -30px hsl(var(--cs-cyan) / 0.45), 0 30px 80px -30px rgb(0 0 0 / 0.7), inset 0 1px 0 hsl(var(--cs-highlight)); }
  100% { box-shadow: 0 50px 140px -50px hsl(var(--cs-cyan) / 0.55), 0 0 110px -30px hsl(var(--cs-violet) / 0.55), 0 30px 80px -30px rgb(0 0 0 / 0.7), inset 0 1px 0 hsl(var(--cs-highlight)); }
}
@keyframes cs-panel {
  0% { background-position: 0% 0%, 100% 100%, 60% 30%, 0 0; }
  100% { background-position: 40% 30%, 60% 60%, 30% 70%, 0 0; }
}
@keyframes cs-orbit { to { transform: rotate(360deg); } }
@keyframes cs-flow { from { background-position: 0% 50%; } to { background-position: 300% 50%; } }
@keyframes cs-ping { 0% { transform: scale(1); opacity: 0.9; } 70%, 100% { transform: scale(3.2); opacity: 0; } }
@keyframes cs-ping-once { 0% { transform: scale(1); opacity: 1; } 100% { transform: scale(1.35); opacity: 0; } }
@keyframes cs-rise { from { opacity: 0; transform: translateY(18px) scale(0.98); filter: blur(6px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes cs-fade-up { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes cs-page { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes cs-arrive { from { opacity: 0; transform: translateY(-14px) scale(0.99); } to { opacity: 1; transform: none; } }
@keyframes cs-flash { 0% { opacity: 1; } 100% { opacity: 0; } }
@keyframes cs-row { 0% { background-color: hsl(var(--cs-emerald) / 0.18); } 100% { background-color: transparent; } }
@keyframes cs-tick { 0% { text-shadow: 0 0 0 transparent; color: inherit; } 25% { text-shadow: 0 0 22px hsl(var(--cs-cyan) / 0.9); color: hsl(var(--cs-cyan)); } 100% { text-shadow: 0 0 0 transparent; color: inherit; } }

/* User Dashboard "Test Live SMS": status tags on each message ----------- */
html.cs-aurora .cs-sms-status {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 1px 9px;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  border: 1px solid transparent;
}
html.cs-aurora .cs-sms-success { color: #047857; background: rgba(16, 185, 129, .12); border-color: rgba(16, 185, 129, .35); }
html.cs-aurora .cs-sms-failed { color: #be123c; background: rgba(244, 63, 94, .12); border-color: rgba(244, 63, 94, .35); }
html.cs-aurora .cs-sms-own { color: #0e7490; background: rgba(6, 182, 212, .12); border-color: rgba(6, 182, 212, .35); }
html.cs-aurora.dark .cs-sms-success { color: #6ee7b7; }
html.cs-aurora.dark .cs-sms-failed { color: #fda4af; }
html.cs-aurora.dark .cs-sms-own { color: #67e8f9; }

/* User Dashboard "Top ranges": top sender of each range ------------------ */
html.cs-aurora .cs-range-source {
  display: inline-flex;
  align-items: center;
  margin-top: 6px;
  border-radius: 999px;
  padding: 1px 9px;
  font-size: 11px;
  font-weight: 700;
  color: #6d28d9;
  background: rgba(139, 92, 246, .10);
  border: 1px solid rgba(139, 92, 246, .30);
}
html.cs-aurora.dark .cs-range-source { color: #c4b5fd; }
html.cs-aurora [data-cs-widget="add-numbers"] { align-self: center; }
