/* Portal skin — EverDriven (client skin, reference instance).
   Values extracted 1:1 from Corey's sp-program-portal v3.0 (2026-07-15).
   Per TOUCHPOINTS.md §1 this swaps tokens only — the structural component
   contract in portal.css is identical under both skins. */

@import url('https://fonts.googleapis.com/css2?family=Schibsted+Grotesk:wght@500;600;700;800&family=Hanken+Grotesk:wght@400;500;600;700&family=Azeret+Mono:wght@400;500;600&display=swap');

:root{

  /* type — craft pass 2026-07-16 (Stedmon): a real typographic voice.
     Schibsted Grotesk carries display (confident, operational, news-desk
     register that sits well next to EverDriven's blue); Hanken Grotesk
     carries body; Azeret Mono is the system-wide metadata grammar shared
     with the ORS skin so the identity rail reads as 14th & Co in both. */
  --font-body:'Hanken Grotesk',system-ui,sans-serif;
  --font-display:'Schibsted Grotesk','Hanken Grotesk',system-ui,sans-serif;
  --font-mono:'Azeret Mono',ui-monospace,monospace;

  /* neutrals */
  --field:#f7f8fa;        /* g50  — page background */
  --surface:#fdfdfe;      /* w, tinted toward the brand hue — never pure white */
  --fill:#eef0f4;         /* g100 — subtle fill */
  --line:#dde1e8;         /* bdr / g200 — borders */
  --line-soft:#dde1e8;    /* g200 */
  --meta:#68738a;         /* g400 darkened for AA at label size (was #8b95a5, 3.0:1) */
  --text-soft:#566276;    /* g600 */
  --text:#2d3645;         /* g800 — body copy */
  --ink:#1a1f2b;          /* g900 — headings */

  /* accent — EverDriven blue */
  --accent:#1B6EC8;       /* b  */
  --accent-deep:#00327c;  /* n  */
  --accent-deepest:#001f4d; /* dp */
  --accent-tint:#e8f2fb;  /* lt */
  --accent-wash:#f0f4ff;
  --on-accent:#f8fafd;

  /* status */
  --ok:#0d8c4c;           /* gn */
  --warn:#96500a;         /* am darkened for AA on warn-tint (was #c7670a, 3.6:1) */
  --risk:#c42e2e;         /* rd */
  --info:#0d708f;         /* te */
  --ok-tint:#e6f4ec;
  --ok-wash:#f6faf7;
  --warn-tint:#fef3e6;
  --warn-wash:#fef8f4;
  --risk-tint:#fde8e8;
  --info-tint:#e8f0f4;

  /* geometry — register, not app chrome: near-square, no shadows */
  --radius:2px;
  --radius-pill:2px;
  --shadow:none;
  --shadow-lift:none;
}
/* 14th & Co. — Document component library
   (canonical for issued Record-type document renders, per TOUCHPOINTS.md)

   Source of truth for single-page issued documents: brand bar (mark +
   series) -> RS-101 identity rail -> title/subtitle -> numbered sections
   (thesis callout, tables, register-rule lists, numbered checklist) ->
   mono footer strip. First instance: deploy/handoff-standard (OS-001).

   STRUCTURE ONLY — every color/radius/shadow/font reads var(--*).
   Skins live in ../skins/ (ors.css default, client skins alongside).
   Edit this file or a skin, then run ./sync.sh — never a target's copy. */

