/* ============================================================================
 * Codecove Design System — Colors & Type
 * Direction: serious/enterprise, off-white surfaces, charcoal ink,
 * electric lime as the single brand accent. Built on ADS component anatomy.
 * ========================================================================= */

@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600;700&display=swap");

:root {
  /* ─── Paper & Ink (surface neutrals) ─── */
  --cc-paper:    #FAFAF7;   /* primary surface — warm off-white */
  --cc-paper-2:  #F4F3ED;   /* sunken */
  --cc-paper-3:  #EDEBE2;   /* subtle divider bg */
  --cc-card:     #FFFFFF;   /* raised surface */
  --cc-line:     #E5E3D8;   /* border on paper */
  --cc-line-2:   #D9D6C7;   /* stronger border */

  --cc-ink-50:   #F5F5F4;
  --cc-ink-100:  #E7E7E4;
  --cc-ink-200:  #C9C8C2;
  --cc-ink-300:  #9A9893;
  --cc-ink-400:  #6B6A66;
  --cc-ink-500:  #4A4946;
  --cc-ink-600:  #33322F;
  --cc-ink-700:  #252422;
  --cc-ink-800:  #1B1A18;
  --cc-ink-900:  #121210;   /* deepest ink */

  /* ─── Brand accent: mossy lime (muted, not highlighter) ─── */
  --cc-lime-50:   #F3F5E8;
  --cc-lime-100:  #E6EBCF;
  --cc-lime-200:  #D2DAA6;
  --cc-lime-300:  #B8C47A;   /* ★ primary accent — on ink bg */
  --cc-lime-400:  #9DAB58;
  --cc-lime-500:  #7F8D3E;
  --cc-lime-600:  #65722E;   /* accent on paper — passes WCAG AA on white */
  --cc-lime-700:  #4E5924;
  --cc-lime-800:  #3B441C;
  --cc-lime-900:  #222710;

  /* ─── Semantic ─── */
  --cc-blue-50:   #E8F0FF;
  --cc-blue-500:  #3366FF;
  --cc-blue-700:  #1D3FB8;

  --cc-green-50:  #E8F7E4;
  --cc-green-500: #3D9A2B;
  --cc-green-700: #246318;

  --cc-yellow-50:  #FFF4D1;
  --cc-yellow-500: #C98F00;
  --cc-yellow-700: #7A5600;

  --cc-red-50:    #FCE8E6;
  --cc-red-500:   #C03028;
  --cc-red-700:   #8B1E18;

  /* ─── Semantic aliases ─── */
  --cc-bg:            var(--cc-paper);
  --cc-bg-sunken:     var(--cc-paper-2);
  --cc-bg-raised:     var(--cc-card);
  --cc-bg-overlay:    var(--cc-card);
  --cc-bg-subtle:     var(--cc-paper-3);
  --cc-bg-inverse:    var(--cc-ink-900);

  --cc-fg:            var(--cc-ink-900);
  --cc-fg-strong:     var(--cc-ink-900);
  --cc-fg-subtle:     var(--cc-ink-500);
  --cc-fg-muted:      var(--cc-ink-400);
  --cc-fg-disabled:   var(--cc-ink-200);
  --cc-fg-inverse:    var(--cc-paper);
  --cc-fg-brand:      var(--cc-lime-700);
  --cc-fg-link:       var(--cc-blue-700);

  --cc-border:         var(--cc-line);
  --cc-border-strong:  var(--cc-line-2);
  --cc-border-subtle:  var(--cc-paper-3);
  --cc-border-focus:   var(--cc-lime-400);

  /* primary CTA is INK on paper (quiet, enterprise). Lime is reserved
     for data highlights, active states, and inverted-surface CTAs. */
  --cc-accent-bg:       var(--cc-ink-900);
  --cc-accent-bg-hover: var(--cc-ink-700);
  --cc-accent-bg-press: var(--cc-ink-600);
  --cc-accent-fg:       var(--cc-paper);

  --cc-highlight-bg:    var(--cc-lime-300);
  --cc-highlight-fg:    var(--cc-ink-900);

  --cc-danger:   var(--cc-red-500);
  --cc-warning:  var(--cc-yellow-700);
  --cc-success:  var(--cc-green-500);
  --cc-info:     var(--cc-blue-700);

  /* Coverage domain */
  --cc-cov-high:   var(--cc-lime-500);
  --cc-cov-mid:    var(--cc-yellow-500);
  --cc-cov-low:    var(--cc-red-500);
  --cc-cov-none:   var(--cc-ink-200);
  --cc-diff-add:   var(--cc-green-50);
  --cc-diff-del:   var(--cc-red-50);
  --cc-diff-add-fg: var(--cc-green-700);
  --cc-diff-del-fg: var(--cc-red-700);

  /* ─── Type ─── */
  --cc-font-sans:    "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --cc-font-mono:    "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --cc-font-display: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;

  --cc-fs-xs:  11px; --cc-fs-sm:  12px; --cc-fs-md:  14px;
  --cc-fs-lg:  16px; --cc-fs-xl:  20px; --cc-fs-2xl: 24px;
  --cc-fs-3xl: 29px; --cc-fs-4xl: 35px; --cc-fs-5xl: 56px;

  --cc-lh-tight:1.12; --cc-lh-snug:1.3; --cc-lh-body:1.55;
  --cc-fw-regular:400; --cc-fw-medium:500; --cc-fw-semibold:600; --cc-fw-bold:700;

  /* ─── Spacing (ADS 4px base) ─── */
  --cc-sp-050:4px; --cc-sp-075:6px; --cc-sp-100:8px;
  --cc-sp-150:12px; --cc-sp-200:16px; --cc-sp-300:24px;
  --cc-sp-400:32px; --cc-sp-500:40px; --cc-sp-600:48px; --cc-sp-800:64px;

  /* ─── Radius (enterprise = small radii) ─── */
  --cc-r-xs:2px; --cc-r-sm:3px; --cc-r-md:4px; --cc-r-lg:6px;
  --cc-r-xl:8px; --cc-r-2xl:10px; --cc-r-full:9999px;

  /* ─── Shadow ─── */
  --cc-shadow-raised:  0 1px 2px rgba(27,26,24,0.08), 0 0 0 1px rgba(27,26,24,0.04);
  --cc-shadow-overlay: 0 8px 24px rgba(27,26,24,0.12), 0 0 0 1px rgba(27,26,24,0.06);
  --cc-shadow-focus:   0 0 0 2px var(--cc-lime-400);

  --cc-motion-fast:120ms; --cc-motion-medium:200ms; --cc-motion-slow:400ms;
  --cc-ease-out:cubic-bezier(0.2,0,0,1);
}

