:root {
  color-scheme: light;
  --ink-strong: #12201d;
  --ink: #1f2e2a;
  --muted: #46534f;
  --line: #d8dfdc;
  --line-strong: #b9c5c1;
  --canvas: #f3f1ea;
  --canvas-deep: #e9ede8;
  --panel: #fffefa;
  --panel-muted: #f6f8f5;
  --forest: #173f38;
  --forest-light: #2e665b;
  --accent: #c76535;
  --accent-dark: #803516;
  --info: #1f507d;
  --good: #195b40;
  --warn: #7a4805;
  --danger: #87332f;
  --info-soft: #edf5fb;
  --good-soft: #edf7f1;
  --warn-soft: #fff6e5;
  --danger-soft: #fff0ee;
  --semantic-positive-bg: #eaf5ee;
  --semantic-positive-border: #42785c;
  --semantic-positive-ink: #164a32;
  --semantic-caution-bg: #fff3dd;
  --semantic-caution-border: #a56610;
  --semantic-caution-ink: #714204;
  --semantic-danger-bg: #fdecea;
  --semantic-danger-border: #a6443d;
  --semantic-danger-ink: #742a26;
  --semantic-info-bg: #eaf3fa;
  --semantic-info-border: #47749a;
  --semantic-info-ink: #194d75;
  --semantic-unknown-bg: #eef1f2;
  --semantic-unknown-border: #687579;
  --semantic-unknown-ink: #374448;
  --shadow-sm: 0 8px 24px rgba(20, 33, 31, .06);
  --shadow-lg: 0 24px 64px rgba(20, 33, 31, .11);
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --content: 1220px;
  --reading-body-size: 1.125rem;
  --global-header-height: 4.75rem;
  --report-menu-height: 0px;
  --sticky-ui-offset: calc(var(--global-header-height) + .5rem);
  --font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  font-family: var(--font-sans);
  font-synthesis: none;
}

:root[data-reading-size="standard"] { --reading-body-size: 1rem; }
:root[data-reading-size="comfortable"] { --reading-body-size: 1.125rem; }
:root[data-reading-size="large"] { --reading-body-size: 1.25rem; }
:root[data-reading-size="extra-large"] { --reading-body-size: 1.375rem; }

* { box-sizing: border-box; }
html { font-size: 100%; scroll-behavior: smooth; scroll-padding-top: var(--sticky-ui-offset); }
body {
  margin: 0;
  width: 100%;
  max-width: 100%;
  background: var(--canvas);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: var(--reading-body-size);
  font-weight: 400;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}
