:root {
    --navy: #0f1f3d;
    --navy-mid: #1a3260;
    --navy-light: #e8edf5;
    --amber: #b87b10;
    --amber-bright: #e8a820;
    --amber-bg: #fef3dc;
    --red-bg: #fdf0ee;
    --red-border: #d85a30;
    --red-text: #7a2a10;
    --blue-bg: #eaf2fb;
    --blue-border: #378add;
    --blue-text: #0c447c;
    --teal-bg: #e1f5ee;
    --teal-border: #1d9e75;
    --teal-text: #085041;
    --gray-bg: #f5f4f1;
    --gray-border: #b4b2a9;
    --gray-text: #444441;
    --text-primary: #1a1a18;
    --text-secondary: #5f5e5a;
    --text-muted: #888780;
    --border-light: #e2e0d8;
    --surface: #ffffff;
    --page-bg: #f7f6f2;
  }
  * { box-sizing: border-box; margin: 0; padding: 0; }
  body {
    background: var(--page-bg);
    color: var(--text-primary);
    font-family: 'Georgia', 'Times New Roman', serif;
    font-size: 15px;
    line-height: 1.75;
  }

  /* ── TOP BAR ── */
  .top-bar {
    background: #0a1628;
    padding: 6px 40px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
  }
  .top-bar-label {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    color: rgba(255,255,255,0.38);
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }
  /* Language selector */
  .lang-selector { position: relative; }
  .lang-btn {
    background: rgba(255,255,255,0.08);
    border: 0.5px solid rgba(255,255,255,0.2);
    border-radius: 3px;
    color: rgba(255,255,255,0.7);
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    padding: 4px 10px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: background 0.15s;
  }
  .lang-btn:hover { background: rgba(255,255,255,0.14); }
  .lang-arrow { font-size: 9px; color: rgba(255,255,255,0.4); }
  .lang-menu {
    display: none;
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    background: #0a1628;
    border: 0.5px solid rgba(255,255,255,0.15);
    border-radius: 6px;
    width: 210px;
    z-index: 500;
    box-shadow: 0 10px 28px rgba(0,0,0,0.5);
    overflow: hidden;
  }
  .lang-menu-inner {
    max-height: 320px;
    overflow-y: auto;
    padding: 6px 0;
  }
  .lang-group-label {
    font-family: 'Arial', sans-serif;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.28);
    padding: 8px 14px 4px;
  }
  .lang-opt {
    display: block;
    font-family: 'Arial', sans-serif;
    font-size: 12px;
    color: rgba(255,255,255,0.72);
    padding: 6px 14px;
    cursor: pointer;
    transition: background 0.12s;
    text-decoration: none;
  }
  .lang-opt:hover { background: rgba(255,255,255,0.08); color: #fff; }
  .lang-risk-notice {
    display: none;
    background: #fff8e6;
    border-left: 3px solid var(--amber-bright);
    padding: 7px 40px;
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    color: #5a3e00;
    line-height: 1.5;
  }

  /* ── MASTHEAD ── */
  .masthead {
    background: var(--navy);
    padding: 14px 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .masthead-left { display: flex; align-items: baseline; gap: 10px; }
  .masthead-name {
    font-family: 'Arial', sans-serif;
    font-weight: 700;
    font-size: 16px;
    letter-spacing: 0.14em;
    color: #ffffff;
    text-transform: uppercase;
  }
  .masthead-by {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    color: rgba(255,255,255,0.32);
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }
  .masthead-label {
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    letter-spacing: 0.07em;
    color: rgba(255,255,255,0.42);
    text-transform: uppercase;
  }

  /* ── CLASSIFICATION STRIP ── */
  .classification-strip {
    background: var(--navy-mid);
    padding: 10px 40px;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
  }
  .badge-sig {
    background: #ba7517;
    color: #faeeda;
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 3px 10px;
    border-radius: 3px;
  }
  .badge-type {
    background: rgba(255,255,255,0.11);
    color: rgba(255,255,255,0.78);
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    padding: 3px 10px;
    border-radius: 3px;
  }
  .strip-div { color: rgba(255,255,255,0.2); font-size: 11px; }
  .strip-meta {
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    color: rgba(255,255,255,0.58);
  }
  .strip-meta strong { color: rgba(255,255,255,0.88); font-weight: 600; }
  .strip-meta a { color: rgba(255,255,255,0.72); text-decoration: underline; text-underline-offset: 2px; }
  .strip-right {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
  }
  .cat-tags { display: flex; gap: 5px; }
  .cat-tag {
    background: rgba(255,255,255,0.07);
    border: 0.5px solid rgba(255,255,255,0.17);
    color: rgba(255,255,255,0.58);
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    letter-spacing: 0.05em;
    padding: 2px 7px;
    border-radius: 2px;
    text-transform: uppercase;
  }

  /* ── CONFIDENCE DOTS ── */
  .cs-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    cursor: default;
  }
  .cs-lbl {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    color: rgba(255,255,255,0.38);
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }
  .cs-dots { display: flex; gap: 3px; align-items: center; }
  .cs-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: rgba(255,255,255,0.14);
  }
  .cs-dot.on { background: #4caf82; }
  .cs-dot.mid { background: #e8a820; }
  .cs-wrap:hover .cs-pop { display: block; }
  .cs-pop {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    background: #0a1628;
    border: 0.5px solid rgba(255,255,255,0.14);
    border-radius: 6px;
    padding: 16px 18px;
    width: 310px;
    z-index: 300;
    box-shadow: 0 10px 28px rgba(0,0,0,0.45);
  }
  .cs-pop::before {
    content: '';
    position: absolute;
    bottom: 100%;
    right: 18px;
    border: 6px solid transparent;
    border-bottom-color: rgba(255,255,255,0.14);
  }
  .cs-pop-title {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--amber-bright);
    margin-bottom: 12px;
  }
  .cs-row {
    display: grid;
    grid-template-columns: 106px 1fr;
    gap: 3px 10px;
    padding: 5px 0;
    border-bottom: 0.5px solid rgba(255,255,255,0.07);
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    align-items: start;
  }
  .cs-row:last-child { border-bottom: none; padding-bottom: 0; }
  .cs-row-lbl { color: rgba(255,255,255,0.38); padding-top: 1px; }
  .cs-row-val { color: rgba(255,255,255,0.8); line-height: 1.45; }
  .cs-code {
    font-family: 'Courier New', monospace;
    font-size: 10px;
    background: rgba(255,255,255,0.1);
    padding: 1px 5px;
    border-radius: 2px;
    margin-right: 5px;
    color: rgba(255,255,255,0.9);
  }
  .cs-overall {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 0.5px solid rgba(255,255,255,0.1);
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    color: #4caf82;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .cs-see-link {
    font-weight: 400;
    color: rgba(255,255,255,0.45);
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
    font-size: 10px;
    letter-spacing: 0.04em;
  }

  /* Inline code tooltip */
  .ic {
    font-family: 'Courier New', monospace;
    font-size: 11px;
    background: var(--navy-light);
    color: var(--navy-mid);
    padding: 2px 6px;
    border-radius: 3px;
    border: 0.5px solid #c5d0e0;
    position: relative;
    cursor: default;
    white-space: nowrap;
  }
  .ic:hover::after {
    content: attr(data-tip);
    position: absolute;
    top: calc(100% + 5px);
    left: 0;
    background: var(--navy);
    color: rgba(255,255,255,0.82);
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    line-height: 1.5;
    padding: 8px 12px;
    border-radius: 4px;
    white-space: pre-line;
    min-width: 260px;
    z-index: 200;
    box-shadow: 0 6px 18px rgba(0,0,0,0.35);
    pointer-events: none;
  }
  /* Source link inline */
  .src-link {
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    color: var(--text-muted);
    margin-left: 3px;
  }
  .src-link a {
    color: var(--navy-mid);
    text-decoration: underline;
    text-underline-offset: 2px;
  }
  .see-sr { font-size: 10px; color: var(--text-muted); margin-left: 4px; }
  .see-sr a { color: var(--text-muted); text-decoration: underline; text-underline-offset: 2px; }

  /* ── ARTICLE ── */
  .article-container {
    max-width: 820px;
    margin: 0 auto;
    padding: 48px 40px 24px;
  }

  /* ── HEADLINE BLOCK ── */
  .headline-block {
    border-left: 4px solid var(--amber-bright);
    padding-left: 20px;
    margin-bottom: 10px;
  }
  .auth-line {
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--amber);
    margin-bottom: 10px;
  }
  h1 {
    font-family: Georgia, serif;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--navy);
    margin-bottom: 14px;
  }
  .lead {
    font-size: 16px;
    line-height: 1.7;
    color: var(--text-secondary);
    font-style: italic;
    border-top: 0.5px solid var(--border-light);
    padding-top: 14px;
    margin-top: 4px;
    margin-bottom: 8px;
  }
  .src-anchor {
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    color: var(--text-muted);
    margin-bottom: 0;
  }
  .src-anchor a { color: var(--navy-mid); text-decoration: underline; text-underline-offset: 2px; }

  /* ── SUMMARY BOX ── */
  .sumbox {
    background: var(--navy);
    border-radius: 6px;
    padding: 24px 28px;
    margin: 24px 0;
  }
  .sumbox-title {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--amber-bright);
    margin-bottom: 14px;
  }
  .sum-row {
    display: grid;
    grid-template-columns: 158px 1fr;
    gap: 6px 16px;
    padding: 8px 0;
    border-bottom: 0.5px solid rgba(255,255,255,0.08);
    font-size: 13px;
    line-height: 1.55;
    align-items: start;
  }
  .sum-row:last-child { border-bottom: none; }
  .sum-lbl {
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    font-weight: 600;
    color: rgba(255,255,255,0.42);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding-top: 1px;
  }
  .sum-val { color: rgba(255,255,255,0.84); }
  .sum-val a { color: rgba(255,255,255,0.62); text-decoration: underline; text-underline-offset: 2px; }
  /* CS in summary box — same popup but anchored differently */
  .cs-sum-wrap {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: default;
    position: relative;
  }
  .cs-sum-wrap:hover .cs-sum-pop { display: block; }
  .cs-sum-pop {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    background: #0a1628;
    border: 0.5px solid rgba(255,255,255,0.14);
    border-radius: 6px;
    padding: 16px 18px;
    width: 310px;
    z-index: 300;
    box-shadow: 0 10px 28px rgba(0,0,0,0.45);
  }

  /* ── SECTION HEADERS ── */
  h2 {
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--navy);
    margin: 40px 0 16px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--navy);
  }
  h3 {
    font-family: Georgia, serif;
    font-size: 15px;
    font-weight: 700;
    color: var(--text-primary);
    margin: 20px 0 8px;
  }
  p { margin-bottom: 14px; }

  /* ── STATUTE ── */
  .statute {
    background: var(--navy-light);
    color: var(--navy-mid);
    font-family: 'Courier New', monospace;
    font-size: 12px;
    padding: 2px 6px;
    border-radius: 3px;
    border: 0.5px solid #c5d0e0;
    white-space: normal;
    word-break: break-word;
    display: inline;
  }

  /* ── CALLOUTS ── */
  .callout {
    border-left: 3px solid;
    padding: 14px 18px;
    margin: 16px 0;
    border-radius: 0 4px 4px 0;
  }
  .callout-title {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 6px;
  }
  .callout-body { font-size: 14px; line-height: 1.65; margin: 0; }
  .callout.amber { background: var(--amber-bg); border-color: var(--amber-bright); }
  .callout.amber .callout-title { color: var(--amber); }
  .callout.red { background: var(--red-bg); border-color: var(--red-border); }
  .callout.red .callout-title { color: var(--red-text); }
  .callout.teal { background: var(--teal-bg); border-color: var(--teal-border); }
  .callout.teal .callout-title { color: var(--teal-text); }

  /* ── OBLIGATIONS GRID ── */
  .ob-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1px;
    background: var(--border-light);
    border: 0.5px solid var(--border-light);
    border-radius: 6px;
    overflow: hidden;
    margin: 16px 0;
  }
  .ob-col {
    display: flex;
    flex-direction: column;
    background: var(--border-light);
    gap: 1px;
  }
  .ob-cell { background: var(--surface); padding: 16px; flex: 1; }
  .ob-hdr { background: var(--navy-light); padding: 10px 16px; min-height: 90px; display: flex; flex-direction: column; justify-content: flex-start; }
  .ob-lbl {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--navy-mid);
    margin-bottom: 6px;
  }
  .ob-title {
    font-family: Georgia, serif;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 6px;
  }
  .ob-text { font-size: 12.5px; color: var(--text-secondary); line-height: 1.6; }
  .ob-st { margin-top: 8px; }

  /* ── DATES TABLE ── */
  table { width: 100%; border-collapse: collapse; margin: 16px 0; font-size: 14px; }
  thead tr { background: var(--navy); color: #e8edf5; }
  thead th {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 10px 14px;
    text-align: left;
  }
  tbody tr:nth-child(odd) { background: var(--surface); }
  tbody tr:nth-child(even) { background: var(--gray-bg); }
  tbody td {
    padding: 10px 14px;
    border-bottom: 0.5px solid var(--border-light);
    vertical-align: top;
    line-height: 1.55;
  }
  td:first-child {
    font-family: 'Arial', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: var(--navy-mid);
    width: 178px;
  }
  .dpill {
    background: var(--amber-bg);
    color: var(--amber);
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 3px;
    display: inline-block;
    margin-bottom: 4px;
  }
  .text-muted { color: var(--text-muted); font-size: 13px; }

  /* ── IMPACT GRID ── */
  .impact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin: 16px 0;
  }
  .impact-card {
    background: var(--surface);
    border: 0.5px solid var(--border-light);
    border-top: 3px solid var(--navy);
    border-radius: 4px;
    padding: 16px;
  }
  .ic-lbl {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 6px;
  }
  .ic-title {
    font-family: Georgia, serif;
    font-size: 14px;
    font-weight: 700;
    color: var(--navy);
    margin-bottom: 8px;
  }
  .ic-text { font-size: 13px; color: var(--text-secondary); line-height: 1.6; }

  /* ── ADSENSE PLACEHOLDER ── */
  .ad-slot {
    background: #eeece7;
    border: 1px dashed #ccc;
    border-radius: 4px;
    text-align: center;
    padding: 18px;
    margin: 28px 0;
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    color: #bbb;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  /* ── SOURCE RECORD ── */
  .source-record {
    background: var(--navy-light);
    border: 0.5px solid #c5d0e0;
    border-left: 3px solid var(--navy-mid);
    border-radius: 0 4px 4px 0;
    padding: 18px 22px;
    margin: 28px 0;
    scroll-margin-top: 20px;
  }
  .sr-title {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--navy-mid);
    margin-bottom: 12px;
  }
  .sr-row {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 4px 12px;
    padding: 6px 0;
    border-bottom: 0.5px solid #d0d8e8;
    font-size: 13px;
    align-items: start;
  }
  .sr-row:last-child { border-bottom: none; }
  .sr-lbl {
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    font-weight: 600;
    color: var(--navy-mid);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding-top: 1px;
  }
  .sr-val { color: var(--text-primary); line-height: 1.5; }
  .sr-val a { color: var(--navy-mid); text-decoration: underline; text-underline-offset: 2px; }

  /* ── PRACTITIONER SECTION ── */
  .prac-section {
    border-top: 3px solid var(--amber-bright);
    border-radius: 0 0 6px 6px;
    background: var(--surface);
    border: 0.5px solid var(--border-light);
    border-top: 3px solid var(--amber-bright);
    padding: 20px 24px;
    margin: 28px 0;
  }
  .prac-header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 14px;
  }
  .prac-title {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--amber);
  }
  .prac-invite {
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    color: var(--navy-mid);
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
    white-space: nowrap;
  }
  .auth-note {
    background: var(--amber-bg);
    border-left: 3px solid var(--amber-bright);
    border-radius: 0 4px 4px 0;
    padding: 12px 16px;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--text-primary);
  }
  .auth-note-src {
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    color: var(--amber);
    margin-top: 6px;
    display: block;
  }
  .auth-note-src a { color: var(--amber); text-decoration: underline; text-underline-offset: 2px; }

  /* ── BODY PROFILE ── */
  .body-profile {
    background: var(--gray-bg);
    border: 0.5px solid var(--gray-border);
    border-radius: 6px;
    padding: 18px 22px;
    margin: 28px 0;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 12px;
    align-items: start;
  }
  .bp-lbl {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 6px;
  }
  .bp-name {
    font-family: Georgia, serif;
    font-size: 15px;
    font-weight: 700;
    color: var(--navy);
    margin-bottom: 4px;
  }
  .bp-desc { font-size: 13px; color: var(--text-secondary); line-height: 1.55; }
  .bp-links {
    display: flex;
    flex-direction: column;
    gap: 7px;
    align-items: flex-end;
    white-space: nowrap;
  }
  .bp-link {
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    color: var(--navy-mid);
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
  }

  /* ── RELATED BLOCK ── */
  .related-block {
    background: var(--navy-light);
    border: 0.5px solid #c5d0e0;
    border-radius: 6px;
    padding: 20px 24px;
    margin: 24px 0;
  }
  .rel-title {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--navy-mid);
    margin-bottom: 14px;
  }
  .rel-row {
    display: flex;
    align-items: baseline;
    gap: 12px;
    padding: 7px 0;
    border-bottom: 0.5px solid #c5d0e0;
    font-size: 13px;
  }
  .rel-row:last-child { border-bottom: none; }
  .rel-tag {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--navy-mid);
    background: #d3dded;
    padding: 2px 8px;
    border-radius: 3px;
    white-space: nowrap;
    min-width: 110px;
    text-align: center;
  }
  .rel-tag.soon { background: #e8e0cc; color: var(--amber); }
  .rel-text { color: var(--text-secondary); line-height: 1.5; }

  /* ── CTA HOVER PANEL ── */
  .cta-panel {
    border-top: 1px solid var(--border-light);
    padding: 20px 0 0;
    margin: 28px 0 24px;
  }
  .cta-panel-lbl {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 12px;
  }
  .cta-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
  .cta-item { position: relative; display: inline-block; }
  .cta-btn {
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    font-weight: 600;
    color: var(--navy-mid);
    background: var(--navy-light);
    border: 0.5px solid #c5d0e0;
    border-radius: 3px;
    padding: 5px 12px;
    cursor: pointer;
    letter-spacing: 0.03em;
    transition: background 0.15s, color 0.15s;
    white-space: nowrap;
    user-select: none;
  }
  .cta-btn:hover { background: var(--navy); color: #fff; }
  .cta-item:hover .balloon { display: block; }
  .balloon {
    display: none;
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    background: var(--navy);
    border: 0.5px solid rgba(255,255,255,0.12);
    border-radius: 6px;
    padding: 14px 16px;
    width: 230px;
    z-index: 200;
    box-shadow: 0 8px 24px rgba(0,0,0,0.38);
    pointer-events: none;
  }
  .cta-item:hover .balloon { pointer-events: auto; }
  .balloon::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 6px solid transparent;
    border-top-color: var(--navy);
  }
  .b-title {
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    font-weight: 700;
    color: var(--amber-bright);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-bottom: 6px;
  }
  .b-body {
    font-family: 'Arial', sans-serif;
    font-size: 12px;
    color: rgba(255,255,255,0.72);
    line-height: 1.5;
    margin-bottom: 10px;
  }
  .b-action {
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    font-weight: 700;
    color: var(--amber-bright);
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
  }
  .b-soon {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    color: rgba(255,255,255,0.3);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-top: 4px;
    display: block;
  }

  /* ── SHARE ROW ── */
  .share-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 0.5px solid var(--border-light);
    flex-wrap: wrap;
  }
  .share-lbl {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    color: var(--text-muted);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-right: 2px;
  }
  .share-btn {
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    color: var(--navy-mid);
    background: var(--navy-light);
    border: 0.5px solid #c5d0e0;
    border-radius: 3px;
    padding: 4px 10px;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s, color 0.15s;
  }
  .share-btn:hover { background: var(--navy); color: #fff; }
  .share-sep {
    color: var(--border-light);
    margin: 0 4px;
  }

  /* ── DISCLAIMER ── */
  .disclaimer {
    background: var(--gray-bg);
    border: 0.5px solid var(--gray-border);
    border-radius: 4px;
    padding: 16px 20px;
    margin: 24px 0;
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.65;
  }
  .disclaimer strong {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--gray-text);
    display: block;
    margin-bottom: 6px;
  }

  /* ── BOTTOM AD ── */
  .ad-bottom {
    background: #eeece7;
    border-top: 1px dashed #ccc;
    text-align: center;
    padding: 20px;
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    color: #bbb;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  /* ── RESPONSIVE ── */

  @media (max-width: 780px) {
    .top-bar { padding: 6px 20px; }
    .masthead { padding: 12px 20px; }
    .classification-strip { padding: 8px 20px; gap: 8px; }
    .lang-risk-notice { padding: 7px 20px; }
    .article-container { padding: 32px 20px 20px; }
    .ob-grid { grid-template-columns: 1fr; }
    h1 { font-size: 22px; }
    .sum-row { grid-template-columns: 120px 1fr; }
  }

  @media (max-width: 520px) {
    .masthead-label { display: none; }
    .strip-right { margin-left: 0; width: 100%; }
    .cat-tags { flex-wrap: wrap; }
    .impact-grid { grid-template-columns: 1fr; }
    .body-profile { grid-template-columns: 1fr; }
    .bp-links { align-items: flex-start; }
    .sum-row { grid-template-columns: 1fr; gap: 2px 0; }
    .sum-lbl { padding-bottom: 2px; }
    .sr-row { grid-template-columns: 1fr; gap: 2px 0; }
    .sr-lbl { padding-bottom: 2px; }
    h1 { font-size: 20px; }
    .lead { font-size: 14px; }
    thead th:last-child, tbody td:last-child { display: none; }
    .share-row { flex-wrap: wrap; gap: 6px; }
    .cs-pop { width: 255px; right: -40px; }
    .lang-menu { width: 230px; }
    .traj-grid { grid-template-columns: 1fr; }
    .instr-grid { grid-template-columns: 1fr; }
    .jw-grid { grid-template-columns: 1fr; }
  }

  /* ── DEPTH BADGE ── */
  .depth-badge {
    background: rgba(255,255,255,0.07);
    border: 0.5px solid rgba(255,255,255,0.2);
    color: rgba(255,255,255,0.65);
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    padding: 3px 9px;
    border-radius: 3px;
  }
  .depth-badge.tier1 {
    border-color: rgba(76,175,130,0.5);
    color: #4caf82;
    background: rgba(76,175,130,0.08);
  }

  /* ── REGULATORY TRAJECTORY BLOCK ── */
  .trajectory-block {
    background: var(--navy);
    border-radius: 6px;
    padding: 20px 24px;
    margin: 28px 0;
  }
  .traj-title {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--amber-bright);
    margin-bottom: 14px;
  }
  .traj-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1px;
    background: rgba(255,255,255,0.08);
    border-radius: 4px;
    overflow: hidden;
  }
  .traj-cell {
    background: rgba(255,255,255,0.04);
    padding: 14px 16px;
  }
  .traj-label {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.4);
    margin-bottom: 6px;
  }
  .traj-signal {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 6px;
  }
  .traj-arrow {
    font-size: 16px;
    line-height: 1;
  }
  .traj-arrow.up { color: #e85a30; }
  .traj-arrow.stable { color: #e8a820; }
  .traj-arrow.down { color: #4caf82; }
  .traj-value {
    font-family: 'Arial', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: rgba(255,255,255,0.85);
  }
  .traj-detail {
    font-family: 'Arial', sans-serif;
    font-size: 11px;
    color: rgba(255,255,255,0.45);
    line-height: 1.45;
  }

  /* ── AFFECTED INSTRUMENTS BLOCK ── */
  .instruments-block {
    background: var(--surface);
    border: 0.5px solid var(--border-light);
    border-radius: 6px;
    overflow: hidden;
    margin: 20px 0;
  }
  .instr-header {
    background: var(--navy-light);
    padding: 10px 20px;
    border-bottom: 0.5px solid #c5d0e0;
  }
  .instr-title {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--navy-mid);
  }
  .instr-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0;
  }
  .instr-col {
    border-right: 0.5px solid var(--border-light);
  }
  .instr-col:last-child { border-right: none; }
  .instr-col-label {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    padding: 8px 16px;
    border-bottom: 0.5px solid var(--border-light);
  }
  .instr-col-label.direct {
    color: #1a5c38;
    background: #e8f5ee;
  }
  .instr-col-label.potential {
    color: #7a4a00;
    background: var(--amber-bg);
  }
  .instr-col-label.monitor {
    color: var(--gray-text);
    background: var(--gray-bg);
  }
  .instr-items {
    padding: 10px 16px 14px;
  }
  .instr-item {
    font-family: 'Arial', sans-serif;
    font-size: 12.5px;
    color: var(--text-secondary);
    padding: 4px 0;
    padding-left: 12px;
    line-height: 1.5;
    position: relative;
  }
  .instr-item::before {
    content: "–";
    position: absolute;
    left: 0;
    color: var(--text-muted);
  }

  /* ── JURISDICTIONAL WATCH BLOCK ── */
  .jw-block {
    background: var(--navy-mid);
    border-radius: 6px;
    overflow: hidden;
    margin: 20px 0;
  }
  .jw-header {
    padding: 12px 20px 10px;
    border-bottom: 0.5px solid rgba(255,255,255,0.1);
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .jw-title {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--amber-bright);
  }
  .jw-scope {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    color: rgba(255,255,255,0.35);
    letter-spacing: 0.04em;
  }
  .jw-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0;
  }
  .jw-col {
    padding: 12px 18px 16px;
    border-right: 0.5px solid rgba(255,255,255,0.08);
  }
  .jw-col:last-child { border-right: none; }
  .jw-col-label {
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    margin-bottom: 8px;
    padding-bottom: 6px;
    border-bottom: 0.5px solid rgba(255,255,255,0.1);
  }
  .jw-col-label.active { color: #e85a30; }
  .jw-col-label.expected { color: #e8a820; }
  .jw-col-label.none { color: rgba(255,255,255,0.35); }
  .jw-item {
    font-family: 'Arial', sans-serif;
    font-size: 12px;
    color: rgba(255,255,255,0.72);
    padding: 3px 0;
    line-height: 1.45;
  }
  /* ── HOUSE AD ── */
  .house-ad {
    background: var(--navy-light);
    border: 0.5px solid #c5d0e0;
    border-left: 3px solid var(--navy-mid);
    border-radius: 0 4px 4px 0;
    padding: 12px 18px;
    margin: 20px 0;
    font-family: 'Arial', sans-serif;
    font-size: 12px;
    color: var(--text-secondary);
    line-height: 1.5;
  }
  .house-ad strong { color: var(--navy); }
  .house-ad a { color: var(--navy-mid); text-decoration: underline; text-underline-offset: 2px; }
  .house-ad a:hover { color: var(--navy); }

  /* ── PROSE SECTION BACKGROUNDS ── */
  .article-container > h2 + p,
  .article-container > h2 + p ~ p,
  .article-container > .brief-section {
    /* Sections already have their own styling */
  }
  /* Wrap prose content areas with subtle background */
  .brief-prose-section {
    background: var(--surface);
    border: 0.5px solid var(--border-light);
    border-radius: 6px;
    padding: 24px 28px;
    margin: 8px 0 24px;
  }

  /* ── STATUTE PILL BALLOON ── */
  .statute-wrap { position: relative; display: inline; }
  .statute {
    cursor: pointer;
  }
  .statute:hover {
    background: var(--navy);
    color: #fff;
    border-color: var(--navy);
  }
  .statute-balloon {
    display: none;
    position: absolute;
    bottom: calc(100% + 8px);
    left: 0;
    background: var(--navy);
    border: 0.5px solid rgba(255,255,255,0.15);
    border-radius: 6px;
    padding: 12px 14px;
    width: 280px;
    z-index: 400;
    box-shadow: 0 8px 24px rgba(0,0,0,0.4);
    font-family: Arial, sans-serif;
    font-size: 11px;
    color: rgba(255,255,255,0.82);
    line-height: 1.5;
    pointer-events: none;
  }
  .statute-wrap:hover .statute-balloon { display: block; }
  .statute-balloon::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 20px;
    border: 6px solid transparent;
    border-top-color: var(--navy);
  }
  .sb-label {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--amber-bright);
    margin-bottom: 4px;
  }
  .sb-quote {
    font-style: italic;
    color: rgba(255,255,255,0.65);
    margin-bottom: 8px;
    font-size: 11px;
  }
  .sb-source {
    font-size: 10px;
    color: rgba(255,255,255,0.35);
  }
  .statute.amber {
    background: var(--amber-bg);
    color: var(--amber);
    border-color: var(--amber-bright);
  }

  /* ── CATEGORY TAG HOVER ── */
  .cat-tag {
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
  }
  .cat-tag:hover {
    background: rgba(255,255,255,0.18);
    color: rgba(255,255,255,0.9);
  }

  /* ── PRACTITIONER EMPTY STATE ── */
  .prac-empty {
    text-align: center;
    padding: 24px 16px;
    color: var(--text-muted);
    font-family: Arial, sans-serif;
    font-size: 13px;
    line-height: 1.6;
  }
  .prac-empty-prompt {
    font-size: 13px;
    color: var(--navy-mid);
    font-weight: 600;
    margin-bottom: 8px;
  }
  .prac-empty-sub {
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 14px;
  }
  .prac-empty-btn {
    display: inline-block;
    background: var(--navy);
    color: #fff;
    font-family: Arial, sans-serif;
    font-size: 12px;
    font-weight: 600;
    padding: 8px 18px;
    border-radius: 4px;
    text-decoration: none;
    transition: background 0.15s;
  }
  .prac-empty-btn:hover { background: var(--navy-mid); }

  /* ── LANGUAGE SELECTOR OPTIONS ── */
  .lang-group-label {
    font-family: 'Arial', sans-serif;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.28);
    padding: 8px 14px 3px;
    margin-top: 4px;
  }
  .lang-opt {
    display: block;
    font-family: 'Arial', sans-serif;
    font-size: 12px;
    color: rgba(255,255,255,0.72);
    padding: 5px 14px;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.1s;
  }
  .lang-opt:hover { background: rgba(255,255,255,0.08); color: #fff; }
/* ============================================================
   REGLEGBRIEF — brief-canonical.css — PATCH A
   Article container width fix
   Version: 1.0
   Date: 9 April 2026
   Appended to: /var/www/reglegbrief/static/css/brief-canonical.css
   DO NOT replace the existing file — append only
   ============================================================ */

/* ── ARTICLE CONTAINER WIDTH FIX — 9 Apr 2026 ── */
.article-container {
  max-width: 100%;
}
/* ============================================================
   REGLEGBRIEF — brief-canonical.css — PATCH B
   Section background enhancements
   Version: 1.0
   Date: 9 April 2026
   Appended to: /var/www/reglegbrief/static/css/brief-canonical.css
   DO NOT replace the existing file — append only
   ============================================================ */

/* ── HEADLINE BLOCK — white card lift from parchment ── */
.headline-block {
  background: var(--surface);
  border-radius: 0 6px 6px 0;
  padding: 24px 24px 20px 20px;
  margin-bottom: 20px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}

/* ── SECTION H2 HEADERS — navy-light strip ── */
.article-container h2 {
  background: var(--navy-light);
  padding: 8px 12px;
  border-radius: 3px;
  border-bottom: none;
  margin: 36px 0 0 0;
}

/* ── PROSE SECTION WRAPPERS — stronger border and shadow ── */
.brief-prose-section {
  border-color: #c0bdb4;
  box-shadow: 0 1px 4px rgba(0,0,0,0.05);
  margin-top: 0;
}

/* ── IMPACT CARDS — stronger border ── */
.impact-card {
  border: 1px solid #c8c5bd;
  border-top: 3px solid var(--navy);
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
/* ============================================================
   REGLEGBRIEF — brief-canonical.css — PATCH C
   Stronger section borders and shadows
   Version: 1.0
   Date: 9 April 2026
   Appended to: /var/www/reglegbrief/static/css/brief-canonical.css
   DO NOT replace the existing file — append only
   ============================================================ */

/* ── PROSE SECTION WRAPPERS — visible border against parchment ── */
.brief-prose-section {
  border: 1px solid #9e9a92;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  background: var(--surface);
}

/* ── H3 SUBHEADINGS — subtle left accent to separate subsections ── */
.article-container h3 {
  border-left: 3px solid var(--navy-light);
  padding-left: 10px;
  margin-top: 24px;
  margin-bottom: 8px;
}

/* ── IMPACT CARD — visible border ── */
.impact-card {
  border: 1px solid #9e9a92;
  border-top: 3px solid var(--navy);
  box-shadow: 0 2px 6px rgba(0,0,0,0.07);
}

/* ── PAGE BODY — very slightly warmer parchment 
   to push white cards forward ── */
body {
  background: #f0ede6;
}
/* ============================================================
   REGLEGBRIEF — brief-canonical.css — PATCH D
   Sticky classification strip + Section navigation tabs
   Instruments & Structures header font fix
   Version: 1.0 — 9 April 2026
   ============================================================ */
.sticky-nav-group { position: sticky; top: 0; z-index: 100; }
.brief-section-nav { background: #0a1425; border-bottom: 1px solid rgba(255,255,255,0.07); padding: 0 40px; display: flex; gap: 0; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; }
.brief-section-nav::-webkit-scrollbar { display: none; }
.bsn-tab { font-family: 'Arial', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 0.04em; color: rgba(255,255,255,0.42); padding: 9px 14px; white-space: nowrap; text-decoration: none; border-bottom: 2px solid transparent; transition: color 0.15s, border-color 0.15s; display: block; line-height: 1; }
.bsn-tab:hover { color: rgba(255,255,255,0.78); border-bottom-color: rgba(255,255,255,0.18); }
.bsn-tab.active { color: #e8a820; border-bottom-color: #e8a820; }
.instr-title { font-size: 12px; }
@media (max-width: 780px) { .brief-section-nav { padding: 0 16px; } .bsn-tab { padding: 8px 10px; font-size: 10px; } }
.bsn-tab.bsn-action { color: rgba(232,168,32,0.6); border-left: 1px solid rgba(255,255,255,0.08); }
.bsn-tab.bsn-action:hover { color: rgba(232,168,32,0.9); border-bottom-color: rgba(232,168,32,0.4); }
.bsn-tab.bsn-action.active { color: #e8a820; border-bottom-color: #e8a820; }
/* ── PATCH E — Specialist Highlight Typography — 10 Apr 2026 ── */
.specialist-highlight { border-left: 3px solid var(--amber-bright); background: #fffbf2; border-radius: 0 4px 4px 0; padding: 14px 18px; margin: 20px 0; }
.specialist-highlight-lens { font-family: 'Arial', sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--amber); margin-bottom: 10px; }
.specialist-highlight-body { font-style: italic; font-size: 14px; line-height: 1.75; color: #2a2a28; }
/* ── PATCH F — Trajectory + Instruments column labels — 10 Apr 2026 ── */
.traj-label { color: rgba(255,255,255,0.75); font-size: 11px; font-weight: 700; letter-spacing: 0.06em; }
.instr-col-label { font-size: 11px; font-weight: 700; }
/* ── PATCH G — Nav tabs wrap on overflow — 10 Apr 2026 ── */
.brief-section-nav { flex-wrap: wrap; }
.additional-specialist-insights { margin-top: 28px; } .additional-specialist-insights h3 { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--amber); margin-bottom: 16px; border-bottom: 1px solid var(--amber-bright); padding-bottom: 8px; }
