/* Theme: Stack (stack) */
/* A refined, dark software workspace combining a vivid cool-green brand signature with comfortable low-light layouts and high-contrast typography. */

@tailwind base;
@tailwind components;
@tailwind utilities;

@import url("https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Fira+Code:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap");

@layer base {
  :root {
    /* Cool slate-tinted neutral ramp for comfortable low-contrast dark backgrounds and crisp borders. */
    --palette-neutral-100: #FAFAFB;
    --palette-neutral-150: #F8F9FA;
    --palette-neutral-200: #F2F4F5;
    --palette-neutral-250: #E9EDEE;
    --palette-neutral-300: #DDE2E5;
    --palette-neutral-350: #CDD4D8;
    --palette-neutral-400: #B9C3C8;
    --palette-neutral-450: #A3AFB5;
    --palette-neutral-500: #89979E;
    --palette-neutral-550: #6A7B84;
    --palette-neutral-600: #536269;
    --palette-neutral-650: #404C52;
    --palette-neutral-700: #313A3F;
    --palette-neutral-750: #252C30;
    --palette-neutral-800: #1D2326;
    --palette-neutral-850: #181D1F;
    --palette-neutral-900: #161B1D;
    /* Vivid cool-green accent for status cues, success indicators, and interactive highlights. */
    --palette-brand-100: #F2FDF8;
    --palette-brand-150: #EFFCF6;
    --palette-brand-200: #E3FAF0;
    --palette-brand-250: #CFF7E5;
    --palette-brand-300: #B4F2D6;
    --palette-brand-350: #90ECC3;
    --palette-brand-400: #65E4AB;
    --palette-brand-450: #33DA90;
    --palette-brand-500: #1FA96C;
    --palette-brand-550: #198957;
    --palette-brand-600: #136D45;
    --palette-brand-650: #0F5535;
    --palette-brand-700: #0B4129;
    --palette-brand-750: #08311F;
    --palette-brand-800: #072618;
    --palette-brand-850: #052014;
    --palette-brand-900: #051E13;
    --palette-danger-100: #FEF9FA;
    --palette-danger-150: #FEF7F9;
    --palette-danger-200: #FEF0F3;
    --palette-danger-250: #FCE5EA;
    --palette-danger-300: #FBD5DD;
    --palette-danger-350: #F8C1CD;
    --palette-danger-400: #F5A8B9;
    --palette-danger-450: #F18BA1;
    --palette-danger-500: #EC6A87;
    --palette-danger-550: #E62F57;
    --palette-danger-600: #C5173D;
    --palette-danger-650: #9A112F;
    --palette-danger-700: #770D24;
    --palette-danger-750: #5C091B;
    --palette-danger-800: #480715;
    --palette-danger-850: #3C0612;
    --palette-danger-900: #380611;
    --palette-warning-100: #FFF9F1;
    --palette-warning-150: #FFF8EC;
    --palette-warning-200: #FEF3E0;
    --palette-warning-250: #FEEBCA;
    --palette-warning-300: #FDDFAC;
    --palette-warning-350: #FBD086;
    --palette-warning-400: #FABD58;
    --palette-warning-450: #F7A822;
    --palette-warning-500: #CE8508;
    --palette-warning-550: #A76B06;
    --palette-warning-600: #855504;
    --palette-warning-650: #684203;
    --palette-warning-700: #503302;
    --palette-warning-750: #3D2702;
    --palette-warning-800: #2F1E01;
    --palette-warning-850: #271901;
    --palette-warning-900: #251701;
    --palette-success-100: #F2FDF8;
    --palette-success-150: #EFFCF6;
    --palette-success-200: #E3FAF0;
    --palette-success-250: #CFF7E5;
    --palette-success-300: #B4F2D6;
    --palette-success-350: #90ECC3;
    --palette-success-400: #65E4AB;
    --palette-success-450: #33DA90;
    --palette-success-500: #1FA96C;
    --palette-success-550: #198957;
    --palette-success-600: #136D45;
    --palette-success-650: #0F5535;
    --palette-success-700: #0B4129;
    --palette-success-750: #08311F;
    --palette-success-800: #072618;
    --palette-success-850: #052014;
    --palette-success-900: #051E13;
    --palette-info-100: #F8FAFF;
    --palette-info-150: #F5F9FF;
    --palette-info-200: #EDF4FF;
    --palette-info-250: #E1ECFE;
    --palette-info-300: #CFE1FE;
    --palette-info-350: #B8D2FD;
    --palette-info-400: #9DC1FC;
    --palette-info-450: #7DACFA;
    --palette-info-500: #5894F7;
    --palette-info-550: #196DF6;
    --palette-info-600: #0754D1;
    --palette-info-650: #0541A4;
    --palette-info-700: #033280;
    --palette-info-750: #022763;
    --palette-info-800: #021F4E;
    --palette-info-850: #011A42;
    --palette-info-900: #01183E;
    --palette-accent-100: #FAFAFC;
    --palette-accent-150: #F8F9FB;
    --palette-accent-200: #F3F4F9;
    --palette-accent-250: #E9ECF4;
    --palette-accent-300: #DDE0ED;
    --palette-accent-350: #CCD2E4;
    --palette-accent-400: #B9C0D8;
    --palette-accent-450: #A2ACCB;
    --palette-accent-500: #8894BA;
    --palette-accent-550: #6070A5;
    --palette-accent-600: #4A5886;
    --palette-accent-650: #39456A;
    --palette-accent-700: #2C3552;
    --palette-accent-750: #212940;
    --palette-accent-800: #1A2033;
    --palette-accent-850: #161B2B;
    --palette-accent-900: #151928;
  }

  :root {
    --radius: 0.5rem;
    --radius-sm: calc(var(--radius) - 4px);
    --radius-md: calc(var(--radius) - 2px);
    --radius-lg: var(--radius);
    --radius-xl: calc(var(--radius) + 4px);
    --background: #FFFFFF;
    --foreground: #17262E;
    --card: #F8FAFC;
    --card-foreground: var(--palette-neutral-900);
    --popover: #FFFFFF;
    --popover-foreground: var(--palette-neutral-900);
    --primary: var(--palette-accent-700);
    --primary-foreground: #FFFFFF;
    --secondary: var(--palette-neutral-150);
    --secondary-foreground: var(--palette-neutral-900);
    --muted: var(--palette-neutral-150);
    --muted-foreground: var(--palette-neutral-700);
    --accent: var(--palette-brand-200);
    --accent-foreground: var(--palette-brand-900);
    --destructive: var(--palette-danger-700);
    --destructive-foreground: #FFFFFF;
    --border: var(--palette-neutral-200);
    --input: var(--palette-neutral-250);
    --ring: var(--palette-brand-500);
    --chart-1: var(--palette-brand-500);
    --chart-2: var(--palette-accent-500);
    --chart-3: #E0E1F1;
    --chart-4: #38BDF8;
    --chart-5: #FB7185;
    --sidebar: var(--palette-neutral-150);
    --sidebar-foreground: var(--palette-neutral-800);
    --sidebar-primary: var(--palette-brand-500);
    --sidebar-primary-foreground: #111D23;
    --sidebar-accent: var(--palette-neutral-200);
    --sidebar-accent-foreground: var(--palette-neutral-900);
    --sidebar-border: var(--palette-neutral-200);
    --sidebar-ring: var(--palette-brand-500);
    --font-sans: "Inter", system-ui, sans-serif;
    --font-display: "Inter", system-ui, sans-serif;
    --font-mono: "Fira Code", ui-monospace, monospace;
    --text-hero: 300 3rem/3.125rem var(--font-display);
    --text-hero-tracking: -0.01em;
    --text-title: 300 1.75rem/4.5625rem var(--font-display);
    --text-heading: 300 1.75rem/2.25rem var(--font-display);
    --text-body: 400 1.125rem/1.6875rem var(--font-sans);
    --text-caption: 700 0.8125rem/1.25rem var(--font-sans);
    --text-label: 600 0.875rem/1.25rem var(--font-sans);
    --text-overline: 700 0.75rem/1rem var(--font-sans);
    --text-overline-tracking: 0.08em;
    --text-overline-transform: uppercase;
    --shadow-xs: 0 1px 2px rgba(0,0,0,0.05);
    --shadow-sm: rgba(125, 140, 148, 0.1) 0px 0px 20px 5px;
    --shadow-md: rgba(0, 0, 0, 0.2) 1px 1px 30px 0px;
    --shadow-lg: rgba(0, 0, 0, 0.2) 0px 10px 30px 0px;
    --shadow-xl: rgba(0, 0, 0, 0.1) 0px 0px 40px 16px;
    --gradient-brand_wash: linear-gradient(90deg, #FDFCF2 14%, #EEFCF4 25%, #F5F5FF 56%, #F0FBF6 100%);
  }

  .dark {
    --background: #17262E;
    --foreground: #FFFFFF;
    --card: #20313C;
    --card-foreground: var(--palette-neutral-100);
    --popover: #1E2F3A;
    --popover-foreground: var(--palette-neutral-100);
    --primary: var(--palette-accent-200);
    --primary-foreground: var(--palette-neutral-900);
    --secondary: var(--palette-neutral-800);
    --secondary-foreground: var(--palette-neutral-100);
    --muted: var(--palette-neutral-800);
    --muted-foreground: var(--palette-neutral-300);
    --accent: var(--palette-brand-800);
    --accent-foreground: var(--palette-brand-100);
    --destructive: var(--palette-danger-600);
    --destructive-foreground: #FFFFFF;
    --border: var(--palette-neutral-800);
    --input: var(--palette-neutral-700);
    --ring: var(--palette-brand-500);
    --chart-1: var(--palette-brand-500);
    --chart-2: var(--palette-accent-500);
    --chart-3: #576696;
    --chart-4: #38BDF8;
    --chart-5: #FB7185;
    --sidebar: #111D23;
    --sidebar-foreground: var(--palette-neutral-300);
    --sidebar-primary: var(--palette-brand-500);
    --sidebar-primary-foreground: #111D23;
    --sidebar-accent: var(--palette-neutral-800);
    --sidebar-accent-foreground: var(--palette-neutral-100);
    --sidebar-border: var(--palette-neutral-800);
    --sidebar-ring: var(--palette-brand-500);
  }
}

@layer base {
  * { border-color: var(--border); }
  body { background-color: var(--background); color: var(--foreground); font-family: var(--font-sans); }
}

@layer components {
  .text-hero {
    font: var(--text-hero);
    letter-spacing: var(--text-hero-tracking);
  }
  .text-title {
    font: var(--text-title);
  }
  .text-heading {
    font: var(--text-heading);
  }
  .text-body {
    font: var(--text-body);
  }
  .text-caption {
    font: var(--text-caption);
  }
  .text-label {
    font: var(--text-label);
  }
  .text-overline {
    font: var(--text-overline);
    letter-spacing: var(--text-overline-tracking);
    text-transform: var(--text-overline-transform);
  }
}