a { color: inherit; }
button, input, select, textarea, dialog { font: inherit; }
button { cursor: pointer; }
button:disabled { border-color: #99a5a1; background: #e2e7e4; color: #46534f; cursor: not-allowed; opacity: 1; }
img, svg { display: block; max-width: 100%; }
p { line-height: 1.6; text-align: left; }
h1, h2, h3 { color: var(--ink-strong); font-weight: 700; overflow-wrap: anywhere; text-wrap: balance; }
h1, h2 { letter-spacing: -.02em; }
h1 { margin: .25em 0 .4em; font-size: clamp(2.25em, 5vw, 2.75em); line-height: 1.08; }
h2 { margin: 0 0 .35em; font-size: clamp(1.75em, 3vw, 2.125em); line-height: 1.16; }
h3 { margin: 0 0 .4em; font-size: 1.25em; line-height: 1.3; }
small { color: var(--muted); font-size: 1em; line-height: 1.55; }

:focus-visible { outline: 3px solid var(--accent-dark); outline-offset: 3px; }
[id], [data-dashboard-block] { scroll-margin-top: var(--sticky-ui-offset); }
[hidden] { display: none !important; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.skip-link {
  position: fixed;
  top: -8rem;
  left: 8px;
  z-index: 100;
  border-radius: var(--radius-sm);
  background: var(--panel);
  color: var(--ink-strong);
  padding: .6em .85em;
  font-weight: 700;
}
.skip-link:focus { top: 8px; }

.shell { min-height: 100vh; }
.topbar {
  position: sticky;
  top: 0;
  z-index: 30;
  border-bottom: 1px solid #0e2d28;
  background: var(--forest);
  color: #fff;
  box-shadow: 0 3px 14px rgba(15, 39, 35, .18);
}
.topbar-inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: min(100%, var(--content));
  margin: 0 auto;
  padding: 12px 20px;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-height: 2.75em;
  min-width: 0;
  color: #fff;
  text-decoration: none;
}
.brand-mark {
  display: grid;
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 13px;
  background: #f2d6c4;
  color: var(--forest);
  font-size: 1.125em;
  font-weight: 700;
}
.brand-copy { display: grid; gap: 1px; }
.brand-copy strong { font-size: 1em; letter-spacing: .01em; }
.brand-copy small { color: #d6e4df; font-size: 1em; }
.topbar-actions { display: flex; order: 3; align-items: center; gap: 8px; }
.nav-actions { display: flex; order: 2; align-items: center; gap: 4px; margin-left: auto; }
.nav-link {
  border-radius: 999px;
  color: #e3ece8;
  padding: .55em .8em;
  text-decoration: none;
  font-size: 1em;
  font-weight: 650;
}
.nav-link:hover, .nav-link[aria-current="page"] { background: rgba(255, 255, 255, .11); color: #fff; }
.reading-settings-trigger {
  min-height: 2.75em;
  border: 1px solid #b9d0c8;
  border-radius: 999px;
  background: #fffefa;
  color: #173f38;
  padding: .55em .85em;
  font-size: 1em;
  font-weight: 700;
  white-space: normal;
}
.reading-settings-trigger:hover { background: #edf5f1; }
.install-app-trigger {
  display: inline-flex;
  align-items: center;
  gap: .4em;
  min-height: 2.75em;
  border: 1px solid #b9d0c8;
  border-radius: 999px;
  background: transparent;
  color: #fff;
  padding: .55em .8em;
  font-size: 1em;
  font-weight: 700;
}
.install-app-trigger:hover { background: rgba(255, 255, 255, .1); }
.install-app-trigger[data-install-ready="true"] { background: #f2d6c4; color: var(--forest); }
.menu-button {
  display: none;
  align-items: center;
  gap: 8px;
  min-width: 2.75em;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 999px;
  background: transparent;
  color: #fff;
  min-height: 2.75em;
  padding: .55em .75em;
  font-size: 1em;
  font-weight: 700;
}
.menu-icon, .menu-icon::before, .menu-icon::after {
  display: block;
  width: 15px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  content: "";
}
.menu-icon { position: relative; }
.menu-icon::before { position: absolute; top: -5px; }
.menu-icon::after { position: absolute; top: 5px; }

main {
  width: min(100%, var(--content));
  margin: 0 auto;
  padding: 36px 20px 72px;
}
.eyebrow {
  display: inline-block;
  color: var(--accent-dark);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: 1em;
  font-weight: 700;
  line-height: 1.45;
}
.library-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(250px, .65fr);
  align-items: end;
  gap: clamp(24px, 5vw, 72px);
  padding: clamp(20px, 3vw, 36px) 0 28px;
}
.library-intro p { max-width: 70ch; margin-bottom: 0; color: var(--muted); font-size: 1em; }
.library-principle {
  display: grid;
  gap: 8px;
  border-top: 3px solid var(--accent);
  background: rgba(255, 254, 250, .66);
  padding: 18px 20px 20px;
  box-shadow: var(--shadow-sm);
}
.library-principle strong { color: var(--ink-strong); }
.library-principle span { color: var(--muted); font-size: 1em; line-height: 1.6; }

.library-tools, .dashboard-tools {
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--panel);
  box-shadow: var(--shadow-sm);
}
.library-tools { padding: 20px; }
.toolbar-heading, .section-head {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
}
.toolbar-heading h2, .section-head h2 { margin-top: 5px; }
.toolbar {
  display: grid;
  grid-template-columns: minmax(220px, 1.7fr) repeat(4, minmax(130px, 1fr));
  gap: 10px;
  margin-top: 16px;
}
.field { display: grid; gap: 7px; min-width: 0; }
.field > span { color: var(--ink); font-size: 1em; font-weight: 700; letter-spacing: .02em; }
.control {
  width: 100%;
  min-height: 2.75em;
  border: 1px solid var(--line-strong);
  border-radius: 11px;
  background: #fff;
  color: var(--ink-strong);
  padding: .6em .7em;
  font-size: 1em;
}
.control:hover { border-color: #8c9d98; }
.control::placeholder { color: #596662; opacity: 1; }
.text-button {
  border: 0;
  background: transparent;
  color: var(--accent-dark);
  min-height: 2.75em;
  padding: .4em 0;
  font-size: 1em;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.section { margin-top: 34px; }
.section-head { margin-bottom: 15px; }
.section-head p { margin: 0 0 8px; color: var(--muted); font-size: 1em; }
.grid { display: grid; gap: 16px; }
.report-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); }
.card {
  display: flex;
  flex-direction: column;
  min-height: 280px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--panel);
  padding: 21px;
  box-shadow: var(--shadow-sm);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.card:hover { transform: translateY(-2px); border-color: var(--line-strong); box-shadow: 0 14px 34px rgba(20, 33, 31, .08); }
.card h3 { margin-top: 10px; font-size: 1.25em; }
.card > p { color: var(--muted); }
.card .card-actions { margin-top: auto; }
.card-meta, .block-badges { display: flex; flex-wrap: wrap; gap: 7px; margin: 14px 0; }
.badge {
  display: inline-flex;
  align-items: center;
  min-height: 2em;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--panel-muted);
  color: var(--muted);
  padding: .3em .6em;
  font-size: 1em;
  font-weight: 650;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
.tone-info { --tone: var(--info); --tone-soft: var(--info-soft); }
.tone-good { --tone: var(--good); --tone-soft: var(--good-soft); }
.tone-warn { --tone: var(--warn); --tone-soft: var(--warn-soft); }
.tone-danger { --tone: var(--danger); --tone-soft: var(--danger-soft); }
.tone-unknown { --tone: var(--semantic-unknown-ink); --tone-soft: var(--semantic-unknown-bg); }
.badge.tone-info, .badge.tone-good, .badge.tone-warn, .badge.tone-danger, .badge.tone-unknown {
  border-color: color-mix(in srgb, var(--tone), white 68%);
  background: var(--tone-soft);
  color: var(--tone);
}
.card-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 18px; }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75em;
  border-radius: 11px;
  padding: .55em .85em;
  text-decoration: none;
  font-size: 1em;
  font-weight: 700;
  line-height: 1.35;
  overflow-wrap: anywhere;
  text-align: center;
}
.button-primary { border: 1px solid var(--forest); background: var(--forest); color: #fff; }
.button-primary:hover { background: #0e302b; }
.button-secondary { border: 1px solid var(--line-strong); background: #fff; color: var(--ink-strong); }
.button-secondary:hover { border-color: var(--forest-light); color: var(--forest); }

.empty {
  grid-column: 1 / -1;
  border: 1px dashed var(--line-strong);
  border-radius: var(--radius-md);
  background: rgba(255, 254, 250, .72);
  color: var(--muted);
  padding: 42px 24px;
  text-align: center;
}
.empty h1 { font-size: clamp(2.25em, 4vw, 2.75em); }
.empty h3 { color: var(--ink-strong); }
.empty-library { display: grid; grid-template-columns: auto minmax(0, 520px); align-items: center; justify-content: center; gap: 20px; text-align: left; }
.empty-mark { color: var(--accent-dark); font-size: 3.2em; font-weight: 700; }

.report-header {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: var(--forest);
  color: #fff;
  padding: clamp(26px, 5vw, 56px);
  box-shadow: var(--shadow-lg);
}
.report-header::after {
  position: absolute;
  right: -70px;
  bottom: -110px;
  width: 270px;
  height: 270px;
  border: 46px solid rgba(242, 214, 196, .1);
  border-radius: 50%;
  content: "";
}
.report-header > * { position: relative; z-index: 1; }
.report-header .eyebrow { color: #f0b38f; }
.report-header h1 { max-width: 930px; color: #fff; }
.report-header > p { max-width: 70ch; margin-bottom: 0; color: #e2ece8; font-size: 1em; }
.report-header .badge { border-color: #78938b; background: #244d46; color: #f2f6f4; }
.report-header .badge.tone-warn { border-color: rgba(255, 213, 136, .35); background: rgba(118, 72, 10, .28); color: #ffe0a5; }
.report-header .button-primary { border-color: #f2d6c5; background: #f2d6c5; color: #3a1a0d; }
.report-header .button-primary:hover { border-color: #fff; background: #fff; color: #173f38; }
.report-title { font-size: clamp(2.25em, 5vw, 2.75em); }
.back-link { display: table; min-height: 2.75em; margin-bottom: 34px; color: #e3ece8; padding: .5em 0; font-size: 1em; font-weight: 700; text-decoration: none; }
.back-link:hover { color: #fff; }
.gallery-header { background: #312c45; }
.gallery-header::after { border-color: rgba(205, 187, 236, .11); }

.dashboard-tools {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  align-items: end;
  gap: 18px;
  margin-top: 20px;
  padding: 14px 16px;
}
.dashboard-tools p { margin: 0 0 12px; color: var(--muted); font-size: 1em; font-weight: 650; }
.dashboard-search-results { grid-column: 1 / -1; }
.report-layout {
  display: grid;
  grid-template-columns: minmax(16rem, 20rem) minmax(0, 1fr);
  align-items: start;
  gap: 22px;
  margin-top: 22px;
}
.section-panel { position: sticky; top: 84px; }
.section-nav-toggle { display: none; }
.side-nav {
  max-height: calc(100vh - 108px);
  overflow-y: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--panel);
  padding: 9px;
  box-shadow: var(--shadow-sm);
  scrollbar-width: thin;
}
.side-nav-label { display: block; padding: 10px 11px 8px; color: var(--ink); font-size: 1em; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.side-nav a {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 7px;
  border-radius: 9px;
  color: var(--muted);
  min-height: 2.75em;
  padding: .55em .65em;
  text-decoration: none;
  font-size: 1em;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.side-nav a span { color: var(--accent-dark); font-size: 1em; font-weight: 700; }
.side-nav a:hover { background: var(--panel-muted); color: var(--ink-strong); }
.block-stack { display: grid; gap: 18px; min-width: 0; }
.block {
  scroll-margin-top: var(--sticky-ui-offset);
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--panel);
  padding: clamp(20px, 3vw, 30px);
  box-shadow: var(--shadow-sm);
}
.block-header { margin-bottom: 20px; }
.block-header h2 { margin-top: 6px; }
.block-intro { max-width: 70ch; margin: 0; color: var(--muted); }
.block-badges { margin-bottom: 0; }
.block-invalid { border-color: var(--danger); }
.prose { max-width: 70ch; }
.prose p:first-child { margin-top: 0; }
.prose p:last-child { margin-bottom: 0; }

.metric-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: 11px; }
.metric {
  display: grid;
  align-content: start;
  min-height: 128px;
  border: 1px solid var(--line);
  border-top: 3px solid var(--line-strong);
  border-radius: 13px;
  background: var(--panel-muted);
  padding: 15px;
}
.metric.tone-info, .metric.tone-good, .metric.tone-warn, .metric.tone-danger, .metric.tone-unknown { border-top-color: var(--tone); background: var(--tone-soft); }
.metric-label { color: var(--ink); font-size: 1em; font-weight: 650; }
.metric strong { margin: 9px 0 5px; color: var(--ink-strong); font-size: 1.5em; line-height: 1.15; overflow-wrap: anywhere; }
.metric small { margin-top: auto; }

.table-scroll-hint { max-width: 70ch; margin: 0 0 .65em; color: var(--ink); font-size: 1em; font-weight: 600; }
.table-wrap { max-width: 100%; overflow: auto; border: 1px solid var(--line-strong); border-radius: 12px; background: var(--panel); overscroll-behavior-inline: contain; }
table { width: 100%; min-width: 52rem; border-collapse: collapse; font-size: 1em; }
th, td { border-bottom: 1px solid var(--line); padding: .8em .9em; text-align: left; vertical-align: top; line-height: 1.55; overflow-wrap: break-word; }
thead th { position: sticky; top: 0; background: #e8eeea; color: var(--ink); font-size: 1em; font-weight: 700; letter-spacing: .02em; }
tbody th { color: var(--ink-strong); font-weight: 700; }
tbody tr:last-child > * { border-bottom: 0; }
tbody tr:nth-child(even) { background: #fbfcfa; }

.item-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 11px; }
.item { border: 1px solid var(--line); border-radius: 13px; padding: 17px; }
.item.tone-info, .item.tone-good, .item.tone-warn, .item.tone-danger, .item.tone-unknown { border-top: 3px solid var(--tone); background: var(--tone-soft); }
.item .badge { margin-bottom: 14px; }
.item p { margin-bottom: 0; color: var(--muted); }
.item small { display: block; margin-top: 10px; }

.funnel { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); gap: 9px; margin: 0; padding: 0; list-style: none; }
.funnel-step { position: relative; display: grid; align-content: start; min-height: 150px; border-radius: 13px; background: #edf2ef; padding: 16px; }
.funnel-step::after { position: absolute; top: 50%; right: -8px; z-index: 2; color: var(--accent-dark); content: "→"; font-weight: 700; }
.funnel-step:last-child::after { display: none; }
.funnel-index { margin-bottom: 18px; color: var(--accent-dark); font-size: 1em; font-weight: 700; }
.funnel-step > span:not(.funnel-index) { color: var(--ink); font-size: 1em; font-weight: 650; }
.funnel-step strong { margin: 6px 0; color: var(--ink-strong); font-size: 1.5em; overflow-wrap: anywhere; }

.bar-list { display: grid; gap: 18px; }
.bar-item { display: grid; gap: 7px; }
.bar-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: .6em 1em; font-size: 1em; }
.bar-heading span { overflow-wrap: anywhere; }
.bar-heading strong { color: var(--ink-strong); }
.bar-track { position: relative; height: 11px; overflow: hidden; border-radius: 999px; background: #e4e9e6; }
.bar-fill { display: block; height: 100%; border-radius: inherit; background: var(--forest-light); }

.timeline { position: relative; display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.timeline::before { position: absolute; top: 8px; bottom: 8px; left: 8px; width: 2px; background: var(--line); content: ""; }
.timeline-event { position: relative; padding: 0 0 24px 36px; }
.timeline-event:last-child { padding-bottom: 0; }
.timeline-event::before { position: absolute; top: 5px; left: 1px; width: 12px; height: 12px; border: 3px solid var(--panel); border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 1px var(--accent); content: ""; }
.timeline-label { display: block; margin-bottom: 5px; color: var(--accent-dark); font-size: 1em; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.timeline-event p { margin: 0; color: var(--muted); }

.glossary { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 11px; margin: 0; }
.glossary > div { border-left: 3px solid #d1dcd7; background: var(--panel-muted); padding: 14px 16px; }
.glossary dt { color: var(--ink-strong); font-weight: 700; }
.glossary dd { margin: 5px 0 0; color: var(--muted); line-height: 1.55; }

.notice {
  --tone: var(--info);
  --tone-soft: var(--info-soft);
  border-left: 4px solid var(--tone);
  border-radius: 10px;
  background: var(--tone-soft);
  padding: 14px 16px;
}
.block > .notice { margin-top: 20px; }
.notice strong { color: var(--tone); }
.notice p { margin: 5px 0 0; color: var(--ink); }
.notice ul { margin-bottom: 0; }
.block-sources { margin-top: 22px; border-top: 1px solid var(--line); padding-top: 16px; color: var(--ink); font-size: 1em; }
.block-sources ul { margin-bottom: 0; padding-left: 20px; }

.explorer-controls {
  display: grid;
  grid-template-columns: minmax(min(100%, 20rem), 2fr) repeat(2, minmax(min(100%, 11rem), 1fr));
  gap: .8em;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--panel-muted);
  padding: 1em;
}
.explorer-status-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75em; margin: 1em 0; }
.explorer-status-row p { margin: 0; color: var(--ink); font-weight: 700; }
.explorer-results { display: flex; flex-wrap: wrap; gap: .55em; margin: .75em 0; }
.explorer-results:empty { display: none; }
.explorer-results button {
  min-height: 2.75em;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  background: #fff;
  color: var(--forest);
  padding: .45em .75em;
  font-size: 1em;
  font-weight: 700;
  text-align: left;
}
.explorer-results button:hover { border-color: var(--forest-light); background: var(--good-soft); }
.opportunity-list, .atlas-sections { display: grid; gap: .75em; }
.opportunity-card, .atlas-section, .evidence-panel {
  scroll-margin-top: var(--sticky-ui-offset);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  background: #fff;
}
.opportunity-card > summary, .atlas-section > summary, .evidence-panel > summary {
  min-height: 3.2em;
  color: var(--ink-strong);
  padding: .75em .9em;
  font-size: 1em;
  font-weight: 700;
  line-height: 1.45;
  cursor: pointer;
}
.opportunity-card > summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: .75em;
  list-style: none;
}
.opportunity-card > summary::-webkit-details-marker { display: none; }
.opportunity-card > summary::after { grid-column: 1 / -1; color: var(--accent-dark); content: "Open complete dossier ↓"; font-size: 1em; font-weight: 650; }
.opportunity-card[open] > summary::after { content: "Close dossier ↑"; }
.opportunity-rank {
  display: inline-grid;
  width: 2.75em;
  height: 2.75em;
  place-items: center;
  border-radius: 999px;
  background: var(--forest);
  color: #fff;
  font-weight: 700;
}
.opportunity-summary-copy { display: grid; gap: .2em; min-width: 0; }
.opportunity-summary-copy strong { font-size: 1.2em; overflow-wrap: anywhere; }
.opportunity-summary-copy span { color: var(--muted); font-weight: 500; }
.opportunity-score { color: var(--forest); font-size: 1.15em; font-weight: 800; white-space: nowrap; }
.opportunity-body { display: grid; gap: 1em; border-top: 1px solid var(--line); padding: clamp(1em, 3vw, 1.5em); }
.opportunity-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 9.5rem), 1fr)); gap: .6em; }
.opportunity-metrics > span { display: grid; gap: .2em; border-left: 3px solid var(--forest-light); background: var(--panel-muted); padding: .7em .8em; }
.opportunity-metrics small { color: var(--ink); font-size: 1em; font-weight: 650; }
.opportunity-metrics strong { color: var(--ink-strong); font-size: 1.1em; overflow-wrap: anywhere; }
.evidence-panel { background: var(--panel-muted); }
.evidence-panel > .markdown-content { border-top: 1px solid var(--line); padding: clamp(1em, 3vw, 1.5em); }

.atlas-tools { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: end; gap: .8em; margin-bottom: .8em; }
.atlas-tools p { margin: 0 0 .65em; color: var(--ink); font-weight: 700; }
.atlas-section > summary { display: grid; grid-template-columns: 2.5em minmax(0, 1fr); align-items: start; gap: .65em; }
.atlas-section > summary span { color: var(--accent-dark); }
.atlas-section > .atlas-content { border-top: 1px solid var(--line); padding: clamp(1em, 3vw, 1.6em); }

.markdown-content { max-width: 100%; color: var(--ink); line-height: 1.65; }
.markdown-content > :first-child { margin-top: 0; }
.markdown-content > :last-child { margin-bottom: 0; }
.markdown-content p, .markdown-content li, .markdown-content blockquote { max-width: 75ch; }
.markdown-content h1 { margin-top: 1.1em; font-size: clamp(2.25em, 5vw, 2.75em); }
.markdown-content h2 { margin-top: 1.35em; font-size: clamp(1.75em, 4vw, 2.125em); }
.markdown-content h3 { margin-top: 1.3em; font-size: clamp(1.375em, 3vw, 1.625em); }
.markdown-content h4, .markdown-content h5, .markdown-content h6 { margin-top: 1.2em; font-size: clamp(1.2em, 2.5vw, 1.375em); }
.markdown-content blockquote { margin-left: 0; border-left: 4px solid var(--accent); background: var(--warn-soft); padding: .8em 1em; }
.markdown-content blockquote p { margin: 0; }
.markdown-content a { color: #075f91; text-underline-offset: .15em; }
.markdown-content code { border-radius: .3em; background: #e8eeea; color: var(--ink-strong); padding: .1em .25em; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 1em; }
.markdown-code { max-width: 100%; overflow: auto; border-radius: var(--radius-sm); background: #172522; color: #fff; padding: 1em; font-size: 1em; }
.markdown-table-wrap { margin-bottom: 1.2em; }

.source-reader .button { margin-top: 2px; }
.source-integrity { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: .75em; margin: 0 0 1em; }
.source-integrity > div { border-left: 3px solid var(--line-strong); background: var(--panel-muted); padding: .7em .8em; }
.source-integrity dt { color: var(--ink); font-weight: 700; }
.source-integrity dd { margin: .2em 0 0; color: var(--muted); overflow-wrap: anywhere; }
.source-integrity code { font-size: 1em; }
.reader-tools { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .8em; margin-top: 1.2em; }
.reader-tools p { margin: 0 0 .65em; color: var(--ink); font-weight: 700; }
.full-report-content {
  max-width: 100%;
  margin-top: 1em;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-md);
  background: #fff;
  padding: clamp(1em, 4vw, 2em);
}
.full-report {
  max-height: 70vh;
  overflow: auto;
  max-width: 75ch;
  margin: 18px 0 0;
  border-radius: 12px;
  background: #172522;
  color: #e3ece8;
  padding: 20px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font-family: var(--font-sans);
  font-size: 1em;
  line-height: 1.65;
}
.footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 9px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  padding: 28px 20px 42px;
  font-size: 1em;
}

.reading-dialog {
  width: min(46rem, calc(100% - 2rem));
  max-height: calc(100dvh - 2rem);
  overflow: auto;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-lg);
  background: var(--panel);
  color: var(--ink);
  padding: 0;
  box-shadow: var(--shadow-lg);
  font-family: var(--font-sans);
  font-size: var(--reading-body-size);
  line-height: 1.6;
}
.reading-dialog::backdrop { background: rgba(10, 24, 21, .72); }
.reading-dialog-form { display: grid; gap: 1em; padding: clamp(1.1em, 4vw, 2em); }
.reading-dialog-header { display: flex; align-items: start; justify-content: space-between; gap: 1em; }
.reading-dialog-header h2 { margin-top: .15em; }
.dialog-close {
  min-height: 2.75em;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  background: #fff;
  color: var(--ink-strong);
  padding: .5em .75em;
  font-weight: 700;
}
.reading-dialog-form > p { max-width: 70ch; margin: 0; }
.reading-options { display: grid; gap: .65em; min-width: 0; margin: 0; border: 0; padding: 0; }
.reading-options legend { margin-bottom: .55em; color: var(--ink-strong); font-weight: 700; }
.reading-option {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: .75em;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  background: #fff;
  padding: .75em;
  cursor: pointer;
}
.reading-option:has(input:checked) { border: 3px solid var(--forest-light); background: var(--good-soft); padding: calc(.75em - 2px); }
.reading-option input { width: 1.25em; height: 1.25em; margin: .15em 0 0; accent-color: var(--forest); }
.reading-option > span { display: grid; gap: .15em; }
.reading-option strong { color: var(--ink-strong); font-size: 1.1em; }
.reading-option span span { color: var(--muted); }
.reading-current { border-left: 4px solid var(--forest-light); background: var(--panel-muted); padding: .65em .8em; }
.reading-dialog-actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75em; }

.gallery-qa {
  display: grid;
  gap: 1em;
  margin-top: 1.25em;
  border: 2px solid #6d5c92;
  border-radius: var(--radius-lg);
  background: #f8f5ff;
  padding: clamp(1em, 3vw, 1.5em);
  box-shadow: var(--shadow-sm);
}
.gallery-qa-heading { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1em; }
.gallery-qa-heading h2 { margin-top: .15em; }
.gallery-qa-heading p, .gallery-qa > p { max-width: 70ch; margin: 0; }
.qa-size-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr)); gap: .65em; }
.qa-size-button[aria-pressed="true"] { border: 3px solid var(--forest); background: var(--good-soft); color: var(--forest); padding: calc(.55em - 2px) calc(.85em - 2px); }
.qa-actions { display: flex; flex-wrap: wrap; align-items: start; gap: .75em; }
.qa-guidance { flex: 1 1 20rem; min-width: 0; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); background: #fff; padding: .65em .8em; }
.qa-guidance summary { min-height: 2em; color: var(--ink-strong); font-weight: 700; cursor: pointer; }
.qa-guidance p { max-width: 70ch; margin-bottom: 0; }
.tooltip-wrap { position: relative; display: inline-flex; max-width: 100%; }
.tooltip {
  position: absolute;
  right: 0;
  bottom: calc(100% + .5em);
  z-index: 40;
  display: none;
  width: min(22rem, calc(100vw - 2rem));
  border: 2px solid #dce8e4;
  border-radius: var(--radius-sm);
  background: #132f2a;
  color: #fff;
  padding: .7em .8em;
  font-size: 1em;
  line-height: 1.55;
  box-shadow: var(--shadow-lg);
}
.tooltip-trigger:hover + .tooltip,
.tooltip-trigger:focus-visible + .tooltip,
.tooltip[data-open] { display: block; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

@media (max-width: 1040px) {
  .toolbar { grid-template-columns: minmax(220px, 2fr) repeat(2, minmax(150px, 1fr)); }
  .field-search { grid-row: span 2; }
  .explorer-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .explorer-controls .field-search { grid-column: 1 / -1; grid-row: auto; }
}

/* Preserve the full header labels when larger reading presets consume more
   horizontal space. The primary navigation remains available in the menu. */
@media (max-width: 1280px) {
  .menu-button { display: inline-flex; }
  .nav-actions {
    position: absolute;
    top: calc(100% + 8px);
    right: 16px;
    display: none;
    width: min(270px, calc(100vw - 32px));
    align-items: stretch;
    flex-direction: column;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 14px;
    background: var(--forest);
    padding: 8px;
    box-shadow: var(--shadow-lg);
  }
  .nav-actions[data-open] { display: flex; }
  .nav-link { border-radius: 9px; padding: 11px 12px; }
}

@media (max-width: 1100px) {
  .menu-button { display: inline-flex; }
  .nav-actions {
    position: absolute;
    top: calc(100% + 8px);
    right: 16px;
    display: none;
    width: min(270px, calc(100vw - 32px));
    align-items: stretch;
    flex-direction: column;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 14px;
    background: var(--forest);
    padding: 8px;
    box-shadow: var(--shadow-lg);
  }
  .nav-actions[data-open] { display: flex; }
  .nav-link { border-radius: 9px; padding: 11px 12px; }
  .library-intro { grid-template-columns: 1fr; align-items: start; }
  .library-principle { max-width: 580px; }
  .report-layout { grid-template-columns: 1fr; }
  .section-panel { top: 5.25em; z-index: 20; }
  .section-nav-toggle {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    border: 1px solid var(--line-strong);
    border-radius: 12px;
    background: var(--panel);
    color: var(--ink-strong);
    padding: 12px 14px;
    box-shadow: var(--shadow-sm);
    font-weight: 700;
  }
  .side-nav { display: none; max-height: min(55vh, 430px); margin-top: 7px; }
  .side-nav[data-open] { display: block; }
  .block { scroll-margin-top: var(--sticky-ui-offset); }
}

@media (max-width: 700px) {
  main { padding: 24px 14px 54px; }
  .topbar-inner { padding: 10px 14px; }
  .brand-copy small { display: none; }
  .toolbar-heading { align-items: center; }
  .toolbar { grid-template-columns: 1fr; }
  .field-search { grid-row: auto; }
  .dashboard-tools { grid-template-columns: 1fr; gap: 4px; }
  .dashboard-tools p { margin: 0; }
  .dashboard-search-results { grid-column: auto; }
  .explorer-controls, .atlas-tools, .reader-tools { grid-template-columns: 1fr; }
  .atlas-tools p { margin: 0; }
  .report-header { border-radius: 18px; }
  .back-link { margin-bottom: 26px; }
  .card-actions { flex-direction: column; }
  .button { width: 100%; }
  .empty-library { grid-template-columns: 1fr; text-align: center; }
  .empty-mark { font-size: 2.6em; }
  .funnel { grid-template-columns: 1fr; }
  .funnel-step { min-height: 118px; }
  .funnel-step::after { top: auto; right: 50%; bottom: -10px; transform: rotate(90deg); }
  .glossary { grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
  .topbar-inner { gap: 8px; }
  .brand-mark { width: 38px; height: 38px; }
  .brand-copy { display: none; }
  .menu-button span:last-child { display: none; }
  .menu-button { padding: 10px; }
  .library-tools, .block { padding: 17px; }
  .library-intro { padding-top: 26px; }
  .toolbar-heading { align-items: end; }
  .toolbar-heading h2 { font-size: 1.75em; }
  .section-head { align-items: end; }
  .report-header { padding: 24px 19px; }
  .metric-grid, .item-grid { grid-template-columns: 1fr; }
  .opportunity-card > summary { grid-template-columns: auto minmax(0, 1fr); }
  .opportunity-score { grid-column: 2; white-space: normal; }
  .reading-dialog { width: calc(100% - 1rem); max-height: calc(100dvh - 1rem); }
  .reading-dialog-header { display: grid; }
  .reading-dialog-actions .button { width: 100%; }
  .tooltip { right: auto; left: 0; }
}

/* Interactive report workspace */
.reading-settings-compact { display: none; }
.workspace-report-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 1.25em;
  overflow: visible;
  padding: clamp(.95em, 2vw, 1.3em);
  box-shadow: var(--shadow-sm);
}
.workspace-report-header::after { display: none; }
.workspace-report-header .back-link { min-height: 2.2em; margin-bottom: .15em; padding: .15em 0; }
.workspace-report-header .report-title { max-width: 52ch; font-size: clamp(1.6em, 2.6vw, 2em); line-height: 1.12; }
.workspace-report-header > p, .workspace-report-header .report-header-main > p { display: none; }
.workspace-report-header .card-meta { margin: .7em 0 0; }
.report-header-main { min-width: 0; }
.report-header-actions { display: flex; flex-wrap: wrap; gap: .6em; justify-content: flex-end; }

.study-search {
  display: grid;
  grid-template-columns: minmax(12rem, .45fr) minmax(0, 1fr);
  align-items: end;
  gap: .65em 1em;
  margin-top: 1em;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--panel);
  padding: clamp(1em, 2vw, 1.25em);
  box-shadow: var(--shadow-sm);
}
.study-search-heading { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1em; }
.study-search-heading h2 { margin: .08em 0 0; font-size: clamp(1.35em, 2vw, 1.65em); }
.study-search-controls { display: grid; grid-template-columns: minmax(0, 2fr) minmax(12rem, .8fr); gap: .75em; margin-top: .8em; }
.study-search-controls { margin-top: 0; }
.study-search-status { grid-column: 1 / -1; margin-top: 0; color: var(--muted); font-weight: 650; }
.study-search-status.is-idle { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
.study-search-results { display: grid; grid-column: 1 / -1; gap: .65em; margin-top: .25em; }
.study-search > .show-more, .study-search > .compact-empty { grid-column: 1 / -1; }
.search-result { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1em; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel-muted); padding: .85em; }
.search-result h3 { margin: .15em 0; font-size: 1.18em; }
.search-result p { max-width: 72ch; margin: .2em 0; color: var(--muted); }
.result-type { color: var(--accent-dark); font-size: 1em; font-weight: 700; }
.show-more { margin-top: .75em; }
.compact-empty { padding: 1.2em; }

.workspace-layout { display: grid; grid-template-columns: minmax(13.5rem, 16.5rem) minmax(0, 1fr); align-items: start; gap: 1.15em; margin-top: 1.15em; }
.workspace-nav-panel { position: sticky; top: calc(var(--global-header-height) + .5rem); min-width: 0; }
.workspace-nav-toggle { display: none; }
.workspace-nav { display: grid; gap: .25em; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--panel); padding: .45em; box-shadow: var(--shadow-sm); }
.workspace-nav-link, .workspace-nav > a {
  display: grid;
  gap: .12em;
  min-width: 0;
  min-height: 3.2em;
  border-radius: .65em;
  color: var(--ink);
  padding: .65em .7em;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.workspace-nav-link small, .workspace-nav > a small { color: var(--muted); font-size: 1em; }
.workspace-nav-link:hover, .workspace-nav-link:focus-visible, .workspace-nav-link[aria-current="page"], .workspace-nav > a[aria-current="page"] { background: #e6efeb; color: var(--forest); }
.workspace-nav-link[aria-current="page"] { box-shadow: inset 3px 0 var(--forest); }
.workspace-main-column, .workspace-view { display: grid; gap: 1em; min-width: 0; }
.workspace-view > * { min-width: 0; max-width: 100%; }
.workspace-view-header { border-left: 4px solid var(--accent); background: rgba(255, 254, 250, .72); padding: .75em 1em; }
.workspace-view-header h2 { margin: .08em 0 .15em; }
.workspace-view-header p { max-width: 72ch; margin: 0; color: var(--muted); }
.workspace-section-heading { margin-bottom: 1em; }
.workspace-section-heading p { max-width: 72ch; margin-bottom: 0; color: var(--muted); }
.secondary-nav { display: flex; flex-wrap: wrap; gap: .45em; border-bottom: 1px solid var(--line); padding-bottom: .75em; }
.secondary-nav a { min-height: 2.75em; border: 1px solid var(--line); border-radius: 999px; background: var(--panel); color: var(--forest); padding: .5em .75em; font-weight: 700; text-decoration: none; }
.next-step { display: flex; align-items: center; justify-content: space-between; gap: 1em; min-height: 3.2em; border: 1px solid var(--forest-light); border-radius: var(--radius-md); background: #e7f0ec; color: var(--forest); padding: .75em 1em; font-weight: 800; text-decoration: none; }
.next-step:hover, .next-step:focus-visible { background: #dfeae5; }

.launchpad { scroll-margin-top: var(--sticky-ui-offset); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--panel); padding: clamp(1em, 3vw, 1.5em); box-shadow: var(--shadow-sm); }
.launch-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7em; }
.launch-card { display: grid; align-content: start; gap: .38em; min-width: 0; min-height: 13em; border: 1px solid var(--line); border-top: 4px solid var(--line-strong); border-radius: var(--radius-sm); background: var(--panel-muted); color: var(--ink); padding: .9em; text-align: left; text-decoration: none; overflow-wrap: anywhere; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
button.launch-card { width: 100%; font: inherit; }
.launch-card:hover, .launch-card:focus-visible { transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.launch-card > strong { color: var(--ink-strong); font-size: clamp(1.25em, 2vw, 1.55em); line-height: 1.2; }
.launch-card > small { margin-top: auto; color: var(--muted); }
.launch-card > b { color: var(--forest); }
.launch-label { font-weight: 700; }
.semantic-label { display: inline-flex; align-items: center; gap: .4em; color: var(--tone-ink, var(--ink)); font-weight: 750; }
.semantic-positive { --tone-bg: var(--semantic-positive-bg); --tone-border: var(--semantic-positive-border); --tone-ink: var(--semantic-positive-ink); }
.semantic-caution { --tone-bg: var(--semantic-caution-bg); --tone-border: var(--semantic-caution-border); --tone-ink: var(--semantic-caution-ink); }
.semantic-danger { --tone-bg: var(--semantic-danger-bg); --tone-border: var(--semantic-danger-border); --tone-ink: var(--semantic-danger-ink); }
.semantic-info { --tone-bg: var(--semantic-info-bg); --tone-border: var(--semantic-info-border); --tone-ink: var(--semantic-info-ink); }
.semantic-unknown { --tone-bg: var(--semantic-unknown-bg); --tone-border: var(--semantic-unknown-border); --tone-ink: var(--semantic-unknown-ink); }
.outcome-positive { --tone-bg: var(--semantic-positive-bg); --tone-border: var(--semantic-positive-border); --tone-ink: var(--semantic-positive-ink); }
.outcome-neutral { --tone-bg: var(--semantic-info-bg); --tone-border: var(--semantic-info-border); --tone-ink: var(--semantic-info-ink); }
.outcome-caution { --tone-bg: var(--semantic-caution-bg); --tone-border: var(--semantic-caution-border); --tone-ink: var(--semantic-caution-ink); }
.outcome-risk { --tone-bg: var(--semantic-danger-bg); --tone-border: var(--semantic-danger-border); --tone-ink: var(--semantic-danger-ink); }
.launch-card.outcome-positive, .launch-card.outcome-neutral, .launch-card.outcome-caution, .launch-card.outcome-risk { border-top-color: var(--tone-border); background: var(--tone-bg); }
.launch-card.is-featured { box-shadow: inset 0 0 0 2px var(--semantic-positive-border), var(--shadow-sm); }
.outcome-label { color: var(--tone-ink); }
.cta-tail { display: inline-flex; gap: .25em; white-space: nowrap; }
.mini-funnel { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .5em; margin-top: 1em; }
.mini-funnel > div { display: grid; gap: .12em; border-left: 3px solid var(--forest-light); background: var(--panel-muted); padding: .65em; }
.mini-funnel > div > span { color: var(--accent-dark); font-weight: 800; }
.mini-funnel strong { font-size: 1.35em; }
.semantic-legend { border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel); padding: .75em .9em; }
.semantic-legend summary { min-height: 2em; color: var(--ink-strong); font-weight: 800; cursor: pointer; }
.semantic-legend-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: .5em; margin-top: .65em; }
.semantic-legend-grid span { display: flex; gap: .45em; border: 1px solid var(--tone-border); border-radius: .6em; background: var(--tone-bg); color: var(--tone-ink); padding: .55em .65em; font-weight: 700; }
.semantic-legend p { margin-bottom: 0; }
.next-choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7em; }
.next-choice-grid header { grid-column: 1 / -1; }
.next-choice-grid a { display: grid; gap: .35em; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel); color: var(--ink); padding: .9em; text-decoration: none; }
.next-choice-grid a strong { color: var(--forest); font-size: 1.18em; }

.evidence-context-row, .candidate-evidence-row { display: flex; flex-wrap: wrap; gap: .5em; }
.evidence-verified, .evidence-contextual { --tone-bg: var(--semantic-info-bg); --tone-border: var(--semantic-info-border); --tone-ink: var(--semantic-info-ink); }
.evidence-modeled { --tone-bg: var(--semantic-caution-bg); --tone-border: var(--semantic-caution-border); --tone-ink: var(--semantic-caution-ink); }
.evidence-unknown { --tone-bg: var(--semantic-unknown-bg); --tone-border: var(--semantic-unknown-border); --tone-ink: var(--semantic-unknown-ink); }
.evidence-marker { display: inline-flex; align-items: center; gap: .4em; width: fit-content; max-width: 100%; border: 1px solid var(--tone-border); border-radius: 999px; background: var(--tone-bg); color: var(--tone-ink); padding: .35em .6em; font-weight: 750; line-height: 1.35; }
.info-popover-wrap { display: inline-flex; max-width: 100%; }
.evidence-badge { display: inline-flex; align-items: center; gap: .4em; max-width: 100%; min-height: 2.5em; border: 1px solid var(--tone-border); border-radius: 999px; background: var(--tone-bg); color: var(--tone-ink); padding: .4em .65em; font-size: 1em; font-weight: 750; line-height: 1.35; text-align: left; overflow-wrap: anywhere; }
.info-popover { position: fixed; z-index: 120; display: grid; gap: .35em; max-height: min(22rem, calc(100dvh - 1rem)); overflow: auto; border: 2px solid var(--semantic-info-border); border-radius: var(--radius-sm); background: #f8fbfd; color: var(--ink); padding: .75em .85em; box-shadow: var(--shadow-lg); font-size: var(--reading-body-size); }
.info-popover strong { color: var(--ink-strong); }

.opportunity-controls { border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--panel); padding: .9em; }
.essential-filter-grid, .advanced-filter-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7em; }
.essential-filter-grid .field-search { grid-column: span 2; }
.advanced-filters { margin-top: .8em; border-top: 1px solid var(--line); padding-top: .7em; }
.advanced-filters summary { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5em; min-height: 2.5em; color: var(--ink-strong); font-weight: 800; cursor: pointer; }
.advanced-filters summary small { color: var(--muted); font-weight: 500; }
.advanced-filter-grid { margin-top: .7em; }
.opportunity-results-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .7em; }
.opportunity-results-heading p { margin: 0; font-weight: 800; }
.active-filter-chips, .comparison-chips { display: flex; flex-wrap: wrap; gap: .45em; }
.active-filter-chips:empty, .comparison-chips:empty { display: none; }
.active-filter-chips button, .comparison-chips button { min-height: 2.5em; border: 1px solid var(--line-strong); border-radius: 999px; background: #fff; color: var(--ink); padding: .4em .65em; font-size: 1em; }
.comparison-tray { display: grid; gap: .65em; border: 1px solid var(--semantic-info-border); border-radius: var(--radius-sm); background: var(--semantic-info-bg); padding: .8em; }
.comparison-tray > div:first-child { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5em; }
.comparison-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6em; }
.is-disabled { pointer-events: none; opacity: .7; }
.opportunity-summary-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75em; }
.opportunity-summary-card { display: grid; align-content: start; gap: .75em; min-width: 0; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--panel); padding: 1em; box-shadow: var(--shadow-sm); }
.opportunity-card-heading { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: .65em; min-width: 0; }
.opportunity-card-heading h3 { margin: 0; font-size: 1.22em; overflow-wrap: anywhere; }
.opportunity-card-heading p { margin: .18em 0 0; color: var(--muted); }
.opportunity-card-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5em; }
.opportunity-card-metrics > span { display: grid; gap: .15em; min-width: 0; border-left: 3px solid var(--forest-light); background: var(--panel-muted); padding: .55em .65em; }
.opportunity-card-metrics small { color: var(--ink); font-weight: 650; }
.opportunity-card-metrics strong { overflow-wrap: anywhere; }
.opportunity-risk { display: grid; gap: .25em; margin: 0; border-left: 4px solid var(--semantic-danger-border); background: var(--semantic-danger-bg); color: var(--ink); padding: .65em .75em; overflow-wrap: anywhere; }
.opportunity-risk strong { color: var(--semantic-danger-ink); }
.opportunity-card-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .65em; margin-top: auto; }
.compare-check { display: flex; align-items: center; gap: .45em; min-height: 2.75em; color: var(--ink); font-weight: 700; }
.compare-check input, .comparison-selector input { width: 1.25em; height: 1.25em; accent-color: var(--forest); }

