/* ==========================================================================
   dossier.css — house stylesheet, instrument reference library
   Extracted verbatim from federal-patent-dossier-REV-C.html, 2026-07-11.
   Single source of truth. Dossiers link to this; none carry an inline copy.
   Additions live at the bottom, dated and labelled.
   ========================================================================== */

  :root{
    --paper:#f7f5ef;
    --ink:#1d1f1e;
    --ink-soft:#4c4f4d;
    --rule:#b9b4a6;
    --needle:#a3251f;        /* indicator-needle red */
    --gauge:#20514a;         /* deep gauge green */
    --stamp:#6e6a5c;
    --card:#fefdf9;
    --mono:"Consolas","SF Mono","Menlo","Liberation Mono",monospace;
    --serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",Georgia,serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:var(--serif);
    font-size:16px;
    line-height:1.55;
    padding:32px 16px 64px;
  }
  .sheet{max-width:880px;margin:0 auto}

  /* ---- drawing-sheet title block ---- */
  .titleblock{
    border:2px solid var(--ink);
    display:grid;
    grid-template-columns:1fr auto;
    background:var(--card);
  }
  .titleblock .tb-main{padding:22px 26px;border-right:2px solid var(--ink)}
  .titleblock .eyebrow{
    font-family:var(--mono);font-size:11px;letter-spacing:.22em;
    text-transform:uppercase;color:var(--gauge);margin-bottom:10px;
  }
  .titleblock h1{
    font-size:30px;line-height:1.15;font-weight:600;letter-spacing:-.01em;
  }
  .titleblock h1 em{font-style:italic;color:var(--needle)}
  .titleblock .sub{margin-top:8px;color:var(--ink-soft);font-size:15px}
  .tb-meta{display:grid;grid-template-rows:repeat(4,1fr);min-width:190px}
  .tb-meta div{
    padding:8px 14px;border-bottom:1px solid var(--rule);
    font-family:var(--mono);font-size:12px;
    display:flex;flex-direction:column;justify-content:center;
  }
  .tb-meta div:last-child{border-bottom:none}
  .tb-meta span{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--stamp)}

  /* ---- dial-graduation divider (signature element) ---- */
  .grad{
    display:flex;align-items:flex-end;gap:0;height:22px;margin:40px 0 10px;
    border-bottom:2px solid var(--ink);overflow:hidden;
  }
  .grad i{flex:1;border-left:1px solid var(--rule);height:8px}
  .grad i:nth-child(5n+1){height:16px;border-left:1.5px solid var(--ink)}
  .grad b{
    font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:.2em;
    text-transform:uppercase;color:var(--gauge);
    padding:0 14px 2px 0;white-space:nowrap;
  }
  h2{font-size:21px;font-weight:600;margin:6px 0 14px}
  p{margin:0 0 14px;max-width:72ch}
  .lede{font-size:17px;color:var(--ink-soft)}
  a{color:var(--gauge)}
  a:hover{color:var(--needle)}

  /* ---- timeline ---- */
  .timeline{border-left:2px solid var(--ink);margin:18px 0 8px;padding-left:0}
  .t-row{display:grid;grid-template-columns:96px 1fr;gap:14px;padding:9px 0 9px 16px;position:relative}
  .t-row::before{
    content:"";position:absolute;left:-6px;top:17px;width:10px;height:2px;background:var(--needle);
  }
  .t-row .yr{font-family:var(--mono);font-size:13px;color:var(--needle);padding-top:2px;white-space:nowrap}
  .t-row .tx{font-size:15px}
  .t-row .tx strong{font-weight:600}

  /* ---- patent dossier cards ---- */
  .patent{
    background:var(--card);border:1.5px solid var(--ink);
    margin:22px 0;
  }
  .patent header{
    display:flex;justify-content:space-between;align-items:baseline;gap:12px;
    padding:12px 18px;border-bottom:1.5px solid var(--ink);
    background:linear-gradient(0deg, rgba(32,81,74,.06), rgba(32,81,74,.06));
    flex-wrap:wrap;
  }
  .patent header .num{font-family:var(--mono);font-size:19px;font-weight:700;letter-spacing:.02em}
  .patent header .num small{color:var(--stamp);font-weight:400;font-size:12px;letter-spacing:.12em}
  .patent header .ttl{font-style:italic;color:var(--ink-soft);font-size:15px}
  .p-body{padding:16px 18px 18px}
  .facts{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
    gap:1px;background:var(--rule);border:1px solid var(--rule);margin-bottom:14px;
  }
  .facts div{background:var(--card);padding:7px 10px;font-family:var(--mono);font-size:12.5px}
  .facts span{display:block;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--stamp);margin-bottom:2px}
  .p-body h3{
    font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
    color:var(--gauge);margin:16px 0 6px;font-weight:600;
  }
  .p-body ul{margin:0 0 12px 20px}
  .p-body li{margin-bottom:6px;font-size:15px}
  .collector{
    border-left:3px solid var(--needle);padding:8px 14px;background:rgba(163,37,31,.05);
    font-size:15px;margin:12px 0;
  }
  .collector strong{color:var(--needle)}
  .links{font-family:var(--mono);font-size:12.5px;line-height:2}
  .links a{margin-right:18px;white-space:nowrap}
  figure{margin:14px 0 4px;border:1px solid var(--rule);background:#fff;padding:10px;text-align:center}
  figure img{max-width:100%;height:auto}
  figcaption{font-family:var(--mono);font-size:11px;color:var(--stamp);margin-top:8px;letter-spacing:.06em}

  /* ---- marking table ---- */
  table{width:100%;border-collapse:collapse;background:var(--card);border:1.5px solid var(--ink);font-size:14.5px}
  th{
    font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
    text-align:left;padding:9px 12px;border-bottom:1.5px solid var(--ink);color:var(--gauge);
  }
  td{padding:9px 12px;border-bottom:1px solid var(--rule);vertical-align:top}
  tr:last-child td{border-bottom:none}
  td.mk{font-family:var(--mono);font-size:12.5px;white-space:nowrap}
  td.win{font-family:var(--mono);font-size:12.5px;color:var(--needle);white-space:nowrap}

  .note{
    font-size:13.5px;color:var(--ink-soft);border-top:1px dashed var(--rule);
    padding-top:10px;margin-top:14px;
  }
  .src{font-size:13.5px;color:var(--ink-soft)}
  .src li{margin-bottom:5px}
  footer{
    margin-top:44px;padding-top:12px;border-top:2px solid var(--ink);
    font-family:var(--mono);font-size:11px;color:var(--stamp);letter-spacing:.1em;
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;
  }
  @media print{
    body{background:#fff;padding:0}
    .patent,.titleblock,table{break-inside:avoid}
  }
  @media (max-width:640px){
    .titleblock{grid-template-columns:1fr}
    .titleblock .tb-main{border-right:none;border-bottom:2px solid var(--ink)}
    .tb-meta{grid-template-rows:none;grid-template-columns:1fr 1fr}
    .t-row{grid-template-columns:72px 1fr}
  }


/* ---- 2026-07-11 · anatomy figures (REF-ANA drawings embedded in dossiers) ---- */
figure.anat{color:var(--ink);--acc-draw:var(--needle);border:1px solid var(--rule);background:#fff;padding:12px;text-align:center;margin:14px 0}
figure.anat svg{width:100%;max-width:560px;height:auto;display:block;margin:0 auto}
figure.anat figcaption{font-family:var(--mono);font-size:11px;color:var(--stamp);margin-top:8px;letter-spacing:.06em}

/* ---- 2026-07-11 · decision tree (maker attribution) ---- */
.tree{border-left:2px solid var(--ink);margin:18px 0;padding:0}
.tree .step{display:grid;grid-template-columns:34px 1fr;gap:14px;padding:11px 0 11px 16px;position:relative;border-bottom:1px dashed var(--rule)}
.tree .step:last-child{border-bottom:none}
.tree .step::before{content:"";position:absolute;left:-6px;top:20px;width:10px;height:2px;background:var(--needle)}
.tree .n{font-family:var(--mono);font-size:15px;color:var(--needle);font-weight:700}
.tree .q{font-size:15px}
.tree .q strong{font-weight:600}
.tree .q em{font-style:italic;color:var(--ink-soft)}

/* ---- 2026-07-12 · CASCADIA brand masthead (page header lockup) ---- */
.brandbar{display:flex;align-items:center;gap:16px;margin:0 0 18px}
.brandbar img{height:62px;width:auto;display:block}
.brandbar .bb-tag{
  font-family:var(--mono);font-size:10px;letter-spacing:.26em;text-transform:uppercase;
  color:var(--stamp);border-left:1px solid var(--rule);padding-left:16px;line-height:1.5;
}
@media (max-width:640px){
  .brandbar img{height:50px}
  .brandbar .bb-tag{font-size:9px;letter-spacing:.18em;padding-left:12px}
}

/* ---- 2026-07-11 · claim-status pills ---- */
.pill{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;border:1px solid currentColor;padding:1px 6px;white-space:nowrap}
.pill.ok{color:var(--gauge)}
.pill.open{color:var(--needle)}
.pill.hyp{color:var(--stamp)}

/* ---- 2026-07-11 · confidence chips (promoted from REF-PAT-IAP) ----
   A four-level epistemic status marker, richer than .pill: it adds a
   "Refuted" state for claims that are commonly repeated and wrong. Every
   claim in this library carries a status; these make it inline and visible.
   Built on house tokens only — no new colours, no web fonts. */
.cf{
  font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;padding:1px 6px;border:1px solid var(--rule);
  white-space:nowrap;background:var(--card);
}
.cf-est{color:var(--gauge);border-color:var(--gauge)}   /* Established */
.cf-lik{color:var(--stamp);border-color:var(--stamp)}   /* Likely */
.cf-unv{color:var(--ink-soft)}                          /* Unverified */
.cf-ref{color:var(--needle);border-color:var(--needle)} /* Refuted */
.cf-key{
  display:flex;flex-wrap:wrap;gap:8px 20px;padding:11px 14px;margin:0 0 22px;
  background:var(--card);border:1px solid var(--rule);
  font-family:var(--mono);font-size:11px;color:var(--ink-soft);
}
.cf-key span{display:flex;align-items:center;gap:7px}

/* ---- 2026-07-22 · interchange matrix (REF-PRT-IAP) ----
   Cell tints encode the sharing axis: gauge = .0005/.001 movement family,
   stamp = .0001 movement family, rule-tints = dial-size cosmetics,
   needle = model-unique trap cells (B-15), plain card = universal. */
.ix td{font-family:var(--mono);font-size:12px;text-align:center;white-space:nowrap}
.ix td:first-child,.ix td:nth-child(2){
  font-family:var(--serif);font-size:14.5px;text-align:left;white-space:normal}
.ix .ca{background:rgba(32,81,74,.09)}      /* .0005/.001 family — gauge   */
.ix .cb{background:rgba(110,106,92,.13)}    /* .0001 family — stamp        */
.ix .cs{background:rgba(185,180,166,.22)}   /* 1" dial cosmetic — rule     */
.ix .cl{background:rgba(185,180,166,.42)}   /* 1.5" dial cosmetic — rule   */
.ix .cu{background:var(--card)}             /* universal, all 312          */
.ix .cx{background:rgba(163,37,31,.09)}     /* B-15 unique — needle (trap) */
.ix .no{color:var(--stamp);text-align:center}
.ix-sw{width:13px;height:13px;border:1px solid var(--rule);display:inline-block}
.ix-sw.ca{background:rgba(32,81,74,.09)}
.ix-sw.cb{background:rgba(110,106,92,.13)}
.ix-sw.cs{background:rgba(185,180,166,.22)}
.ix-sw.cl{background:rgba(185,180,166,.42)}
.ix-sw.cu{background:var(--card)}
.ix-sw.cx{background:rgba(163,37,31,.09)}


/* ---- 2026-08-01 · collapsible maker sections (REF-STY) ----
   One <details class="mkr"> per builder keeps the cross-maker catalog
   scannable: the master roster stays one row per system, depth appears
   on expand. House tokens only — no new colours, no web fonts.
   (Pasted at REF-MKT-LRT landing, 2026-08-09 — was pending from the
   REF-STY landing package.) */
details.mkr{border:1px solid var(--rule);background:var(--card);margin:0 0 22px}
details.mkr>summary{
  font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-soft);padding:10px 14px;cursor:pointer;
  list-style:none;display:flex;align-items:center;gap:10px}
details.mkr>summary::-webkit-details-marker{display:none}
details.mkr>summary::before{content:"+";font-size:13px;color:var(--stamp);
  width:14px;text-align:center;flex:0 0 auto}
details.mkr[open]>summary::before{content:"–"}
details.mkr[open]>summary{border-bottom:1px solid var(--rule);color:var(--ink)}
details.mkr .mkr-body{padding:14px 14px 6px}
@media print{details.mkr{border:none}details.mkr>summary{display:none}
  details.mkr .mkr-body{padding:0}}


/* ---- 2026-08-10 - demoted/optional table rows (REF-MKT-LRT part-number
   schedule). Build-to-order SKUs stay legible but visibly de-emphasised so the
   promoted catalog reads first. House tokens only. */
td.dim{color:var(--ink-soft);opacity:.72;font-style:italic}
td.dim code{font-style:normal}
@media print{td.dim{opacity:1;color:var(--ink-soft)}}

/* ---- 2026-08-14 · single-column titleblock variant (REF-THY-HYS-VIZ) ----
   Patent dossiers use the two-column .tb-main/.tb-meta grid above. Module/
   interactive docs need a simpler stacked block instead: a small doc-id
   label, the h1 with inline status chips, a revision line, and a caveat
   line (legendline, sized like .lede). Selected via :has() so the base
   .titleblock rule (border/grid/background) still serves both variants
   without a modifier class. House tokens only. */
.titleblock:has(> .docid){display:block;padding:22px 26px}
.titleblock .docid{
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gauge);margin-bottom:10px;
}
.titleblock .revline{margin-top:8px;color:var(--ink-soft);font-size:14px}
.titleblock .legendline{margin-top:10px;color:var(--ink-soft);font-size:15px;max-width:72ch}
.chip{
  display:inline-block;font-family:var(--mono);font-size:10px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;padding:2px 8px;margin-left:8px;
  border:1px solid var(--rule);color:var(--ink-soft);vertical-align:middle;
}
.chip.draft{color:var(--needle);border-color:var(--needle)}
