/* Dal — the Assay brand layer (docs/design/dal-assay.md §12, ✅ APPROVED 2026-07-04).

   Loaded by Kennel.Assay.App's App.razor OVER the shared Kennel.Ui chassis sheet
   (_content/Kennel.Ui/app.css) — an ADDITIVE OVERRIDE, not a fork. app.css keeps playing the
   Fjeld base layer (neutrals + steel accent + structural + `--band-*` scale); this sheet, loaded
   second, replaces ONLY the brand tokens (warm-paper neutrals, copper accent, serif type voice,
   squarer radii, warm shadows) and adds the Assay-only decision-verdict tokens. Watchdog never
   links this file, so its rendered appearance is untouched.

   The CAI band scale (`--band-*`) and the CAI-ladder marker (`--mk`/`--mk-on`) are DELIBERATELY
   NOT restated here — a score must render identically in both products (README shared-skeleton
   rule 2, §3.4). Light ("paper") is canonical; the dark block is app-only and never the report.

   Cascade note: app.css defines its dark palette on bare `:root` (0,1,0) and its light palette on
   `:root[data-theme="light"]` (0,2,0). This sheet mirrors those selectors and, being later in
   source order, wins every specificity tie — so Dal paper is active under data-theme="light"
   (the Assay default set by brand/assay-theme.js) and Dal slate under data-theme="dark". */

:root, :root[data-theme="light"] {
  /* neutrals — warm paper (canonical Assay face) */
  --bg:#FBFAF7; --surface:#F5F2EC; --surface-2:#ECE7DE;
  --border:#E4DED2; --border-strong:#CFC6B6;
  --ink:#22201C; --ink-soft:#46423A; --muted:#6B6459; --heading:#1A1813;
  /* copper accent — the metallurgical anchor #9A6A3C */
  --accent:#9A6A3C; --accent-ink:#6F4A26; --accent-wash:#F3EADF; --accent-strong:#5A3A1E;
  --on-accent:#FBFAF7;
  /* decision verdicts (Assay-only — proceed / conditions / pause / reject) */
  --verdict-proceed:#2F6B4A; --verdict-proceed-wash:#E4EFE7; --verdict-proceed-ink:#16351F;
  --verdict-conditions:#9A6A3C; --verdict-conditions-wash:#F3EADF; --verdict-conditions-ink:#4A2F16;
  --verdict-pause:#B58A1F; --verdict-pause-wash:#F6ECD4; --verdict-pause-ink:#3D2E08;
  --verdict-reject:#7A2E39; --verdict-reject-wash:#F1E1E2; --verdict-reject-ink:#3A141A;
  /* shape & depth — squarer than Fjeld (the ledger/document feel) */
  --r-none:0; --r-sm:4px; --r-md:8px; --r-lg:12px; --r-full:999px;
  --shadow-overlay:0 4px 16px rgb(34 32 28 / .10);
  --shadow-modal:0 16px 48px rgb(34 32 28 / .16);
  /* type — serif document voice; --font-report resolves to Georgia until the Spectral WOFF2
     lands (Phase 2, §13). --font-ui / --font-mono stay the shared faces. */
  --font-report:"Spectral",Georgia,serif;
  --font-ui:"Schibsted Grotesk",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,monospace;
  --fs-2xs:11px; --fs-xs:12px; --fs-sm:13px; --fs-md:14px; --fs-lg:16px;
  --fs-xl:20px; --fs-2xl:25px; --fs-3xl:31px; --fs-4xl:39px;
  --fs-num:31px;      /* CAI integer — evidence, not hero (demoted from Fjeld's 56) */
  --fs-verdict:34px;  /* the verdict word — the hero */
  color-scheme: light;
}
:root[data-theme="dark"] {   /* app-only night theme; never the report / PDF */
  --bg:#1B1A17; --surface:#232120; --surface-2:#2C2A27;
  --border:#38352F; --border-strong:#4A463E;
  --ink:#ECE7DD; --ink-soft:#C6BFB2; --muted:#9A9284; --heading:#F5F1E8;
  --accent:#C99A6A; --accent-ink:#D9B48C; --accent-wash:#2E2115; --accent-strong:#E4C9A8;
  --on-accent:#1B1A17;
  --shadow-overlay:0 4px 16px rgb(0 0 0 / .40);
  --shadow-modal:0 16px 48px rgb(0 0 0 / .55);
  color-scheme: dark;
}