.comparison-presets { display: flex; flex-wrap: wrap; gap: .5em; }
.compare-workspace { display: grid; gap: 1em; min-width: 0; max-width: 100%; }
.comparison-presets button { min-height: 2.75em; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--panel); color: var(--forest); padding: .5em .7em; font: inherit; font-weight: 700; }
.comparison-presets button { display: inline-flex; align-items: center; gap: .4em; }
.comparison-presets button[aria-pressed="true"] { border: 2px solid var(--forest); background: #dfece6; color: var(--forest); box-shadow: inset 0 0 0 1px #fff; padding: calc(.5em - 1px) calc(.7em - 1px); }
.comparison-preset-status, .comparison-limit-note { margin: 0; color: var(--ink); font-weight: 700; }
.comparison-preset-status { border-left: 4px solid var(--semantic-info-border); background: var(--semantic-info-bg); padding: .55em .7em; }
.comparison-selector { margin: 0; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--panel); padding: .9em; }
.comparison-selector legend { color: var(--ink-strong); font-weight: 800; }
.comparison-selector > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35em .75em; }
.comparison-selector label { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: .5em; min-width: 0; padding: .35em; }
.comparison-selector span { overflow-wrap: anywhere; }
.comparison-summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75em; }
.comparison-table-wrap { max-width: 100%; overflow-x: auto; }
.comparison-table { min-width: 70rem; }
.comparison-mobile-cards { display: none; }

