/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
@layer properties {
  @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {
    *, :before, :after, ::backdrop {
      --tw-translate-x: 0;
      --tw-translate-y: 0;
      --tw-translate-z: 0;
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-space-y-reverse: 0;
      --tw-divide-y-reverse: 0;
      --tw-border-style: solid;
      --tw-gradient-position: initial;
      --tw-gradient-from: #0000;
      --tw-gradient-via: #0000;
      --tw-gradient-to: #0000;
      --tw-gradient-stops: initial;
      --tw-gradient-via-stops: initial;
      --tw-gradient-from-position: 0%;
      --tw-gradient-via-position: 50%;
      --tw-gradient-to-position: 100%;
      --tw-leading: initial;
      --tw-font-weight: initial;
      --tw-tracking: initial;
      --tw-ordinal: initial;
      --tw-slashed-zero: initial;
      --tw-numeric-figure: initial;
      --tw-numeric-spacing: initial;
      --tw-numeric-fraction: initial;
      --tw-shadow: 0 0 #0000;
      --tw-shadow-color: initial;
      --tw-shadow-alpha: 100%;
      --tw-inset-shadow: 0 0 #0000;
      --tw-inset-shadow-color: initial;
      --tw-inset-shadow-alpha: 100%;
      --tw-ring-color: initial;
      --tw-ring-shadow: 0 0 #0000;
      --tw-inset-ring-color: initial;
      --tw-inset-ring-shadow: 0 0 #0000;
      --tw-ring-inset: initial;
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-offset-shadow: 0 0 #0000;
      --tw-outline-style: solid;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
      --tw-backdrop-blur: initial;
      --tw-backdrop-brightness: initial;
      --tw-backdrop-contrast: initial;
      --tw-backdrop-grayscale: initial;
      --tw-backdrop-hue-rotate: initial;
      --tw-backdrop-invert: initial;
      --tw-backdrop-opacity: initial;
      --tw-backdrop-saturate: initial;
      --tw-backdrop-sepia: initial;
      --tw-duration: initial;
      --tw-ease: initial;
      --tw-scale-x: 1;
      --tw-scale-y: 1;
      --tw-scale-z: 1;
    }
  }
}

@layer theme {
  :root, :host {
    --font-sans: "Inter", -apple-system, system-ui, sans-serif;
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
      "Courier New", monospace;
    --color-red-400: oklch(70.4% .191 22.216);
    --color-red-500: oklch(63.7% .237 25.331);
    --color-red-600: oklch(57.7% .245 27.325);
    --color-orange-400: oklch(75% .183 55.934);
    --color-orange-500: oklch(70.5% .213 47.604);
    --color-amber-300: oklch(87.9% .169 91.605);
    --color-amber-400: oklch(82.8% .189 84.429);
    --color-amber-500: oklch(76.9% .188 70.08);
    --color-amber-600: oklch(66.6% .179 58.318);
    --color-yellow-400: oklch(85.2% .199 91.936);
    --color-green-400: oklch(79.2% .209 151.711);
    --color-emerald-400: oklch(76.5% .177 163.223);
    --color-emerald-500: oklch(69.6% .17 162.48);
    --color-emerald-600: oklch(59.6% .145 163.225);
    --color-cyan-600: oklch(60.9% .126 221.723);
    --color-blue-400: oklch(70.7% .165 254.624);
    --color-blue-500: oklch(62.3% .214 259.815);
    --color-blue-600: oklch(54.6% .245 262.881);
    --color-indigo-500: oklch(58.5% .233 277.117);
    --color-indigo-600: oklch(51.1% .262 276.966);
    --color-violet-400: oklch(70.2% .183 293.541);
    --color-violet-500: oklch(60.6% .25 292.717);
    --color-violet-600: oklch(54.1% .281 293.009);
    --color-pink-600: oklch(59.2% .249 .584);
    --color-rose-400: oklch(71.2% .194 13.428);
    --color-rose-600: oklch(58.6% .253 17.585);
    --color-gray-400: oklch(70.7% .022 261.325);
    --color-gray-500: oklch(55.1% .027 264.364);
    --color-black: #000;
    --color-white: #fff;
    --spacing: .25rem;
    --container-xs: 20rem;
    --container-sm: 24rem;
    --container-md: 28rem;
    --container-lg: 32rem;
    --container-2xl: 42rem;
    --container-4xl: 56rem;
    --container-5xl: 64rem;
    --text-xs: .75rem;
    --text-xs--line-height: calc(1 / .75);
    --text-sm: .875rem;
    --text-sm--line-height: calc(1.25 / .875);
    --text-base: 1rem;
    --text-base--line-height: calc(1.5 / 1);
    --text-lg: 1.125rem;
    --text-lg--line-height: calc(1.75 / 1.125);
    --text-xl: 1.25rem;
    --text-xl--line-height: calc(1.75 / 1.25);
    --text-2xl: 1.5rem;
    --text-2xl--line-height: calc(2 / 1.5);
    --text-3xl: 1.875rem;
    --text-3xl--line-height: calc(2.25 / 1.875);
    --text-4xl: 2.25rem;
    --text-4xl--line-height: calc(2.5 / 2.25);
    --text-8xl: 6rem;
    --text-8xl--line-height: 1;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --tracking-wide: .025em;
    --tracking-wider: .05em;
    --leading-relaxed: 1.625;
    --radius-sm: .25rem;
    --radius-md: .375rem;
    --radius-lg: .5rem;
    --radius-xl: .75rem;
    --radius-2xl: 1rem;
    --shadow-sm: 0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;
    --shadow-md: 0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;
    --shadow-lg: 0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;
    --shadow-xl: 0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;
    --ease-out: cubic-bezier(0, 0, .2, 1);
    --ease-in-out: cubic-bezier(.4, 0, .2, 1);
    --animate-spin: spin 1s linear infinite;
    --animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;
    --blur-md: 12px;
    --blur-lg: 16px;
    --blur-xl: 24px;
    --blur-3xl: 64px;
    --default-transition-duration: .15s;
    --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
    --color-primary: var(--provider-light, #14b8cd);
    --color-primary-hover: var(--provider-primary, #0891b2);
    --color-primary-light: var(--provider-soft, #14b8cd26);
    --color-primary-glow: var(--provider-glow, #14b8cd14);
    --color-accent-start: var(--provider-primary, #14b8cd);
    --color-accent-mid: var(--provider-light, #22d3ee);
    --color-accent-end: var(--provider-light, #67e8f9);
    --color-background: #0d0d0d;
    --color-surface: #171717;
    --color-surface-2: #1e1e1e;
    --color-surface-3: #2a2a2a;
    --color-border: #2f2f2f;
    --color-border-subtle: #252525;
    --color-border-hover: #404040;
    --color-border-strong: #525252;
    --color-text-primary: #ececec;
    --color-text-secondary: #b4b4b4;
    --color-text-muted: #8e8e8e;
    --color-text-meta: #8e8e8e;
    --color-text-dim: #676767;
    --color-success: #10b981;
    --color-warning: #f59e0b;
    --color-danger: #ef4444;
    --color-info: #3b82f6;
    --color-glass: #0d0d0de6;
    --color-glass-border: #ffffff0f;
    --color-glass-hover: #ffffff0a;
  }
}

@layer base {
  *, :after, :before, ::backdrop {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  ::file-selector-button {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  html, :host {
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    line-height: 1.5;
    font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }

  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }

  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }

  h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
  }

  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    -webkit-text-decoration: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }

  b, strong {
    font-weight: bolder;
  }

  code, kbd, samp, pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }

  small {
    font-size: 80%;
  }

  sub, sup {
    vertical-align: baseline;
    font-size: 75%;
    line-height: 0;
    position: relative;
  }

  sub {
    bottom: -.25em;
  }

  sup {
    top: -.5em;
  }

  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }

  :-moz-focusring {
    outline: auto;
  }

  progress {
    vertical-align: baseline;
  }

  summary {
    display: list-item;
  }

  ol, ul, menu {
    list-style: none;
  }

  img, svg, video, canvas, audio, iframe, embed, object {
    vertical-align: middle;
    display: block;
  }

  img, video {
    max-width: 100%;
    height: auto;
  }

  button, input, select, optgroup, textarea {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }

  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }

  ::file-selector-button {
    margin-inline-end: 4px;
  }

  ::placeholder {
    opacity: 1;
  }

  @supports (not ((-webkit-appearance: -apple-pay-button))) or (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentColor;
    }

    @supports (color: color-mix(in lab, red, red)) {
      ::placeholder {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }

  textarea {
    resize: vertical;
  }

  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }

  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }

  ::-webkit-datetime-edit {
    display: inline-flex;
  }

  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }

  ::-webkit-datetime-edit {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-year-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-month-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-day-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-hour-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-minute-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-second-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-millisecond-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }

  ::-webkit-calendar-picker-indicator {
    line-height: 1;
  }

  :-moz-ui-invalid {
    box-shadow: none;
  }

  button, input:where([type="button"], [type="reset"], [type="submit"]) {
    appearance: button;
  }

  ::file-selector-button {
    appearance: button;
  }

  ::-webkit-inner-spin-button {
    height: auto;
  }

  ::-webkit-outer-spin-button {
    height: auto;
  }

  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }
}

@layer components;