/* Type voice — the single strongest "not Watchdog" signal (§2.1, §4.1): the `assay` wordmark and
   every heading speak in Spectral; app chrome, controls and dense tables stay grotesk (--font-ui).
   Assay-scoped only — these selectors live in this Assay-only sheet, so Watchdog headings are
   untouched. */
.brand .brand-text { font-family: var(--font-report); font-weight: 500; }
h1, h2,
.page-head h1, .page-head .ph-title h1,
.sec-head h2, .settings-section h2, .estate-synthesis .estate-head h2,
.crumbs .here,
.empty-state-title { font-family: var(--font-report); }

.num, td.num, .t-num { font-variant-numeric: tabular-nums lining-nums; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* Rendered decision/portfolio artifact (W1) — the read surface for the FROZEN markdown, produced by
   DecisionReports/Rendering/ArtifactHtmlRenderer (Markdig → HTML) on the detail pages. Presentation
   only: the frozen bytes are unchanged; this dresses the rendered HTML in the Assay copper/paper Dal
   palette (never the Watchdog steel report shell). Assay-scoped — this sheet is Assay-only, so
   Watchdog reports never inherit these rules. The serif document voice matches the report identity;
   dense tables drop to the grotesk face for legibility. */
.artifact-doc { font-family: var(--font-report); color: var(--ink); line-height: 1.65; }
.artifact-doc > :first-child { margin-top: 0; }
.artifact-doc > :last-child { margin-bottom: 0; }
.artifact-doc h1 { font-family: var(--font-report); font-size: var(--fs-2xl); color: var(--heading);
  margin: 0 0 .7rem; padding-bottom: .35rem; border-bottom: 2px solid var(--accent); }
.artifact-doc h2 { font-family: var(--font-report); font-size: var(--fs-xl); color: var(--heading);
  margin: 1.7rem 0 .6rem; padding-bottom: .25rem; border-bottom: 1px solid var(--border-strong); }
.artifact-doc h3 { font-family: var(--font-report); font-size: var(--fs-lg); color: var(--heading); margin: 1.3rem 0 .45rem; }
.artifact-doc h4, .artifact-doc h5, .artifact-doc h6 {
  font-family: var(--font-ui); font-size: var(--fs-md); font-weight: 600; color: var(--accent-ink); margin: 1.05rem 0 .35rem; }
.artifact-doc p { font-size: var(--fs-md); margin: .55rem 0; }
.artifact-doc ul, .artifact-doc ol { padding-left: 1.4rem; margin: .55rem 0; }
.artifact-doc li { font-size: var(--fs-md); margin: .2rem 0; }
.artifact-doc a { color: var(--accent-ink); text-decoration: underline; text-decoration-color: var(--border-strong); }
.artifact-doc a:hover { text-decoration-color: var(--accent); }
.artifact-doc strong { color: var(--heading); }
.artifact-doc code { font-family: var(--font-mono); font-size: .88em; background: var(--surface-2);
  color: var(--ink); padding: .08rem .32rem; border-radius: var(--r-sm); }
.artifact-doc pre { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md);
  padding: .8rem 1rem; overflow-x: auto; margin: .8rem 0; }
.artifact-doc pre code { background: none; padding: 0; }
.artifact-doc blockquote { margin: 1rem 0; padding: .5rem 1rem; border-left: 3px solid var(--accent);
  background: var(--accent-wash); color: var(--ink-soft); border-radius: 0 var(--r-sm) var(--r-sm) 0; }
.artifact-doc blockquote > :first-child { margin-top: 0; }
.artifact-doc blockquote > :last-child { margin-bottom: 0; }
.artifact-doc hr { border: none; border-top: 1px solid var(--border); margin: 1.6rem 0; }
/* Real tables for the exec-card / portfolio pipe tables — the GitHub responsive-table idiom
   (block + max-content + overflow) so a wide table scrolls inside the card instead of forcing the
   page to scroll sideways. Grotesk + tabular numerals for dense legibility. */
.artifact-doc table { display: block; width: max-content; max-width: 100%; overflow-x: auto;
  border-collapse: collapse; margin: 1rem 0; font-family: var(--font-ui); font-size: var(--fs-sm);
  font-variant-numeric: tabular-nums lining-nums; }
.artifact-doc th, .artifact-doc td { border-bottom: 1px solid var(--border); padding: .45rem .65rem;
  text-align: left; vertical-align: top; }
.artifact-doc thead th { background: var(--surface-2); color: var(--heading); font-weight: 600;
  border-bottom: 2px solid var(--border-strong); }
.artifact-doc tbody tr:last-child td { border-bottom: none; }