.decision-map-disclosure { margin-bottom: .7em; }
.decision-map-scroll { max-width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-sm); background: #fbfcfa; }
.decision-map-svg { width: 100%; min-width: 48rem; height: auto; }
.chart-axis { stroke: #455651; stroke-width: 2; }
.chart-axis-label, .chart-tick, .decision-point-label { fill: var(--ink); font-family: var(--font-sans); font-size: var(--reading-body-size); }
.decision-point { stroke-width: 3; transition: stroke-width .18s ease, filter .18s ease; }
.decision-map-svg a:focus .decision-point, .decision-map-svg a:hover .decision-point { stroke-width: 6; filter: drop-shadow(0 2px 3px rgba(18, 32, 29, .2)); }
.band-high { fill: #7fae90; stroke: #285e40; }
.band-medium { fill: #d5af67; stroke: #7b5106; }
.band-lower { fill: #8aaabd; stroke: #315f78; }
.decision-point-label { font-weight: 800; pointer-events: none; }
.chart-legend { display: flex; flex-wrap: wrap; gap: .7em; margin: .7em 0; }
.chart-legend span { display: inline-flex; align-items: center; gap: .35em; }
.chart-legend i { width: 1.1em; height: 1.1em; border: 2px solid; border-radius: 50%; }
.decision-map-table { margin-top: .8em; }
.decision-map-table summary { min-height: 2.75em; color: var(--forest); font-weight: 800; cursor: pointer; }

.deep-source-atlas .atlas-section > summary { grid-template-columns: 2.4em minmax(0, 1fr) auto; }
.disclosure-chevron { transition: transform .18s ease; }
.atlas-section[open] .disclosure-chevron { transform: rotate(180deg); }
.atlas-lazy-body:empty { display: none; }

.candidate-dialog { position: fixed; inset: 0 0 0 auto; width: min(62rem, 92vw); max-width: 100%; height: 100dvh; max-height: 100dvh; margin: 0 0 0 auto; overflow: hidden; border: 0; border-left: 1px solid var(--line-strong); border-radius: var(--radius-lg) 0 0 var(--radius-lg); background: var(--panel); color: var(--ink); padding: 0; box-shadow: -18px 0 50px rgba(10, 24, 21, .2); font-size: var(--reading-body-size); animation: drawer-in .18s ease-out; }
.candidate-dialog::backdrop { background: rgba(10, 24, 21, .66); }
@keyframes drawer-in { from { transform: translateX(1.5rem); opacity: .92; } to { transform: translateX(0); opacity: 1; } }
.candidate-sheet { display: grid; grid-template-rows: auto minmax(0, 1fr); height: 100%; min-width: 0; }
.candidate-dialog-header { display: flex; align-items: start; justify-content: space-between; gap: 1em; border-bottom: 1px solid var(--line); background: #edf3ef; padding: 1em; }
.candidate-dialog-header > div { min-width: 0; }
.candidate-dialog-header h2 { margin: .12em 0; font-size: clamp(1.65em, 3vw, 2.05em); overflow-wrap: anywhere; }
.candidate-dialog-header p { margin: 0; color: var(--muted); }
.candidate-close { flex: 0 0 auto; }
.candidate-dialog-scroll { display: grid; align-content: start; gap: 1em; min-width: 0; overflow: auto; padding: clamp(.9em, 3vw, 1.35em); overscroll-behavior: contain; touch-action: pan-y; scrollbar-gutter: stable; }
.candidate-metric-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr)); gap: .55em; min-width: 0; }
.candidate-metric-grid > span { display: grid; gap: .2em; min-width: 0; border-left: 3px solid var(--forest-light); background: var(--panel-muted); padding: .65em .7em; }
.candidate-metric-grid small { color: var(--ink); font-weight: 700; }
.candidate-metric-grid strong { font-size: 1.12em; overflow-wrap: anywhere; }
.material-risk { border-left: 5px solid var(--semantic-danger-border); border-radius: .6em; background: var(--semantic-danger-bg); padding: .75em .85em; }
.material-risk strong { color: var(--semantic-danger-ink); }
.material-risk p { margin: .25em 0 0; overflow-wrap: anywhere; }
.candidate-metadata { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55em; margin: 0; }
.candidate-metadata > div { min-width: 0; border: 1px solid var(--line); border-radius: .6em; background: var(--panel-muted); padding: .65em .75em; }
.candidate-metadata dt { color: var(--ink-strong); font-weight: 800; }
.candidate-metadata dd { margin: .2em 0 0; color: var(--muted); overflow-wrap: anywhere; }
.candidate-tabs { display: flex; flex-wrap: wrap; gap: .4em; border-bottom: 1px solid var(--line); padding-bottom: .55em; }
.candidate-tabs button { min-height: 2.75em; border: 1px solid var(--line-strong); border-radius: 999px; background: #fff; color: var(--ink); padding: .45em .7em; font: inherit; font-weight: 700; }
.candidate-tabs button[aria-selected="true"] { border-color: var(--forest); background: var(--forest); color: #fff; }
.candidate-tab-panel { min-width: 0; border: 1px solid var(--line); border-radius: var(--radius-sm); background: #fff; padding: clamp(.85em, 2vw, 1.2em); overflow-wrap: anywhere; }
.candidate-tab-panel table { min-width: 42rem; }
.candidate-tab-panel h4[id*="complete-source-list"] + ul { display: flex; flex-wrap: wrap; gap: .5em; padding: 0; list-style: none; }
.candidate-tab-panel h4[id*="complete-source-list"] + ul li { margin: 0; }
.candidate-tab-panel h4[id*="complete-source-list"] + ul a { display: inline-flex; min-height: 2.75em; align-items: center; border: 1px solid var(--semantic-info-border); border-radius: 999px; background: var(--semantic-info-bg); color: var(--semantic-info-ink); padding: .45em .7em; font-weight: 750; text-decoration-thickness: .1em; }

.full-report-actions { display: flex; flex-wrap: wrap; gap: .6em; }
.loading-status { border-left: 4px solid var(--semantic-info-border); background: var(--semantic-info-bg); padding: .75em; }
.loading-error { border-left: 5px solid var(--semantic-danger-border); border-radius: .6em; background: var(--semantic-danger-bg); padding: .8em; }
.loading-error strong { color: var(--semantic-danger-ink); }
.loading-error > div { display: flex; flex-wrap: wrap; gap: .6em; }

.library-search-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .75em; margin-top: .75em; }
.library-extra-filters { display: grid; gap: .85em; margin-top: .85em; }
.library-primary-filters, .library-secondary-filters { display: grid; align-items: start; gap: .75em; }
.library-primary-filters { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.library-secondary-row { display: grid; grid-template-columns: minmax(0, 3fr) minmax(18rem, 1.35fr); align-items: start; gap: .9em; }
.library-secondary-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.library-extra-filters .field, .library-extra-filters .control { align-self: start; }
.library-filter-toggle { display: none; }
.library-quick-view-region { display: grid; gap: .45em; margin-top: .9em; border-top: 1px solid var(--line); padding-top: .8em; }
.library-quick-view-label { color: var(--ink-strong); font-weight: 800; }
.catalogue-quick-views { display: flex; flex-wrap: wrap; align-items: center; gap: .55em; min-width: 0; }
.catalogue-quick-views .text-button { min-height: 2.75em; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--panel-muted); color: var(--ink-strong); padding: .45em .75em; text-decoration: none; }
.catalogue-quick-views .text-button:hover, .catalogue-quick-views .text-button:focus-visible { border-color: var(--forest); background: #e8f0ed; }
.catalogue-quick-views .text-button[aria-pressed="true"] { border-color: var(--forest); background: var(--forest); color: #fff; }
.catalogue-groups { display: grid; gap: 2rem; }
.catalogue-group { min-width: 0; }
.catalogue-group-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .75em; margin-bottom: 1em; border-bottom: 1px solid var(--line); padding-bottom: .65em; }
.catalogue-group-heading h3 { margin: 0; font-size: clamp(1.4rem, 2vw, 1.7rem); }
.catalogue-group-heading span { color: var(--muted); font-size: 1rem; font-weight: 700; }
.report-grid-featured { grid-template-columns: minmax(0, min(100%, 48rem)); justify-content: start; }
.report-grid-featured .card { min-height: 0; }

.workspace-pattern-gallery { overflow: visible; }
.gallery-pattern-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7em; }
.gallery-component-stack { display: grid; gap: .8em; margin-top: 1em; }
.gallery-nav { position: static; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.decision-map-placeholder { position: relative; display: flex; align-items: center; justify-content: center; min-height: 12rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel-muted); }
.decision-map-placeholder b { display: grid; width: 2.4em; height: 2.4em; place-items: center; margin: .5em; border: 3px solid var(--forest); border-radius: 50%; background: var(--semantic-positive-bg); }
.reduced-motion-example { border-left: 4px solid var(--semantic-unknown-border); background: var(--semantic-unknown-bg); padding: .75em; }

.report-relationships { max-width: var(--page-max); margin: 0 auto 1em; }
.report-relationships ul { display: grid; gap: .65em; margin: .8em 0 0; padding: 0; list-style: none; }
.report-relationships li { display: grid; gap: .2em; border-left: 4px solid var(--semantic-info-border); background: var(--panel-muted); padding: .65em .75em; }
.report-relationships li a { color: var(--link); font-weight: 800; }
.report-relationships li span { color: var(--ink); }
.family-collections { margin-top: 1.5rem; }
.family-collection-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr)); }
.family-collection-card { border-color: var(--semantic-info-border); background: linear-gradient(145deg, var(--panel), var(--semantic-info-bg)); }
.family-collections[data-selected] { scroll-margin-top: calc(var(--global-header-height) + 1rem); outline: 3px solid var(--semantic-info-border); outline-offset: .5rem; border-radius: var(--radius-md); }
.library-search-options { display: grid; align-content: start; gap: .45em; min-width: 0; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel-muted); padding: .75em .85em; }
.library-search-options label { display: inline-flex; align-items: center; gap: .5em; color: var(--ink-strong); font-weight: 800; }
.library-search-options input { width: 1.25em; height: 1.25em; accent-color: var(--forest); }
.library-search-options span, .result-provenance { color: var(--muted); }
.library-search-results { margin-top: .75em; }
.library-search-result { align-items: start; min-width: 0; }
.library-search-result > *, .library-search-result p, .library-search-result a { min-width: 0; overflow-wrap: anywhere; }
.library-search-result-actions { display: grid; gap: .55em; min-width: min(100%, 12rem); }
.result-labels { display: flex; flex-wrap: wrap; align-items: center; gap: .45em; }
.card.is-selected-for-comparison { border: 3px solid var(--semantic-info-border); background: linear-gradient(145deg, var(--panel), var(--semantic-info-bg)); padding: 19px; box-shadow: inset 0 0 0 2px #fff, var(--shadow-sm); }

.pwa-network-status, .pwa-update-notice {
  width: min(calc(100% - 2 * var(--page-pad, 20px)), var(--content));
  margin: .65rem auto 0;
  border-radius: var(--radius-sm);
  padding: .7em .85em;
}
.pwa-network-status { display: flex; flex-wrap: wrap; gap: .4em .75em; border: 2px solid var(--semantic-caution-border); background: var(--semantic-caution-bg); color: var(--semantic-caution-ink); }
.pwa-update-notice { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75em; border: 2px solid var(--semantic-info-border); background: var(--semantic-info-bg); }
.pwa-update-notice > div:first-child { display: grid; gap: .2em; }
.pwa-update-actions { display: flex; flex-wrap: wrap; gap: .5em; }
.install-dialog { width: min(calc(100% - 2rem), 42rem); max-height: min(88vh, 48rem); overflow: auto; border: 1px solid var(--line-strong); border-radius: var(--radius-lg); background: var(--panel); color: var(--ink); padding: 0; box-shadow: var(--shadow-lg); }
.install-dialog::backdrop { background: rgba(12, 31, 27, .72); }
.install-dialog-form { padding: clamp(1em, 4vw, 1.5em); }
.install-dialog ol { display: grid; gap: .55em; padding-left: 1.5em; }
.install-origin-note { border-left: 4px solid var(--semantic-caution-border); background: var(--semantic-caution-bg); padding: .75em .85em; overflow-wrap: anywhere; }
.install-origin-note span { font-weight: 700; }
:root[data-display-mode="standalone"] .topbar { padding-top: env(safe-area-inset-top); }
:root[data-display-mode="standalone"] .install-app-trigger { display: none; }
.compare-report-button[aria-pressed="true"] { border-color: var(--semantic-info-border); background: var(--semantic-info-bg); color: var(--ink-strong); }
.compare-report-button:disabled { border-style: dashed; background: var(--panel-muted); color: var(--muted); cursor: not-allowed; }
.library-comparison-tray { position: sticky; top: calc(var(--global-header-height) + .5rem); z-index: 17; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .65em 1em; margin: 1rem 0; border: 2px solid var(--semantic-info-border); border-radius: var(--radius-md); background: #f5fbff; padding: .8em 1em; box-shadow: var(--shadow-lg); }
.library-comparison-tray[hidden] { display: none; }
.comparison-tray-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5em 1em; grid-column: 1 / -1; }
.comparison-tray-heading h2 { margin: .12em 0 0; font-size: 1.25em; }
.library-comparison-tray ul { display: flex; flex-wrap: wrap; gap: .55em; min-width: 0; margin: 0; padding: 0; list-style: none; }
.library-comparison-tray li { display: flex; flex: 1 1 15rem; align-items: center; gap: .55em; min-width: min(100%, 15rem); max-width: 28rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel); padding: .5em .65em; }
.library-comparison-tray li > div { display: grid; min-width: 0; }
.library-comparison-tray li strong, .library-comparison-tray li span { min-width: 0; overflow-wrap: anywhere; }
.library-comparison-tray li span { color: var(--muted); }
.library-comparison-tray li .text-button { margin-left: auto; }
.library-comparison-tray > .button { align-self: center; }
.library-comparison-tray [aria-disabled="true"] { pointer-events: none; opacity: .72; }
.comparison-selection-status { grid-column: 1 / -1; margin: 0; color: var(--ink); font-weight: 700; }