[data-theme="dark"] {
  --cc-bg:          var(--cc-ink-900);
  --cc-bg-sunken:   #0A0A09;
  --cc-bg-raised:   var(--cc-ink-800);
  --cc-bg-subtle:   var(--cc-ink-700);

  --cc-fg:          #F5F4EF;
  --cc-fg-subtle:   var(--cc-ink-300);
  --cc-fg-muted:    var(--cc-ink-400);

  --cc-border:      #2A2926;
  --cc-border-strong:#3B3A36;

  --cc-accent-bg:   var(--cc-lime-300);
  --cc-accent-fg:   var(--cc-ink-900);
}

html, body {
  font-family: var(--cc-font-sans);
  font-size: var(--cc-fs-md);
  line-height: var(--cc-lh-body);
  color: var(--cc-fg);
  background: var(--cc-bg);
  -webkit-font-smoothing: antialiased;
}

h1,.cc-h1{font-size:var(--cc-fs-5xl);line-height:var(--cc-lh-tight);letter-spacing:-0.03em;font-weight:700;color:var(--cc-fg)}
h2,.cc-h2{font-size:var(--cc-fs-4xl);line-height:var(--cc-lh-tight);letter-spacing:-0.025em;font-weight:700}
h3,.cc-h3{font-size:var(--cc-fs-3xl);line-height:var(--cc-lh-snug);letter-spacing:-0.02em;font-weight:600}
h4,.cc-h4{font-size:var(--cc-fs-2xl);line-height:var(--cc-lh-snug);letter-spacing:-0.015em;font-weight:600}
h5,.cc-h5{font-size:var(--cc-fs-xl);line-height:var(--cc-lh-snug);font-weight:600}
h6,.cc-h6{font-size:var(--cc-fs-lg);line-height:var(--cc-lh-snug);font-weight:600}

p,.cc-body{font-size:var(--cc-fs-md);line-height:var(--cc-lh-body)}
.cc-body-lg{font-size:var(--cc-fs-lg);line-height:1.55}
.cc-body-sm{font-size:var(--cc-fs-sm);color:var(--cc-fg-subtle)}
.cc-caption{font-size:var(--cc-fs-xs);color:var(--cc-fg-muted);letter-spacing:0.02em}
.cc-eyebrow{font-family:var(--cc-font-mono);font-size:var(--cc-fs-sm);font-weight:500;letter-spacing:0.12em;text-transform:uppercase;color:var(--cc-fg-brand)}

code,kbd,.cc-mono{font-family:var(--cc-font-mono);font-size:0.92em;font-feature-settings:"liga" 0,"calt" 0}
code:not(pre code){background:var(--cc-bg-subtle);border:1px solid var(--cc-border);border-radius:var(--cc-r-sm);padding:1px 5px;font-size:0.88em;color:var(--cc-fg-strong)}
pre{background:var(--cc-ink-900);color:#F5F4EF;font-family:var(--cc-font-mono);font-size:var(--cc-fs-sm);line-height:1.6;padding:var(--cc-sp-200) var(--cc-sp-300);border-radius:var(--cc-r-lg);overflow:auto}
a{color:var(--cc-fg-link);text-decoration:none}a:hover{text-decoration:underline}
hr{border:0;border-top:1px solid var(--cc-border)}
::selection{background:var(--cc-lime-200);color:var(--cc-ink-900)}
