/* Theme: Arcadia (arcadia) */
/* A light comfortable UI with sharp corners, flat surfaces, and a vivid warm brand built for highly scannable financial environments. */

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

@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans: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=IBM+Plex+Serif: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=IBM+Plex+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 {
    /* Arcadia structural neutral scale derived from scanned interface facts. */
    --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 warm yellow primary brand anchor. */
    --palette-brand-100: #FFFCD8;
    --palette-brand-150: #FFFCD3;
    --palette-brand-200: #FFFBC5;
    --palette-brand-250: #FFFAAC;
    --palette-brand-300: #FFF78B;
    --palette-brand-350: #FFF45F;
    --palette-brand-400: #FFF12A;
    --palette-brand-450: #EBDB00;
    --palette-brand-500: #A39700;
    --palette-brand-550: #847A00;
    --palette-brand-600: #686100;
    --palette-brand-650: #514C00;
    --palette-brand-700: #3E3A00;
    --palette-brand-750: #302C00;
    --palette-brand-800: #252200;
    --palette-brand-850: #1F1D00;
    --palette-brand-900: #1D1B00;
    /* High-contrast functional red for errors and destructive actions. */
    --palette-danger-100: #FEF9F9;
    --palette-danger-150: #FEF7F7;
    --palette-danger-200: #FDF1F1;
    --palette-danger-250: #FBE6E6;
    --palette-danger-300: #F8D7D7;
    --palette-danger-350: #F5C4C4;
    --palette-danger-400: #F0ADAD;
    --palette-danger-450: #EB9193;
    --palette-danger-500: #E47274;
    --palette-danger-550: #DB3A3C;
    --palette-danger-600: #BB2123;
    --palette-danger-650: #93191B;
    --palette-danger-700: #721314;
    --palette-danger-750: #580E0F;
    --palette-danger-800: #460B0C;
    --palette-danger-850: #3A090A;
    --palette-danger-900: #370909;
    /* Functional warm amber for warnings. */
    --palette-warning-100: #FFF9F1;
    --palette-warning-150: #FFF8ED;
    --palette-warning-200: #FEF3E0;
    --palette-warning-250: #FDEACB;
    --palette-warning-300: #FCDFAD;
    --palette-warning-350: #FBCF87;
    --palette-warning-400: #F9BD59;
    --palette-warning-450: #F6A723;
    --palette-warning-500: #CF8409;
    --palette-warning-550: #A76B07;
    --palette-warning-600: #855505;
    --palette-warning-650: #684204;
    --palette-warning-700: #503303;
    --palette-warning-750: #3D2702;
    --palette-warning-800: #2F1E01;
    --palette-warning-850: #271901;
    --palette-warning-900: #251701;
    /* Optimistic mint green for positive states. */
    --palette-success-100: #F2FDF7;
    --palette-success-150: #EEFDF4;
    --palette-success-200: #E2FBEB;
    --palette-success-250: #CDF9DD;
    --palette-success-300: #B0F5CA;
    --palette-success-350: #8BF0B1;
    --palette-success-400: #5DEA92;
    --palette-success-450: #28E26E;
    --palette-success-500: #18AB4F;
    --palette-success-550: #138B40;
    --palette-success-600: #0F6E33;
    --palette-success-650: #0B5627;
    --palette-success-700: #09421E;
    --palette-success-750: #063317;
    --palette-success-800: #052712;
    --palette-success-850: #04210F;
    --palette-success-900: #041F0E;
    /* Bright ice-blue for information status elements. */
    --palette-info-100: #ECFEFD;
    --palette-info-150: #E8FDFC;
    --palette-info-200: #DBFCFB;
    --palette-info-250: #C4FAF8;
    --palette-info-300: #A5F8F5;
    --palette-info-350: #7CF5F0;
    --palette-info-400: #4BF1EA;
    --palette-info-450: #13EAE1;
    --palette-info-500: #0EA6A0;
    --palette-info-550: #0B8782;
    --palette-info-600: #096B67;
    --palette-info-650: #075350;
    --palette-info-700: #05403E;
    --palette-info-750: #04312F;
    --palette-info-800: #032625;
    --palette-info-850: #02201F;
    --palette-info-900: #021E1D;
    /* Observed neon ice-blue for brand accents. */
    --palette-accent-100: #ECFEFD;
    --palette-accent-150: #E8FDFC;
    --palette-accent-200: #DBFCFB;
    --palette-accent-250: #C4FAF8;
    --palette-accent-300: #A5F8F5;
    --palette-accent-350: #7CF5F0;
    --palette-accent-400: #4BF1EA;
    --palette-accent-450: #13EAE1;
    --palette-accent-500: #0EA6A0;
    --palette-accent-550: #0B8782;
    --palette-accent-600: #096B67;
    --palette-accent-650: #075350;
    --palette-accent-700: #05403E;
    --palette-accent-750: #04312F;
    --palette-accent-800: #032625;
    --palette-accent-850: #02201F;
    --palette-accent-900: #021E1D;
  }

  :root {
    --radius: 0rem;
    --radius-sm: calc(var(--radius) - 4px);
    --radius-md: calc(var(--radius) - 2px);
    --radius-lg: var(--radius);
    --radius-xl: calc(var(--radius) + 4px);
    --background: #F7F7F7;
    --foreground: #1E1D1D;
    --card: #FFFFFF;
    --card-foreground: #1E1D1D;
    --popover: #FFFFFF;
    --popover-foreground: #1E1D1D;
    --primary: var(--palette-brand-500);
    --primary-foreground: var(--palette-neutral-800);
    --secondary: var(--palette-neutral-150);
    --secondary-foreground: var(--palette-neutral-800);
    --muted: var(--palette-neutral-150);
    --muted-foreground: var(--palette-neutral-700);
    --accent: var(--palette-accent-500);
    --accent-foreground: var(--palette-neutral-800);
    --destructive: var(--palette-danger-700);
    --destructive-foreground: var(--palette-neutral-100);
    --border: var(--palette-neutral-200);
    --input: var(--palette-neutral-200);
    --ring: var(--palette-neutral-500);
    --chart-1: var(--palette-brand-500);
    --chart-2: var(--palette-success-500);
    --chart-3: var(--palette-accent-500);
    --chart-4: var(--palette-neutral-500);
    --chart-5: var(--palette-neutral-800);
    --sidebar: var(--palette-neutral-100);
    --sidebar-foreground: var(--palette-neutral-800);
    --sidebar-primary: var(--palette-brand-500);
    --sidebar-primary-foreground: var(--palette-neutral-800);
    --sidebar-accent: var(--palette-accent-500);
    --sidebar-accent-foreground: var(--palette-neutral-800);
    --sidebar-border: var(--palette-neutral-200);
    --sidebar-ring: var(--palette-neutral-500);
    --font-sans: "IBM Plex Sans", system-ui, sans-serif;
    --font-display: "IBM Plex Serif", system-ui, sans-serif;
    --font-mono: "IBM Plex Mono", ui-monospace, monospace;
    --text-hero: 700 3.875rem/4.25rem var(--font-display);
    --text-hero-tracking: -0.04em;
    --text-title: 700 2.25rem/2.6875rem var(--font-display);
    --text-title-tracking: -0.03em;
    --text-heading: 500 1.3125rem/1.875rem var(--font-display);
    --text-body: 400 1.125rem/1.75rem var(--font-sans);
    --text-caption: 400 0.75rem/1.125rem var(--font-sans);
    --text-label: 700 0.75rem/1.1875rem var(--font-sans);
    --text-overline: 700 0.75rem/1.1875rem var(--font-sans);
    --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(90deg, rgba(0, 0, 0, 0) 50%, rgb(172, 248, 245) 50%);
  }

  .dark {
    --background: #0A0A0A;
    --foreground: #E2E2E2;
    --card: #1E1D1D;
    --card-foreground: #FFFFFF;
    --popover: #1E1D1D;
    --popover-foreground: #FFFFFF;
    --primary: var(--palette-brand-500);
    --primary-foreground: var(--palette-neutral-800);
    --secondary: var(--palette-neutral-700);
    --secondary-foreground: var(--palette-neutral-100);
    --muted: var(--palette-neutral-700);
    --muted-foreground: var(--palette-neutral-400);
    --accent: var(--palette-neutral-700);
    --accent-foreground: var(--palette-neutral-100);
    --destructive: var(--palette-danger-700);
    --destructive-foreground: var(--palette-neutral-100);
    --border: var(--palette-neutral-700);
    --input: var(--palette-neutral-700);
    --ring: var(--palette-neutral-400);
    --chart-1: var(--palette-brand-500);
    --chart-2: var(--palette-success-500);
    --chart-3: var(--palette-accent-500);
    --chart-4: var(--palette-neutral-400);
    --chart-5: var(--palette-neutral-100);
    --sidebar: var(--palette-neutral-900);
    --sidebar-foreground: var(--palette-neutral-100);
    --sidebar-primary: var(--palette-brand-500);
    --sidebar-primary-foreground: var(--palette-neutral-800);
    --sidebar-accent: var(--palette-neutral-700);
    --sidebar-accent-foreground: var(--palette-neutral-100);
    --sidebar-border: var(--palette-neutral-700);
    --sidebar-ring: var(--palette-neutral-400);
  }
}

@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);
  }
}