.report-comparison-workspace { max-width: var(--page-max); margin: 0 auto; padding: 1.25rem var(--page-pad) 4rem; }
.comparison-header { margin-bottom: 1rem; }
.comparison-header-actions, .comparison-mode-switch { display: flex; flex-wrap: wrap; gap: .65em; margin-top: 1em; }
.comparison-report-legend, .comparison-related-grid, .comparison-access-grid { display: grid; grid-template-columns: repeat(var(--comparison-count), minmax(0, 1fr)); gap: .75em; min-width: 0; margin: 1rem 0; padding: 0; list-style: none; }
.comparison-report-legend li { display: grid; grid-template-columns: auto minmax(0, 1fr); align-content: start; gap: .45em .7em; min-width: 0; border: 1px solid var(--line-strong); border-top: 5px solid var(--semantic-info-border); border-radius: var(--radius-md); background: var(--panel); padding: .8em; }
.comparison-report-legend li > div { display: grid; min-width: 0; }
.comparison-report-legend strong, .comparison-report-legend span { overflow-wrap: anywhere; }
.comparison-report-legend li > a { grid-column: 2; }
.comparison-number { display: grid; width: 2em; height: 2em; place-items: center; border-radius: 50%; background: var(--forest); color: #fff; font-weight: 800; }
.comparison-guardrails { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75em; }
.comparison-guardrails .notice { margin: 0; }
.comparison-mode-switch { scroll-margin-top: calc(var(--global-header-height) + .5rem); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--panel); padding: .65em; box-shadow: var(--shadow-sm); }
.report-comparison-groups { display: grid; gap: 1rem; margin-top: 1rem; }
.report-comparison-group { min-width: 0; border: 1px solid var(--line-strong); border-radius: var(--radius-md); background: var(--panel); overflow: clip; }
.report-comparison-group > summary { display: flex; align-items: center; justify-content: space-between; gap: .75em; cursor: pointer; background: var(--panel-muted); padding: .85em 1em; color: var(--ink-strong); font-size: 1.2em; font-weight: 800; }
.report-comparison-group > summary small { color: var(--muted); font-size: .84em; }
.report-comparison-fields { display: grid; }
.report-comparison-field { min-width: 0; border-top: 1px solid var(--line); padding: .9em 1em; }
.report-comparison-field h3 { margin: 0 0 .65em; font-size: 1.08em; }
.comparison-values { display: grid; grid-template-columns: repeat(var(--comparison-count), minmax(0, 1fr)); gap: .75em; min-width: 0; }
.comparison-value { display: grid; align-content: start; gap: .35em; min-width: 0; border-left: 4px solid var(--semantic-info-border); background: var(--semantic-info-bg); padding: .7em .8em; overflow-wrap: anywhere; }
.comparison-value.is-missing { border-left-style: dashed; border-left-color: var(--semantic-unknown-border); background: var(--semantic-unknown-bg); }
.comparison-value > span { color: var(--muted); }
.comparison-value > .comparison-source-label { color: var(--ink-strong); font-weight: 700; }
.comparison-value > a { justify-self: start; font-weight: 800; }
.comparison-mobile-label { display: none; }
.comparison-related-report, .comparison-access-card { min-width: 0; padding: 1em; }
.comparison-related-report h3, .comparison-access-card h3 { margin-top: 0; font-size: 1.15em; overflow-wrap: anywhere; }
.comparison-related-report ul { display: grid; gap: .7em; margin: 0; padding: 0; list-style: none; }
.comparison-related-report li { display: grid; gap: .3em; border-left: 3px solid var(--line-strong); background: var(--panel-muted); padding: .65em; overflow-wrap: anywhere; }
.comparison-access { margin-top: 1rem; }
.comparison-access-card { border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--panel); }
.comparison-access-links { display: grid; gap: .55em; }
.comparison-incomplete { margin-top: 1rem; }
.report-comparison-workspace > .breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: .5em; margin-bottom: 1rem; color: var(--muted); }
.report-comparison-workspace > .breadcrumb .back-link { display: inline-flex; min-height: 2.75em; align-items: center; margin: 0; color: var(--link); padding: .35em 0; text-decoration: underline; text-underline-offset: 3px; }
.report-comparison-workspace > .breadcrumb .back-link:hover { color: var(--forest); }
.comparison-header .button-secondary { color: var(--ink-strong); }
.comparison-header .back-link { display: inline-flex; min-height: 2.75em; align-items: center; margin: 0; color: var(--ink-strong); padding: .55em .85em; text-decoration: none; }
.comparative-collection .section { scroll-margin-top: calc(var(--global-header-height) + 6rem); }
.family-workspace { max-width: var(--page-max); margin: 0 auto; padding: 1.25rem var(--page-pad) 4rem; }
.family-header { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(18rem, .75fr); gap: 1.25rem; align-items: start; }
.family-header .notice { margin: 0; }
.family-jump-nav { position: sticky; top: calc(var(--global-header-height) + .5rem); z-index: 18; display: flex; flex-wrap: wrap; gap: .45rem; margin: 1rem 0; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--panel); padding: .6rem; box-shadow: var(--shadow-sm); }
.family-jump-nav button { border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--link); padding: .55em .7em; font: inherit; font-weight: 800; text-align: left; }
.family-jump-nav button:hover, .family-jump-nav button:focus-visible { background: var(--panel-muted); }
.family-section { scroll-margin-top: calc(var(--global-header-height) + 6rem); }
.family-search { margin-top: 1rem; }
.family-timeline { display: grid; gap: .85rem; margin: 1rem 0 1.5rem; padding: 0; list-style: none; }
.family-timeline li { display: grid; grid-template-columns: minmax(8.5rem, .28fr) minmax(0, 1fr); gap: 1rem; border-left: 5px solid var(--semantic-info-border); border-radius: var(--radius-sm); background: var(--panel-muted); padding: .85rem 1rem; }
.family-timeline li > span { color: var(--ink); font-weight: 800; }
.family-timeline h3 { margin: 0; font-size: 1.3em; }
.family-timeline p { margin: .35em 0; }
.family-conclusion-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); margin-bottom: 1rem; }
.family-member-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); }
.family-candidate-picker { max-width: 46rem; margin-bottom: 1rem; }
.family-selected-candidate { max-width: 46rem; margin: -.35rem 0 1rem; color: var(--muted); }
.family-lineage-detail { min-width: 0; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--panel); padding: 1rem; }
.table-shell { max-width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.family-lineage-table table { min-width: 64rem; margin: 0; }
.family-lineage-table td span { color: var(--ink); }
.family-lineage-table td:first-child span { display: block; margin-top: .25em; }
.source-integrity-list { display: grid; gap: .75rem; }
.source-integrity-list article { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1rem; border-left: 4px solid var(--semantic-info-border); background: var(--panel-muted); padding: .85rem 1rem; }
.source-integrity-list h3 { margin: 0; font-size: 1.2em; overflow-wrap: anywhere; }
.source-integrity-list p { margin: .3em 0 0; overflow-wrap: anywhere; }
.source-integrity-list code { font-size: 1em; overflow-wrap: anywhere; word-break: break-all; }
.signal-register table { min-width: 72rem; }
.signal-register td:nth-child(3) { min-width: 24rem; }
.signal-register td:last-child { min-width: 16rem; }
.version-selector { max-width: 32rem; margin-bottom: 1em; }

.vote-diagram { display: grid; gap: 1rem; }
.vote-card-grid, .layer-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: .75rem; }
.vote-card-grid article, .layer-card-grid article { min-width: 0; border: 1px solid var(--line); border-top: 4px solid var(--semantic-info-border); border-radius: var(--radius-sm); background: var(--semantic-info-bg); padding: .85rem; }
.layer-card-grid article { border-top-color: var(--warn); background: var(--warn-soft); }
.vote-card-grid h3, .layer-card-grid h3 { margin: .25em 0; font-size: 1.2em; }
.vote-card-grid p, .layer-card-grid p { margin: 0; }
.reference-code { display: inline-flex; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--panel); padding: .18em .5em; color: var(--ink-strong); font-weight: 800; }
.vote-arrow { justify-self: center; color: var(--ink); font-size: 1.6em; font-weight: 800; }
.plain-interpretation { border-left: 4px solid var(--semantic-info-border); background: var(--panel-muted); padding: .75em .9em; }

