/* ============================================================
   BD Pursuit — Design Tokens
   App Mode = warm institutional light. A2 = dark mission cockpit.
   Type: Public Sans (UI) + IBM Plex Mono (evidence/data/audit).
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root {
  /* ---- Warm neutral ramp (App Mode) ---- */
  --paper:        #F6F3EE;   /* app background */
  --surface:      #FFFFFF;   /* cards */
  --surface-2:    #FBF9F5;   /* sunken / alt rows */
  --surface-3:    #F1ECE3;   /* deeper sunken */
  --ink:          #1B1813;   /* warm near-black text */
  --ink-2:        #4A453D;   /* secondary text */
  --ink-3:        #7C766B;   /* tertiary / muted */
  --ink-4:        #A8A296;   /* faint / placeholder */
  --line:         #E7E0D5;   /* hairline border */
  --line-2:       #D6CCBC;   /* stronger border */

  /* ---- Brand: amber signature ---- */
  --amber:        #C8772E;   /* primary brand + CTA */
  --amber-600:    #B0651F;
  --amber-700:    #95531A;
  --amber-tint:   #FBEEDF;   /* soft fill */
  --amber-tint-2: #F5DFC4;
  --amber-ink:    #6E3F12;   /* text on tint */

  /* ---- Semantic (always paired with icon/label) ---- */
  --strong:       #1F8A5B;   /* evidence strong / approved */
  --strong-tint:  #E2F2EA;
  --strong-ink:   #0F5436;

  --partial:      #B9821B;   /* evidence partial / caution */
  --partial-tint: #F7EECF;
  --partial-ink:  #6B4B07;

  --risk:         #C0392B;   /* business risk / unsupported / blocker */
  --risk-tint:    #F8E3DF;
  --risk-ink:     #7A1F16;

  --ai:           #3B5BD9;   /* AI working / queued */
  --ai-tint:      #E5E9FB;
  --ai-ink:       #25357F;

  --human:        #8A4FBF;   /* human decision needed */
  --human-tint:   #EFE6F7;
  --human-ink:    #4E2877;

  --info:         #2B7C93;   /* informational / neutral status */
  --info-tint:    #DEF0F4;
  --info-ink:     #154656;

  /* ---- Elevation ---- */
  --sh-1: 0 1px 2px rgba(27,24,19,.05), 0 1px 1px rgba(27,24,19,.04);
  --sh-2: 0 2px 4px rgba(27,24,19,.06), 0 4px 12px rgba(27,24,19,.05);
  --sh-3: 0 8px 24px rgba(27,24,19,.10), 0 2px 6px rgba(27,24,19,.06);
  --sh-pop: 0 16px 48px rgba(27,24,19,.18), 0 4px 12px rgba(27,24,19,.10);

  /* ---- Radius ---- */
  --r-xs: 5px;
  --r-sm: 8px;
  --r-md: 11px;
  --r-lg: 16px;
  --r-xl: 22px;
  --r-pill: 999px;

  /* ---- Type ---- */
  --ui: 'Public Sans', system-ui, -apple-system, sans-serif;
  --mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  /* ---- Spacing scale (density = standard) ---- */
  --s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px; --s5: 20px;
  --s6: 24px; --s7: 32px; --s8: 40px; --s9: 56px; --s10: 72px;

  --nav-w: 230px;
  --maxw: 1340px;
}

/* ============================================================
   A2 Mission Cockpit — dark scope. Applied via .cockpit.
   ============================================================ */
.cockpit {
  --paper:     #14110C;
  --surface:   #1E1A13;
  --surface-2: #181410;
  --surface-3: #241F16;
  --ink:       #F3EEE3;
  --ink-2:     #C2B9A7;
  --ink-3:     #8C8474;
  --ink-4:     #5E5849;
  --line:      #2E281D;
  --line-2:    #3C3526;

  --amber:      #E2913F;
  --amber-600:  #D17F2C;
  --amber-tint: #2C2316;
  --amber-tint-2:#3A2D19;
  --amber-ink:  #F0C189;

  --strong:      #43C28C; --strong-tint:#13311F; --strong-ink:#9BE6C2;
  --partial:     #E0AC42; --partial-tint:#322713; --partial-ink:#F3D38C;
  --risk:        #E36658; --risk-tint:#361712; --risk-ink:#F2A99E;
  --ai:          #7C92F0; --ai-tint:#181d33; --ai-ink:#B6C2F8;
  --human:       #B486E0; --human-tint:#241733; --human-ink:#D6BBF0;
  --info:        #4FB6CF; --info-tint:#0f2c33; --info-ink:#A4DEEB;

  --sh-1: 0 1px 2px rgba(0,0,0,.4);
  --sh-2: 0 2px 8px rgba(0,0,0,.45);
  --sh-3: 0 10px 30px rgba(0,0,0,.55);
  --sh-pop: 0 20px 60px rgba(0,0,0,.65);
}

/* ============================================================
   Base
   ============================================================ */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--ui);
  background: var(--paper);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-size: 14px;
  line-height: 1.5;
}
::selection { background: var(--amber-tint-2); color: var(--ink); }

h1,h2,h3,h4,h5 { margin: 0; font-weight: 700; letter-spacing: -0.01em; line-height: 1.18; }
p { margin: 0; }
button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; }
input, textarea, select { font-family: inherit; font-size: inherit; color: inherit; }
a { color: inherit; text-decoration: none; }

.mono { font-family: var(--mono); }
.tnum { font-variant-numeric: tabular-nums; }

/* utility scrollbars */
.scroll::-webkit-scrollbar { width: 10px; height: 10px; }
.scroll::-webkit-scrollbar-thumb { background: var(--line-2); border-radius: 99px; border: 2px solid transparent; background-clip: padding-box; }
.scroll::-webkit-scrollbar-track { background: transparent; }

/* focus ring for a11y */
:focus-visible { outline: 2px solid var(--amber); outline-offset: 2px; border-radius: 4px; }

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* shared keyframes */
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes pulse-soft { 0%,100% { opacity: 1; } 50% { opacity: .45; } }
@keyframes slide-up { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } }
@keyframes flow-dash { to { stroke-dashoffset: -16; } }
@keyframes glow { 0%,100% { box-shadow: 0 0 0 0 rgba(226,145,63,.0); } 50% { box-shadow: 0 0 0 4px rgba(226,145,63,.18); } }
@keyframes slide-left { from { opacity: 0; transform: translateX(28px); } to { opacity: 1; transform: none; } }
.spin-soft { animation: spin 1.1s linear infinite; }
