/* SW Project Manager — Design Tokens
   Visual direction: Corporate navy on warm grey. Compact tables, comfortable cards.
   Use semantic tokens (--swpm-*) in components — never raw hex.
*/
:root {
  /* ── Brand / Surfaces ─────────────────────────────────────── */
  --swpm-navy-900: #0b2545;     /* primary deep navy */
  --swpm-navy-800: #122e54;
  --swpm-navy-700: #1b3c69;
  --swpm-navy-600: #2a4f80;
  --swpm-navy-500: #3a6597;
  --swpm-navy-100: #e3eaf3;
  --swpm-navy-50:  #f1f5fa;

  --swpm-bg:        #f7f8fa;    /* page background */
  --swpm-surface:   #ffffff;    /* cards, tables */
  --swpm-surface-2: #fbfcfd;    /* nested rows, table headers */
  --swpm-overlay:   rgba(11,37,69,0.55); /* modal scrim */

  /* ── Ink ──────────────────────────────────────────────────── */
  --swpm-ink-900: #0e1726;      /* primary text */
  --swpm-ink-700: #2c3a52;
  --swpm-ink-500: #5a6a82;      /* secondary */
  --swpm-ink-400: #7a8aa1;
  --swpm-ink-300: #a8b3c4;      /* placeholder */
  --swpm-ink-200: #cfd6e0;      /* divider on dark */

  /* ── Borders ─────────────────────────────────────────────── */
  --swpm-border-strong: #d6dbe3;
  --swpm-border:        #e4e7ed;
  --swpm-border-soft:   #eef0f4;

  /* ── Status (semantic) ───────────────────────────────────── */
  --swpm-success:    #2f9e6e;   --swpm-success-bg:    #e6f4ee;   --swpm-success-border:    #b9e0cc;
  --swpm-warning:    #b07207;   --swpm-warning-bg:    #fdf3df;   --swpm-warning-border:    #f1d99a;
  --swpm-critical:   #c0392b;   --swpm-critical-bg:   #fbe9e6;   --swpm-critical-border:   #f0c0b8;
  --swpm-info:       #2563b8;   --swpm-info-bg:       #e6effb;   --swpm-info-border:       #b9cdec;
  --swpm-muted:      #5a6a82;   --swpm-muted-bg:      #eef0f4;   --swpm-muted-border:      #d6dbe3;

  /* ── Visibility (role separation — subtle) ──────────────── */
  --swpm-vis-internal:   #6b3aa3;   --swpm-vis-internal-bg:   #f1ebf8;   --swpm-vis-internal-border:   #d9c8ec;
  --swpm-vis-developer:  #2563b8;   --swpm-vis-developer-bg:  #e6effb;   --swpm-vis-developer-border:  #b9cdec;
  --swpm-vis-partner:    #2f9e6e;   --swpm-vis-partner-bg:    #e6f4ee;   --swpm-vis-partner-border:    #b9e0cc;
  --swpm-vis-restricted: #c0392b;   --swpm-vis-restricted-bg: #fbe9e6;   --swpm-vis-restricted-border: #f0c0b8;

  /* ── Typography ─────────────────────────────────────────── */
  --swpm-font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --swpm-font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;

  --swpm-fs-display: 28px;   --swpm-lh-display: 34px;
  --swpm-fs-h1:      22px;   --swpm-lh-h1:      28px;
  --swpm-fs-h2:      18px;   --swpm-lh-h2:      24px;
  --swpm-fs-h3:      15px;   --swpm-lh-h3:      20px;
  --swpm-fs-body:    14px;   --swpm-lh-body:    20px;
  --swpm-fs-table:   13px;   --swpm-lh-table:   18px;
  --swpm-fs-meta:    12px;   --swpm-lh-meta:    16px;
  --swpm-fs-badge:   11px;   --swpm-lh-badge:   14px;

  --swpm-fw-regular: 400;
  --swpm-fw-medium:  500;
  --swpm-fw-semibold:600;
  --swpm-fw-bold:    700;

  /* ── Spacing (4-pt grid) ────────────────────────────────── */
  --swpm-s-1:  4px;
  --swpm-s-2:  8px;
  --swpm-s-3:  12px;
  --swpm-s-4:  16px;
  --swpm-s-5:  20px;
  --swpm-s-6:  24px;
  --swpm-s-8:  32px;
  --swpm-s-10: 40px;
  --swpm-s-12: 48px;

  /* ── Radii ─────────────────────────────────────────────── */
  --swpm-r-sm: 4px;
  --swpm-r-md: 6px;
  --swpm-r-lg: 10px;
  --swpm-r-xl: 14px;
  --swpm-r-pill: 999px;

  /* ── Shadows ───────────────────────────────────────────── */
  --swpm-shadow-sm: 0 1px 2px rgba(11,37,69,0.06), 0 0 0 1px rgba(11,37,69,0.04);
  --swpm-shadow-md: 0 2px 6px rgba(11,37,69,0.08), 0 1px 2px rgba(11,37,69,0.05);
  --swpm-shadow-lg: 0 12px 32px rgba(11,37,69,0.16), 0 4px 8px rgba(11,37,69,0.08);

  /* ── Density (table) ───────────────────────────────────── */
  --swpm-row-h-compact:    34px;
  --swpm-row-h-comfortable:42px;

  /* ── Risk (project lifecycle) ──────────────────────────── */
  --swpm-risk-low:      var(--swpm-success);
  --swpm-risk-watch:    var(--swpm-warning);
  --swpm-risk-elevated: #d97706;
  --swpm-risk-critical: var(--swpm-critical);

  /* ── Chart palette (categorical, 8) ────────────────────── */
  --swpm-chart-1: #0b2545;
  --swpm-chart-2: #2f9e6e;
  --swpm-chart-3: #b07207;
  --swpm-chart-4: #6b3aa3;
  --swpm-chart-5: #2563b8;
  --swpm-chart-6: #c0392b;
  --swpm-chart-7: #5a6a82;
  --swpm-chart-8: #3a6597;
}

/* ── Base resets within app shell ─────────────────────────── */
.swpm, .swpm * { box-sizing: border-box; }
.swpm {
  font-family: var(--swpm-font-sans);
  font-size: var(--swpm-fs-body);
  line-height: var(--swpm-lh-body);
  color: var(--swpm-ink-900);
  background: var(--swpm-bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.swpm button { font-family: inherit; }
.swpm input, .swpm select, .swpm textarea { font-family: inherit; font-size: inherit; color: inherit; }
.swpm a { color: var(--swpm-navy-700); text-decoration: none; }
.swpm a:hover { text-decoration: underline; }

/* Scrollbar (subtle) */
.swpm ::-webkit-scrollbar { width: 10px; height: 10px; }
.swpm ::-webkit-scrollbar-thumb { background: #cdd3dc; border-radius: 8px; border: 2px solid var(--swpm-bg); }
.swpm ::-webkit-scrollbar-thumb:hover { background: #b9c0cc; }
.swpm ::-webkit-scrollbar-track { background: transparent; }