.audit-verdict-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr)); gap: .7rem; }
.audit-verdict { display: grid; gap: .2em; min-width: 0; border: 1px solid var(--line); border-top: 5px solid var(--tone, var(--semantic-info-border)); border-radius: var(--radius-sm); background: var(--tone-soft, var(--panel-muted)); padding: .8em; }
.audit-verdict strong { color: var(--ink-strong); font-size: 1.8em; line-height: 1; }
.audit-verdict span { color: var(--ink); font-weight: 750; }

.crosswalk-table table { min-width: 70rem; }
.relationship-chip { display: inline-flex; margin: 0 .45em .35em 0; border: 2px solid var(--line-strong); border-radius: 999px; padding: .12em .42em; font-weight: 800; white-space: nowrap; }
.relationship-same { border-color: var(--good); background: var(--good-soft); }
.relationship-close-variant { border-color: var(--warn); background: var(--warn-soft); }
.relationship-different { border-color: var(--semantic-info-border); background: var(--semantic-info-bg); }
.relationship-unique { border-style: dashed; background: var(--panel-muted); }

.claim-card-grid, .source-document-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); gap: .85rem; }
.claim-card, .source-document-card { display: grid; align-content: start; min-width: 0; border: 1px solid var(--line); border-top: 4px solid var(--tone, var(--semantic-info-border)); border-radius: var(--radius-md); background: var(--tone-soft, var(--panel)); padding: 1rem; }
.claim-card-heading, .source-document-heading { display: flex; flex-wrap: wrap; align-items: start; justify-content: space-between; gap: .55em; }
.claim-number { color: var(--ink); font-weight: 800; }
.claim-card h3, .source-document-card h3 { margin: .35em 0; font-size: 1.25em; overflow-wrap: anywhere; }
.claim-card .button { align-self: end; justify-self: start; margin-top: .5em; }
.source-document-card.is-current { border-color: var(--semantic-info-border); box-shadow: inset 0 0 0 2px var(--semantic-info-border); }
.source-document-card dl, .claim-detail-list { display: grid; gap: .55em; min-width: 0; }
.source-document-card dl div, .claim-detail-list > div { min-width: 0; border-left: 3px solid var(--line-strong); background: rgba(255, 255, 255, .58); padding: .55em .65em; }
.source-document-card dt, .claim-detail-list dt { color: var(--ink-strong); font-weight: 800; }
.source-document-card dd, .claim-detail-list dd { min-width: 0; margin: .15em 0 0; overflow-wrap: anywhere; }
.source-document-card code { font-size: 1em; overflow-wrap: anywhere; word-break: break-all; }
.claim-detail-list dd > :first-child { margin-top: 0; }
.claim-detail-list dd > :last-child { margin-bottom: 0; }
.reference-graph { display: grid; gap: .75rem; }
.reference-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: .8rem; min-width: 0; border: 1px solid var(--line); border-left: 5px solid var(--semantic-info-border); border-radius: var(--radius-sm); background: var(--panel-muted); padding: .85rem; }
.reference-card.tone-warn { border-left-color: var(--warn); background: var(--warn-soft); }
.reference-card h3, .reference-card p { margin: 0 0 .3em; }
.reference-warning { color: var(--ink-strong); }
.teaching-markdown { max-width: 75ch; }
.markdown-group { display: grid; gap: .75rem; }
.teaching-disclosure, .source-markup-disclosure { border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel); }
.teaching-disclosure summary, .source-markup-disclosure summary { display: flex; justify-content: space-between; gap: .7em; cursor: pointer; padding: .8em; color: var(--ink-strong); }
.teaching-disclosure > div, .source-markup-disclosure > pre { margin: 0; border-top: 1px solid var(--line); padding: .9em; }
.source-html-raw { white-space: pre-wrap; overflow-wrap: anywhere; }
.compact-empty { margin-top: .75rem; }

