
  :root {
    --bg: #0d1117;
    --panel: #161b22;
    --panel-2: #1c2230;
    --line: #2a3240;
    --ink: #e6edf3;
    --ink-dim: #8b98a9;
    --ink-faint: #5c6776;
    --verified: #58e6a8;
    --flagged: #e8b341;
    --gmp: #6b7689;
    --regulation: #5aa9e6;
    --accent: #58e6a8;
    --iq: #5aa9e6;
    --oq: #c08bf0;
    --pq: #e0935a;
    --mono: ui-monospace, "SF Mono", "JetBrains Mono", "Roboto Mono", Menlo, monospace;
    --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  }
  * { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
  html, body { margin: 0; padding: 0; background: var(--bg); color: var(--ink); font-family: var(--sans); }
  body {
    padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
  }
  @media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }

  /* Header */
  header {
    position: sticky; top: 0; z-index: 20;
    background: rgba(13,17,23,0.92);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--line);
    padding: 14px 16px 12px;
  }
  .brand { display: flex; align-items: center; gap: 10px; }
  .brand .ver {
    margin-left: auto; font-family: var(--mono); font-size: 10px;
    letter-spacing: 0.04em; color: var(--ink-faint); opacity: 0.7;
    border: 1px solid var(--line); border-radius: 4px; padding: 1px 5px;
  }
  .brand h1 {
    font-size: 17px; font-weight: 650; letter-spacing: -0.01em; margin: 0;
  }
  .brand .tag {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--ink-faint);
    border: 1px solid var(--line); border-radius: 4px; padding: 2px 6px;
    white-space: nowrap;
  }
  .search-wrap { margin-top: 12px; position: relative; }
  .search-wrap input {
    width: 100%; background: var(--panel); border: 1px solid var(--line);
    border-radius: 10px; color: var(--ink); font-size: 16px;
    padding: 11px 12px 11px 38px; font-family: var(--sans);
  }
  .search-wrap input:focus { outline: none; border-color: var(--accent); }
  .search-wrap svg { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); opacity: 0.5; }

  /* Equipment list */
  main { padding: 12px 16px 80px; max-width: 720px; margin: 0 auto; }
  .domain-filter { display: flex; gap: 8px; margin-bottom: 14px; }
  .domain-filter button {
    flex: 1; background: var(--panel); border: 1px solid var(--line);
    color: var(--ink-dim); font-family: var(--mono); font-size: 11px;
    letter-spacing: 0.06em; text-transform: uppercase; padding: 7px;
    border-radius: 8px; cursor: pointer; transition: all 0.15s;
  }
  .domain-filter button[aria-pressed="true"] { background: var(--panel-2); color: var(--ink); border-color: var(--accent); }

  .eq-card {
    display: flex; align-items: center; gap: 13px;
    background: var(--panel); border: 1px solid var(--line);
    border-radius: 12px; padding: 14px 15px; margin-bottom: 9px;
    cursor: pointer; transition: border-color 0.15s, transform 0.1s;
    text-align: left; width: 100%; font-family: inherit; color: inherit;
  }
  .eq-card:active { transform: scale(0.99); }
  .eq-card:hover { border-color: var(--ink-faint); }
  .eq-icon {
    flex-shrink: 0; width: 40px; height: 40px; border-radius: 9px;
    background: var(--panel-2); display: grid; place-items: center;
    border: 1px solid var(--line);
  }
  .eq-meta { flex: 1; min-width: 0; }
  .eq-name { font-size: 15px; font-weight: 600; margin: 0 0 3px; }
  .eq-sub { font-family: var(--mono); font-size: 11px; color: var(--ink-dim); letter-spacing: 0.02em; }
  .eq-chev { color: var(--ink-faint); flex-shrink: 0; }
  .domain-pill {
    font-family: var(--mono); font-size: 9px; letter-spacing: 0.08em;
    padding: 2px 5px; border-radius: 4px; text-transform: uppercase;
    border: 1px solid var(--line); color: var(--ink-dim); margin-left: 6px;
  }
  .stub-pill {
    font-family: var(--mono); font-size: 9px; letter-spacing: 0.08em;
    padding: 2px 5px; border-radius: 4px; text-transform: uppercase;
    border: 1px solid rgba(232,179,65,0.35); color: var(--flagged); margin-left: 6px;
  }
  .eq-card.is-stub { opacity: 0.72; }

  /* Collapsible categories */
  .cat { margin-bottom: 10px; }
  .cat-head {
    display: flex; align-items: center; gap: 10px; width: 100%;
    background: var(--panel-2); border: 1px solid var(--line);
    border-radius: 11px; padding: 13px 14px; cursor: pointer;
    font-family: inherit; color: var(--ink); text-align: left;
    transition: border-color 0.15s;
  }
  .cat-head:hover { border-color: var(--ink-faint); }
  .cat.open .cat-head { border-color: var(--accent); border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
  .cat-twist { display: grid; place-items: center; color: var(--ink-dim); transition: transform 0.18s; flex-shrink: 0; }
  .cat.open .cat-twist { transform: rotate(90deg); color: var(--accent); }
  .cat-label { flex: 1; font-size: 14.5px; font-weight: 620; letter-spacing: -0.01em; }
  .cat-count {
    font-family: var(--mono); font-size: 11px; color: var(--ink-dim);
    background: var(--bg); border: 1px solid var(--line); border-radius: 20px;
    min-width: 22px; text-align: center; padding: 1px 7px;
  }
  .cat-body { display: none; padding: 9px 0 4px; }
  .cat.open .cat-body { display: block; }
  .cat.open .cat-body .eq-card:last-child { margin-bottom: 2px; }
  .empty { text-align: center; color: var(--ink-faint); font-family: var(--mono); font-size: 13px; padding: 50px 20px; }

  /* Detail view */
  .detail { display: none; }
  .detail.active { display: block; }
  .list.hidden { display: none; }
  .back-btn {
    display: inline-flex; align-items: center; gap: 6px;
    background: none; border: none; color: var(--accent);
    font-family: var(--mono); font-size: 12px; letter-spacing: 0.04em;
    cursor: pointer; padding: 6px 0; margin-bottom: 8px;
  }
  .detail-head h2 { font-size: 22px; font-weight: 680; letter-spacing: -0.02em; margin: 2px 0 6px; }
  .detail-head .desc { color: var(--ink-dim); font-size: 13.5px; line-height: 1.5; margin: 0 0 18px; }

  .phase { margin-bottom: 22px; }
  .phase-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
  .phase-tag {
    font-family: var(--mono); font-weight: 700; font-size: 12px;
    letter-spacing: 0.08em; padding: 4px 9px; border-radius: 6px;
    border: 1px solid; 
  }
  .phase-tag.iq { color: var(--iq); border-color: var(--iq); }
  .phase-tag.oq { color: var(--oq); border-color: var(--oq); }
  .phase-tag.pq { color: var(--pq); border-color: var(--pq); }
  .phase-label { font-size: 12px; color: var(--ink-dim); font-family: var(--mono); letter-spacing: 0.03em; }

  .test-row {
    display: flex; flex-direction: column; gap: 8px;
    background: var(--panel); border: 1px solid var(--line);
    border-radius: 10px; padding: 12px 13px; margin-bottom: 7px;
    transition: border-color 0.15s;
  }
  .test-row.howto-open { border-color: rgba(88,230,168,0.35); }
  .test-main { display: flex; align-items: flex-start; gap: 10px; }
  .test-txt { flex: 1; font-size: 14px; line-height: 1.45; }

  /* BG5 legacy-test gold highlight + toggle (ISPE Baseline Guide 5 leverage teaching layer) */
  .bg5-btn {
    display: inline-flex; align-items: center; gap: 7px; margin: 2px 0 11px;
    padding: 8px 13px; border-radius: 10px; cursor: pointer;
    border: 1px solid rgba(212,175,55,0.5); background: rgba(212,175,55,0.08);
    color: #d9b441; font-size: 13px; font-weight: 600;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    -webkit-tap-highlight-color: transparent;
  }
  .bg5-btn:hover { background: rgba(212,175,55,0.14); }
  .bg5-btn:active { transform: scale(0.98); }
  .bg5-btn[aria-pressed="true"] { background: rgba(212,175,55,0.18); border-color: rgba(212,175,55,0.85); color: #f0c850; }
  .bg5-btn .bg5-ct { font-family: var(--mono); font-size: 11px; opacity: 0.85; }
  .bg5-explain {
    display: none; border: 1px solid rgba(212,175,55,0.35); background: rgba(212,175,55,0.06);
    border-radius: 10px; padding: 11px 13px; margin: 0 0 13px; font-size: 12.5px; line-height: 1.5; color: var(--ink-dim);
  }
  #detailView.bg5-on .bg5-explain { display: block; }
  .bg5-explain b { color: #d9b441; font-weight: 600; }
  #detailView.bg5-on .test-row.bg5-legacy {
    border-color: rgba(212,175,55,0.55);
    background: rgba(212,175,55,0.07);
    box-shadow: inset 0 0 0 1px rgba(212,175,55,0.22);
  }
  .bg5-tag {
    display: none; margin-left: 8px; padding: 1px 7px; border-radius: 6px;
    background: rgba(212,175,55,0.18); color: #e3bd4b; font-family: var(--mono);
    font-size: 10px; font-weight: 700; letter-spacing: 0.04em; white-space: nowrap; align-self: center;
  }
  #detailView.bg5-on .test-row.bg5-legacy .bg5-tag { display: inline-block; }
  .bg5-reason { display: none; }
  #detailView.bg5-on .test-row.bg5-legacy .bg5-reason {
    display: block; margin-top: 2px; padding: 8px 11px;
    border-left: 2px solid rgba(212,175,55,0.6); background: rgba(212,175,55,0.05);
    border-radius: 0 8px 8px 0; font-size: 11.5px; line-height: 1.5; color: var(--ink-dim);
  }
  .bg5-reason b { color: #d9b441; font-weight: 600; }
  /* COTS button (teal, mutually exclusive with gold BG5) */
  .cots-btn { display: inline-flex; align-items: center; gap: 7px; margin: 2px 0 11px; padding: 8px 13px; border-radius: 10px; cursor: pointer; border: 1px solid rgba(45,178,158,0.5); background: rgba(45,178,158,0.08); color: var(--text); font-family: inherit; font-size: 12.5px; font-weight: 600; }
  .cots-btn:hover { background: rgba(45,178,158,0.14); }
  .cots-btn:active { transform: scale(0.98); }
  .cots-explain { display: none; border: 1px solid rgba(45,178,158,0.35); background: rgba(45,178,158,0.06); border-radius: 10px; padding: 11px 13px; margin: 0 0 13px; font-size: 12.5px; line-height: 1.5; color: var(--muted); }
  .cots-on .cots-explain { display: block; }
  .cots-explain b { color: #4fd1c5; font-weight: 600; }
  /* Typical URS section */
  .urs-card { border: 1px solid rgba(123,134,196,0.32); background: rgba(123,134,196,0.05); border-radius: 12px; padding: 0; margin: 0 0 13px; overflow: hidden; }
  .urs-card > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px; padding: 12px 14px; font-weight: 600; font-size: 13.5px; color: var(--text); }
  .urs-card > summary::-webkit-details-marker { display: none; }
  .urs-card > summary .urs-chev { margin-left: auto; transition: transform .2s; opacity: .55; }
  .urs-card[open] > summary .urs-chev { transform: rotate(90deg); }
  .urs-body { padding: 0 14px 12px; }
  .urs-intro { font-size: 12.5px; line-height: 1.5; color: var(--muted); margin: 0 0 10px; }
  .urs-cat { margin: 0 0 9px; }
  .urs-cat-h { font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #5aa9e6; margin: 0 0 4px; }
  .urs-list { margin: 0; padding-left: 18px; }
  .urs-list li { font-size: 12.5px; line-height: 1.5; color: var(--text); margin: 2px 0; }
  #processList .proc-head, #eqList .proc-head { font-size: 16px; font-weight: 800; letter-spacing: .06em; color: var(--text); opacity: 1; text-transform: uppercase; }
  .proc-toolbar { margin-bottom: 13px; }
  /* Acceptance provenance highlighting (always on) */
  .acc-num { border-radius: 3px; padding: 0 1px; }
  #detailView .acc-mandated .acc-num { background: rgba(75,170,110,0.30); box-shadow: inset 0 0 0 1px rgba(75,170,110,0.6); }
  #detailView .acc-verify .acc-num { background: rgba(232,170,60,0.28); box-shadow: inset 0 0 0 1px rgba(232,170,60,0.55); }
  .acc-tag { display: none; font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: 1px 6px; border-radius: 999px; margin-left: 7px; vertical-align: middle; white-space: nowrap; }
  #detailView .acc-mandated .acc-tag-m { display: inline-block; color: #58e6a8; background: rgba(75,170,110,0.16); border: 1px solid rgba(75,170,110,0.5); }
  #detailView .acc-verify .acc-tag-v { display: inline-block; color: #e8aa3c; background: rgba(232,170,60,0.14); border: 1px solid rgba(232,170,60,0.5); }
  /* merged qualification control row */
  .qual-controls { margin: 2px 0 2px; }
  .qc-buttons { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 13px; }
  .qc-buttons .cots-btn, .qc-buttons .bg5-btn { margin: 0; font-size: 12.5px; padding: 8px 13px; border-radius: 9px; }


  .howto-chip {
    align-self: flex-start; font-family: var(--mono); font-size: 10px;
    letter-spacing: 0.05em; text-transform: uppercase;
    padding: 4px 8px 4px 7px; border-radius: 6px; cursor: pointer;
    border: 1px solid rgba(88,230,168,0.32); background: rgba(88,230,168,0.06);
    color: var(--accent); display: inline-flex; align-items: center; gap: 5px;
    transition: all 0.12s; -webkit-tap-highlight-color: transparent;
  }
  .howto-chip:active { transform: scale(0.96); }
  .howto-chip .howto-tw { display: inline-flex; transition: transform 0.18s; }
  .howto-chip[aria-expanded="true"] { background: rgba(88,230,168,0.12); }
  .howto-chip[aria-expanded="true"] .howto-tw { transform: rotate(90deg); }

  .test-chips { display: flex; gap: 7px; flex-wrap: wrap; align-self: flex-start; }
  .exv-chip {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.05em; text-transform: uppercase;
    padding: 4px 8px 4px 7px; border-radius: 6px; cursor: pointer;
    border: 1px solid rgba(111,182,216,0.34); background: rgba(111,182,216,0.07);
    color: #5aa9e6; display: inline-flex; align-items: center; gap: 5px;
    transition: all 0.12s; -webkit-tap-highlight-color: transparent;
  }
  .exv-chip:active { transform: scale(0.96); }
  .exv-chip .exv-tw { display: inline-flex; transition: transform 0.18s; }
  .exv-chip[aria-expanded="true"] { background: rgba(111,182,216,0.14); }
  .exv-chip[aria-expanded="true"] .exv-tw { transform: rotate(90deg); }
  .exv-panel { margin-top: 1px; }
  .exv { border: 1px solid rgba(111,182,216,0.3); border-radius: 9px; background: var(--bg); padding: 12px 13px; }
  .exv-row1 { display: flex; align-items: center; gap: 8px; margin-bottom: 11px; }
  .exv-tag { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.08em; text-transform: uppercase; color: #5aa9e6; font-weight: 700; }
  .exv-copyall, .exv-copy {
    font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.04em; text-transform: uppercase;
    border: 1px solid rgba(111,182,216,0.34); background: rgba(111,182,216,0.07); color: #5aa9e6;
    border-radius: 6px; padding: 3px 8px; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: all 0.12s;
  }
  .exv-copyall { margin-left: auto; }
  .exv-copy:active, .exv-copyall:active { transform: scale(0.96); }
  .exv-copied { background: rgba(88,230,168,0.16); color: var(--accent); border-color: rgba(88,230,168,0.4); }
  .exv-block { margin-bottom: 12px; }
  .exv-block:last-of-type { margin-bottom: 0; }
  .exv-bh, .exv-bh-row .exv-bh { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-faint); font-weight: 700; margin-bottom: 5px; }
  .exv-bh-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 5px; }
  .exv-bh-row .exv-bh { margin-bottom: 0; }
  .exv-text { font-size: 12.5px; line-height: 1.5; color: var(--ink); }
  .exv-hint { font-size: 11.5px; line-height: 1.45; color: var(--ink-dim); margin-bottom: 7px; font-style: italic; }
  .exv-list { margin: 0; padding-left: 16px; }
  .exv-list li { font-size: 12px; line-height: 1.5; color: var(--ink-dim); margin-bottom: 2px; }
  .exv-tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--line); border-radius: 7px; }
  .exv-table { border-collapse: collapse; width: 100%; font-size: 11px; }
  .exv-table th { text-align: left; font-family: var(--mono); font-size: 9px; letter-spacing: 0.03em; text-transform: uppercase; color: var(--ink-faint); padding: 6px 8px; border-bottom: 1px solid var(--line); white-space: nowrap; background: var(--panel); }
  .exv-table td { padding: 6px 8px; border-bottom: 1px solid color-mix(in srgb, var(--line) 50%, transparent); border-right: 1px solid color-mix(in srgb, var(--line) 50%, transparent); }
  .exv-table td:last-child { border-right: none; }
  .exv-table tr:last-child td { border-bottom: none; }
  .exv-blank { height: 22px; }
  .exv-rowlabel { padding: 6px 8px; font-size: 11px; color: var(--ink-dim); white-space: nowrap; border-bottom: 1px solid color-mix(in srgb, var(--line) 50%, transparent); border-right: 1px solid color-mix(in srgb, var(--line) 50%, transparent); background: color-mix(in srgb, var(--panel) 55%, transparent); }
  /* Prefilled data-table cells (v172+): fixed defaults in ink; URS/spec-dependent defaults flagged amber. */
  .exv-fill { font-size: 11px; color: var(--ink); white-space: nowrap; }
  .exv-fill-urs { color: var(--flagged); background: color-mix(in srgb, var(--flagged) 12%, transparent); font-weight: 600; }
  .exv-table td.exv-fill-urs { border-bottom-color: color-mix(in srgb, var(--flagged) 30%, var(--line)); }
  .exv-chart { margin-top: 8px; border: 1px solid var(--line); border-radius: 7px; padding: 8px 8px 4px; background: var(--panel); }
  .exv-chart svg { display: block; }
  .exv-chartcap { font-size: 11px; color: var(--ink-faint); line-height: 1.45; margin-top: 5px; padding: 0 2px; }
  .exv-refmap { border: 1px solid var(--line); border-radius: 7px; padding: 8px; background: var(--panel); }
  .rm-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
  .rm-tab { font-family: var(--mono); font-size: 10px; padding: 4px 9px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--ink-dim); cursor: pointer; }
  .rm-tab-on { border-color: rgba(88,230,168,0.5); background: rgba(88,230,168,0.10); color: var(--accent); }
  .rm-canvas svg { display: block; }
  .rm-note { font-size: 11px; color: var(--ink-faint); line-height: 1.5; margin-top: 7px; }
  .exv-accept { font-size: 12.5px; line-height: 1.5; color: var(--ink); background: var(--panel); border-left: 3px solid #5aa9e6; border-radius: 6px; padding: 8px 11px; }
  .exv-acclist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; counter-reset: acc; }
  .exv-acclist li { position: relative; font-size: 12px; line-height: 1.45; color: var(--ink); background: var(--panel); border-left: 3px solid #5aa9e6; border-radius: 6px; padding: 7px 10px 7px 31px; counter-increment: acc; }
  .exv-acclist li::before { content: counter(acc); position: absolute; left: 8px; top: 7px; width: 16px; height: 16px; border-radius: 50%; background: #5aa9e6; color: #0b0f14; font-family: var(--mono); font-size: 9px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
  .exv-authored .exv-acclist li { border-left-color: var(--accent); }
  .exv-authored .exv-acclist li::before { background: var(--accent); }
  .exv-caveat { margin-top: 11px; font-size: 10.5px; font-style: italic; color: var(--ink-faint); line-height: 1.45; }
  .exv-note { font-size: 12px; line-height: 1.5; color: var(--ink-dim); background: rgba(88,230,168,0.06); border-left: 3px solid var(--accent); border-radius: 6px; padding: 8px 11px; }
  .exv-steps { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 7px; }
  .exv-steps li { font-size: 12.5px; line-height: 1.5; color: var(--ink); padding-left: 3px; }
  .exv-steps li::marker { color: var(--accent); font-weight: 700; font-family: var(--mono); font-size: 11px; }
  .exv-attach { font-size: 12.5px; line-height: 1.5; color: var(--ink-dim); background: var(--panel); border-left: 3px solid #5aa9e6; border-radius: 6px; padding: 8px 11px; font-style: italic; }
  .exv-authored { border-color: rgba(88,230,168,0.34); }
  .exv-authored .exv-tag { color: var(--accent); }
  .exv-authored .exv-accept { border-left-color: var(--accent); }
  .exv-authored .exv-copyall, .exv-authored .exv-copy { border-color: rgba(88,230,168,0.36); background: rgba(88,230,168,0.07); color: var(--accent); }

  /* Safety system (red theme) */
  #safetyBanner:empty { display: none; }
  .sf-card {
    margin-bottom: 14px; border: 1px solid rgba(230,90,90,0.4); border-radius: 12px;
    background: color-mix(in srgb, #e0726a 7%, transparent); overflow: hidden;
  }
  .sf-card > summary {
    list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px;
    padding: 12px 14px; font-size: 13px; font-weight: 700; color: #f08a8a;
    -webkit-tap-highlight-color: transparent; flex-wrap: wrap;
  }
  .sf-card > summary::-webkit-details-marker { display: none; }
  .sf-ico { display: inline-flex; color: #e0726a; }
  .sf-sum-txt { letter-spacing: 0.01em; }
  .sf-tags { display: inline-flex; gap: 5px; flex-wrap: wrap; }
  .sf-tag {
    font-family: var(--mono); font-size: 9px; letter-spacing: 0.03em; text-transform: uppercase;
    color: #e88; background: rgba(230,90,90,0.12); border: 1px solid rgba(230,90,90,0.28);
    border-radius: 5px; padding: 2px 6px; font-weight: 600;
  }
  .sf-tw { margin-left: auto; color: #e0726a; display: inline-flex; transition: transform 0.18s; }
  .sf-card[open] .sf-tw { transform: rotate(90deg); }
  .sf-body { padding: 0 14px 13px; }
  .sf-item { padding: 11px 0; border-top: 1px solid rgba(230,90,90,0.18); }
  .sf-item:first-child { border-top: none; }
  .sf-it-h { font-size: 12.5px; font-weight: 700; color: #f0a0a0; margin-bottom: 4px; }
  .sf-it-haz { font-size: 12.5px; line-height: 1.5; color: var(--ink-dim); margin-bottom: 6px; }
  .sf-it-ctl { font-size: 12px; line-height: 1.5; color: var(--ink-dim); }
  .sf-ctl-k { font-family: var(--mono); font-size: 9px; letter-spacing: 0.05em; text-transform: uppercase; color: #e88; font-weight: 700; display: block; margin-bottom: 2px; }
  .sf-caveat { margin-top: 11px; font-size: 10.5px; font-style: italic; color: var(--ink-faint); line-height: 1.45; }
  .sfx-chip {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.05em; text-transform: uppercase;
    padding: 4px 8px 4px 7px; border-radius: 6px; cursor: pointer;
    border: 1px solid rgba(230,90,90,0.42); background: rgba(230,90,90,0.09);
    color: #f08a8a; display: inline-flex; align-items: center; gap: 5px;
    transition: all 0.12s; -webkit-tap-highlight-color: transparent; font-weight: 600;
  }
  .sfx-chip:active { transform: scale(0.96); }
  .sfx-chip .sfx-tw { display: inline-flex; transition: transform 0.18s; }
  .sfx-chip[aria-expanded="true"] { background: rgba(230,90,90,0.16); }
  .sfx-chip[aria-expanded="true"] .sfx-tw { transform: rotate(90deg); }
  .sfx-panel { margin-top: 1px; }
  .sfx {
    border: 1px solid rgba(230,90,90,0.38); border-left: 3px solid #e0726a; border-radius: 9px;
    background: color-mix(in srgb, #e0726a 7%, transparent); padding: 11px 13px;
  }
  .sfx-h { display: flex; align-items: center; gap: 6px; font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.06em; text-transform: uppercase; color: #f08a8a; font-weight: 700; margin-bottom: 6px; }
  .sfx-txt { font-size: 12.5px; line-height: 1.5; color: var(--ink); }
  .sfx-tags { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 8px; }
  .sfx-caveat { margin-top: 9px; font-size: 10.5px; font-style: italic; color: var(--ink-faint); line-height: 1.4; }

  .howto-panel {
    border: 1px solid var(--line); border-radius: 9px;
    background: var(--bg); padding: 13px 14px 12px; margin-top: 1px;
  }
  .howto-title {
    font-size: 13.5px; font-weight: 640; color: var(--ink);
    margin-bottom: 11px; line-height: 1.35;
  }
  .howto-sub {
    font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.1em;
    text-transform: uppercase; color: var(--ink-faint); margin: 0 0 6px;
  }
  .howto-mats { margin: 0 0 12px; padding-left: 17px; }
  .howto-mats li { font-size: 12.5px; line-height: 1.5; color: var(--ink-dim); }
  .howto-steps { margin: 0 0 12px; padding-left: 19px; }
  .howto-steps li { font-size: 13px; line-height: 1.55; color: var(--ink); margin-bottom: 7px; }
  .howto-steps li:last-child { margin-bottom: 0; }
  .howto-accept {
    background: rgba(88,230,168,0.07); border: 1px solid rgba(88,230,168,0.22);
    border-radius: 8px; padding: 9px 11px; font-size: 12.5px; line-height: 1.5;
    color: var(--ink); margin-bottom: 10px;
  }
  .howto-accept-k {
    display: block; font-family: var(--mono); font-size: 9px; letter-spacing: 0.1em;
    text-transform: uppercase; color: var(--accent); margin-bottom: 3px;
  }
  .howto-link {
    display: flex; align-items: center; justify-content: space-between;
    background: var(--panel); border: 1px solid var(--line);
    border-radius: 8px; padding: 10px 12px; margin-bottom: 10px;
    color: var(--accent); text-decoration: none; font-size: 12.5px; font-weight: 550;
  }
  .howto-link:active { background: var(--panel-2); }
  .howto-disc {
    font-size: 11px; line-height: 1.45; color: var(--ink-faint);
    border-top: 1px solid var(--line); padding-top: 9px;
  }
  .source-btn {
    flex-shrink: 0; font-family: var(--mono); font-size: 10px;
    letter-spacing: 0.05em; text-transform: uppercase;
    padding: 5px 9px; border-radius: 6px; cursor: pointer;
    border: 1px solid; background: none; transition: all 0.12s;
    display: inline-flex; align-items: center; gap: 4px; white-space: nowrap;
    margin-top: 1px;
  }
  .source-btn .dot { width: 6px; height: 6px; border-radius: 50%; }
  .source-btn.verified { color: var(--verified); border-color: rgba(88,230,168,0.4); }
  .source-btn.verified .dot { background: var(--verified); }
  .source-btn.flagged { color: var(--flagged); border-color: rgba(232,179,65,0.4); }
  .source-btn.flagged .dot { background: var(--flagged); }
  .source-btn.corroborated { color: var(--verified); border-color: rgba(88,230,168,0.4); }
  .source-btn.corroborated .dot { background: linear-gradient(90deg, var(--verified) 0 50%, var(--flagged) 50% 100%); }
  .source-btn.gmp { color: var(--gmp); border-color: var(--line); }
  .source-btn.gmp .dot { background: var(--gmp); }
  .source-btn.regulation { color: var(--regulation); border-color: rgba(90,169,230,0.4); }
  .source-btn.regulation .dot { background: var(--regulation); }
  .source-btn:active { transform: scale(0.95); }

  /* Source sheet */
  .sheet-backdrop {
    position: fixed; inset: 0; background: rgba(0,0,0,0.6);
    backdrop-filter: blur(2px); z-index: 40; opacity: 0;
    pointer-events: none; transition: opacity 0.2s;
  }
  .sheet-backdrop.open { opacity: 1; pointer-events: auto; }
  .sheet {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 41;
    background: var(--panel-2); border-top: 1px solid var(--line);
    border-radius: 18px 18px 0 0; padding: 8px 20px calc(28px + env(safe-area-inset-bottom));
    transform: translateY(100%); transition: transform 0.26s cubic-bezier(0.32,0.72,0,1);
    max-width: 720px; margin: 0 auto; max-height: 82vh; overflow-y: auto;
  }
  .sheet.open { transform: translateY(0); }
  .sheet-grip { width: 38px; height: 4px; background: var(--line); border-radius: 2px; margin: 6px auto 16px; }
  .sheet-status {
    display: inline-flex; align-items: center; gap: 6px;
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.1em;
    text-transform: uppercase; padding: 4px 9px; border-radius: 5px;
    border: 1px solid; margin-bottom: 14px;
  }
  .sheet-status.verified { color: var(--verified); border-color: rgba(88,230,168,0.4); }
  .sheet-status.flagged { color: var(--flagged); border-color: rgba(232,179,65,0.4); }
  .sheet-status.corroborated { color: var(--verified); border-color: rgba(88,230,168,0.4); }
  .sheet-status.gmp { color: var(--gmp); border-color: var(--line); }
  .sheet-status.regulation { color: var(--regulation); border-color: rgba(90,169,230,0.4); }
  .sheet-status.regulation .dot { background: var(--regulation); }
  .sheet-status .dot { width: 7px; height: 7px; border-radius: 50%; }
  .sheet-status.verified .dot { background: var(--verified); }
  .sheet-status.flagged .dot { background: var(--flagged); }
  .sheet-status.corroborated .dot { background: linear-gradient(90deg, var(--verified) 0 50%, var(--flagged) 50% 100%); }
  .sheet-status.gmp .dot { background: var(--gmp); }
  .sheet h3 { font-size: 19px; font-weight: 680; margin: 0 0 3px; font-family: var(--mono); letter-spacing: -0.01em; }
  .sheet .issuer { color: var(--ink-dim); font-size: 13px; margin: 0 0 18px; }
  .sheet-field { margin-bottom: 15px; }
  .sheet-field .k {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.1em;
    text-transform: uppercase; color: var(--ink-faint); margin-bottom: 5px;
  }
  .sheet-field .v { font-size: 14px; line-height: 1.5; color: var(--ink); }
  .sheet-field .v.crit {
    font-family: var(--mono); font-size: 13px; background: var(--panel);
    border: 1px solid var(--line); border-radius: 8px; padding: 11px 12px; line-height: 1.55;
  }
  .sheet-link {
    display: flex; align-items: center; justify-content: space-between;
    background: var(--panel); border: 1px solid var(--line);
    border-radius: 10px; padding: 13px 14px; margin-top: 4px;
    color: var(--accent); text-decoration: none; font-size: 13.5px; font-weight: 550;
  }
  .sheet-link:active { background: var(--bg); }
  .flag-note {
    background: rgba(232,179,65,0.08); border: 1px solid rgba(232,179,65,0.25);
    border-radius: 9px; padding: 11px 12px; font-size: 12.5px; line-height: 1.5;
    color: var(--flagged); margin-bottom: 16px;
  }
  .corrob-note {
    background: rgba(88,230,168,0.07); border: 1px solid rgba(88,230,168,0.22);
    border-radius: 9px; padding: 11px 12px; font-size: 12.5px; line-height: 1.5;
    color: var(--verified); margin-bottom: 16px;
  }
  .reg-note {
    background: rgba(90,169,230,0.08); border: 1px solid rgba(90,169,230,0.25);
    border-radius: 9px; padding: 11px 12px; font-size: 12.5px; line-height: 1.5;
    color: var(--regulation); margin-bottom: 16px;
  }
  .gmp-note {
    background: var(--panel); border: 1px solid var(--line);
    border-radius: 9px; padding: 11px 12px; font-size: 12.5px; line-height: 1.5;
    color: var(--ink-dim); margin-bottom: 4px;
  }
  .legend {
    margin-top: 26px; padding: 15px 15px 6px; background: var(--panel);
    border: 1px solid var(--line); border-radius: 12px;
  }
  .legend-title {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--ink-faint); margin-bottom: 11px;
  }
  .legend-row { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 10px; font-size: 12px; line-height: 1.45; color: var(--ink-dim); }
  .legend-row b { color: var(--ink); font-weight: 600; }
  .lg-dot { flex-shrink: 0; width: 9px; height: 9px; border-radius: 50%; margin-top: 4px; }
  .lg-dot.verified { background: var(--verified); }
  .lg-dot.corroborated { background: linear-gradient(90deg, var(--verified) 0 50%, var(--flagged) 50% 100%); }
  .lg-dot.regulation { background: var(--regulation); }
  .lg-dot.flagged { background: var(--flagged); }
  .lg-dot.gmp { background: var(--gmp); }
  .install-hint {
    font-family: var(--mono); font-size: 11px; color: var(--ink-faint);
    text-align: center; line-height: 1.6; margin-top: 30px; padding-top: 18px;
    border-top: 1px solid var(--line);
  }

  /* Process pages */
  #processList { margin-bottom: 18px; }
  .cov-summary { font-size: 12.5px; color: var(--ink-dim); line-height: 1.5; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
  .cov-sub { color: var(--ink-faint); font-size: 11px; }
  .proc-head {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--ink-faint); margin: 2px 2px 10px;
  }
  .proc-group {
    border: 1px solid var(--line); border-radius: 12px;
    background: var(--panel); margin-bottom: 10px; overflow: hidden;
  }
  .proc-group > summary {
    list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px;
    padding: 13px 14px; -webkit-tap-highlight-color: transparent;
  }
  .proc-group > summary::-webkit-details-marker { display: none; }
  .pg-dot {
    width: 8px; height: 8px; border-radius: 50%; flex: none;
    background: var(--pg, var(--accent));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--pg, var(--accent)) 18%, transparent);
  }
  .pg-label {
    font-family: var(--mono); font-size: 11px; letter-spacing: 0.10em;
    text-transform: uppercase; color: var(--ink); font-weight: 600;
  }
  .pg-count { font-family: var(--mono); font-size: 10px; color: var(--ink-faint); margin-left: 1px; }
  .pg-tw { margin-left: auto; color: var(--ink-faint); transition: transform 0.18s; display: inline-flex; }
  .proc-group[open] .pg-tw { transform: rotate(90deg); }
  .pg-body { padding: 2px 11px 11px; }
  .pg-body .proc-card:last-child { margin-bottom: 2px; }
  .proc-toolbar { display: flex; gap: 8px; align-items: center; margin: 0 2px 12px; }
  .proc-toolbar button {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--ink-dim); background: transparent; border: 1px solid var(--line);
    border-radius: 7px; padding: 5px 9px; cursor: pointer; -webkit-tap-highlight-color: transparent;
  }
  .proc-toolbar button:active { background: var(--line); }
  .proc-card {
    display: flex; align-items: center; gap: 12px; width: 100%;
    background: var(--panel); border: 1px solid var(--line);
    border-left: 3px solid var(--pc, var(--accent));
    border-radius: 11px; padding: 13px 13px; margin-bottom: 8px;
    cursor: pointer; text-align: left; transition: border-color 0.14s, background 0.14s;
    -webkit-tap-highlight-color: transparent;
  }
  .proc-card:active { transform: scale(0.995); }
  .proc-card:hover { background: var(--panel-2); }
  .proc-icon {
    flex-shrink: 0; width: 38px; height: 38px; border-radius: 9px;
    background: var(--panel-2); display: grid; place-items: center;
  }
  .proc-text { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
  .proc-name { font-size: 15px; font-weight: 660; letter-spacing: -0.01em; color: var(--ink); }
  .proc-sub { font-family: var(--mono); font-size: 11px; color: var(--ink-dim); }
  .proc-chev { color: var(--ink-faint); flex-shrink: 0; }

  .ps-suptitle {
    font-family: var(--mono); font-size: 12px; color: var(--ink-dim);
    margin: 1px 0 12px; letter-spacing: 0.02em;
  }
  .ps-graph {
    background: var(--panel); border: 1px solid var(--line); border-radius: 12px;
    padding: 14px 10px; margin: 4px 0 22px; display: flex; justify-content: center;
  }
  .ps-graph svg { width: 100%; max-width: 340px; height: auto; }
.ps-graph.ps-chart { margin: 16px 0 6px; text-align: center; }
.ps-graph.ps-chart svg { width: 100%; max-width: 470px; height: auto; }
.ps-cap { font-size: 12px; color: var(--muted); line-height: 1.45; max-width: 470px; margin: 6px auto 0; }

.adv-card { border: 1px solid var(--line); border-left: 3px solid var(--advc, #5aa9e6); border-radius: 9px; margin: 14px 0; overflow: hidden; }
.adv-card > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px; padding: 11px 13px; font-weight: 640; font-size: 14px; color: var(--advc, #5aa9e6); }
.adv-card > summary::-webkit-details-marker { display: none; }
.adv-card .adv-ico { display: inline-flex; color: var(--advc, #5aa9e6); }
.adv-card .adv-tw { margin-left: auto; transition: transform .2s; opacity: .6; }
.adv-card[open] .adv-tw { transform: rotate(90deg); }
.adv-wrap { padding: 0 14px 13px; }
.adv-sec { margin-top: 13px; }
.adv-h { font-size: 13px; font-weight: 660; margin: 0 0 5px; }

  .ps-sec { margin-bottom: 20px; }
  .ps-title {
    font-size: 14px; font-weight: 660; color: var(--ink);
    margin: 0 0 8px; letter-spacing: -0.01em;
  }
  .ps-body { font-size: 14px; line-height: 1.55; color: var(--ink-dim); margin: 0; }
  .ps-steps { margin: 4px 0 0; padding-left: 19px; }
  .ps-steps li { font-size: 13.5px; line-height: 1.55; color: var(--ink); margin-bottom: 8px; }
  .ps-steps li:last-child { margin-bottom: 0; }
  .ps-note {
    background: rgba(88,230,168,0.07); border: 1px solid rgba(88,230,168,0.22);
    border-radius: 9px; padding: 10px 12px; margin-top: 11px;
    font-size: 12.5px; line-height: 1.5; color: var(--ink);
  }
  .ps-bullets { margin: 4px 0 0; padding-left: 19px; }
  .ps-bullets li { font-size: 13.5px; line-height: 1.55; color: var(--ink-dim); margin-bottom: 7px; }
  .ps-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin: 8px 0 0; }
  .ps-col { background: var(--panel); border: 1px solid var(--line); border-radius: 10px; padding: 9px 11px; }
  .ps-col-h { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 6px; color: var(--ink-dim); }
  .ps-col.pro .ps-col-h { color: var(--accent); }
  .ps-col.con .ps-col-h { color: var(--pq); }
  .ps-col ul { margin: 0; padding-left: 15px; }
  .ps-col li { font-size: 12px; color: var(--ink-dim); margin: 5px 0; line-height: 1.45; }
  .ps-tablewrap { overflow-x: auto; margin: 8px 0 0; -webkit-overflow-scrolling: touch; border: 1px solid var(--line); border-radius: 10px; }
  .ps-table { border-collapse: collapse; width: 100%; min-width: 520px; font-size: 11.5px; }
  .ps-table th, .ps-table td { border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); padding: 7px 9px; text-align: left; vertical-align: top; line-height: 1.45; }
  .ps-table tr:last-child th, .ps-table tr:last-child td { border-bottom: 0; }
  .ps-table th:last-child, .ps-table td:last-child { border-right: 0; }
  .ps-table thead th { background: var(--panel-2); color: var(--ink); font-weight: 700; }
  .ps-table tbody th { background: var(--panel); color: var(--ink); font-weight: 600; width: 30%; }
  .ps-table td { color: var(--ink-dim); }
  .ps-matrix td { text-align: center; font-weight: 700; }
  .ps-matrix tbody th { width: auto; white-space: nowrap; }
  .m-low { background: rgba(88,230,168,0.16); color: #bfe9d4; }
  .m-med { background: rgba(230,196,90,0.18); color: #ecdca6; }
  .m-high { background: rgba(230,96,96,0.20); color: #f0b3b3; }
  /* equipment-page risk block */
  #riskBlock { margin-bottom: 18px; }

  /* equipment-page system-impact block */
  #impactBlock { margin-bottom: 18px; }
  /* equipment families (home) */
  .fam { margin-bottom: 20px; }
  .fam-head { display: flex; align-items: center; gap: 10px; margin: 0 0 9px; padding: 0 2px; }
  .fam-bar { width: 3px; align-self: stretch; min-height: 28px; border-radius: 3px; }
  .fam-tt { flex: 1; }
  .fam-t { display: block; font-size: 14px; font-weight: 650; letter-spacing: -0.2px; color: var(--ink); }
  .fam-d { display: block; font-size: 11px; color: var(--ink-faint); margin-top: 1px; }
  .fam-ct { font-family: var(--mono); font-size: 11px; color: var(--ink-dim); background: var(--panel); border: 1px solid var(--line); border-radius: 20px; padding: 2px 9px; }
  /* equipment detail sections */
  .dsec { border: 1px solid var(--line); border-radius: 12px; background: var(--panel); margin-bottom: 11px; overflow: hidden; }
  .dsec > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px; padding: 13px 14px; -webkit-tap-highlight-color: transparent; }
  .dsec > summary::-webkit-details-marker { display: none; }
  .dsn { width: 7px; height: 7px; border-radius: 50%; flex: none; }
  .dst { flex: 1; font-size: 14px; font-weight: 650; letter-spacing: -0.1px; color: var(--ink); }
  .dss { font-size: 11px; color: var(--ink-faint); font-weight: 400; margin-left: 7px; }
  .dtw { color: var(--ink-faint); display: inline-flex; transition: transform 0.18s; }
  .dsec[open] > summary .dtw { transform: rotate(90deg); }
  .dsec-body { padding: 12px 14px 14px; border-top: 1px solid var(--line); }
  .dsec-body > div:last-child { margin-bottom: 0; }
  .dsec-body #riskBlock, .dsec-body #impactBlock { margin-bottom: 0; }
  /* IQ/OQ/PQ phase tabs */
  .ptabs { display: flex; gap: 6px; margin: 0 0 12px; }
  .ptab { flex: 0 0 auto; font-family: var(--mono); font-size: 12.5px; font-weight: 650; letter-spacing: 0.3px; padding: 7px 16px; border-radius: 8px; border: 1px solid var(--line); background: var(--panel-2); color: var(--ink-dim); cursor: pointer; transition: color .15s, border-color .15s, background .15s; }
  .ptab.on.iq { color: #5aa9e6; border-color: #5aa9e6; background: rgba(90,169,230,0.12); }
  .ptab.on.oq { color: #9b8cf0; border-color: #9b8cf0; background: rgba(155,140,240,0.12); }
  .ptab.on.pq { color: #e0935a; border-color: #e0935a; background: rgba(224,147,90,0.12); }
  .ppanel { display: none; }
  .ppanel.on { display: block; }
  /* home: about + tabs */
  .about { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 14px 15px; margin-bottom: 13px; }
  .about-h { font-size: 13px; font-weight: 700; color: var(--ink); margin-bottom: 5px; letter-spacing: -0.1px; }
  .about-p { font-size: 12.5px; color: var(--ink-dim); margin: 0 0 9px; line-height: 1.55; }
  .about-how { display: flex; flex-wrap: wrap; gap: 7px 16px; font-size: 11.5px; color: var(--ink-faint); }
  .about-how b { color: var(--ink-dim); }
  .home-tabs { display: flex; gap: 2px; margin-bottom: 14px; border-bottom: 1px solid var(--line); }
  .htab { flex: 1; text-align: center; padding: 10px; font-size: 13.5px; font-weight: 600; color: var(--ink-dim); background: none; border: none; border-bottom: 2px solid transparent; cursor: pointer; font-family: inherit; -webkit-tap-highlight-color: transparent; }
  .htab.on { color: var(--ink); border-bottom-color: #58e6a8; }




  .imp-card { border: 1px solid var(--line); border-radius: 10px; background: var(--panel); padding: 11px 13px; }
  .imp-row { display: flex; align-items: center; gap: 8px; margin-bottom: 7px; }
  .imp-pill { font-size: 12px; font-weight: 700; padding: 3px 9px; border-radius: 20px; letter-spacing: 0.2px; }
  .imp-tag { font-family: var(--mono); font-size: 10px; color: var(--ink-faint); text-transform: uppercase; letter-spacing: 0.5px; margin-left: auto; }
  .imp-why { font-size: 12.5px; color: var(--ink); margin: 0 0 5px; line-height: 1.5; }
  .imp-note { font-size: 11.5px; color: var(--ink-faint); margin: 0; line-height: 1.45; }
  .imp-link { color: #5aa9e6; text-decoration: none; white-space: nowrap; }
  .imp-direct { background: rgba(217,119,106,0.18); color: #f0b3a8; }
  .imp-indirect { background: rgba(217,164,65,0.18); color: #ecd29a; }
  .imp-noimpact { background: rgba(138,151,166,0.18); color: #c2cad4; }
  .imp-aiq { background: rgba(90,169,230,0.18); color: #a8d2f0; }
  .imp-csv { background: rgba(155,139,234,0.18); color: #c9bdf0; }

  #acronymBlock { margin-top: 18px; }
  .acro-card { border: 1px solid var(--line); border-radius: 10px; background: var(--panel); overflow: hidden; }
  .acro-card summary {
    list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px;
    padding: 11px 13px; font-size: 13px; font-weight: 600; color: var(--ink);
    -webkit-tap-highlight-color: transparent;
  }
  .acro-card summary::-webkit-details-marker { display: none; }
  .acro-ico { color: #5aa9e6; display: inline-flex; }
  .acro-count { font-family: var(--mono); font-size: 10px; color: var(--ink-faint); margin-left: 1px; }
  .acro-tw { margin-left: auto; color: var(--ink-faint); transition: transform 0.18s; display: inline-flex; }
  .acro-card[open] .acro-tw { transform: rotate(90deg); }
  .acro-body { padding: 2px 13px 12px; }
  .acro-list { display: flex; flex-direction: column; gap: 0; }
  .acro-row {
    display: grid; grid-template-columns: minmax(58px, auto) 1fr; gap: 10px;
    padding: 7px 0; border-top: 1px solid var(--line); align-items: baseline;
  }
  .acro-row:first-child { border-top: none; }
  .acro-term { font-family: var(--mono); font-size: 12px; font-weight: 700; color: var(--ink); letter-spacing: -0.01em; }
  .acro-def { font-size: 12.5px; line-height: 1.45; color: var(--ink-dim); }
  .lens-card { border: 1px solid var(--line); border-radius: 10px; background: var(--panel); overflow: hidden; margin-top: 10px; }
  .lens-card summary {
    list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px;
    padding: 11px 13px; font-size: 13px; font-weight: 600; color: var(--ink);
    -webkit-tap-highlight-color: transparent;
  }
  .lens-card summary::-webkit-details-marker { display: none; }
  .lens-ico { color: #9b8bea; display: inline-flex; }
  .lens-tw { margin-left: auto; color: var(--ink-faint); transition: transform 0.18s; display: inline-flex; }
  .lens-card[open] .lens-tw { transform: rotate(90deg); }
  .lens-body { padding: 2px 13px 13px; }
  .lens-intro { font-size: 12px; line-height: 1.5; color: var(--ink-dim); margin: 4px 0 11px; }
  .lens-approach { padding: 9px 0; border-top: 1px solid var(--line); }
  .lens-approach:first-of-type { border-top: none; }
  .lens-aname { font-family: var(--mono); font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase; font-weight: 700; margin-bottom: 3px; }
  .lens-aname.trad { color: #5aa9e6; }
  .lens-aname.rb { color: #9b8bea; }
  .lens-atext { font-size: 12.5px; line-height: 1.5; color: var(--ink-dim); }
  .lens-link {
    display: inline-flex; align-items: center; gap: 4px; margin-top: 10px;
    font-size: 12px; font-weight: 600; color: #9b8bea; text-decoration: none;
  }
  .lens-canote {
    margin-top: 10px; padding: 9px 11px; border-radius: 8px;
    background: color-mix(in srgb, #9b8bea 8%, transparent);
    border: 1px solid color-mix(in srgb, #9b8bea 22%, transparent);
    font-size: 12px; line-height: 1.5; color: var(--ink-dim);
  }
  .lens-cak { display: block; font-family: var(--mono); font-size: 10px; letter-spacing: 0.05em; text-transform: uppercase; font-weight: 700; color: #9b8bea; margin-bottom: 4px; }
  .lens-cahedge { display: block; margin-top: 5px; font-size: 11px; font-style: italic; color: var(--ink-faint); }
  .cand-note {
    font-size: 12px; line-height: 1.5; color: var(--ink-dim);
    background: var(--panel); border: 1px solid var(--line); border-left: 3px solid var(--accent);
    border-radius: 8px; padding: 9px 12px; margin: 0 0 10px;
  }
  .risk-card { border: 1px solid var(--line); border-radius: 10px; background: var(--panel); overflow: hidden; }
  .risk-card summary {
    list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px;
    padding: 11px 13px; font-size: 13px; font-weight: 600; color: var(--ink);
  }
  .risk-card summary::-webkit-details-marker { display: none; }
  .risk-ico { color: #e0935a; display: inline-flex; }
  .risk-tw { margin-left: auto; color: var(--ink-faint); transition: transform 0.18s; display: inline-flex; }
  .risk-card[open] .risk-tw { transform: rotate(90deg); }
  .risk-body { padding: 0 13px 13px; }
  .risk-sub {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase;
    color: var(--ink-faint); margin: 8px 0 6px;
  }
  .risk-q { margin: 0; padding-left: 17px; }
  .risk-q li { font-size: 12.5px; line-height: 1.5; color: var(--ink-dim); margin-bottom: 7px; }
  .risk-link {
    display: inline-flex; align-items: center; gap: 4px; margin-top: 6px;
    font-size: 12px; font-weight: 600; color: var(--accent); text-decoration: none;
  }
  .ex-card {
    margin-top: 18px; border: 1px solid var(--line); border-radius: 12px;
    background: var(--panel); overflow: hidden;
  }
  .ex-card > summary {
    list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px;
    padding: 12px 14px; font-size: 13px; font-weight: 600; color: var(--ink);
    -webkit-tap-highlight-color: transparent;
  }
  .ex-card > summary::-webkit-details-marker { display: none; }
  .ex-ico { color: var(--exc, var(--accent)); display: inline-flex; }
  .ex-tw { margin-left: auto; color: var(--ink-faint); transition: transform 0.18s; display: inline-flex; }
  .ex-card[open] .ex-tw { transform: rotate(90deg); }
  .ex-body { padding: 0 13px 13px; }
  .ex-doc {
    background: var(--bg, #0d1117); border: 1px solid var(--line); border-left: 3px solid var(--exc, var(--accent));
    border-radius: 8px; padding: 13px 14px; font-size: 12.5px; line-height: 1.5;
  }
  .ex-doctitle { font-weight: 700; font-size: 13.5px; color: var(--ink); margin-bottom: 9px; letter-spacing: -0.01em; }
  .ex-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 3px 14px; margin-bottom: 11px; padding-bottom: 10px; border-bottom: 1px dashed var(--line); }
  .ex-meta-row { display: flex; gap: 6px; font-size: 11.5px; }
  .ex-mk { color: var(--ink-faint); font-family: var(--mono); }
  .ex-mv { color: var(--ink-dim); font-weight: 600; }
  .ex-block { margin-bottom: 11px; }
  .ex-block:last-child { margin-bottom: 0; }
  .ex-bh { font-family: var(--mono); font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--exc, var(--accent)); font-weight: 700; margin-bottom: 5px; }
  .ex-text { color: var(--ink-dim); }
  .ex-list { margin: 0; padding-left: 18px; color: var(--ink-dim); }
  .ex-list li { margin-bottom: 3px; }
  .ex-tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .ex-table { border-collapse: collapse; width: 100%; font-size: 11.5px; }
  .ex-table th { text-align: left; font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink-faint); padding: 5px 8px 5px 0; border-bottom: 1px solid var(--line); font-weight: 600; white-space: nowrap; }
  .ex-table td { padding: 5px 8px 5px 0; color: var(--ink-dim); border-bottom: 1px solid color-mix(in srgb, var(--line) 55%, transparent); vertical-align: top; }
  .ex-table tr:last-child td { border-bottom: none; }
  .ex-sign { display: flex; gap: 18px; margin-top: 6px; flex-wrap: wrap; }
  .ex-sign-cell { flex: 1; min-width: 90px; }
  .ex-sign-role { display: block; font-size: 10px; color: var(--ink-faint); font-family: var(--mono); margin-bottom: 14px; }
  .ex-sign-line { display: block; border-top: 1px solid var(--ink-faint); }
  .ex-caveat { margin-top: 9px; font-size: 11px; font-style: italic; color: var(--ink-faint); line-height: 1.45; }
  .ps-refs {
    margin-top: 24px; padding: 14px 14px 6px; background: var(--panel);
    border: 1px solid var(--line); border-radius: 12px;
  }
  .ps-refs-k {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--ink-faint); margin-bottom: 11px;
  }
  .ps-ref {
    display: flex; align-items: center; justify-content: space-between;
    background: var(--panel-2); border: 1px solid var(--line);
    border-radius: 9px; padding: 11px 12px; margin-bottom: 8px;
    color: var(--accent); text-decoration: none; font-size: 12.5px;
    font-weight: 550; line-height: 1.4; gap: 10px;
  }
  .ps-ref:active { background: var(--bg); }
  #processView { display: none; }
  #processView.active { display: block; }