@layer utilities {
  .pointer-events-none {
    pointer-events: none;
  }

  .collapse {
    visibility: collapse;
  }

  .invisible {
    visibility: hidden;
  }

  .visible {
    visibility: visible;
  }

  .\!static {
    position: static !important;
  }

  .absolute {
    position: absolute;
  }

  .fixed {
    position: fixed;
  }

  .relative {
    position: relative;
  }

  .static {
    position: static;
  }

  .sticky {
    position: sticky;
  }

  .inset-0 {
    inset: calc(var(--spacing) * 0);
  }

  .inset-y-0 {
    inset-block: calc(var(--spacing) * 0);
  }

  .-top-1\/2 {
    top: -50%;
  }

  .top-0 {
    top: calc(var(--spacing) * 0);
  }

  .top-1\/2 {
    top: 50%;
  }

  .top-2 {
    top: calc(var(--spacing) * 2);
  }

  .top-3 {
    top: calc(var(--spacing) * 3);
  }

  .top-4 {
    top: calc(var(--spacing) * 4);
  }

  .top-full {
    top: 100%;
  }

  .-right-1\/2 {
    right: -50%;
  }

  .-right-1\/4 {
    right: -25%;
  }

  .right-0 {
    right: calc(var(--spacing) * 0);
  }

  .right-2 {
    right: calc(var(--spacing) * 2);
  }

  .right-3 {
    right: calc(var(--spacing) * 3);
  }

  .right-4 {
    right: calc(var(--spacing) * 4);
  }

  .right-full {
    right: 100%;
  }

  .-bottom-1\/2 {
    bottom: -50%;
  }

  .bottom-4 {
    bottom: calc(var(--spacing) * 4);
  }

  .bottom-full {
    bottom: 100%;
  }

  .-left-1\/2 {
    left: -50%;
  }

  .-left-1\/4 {
    left: -25%;
  }

  .left-0 {
    left: calc(var(--spacing) * 0);
  }

  .left-1\/2 {
    left: 50%;
  }

  .left-2\.5 {
    left: calc(var(--spacing) * 2.5);
  }

  .left-3 {
    left: calc(var(--spacing) * 3);
  }

  .left-full {
    left: 100%;
  }

  .z-10 {
    z-index: 10;
  }

  .z-40 {
    z-index: 40;
  }

  .z-50 {
    z-index: 50;
  }

  .z-\[100\] {
    z-index: 100;
  }

  .col-span-1 {
    grid-column: span 1 / span 1;
  }

  .col-span-2 {
    grid-column: span 2 / span 2;
  }

  .col-span-3 {
    grid-column: span 3 / span 3;
  }

  .col-span-4 {
    grid-column: span 4 / span 4;
  }

  .container {
    width: 100%;
  }

  @media (min-width: 40rem) {
    .container {
      max-width: 40rem;
    }
  }

  @media (min-width: 48rem) {
    .container {
      max-width: 48rem;
    }
  }

  @media (min-width: 64rem) {
    .container {
      max-width: 64rem;
    }
  }

  @media (min-width: 80rem) {
    .container {
      max-width: 80rem;
    }
  }

  @media (min-width: 96rem) {
    .container {
      max-width: 96rem;
    }
  }

  .-m-4 {
    margin: calc(var(--spacing) * -4);
  }

  .mx-4 {
    margin-inline: calc(var(--spacing) * 4);
  }

  .mx-8 {
    margin-inline: calc(var(--spacing) * 8);
  }

  .mx-auto {
    margin-inline: auto;
  }

  .my-1 {
    margin-block: calc(var(--spacing) * 1);
  }

  .-mt-2 {
    margin-top: calc(var(--spacing) * -2);
  }

  .mt-0\.5 {
    margin-top: calc(var(--spacing) * .5);
  }

  .mt-1 {
    margin-top: calc(var(--spacing) * 1);
  }

  .mt-1\.5 {
    margin-top: calc(var(--spacing) * 1.5);
  }

  .mt-2 {
    margin-top: calc(var(--spacing) * 2);
  }

  .mt-3 {
    margin-top: calc(var(--spacing) * 3);
  }

  .mt-4 {
    margin-top: calc(var(--spacing) * 4);
  }

  .mt-5 {
    margin-top: calc(var(--spacing) * 5);
  }

  .mt-6 {
    margin-top: calc(var(--spacing) * 6);
  }

  .mt-16 {
    margin-top: calc(var(--spacing) * 16);
  }

  .mr-2 {
    margin-right: calc(var(--spacing) * 2);
  }

  .mb-1 {
    margin-bottom: calc(var(--spacing) * 1);
  }

  .mb-1\.5 {
    margin-bottom: calc(var(--spacing) * 1.5);
  }

  .mb-2 {
    margin-bottom: calc(var(--spacing) * 2);
  }

  .mb-3 {
    margin-bottom: calc(var(--spacing) * 3);
  }

  .mb-4 {
    margin-bottom: calc(var(--spacing) * 4);
  }

  .mb-5 {
    margin-bottom: calc(var(--spacing) * 5);
  }

  .mb-6 {
    margin-bottom: calc(var(--spacing) * 6);
  }

  .mb-8 {
    margin-bottom: calc(var(--spacing) * 8);
  }

  .mb-10 {
    margin-bottom: calc(var(--spacing) * 10);
  }

  .ml-1 {
    margin-left: calc(var(--spacing) * 1);
  }

  .ml-1\.5 {
    margin-left: calc(var(--spacing) * 1.5);
  }

  .ml-2 {
    margin-left: calc(var(--spacing) * 2);
  }

  .ml-7 {
    margin-left: calc(var(--spacing) * 7);
  }

  .ml-auto {
    margin-left: auto;
  }

  .line-clamp-1 {
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    display: -webkit-box;
    overflow: hidden;
  }

  .\!inline {
    display: inline !important;
  }

  .block {
    display: block;
  }

  .contents {
    display: contents;
  }

  .flex {
    display: flex;
  }

  .grid {
    display: grid;
  }

  .hidden {
    display: none;
  }

  .inline {
    display: inline;
  }

  .inline-block {
    display: inline-block;
  }

  .inline-flex {
    display: inline-flex;
  }

  .table {
    display: table;
  }

  .h-1 {
    height: calc(var(--spacing) * 1);
  }

  .h-1\.5 {
    height: calc(var(--spacing) * 1.5);
  }

  .h-2 {
    height: calc(var(--spacing) * 2);
  }

  .h-2\.5 {
    height: calc(var(--spacing) * 2.5);
  }

  .h-3 {
    height: calc(var(--spacing) * 3);
  }

  .h-4 {
    height: calc(var(--spacing) * 4);
  }

  .h-5 {
    height: calc(var(--spacing) * 5);
  }

  .h-6 {
    height: calc(var(--spacing) * 6);
  }

  .h-7 {
    height: calc(var(--spacing) * 7);
  }

  .h-8 {
    height: calc(var(--spacing) * 8);
  }

  .h-9 {
    height: calc(var(--spacing) * 9);
  }

  .h-10 {
    height: calc(var(--spacing) * 10);
  }

  .h-12 {
    height: calc(var(--spacing) * 12);
  }

  .h-14 {
    height: calc(var(--spacing) * 14);
  }

  .h-16 {
    height: calc(var(--spacing) * 16);
  }

  .h-20 {
    height: calc(var(--spacing) * 20);
  }

  .h-28 {
    height: calc(var(--spacing) * 28);
  }

  .h-64 {
    height: calc(var(--spacing) * 64);
  }

  .h-\[60vh\] {
    height: 60vh;
  }

  .h-\[250px\] {
    height: 250px;
  }

  .h-\[280px\] {
    height: 280px;
  }

  .h-\[320px\] {
    height: 320px;
  }

  .h-\[calc\(100vh-7rem\)\] {
    height: calc(100vh - 7rem);
  }

  .h-full {
    height: 100%;
  }

  .h-screen {
    height: 100vh;
  }

  .max-h-40 {
    max-height: calc(var(--spacing) * 40);
  }

  .max-h-52 {
    max-height: calc(var(--spacing) * 52);
  }

  .max-h-60 {
    max-height: calc(var(--spacing) * 60);
  }

  .max-h-64 {
    max-height: calc(var(--spacing) * 64);
  }

  .max-h-\[90vh\] {
    max-height: 90vh;
  }

  .max-h-\[320px\] {
    max-height: 320px;
  }

  .min-h-\[44px\] {
    min-height: 44px;
  }

  .min-h-\[120px\] {
    min-height: 120px;
  }

  .min-h-\[calc\(100vh-7rem\)\] {
    min-height: calc(100vh - 7rem);
  }

  .min-h-screen {
    min-height: 100vh;
  }

  .w-1\.5 {
    width: calc(var(--spacing) * 1.5);
  }

  .w-1\/3 {
    width: 33.3333%;
  }

  .w-2 {
    width: calc(var(--spacing) * 2);
  }

  .w-2\.5 {
    width: calc(var(--spacing) * 2.5);
  }

  .w-2\/3 {
    width: 66.6667%;
  }

  .w-3 {
    width: calc(var(--spacing) * 3);
  }

  .w-4 {
    width: calc(var(--spacing) * 4);
  }

  .w-5 {
    width: calc(var(--spacing) * 5);
  }

  .w-6 {
    width: calc(var(--spacing) * 6);
  }

  .w-7 {
    width: calc(var(--spacing) * 7);
  }

  .w-8 {
    width: calc(var(--spacing) * 8);
  }

  .w-9 {
    width: calc(var(--spacing) * 9);
  }

  .w-10 {
    width: calc(var(--spacing) * 10);
  }

  .w-12 {
    width: calc(var(--spacing) * 12);
  }

  .w-14 {
    width: calc(var(--spacing) * 14);
  }

  .w-16 {
    width: calc(var(--spacing) * 16);
  }

  .w-20 {
    width: calc(var(--spacing) * 20);
  }

  .w-24 {
    width: calc(var(--spacing) * 24);
  }

  .w-32 {
    width: calc(var(--spacing) * 32);
  }

  .w-36 {
    width: calc(var(--spacing) * 36);
  }

  .w-40 {
    width: calc(var(--spacing) * 40);
  }

  .w-48 {
    width: calc(var(--spacing) * 48);
  }

  .w-56 {
    width: calc(var(--spacing) * 56);
  }

  .w-64 {
    width: calc(var(--spacing) * 64);
  }

  .w-\[260px\] {
    width: 260px;
  }

  .w-full {
    width: 100%;
  }

  .w-px {
    width: 1px;
  }

  .max-w-2xl {
    max-width: var(--container-2xl);
  }

  .max-w-4xl {
    max-width: var(--container-4xl);
  }

  .max-w-5xl {
    max-width: var(--container-5xl);
  }

  .max-w-32 {
    max-width: calc(var(--spacing) * 32);
  }

  .max-w-\[440px\] {
    max-width: 440px;
  }

  .max-w-lg {
    max-width: var(--container-lg);
  }

  .max-w-md {
    max-width: var(--container-md);
  }

  .max-w-none {
    max-width: none;
  }

  .max-w-sm {
    max-width: var(--container-sm);
  }

  .max-w-xs {
    max-width: var(--container-xs);
  }

  .min-w-0 {
    min-width: calc(var(--spacing) * 0);
  }

  .min-w-\[32px\] {
    min-width: 32px;
  }

  .min-w-\[160px\] {
    min-width: 160px;
  }

  .min-w-\[180px\] {
    min-width: 180px;
  }

  .min-w-\[280px\] {
    min-width: 280px;
  }

  .flex-1 {
    flex: 1;
  }

  .flex-shrink {
    flex-shrink: 1;
  }

  .flex-shrink-0 {
    flex-shrink: 0;
  }

  .shrink {
    flex-shrink: 1;
  }

  .shrink-0 {
    flex-shrink: 0;
  }

  .grow {
    flex-grow: 1;
  }

  .border-collapse {
    border-collapse: collapse;
  }

  .-translate-x-1\/2 {
    --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .-translate-y-1\/2 {
    --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .rotate-180 {
    rotate: 180deg;
  }

  .transform {
    transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, );
  }

  .animate-pulse {
    animation: var(--animate-pulse);
  }

  .animate-spin {
    animation: var(--animate-spin);
  }

  .cursor-not-allowed {
    cursor: not-allowed;
  }

  .cursor-pointer {
    cursor: pointer;
  }

  .resize {
    resize: both;
  }

  .resize-none {
    resize: none;
  }

  .scroll-mt-20 {
    scroll-margin-top: calc(var(--spacing) * 20);
  }

  .list-inside {
    list-style-position: inside;
  }

  .list-disc {
    list-style-type: disc;
  }

  .appearance-none {
    appearance: none;
  }

  .grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }

  .flex-col {
    flex-direction: column;
  }

  .flex-wrap {
    flex-wrap: wrap;
  }

  .items-center {
    align-items: center;
  }

  .items-end {
    align-items: flex-end;
  }

  .items-start {
    align-items: flex-start;
  }

  .justify-between {
    justify-content: space-between;
  }

  .justify-center {
    justify-content: center;
  }

  .justify-end {
    justify-content: flex-end;
  }

  .gap-1 {
    gap: calc(var(--spacing) * 1);
  }

  .gap-1\.5 {
    gap: calc(var(--spacing) * 1.5);
  }

  .gap-2 {
    gap: calc(var(--spacing) * 2);
  }

  .gap-2\.5 {
    gap: calc(var(--spacing) * 2.5);
  }

  .gap-3 {
    gap: calc(var(--spacing) * 3);
  }

  .gap-4 {
    gap: calc(var(--spacing) * 4);
  }

  .gap-6 {
    gap: calc(var(--spacing) * 6);
  }

  :where(.space-y-1 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));
  }

  :where(.space-y-1\.5 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)));
  }

  :where(.space-y-2 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));
  }

  :where(.space-y-3 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));
  }

  :where(.space-y-4 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));
  }

  :where(.space-y-5 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)));
  }

  :where(.space-y-6 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));
  }

  :where(.space-y-8 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)));
  }

  :where(.space-y-12 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 12) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 12) * calc(1 - var(--tw-space-y-reverse)));
  }

  :where(.divide-y > :not(:last-child)) {
    --tw-divide-y-reverse: 0;
    border-bottom-style: var(--tw-border-style);
    border-top-style: var(--tw-border-style);
    border-top-width: calc(1px * var(--tw-divide-y-reverse));
    border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  }

  :where(.divide-border\/50 > :not(:last-child)) {
    border-color: #2f2f2f80;
  }

  @supports (color: color-mix(in lab, red, red)) {
    :where(.divide-border\/50 > :not(:last-child)) {
      border-color: color-mix(in oklab, var(--color-border) 50%, transparent);
    }
  }

  .truncate {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
  }

  .overflow-auto {
    overflow: auto;
  }

  .overflow-hidden {
    overflow: hidden;
  }

  .overflow-x-auto {
    overflow-x: auto;
  }

  .overflow-x-hidden {
    overflow-x: hidden;
  }

  .overflow-y-auto {
    overflow-y: auto;
  }

  .rounded {
    border-radius: .25rem;
  }

  .rounded-2xl {
    border-radius: var(--radius-2xl);
  }

  .rounded-\[14px\] {
    border-radius: 14px;
  }

  .rounded-full {
    border-radius: 3.40282e38px;
  }

  .rounded-lg {
    border-radius: var(--radius-lg);
  }

  .rounded-xl {
    border-radius: var(--radius-xl);
  }

  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }

  .border-2 {
    border-style: var(--tw-border-style);
    border-width: 2px;
  }

  .border-3 {
    border-style: var(--tw-border-style);
    border-width: 3px;
  }

  .border-t {
    border-top-style: var(--tw-border-style);
    border-top-width: 1px;
  }

  .border-r {
    border-right-style: var(--tw-border-style);
    border-right-width: 1px;
  }

  .border-b {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 1px;
  }

  .border-l {
    border-left-style: var(--tw-border-style);
    border-left-width: 1px;
  }

  .border-amber-500\/20 {
    border-color: #f99c0033;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-amber-500\/20 {
      border-color: color-mix(in oklab, var(--color-amber-500) 20%, transparent);
    }
  }

  .border-amber-500\/30 {
    border-color: #f99c004d;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-amber-500\/30 {
      border-color: color-mix(in oklab, var(--color-amber-500) 30%, transparent);
    }
  }

  .border-blue-500\/20 {
    border-color: #3080ff33;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-blue-500\/20 {
      border-color: color-mix(in oklab, var(--color-blue-500) 20%, transparent);
    }
  }

  .border-border {
    border-color: var(--color-border);
  }

  .border-border\/30 {
    border-color: #2f2f2f4d;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-border\/30 {
      border-color: color-mix(in oklab, var(--color-border) 30%, transparent);
    }
  }

  .border-border\/50 {
    border-color: #2f2f2f80;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-border\/50 {
      border-color: color-mix(in oklab, var(--color-border) 50%, transparent);
    }
  }

  .border-border\/60 {
    border-color: #2f2f2f99;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-border\/60 {
      border-color: color-mix(in oklab, var(--color-border) 60%, transparent);
    }
  }

  .border-danger {
    border-color: var(--color-danger);
  }

  .border-danger\/20 {
    border-color: #ef444433;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-danger\/20 {
      border-color: color-mix(in oklab, var(--color-danger) 20%, transparent);
    }
  }

  .border-emerald-500\/20 {
    border-color: #00bb7f33;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-emerald-500\/20 {
      border-color: color-mix(in oklab, var(--color-emerald-500) 20%, transparent);
    }
  }

  .border-gray-500\/20 {
    border-color: #6a728233;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-gray-500\/20 {
      border-color: color-mix(in oklab, var(--color-gray-500) 20%, transparent);
    }
  }

  .border-info\/20 {
    border-color: #3b82f633;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-info\/20 {
      border-color: color-mix(in oklab, var(--color-info) 20%, transparent);
    }
  }

  .border-orange-500\/20 {
    border-color: #fe6e0033;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-orange-500\/20 {
      border-color: color-mix(in oklab, var(--color-orange-500) 20%, transparent);
    }
  }

  .border-primary, .border-primary\/20 {
    border-color: var(--color-primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-primary\/20 {
      border-color: color-mix(in oklab, var(--color-primary) 20%, transparent);
    }
  }

  .border-primary\/40 {
    border-color: var(--color-primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-primary\/40 {
      border-color: color-mix(in oklab, var(--color-primary) 40%, transparent);
    }
  }

  .border-red-500\/20 {
    border-color: #fb2c3633;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-red-500\/20 {
      border-color: color-mix(in oklab, var(--color-red-500) 20%, transparent);
    }
  }

  .border-red-500\/30 {
    border-color: #fb2c364d;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-red-500\/30 {
      border-color: color-mix(in oklab, var(--color-red-500) 30%, transparent);
    }
  }

  .border-success\/20 {
    border-color: #10b98133;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-success\/20 {
      border-color: color-mix(in oklab, var(--color-success) 20%, transparent);
    }
  }

  .border-transparent {
    border-color: #0000;
  }

  .border-violet-500\/20 {
    border-color: #8d54ff33;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-violet-500\/20 {
      border-color: color-mix(in oklab, var(--color-violet-500) 20%, transparent);
    }
  }

  .border-warning\/20 {
    border-color: #f59e0b33;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-warning\/20 {
      border-color: color-mix(in oklab, var(--color-warning) 20%, transparent);
    }
  }

  .border-white {
    border-color: var(--color-white);
  }

  .border-white\/30 {
    border-color: #ffffff4d;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-white\/30 {
      border-color: color-mix(in oklab, var(--color-white) 30%, transparent);
    }
  }

  .border-t-transparent {
    border-top-color: #0000;
  }

  .border-t-white {
    border-top-color: var(--color-white);
  }

  .bg-amber-500\/10 {
    background-color: #f99c001a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-amber-500\/10 {
      background-color: color-mix(in oklab, var(--color-amber-500) 10%, transparent);
    }
  }

  .bg-amber-600 {
    background-color: var(--color-amber-600);
  }

  .bg-background {
    background-color: var(--color-background);
  }

  .bg-background\/80 {
    background-color: #0d0d0dcc;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-background\/80 {
      background-color: color-mix(in oklab, var(--color-background) 80%, transparent);
    }
  }

  .bg-black\/40 {
    background-color: #0006;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-black\/40 {
      background-color: color-mix(in oklab, var(--color-black) 40%, transparent);
    }
  }

  .bg-black\/60 {
    background-color: #0009;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-black\/60 {
      background-color: color-mix(in oklab, var(--color-black) 60%, transparent);
    }
  }

  .bg-black\/70 {
    background-color: #000000b3;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-black\/70 {
      background-color: color-mix(in oklab, var(--color-black) 70%, transparent);
    }
  }

  .bg-blue-500\/10 {
    background-color: #3080ff1a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-blue-500\/10 {
      background-color: color-mix(in oklab, var(--color-blue-500) 10%, transparent);
    }
  }

  .bg-blue-600 {
    background-color: var(--color-blue-600);
  }

  .bg-border {
    background-color: var(--color-border);
  }

  .bg-cyan-600 {
    background-color: var(--color-cyan-600);
  }

  .bg-danger {
    background-color: var(--color-danger);
  }

  .bg-danger\/5 {
    background-color: #ef44440d;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-danger\/5 {
      background-color: color-mix(in oklab, var(--color-danger) 5%, transparent);
    }
  }

  .bg-danger\/10 {
    background-color: #ef44441a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-danger\/10 {
      background-color: color-mix(in oklab, var(--color-danger) 10%, transparent);
    }
  }

  .bg-emerald-500\/10 {
    background-color: #00bb7f1a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-emerald-500\/10 {
      background-color: color-mix(in oklab, var(--color-emerald-500) 10%, transparent);
    }
  }

  .bg-emerald-600 {
    background-color: var(--color-emerald-600);
  }

  .bg-gray-500\/10 {
    background-color: #6a72821a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-gray-500\/10 {
      background-color: color-mix(in oklab, var(--color-gray-500) 10%, transparent);
    }
  }

  .bg-indigo-600 {
    background-color: var(--color-indigo-600);
  }

  .bg-info {
    background-color: var(--color-info);
  }

  .bg-info\/5 {
    background-color: #3b82f60d;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-info\/5 {
      background-color: color-mix(in oklab, var(--color-info) 5%, transparent);
    }
  }

  .bg-info\/10 {
    background-color: #3b82f61a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-info\/10 {
      background-color: color-mix(in oklab, var(--color-info) 10%, transparent);
    }
  }

  .bg-orange-500\/10 {
    background-color: #fe6e001a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-orange-500\/10 {
      background-color: color-mix(in oklab, var(--color-orange-500) 10%, transparent);
    }
  }

  .bg-pink-600 {
    background-color: var(--color-pink-600);
  }

  .bg-primary, .bg-primary\/5 {
    background-color: var(--color-primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-primary\/5 {
      background-color: color-mix(in oklab, var(--color-primary) 5%, transparent);
    }
  }

  .bg-primary\/10 {
    background-color: var(--color-primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-primary\/10 {
      background-color: color-mix(in oklab, var(--color-primary) 10%, transparent);
    }
  }

  .bg-primary\/20 {
    background-color: var(--color-primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-primary\/20 {
      background-color: color-mix(in oklab, var(--color-primary) 20%, transparent);
    }
  }

  .bg-primary\/30 {
    background-color: var(--color-primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-primary\/30 {
      background-color: color-mix(in oklab, var(--color-primary) 30%, transparent);
    }
  }

  .bg-red-500\/10 {
    background-color: #fb2c361a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-red-500\/10 {
      background-color: color-mix(in oklab, var(--color-red-500) 10%, transparent);
    }
  }

  .bg-rose-600 {
    background-color: var(--color-rose-600);
  }

  .bg-success {
    background-color: var(--color-success);
  }

  .bg-success\/5 {
    background-color: #10b9810d;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-success\/5 {
      background-color: color-mix(in oklab, var(--color-success) 5%, transparent);
    }
  }

  .bg-success\/10 {
    background-color: #10b9811a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-success\/10 {
      background-color: color-mix(in oklab, var(--color-success) 10%, transparent);
    }
  }

  .bg-success\/20 {
    background-color: #10b98133;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-success\/20 {
      background-color: color-mix(in oklab, var(--color-success) 20%, transparent);
    }
  }

  .bg-surface {
    background-color: var(--color-surface);
  }

  .bg-surface-2 {
    background-color: var(--color-surface-2);
  }

  .bg-surface-2\/40 {
    background-color: #1e1e1e66;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-surface-2\/40 {
      background-color: color-mix(in oklab, var(--color-surface-2) 40%, transparent);
    }
  }

  .bg-surface-2\/60 {
    background-color: #1e1e1e99;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-surface-2\/60 {
      background-color: color-mix(in oklab, var(--color-surface-2) 60%, transparent);
    }
  }

  .bg-surface-2\/80 {
    background-color: #1e1e1ecc;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-surface-2\/80 {
      background-color: color-mix(in oklab, var(--color-surface-2) 80%, transparent);
    }
  }

  .bg-surface-3 {
    background-color: var(--color-surface-3);
  }

  .bg-surface-3\/50 {
    background-color: #2a2a2a80;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-surface-3\/50 {
      background-color: color-mix(in oklab, var(--color-surface-3) 50%, transparent);
    }
  }

  .bg-surface\/80 {
    background-color: #171717cc;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-surface\/80 {
      background-color: color-mix(in oklab, var(--color-surface) 80%, transparent);
    }
  }

  .bg-surface\/90 {
    background-color: #171717e6;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-surface\/90 {
      background-color: color-mix(in oklab, var(--color-surface) 90%, transparent);
    }
  }

  .bg-text-muted {
    background-color: var(--color-text-muted);
  }

  .bg-text-muted\/10 {
    background-color: #8e8e8e1a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-text-muted\/10 {
      background-color: color-mix(in oklab, var(--color-text-muted) 10%, transparent);
    }
  }

  .bg-text-muted\/50 {
    background-color: #8e8e8e80;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-text-muted\/50 {
      background-color: color-mix(in oklab, var(--color-text-muted) 50%, transparent);
    }
  }

  .bg-transparent {
    background-color: #0000;
  }

  .bg-violet-500\/10 {
    background-color: #8d54ff1a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-violet-500\/10 {
      background-color: color-mix(in oklab, var(--color-violet-500) 10%, transparent);
    }
  }

  .bg-violet-600 {
    background-color: var(--color-violet-600);
  }

  .bg-warning {
    background-color: var(--color-warning);
  }

  .bg-warning\/5 {
    background-color: #f59e0b0d;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-warning\/5 {
      background-color: color-mix(in oklab, var(--color-warning) 5%, transparent);
    }
  }

  .bg-warning\/10 {
    background-color: #f59e0b1a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-warning\/10 {
      background-color: color-mix(in oklab, var(--color-warning) 10%, transparent);
    }
  }

  .bg-white {
    background-color: var(--color-white);
  }

  .bg-white\/5 {
    background-color: #ffffff0d;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-white\/5 {
      background-color: color-mix(in oklab, var(--color-white) 5%, transparent);
    }
  }

  .bg-gradient-to-bl {
    --tw-gradient-position: to bottom left in oklab;
    background-image: linear-gradient(var(--tw-gradient-stops));
  }

  .bg-gradient-to-br {
    --tw-gradient-position: to bottom right in oklab;
    background-image: linear-gradient(var(--tw-gradient-stops));
  }

  .bg-gradient-to-r {
    --tw-gradient-position: to right in oklab;
    background-image: linear-gradient(var(--tw-gradient-stops));
  }

  .bg-gradient-to-tl {
    --tw-gradient-position: to top left in oklab;
    background-image: linear-gradient(var(--tw-gradient-stops));
  }

  .bg-gradient-to-tr {
    --tw-gradient-position: to top right in oklab;
    background-image: linear-gradient(var(--tw-gradient-stops));
  }

  .from-accent-end\/8 {
    --tw-gradient-from: var(--color-accent-end);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .from-accent-end\/8 {
      --tw-gradient-from: color-mix(in oklab, var(--color-accent-end) 8%, transparent);
    }
  }

  .from-accent-end\/8 {
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-accent-start {
    --tw-gradient-from: var(--color-accent-start);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-amber-500 {
    --tw-gradient-from: var(--color-amber-500);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-danger {
    --tw-gradient-from: var(--color-danger);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-emerald-500 {
    --tw-gradient-from: var(--color-emerald-500);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-primary\/6 {
    --tw-gradient-from: var(--color-primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .from-primary\/6 {
      --tw-gradient-from: color-mix(in oklab, var(--color-primary) 6%, transparent);
    }
  }

  .from-primary\/6 {
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-primary\/8 {
    --tw-gradient-from: var(--color-primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .from-primary\/8 {
      --tw-gradient-from: color-mix(in oklab, var(--color-primary) 8%, transparent);
    }
  }

  .from-primary\/8 {
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-primary\/10 {
    --tw-gradient-from: var(--color-primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .from-primary\/10 {
      --tw-gradient-from: color-mix(in oklab, var(--color-primary) 10%, transparent);
    }
  }

  .from-primary\/10 {
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-red-500 {
    --tw-gradient-from: var(--color-red-500);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-success {
    --tw-gradient-from: var(--color-success);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-success\/8 {
    --tw-gradient-from: #10b98114;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .from-success\/8 {
      --tw-gradient-from: color-mix(in oklab, var(--color-success) 8%, transparent);
    }
  }

  .from-success\/8 {
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-text-muted\/30 {
    --tw-gradient-from: #8e8e8e4d;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .from-text-muted\/30 {
      --tw-gradient-from: color-mix(in oklab, var(--color-text-muted) 30%, transparent);
    }
  }

  .from-text-muted\/30 {
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-transparent {
    --tw-gradient-from: transparent;
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .from-warning\/6 {
    --tw-gradient-from: #f59e0b0f;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .from-warning\/6 {
      --tw-gradient-from: color-mix(in oklab, var(--color-warning) 6%, transparent);
    }
  }

  .from-warning\/6 {
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .via-emerald-400 {
    --tw-gradient-via: var(--color-emerald-400);
    --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-via-stops);
  }

  .via-text-muted\/50 {
    --tw-gradient-via: #8e8e8e80;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .via-text-muted\/50 {
      --tw-gradient-via: color-mix(in oklab, var(--color-text-muted) 50%, transparent);
    }
  }

  .via-text-muted\/50 {
    --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-via-stops);
  }

  .via-transparent {
    --tw-gradient-via: transparent;
    --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-via-stops);
  }

  .via-white\/20 {
    --tw-gradient-via: #fff3;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .via-white\/20 {
      --tw-gradient-via: color-mix(in oklab, var(--color-white) 20%, transparent);
    }
  }

  .via-white\/20 {
    --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-via-stops);
  }

  .to-accent-end {
    --tw-gradient-to: var(--color-accent-end);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .to-accent-mid {
    --tw-gradient-to: var(--color-accent-mid);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .to-emerald-600 {
    --tw-gradient-to: var(--color-emerald-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .to-green-400 {
    --tw-gradient-to: var(--color-green-400);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .to-indigo-600\/10 {
    --tw-gradient-to: #4f39f61a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .to-indigo-600\/10 {
      --tw-gradient-to: color-mix(in oklab, var(--color-indigo-600) 10%, transparent);
    }
  }

  .to-indigo-600\/10 {
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .to-red-600 {
    --tw-gradient-to: var(--color-red-600);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .to-rose-400 {
    --tw-gradient-to: var(--color-rose-400);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .to-success {
    --tw-gradient-to: var(--color-success);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .to-text-muted\/30 {
    --tw-gradient-to: #8e8e8e4d;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .to-text-muted\/30 {
      --tw-gradient-to: color-mix(in oklab, var(--color-text-muted) 30%, transparent);
    }
  }

  .to-text-muted\/30 {
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .to-transparent {
    --tw-gradient-to: transparent;
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .to-yellow-400 {
    --tw-gradient-to: var(--color-yellow-400);
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
  }

  .bg-clip-text {
    -webkit-background-clip: text;
    background-clip: text;
  }

  .object-cover {
    object-fit: cover;
  }

  .p-0 {
    padding: calc(var(--spacing) * 0);
  }

  .p-1 {
    padding: calc(var(--spacing) * 1);
  }

  .p-1\.5 {
    padding: calc(var(--spacing) * 1.5);
  }

  .p-2 {
    padding: calc(var(--spacing) * 2);
  }

  .p-2\.5 {
    padding: calc(var(--spacing) * 2.5);
  }

  .p-3 {
    padding: calc(var(--spacing) * 3);
  }

  .p-4 {
    padding: calc(var(--spacing) * 4);
  }

  .p-5 {
    padding: calc(var(--spacing) * 5);
  }

  .p-6 {
    padding: calc(var(--spacing) * 6);
  }

  .p-8 {
    padding: calc(var(--spacing) * 8);
  }

  .p-10 {
    padding: calc(var(--spacing) * 10);
  }

  .px-1 {
    padding-inline: calc(var(--spacing) * 1);
  }

  .px-1\.5 {
    padding-inline: calc(var(--spacing) * 1.5);
  }

  .px-2 {
    padding-inline: calc(var(--spacing) * 2);
  }

  .px-2\.5 {
    padding-inline: calc(var(--spacing) * 2.5);
  }

  .px-3 {
    padding-inline: calc(var(--spacing) * 3);
  }

  .px-3\.5 {
    padding-inline: calc(var(--spacing) * 3.5);
  }

  .px-4 {
    padding-inline: calc(var(--spacing) * 4);
  }

  .px-5 {
    padding-inline: calc(var(--spacing) * 5);
  }

  .px-6 {
    padding-inline: calc(var(--spacing) * 6);
  }

  .py-0\.5 {
    padding-block: calc(var(--spacing) * .5);
  }

  .py-1 {
    padding-block: calc(var(--spacing) * 1);
  }

  .py-1\.5 {
    padding-block: calc(var(--spacing) * 1.5);
  }

  .py-2 {
    padding-block: calc(var(--spacing) * 2);
  }

  .py-2\.5 {
    padding-block: calc(var(--spacing) * 2.5);
  }

  .py-3 {
    padding-block: calc(var(--spacing) * 3);
  }

  .py-4 {
    padding-block: calc(var(--spacing) * 4);
  }

  .py-6 {
    padding-block: calc(var(--spacing) * 6);
  }

  .py-8 {
    padding-block: calc(var(--spacing) * 8);
  }

  .py-12 {
    padding-block: calc(var(--spacing) * 12);
  }

  .py-16 {
    padding-block: calc(var(--spacing) * 16);
  }

  .py-20 {
    padding-block: calc(var(--spacing) * 20);
  }

  .py-24 {
    padding-block: calc(var(--spacing) * 24);
  }

  .py-\[3px\] {
    padding-block: 3px;
  }

  .pt-1 {
    padding-top: calc(var(--spacing) * 1);
  }

  .pt-2 {
    padding-top: calc(var(--spacing) * 2);
  }

  .pt-3 {
    padding-top: calc(var(--spacing) * 3);
  }

  .pt-4 {
    padding-top: calc(var(--spacing) * 4);
  }

  .pt-6 {
    padding-top: calc(var(--spacing) * 6);
  }

  .pr-2 {
    padding-right: calc(var(--spacing) * 2);
  }

  .pr-3 {
    padding-right: calc(var(--spacing) * 3);
  }

  .pr-9 {
    padding-right: calc(var(--spacing) * 9);
  }

  .pr-10 {
    padding-right: calc(var(--spacing) * 10);
  }

  .pb-2 {
    padding-bottom: calc(var(--spacing) * 2);
  }

  .pl-8 {
    padding-left: calc(var(--spacing) * 8);
  }

  .pl-9 {
    padding-left: calc(var(--spacing) * 9);
  }

  .pl-10 {
    padding-left: calc(var(--spacing) * 10);
  }

  .text-center {
    text-align: center;
  }

  .text-left {
    text-align: left;
  }

  .text-right {
    text-align: right;
  }

  .font-mono {
    font-family: var(--font-mono);
  }

  .text-2xl {
    font-size: var(--text-2xl);
    line-height: var(--tw-leading, var(--text-2xl--line-height));
  }

  .text-3xl {
    font-size: var(--text-3xl);
    line-height: var(--tw-leading, var(--text-3xl--line-height));
  }

  .text-4xl {
    font-size: var(--text-4xl);
    line-height: var(--tw-leading, var(--text-4xl--line-height));
  }

  .text-8xl {
    font-size: var(--text-8xl);
    line-height: var(--tw-leading, var(--text-8xl--line-height));
  }

  .text-base {
    font-size: var(--text-base);
    line-height: var(--tw-leading, var(--text-base--line-height));
  }

  .text-lg {
    font-size: var(--text-lg);
    line-height: var(--tw-leading, var(--text-lg--line-height));
  }

  .text-sm {
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
  }

  .text-xl {
    font-size: var(--text-xl);
    line-height: var(--tw-leading, var(--text-xl--line-height));
  }

  .text-xs {
    font-size: var(--text-xs);
    line-height: var(--tw-leading, var(--text-xs--line-height));
  }

  .text-\[9px\] {
    font-size: 9px;
  }

  .text-\[10px\] {
    font-size: 10px;
  }

  .text-\[11px\] {
    font-size: 11px;
  }

  .text-\[15px\] {
    font-size: 15px;
  }

  .text-\[22px\] {
    font-size: 22px;
  }

  .leading-relaxed {
    --tw-leading: var(--leading-relaxed);
    line-height: var(--leading-relaxed);
  }

  .font-bold {
    --tw-font-weight: var(--font-weight-bold);
    font-weight: var(--font-weight-bold);
  }

  .font-medium {
    --tw-font-weight: var(--font-weight-medium);
    font-weight: var(--font-weight-medium);
  }

  .font-normal {
    --tw-font-weight: var(--font-weight-normal);
    font-weight: var(--font-weight-normal);
  }

  .font-semibold {
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
  }

  .tracking-wide {
    --tw-tracking: var(--tracking-wide);
    letter-spacing: var(--tracking-wide);
  }

  .tracking-wider {
    --tw-tracking: var(--tracking-wider);
    letter-spacing: var(--tracking-wider);
  }

  .break-all {
    word-break: break-all;
  }

  .whitespace-nowrap {
    white-space: nowrap;
  }

  .whitespace-pre-wrap {
    white-space: pre-wrap;
  }

  .text-amber-300 {
    color: var(--color-amber-300);
  }

  .text-amber-400 {
    color: var(--color-amber-400);
  }

  .text-blue-400 {
    color: var(--color-blue-400);
  }

  .text-current {
    color: currentColor;
  }

  .text-danger {
    color: var(--color-danger);
  }

  .text-emerald-400 {
    color: var(--color-emerald-400);
  }

  .text-gray-400 {
    color: var(--color-gray-400);
  }

  .text-indigo-500 {
    color: var(--color-indigo-500);
  }

  .text-info {
    color: var(--color-info);
  }

  .text-orange-400 {
    color: var(--color-orange-400);
  }

  .text-primary {
    color: var(--color-primary);
  }

  .text-red-400 {
    color: var(--color-red-400);
  }

  .text-success {
    color: var(--color-success);
  }

  .text-text-dim {
    color: var(--color-text-dim);
  }

  .text-text-muted {
    color: var(--color-text-muted);
  }

  .text-text-primary {
    color: var(--color-text-primary);
  }

  .text-text-secondary {
    color: var(--color-text-secondary);
  }

  .text-transparent {
    color: #0000;
  }

  .text-violet-400 {
    color: var(--color-violet-400);
  }

  .text-warning {
    color: var(--color-warning);
  }

  .text-white {
    color: var(--color-white);
  }

  .text-white\/70 {
    color: #ffffffb3;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .text-white\/70 {
      color: color-mix(in oklab, var(--color-white) 70%, transparent);
    }
  }

  .capitalize {
    text-transform: capitalize;
  }

  .uppercase {
    text-transform: uppercase;
  }

  .italic {
    font-style: italic;
  }

  .tabular-nums {
    --tw-numeric-spacing: tabular-nums;
    font-variant-numeric: var(--tw-ordinal, ) var(--tw-slashed-zero, ) var(--tw-numeric-figure, ) var(--tw-numeric-spacing, ) var(--tw-numeric-fraction, );
  }

  .line-through {
    text-decoration-line: line-through;
  }

  .underline {
    text-decoration-line: underline;
  }

  .opacity-0 {
    opacity: 0;
  }

  .opacity-10 {
    opacity: .1;
  }

  .opacity-30 {
    opacity: .3;
  }

  .opacity-50 {
    opacity: .5;
  }

  .opacity-60 {
    opacity: .6;
  }

  .opacity-80 {
    opacity: .8;
  }

  .opacity-90 {
    opacity: .9;
  }

  .opacity-\[0\.015\] {
    opacity: .015;
  }

  .shadow {
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-2xl {
    --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, #00000040);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-inner {
    --tw-shadow: inset 0 2px 4px 0 var(--tw-shadow-color, #0000000d);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-lg {
    --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, #0000001a), 0 4px 6px -4px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-md {
    --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, #0000001a), 0 2px 4px -2px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-xl {
    --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, #0000001a), 0 8px 10px -6px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .ring {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .ring-2 {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-black\/10 {
    --tw-shadow-color: #0000001a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .shadow-black\/10 {
      --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-black) 10%, transparent) var(--tw-shadow-alpha), transparent);
    }
  }

  .shadow-black\/20 {
    --tw-shadow-color: #0003;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .shadow-black\/20 {
      --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-black) 20%, transparent) var(--tw-shadow-alpha), transparent);
    }
  }

  .shadow-black\/40 {
    --tw-shadow-color: #0006;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .shadow-black\/40 {
      --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-black) 40%, transparent) var(--tw-shadow-alpha), transparent);
    }
  }

  .shadow-danger\/20 {
    --tw-shadow-color: #ef444433;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .shadow-danger\/20 {
      --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-danger) 20%, transparent) var(--tw-shadow-alpha), transparent);
    }
  }

  .shadow-primary\/20 {
    --tw-shadow-color: var(--color-primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .shadow-primary\/20 {
      --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-primary) 20%, transparent) var(--tw-shadow-alpha), transparent);
    }
  }

  .shadow-success\/30 {
    --tw-shadow-color: #10b9814d;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .shadow-success\/30 {
      --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-success) 30%, transparent) var(--tw-shadow-alpha), transparent);
    }
  }

  .ring-primary\/30 {
    --tw-ring-color: var(--color-primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .ring-primary\/30 {
      --tw-ring-color: color-mix(in oklab, var(--color-primary) 30%, transparent);
    }
  }

  .ring-white\/10 {
    --tw-ring-color: #ffffff1a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .ring-white\/10 {
      --tw-ring-color: color-mix(in oklab, var(--color-white) 10%, transparent);
    }
  }

  .outline {
    outline-style: var(--tw-outline-style);
    outline-width: 1px;
  }

  .blur {
    --tw-blur: blur(8px);
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
  }

  .blur-3xl {
    --tw-blur: blur(var(--blur-3xl));
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
  }

  .blur-lg {
    --tw-blur: blur(var(--blur-lg));
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
  }

  .blur-xl {
    --tw-blur: blur(var(--blur-xl));
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
  }

  .filter {
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
  }

  .backdrop-blur-md {
    --tw-backdrop-blur: blur(var(--blur-md));
    -webkit-backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
    backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
  }

  .backdrop-blur-xl {
    --tw-backdrop-blur: blur(var(--blur-xl));
    -webkit-backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
    backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
  }

  .transition {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }

  .transition-all {
    transition-property: all;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }

  .transition-colors {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }

  .transition-opacity {
    transition-property: opacity;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }

  .transition-transform {
    transition-property: transform, translate, scale, rotate;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }

  .duration-100 {
    --tw-duration: .1s;
    transition-duration: .1s;
  }

  .duration-150 {
    --tw-duration: .15s;
    transition-duration: .15s;
  }

  .duration-200 {
    --tw-duration: .2s;
    transition-duration: .2s;
  }

  .duration-300 {
    --tw-duration: .3s;
    transition-duration: .3s;
  }

  .duration-700 {
    --tw-duration: .7s;
    transition-duration: .7s;
  }

  .ease-in-out {
    --tw-ease: var(--ease-in-out);
    transition-timing-function: var(--ease-in-out);
  }

  .ease-out {
    --tw-ease: var(--ease-out);
    transition-timing-function: var(--ease-out);
  }

  .outline-none {
    --tw-outline-style: none;
    outline-style: none;
  }

  @media (hover: hover) {
    .group-hover\:opacity-100:is(:where(.group):hover *) {
      opacity: 1;
    }
  }

  .placeholder\:text-text-muted::placeholder {
    color: var(--color-text-muted);
  }

  .first\:mt-0:first-child {
    margin-top: calc(var(--spacing) * 0);
  }

  .last\:mb-0:last-child {
    margin-bottom: calc(var(--spacing) * 0);
  }

  @media (hover: hover) {
    .hover\:-translate-y-0\.5:hover {
      --tw-translate-y: calc(var(--spacing) * -.5);
      translate: var(--tw-translate-x) var(--tw-translate-y);
    }

    .hover\:-translate-y-1:hover {
      --tw-translate-y: calc(var(--spacing) * -1);
      translate: var(--tw-translate-x) var(--tw-translate-y);
    }

    .hover\:scale-105:hover {
      --tw-scale-x: 105%;
      --tw-scale-y: 105%;
      --tw-scale-z: 105%;
      scale: var(--tw-scale-x) var(--tw-scale-y);
    }

    .hover\:scale-\[1\.02\]:hover {
      scale: 1.02;
    }

    .hover\:border-border:hover {
      border-color: var(--color-border);
    }

    .hover\:border-border\/80:hover {
      border-color: #2f2f2fcc;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-border\/80:hover {
        border-color: color-mix(in oklab, var(--color-border) 80%, transparent);
      }
    }

    .hover\:border-primary:hover, .hover\:border-primary\/20:hover {
      border-color: var(--color-primary);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-primary\/20:hover {
        border-color: color-mix(in oklab, var(--color-primary) 20%, transparent);
      }
    }

    .hover\:border-primary\/30:hover {
      border-color: var(--color-primary);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-primary\/30:hover {
        border-color: color-mix(in oklab, var(--color-primary) 30%, transparent);
      }
    }

    .hover\:border-primary\/40:hover {
      border-color: var(--color-primary);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-primary\/40:hover {
        border-color: color-mix(in oklab, var(--color-primary) 40%, transparent);
      }
    }

    .hover\:border-primary\/50:hover {
      border-color: var(--color-primary);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-primary\/50:hover {
        border-color: color-mix(in oklab, var(--color-primary) 50%, transparent);
      }
    }

    .hover\:border-text-muted:hover {
      border-color: var(--color-text-muted);
    }

    .hover\:bg-background:hover {
      background-color: var(--color-background);
    }

    .hover\:bg-border:hover {
      background-color: var(--color-border);
    }

    .hover\:bg-danger\/5:hover {
      background-color: #ef44440d;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-danger\/5:hover {
        background-color: color-mix(in oklab, var(--color-danger) 5%, transparent);
      }
    }

    .hover\:bg-danger\/10:hover {
      background-color: #ef44441a;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-danger\/10:hover {
        background-color: color-mix(in oklab, var(--color-danger) 10%, transparent);
      }
    }

    .hover\:bg-primary-hover:hover {
      background-color: var(--color-primary-hover);
    }

    .hover\:bg-primary\/5:hover {
      background-color: var(--color-primary);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-primary\/5:hover {
        background-color: color-mix(in oklab, var(--color-primary) 5%, transparent);
      }
    }

    .hover\:bg-primary\/10:hover {
      background-color: var(--color-primary);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-primary\/10:hover {
        background-color: color-mix(in oklab, var(--color-primary) 10%, transparent);
      }
    }

    .hover\:bg-primary\/90:hover {
      background-color: var(--color-primary);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-primary\/90:hover {
        background-color: color-mix(in oklab, var(--color-primary) 90%, transparent);
      }
    }

    .hover\:bg-surface-2:hover {
      background-color: var(--color-surface-2);
    }

    .hover\:bg-surface-2\/50:hover {
      background-color: #1e1e1e80;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-surface-2\/50:hover {
        background-color: color-mix(in oklab, var(--color-surface-2) 50%, transparent);
      }
    }

    .hover\:bg-surface-3:hover {
      background-color: var(--color-surface-3);
    }

    .hover\:bg-warning\/10:hover {
      background-color: #f59e0b1a;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-warning\/10:hover {
        background-color: color-mix(in oklab, var(--color-warning) 10%, transparent);
      }
    }

    .hover\:text-danger:hover {
      color: var(--color-danger);
    }

    .hover\:text-primary:hover {
      color: var(--color-primary);
    }

    .hover\:text-primary-hover:hover {
      color: var(--color-primary-hover);
    }

    .hover\:text-text-primary:hover {
      color: var(--color-text-primary);
    }

    .hover\:text-text-secondary:hover {
      color: var(--color-text-secondary);
    }

    .hover\:text-warning:hover {
      color: var(--color-warning);
    }

    .hover\:text-white:hover {
      color: var(--color-white);
    }

    .hover\:underline:hover {
      text-decoration-line: underline;
    }

    .hover\:opacity-80:hover {
      opacity: .8;
    }

    .hover\:opacity-90:hover {
      opacity: .9;
    }

    .hover\:shadow-lg:hover {
      --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, #0000001a), 0 4px 6px -4px var(--tw-shadow-color, #0000001a);
      box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }

    .hover\:shadow-md:hover {
      --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, #0000001a), 0 2px 4px -2px var(--tw-shadow-color, #0000001a);
      box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }

    .hover\:shadow-xl:hover {
      --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, #0000001a), 0 8px 10px -6px var(--tw-shadow-color, #0000001a);
      box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }

    .hover\:shadow-danger\/30:hover {
      --tw-shadow-color: #ef44444d;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:shadow-danger\/30:hover {
        --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-danger) 30%, transparent) var(--tw-shadow-alpha), transparent);
      }
    }

    .hover\:shadow-primary\/5:hover {
      --tw-shadow-color: var(--color-primary);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:shadow-primary\/5:hover {
        --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-primary) 5%, transparent) var(--tw-shadow-alpha), transparent);
      }
    }

    .hover\:shadow-primary\/30:hover {
      --tw-shadow-color: var(--color-primary);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:shadow-primary\/30:hover {
        --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-primary) 30%, transparent) var(--tw-shadow-alpha), transparent);
      }
    }

    .hover\:brightness-110:hover {
      --tw-brightness: brightness(110%);
      filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
    }
  }

  .focus\:border-danger\/50:focus {
    border-color: #ef444480;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .focus\:border-danger\/50:focus {
      border-color: color-mix(in oklab, var(--color-danger) 50%, transparent);
    }
  }

  .focus\:border-primary:focus, .focus\:border-primary\/50:focus {
    border-color: var(--color-primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .focus\:border-primary\/50:focus {
      border-color: color-mix(in oklab, var(--color-primary) 50%, transparent);
    }
  }

  .focus\:ring-1:focus {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .focus\:ring-2:focus {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .focus\:ring-danger\/30:focus {
    --tw-ring-color: #ef44444d;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .focus\:ring-danger\/30:focus {
      --tw-ring-color: color-mix(in oklab, var(--color-danger) 30%, transparent);
    }
  }

  .focus\:ring-primary:focus, .focus\:ring-primary\/30:focus {
    --tw-ring-color: var(--color-primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .focus\:ring-primary\/30:focus {
      --tw-ring-color: color-mix(in oklab, var(--color-primary) 30%, transparent);
    }
  }

  .focus\:ring-primary\/50:focus {
    --tw-ring-color: var(--color-primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .focus\:ring-primary\/50:focus {
      --tw-ring-color: color-mix(in oklab, var(--color-primary) 50%, transparent);
    }
  }

  .focus\:outline-none:focus {
    --tw-outline-style: none;
    outline-style: none;
  }

  .focus-visible\:ring-2:focus-visible {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .focus-visible\:ring-primary\/50:focus-visible {
    --tw-ring-color: var(--color-primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .focus-visible\:ring-primary\/50:focus-visible {
      --tw-ring-color: color-mix(in oklab, var(--color-primary) 50%, transparent);
    }
  }

  .focus-visible\:ring-offset-2:focus-visible {
    --tw-ring-offset-width: 2px;
    --tw-ring-offset-shadow: var(--tw-ring-inset, ) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  }

  .focus-visible\:ring-offset-background:focus-visible {
    --tw-ring-offset-color: var(--color-background);
  }

  .disabled\:cursor-not-allowed:disabled {
    cursor: not-allowed;
  }

  .disabled\:opacity-30:disabled {
    opacity: .3;
  }

  .disabled\:opacity-50:disabled {
    opacity: .5;
  }

  @media not all and (min-width: 40rem) {
    .max-sm\:max-w-full {
      max-width: 100%;
    }
  }

  @media (min-width: 40rem) {
    .sm\:block {
      display: block;
    }

    .sm\:flex {
      display: flex;
    }

    .sm\:grid {
      display: grid;
    }

    .sm\:inline {
      display: inline;
    }

    .sm\:w-64 {
      width: calc(var(--spacing) * 64);
    }

    .sm\:w-auto {
      width: auto;
    }

    .sm\:max-w-lg {
      max-width: var(--container-lg);
    }

    .sm\:grid-cols-2 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sm\:grid-cols-3 {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .sm\:grid-cols-4 {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .sm\:grid-cols-6 {
      grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .sm\:flex-row {
      flex-direction: row;
    }

    .sm\:items-center {
      align-items: center;
    }

    .sm\:items-start {
      align-items: flex-start;
    }

    .sm\:gap-3 {
      gap: calc(var(--spacing) * 3);
    }

    .sm\:gap-4 {
      gap: calc(var(--spacing) * 4);
    }

    .sm\:gap-5 {
      gap: calc(var(--spacing) * 5);
    }

    .sm\:p-4 {
      padding: calc(var(--spacing) * 4);
    }

    .sm\:text-2xl {
      font-size: var(--text-2xl);
      line-height: var(--tw-leading, var(--text-2xl--line-height));
    }
  }

  @media (min-width: 48rem) {
    .md\:flex {
      display: flex;
    }

    .md\:hidden {
      display: none;
    }

    .md\:inline {
      display: inline;
    }

    .md\:grid-cols-2 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (min-width: 64rem) {
    .lg\:col-span-2 {
      grid-column: span 2 / span 2;
    }

    .lg\:col-span-3 {
      grid-column: span 3 / span 3;
    }

    .lg\:-m-6 {
      margin: calc(var(--spacing) * -6);
    }

    .lg\:block {
      display: block;
    }

    .lg\:flex {
      display: flex;
    }

    .lg\:hidden {
      display: none;
    }

    .lg\:grid-cols-2 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lg\:grid-cols-3 {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .lg\:grid-cols-4 {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .lg\:grid-cols-5 {
      grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .lg\:p-6 {
      padding: calc(var(--spacing) * 6);
    }
  }

  @media (min-width: 80rem) {
    .xl\:grid-cols-5 {
      grid-template-columns: repeat(5, minmax(0, 1fr));
    }
  }
}

html.light {
  --color-primary: var(--provider-light, #0891b2) !important;
  --color-primary-hover: var(--provider-primary, #0e7490) !important;
  --color-primary-light: var(--provider-soft, #0891b214) !important;
  --color-primary-glow: var(--provider-glow, #0891b20f) !important;
  --color-accent-start: var(--provider-primary, #0891b2) !important;
  --color-accent-mid: var(--provider-light, #14b8cd) !important;
  --color-accent-end: var(--provider-light, #22d3ee) !important;
  --color-background: #f8fafc !important;
  --color-surface: #fff !important;
  --color-surface-2: #f1f5f9 !important;
  --color-surface-3: #e2e8f0 !important;
  --color-border: #e2e8f0 !important;
  --color-border-subtle: #f1f5f9 !important;
  --color-border-hover: #93c5fd !important;
  --color-border-strong: #60a5fa !important;
  --color-text-primary: #0f172a !important;
  --color-text-secondary: #475569 !important;
  --color-text-muted: #64748b !important;
  --color-text-meta: #64748b !important;
  --color-text-dim: #94a3b8 !important;
  --color-success: #10b981 !important;
  --color-warning: #f59e0b !important;
  --color-danger: #ef4444 !important;
  --color-info: #3b82f6 !important;
  --color-glass: #fffffff2 !important;
  --color-glass-border: #2563eb14 !important;
  --color-glass-hover: #2563eb0a !important;
}

html.light h1:not(.text-transparent), html.light h2, html.light h3, html.light h4, html.light h5, html.light h6 {
  color: #0f172a;
}

html.light p:not([style]) {
  color: #475569;
}

html.light input, html.light textarea, html.light select {
  color-scheme: light;
  color: #0f172a;
}

html.light input::placeholder, html.light textarea::placeholder {
  color: #94a3b8;
}

html.light input:-webkit-autofill {
  -webkit-text-fill-color: #0f172a;
  caret-color: #0f172a;
  -webkit-box-shadow: inset 0 0 0 1000px #f1f5f9;
}

html.light input:-webkit-autofill:hover {
  -webkit-text-fill-color: #0f172a;
  caret-color: #0f172a;
  -webkit-box-shadow: inset 0 0 0 1000px #f1f5f9;
}

html.light input:-webkit-autofill:focus {
  -webkit-text-fill-color: #0f172a;
  caret-color: #0f172a;
  -webkit-box-shadow: inset 0 0 0 1000px #f1f5f9;
}

html.light * {
  scrollbar-color: #d1d5db transparent;
}

html.light ::-webkit-scrollbar-thumb {
  background: #d1d5db;
}

html.light ::-webkit-scrollbar-thumb:hover {
  background: #9ca3af;
}

html.light ::selection {
  color: #0f172a;
  background: #2563eb33;
}

html.light .animate-pulse-glow {
  animation: 2s ease-in-out infinite pulse-glow-light;
}

@keyframes pulse-glow-light {
  0%, 100% {
    box-shadow: 0 0 5px #2563eb4d;
  }

  50% {
    box-shadow: 0 0 15px #2563eb80;
  }
}

select option {
  color: #ececec;
  background: #2f2f2f;
}

html.light select option {
  color: #0f172a;
  background: #fff;
}

:root {
  --chat-bg: #212121;
  --chat-sidebar-bg: #171717;
  --chat-surface: #2f2f2f;
  --chat-hover: #383838;
  --chat-border: #3a3a3a;
  --chat-text: #ececec;
  --chat-text-secondary: #c4c4c4;
  --chat-text-muted: #9b9b9b;
  --chat-text-dim: #6b6b6b;
  --chat-code-bg: #1e1e1e;
  --chat-code-header: #2a2a2a;
  --chat-input-bg: #2f2f2f;
  --chat-user-bubble: #303030;
  --chat-code-border: #ffffff14;
  --chat-code-btn-text: #ffffff80;
  --chat-code-btn-border: #ffffff1f;
  --chat-code-btn-hover: #fffc;
  --chat-code-lang: #ffffff8c;
  --chat-code-icon: #ffffff4d;
}

html.light {
  --chat-bg: #fff;
  --chat-sidebar-bg: #f9f9f9;
  --chat-surface: #f4f4f4;
  --chat-hover: #ebebeb;
  --chat-border: #e5e5e5;
  --chat-text: #0d0d0d;
  --chat-text-secondary: #4a4a4a;
  --chat-text-muted: #6e6e6e;
  --chat-text-dim: #999;
  --chat-code-bg: #f7f7f8;
  --chat-code-header: #ececec;
  --chat-input-bg: #f4f4f4;
  --chat-user-bubble: #f4f4f4;
  --chat-code-border: #e5e5e5;
  --chat-code-btn-text: #64748b;
  --chat-code-btn-border: #e2e8f0;
  --chat-code-btn-hover: #475569;
  --chat-code-lang: #64748b;
  --chat-code-icon: #94a3b8;
}

.chat-input-box textarea::-webkit-scrollbar {
  width: 6px;
}

.chat-input-box textarea::-webkit-scrollbar-track {
  background: none;
}

.chat-input-box textarea::-webkit-scrollbar-thumb {
  background: var(--chat-border);
  border-radius: 3px;
}

.chat-input-box textarea::-webkit-scrollbar-thumb:hover {
  background: var(--chat-text-dim);
}

*, :before, :after {
  box-sizing: border-box;
}

html, body, #root {
  color: #ececec !important;
  color-scheme: dark !important;
  background-color: #212121 !important;
}

html.light, html.light body, html.light #root {
  color: #0d0d0d !important;
  color-scheme: light !important;
  background-color: #fff !important;
}

body {
  font-family: var(--font-sans);
  font-feature-settings: "cv02", "cv03", "cv04", "cv11";
  color: #ececec;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background-color: #212121;
  margin: 0;
  padding: 0;
}

input, textarea, select {
  color-scheme: dark;
  color: #ececec;
  background-color: #0000;
}

input::placeholder, textarea::placeholder {
  color: #8e8e8e;
}

input:-webkit-autofill {
  -webkit-text-fill-color: #ececec;
  caret-color: #ececec;
  -webkit-box-shadow: inset 0 0 0 1000px #171717;
}

input:-webkit-autofill:hover {
  -webkit-text-fill-color: #ececec;
  caret-color: #ececec;
  -webkit-box-shadow: inset 0 0 0 1000px #171717;
}

input:-webkit-autofill:focus {
  -webkit-text-fill-color: #ececec;
  caret-color: #ececec;
  -webkit-box-shadow: inset 0 0 0 1000px #171717;
}

* {
  scrollbar-width: thin;
  scrollbar-color: #2f2f2f transparent;
}

::-webkit-scrollbar {
  width: 4px;
  height: 4px;
}

::-webkit-scrollbar-track {
  background: none;
}

::-webkit-scrollbar-thumb {
  background: #2f2f2f;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: #404040;
}

::selection {
  color: #fff;
  background: #10a37f4d;
}

.chat-input-box:focus-within {
  border-color: var(--color-primary) !important;
}

.chat-messages-container {
  overflow-x: hidden !important;
}

pre {
  max-width: 100%;
  overflow-x: auto;
}

.message-content * {
  word-break: break-word;
  max-width: 100%;
}

.message-content ::selection {
  color: inherit;
  -webkit-text-fill-color: inherit;
  background: #7c3aed40;
}

.message-content ::selection {
  color: inherit;
  background: #7c3aed40;
}

.user-message-bubble ::selection {
  color: inherit;
  background: #ffffff4d;
}

.table-wrapper {
  max-width: 100%;
  overflow-x: auto;
}

.prose pre {
  background: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.prose code:before, .prose code:after {
  content: none !important;
}

@keyframes fadeSlideIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes typingBounce {
  0%, 60%, 100% {
    opacity: .5;
    transform: translateY(0);
  }

  30% {
    opacity: 1;
    transform: translateY(-6px);
  }
}

@keyframes bounce {
  0%, 80%, 100% {
    opacity: .4;
    transform: scale(.6);
  }

  40% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes spin-slow {
  from {
    transform: rotate(0);
  }

  to {
    transform: rotate(360deg);
  }
}

@keyframes pulse-glow {
  0%, 100% {
    box-shadow: 0 0 5px #10a37f4d;
  }

  50% {
    box-shadow: 0 0 15px #10a37f80;
  }
}

@keyframes gradient-shift {
  0%, 100% {
    background-position: 0%;
  }

  50% {
    background-position: 100%;
  }
}

@keyframes float {
  0%, 100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-6px);
  }
}

@keyframes shimmer {
  0% {
    transform: translateX(-100%);
  }

  100% {
    transform: translateX(100%);
  }
}

@keyframes slide-up {
  from {
    opacity: 0;
    transform: translateY(12px) scale(.98);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes slide-down {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fade-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes artifact-iterate-slide {
  0% {
    transform: translateX(-120%);
  }

  100% {
    transform: translateX(420%);
  }
}

@keyframes artifact-sparkle-pulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }

  50% {
    opacity: .55;
    transform: scale(1.18);
  }
}

@keyframes messageIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

#root {
  padding-top: env(safe-area-inset-top, 0px);
  padding-left: env(safe-area-inset-left, 0px);
  padding-right: env(safe-area-inset-right, 0px);
  min-height: 100dvh;
}

.h-screen {
  height: 100dvh !important;
}

button, a, input, select, textarea, [role="button"] {
  touch-action: manipulation;
}

html, body {
  overscroll-behavior: none;
  -webkit-overflow-scrolling: touch;
}

.overflow-x-auto::-webkit-scrollbar {
  display: none;
}

.overflow-x-auto {
  scrollbar-width: none;
}

.chat-messages-container::-webkit-scrollbar {
  width: 4px;
}

.chat-messages-container::-webkit-scrollbar-track {
  background: none;
}

.chat-messages-container::-webkit-scrollbar-thumb {
  background: var(--chat-border);
  border-radius: 4px;
}

.chat-input-box:hover {
  border-color: var(--color-border-hover) !important;
}

@supports (padding: env(safe-area-inset-bottom)) {
  .chat-input-container {
    padding-bottom: calc(12px + env(safe-area-inset-bottom));
  }
}

body.keyboard-open .chat-input-container {
  padding-bottom: 4px !important;
}

body.keyboard-open .chat-messages-container {
  scroll-padding-bottom: 60px;
}

:root {
  --safe-bottom: env(safe-area-inset-bottom, 0px);
}

body.keyboard-open {
  --safe-bottom: 0px;
}

@media (max-width: 768px) {
  body {
    font-size: 15px;
  }

  input, textarea, select {
    font-size: 16px !important;
  }

  form button, [type="submit"], .btn-primary, .btn-secondary, input:not([type="checkbox"]):not([type="radio"]), textarea, select {
    min-height: 44px;
  }

  main, #root, .flex-1 {
    max-width: 100vw;
    overflow-x: hidden;
  }

  .message-content {
    font-size: 14.5px !important;
    line-height: 1.7 !important;
  }

  .user-msg-container {
    max-width: 90% !important;
  }

  .ai-avatar {
    border-radius: 8px !important;
    width: 26px !important;
    height: 26px !important;
    font-size: 13px !important;
  }

  .ai-message-row {
    gap: 10px !important;
    margin-bottom: 20px !important;
  }

  .chat-input-box {
    border-radius: 20px !important;
  }

  .chat-input-box textarea {
    padding: 12px 14px 6px !important;
    font-size: 15px !important;
  }

  .chat-topbar-btn {
    min-width: 36px !important;
    min-height: 36px !important;
  }

  .table-wrapper {
    -webkit-overflow-scrolling: touch;
    overflow-x: auto;
  }

  .notification-panel {
    width: calc(100vw - 32px) !important;
    max-width: 340px !important;
    right: 16px !important;
  }

  .grid {
    gap: 12px !important;
  }

  ::-webkit-scrollbar {
    background: none;
    width: 0;
  }

  * {
    scrollbar-width: none;
  }

  button, label, nav, header, .chat-topbar-btn {
    -webkit-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
  }

  .message-content, textarea, input {
    -webkit-user-select: text;
    user-select: text;
  }

  img {
    -webkit-touch-callout: none;
  }
}

@media (max-width: 400px) {
  body {
    font-size: 14px;
  }

  .message-content {
    font-size: 13.5px !important;
  }

  .user-msg-container {
    max-width: 95% !important;
  }

  .chat-input-box {
    border-radius: 18px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, :before, :after {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

.animate-gradient-shift {
  background-size: 200% 200%;
  animation: 6s infinite gradient-shift;
}

.animate-float {
  animation: 3s ease-in-out infinite float;
}

.animate-shimmer {
  animation: 2s ease-in-out infinite shimmer;
}

.animate-pulse-glow {
  animation: 2s ease-in-out infinite pulse-glow;
}

.animate-slide-up {
  animation: .3s ease-out slide-up;
}

.animate-slide-down {
  animation: .2s ease-out slide-down;
}

.animate-fade-in {
  animation: .2s ease-out fade-in;
}

.animate-spin-slow {
  animation: 8s linear infinite spin-slow;
}

.animate-message-in {
  animation: .2s ease-out messageIn;
}

.message-enter {
  animation: .2s ease-out forwards fadeSlideIn;
}

.scroll-btn-enter {
  animation: .15s ease-out fade-in, .15s ease-out slide-up;
}

.jump-to-latest {
  background: var(--chat-surface);
  min-height: 36px;
  color: var(--chat-text);
  border: 1px solid var(--chat-border);
  cursor: pointer;
  letter-spacing: -.005em;
  opacity: 0;
  pointer-events: none;
  z-index: 20;
  -webkit-tap-highlight-color: transparent;
  border-radius: 999px;
  align-items: center;
  gap: 8px;
  padding: 8px 14px 8px 12px;
  font-size: 13px;
  font-weight: 500;
  transition: opacity .2s cubic-bezier(.16, 1, .3, 1), transform .2s cubic-bezier(.16, 1, .3, 1), border-color .15s, background .15s;
  display: inline-flex;
  position: absolute;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  box-shadow: 0 6px 18px #00000040, 0 1px 2px #00000026;
}

.jump-to-latest--visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

.jump-to-latest:hover {
  border-color: var(--accent);
  background: var(--chat-hover);
}

.jump-to-latest:active {
  transform: translateX(-50%) translateY(1px);
}

.jump-to-latest:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.jump-to-latest__label {
  font-family: inherit;
}

@media (max-width: 768px) {
  .jump-to-latest {
    min-height: 40px;
    padding: 10px 16px 10px 14px;
    font-size: 13.5px;
    bottom: 20px;
  }
}

.suggestion-card {
  transition: all .2s cubic-bezier(.4, 0, .2, 1);
}

.suggestion-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px #0000001f;
}

@keyframes chipFadeIn {
  from {
    opacity: 0;
    transform: scale(.9);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

.file-chip {
  animation: .15s ease-out chipFadeIn;
}

@keyframes menuIn {
  from {
    opacity: 0;
    transform: scale(.95) translateY(-4px);
  }

  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.context-menu-enter {
  animation: .12s ease-out menuIn;
}

@keyframes slideInBanner {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.error-banner-enter {
  animation: .2s ease-out slideInBanner;
}

.glass {
  background: var(--color-glass);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--color-glass-border);
}

.glass-strong {
  background: var(--color-glass);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid var(--color-glass-border);
}

.gradient-border {
  position: relative;
}

.gradient-border:before {
  content: "";
  border-radius: inherit;
  background: linear-gradient(135deg, var(--color-accent-start), var(--color-accent-end));
  -webkit-mask-composite: xor;
  pointer-events: none;
  opacity: 0;
  -webkit-mask-composite: xor;
  -webkit-mask-source-type: auto, auto;
  padding: 1px;
  transition: opacity .3s;
  position: absolute;
  inset: 0;
  -webkit-mask-image: linear-gradient(#fff 0 0), linear-gradient(#fff 0 0);
  -webkit-mask-position: 0 0, 0 0;
  -webkit-mask-size: auto, auto;
  -webkit-mask-repeat: repeat, repeat;
  -webkit-mask-clip: content-box, border-box;
  -webkit-mask-origin: content-box, border-box;
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  -webkit-mask-source-type: auto, auto;
  mask-mode: match-source, match-source;
}

.gradient-border:hover:before {
  opacity: 1;
}

.glow-primary {
  box-shadow: 0 0 20px #10a37f26, 0 0 60px #10a37f0d;
}

.glow-primary-strong {
  box-shadow: 0 0 20px #10a37f4d, 0 0 60px #10a37f1a;
}

html.light .glow-primary {
  box-shadow: 0 0 20px #2563eb1f, 0 0 60px #2563eb0a;
}

html.light .glow-primary-strong {
  box-shadow: 0 0 20px #2563eb40, 0 0 60px #2563eb14;
}

.focus-ring {
  outline: none;
}

.focus-ring:focus-visible {
  box-shadow: 0 0 0 2px var(--color-background), 0 0 0 4px var(--color-primary);
}

html.light .h-screen.flex.flex-col {
  background: linear-gradient(#fff 0%, #f1f5f9 50%, #e2e8f0 100%) !important;
  border-right: 1px solid #e2e8f0 !important;
}

html.light .bg-surface {
  background: #fff !important;
  box-shadow: 0 1px 3px #2563eb0f, 0 4px 12px #2563eb0a !important;
}

html.light .border.border-border.rounded-2xl {
  box-shadow: 0 2px 8px #2563eb14;
  background: linear-gradient(#fff, #fff) padding-box padding-box, linear-gradient(135deg, #e9d5ff, #93c5fd, #60a5fa) border-box !important;
  border: 1px solid #0000 !important;
}

html.light header {
  -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
  backdrop-filter: blur(20px) saturate(180%) !important;
  background: #ffffffd9 !important;
  border-bottom: 1px solid #2563eb14 !important;
}

html.light code:not(pre code) {
  color: #1e293b !important;
  background: #f1f5f9 !important;
  border: 1px solid #e2e8f0 !important;
}

html.light table {
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  overflow: hidden;
}

html.light th {
  text-transform: uppercase;
  letter-spacing: .05em;
  font-size: 12px;
  color: #6b7280 !important;
  background: #f9fafb !important;
  border-bottom: 1px solid #e5e7eb !important;
  padding: 12px 16px !important;
  font-weight: 600 !important;
}

html.light td {
  background: #fff !important;
  border-bottom: 1px solid #f3f4f6 !important;
  padding: 10px 16px !important;
}

html.light tr:last-child td {
  border-bottom: none !important;
}

html.light tr:hover td {
  background: #f9fafb !important;
}

html.light .bg-primary\/10 {
  background: linear-gradient(135deg, #2563eb1f, #60a5fa1f) !important;
}

html.light input:focus, html.light textarea:focus, html.light select:focus {
  border-color: #60a5fa !important;
  box-shadow: 0 0 0 3px #2563eb1a !important;
}

html.light .chat-input-wrapper, html.light [style*="chat-input-bg"] {
  background: #fff !important;
  border: 1px solid #e2e8f0 !important;
  box-shadow: 0 -4px 20px #2563eb0f !important;
}

html.light button[style*="primary"] {
  box-shadow: 0 2px 8px #2563eb40 !important;
}

html.light .nav-item:hover, html.light a[style*="primary"]:hover {
  background: linear-gradient(135deg, #2563eb14, #60a5fa0d) !important;
}

html.light .nav-active {
  background: linear-gradient(135deg, #2563eb1f, #60a5fa14) !important;
  border-left: 3px solid #2563eb !important;
}

html.light .conversation-item:hover {
  background: #f1f5f9 !important;
}

html.light .token-badge {
  color: #fff !important;
  background: linear-gradient(135deg, #2563eb, #60a5fa) !important;
}

html.light .model-dropdown {
  background: #fff !important;
  border: 1px solid #e2e8f0 !important;
  box-shadow: 0 8px 30px #2563eb1f !important;
}

html.light a[href] {
  color: #2563eb;
}

html.light a[href]:hover {
  color: #1d4ed8;
}

html.light blockquote {
  background: #2563eb0a !important;
  border-left: 3px solid #60a5fa !important;
  border-radius: 0 8px 8px 0 !important;
  padding: 12px 16px !important;
}

html.light .search-bar {
  background: #fff !important;
  border: 1px solid #e2e8f0 !important;
  box-shadow: 0 1px 4px #2563eb0f !important;
}

html.light .notification-panel {
  background: #fff !important;
  border: 1px solid #e2e8f0 !important;
  box-shadow: 0 8px 30px #2563eb1f !important;
}

html.light .message-actions button {
  color: #64748b !important;
}

html.light .message-actions button:hover {
  color: #2563eb !important;
  background: #2563eb14 !important;
}

html.light .user-message-bubble {
  color: #fff !important;
  background: linear-gradient(135deg, #2563eb, #1d4ed8) !important;
  box-shadow: 0 2px 12px #2563eb40 !important;
}

html.light .user-message-bubble * {
  color: #fff !important;
}

html.light .assistant-icon {
  background: linear-gradient(135deg, #2563eb, #60a5fa) !important;
}

html.light .sidebar-widget {
  background: linear-gradient(135deg, #f1f5f9, #e2e8f0) !important;
  border: 1px solid #e2e8f0 !important;
}

html.light [role="tooltip"] {
  color: #fff !important;
  background: #0f172a !important;
}

html.light .animate-pulse {
  background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%) 0 0 / 200% 100% !important;
}

html.light .agent-badge {
  background: linear-gradient(135deg, #2563eb1a, #60a5fa14) !important;
  border: 1px solid #2563eb26 !important;
}

html.light .stat-card {
  border-top: 3px solid #0000 !important;
  border-image: linear-gradient(90deg, #2563eb, #60a5fa, #93c5fd) 1 !important;
}

html.light .text-text-primary {
  color: #0f172a !important;
}

html.light .text-text-secondary {
  color: #475569 !important;
}

html.light .text-text-muted, html.light .text-text-meta {
  color: #64748b !important;
}

html.light .text-text-dim {
  color: #94a3b8 !important;
}

html.light .text-primary {
  color: var(--color-primary) !important;
}

html.light .text-primary-hover {
  color: var(--color-primary-hover) !important;
}

html.light .bg-background {
  background-color: #fafbff !important;
}

html.light .bg-surface {
  background-color: #fff !important;
  box-shadow: 0 1px 3px #2563eb0f !important;
}

html.light .bg-surface-2 {
  background-color: #f1f5f9 !important;
}

html.light .bg-surface-3 {
  background-color: #e2e8f0 !important;
}

html.light .bg-surface\/80 {
  background-color: #ffffffe6 !important;
}

html.light .bg-surface\/30 {
  background-color: #f5f3ff80 !important;
}

html.light .border-border {
  border-color: #e2e8f0 !important;
}

html.light .border-border\/50 {
  border-color: #e5e1f580 !important;
}

html.light .border-border-subtle {
  border-color: #f1f5f9 !important;
}

html.light .border-primary\/20 {
  border-color: #6d28d933 !important;
}

html.light .border-primary\/30 {
  border-color: #6d28d94d !important;
}

html.light .border-primary\/40 {
  border-color: #6d28d966 !important;
}

html.light .from-accent-start {
  --tw-gradient-from: var(--color-accent-start) !important;
}

html.light .via-accent-mid {
  --tw-gradient-via: var(--color-accent-mid) !important;
}

html.light .to-accent-end {
  --tw-gradient-to: var(--color-accent-end) !important;
}

html.light .to-accent-mid {
  --tw-gradient-to: var(--color-accent-mid) !important;
}

html.light .from-accent-start.to-accent-mid {
  --tw-gradient-from: var(--color-accent-start) !important;
  --tw-gradient-to: var(--color-accent-mid) !important;
}

html.light .bg-primary {
  background-color: var(--color-primary) !important;
}

html.light .bg-primary\/10 {
  background-color: #6d28d91a !important;
}

html.light .bg-primary\/12 {
  background-color: #6d28d91f !important;
}

html.light .bg-primary\/20 {
  background-color: #6d28d933 !important;
}

html.light .hover\:text-text-primary:hover {
  color: #0f172a !important;
}

html.light .hover\:border-primary\/40:hover {
  border-color: #6d28d966 !important;
}

html.light .bg-background\/70 {
  background-color: #fafbffd9 !important;
}

html.light .shadow-primary\/20 {
  --tw-shadow-color: #6d28d926 !important;
}

html.light .shadow-primary\/25 {
  --tw-shadow-color: #6d28d933 !important;
}

html.light .shadow-primary\/5 {
  --tw-shadow-color: #6d28d90d !important;
}

@property --tw-translate-x {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-translate-y {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-translate-z {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-rotate-x {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-y {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-z {
  syntax: "*";
  inherits: false
}

@property --tw-skew-x {
  syntax: "*";
  inherits: false
}

@property --tw-skew-y {
  syntax: "*";
  inherits: false
}

@property --tw-space-y-reverse {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-divide-y-reverse {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}

@property --tw-gradient-position {
  syntax: "*";
  inherits: false
}

@property --tw-gradient-from {
  syntax: "<color>";
  inherits: false;
  initial-value: #0000;
}

@property --tw-gradient-via {
  syntax: "<color>";
  inherits: false;
  initial-value: #0000;
}

@property --tw-gradient-to {
  syntax: "<color>";
  inherits: false;
  initial-value: #0000;
}

@property --tw-gradient-stops {
  syntax: "*";
  inherits: false
}

@property --tw-gradient-via-stops {
  syntax: "*";
  inherits: false
}

@property --tw-gradient-from-position {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 0%;
}

@property --tw-gradient-via-position {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 50%;
}

@property --tw-gradient-to-position {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-leading {
  syntax: "*";
  inherits: false
}

@property --tw-font-weight {
  syntax: "*";
  inherits: false
}

@property --tw-tracking {
  syntax: "*";
  inherits: false
}

@property --tw-ordinal {
  syntax: "*";
  inherits: false
}

@property --tw-slashed-zero {
  syntax: "*";
  inherits: false
}

@property --tw-numeric-figure {
  syntax: "*";
  inherits: false
}

@property --tw-numeric-spacing {
  syntax: "*";
  inherits: false
}

@property --tw-numeric-fraction {
  syntax: "*";
  inherits: false
}

@property --tw-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-inset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-inset-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-inset-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-ring-color {
  syntax: "*";
  inherits: false
}

@property --tw-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-inset-ring-color {
  syntax: "*";
  inherits: false
}

@property --tw-inset-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-ring-inset {
  syntax: "*";
  inherits: false
}

@property --tw-ring-offset-width {
  syntax: "<length>";
  inherits: false;
  initial-value: 0;
}

@property --tw-ring-offset-color {
  syntax: "*";
  inherits: false;
  initial-value: #fff;
}

@property --tw-ring-offset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-outline-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}

@property --tw-blur {
  syntax: "*";
  inherits: false
}

@property --tw-brightness {
  syntax: "*";
  inherits: false
}

@property --tw-contrast {
  syntax: "*";
  inherits: false
}

@property --tw-grayscale {
  syntax: "*";
  inherits: false
}

@property --tw-hue-rotate {
  syntax: "*";
  inherits: false
}

@property --tw-invert {
  syntax: "*";
  inherits: false
}

@property --tw-opacity {
  syntax: "*";
  inherits: false
}

@property --tw-saturate {
  syntax: "*";
  inherits: false
}

@property --tw-sepia {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-blur {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-brightness {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-contrast {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-grayscale {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-hue-rotate {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-invert {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-opacity {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-saturate {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-sepia {
  syntax: "*";
  inherits: false
}

@property --tw-duration {
  syntax: "*";
  inherits: false
}

@property --tw-ease {
  syntax: "*";
  inherits: false
}

@property --tw-scale-x {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@property --tw-scale-y {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@property --tw-scale-z {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@keyframes pulse {
  50% {
    opacity: .5;
  }
}
/* ═══════════════════════════════════════════════════════
   MOBILE APP THEME — Purple, light background
   Applied via .mobile-app class on MobileAppShell root.
   Only active inside the Capacitor native shell.
   Desktop website is COMPLETELY UNAFFECTED.
   ═══════════════════════════════════════════════════════ */

.mobile-app {
  /* Fill the dynamic viewport. With Keyboard resize:'native' (capacitor.config),
     the WebView shrinks to the area above the keyboard when it opens, so 100dvh
     tracks the visible height automatically — no JS --vh hack needed. */
  height: 100dvh;
  overflow: hidden;

  --mobile-tabbar-base-height: 72px;
  --mobile-tabbar-reserved: calc(98px + env(safe-area-inset-bottom, 0px));

  /* ── Primary: Convoia turquoise, provider-aware ──
     Defaults to brand turquoise; AccentContext sets --provider-* per active
     model so the accent follows the selected model (Anthropic, OpenAI, …). */
  --color-primary: var(--provider-light, #14B8CD) !important;
  --color-primary-hover: var(--provider-primary, #0891B2) !important;
  --color-primary-light: var(--provider-soft, rgba(20, 184, 205, 0.10)) !important;
  --color-primary-glow: var(--provider-glow, rgba(20, 184, 205, 0.06)) !important;

  --color-accent-start: var(--provider-primary, #14B8CD) !important;
  --color-accent-mid: var(--provider-light, #22D3EE) !important;
  --color-accent-end: var(--provider-light, #67E8F9) !important;

  /* ── Light background ── */
  --color-background: #F7F6FC !important;
  --color-surface: #FFFFFF !important;
  --color-surface-2: #F1EEFB !important;
  --color-surface-3: #EBE5FF !important;

  /* ── Borders ── */
  --color-border: #E8E5F0 !important;
  --color-border-subtle: #F0EDF8 !important;
  --color-border-hover: var(--color-primary) !important;

  /* ── Text: dark on light ── */
  --color-text-primary: #1A1A2E !important;
  --color-text-secondary: #4A4A6A !important;
  --color-text-muted: #8E8EA0 !important;
  --color-text-meta: #8E8EA0 !important;
  --color-text-dim: #B0B0C0 !important;

  /* ── Chat-specific ── */
  --chat-bg: #F8F7FF !important;
  --chat-sidebar-bg: #FFFFFF !important;
  --chat-surface: #F0EDF8 !important;
  --chat-hover: #E8E5F0 !important;
  --chat-border: #E0DCF0 !important;
  --chat-text: #1A1A2E !important;
  --chat-text-secondary: #4A4A6A !important;
  --chat-text-muted: #8E8EA0 !important;
  --chat-text-dim: #B0B0C0 !important;
  --chat-code-bg: #F5F3FF !important;
  --chat-code-header: #EBE5FF !important;
  --chat-input-bg: #FFFFFF !important;
  /* Provider-aware: the user's bubbles re-theme with the active model, exactly
     like --color-primary above. Defaults to turquoise because
     PROVIDER_THEMES.default.primary === #14B8CD, so empty/new chats stay brand. */
  --chat-user-bubble: var(--provider-primary, #14B8CD) !important;

  /* ── Glass ── */
  --color-glass: rgba(255, 255, 255, 0.92) !important;
  --color-glass-border: var(--color-primary-light) !important;

  /* ── Force light color scheme ── */
  color-scheme: light !important;
  background-color: #F7F6FC !important;
  color: #1A1A2E !important;
}

.mobile-app button {
  -webkit-tap-highlight-color: transparent;
}

.mobile-app button:active {
  transform: scale(0.985);
}

/* ── Mobile user bubble: white text on purple ── */
.mobile-app .user-msg-container {
  color: #FFFFFF;
}
.mobile-app .user-msg-container * {
  color: #FFFFFF !important;
}
.mobile-app .user-msg-container code {
  background: rgba(255,255,255,0.15) !important;
  border-color: rgba(255,255,255,0.2) !important;
}

/* ── Mobile inputs ── */
.mobile-app input,
.mobile-app textarea,
.mobile-app select {
  color-scheme: light;
  color: #1A1A2E;
}
.mobile-app input::placeholder,
.mobile-app textarea::placeholder {
  color: #B0B0C0;
}

/* ── Mobile scrollbar ── */
.mobile-app * {
  scrollbar-width: none;
}
.mobile-app ::-webkit-scrollbar {
  display: none;
}

/* ── Mobile code blocks ── */
.mobile-app code:not(pre code) {
  background: #F0EDF8 !important;
  color: #0E7490 !important;
  border: 1px solid #E0DCF0 !important;
}

/* ── Text selection: plain purple highlight, no box inheritance ── */
.mobile-app ::selection {
  background-color: rgba(20, 184, 205, 0.25) !important;
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
}
.mobile-app ::-moz-selection {
  background-color: rgba(20, 184, 205, 0.25) !important;
  color: inherit !important;
}

/* ── Mobile bottom tab safe area ── */
.mobile-tab-bar {
  position: fixed;
  right: 12px;
  bottom: max(10px, env(safe-area-inset-bottom, 0px));
  left: 12px;
  z-index: 50;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: stretch;
  min-height: var(--mobile-tabbar-base-height);
  padding: 8px;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0.88));
  border: 1px solid var(--color-primary-light);
  border-radius: 28px;
  box-shadow:
    0 20px 48px rgba(26, 26, 46, 0.16),
    0 2px 8px rgba(26, 26, 46, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(24px) saturate(1.35);
  -webkit-backdrop-filter: blur(24px) saturate(1.35);
}

.mobile-tab-bar__item {
  min-width: 0;
  min-height: 56px;
  border: 0;
  border-radius: 22px;
  background: transparent;
  color: #9290A3;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 6px 2px 5px;
  transition:
    background-color 160ms ease,
    color 160ms ease,
    transform 160ms ease;
}

.mobile-tab-bar__item.is-active {
  color: var(--color-primary);
  background: var(--color-primary-light);
}

.mobile-tab-bar__icon {
  width: 28px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mobile-tab-bar__label {
  max-width: 100%;
  overflow: hidden;
  color: inherit;
  font-size: 10.5px;
  line-height: 1.1;
  font-weight: 700;
  letter-spacing: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mobile-tab-bar__item.is-active .mobile-tab-bar__label {
  font-weight: 800;
}

@supports (padding-bottom: env(safe-area-inset-bottom)) {
  .mobile-tab-bar {
    bottom: calc(10px + env(safe-area-inset-bottom, 0px));
  }
}

/* ── Hide tab bar when keyboard opens ── */
body.keyboard-open .mobile-tab-bar {
  display: none !important;
}

/* ── Mobile main content: account for tab bar height ── */
.mobile-app-content {
  padding-bottom: var(--mobile-tabbar-reserved);
}

.mobile-page {
  min-height: 100%;
  padding: 16px 16px var(--mobile-tabbar-reserved);
}

.mobile-route-frame {
  min-height: 100%;
  padding: 14px 16px var(--mobile-tabbar-reserved);
}

.mobile-route-body {
  overflow: hidden;
}

.mobile-route-body > .mobile-page {
  padding: 0;
}

.mobile-route-body > .space-y-6 {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.mobile-route-body h2.text-2xl,
.mobile-route-body h2.text-3xl,
.mobile-route-body h1 {
  display: none;
}

.mobile-route-body .grid {
  grid-template-columns: 1fr !important;
}

.mobile-route-body .sm\:grid-cols-2,
.mobile-route-body .lg\:grid-cols-2,
.mobile-route-body .lg\:grid-cols-3,
.mobile-route-body .lg\:grid-cols-4,
.mobile-route-body .xl\:grid-cols-5 {
  grid-template-columns: 1fr !important;
}

.mobile-route-body .rounded-2xl,
.mobile-route-body .rounded-xl,
.mobile-route-body .bg-surface,
.mobile-route-body [class*="bg-gradient"] {
  border-radius: 22px !important;
  box-shadow: 0 14px 36px rgba(26, 26, 46, 0.06);
}

.mobile-route-body table {
  min-width: 620px;
}

.mobile-route-body .overflow-x-auto {
  -webkit-overflow-scrolling: touch;
}

.mobile-page-header {
  display: grid;
  grid-template-columns: 44px 1fr 44px;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
  min-height: 44px;
}

.mobile-page-back {
  width: 40px;
  height: 40px;
  border: 1px solid var(--color-primary-light);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.88);
  color: var(--color-text-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 20px rgba(26, 26, 46, 0.05);
}

.mobile-page-title-wrap {
  min-width: 0;
  text-align: center;
}

.mobile-page-title-wrap h1 {
  margin: 0;
  color: var(--color-text-primary);
  font-size: 20px;
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: 0;
}

.mobile-page-title-wrap p {
  margin: 4px 0 0;
  color: var(--color-text-muted);
  font-size: 12px;
  line-height: 1.3;
}

.mobile-page-action {
  display: flex;
  justify-content: flex-end;
}

.mobile-card {
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--color-primary-light);
  border-radius: 22px;
  box-shadow: 0 14px 36px rgba(26, 26, 46, 0.06);
}

.mobile-section-title {
  margin: 0 0 10px;
  padding-left: 2px;
  color: var(--color-text-muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

/* ── CSS variable for tabbar-aware height calculations ──
   Switches to 0 when keyboard is open so chat/page heights
   use the full available viewport above the keyboard.       */
.mobile-app {
  --tabbar-kb-offset: var(--mobile-tabbar-reserved, 98px);
}

body.keyboard-open .mobile-app {
  --tabbar-kb-offset: 0px;
}

/* ── Pre-auth pages (login / register) ──
   These render OUTSIDE the app shell but reuse `.mobile-app` for its theme
   tokens — which also carries `height:100dvh; overflow:hidden`. That clips the
   form and makes a keyboard-focused field unreachable. Auth screens must scroll
   instead, so the focused input can always be brought into view. */
.mobile-app.mobile-app--auth {
  height: auto;
  min-height: 100dvh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

/* Remove bottom padding reserved for tab bar when keyboard is open
   so non-chat pages can scroll their full content into view.        */
body.keyboard-open .mobile-app-content {
  padding-bottom: 0 !important;
}

body.keyboard-open .mobile-page {
  padding-bottom: env(safe-area-inset-bottom, 16px) !important;
}

/* Prevent overscroll/rubber-band pull-to-refresh on scrollable content */
.mobile-app-content {
  overscroll-behavior: none;
}

/* ── CSS variable for chat top bar (overridden in dark mode) ── */
.mobile-app {
  --mobile-topbar-bg: rgba(255, 255, 255, 0.94);
  --mobile-topbar-border: var(--color-primary-light);
  --mobile-btn-neutral-bg: var(--color-surface-2);
  --mobile-newchat-bg: #111827;
  --mobile-newchat-color: #ffffff;
}

/* ════════════════════════════════════════════════════════
   DARK MODE — applies when html.dark is set by ThemeContext
   ════════════════════════════════════════════════════════ */
.dark .mobile-app {
  /* ── Primary: turquoise (provider-aware), brighter for dark bg ── */
  --color-primary: var(--provider-primary, #22D3EE) !important;
  --color-primary-hover: var(--provider-light, #14B8CD) !important;
  --color-primary-light: var(--provider-soft, rgba(34, 211, 238, 0.14)) !important;
  --color-primary-glow: var(--provider-glow, rgba(34, 211, 238, 0.08)) !important;

  /* ── Dark backgrounds ── */
  --color-background: #0D0D16 !important;
  --color-surface: #14141F !important;
  --color-surface-2: #1C1C2C !important;
  --color-surface-3: #232336 !important;

  /* ── Dark borders ── */
  --color-border: #2C2C42 !important;
  --color-border-subtle: #1F1F30 !important;
  --color-border-hover: var(--color-primary) !important;

  /* ── Light text on dark ── */
  --color-text-primary: #EEEEFF !important;
  --color-text-secondary: #9898B8 !important;
  --color-text-muted: #65658A !important;
  --color-text-meta: #65658A !important;
  --color-text-dim: #44445C !important;

  /* ── Dark chat ── */
  --chat-bg: #0D0D16 !important;
  --chat-sidebar-bg: #14141F !important;
  --chat-surface: #1C1C2C !important;
  --chat-hover: #232336 !important;
  --chat-border: #2C2C42 !important;
  --chat-text: #EEEEFF !important;
  --chat-text-secondary: #9898B8 !important;
  --chat-text-muted: #65658A !important;
  --chat-text-dim: #44445C !important;
  --chat-code-bg: #1C1C2C !important;
  --chat-code-header: #232336 !important;
  --chat-input-bg: #14141F !important;
  /* Provider-aware (see light-mode note above) — turquoise default, model color on chat. */
  --chat-user-bubble: var(--provider-primary, #14B8CD) !important;

  /* ── Dark glass ── */
  --color-glass: rgba(20, 20, 31, 0.94) !important;
  --color-glass-border: var(--color-primary-light) !important;

  /* ── Dark topbar ── */
  --mobile-topbar-bg: rgba(13, 13, 22, 0.96);
  --mobile-topbar-border: var(--color-primary-light);
  --mobile-btn-neutral-bg: #1C1C2C;
  --mobile-newchat-bg: #232336;
  --mobile-newchat-color: #EEEEFF;

  color-scheme: dark !important;
  background-color: #0D0D16 !important;
  color: #EEEEFF !important;
}

/* ── Dark inputs ── */
.dark .mobile-app input,
.dark .mobile-app textarea,
.dark .mobile-app select {
  color-scheme: dark;
  color: #EEEEFF;
  background-color: var(--color-surface-2);
}
.dark .mobile-app input::placeholder,
.dark .mobile-app textarea::placeholder {
  color: #44445C;
}

/* ── Dark code blocks ── */
.dark .mobile-app code:not(pre code) {
  background: #1C1C2C !important;
  color: #67E8F9 !important;
  border: 1px solid #2C2C42 !important;
}

/* ── Dark tab bar ── */
.dark .mobile-tab-bar {
  background:
    linear-gradient(180deg, rgba(20, 20, 31, 0.97), rgba(13, 13, 22, 0.92));
  border: 1px solid var(--color-primary-light);
  box-shadow:
    0 20px 48px rgba(0, 0, 0, 0.40),
    0 2px 8px rgba(0, 0, 0, 0.24),
    inset 0 1px 0 rgba(34, 211, 238, 0.10);
}
.dark .mobile-tab-bar__item {
  color: #4A4A64;
}
.dark .mobile-tab-bar__item.is-active {
  color: var(--color-primary);
  background: var(--color-primary-light);
}

/* ── Dark page-back button ── */
.dark .mobile-page-back {
  background: rgba(20, 20, 31, 0.90);
  border-color: var(--color-primary-light);
}

/* ── Dark mobile-card ── */
.dark .mobile-card {
  background: rgba(20, 20, 31, 0.96);
  border: 1px solid var(--color-primary-light);
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.28);
}

/* ── Dark user bubble ── */
.dark .mobile-app .user-msg-container {
  color: #FFFFFF;
}

/* ── Dark body background to prevent white flash on scroll edges ── */
.dark body {
  background-color: #0D0D16;
}
/* ── ConvoiaAI Council — visual layer ──────────────────────────────────── */
/* Palette + component classes. No layout logic; components own positioning. */

:root {
  /* Amber — council brand */
  --council-amber: #fbbf24;
  --council-amber-dark: #d97706;
  --council-amber-bg: rgba(245, 158, 11, 0.08);
  --council-amber-border: rgba(245, 158, 11, 0.25);

  /* Purple — ConvoiaAI verdict / cross-exam */
  --council-purple: #7c3aed;
  --council-purple-light: #c4b5fd;
  --council-purple-dark: #5b21b6;
  --council-purple-bg: rgba(124, 58, 237, 0.06);
  --council-purple-border: rgba(124, 58, 237, 0.18);
  --council-purple-glow: rgba(124, 58, 237, 0.3);

  /* Status */
  --council-green: #34d399;
  --council-green-bg: rgba(16, 185, 129, 0.06);
  --council-green-border: rgba(16, 185, 129, 0.15);
  --council-red: #f87171;
  --council-red-bg: rgba(239, 68, 68, 0.08);
  --council-red-border: rgba(239, 68, 68, 0.2);

  /* Dark-mode defaults */
  --council-surface: rgba(255, 255, 255, 0.03);
  --council-surface-hover: rgba(255, 255, 255, 0.06);
  --council-border: rgba(255, 255, 255, 0.08);
  --council-border-hover: rgba(255, 255, 255, 0.14);
  --council-text: #e4e4e7;
  --council-text-muted: #a1a1aa;
  --council-text-dim: #71717a;
  --council-text-faint: #52525b;
  --council-modal-bg: rgba(15, 15, 20, 0.85);
  --council-modal-shadow: 0 24px 64px rgba(0, 0, 0, 0.45);
}

/* Light-mode overrides — app uses html.light class (not prefers-color-scheme) */
html.light {
  --council-amber: #d97706;
  --council-amber-bg: #fef3c7;
  --council-amber-border: #fcd34d;
  --council-purple: #7c3aed;
  --council-purple-light: #6d28d9;
  --council-purple-bg: #f5f3ff;
  --council-purple-border: #c4b5fd;
  --council-purple-glow: rgba(124, 58, 237, 0.12);
  --council-green: #059669;
  --council-green-bg: #ecfdf5;
  --council-green-border: #a7f3d0;
  --council-red: #dc2626;
  --council-red-bg: #fee2e2;
  --council-red-border: #fecaca;
  --council-surface: #ffffff;
  --council-surface-hover: #f8fafc;
  --council-border: #e2e8f0;
  --council-border-hover: #cbd5e1;
  --council-text: #1e293b;
  --council-text-muted: #334155;
  --council-text-dim: #64748b;
  --council-text-faint: #94a3b8;
  --council-modal-bg: #ffffff;
  --council-modal-shadow: 0 20px 60px rgba(0, 0, 0, 0.12);
}

/* Extra light-mode polish — kept for the remaining components (verdict,
   response panel, picker). The exec-card / crossexam-card overrides
   were removed in Apollo v2 — see end-of-component-section note. */

html.light .council-verdict-card {
  background: #faf8ff;
  border: 1px solid #c4b5fd;
  box-shadow: 0 2px 10px rgba(124, 58, 237, 0.06);
}
html.light .council-verdict-card::before {
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(124, 58, 237, 0.45), transparent);
}
html.light .council-verdict-title { color: #6d28d9; }
html.light .council-verdict-body { color: #1e293b; }
html.light .council-verdict-body strong,
html.light .council-verdict-label { color: #0f172a; font-weight: 700; }

html.light .council-verdict-insight {
  background: #f5f3ff;
  border-left: 3px solid #7c3aed;
  color: #4c1d95;
}
html.light .council-verdict-section { color: #475569; }
html.light .council-verdict-bullet  { color: #334155; }
html.light .council-verdict-bullet::before {
  background: rgba(124, 58, 237, 0.25);
  border-color: rgba(124, 58, 237, 0.55);
}
html.light .council-verdict-nextstep {
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  color: #065f46;
}
html.light .council-verdict-nextstep strong { color: #047857; }

html.light .council-verdict-badge--agree {
  background: #ecfdf5;
  color: #047857;
  border: 1px solid #6ee7b7;
}
html.light .council-verdict-badge--mixed {
  background: #fffbeb;
  color: #b45309;
  border: 1px solid #fcd34d;
}

/* Apollo v2: .council-crossexam-* and .council-badge--* light-mode overrides
   removed (those components are gone — panel owns running/cross-exam state). */

html.light .council-response-panel {
  border: 1px solid #e2e8f0;
  background: #ffffff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
}
html.light .council-response-header { background: #f8fafc; }
html.light .council-response-body   { color: #475569; border-top-color: #e2e8f0; }
html.light .council-response-name   { color: #1e293b; }
html.light .council-response-meta,
html.light .council-response-arrow  { color: #94a3b8; }
html.light .council-response-dur    { color: #64748b; }

html.light .council-provider-badge--anthropic { background: #fff7ed; color: #c2410c; border: 1px solid #fed7aa; }
html.light .council-provider-badge--openai    { background: #ecfdf5; color: #047857; border: 1px solid #a7f3d0; }
html.light .council-provider-badge--google    { background: #eff6ff; color: #1d4ed8; border: 1px solid #bfdbfe; }
html.light .council-provider-badge--deepseek  { background: #eef2ff; color: #4338ca; border: 1px solid #c7d2fe; }
html.light .council-provider-badge--perplexity{ background: #f5f3ff; color: #6d28d9; border: 1px solid #c4b5fd; }
html.light .council-provider-badge--xai       { background: #f1f5f9; color: #475569; border: 1px solid #cbd5e1; }
html.light .council-provider-badge--mistral   { background: #fff7ed; color: #c2410c; border: 1px solid #fed7aa; }

html.light .council-footer { border-top-color: #e2e8f0; }
html.light .council-footer-stats,
html.light .council-footer-mod { color: #64748b; }

/* Apollo v2: .council-progress-*, .council-spinner, .council-check,
   .council-error-icon light-mode overrides removed — owning components gone. */

html.light .council-picker-modal,
html.light .council-picker-sheet {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
}
html.light .council-picker-modal::before {
  background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.08), transparent);
}
html.light .council-picker-title    { color: #1e293b; }
html.light .council-picker-subtitle,
html.light .council-picker-desc     { color: #64748b; }
html.light .council-category-label  { color: #94a3b8; }
html.light .council-category-label::after { background: #e2e8f0; }
html.light .council-model-chip {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  color: #475569;
}
html.light .council-model-chip:hover:not(.council-model-chip--maxed):not(:disabled) {
  background: #f1f5f9;
  border-color: #cbd5e1;
  color: #1e293b;
}
html.light .council-model-chip--selected {
  background: #f5f3ff;
  border-color: #7c3aed;
  color: #6d28d9;
  box-shadow: 0 0 0 1px rgba(124, 58, 237, 0.15);
}
html.light .council-picker-footer {
  border-top-color: #e2e8f0;
  background: #f8fafc;
  color: #64748b;
}
html.light .council-picker-close {
  border-color: #e2e8f0;
  background: #f8fafc;
  color: #64748b;
}
html.light .council-picker-close:hover { background: #f1f5f9; color: #1e293b; }
html.light .council-picker-confirm--disabled {
  background: #f1f5f9;
  color: #94a3b8;
}

/* ── Header badge (state-aware) ───────────────────────────────────────── */
/* Apollo v2: .council-badge--* dark-mode rules removed — see light-mode note
   above. Inline running/cross-exam state pills live inside ApolloPanel now. */

/* ── Picker modal ─────────────────────────────────────────────────────── */
.council-picker-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 1199;
  animation: council-fade-in 0.22s ease;
}
@keyframes council-fade-in { from { opacity: 0; } to { opacity: 1; } }

.council-picker-modal {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(460px, calc(100vw - 24px));
  max-height: min(85vh, 720px);
  z-index: 1200;
  border-radius: 16px;
  background: var(--council-modal-bg);
  backdrop-filter: blur(40px);
  -webkit-backdrop-filter: blur(40px);
  border: 0.5px solid var(--council-border);
  box-shadow: var(--council-modal-shadow);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  animation: council-modal-in 0.22s ease;
}
.council-picker-modal::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.12), transparent);
  pointer-events: none;
}
@keyframes council-modal-in {
  from { opacity: 0; transform: translate(-50%, -48%) scale(0.96); }
  to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

/* Mobile sheet variant — bottom sheet, full-width */
.council-picker-sheet {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 1200;
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
  background: var(--council-modal-bg);
  backdrop-filter: blur(40px);
  -webkit-backdrop-filter: blur(40px);
  border-top: 0.5px solid var(--council-border);
  max-height: 85dvh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding-bottom: env(safe-area-inset-bottom, 0px);
  animation: council-sheet-up 0.24s ease;
  box-shadow: 0 -12px 36px rgba(0, 0, 0, 0.35);
}
@keyframes council-sheet-up {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}

.council-picker-header {
  padding: 16px 18px 12px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}
.council-picker-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: linear-gradient(135deg, #f59e0b, #d97706);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  flex-shrink: 0;
}
.council-picker-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--council-text);
  line-height: 1.2;
}
.council-picker-subtitle {
  font-size: 11px;
  color: var(--council-text-dim);
  margin-top: 2px;
}
.council-picker-close {
  margin-left: auto;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  border: 0.5px solid var(--council-border);
  background: var(--council-surface);
  color: var(--council-text-dim);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.15s;
}
.council-picker-close:hover {
  background: var(--council-surface-hover);
  color: var(--council-text);
}

.council-picker-desc {
  padding: 0 18px 10px;
  font-size: 12px;
  color: var(--council-text-dim);
  line-height: 1.5;
  flex-shrink: 0;
}

.council-picker-scroll {
  flex: 1;
  overflow-y: auto;
  padding: 4px 14px 8px;
  min-height: 0;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.1) transparent;
}

/* Category label */
.council-category-label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: var(--council-text-faint);
  padding: 10px 4px 6px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.council-category-label::after {
  content: '';
  flex: 1;
  height: 0.5px;
  background: var(--council-border);
}
.council-category-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 0 4px 4px;
}

/* Model chip (in picker) */
.council-model-chip {
  position: relative;
  min-width: fit-content;
  padding: 7px 14px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  user-select: none;
  border: 0.5px solid var(--council-border);
  background: var(--council-surface);
  color: var(--council-text-muted);
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.council-model-chip:hover:not(.council-model-chip--maxed):not(:disabled) {
  background: var(--council-surface-hover);
  border-color: var(--council-border-hover);
  color: var(--council-text);
}
.council-model-chip--selected {
  background: linear-gradient(135deg, rgba(124, 58, 237, 0.18), rgba(124, 58, 237, 0.08));
  border-color: rgba(124, 58, 237, 0.5);
  color: var(--council-purple-light);
  box-shadow: 0 0 0 1px rgba(124, 58, 237, 0.2);
}
.council-model-chip--maxed {
  opacity: 0.25;
  cursor: not-allowed;
}
.council-model-chip--recommended::after {
  content: '';
  position: absolute;
  top: -2px;
  right: -2px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--council-amber);
  box-shadow: 0 0 6px rgba(245, 158, 11, 0.6);
}

.council-picker-footer {
  padding: 10px 18px;
  border-top: 0.5px solid var(--council-border);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  flex-shrink: 0;
  font-size: 11px;
  color: var(--council-text-faint);
  background: var(--council-surface);
}
.council-picker-moderator {
  color: var(--council-text-dim);
  display: flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}
.council-picker-moderator::before {
  content: '';
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--council-purple);
  box-shadow: 0 0 5px var(--council-purple-glow);
}

.council-picker-confirm {
  margin: 12px 18px 18px;
  padding: 13px 16px;
  border-radius: 12px;
  border: none;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  color: #fff;
  letter-spacing: 0.3px;
  transition: all 0.2s ease;
  flex-shrink: 0;
}
.council-picker-confirm--active {
  background: linear-gradient(135deg, #7c3aed, #6d28d9);
  box-shadow: 0 4px 16px var(--council-purple-glow);
}
.council-picker-confirm--active:hover {
  box-shadow: 0 6px 24px var(--council-purple-glow);
  transform: translateY(-1px);
}
.council-picker-confirm--disabled {
  background: var(--council-surface);
  color: var(--council-text-faint);
  cursor: not-allowed;
  box-shadow: none;
}

/* Apollo v2: .council-exec-*, .council-spinner, .council-check,
   .council-error-icon, .council-progress*, .council-crossexam-* removed.
   Components that owned these classes (ModelStatusCard, CrossExamCard,
   CouncilMessage progress bar) were deleted; their roles moved into
   ApolloPanel and live inside its scoped <style> block. */

/* ── Verdict box ─────────────────────────────────────────────────────── */
.council-verdict-card {
  margin: 12px 0;
  border-radius: 14px;
  background: var(--council-surface);
  border: 0.5px solid var(--council-purple-border);
  overflow: hidden;
  position: relative;
}
.council-verdict-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(124, 58, 237, 0.35), transparent);
  pointer-events: none;
}
.council-verdict-header {
  padding: 14px 16px 10px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.council-verdict-icon {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  background: linear-gradient(135deg, #7c3aed, #5b21b6);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.5px;
  flex-shrink: 0;
  box-shadow: 0 2px 10px var(--council-purple-glow);
}
.council-verdict-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--council-purple-light);
  flex: 1;
}
.council-verdict-badge {
  font-size: 9px;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 6px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  white-space: nowrap;
}
.council-verdict-badge--agree {
  background: var(--council-green-bg);
  color: var(--council-green);
  border: 0.5px solid var(--council-green-border);
}
.council-verdict-badge--mixed {
  background: var(--council-amber-bg);
  color: var(--council-amber);
  border: 0.5px solid var(--council-amber-border);
}

.council-verdict-body {
  padding: 0 16px 16px;
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--council-text);
}
.council-verdict-text { }
.council-verdict-text + .council-verdict-text { margin-top: 8px; }
.council-verdict-label { font-weight: 700; }
.council-verdict-body strong { font-weight: 700; color: var(--council-text); }

.council-verdict-cursor {
  display: inline-block;
  width: 2px;
  height: 14px;
  background: var(--council-purple);
  animation: council-cursor-blink 0.8s ease-in-out infinite;
  vertical-align: text-bottom;
  margin-left: 2px;
}
@keyframes council-cursor-blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}

.council-verdict-insight {
  margin: 12px 0;
  padding: 12px 14px;
  border-radius: 10px;
  background: var(--council-purple-bg);
  border-left: 2px solid rgba(124, 58, 237, 0.5);
  font-size: 12.5px;
  line-height: 1.65;
  color: var(--council-purple-light);
}
@media (prefers-color-scheme: light) {
  .council-verdict-insight { color: #6d28d9; }
}

.council-verdict-section {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.7px;
  text-transform: uppercase;
  color: var(--council-text-dim);
  margin: 16px 0 6px;
}

.council-verdict-bullet {
  font-size: 12.5px;
  color: var(--council-text-muted);
  line-height: 1.6;
  padding: 4px 0 4px 18px;
  position: relative;
}
.council-verdict-bullet::before {
  content: '';
  position: absolute;
  left: 0;
  top: 12px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(124, 58, 237, 0.35);
  border: 1px solid rgba(124, 58, 237, 0.55);
}

.council-verdict-nextstep {
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 10px;
  background: var(--council-green-bg);
  border: 0.5px solid var(--council-green-border);
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--council-green);
}
@media (prefers-color-scheme: light) {
  .council-verdict-nextstep { color: #047857; }
}
.council-verdict-nextstep strong {
  color: var(--council-green);
  font-weight: 700;
}

/* ── Response panels ─────────────────────────────────────────────────── */
.council-responses-label {
  padding: 12px 4px 6px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: var(--council-text-faint);
}
.council-response-panel {
  margin: 3px 0;
  border-radius: 10px;
  overflow: hidden;
  border: 0.5px solid var(--council-border);
  background: var(--council-surface);
  transition: border-color 0.2s;
}
.council-response-panel:hover { border-color: var(--council-border-hover); }
.council-response-header {
  padding: 10px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  user-select: none;
  background: transparent;
  border: none;
  width: 100%;
  color: inherit;
}
.council-response-name {
  font-size: 12px;
  font-weight: 600;
  color: var(--council-text);
  display: flex;
  align-items: center;
  gap: 8px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.council-provider-badge {
  font-size: 9px;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: 5px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  flex-shrink: 0;
}
.council-provider-badge--anthropic { background: rgba(217, 119, 6, 0.12); color: var(--council-amber); }
.council-provider-badge--openai    { background: var(--council-green-bg); color: var(--council-green); }
.council-provider-badge--google    { background: rgba(66, 133, 244, 0.12); color: #60a5fa; }
.council-provider-badge--deepseek  { background: rgba(79, 70, 229, 0.15); color: #818cf8; }
.council-provider-badge--perplexity{ background: var(--council-purple-bg); color: var(--council-purple-light); }
.council-provider-badge--xai       { background: rgba(255, 255, 255, 0.08); color: var(--council-text-muted); }
.council-provider-badge--mistral   { background: rgba(249, 115, 22, 0.12); color: #fb923c; }

.council-response-meta {
  font-size: 10px;
  color: var(--council-text-faint);
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.council-response-dur {
  color: var(--council-text-dim);
  font-variant-numeric: tabular-nums;
}
.council-response-arrow {
  color: var(--council-text-faint);
  transition: transform 0.2s ease;
  flex-shrink: 0;
}
.council-response-panel--open .council-response-arrow { transform: rotate(180deg); }
.council-response-body {
  padding: 12px 14px;
  font-size: 12px;
  line-height: 1.65;
  color: var(--council-text-muted);
  border-top: 0.5px solid var(--council-border);
  max-height: 260px;
  overflow-y: auto;
  scrollbar-width: thin;
}

/* ── Council footer (stats) ──────────────────────────────────────────── */
.council-footer {
  margin-top: 10px;
  padding: 10px 4px 0;
  border-top: 0.5px solid var(--council-border);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.council-footer-stats {
  font-size: 11px;
  color: var(--council-text-dim);
  font-variant-numeric: tabular-nums;
}
.council-footer-mod {
  font-size: 11px;
  color: var(--council-text-dim);
  display: flex;
  align-items: center;
  gap: 5px;
}
.council-footer-mod::before {
  content: '';
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--council-purple);
  box-shadow: 0 0 5px var(--council-purple-glow);
}
/*
 * Welcome Screen — premium empty state for the chat surface.
 *
 * Theme strategy: the app toggles dark/light via a class on <html>
 * (see contexts/ThemeContext.tsx). We mirror that by scoping dark
 * overrides under `html.dark`. No `prefers-color-scheme` — the user's
 * explicit toggle must win over the OS setting.
 */

.welcome-screen {
  position: relative;
  width: 100%;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 32px;
  overflow: hidden;
}

/* ── Ambient background glows ────────────────────────────── */
.welcome-ambient {
  position: absolute;
  pointer-events: none;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
  z-index: 0;
}

.welcome-ambient--top {
  top: -100px;
  left: -50px;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(124, 58, 237, 0.08), transparent 70%);
}

.welcome-ambient--bottom {
  bottom: -100px;
  right: -50px;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(56, 139, 237, 0.06), transparent 70%);
}

html.dark .welcome-ambient--top {
  background: radial-gradient(circle, rgba(124, 58, 237, 0.15), transparent 70%);
}

html.dark .welcome-ambient--bottom {
  background: radial-gradient(circle, rgba(56, 139, 237, 0.1), transparent 70%);
}

/* ── Hero section ────────────────────────────────────────── */
.welcome-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  margin-bottom: 44px;
  position: relative;
  z-index: 1;
}

/* Sparkle logo — subtle float + very slow sparkle spin */
.welcome-logo {
  width: 72px;
  height: 72px;
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  background: linear-gradient(135deg, #7c3aed, #5b21b6);
  box-shadow:
    0 12px 40px rgba(124, 58, 237, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
  animation: welcome-logo-float 6s ease-in-out infinite;
}

.welcome-logo::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(124, 58, 237, 0.5), transparent, rgba(56, 139, 237, 0.3));
  z-index: -1;
  opacity: 0.6;
  filter: blur(8px);
}

.welcome-logo svg {
  width: 36px;
  height: 36px;
  animation: welcome-sparkle-spin 20s linear infinite;
}

@keyframes welcome-logo-float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-4px); }
}

@keyframes welcome-sparkle-spin {
  to { transform: rotate(360deg); }
}

/* ── Greeting text ───────────────────────────────────────── */
.welcome-greeting {
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.welcome-eyebrow {
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.3px;
  color: #7c3aed;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.welcome-eyebrow::before,
.welcome-eyebrow::after {
  content: '';
  width: 24px;
  height: 0.5px;
}

.welcome-eyebrow::before {
  background: linear-gradient(90deg, transparent, rgba(124, 58, 237, 0.4));
}

.welcome-eyebrow::after {
  background: linear-gradient(90deg, rgba(124, 58, 237, 0.4), transparent);
}

html.dark .welcome-eyebrow {
  color: #a78bfa;
}

html.dark .welcome-eyebrow::before {
  background: linear-gradient(90deg, transparent, rgba(167, 139, 250, 0.35));
}

html.dark .welcome-eyebrow::after {
  background: linear-gradient(90deg, rgba(167, 139, 250, 0.35), transparent);
}

.welcome-title {
  font-size: 32px;
  font-weight: 600;
  letter-spacing: -0.8px;
  line-height: 1.2;
  margin: 0;
  color: #18181b;
}

html.dark .welcome-title {
  background: linear-gradient(135deg, #ffffff, #a1a1aa);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

.welcome-subtitle {
  font-size: 14px;
  color: #52525b;
  font-weight: 400;
  margin: 4px 0 0;
}

html.dark .welcome-subtitle {
  color: #a1a1aa;
}

/* ── Cards grid ──────────────────────────────────────────── */
.welcome-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  width: 100%;
  max-width: 640px;
  position: relative;
  z-index: 1;
}

@media (max-width: 640px) {
  .welcome-cards {
    grid-template-columns: 1fr;
  }
}

.welcome-card {
  padding: 20px;
  border-radius: 16px;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 120px;
  text-align: left;
  font-family: inherit;

  background: rgba(255, 255, 255, 0.7);
  border: 0.5px solid rgba(0, 0, 0, 0.06);
  box-shadow:
    0 1px 3px rgba(0, 0, 0, 0.04),
    0 1px 2px rgba(0, 0, 0, 0.02);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: inherit;
}

html.dark .welcome-card {
  background: rgba(255, 255, 255, 0.02);
  border: 0.5px solid rgba(255, 255, 255, 0.06);
  box-shadow: none;
}

/* Top highlight line on hover — accent-tinted */
.welcome-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--card-accent, rgba(124, 58, 237, 0.3)), transparent);
  opacity: 0;
  transition: opacity 0.3s;
}

.welcome-card:hover::before {
  opacity: 1;
}

.welcome-card:hover {
  transform: translateY(-2px);
  background: #ffffff;
  border-color: var(--card-accent-border, rgba(124, 58, 237, 0.25));
  box-shadow: 0 8px 24px var(--card-accent-glow, rgba(124, 58, 237, 0.08));
}

html.dark .welcome-card:hover {
  background: rgba(255, 255, 255, 0.04);
  border-color: var(--card-accent-border, rgba(124, 58, 237, 0.2));
  box-shadow: 0 12px 32px var(--card-accent-glow, rgba(124, 58, 237, 0.1));
}

.welcome-card:focus-visible {
  outline: 2px solid var(--card-accent, #7c3aed);
  outline-offset: 2px;
}

/* Category accent colors — set via CSS vars the shared hover rules read */
.welcome-card--write {
  --card-accent: #ec4899;
  --card-accent-border: rgba(236, 72, 153, 0.25);
  --card-accent-glow: rgba(236, 72, 153, 0.1);
}
.welcome-card--code {
  --card-accent: #3b82f6;
  --card-accent-border: rgba(59, 130, 246, 0.25);
  --card-accent-glow: rgba(59, 130, 246, 0.1);
}
.welcome-card--research {
  --card-accent: #10b981;
  --card-accent-border: rgba(16, 185, 129, 0.25);
  --card-accent-glow: rgba(16, 185, 129, 0.1);
}
.welcome-card--analyze {
  --card-accent: #f59e0b;
  --card-accent-border: rgba(245, 158, 11, 0.25);
  --card-accent-glow: rgba(245, 158, 11, 0.1);
}

/* Card inner content */
.welcome-card-head {
  display: flex;
  align-items: center;
  gap: 12px;
}

.welcome-card-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform 0.3s;
}

.welcome-card:hover .welcome-card-icon {
  transform: scale(1.08) rotate(-4deg);
}

.welcome-card--write .welcome-card-icon {
  background: linear-gradient(135deg, rgba(236, 72, 153, 0.15), rgba(236, 72, 153, 0.05));
  color: #ec4899;
  border: 0.5px solid rgba(236, 72, 153, 0.2);
}
.welcome-card--code .welcome-card-icon {
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.15), rgba(59, 130, 246, 0.05));
  color: #3b82f6;
  border: 0.5px solid rgba(59, 130, 246, 0.2);
}
.welcome-card--research .welcome-card-icon {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.15), rgba(16, 185, 129, 0.05));
  color: #10b981;
  border: 0.5px solid rgba(16, 185, 129, 0.2);
}
.welcome-card--analyze .welcome-card-icon {
  background: linear-gradient(135deg, rgba(245, 158, 11, 0.15), rgba(245, 158, 11, 0.05));
  color: #f59e0b;
  border: 0.5px solid rgba(245, 158, 11, 0.2);
}

.welcome-card-title {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.2px;
  color: #18181b;
}

html.dark .welcome-card-title {
  color: #f4f4f5;
}

.welcome-card-desc {
  font-size: 13px;
  line-height: 1.5;
  color: #52525b;
  font-weight: 400;
}

html.dark .welcome-card-desc {
  color: #a1a1aa;
}

/* Arrow fades in on hover */
.welcome-card-arrow {
  position: absolute;
  bottom: 20px;
  right: 20px;
  opacity: 0;
  transition: all 0.3s;
  color: var(--card-accent, #7c3aed);
}

.welcome-card:hover .welcome-card-arrow {
  opacity: 1;
  transform: translateX(2px);
}

/* ── Footer hint ─────────────────────────────────────────── */
.welcome-hint {
  margin-top: 32px;
  font-size: 12px;
  color: #52525b;
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
  z-index: 1;
}

html.dark .welcome-hint {
  color: #71717a;
}

.welcome-hint-dot {
  opacity: 0.4;
}
/* ─── Citation pills — inline sources for AI messages that used web search ─── */

.citation-pills {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 14px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 0.5px solid var(--chat-border, rgba(0, 0, 0, 0.08));
  background: var(--chat-surface, rgba(0, 0, 0, 0.015));
}

.citation-pills__header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px;
  font-family: var(--font-sans, 'Geist', 'Inter', system-ui, sans-serif);
  font-size: 12px;
  color: var(--chat-text-muted, #6b6b78);
  line-height: 1.3;
}

.citation-pills__icon {
  font-size: 13px;
  line-height: 1;
}

.citation-pills__count {
  font-weight: 600;
  color: var(--chat-text-secondary, var(--chat-text-muted));
  font-feature-settings: 'tnum';
}

.citation-pills__query {
  font-style: italic;
  color: var(--chat-text-muted);
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Flex-wrap row — pills wrap to additional rows on narrow screens. */
.citation-pills__row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

/* ─── Individual pill ─── */

.citation-pill {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px 4px 8px;
  border-radius: 100px;
  border: 0.5px solid var(--chat-border, rgba(0, 0, 0, 0.1));
  background: var(--color-surface, var(--chat-surface, #fff));
  text-decoration: none;
  color: var(--chat-text-secondary, var(--chat-text-muted));
  font-family: var(--font-sans, 'Geist', 'Inter', system-ui, sans-serif);
  font-size: 12px;
  line-height: 1.3;
  max-width: 100%;
  transition:
    border-color 150ms ease,
    background 150ms ease,
    color 150ms ease,
    transform 150ms ease;
  cursor: pointer;
  flex-shrink: 0;
  scroll-margin-top: 80px;
}

.citation-pill:hover,
.citation-pill:focus-visible {
  border-color: var(--accent, var(--color-primary, #14b8a6));
  color: var(--chat-text, var(--color-text-primary));
  background: var(--accent-soft, rgba(20, 184, 166, 0.06));
  outline: none;
}

.citation-pill:active {
  transform: scale(0.97);
}

.citation-pill__n {
  font-family: var(--font-mono, 'Geist Mono', 'JetBrains Mono', ui-monospace, monospace);
  font-size: 11px;
  font-weight: 600;
  color: var(--accent, var(--color-primary, #14b8a6));
  font-feature-settings: 'tnum';
  letter-spacing: -0.01em;
  flex-shrink: 0;
}

.citation-pill__favicon,
.citation-pill__favicon-fallback {
  flex-shrink: 0;
  border-radius: 3px;
  opacity: 0.85;
}

.citation-pill__favicon-fallback {
  color: var(--chat-text-muted);
}

.citation-pill:hover .citation-pill__favicon,
.citation-pill:hover .citation-pill__favicon-fallback {
  opacity: 1;
}

.citation-pill__domain {
  font-weight: 500;
  max-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ─── Tooltip (real tooltip, appears on hover only) ─── */

.citation-pill__tooltip {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 0;
  z-index: 50;
  min-width: 240px;
  max-width: 320px;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--chat-surface-elevated, var(--color-surface, #fff));
  border: 0.5px solid var(--chat-border);
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.04),
    0 8px 24px rgba(0, 0, 0, 0.12);
  color: var(--chat-text, var(--color-text-primary));
  font-family: var(--font-sans, 'Geist', 'Inter', system-ui, sans-serif);
  pointer-events: none;
  opacity: 0;
  transform: translateY(4px);
  transition:
    opacity 140ms ease,
    transform 140ms ease;
}

.citation-pill:hover .citation-pill__tooltip,
.citation-pill:focus-visible .citation-pill__tooltip {
  opacity: 1;
  transform: translateY(0);
}

.citation-pill__tooltip-title {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--chat-text);
  margin-bottom: 4px;
}

.citation-pill__tooltip-snippet {
  font-size: 12px;
  line-height: 1.45;
  color: var(--chat-text-secondary, var(--chat-text-muted));
  margin-bottom: 6px;
}

.citation-pill__tooltip-url {
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, monospace);
  font-size: 10.5px;
  color: var(--accent, var(--color-primary));
  opacity: 0.8;
}

/* Touch devices — no hover, so suppress the tooltip entirely.
   Tap on the pill opens the URL (the <a>'s default behavior). */
@media (hover: none) {
  .citation-pill__tooltip {
    display: none;
  }
}

/* ─── Inline [N] anchor links inside the AI's prose ─── */

.message-content a[href^="#citation-"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 16px;
  padding: 0 4px;
  margin: 0 1px;
  border-radius: 4px;
  background: var(--accent-soft, rgba(20, 184, 166, 0.1));
  color: var(--accent, var(--color-primary));
  font-family: var(--font-mono, 'Geist Mono', ui-monospace, monospace);
  font-size: 10.5px;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  vertical-align: baseline;
  transition: background 140ms ease, transform 140ms ease;
  cursor: pointer;
}

.message-content a[href^="#citation-"]:hover {
  background: var(--accent, var(--color-primary));
  color: var(--accent-on, #fff);
}

.message-content a[href^="#citation-"]:active {
  transform: scale(0.92);
}

/* ─── Flash highlight on scroll-to ─── */

@keyframes citation-pill-flash {
  0% {
    background: var(--accent, var(--color-primary));
    color: var(--accent-on, #fff);
    border-color: var(--accent, var(--color-primary));
    box-shadow: 0 0 0 3px var(--accent-soft, rgba(20, 184, 166, 0.25));
  }
  100% {
    background: var(--color-surface, var(--chat-surface, #fff));
    color: var(--chat-text-secondary, var(--chat-text-muted));
    border-color: var(--chat-border, rgba(0, 0, 0, 0.1));
    box-shadow: 0 0 0 0 transparent;
  }
}

.citation-pill--flash {
  animation: citation-pill-flash 1200ms ease-out;
}

/* ─── Dark theme adjustment (inherits from chat-text vars) ─── */

[data-theme='dark'] .citation-pills,
.dark .citation-pills {
  border-color: rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.02);
}

[data-theme='dark'] .citation-pill,
.dark .citation-pill {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme='dark'] .citation-pill__tooltip,
.dark .citation-pill__tooltip {
  background: var(--chat-surface-elevated, #1f1f23);
  border-color: rgba(255, 255, 255, 0.1);
}
/* ═══════════════════════════════════════════════════════════
   CONVOIA DESIGN SYSTEM — TOKEN FOUNDATION
   All visual decisions start here. Never hardcode values.
   ═══════════════════════════════════════════════════════════ */

html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

:root {
  /* ─── TYPOGRAPHY ─── */
  --font-sans: 'Geist', 'Geist Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --font-mono: 'Geist Mono', 'SF Mono', 'Menlo', 'Monaco', 'Consolas', ui-monospace, monospace;
  --font-display: var(--font-sans);

  /* ─── TYPE SCALE ─── */
  --text-micro: 11px;
  --text-caption: 12px;
  --text-body-sm: 13px;
  --text-body: 14px;
  --text-body-lg: 15px;
  --text-h3: 18px;
  --text-h2: 24px;
  --text-h1: 32px;
  --text-display: 48px;

  /* Line heights */
  --lh-tight: 1.1;
  --lh-heading: 1.2;
  --lh-h3: 1.4;
  --lh-body: 1.6;
  --lh-caption: 1.5;
  --lh-micro: 1.4;

  /* Letter spacing */
  --ls-display: -0.02em;
  --ls-heading: -0.01em;
  --ls-body: 0;
  --ls-mono-upper: 0.05em;

  /* Weights */
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;

  /* ─── SPACING (4px grid) ─── */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;
  --space-32: 128px;

  /* ─── RADIUS ─── */
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-2xl: 20px;
  --radius-full: 9999px;

  /* ─── BORDER WIDTHS ─── */
  --border-thin: 0.5px;
  --border-base: 1px;
  --border-thick: 2px;

  /* ─── Z-INDEX ─── */
  --z-base: 1;
  --z-raised: 10;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 1000;
  --z-modal: 1100;
  --z-toast: 1200;
  --z-tooltip: 1300;

  /* ─── TRANSITIONS ─── */
  --ease-default: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
  --duration-fast: 150ms;
  --duration-base: 250ms;
  --duration-slow: 400ms;

  /* ═══════════════════════════════════════════════════════════
     SIGNATURE ACCENT — TURQUOISE
     The ONE color that appears on critical UI only.
     Light mode uses darker shade for contrast.
     ═══════════════════════════════════════════════════════════ */
  --accent-50:  #ECFEFF;
  --accent-100: #CFFAFE;
  --accent-200: #A5F3FC;
  --accent-300: #67E8F9;
  --accent-400: #22D3EE;
  --accent-500: #14B8CD;  /* Primary in dark mode */
  --accent-600: #0891B2;  /* Primary in light mode */
  --accent-700: #0E7490;
  --accent-800: #155E75;
  --accent-900: #164E63;

  /* ─── SEMANTIC COLORS ─── */
  --color-success: #10B981;
  --color-success-bg: rgba(16, 185, 129, 0.1);
  --color-warning: #F59E0B;
  --color-warning-bg: rgba(245, 158, 11, 0.1);
  --color-error: #EF4444;
  --color-error-bg: rgba(239, 68, 68, 0.1);
  --color-info: #3B82F6;
  --color-info-bg: rgba(59, 130, 246, 0.1);
}

/* ═══════════════════════════════════════════════════════════
   LIGHT MODE (default)
   ═══════════════════════════════════════════════════════════ */

:root,
[data-theme="light"] {
  --surface-0: #FAFAFA;
  --surface-1: #FFFFFF;
  --surface-2: rgba(0, 0, 0, 0.02);
  --surface-3: rgba(0, 0, 0, 0.04);
  --surface-overlay: rgba(255, 255, 255, 0.9);
  /* Atmospheric card surfaces over animated mesh backgrounds.
     Lower alpha than --surface-overlay so background bleeds through
     visibly. Currently consumed by .auth-layout__card. */
  --surface-glass: rgba(255, 255, 255, 0.85);

  --text-primary: #18181B;
  --text-secondary: #3F3F46;
  --text-tertiary: #52525B;
  --text-muted: #71717A;
  --text-faint: #A1A1AA;
  --text-inverse: #FAFAFA;

  --border-subtle: rgba(0, 0, 0, 0.06);
  --border-default: rgba(0, 0, 0, 0.08);
  --border-strong: rgba(0, 0, 0, 0.12);
  --border-focus: var(--accent-600);

  /* Accent resolves via AccentContext-set provider vars, falling back to
     the static Convoia turquoise when no provider is active. */
  --accent: var(--provider-light, var(--accent-600));
  --accent-hover: var(--provider-hover, var(--accent-700));
  --accent-soft: var(--provider-soft, rgba(8, 145, 178, 0.08));
  --accent-border: var(--provider-border, rgba(8, 145, 178, 0.25));
  --accent-glow: var(--provider-glow, rgba(8, 145, 178, 0.15));
  --accent-on: var(--provider-on, #FAFAFA);

  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.04);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.04);
  --shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.06);
  --shadow-xl: 0 24px 64px rgba(0, 0, 0, 0.08);
  --shadow-accent: 0 8px 32px rgba(8, 145, 178, 0.15);
  --shadow-focus-ring: 0 0 0 3px rgba(8, 145, 178, 0.2);

  --grain-opacity: 0.25;
}

/* ═══════════════════════════════════════════════════════════
   DARK MODE
   ═══════════════════════════════════════════════════════════ */

[data-theme="dark"] {
  --surface-0: #0A0A0F;
  --surface-1: #0F0F14;
  --surface-2: rgba(255, 255, 255, 0.02);
  --surface-3: rgba(255, 255, 255, 0.04);
  --surface-overlay: rgba(10, 10, 15, 0.85);
  --surface-glass: rgba(15, 15, 20, 0.65);

  --text-primary: #F4F4F5;
  --text-secondary: #D4D4D8;
  --text-tertiary: #C4C4C8;
  --text-muted: #A1A1AA;
  --text-faint: #71717A;
  --text-inverse: #18181B;

  --border-subtle: rgba(255, 255, 255, 0.06);
  --border-default: rgba(255, 255, 255, 0.08);
  --border-strong: rgba(255, 255, 255, 0.12);
  --border-focus: var(--accent-500);

  /* Dark mode uses the provider's "primary" shade (brighter variant). */
  --accent: var(--provider-primary, var(--accent-500));
  --accent-hover: var(--provider-hover, var(--accent-400));
  --accent-soft: var(--provider-soft, rgba(20, 184, 205, 0.1));
  --accent-border: var(--provider-border, rgba(20, 184, 205, 0.3));
  --accent-glow: var(--provider-glow, rgba(20, 184, 205, 0.2));
  --accent-on: var(--provider-on, #0A0A0F);

  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.2);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.3);
  --shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.4);
  --shadow-xl: 0 24px 64px rgba(0, 0, 0, 0.5);
  --shadow-accent: 0 8px 32px rgba(20, 184, 205, 0.2);
  --shadow-focus-ring: 0 0 0 3px rgba(20, 184, 205, 0.25);

  --grain-opacity: 0.3;
}

/* Design-system containers get base typographic defaults without overriding
   the surrounding app's typography cascade. Applying these only inside a
   [data-theme] boundary keeps the token system opt-in for Tier 0. */

[data-theme] {
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* Numeric/identifier utility — apply to tokens, prices, timestamps, IDs */

.mono {
  font-family: var(--font-mono);
  font-feature-settings: 'tnum' 1, 'zero' 1;
}

[data-theme] ::selection {
  background: var(--accent-soft);
  color: var(--accent);
}

/* ─── Accent transition (smooth color swap on model change) ─── */

:root {
  --accent-transition:
    color 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    background-color 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    border-color 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    fill 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    stroke 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.btn--primary,
.btn--outline,
.pill--accent,
.input-field__wrap:focus-within,
.metric__value--accent,
.convoia-mark__nodes circle,
.convoia-mark__lines line,
.signal-line,
.comp-line__pulse,
.card--accent,
.section-heading {
  transition: var(--accent-transition);
}

@media (prefers-reduced-motion: reduce) {
  .btn--primary,
  .btn--outline,
  .pill--accent,
  .input-field__wrap:focus-within,
  .metric__value--accent,
  .convoia-mark__nodes circle,
  .convoia-mark__lines line,
  .signal-line,
  .comp-line__pulse,
  .card--accent,
  .section-heading {
    transition: none;
  }
}

/* Type utility classes */

.text-display {
  font-size: var(--text-display);
  font-weight: var(--weight-semibold);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
}

.text-h1 {
  font-size: var(--text-h1);
  font-weight: var(--weight-semibold);
  line-height: var(--lh-heading);
  letter-spacing: var(--ls-heading);
}

.text-h2 {
  font-size: var(--text-h2);
  font-weight: var(--weight-semibold);
  line-height: var(--lh-heading);
  letter-spacing: var(--ls-heading);
}

.text-h3 {
  font-size: var(--text-h3);
  font-weight: var(--weight-semibold);
  line-height: var(--lh-h3);
}

.text-body-lg {
  font-size: var(--text-body-lg);
  line-height: var(--lh-body);
}

.text-body {
  font-size: var(--text-body);
  line-height: var(--lh-body);
}

.text-body-sm {
  font-size: var(--text-body-sm);
  line-height: var(--lh-caption);
}

.text-caption {
  font-size: var(--text-caption);
  line-height: var(--lh-caption);
  color: var(--text-tertiary);
}

.text-micro {
  font-size: var(--text-micro);
  line-height: var(--lh-micro);
  color: var(--text-muted);
}

.mono-label {
  font-family: var(--font-mono);
  font-size: var(--text-micro);
  text-transform: uppercase;
  letter-spacing: var(--ls-mono-upper);
  color: var(--text-secondary);
  font-weight: var(--weight-medium);
}

/* Section divider heading — mono + accent uppercase. Linear/Vercel pattern.
   Use for top-level section breaks instead of heavy h2s. */

.section-heading {
  font-family: var(--font-mono);
  font-size: var(--text-caption);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
  font-weight: var(--weight-medium);
  margin-bottom: var(--space-4);
}

.mono-value {
  font-family: var(--font-mono);
  font-feature-settings: 'tnum' 1, 'zero' 1;
  font-weight: var(--weight-medium);
}

/*
   Grain surface — applies a subtle animated noise texture.
   Use by adding .grain-surface to any container that should have it.
   The chat background especially benefits.
*/

.grain-surface {
  position: relative;
}

.grain-surface::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: var(--grain-opacity);
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.5  0 0 0 0 0.5  0 0 0 0 0.5  0 0 0 0.1 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  animation: grain-shift 8s steps(6) infinite;
  z-index: 0;
}

.grain-surface > * {
  position: relative;
  z-index: 1;
}

@keyframes grain-shift {
  0%   { transform: translate(0, 0); }
  16%  { transform: translate(-1%, 1%); }
  33%  { transform: translate(1%, -1%); }
  50%  { transform: translate(-0.5%, -0.5%); }
  66%  { transform: translate(1%, 0.5%); }
  83%  { transform: translate(-0.5%, 0.5%); }
  100% { transform: translate(0, 0); }
}

@media (max-width: 640px) {
  .grain-surface::before {
    animation-duration: 12s;
  }
}

@media (prefers-reduced-motion: reduce) {
  .grain-surface::before {
    animation: none;
  }
}

.convoia-mark__nodes circle {
  transform-origin: center;
  transform-box: fill-box;
  transition: all var(--duration-base) var(--ease-default);
}

/* IDLE — nodes breathe in sequence, 3.2s cycle */

.convoia-mark--idle .convoia-mark__nodes circle {
  animation: convoia-breathe 3.2s ease-in-out infinite;
}

.convoia-mark--idle .convoia-mark__nodes circle:nth-child(1) { animation-delay: 0s; }

.convoia-mark--idle .convoia-mark__nodes circle:nth-child(2) { animation-delay: 0.4s; }

.convoia-mark--idle .convoia-mark__nodes circle:nth-child(3) { animation-delay: 0.8s; }

.convoia-mark--idle .convoia-mark__nodes circle:nth-child(4) { animation-delay: 1.2s; }

@keyframes convoia-breathe {
  0%, 100% { opacity: 0.5; }
  50%      { opacity: 1; }
}

/* THINKING — slower, deeper pulse */

.convoia-mark--thinking .convoia-mark__nodes circle {
  animation: convoia-think 2s ease-in-out infinite;
}

@keyframes convoia-think {
  0%, 100% { opacity: 0.3; r: 1.8; }
  50%      { opacity: 1;   r: 2.2; }
}

/* STREAMING — rapid sequential flash */

.convoia-mark--streaming .convoia-mark__nodes circle {
  animation: convoia-stream 0.8s ease-in-out infinite;
}

.convoia-mark--streaming .convoia-mark__nodes circle:nth-child(1) { animation-delay: 0s; }

.convoia-mark--streaming .convoia-mark__nodes circle:nth-child(2) { animation-delay: 0.15s; }

.convoia-mark--streaming .convoia-mark__nodes circle:nth-child(3) { animation-delay: 0.3s; }

.convoia-mark--streaming .convoia-mark__nodes circle:nth-child(4) { animation-delay: 0.45s; }

@keyframes convoia-stream {
  0%, 100% { opacity: 0.4; }
  50%      { opacity: 1; }
}

/* COUNCIL — all nodes bright, lines connecting strongly */

.convoia-mark--council .convoia-mark__nodes circle {
  animation: convoia-council 2.5s ease-in-out infinite;
}

.convoia-mark--council .convoia-mark__lines line {
  animation: convoia-council-lines 2.5s ease-in-out infinite;
}

@keyframes convoia-council {
  0%, 100% { opacity: 0.9; }
  50%      { opacity: 1; }
}

@keyframes convoia-council-lines {
  0%, 100% { opacity: 0.2; }
  50%      { opacity: 0.5; }
}

@media (prefers-reduced-motion: reduce) {
  .convoia-mark__nodes circle,
  .convoia-mark__lines line {
    animation: none !important;
    opacity: 0.8;
  }
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  font-family: var(--font-sans);
  font-weight: var(--weight-medium);
  border-radius: var(--radius-md);
  border: var(--border-thin) solid transparent;
  cursor: pointer;
  transition: all var(--duration-fast) var(--ease-default);
  white-space: nowrap;
  position: relative;
  user-select: none;
}

.btn:disabled { opacity: 0.5; cursor: not-allowed; }

.btn:focus-visible { outline: none; box-shadow: var(--shadow-focus-ring); }

/* SIZES */

.btn--sm { padding: 6px 10px; font-size: var(--text-body-sm); height: 28px; }

.btn--md { padding: 8px 14px; font-size: var(--text-body); height: 36px; }

.btn--lg { padding: 10px 20px; font-size: var(--text-body-lg); height: 44px; }

/* VARIANTS */

.btn--primary {
  background: var(--accent);
  color: var(--accent-on);
  border-color: var(--accent);
  /* Premium: glossy top-edge highlight + soft accent glow */
  box-shadow: 0 4px 14px var(--accent-glow), 0 1px 0 rgba(255, 255, 255, 0.18) inset;
}

.btn--primary:hover:not(:disabled) {
  background: var(--accent-hover);
  box-shadow: 0 8px 26px var(--accent-glow), 0 1px 0 rgba(255, 255, 255, 0.22) inset;
  transform: translateY(-1px);
}

.btn--primary:active:not(:disabled) { transform: translateY(0); }

.btn--secondary {
  background: var(--surface-1);
  color: var(--text-primary);
  border-color: var(--border-default);
}

.btn--secondary:hover:not(:disabled) {
  background: var(--surface-3);
  border-color: var(--border-strong);
}

.btn--ghost {
  background: transparent;
  color: var(--text-secondary);
}

.btn--ghost:hover:not(:disabled) {
  background: var(--surface-2);
  color: var(--text-primary);
}

.btn--outline {
  background: transparent;
  color: var(--accent);
  border-color: var(--accent-border);
}

.btn--outline:hover:not(:disabled) {
  background: var(--accent-soft);
}

.btn--danger {
  background: var(--color-error);
  color: #fff;
  border-color: var(--color-error);
}

.btn--danger:hover:not(:disabled) { opacity: 0.9; }

.btn__icon { display: flex; align-items: center; flex-shrink: 0; }

.btn--loading .btn__label { opacity: 0.5; }

.input-field { display: flex; flex-direction: column; gap: var(--space-2); }

.input-field__label {
  font-size: var(--text-body-sm);
  color: var(--text-secondary);
  font-weight: var(--weight-medium);
}

.input-field__wrap {
  display: flex;
  align-items: center;
  background: var(--surface-1);
  border: var(--border-thin) solid var(--border-default);
  border-radius: var(--radius-md);
  padding: 0 var(--space-3);
  transition: all var(--duration-fast) var(--ease-default);
  height: 36px;
}

.input-field__wrap:hover { border-color: var(--border-strong); }

.input-field__wrap:focus-within {
  border-color: var(--accent);
  box-shadow: var(--shadow-focus-ring);
}

.input-field__wrap--error { border-color: var(--color-error); }

.input-field__input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  font-family: var(--font-sans);
  font-size: var(--text-body);
  color: var(--text-primary);
  padding: var(--space-2) 0;
}

.input-field__input::placeholder { color: var(--text-muted); }

.input-field__input.mono { font-family: var(--font-mono); }

.input-field__icon {
  display: flex;
  align-items: center;
  color: var(--text-tertiary);
  padding: 0 var(--space-2) 0 0;
}

.input-field__icon--right { padding: 0 0 0 var(--space-2); }

.input-field__hint { font-size: var(--text-caption); color: var(--text-tertiary); margin: 0; }

.input-field__error { font-size: var(--text-caption); color: var(--color-error); margin: 0; }

.card {
  background: var(--surface-1);
  border: var(--border-thin) solid var(--border-subtle);
  border-radius: var(--radius-lg);
  transition: all var(--duration-base) var(--ease-default);
  position: relative;
  overflow: hidden;
  /* Premium depth: soft elevation + crisp top-edge highlight + faint sheen.
     Token-driven so light/dark adapt. background-image set AFTER the
     `background` shorthand so the sheen layers over the surface color. */
  box-shadow: var(--shadow-md), 0 1px 0 rgba(255, 255, 255, 0.04) inset;
  background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.025), rgba(255, 255, 255, 0) 55%);
}

.card--default { background: var(--surface-1); }

.card--raised { background: var(--surface-1); box-shadow: var(--shadow-lg), 0 1px 0 rgba(255, 255, 255, 0.05) inset; }

.card--muted { background: var(--surface-2); border-color: transparent; box-shadow: none; background-image: none; }

.card--accent { border-color: var(--accent-border); box-shadow: var(--shadow-md), 0 8px 30px var(--accent-glow), 0 1px 0 rgba(255, 255, 255, 0.05) inset; }

.card--accent::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
  opacity: 0.6;
}

.card--p-none { padding: 0; }

.card--p-sm { padding: var(--space-3); }

.card--p-md { padding: var(--space-5); }

.card--p-lg { padding: var(--space-6); }

.pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  border-radius: var(--radius-sm);
  font-size: var(--text-caption);
  font-weight: var(--weight-medium);
  border: var(--border-thin) solid var(--border-default);
  background: var(--surface-2);
  color: var(--text-tertiary);
  white-space: nowrap;
}

.pill--accent { background: var(--accent-soft); border-color: var(--accent-border); color: var(--accent); }

.pill--success { background: var(--color-success-bg); color: var(--color-success); border-color: rgba(16, 185, 129, 0.2); }

.pill--warning { background: var(--color-warning-bg); color: var(--color-warning); border-color: rgba(245, 158, 11, 0.2); }

.pill--error { background: var(--color-error-bg); color: var(--color-error); border-color: rgba(239, 68, 68, 0.2); }

.pill--mono { font-family: var(--font-mono); letter-spacing: 0.2px; }

.pill__icon { display: flex; align-items: center; }

.signal-line {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
  opacity: 0.55;
}

/* Council mode — gradient across up to 3 active provider colors. */

.signal-line--council {
  background: linear-gradient(
    90deg,
    transparent,
    var(--council-color-1, var(--accent)),
    var(--council-color-2, var(--accent)),
    var(--council-color-3, var(--accent)),
    transparent
  );
  opacity: 0.6;
}

.comp-line-wrap { display: inline-flex; flex-direction: column; gap: 4px; }

.comp-line {
  width: 100%;
  height: 2px;
  border-radius: 1px;
  overflow: hidden;
  background: var(--surface-3);
  position: relative;
}

.comp-line__pulse {
  position: absolute;
  top: 0;
  left: -30%;
  width: 30%;
  height: 100%;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
  animation: comp-pulse 1.4s linear infinite;
}

.comp-line__pulse--council {
  background: linear-gradient(
    90deg,
    transparent,
    var(--council-color-1, var(--accent)),
    var(--council-color-2, var(--accent)),
    var(--council-color-3, var(--accent)),
    transparent
  );
}

@keyframes comp-pulse {
  to { left: 130%; }
}

@media (prefers-reduced-motion: reduce) {
  .comp-line__pulse { animation: none; background: var(--accent); width: 100%; left: 0; opacity: 0.5; }
}

.metric {
  padding: var(--space-3) var(--space-4);
  border: var(--border-thin) solid var(--border-subtle);
  background: var(--surface-2);
  border-radius: var(--radius-md);
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.metric__label { font-size: 10px; }

.metric__value {
  font-size: var(--text-h3);
  color: var(--text-primary);
  font-weight: var(--weight-medium);
}

.metric__value--accent { color: var(--accent); }

.metric__unit {
  font-size: var(--text-caption);
  color: var(--text-tertiary);
  font-weight: var(--weight-regular);
  margin-left: 4px;
}

.metric__sublabel {
  font-size: var(--text-caption);
  color: var(--text-tertiary);
  margin-top: 2px;
}

.model-selector {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.model-selector__list {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.model-item {
  all: unset;
  box-sizing: border-box;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: 7px 10px;
  border-radius: var(--radius-sm);
  font-family: inherit;
  color: var(--text-secondary);
  position: relative;
  transition: background-color var(--duration-fast) var(--ease-default);
}

.model-item:hover {
  background: var(--surface-2);
  color: var(--text-primary);
}

.model-item--active {
  background: var(--item-soft, var(--accent-soft));
}

.model-item--active::before {
  content: '';
  position: absolute;
  left: 0;
  top: 6px;
  bottom: 6px;
  width: 2px;
  background: var(--item-color, var(--accent));
  border-radius: 0 2px 2px 0;
}

.model-item--active .model-item__name {
  color: var(--item-color, var(--accent));
  font-weight: var(--weight-medium);
}

.model-item__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.model-item__name {
  flex: 1;
  font-size: var(--text-caption);
  font-family: var(--font-mono);
  letter-spacing: 0.1px;
}

.model-item__provider {
  font-family: var(--font-mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: var(--text-muted);
  opacity: 0.7;
}

.m-nav {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky);
  background: transparent;
  transition: all var(--duration-base) var(--ease-default);
}

.m-nav--scrolled {
  background: var(--surface-overlay);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: var(--border-thin) solid var(--border-subtle);
}

.m-nav__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-4) var(--space-6);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-6);
}

.m-nav__brand {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  text-decoration: none;
  color: var(--text-primary);
}

.m-nav__brand-name {
  font-size: var(--text-body-lg);
  font-weight: var(--weight-semibold);
  letter-spacing: -0.01em;
  line-height: 1.1;
}

.m-nav__brand-sub {
  font-size: 9px;
  margin-top: 2px;
  letter-spacing: 0.8px;
  color: var(--text-muted);
}

.m-nav__links {
  display: flex;
  align-items: center;
  gap: var(--space-6);
}

.m-nav__link {
  font-size: var(--text-body-sm);
  color: var(--text-secondary);
  text-decoration: none;
  transition: color var(--duration-fast) var(--ease-default);
}

.m-nav__link:hover {
  color: var(--text-primary);
}

.m-nav__actions {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.m-nav__mobile-toggle {
  display: none;
  background: transparent;
  border: var(--border-thin) solid var(--border-default);
  border-radius: var(--radius-md);
  width: 36px;
  height: 36px;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--text-secondary);
}

.m-nav__mobile-menu {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 16px 24px;
  border-top: var(--border-thin) solid var(--border-subtle);
  background: var(--surface-overlay);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.m-nav__mobile-menu a {
  padding: 10px 4px;
  color: var(--text-primary);
  text-decoration: none;
  font-size: var(--text-body);
}

@media (max-width: 900px) {
  .m-nav__links { display: none; }
  .m-nav__actions > a,
  .m-nav__actions > .theme-toggle { display: none; }
  .m-nav__mobile-toggle { display: flex; }
}

.m-footer {
  border-top: var(--border-thin) solid var(--border-subtle);
  background: var(--surface-2);
  position: relative;
  overflow: hidden;
  /* Massive empty dark space below the link columns + copyright strip.
     Mirrors xAI's footer layout — content sits at the top in the dark,
     then a huge dark void, then the atmospheric bloom occupies the
     bottom area as a "sun-on-horizon" effect. */
  padding-bottom: 380px;
}

@media (max-width: 1024px) {
  .m-footer { padding-bottom: 280px; }
}

@media (max-width: 768px) {
  .m-footer { padding-bottom: 220px; }
}

@media (max-width: 480px) {
  .m-footer { padding-bottom: 160px; }
}

/* LAYER 1 — Wide atmospheric bloom (the diffuse sky glow above the sun).
   Soft, blurred, fills the dark space upward with a gentle radial fade.
   ::before sits below ::after so this renders as the background layer. */

.m-footer::before {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 110%;
  max-width: 100vw;
  height: 520px;
  background: radial-gradient(
    ellipse 70% 100% at 50% 100%,
    var(--accent) 0%,
    transparent 70%
  );
  filter: blur(70px);
  opacity: 0;
  pointer-events: none;
  z-index: 0;
  transition: opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1);
}

/* LAYER 2 — Sharp bright "sun disc" at the very bottom edge.
   Narrower ellipse, less blur, holds saturated colour to ~15% of the
   gradient height before fading. This is the focal "horizon line" the
   eye reads as the sun cresting over the bottom edge. */

.m-footer::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 75%;
  max-width: 100vw;
  height: 220px;
  background: radial-gradient(
    ellipse 55% 100% at 50% 100%,
    var(--accent) 0%,
    var(--accent) 15%,
    transparent 65%
  );
  filter: blur(22px);
  opacity: 0;
  pointer-events: none;
  z-index: 0;
  transition: opacity 1.4s cubic-bezier(0.16, 1, 0.3, 1) 0.15s;
}

.m-footer--in-view::before {
  opacity: 0.85;
}

.m-footer--in-view::after {
  opacity: 1;
}

[data-theme="light"] .m-footer--in-view::before {
  opacity: 0.55;
}

[data-theme="light"] .m-footer--in-view::after {
  opacity: 0.7;
}

/* Respect users who prefer reduced motion — show both layers at full
   intensity immediately instead of fading in. */

@media (prefers-reduced-motion: reduce) {
  .m-footer::before { transition: none; opacity: 0.85; }
  .m-footer::after { transition: none; opacity: 1; }
  [data-theme="light"] .m-footer::before { opacity: 0.55; }
  [data-theme="light"] .m-footer::after { opacity: 0.7; }
}

.m-footer__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-16) var(--space-6) var(--space-8);
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
  gap: var(--space-8);
  position: relative;
  z-index: 1;
}

.m-footer__brand {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.m-footer__brand-name {
  font-size: var(--text-body-lg);
  font-weight: var(--weight-semibold);
}

.m-footer__links-col {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.m-footer__links-col .mono-label {
  margin-bottom: var(--space-2);
}

.m-footer__link {
  font-size: var(--text-body-sm);
  color: var(--text-tertiary);
  text-decoration: none;
  transition: color var(--duration-fast) var(--ease-default);
}

.m-footer__link:hover {
  color: var(--text-primary);
}

.m-footer__bottom {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-5) var(--space-6);
  border-top: var(--border-thin) solid var(--border-subtle);
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  z-index: 1;
}

/* Tablet — drop the brand col to its own row spanning 4, then the
   four link columns sit equally below it. */

@media (max-width: 1024px) {
  .m-footer__inner {
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: var(--space-6);
  }
  .m-footer__brand-col {
    grid-column: 1 / -1;
    margin-bottom: var(--space-2);
  }
}

/* Tablet/mobile — link cols collapse to 2 columns. */

@media (max-width: 768px) {
  .m-footer__inner {
    grid-template-columns: 1fr 1fr;
  }
}

/* Small phones — single column. */

@media (max-width: 480px) {
  .m-footer__inner {
    grid-template-columns: 1fr;
  }
}

/* ─── Newsletter input ────────────────────────────────────────────── */

.m-footer__newsletter {
  margin-top: var(--space-5);
  max-width: 320px;
}

.m-footer__newsletter .mono-label {
  margin-bottom: var(--space-2);
}

.m-footer__newsletter-row {
  display: flex;
  gap: var(--space-2);
}

.m-footer__newsletter-input {
  flex: 1;
  min-width: 0;
  background: var(--surface-1);
  border: var(--border-thin) solid var(--border-default);
  border-radius: var(--radius-md);
  padding: 8px 12px;
  font-size: var(--text-body-sm);
  color: var(--text-primary);
  font-family: inherit;
  transition: border-color var(--duration-fast) var(--ease-default),
              background var(--duration-fast) var(--ease-default);
}

.m-footer__newsletter-input::placeholder {
  color: var(--text-muted);
}

.m-footer__newsletter-input:focus {
  outline: none;
  border-color: var(--accent);
}

.m-footer__newsletter-input:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.m-footer__newsletter-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--accent);
  color: var(--accent-on);
  border: none;
  border-radius: var(--radius-md);
  padding: 0 12px;
  cursor: pointer;
  transition: opacity var(--duration-fast) var(--ease-default),
              transform var(--duration-fast) var(--ease-default);
}

.m-footer__newsletter-btn:hover:not(:disabled) {
  opacity: 0.9;
  transform: translateX(1px);
}

.m-footer__newsletter-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.m-footer__newsletter-hint {
  margin-top: var(--space-2);
  font-size: 11px;
  color: var(--text-muted);
}

.landing-page {
  min-height: 100vh;
  background: var(--surface-0);
  color: var(--text-primary);
}

/* ═══ HERO ═══ */

.lp-hero {
  position: relative;
  padding: var(--space-16) var(--space-6) var(--space-12);
  overflow: hidden;
}

.lp-hero__ambient {
  position: absolute;
  top: -150px;
  left: 50%;
  transform: translateX(-50%);
  width: 1200px;
  height: 800px;
  background: radial-gradient(ellipse at center, var(--accent-soft), transparent 60%);
  filter: blur(100px);
  opacity: 0.7;
  pointer-events: none;
  z-index: 0;
}

.lp-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 1100px;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-5);
}

.lp-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: 6px 14px;
  background: var(--accent-soft);
  border: var(--border-thin) solid var(--accent-border);
  border-radius: var(--radius-full);
}

.lp-hero__eyebrow-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent);
  animation: lp-pulse 2s ease-in-out infinite;
}

@keyframes lp-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}

.lp-hero__title {
  font-size: clamp(42px, 7vw, 76px);
  font-weight: var(--weight-semibold);
  line-height: 1.02;
  letter-spacing: -0.03em;
  margin: 0;
  color: var(--text-primary);
}

.lp-hero__title-accent {
  color: var(--accent);
}

.lp-hero__sub {
  font-size: var(--text-body-lg);
  line-height: 1.55;
  color: var(--text-secondary);
  max-width: 680px;
  margin: 0;
}

.lp-hero__actions {
  display: flex;
  gap: var(--space-3);
  margin-top: var(--space-3);
  flex-wrap: wrap;
  justify-content: center;
}

.lp-hero__trust {
  display: flex;
  gap: var(--space-5);
  flex-wrap: wrap;
  justify-content: center;
  margin-top: var(--space-2);
}

.lp-hero__trust-item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-body-sm);
  color: var(--text-tertiary);
}

.lp-hero__trust-item svg { color: var(--color-success); }

.lp-providers-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-3);
  max-width: 1000px;
  width: 100%;
  margin-top: var(--space-12);
}

.lp-provider-card {
  padding: var(--space-4);
  background: var(--surface-1);
  border: var(--border-thin) solid var(--border-default);
  border-radius: var(--radius-lg);
  text-align: left;
  position: relative;
  overflow: hidden;
  transition: all var(--duration-base) var(--ease-default);
}

.lp-provider-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 2px; height: 100%;
  background: var(--p-color);
  opacity: 0.9;
}

.lp-provider-card:hover {
  transform: translateY(-2px);
  border-color: var(--p-color);
  background: linear-gradient(135deg, var(--surface-1), var(--p-soft));
}

.lp-provider-card__head {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: 6px;
}

.lp-provider-card__dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--p-color);
}

.lp-provider-card__name {
  font-size: var(--text-body-sm);
  font-weight: var(--weight-semibold);
  color: var(--text-primary);
}

.lp-provider-card__models {
  font-size: var(--text-caption);
  color: var(--text-tertiary);
  line-height: 1.5;
}

/* ═══ PROBLEM ═══ */

.lp-problem {
  padding: var(--space-20) var(--space-6);
  background: var(--surface-2);
  border-top: var(--border-thin) solid var(--border-subtle);
  border-bottom: var(--border-thin) solid var(--border-subtle);
}

.lp-problem__inner {
  max-width: 1200px;
  margin: 0 auto;
}

.lp-problem__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
}

.lp-problem-card {
  padding: var(--space-6);
  background: var(--surface-1);
  border: var(--border-thin) solid var(--border-default);
  border-radius: var(--radius-xl);
  transition: all var(--duration-base) var(--ease-default);
}

.lp-problem-card:hover {
  border-color: var(--color-error);
  transform: translateY(-2px);
}

.lp-problem-card__icon {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-md);
  background: var(--color-error-bg);
  color: var(--color-error);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--space-4);
}

.lp-problem-card__pain {
  font-size: var(--text-h3);
  font-weight: var(--weight-semibold);
  margin: 0 0 var(--space-2);
  color: var(--text-primary);
}

.lp-problem-card__cost {
  font-size: var(--text-body);
  color: var(--text-secondary);
  margin: 0;
  line-height: 1.55;
}

/* ═══ SOLUTION ═══ */

.lp-solution {
  padding: var(--space-20) var(--space-6);
  position: relative;
  overflow: hidden;
}

.lp-solution__ambient {
  position: absolute;
  top: 20%;
  left: 50%;
  transform: translateX(-50%);
  width: 900px; height: 600px;
  background: radial-gradient(ellipse, var(--accent-soft), transparent 60%);
  filter: blur(100px);
  opacity: 0.5;
  pointer-events: none;
}

.lp-solution__inner {
  position: relative;
  z-index: 1;
  max-width: 1100px;
  margin: 0 auto;
}

.lp-dashboard-mock {
  background: var(--surface-1);
  border: var(--border-thin) solid var(--border-default);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-xl);
  max-width: 900px;
  margin: 0 auto;
}

.lp-dashboard-mock__chrome {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  border-bottom: var(--border-thin) solid var(--border-subtle);
  background: var(--surface-2);
}

.lp-dashboard-mock__dots {
  display: flex;
  gap: 6px;
}

.lp-dashboard-mock__dots span {
  width: 10px; height: 10px;
  border-radius: 50%;
}

.lp-dashboard-mock__body {
  padding: var(--space-6);
}

.lp-dashboard-mock__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: var(--space-6);
  flex-wrap: wrap;
  gap: var(--space-3);
}

.lp-dashboard-mock__metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-3);
}

.lp-metric-tile {
  padding: var(--space-4);
  background: var(--surface-2);
  border: var(--border-thin) solid var(--border-subtle);
  border-radius: var(--radius-md);
}

@media (max-width: 900px) {
  .lp-dashboard-mock__metrics { grid-template-columns: repeat(2, 1fr); }
}

/* ═══ HOW ═══ */

.lp-how {
  padding: var(--space-20) var(--space-6);
  background: var(--surface-2);
  border-top: var(--border-thin) solid var(--border-subtle);
}

.lp-how__inner {
  max-width: 760px;
  margin: 0 auto;
}

.lp-how__steps {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

.lp-how-step {
  display: flex;
  gap: var(--space-5);
  align-items: flex-start;
}

.lp-how-step__num {
  width: 52px;
  height: 52px;
  border-radius: var(--radius-lg);
  background: var(--accent-soft);
  color: var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--text-body-lg);
  font-weight: var(--weight-semibold);
  flex-shrink: 0;
  border: var(--border-thin) solid var(--accent-border);
}

.lp-how-step__body {
  padding-top: 10px;
}

/* ═══ PROOF ═══ */

.lp-proof {
  padding: var(--space-20) var(--space-6);
  border-top: var(--border-thin) solid var(--border-subtle);
}

.lp-proof__inner {
  max-width: 1100px;
  margin: 0 auto;
}

.lp-proof__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
  margin-bottom: var(--space-12);
}

.lp-proof-card {
  padding: var(--space-6);
  background: var(--surface-1);
  border: var(--border-thin) solid var(--border-default);
  border-radius: var(--radius-xl);
  text-align: center;
}

.lp-proof__rating-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: rgba(245, 158, 11, 0.1);
  border: var(--border-thin) solid rgba(245, 158, 11, 0.25);
  border-radius: var(--radius-full);
}

.lp-testimonial {
  max-width: 680px;
  margin: 0 auto;
  padding: var(--space-8);
  background: var(--surface-1);
  border: var(--border-thin) solid var(--accent-border);
  border-radius: var(--radius-xl);
  position: relative;
}

.lp-testimonial__rating {
  display: flex;
  gap: 2px;
  margin-bottom: var(--space-3);
}

.lp-proof__cta {
  text-align: center;
  margin-top: var(--space-10);
  padding-top: var(--space-8);
  border-top: var(--border-thin) solid var(--border-subtle);
}

.lp-testimonial__body {
  font-size: var(--text-body-lg);
  line-height: 1.55;
  color: var(--text-primary);
  margin: 0 0 var(--space-5);
  font-style: italic;
}

.lp-testimonial__author {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.lp-testimonial__avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--accent);
  color: var(--accent-on);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mono);
  font-weight: var(--weight-semibold);
  font-size: var(--text-body-sm);
}

/* ═══ FEATURES ═══ */

.lp-features {
  padding: var(--space-20) var(--space-6);
  background: var(--surface-2);
  border-top: var(--border-thin) solid var(--border-subtle);
}

.lp-features__inner {
  max-width: 1200px;
  margin: 0 auto;
}

.lp-features__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
}

.lp-feature {
  padding: var(--space-6);
  background: var(--surface-1);
  border: var(--border-thin) solid var(--border-default);
  border-radius: var(--radius-xl);
  transition: all var(--duration-base) var(--ease-default);
}

.lp-feature:hover {
  border-color: var(--accent-border);
  transform: translateY(-2px);
}

.lp-feature--accent {
  background: linear-gradient(135deg, var(--surface-1), var(--accent-soft));
  border-color: var(--accent-border);
}

.lp-feature__title {
  font-size: var(--text-h3);
  font-weight: var(--weight-semibold);
  margin: 0 0 var(--space-3);
  letter-spacing: -0.01em;
  color: var(--text-primary);
}

.lp-feature--accent .lp-feature__title {
  color: var(--accent);
}

.lp-feature__body {
  font-size: var(--text-body);
  line-height: 1.6;
  color: var(--text-secondary);
  margin: 0;
}

/* ═══ PRICING ═══ */

.lp-pricing {
  padding: var(--space-20) var(--space-6);
  border-top: var(--border-thin) solid var(--border-subtle);
}

.lp-pricing__inner {
  max-width: 1280px;
  margin: 0 auto;
}

.lp-pricing__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-3);
}

.lp-tier {
  background: var(--surface-1);
  border: var(--border-thin) solid var(--border-default);
  border-radius: var(--radius-xl);
  padding: var(--space-5);
  display: flex;
  flex-direction: column;
  position: relative;
  transition: all var(--duration-base) var(--ease-default);
}

.lp-tier:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-lg);
}

.lp-tier--featured {
  border-color: var(--accent);
  box-shadow: 0 0 0 1px var(--accent), var(--shadow-accent);
}

.lp-tier__badge {
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  padding: 4px 12px;
  border-radius: var(--radius-full);
  font-size: var(--text-caption);
  font-weight: var(--weight-medium);
  white-space: nowrap;
  font-family: var(--font-mono);
  letter-spacing: 0.3px;
}

.lp-tier__badge--success {
  background: var(--color-success);
  color: white;
}

.lp-tier__badge--accent {
  background: var(--accent);
  color: var(--accent-on);
}

.lp-tier__head {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
}

.lp-tier__icon { font-size: 18px; }

.lp-tier__sub {
  font-size: var(--text-caption);
  color: var(--text-tertiary);
  margin: 0 0 var(--space-4);
}

.lp-tier__tokens {
  display: flex;
  align-items: baseline;
  gap: var(--space-2);
  margin-bottom: var(--space-1);
}

.lp-tier__tokens-value {
  font-size: 36px;
  font-weight: var(--weight-semibold);
  color: var(--accent);
}

.lp-tier__tokens-label {
  color: var(--text-tertiary);
  font-size: var(--text-body);
}

.lp-tier__price {
  display: flex;
  align-items: baseline;
  gap: var(--space-2);
}

.lp-tier__price-value {
  font-size: 28px;
  font-weight: var(--weight-semibold);
  color: var(--text-primary);
}

.lp-tier__price-label {
  font-size: var(--text-body-sm);
  color: var(--text-tertiary);
}

.lp-tier__per-m {
  font-size: var(--text-caption);
  color: var(--text-tertiary);
  margin-top: 4px;
  margin-bottom: var(--space-3);
}

.lp-tier__save {
  display: inline-block;
  padding: 2px 8px;
  border-radius: var(--radius-sm);
  background: var(--color-success-bg);
  color: var(--color-success);
  font-size: var(--text-caption);
  font-weight: var(--weight-medium);
  margin-bottom: var(--space-4);
  align-self: flex-start;
}

.lp-tier__features {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-5);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  flex: 1;
  padding-top: var(--space-4);
  border-top: var(--border-thin) solid var(--border-subtle);
}

.lp-tier__features li {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  font-size: var(--text-body-sm);
  color: var(--text-secondary);
}

.lp-tier__features svg {
  color: var(--color-success);
  flex-shrink: 0;
  margin-top: 3px;
}

/* ═══ FAQ ═══ */

.lp-faq {
  padding: var(--space-20) var(--space-6);
  background: var(--surface-2);
  border-top: var(--border-thin) solid var(--border-subtle);
}

.lp-faq__inner {
  max-width: 800px;
  margin: 0 auto;
}

.lp-faq__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.lp-faq__item {
  background: var(--surface-1);
  border: var(--border-thin) solid var(--border-subtle);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: all var(--duration-base) var(--ease-default);
}

.lp-faq__item[open] {
  border-color: var(--accent-border);
}

.lp-faq__q {
  list-style: none;
  cursor: pointer;
  padding: var(--space-5);
  font-weight: var(--weight-medium);
  font-size: var(--text-body-lg);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  color: var(--text-primary);
  user-select: none;
}

.lp-faq__q::-webkit-details-marker { display: none; }

.lp-faq__q::marker { content: ''; }

.lp-faq__q svg {
  color: var(--text-tertiary);
  transition: transform var(--duration-base) var(--ease-default);
  flex-shrink: 0;
}

.lp-faq__item[open] .lp-faq__q svg {
  transform: rotate(180deg);
  color: var(--accent);
}

.lp-faq__a {
  padding: 0 var(--space-5) var(--space-5);
  color: var(--text-secondary);
  font-size: var(--text-body);
  line-height: 1.65;
}

/* ═══ ENTERPRISE ═══ */

.lp-enterprise {
  padding: var(--space-16) var(--space-6);
  border-top: var(--border-thin) solid var(--border-subtle);
}

.lp-enterprise__inner {
  max-width: 900px;
  margin: 0 auto;
}

.lp-enterprise__card {
  padding: var(--space-10) var(--space-8);
  background: var(--surface-1);
  border: var(--border-thin) solid var(--border-default);
  border-radius: var(--radius-xl);
  text-align: center;
  max-width: 720px;
  margin: 0 auto;
}

/* ═══ FINAL CTA ═══ */

.lp-final {
  padding: var(--space-20) var(--space-6);
  border-top: var(--border-thin) solid var(--border-subtle);
  background: var(--surface-0);
  position: relative;
  overflow: hidden;
}

.lp-final__ambient {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 900px; height: 600px;
  background: radial-gradient(ellipse, var(--accent-soft), transparent 60%);
  filter: blur(100px);
  opacity: 0.7;
  pointer-events: none;
}

.lp-final__inner {
  position: relative;
  z-index: 1;
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* ═══ RESPONSIVE ═══ */

@media (max-width: 900px) {
  .lp-providers-grid { grid-template-columns: repeat(2, 1fr); }
  .lp-problem__grid { grid-template-columns: 1fr; }
  .lp-features__grid { grid-template-columns: 1fr; }
  .lp-pricing__grid { grid-template-columns: repeat(2, 1fr); }
  .lp-proof__grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .lp-providers-grid { grid-template-columns: 1fr; }
  .lp-pricing__grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════
   PREMIUM POLISH (appended) — depth · glass · glow · motion
   Elevates the flat surfaces with layered shadows, a crisp
   top-edge highlight and a gradient sheen, plus richer hover
   glow. All via design tokens, so light + dark both adapt.
   ═══════════════════════════════════════════════════════════ */

/* Elevated card surface — sheen overlay + depth + crisp top edge.
   Only background-IMAGE is set so each card keeps its own bg color. */

.lp-provider-card,
.lp-problem-card,
.lp-feature,
.lp-proof-card,
.lp-how-step,
.lp-testimonial,
.lp-tier {
  background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0) 42%);
  box-shadow: var(--shadow-lg), 0 1px 0 rgba(255, 255, 255, 0.05) inset;
  transition: transform var(--duration-base) var(--ease-default),
              box-shadow var(--duration-base) var(--ease-default),
              border-color var(--duration-base) var(--ease-default);
}

/* Generic premium hover — float + deepen + soft accent glow */

.lp-feature:hover,
.lp-proof-card:hover,
.lp-how-step:hover,
.lp-testimonial:hover {
  transform: translateY(-4px);
  border-color: var(--accent-border);
  box-shadow: var(--shadow-xl), var(--shadow-accent), 0 1px 0 rgba(255, 255, 255, 0.08) inset;
}

/* Provider cards lift with their own brand glow */

.lp-provider-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-xl), 0 12px 34px var(--p-soft), 0 1px 0 rgba(255, 255, 255, 0.08) inset;
}

/* Problem cards — danger-tinted depth on hover */

.lp-problem-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-xl), 0 12px 34px var(--color-error-bg), 0 1px 0 rgba(255, 255, 255, 0.08) inset;
}

/* Luminous hero accent — gradient text + glow (drop-shadow survives the
   transparent text-fill that background-clip needs) */

.lp-hero__title-accent {
  background: linear-gradient(120deg, var(--accent-300) 0%, var(--accent) 48%, var(--accent-600) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 30px var(--accent-glow));
}

.lp-hero__ambient { opacity: 0.95; }

/* Dashboard mock floats with an accent halo */

.lp-dashboard-mock {
  box-shadow: var(--shadow-xl), 0 0 90px var(--accent-glow), 0 1px 0 rgba(255, 255, 255, 0.06) inset !important;
}

.lp-metric-tile {
  box-shadow: var(--shadow-md), 0 1px 0 rgba(255, 255, 255, 0.04) inset;
}

/* Featured pricing tier — stronger accent presence + deeper hover */

.lp-tier--featured {
  box-shadow: var(--shadow-xl), 0 0 56px var(--accent-glow), 0 1px 0 rgba(255, 255, 255, 0.08) inset !important;
}

.lp-tier:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-xl), var(--shadow-accent), 0 1px 0 rgba(255, 255, 255, 0.08) inset;
}

/* Primary CTAs get a soft accent glow + lift */

.lp-hero__actions .btn--primary,
.lp-final .btn--primary {
  box-shadow: 0 8px 26px var(--accent-glow);
  transition: transform var(--duration-fast) var(--ease-default),
              box-shadow var(--duration-base) var(--ease-default);
}

.lp-hero__actions .btn--primary:hover,
.lp-final .btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 38px var(--accent-glow);
}

.auth-layout {
  min-height: 100vh;
  background: var(--surface-0);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--space-8) var(--space-4);
  position: relative;
  overflow: hidden;
}

/* Top-center soft spotlight — static, no animation */

.auth-layout::before {
  content: '';
  position: fixed;
  inset: 0;
  background: radial-gradient(80vw 50vh at 50% -10%, rgba(20, 184, 205, 0.04), transparent 60%);
  pointer-events: none;
  z-index: 0;
}

.auth-layout__ambient {
  position: fixed;
  inset: 0;
  background:
    radial-gradient(900px 600px at 15% 20%, rgba(20, 184, 205, 0.10), transparent 60%),
    radial-gradient(900px 600px at 85% 75%, rgba(20, 184, 205, 0.08), transparent 60%),
    radial-gradient(600px 500px at 70% 25%, rgba(30, 27, 75, 0.18), transparent 60%);
  z-index: 0;
  pointer-events: none;
}

.auth-layout__back {
  position: absolute;
  top: var(--space-6);
  left: var(--space-6);
  display: flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--accent);
  text-decoration: none;
  transition: color var(--duration-fast) var(--ease-default);
  z-index: 2;
}

.auth-layout__back:hover {
  color: var(--accent-hover);
}

.auth-layout__card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 420px;
  background: var(--surface-glass);
  border: var(--border-thin) solid var(--border-default);
  backdrop-filter: blur(20px) saturate(1.4);
  -webkit-backdrop-filter: blur(20px) saturate(1.4);
  border-radius: var(--radius-xl);
  padding: 40px 36px;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.4) inset,
    0 20px 50px rgba(0, 0, 0, 0.08),
    0 0 0 1px rgba(0, 0, 0, 0.02);
  animation: auth-card-mount 400ms cubic-bezier(0.4, 0, 0.2, 1) both;
}

[data-theme="dark"] .auth-layout__card {
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.04) inset,
    0 20px 50px rgba(0, 0, 0, 0.5),
    0 0 0 1px rgba(255, 255, 255, 0.02);
}

.auth-layout__card--wide {
  max-width: 520px;
}

.auth-layout__header {
  text-align: center;
  margin-bottom: var(--space-6);
}

.auth-layout__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.auth-layout__footer {
  margin-top: var(--space-6);
  padding-top: var(--space-4);
  border-top: var(--border-thin) solid var(--border-subtle);
  text-align: center;
  font-size: var(--text-body-sm);
  color: var(--text-tertiary);
}

.auth-layout__providers {
  margin-top: var(--space-10);
  z-index: 1;
}

.auth-layout__provider-dots {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-3);
  max-width: 420px;
}

.auth-layout__provider-chip {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  background: var(--surface-2);
  border: var(--border-thin) solid var(--border-subtle);
  border-radius: var(--radius-sm);
}

@keyframes auth-card-mount {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .auth-layout__card { animation: none; }
}

/* ═══════════════════════════════════════════════════════════
   AUTH-SURFACE ACCENT ISOLATION
   Pre-auth pages wear the Convoia brand turquoise, not a
   per-provider chat color. AccentContext writes provider tokens
   onto <html> with !important; we shadow them within .auth-layout
   so the fallback chain in tokens.css resolves to brand defaults.
   ═══════════════════════════════════════════════════════════ */

/* Forgot-password modal renders as a fragment sibling of AuthLayout,
   not a child. CSS variable cascade doesn't reach it via .auth-layout
   alone. Explicit isolation needed here. */

.auth-layout,
.login-page__modal-overlay {
  --provider-primary: initial;
  --provider-light:   initial;
  --provider-hover:   initial;
  --provider-soft:    initial;
  --provider-border:  initial;
  --provider-glow:    initial;
  --provider-on:      initial;

  --color-primary:       var(--accent-600);
  --color-primary-hover: var(--accent-700);
  --color-primary-light: rgba(8, 145, 178, 0.08);
  --color-primary-glow:  rgba(8, 145, 178, 0.15);
}

[data-theme="dark"] .auth-layout,
[data-theme="dark"] .login-page__modal-overlay {
  --color-primary:       var(--accent-500);
  --color-primary-hover: var(--accent-400);
  --color-primary-light: rgba(20, 184, 205, 0.10);
  --color-primary-glow:  rgba(20, 184, 205, 0.20);
}

/* Premium corner radius — scoped to the auth card. Bumps form inputs and
   the primary CTA from 8px (--radius-md) to 12px (--radius-lg) for a
   softer, friendlier feel. The Google button is rendered by a third-party
   component, so we clip its outer wrapper to keep edges consistent. */

.auth-layout__card .input-field__wrap,
.auth-layout__card .btn,
.auth-layout__card select {
  border-radius: var(--radius-lg);
}

.auth-layout__card .login-page__google > div,
.auth-layout__card .auth-google > div {
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.theme-toggle {
  all: unset;
  box-sizing: border-box;
  width: 34px;
  height: 34px;
  border-radius: var(--radius-md);
  border: var(--border-thin) solid var(--border-default);
  background: var(--surface-1);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--text-secondary);
  transition: all var(--duration-fast) var(--ease-default);
}

.theme-toggle:hover {
  background: var(--surface-3);
  color: var(--accent);
  border-color: var(--accent-border);
}

.theme-toggle__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform var(--duration-base) var(--ease-default);
}

.theme-toggle:hover .theme-toggle__icon {
  transform: rotate(15deg);
}

.pricing-page {
  min-height: 100vh;
  background: var(--surface-0);
  color: var(--text-primary);
}

.pp-hero {
  position: relative;
  padding: var(--space-16) var(--space-6) var(--space-12);
  overflow: hidden;
}

.pp-hero__ambient {
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 800px; height: 400px;
  background: radial-gradient(ellipse, var(--accent-soft), transparent 70%);
  filter: blur(100px);
  opacity: 0.5;
  pointer-events: none;
  transition: var(--accent-transition);
}

.pp-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.pp-tiers {
  padding: var(--space-12) var(--space-6);
}

.pp-tiers__inner {
  max-width: 1400px;
  margin: 0 auto;
}

.pp-tiers__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
}

@media (max-width: 1100px) {
  .pp-tiers__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
  .pp-tiers__grid { grid-template-columns: 1fr; }
}

/* ─── FAQ accordion ─── */

.pp-faq {
  padding: var(--space-20) var(--space-6);
  border-top: var(--border-thin) solid var(--border-subtle);
}

.pp-faq__inner {
  max-width: 720px;
  margin: 0 auto;
}

.pp-faq__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.pp-faq__item {
  background: var(--surface-1);
  border: var(--border-thin) solid var(--border-subtle);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: all var(--duration-base) var(--ease-default);
}

.pp-faq__item[open] {
  border-color: var(--accent-border);
  box-shadow: var(--shadow-sm);
}

.pp-faq__q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-5);
  cursor: pointer;
  font-size: var(--text-body);
  font-weight: var(--weight-medium);
  color: var(--text-primary);
  list-style: none;
  user-select: none;
}

.pp-faq__q::-webkit-details-marker { display: none; }

.pp-faq__q::marker { content: ''; }

.pp-faq__chevron {
  color: var(--text-tertiary);
  flex-shrink: 0;
  transition: transform var(--duration-base) var(--ease-default), color var(--duration-base) var(--ease-default);
}

.pp-faq__item[open] .pp-faq__chevron {
  transform: rotate(180deg);
  color: var(--accent);
}

.pp-faq__a {
  padding: 0 var(--space-5) var(--space-5);
  font-size: var(--text-body);
  line-height: var(--lh-body);
  color: var(--text-secondary);
}
/*
 * User-preference scoped CSS — applied via attributes on <html>.
 * Keys live in localStorage under convoia_settings_*. Read by SettingsPage
 * Appearance tab; written via inline style / data-attr in the same effect.
 */

/* Reduced motion — cuts animation/transition durations to ~0ms.
   Honors the user's explicit choice from Settings. */
:root[data-reduced-motion="true"] *,
:root[data-reduced-motion="true"] *::before,
:root[data-reduced-motion="true"] *::after {
  animation-duration: 0.01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.01ms !important;
  scroll-behavior: auto !important;
}

/* Font size — applied via inline style on <html> (font-size: Npx).
   :root[data-font-size="small" | "medium" | "large"] is set as a marker
   for any future per-size overrides; the effective px value lives on
   document.documentElement.style.fontSize. */
/* HeroPlexus — atmospheric layers behind the landing hero content.
   DOM order on .lp-hero is:
     1. .lp-hero__ambient   (z:0, blurred radial bloom)
     2. .hero-spotlight     (z:0, cursor-following radial glow)
     3. .hero-plexus        (z:0, particle canvas)
     4. .hero-ripple(s)     (z:0, click-emitted shock circles)
     5. .lp-hero__inner     (z:1, content — always on top)
   pointer-events: none on every layer here — purely decorative. tsparticles
   tracks mouse via window-level events; spotlight + ripples are CSS only. */

.hero-plexus {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.hero-plexus canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
}

/* Static fallback for prefers-reduced-motion users — full-bleed SVG dot grid. */
.hero-plexus--static {
  width: 100%;
  height: 100%;
}

/* ─── Cursor spotlight ─────────────────────────────────────────────────
   Linear/Vercel-signature soft radial halo following the cursor.
   Position is driven by --cursor-x / --cursor-y CSS custom properties
   set on the .lp-hero parent by HeroPlexus's mousemove effect.
   Fades in when cursor enters hero, fades out when it leaves. */
.hero-spotlight {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(
    480px circle at var(--cursor-x, 50%) var(--cursor-y, 50%),
    color-mix(in srgb, var(--accent) 22%, transparent),
    transparent 55%
  );
  opacity: 0;
  transition: opacity 350ms cubic-bezier(0.16, 1, 0.3, 1);
}

.lp-hero--cursor-active .hero-spotlight {
  opacity: 1;
}

[data-theme="light"] .hero-spotlight {
  background: radial-gradient(
    480px circle at var(--cursor-x, 50%) var(--cursor-y, 50%),
    color-mix(in srgb, var(--accent) 14%, transparent),
    transparent 55%
  );
}

/* Hide spotlight on touch devices — there's no cursor to follow. */
@media (max-width: 768px) {
  .hero-spotlight {
    display: none;
  }
}

/* ─── Click ripple ─────────────────────────────────────────────────────
   Expanding ring that fades out, emitted on hero clicks (NOT on CTAs).
   Each ripple is short-lived (~850ms) and auto-cleaned by React.
   Positioned via inline left/top from the click coordinates. */
.hero-ripple {
  position: absolute;
  z-index: 0;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 2px solid var(--accent);
  pointer-events: none;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 18px var(--accent);
  animation: hero-ripple 850ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes hero-ripple {
  0% {
    transform: translate(-50%, -50%) scale(1);
    opacity: 0.9;
    border-width: 2px;
  }
  60% {
    opacity: 0.45;
    border-width: 1.5px;
  }
  100% {
    transform: translate(-50%, -50%) scale(55);
    opacity: 0;
    border-width: 0.5px;
  }
}

/* prefers-reduced-motion handled at React level for ripples (we skip
   emitting them entirely). Spotlight fade transition is cosmetic and
   not motion-disorienting, but disable for safety. */
@media (prefers-reduced-motion: reduce) {
  .hero-spotlight {
    transition: none;
  }
}
/* geist-sans-latin-400-normal */
@font-face {
  font-family: 'Geist Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/geist-sans-latin-400-normal-gapTbOY8.woff2) format('woff2'), url(/assets/geist-sans-latin-400-normal-BOaIZNA2.woff) format('woff');
}/* geist-sans-latin-500-normal */
@font-face {
  font-family: 'Geist Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/geist-sans-latin-500-normal-uokXdC-Q.woff2) format('woff2'), url(/assets/geist-sans-latin-500-normal-CN2lyvyL.woff) format('woff');
}/* geist-sans-latin-600-normal */
@font-face {
  font-family: 'Geist Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/assets/geist-sans-latin-600-normal-DFOURf8L.woff2) format('woff2'), url(/assets/geist-sans-latin-600-normal-CA1yjETN.woff) format('woff');
}/* geist-mono-cyrillic-ext-400-normal */
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(data:font/woff2;base64,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) format('woff2'), url(data:font/woff;base64,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) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* geist-mono-cyrillic-400-normal */
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/geist-mono-cyrillic-400-normal-DoshcOXv.woff2) format('woff2'), url(/assets/geist-mono-cyrillic-400-normal-CeA7eGSt.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* geist-mono-symbols2-400-normal */
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(data:font/woff2;base64,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) format('woff2'), url(/assets/geist-mono-symbols2-400-normal-B5fXMCGq.woff) format('woff');
  unicode-range: U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F;
}

/* geist-mono-vietnamese-400-normal */
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(data:font/woff2;base64,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) format('woff2'), url(/assets/geist-mono-vietnamese-400-normal-CyOwoevh.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* geist-mono-latin-ext-400-normal */
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/geist-mono-latin-ext-400-normal-C1xxG8eb.woff2) format('woff2'), url(/assets/geist-mono-latin-ext-400-normal-a1APXIwD.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* geist-mono-latin-400-normal */
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/geist-mono-latin-400-normal-DKaoCDn5.woff2) format('woff2'), url(/assets/geist-mono-latin-400-normal-BXAprPdR.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* geist-mono-cyrillic-ext-500-normal */
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(data:font/woff2;base64,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) format('woff2'), url(data:font/woff;base64,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) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* geist-mono-cyrillic-500-normal */
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/geist-mono-cyrillic-500-normal-BkE2O7RC.woff2) format('woff2'), url(/assets/geist-mono-cyrillic-500-normal-BgLpzsdg.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* geist-mono-symbols2-500-normal */
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(data:font/woff2;base64,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) format('woff2'), url(/assets/geist-mono-symbols2-500-normal-BYvOiszX.woff) format('woff');
  unicode-range: U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F;
}

/* geist-mono-vietnamese-500-normal */
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(data:font/woff2;base64,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) format('woff2'), url(/assets/geist-mono-vietnamese-500-normal-Do_laDd2.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* geist-mono-latin-ext-500-normal */
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/geist-mono-latin-ext-500-normal-CDyCFkgU.woff2) format('woff2'), url(/assets/geist-mono-latin-ext-500-normal-CzSM7th5.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* geist-mono-latin-500-normal */
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/geist-mono-latin-500-normal-C3sF8Y1B.woff2) format('woff2'), url(/assets/geist-mono-latin-500-normal-YfPbDI_o.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}