.destination-highlight { animation: destination-highlight 1.5s ease-out; }
@keyframes destination-highlight { 0% { box-shadow: 0 0 0 5px rgba(199, 101, 53, .35); } 100% { box-shadow: var(--shadow-sm); } }

@media (min-width: 701px) and (max-width: 1280px) {
  .library-primary-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .library-secondary-row { grid-template-columns: 1fr; }
  .library-secondary-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1100px) {
  .workspace-layout { grid-template-columns: 1fr; }
  .workspace-nav-panel { top: calc(var(--global-header-height) + .5rem); z-index: 22; }
  .workspace-nav-toggle { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: .8em; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); background: var(--panel); color: var(--ink-strong); padding: .65em .75em; box-shadow: var(--shadow-sm); text-align: left; }
  .workspace-nav-toggle > span:first-child { display: grid; }
  .workspace-nav-toggle small { color: var(--muted); font-size: 1em; }
  .workspace-nav { display: none; max-height: min(66vh, 36rem); overflow: auto; margin-top: .4em; }
  .workspace-nav[data-open] { display: grid; }
  .launch-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .essential-filter-grid, .advanced-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .opportunity-summary-list { grid-template-columns: 1fr; }
  :root[data-reading-size="extra-large"] .workspace-nav-panel { position: static; }
  :root[data-reading-size="extra-large"] .comparison-mode-switch { position: static; }
}

