/*
 * Indexalign brand tokens — lifted verbatim from the portal's design system.
 * Source: indexalign_api/frontend/src/index.css (GUU-94 "Dark Terminal" theme).
 * Do not invent values here. If the portal changes, this changes.
 */
:root{
  /* surfaces */
  --background:#111017;
  --foreground:#eceaf6;
  --card:#17161f;
  --secondary:#1e1d28;
  --muted:#1e1d28;
  --muted-foreground:#a5a2b8;
  --border:#26242f;
  --input:#312f3d;

  /* periwinkle — the brand primary */
  --primary:#716bcc;
  --primary-foreground:#ffffff;
  --peri:#8f88e8;
  --peri-core:#716bcc;
  --peri-soft:#a8a0ff;
  --peri-dim:#2a2741;

  /* semantic accents */
  --terminal:#4ade9b;
  --terminal-dim:#12281e;
  --warn:#f0b45c;
  --warn-dim:#2d2415;
  --destructive:#f07f72;

  /* chart ramp */
  --chart-1:#716bcc;
  --chart-2:#a8a0ff;
  --chart-3:#4ade9b;
  --chart-4:#f0b45c;
  --chart-5:#8f88e8;

  --radius:0.625rem;
  --radius-sm:calc(var(--radius) - 4px);
  --radius-md:calc(var(--radius) - 2px);

  --font-display:"Montserrat","Montserrat Variable",ui-sans-serif,system-ui,sans-serif;
  --font-sans:"Inter","Inter Variable",ui-sans-serif,system-ui,sans-serif;
  --font-mono:"JetBrains Mono","JetBrains Mono Variable",ui-monospace,monospace;
}

*{box-sizing:border-box;margin:0;padding:0}
body{
  background:var(--background);color:var(--foreground);
  font-family:var(--font-sans);-webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:var(--font-display)}
/* All data rendering is mono with tabular numerals — the signature move. */
code,.font-mono,.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
a{color:inherit;text-decoration:none}

/* Wordmark: INDE[X]ALIGN, display, extrabold, tracked out, X glows periwinkle */
.wordmark{
  font-family:var(--font-display);font-size:15px;font-weight:800;
  letter-spacing:.14em;color:var(--foreground);user-select:none;
}
.wordmark .x{color:var(--peri-soft);text-shadow:0 0 18px rgba(168,160,255,.6)}

/* Stat card periwinkle gradient underline */
.stat-underline{position:relative;overflow:hidden}
.stat-underline::after{
  content:"";position:absolute;inset:auto 0 0 0;height:2px;
  background:linear-gradient(90deg,var(--peri-core),transparent 70%);opacity:.55;
}

/* Brand "×" glyph bullets */
.grant-list li{display:flex;gap:.5625rem;align-items:baseline;list-style:none}
.grant-list li::before{content:"×";color:var(--peri);font-weight:700;font-family:var(--font-display)}

/* Buttons — shadcn shape, brand fill */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--font-sans);font-size:14px;font-weight:500;
  padding:.5rem 1rem;border-radius:var(--radius-md);border:1px solid transparent;
  cursor:pointer;transition:background .15s,border-color .15s,color .15s;
}
.btn-primary{background:var(--primary);color:var(--primary-foreground)}
.btn-primary:hover{background:var(--peri)}
.btn-outline{background:transparent;border-color:var(--input);color:var(--foreground)}
.btn-outline:hover{background:var(--secondary)}
.btn-ghost{background:transparent;color:var(--muted-foreground)}
.btn-ghost:hover{color:var(--foreground);background:var(--secondary)}