*{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--font-body);background:var(--field);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}
.wrap{max-width:880px;margin:0 auto;padding:48px 32px 80px}
.brand-bar{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid var(--ink);padding-bottom:10px;margin-bottom:22px}
.brand-bar .mark{font-family:var(--font-display);font-size:1.05rem;color:var(--ink);letter-spacing:0.2px}
.brand-bar .series{font-family:var(--font-mono);font-size:0.72rem;color:var(--accent);font-weight:600;letter-spacing:1px}
.id-rail{background:var(--surface);border:1px solid var(--line);padding:16px 20px;margin-bottom:30px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px 20px;font-family:var(--font-mono)}
.id-field .id-k{display:block;font-size:0.56rem;text-transform:uppercase;letter-spacing:0.9px;color:var(--meta);margin-bottom:3px;font-weight:700}
.id-field .id-v{font-size:0.74rem;color:var(--ink);font-weight:500}
.id-field .id-v.status{color:var(--accent)}
h1{font-family:var(--font-display);font-size:1.9rem;line-height:1.15;color:var(--ink);margin:0 0 8px;letter-spacing:-0.3px}
.subtitle{color:var(--text-soft);font-size:0.92rem;margin-bottom:34px;max-width:640px}
h2{font-family:var(--font-display);font-size:0.95rem;color:var(--ink);margin:38px 0 12px;text-transform:uppercase;letter-spacing:0.6px;display:flex;align-items:baseline;gap:10px}
h2 .idx{font-family:var(--font-mono);color:var(--accent);font-size:0.8rem}
p{font-size:0.88rem;margin-bottom:12px}
.thesis{background:var(--accent-wash);border:1px solid var(--line);padding:16px 20px;font-size:0.95rem;margin:14px 0;line-height:1.6}
table{width:100%;border-collapse:collapse;font-size:0.8rem;margin:12px 0;background:var(--surface)}
th{text-align:left;padding:9px 12px;border-bottom:2px solid var(--ink);font-family:var(--font-mono);font-size:0.62rem;text-transform:uppercase;letter-spacing:0.7px;color:var(--meta);font-weight:600}
td{padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}
td:has(.badge){white-space:nowrap}
td:first-child{font-weight:600;color:var(--ink);min-width:180px}
.note{font-size:0.8rem;color:var(--text-soft);background:var(--warn-wash);border:1px solid color-mix(in oklab,var(--warn) 30%,transparent);padding:12px 16px;margin:12px 0}
ul.rules{list-style:none;margin:10px 0}
ul.rules li{padding:9px 0 9px 22px;border-bottom:1px solid var(--line);font-size:0.86rem;position:relative}
ul.rules li::before{content:'■';position:absolute;left:0;color:var(--accent);font-size:0.6rem;top:13px}
ul.rules li strong{color:var(--ink)}
ol.check{list-style:none;margin:10px 0;counter-reset:c}
ol.check li{counter-increment:c;padding:8px 0 8px 40px;border-bottom:1px solid var(--line);font-size:0.85rem;position:relative}
ol.check li::before{content:counter(c,decimal-leading-zero);position:absolute;left:0;font-family:var(--font-mono);color:var(--accent);font-weight:600;font-size:0.74rem;top:10px}
ol.check li::after{content:'';position:absolute;left:26px;top:11px;width:9px;height:9px;border:1.5px solid var(--meta)}
.footer{margin-top:48px;border-top:2px solid var(--ink);padding-top:12px;display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:0.62rem;color:var(--meta);letter-spacing:0.5px}
.badge{display:inline-block;padding:2px 8px;font-family:var(--font-mono);font-size:0.6rem;font-weight:600;letter-spacing:0.4px}
.badge.gate{background:var(--risk-tint);color:var(--risk)}

/* ── Status badges + stat rows (added for Closeout type, 2026-07-17) ── */
.badge{display:inline-block;padding:2px 9px;font-family:var(--font-mono);font-size:0.62rem;font-weight:700;letter-spacing:0.4px;white-space:nowrap}
.badge.done{background:var(--ok-tint);color:var(--ok)}
.badge.partial{background:var(--warn-tint);color:var(--warn)}
.badge.blocked{background:var(--risk-tint);color:var(--risk)}
.badge.pending{background:var(--fill);color:var(--text-soft)}
.stat-row{display:flex;gap:34px;flex-wrap:wrap;margin:14px 0 4px}
.stat-row .stat .num{font-family:var(--font-mono);font-size:1.3rem;font-weight:700;color:var(--ink)}
.stat-row .stat .lbl{font-family:var(--font-mono);font-size:0.58rem;text-transform:uppercase;letter-spacing:0.7px;color:var(--meta);margin-top:2px}
.owner-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:12px 0}
.owner-cell{background:var(--surface);border:1px solid var(--line);padding:13px 15px}
.owner-cell .role{font-family:var(--font-mono);font-size:0.58rem;color:var(--accent);text-transform:uppercase;letter-spacing:0.6px;margin-bottom:5px;font-weight:700}
.owner-cell .desc{font-size:0.8rem;color:var(--text-soft);line-height:1.5}
.linkout{display:flex;justify-content:space-between;align-items:center;background:var(--surface);border:1px solid var(--line);padding:14px 18px;margin-bottom:8px}
.linkout .lt{font-weight:650;font-size:0.86rem;color:var(--ink)}
.linkout .ld{font-size:0.74rem;color:var(--meta);margin-top:2px}
.linkout a{color:var(--accent);font-weight:700;font-size:0.8rem;text-decoration:none;white-space:nowrap;margin-left:16px}

.badge.paused{background:var(--warn-tint);color:var(--warn)}