@media (max-width: 700px) {
  .reading-settings-full { display: none; }
  .reading-settings-compact { display: inline; }
  .install-app-trigger span:last-child { font-size: 0; }
  .install-app-trigger span:last-child::after { content: "Install"; font-size: 1rem; }
  .workspace-report-header { grid-template-columns: 1fr; }
  .report-header-actions { justify-content: flex-start; }
  .workspace-report-header .button { width: auto; }
  .study-search, .study-search-controls, .search-result, .library-search-results { grid-template-columns: minmax(0, 1fr); }
  .search-result .button { width: 100%; }
  .launch-grid, .next-choice-grid { grid-template-columns: 1fr; }
  .launch-card { min-height: 0; }
  .mini-funnel { grid-template-columns: 1fr 1fr; }
  .essential-filter-grid, .advanced-filter-grid { grid-template-columns: 1fr; }
  .essential-filter-grid .field-search { grid-column: auto; }
  .comparison-selector > div { grid-template-columns: 1fr; }
  .comparison-table-wrap, .compare-workspace > .table-scroll-hint { display: none; }
  .comparison-mobile-cards { display: grid; gap: .75em; }
  .comparison-mobile-cards article { min-width: 0; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--panel); padding: .9em; }
  .comparison-mobile-cards dl { display: grid; gap: .45em; }
  .comparison-mobile-cards dl div { border-left: 3px solid var(--line-strong); background: var(--panel-muted); padding: .55em .65em; }
  .comparison-mobile-cards dt { font-weight: 800; }
  .comparison-mobile-cards dd { margin: .15em 0 0; overflow-wrap: anywhere; }
  .candidate-dialog { width: 100vw; border-left: 0; border-radius: 0; }
  .candidate-dialog-header { position: sticky; top: 0; z-index: 2; }
  .candidate-dialog-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .candidate-dialog-header .candidate-close { width: auto; }
  .candidate-metadata { grid-template-columns: 1fr; }
  .candidate-tabs { flex-wrap: nowrap; overflow-x: auto; padding: .25em .15em .65em; }
  .candidate-tabs button { flex: 0 0 auto; }
  .candidate-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :root[data-reading-size="extra-large"] .candidate-metric-grid { grid-template-columns: 1fr; }
  .library-intro { padding: .65em 0 .85em; }
  .library-intro h1 { margin: .18em 0; font-size: clamp(1.75em, 9vw, 2.05em); line-height: 1.12; }
  .library-intro p { line-height: 1.55; }
  .library-principle { display: none; }
  .library-tools { padding: .75em; }
  .library-tools .toolbar-heading { align-items: center; gap: .45em; }
  .library-tools .toolbar-heading h2 { margin: .05em 0 0; font-size: 1.35em; }
  .library-search-row { grid-template-columns: 1fr auto; }
  .library-filter-toggle { display: inline-flex; width: auto; }
  .library-extra-filters, .library-primary-filters, .library-secondary-row, .library-secondary-filters { grid-template-columns: 1fr; }
  .library-quick-view-region { margin-top: .75em; }
  .catalogue-quick-views .text-button { flex: 1 1 min(100%, 12rem); justify-content: center; }
  .library-tools + .section { margin-top: 1.25em; }
  .library-comparison-tray { position: static; grid-template-columns: 1fr; padding: .75em; }
  .library-comparison-tray ul { display: grid; grid-template-columns: 1fr; }
  .library-comparison-tray li { width: 100%; }
  .library-comparison-tray > .button { width: 100%; }
  .pwa-update-notice, .pwa-update-actions { display: grid; grid-template-columns: 1fr; }
  .pwa-update-actions .button { width: 100%; }
  .comparison-report-legend, .comparison-related-grid, .comparison-access-grid, .comparison-guardrails { grid-template-columns: 1fr; }
  .comparison-values { grid-template-columns: 1fr; }
  .comparison-mobile-label { display: block; color: var(--ink-strong) !important; font-weight: 800; }
  .comparison-mode-switch { position: static; display: grid; grid-template-columns: 1fr; }
  .comparison-mode-switch .button { width: 100%; }
  .report-comparison-group > summary { align-items: start; }
  .report-comparison-field { padding: .8em; }
  .gallery-pattern-grid, .gallery-nav { grid-template-columns: 1fr; }
  .decision-map-scroll::before { display: block; content: "Swipe horizontally to explore every point"; padding: .6em; color: var(--ink); font-weight: 700; }
  .family-workspace { padding-top: .75rem; }
  .family-header, .family-timeline li, .source-integrity-list article { grid-template-columns: 1fr; }
  .family-jump-nav { position: static; display: grid; grid-template-columns: 1fr; }
  .family-member-grid, .family-conclusion-grid { grid-template-columns: 1fr; }
  .source-integrity-list .button { width: 100%; }
  .reference-card { grid-template-columns: auto minmax(0, 1fr); }
  .reference-card .button { grid-column: 1 / -1; width: 100%; }
  .crosswalk-table { overflow: visible; border: 0; background: transparent; }
  .crosswalk-table table, .crosswalk-table thead, .crosswalk-table tbody, .crosswalk-table tr, .crosswalk-table th, .crosswalk-table td { display: block; min-width: 0; width: 100%; }
  .crosswalk-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .crosswalk-table tbody { display: grid; gap: .75rem; }
  .crosswalk-table tr { border: 1px solid var(--line-strong); border-radius: var(--radius-sm); background: var(--panel); padding: .75rem; }
  .crosswalk-table th, .crosswalk-table td { border: 0; border-bottom: 1px solid var(--line); padding: .55em 0; text-align: left; }
  .crosswalk-table tr > :last-child { border-bottom: 0; }
  .crosswalk-table th::before, .crosswalk-table td::before { display: block; content: attr(data-label); margin-bottom: .15em; color: var(--muted); font-weight: 800; }
  .claim-card-grid, .source-document-grid { grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
  .topbar-inner { flex-wrap: nowrap; }
  .topbar-actions { gap: .35em; }
  .reading-settings-trigger, .menu-button { min-height: 2.75em; padding: .45em .55em; }
  .library-search-row { grid-template-columns: minmax(0, 1fr) auto; }
  .library-filter-toggle { width: auto; }
  .mini-funnel { grid-template-columns: 1fr; }
  .opportunity-card-heading { grid-template-columns: auto minmax(0, 1fr); }
  .opportunity-score { grid-column: 2; }
  .opportunity-card-metrics { grid-template-columns: 1fr; }
  .opportunity-card-actions, .comparison-actions, .full-report-actions { display: grid; grid-template-columns: 1fr; }
  .opportunity-card-actions .button, .comparison-actions .button, .full-report-actions .button { width: 100%; }
  .comparison-header-actions { display: grid; grid-template-columns: 1fr; }
  .comparison-header-actions .button { width: 100%; }
  .candidate-dialog-header { grid-template-columns: minmax(0, 1fr) auto; }
  .candidate-dialog-header .candidate-close { width: auto; min-width: 3.75em; min-height: 2.75em; }
}

@media (max-width: 340px) {
  .candidate-metric-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; transform: none !important; }
}
