/* Theme: Infra (infra) */
/* A light, high-density system utilizing razor-sharp borders, vivid cool brand accents, and editorial typography for software environments. */

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

@import url("https://fonts.googleapis.com/css2?family=Source+Serif+4: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=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=JetBrains+Mono: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 {
    /* Custom neutral ramp derived from measured warm slate inks. */
    --palette-neutral-100: #FAFAFA;
    --palette-neutral-150: #F9F9F9;
    --palette-neutral-200: #F4F4F4;
    --palette-neutral-250: #ECECEC;
    --palette-neutral-300: #E1E1E1;
    --palette-neutral-350: #D3D3D3;
    --palette-neutral-400: #C1C1C1;
    --palette-neutral-450: #ACACAC;
    --palette-neutral-500: #949494;
    --palette-neutral-550: #787878;
    --palette-neutral-600: #5F5F5F;
    --palette-neutral-650: #4A4A4A;
    --palette-neutral-700: #383838;
    --palette-neutral-750: #2B2B2B;
    --palette-neutral-800: #212121;
    --palette-neutral-850: #1B1B1B;
    --palette-neutral-900: #1A1A1A;
    /* Vivid cool signature blue. */
    --palette-brand-100: #F7FAFF;
    --palette-brand-150: #F5F9FF;
    --palette-brand-200: #EDF4FF;
    --palette-brand-250: #DFECFF;
    --palette-brand-300: #CDE0FF;
    --palette-brand-350: #B5D2FF;
    --palette-brand-400: #98C0FF;
    --palette-brand-450: #77ABFF;
    --palette-brand-500: #5093FF;
    --palette-brand-550: #0F6CFF;
    --palette-brand-600: #0052DA;
    --palette-brand-650: #0040AC;
    --palette-brand-700: #003285;
    --palette-brand-750: #002667;
    --palette-brand-800: #001E51;
    --palette-brand-850: #001944;
    --palette-brand-900: #001840;
    --palette-danger-100: #FFF9F7;
    --palette-danger-150: #FFF7F3;
    --palette-danger-200: #FFF0E9;
    --palette-danger-250: #FFE4D7;
    --palette-danger-300: #FFD3BF;
    --palette-danger-350: #FFBE9F;
    --palette-danger-400: #FFA379;
    --palette-danger-450: #FF854C;
    --palette-danger-500: #FF6119;
    --palette-danger-550: #E34600;
    --palette-danger-600: #B53700;
    --palette-danger-650: #8D2B00;
    --palette-danger-700: #6C2100;
    --palette-danger-750: #531900;
    --palette-danger-800: #401300;
    --palette-danger-850: #351000;
    --palette-danger-900: #320F00;
    --palette-warning-100: #FFF9F1;
    --palette-warning-150: #FFF8EC;
    --palette-warning-200: #FFF2DF;
    --palette-warning-250: #FFEAC9;
    --palette-warning-300: #FFDDAA;
    --palette-warning-350: #FFCE82;
    --palette-warning-400: #FFBA51;
    --palette-warning-450: #FFA318;
    --palette-warning-500: #D68100;
    --palette-warning-550: #AE6800;
    --palette-warning-600: #8A5200;
    --palette-warning-650: #6C4000;
    --palette-warning-700: #533100;
    --palette-warning-750: #3F2600;
    --palette-warning-800: #311D00;
    --palette-warning-850: #291800;
    --palette-warning-900: #261700;
    --palette-success-100: #EBFFF8;
    --palette-success-150: #E6FFF6;
    --palette-success-200: #D7FFF1;
    --palette-success-250: #BEFFE8;
    --palette-success-300: #9BFFDB;
    --palette-success-350: #6EFFCB;
    --palette-success-400: #37FFB7;
    --palette-success-450: #00F69C;
    --palette-success-500: #00AA6C;
    --palette-success-550: #008A58;
    --palette-success-600: #006E46;
    --palette-success-650: #005636;
    --palette-success-700: #00422A;
    --palette-success-750: #003220;
    --palette-success-800: #002719;
    --palette-success-850: #002115;
    --palette-success-900: #001F13;
    --palette-info-100: #F7FAFF;
    --palette-info-150: #F5F9FF;
    --palette-info-200: #EDF4FF;
    --palette-info-250: #DFECFF;
    --palette-info-300: #CDE0FF;
    --palette-info-350: #B5D2FF;
    --palette-info-400: #98C0FF;
    --palette-info-450: #77ABFF;
    --palette-info-500: #5093FF;
    --palette-info-550: #0F6CFF;
    --palette-info-600: #0052DA;
    --palette-info-650: #0040AC;
    --palette-info-700: #003285;
    --palette-info-750: #002667;
    --palette-info-800: #001E51;
    --palette-info-850: #001944;
    --palette-info-900: #001840;
    --palette-accent-100: #F6FBFF;
    --palette-accent-150: #F3F9FF;
    --palette-accent-200: #E9F5FF;
    --palette-accent-250: #D9EDFF;
    --palette-accent-300: #C2E2FF;
    --palette-accent-350: #A5D4FF;
    --palette-accent-400: #82C3FF;
    --palette-accent-450: #59AFFF;
    --palette-accent-500: #2A97FF;
    --palette-accent-550: #007BF0;
    --palette-accent-600: #0062BF;
    --palette-accent-650: #004C95;
    --palette-accent-700: #003A73;
    --palette-accent-750: #002C58;
    --palette-accent-800: #002244;
    --palette-accent-850: #001D39;
    --palette-accent-900: #001B35;
  }

  :root {
    --radius: 0.75rem;
    --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: #333333;
    --card: #FFFFFF;
    --card-foreground: #333333;
    --popover: #FFFFFF;
    --popover-foreground: #333333;
    --primary: #191B20;
    --primary-foreground: #FFFFFF;
    --secondary: #EEEEEE;
    --secondary-foreground: #333333;
    --muted: #EEEEEE;
    --muted-foreground: #606060;
    --accent: #F4F8FF;
    --accent-foreground: #005BEB;
    --destructive: #D53F00;
    --destructive-foreground: #FFFFFF;
    --border: #EEEEEE;
    --input: #DDDDDD;
    --ring: #0364FF;
    --chart-1: #0364FF;
    --chart-2: #0056A7;
    --chart-3: #FF5000;
    --chart-4: #77ABFF;
    --chart-5: #777777;
    --sidebar: #FFFFFF;
    --sidebar-foreground: #333333;
    --sidebar-primary: #191B20;
    --sidebar-primary-foreground: #FFFFFF;
    --sidebar-accent: #F4F8FF;
    --sidebar-accent-foreground: #005BEB;
    --sidebar-border: #EEEEEE;
    --sidebar-ring: #0364FF;
    --font-sans: "Source Serif 4", system-ui, sans-serif;
    --font-display: "Inter", system-ui, sans-serif;
    --font-mono: "JetBrains Mono", ui-monospace, monospace;
    --text-hero: 600 3.5rem/3.875rem var(--font-display);
    --text-hero-tracking: -0.015em;
    --text-title: 600 3.5rem/3.875rem var(--font-display);
    --text-title-tracking: -0.015em;
    --text-heading: 600 1.5rem/1.875rem var(--font-display);
    --text-body: 400 1rem/1.25rem var(--font-sans);
    --text-caption: 400 0.875rem/1.25rem var(--font-sans);
    --text-label: 400 0.875rem/1.25rem var(--font-display);
    --text-overline: 600 0.75rem/1rem var(--font-display);
    --text-overline-tracking: 0.08em;
    --text-overline-transform: uppercase;
    --shadow-xs: none;
    --shadow-sm: none;
    --shadow-md: none;
    --shadow-lg: none;
    --shadow-xl: none;
    --gradient-brand_wash: linear-gradient(135deg, #0364FF 0%, #0056A7 100%);
  }

  .dark {
    --background: #111111;
    --foreground: #FFFFFF;
    --card: #222222;
    --card-foreground: #FFFFFF;
    --popover: #222222;
    --popover-foreground: #FFFFFF;
    --primary: #0364FF;
    --primary-foreground: #FFFFFF;
    --secondary: #404040;
    --secondary-foreground: #FFFFFF;
    --muted: #222222;
    --muted-foreground: #ACACAC;
    --accent: #003285;
    --accent-foreground: #FFFFFF;
    --destructive: #D53F00;
    --destructive-foreground: #FFFFFF;
    --border: #404040;
    --input: #5B5B5B;
    --ring: #0364FF;
    --chart-1: #0364FF;
    --chart-2: #0056A7;
    --chart-3: #FF5000;
    --chart-4: #77ABFF;
    --chart-5: #777777;
    --sidebar: #111111;
    --sidebar-foreground: #FFFFFF;
    --sidebar-primary: #0364FF;
    --sidebar-primary-foreground: #FFFFFF;
    --sidebar-accent: #222222;
    --sidebar-accent-foreground: #FFFFFF;
    --sidebar-border: #404040;
    --sidebar-ring: #0364FF;
  }
}

@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);
    letter-spacing: var(--text-title-tracking);
  }
  .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);
  }
}