[hidden]:not([hidden="until-found"]) { display: none !important; }
:root {
  --bg: #0a1414;
  --bg-2: #0f1e1d;
  --ink: #eae6dc;
  --muted: #7fa89f;
  --muted-2: #4d6a65;
  --accent: #5eead4;
  --accent-dim: #2dd4bf;
  --card: #10201f;
  --card-hover: #142826;
  --border: #1e3634;
  --danger: #f87171;
  --warn: #fbbf24;
  --compound: #60a5fa;
  --project: #f472b6;
  --assay-parent: #a78bfa;
  --fire: #f97316;
  --fire-2: #dc2626;
  --assistant-dock-width: 460px;
  --topbar-h: 3.9rem;
  --dt-finding-h: 1.85rem;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  min-height: 100vh;
  color-scheme: dark;
  background:
    radial-gradient(circle at 15% 0%, rgba(94, 234, 212, 0.06), transparent 40%),
    radial-gradient(circle at 85% 100%, rgba(94, 234, 212, 0.05), transparent 40%),
    linear-gradient(160deg, var(--bg) 0%, var(--bg-2) 100%);
  background-attachment: fixed;
  color: var(--ink);
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
}
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
.topbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 1rem;
  row-gap: 0.5rem;
  padding: 0.9rem 2rem;
  min-height: var(--topbar-h);
  box-sizing: border-box;
  border-bottom: 1px solid var(--border);
  background: var(--bg);
  position: sticky;
  top: 0;
  z-index: 10;
}
.brand {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-weight: 650;
  font-size: 1.05rem;
  letter-spacing: -0.01em;
  color: var(--ink);
  flex: 1 1 0;
}
.brand svg { flex-shrink: 0; }
.brand-home { display: inline-flex; align-items: center; gap: 0.6rem; color: inherit; border-radius: 6px; padding: 0.6rem; margin: -0.6rem; }
.brand-home:hover { text-decoration: none; color: var(--accent); }
.brand-home:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.nav-toggle {
  display: none;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: none;
  color: var(--muted);
  cursor: pointer;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.nav-toggle:hover { color: var(--accent); border-color: var(--accent-dim); }
.nav {
  display: flex;
  flex: 0 0 auto;
  gap: 1.5rem;
  font-size: 0.9rem;
  white-space: nowrap;
}
.nav a { color: var(--muted); }
.nav a.active, .nav a:hover { color: var(--accent); text-decoration: none; }
.nav-group { position: relative; display: flex; align-items: center; }
.nav-group-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  color: var(--muted);
  cursor: pointer;
  white-space: nowrap;
}
.nav-group-toggle:hover,
.nav-group-toggle.active,
.nav-group-toggle[aria-expanded="true"] { color: var(--accent); }
.nav-chevron { transition: transform 120ms ease; flex-shrink: 0; }
.nav-group-toggle[aria-expanded="true"] .nav-chevron { transform: rotate(180deg); }
.nav-menu {
  position: absolute;
  top: 30px;
  left: 0;
  min-width: 190px;
  padding: 0.4rem;
  background: var(--card-hover);
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: 0 16px 40px rgba(0,0,0,0.45);
  z-index: 20;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}
.nav-menu[hidden] { display: none; }
.nav-menu a {
  padding: 0.45rem 0.6rem;
  border-radius: 6px;
  color: var(--muted);
}
.nav-menu a:hover { background: var(--card); color: var(--accent); text-decoration: none; }
.nav-menu a.active { color: var(--accent); }
.user-chip {
  display: flex;
  flex: 1 1 0;
  justify-content: flex-end;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.85rem;
  color: var(--muted);
}
.user-chip form { margin: 0; }
.user-chip button {
  background: none;
  border: 1px solid var(--border);
  color: var(--muted);
  border-radius: 6px;
  padding: 0.3rem 0.65rem;
  cursor: pointer;
  font-size: 0.8rem;
}
.user-chip button:hover { color: var(--accent); border-color: var(--accent-dim); }
.user-chip-link {
  border: 1px solid var(--border);
  color: var(--muted);
  border-radius: 6px;
  padding: 0.3rem 0.65rem;
  font-size: 0.8rem;
  white-space: nowrap;
}
.user-chip-link:hover { color: var(--accent); border-color: var(--accent-dim); text-decoration: none; }
.export-menu .nav-menu { left: auto; right: 0; top: 34px; min-width: 18rem; white-space: normal; }
.export-menu .nav-menu a { display: flex; flex-direction: column; gap: 0.15rem; color: var(--ink); }
.export-menu .nav-menu a:hover { color: var(--accent); }
.export-menu-hint { font-size: 0.74rem; color: var(--muted); line-height: 1.35; }
.account-menu .nav-menu { left: auto; right: 0; top: 34px; min-width: 16rem; white-space: normal; }
.account-menu .nav-menu form { display: flex; margin: 0; }
.account-menu .nav-menu a,
.user-chip .account-menu .nav-menu button {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  width: 100%;
  padding: 0.45rem 0.6rem;
  border: 0;
  border-radius: 6px;
  background: none;
  color: var(--ink);
  font: inherit;
  font-size: 0.85rem;
  text-align: left;
}
.account-menu .nav-menu a:hover,
.user-chip .account-menu .nav-menu button:hover { background: var(--card); color: var(--accent); text-decoration: none; }
.account-menu .nav-menu .account-menu-logout { border-top: 1px solid var(--border); margin-top: 0.2rem; padding-top: 0.2rem; }
.tour-menu .nav-menu { left: 0; top: 34px; min-width: 17rem; white-space: normal; }
.tour-menu .nav-menu a,
.user-chip .tour-menu .nav-menu button {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  width: 100%;
  padding: 0.45rem 0.6rem;
  border: 0;
  border-radius: 6px;
  background: none;
  color: var(--ink);
  font: inherit;
  font-size: 0.85rem;
  text-align: left;
}
.tour-menu .nav-menu a:hover,
.user-chip .tour-menu .nav-menu button:hover { background: var(--card); color: var(--accent); text-decoration: none; }
.contact-menu-toggle { display: inline-flex; align-items: center; gap: 0.35rem; }
.contact-menu-icon { flex: 0 0 auto; }
.contact-menu .nav-menu { left: 0; top: 34px; min-width: 17rem; white-space: normal; }
.contact-menu .nav-menu a,
.user-chip .contact-menu .nav-menu button {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  width: 100%;
  padding: 0.45rem 0.6rem;
  border: 0;
  border-radius: 6px;
  background: none;
  color: var(--ink);
  font: inherit;
  font-size: 0.85rem;
  text-align: left;
}
.contact-menu .nav-menu a:hover,
.user-chip .contact-menu .nav-menu button:hover { background: var(--card); color: var(--accent); text-decoration: none; }
@media (max-width: 640px) {
  .contact-menu-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .contact-menu .nav-menu { left: auto; right: 0; max-width: calc(100vw - 2rem); min-width: 0; width: 17rem; }
}
.account-menu-name { max-width: 12rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.signing-readiness { margin: 0 0 1.2rem; border-color: rgba(251, 191, 36, 0.35); }
.signing-readiness-title { font-size: 1rem; margin: 0 0 0.5rem; }
.signing-readiness-list { margin: 0; padding-left: 1.1rem; display: grid; gap: 0.45rem; }
.signing-readiness-list .btn-sm { margin-left: 0.5rem; vertical-align: baseline; }
.account-menu-attention {
  display: inline-block; width: 0.5rem; height: 0.5rem; border-radius: 50%;
  background: var(--warn); margin-left: 0.15rem; flex: none;
}
.sandbox-reset-btn { color: var(--accent) !important; border-color: var(--accent-dim) !important; }
@media (min-width: 1081px) and (max-width: 1279px) {
  .topbar { padding: 0.9rem 1.1rem; column-gap: 0.6rem; }
  .nav { gap: 0.75rem; }
  .user-chip { gap: 0.45rem; }
}
@media (max-width: 1080px) {
  .topbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    row-gap: 0.6rem;
    padding: 0.9rem 1.25rem;
  }
  .nav-toggle { display: flex; }
  .nav,
  .user-chip {
    flex-basis: 100%;
    order: 3;
    justify-self: auto;
  }
  .nav[hidden], .user-chip[hidden] { display: none; }
  .nav-toggle { order: 2; }
  .user-chip.user-chip-collapsed {
    order: 1; flex: 1 1 0; min-width: 6rem; max-width: 16rem;
    padding-top: 0; border-top: 0;
  }
  .user-chip.user-chip-collapsed > :not(.topbar-scan):not(.contact-menu) { display: none; }
  .user-chip.user-chip-collapsed .topbar-scan { flex: 1 1 auto; }
  .user-chip.user-chip-collapsed { display: flex; flex-wrap: nowrap; align-items: center; gap: 0.4rem; }
  .user-chip.user-chip-collapsed .contact-menu { flex: 0 0 auto; position: relative; }
  .user-chip.user-chip-collapsed .contact-menu-label {
    position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
  }
  .user-chip.user-chip-collapsed .contact-menu .nav-menu {
    position: absolute; right: 0; left: auto; top: 44px; z-index: 30; width: 17rem; max-width: calc(100vw - 2rem);
    padding: 0.4rem; background: var(--card-hover); border: 1px solid var(--border); border-radius: 10px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45);
  }
  .nav {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    white-space: normal;
    padding-top: 0.5rem;
    border-top: 1px solid var(--border);
  }
  .nav-group { flex-direction: column; align-items: flex-start; gap: 0.4rem; }
  .nav-menu {
    position: static;
    box-shadow: none;
    background: none;
    border: none;
    padding: 0 0 0 0.75rem;
    min-width: 0;
  }
  .nav a { padding: 0.65rem 0.25rem; border-bottom: 1px solid var(--border); }
  .user-chip {
    flex-wrap: wrap;
    justify-content: flex-start;
    padding-top: 0.5rem;
    border-top: 1px solid var(--border);
  }
  .follow-btn, .notif-bell-btn, .nav-toggle { width: 40px; height: 40px; }
  .card:has(> .follow-btn) .card-title { padding-right: 2.5rem; }
}
@media (max-width: 420px) {
  .brand-name { display: none; }
  .brand { flex: 0 0 auto; }
}
.notif-widget { position: relative; }
.notif-bell-btn {
  position: relative;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  border: 1px solid transparent;
  background: none;
  color: var(--muted);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.notif-bell-btn:hover { color: var(--accent); border-color: var(--border); }
.notif-badge {
  position: absolute;
  top: 1px;
  right: 1px;
  min-width: 16px;
  height: 16px;
  padding: 0 3px;
  border-radius: 999px;
  background: var(--danger);
  color: #2a0a0a;
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
}
.notif-panel {
  position: absolute;
  top: 42px;
  right: 0;
  width: 340px;
  max-width: calc(100vw - 2rem);
  max-height: 70vh;
  background: var(--card-hover);
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: 0 16px 40px rgba(0,0,0,0.45);
  z-index: 20;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.notif-panel[hidden] { display: none; }
.notif-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.65rem 0.85rem;
  border-bottom: 1px solid var(--border);
  font-size: 0.78rem;
  font-weight: 650;
}
.notif-mark-all-btn {
  background: none;
  border: none;
  color: var(--accent);
  font-size: 0.72rem;
  cursor: pointer;
  padding: 0;
}
.notif-mark-all-btn:hover { color: var(--accent-dim); text-decoration: underline; }
.notif-items { overflow-y: auto; max-height: 60vh; }
.notif-item {
  display: block;
  padding: 0.65rem 0.85rem;
  border-bottom: 1px solid var(--border);
  color: var(--ink);
}
.notif-item:last-child { border-bottom: none; }
a.notif-item:hover { background: rgba(94,234,212,0.06); text-decoration: none; }
.notif-item-unread { background: rgba(94,234,212,0.04); }
.notif-item-unread::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent);
  margin-right: 0.4rem;
  vertical-align: middle;
}
.notif-message { font-size: 0.85rem; line-height: 1.4; }
.notif-meta { font-size: 0.72rem; color: var(--muted); margin-top: 0.2rem; }
.notif-empty { padding: 1rem 0.85rem; font-size: 0.82rem; color: var(--muted); }
main {
  max-width: 1100px;
  margin: 0 auto;
  padding: 2rem;
}
@media (min-width: 1300px) { main { max-width: 1300px; } }
@media (min-width: 1700px) { main { max-width: 1500px; } }
@media (min-width: 2200px) { main { max-width: 1700px; } }
@media (max-width: 640px) {
  main { padding: 1.1rem; }
}
:root { --bleed-gutter: 1.5rem; }
@supports (width: 1cqw) {
  body { container-type: inline-size; }
  @media screen and (min-width: 1600px) {
    .data-bleed {
      display: flex;
      margin-left: calc((100% - 100cqw) / 2 + var(--bleed-gutter));
    }
    .data-bleed::before {
      content: "";
      flex: 0 1 calc(100cqw - 100% - 2 * var(--bleed-gutter));
    }
    .data-bleed > :not(.dt-focused) {
      flex: none;
      width: max-content;
      min-width: calc(200% - 100cqw + 2 * var(--bleed-gutter));
      max-width: calc(100cqw - 2 * var(--bleed-gutter));
      margin-right: calc(100% + 2 * var(--bleed-gutter) - 100cqw);
    }
    .data-bleed .dt-toolbar { contain: inline-size; }
    .data-bleed-right { margin-right: calc((100% - 100cqw) / 2 + var(--bleed-gutter)); }
  }
}
@media screen and (min-width: 721px) {
  [data-wide-card].wide-card-out, .page-section.wide-card-out {
    margin-left: calc(-1 * var(--wide-left, 0px));
    margin-right: calc(-1 * var(--wide-right, 0px));
  }
  .wide-card-out-card [data-wide-flush] {
    margin-left: calc(-1 * var(--wide-pad-left, 0px));
    margin-right: calc(-1 * var(--wide-pad-right, 0px));
  }
  .wide-card-out-card .data-bleed { display: block; }
  .wide-card-out-card .data-bleed::before { content: none; }
  .wide-card-out-card .data-bleed > :not(.dt-focused) {
    width: auto; min-width: 0; max-width: none; margin-right: 0;
  }
  .wide-card-out-card [data-wide-flush] .preview-table { min-width: 100%; }
}
body.assistant-docked,
html.assistant-docked-early body {
  padding-right: var(--assistant-dock-width);
}
body.assistant-dock-ready { transition: padding-right 0.18s ease; }
body.assistant-resizing { transition: none; }
h1 { font-size: 1.5rem; margin: 0 0 0.35rem; letter-spacing: -0.01em; }
h2 { font-size: 1.15rem; font-weight: 600; margin: 0 0 0.75rem; }
.page-subtitle { color: var(--muted); margin: 0 0 1.75rem; font-size: 0.92rem; }
.stat-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1rem;
  margin-bottom: 2rem;
}
.stat-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.1rem 1.3rem;
}
.stat-card .value { font-size: 1.8rem; font-weight: 650; color: var(--accent); }
.stat-card .label { color: var(--muted); font-size: 0.82rem; margin-top: 0.2rem; }
a.stat-card { display: block; color: inherit; text-decoration: none; }
a.stat-card:hover { border-color: var(--accent-dim); text-decoration: none; }
.release-list { margin-bottom: 2rem; display: flex; flex-direction: column; gap: 0.6rem; }
.release-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 0.9rem 1.2rem;
}
.release-summary {
  cursor: pointer;
  display: flex;
  align-items: baseline;
  gap: 0.6rem;
  flex-wrap: wrap;
  list-style: none;
}
.release-summary::-webkit-details-marker { display: none; }
.release-version { font-weight: 700; color: var(--accent); }
.release-headline { font-weight: 600; }
.release-date { color: var(--muted); font-size: 0.8rem; margin-left: auto; }
.release-highlights {
  margin: 0.8rem 0 0;
  padding-left: 1.2rem;
  color: var(--ink);
  font-size: 0.88rem;
  line-height: 1.6;
}
.release-highlights li { margin-bottom: 0.35rem; }
.release-tour { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.75rem; margin: 0.25rem 0 0.5rem; }
.release-tour-link { text-decoration: none; }
.guided-tour-filled { margin: 0.4rem 0 0; font-size: 0.85rem; color: var(--accent); }
.release-highlights li:last-child { margin-bottom: 0; }
.whats-new-more { margin-top: 0.5rem; margin-bottom: 2rem; }
.whats-new-latest { margin-bottom: 2rem; }
.whats-new-latest .whats-new-more { margin-top: 0.8rem; margin-bottom: 0; }
.whats-new-more-toggle {
  cursor: pointer;
  list-style: none;
  display: inline-block;
  color: var(--accent);
  font-size: 0.82rem;
  font-weight: 600;
}
.whats-new-more-toggle::-webkit-details-marker { display: none; }
.whats-new-more-toggle:hover { color: var(--accent-dim); text-decoration: underline; }
.whats-new-more[open] .show-more-label { display: none; }
.whats-new-more:not([open]) .show-less-label { display: none; }
.whats-new-more .release-list { margin-top: 0.75rem; margin-bottom: 0; }
.activity-feed { display: flex; flex-direction: column; gap: 0.15rem; }
.activity-feed-item {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  padding: 0.65rem 0.5rem;
  border-radius: 10px;
}
.activity-feed-item:hover { background: rgba(94,234,212,0.03); }
.activity-feed-item-followed { background: rgba(94,234,212,0.05); }
.activity-feed-item-followed:hover { background: rgba(94,234,212,0.08); }
.activity-feed-item .avatar { width: 30px; height: 30px; font-size: 0.74rem; margin-top: 0.1rem; }
.activity-feed-body { min-width: 0; }
.activity-feed-text { margin: 0; font-size: 0.9rem; color: var(--ink); line-height: 1.45; }
.activity-feed-text a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
.activity-feed-text a:hover { color: var(--accent-dim); }
.activity-feed-meta { margin: 0.15rem 0 0; font-size: 0.76rem; color: var(--muted); }
.diff-legend { display: flex; flex-wrap: wrap; gap: 1.1rem; margin-bottom: 0.9rem; font-size: 0.78rem; color: var(--muted); }
.diff-legend-item { display: flex; align-items: center; gap: 0.4rem; }
.diff-legend-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); flex-shrink: 0; }
.diff-legend-dot.flag { background: var(--danger); }
.diff-legend-dot.gap { border-radius: 1px; background: none; border: 1.5px solid var(--muted); transform: rotate(45deg); }
.diff-finding {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 1rem;
  align-items: center;
  background: var(--card);
  border: 1px solid var(--border);
  border-left: 3px solid var(--danger);
  border-radius: 10px;
  padding: 1rem 1.25rem;
  margin-bottom: 1.25rem;
}
.diff-finding-badge {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--danger);
  background: rgba(248,113,113,0.1);
  border: 1px solid rgba(248,113,113,0.35);
  border-radius: 999px;
  padding: 0.3rem 0.65rem;
  white-space: nowrap;
}
.diff-finding-badge.clean { color: var(--muted); background: rgba(127,168,159,0.08); border-color: var(--border); }
.diff-finding-text { font-size: 0.9rem; }
.diff-finding-text b { font-weight: 700; }
.diff-finding-meta { font-size: 0.78rem; color: var(--muted); white-space: nowrap; text-align: right; }
.diff-panel { overflow: hidden; }
table.diff-grid { width: 100%; border-collapse: collapse; min-width: 40rem; }
table.diff-grid th, table.diff-grid td { padding: 0; }
thead.diff-col-headers th {
  text-align: left;
  padding: 0.8rem 1rem 0.65rem;
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted);
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}
thead.diff-col-headers th.diff-row-id-head { color: var(--muted); }
table.diff-grid tbody tr { border-bottom: 1px solid var(--border); }
table.diff-grid tbody tr:last-child { border-bottom: none; }
table.diff-grid tbody tr:hover { background: rgba(94,234,212,0.03); }
.diff-row-id { padding: 0.8rem 1rem; vertical-align: middle; white-space: nowrap; }
.diff-row-key { font-weight: 600; font-size: 0.87rem; }
td.diff-cell { padding: 0.5rem 1rem; vertical-align: middle; }
td.diff-cell.flagged { background: rgba(248,113,113,0.08); box-shadow: inset 3px 0 0 var(--danger); }
.diff-cell-inner { display: flex; align-items: center; gap: 0.7rem; }
.diff-cell-value { font-variant-numeric: tabular-nums; font-size: 0.85rem; min-width: 3.2rem; }
.flagged .diff-cell-value { color: var(--danger); font-weight: 700; }
.diff-cell-flag { font-size: 0.65rem; font-weight: 700; color: var(--danger); }
.diff-cell-note { font-size: 0.7rem; color: var(--muted); }
svg.diff-spark { display: block; overflow: visible; flex-shrink: 0; }
svg.diff-spark .diff-spark-grid { stroke: var(--border); stroke-width: 1; }
svg.diff-spark .diff-spark-area { fill: rgba(94,234,212,0.12); }
svg.diff-spark .diff-spark-line { fill: none; stroke: var(--muted); stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; }
svg.diff-spark .diff-spark-dot { fill: var(--accent); }
svg.diff-spark .diff-spark-dot.flag { fill: var(--danger); }
svg.diff-spark .diff-spark-gap { fill: none; stroke: var(--muted); stroke-width: 1.4; }
td.diff-cell.flagged svg.diff-spark .diff-spark-line { stroke: rgba(248,113,113,0.5); }
td.diff-cell.flagged svg.diff-spark .diff-spark-area { fill: rgba(248,113,113,0.1); }
.diff-spark-wrap { position: relative; }
.diff-tip {
  position: absolute;
  bottom: calc(100% + 7px);
  left: 50%;
  transform: translateX(-50%);
  background: var(--ink);
  color: var(--bg);
  font-size: 0.7rem;
  font-weight: 500;
  padding: 0.3rem 0.5rem;
  border-radius: 5px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.12s ease;
  z-index: 5;
}
.diff-spark-wrap:hover .diff-tip, .diff-spark-wrap:focus-within .diff-tip { opacity: 1; }
.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1rem;
}
.card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.25rem;
  display: block;
  position: relative;
  transition: border-color 0.15s, background 0.15s, transform 0.15s;
}
a.card:hover {
  border-color: var(--accent-dim);
  background: var(--card-hover);
  transform: translateY(-1px);
  text-decoration: none;
}
.folder-card { cursor: default; }
.folder-card-summary {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  list-style: none;
}
.folder-card-summary::-webkit-details-marker { display: none; }
.folder-card-icon { color: var(--accent); flex-shrink: 0; }
.folder-card[open] .folder-card-summary { margin-bottom: 1rem; }
.folder-card-link { cursor: pointer; text-decoration: none; color: inherit; display: block; }
.folder-card-link .folder-card-summary { cursor: pointer; }
.folder-card-link .card-title { text-decoration: none; }
.folder-card-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.4rem;
}
.folder-card-preview-item {
  background: rgba(255,255,255,0.04);
  border-radius: 5px;
  padding: 0.15rem 0.5rem;
  font-size: 0.74rem;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 14rem;
}
.folder-card-preview-more { font-size: 0.74rem; color: var(--muted-2); align-self: center; }
.folder-card-contents {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.folder-card-contents .card {
  padding: 1rem;
}
.folder-card-contents a.card:hover {
  transform: none;
}
.card.selected {
  border-color: var(--accent);
  background: rgba(94,234,212,0.08);
  box-shadow: inset 0 0 0 1px var(--accent);
}
.selection-bar {
  position: fixed;
  left: 50%;
  bottom: 1.5rem;
  transform: translateX(-50%);
  z-index: 90;
  display: flex;
  align-items: center;
  gap: 1rem;
  background: var(--card);
  border: 1px solid var(--accent-dim);
  border-radius: 999px;
  padding: 0.6rem 0.6rem 0.6rem 1.1rem;
  box-shadow: 0 15px 40px rgba(0,0,0,0.45);
}
.selection-bar-count { font-size: 0.85rem; font-weight: 600; color: var(--ink); white-space: nowrap; }
.selection-bar-actions { display: flex; gap: 0.5rem; }
.card-select-check {
  display: block;
  position: absolute;
  top: 0.8rem;
  left: 0.75rem;
  z-index: 2;
  width: 18px;
  height: 18px;
  padding: 0;
  border-radius: 4px;
  border: 2px solid var(--muted);
  background: var(--card);
  cursor: pointer;
}
.card-select-check:hover { border-color: var(--accent); }
.card-select-check:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.card-select-check-checked {
  background: var(--accent);
  border-color: var(--accent);
}
.card-select-check-checked::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 45%;
  width: 4px;
  height: 8px;
  border: solid #06231f;
  border-width: 0 2px 2px 0;
  transform: translate(-50%, -50%) rotate(45deg);
}
.card:has(.card-select-check) { padding-left: 2.6rem; }
@media (hover: none) and (pointer: coarse) {
  .card-select-check { width: 24px; height: 24px; top: 0.7rem; }
  .card:has(.card-select-check) { padding-left: 2.85rem; }
}
.card-grid.as-list > .card .card-select-check { top: 50%; transform: translateY(-50%); }
.select-all { margin: 0 0 0.5rem 0.75rem; font-size: 0.82rem; color: var(--muted); }
.select-all label { display: inline-flex; align-items: center; gap: 0.5rem; cursor: pointer; }
.select-all-input { width: 16px; height: 16px; margin: 0; accent-color: var(--accent); cursor: pointer; }
.selection-bar-note { font-size: 0.8rem; color: var(--warn, var(--muted)); max-width: 16rem; }
.follow-btn {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--card);
  color: var(--muted);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.card .follow-btn {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  z-index: 2;
}
.card:has(> .follow-btn) .card-title { padding-right: 1.75rem; }
.follow-btn:hover { color: var(--accent); border-color: var(--accent-dim); }
.follow-btn-active { color: var(--accent); border-color: var(--accent-dim); background: rgba(94,234,212,0.12); }
.follow-btn:disabled { opacity: 0.5; cursor: default; }
.follow-btn .follow-btn-pupil { fill: none; }
.follow-btn-active .follow-btn-pupil { fill: currentColor; }
.follow-btn[data-tip] {
  text-decoration: none;
  cursor: pointer;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
}
.follow-btn.follow-btn-labelled {
  display: inline-flex;
  width: auto;
  gap: 0.35rem;
  padding: 0 0.6rem;
  font: inherit;
  font-size: 0.8rem;
  font-weight: 500;
  vertical-align: middle;
}
.follow-btn-label { white-space: nowrap; }
.watch-hint {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  margin: 0 0 1rem;
  padding: 0.7rem 0.9rem;
  border: 1px solid var(--accent-dim);
  border-radius: 10px;
  background: var(--card);
  font-size: 0.85rem;
  line-height: 1.45;
}
.watch-hint[hidden] { display: none; }
.watch-hint-icon { color: var(--accent); flex-shrink: 0; margin-top: 0.15rem; }
.watch-hint p { margin: 0; flex: 1 1 auto; min-width: 0; }
.watch-hint-dismiss { flex-shrink: 0; }
.watching-section { margin-bottom: 1.5rem; }
.watching-section h2 { font-size: 1rem; margin: 0 0 0.5rem; }
.watching-list { list-style: none; margin: 0; padding: 0; }
.watching-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--border);
}
.watching-item a { min-width: 0; overflow-wrap: anywhere; }
.notif-panel-actions { display: inline-flex; align-items: center; gap: 0.8rem; }
.notif-watching-link { font-size: 0.72rem; }
.card-top {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.9rem;
}
.progress-ring { flex-shrink: 0; }
.progress-ring circle.track { stroke: var(--border); fill: none; }
.progress-ring circle.fill {
  stroke: var(--accent);
  fill: none;
  stroke-linecap: round;
  transform: rotate(-90deg);
  transform-origin: 50% 50%;
  transition: stroke-dasharray 0.3s;
}
.progress-ring text {
  fill: var(--ink);
  font-size: 11px;
  font-weight: 650;
  text-anchor: middle;
  dominant-baseline: middle;
}
.card-title { font-weight: 600; font-size: 1rem; color: var(--ink); margin-bottom: 0.15rem; }
.card-meta { color: var(--muted); font-size: 0.82rem; }
.badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.72rem;
  letter-spacing: 0.03em;
  padding: 0.22rem 0.6rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  color: var(--muted);
}
.badge-label,
.badge[class*="stage-"],
.badge[class*="status-"],
.badge[class*="proposal-state-"],
.badge[class*="sign-meaning-"],
.badge[class*="entry-state-"],
.badge[class*="history-action-"],
.badge[class*="alert-"],
.badge[class*="delegation-"],
.badge[class*="editor-badge-"],
.badge[class*="qc-"],
.badge.badge-blocked,
.badge.badge-create,
.badge.badge-update,
.badge.badge-warn,
.badge.badge-commercial,
.badge.badge-combination,
.badge.badge-retired,
.badge.dose-pending,
.badge.breakpoint-active-badge,
.badge.watching-badge,
.badge.lead-badge,
.badge.reaction-limiting-badge { text-transform: uppercase; }
.badge.stage-planning { color: var(--muted); }
.badge.stage-in_progress { color: var(--accent); border-color: var(--accent-dim); }
.badge.stage-data_collection { color: var(--accent); border-color: var(--accent-dim); }
.badge.stage-analysis { color: var(--warn); border-color: rgba(251,191,36,0.35); }
.badge.stage-review { color: var(--warn); border-color: rgba(251,191,36,0.35); }
.badge.stage-complete { color: var(--accent); background: rgba(94,234,212,0.08); border-color: rgba(94,234,212,0.3); }
.badge.proposal-state-pending { color: var(--warn); border-color: rgba(251,191,36,0.35); }
.badge.proposal-state-changes_requested { color: var(--warn); border-color: rgba(251,191,36,0.35); }
.badge.proposal-state-approved { color: var(--accent); background: rgba(94,234,212,0.08); border-color: rgba(94,234,212,0.3); }
.badge.proposal-state-rejected { color: var(--danger, #f87171); border-color: rgba(248,113,113,0.35); }
.badge.proposal-state-withdrawn { color: var(--muted); }
.proposal-diff { width: 100%; border-collapse: collapse; }
.proposal-diff th {
  text-align: left;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
  padding: 0 0 0.5rem;
  border-bottom: 1px solid var(--border);
}
.proposal-diff td { padding: 0.6rem 0.9rem 0.6rem 0; border-bottom: 1px solid var(--border); vertical-align: top; }
.proposal-diff tr:last-child td { border-bottom: none; }
.proposal-diff-field { color: var(--muted); white-space: nowrap; }
.proposal-diff-old { color: var(--muted); text-decoration: line-through; }
.proposal-diff-changed .proposal-diff-new { color: var(--accent); font-weight: 600; }
.proposal-diff-changed .proposal-diff-field::before {
  content: "\2022 ";
  color: var(--accent);
}
.proposal-decision-rule { border: none; border-top: 1px solid var(--border); margin: 1.4rem 0; }
.proposal-decision .field-help { max-width: 46ch; }
.badge.sign-meaning-authored { color: var(--accent); background: rgba(94,234,212,0.08); border-color: rgba(94,234,212,0.3); }
.badge.sign-meaning-reviewed { color: var(--compound); border-color: rgba(96,165,250,0.35); }
tr.sign-superseded td { opacity: 0.6; }
.badge.sign-step-done { border-style: solid; }
.history-version { padding: 0.75rem 0; border-bottom: 1px solid var(--border); }
.history-version:last-child { border-bottom: 0; }
.history-version-child { padding-left: 1rem; border-left: 2px solid var(--border); }
.history-version-head { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: baseline; }
.history-reason { margin: 0.35rem 0; font-style: italic; }
table.history-changes { margin-top: 0.4rem; table-layout: fixed; }
table.history-changes td { overflow-wrap: anywhere; vertical-align: top; }
td.history-old { color: var(--muted); text-decoration: line-through; text-decoration-thickness: 1px; }
.badge.sign-meaning-witnessed { color: var(--warn); border-color: rgba(251,191,36,0.35); }
.signature-table .sign-title { font-size: 0.78rem; color: var(--muted); }
.sign-drift-ok { color: var(--accent); font-size: 0.82rem; }
.sign-drift-changed { color: var(--danger, #f87171); font-weight: 600; font-size: 0.82rem; }
.sign-drift-warning { border-color: var(--danger, #f87171); color: var(--danger, #f87171); text-align: left; }
.sign-note { margin-top: 0.5rem; }
.badge.status-open { color: var(--muted); }
.badge.status-claimed { color: var(--accent); border-color: var(--accent-dim); }
.badge.status-complete { color: var(--accent); background: rgba(94,234,212,0.08); border-color: rgba(94,234,212,0.3); }
.badge.status-lead { color: var(--muted); }
.badge.status-in_testing { color: var(--accent); border-color: var(--accent-dim); }
.badge.status-validated { color: var(--accent); background: rgba(94,234,212,0.08); border-color: rgba(94,234,212,0.3); }
.badge.status-deprioritized { color: var(--danger); border-color: rgba(248,113,113,0.35); }
.badge.badge-commercial { color: var(--assay-parent); border-color: rgba(167,139,250,0.35); }
.badge.badge-retired { color: var(--muted); border-color: rgba(127,168,159,0.4); }
.assignee {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--border);
  font-size: 0.82rem;
  color: var(--muted);
}
.card-updated {
  margin-top: 0.5rem;
  font-size: 0.72rem;
  color: var(--muted-2);
}
.avatar {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(94,234,212,0.15);
  color: var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  font-weight: 700;
  flex-shrink: 0;
}
.detail-header {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 2rem;
}
.stage-track {
  display: flex;
  gap: 0.4rem;
  margin: 1.5rem 0 2rem;
}
.stage-step {
  flex: 1;
  min-width: 0;
  text-align: center;
  padding: 0.6rem 0.4rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  font-size: 0.75rem;
  color: var(--muted-2);
  position: relative;
}
.stage-step.done { border-color: var(--accent-dim); color: var(--accent); background: rgba(94,234,212,0.06); }
.stage-step.current { border-color: var(--accent); color: var(--ink); background: rgba(94,234,212,0.12); font-weight: 650; }
.detail-header-tight { flex-wrap: wrap; align-items: flex-start; gap: 0.5rem 1.5rem; margin-bottom: 0.5rem; }
.detail-head-main { flex: 1 1 30rem; min-width: 0; }
.detail-back { font-size: 0.85rem; margin-right: 0.6rem; white-space: nowrap; }
.detail-title-inline { display: inline; margin: 0 0.5rem 0 0; vertical-align: middle; }
.detail-side { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1rem; min-width: 0; margin-left: auto; }
.detail-side .stage-track-compact { margin: 0; }
.detail-header-tight + .run-facts-quiet { margin-bottom: 0.25rem; }
@media (min-width: 861px) {
  .stage-track-compact { gap: 0.25rem; }
  .stage-track-compact .stage-step {
    flex: 0 0 auto;
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
    font-size: 0.72rem;
    line-height: 1.35;
  }
  .detail-header-tight ~ .section-rail { margin-top: 0.4rem; padding: 0.25rem 0; }
  .detail-header-tight ~ #section-data-table { margin-top: 0.75rem; }
}
@media (max-width: 860px) {
  .detail-side { width: 100%; margin-left: 0; }
  .detail-side .stage-track-compact { width: 100%; }
}
.detail-meta {
  margin-top: 0.35rem;
  font-size: 0.8rem;
  color: var(--muted);
  line-height: 1.5;
}
.detail-meta .avatar-inline {
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.25rem; height: 1.25rem; margin-right: 0.3rem;
  font-size: 0.55rem; vertical-align: middle;
}
.detail-description { margin: 0.4rem 0 0; color: var(--ink); max-width: 70ch; }
.detail-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 2rem;
  margin-bottom: 1.5rem;
}
@media (max-width: 720px) {
  .detail-grid { grid-template-columns: 1fr; gap: 1rem; }
}
.panel {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.5rem;
}
.panel + .panel { margin-top: 1rem; }
.detail-grid > .panel + .panel,
.dash-needs-you > .panel + .panel { margin-top: 0; }
.field { margin-bottom: 1rem; }
.field .k { color: var(--muted); font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.03em; margin-bottom: 0.2rem; }
.field .v { font-size: 0.95rem; }
.table-scroll { overflow-x: auto; max-width: 100%; }
.data-table-scroll { overflow-x: auto; max-width: 100%; }
.source-digest { overflow-wrap: anywhere; }
.access-review-table td, .access-review-table th { white-space: nowrap; }
table.activity-table { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
table.activity-table th {
  text-align: left;
  color: var(--muted);
  font-weight: 600;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.6rem 0.75rem;
  border-bottom: 1px solid var(--border);
}
table.activity-table td {
  padding: 0.65rem 0.75rem;
  border-bottom: 1px solid var(--border);
}
table.activity-table tr:hover td { background: rgba(94,234,212,0.03); }
table.activity-table tr.activity-row-followed td { background: rgba(94,234,212,0.05); }
table.activity-table tr.activity-row-followed:hover td { background: rgba(94,234,212,0.08); }
.watching-badge {
  margin-left: 0.5rem;
  color: var(--accent);
  border-color: rgba(94,234,212,0.35);
  background: rgba(94,234,212,0.08);
}
.list-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 1.75rem;
}
.list-header .heading-group { flex: 1; }
.list-header .page-subtitle { margin-bottom: 0; }
.btn-primary.btn-sm { padding: 0.5rem 1rem; font-size: 0.85rem; white-space: nowrap; }
.detail-header .detail-actions { margin-left: auto; display: flex; gap: 0.6rem; flex-wrap: wrap; }
@media (max-width: 860px) {
  .detail-header { flex-wrap: wrap; }
  .detail-header > :first-child:not(.detail-actions) { flex: 1 1 100%; min-width: 0; }
  .detail-header .detail-actions { margin-left: 0; width: 100%; }
}
.form-panel { max-width: 40rem; }
.form-field { margin-bottom: 1.1rem; }
.form-field label {
  display: block;
  font-size: 0.82rem;
  color: var(--muted);
  margin-bottom: 0.35rem;
}
.form-field .field-help label { display: inline; font-size: inherit; margin: 0; }
.form-field label.label-required {
  font-weight: 700;
  color: var(--ink);
}
.form-field label.label-required::after {
  content: " *";
  color: var(--danger);
  font-weight: 400;
}
.form-field input,
.form-field select,
.form-field textarea {
  width: 100%;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.55rem 0.75rem;
  color: var(--ink);
  font-size: 0.92rem;
  font-family: inherit;
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus { outline: none; border-color: var(--accent-dim); }
.form-field textarea { resize: vertical; }
.form-field input[type="checkbox"],
.form-field input[type="radio"] {
  width: auto; padding: 0; margin: 0; border: 0; background: none; flex: 0 0 auto;
  accent-color: var(--accent);
}
.form-field label:has(> input[type="checkbox"]),
.form-field label:has(> input[type="radio"]) { display: flex; align-items: center; gap: 0.45rem; }
.form-field label.check-inline { display: inline-flex; margin-right: 0.9rem; }
.field-error { color: var(--danger); font-size: 0.8rem; margin-top: 0.3rem; }
.suggest-wrap { position: relative; display: block; }
.suggest-ghost {
  position: absolute; inset: 0; display: flex; align-items: center;
  border: 0 solid transparent; pointer-events: none; overflow: hidden; white-space: pre;
}
.suggest-ghost[hidden] { display: none; }
.suggest-ghost-typed { visibility: hidden; }
.suggest-ghost-rest { color: var(--muted); }
.suggest-panel {
  position: fixed; z-index: 60;
  background: var(--card); border: 1px solid var(--border); border-radius: 8px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25); padding: 0.25rem 0;
}
.suggest-option {
  padding: 0.4rem 0.75rem; font-size: 0.9rem; color: var(--ink); cursor: pointer;
  overflow-wrap: anywhere;
}
.suggest-option[aria-selected="true"] { background: var(--card-hover); }
.suggest-panel-list .suggest-list { max-height: 15rem; overflow-y: auto; }
.suggest-hint {
  padding: 0.3rem 0.75rem 0.2rem; font-size: 0.78rem; color: var(--muted);
  border-top: 1px solid var(--border); margin-top: 0.2rem; overflow-wrap: anywhere;
}
.field-help { color: var(--muted-2); font-size: 0.78rem; margin-top: 0.3rem; }
.form-actions { display: flex; gap: 0.75rem; margin-top: 1.5rem; }
.btn-primary, .btn-secondary, .btn-danger {
  border-radius: 8px;
  padding: 0.6rem 1.1rem;
  font-weight: 600;
  font-size: 0.9rem;
  cursor: pointer;
  border: none;
  display: inline-block;
}
.btn-primary { background: var(--accent); color: #06231f; }
.btn-primary:hover { background: var(--accent-dim); text-decoration: none; }
.btn-secondary { background: none; border: 1px solid var(--border); color: var(--muted); }
.btn-secondary:hover { color: var(--accent); border-color: var(--accent-dim); text-decoration: none; }
.btn-danger { background: var(--danger); color: #2a0a0a; }
.btn-danger:hover { background: #ef4444; text-decoration: none; }
.btn-danger:disabled { opacity: 0.6; cursor: default; }
.action-pill {
  display: inline-block;
  padding: 0.15rem 0.55rem;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
}
.action-pill.create { color: var(--accent); background: rgba(94,234,212,0.1); }
.action-pill.view { color: var(--muted); background: rgba(127,168,159,0.1); }
.action-pill.edit { color: var(--warn); background: rgba(251,191,36,0.1); }
.action-pill.sign { color: var(--accent); background: rgba(94,234,212,0.15); }
.action-pill.permission_change { color: #c084fc; background: rgba(192,132,252,0.1); }
.action-pill.login, .action-pill.logout { color: var(--muted); background: rgba(127,168,159,0.08); }
.login-wrap {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
}
.login-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 2.5rem;
  width: 100%;
  max-width: 22rem;
  box-shadow: 0 20px 60px rgba(0,0,0,0.4);
}
@media (max-width: 400px) {
  .login-card { padding: 1.75rem 1.5rem; }
}
.login-card h1 { text-align: center; margin-bottom: 0.3rem; }
.login-wrap { flex-direction: column; }
.login-sso-alt { margin: 1rem 0 0; text-align: center; font-size: 0.88rem; }
.login-brief-link { display: block; margin-top: 1.1rem; text-align: center; font-size: 0.85rem; color: var(--muted); }
.login-brief-link:hover { color: var(--accent); }
.login-brief-link.login-brief-link-secondary { margin-top: 0.45rem; }
.login-card .page-subtitle { text-align: center; margin-bottom: 1.75rem; }
.login-card label { display: block; font-size: 0.82rem; color: var(--muted); margin-bottom: 0.35rem; }
.login-card input {
  width: 100%;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.6rem 0.75rem;
  color: var(--ink);
  font-size: 0.92rem;
  margin-bottom: 1.1rem;
}
.login-card input:focus { outline: none; border-color: var(--accent-dim); }
.login-card button {
  width: 100%;
  background: var(--accent);
  color: #06231f;
  border: none;
  border-radius: 8px;
  padding: 0.65rem;
  font-weight: 650;
  font-size: 0.92rem;
  cursor: pointer;
}
.login-card button:hover { background: var(--accent-dim); }
.login-error { color: var(--danger); font-size: 0.85rem; margin-bottom: 1rem; text-align: center; }
.login-notice {
  color: var(--warn);
  font-size: 0.85rem;
  margin-bottom: 1rem;
  text-align: center;
  line-height: 1.45;
}
.login-sandbox-form { margin-bottom: 0.5rem; }
.login-sandbox-btn { background: transparent !important; border: 1px solid var(--accent) !important; color: var(--accent) !important; }
.login-sandbox-btn:hover { background: rgba(94,234,212,0.1) !important; }
.login-sandbox-hint { font-size: 0.76rem; color: var(--muted-2); text-align: center; margin-bottom: 1.5rem; }
.login-divider {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
  font-size: 0.76rem;
  color: var(--muted-2);
}
.login-divider::before,
.login-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--border);
}
.empty-state { color: var(--muted); font-size: 0.9rem; padding: 2rem; text-align: center; }
.messages { margin-bottom: 1.5rem; }
.app-message {
  border-radius: 8px;
  padding: 0.7rem 1rem;
  font-size: 0.88rem;
  margin-bottom: 0.6rem;
  border: 1px solid var(--border);
}
.app-message.success { color: var(--accent); background: rgba(94,234,212,0.08); border-color: rgba(94,234,212,0.3); }
.app-message.error { color: var(--danger); background: rgba(248,113,113,0.08); border-color: rgba(248,113,113,0.3); }
.app-message-group > summary { cursor: pointer; }
.app-message-group > ul { margin: 0.5rem 0 0; padding-left: 1.2rem; color: var(--ink); }
.app-message-group > ul li + li { margin-top: 0.2rem; }
.table-dropzone-frame {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  text-align: center;
  padding: 1.75rem 1.25rem;
  margin-bottom: 1.25rem;
  border: 2px dashed var(--border);
  border-radius: 12px;
  background: rgba(255,255,255,0.015);
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.table-dropzone-frame:hover,
.table-dropzone-frame:focus-visible {
  border-color: var(--accent-dim);
  outline: none;
}
.table-dropzone-frame.dragover {
  border-color: var(--accent);
  background: rgba(94,234,212,0.06);
}
.table-dropzone-frame .upload-dropzone-icon { color: var(--muted); }
.table-dropzone-frame.dragover .upload-dropzone-icon { color: var(--accent); }
.table-dropzone-strip {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.65rem 0.9rem;
  margin-bottom: 1.25rem;
  border: 1.5px dashed var(--border);
  border-radius: 9px;
  background: rgba(255,255,255,0.015);
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.table-dropzone-strip:hover,
.table-dropzone-strip:focus-visible {
  border-color: var(--accent-dim);
  outline: none;
}
.table-dropzone-strip.dragover {
  border-color: var(--accent);
  background: rgba(94,234,212,0.06);
}
.table-dropzone-strip .upload-dropzone-icon { color: var(--muted); flex-shrink: 0; }
.table-dropzone-strip.dragover .upload-dropzone-icon { color: var(--accent); }
.table-dropzone-strip-text { font-size: 0.82rem; color: var(--ink); }
.table-upload-btn { display: inline-flex; align-items: center; gap: 0.35rem; }
.table-upload-btn.dragover { border-color: var(--accent); color: var(--accent); background: rgba(94,234,212,0.06); }
.visually-hidden-input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}
.upload-dropzone {
  flex: 1 1 20rem;
  min-width: 16rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  text-align: center;
  padding: 1.75rem 1.25rem;
  border: 2px dashed var(--border);
  border-radius: 12px;
  background: rgba(255,255,255,0.015);
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.upload-dropzone:hover,
.upload-dropzone:focus-visible {
  border-color: var(--accent-dim);
  outline: none;
}
.upload-dropzone.dragover {
  border-color: var(--accent);
  background: rgba(94,234,212,0.06);
}
.upload-dropzone-icon { color: var(--muted); }
.upload-dropzone.dragover .upload-dropzone-icon { color: var(--accent); }
.upload-dropzone-text { margin: 0; font-size: 0.9rem; color: var(--ink); }
.upload-dropzone-browse { color: var(--accent); text-decoration: underline; }
.upload-dropzone-note { margin: 0; font-size: 0.76rem; color: var(--muted); }
.upload-dropzone-filename { margin: 0; font-size: 0.8rem; color: var(--accent); font-weight: 600; }
.upload-dropzone input[type="file"] {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}
.data-table-wrap { overflow: auto; max-height: clamp(20rem, 60vh, 52rem); }
.data-table-wrap.dt-fits { max-height: none; }
table.data-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.85rem;
  background-color: var(--card);
}
table.data-table th, table.data-table td {
  border: 1px solid var(--border);
  border-width: 0 1px 1px 0;
  padding: 0.5rem 0.7rem;
  text-align: left;
  white-space: nowrap;
}
table.data-table tr > *:first-child { border-left-width: 1px; }
table.data-table thead tr:first-child > * { border-top-width: 1px; }
table.data-table th {
  position: sticky;
  top: 0;
  z-index: 2;
  background-color: var(--card);
  background-image: linear-gradient(rgba(94,234,212,0.05), rgba(94,234,212,0.05));
  color: var(--accent);
  font-weight: 650;
  font-size: 0.78rem;
  text-transform: none;
  letter-spacing: 0.02em;
}
table.data-table tr:nth-child(even) td { background-color: rgba(255,255,255,0.015); }
table.data-table td:first-child {
  position: sticky;
  left: 0;
  z-index: 1;
  background-color: var(--card);
}
table.data-table tr:nth-child(even) td:first-child {
  background-image: linear-gradient(rgba(255,255,255,0.015), rgba(255,255,255,0.015));
}
table.data-table thead th:first-child { z-index: 3; left: 0; }
@media (max-width: 640px) {
  table.data-table thead tr:not(.dt-eyebrow-row) th:not(.dt-gutter) {
    white-space: normal;
    max-width: 7.5rem;
    min-width: 3rem;
    overflow-wrap: break-word;
    hyphens: auto;
    vertical-align: bottom;
  }
  table.data-table td:first-child:not(.dt-gutter),
  table.data-table td.dt-gutter + td {
    white-space: normal;
    max-width: 7rem;
    overflow-wrap: break-word;
  }
}
.dt-toolbar {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin: 0 0 0.5rem;
}
.dt-filter-wrap { flex: 0 1 15rem; min-width: 8rem; }
input.dt-filter {
  width: 100%;
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: 6px;
  color: var(--ink);
  font: inherit;
  font-size: 0.82rem;
  padding: 0.3rem 0.55rem;
}
input.dt-filter:focus { outline: none; border-color: var(--accent-dim); }
.dt-btn {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: 6px;
  color: var(--muted);
  font: inherit;
  font-size: 0.78rem;
  padding: 0.3rem 0.6rem;
  cursor: pointer;
}
.dt-btn:hover { color: var(--ink); border-color: var(--muted-2); }
.dt-btn-on { color: var(--accent); border-color: var(--accent-dim); }
.dt-hidden-cols-btn, .dt-filtered-rows-btn { color: var(--accent); border-color: var(--accent-dim); }
.dt-value-filter { width: 15rem; max-height: 24rem; display: flex; flex-direction: column; }
.dt-value-filter-title {
  color: var(--accent);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.15rem 0.3rem 0.3rem;
}
input.dt-value-filter-search {
  width: 100%;
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: 5px;
  color: var(--ink);
  font: inherit;
  font-size: 0.78rem;
  padding: 0.25rem 0.45rem;
  margin-bottom: 0.3rem;
}
.dt-value-filter-list { overflow-y: auto; flex: 1 1 auto; min-height: 3rem; }
.dt-value-filter-note { color: var(--muted-2); font-size: 0.7rem; margin: 0.3rem 0.3rem 0; }
.dt-value-filter-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.4rem;
  padding-top: 0.4rem;
  border-top: 1px solid var(--border);
  margin-top: 0.3rem;
}
.dt-value-filter-apply { color: var(--accent); border-color: var(--accent-dim); }
table.data-table th.dt-header-filtered::after {
  content: "▾";
  font-size: 0.6rem;
  color: var(--accent);
  margin-left: 0.2rem;
}
table.data-table tfoot tr td.dt-total-cell:not(.dt-nothing) {
  position: sticky;
  bottom: 0;
  z-index: 2;
  background-color: var(--card);
  background-image: linear-gradient(rgba(255,255,255,0.022), rgba(255,255,255,0.022));
  color: var(--muted);
  font-size: 0.72rem;
  font-variant-numeric: tabular-nums;
  border-top: 1px dashed var(--muted-2);
}
table.data-table tfoot tr td.dt-total-label:not(.dt-nothing) {
  text-align: left;
  white-space: nowrap;
  font-family: inherit;
  font-style: italic;
  color: var(--muted-2);
  font-size: 0.7rem;
}
table.data-table td.dt-gutter.dt-total-cell { z-index: 3; }
table.data-table tfoot tr td.dt-gutter:not(.dt-nothing) { z-index: 6; }
.dt-status {
  margin-left: auto;
  color: var(--muted);
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
  text-align: right;
}
.dt-flash {
  color: var(--accent);
  font-size: 0.75rem;
  padding-left: 0.4rem;
}
@media (max-width: 860px) {
  .dt-status { margin-left: 0; width: 100%; text-align: left; }
}
.dt-columns-menu, .dt-context-menu {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.45);
  padding: 0.3rem;
  min-width: 12rem;
  max-height: 20rem;
  overflow-y: auto;
  z-index: 60;
}
.dt-columns-menu { position: absolute; top: 100%; left: 0; margin-top: 0.25rem; }
.dt-context-menu { position: fixed; }
body.dt-focus-open .dt-context-menu { z-index: 210; }
.dt-menu-head {
  display: flex;
  justify-content: flex-end;
  border-bottom: 1px solid var(--border);
  padding-bottom: 0.25rem;
  margin-bottom: 0.25rem;
}
.dt-menu-link {
  background: none;
  border: none;
  color: var(--accent);
  font: inherit;
  font-size: 0.75rem;
  cursor: pointer;
}
.dt-menu-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.25rem 0.45rem;
  font-size: 0.8rem;
  color: var(--ink);
  cursor: pointer;
  border-radius: 5px;
}
.dt-menu-item:hover { background: var(--card-hover); }
.dt-context-item {
  display: block;
  width: 100%;
  text-align: left;
  background: none;
  border: none;
  color: var(--ink);
  font: inherit;
  font-size: 0.8rem;
  padding: 0.35rem 0.5rem;
  border-radius: 5px;
  cursor: pointer;
}
.dt-context-item:hover:not(:disabled) { background: var(--card-hover); }
.dt-context-item:disabled { color: var(--muted-2); cursor: default; }
.dt-context-sep { height: 1px; background: var(--border); margin: 0.25rem 0.2rem; }
table.data-table th.dt-gutter, table.data-table td.dt-gutter {
  width: 3rem;
  min-width: 3rem;
  text-align: right;
  color: var(--muted-2);
  font-size: 0.72rem;
  font-variant-numeric: tabular-nums;
  padding: 0.5rem 0.5rem;
  cursor: pointer;
  user-select: none;
}
table.data-table td.dt-gutter:hover { color: var(--accent); }
table.data-table tr:nth-child(even) td.dt-gutter,
table.data-table tr:nth-child(odd) td.dt-gutter {
  background-color: var(--card);
  background-image: linear-gradient(rgba(255,255,255,0.015), rgba(255,255,255,0.015));
}
table.data-table tr:nth-child(odd) td.dt-gutter { background-image: none; }
table.data-table th.dt-header {
  position: sticky;
  cursor: pointer;
  user-select: none;
  padding-right: 1.3rem;
}
table.data-table th.dt-header:hover { color: var(--ink); }
table.data-table th.dt-header-selected { box-shadow: inset 0 -2px 0 var(--accent); }
table.data-table th.dt-frozen-edge { border-right: 2px solid var(--muted-2); }
table.data-table td.dt-frozen-edge { border-right: 2px solid var(--muted-2); }
.dt-sort-ind { font-size: 0.6rem; margin-left: 0.25rem; color: var(--accent); }
.dt-resizer {
  position: absolute;
  top: 0;
  right: 0;
  width: 6px;
  height: 100%;
  cursor: col-resize;
}
.dt-resizer:hover { background: var(--accent-dim); }
body.dt-resizing { cursor: col-resize; user-select: none; }
table.data-table td.dt-sel { box-shadow: inset 0 0 0 9999px rgba(94,234,212,0.10); }
table.data-table td.dt-active { box-shadow: inset 0 0 0 2px var(--accent), inset 0 0 0 9999px rgba(94,234,212,0.10); }
.dt-shell.dt-focused {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: var(--bg);
  padding: 1rem 1.25rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.dt-shell.dt-focused .dt-toolbar { flex: 0 0 auto; }
.dt-shell.dt-focused .data-table-wrap {
  flex: 1 1 auto;
  max-height: none;
  height: auto;
  min-height: 0;
}
body.dt-focus-open { overflow: hidden; }
@media (prefers-reduced-motion: no-preference) {
  .dt-shell.dt-focused { animation: dt-focus-in 0.12s ease-out; }
  @keyframes dt-focus-in {
    from { opacity: 0.6; }
    to { opacity: 1; }
  }
}
body.sheet-window {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  display: flex;
  flex-direction: column;
  height: 100vh;
  overflow: hidden;
}
.sheet-window-bar {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  flex-wrap: wrap;
  padding: 0.7rem 1rem;
  border-bottom: 1px solid var(--border);
  background: var(--bg-2);
  flex: 0 0 auto;
}
.sheet-window-title { display: flex; align-items: baseline; gap: 0.5rem; }
.sheet-window-title a { color: var(--accent); text-decoration: none; }
.sheet-window-title a:hover { text-decoration: underline; }
.sheet-window-sheet { color: var(--muted); font-size: 0.85rem; }
.sheet-window-note { margin-left: auto; color: var(--muted-2); font-size: 0.75rem; }
.sheet-window-main {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0.85rem 1rem 1rem;
  display: flex;
  flex-direction: column;
}
.sheet-window-main .dt-shell { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.sheet-window-main .data-table-wrap { flex: 1 1 auto; max-height: none; min-height: 0; }
.data-table-wrap:focus { outline: 1px solid var(--accent-dim); outline-offset: -1px; }
.data-table-wrap:focus-visible { outline: 1px solid var(--accent-dim); outline-offset: -1px; }
textarea.dt-copy-buffer { position: fixed; left: -9999px; top: 0; opacity: 0; }
table.editable-table {
  border-collapse: collapse;
  font-size: 0.86rem;
  width: 100%;
}
table.editable-table th, table.editable-table td {
  border: 1px solid var(--border);
  padding: 0;
}
table.editable-table th { background: rgba(94,234,212,0.05); }
table.editable-table input {
  width: 100%;
  min-width: 5.5rem;
  box-sizing: border-box;
  border: none;
  background: transparent;
  color: var(--ink);
  padding: 0.5rem 0.6rem;
  font-size: 0.86rem;
  font-family: inherit;
}
table.editable-table th input {
  color: var(--accent);
  font-weight: 650;
  font-size: 0.78rem;
  text-transform: none;
  letter-spacing: 0.02em;
}
table.editable-table th input.column-name-input {
  width: auto;
  min-width: 100%;
  max-width: 22rem;
  field-sizing: content;
}
.link-exact-label { display: flex; gap: 0.5rem; align-items: baseline; margin-top: 1rem; font-size: 0.88rem; overflow-wrap: anywhere; }
table.editable-table input:focus {
  outline: 2px solid var(--accent-dim);
  outline-offset: -2px;
  background: rgba(94,234,212,0.05);
}
.table-toolbar {
  display: flex;
  gap: 0.75rem;
  margin-bottom: 1rem;
  align-items: center;
  flex-wrap: wrap;
}
.table-toolbar-note { color: var(--muted-2); font-size: 0.75rem; }
.table-editor-wrap {
  overflow: auto;
  max-height: max(20rem, calc(100vh - var(--topbar-h) - 3rem));
  margin-bottom: 1.25rem;
}
table.editable-table tbody td:first-child {
  position: sticky;
  left: 0;
  z-index: 1;
  background-color: var(--card);
}
table.editable-table thead th:first-child { left: 0; z-index: 3; }
table.editable-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background-color: var(--card);
  background-image: linear-gradient(rgba(94,234,212,0.05), rgba(94,234,212,0.05));
}
.column-type-badge {
  display: block;
  width: 100%;
  border-top: 1px solid var(--border);
  color: var(--muted);
  font-size: 0.7rem;
  padding: 0.2rem 0.5rem;
  letter-spacing: 0;
}
table.editable-table input.entity-typed-cell { color: var(--compound); }
table.editable-table input.entity-typed-cell::placeholder { color: var(--muted-2); font-style: italic; }
.form-error-block {
  border: 1px solid var(--danger);
  border-radius: 8px;
  background: rgba(248,113,113,0.06);
  padding: 0.7rem 0.9rem;
  margin-bottom: 1rem;
  font-size: 0.85rem;
}
.form-error-block p { margin: 0 0 0.4rem; }
.form-error-block ul { margin: 0 0 0 1.1rem; padding: 0; color: var(--muted); }
.form-error-block code { background: var(--bg-2); border-radius: 4px; padding: 0.1rem 0.35rem; }
table.data-table thead th.dt-declared { box-shadow: inset 0 -2px 0 var(--accent-dim); }
table.data-table thead th.dt-matched { box-shadow: inset 0 -2px 0 var(--muted-2); }
table.data-table thead th.dt-matched-fuzzy { box-shadow: inset 0 -2px 0 var(--warn); }
table.data-table thead th .dt-record-link {
  margin-left: 0.3rem;
  color: var(--muted-2);
  text-decoration: none;
  font-size: 0.72rem;
  vertical-align: 0.08em;
}
table.data-table thead th .dt-record-link:hover { color: var(--accent); }
table.data-table thead th .dt-record-link:focus-visible {
  outline: 1px solid var(--accent-dim);
  outline-offset: 1px;
}
table.data-table thead th .dt-col-menu {
  margin-left: 0.15rem;
  padding: 0 0.2rem;
  border: none;
  border-radius: 4px;
  background: none;
  color: var(--muted-2);
  font: inherit;
  font-size: 0.85rem;
  line-height: 1;
  vertical-align: 0.02em;
  cursor: pointer;
}
table.data-table thead th .dt-col-menu:hover { color: var(--accent); background: var(--card-hover); }
table.data-table thead th .dt-col-menu:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
  color: var(--accent);
}
@media (pointer: coarse) {
  table.data-table thead th .dt-col-menu { min-width: 32px; min-height: 32px; }
}
table.data-table thead th[data-stacked] .dt-col-menu {
  position: absolute;
  right: 0.1rem;
  bottom: 0.1rem;
  margin: 0;
}
table.data-table thead th[data-stacked] .dt-sort-ind {
  position: absolute;
  right: 0.15rem;
  top: 0.15rem;
  margin: 0;
}
.dt-context-item:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
table.data-table thead th .dt-role {
  display: block;
  font-size: 0.6rem;
  letter-spacing: 0.06em;
  color: var(--muted-2);
  font-weight: 450;
  text-transform: uppercase;
}
table.data-table thead th .dt-combo-name,
.preview-table thead th .dt-combo-name {
  display: block;
  white-space: normal;
}
table.data-table thead th .dt-combo-dose,
.preview-table thead th .dt-combo-dose {
  display: block;
  white-space: normal;
  font-size: 0.72rem;
  font-weight: 450;
  color: var(--muted-2);
}
table.data-table thead th[data-stacked],
.preview-table thead th.hdr-stacked {
  vertical-align: bottom;
  padding-top: 0;
  padding-bottom: 0;
}
.hdr-stack {
  display: flex;
  flex-direction: column;
}
.hdr-line {
  display: block;
  height: 1.45rem;
  line-height: 1.45rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.hdr-line + .hdr-line {
  border-top: 1px solid var(--border);
}
.hdr-compound { font-weight: 600; }
.hdr-combo, .hdr-ratio, .hdr-start, .hdr-run {
  font-size: 0.78rem;
  font-weight: 450;
  color: var(--muted);
}
.hdr-label {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--muted);
  text-align: left;
}
.hdr-line-rows.hdr-label { color: var(--ink); }
table.data-table thead tr.dt-eyebrow-row th {
  background-color: var(--bg-2);
  color: var(--muted);
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  font-weight: 450;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  text-align: left;
}
table.data-table thead tr.dt-eyebrow-row th.dt-owns {
  color: var(--accent);
  background-image: linear-gradient(rgba(94,234,212,0.07), rgba(94,234,212,0.07));
  border-bottom-color: var(--accent-dim);
}
table.data-table thead tr.dt-eyebrow-row th { z-index: 4; }
table.data-table thead tr.dt-eyebrow-row th.dt-finding-col { z-index: 7; }
.entity-column-tag { color: var(--compound); font-size: 0.62rem; letter-spacing: 0.04em; }
.assistant-widget { position: fixed; right: 1.5rem; bottom: 1.5rem; z-index: 100; }
.assistant-fab {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--accent);
  border: none;
  box-shadow: 0 10px 30px rgba(0,0,0,0.35);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.15s, opacity 0.15s;
}
.assistant-fab:hover { transform: scale(1.06); background: var(--accent-dim); }
.assistant-fab-hidden { opacity: 0; pointer-events: none; transform: scale(0.8); }
.tour-hint {
  position: absolute;
  right: 0;
  bottom: 70px;
  width: 15rem;
  background: var(--card);
  border: 1px solid var(--accent-dim);
  border-radius: 12px;
  padding: 0.9rem 1rem 1rem;
  box-shadow: 0 10px 30px rgba(0,0,0,0.35);
  animation: tour-hint-in 0.25s ease-out;
}
.tour-hint::after {
  content: "";
  position: absolute;
  bottom: -7px;
  right: 22px;
  width: 12px;
  height: 12px;
  background: var(--card);
  border-right: 1px solid var(--accent-dim);
  border-bottom: 1px solid var(--accent-dim);
  transform: rotate(45deg);
}
.tour-hint p { margin: 0 0 0.7rem; font-size: 0.82rem; color: var(--ink); line-height: 1.4; padding-right: 1rem; }
.tour-hint-close {
  position: absolute;
  top: 0.4rem;
  right: 0.5rem;
  background: none;
  border: none;
  color: var(--muted);
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  padding: 0.2rem;
}
.tour-hint-close:hover { color: var(--ink); }
.tour-hint-start {
  width: 100%;
  background: var(--accent);
  color: #06231f;
  border: none;
  border-radius: 8px;
  padding: 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
}
.tour-hint-start:hover { background: var(--accent-dim); }
@keyframes tour-hint-in {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 480px) {
  .tour-hint { width: calc(100vw - 3.5rem); right: -0.25rem; }
}
#guided-tour-overlay { position: fixed; inset: 0; z-index: 9000; pointer-events: none; }
.guided-tour-dim {
  position: fixed;
  background: rgba(4,10,10,0.72);
  z-index: 9000;
  pointer-events: auto;
  transition: opacity 0.2s ease-out;
}
.guided-tour-overlay-usable .guided-tour-dim {
  pointer-events: none;
  background: rgba(4,10,10,0.5);
}
.guided-tour-highlight {
  position: relative;
  z-index: 9001;
  outline: 3px solid var(--accent);
  outline-offset: 4px;
  border-radius: 8px;
  animation: guided-tour-pulse 1.6s ease-in-out infinite;
}
@keyframes guided-tour-pulse {
  0%, 100% { outline-color: var(--accent); }
  50% { outline-color: var(--accent-dim); }
}
.guided-tour-callout {
  position: fixed;
  z-index: 9002;
  pointer-events: auto;
  width: 17rem;
  max-width: calc(100vw - 1.5rem);
  background: var(--card);
  border: 1px solid var(--accent);
  border-radius: 12px;
  padding: 1rem 1.1rem 1.1rem;
  box-shadow: 0 15px 40px rgba(0,0,0,0.5);
}
.guided-tour-progress { font-size: 0.72rem; font-weight: 600; color: var(--accent); text-transform: uppercase; letter-spacing: 0.02em; margin-bottom: 0.4rem; }
.guided-tour-callout p { margin: 0 0 0.85rem; font-size: 0.88rem; color: var(--ink); line-height: 1.45; }
.guided-tour-exit {
  background: none;
  border: 1px solid var(--border);
  color: var(--muted);
  border-radius: 999px;
  padding: 0.35rem 0.8rem;
  font-size: 0.75rem;
  cursor: pointer;
}
.guided-tour-exit:hover { color: var(--ink); border-color: var(--accent-dim); }
.guided-tour-callout-tour { width: 20rem; }
.guided-tour-callout p.guided-tour-title {
  font-size: 0.95rem;
  font-weight: 650;
  color: var(--ink);
  margin: 0 0 0.35rem;
  line-height: 1.3;
}
.guided-tour-actions { display: flex; gap: 0.4rem; align-items: center; }
.guided-tour-actions .guided-tour-exit { margin-right: auto; }
.guided-tour-back, .guided-tour-next {
  border-radius: 999px;
  padding: 0.35rem 0.9rem;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid var(--border);
  background: none;
  color: var(--ink);
}
.guided-tour-next { background: var(--accent); border-color: var(--accent); color: #06231f; }
.guided-tour-next:hover { filter: brightness(1.08); }
.guided-tour-back:hover:not(:disabled) { border-color: var(--accent-dim); }
.guided-tour-back:disabled { opacity: 0.4; cursor: default; }
.guided-tour-restart {
  display: block;
  margin: 0.7rem 0 0;
  padding: 0;
  background: none;
  border: none;
  font: inherit;
  font-size: 0.78rem;
  color: var(--muted);
  text-decoration: underline;
  cursor: pointer;
}
.guided-tour-restart:hover { color: var(--accent); }
.guided-tour-callout p.guided-tour-line { margin: 0 0 0.55rem; }
.guided-tour-line-label {
  display: block;
  font-size: 0.68rem;
  font-weight: 650;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 0.1rem;
}
.guided-tour-callout p.guided-tour-note {
  margin: 0 0 0.7rem;
  padding: 0.45rem 0.6rem;
  border-left: 3px solid var(--accent-dim);
  background: rgba(94,234,212,0.06);
  border-radius: 4px;
  font-size: 0.82rem;
  color: var(--ink);
}
.guided-tour-link { display: inline-block; margin: 0 0 0.75rem; font-size: 0.82rem; color: var(--accent); }
.guided-tour-next-tour { display: block; font-weight: 600; }
.tour-values { margin-bottom: 1rem; }
.tour-values-head { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.tour-values-head h2 { margin: 0; font-size: 1rem; }
.tour-values-text {
  box-sizing: border-box; width: 100%; max-width: 100%; margin-top: 0.5rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.8rem;
  background: var(--card); color: var(--ink); border: 1px solid var(--border); border-radius: 8px;
  padding: 0.5rem 0.6rem; tab-size: 10; resize: vertical;
}
.tour-values-wide { overflow-x: auto; white-space: pre; }
.tour-values-missing { margin-bottom: 1rem; }
body:has(#guided-tour-overlay) .modal-overlay.open { z-index: 9500; }
.guided-tour-body { margin-bottom: 0.25rem; }
.guided-tour-callout-centred { width: 24rem; }
a.guided-tour-resume { text-decoration: none; display: inline-block; }
.guided-tour-callout :focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
@media (max-width: 600px) {
  .guided-tour-callout-tour, .guided-tour-callout-centred { width: calc(100vw - 1.5rem); }
}
.tour-list { list-style: none; margin: 0.5rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 0.6rem; }
.tour-list-item { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.35rem 0.75rem; }
.tour-list-link, .tour-list-start { font-weight: 600; }
.tour-list-blurb { color: var(--muted); font-size: 0.88rem; flex: 1 1 18rem; }
.tour-list-audience { color: var(--muted); font-style: italic; }
.tour-list-section { margin-bottom: 1rem; }
.tour-outline-list { margin: 0.5rem 0 0; padding-left: 1.4rem; display: flex; flex-direction: column; gap: 0.6rem; }
.tour-outline-list li { line-height: 1.45; }
.tour-outline-title { display: block; font-weight: 600; color: var(--ink); }
.tour-outline-seeing { display: block; color: var(--muted); font-size: 0.88rem; }
.tour-outline-note { display: block; font-size: 0.82rem; color: var(--ink); font-style: italic; }
.tour-start-more { margin-top: 0.75rem; }
.assistant-panel {
  position: fixed;
  right: 1.5rem;
  bottom: 1.5rem;
  width: 380px;
  min-width: 320px;
  max-width: calc(100vw - 2rem);
  height: 560px;
  min-height: 360px;
  max-height: calc(100vh - 3rem);
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.45);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  resize: none;
}
.assistant-resize-handle {
  position: absolute;
  top: 0;
  left: 0;
  width: 16px;
  height: 16px;
  cursor: nwse-resize;
  z-index: 5;
}
.assistant-resize-handle::before {
  content: "";
  position: absolute;
  top: 5px;
  left: 5px;
  width: 6px;
  height: 6px;
  border-top: 2px solid var(--border);
  border-left: 2px solid var(--border);
}
.assistant-panel[hidden] { display: none; }
.assistant-panel.assistant-docked {
  top: 0;
  right: 0;
  bottom: 0;
  width: var(--assistant-dock-width);
  min-width: 320px;
  max-width: calc(100vw - 320px);
  height: auto;
  min-height: 0;
  max-height: none;
  border-radius: 0;
  border-top: none;
  border-right: none;
  border-bottom: none;
  box-shadow: -12px 0 40px rgba(0,0,0,0.35);
}
.assistant-panel.assistant-docked .assistant-resize-handle {
  top: 0;
  left: 0;
  bottom: 0;
  width: 6px;
  height: auto;
  cursor: ew-resize;
}
.assistant-panel.assistant-docked .assistant-resize-handle::before { content: none; }
.assistant-panel.assistant-docked .assistant-resize-handle:hover { background: rgba(94,234,212,0.15); }
:root { --assistant-guide-sheet-height: min(40vh, 320px); }
.assistant-panel.assistant-guide-sheet {
  top: auto;
  left: 0.75rem;
  right: 0.75rem;
  bottom: 0.75rem;
  width: auto;
  min-width: 0;
  max-width: none;
  height: var(--assistant-guide-sheet-height);
  min-height: 0;
  max-height: none;
}
.assistant-panel.assistant-guide-sheet .assistant-resize-handle { display: none; }
body.assistant-guide-sheet-open { padding-bottom: calc(var(--assistant-guide-sheet-height) + 1.5rem); }
body.assistant-guiding { transition: none; }
body.assistant-guiding .assistant-dock-toggle { display: none; }
body.assistant-guiding:has(#guided-tour-overlay) .assistant-widget { z-index: 9001; }
body.assistant-guide-running .tour-hint { display: none; }
.assistant-guide-status {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0.8rem 0.5rem;
  padding: 0.45rem 0.6rem;
  background: rgba(94,234,212,0.08);
  border: 1px solid rgba(94,234,212,0.3);
  border-radius: 10px;
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--ink);
}
.assistant-guide-status[hidden] { display: none; }
.assistant-guide-status-text { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.assistant-guide-status-dot {
  flex-shrink: 0;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 3px rgba(94,234,212,0.2);
}
.assistant-guide-stop {
  flex-shrink: 0;
  background: none;
  color: var(--muted);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 0.2rem 0.7rem;
  font-size: 0.74rem;
  cursor: pointer;
}
.assistant-guide-stop:hover { color: var(--ink); }
.assistant-guide-end { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.assistant-fab.assistant-fab-guiding { position: relative; }
.assistant-fab.assistant-fab-guiding::after {
  content: "";
  position: absolute;
  top: -2px;
  right: -2px;
  width: 0.7rem;
  height: 0.7rem;
  border-radius: 50%;
  background: var(--warn);
  border: 2px solid var(--bg);
}
.assistant-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.9rem 1.1rem;
  border-bottom: 1px solid var(--border);
  background: rgba(94,234,212,0.04);
}
.assistant-title { font-weight: 650; font-size: 0.92rem; }
.assistant-subtitle { font-size: 0.76rem; color: var(--muted); margin-top: 0.1rem; }
.assistant-header-actions { display: flex; gap: 0.4rem; }
.assistant-icon-btn {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: none;
  color: var(--muted);
  cursor: pointer;
  font-size: 0.95rem;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.assistant-icon-btn:hover { color: var(--accent); border-color: var(--accent-dim); }
.assistant-icon-btn-active { color: var(--accent); border-color: var(--accent-dim); background: rgba(94,234,212,0.1); }
.assistant-session-list {
  position: absolute;
  top: 58px;
  right: 0.75rem;
  left: 0.75rem;
  max-height: 60%;
  background: var(--card-hover);
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: 0 16px 40px rgba(0,0,0,0.45);
  z-index: 15;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.assistant-session-list[hidden] { display: none; }
.assistant-session-list-header {
  padding: 0.6rem 0.85rem;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--muted);
  border-bottom: 1px solid var(--border);
}
.assistant-session-items { overflow-y: auto; }
.assistant-session-item {
  display: block;
  width: 100%;
  text-align: left;
  background: none;
  border: none;
  border-bottom: 1px solid var(--border);
  padding: 0.65rem 0.85rem;
  cursor: pointer;
  color: var(--ink);
}
.assistant-session-item:last-child { border-bottom: none; }
.assistant-session-item:hover { background: rgba(94,234,212,0.06); }
.assistant-session-item-current { background: rgba(94,234,212,0.05); }
.assistant-session-item-new {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--accent);
  font-weight: 600;
  font-size: 0.85rem;
}
.assistant-session-item-new:hover { background: rgba(94,234,212,0.1); }
.assistant-session-item-current .assistant-session-summary::after {
  content: "current";
  margin-left: 0.5rem;
  font-size: 0.68rem;
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.assistant-session-summary {
  font-size: 0.85rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.assistant-session-meta { font-size: 0.72rem; color: var(--muted); margin-top: 0.2rem; }
.assistant-session-loading, .assistant-session-empty {
  padding: 1rem;
  font-size: 0.82rem;
  color: var(--muted);
  text-align: center;
}
.assistant-messages {
  flex: 1;
  overflow-y: auto;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.assistant-msg {
  max-width: 88%;
  padding: 0.55rem 0.8rem;
  border-radius: 12px;
  font-size: 0.87rem;
  line-height: 1.45;
  word-wrap: break-word;
}
.assistant-msg-bot {
  align-self: flex-start;
  background: rgba(94,234,212,0.06);
  border: 1px solid var(--border);
  color: var(--ink);
}
.assistant-msg-user {
  align-self: flex-end;
  background: var(--accent);
  color: #06231f;
  font-weight: 500;
  white-space: pre-wrap;
}
.assistant-context {
  align-self: flex-end;
  max-width: 100%;
  margin-top: -0.35rem;
  font-size: 0.7rem;
  color: var(--muted-2);
}
.assistant-context > summary {
  cursor: pointer;
  text-align: right;
  list-style: none;
}
.assistant-context > summary::-webkit-details-marker { display: none; }
.assistant-context > summary:hover,
.assistant-context[open] > summary { color: var(--muted); }
.assistant-context-body {
  margin: 0.3rem 0 0;
  max-height: 16rem;
  overflow: auto;
  padding: 0.5rem 0.6rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: rgba(0,0,0,0.25);
  color: var(--muted);
  font-size: 0.68rem;
  line-height: 1.4;
  white-space: pre-wrap;
  word-break: break-word;
}
.assistant-tour-btn {
  align-self: flex-start;
  background: rgba(94,234,212,0.1);
  border: 1px solid rgba(94,234,212,0.35);
  color: var(--accent);
  border-radius: 999px;
  padding: 0.4rem 0.85rem;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
}
.assistant-tour-btn:hover { background: rgba(94,234,212,0.18); }
.assistant-msg-bot p { margin: 0 0 0.6rem; }
.assistant-msg-bot p:last-child { margin-bottom: 0; }
.assistant-msg-bot ul, .assistant-msg-bot ol { margin: 0 0 0.6rem; padding-left: 1.2rem; }
.assistant-msg-bot li { margin-bottom: 0.2rem; }
.assistant-msg-bot li:last-child { margin-bottom: 0; }
.assistant-msg-bot .md-heading { font-weight: 650; margin: 0.2rem 0 0.4rem; }
.assistant-msg-bot .md-h1 { font-size: 0.98rem; }
.assistant-msg-bot .md-h2 { font-size: 0.93rem; }
.assistant-msg-bot .md-h3 { font-size: 0.89rem; color: var(--accent); }
.assistant-msg-bot code {
  background: rgba(0,0,0,0.25);
  border-radius: 4px;
  padding: 0.05rem 0.35rem;
  font-size: 0.82rem;
  font-family: ui-monospace, "SF Mono", Consolas, monospace;
}
.assistant-msg-bot pre {
  background: rgba(0,0,0,0.25);
  border-radius: 8px;
  padding: 0.6rem 0.7rem;
  overflow-x: auto;
  margin: 0 0 0.6rem;
}
.assistant-msg-bot pre code { background: none; padding: 0; }
.assistant-table-scroll {
  max-width: 100%;
  overflow-x: auto;
  margin: 0 0 0.6rem;
}
.assistant-msg-bot table.assistant-md-table {
  width: 100%;
  border-collapse: collapse;
  margin: 0;
  font-size: 0.8rem;
}
.assistant-msg-bot table.assistant-md-table th,
.assistant-msg-bot table.assistant-md-table td {
  border: 1px solid var(--border);
  padding: 0.3rem 0.45rem;
  text-align: left;
}
.assistant-msg-bot table.assistant-md-table th {
  background: rgba(94,234,212,0.06);
  color: var(--accent);
  font-weight: 650;
}
.assistant-reasoning {
  margin: 0 0 0.6rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(0,0,0,0.15);
}
.assistant-reasoning-summary {
  cursor: pointer;
  padding: 0.4rem 0.6rem;
  font-size: 0.76rem;
  font-weight: 600;
  color: var(--muted);
  list-style: none;
}
.assistant-reasoning-summary::-webkit-details-marker { display: none; }
.assistant-reasoning-summary::before {
  content: "▸";
  display: inline-block;
  margin-right: 0.35rem;
  transition: transform 0.15s ease;
}
.assistant-reasoning[open] > .assistant-reasoning-summary::before { transform: rotate(90deg); }
.assistant-reasoning-summary:hover { color: var(--accent); }
.assistant-reasoning-steps {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  padding: 0 0.6rem 0.55rem;
}
.assistant-step {
  font-size: 0.78rem;
  line-height: 1.4;
  padding-left: 0.9rem;
  position: relative;
  color: var(--muted);
}
.assistant-step::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.45em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--muted);
}
.assistant-step-thinking { font-style: italic; }
.assistant-step-tool-done { color: var(--ink); }
.assistant-step-tool-done::before { background: var(--accent); }
.assistant-step-tool-error { color: #f2a2a2; }
.assistant-step-tool-error::before { background: #f2a2a2; }
.assistant-step-indicator { display: flex; gap: 3px; padding: 0.3rem 0 0 0.9rem; }
.assistant-step-indicator span {
  width: 4px; height: 4px; border-radius: 50%;
  background: var(--muted);
  animation: assistant-typing-bounce 1.1s infinite ease-in-out;
}
.assistant-step-indicator span:nth-child(2) { animation-delay: 0.15s; }
.assistant-step-indicator span:nth-child(3) { animation-delay: 0.3s; }
.assistant-msg-text:empty { display: none; }
.assistant-typing { display: flex; gap: 4px; padding: 0.75rem 0.9rem; }
.assistant-typing span {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--muted);
  animation: assistant-typing-bounce 1.1s infinite ease-in-out;
}
.assistant-typing span:nth-child(2) { animation-delay: 0.15s; }
.assistant-typing span:nth-child(3) { animation-delay: 0.3s; }
@keyframes assistant-typing-bounce {
  0%, 60%, 100% { opacity: 0.3; transform: translateY(0); }
  30% { opacity: 1; transform: translateY(-3px); }
}
.assistant-status { font-size: 0.78rem; color: var(--muted); padding: 0 0.9rem 0.65rem; }
.assistant-reasoning-steps .assistant-status { padding: 0.2rem 0 0 0.9rem; }
.analysis-reply .assistant-status { padding: 0.2rem 0; }
.assistant-settings {
  display: flex;
  gap: 0.5rem;
  padding: 0.6rem 0.7rem 0;
}
.assistant-settings-wrap { position: relative; display: flex; }
.assistant-settings-panel {
  position: absolute;
  top: calc(100% + 0.35rem);
  right: 0;
  z-index: 20;
  width: 15.5rem;
  padding: 0 0 0.55rem;
  background: var(--panel, var(--bg));
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.28);
}
.assistant-select {
  flex: 1;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.35rem 0.5rem;
  color: var(--ink);
  font-size: 0.78rem;
  font-family: inherit;
  min-width: 0;
}
.assistant-select:focus { outline: none; border-color: var(--accent-dim); }
.assistant-select:disabled { color: var(--muted); cursor: not-allowed; }
.assistant-model-description {
  padding: 0.35rem 0.8rem 0;
  font-size: 0.72rem;
  color: var(--muted);
  line-height: 1.35;
}
.assistant-input-row {
  display: flex;
  gap: 0.5rem;
  padding: 0.8rem;
  border-top: none;
}
.assistant-input-row input {
  flex: 1;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.55rem 0.75rem;
  color: var(--ink);
  font-size: 0.87rem;
  font-family: inherit;
}
.assistant-input-row input:focus { outline: none; border-color: var(--accent-dim); }
.assistant-send-btn {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  border: none;
  background: var(--accent);
  color: #06231f;
  font-size: 1rem;
  cursor: pointer;
  flex-shrink: 0;
}
.assistant-send-btn:hover { background: var(--accent-dim); }
.assistant-chart-wrap { align-self: stretch; display: flex; flex-direction: column; gap: 0.4rem; }
.assistant-table-wrap { align-self: stretch; display: flex; flex-direction: column; gap: 0.4rem; }
.assistant-pin-bar { display: flex; justify-content: flex-end; }
.assistant-pin-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: rgba(94,234,212,0.1);
  border: 1px solid rgba(94,234,212,0.35);
  color: var(--accent);
  border-radius: 999px;
  padding: 0.3rem 0.7rem;
  font-size: 0.72rem;
  font-weight: 600;
  cursor: pointer;
}
.assistant-pin-btn:hover { background: rgba(94,234,212,0.18); }
.assistant-pin-btn:disabled { cursor: default; opacity: 0.8; }
.assistant-pin-btn-done {
  background: rgba(94,234,212,0.06);
  border-color: var(--border);
  color: var(--muted);
}
.assistant-guided-task-notice {
  align-self: stretch;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  background: rgba(94,234,212,0.08);
  border: 1px solid rgba(94,234,212,0.3);
  border-radius: 10px;
  padding: 0.6rem 0.75rem;
  font-size: 0.8rem;
  color: var(--ink);
}
.assistant-guided-task-btn {
  flex-shrink: 0;
  background: var(--accent);
  color: #06231f;
  border: none;
  border-radius: 999px;
  padding: 0.3rem 0.75rem;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
}
.assistant-guided-task-btn:hover { background: var(--accent-dim); }
.assistant-guided-task-btn:disabled { cursor: default; opacity: 0.75; }
.assistant-recipe-proposal {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  background: rgba(94,234,212,0.08);
  border: 1px solid rgba(94,234,212,0.3);
  border-radius: 10px;
  padding: 0.7rem 0.85rem;
}
.assistant-recipe-proposal-title { font-size: 0.82rem; font-weight: 700; color: var(--ink); }
.assistant-recipe-proposal-text { font-size: 0.8rem; color: var(--muted); line-height: 1.45; }
.assistant-recipe-proposal-actions { display: flex; justify-content: flex-end; gap: 0.5rem; }
.assistant-recipe-proposal-dismiss {
  background: none;
  border: 1px solid var(--border);
  color: var(--muted);
  border-radius: 999px;
  padding: 0.3rem 0.7rem;
  font-size: 0.72rem;
  font-weight: 600;
  cursor: pointer;
}
.assistant-recipe-proposal-dismiss:hover { color: var(--ink); border-color: var(--muted); }
.assistant-recipe-proposal-dismiss:disabled { cursor: default; opacity: 0.7; }
.data-table-entity-banner,
.structure-offer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem;
  background: rgba(94,234,212,0.08);
  border: 1px solid rgba(94,234,212,0.3);
  border-radius: 10px;
  padding: 0.6rem 0.85rem;
  margin-bottom: 0.9rem;
  font-size: 0.82rem;
  color: var(--ink);
}
.data-table-entity-banner-btn {
  background: var(--accent);
  color: #06231f;
  border: none;
  border-radius: 999px;
  padding: 0.3rem 0.75rem;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
}
.data-table-entity-banner-btn:hover { background: var(--accent-dim); }
.sheet-analysis {
  border: 1px solid var(--border);
  border-left: 3px solid var(--accent-dim);
  border-radius: 8px;
  padding: 0.6rem 0.8rem;
  margin: 0 0 0.9rem;
  background: rgba(94,234,212,0.03);
}
.sheet-analysis-stale { border-left-color: var(--warn); background: rgba(251,191,36,0.04); }
.sheet-analysis-head {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.5rem;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.sheet-analysis-tag { color: var(--accent); font-weight: 650; }
.sheet-analysis-stale-tag { color: var(--warn); }
.sheet-analysis-meta { color: var(--muted-2); text-transform: none; letter-spacing: 0; margin: 0 0 0.4rem; font-size: 0.7rem; }
.sheet-analysis-headline { margin: 0.35rem 0 0; color: var(--ink); font-size: 0.9rem; }
.sheet-analysis > summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
}
.sheet-analysis > summary::-webkit-details-marker { display: none; }
.sheet-analysis > summary::after {
  content: "B8";
  margin-left: auto;
  color: var(--muted-2);
  font-size: 0.7rem;
  transition: transform 0.12s ease;
}
.sheet-analysis[open] > summary::after { transform: rotate(90deg); }
.sheet-analysis > summary:hover { color: var(--ink); }
.sheet-analysis > summary:hover::after { color: var(--accent); }
.sheet-analysis-headline-inline {
  color: var(--ink);
  font-size: 0.82rem;
  text-transform: none;
  letter-spacing: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.sheet-analysis[open] > summary .sheet-analysis-headline-inline {
  white-space: normal;
  overflow: visible;
}
.sheet-analysis-open { margin-top: 0.5rem; }
@media (prefers-reduced-motion: reduce) {
  .sheet-analysis > summary::after { transition: none; }
}
.sheet-analysis-body { color: var(--muted); font-size: 0.82rem; margin-top: 0.4rem; white-space: pre-wrap; }
.sheet-analysis-body p { margin: 0 0 0.5rem; }
.sheet-analysis-body ul, .sheet-analysis-body ol { margin: 0 0 0.5rem 1.1rem; padding: 0; }
@media (max-width: 860px) {
  .sheet-analysis-meta { margin-left: 0; width: 100%; }
}
.entity-link-choices { display: flex; flex-wrap: wrap; gap: 0.4rem 0.9rem; }
.entity-link-choice {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.78rem;
  color: var(--ink);
  cursor: pointer;
}
.entity-review { margin: 0 0 0.75rem; font-size: 0.8rem; }
.entity-review > summary { cursor: pointer; color: var(--muted); padding: 0.2rem 0; }
.entity-review > summary:hover { color: var(--ink); }
.entity-review-list { list-style: none; margin: 0.4rem 0 0; padding: 0; }
.entity-review-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.4rem;
  padding: 0.3rem 0;
  border-top: 1px solid var(--border);
}
.entity-review-row code {
  background: var(--bg-2);
  border-radius: 4px;
  padding: 0.1rem 0.35rem;
  color: var(--ink);
}
.entity-review-arrow { color: var(--muted-2); }
.entity-review-meta { color: var(--muted-2); font-size: 0.72rem; }
.entity-review-fuzzy { color: var(--warn); }
.entity-review-heading { color: var(--muted); margin: 0.8rem 0 0; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.03em; }
.entity-review-row-rejected { color: var(--muted-2); }
.entity-review-empty { color: var(--muted-2); padding: 0.3rem 0; }
.entity-reject-btn, .entity-restore-btn {
  margin-left: auto;
  background: none;
  border: 1px solid var(--border);
  border-radius: 5px;
  color: var(--muted);
  font: inherit;
  font-size: 0.72rem;
  padding: 0.15rem 0.5rem;
  cursor: pointer;
}
.entity-reject-btn:hover { color: var(--danger); border-color: var(--danger); }
.entity-restore-btn:hover { color: var(--accent); border-color: var(--accent-dim); }
table.data-table a.entity-fuzzy-link { text-decoration: underline dotted; text-underline-offset: 2px; }
.data-table-entity-banner-btn:disabled { cursor: default; opacity: 0.75; }
.sheet-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid var(--border);
  padding-bottom: 0.6rem;
}
.sheet-tab {
  background: none;
  border: 1px solid var(--border);
  color: var(--muted);
  border-radius: 999px;
  padding: 0.35rem 0.85rem;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
}
.sheet-tab:hover { color: var(--ink); border-color: var(--accent-dim); }
.sheet-tab-active { background: rgba(94,234,212,0.12); color: var(--accent); border-color: var(--accent-dim); }
.assistant-feedback-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.5rem;
}
.assistant-feedback-btn {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: none;
  color: var(--muted);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.assistant-feedback-btn-down svg { transform: rotate(180deg); }
.assistant-feedback-btn:hover:not(:disabled) { color: var(--accent); border-color: var(--accent-dim); }
.assistant-feedback-btn:disabled { cursor: default; opacity: 0.5; }
.assistant-feedback-btn-selected { color: var(--accent); border-color: var(--accent-dim); opacity: 1; }
.assistant-feedback-thanks { font-size: 0.72rem; color: var(--muted); }
.assistant-feedback-box {
  flex-basis: 100%;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-top: 0.2rem;
}
.assistant-feedback-textarea {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.45rem 0.6rem;
  color: var(--ink);
  font-size: 0.78rem;
  font-family: inherit;
  resize: vertical;
  min-height: 50px;
}
.assistant-feedback-textarea:focus { outline: none; border-color: var(--accent-dim); }
.assistant-feedback-actions { display: flex; justify-content: flex-end; gap: 0.4rem; }
.assistant-feedback-skip-btn, .assistant-feedback-send-btn {
  border-radius: 6px;
  padding: 0.3rem 0.65rem;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
}
.assistant-feedback-skip-btn { background: none; border: 1px solid var(--border); color: var(--muted); }
.assistant-feedback-send-btn { background: var(--accent); border: none; color: #06231f; }
.assistant-feedback-send-btn:hover { background: var(--accent-dim); }
.assistant-chart {
  align-self: stretch;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 0.5rem;
}
.assistant-chart-svg { width: 100%; height: auto; display: block; }
.chart-gridline { stroke: var(--border); stroke-width: 1; }
.chart-baseline { stroke: var(--muted-2); stroke-width: 1.2; }
.chart-gridline.chart-stick { stroke: #60a5fa; stroke-width: 1.5; }
.chart-text { fill: var(--muted); font-size: 9px; font-family: inherit; }
.chart-title { fill: var(--ink); font-size: 11px; font-weight: 650; }
.chart-axis-title { fill: var(--muted); font-size: 9px; }
.chart-axis-label { fill: var(--muted); font-size: 8.5px; }
.chart-point-label { fill: var(--muted); font-size: 8px; }
.chart-end-label { fill: var(--ink); font-size: 9px; }
.chart-gridline.chart-end-tick { stroke-width: 1.5; }
.chart-marker { stroke: var(--card); stroke-width: 2; }
.chart-legend { display: flex; flex-wrap: wrap; gap: 0.7rem; padding: 0.4rem 0.3rem 0.1rem; }
.chart-legend-item { display: flex; align-items: center; gap: 0.35rem; font-size: 0.72rem; color: var(--muted); }
.chart-legend-swatch { width: 9px; height: 9px; border-radius: 2px; display: inline-block; }
.viz-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1rem;
}
.viz-grid .empty-state { grid-column: 1 / -1; }
.viz-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1rem;
}
.viz-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.6rem;
}
.viz-card-title { font-weight: 600; font-size: 0.9rem; }
.viz-card-remove {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: none;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.viz-card-remove:hover { color: var(--danger); border-color: rgba(248,113,113,0.4); }
.viz-card-remove:disabled { opacity: 0.5; cursor: default; }
.viz-card .assistant-chart { border: none; background: none; padding: 0; }
.result-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 1rem;
}
.result-grid .empty-state { grid-column: 1 / -1; }
.result-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1rem;
  cursor: pointer;
}
.result-card:hover { border-color: var(--accent-dim); }
.result-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.3rem;
}
.result-card-title { font-weight: 600; font-size: 0.9rem; }
.result-card-meta { color: var(--muted); font-size: 0.78rem; }
.result-card-remove {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: none;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.result-card-remove:hover { color: var(--danger); border-color: rgba(248,113,113,0.4); }
.result-card-remove:disabled { opacity: 0.5; cursor: default; }
@media (max-width: 480px) {
  .assistant-panel { right: 0.75rem; bottom: 0.75rem; width: calc(100vw - 1.5rem); }
  .assistant-widget { right: 0.75rem; bottom: 0.75rem; }
  .assistant-dock-toggle { display: none; }
  .assistant-panel.assistant-docked {
    top: auto;
    right: 0.75rem;
    bottom: 0.75rem;
    width: calc(100vw - 1.5rem);
    height: 560px;
    max-height: calc(100vh - 3rem);
    border-radius: 16px;
    border: 1px solid var(--border);
    box-shadow: 0 20px 60px rgba(0,0,0,0.45);
  }
  .assistant-panel.assistant-docked .assistant-resize-handle { display: none; }
  body.assistant-docked,
  html.assistant-docked-early body { padding-right: 0; }
}
.team-section { margin-bottom: 2.25rem; }
.team-name {
  font-size: 0.95rem;
  color: var(--accent);
  margin: 0 0 0.9rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--border);
}
.person-card { text-align: center; padding: 1.5rem 1rem; }
.person-avatar {
  width: 44px;
  height: 44px;
  font-size: 0.95rem;
  margin: 0 auto 0.75rem;
}
.person-card .card-title { margin-bottom: 0.4rem; }
.person-card-lead {
  border-color: var(--accent-dim);
  background: rgba(94,234,212,0.05);
}
.person-card-lead .person-avatar {
  background: rgba(94,234,212,0.22);
}
.lead-badge {
  color: var(--accent);
  background: rgba(94,234,212,0.1);
  border-color: rgba(94,234,212,0.35);
}
.filter-bar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
  padding: 0.85rem 1rem;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 10px;
}
.tag-filter { flex: 1; min-width: 16rem; }
.filter-bar > .tag-input-wrap { flex: 1 1 18rem; }
.tag-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.5rem;
}
.tag-chip-row:empty { display: none; }
.tag-chip-reps { position: relative; }
.tag-chip-reps .chip-reps { display: inline-flex; align-items: center; }
.chip-reps-btn {
  font: 600 0.72rem ui-monospace, SFMono-Regular, Menlo, monospace; color: inherit; background: none;
  border: 1px solid currentColor; border-radius: 8px; padding: 0 0.35rem; cursor: pointer; line-height: 1.4;
}
.chip-menu {
  position: absolute; top: calc(100% + 4px); left: 0; z-index: 20; display: flex; flex-wrap: wrap; align-items: center;
  gap: 0.35rem; padding: 0.4rem 0.5rem; min-width: 13rem; background: var(--card); color: var(--ink);
  border: 1px solid var(--border); border-radius: 8px; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35); font-size: 0.8rem;
}
.chip-menu[hidden] { display: none; }
.chip-menu-label { color: var(--muted); }
.chip-step { width: 1.6rem; height: 1.6rem; border: 1px solid var(--border); border-radius: 6px; background: none; color: inherit; cursor: pointer; }
.chip-step:disabled { opacity: 0.4; cursor: default; }
.chip-step-count { min-width: 1.4rem; text-align: center; font-variant-numeric: tabular-nums; }
.chip-menu .chip-summary { font-size: 0.78rem; padding: 0.1rem 0.25rem; }
.chip-menu-summary { flex-basis: 100%; color: var(--muted); }
.tag-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: rgba(94,234,212,0.1);
  border: 1px solid rgba(94,234,212,0.3);
  color: var(--accent);
  border-radius: 999px;
  padding: 0.2rem 0.4rem 0.2rem 0.7rem;
  font-size: 0.8rem;
}
.tag-chip-team {
  background: rgba(192,132,252,0.1);
  border-color: rgba(192,132,252,0.3);
  color: #c084fc;
}
.tag-chip-compound {
  background: rgba(96,165,250,0.1);
  border-color: rgba(96,165,250,0.3);
  color: var(--compound);
}
.tag-chip-stage {
  background: rgba(251,191,36,0.1);
  border-color: rgba(251,191,36,0.3);
  color: var(--warn);
}
.tag-chip-blocked {
  background: rgba(248,113,113,0.1);
  border-color: rgba(248,113,113,0.3);
  color: var(--danger);
}
.tag-chip-project {
  background: rgba(244,114,182,0.1);
  border-color: rgba(244,114,182,0.3);
  color: var(--project);
}
.tag-chip-remove {
  background: none;
  border: none;
  color: inherit;
  cursor: pointer;
  font-size: 0.95rem;
  line-height: 1;
  padding: 0.1rem 0.3rem;
  opacity: 0.7;
}
.tag-chip-remove:hover { opacity: 1; }
.tag-input-wrap { position: relative; max-width: 22rem; }
.tag-input-wrap input {
  width: 100%;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.5rem 0.75rem;
  color: var(--ink);
  font-size: 0.87rem;
  font-family: inherit;
}
.tag-input-wrap input:focus { outline: none; border-color: var(--accent-dim); }
.tag-suggestions {
  list-style: none;
  margin: 0.3rem 0 0;
  padding: 0.3rem;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--card-hover);
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: 0 12px 30px rgba(0,0,0,0.4);
  max-height: 14rem;
  overflow-y: auto;
  z-index: 20;
}
.tag-suggestion {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.45rem 0.6rem;
  border-radius: 6px;
  font-size: 0.85rem;
  cursor: pointer;
}
.tag-suggestion:hover { background: rgba(94,234,212,0.08); }
.tag-suggestion-kind {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--muted-2);
}
.sort-select-wrap { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; }
.sort-select-wrap label { font-size: 0.8rem; color: var(--muted); }
.sort-select-wrap select {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.45rem 0.6rem;
  color: var(--ink);
  font-size: 0.85rem;
  font-family: inherit;
}
.sort-select-wrap select:focus { outline: none; border-color: var(--accent-dim); }
.badge-blocked {
  color: #fff;
  background: var(--danger);
  border-color: var(--danger);
  font-weight: 700;
}
.badge-blocked-hidden { display: none; }
a.badge-blocked, a.badge-signed { text-decoration: none; }
.badge-signed-locked, .badge-signed-signed {
  color: var(--accent); background: rgba(94,234,212,0.08); border-color: rgba(94,234,212,0.3);
}
.badge-signed-superseded { color: var(--warn); border-color: rgba(251,191,36,0.35); }
.compound-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  padding: 0.22rem 0.6rem;
  border-radius: 999px;
  border: 1px solid rgba(96,165,250,0.35);
  background: rgba(96,165,250,0.1);
  color: var(--compound);
  text-decoration: none;
}
a.compound-tag:hover { border-color: var(--compound); text-decoration: none; }
.project-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  padding: 0.22rem 0.6rem;
  border-radius: 999px;
  border: 1px solid rgba(244,114,182,0.35);
  background: rgba(244,114,182,0.1);
  color: var(--project);
  text-decoration: none;
}
a.project-tag:hover { border-color: var(--project); text-decoration: none; }
.assay-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  padding: 0.22rem 0.6rem;
  border-radius: 999px;
  border: 1px solid rgba(167,139,250,0.35);
  background: rgba(167,139,250,0.1);
  color: var(--assay-parent);
  text-decoration: none;
}
a.assay-tag:hover { border-color: var(--assay-parent); text-decoration: none; }
.blocker-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1rem;
}
.blocker-grid .empty-state { grid-column: 1 / -1; }
.blocker-card {
  background: var(--card);
  border: 1px solid rgba(248,113,113,0.25);
  border-radius: 12px;
  padding: 1rem;
}
.blocker-card.is-active {
  border: 1px solid rgba(248,113,113,0.5);
  box-shadow: 0 0 0 1px rgba(248,113,113,0.12);
}
.blocker-card.is-resolved {
  border: 1px solid rgba(94,234,212,0.25);
  opacity: 0.85;
}
.blocker-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
.blocker-target-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}
.blocker-target {
  display: inline-flex;
  align-items: center;
  font-size: 0.82rem;
  font-weight: 650;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  background: rgba(94,234,212,0.1);
  color: var(--accent);
}
.blocker-target-team { background: rgba(192,132,252,0.1); color: #c084fc; }
.blocker-status {
  display: inline-flex;
  align-items: center;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
}
.blocker-status-active { background: rgba(248,113,113,0.15); color: var(--danger); }
.blocker-status-resolved { background: rgba(94,234,212,0.12); color: var(--accent); }
.blocker-description { font-size: 0.87rem; margin: 0 0 0.6rem; line-height: 1.5; }
.blocker-meta { font-size: 0.72rem; color: var(--muted); }
.blocker-resolution { font-size: 0.82rem; margin: 0.4rem 0 0.6rem; line-height: 1.5; color: var(--muted); border-left: 2px solid rgba(94,234,212,0.35); padding-left: 0.6rem; }
.btn-blocker { border-color: rgba(248,113,113,0.35); color: var(--danger); }
.btn-blocker:hover { border-color: var(--danger); background: rgba(248,113,113,0.08); }
.btn-resolve {
  flex-shrink: 0;
  font-size: 0.78rem;
  padding: 0.25rem 0.65rem;
  border-color: rgba(94,234,212,0.35);
  color: var(--accent);
}
.btn-resolve:hover { border-color: var(--accent); background: rgba(94,234,212,0.08); }
.btn-link {
  background: none;
  border: none;
  color: var(--accent);
  font-size: 0.82rem;
  padding: 0;
  margin-top: 0.75rem;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.btn-link:hover { color: var(--accent-dim); }
.discussion-comments { display: flex; flex-direction: column; gap: 1.1rem; margin-bottom: 1.25rem; }
.comment { border-bottom: 1px solid var(--border); padding-bottom: 1rem; }
.comment:last-child { border-bottom: none; padding-bottom: 0; }
.comment-header { display: flex; align-items: baseline; gap: 0.6rem; margin-bottom: 0.4rem; flex-wrap: wrap; }
.comment-author { font-weight: 600; font-size: 0.88rem; }
.comment-meta { font-size: 0.76rem; color: var(--muted); }
.comment-actions { margin-left: auto; display: flex; gap: 0.6rem; }
.comment-actions button {
  background: none;
  border: none;
  color: var(--muted);
  font-size: 0.76rem;
  cursor: pointer;
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.comment-actions button:hover { color: var(--accent); }
.comment-body { font-size: 0.9rem; line-height: 1.55; white-space: pre-wrap; word-break: break-word; }
.comment-removed .comment-body { color: var(--muted); font-style: italic; }
.comment-earlier { margin-top: 0.5rem; font-size: 0.82rem; }
.comment-earlier summary { cursor: pointer; color: var(--muted); }
.comment-earlier-version { border-left: 2px solid var(--border); padding: 0.25rem 0 0.25rem 0.75rem; margin-top: 0.4rem; }
.comment-earlier-body { white-space: normal; word-break: break-word; }
.comment-mention {
  color: var(--accent);
  background: rgba(94,234,212,0.1);
  border-radius: 4px;
  padding: 0.05rem 0.3rem;
  font-weight: 600;
}
.comment-reference { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
.comment-edit-form { margin-top: 0.4rem; }
.comment-edit-textarea {
  width: 100%;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.6rem 0.75rem;
  color: var(--ink);
  font-family: inherit;
  font-size: 0.88rem;
  resize: vertical;
}
.comment-edit-actions { display: flex; gap: 0.6rem; margin-top: 0.5rem; }
.discussion-form { position: relative; }
.discussion-input-wrap { position: relative; margin-bottom: 0.6rem; }
.discussion-input {
  width: 100%;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.65rem 0.8rem;
  color: var(--ink);
  font-family: inherit;
  font-size: 0.9rem;
  resize: vertical;
}
.discussion-input:focus { outline: none; border-color: var(--accent-dim); }
.discussion-autocomplete {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 20;
  width: 100%;
  max-width: 22rem;
  max-height: 12rem;
  overflow-y: auto;
  background: var(--card);
  border: 1px solid var(--accent-dim);
  border-radius: 8px;
  margin-top: 0.3rem;
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
}
.discussion-autocomplete-item {
  padding: 0.5rem 0.75rem;
  font-size: 0.85rem;
  cursor: pointer;
}
.discussion-autocomplete-item.active,
.discussion-autocomplete-item:hover { background: rgba(94,234,212,0.1); color: var(--accent); }
.calendar-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.calendar-month-nav { display: flex; align-items: center; gap: 0.5rem; }
.calendar-month-label { font-weight: 650; min-width: 9rem; text-align: center; }
.calendar-filter-form { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; }
.calendar-filter-check { display: flex; align-items: center; gap: 0.35rem; font-size: 0.85rem; color: var(--muted); }
.calendar-project-select {
  background: var(--panel);
  color: var(--ink);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 0.3rem 0.5rem;
  font-size: 0.85rem;
  min-width: 10rem;
}
.calendar-legend { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 0.75rem; font-size: 0.8rem; color: var(--muted); }
.calendar-legend-item { display: flex; align-items: center; gap: 0.4rem; }
.calendar-legend-swatch { width: 0.9rem; height: 0.9rem; border-radius: 3px; display: inline-block; }
.calendar-legend-swatch-striped {
  background-image: repeating-linear-gradient(45deg, rgba(255,255,255,0.35) 0 3px, transparent 3px 6px);
}
.calendar-grid-weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  padding: 0 0.25rem;
  margin-bottom: 0.25rem;
  font-size: 0.8rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.calendar-month {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
}
.calendar-week {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  grid-auto-rows: minmax(2.2rem, auto);
  border-top: 1px solid var(--border);
  padding-bottom: 0.35rem;
}
.calendar-week:first-child { border-top: none; }
.calendar-day-cell {
  min-height: 2.6rem;
  padding: 0.4rem 0.5rem 0;
  border-right: 1px solid var(--border);
}
.calendar-day-cell:last-child { border-right: none; }
.calendar-day-number { font-size: 0.82rem; color: var(--muted); }
.calendar-day-outside .calendar-day-number { opacity: 0.35; }
.calendar-day-today { background: rgba(94,234,212,0.06); }
.calendar-day-today .calendar-day-number {
  color: var(--ink);
  font-weight: 700;
  background: var(--accent);
  color: #06231f;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
}
.calendar-bar {
  display: block;
  margin: 0.15rem 0.15rem;
  padding: 0.15rem 0.55rem;
  border-radius: 4px;
  background: var(--accent);
  color: #06231f;
  font-size: 0.82rem;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-decoration: none;
  line-height: 1.6rem;
}
.calendar-bar:hover { filter: brightness(1.1); }
.calendar-bar-project { background: var(--compound); color: #07203f; }
.calendar-bar-assay { background: #c084fc; color: #2a0a3f; }
.calendar-bar-booking { background: #fbbf24; color: #3a2600; }
.calendar-bar-striped {
  background-image: repeating-linear-gradient(45deg, rgba(255,255,255,0.4) 0 5px, transparent 5px 10px);
  color: #06231f;
}
.calendar-bar-continues-before { border-top-left-radius: 0; border-bottom-left-radius: 0; margin-left: 0; }
.calendar-bar-continues-after { border-top-right-radius: 0; border-bottom-right-radius: 0; margin-right: 0; }
.calendar-bar-label { pointer-events: none; }
@media (max-width: 720px) {
  .calendar-month-label { min-width: 0; }
  .calendar-bar { font-size: 0.7rem; }
}
.modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(6,12,12,0.7);
  align-items: center;
  justify-content: center;
  z-index: 300;
  padding: 1rem;
}
.modal-overlay.open { display: flex; }
.feature-request-sent { margin: 0; padding: 0.6rem 0.75rem; border: 1px solid var(--accent); border-radius: 8px; color: var(--ink); }
.feature-request-sent[hidden] { display: none; }
.modal-box {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  width: 100%;
  max-width: 26rem;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 24px 70px rgba(0,0,0,0.5);
}
.modal-box-wide { max-width: 52rem; }
.modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--border);
}
.modal-header h3 { margin: 0; font-size: 1rem; }
.modal-body { padding: 1.25rem; }
.modal-body .form-field { margin-bottom: 1.1rem; }
.modal-body .form-field:last-child { margin-bottom: 0; }
.modal-body label {
  display: block;
  font-size: 0.82rem;
  color: var(--muted);
  margin-bottom: 0.4rem;
}
.modal-body textarea {
  width: 100%;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.6rem 0.75rem;
  color: var(--ink);
  font-size: 0.88rem;
  font-family: inherit;
  resize: vertical;
}
.modal-body textarea:focus { outline: none; border-color: var(--accent-dim); }
.modal-body .tag-input-wrap { max-width: none; }
.modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  border-top: 1px solid var(--border);
}
.modal-body .assistant-settings { margin: 0.9rem 0 0; padding: 0; border: none; }
.upload-dropzone-compact { padding: 1rem 0.9rem; min-width: 0; }
.upload-dropzone-compact .upload-dropzone-text { font-size: 0.82rem; }
.presentation-status {
  margin-top: 0.9rem;
  font-size: 0.82rem;
  color: var(--muted);
}
.analysis-persona {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.analysis-persona-avatar {
  width: 52px;
  height: 52px;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--card);
  border: 1px solid var(--accent-dim);
  color: var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease;
}
.analysis-persona.ignited .analysis-persona-avatar {
  color: var(--fire);
  border-color: var(--fire);
  box-shadow: 0 0 22px rgba(249,115,22,0.35);
}
.analysis-persona-avatar.igniting { animation: assistant-ignite 1.3s ease-out; }
.analysis-persona-title { font-size: 1.15rem; font-weight: 700; color: var(--ink); margin: 0; line-height: 1.3; }
.analysis-persona-subtitle { font-size: 0.85rem; color: var(--muted); margin-top: 0.1rem; }
@keyframes assistant-ignite {
  0% { color: var(--accent); border-color: var(--accent-dim); box-shadow: none; transform: scale(1); }
  35% { color: var(--warn); border-color: var(--warn); box-shadow: 0 0 18px rgba(251,191,36,0.5); transform: scale(1.08); }
  70% { color: var(--fire); border-color: var(--fire); box-shadow: 0 0 26px rgba(220,38,38,0.5); transform: scale(1.04); }
  100% { color: var(--fire); border-color: var(--fire); box-shadow: 0 0 22px rgba(249,115,22,0.35); transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  .analysis-persona-avatar.igniting { animation: none; }
}
.analysis-prompt-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-bottom: 1rem;
}
.analysis-prompt-bar input {
  flex: 1 1 200px;
  min-width: 0;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 0.7rem 0.9rem;
  color: var(--ink);
  font-size: 0.92rem;
  font-family: inherit;
  text-overflow: ellipsis;
}
.analysis-prompt-bar input:focus { outline: none; border-color: var(--accent-dim); }
.analysis-prompt-bar button { flex-shrink: 0; }
.analysis-suggestions {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
}
.analysis-suggestions-label {
  font-size: 0.78rem;
  color: var(--muted-2);
  flex-shrink: 0;
}
.analysis-suggestions-chips, .assistant-suggestion-chips { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.assistant-suggestion-chips { margin-top: 0.6rem; }
.assistant-suggestion-chips-loading { font-size: 0.8rem; color: var(--muted-2); font-style: italic; }
.analysis-suggestion-chip, .assistant-suggestion-chip {
  background: none;
  border: 1px dashed var(--border);
  border-radius: 999px;
  padding: 0.35rem 0.8rem;
  color: var(--muted);
  font-size: 0.8rem;
  font-family: inherit;
  cursor: pointer;
  text-align: left;
  transition: color 0.15s, border-color 0.15s;
}
.analysis-suggestion-chip:hover, .assistant-suggestion-chip:hover { color: var(--accent); border-color: var(--accent-dim); }
.analysis-selection-section { margin-bottom: 1.5rem; display: flex; flex-direction: column; gap: 1.1rem; }
.analysis-selection-group-heading {
  font-size: 0.76rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--muted-2);
  margin: 0 0 0.55rem;
}
.analysis-reply {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 0.85rem 1rem;
  margin-bottom: 1.5rem;
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--ink);
}
.analysis-reply-error { border-color: rgba(248,113,113,0.4); color: var(--danger); }
.analysis-reply-text { white-space: pre-line; }
.analysis-canvas {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 1.1rem;
}
.analysis-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1rem;
  animation: analysis-card-in 0.25s ease-out;
}
@keyframes analysis-card-in {
  from { opacity: 0; transform: scale(0.97); }
  to { opacity: 1; transform: scale(1); }
}
.analysis-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.6rem;
}
.analysis-card-title { font-weight: 600; font-size: 0.9rem; }
.analysis-card-menu-btn {
  width: 26px;
  height: 26px;
  flex-shrink: 0;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: none;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.analysis-card-menu-btn:hover { color: var(--accent); border-color: var(--accent-dim); }
.analysis-card .assistant-chart { border: none; background: none; padding: 0; }
.analysis-canvas { container-type: inline-size; }
.analysis-card[data-board-width="3"] { grid-column: 1 / -1; }
@container (min-width: 700px) {
  .analysis-card[data-board-width="2"] { grid-column: span 2; }
}
.analysis-card-header[draggable="true"] { cursor: grab; }
.analysis-card.is-dragging { opacity: 0.45; }
.analysis-card.drop-before { box-shadow: -3px 0 0 var(--accent); }
.analysis-card.drop-after { box-shadow: 3px 0 0 var(--accent); }
.analysis-card-status { font-size: 0.78rem; color: var(--muted); }
.analysis-card-status.is-error { color: var(--danger); }
.analysis-context-menu-item[aria-pressed="true"]::after { content: " ✓" / ""; color: var(--accent); }
.analysis-context-menu-item:disabled { color: var(--muted-2); cursor: default; background: none; }
.chart-export-host {
  position: fixed;
  left: -10000px;
  top: 0;
  width: 520px;
  --ink: #1a1a1a;
  --muted: #4a4a4a;
  --muted-2: #6b6b6b;
  --border: #d9d9d9;
  --card: #ffffff;
  background: #ffffff;
  color: #1a1a1a;
}
.analysis-table-scroll { overflow-x: auto; }
.analysis-table { width: 100%; border-collapse: collapse; font-size: 0.82rem; }
.analysis-table th, .analysis-table td {
  padding: 0.4rem 0.6rem;
  border-bottom: 1px solid var(--border);
  text-align: left;
  white-space: nowrap;
}
.analysis-table th { color: var(--muted); font-weight: 600; }
.analysis-context-menu {
  position: fixed;
  z-index: 200;
  min-width: 12rem;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 0.35rem;
  box-shadow: 0 15px 40px rgba(0,0,0,0.45);
}
.analysis-context-menu-label {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--muted-2);
  padding: 0.3rem 0.6rem 0.2rem;
}
.analysis-context-menu-item {
  display: block;
  width: 100%;
  text-align: left;
  background: none;
  border: none;
  color: var(--ink);
  font-size: 0.85rem;
  padding: 0.45rem 0.6rem;
  border-radius: 6px;
  cursor: pointer;
}
.analysis-context-menu-item:hover { background: var(--card-hover); }
.analysis-context-menu-danger { color: var(--danger); }
.analysis-context-menu-divider { height: 1px; background: var(--border); margin: 0.3rem 0.2rem; }
.analysis-send-picker {
  position: fixed;
  z-index: 210;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 20rem;
  max-width: calc(100vw - 2rem);
  background: var(--card);
  border: 1px solid var(--accent-dim);
  border-radius: 12px;
  padding: 1rem;
  box-shadow: 0 20px 60px rgba(0,0,0,0.5);
}
.analysis-send-picker-label { font-size: 0.85rem; color: var(--muted); margin-bottom: 0.5rem; }
.analysis-send-picker select {
  width: 100%;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.5rem 0.6rem;
  color: var(--ink);
  font-size: 0.85rem;
  font-family: inherit;
  margin-bottom: 0.85rem;
}
.analysis-send-picker-actions { display: flex; justify-content: flex-end; gap: 0.6rem; }
.series-banner {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  background: var(--card);
  border: 1px solid var(--accent-dim);
  box-shadow: 0 0 0 1px rgba(94,234,212,0.06);
  border-radius: 12px;
  padding: 1rem 1.15rem;
  margin-bottom: 1.25rem;
  animation: analysis-card-in 0.25s ease-out;
}
.series-banner-icon {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  border-radius: 9px;
  background: rgba(94,234,212,0.1);
  border: 1px solid var(--accent-dim);
  color: var(--accent);
  font-size: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.series-banner-body { flex: 1 1 16rem; min-width: 0; }
.series-banner-title {
  font-size: 0.88rem;
  font-weight: 650;
  color: var(--ink);
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 0.15rem;
}
.new-tag {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #06231f;
  background: var(--accent);
  border-radius: 999px;
  padding: 0.1rem 0.5rem;
}
.series-banner-sub { font-size: 0.8rem; color: var(--muted); }
.series-banner-actions { display: flex; align-items: center; gap: 0.7rem; flex-wrap: wrap; }
.seg { display: flex; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; flex-shrink: 0; }
.seg button {
  background: none;
  border: none;
  color: var(--muted);
  font-family: inherit;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.4rem 0.75rem;
  cursor: pointer;
}
.seg button + button { border-left: 1px solid var(--border); }
.seg button.active { background: rgba(94,234,212,0.12); color: var(--ink); }
.finder-panel {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  margin-bottom: 1.5rem;
  overflow: hidden;
}
.finder-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.9rem 1.1rem;
}
.finder-panel-title { font-size: 0.92rem; font-weight: 650; }
.finder-panel-sub { font-size: 0.78rem; color: var(--muted); margin-top: 0.15rem; font-weight: 400; max-width: 42rem; }
.finder-panel-toggle {
  background: none;
  border: 1px solid var(--border);
  color: var(--muted);
  border-radius: 8px;
  padding: 0.35rem 0.75rem;
  font-size: 0.78rem;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  flex-shrink: 0;
}
.finder-panel-toggle:hover { color: var(--accent); border-color: var(--accent-dim); }
.finder-panel-body { padding: 0 1.1rem 1.1rem; border-top: 1px solid var(--border); padding-top: 1rem; }
.finder-dates { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; flex-shrink: 0; max-width: 100%; }
.finder-dates label { display: flex; align-items: center; gap: 0.35rem; font-size: 0.78rem; color: var(--muted); }
.finder-dates input[type="date"] {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.35rem 0.5rem;
  color: var(--ink);
  font-size: 0.8rem;
  font-family: inherit;
}
.finder-saved { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; flex-shrink: 0; }
.finder-saved-label { font-size: 0.78rem; color: var(--muted-2); }
.finder-saved-chips { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.finder-saved-chip {
  background: none;
  border: 1px dashed var(--border);
  border-radius: 999px;
  padding: 0.3rem 0.75rem 0.3rem 0.9rem;
  color: var(--muted);
  font-size: 0.78rem;
  font-family: inherit;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.finder-saved-chip:hover { color: var(--accent); border-color: var(--accent-dim); }
.finder-saved-item { display: inline-flex; align-items: center; gap: 0.1rem; }
.finder-saved-chip-remove { background: none; border: none; color: var(--muted); cursor: pointer; font-size: 0.9rem; line-height: 1; opacity: 0.6; padding: 0.2rem 0.3rem; font-family: inherit; }
.finder-saved-chip-remove:hover { opacity: 1; }
.finder-saved-scope { margin-left: 0.4rem; font-size: 0.7rem; color: var(--muted-2); border: 1px solid var(--border); border-radius: 999px; padding: 0 0.4rem; }
.finder-saved-scope:empty { display: none; }
.finder-saved-owner { color: var(--muted-2); }
.finder-saved-chip-action { background: none; border: none; color: var(--muted); cursor: pointer; font-size: 0.72rem; padding: 0.2rem 0.3rem; font-family: inherit; text-decoration: underline; text-underline-offset: 2px; }
.finder-saved-chip-action:hover { color: var(--accent); }
.finder-share-prompt { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-top: 0.5rem; }
.finder-share-prompt select, .finder-share-prompt input { max-width: 100%; min-width: 0; }
.finder-share-title { font-size: 0.82rem; overflow-wrap: anywhere; }
.finder-share-note { flex-basis: 100%; margin: 0; font-size: 0.75rem; color: var(--muted-2); }
.tag-chip.is-hidden-filter { font-style: italic; color: var(--muted-2); }
.finder-save-btn {
  background: none;
  border: 1px solid var(--border);
  color: var(--muted);
  border-radius: 999px;
  padding: 0.3rem 0.8rem;
  font-size: 0.78rem;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
}
.finder-save-btn:hover { color: var(--accent); border-color: var(--accent-dim); }
.finder-save-prompt { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem; }
.finder-save-prompt[hidden] { display: none; }
.finder-save-prompt input {
  background: var(--bg);
  border: 1px solid var(--accent-dim);
  border-radius: 8px;
  padding: 0.4rem 0.7rem;
  color: var(--ink);
  font-size: 0.85rem;
  font-family: inherit;
  flex: 1;
  max-width: 16rem;
}
.finder-count { font-size: 0.78rem; color: var(--muted-2); margin-bottom: 0.7rem; }
.finder-save-message { font-size: 0.78rem; color: var(--muted); }
.finder-save-message.is-error { color: var(--danger); }
.finder-facets { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 0.9rem 1.2rem; margin-bottom: 1rem; }
.finder-facets:empty { display: none; }
.finder-facet { min-width: 0; }
.finder-facet-title { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted-2); margin-bottom: 0.35rem; }
.finder-facet-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.15rem; }
.finder-facet-value {
  display: flex; align-items: baseline; justify-content: space-between; gap: 0.6rem;
  width: 100%; text-align: left; background: none; border: 1px solid transparent; border-radius: 6px;
  padding: 0.28rem 0.5rem; color: var(--ink); font-size: 0.82rem; font-family: inherit; cursor: pointer;
}
.finder-facet-value:hover { background: var(--card-hover); }
.finder-facet-value:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.finder-facet-value[aria-pressed="true"] { border-color: var(--accent-dim); color: var(--accent); }
.finder-facet-label { min-width: 0; overflow-wrap: anywhere; }
.finder-facet-count { color: var(--muted); font-variant-numeric: tabular-nums; flex-shrink: 0; }
.finder-facet-more { background: none; border: none; color: var(--muted); font-size: 0.78rem; font-family: inherit; cursor: pointer; padding: 0.2rem 0.5rem; }
.finder-facet-more:hover { color: var(--accent); }
.finder-facet-empty { font-size: 0.78rem; color: var(--muted-2); padding: 0.2rem 0.5rem; }
@media screen and (min-width: 1600px) {
  .analysis-workspace { display: grid; grid-template-columns: minmax(20rem, 24rem) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
  .analysis-side {
    position: sticky; top: calc(var(--topbar-h) + 1rem);
    max-height: calc(100vh - var(--topbar-h) - 2rem); overflow-y: auto; overscroll-behavior: contain;
  }
  .analysis-side .finder-panel { margin-bottom: 0; }
  .analysis-side .filter-bar { flex-direction: column; align-items: stretch; }
  .analysis-side .finder-dates { flex-wrap: wrap; }
  .analysis-side .finder-facets { grid-template-columns: minmax(0, 1fr); }
  .analysis-main { min-width: 0; }
  .analysis-main .analysis-reply, .analysis-main .analysis-suggestions { max-width: 75ch; }
}
.finder-loading { font-size: 0.82rem; color: var(--muted-2); font-style: italic; padding: 0.5rem 0; }
.param-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 0.6rem;
}
.param-cell {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.6rem 0.75rem;
}
.param-name {
  font-size: 0.72rem;
  letter-spacing: 0.03em;
  color: var(--muted);
  margin-bottom: 0.2rem;
}
.param-value {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.param-unit { font-size: 0.75rem; font-weight: 400; color: var(--muted); }
.pinned-viz-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1rem;
}
.pinned-viz-grid .empty-state { grid-column: 1 / -1; }
.pinned-viz-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1rem;
}
.pinned-viz-card-title { font-weight: 600; font-size: 0.9rem; margin-bottom: 0.2rem; }
.pinned-viz-card-meta { font-size: 0.72rem; color: var(--muted-2); margin-bottom: 0.6rem; }
.pinned-viz-card .assistant-chart { border: none; background: none; padding: 0; }
.file-attachment-table-wrap { overflow-x: auto; margin-top: 1rem; }
table.file-attachment-table { min-width: 100%; }
table.file-attachment-table td, table.file-attachment-table th { white-space: normal; }
table.file-attachment-table td:first-child { word-break: break-word; }
.file-attachment-actions { width: 1%; vertical-align: top; }
.file-search-status {
  display: inline-block;
  margin-left: 0.5rem;
  padding: 0.05rem 0.4rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  font-size: 0.72rem;
  color: var(--muted);
  white-space: nowrap;
  cursor: help;
}
.file-search-retry { display: inline; margin-left: 0.35rem; }
.file-search-retry .btn-link { margin-top: 0; font-size: 0.72rem; }
.file-retire > summary {
  display: inline-block;
  cursor: pointer;
  list-style: none;
}
.file-retire > summary::-webkit-details-marker { display: none; }
.file-retire[open] > summary { margin-bottom: 0.5rem; }
.file-retire-form { display: flex; flex-direction: column; gap: 0.35rem; min-width: 16rem; }
.file-retire-label { font-size: 0.8rem; color: var(--muted); }
.file-retire-form input[type="text"] {
  padding: 0.35rem 0.5rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--bg);
  color: inherit;
  font-size: 0.85rem;
}
.file-link-badge {
  display: inline-block;
  margin-left: 0.4rem;
  padding: 0.05rem 0.35rem;
  border-radius: 999px;
  background: var(--accent-dim, rgba(125, 125, 125, 0.15));
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--muted);
}
.file-add-link { margin-top: 0.75rem; }
.file-add-link > summary { display: inline-block; cursor: pointer; list-style: none; }
.file-add-link > summary::-webkit-details-marker { display: none; }
.file-link-form { display: flex; flex-direction: column; gap: 0.35rem; margin-top: 0.5rem; max-width: 32rem; }
.file-link-form label { font-size: 0.8rem; color: var(--muted); }
.file-link-form input {
  padding: 0.35rem 0.5rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--bg);
  color: inherit;
  font-size: 0.85rem;
}
.library-shelf-switch { display: flex; gap: 0.5rem; }
.library-shelf-switch a {
  padding: 0.3rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  font-size: 0.85rem;
  text-decoration: none;
}
.library-shelf-switch a.is-current { background: var(--accent-dim, rgba(125, 125, 125, 0.15)); font-weight: 600; }
.library-retention-note {
  margin: 1rem 0;
  padding: 0.6rem 0.85rem;
  border-left: 3px solid var(--border);
  color: var(--muted);
  font-size: 0.85rem;
  max-width: 60rem;
}
.assistant-attach-btn {
  background: none;
  border: none;
  color: var(--muted);
  cursor: pointer;
  padding: 0 0.35rem;
  display: flex;
  align-items: center;
}
.assistant-attach-btn:hover { color: inherit; }
.assistant-dragover { outline: 2px dashed var(--accent, #4a9); outline-offset: -6px; }
.assistant-file-chip {
  margin: 0.35rem 0;
  padding: 0.45rem 0.6rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.82rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: baseline;
}
.assistant-file-chip-meta, .assistant-file-chip-home { color: var(--muted); font-size: 0.75rem; }
.assistant-file-chip-pending { color: var(--muted); font-style: italic; }
.assistant-file-chip-error { border-color: var(--danger, #b44); color: var(--danger, #b44); }
.files-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  align-items: flex-end;
  margin-bottom: 1rem;
}
.files-filter-field { display: flex; flex-direction: column; gap: 0.25rem; }
.files-filter-field label { font-size: 0.75rem; color: var(--muted); }
.files-filter-field input, .files-filter-field select {
  padding: 0.3rem 0.45rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--bg);
  color: inherit;
  font-size: 0.85rem;
  min-width: 9rem;
}
.files-filter-checkbox label { flex-direction: row; display: flex; align-items: center; gap: 0.35rem; font-size: 0.85rem; color: inherit; }
.files-filter-checkbox input { min-width: 0; }
.files-filter-actions { display: flex; gap: 0.5rem; align-items: center; }
.files-preview-link { margin-left: 0.5rem; font-size: 0.75rem; color: var(--muted); }
.files-pagination { display: flex; gap: 1rem; margin-top: 0.75rem; font-size: 0.85rem; }
.file-revisions > summary { cursor: pointer; font-size: 0.75rem; color: var(--muted); }
.file-revision-list { margin: 0.35rem 0 0 1.1rem; padding: 0; font-size: 0.8rem; }
.file-revision-list li { margin-bottom: 0.2rem; }
.file-retire-warning {
  margin: 0;
  font-size: 0.75rem;
  color: var(--muted);
  max-width: 22rem;
}
.file-retired-section { margin-top: 1rem; }
.file-retired-section > summary { cursor: pointer; font-size: 0.85rem; color: var(--muted); }
.file-replace { margin-bottom: 0.35rem; }
.page-section { margin-top: 2rem; scroll-margin-top: 4rem; }
.page-section-head { margin: 0 0 0.5rem; }
.page-section-headrow {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 1.25rem;
  margin: 0 0 0.5rem;
}
.page-section-headrow > .page-section-head { margin: 0; }
.page-section-tools {
  flex: 1 1 auto; min-width: 0;
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 1.25rem;
}
.page-section-headrow:has(.page-section-toggle[aria-expanded="false"]) > .page-section-tools { display: none; }
.section-tool-buttons { margin-left: auto; display: flex; align-items: center; gap: 0.6rem; }
.sheet-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 1.25rem; min-width: 0; }
.sheet-tools[hidden] { display: none; }
.sheet-tools > .entity-review, .sheet-tools > .sir-summary { margin: 0; }
.sheet-tools:has(> .entity-review[open]) { flex-basis: 100%; }
.sheet-tools > .entity-review[open] { flex-basis: 100%; }
.page-section-headrow + .page-section-body > #table-data-panel { padding-top: 0.6rem; }
.page-section-tools .btn-sm { padding-top: 0.3rem; padding-bottom: 0.3rem; }
.page-section-toggle {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.3rem 0;
  background: none;
  border: none;
  border-bottom: 1px solid var(--border);
  color: inherit;
  font: inherit;
  font-size: 1.15rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}
.page-section-toggle:hover .page-section-title { text-decoration: underline; }
.page-section-chevron { flex: 0 0 auto; transition: transform 0.12s ease; color: var(--muted); }
.page-section-toggle[aria-expanded="false"] .page-section-chevron { transform: rotate(-90deg); }
.page-section-count {
  padding: 0.05rem 0.45rem;
  border-radius: 999px;
  background: rgba(94, 234, 212, 0.14);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--accent);
}
.page-section-none { font-size: 0.75rem; font-weight: 400; color: var(--muted); }
.page-section-empty { margin-top: 0.75rem; }
.page-section-empty .page-section-toggle { font-size: 0.95rem; font-weight: 500; color: var(--muted); }
.page-section-body { padding-top: 0.25rem; }
.section-rail {
  position: sticky;
  top: 0;
  z-index: 3;
  display: flex;
  gap: 0.35rem;
  margin: 1.25rem 0 0.5rem;
  padding: 0.4rem 0;
  overflow-x: auto;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  scrollbar-width: thin;
}
.section-rail a {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  flex: 0 0 auto;
  padding: 0.2rem 0.6rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  font-size: 0.78rem;
  text-decoration: none;
  color: var(--muted);
  white-space: nowrap;
}
.section-rail a:hover { color: inherit; }
.section-rail a span {
  font-weight: 600;
  font-size: 0.7rem;
  color: inherit;
}
@media (max-width: 860px) {
  .stage-track {
    overflow-x: auto;
    scrollbar-width: thin;
    padding-bottom: 0.25rem;
  }
  .stage-step {
    flex: 0 0 auto;
    min-width: 6.5rem;
  }
}
.list-header-actions { display: flex; gap: 0.5rem; flex: 0 1 auto; flex-wrap: wrap; }
.page-tabs {
  display: flex;
  gap: 0.15rem;
  border-bottom: 1px solid var(--border);
  margin: 0 0 1.1rem;
  overflow-x: auto;
  scrollbar-width: thin;
}
.page-tab { flex: 0 0 auto; }
.page-tab {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.5rem 0.9rem;
  font-size: 0.9rem;
  color: var(--muted);
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  text-decoration: none;
}
.page-tab:hover { color: var(--ink); text-decoration: none; }
.page-tab-count {
  font-size: 0.7rem;
  background: rgba(125, 125, 125, 0.15);
  border-radius: 999px;
  padding: 0.05rem 0.42rem;
  color: var(--muted);
}
.page-tab-on { color: var(--ink); border-bottom-color: var(--accent); font-weight: 600; }
.page-tab-on .page-tab-count { background: rgba(94, 234, 212, 0.16); color: var(--accent); }
.axis-badge { border-color: currentColor; }
.axis-compound { color: var(--compound); background: rgba(96, 165, 250, 0.12); }
.axis-strain { color: var(--assay-parent); background: rgba(167, 139, 250, 0.12); }
.metric-badge {
  text-transform: none;
  letter-spacing: 0;
  color: var(--accent);
  border-color: var(--accent-dim);
  background: rgba(94, 234, 212, 0.12);
}
.card-tags { display: flex; flex-wrap: wrap; gap: 0.3rem; }
.assay-builder {
  display: grid;
  grid-template-columns: minmax(0, 23rem) minmax(0, 1fr);
  gap: 1.4rem;
  align-items: start;
}
.assay-builder-controls > .panel + .panel { margin-top: 0.8rem; }
.assay-builder-preview {
  position: sticky;
  top: calc(var(--topbar-h) + 1rem);
  background: var(--bg);
}
.assay-builder-preview .data-table-wrap { max-height: 60vh; }
.panel-legend {
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted-2);
  margin-bottom: 0.65rem;
}
.field-optional { color: var(--muted-2); font-weight: 400; font-size: 0.75rem; }
.builder-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; }
.builder-subpanel { margin-top: 0.9rem; padding-top: 0.8rem; border-top: 1px solid var(--border); }
.builder-subpanel > summary { font-size: 0.8rem; font-weight: 600; cursor: pointer; }
.builder-subpanel[open] > summary { margin-bottom: 0.6rem; }
.av-preview {
  font-family: ui-monospace, "SF Mono", Consolas, monospace; font-size: 0.78rem; color: var(--muted-2);
  background: var(--bg); border-radius: 6px; padding: 0.5rem 0.65rem; margin: 0.3rem 0 0.8rem;
  word-break: break-word;
}
.builder-conditions {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 0.8fr);
  gap: 0.4rem;
  align-items: start;
  margin: 0.2rem 0 0.4rem;
}
.builder-conditions input { width: 100%; }
.builder-measures { grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr) minmax(0, 1.4fr); }
.builder-measures select { width: 100%; }
#builder-record select { width: 100%; }
.builder-record-derived { margin: 0.2rem 0 0.4rem; }
.builder-derived-head,
.builder-derived-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.4rem;
  align-items: start;
}
.builder-derived-head { font-size: 0.75rem; color: var(--muted); margin-bottom: 0.3rem; }
.builder-derived-row + .builder-derived-row { margin-top: 0.4rem; }
.builder-derived-cell { display: block; min-width: 0; margin: 0; }
.builder-derived-cell input, .builder-derived-cell select { width: 100%; }
.builder-derived-label {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.builder-derived-error { grid-column: 1 / -1; }
@media (max-width: 640px) {
  .builder-derived-head { display: none; }
  .builder-derived-row {
    grid-template-columns: minmax(0, 1fr);
    padding: 0.6rem; border: 1px solid var(--border); border-radius: 8px;
  }
  .builder-derived-label {
    position: static; width: auto; height: auto; margin: 0 0 0.2rem; overflow: visible;
    clip: auto; white-space: normal; display: block; font-size: 0.75rem; color: var(--muted);
  }
}
.builder-conditions-head { font-size: 0.75rem; color: var(--muted); }
.sheet-conditions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  margin: 0 0 0.6rem;
  font-size: 0.8rem;
}
.sheet-conditions-label {
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted-2);
}
.sheet-condition {
  display: inline-block;
  border: 1px solid var(--border);
  background: var(--card);
  border-radius: 999px;
  padding: 0.12rem 0.6rem;
  color: var(--ink);
}
.sheet-condition-rrid { color: var(--muted); font-size: 0.72rem; }
.builder-seg { display: flex; border: 1px solid var(--border); border-radius: 6px; overflow: hidden; }
.builder-seg-option { flex: 1; }
.builder-seg-option input { position: absolute; opacity: 0; pointer-events: none; }
.builder-seg-option span {
  display: block;
  text-align: center;
  padding: 0.4rem;
  font-size: 0.8rem;
  color: var(--muted);
  cursor: pointer;
}
.builder-seg-option.on span { background: rgba(94, 234, 212, 0.14); color: var(--accent); font-weight: 600; }
.builder-seg-option input:focus-visible + span { outline: 2px solid var(--accent-dim); outline-offset: -2px; }
.builder-columns { display: flex; flex-direction: column; gap: 0.4rem; margin-bottom: 0.6rem; }
.builder-column-row { display: flex; gap: 0.35rem; align-items: center; }
.builder-column-row input, .builder-column-row select {
  padding: 0.35rem 0.45rem;
  border: 1px solid var(--border);
  border-radius: 5px;
  background: var(--bg-2);
  color: var(--ink);
  font-size: 0.8rem;
  font-family: inherit;
  min-width: 0;
}
.builder-column-name { flex: 2 1 6rem; }
.builder-column-kind { flex: 1 1 5.5rem; }
.builder-column-unit { flex: 0 1 4rem; }
.builder-column-direction { flex: 1 1 7rem; }
.builder-column-remove {
  flex: 0 0 auto;
  background: none;
  border: 1px solid var(--border);
  border-radius: 5px;
  color: var(--muted);
  cursor: pointer;
  padding: 0.25rem 0.45rem;
  line-height: 1;
}
.builder-column-remove:hover { color: var(--danger); border-color: var(--danger); }
.builder-preview-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.5rem;
}
.builder-preview-title { font-weight: 600; font-size: 0.95rem; }
.builder-preview-meta { font-size: 0.78rem; color: var(--muted-2); }
.builder-preview-more { color: var(--muted-2); font-style: italic; }
.builder-entity-header { color: var(--compound) !important; }
.builder-entity-cell { color: var(--assay-parent); }
.builder-preview-starts th { color: var(--muted); font-size: 0.78rem; font-weight: 400; }
.builder-preview-starts th.builder-preview-starts-label { font-weight: 600; }
.builder-note {
  display: flex;
  gap: 0.5rem;
  padding: 0.55rem 0.7rem;
  border: 1px solid var(--border);
  border-radius: 7px;
  font-size: 0.82rem;
  color: var(--muted);
  margin-top: 0.7rem;
}
.builder-note-ok { background: rgba(94, 234, 212, 0.05); border-color: rgba(94, 234, 212, 0.25); }
.builder-note-ok::before { content: "\2713"; color: var(--accent); }
.builder-note-warn { background: rgba(251, 191, 36, 0.07); border-color: rgba(251, 191, 36, 0.3); }
.builder-note-warn::before { content: "!"; color: var(--warn); font-weight: 700; }
.builder-note-info { color: var(--muted); }
.builder-note-info::before { content: "\2261"; color: var(--muted-2); }
.assay-builder-controls, .assay-builder-preview { min-width: 0; }
.assay-builder-controls input,
.assay-builder-controls select,
.assay-builder-controls textarea { max-width: 100%; box-sizing: border-box; }
@media (max-width: 860px) {
  .assay-builder { grid-template-columns: minmax(0, 1fr); }
  .list-header-actions { width: 100%; }
}
@media screen and (min-width: 1600px) {
  .assay-builder { grid-template-columns: minmax(0, 64rem) minmax(0, 1fr); }
  .assay-builder-controls {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem; align-items: start; grid-auto-flow: row dense;
  }
  .assay-builder-controls > .panel + .panel { margin-top: 0; }
  .assay-builder-controls > #builder-record { grid-column: 1 / -1; }
  .assay-builder-controls > #builder-identity {
    grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 1.2rem;
  }
  #builder-identity > .panel-legend { grid-column: 1 / -1; }
  #builder-identity > .form-field { margin-bottom: 0; }
  .assay-builder-controls > #builder-design { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem 1.6rem; }
  #builder-design > .panel-legend { margin-bottom: 0; }
  #builder-identity textarea { min-height: 4.5rem; height: 4.5rem; field-sizing: content; max-height: 14rem; }
  .assay-builder-preview .data-table-wrap { max-height: calc(100vh - var(--topbar-h) - 14rem); }
}
@media screen and (min-width: 2400px) {
  .assay-builder { grid-template-columns: minmax(0, 72rem) minmax(0, 1fr); }
}
.builder-preview-columns { font-size: 0.78rem; color: var(--muted-2); margin: 0.35rem 0 0; }
.builder-preview-columns:empty { display: none; }
.template-picker { margin-bottom: 1.5rem; }
.template-picker-head h2 { font-size: 1.05rem; margin: 0 0 0.2rem; }
.template-picker-head .page-subtitle { margin-bottom: 0.8rem; }
.template-picker-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
  gap: 0.7rem;
}
.template-picker-card { padding: 0.75rem 0.85rem; }
.template-picker-or {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin: 1.3rem 0 0.2rem;
  color: var(--muted-2);
  font-size: 0.8rem;
}
.template-picker-or::before,
.template-picker-or::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--border);
}
.nav-count {
  display: inline-block;
  background: var(--accent);
  color: #06201c;
  border-radius: 999px;
  padding: 0 0.32rem;
  font-size: 0.68rem;
  font-weight: 700;
  margin-left: 0.15rem;
}
.oi-filters { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 1rem; align-items: center; }
.oi-chip {
  font-size: 0.75rem; padding: 0.25rem 0.6rem; border-radius: 999px;
  border: 1px solid var(--border); background: var(--card);
  color: var(--muted); white-space: nowrap; text-decoration: none;
}
.oi-chip:hover { color: var(--ink); text-decoration: none; }
.oi-chip-on { background: rgba(94, 234, 212, 0.14); border-color: var(--accent-dim); color: var(--accent); font-weight: 600; }
.oi-filter-label {
  font-size: 0.66rem; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--muted-2); margin-right: 0.2rem;
}
.oi-filter-sep { width: 1px; height: 1.1rem; background: var(--border); margin: 0 0.35rem; }
.oi-sort { margin-left: auto; display: flex; gap: 0.35rem; align-items: center; font-size: 0.75rem; color: var(--muted-2); }
.oi-items { border: 1px solid var(--border); border-radius: 9px; background: var(--card); }
.oi-items-flush { border: 0; border-radius: 0; }
.oi-item {
  display: grid;
  grid-template-columns: 0.2rem 5.2rem minmax(0, 1fr) 9rem 3.4rem 1.8rem;
  gap: 0.85rem;
  align-items: center;
  padding: 0.68rem 0.9rem 0.68rem 0;
  border-bottom: 1px solid var(--border);
}
.oi-item:last-child { border-bottom: 0; }
.oi-item-old { background: rgba(251, 191, 36, 0.04); }
.oi-item-bad { background: rgba(248, 113, 113, 0.05); }
.oi-item-snoozed { opacity: 0.55; }
.oi-pri { align-self: stretch; border-radius: 0 3px 3px 0; }
.oi-pri-high { background: var(--danger); }
.oi-pri-medium { background: var(--warn); }
.oi-pri-normal { background: var(--border); }
.oi-verb {
  font-size: 0.68rem; letter-spacing: 0.06em; text-transform: uppercase;
  text-align: center; padding: 0.2rem 0; border-radius: 4px;
  border: 1px solid currentColor; font-weight: 600;
}
.oi-verb-review { color: var(--accent); background: rgba(94, 234, 212, 0.1); }
.oi-verb-revise { color: var(--warn); background: rgba(251, 191, 36, 0.1); }
.oi-verb-resolve { color: var(--danger); background: rgba(248, 113, 113, 0.1); }
.oi-verb-claim { color: var(--project); background: rgba(244, 114, 182, 0.1); }
.oi-verb-sign { color: var(--assay-parent); background: rgba(167, 139, 250, 0.1); }
.oi-verb-attach { color: var(--compound); background: rgba(96, 165, 250, 0.1); }
.oi-verb-do { color: var(--muted); background: rgba(125, 125, 125, 0.1); }
.oi-main { min-width: 0; }
.oi-title { font-size: 0.88rem; font-weight: 500; color: var(--ink); text-decoration: none; }
.oi-title:hover { color: var(--accent); text-decoration: none; }
.oi-meta { font-size: 0.73rem; color: var(--muted-2); margin-top: 0.12rem; }
.oi-why-high { color: var(--danger); }
.oi-why-medium { color: var(--warn); }
.oi-why-normal { color: var(--muted); }
.oi-chain { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem; font-size: 0.71rem; color: var(--muted-2); margin-top: 0.25rem; }
.oi-chain b { color: var(--muted); font-weight: 500; }
.oi-chain-arrow { color: var(--border); }
.oi-chain-why { font-style: italic; }
.oi-snoozed-note { font-size: 0.71rem; color: var(--muted-2); margin-top: 0.22rem; }
.oi-linkbtn { background: none; border: 0; color: var(--accent); font: inherit; cursor: pointer; padding: 0 0 0 0.3rem; }
.oi-who { display: flex; align-items: center; gap: 0.4rem; font-size: 0.76rem; color: var(--muted); min-width: 0; }
.oi-who-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.oi-avatar {
  width: 1.35rem; height: 1.35rem; border-radius: 999px; flex: 0 0 auto;
  background: var(--card-hover); border: 1px solid var(--border);
  display: grid; place-items: center; font-size: 0.6rem; color: var(--muted); font-weight: 600;
}
.oi-avatar-team { border-radius: 5px; color: var(--accent); border-color: var(--accent-dim); }
.oi-avatar-role { color: var(--warn); border-color: var(--warn); border-style: dashed; }
.oi-age { font-size: 0.72rem; color: var(--muted-2); text-align: right; font-variant-numeric: tabular-nums; }
.oi-item-old .oi-age { color: var(--warn); }
.oi-item-bad .oi-age { color: var(--danger); font-weight: 600; }
.oi-actions { position: relative; }
.oi-menu > summary {
  list-style: none; cursor: pointer; color: var(--muted-2);
  text-align: center; border-radius: 5px; padding: 0.1rem 0.2rem;
}
.oi-menu > summary::-webkit-details-marker { display: none; }
.oi-menu > summary:hover { color: var(--ink); background: var(--card-hover); }
.oi-menu-pop {
  position: absolute; right: 0; top: 1.6rem; z-index: 20; width: 17rem;
  border: 1px solid var(--border); border-radius: 8px; background: var(--card-hover);
  padding: 0.4rem; box-shadow: 0 12px 30px rgba(0, 0, 0, 0.5); text-align: left;
}
.oi-menu-title {
  font-size: 0.64rem; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--muted-2); padding: 0.35rem 0.45rem 0.3rem;
}
.oi-menu-item {
  display: block; width: 100%; text-align: left; padding: 0.34rem 0.45rem;
  font-size: 0.82rem; color: var(--ink); border-radius: 5px;
  background: none; border: 0; cursor: pointer; font-family: inherit;
}
.oi-menu-item:hover { background: rgba(94, 234, 212, 0.12); color: var(--accent); }
.oi-menu-note {
  font-size: 0.71rem; color: var(--muted-2); padding: 0.45rem;
  border-top: 1px solid var(--border); margin-top: 0.3rem; line-height: 1.45;
}
.oi-menu-note b { color: var(--ink); }
.oi-menu-refused {
  font-size: 0.75rem; color: var(--muted); line-height: 1.45;
  padding: 0.45rem; border-radius: 6px;
  background: rgba(248, 113, 113, 0.08); border: 1px solid rgba(248, 113, 113, 0.3);
}
.oi-handoff { border-top: 1px solid var(--border); margin-top: 0.4rem; padding-top: 0.2rem; }
.oi-handoff select, .oi-handoff input[type="text"] {
  width: 100%; margin-bottom: 0.35rem; padding: 0.35rem 0.45rem;
  border: 1px solid var(--border); border-radius: 5px;
  background: var(--bg-2); color: var(--ink); font-size: 0.8rem; font-family: inherit;
}
.oi-snoozed-group { margin-top: 1.2rem; }
.oi-snoozed-group > summary {
  cursor: pointer; font-size: 0.72rem; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--muted-2); padding: 0.4rem 0;
}
.oi-breakdown { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 0.7rem; margin-bottom: 1rem; }
.oi-bd { border: 1px solid var(--border); border-radius: 8px; padding: 0.8rem 0.9rem; background: var(--card); }
.oi-bd-n { font-size: 1.7rem; font-weight: 800; line-height: 1; }
.oi-bd-hi .oi-bd-n { color: var(--danger); }
.oi-bd-ac .oi-bd-n { color: var(--accent); }
.oi-bd-lbl { font-size: 0.8rem; color: var(--muted); margin-top: 0.25rem; }
.oi-bd-sub { font-size: 0.72rem; color: var(--muted-2); margin-top: 0.35rem; line-height: 1.4; }
.oi-cleared-top { display: flex; align-items: baseline; gap: 0.5rem; padding: 0.7rem 0.9rem 0.3rem; }
.oi-cleared-n { font-size: 1.9rem; font-weight: 800; color: var(--accent); line-height: 1; }
.oi-cleared-txt { font-size: 0.82rem; color: var(--muted); }
.oi-unblocked { padding: 0.4rem 0.9rem 0.5rem; font-size: 0.82rem; color: var(--muted); }
.oi-unblocked b { color: var(--danger); font-weight: 600; }
.oi-unblocked .conseq { color: var(--accent); }
.oi-mix { padding: 0.6rem 0.9rem 0.75rem; }
.oi-mix-bar { display: flex; height: 0.5rem; border-radius: 3px; overflow: hidden; gap: 2px; }
.oi-mix-bar i { display: block; }
.oi-mix-hi { background: var(--danger); }
.oi-mix-md { background: var(--warn); }
.oi-mix-lo { background: var(--muted-2); }
.oi-mix-key { display: flex; flex-wrap: wrap; gap: 0.9rem; margin-top: 0.45rem; font-size: 0.72rem; color: var(--muted-2); }
.oi-mix-key span { display: flex; align-items: center; gap: 0.3rem; }
.oi-mix-key i { width: 0.5rem; height: 0.5rem; border-radius: 2px; display: block; }
.oi-mix-key b { color: var(--muted); font-weight: 600; }
.dash-needs-you { display: grid; grid-template-columns: 1.65fr 1fr; gap: 1rem; align-items: start; margin-bottom: 1.5rem; }
.dash-panel-head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 1rem; padding: 0.75rem 0.9rem; border-bottom: 1px solid var(--border);
}
.dash-panel-link { font-size: 0.8rem; white-space: nowrap; }
.dash-panel-foot { padding: 0.55rem 0.9rem; border-top: 1px solid var(--border); font-size: 0.8rem; }
.dash-needs-you .panel { padding: 0; }
@media (max-width: 860px) {
  .dash-needs-you { grid-template-columns: 1fr; }
  .oi-item { grid-template-columns: 0.2rem 4.6rem minmax(0, 1fr) 1.8rem; gap: 0.55rem; }
  .oi-who, .oi-age { display: none; }
  .oi-menu-pop { width: 14rem; }
  .oi-sort { margin-left: 0; width: 100%; }
}
.axis-box {
  position: relative;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: var(--bg-2);
  padding: 0.4rem;
}
.axis-box:focus-within { border-color: var(--accent-dim); }
.axis-chips { display: flex; flex-wrap: wrap; gap: 0.3rem; }
.axis-chips:not(:empty) { margin-bottom: 0.35rem; }
.axis-chip {
  display: inline-flex; align-items: center; gap: 0.35rem;
  font-size: 0.75rem; padding: 0.15rem 0.25rem 0.15rem 0.45rem;
  border-radius: 5px; border: 1px solid var(--border);
  background: var(--card); color: var(--muted); white-space: nowrap;
}
.axis-chip-strain { color: var(--assay-parent); border-color: rgba(167,139,250,0.45); background: rgba(167,139,250,0.12); }
.axis-chip-compound { color: var(--compound); border-color: rgba(96,165,250,0.45); background: rgba(96,165,250,0.12); }
.axis-chip-group { border-style: dashed; border-width: 1.5px; }
.axis-chip-bare { border-style: dashed; font-style: italic; opacity: 0.85; }
.axis-bare-add {
  display: flex; flex-wrap: wrap; gap: 0.1rem 1rem;
  margin-top: 0.4rem;
}
.axis-bare-add .btn-link { margin-top: 0; font-size: 0.76rem; }
.axis-chip { max-width: 100%; flex-wrap: wrap; }
.axis-chip-label { white-space: normal; overflow-wrap: anywhere; min-width: 0; }
.template-report { margin: 0 0 0.3rem; display: flex; align-items: baseline; gap: 0.45rem; flex-wrap: wrap; }
.record-shape-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.25rem; }
.record-shape-name { font-weight: 600; }
.axis-chip-reps-tag {
  margin-left: 0.35rem;
  font-size: 0.72rem;
  color: var(--muted-2);
  white-space: nowrap;
}
.axis-chip-n { font-size: 0.66rem; opacity: 0.75; }
.axis-chip-x {
  background: none; border: 0; color: inherit; opacity: 0.6;
  cursor: pointer; font: inherit; line-height: 1; padding: 0.1rem 0.2rem;
  display: inline-flex; align-items: center; border-radius: 3px;
}
.axis-chip-x { margin-left: 0.2rem; }
.axis-chip-x:focus-visible { outline: 1px solid currentColor; opacity: 1; }
.axis-chip-x:hover { opacity: 1; }
.axis-chip-qc {
  background: none; border: 1px solid currentColor; border-radius: 4px; color: inherit;
  cursor: pointer; font: inherit; font-size: 0.66rem; font-weight: 600; letter-spacing: 0.04em;
  line-height: 1; margin-left: 0.15rem; opacity: 0.55; padding: 0.1rem 0.25rem;
}
.axis-chip-qc:hover { opacity: 1; }
.axis-chip-qc[aria-pressed="true"] { background: var(--ink); color: var(--card); opacity: 1; }
.axis-chip-qc-tag {
  border-radius: 4px; background: var(--ink); color: var(--card); font-size: 0.66rem;
  font-weight: 600; letter-spacing: 0.04em; margin-left: 0.3rem; padding: 0.1rem 0.25rem;
}
.axis-chip-reps {
  display: inline-flex; align-items: center; gap: 0.1rem;
  font-size: 0.66rem; opacity: 0.75; cursor: pointer;
}
.axis-chip-reps:hover, .axis-chip-reps:focus-within { opacity: 1; }
.axis-chip-reps-unit { line-height: 1; }
.axis-chip-summary {
  background: none; border: 1px solid transparent; border-radius: 3px; color: inherit;
  font: inherit; font-size: 0.66rem; margin-left: 0.15rem; opacity: 0.75; padding: 0 0.1rem;
}
.axis-chip-summary:hover, .axis-chip-summary:focus { border-color: currentColor; opacity: 1; }
.axis-chip-summary option { background: var(--card); color: var(--ink); }
.axis-chip-medium {
  background: none; border: 1px solid transparent; border-radius: 3px; color: inherit;
  font: inherit; font-size: 0.66rem; margin-left: 0.15rem; opacity: 0.75; padding: 0 0.1rem; width: 3.6rem;
  text-overflow: ellipsis;
}
.axis-chip-medium:hover, .axis-chip-medium:focus { border-color: currentColor; opacity: 1; }
.axis-chip-medium option { background: var(--card); color: var(--ink); }
.axis-chip-reps-box {
  width: 2.2rem; border: 1px solid transparent; border-radius: 3px;
  background: none; color: inherit; font: inherit; font-size: 0.66rem;
  padding: 0 0.1rem; text-align: center;
  -moz-appearance: textfield; appearance: textfield;
}
.axis-chip-reps-box::-webkit-outer-spin-button,
.axis-chip-reps-box::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.axis-chip-reps-box:hover { border-color: var(--border); }
.axis-chip-reps-box:focus { border-color: currentColor; outline: none; }
.axis-chip-qc + .axis-chip-reps {
  border-left: 1px solid var(--border); margin-left: 0.1rem; padding-left: 0.3rem;
}
.axis-chip-reps + .axis-chip-x { margin-left: 0.15rem; }
.axis-chip-reps + .axis-chip-summary {
  border-width: 0 0 0 1px; border-style: solid; border-color: var(--border); border-radius: 0;
  margin-left: 0.1rem; padding-left: 0.3rem;
}
.axis-chip-summary + .axis-chip-x { margin-left: 0.15rem; }
.axis-input {
  width: 100%; border: 0; background: none; color: var(--ink);
  font: inherit; font-size: 0.82rem; padding: 0.2rem 0.25rem; outline: none;
}
.axis-input::placeholder { color: var(--muted-2); }
.axis-suggestions {
  position: absolute; left: 0; right: 0; top: 100%; z-index: 30;
  margin: 0.3rem 0 0; padding: 0; list-style: none;
  border: 1px solid var(--border); border-radius: 7px;
  background: var(--card-hover); overflow: hidden;
  box-shadow: 0 12px 30px rgba(0,0,0,0.5);
  max-height: 18rem; overflow-y: auto;
}
.axis-sugg-head {
  font-size: 0.62rem; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--muted-2); padding: 0.4rem 0.6rem 0.25rem; background: rgba(0,0,0,0.15);
}
.axis-sugg {
  display: flex; align-items: center; gap: 0.5rem;
  padding: 0.32rem 0.6rem; font-size: 0.8rem; color: var(--ink); cursor: pointer;
}
.axis-sugg:hover, .axis-sugg.on { background: rgba(94,234,212,0.12); }
.axis-sugg-sub { margin-left: auto; font-size: 0.7rem; color: var(--muted-2); }
.axis-sugg-more { padding: 0.3rem 0.6rem 0.45rem; font-size: 0.7rem; color: var(--muted-2); }
.axis-icon { flex: 0 0 auto; }
.axis-icon-strain { color: var(--assay-parent); }
.axis-icon-compound { color: var(--compound); }
.axis-icon-group path { stroke-dasharray: 2.5 1.8; }
.axis-count { margin-top: 0.4rem; }
.axis-paste-note {
  margin-top: 0.5rem;
  padding: 0.5rem 0.65rem;
  border-left: 3px solid var(--warn);
  background: rgba(251, 191, 36, 0.08);
  border-radius: 0 4px 4px 0;
  font-size: 0.8rem;
  line-height: 1.45;
  color: var(--ink);
  overflow-wrap: anywhere;
}
.unit-picker { position: relative; }
.unit-box { position: relative; }
.unit-box input { width: 100%; max-width: 100%; box-sizing: border-box; }
.unit-suggestions {
  position: absolute; z-index: 30; left: 0; right: 0; top: 100%;
  margin: 0.25rem 0 0; padding: 0.25rem 0; list-style: none;
  max-height: 17rem; overflow-y: auto;
  min-width: 17rem; max-width: calc(100vw - 3rem);
  background: var(--bg-2); border: 1px solid var(--border); border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.4);
}
.unit-group {
  font-size: 0.62rem; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--muted-2); padding: 0.45rem 0.7rem 0.2rem;
}
.unit-option {
  display: flex; align-items: baseline; gap: 0.5rem;
  padding: 0.32rem 0.7rem; font-size: 0.85rem; cursor: pointer;
}
.unit-option:hover, .unit-option.is-active { background: var(--card-hover); }
.unit-option.is-active { box-shadow: inset 2px 0 0 var(--accent); }
.unit-symbol { font-family: ui-monospace, "SF Mono", Consolas, monospace; color: var(--ink); }
.unit-option.is-active .unit-symbol { color: var(--accent); }
.unit-name { color: var(--muted-2); font-size: 0.76rem; }
.unit-used { margin-left: auto; color: var(--muted-2); font-size: 0.68rem; white-space: nowrap; }
.unit-note { font-size: 0.75rem; line-height: 1.45; margin-top: 0.35rem; }
.unit-note-ok { color: var(--accent); }
.unit-note-warn { color: var(--warn); }
.proposal-note {
  display: block; margin-top: 0.45rem; font-size: 0.78rem; line-height: 1.45;
  color: var(--warn);
}
.proposal-note-fix { margin-top: 0.3rem; display: inline-block; font-size: 0.78rem; }
input[type="search"] {
  -webkit-appearance: none;
  appearance: none;
}
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button {
  -webkit-appearance: none;
  appearance: none;
}
.waiting-panel { border-left: 3px solid var(--warn); }
.waiting-people { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.waiting-person {
  display: inline-block;
  border: 1px solid rgba(251,191,36,0.45);
  background: rgba(251,191,36,0.1);
  color: var(--warn);
  border-radius: 999px;
  padding: 0.1rem 0.55rem;
  font-size: 0.82rem;
}
.waiting-nobody { color: var(--danger); font-weight: 600; }
.entity-link-group { flex: 1 1 100%; margin: 0.15rem 0; }
.entity-link-group > summary {
  cursor: pointer;
  font-size: 0.78rem;
  color: var(--muted);
  list-style: none;
}
.entity-link-group > summary::-webkit-details-marker { display: none; }
.entity-link-group > summary::before {
  content: "\25B8";
  display: inline-block;
  width: 0.9em;
  color: var(--muted-2);
  transition: transform 0.12s ease;
}
.entity-link-group[open] > summary::before { transform: rotate(90deg); }
.entity-link-group > summary:hover { color: var(--ink); }
.entity-link-count { color: var(--accent); font-weight: 650; }
.entity-link-group-review .entity-link-count { color: var(--warn); }
.entity-link-list,
.entity-link-group .entity-link-choices {
  max-height: 11rem;
  overflow-y: auto;
  margin-top: 0.4rem;
  padding-left: 0.9rem;
}
.entity-link-list { display: flex; flex-wrap: wrap; gap: 0.3rem 0.8rem; }
.entity-link-item { font-size: 0.78rem; color: var(--muted); }
.entity-link-item-strain { color: var(--assay-parent); }
.entity-link-item-compound { color: var(--compound); }
.entity-link-sub { color: var(--muted-2); font-size: 0.72rem; font-style: italic; }
.findings-list { display: flex; flex-direction: column; gap: 0.5rem; }
.finding-card {
  border: 1px solid var(--border); border-left-width: 3px;
  border-radius: 9px; background: var(--card); padding: 0.65rem 0.8rem;
}
.finding-standing { border-left-color: var(--accent); }
.finding-derived { border-left-color: var(--assay-parent); }
.finding-pinned { border-left-color: var(--compound); }
.finding-stale { border-left-color: var(--warn); background: rgba(251,191,36,0.04); }
.finding-head { display: flex; align-items: baseline; gap: 0.45rem; flex-wrap: wrap; }
.finding-title { font-size: 0.9rem; color: var(--ink); font-weight: 600; }
.finding-tag {
  border-radius: 999px; padding: 0.02rem 0.42rem; font-size: 0.62rem;
  letter-spacing: 0.07em; text-transform: uppercase;
  border: 1px solid var(--border); color: var(--muted-2);
}
.finding-tag-standing { border-color: rgba(94,234,212,0.45); color: var(--accent); }
.finding-tag-derived { border-color: rgba(167,139,250,0.45); color: var(--assay-parent); }
.finding-tag-pinned { border-color: rgba(96,165,250,0.45); color: var(--compound); }
.finding-tag-stale { border-color: rgba(251,191,36,0.5); color: var(--warn); }
.finding-tag-ai { border-color: rgba(167,139,250,0.55); color: var(--assay-parent); }
.ai-mark {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.6rem;
  margin: 0.35rem 0; font-size: 0.73rem; color: var(--muted);
}
.ai-mark-pending .ai-mark-state { color: var(--warn); }
.ai-mark-line { flex-basis: 100%; color: var(--muted-2); overflow-wrap: anywhere; }
.viz-card .ai-mark { padding: 0 0.75rem; }
.sign-ai-pending { color: var(--warn); font-size: 0.8rem; margin: 0.5rem 0; }
.finding-meta { font-size: 0.73rem; color: var(--muted-2); margin-top: 0.3rem; }
.finding-source { font-family: ui-monospace, "SF Mono", Consolas, monospace; }
.finding-value {
  font-family: ui-monospace, "SF Mono", Consolas, monospace;
  font-size: 1.05rem; color: var(--accent); margin-top: 0.35rem;
}
.finding-error { font-size: 0.78rem; color: var(--warn); margin-top: 0.3rem; }
.finding-note { font-size: 0.75rem; color: var(--warn); margin-top: 0.4rem; }
.finding-table-wrap { max-height: 13rem; overflow-y: auto; margin-top: 0.4rem; }
.finding-table { width: 100%; border-collapse: collapse; font-size: 0.8rem; }
.finding-table th, .finding-table td {
  text-align: left; padding: 0.25rem 0.7rem 0.25rem 0; border-bottom: 1px solid var(--border);
}
.finding-table th {
  font-size: 0.63rem; letter-spacing: 0.1em;
  color: var(--muted-2); font-weight: 500;
  text-transform: none;
}
.finding-table tr:last-child td { border-bottom: 0; }
.finding-table td { font-variant-numeric: tabular-nums; color: var(--ink); }
.standing-row {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem;
  padding: 0.4rem 0; border-bottom: 1px solid var(--border);
}
.standing-row:last-of-type { border-bottom: 0; }
.standing-row select, .standing-row input {
  background: var(--bg-2); border: 1px solid var(--border); border-radius: 6px;
  color: var(--ink); font-family: inherit; font-size: 0.8rem; padding: 0.28rem 0.4rem;
  min-width: 0;
}
.standing-row .standing-aggregation { flex: 1 1 9rem; }
.standing-row .standing-across { flex: 1 1 10rem; }
.standing-row .standing-replicates { flex: 1 1 11rem; }
.standing-row .standing-replicates-why { flex: 1 1 100%; margin: 0; }
.standing-row .standing-threshold,
.standing-row .standing-percentile { flex: 0 1 5.5rem; }
.standing-row .standing-label { flex: 1 1 100%; }
.standing-row .standing-expression {
  flex: 1 1 9rem;
  font-family: ui-monospace, "SF Mono", Consolas, monospace;
}
.standing-swap {
  background: none; border: 0; color: var(--muted-2);
  cursor: pointer; font-family: inherit; font-size: 0.74rem;
  padding: 0.2rem 0.3rem; text-decoration: underline dotted;
}
.standing-swap:hover { color: var(--accent); }
.standing-label-text { font-size: 0.72rem; color: var(--muted-2); }
.template-version {
  font-size: 0.72rem;
  font-variant-numeric: tabular-nums;
  color: var(--muted);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 0.05rem 0.4rem;
  margin-left: 0.3rem;
  white-space: nowrap;
}
.template-version-none { color: var(--muted-2); font-style: italic; }
.builder-check { display: flex; align-items: flex-start; gap: 0.45rem; font-size: 0.85rem; cursor: pointer; }
.builder-check input { margin-top: 0.15rem; }
.standing-remove {
  background: none; border: 0; color: var(--muted-2); cursor: pointer;
  font-size: 1rem; line-height: 1; padding: 0 0.2rem;
}
.standing-remove:hover { color: var(--danger); }
#standing-findings-add { margin-top: 0.5rem; }
table.data-table tfoot tr td:not(.dt-nothing) {
  position: sticky;
  bottom: 0;
  z-index: 5;
  height: var(--dt-finding-h);
  background-color: var(--card);
  background-image: linear-gradient(rgba(94,234,212,0.07), rgba(94,234,212,0.07));
  color: var(--accent);
  font-size: 0.72rem;
  font-variant-numeric: tabular-nums;
  border-bottom: 0;
}
table.data-table tfoot tr:first-child td { border-top: 2px solid var(--accent-dim); }
table.data-table tfoot tr:nth-last-child(2) td { bottom: var(--dt-finding-h); }
table.data-table tfoot tr:nth-last-child(3) td { bottom: calc(var(--dt-finding-h) * 2); }
table.data-table tfoot tr:nth-last-child(4) td { bottom: calc(var(--dt-finding-h) * 3); }
table.data-table tfoot tr:nth-last-child(5) td { bottom: calc(var(--dt-finding-h) * 4); }
table.data-table tfoot tr:nth-last-child(6) td { bottom: calc(var(--dt-finding-h) * 5); }
table.data-table tfoot tr:nth-last-child(n+7) td { position: static; }
table.data-table td.dt-finding-label {
  text-align: left;
  font-weight: 500;
  white-space: normal;
  overflow-wrap: anywhere;
  max-width: 0;
}
table.data-table td.dt-finding-label-host {
  text-align: left; font-weight: 500; white-space: normal; overflow-wrap: anywhere;
}
table.data-table td.dt-finding-label-host .dt-finding-label-moved { color: var(--accent); }
table.data-table td.dt-finding-cell { text-align: right; }
table.data-table td.dt-finding-cell[colspan] { text-align: left; }
table.data-table th.dt-finding-col,
table.data-table tr td.dt-finding-col:not(.dt-nothing) {
  position: sticky;
  right: 0;
  z-index: 3;
  background-color: var(--card);
  background-image: linear-gradient(rgba(94,234,212,0.07), rgba(94,234,212,0.07));
  border-left: 2px solid var(--accent-dim);
  color: var(--accent);
  text-align: right;
  font-variant-numeric: tabular-nums;
}
table.data-table th.dt-finding-col { text-transform: none; letter-spacing: 0; }
.entity-column-tag-sole {
  border: 0;
  padding: 0;
  background: none;
  font-size: inherit;
  letter-spacing: inherit;
  color: var(--accent);
}
table.data-table thead th.dt-finding-col { z-index: 6; background-color: var(--bg-2); }
table.data-table td.dt-finding-gutter {
  background-image: linear-gradient(rgba(94,234,212,0.07), rgba(94,234,212,0.07));
}
table.data-table tfoot tr td.dt-finding-col:not(.dt-nothing) { z-index: 7; }
table.data-table .dt-finding-stale { color: var(--warn); }
table.data-table .dt-finding-stale::after { content: " *"; }
.finding-ref {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  padding: 0.55rem 0.9rem;
  background: var(--card);
  border: 1px solid var(--border);
  border-left: 3px solid var(--accent-dim);
  border-radius: 0 6px 6px 0;
  margin-bottom: 0.5rem;
  font-size: 0.86rem;
}
.finding-ref { display: block; padding: 0; }
.finding-ref-head {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  padding: 0.55rem 0.9rem;
  cursor: pointer;
  list-style: none;
}
.finding-ref-head::-webkit-details-marker { display: none; }
.finding-ref-head::before {
  content: "\25B8";
  color: var(--muted-2);
  font-size: 0.7rem;
  transition: transform 0.12s ease;
}
.finding-ref[open] > .finding-ref-head::before { transform: rotate(90deg); }
.finding-ref-body { padding: 0 0.9rem 0.85rem 1.9rem; }
.finding-ref-title { font-weight: 500; }
.finding-ref-link { margin-left: auto; color: var(--muted); font-size: 0.8rem; }
.finding-ref-link:hover { color: var(--accent); }
.finding-missing { color: var(--warn); font-size: 0.78rem; margin: 0.4rem 0 0; }
.finding-copy {
  background: none;
  border: 1px solid var(--border);
  border-radius: 4px;
  color: var(--muted);
  cursor: pointer;
  font-family: inherit;
  font-size: 0.75rem;
  padding: 0.2rem 0.6rem;
  margin-top: 0.5rem;
}
.finding-copy:hover { color: var(--accent); border-color: var(--accent-dim); }
@media (prefers-reduced-motion: reduce) {
  .finding-ref-head::before { transition: none; }
}
table.data-table tfoot tr.dt-finding-add-row td.dt-finding-add-cell {
  position: static;
  background-color: transparent;
  background-image: none;
  border-top: 1px dashed var(--border);
  border-bottom: 0;
  color: var(--muted-2);
  font-size: 0.72rem;
  cursor: pointer;
  height: var(--dt-finding-h);
}
table.data-table tfoot tr.dt-finding-add-row:hover td.dt-finding-add-cell {
  background-image: linear-gradient(rgba(94,234,212,0.05), rgba(94,234,212,0.05));
  border-top-color: var(--accent-dim);
}
table.data-table tfoot tr.dt-finding-add-row td.dt-finding-add-cell:hover {
  color: var(--accent);
}
table.data-table tfoot tr.dt-finding-add-row td.dt-finding-add-label {
  text-align: left;
  white-space: nowrap;
}
.finding-add-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin-bottom: 0.75rem;
}
.finding-add-text { color: var(--muted); font-size: 0.85rem; }
.finding-add-select, .finding-add-input {
  background: var(--bg-2);
  border: 1px solid var(--border);
  color: var(--ink);
  border-radius: 4px;
  padding: 0.35rem 0.6rem;
  font-size: 0.85rem;
  font-family: inherit;
}
.finding-add-input { max-width: 9rem; }
.finding-add-label { flex: 1 1 10rem; max-width: none; }
.finding-add-help { color: var(--muted); font-size: 0.8rem; margin: 0.5rem 0 0; }
.finding-ask { display: flex; gap: 0.5rem; margin-bottom: 0.6rem; }
.finding-ask-input { flex: 1 1 auto; max-width: none; }
.finding-ask-note {
  color: var(--muted);
  font-size: 0.82rem;
  margin: 0 0 0.6rem;
  font-style: italic;
}
.finding-ask-question {
  color: var(--warn);
  font-size: 0.85rem;
  margin: 0 0 0.6rem;
  line-height: 1.45;
}
.finding-spec-row { align-items: center; }
.finding-add-expression {
  flex: 1 1 12rem;
  max-width: none;
  font-family: ui-monospace, "SF Mono", Consolas, monospace;
}
.finding-add-swap {
  background: none; border: 0; color: var(--muted-2);
  cursor: pointer; font-family: inherit; font-size: 0.74rem;
  padding: 0.2rem 0.3rem; text-decoration: underline dotted;
}
.finding-add-swap:hover { color: var(--accent); }
.finding-add-only-chip {
  font-size: 0.72rem;
  color: var(--accent);
  border: 1px solid var(--accent-dim);
  border-radius: 999px;
  padding: 0.1rem 0.5rem;
}
.finding-add-remove {
  background: none;
  border: 0;
  color: var(--muted-2);
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
  padding: 0.2rem 0.3rem;
  margin-left: auto;
}
.finding-add-remove:hover { color: var(--danger); }
.finding-add-another {
  background: none;
  border: 0;
  color: var(--muted);
  cursor: pointer;
  font-size: 0.8rem;
  padding: 0.2rem 0;
}
.finding-add-another:hover { color: var(--accent); }
.finding-add-error { color: var(--danger); font-size: 0.85rem; margin: 0.6rem 0 0; }
.builder-ghost td {
  background-image: repeating-linear-gradient(
    45deg,
    rgba(94,234,212,0.05) 0 6px,
    rgba(94,234,212,0.11) 6px 12px
  );
  border-top: 2px dashed var(--accent-dim);
  color: var(--accent);
}
.preview-table th.preview-summary-col,
.preview-table td.preview-summary-col,
.builder-summary-col {
  background-image: linear-gradient(rgba(94,234,212,0.07), rgba(94,234,212,0.07));
  border-left: 2px solid var(--accent-dim);
  color: var(--accent);
  text-transform: none;
  letter-spacing: 0;
}
.builder-ghost-col {
  background-image: repeating-linear-gradient(
    45deg,
    rgba(94,234,212,0.05) 0 6px,
    rgba(94,234,212,0.11) 6px 12px
  );
  border-left: 2px dashed var(--accent-dim);
  color: var(--accent);
}
.sg-picker-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-top: 1.25rem;
}
.sg-count { color: var(--muted-2); font-size: 0.78rem; }
.sg-count-on { color: var(--accent); }
.sg-check { margin: 0.5rem 0; overflow-wrap: anywhere; }
.sg-check p { margin: 0.25rem 0; }
.sg-check:empty { margin: 0; }
.sg-filter {
  width: 100%;
  max-width: 22rem;
  margin: 0.4rem 0 0.6rem;
}
.sg-list {
  max-height: 24rem;
  overflow-y: auto;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--bg-2);
}
.sg-item {
  display: flex;
  align-items: baseline;
  gap: 0.6rem;
  padding: 0.4rem 0.75rem;
  cursor: pointer;
  border-bottom: 1px solid rgba(30, 54, 52, 0.5);
  font-size: 0.86rem;
}
.sg-item:last-child { border-bottom: 0; }
.sg-item:hover { background: var(--card-hover); }
.sg-id { font-family: ui-monospace, "SF Mono", Consolas, monospace; color: var(--ink); }
.sg-species { color: var(--muted); font-style: italic; }
.form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-top: 1.25rem;
}
.tip-bubble {
  position: fixed;
  z-index: 300;
  max-width: 22rem;
  background: var(--card);
  color: var(--ink);
  border: 1px solid var(--accent-dim);
  border-radius: 6px;
  padding: 0.5rem 0.65rem;
  font-size: 0.78rem;
  line-height: 1.45;
  box-shadow: 0 10px 30px rgba(0,0,0,0.45);
  pointer-events: none;
}
.tip-bubble[hidden] { display: none; }
.record-card {
  position: fixed;
  z-index: 300;
  width: max-content;
  max-width: min(20rem, calc(100vw - 16px));
  box-sizing: border-box;
  overflow-y: auto;
  background: var(--card);
  color: var(--ink);
  border: 1px solid var(--accent-dim);
  border-radius: 6px;
  padding: 0.6rem 0.75rem;
  font-size: 0.8rem;
  line-height: 1.45;
  text-align: left;
  white-space: normal;
  box-shadow: 0 10px 30px rgba(0,0,0,0.45);
}
.record-card[hidden] { display: none; }
.record-card-head { display: flex; gap: 0.5rem; align-items: baseline; justify-content: space-between; }
.record-card-kind { color: var(--muted); font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.06em; }
.record-card-status { color: var(--warn); font-size: 0.72rem; }
.record-card-title { margin: 0.1rem 0 0; font-weight: 600; font-size: 0.92rem; overflow-wrap: anywhere; }
.record-card-subtitle { margin: 0; color: var(--muted); font-style: italic; overflow-wrap: anywhere; }
.record-card-note { margin: 0; color: var(--muted); }
.record-card-figure {
  margin: 0.45rem 0 0;
  padding: 0.25rem;
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: 4px;
  text-align: center;
}
.record-card-figure img { display: block; max-width: 100%; max-height: 9rem; margin: 0 auto; }
.record-card-facts {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.15rem 0.7rem;
  margin: 0.45rem 0 0;
}
.record-card-facts dt { color: var(--muted); }
.record-card-facts dd { margin: 0; overflow-wrap: anywhere; }
.record-card-chips { display: flex; flex-wrap: wrap; gap: 0.25rem; margin-top: 0.45rem; }
.record-card-chip {
  padding: 0.05rem 0.4rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  font-size: 0.72rem;
}
.record-card-foot { margin-top: 0.5rem; padding-top: 0.4rem; border-top: 1px solid var(--border); }
.record-card-open { color: var(--accent); }
[data-tip] {
  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-decoration-color: var(--muted-2);
  text-underline-offset: 0.22em;
  cursor: help;
}
[data-tip]:focus-visible {
  outline: 1px solid var(--accent-dim);
  outline-offset: 2px;
}
.builder-example {
  margin-top: 0.9rem;
  padding: 0.7rem 0.8rem 0.6rem;
  border: 1px dashed var(--border);
  border-radius: 8px;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "col col"
    "row table"
    "cell cell";
  column-gap: 0.6rem;
  row-gap: 0.35rem;
  align-items: center;
  font-size: 0.8rem;
  color: var(--muted);
}
.builder-example-caption-col { grid-area: col; }
.builder-example-caption-row { grid-area: row; writing-mode: vertical-rl; transform: rotate(180deg); justify-self: center; }
.builder-example-caption-cell { grid-area: cell; }
.builder-example-table { grid-area: table; border-collapse: collapse; font-size: 0.82rem; justify-self: start; }
.builder-example-table th, .builder-example-table td {
  border: 1px solid var(--border);
  padding: 0.3rem 0.55rem;
  text-align: left;
  color: var(--ink);
  font-weight: 500;
  white-space: nowrap;
}
.builder-example-table thead th { color: var(--compound); }
.builder-example-table tbody th { color: var(--muted); font-weight: 400; }
.builder-example-table td { background: var(--card-hover); font-variant-numeric: tabular-nums; }
.builder-example-corner { border-color: transparent !important; background: none; }
.builder-example-tag {
  display: inline-block;
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
  margin-right: 0.25rem;
}
.view-switch { display: inline-flex; border: 1px solid var(--border); border-radius: 6px; overflow: hidden; flex-shrink: 0; }
.view-switch-btn {
  display: inline-flex; align-items: center; gap: 0.35rem;
  padding: 0.3rem 0.6rem;
  background: none; border: none; color: var(--muted);
  font: inherit; font-size: 0.78rem; cursor: pointer;
}
.view-switch-btn + .view-switch-btn { border-left: 1px solid var(--border); }
.view-switch-btn:hover { color: var(--ink); }
.view-switch-btn[aria-pressed="true"] { color: var(--accent); background: rgba(94,234,212,0.10); }
.view-switch-btn:focus-visible { outline: 2px solid var(--accent-dim); outline-offset: -2px; }
.card-grid.as-list { display: flex; flex-direction: column; gap: 0.3rem; }
.card-grid.as-list > .card {
  display: flex; align-items: center; flex-wrap: wrap;
  gap: 0.35rem 1rem;
  padding: 0.55rem 3rem 0.55rem 2.6rem;
  border-radius: 8px;
}
.card-grid.as-list > a.card:hover { transform: none; }
.card-grid.as-list > .card .card-top,
.card-grid.as-list > .card .card-top > div { display: contents; }
.card-grid.as-list > .card .card-title { flex: 1 1 16rem; margin: 0; font-size: 0.95rem; }
.card-grid.as-list > .card .card-meta { margin: 0; flex: 0 1 auto; }
.card-grid.as-list > .card .card-tags { display: contents; }
.card-grid.as-list > .card .assignee { margin: 0; }
.card-grid.as-list > .card .card-updated { margin: 0 0 0 auto; font-size: 0.76rem; color: var(--muted); white-space: nowrap; }
.card-grid.as-list > .card .progress-ring { width: 22px; height: 22px; }
.card-grid.as-list > .folder-card { display: block; }
.card-grid.as-list > .folder-card[open] .folder-card-summary { margin-bottom: 0.5rem; }
@media (max-width: 640px) {
  .view-switch-btn span { display: none; }
  .card-grid.as-list > .card .card-updated { margin-left: 0; flex-basis: 100%; }
}
.strain-table-head,
.strain-list-only { display: none; }
.strain-table.as-list {
  --strain-columns: minmax(10rem, 1.3fr) minmax(7rem, 1fr) minmax(10rem, 2fr) minmax(8rem, 1.4fr) 4.5rem;
  gap: 0;
}
.strain-table.as-list > .strain-table-head,
.strain-table.as-list > .card {
  display: grid; grid-template-columns: var(--strain-columns);
  align-items: center; column-gap: 1rem;
  padding: 0.28rem 3rem 0.28rem 2.6rem;
}
.strain-table.as-list > .strain-table-head {
  position: sticky; top: 0; z-index: 2;
  background: var(--bg, var(--panel));
  border-bottom: 1px solid var(--border);
  font-size: 0.74rem; text-transform: uppercase; letter-spacing: 0.04em;
}
.strain-sort { color: var(--muted); text-decoration: none; white-space: nowrap; }
.strain-sort:hover, .strain-sort-on { color: var(--ink); }
.strain-sort-assays, .strain-table.as-list > .card .strain-cell-assays { text-align: right; }
.strain-table.as-list > .card {
  border-radius: 0; border-width: 0 0 1px; min-height: 0;
  font-size: 0.86rem;
}
.strain-table.as-list > .card > * { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.strain-table.as-list > .card .card-title { font-size: 0.88rem; }
.strain-table.as-list > .card .card-meta { margin: 0 !important; }
.strain-table.as-list > .card .strain-list-only { display: block; }
.strain-table.as-list > .card .strain-cell-tags .tag-chip { padding-top: 0; padding-bottom: 0; }
.strain-table.as-list > .card .strain-cell-groups { color: var(--ink); }
.strain-table.as-list > .card .follow-btn { top: 50%; right: 0.5rem; transform: translateY(-50%); width: 24px; height: 24px; }
.strain-cell-none { color: var(--muted); }
@media (max-width: 1099px) {
  .strain-table.as-list > .strain-table-head { display: none; }
  .strain-table.as-list > .card { grid-template-columns: 1fr; row-gap: 0.15rem; padding-top: 0.45rem; padding-bottom: 0.45rem; }
  .strain-table.as-list > .card > * { white-space: normal; }
  .strain-table.as-list > .card .strain-list-only { display: none; }
}
.dt-sort-menu { min-width: 14rem; }
.dt-context-item-on { color: var(--accent); }
.dt-context-item-on::before { content: "✓ "; }
.dt-context-hint {
  padding: 0.35rem 0.7rem 0.45rem;
  font-size: 0.72rem;
  line-height: 1.35;
  color: var(--muted);
  border-top: 1px solid var(--border);
  margin-top: 0.25rem;
}
.library-scope { display: flex; gap: 0.4rem; flex-wrap: wrap; margin: 0.9rem 0 0.8rem; }
.library-scope-chip {
  display: inline-flex; align-items: center; gap: 0.35rem;
  padding: 0.28rem 0.7rem;
  border: 1px solid var(--border); border-radius: 999px;
  font-size: 0.8rem; color: var(--muted);
}
.library-scope-chip:hover { color: var(--ink); text-decoration: none; border-color: var(--accent-dim); }
.library-scope-chip.is-current { color: var(--accent); border-color: var(--accent-dim); background: rgba(94,234,212,0.10); }
.library-upload-shelf { border: none; padding: 0; margin: 0 0 0.7rem; display: flex; gap: 0.5rem 1.4rem; flex-wrap: wrap; font-size: 0.84rem; color: var(--ink); }
.library-upload-shelf legend { padding: 0; margin-bottom: 0.35rem; font-weight: 600; font-size: 0.84rem; color: var(--ink); width: 100%; }
.library-shelf-option { display: inline-flex; align-items: flex-start; gap: 0.4rem; cursor: pointer; max-width: 30rem; line-height: 1.4; }
.library-shelf-option input { margin-top: 0.2rem; }
.library-shelf-option span { color: var(--muted); }
.library-shelf-option strong { color: var(--ink); font-weight: 600; }
.library-shelf-option input:checked + span strong { color: var(--accent); }
.library-dropzone-shelf { font-weight: 600; }
.library-dropzone-shared .library-dropzone-shelf { color: var(--accent); }
.shelf-badge {
  display: inline-block; padding: 0.1rem 0.5rem; border-radius: 4px;
  font-size: 0.72rem; letter-spacing: 0.02em; white-space: nowrap;
}
.shelf-badge-mine { color: var(--muted); border: 1px solid var(--border); }
.shelf-badge-shared { color: var(--accent); background: rgba(94,234,212,0.12); }
.library-version-link { display: inline-block; margin-left: 0.4rem; font-size: 0.78rem; }
.library-replace input[type="file"] { max-width: 100%; font-size: 0.8rem; }
.library-removed-note { color: var(--muted); font-size: 0.85rem; }
.library-versions { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.75rem; }
.library-version { border: 1px solid var(--border); border-radius: 8px; padding: 0.75rem 1rem; overflow-wrap: anywhere; }
.library-version.is-current { border-color: var(--accent-dim); }
.library-version-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5rem; }
.library-version-number { font-weight: 600; }
.library-version-reason { margin: 0.35rem 0 0; }
.library-version .file-retire { margin-top: 0.5rem; }
.library-pending-version { border: 1px solid var(--warn); border-radius: 8px; padding: 0.75rem 1rem; margin-bottom: 1rem; overflow-wrap: anywhere; }
.library-pending-form { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-bottom: 0.4rem; }
.library-pending-form input[type="text"] { flex: 1 1 12rem; min-width: 0; }
.library-fold select { max-width: 100%; }
.batch-steps { font-size: 0.85rem; color: var(--muted); }
.batch-steps strong { color: var(--ink); font-weight: 600; }
.batch-file-card { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding: 0.9rem 1.25rem; margin: 1rem 0 0.9rem; }
.batch-map td, .batch-collisions td { vertical-align: top; }
.batch-map-select { background: var(--bg); border: 1px solid var(--border); border-radius: 8px; padding: 0.4rem 0.6rem; color: var(--ink); font-size: 0.88rem; min-width: 14rem; }
.badge-create { color: var(--accent); border-color: var(--accent-dim); background: rgba(94,234,212,0.12); }
.badge-update { color: var(--warn); border-color: var(--warn); }
.badge-warn { color: var(--warn); border-color: var(--warn); }
.batch-examples { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 0.9rem; margin: 1rem 0; }
.batch-example { display: flex; flex-direction: column; gap: 0.35rem; }
.batch-example .k { color: var(--muted); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.06em; }
.batch-source-list { display: grid; grid-template-columns: auto 1fr; gap: 0.15rem 0.7rem; margin: 0.4rem 0 0; padding-top: 0.5rem; border-top: 1px dashed var(--border); font-size: 0.78rem; }
.batch-source-list dt { color: var(--muted); }
.batch-source-list dd { margin: 0; }
.batch-preview-grid { display: grid; grid-template-columns: minmax(0, 1fr) 22rem; gap: 1rem; align-items: start; }
.batch-summary dl { display: grid; grid-template-columns: auto 1fr; gap: 0.35rem 0.7rem; margin: 0.6rem 0; font-size: 0.9rem; }
.batch-summary dt { font-weight: 600; text-align: right; }
.batch-summary dd { margin: 0; }
.batch-collisions label { margin-right: 0.8rem; font-size: 0.85rem; }
.batch-rows td { vertical-align: top; font-size: 0.86rem; }
.batch-row-edited td { background: rgba(251,191,36,0.06); }
.batch-was { font-size: 0.74rem; color: var(--warn); }
.batch-source summary { cursor: pointer; }
.batch-source dl { display: grid; grid-template-columns: auto 1fr; gap: 0.1rem 0.6rem; margin: 0.3rem 0 0; font-size: 0.76rem; }
.batch-source dd { margin: 0; }
@media (max-width: 860px) { .batch-preview-grid { grid-template-columns: minmax(0, 1fr); } }
.assistant-prompt-chips { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.assistant-prompt-chip {
  background: none; border: 1px solid var(--border); border-radius: 999px;
  padding: 0.3rem 0.65rem; font: inherit; font-size: 0.78rem; color: var(--muted); cursor: pointer;
  text-align: left;
}
.assistant-prompt-chip:hover { color: var(--accent); border-color: var(--accent-dim); }
.mfa-lead { color: var(--ink); margin: 0.6rem 0; }
.mfa-form { display: flex; flex-direction: column; gap: 0.75rem; margin: 0.5rem 0; }
.mfa-code-input {
  font-size: 1.6rem;
  letter-spacing: 0.4em;
  text-align: center;
  padding: 0.6rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg);
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.mfa-code-input:focus { outline: 2px solid var(--accent); outline-offset: 1px; }
.mfa-hint { color: var(--muted); font-size: 0.85rem; margin: 0.5rem 0; }
.mfa-signout { margin-top: 1rem; text-align: center; }
.mfa-steps { margin: 0.5rem 0; padding-left: 1.2rem; color: var(--ink); }
.mfa-qr {
  display: flex;
  justify-content: center;
  padding: 1rem;
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: 10px;
  margin: 0.5rem auto;
  max-width: 220px;
}
.mfa-qr svg { width: 180px; height: 180px; }
.mfa-secret { text-align: center; }
.mfa-secret code {
  font-size: 0.95rem;
  letter-spacing: 0.12em;
  word-break: break-all;
  background: var(--card);
  padding: 0.3rem 0.5rem;
  border-radius: 6px;
}
.mfa-enroll-card { max-width: 420px; }
.linklike {
  background: none;
  border: none;
  color: var(--accent);
  cursor: pointer;
  padding: 0;
  font: inherit;
  text-decoration: underline;
}
.mfa-status-panel, .mfa-recovery-panel {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.5rem;
  max-width: 560px;
}
.mfa-status { font-size: 1.05rem; margin: 0 0 1rem; }
.mfa-status-on strong { color: var(--accent); }
.mfa-status-off strong { color: var(--warn); }
.mfa-actions { display: flex; flex-direction: column; gap: 1.25rem; }
.mfa-disable-form { display: flex; flex-direction: column; gap: 0.5rem; max-width: 320px; }
.mfa-disable-form input {
  padding: 0.5rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg);
  color: var(--ink);
}
.mfa-recovery-grid {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.5rem;
}
.mfa-recovery-grid code {
  font-size: 1.05rem;
  letter-spacing: 0.08em;
  background: var(--card);
  padding: 0.4rem 0.6rem;
  border-radius: 6px;
  display: block;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.filter-hidden { display: none !important; }
.filter-result-count {
  font-size: 0.8rem;
  color: var(--muted);
  align-self: center;
  margin-left: 0.5rem;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.filter-no-matches { margin-top: 0.5rem; }
.structure-panel {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 1.1rem 1.2rem;
  margin-bottom: 1rem;
}
.structure-figure {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.4rem 2rem;
}
.structure-depiction {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 200px;
  padding: 0.4rem;
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: 6px;
}
.structure-depiction svg { display: block; max-width: 100%; height: auto; }
.structure-depiction { max-width: 100%; min-width: min(200px, 100%); box-sizing: border-box; overflow-x: auto; }
.structure-facts {
  flex: 1 1 18rem;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.4rem 1rem;
  margin: 0;
  min-width: 0;
}
.structure-facts > div { display: contents; }
.structure-facts dt {
  color: var(--muted);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
  align-self: baseline;
}
.structure-facts dd {
  margin: 0;
  font-size: 0.85rem;
  min-width: 0;
  overflow-wrap: anywhere;
}
.structure-facts .mono,
.structure-history .mono {
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
  font-size: 0.8rem;
}
.structure-inchikey { color: var(--compound); letter-spacing: 0.01em; }
.structure-relatives {
  margin: 1rem 0 0;
  font-size: 0.82rem;
  color: var(--muted);
}
.structure-relatives a { color: var(--compound); }
.structure-provenance {
  margin: 0.75rem 0 0;
  font-size: 0.75rem;
  color: var(--muted-2);
  line-height: 1.5;
}
.structure-history { margin-top: 0.6rem; }
.structure-history summary {
  font-size: 0.78rem;
  color: var(--muted);
  cursor: pointer;
}
.structure-history ul { margin: 0.6rem 0 0; padding-left: 1.1rem; }
.structure-history li { margin-bottom: 0.5rem; font-size: 0.8rem; }
.structure-history .structure-provenance { margin-top: 0.15rem; }
.structure-empty { margin: 0; font-size: 0.88rem; color: var(--muted); }
textarea.structure-input {
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
  font-size: 0.82rem;
  white-space: pre;
  overflow-x: auto;
}
.structure-bar {
  display: flex;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
.structure-name-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-top: 0.5rem; }
.structure-name-row[hidden] { display: none; }
.structure-name-input { flex: 1 1 16rem; min-width: 0; }
.structure-name-note { flex-basis: 100%; margin: 0; font-size: 0.8rem; color: var(--muted); }
.structure-name-note:empty { display: none; }
.structure-preview {
  margin-top: 0.8rem;
  padding: 0.9rem 1rem;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.structure-preview .structure-figure { gap: 1rem 1.6rem; }
.structure-preview-error,
.structure-preview-warning {
  margin: 0.7rem 0 0;
  font-size: 0.82rem;
  line-height: 1.5;
}
.structure-preview-error { color: var(--danger); }
.structure-preview-error a { color: var(--danger); }
.structure-preview-warning { color: var(--warn); }
.structure-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem 1.5rem;
  background: rgba(4, 10, 10, 0.72);
}
.structure-modal[hidden] { display: none; }
body.structure-modal-open { overflow: hidden; }
.structure-modal-box {
  display: flex;
  flex-direction: column;
  width: min(1100px, 100%);
  height: min(760px, 100%);
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
}
.structure-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.8rem 1rem;
  border-bottom: 1px solid var(--border);
}
.structure-modal-actions { display: flex; gap: 0.5rem; }
#structure-editor-frame {
  flex: 1 1 auto;
  width: 100%;
  border: 0;
  background: #ffffff;
}
@media (max-width: 860px) {
  .structure-modal { padding: 0.75rem; }
  .structure-modal-box { height: 100%; }
  .structure-modal-head { flex-wrap: wrap; }
}
.structure-hits {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 0.9rem;
  margin-top: 0.9rem;
}
.structure-hit {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  padding: 0.8rem;
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--ink);
  text-decoration: none;
}
.structure-hit:hover { border-color: var(--accent-dim); background: var(--card-hover); }
.structure-hit-art {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 150px;
}
.structure-hit-art svg { display: block; max-width: 100%; height: auto; }
.structure-hit-body { display: flex; flex-direction: column; gap: 0.15rem; }
.structure-hit-body strong { font-size: 0.95rem; }
.structure-hit-meta { font-size: 0.78rem; color: var(--muted); }
.structure-hit-score {
  align-self: flex-start;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.72rem;
  color: var(--accent);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 0.05rem 0.45rem;
  margin-top: 0.15rem;
}
.sheet-first-look {
  display: inline-block;
  margin: 0 0 0.6rem;
  padding: 0.32rem 0.7rem;
  background: var(--bg);
  border: 1px solid var(--accent-dim, var(--border));
  border-radius: 999px;
  color: var(--ink);
  font-size: 0.76rem;
  font-family: inherit;
  cursor: pointer;
}
.sheet-first-look:hover { border-color: var(--accent); }
.sheet-first-look:disabled { color: var(--muted); cursor: default; }
.walkthrough-target {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
  border-radius: 6px;
  animation: walkthrough-pulse 1.4s ease-in-out 3;
  scroll-margin: 6rem;
}
@keyframes walkthrough-pulse {
  0%, 100% { outline-color: var(--accent); box-shadow: 0 0 0 0 rgba(94,234,212,0.45); }
  50% { outline-color: var(--accent-dim); box-shadow: 0 0 0 10px rgba(94,234,212,0); }
}
@media (prefers-reduced-motion: reduce) {
  .walkthrough-target { animation: none; }
}
.walkthrough-callout {
  position: fixed;
  z-index: 9500;
  width: 20rem;
  max-width: calc(100vw - 1.5rem);
  background: var(--card);
  border: 1px solid var(--accent);
  border-radius: 12px;
  padding: 0.8rem 0.95rem 0.9rem;
  box-shadow: 0 15px 40px rgba(0,0,0,0.5);
  color: var(--ink);
  font-size: 0.86rem;
}
.walkthrough-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.2rem; }
.walkthrough-progress { font-size: 0.7rem; font-weight: 700; color: var(--accent); text-transform: uppercase; letter-spacing: 0.04em; }
.walkthrough-close { background: none; border: none; color: var(--muted); font-size: 1.1rem; line-height: 1; cursor: pointer; padding: 0 0.15rem; }
.walkthrough-close:hover { color: var(--ink); }
.walkthrough-goal { font-size: 0.72rem; color: var(--muted); margin-bottom: 0.5rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.walkthrough-instruction { margin: 0 0 0.6rem; line-height: 1.45; }
.walkthrough-value { margin: -0.2rem 0 0.6rem; font-size: 0.8rem; }
.walkthrough-value-label { color: var(--muted); }
.walkthrough-value code { background: rgba(94,234,212,0.1); border: 1px solid rgba(94,234,212,0.3); border-radius: 4px; padding: 0.05rem 0.35rem; color: var(--accent); user-select: all; }
.walkthrough-plan { font-size: 0.72rem; color: var(--muted); margin-bottom: 0.65rem; line-height: 1.4; }
.walkthrough-plan-label { font-weight: 600; }
.walkthrough-actions { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.walkthrough-btn {
  background: var(--accent);
  color: #06231f;
  border: 1px solid var(--accent);
  border-radius: 999px;
  padding: 0.3rem 0.85rem;
  font-size: 0.76rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
}
.walkthrough-btn-quiet { background: none; color: var(--muted); border-color: var(--border); font-weight: 500; }
.walkthrough-btn-quiet:hover { color: var(--ink); }
.walkthrough-working { display: flex; align-items: center; gap: 0.5rem; color: var(--muted); margin-bottom: 0.6rem; }
.walkthrough-spinner {
  width: 0.85rem; height: 0.85rem; border-radius: 50%;
  border: 2px solid rgba(94,234,212,0.25); border-top-color: var(--accent);
  animation: walkthrough-spin 0.8s linear infinite;
}
@keyframes walkthrough-spin { to { transform: rotate(360deg); } }
.walkthrough-achieved { border-color: var(--accent); }
.walkthrough-blocked { border-color: #f59e0b; }
.walkthrough-blocked .walkthrough-progress { color: #f59e0b; }
.file-reading { display: inline-flex; align-items: center; gap: 0.4rem; margin-left: 0.4rem; vertical-align: middle; font-size: 0.72rem; color: var(--muted); }
.file-reading-bar { position: relative; width: 4.5rem; height: 0.35rem; border-radius: 999px; background: rgba(94,234,212,0.12); overflow: hidden; }
.file-reading-fill { position: absolute; inset: 0 auto 0 0; width: 0; background: var(--accent); border-radius: 999px; transition: width 0.6s ease-out; }
.file-reading-label { white-space: nowrap; font-variant-numeric: tabular-nums; }
.file-reading-done .file-reading-label { color: var(--accent); }
@media (prefers-reduced-motion: reduce) { .file-reading-fill { transition: none; } }
.chem-hero { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 1.4rem; align-items: start; margin-bottom: 1.4rem; }
@media (max-width: 960px) {
  .chem-hero { grid-template-columns: minmax(0, 1fr); }
  .chem-identity { order: -1; }
}
.chem-structure-card { margin-bottom: 0; display: flex; flex-direction: column; gap: 0.9rem; }
.chem-structure { width: 100%; box-sizing: border-box; }
.chem-structure-card .structure-facts { flex: none; align-content: start; }
.chem-structure svg { width: 100%; max-width: 30rem; }
.chem-structure svg.chem-hl-active path:not(.chem-hl) { opacity: 0.45; }
.chem-structure svg .chem-hl { stroke: var(--accent) !important; stroke-width: 4px !important; opacity: 1; }
.chem-structure svg path.chem-hl[class^="atom-"] { fill: var(--accent) !important; stroke-width: 0 !important; }
.chem-tools { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.chem-tool { font: inherit; font-size: 0.8rem; color: var(--ink); background: transparent; border: 1px solid var(--border); border-radius: 999px; padding: 0.42rem 0.85rem; min-height: 2.2rem; display: inline-flex; align-items: center; cursor: pointer; text-decoration: none; }
.chem-tool:hover { border-color: var(--accent-dim); color: var(--accent); }
.chem-identity { display: flex; flex-direction: column; gap: 0.7rem; min-width: 0; }
.chem-identity .detail-header { margin-bottom: 0; }
.chem-title { margin: 0 0 0.35rem; font-size: 2.2rem; letter-spacing: -0.01em; }
.chem-badges { display: flex; flex-wrap: wrap; gap: 0.45rem; align-items: center; }
.chem-subtitle { margin: 0; color: var(--muted); }
.chem-subtitle strong { color: var(--ink); font-weight: 600; }
.chem-formula { margin: 0; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.9rem; }
.chem-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.8rem; margin-top: 0.3rem; }
@media (max-width: 560px) { .chem-tiles { grid-template-columns: minmax(0, 1fr); } }
.chem-tile { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 0.9rem 1rem; display: flex; flex-direction: column; gap: 0.35rem; min-width: 0; }
.chem-tile-label { font-size: 0.7rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); display: flex; justify-content: space-between; gap: 0.5rem; }
.chem-kind { font-weight: 500; letter-spacing: 0.04em; color: var(--muted); opacity: 0.8; text-transform: lowercase; }
.chem-tile-value { font-size: 1.45rem; font-weight: 600; line-height: 1.2; }
.chem-unit { font-size: 0.85rem; font-weight: 500; color: var(--muted); }
.chem-tile-sub { font-size: 0.8rem; color: var(--muted); }
.chem-good { color: var(--accent); }
.chem-quiet { color: var(--muted); font-weight: 500; }
.chem-flags { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.chem-flag { font: inherit; font-size: 0.74rem; color: var(--ink); background: var(--bg-2); border: 1px solid var(--border); border-radius: 6px; padding: 0.2rem 0.5rem; cursor: default; }
.chem-flag.has-atoms { cursor: pointer; }
.chem-flag.has-atoms:hover, .chem-flag.has-atoms:focus-visible { border-color: var(--accent); outline: none; }
.chem-flag.is-pass { color: var(--accent); }
.chem-flag.is-fail { color: var(--warn); }
.chem-flag.is-unknown { color: var(--muted); }
.chem-flag.is-warn { color: var(--warn); border-color: rgba(251, 191, 36, 0.35); }
.chem-tabs { display: flex; gap: 0.2rem; border-bottom: 1px solid var(--border); margin: 0.6rem 0 1.1rem; overflow-x: auto; }
.chem-tab { font: inherit; font-size: 0.92rem; color: var(--muted); background: none; border: none; border-bottom: 2px solid transparent; margin-bottom: -1px; padding: 0.7rem 1rem; cursor: pointer; white-space: nowrap; min-height: 2.75rem; }
.chem-tab:hover { color: var(--ink); }
.chem-tab[aria-selected="true"] { color: var(--ink); font-weight: 600; border-bottom-color: var(--accent); }
.chem-tab-count { font-size: 0.75rem; color: var(--muted); }
.chem-panel { display: flex; flex-direction: column; gap: 1rem; }
.chem-panel[hidden] { display: none; }
.chem-panel-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.4rem 1rem; margin-bottom: 0.7rem; }
.chem-panel-head h2 { margin: 0; font-size: 1.05rem; }
.chem-panel-head a { margin-left: auto; font-size: 0.85rem; }
.chem-h { margin: 0 0 0.7rem; font-size: 1rem; }
.chem-note { font-size: 0.78rem; color: var(--muted); }
p.chem-note { margin: 0.5rem 0 0; }
.chem-heat-scroll { overflow-x: auto; }
.chem-heat { display: grid; gap: 0.25rem; min-width: max-content; align-items: stretch; }
.chem-heat-group { font-size: 0.68rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--muted); border-bottom: 1px solid var(--border); padding-bottom: 0.2rem; }
.chem-heat-strain { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.7rem; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 6rem; }
.chem-heat-strain { display: flex; flex-direction: column; }
.chem-heat-species { font-family: var(--font, inherit); font-style: italic; overflow: hidden; text-overflow: ellipsis; }
.chem-heat-strain-id { overflow: hidden; text-overflow: ellipsis; }
.chem-heat-name { font-size: 0.85rem; font-weight: 500; display: flex; align-items: center; gap: 0.4rem; padding-right: 0.6rem; }
.chem-heat-name.is-self { font-weight: 700; }
.chem-heat-name a { color: var(--ink); }
.chem-heat-cell { border-radius: 5px; padding: 0.45rem 0.25rem; text-align: center; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.8rem; font-weight: 500; }
.chem-heat-cell.is-missing { border: 1px dashed var(--border); }
.chem-ref { font-size: 0.66rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: #0a1414; background: var(--compound); border-radius: 4px; padding: 0.05rem 0.35rem; align-self: flex-start; }
.chem-assay-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.55rem; }
.chem-assay-list li { display: flex; flex-wrap: wrap; gap: 0.4rem 0.8rem; align-items: center; }
.chem-props-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 1rem; align-items: start; }
@media (max-width: 960px) { .chem-props-grid { grid-template-columns: minmax(0, 1fr); } }
.chem-props-side { display: flex; flex-direction: column; gap: 1rem; }
.chem-props-side .panel, .chem-props-main { margin: 0; }
.chem-rules { list-style: none; margin: 0 0 0.6rem; padding: 0; display: flex; flex-direction: column; gap: 0.4rem; }
.chem-rule { font: inherit; text-align: left; color: var(--ink); background: none; border: 1px solid transparent; border-radius: 8px; padding: 0.4rem 0.5rem; display: flex; gap: 0.6rem; align-items: flex-start; width: 100%; }
.chem-rule.has-atoms { cursor: pointer; }
.chem-rule.has-atoms:hover, .chem-rule.has-atoms:focus-visible { border-color: var(--accent); outline: none; }
.chem-rule-mark { width: 1.3rem; height: 1.3rem; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 0.75rem; flex-shrink: 0; border: 1.5px solid var(--muted); color: var(--muted); }
.chem-rule.is-pass .chem-rule-mark { border-color: var(--accent); color: var(--accent); }
.chem-rule.is-fail .chem-rule-mark, .chem-rule.is-warn .chem-rule-mark { border-color: var(--warn); color: var(--warn); }
.chem-rule.is-unknown .chem-rule-mark { border-style: dashed; }
.chem-prop-row { display: grid; grid-template-columns: 9.5rem 6.5rem minmax(0, 1fr); gap: 0.8rem; align-items: center; padding: 0.35rem 0; }
@media (max-width: 560px) { .chem-prop-row { grid-template-columns: 7rem 5.5rem minmax(0, 1fr); } }
.chem-prop-label { font-size: 0.88rem; }
.chem-prov { position: relative; text-align: right; }
.chem-prov summary { list-style: none; cursor: pointer; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.88rem; border-bottom: 1px dotted var(--muted); display: inline-block; }
.chem-prov summary::-webkit-details-marker { display: none; }
.chem-prov[open] summary { color: var(--accent); border-bottom-color: var(--accent); }
.chem-prov-body { position: absolute; z-index: 20; right: 0; top: 1.8rem; width: 19rem; max-width: 80vw; text-align: left; background: var(--bg-2); border: 1px solid var(--accent); border-radius: 10px; padding: 0.7rem 0.85rem; box-shadow: 0 12px 30px rgba(0, 0, 0, 0.45); display: grid; gap: 0.35rem; font-size: 0.78rem; }
.chem-prov-body > div { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: 0.6rem; }
.chem-prov-body > div > span:first-child { color: var(--muted); }
.chem-prop-track { position: relative; height: 1.1rem; }
.chem-prop-track::before { content: ""; position: absolute; left: 0; right: 0; top: 0.5rem; height: 2px; background: var(--border); }
.chem-prop-band { position: absolute; top: 0.3rem; height: 0.55rem; border-radius: 4px; background: #1f4a45; }
.chem-prop-dot { position: absolute; top: 0.15rem; width: 0.85rem; height: 0.85rem; margin-left: -0.425rem; border-radius: 50%; background: var(--accent); border: 2px solid var(--bg); }
.chem-descriptors summary { cursor: pointer; }
.chem-descriptors .param-grid { margin-top: 0.9rem; }
.chem-neighbors { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 1rem; }
.chem-neighbor { margin: 0; display: flex; flex-direction: column; gap: 0.6rem; }
.chem-neighbor-head { display: flex; justify-content: space-between; align-items: baseline; gap: 0.5rem; }
.chem-neighbor-name { font-size: 1.05rem; font-weight: 600; color: var(--ink); }
.chem-neighbor-structure { background: var(--bg-2); border-radius: 8px; display: flex; justify-content: center; }
.chem-neighbor-structure svg { width: 100%; max-width: 17rem; height: auto; }
.chem-change { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.82rem; color: var(--warn); overflow-wrap: anywhere; }
.chem-neighbor-facts { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.25rem 0.8rem; font-size: 0.8rem; }
.chem-neighbor-facts > span:nth-child(odd) { color: var(--muted); }
.chem-cliff { align-self: flex-start; font-size: 0.66rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: #291a00; background: var(--warn); border-radius: 4px; padding: 0.1rem 0.4rem; }
.structure-folder-pick { color: var(--accent); text-decoration: underline; cursor: pointer; }
.structure-report { margin-bottom: 1rem; }
.structure-report-totals { margin: 0.3rem 0 0.5rem; }
.structure-report-failed { color: var(--danger, #f87171); font-weight: 600; }
.structure-report-table td { vertical-align: top; }
.batch-structure { font-family: var(--mono, ui-monospace, monospace); word-break: break-all; }
.export-format { display: block; margin: 0.35rem 0; }
.export-format .card-meta { display: block; margin-left: 1.6rem; }
.export-assay { display: block; margin: 0.2rem 0; }
.structure-export { margin-left: 0.6rem; vertical-align: middle; font-size: 0.8rem; }
.analysis-selection-actions { margin: -0.3rem 0 0.6rem; }
.external-data { border: 1px dashed #a78bfa; background: rgba(167, 139, 250, 0.05); }
.external-badge { display: inline-block; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.05em; color: #c4b5fd; border: 1px solid #a78bfa; border-radius: 999px; padding: 0 0.45rem; margin-right: 0.35rem; vertical-align: middle; }
.external-provenance { font-size: 0.85rem; color: var(--muted, #94a3b8); }
.external-flagged td { opacity: 0.6; }
.chem-literature { display: block; font-size: 0.72rem; color: #c4b5fd; margin-top: 0.15rem; }
.inline-form { display: inline; margin: 0; }
.migrated-mark { border-left: 3px solid #f59e0b; margin-bottom: 1rem; }
.migrated-badge { display: inline-block; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.05em; color: #fbbf24; border: 1px solid #f59e0b; border-radius: 999px; padding: 0 0.45rem; margin-right: 0.35rem; }
.migrated-signatures { margin: 0.3rem 0 0; padding-left: 1.1rem; }
.migration-problems { border: 1px solid var(--danger, #f87171); }
.migration-counts td, .migration-counts th { text-align: left; }
.medchem-panel {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 0.8rem 1rem;
  margin: 0 0 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.medchem-panel[hidden] { display: none; }
.medchem-panel-header { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.medchem-row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.6rem 1rem; }
.medchem-row label { display: flex; flex-direction: column; gap: 0.2rem; font-size: 0.78rem; color: var(--muted); min-width: 0; }
.medchem-row select, .medchem-row input { max-width: 100%; }
.medchem-row label.medchem-check { flex-direction: row; align-items: center; gap: 0.35rem; }
.medchem-core-label { flex: 1 1 18rem; }
.medchem-core-label input { width: 100%; }
.medchem-status { font-size: 0.8rem; color: var(--muted); min-height: 1em; }
.medchem-status-error { color: var(--danger); }
.medchem-view { display: flex; flex-direction: column; gap: 0.6rem; }
.medchem-provenance { font-size: 0.75rem; color: var(--muted); }
.medchem-core { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.medchem-core-art svg { display: block; max-width: 220px; height: auto; }
.medchem-core-text { min-width: 0; overflow-wrap: anywhere; font-size: 0.82rem; }
.medchem-k { font-size: 0.75rem; color: var(--muted); }
.medchem-section-title { font-size: 0.82rem; font-weight: 650; color: var(--ink); margin-top: 0.4rem; }
.medchem-note { font-size: 0.78rem; color: var(--muted); }
.medchem-strong { color: var(--warn); font-weight: 600; }
.medchem-examples div { white-space: nowrap; }
.sar-matrix th.mono, .sar-substituents .mono { font-size: 0.78rem; }
.sar-cell { vertical-align: top; }
.sar-cell-empty { color: var(--muted); }
.sar-cell-entry { display: flex; gap: 0.4rem; align-items: baseline; }
.sar-cell-value { color: var(--muted); font-size: 0.78rem; margin-left: 0.35rem; }
.sar-substituents { display: flex; flex-wrap: wrap; gap: 0.8rem; }
.sar-substituents > .analysis-table-scroll { flex: 1 1 14rem; }
.mpo-score { display: flex; align-items: center; gap: 0.4rem; }
.mpo-bar { display: inline-block; width: 4.5rem; height: 0.45rem; border-radius: 999px; background: var(--border); overflow: hidden; }
.mpo-bar-fill { display: block; height: 100%; background: var(--accent); }
.mpo-score-value { font-variant-numeric: tabular-nums; }
.mpo-incomplete td { opacity: 0.6; }
.mpo-missing { color: var(--muted); font-style: italic; }
.form-panel-wide { max-width: 64rem; }
.mpo-component-table select, .mpo-component-table input[type="number"] { min-width: 5rem; }
.mpo-component-table select[name$="_measure"] { min-width: 15rem; }
.mpo-component-table select[name$="_shape"] { min-width: 11rem; }
.analysis-card-wide { grid-column: 1 / -1; align-self: start; }
.analysis-card-footer { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.8rem; }
.badge.badge-combination { color: var(--compound); border-color: rgba(96,165,250,0.35); }
.chem-combination { margin: 0.35rem 0 0.2rem; font-size: 1.02rem; font-weight: 600; }
.chem-combination-dose { margin-left: 0.4rem; font-weight: 500; color: var(--accent); }
.chem-combinations { margin-top: 1rem; display: flex; flex-direction: column; gap: 0.4rem; }
.chem-combinations ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.3rem; }
.chem-combinations li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5rem; }
.chem-combination-fold { color: var(--accent); font-weight: 600; }
.chem-aliases { margin: 0.3rem 0 0.2rem; font-size: 0.9rem; color: var(--muted); overflow-wrap: anywhere; }
.chem-alias { color: var(--ink); font-weight: 600; }
.chem-alias-withdraw { display: inline; }
.chem-alias-withdraw summary { display: inline; cursor: pointer; color: var(--muted); padding: 0 0.2rem; list-style: none; }
.chem-alias-withdraw summary::-webkit-details-marker { display: none; }
.chem-alias-withdraw[open] form { display: inline-flex; flex-wrap: wrap; gap: 0.3rem; margin-left: 0.3rem; }
#compound-alias-add { margin-left: 0.4rem; }
.chem-identity-doubt {
  margin: 0.45rem 0 0.25rem; padding: 0.45rem 0.7rem;
  border-left: 3px solid var(--warn); background: rgba(251,191,36,0.06);
  border-radius: 0 6px 6px 0; font-size: 0.9rem; line-height: 1.45;
  overflow-wrap: anywhere;
}
.chem-potentiation { display: flex; flex-direction: column; gap: 0.75rem; }
.chem-pot-chart-wrap { overflow-x: auto; }
.chem-pot-chart { width: 100%; min-width: 30rem; height: auto; display: block; }
.chem-pot-grid { stroke: var(--border); stroke-width: 1; }
.chem-pot-origin { stroke: var(--muted-2); stroke-width: 1.5; }
.chem-pot-tick, .chem-pot-label, .chem-pot-value { font-size: 11px; fill: var(--muted); }
.chem-pot-label { fill: var(--ink); }
.chem-pot-value { fill: var(--ink); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.chem-pot-value.is-unknown { fill: var(--muted); font-style: italic; }
.chem-pot-bar { fill: var(--accent-dim); }
.chem-pot-bar.is-below-one { fill: var(--muted-2); }
.chem-pot-arrow { fill: var(--accent); }
.chem-pot-hit { fill: transparent; }
.chem-pot-row:hover .chem-pot-hit { fill: var(--card-hover); }
.chem-pot-row:hover .chem-pot-bar { fill: var(--accent); }
.chem-pot-table-wrap { overflow-x: auto; }
.chem-pot-table { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
.chem-pot-table th { text-align: left; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--muted); padding: 0.35rem 0.6rem; border-bottom: 1px solid var(--border); }
.chem-pot-table td { padding: 0.4rem 0.6rem; border-bottom: 1px solid var(--border); vertical-align: top; }
.form-section { border: 1px solid var(--border); border-radius: 8px; padding: 0.6rem 0.9rem; margin-bottom: 1.1rem; }
.form-section > summary { cursor: pointer; font-weight: 600; }
.form-section[open] > summary { margin-bottom: 0.6rem; }
.audit-section-heading { margin: 0 0 0.35rem; font-size: 1rem; }
.audit-chain { margin-bottom: 1rem; padding: 0.85rem 1.25rem; }
.audit-chain.has-problem { border-color: var(--danger); }
.audit-chain-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.4rem 1rem; }
.audit-chain-row .audit-section-heading { margin: 0; }
.audit-chain-summary { margin: 0; flex: 1 1 22rem; color: var(--muted); font-size: 0.88rem; }
.audit-chain-verify { margin: 0; }
.audit-chain-ok { margin: 0.5rem 0 0; color: var(--accent); font-size: 0.88rem; }
.audit-chain-warn { margin: 0.5rem 0 0; color: var(--danger); font-size: 0.88rem; }
.audit-chain-warn ul { margin: 0.3rem 0 0 1.1rem; padding: 0; }
.audit-chain-warn p { margin: 0; }
.audit-queue { margin-bottom: 1rem; padding: 1rem 1.25rem; }
.audit-queue-help { margin: 0 0 0.6rem; }
.audit-queue-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 0.5rem; }
.audit-queue-item { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.15rem 0.5rem; padding: 0.5rem 0.65rem; border: 1px solid var(--border); border-radius: 8px; min-width: 0; }
.audit-queue-item.active { border-color: var(--accent-dim); background: rgba(94,234,212,0.06); }
.audit-queue-item a { font-weight: 600; font-size: 0.88rem; }
.audit-queue-count { margin-left: auto; font-variant-numeric: tabular-nums; font-weight: 600; color: var(--muted); }
.audit-queue-count.has-pending { color: var(--warn); }
.audit-queue-last { flex-basis: 100%; margin-top: 0; }
.audit-preset-note { margin: 0 0 0.75rem; color: var(--muted); max-width: 56rem; }
.audit-record-scope { margin: 0 0 0.75rem; }
.audit-results-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.5rem 1rem; margin: 0.25rem 0 0.5rem; }
.audit-results-count { margin: 0; color: var(--muted); }
.audit-results-count strong { color: var(--ink); }
.audit-export { display: flex; gap: 0.5rem; }
.audit-table-wrap { overflow-x: auto; }
table.audit-table td { vertical-align: top; }
td.audit-when { white-space: nowrap; font-variant-numeric: tabular-nums; }
.audit-trail-link { margin-left: 0.35rem; font-size: 0.75rem; color: var(--muted); }
td.audit-changes { min-width: 16rem; }
.audit-change + .audit-change { margin-top: 0.4rem; }
.audit-change-head { font-size: 0.8rem; color: var(--muted); }
.audit-change-list { margin: 0.2rem 0 0; padding-left: 1rem; font-size: 0.82rem; }
.audit-change-list li { overflow-wrap: anywhere; }
.audit-change-field { color: var(--muted); margin-right: 0.25rem; }
.audit-change-list .history-old { color: var(--muted); text-decoration: line-through; text-decoration-thickness: 1px; }
.audit-detail { margin: 0.25rem 0 0; overflow-wrap: anywhere; }
.audit-sign { margin-top: 1.25rem; }
.audit-sign-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.75rem 1rem; margin-top: 0.75rem; }
.audit-sign-comment { flex: 1 1 18rem; }
.audit-sign-comment textarea { width: 100%; min-width: 0; padding: 0.3rem 0.45rem; border: 1px solid var(--border); border-radius: 4px; background: var(--bg); color: inherit; font: inherit; font-size: 0.85rem; }
.audit-reviews { margin-top: 1.25rem; }
.action-pill.export { color: var(--compound); background: rgba(96,165,250,0.1); }
.action-pill.login_failed, .action-pill.sign_failed_reauth, .action-pill.mfa_verify_failed, .action-pill.mfa_disabled { color: var(--danger); background: rgba(248,113,113,0.1); }
.action-pill.mfa_enrolled, .action-pill.mfa_recovery_code_used { color: var(--muted); background: rgba(127,168,159,0.08); }
.app-message.info { color: var(--ink); background: rgba(94,234,212,0.05); border-color: rgba(94,234,212,0.25); }
.badge.entry-state-draft { color: var(--muted); }
.badge.entry-state-signed { color: var(--accent); background: rgba(94,234,212,0.08); border-color: rgba(94,234,212,0.3); }
.badge.entry-version-badge { color: var(--ink); }
.entry-version-number { color: var(--muted); font-weight: 500; font-size: 0.7em; }
.entry-provenance { color: var(--muted); font-size: 0.92rem; margin: 0 0 1rem; }
.entry-copies { margin-top: 0.8rem; }
.entry-draft-note { margin-bottom: 1rem; }
.entry-digest { font-size: 0.78rem; word-break: break-all; color: var(--muted); }
.entry-duplicate { position: relative; }
.entry-duplicate > summary { list-style: none; }
.entry-duplicate > summary::-webkit-details-marker { display: none; }
.entry-duplicate-form {
  position: absolute; right: 0; top: calc(100% + 0.4rem); z-index: 5; width: min(22rem, 90vw);
  display: flex; flex-direction: column; gap: 0.4rem;
  background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 1rem;
}
.entry-duplicate-form input, .entry-duplicate-form select {
  background: var(--bg); color: var(--ink); border: 1px solid var(--border); border-radius: 6px; padding: 0.45rem 0.6rem;
}
.notebook-project-heading { margin-top: 1.6rem; }
.notebook-new-entry { margin-bottom: 1.2rem; }
.notebook-new-entry form { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; }
.notebook-new-entry input[type="text"] {
  flex: 1 1 18rem; min-width: 0; background: var(--bg); color: var(--ink);
  border: 1px solid var(--border); border-radius: 8px; padding: 0.55rem 0.75rem;
}
.sb-doc { line-height: 1.6; max-width: 62rem; overflow-wrap: anywhere; }
.sb-doc .sb-toc { border: 1px solid var(--border); border-radius: 10px; padding: 0.7rem 1rem; margin-bottom: 1.2rem; font-size: 0.9rem; }
.sb-doc .sb-toc ol { margin: 0; padding-left: 1.2rem; }
.sb-doc .sb-section { margin-bottom: 1.6rem; scroll-margin-top: calc(var(--topbar-h) + 1rem); }
.sb-doc .sb-section-title { font-size: 1.15rem; margin: 0 0 0.5rem; padding-bottom: 0.3rem; border-bottom: 1px solid var(--border); }
.sb-doc p { margin: 0 0 0.75rem; }
.sb-doc .sb-h { margin: 1rem 0 0.4rem; }
.sb-doc h3.sb-h { font-size: 1.02rem; }
.sb-doc h4.sb-h { font-size: 0.95rem; }
.sb-doc h5.sb-h { font-size: 0.88rem; color: var(--muted); }
.sb-doc ul, .sb-doc ol { margin: 0 0 0.75rem; padding-left: 1.5rem; }
.sb-doc code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.88em; background: rgba(255,255,255,0.05); border-radius: 4px; padding: 0.05rem 0.3rem; }
.sb-doc .sb-code { background: rgba(0,0,0,0.25); border: 1px solid var(--border); border-radius: 8px; padding: 0.7rem 0.9rem; overflow-x: auto; margin: 0 0 0.75rem; }
.sb-doc .sb-code code { background: none; padding: 0; }
.sb-doc del { color: var(--muted); }
.sb-doc .sb-table-wrap { overflow-x: auto; margin: 0 0 0.9rem; }
.sb-doc .sb-table { border-collapse: collapse; font-size: 0.9rem; min-width: 50%; }
.sb-doc .sb-table th, .sb-doc .sb-table td { border: 1px solid var(--border); padding: 0.35rem 0.65rem; text-align: left; vertical-align: top; }
.sb-doc .sb-table th { background: rgba(255,255,255,0.03); font-weight: 600; }
.sb-doc .sb-table .sb-al-c { text-align: center; }
.sb-doc .sb-table .sb-al-r { text-align: right; }
.sb-doc .sb-math-display { margin: 0.6rem 0 0.9rem; overflow-x: auto; overflow-y: hidden; }
.sb-doc .sb-math:not([data-rendered]) { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.88em; color: var(--muted); }
.sb-doc .sb-math-error { color: var(--danger); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.88em; }
.sb-doc .sb-figure { margin: 0.4rem 0 1rem; }
.sb-doc .sb-figure .sb-img { max-width: 100%; height: auto; border-radius: 6px; border: 1px solid var(--border); background: #fff; }
.sb-doc .sb-figure figcaption { color: var(--muted); font-size: 0.85rem; margin-top: 0.3rem; }
.sb-doc .sb-missing { display: inline-block; color: var(--warn); border: 1px dashed rgba(251,191,36,0.4); border-radius: 6px; padding: 0.4rem 0.7rem; font-size: 0.85rem; }
.editor-top { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.5rem 1rem; }
.editor-status { font-size: 0.85rem; color: var(--muted); }
.editor-status[data-state="saved"] { color: var(--accent); }
.editor-status[data-state="error"] { color: var(--danger); }
.editor-status[data-state="dirty"], .editor-status[data-state="saving"] { color: var(--warn); }
.editor-recovered form, .editor-stale form { margin-top: 0.5rem; }
.editor-stale { border-left: 3px solid var(--warn); margin-bottom: 1.2rem; }
.editor-stale h2 { margin-top: 0; font-size: 1.05rem; }
.editor-confirm-stale { display: flex; gap: 0.5rem; align-items: flex-start; margin: 0 0 1rem; font-size: 0.9rem; color: var(--warn); }
.entry-editor .editor-sections { display: flex; flex-direction: column; gap: 1rem; margin-bottom: 0.6rem; }
.entry-editor .editor-section { border: 1px solid var(--border); border-radius: 12px; padding: 0.9rem; margin: 0; background: var(--card); min-width: 0; }
.entry-editor .editor-section-locked { border-style: dashed; }
.entry-editor .editor-section-head { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-bottom: 0.5rem; }
.entry-editor .editor-section-title {
  flex: 1 1 14rem; min-width: 0; font-weight: 600; font-size: 1rem;
  background: var(--bg); color: var(--ink); border: 1px solid var(--border); border-radius: 8px; padding: 0.45rem 0.65rem;
}
.entry-editor .editor-section-title[readonly] { color: var(--muted); }
.entry-editor .editor-section-actions { display: flex; gap: 0.3rem; }
.entry-editor .editor-icon-btn, .entry-editor .editor-toolbar button {
  background: none; color: var(--muted); border: 1px solid var(--border); border-radius: 6px;
  padding: 0.25rem 0.55rem; font-size: 0.82rem; cursor: pointer; line-height: 1.3;
}
.entry-editor .editor-icon-btn:hover, .entry-editor .editor-toolbar button:hover { color: var(--accent); border-color: var(--accent-dim); }
.entry-editor .editor-icon-btn[data-armed="1"] { color: var(--danger); border-color: rgba(248,113,113,0.5); }
.entry-editor .editor-toolbar { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-bottom: 0.5rem; }
.entry-editor .editor-section-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.8rem; }
@media (min-width: 1100px) {
  .entry-editor .editor-section-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
.entry-editor .editor-body {
  width: 100%; min-height: 120px; resize: vertical; box-sizing: border-box;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.86rem; line-height: 1.5;
  background: var(--bg); color: var(--ink); border: 1px solid var(--border); border-radius: 8px; padding: 0.6rem 0.75rem;
}
.entry-editor .editor-body[readonly] { color: var(--muted); }
.entry-editor .editor-preview { border: 1px dashed var(--border); border-radius: 8px; padding: 0.6rem 0.8rem; min-height: 3rem; font-size: 0.93rem; }
.entry-editor .editor-preview:empty::before { content: "Preview"; color: var(--muted-2); }
.badge.editor-badge-locked { color: var(--warn); border-color: rgba(251,191,36,0.35); }
.badge.editor-badge-required { color: var(--compound); border-color: rgba(96,165,250,0.35); }
.editor-image-picker { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-top: 0.6rem; padding: 0.8rem; }
.editor-image-picker select, .editor-image-picker input {
  background: var(--bg); color: var(--ink); border: 1px solid var(--border); border-radius: 6px; padding: 0.4rem 0.55rem; min-width: 0;
}
.entry-editor .editor-toolbar[hidden], .entry-editor .editor-section-actions[hidden],
.editor-image-picker[hidden] { display: none; }
.entry-diff { display: flex; flex-direction: column; gap: 0.8rem; }
.entry-diff-section { border: 1px solid var(--border); border-radius: 10px; padding: 0.6rem 0.8rem; }
.entry-diff-head { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-bottom: 0.4rem; }
.entry-diff-lines { margin: 0; font-size: 0.82rem; line-height: 1.45; overflow-x: auto; white-space: pre-wrap; overflow-wrap: anywhere; }
.entry-diff-line { display: block; padding: 0 0.3rem; border-radius: 3px; }
.entry-diff-op-add { background: rgba(94,234,212,0.10); color: var(--accent); }
.entry-diff-op-del { background: rgba(248,113,113,0.10); color: var(--danger); text-decoration: line-through; text-decoration-color: rgba(248,113,113,0.5); }
.entry-diff-op-skip { color: var(--muted-2); font-style: italic; }
.entry-diff-op-ctx { color: var(--muted); }
.reaction-depiction { overflow-x: auto; max-width: 100%; }
.reaction-depiction svg { max-width: 100%; height: auto; }
.reaction-table-wrap { overflow-x: auto; max-width: 100%; }
.reaction-table td { vertical-align: top; }
.reaction-component-name { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: baseline; }
.reaction-formula { color: var(--muted); font-size: 0.8rem; }
.reaction-row-limiting td { background: rgba(94,234,212,0.05); }
.reaction-limiting-badge { margin-left: 0.4rem; }
.reaction-basis { overflow-wrap: anywhere; }
.reaction-status { color: var(--muted); font-style: italic; }
.reaction-yield { font-weight: 600; color: var(--accent); }
.reaction-warning { margin-top: 0.3rem; }
.reaction-actions { margin-top: 0.8rem; }
.reaction-earlier { margin-top: 0.6rem; }
.reaction-form-table input, .reaction-form-table select { min-width: 5.5rem; max-width: 9rem; }
.reaction-form-table td { white-space: nowrap; }
.reaction-remove { display: inline-flex; gap: 0.3rem; align-items: center; }
.sir-badge {
  display: inline-block; margin-left: 0.35rem; padding: 0 0.3rem; min-width: 1.1rem;
  border-radius: 4px; border: 1px solid currentColor; text-align: center;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.68rem; font-weight: 700; line-height: 1.25; vertical-align: 1px; cursor: help;
}
.sir-badge.sir-S { color: #34d399; background: rgba(52, 211, 153, 0.10); }
.sir-badge.sir-I { color: #fbbf24; background: rgba(251, 191, 36, 0.10); }
.sir-badge.sir-R { color: #f87171; background: rgba(248, 113, 113, 0.12); }
.sir-badge.sir-WT { color: #93c5fd; background: rgba(147, 197, 253, 0.10); }
.sir-badge.sir-NWT { color: #c4b5fd; background: rgba(196, 181, 253, 0.12); }
.sir-badge.sir-unknown { color: var(--muted); border-style: dashed; }
.sir-badge.sir-flagged { border-style: dashed; }
.sir-pins-list { list-style: none; margin: 0.4rem 0 0.6rem; padding: 0; display: grid; gap: 0.4rem; }
.sir-pins-list li { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.6rem; }
.sir-pin-remove { display: inline-flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; }
.sir-pin-remove input[type="text"] { min-width: 0; flex: 1 1 10rem; }
.sir-pin-reinterpret { display: flex; gap: 0.4rem; align-items: center; font-weight: normal; }
.sir-badge .sir-guideline { font-weight: 600; font-size: 0.6rem; letter-spacing: 0.02em; opacity: 0.85; }
.dt-derived-hidden .dt-derived { display: none; }
.dt-derived-controls { display: inline-flex; align-items: center; gap: 0.5rem; }
.dt-derived-filter { font-size: 0.8rem; }
.dt-derived-toggle { font-size: 0.78rem; color: var(--muted); white-space: nowrap; }
.dt-strain-cols {
  display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.2rem 0.65rem;
  font-size: 0.78rem; color: var(--muted);
}
.dt-strain-cols-label { color: var(--muted-2); }
.dt-strain-cols label { display: inline-flex; align-items: center; gap: 0.25rem; white-space: nowrap; cursor: pointer; }
.dt-strain-cols label:has(input:disabled) { cursor: default; }
.dt-strain-cols input { accent-color: var(--accent); margin: 0; }
table.data-table td.dt-lookup-cell { white-space: nowrap; max-width: 14rem; overflow: hidden; text-overflow: ellipsis; }
table.data-table thead tr.dt-eyebrow-row th.dt-strain-band {
  text-align: left; font-size: 0.8rem; font-weight: 600; font-style: normal; letter-spacing: 0;
  text-transform: none; color: var(--ink); border-bottom: 1px solid var(--border);
}
.dt-lookup-unlinked, .ed-lookup-unlinked { font-style: italic; color: var(--muted-2); }
table.editable-table .ed-lookup {
  font-size: 0.82rem; white-space: nowrap; padding: 0.35rem 0.6rem;
  max-width: 14rem; overflow: hidden; text-overflow: ellipsis;
  background-color: var(--card);
}
table.editable-table th.ed-lookup, table.editable-table th.ed-prop {
  font-weight: 600; text-align: left; vertical-align: bottom; padding: 0.35rem 0.6rem; white-space: nowrap;
}
table.editable-table th.ed-strain-band { text-align: left; font-weight: 600; padding: 0.35rem 0.6rem; }
table.editable-table .ed-lookup-stale { opacity: 0.45; }
@media (max-width: 640px) {
  table.data-table td.dt-lookup-cell, table.data-table td.dt-prop-cell, table.data-table th[data-strain-prop],
  table.editable-table .ed-lookup {
    white-space: normal; max-width: 5rem; font-size: 0.72rem;
    padding-left: 0.4rem; padding-right: 0.4rem; text-overflow: clip;
  }
  table.data-table td.dt-prop-cell { overflow-wrap: anywhere; }
  table.editable-table .ed-lookup { min-width: 4.5rem; }
}
table.editable-table:not([data-strain-show~="species"]) .ed-lookup-species,
table.editable-table:not([data-strain-show~="strain_id"]) .ed-lookup-strain_id,
table.editable-table:not([data-strain-show~="tags"]) .ed-lookup-tags { display: none; }
.sir-summary {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.8rem;
  margin: 0 0 0.6rem; font-size: 0.82rem; color: var(--muted);
}
.sir-summary-tag {
  font-size: 0.68rem; font-weight: 700; letter-spacing: 0.06em; color: var(--accent);
  border: 1px dashed var(--accent-dim); border-radius: 4px; padding: 0 0.35rem;
}
.sir-count { white-space: nowrap; }
.sir-count .sir-badge { margin-left: 0; }
.sir-reasons, .sir-hints { font-size: 0.8rem; }
.sir-reasons > summary, .sir-hints > summary { cursor: pointer; }
.sir-reasons ul, .sir-hints ul { margin: 0.3rem 0 0.3rem 1.1rem; padding: 0; }
.import-panel > summary.import-panel-toggle { display: inline-flex; list-style: none; cursor: pointer; }
.import-panel > summary.import-panel-toggle::-webkit-details-marker { display: none; }
.import-panel:not([open]) { background: transparent; border-color: transparent; padding: 0; box-shadow: none; }
.import-panel[open] > summary.import-panel-toggle { margin-bottom: 0.75rem; }
fieldset.clsi-licence { min-width: 0; max-width: 100%; border: 1px solid var(--border); border-radius: 6px; padding: 0.5rem 0.8rem 0.2rem; margin: 0.4rem 0 0.8rem; }
fieldset.clsi-licence legend { padding: 0 0.3rem; font-weight: 600; }
.clsi-licence-line { margin: 0.4rem 0; }
.sir-interpret-inline { display: inline-flex; margin: 0; }
.sir-interpret { margin-top: 1rem; font-size: 0.85rem; }
.sir-interpret > summary { cursor: pointer; color: var(--muted); }
.sir-interpret-form { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-top: 0.5rem; }
.sir-interpret-form .field-help { flex-basis: 100%; }
.breakpoint-active-badge { color: var(--accent); }
.breakpoint-notes > summary { cursor: pointer; font-size: 0.75rem; color: var(--muted); }
.breakpoint-filter { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 0.75rem; }
.breakpoint-terms { font-style: italic; }
.chem-heat-call { display: block; font-size: 0.62rem; font-weight: 700; opacity: 0.85; }
.chem-heat.by-call .chem-heat-cell { background: var(--bg-2) !important; color: var(--muted) !important; }
.chem-heat.by-call .chem-heat-cell.call-S { background: #065f46 !important; color: #ecfdf5 !important; }
.chem-heat.by-call .chem-heat-cell.call-I { background: #92400e !important; color: #fffbeb !important; }
.chem-heat.by-call .chem-heat-cell.call-R { background: #991b1b !important; color: #fff1f1 !important; }
.chem-heat.by-call .chem-heat-cell.call-mixed { background: #3f3f46 !important; color: #fafafa !important; }
.chem-heat-mode { display: inline-flex; gap: 0.3rem; font-size: 0.78rem; }
.chem-heat-mode button[aria-pressed="true"] { color: var(--accent); border-color: var(--accent-dim); }
.stock-calc-form { display: flex; flex-wrap: wrap; gap: 0.5rem 0.8rem; align-items: center; }
.stock-calc-form input[type=number] { width: 7rem; }
.stock-calc-result { margin-top: 0.8rem; }
.lot-retired td { opacity: 0.65; }
.tested-lot-form { display: flex; gap: 0.4rem; align-items: center; flex-wrap: wrap; }
.tested-lots { margin-bottom: 1rem; }
.tested-lots-summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5rem; cursor: pointer; }
.tested-lots-summary .k { margin: 0; }
.tested-lots-wrap { overflow-x: auto; max-width: 100%; }
.run-header { margin-bottom: 1rem; }
.run-facts-quiet { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem 1.2rem; margin-bottom: 1rem; }
.run-facts-quiet > details.panel:not([open]) { background: none; border: 0; padding: 0; margin: 0; box-shadow: none; }
.run-facts-quiet > details.panel:not([open]) .k { font-size: 0.78rem; }
.assay-tested { display: inline-block; position: relative; }
.assay-tested > summary { display: inline; cursor: pointer; color: var(--accent); list-style: none; }
.assay-tested > summary::-webkit-details-marker { display: none; }
.assay-tested-panel {
  position: absolute; z-index: 30; top: 1.6rem; left: 0; width: min(36rem, 90vw); max-height: 60vh; overflow: auto;
  padding: 0.75rem 1rem; background: var(--card); border: 1px solid var(--border); border-radius: 10px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35); font-size: 0.88rem; color: var(--ink);
}
.assay-tested-line { margin: 0.25rem 0; overflow-wrap: anywhere; }
.assay-tested-line .k { display: block; font-size: 0.74rem; text-transform: uppercase; letter-spacing: 0.06em;
  color: var(--muted); margin-bottom: 0.15rem; }
.planned-table { margin-bottom: 1rem; text-align: left; }
.planned-table-action { margin-top: 0.75rem; display: flex; gap: 0.75rem; align-items: baseline; flex-wrap: wrap; }
.tag-suggestion-group { font-weight: 600; }
.tag-suggestion-bar {
  display: flex; flex-wrap: wrap; gap: 0.4rem; padding: 0.45rem 0.6rem;
  border-bottom: 1px solid var(--border); position: sticky; top: -0.3rem; background: var(--card-hover); z-index: 1;
}
.tag-suggestion-multi { justify-content: flex-start; gap: 0.55rem; }
.tag-suggestion-multi .tag-suggestion-tick { margin: 0; flex: none; width: 1rem; height: 1rem; cursor: pointer; }
.tag-suggestion-multi .tag-suggestion-name { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.picker-pending { margin-top: 0.35rem; }
.picker-status { margin-top: 0.35rem; }
.picker-status:empty { margin: 0; }
.tag-suggestion-group .tag-suggestion-name { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.tag-suggestion-action { flex: none; color: var(--accent); font-weight: 400; font-size: 0.8rem; margin-left: 0.6rem; }
.run-facts-quiet > details { min-width: 0; max-width: 100%; }
.run-facts-quiet > details[open] { flex-basis: 100%; margin-bottom: 0; }
.run-header-summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5rem; cursor: pointer; }
.run-header-summary .k { margin: 0; }
.run-header-fixed { margin-top: 0.4rem; }
.run-header-source { margin: 0 0 0.6rem; }
.run-header-unlinked { color: var(--warn); }
.run-header-actions { display: flex; flex-direction: column; gap: 0.4rem; margin-top: 0.6rem; }
.run-header-form summary { cursor: pointer; }
.run-replicate-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: 0.4rem 0.8rem; margin: 0.5rem 0; }
.run-replicate-fields select, .run-replicate-fields input { width: 100%; }
.run-header-retire { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; margin-top: 0.6rem; }
.run-header-retire input { flex: 1 1 12rem; min-width: 0; }
.header-block { min-width: 0; max-width: 100%; margin: 0 0 1rem; }
.header-block .data-table input[type="number"] { width: 4.5rem; }
.header-block .data-table input[type="text"] { min-width: 9rem; }
.header-fixed-differs { margin: 0.4rem 0; }
.topbar-scan { position: relative; display: flex; flex: 0 1 9rem; min-width: 6.5rem; }
.topbar-scan input {
  flex: 1 1 auto; width: 100%; min-width: 0; box-sizing: border-box;
  padding: 0.3rem 0.55rem; font-size: 0.85rem;
  -webkit-appearance: none; appearance: none;
  background: var(--bg); color: var(--ink);
  border: 1px solid var(--border); border-radius: 6px; font-family: inherit;
}
.topbar-scan input:focus { outline: none; border-color: var(--accent-dim); }
.topbar-scan input::placeholder { color: var(--muted); }
@media (min-width: 1081px) and (max-width: 1439px) {
  .brand-name { display: none; }
}
.topbar-scan-status {
  position: absolute; top: 100%; right: 0; z-index: 50; margin-top: 0.3rem; width: 18rem;
  background: var(--panel, #0f1f1d); border: 1px solid var(--border); border-radius: 6px;
  padding: 0.5rem 0.7rem; font-size: 0.85rem;
}
.scan-list { margin: 0.4rem 0; padding-left: 1.2rem; }
.scan-item { display: flex; gap: 0.4rem; align-items: center; }
.dose-sheet { margin-bottom: 1.2rem; overflow-x: auto; }
.dose-sheet-head { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: baseline; margin-bottom: 0.4rem; }
.dose-table td { vertical-align: top; }
.dose-headline { font-weight: 600; }
.dose-status-not_fitted .dose-headline, .dose-status-inactive .dose-headline { color: var(--muted); }
.dose-reason { max-width: 32rem; }
.dose-chart svg { display: block; max-width: 100%; height: auto; }
.dose-curve .dose-axis { stroke: var(--border); stroke-width: 1; }
.dose-curve .dose-tick { fill: var(--muted); font-size: 9px; }
.dose-curve .dose-fit { fill: none; stroke: var(--accent); stroke-width: 2; }
.dose-curve .dose-mid { stroke: var(--accent); stroke-dasharray: 3 3; opacity: 0.6; }
.dose-curve .dose-point { fill: currentColor; opacity: 0.85; }
.dose-curve .dose-point-excluded { fill: none; stroke: var(--muted); stroke-width: 1.2; }
.dose-curve .dose-point-downweighted { fill: currentColor; opacity: 0.85; stroke: var(--warn); stroke-width: 2; }
.dose-point-down .mono { text-decoration: underline dotted; }
.dose-settings { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: baseline; margin-bottom: 0.4rem; }
.dose-settings-form { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; margin-top: 0.3rem; }
.dose-settings-form input[type=text] { width: 10rem; max-width: 100%; }
.dose-points ul { list-style: none; padding: 0; margin: 0.3rem 0 0; }
.dose-points li { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; padding: 0.15rem 0; }
.dose-point-out .mono { text-decoration: line-through; color: var(--muted); }
.dose-point-form { display: inline-flex; gap: 0.3rem; }
.dose-point-form input[type=text] { width: 12rem; }
.dose-series { margin-top: 0.6rem; }
.dose-series-row { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0.4rem 0; }
.dose-series-row input[type=text] { flex: 1 1 14rem; }
.axis-chip-dose { border-style: solid; }
.checkerboard-sheet { margin-bottom: 1.2rem; }
.checkerboard-summary { display: flex; flex-wrap: wrap; gap: 1rem 1.6rem; align-items: flex-start; }
.checkerboard-facts { flex: 1 1 18rem; min-width: 0; }
.checkerboard-headline { font-size: 1.1rem; font-weight: 600; margin: 0.4rem 0; }
.checkerboard-headline.fici-class-synergy { color: var(--accent); }
.checkerboard-headline.fici-class-antagonism { color: var(--warn); }
.checkerboard-dl { display: grid; grid-template-columns: max-content 1fr; gap: 0.25rem 0.8rem; margin: 0.4rem 0; }
.checkerboard-dl dt { color: var(--muted); }
.checkerboard-dl dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.checkerboard-iso { flex: 0 0 auto; max-width: 100%; }
.checkerboard-iso svg { max-width: 100%; height: auto; }
.isobologram .iso-axis { stroke: var(--muted); stroke-width: 1; }
.isobologram .iso-additive { stroke: var(--muted); stroke-width: 1; }
.isobologram .iso-synergy { stroke: var(--muted); stroke-width: 1; stroke-dasharray: 4 3; }
.isobologram .iso-curve { fill: none; stroke: var(--accent); stroke-width: 1.5; }
.isobologram .iso-point { fill: var(--accent); }
.checkerboard-grid .well { text-align: center; }
.plate-panel { padding: 1rem 0 1.25rem; border-bottom: 1px solid var(--border); }
.plate-panel:last-child { border-bottom: 0; }
.plate-panel-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.4rem 1rem; margin-bottom: 0.6rem; }
.plate-title { margin: 0; font-size: 1.05rem; }
.plate-z { margin-left: auto; font-size: 0.85rem; padding: 0.15rem 0.6rem; border-radius: 999px; border: 1px solid var(--border); }
.plate-z strong { font-size: 1rem; }
.plate-z-word { color: var(--muted); }
.plate-z-excellent { border-color: var(--accent); }
.plate-z-marginal { border-color: var(--warn); }
.plate-z-unusable, .plate-z-none { border-color: var(--danger); }
.plate-rejected-badge { background: rgba(248, 113, 113, 0.14); color: var(--danger); border: 1px solid var(--danger); }
.plate-rejected-note { margin: 0 0 0.75rem; padding: 0.5rem 0.75rem; border-left: 3px solid var(--danger); font-size: 0.85rem; }
.plate-panel-rejected .plate-heat { opacity: 0.55; }
.plate-layout { display: grid; grid-template-columns: auto minmax(18rem, 1fr); gap: 1.25rem 2rem; align-items: start; }
@media (max-width: 1100px) { .plate-layout { grid-template-columns: minmax(0, 1fr); } }
.plate-heat-wrap { min-width: 0; width: min-content; max-width: 100%; }
.plate-heat { border-collapse: separate; border-spacing: 3px; font-size: 0.72rem; font-variant-numeric: tabular-nums; }
.plate-heat th { color: var(--muted); font-weight: 500; text-align: center; padding: 0 0.2rem; }
.plate-heat .well {
  width: 2.6rem; min-width: 2.6rem; height: 2.1rem; text-align: center; vertical-align: middle; border-radius: 5px;
  border: 1px solid var(--border); padding: 0; color: var(--ink);
}
.plate-heat-384 .well { width: 1.45rem; min-width: 1.45rem; height: 1.2rem; border-radius: 3px; font-size: 0.6rem; }
.plate-heat .well-unused { background: transparent; border-style: dotted; opacity: 0.5; }
.plate-heat .heat-none {
  background: repeating-linear-gradient(45deg, transparent 0 4px, rgba(127, 168, 159, 0.18) 4px 6px);
}
.plate-heat .well-positive, .plate-heat .well-negative, .plate-heat .well-blank { border-width: 2px; border-color: var(--muted); }
.plate-heat .well-mark { font-weight: 700; }
.pheat-0 { background: rgba(94, 234, 212, 0.05); }
.pheat-1 { background: rgba(94, 234, 212, 0.18); }
.pheat-2 { background: rgba(94, 234, 212, 0.32); }
.pheat-3 { background: rgba(94, 234, 212, 0.48); }
.plate-heat .pheat-4, .heat-swatch.pheat-4 { background: rgba(94, 234, 212, 0.68); color: #042f2e; }
.plate-heat .pheat-5, .heat-swatch.pheat-5 { background: rgba(94, 234, 212, 0.9); color: #042f2e; }
.plate-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem; margin-top: 0.5rem; font-size: 0.75rem; color: var(--muted); }
.heat-swatch { display: inline-block; width: 1.1rem; height: 0.8rem; border-radius: 2px; border: 1px solid var(--border); }
.plate-legend-marks { flex-basis: 100%; }
.plate-how { margin-top: 0.4rem; }
.plate-side { min-width: 0; display: flex; flex-direction: column; gap: 0.75rem; }
.plate-side table { width: 100%; }
.plate-samples th, .plate-samples td { white-space: nowrap; font-variant-numeric: tabular-nums; }
.plate-samples-caption { caption-side: top; text-align: left; font-size: 0.8rem; color: var(--muted); padding-bottom: 0.3rem; }
.plate-unreadable { font-size: 0.8rem; color: var(--warn); margin: 0; }
.plate-decide summary { cursor: pointer; font-size: 0.85rem; }
.plate-decide form { display: flex; flex-direction: column; gap: 0.4rem; margin-top: 0.5rem; }
.plate-decide textarea { width: 100%; }
.plate-decide button { align-self: flex-start; }
.plate-trail { margin: 0; padding-left: 1.1rem; font-size: 0.8rem; color: var(--muted); }
.plate-builder-settings, .plate-brush, .plate-brush-sample {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; margin-bottom: 0.6rem;
}
.plate-builder-settings label { display: flex; align-items: center; gap: 0.4rem; font-size: 0.85rem; }
.plate-builder-settings input[type="number"] { width: 4.5rem; }
.plate-builder-settings input[type="text"] { width: 9rem; }
.plate-brush-legend { font-size: 0.85rem; color: var(--muted); }
.plate-brush-role { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.85rem; }
.plate-brush-sample[hidden] { display: none; }
.plate-compound-pick { position: relative; min-width: 14rem; }
.plate-compound-pick input { width: 100%; }
#plate-concentration { width: 9rem; }
#plate-series-factor { width: 3rem; }
.plate-series { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.85rem; }
.plate-builder-grid td { padding: 0; }
.plate-builder-grid button.well {
  display: block; width: 2.6rem; height: 2.1rem; padding: 0; cursor: pointer; font: inherit; font-size: 0.66rem;
  background: transparent; color: var(--ink); touch-action: none;
}
.plate-heat-384.plate-builder-grid button.well { width: 1.45rem; height: 1.2rem; font-size: 0.55rem; }
.plate-builder-grid button.well-unused { border-style: dotted; }
.plate-builder-grid button.well-sample, .plate-map-view .well-sample { background: rgba(94, 234, 212, 0.28); }
.plate-builder-grid button.well-positive, .plate-map-view .well-positive { background: rgba(94, 234, 212, 0.85); color: #042f2e; font-weight: 700; }
.plate-builder-grid button.well-negative, .plate-map-view .well-negative { background: rgba(251, 191, 36, 0.3); font-weight: 700; }
.plate-builder-grid button.well-blank, .plate-map-view .well-blank { background: rgba(127, 168, 159, 0.25); font-weight: 700; }
.plate-builder-grid button.well-selecting { outline: 2px solid var(--accent); outline-offset: 1px; }
.plate-builder-summary { font-size: 0.85rem; color: var(--muted); margin: 0.5rem 0 0; }
.checkerboard-grid .well-growth { background: rgba(251, 191, 36, 0.12); }
.checkerboard-grid .well-clear { background: rgba(94, 234, 212, 0.10); }
.checkerboard-grid .well-unread { color: var(--muted); }
.checkerboard-grid .well-edge { outline: 2px solid var(--accent); outline-offset: -2px; }
#builder-checkerboard .builder-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.8rem; margin: 0.5rem 0; }
#builder-checkerboard .builder-row label { min-width: 12rem; color: var(--muted); font-size: 0.85rem; }
#builder-checkerboard select, #builder-checkerboard input { max-width: 100%; }
.qc-badge {
  display: inline-block; margin-left: 0.35rem; padding: 0 0.3rem;
  border-radius: 4px; border: 1px solid currentColor; text-align: center;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.66rem; font-weight: 700; line-height: 1.25; vertical-align: 1px; cursor: help;
}
.qc-badge.qc-badge-in { color: #34d399; background: rgba(52, 211, 153, 0.10); }
.qc-badge.qc-badge-out { color: #f87171; background: rgba(248, 113, 113, 0.14); }
.qc-badge.qc-badge-unknown { color: var(--warn); border-style: dashed; }
.qc-panel { display: flex; flex-direction: column; gap: 0.7rem; }
.qc-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.8rem; margin: 0; font-size: 0.85rem; }
.qc-count { white-space: nowrap; font-size: 0.8rem; color: var(--muted); }
.qc-count-out_of_range, .qc-count-missing, .qc-count-cant_tell, .qc-count-not_checked { color: var(--warn); font-weight: 600; }
.qc-count-in_range { color: #34d399; }
.qc-needs-decision, .qc-invalid {
  border: 1px solid var(--warn); border-left-width: 4px; border-radius: 6px; padding: 0.7rem 0.9rem;
  background: rgba(251, 191, 36, 0.06);
}
.qc-invalid { border-color: var(--danger); background: rgba(248, 113, 113, 0.08); }
.qc-unread { border: 1px solid var(--warn); border-left-width: 4px; border-radius: 6px; padding: 0.7rem 0.9rem; font-size: 0.85rem; }
.qc-unread .holds-mics-row { margin-top: 0.4rem; }
.qc-unchecked-compounds { font-size: 0.85rem; }
.qc-unchecked-compounds ul { margin: 0.3rem 0 0 1.1rem; padding: 0; }
.holds-mics-form { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; }
.qc-needs-decision ul { margin: 0.4rem 0 0.6rem 1.1rem; padding: 0; }
.qc-decision-form { display: flex; flex-direction: column; gap: 0.45rem; max-width: 46rem; }
.qc-decision-form fieldset { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.4rem 1.2rem; }
.qc-decision-form legend { font-weight: 600; margin-bottom: 0.3rem; }
.qc-decision-form textarea { width: 100%; }
.qc-decision-form button { align-self: flex-start; }
.qc-choice { display: inline-flex; align-items: center; gap: 0.35rem; }
.qc-heading { font-size: 0.95rem; margin: 0.3rem 0 0; }
.qc-decisions { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.qc-decision { font-size: 0.85rem; }
.qc-decision-superseded { opacity: 0.6; }
.qc-decision-badge { margin-right: 0.3rem; }
.qc-decision-invalidate .qc-decision-badge { color: var(--danger); }
.qc-decision-accept .qc-decision-badge { color: var(--accent); }
.qc-covers > summary, .qc-revise > summary, .qc-results > summary { cursor: pointer; font-size: 0.8rem; color: var(--muted); }
.qc-status { font-weight: 600; }
.qc-status-out_of_range, .qc-status-missing, .qc-status-cant_tell, .qc-status-not_checked { color: var(--warn); }
.qc-status-in_range { color: #34d399; }
.qc-status-no_range { color: var(--muted); font-weight: 400; }
.qc-actions { display: flex; flex-direction: column; gap: 0.4rem; }
.qc-inline-form { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.qc-invalid-badge { color: var(--danger); border-color: var(--danger); text-decoration: none; }
.qc-open-badge { color: var(--warn); border-color: var(--warn); text-decoration: none; }
.qc-rail-open { color: var(--warn); }
.sign-blocked { border-color: var(--warn); color: var(--ink); }
.medchem-row-label { font-size: 0.82rem; color: var(--muted); align-self: center; }
.ratio-heading { margin: 0.8rem 0 0.3rem; font-size: 0.9rem; }
.ratio-value strong { font-variant-numeric: tabular-nums; }
.ratio-from { font-size: 0.8rem; min-width: 16rem; }
.ratio-sources { font-size: 0.75rem; color: var(--muted); overflow-wrap: anywhere; }
.ratio-undefined .ratio-value strong { color: var(--muted); }
.strain-derivatives { margin: 0; padding-left: 1.1rem; }
.strain-provenance { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 0.2rem 0.75rem; margin: 0; }
.strain-provenance dt { color: var(--muted); font-size: 0.85rem; }
.strain-provenance dd { margin: 0; overflow-wrap: anywhere; }
.strain-lineage ol { list-style: none; margin: 0; padding: 0; }
.strain-lineage li { padding: 0.25rem 0; overflow-wrap: anywhere; }
.strain-lineage .lineage-ancestor::after { content: " ↓"; color: var(--muted); }
.strain-lineage .lineage-descendant { padding-left: min(calc((var(--depth, 1)) * 1.1rem), 40%); }
.strain-lineage .lineage-descendant::before { content: "↳ "; color: var(--muted); }
@media (min-width: 1100px) {
  .strain-lineage .lineage-chain { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 0.5rem; }
  .strain-lineage .lineage-ancestor::after { content: " →"; }
  .strain-lineage .lineage-tree {
    display: grid; grid-template-columns: repeat(var(--generations, 1), minmax(14rem, 1fr));
    gap: 0.15rem 1.5rem; margin-top: 0.5rem; overflow-x: auto;
  }
  .strain-lineage .lineage-descendant { grid-column: var(--depth, 1); padding-left: 0; }
}
.lineage-run { font-size: 0.85rem; color: var(--muted); }
.record-mutants { margin: 0.5rem 0 0; font-size: 0.9rem; }
.record-mutants ul { margin: 0.2rem 0 0; padding-left: 1.1rem; }
@media print {
  :root { color-scheme: light; }
  body { background: #fff !important; color: #000 !important; }
  .topbar, .assistant-widget, .selection-bar, .tour-hint, .nav-toggle, .page-section-chevron,
  .form-actions, .activity-filter-bar, .filter-bar, button, .follow-btn { display: none !important; }
  main { max-width: none; padding: 0; }
  .panel, .card { background: #fff !important; border: 1px solid #999 !important; box-shadow: none !important; break-inside: avoid; }
  * { color: #000 !important; text-shadow: none !important; }
  a { text-decoration: underline; }
  table { border-collapse: collapse; width: 100%; }
  th, td { border: 1px solid #999 !important; background: #fff !important; position: static !important; }
  .table-scroll, .data-table-scroll, .analysis-table-scroll, .scroller { overflow: visible !important; }
  [hidden="until-found"] { display: block !important; content-visibility: visible !important; }
}
.folder-card-export { margin: 0.25rem 0 0; }
.chem-term { color: inherit; text-decoration: underline dotted; text-underline-offset: 2px; }
.template-rows { display: flex; flex-direction: column; gap: 0.75rem; margin: 0.75rem 0; }
.template-row { padding: 0.9rem; }
.template-row-head { display: flex; gap: 1rem; flex-wrap: wrap; align-items: flex-start; }
.template-row-head .form-field { flex: 1 1 12rem; min-width: 0; margin-bottom: 0.6rem; }
.template-row-head .form-field:last-child { flex: 0 0 6rem; }
.template-row-position { width: 100%; }
.template-row-body { width: 100%; font-family: var(--mono, ui-monospace, SFMono-Regular, Menlo, monospace); }
@media (max-width: 640px) {
  .template-row-head { flex-direction: column; gap: 0; }
  .template-row-head .form-field, .template-row-head .form-field:last-child { flex: 1 1 auto; width: 100%; }
}
.is-pending { position: relative; cursor: progress; }
.is-pending::after {
  content: ""; display: inline-block; vertical-align: -0.12em; margin-left: 0.45em;
  width: 0.8em; height: 0.8em; border-radius: 50%;
  border: 2px solid currentColor; border-top-color: transparent;
  animation: walkthrough-spin 0.8s linear infinite;
}
@media (prefers-reduced-motion: reduce) { .is-pending::after { animation-duration: 2.4s; } }
.upload-progress { margin-top: 0.6rem; }
.upload-progress-bar { height: 6px; width: 0; border-radius: 3px; background: var(--accent); transition: width 0.2s ease-out; }
.upload-progress { background: linear-gradient(var(--border), var(--border)) no-repeat 0 0 / 100% 6px; }
.upload-progress-label { margin-top: 0.35rem; font-size: 0.8rem; color: var(--muted); }
#usage-rates th { text-transform: none; letter-spacing: normal; font-size: inherit; }
.usage-rate-help { display: block; font-weight: normal; margin-top: 0.15rem; }
#usage-rates td { white-space: nowrap; vertical-align: top; text-align: right; }
.method-code { overflow-x: auto; white-space: pre; max-height: 32rem; font-size: 0.8rem; padding: 0.6rem; background: var(--surface-2, rgba(127,127,127,0.08)); border-radius: 6px; }
.method-formula { overflow-x: auto; }
.method-pass { color: var(--success, #16a34a); }
.how-calculated { font-size: 0.85em; }
.panel.method { min-width: 0; max-width: 100%; }
.panel.method .table-scroll, .panel.method details { max-width: 100%; }
.panel.method li, .panel.method summary, .panel.method p { overflow-wrap: anywhere; }
fieldset.replicate-import, fieldset.phenotype-flag { min-width: 0; max-width: 100%; }
.replicate-import .table-scroll { overflow-x: auto; }
.figure-actions { display: contents; }
.figure-copy-note { flex-basis: 100%; }
.ms-panel { margin-top: 1rem; }
.ms-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: 1rem; }
.ms-pattern { display: flex; flex-wrap: wrap; gap: 0.3rem 0.9rem; margin: 0.3rem 0; }
.ms-pattern .is-top { color: var(--accent); font-weight: 600; }
.ms-panel .num { text-align: right; }
.ms-within { color: var(--accent); }
.ms-outside { color: var(--warn); }
.reaction-conditions { display: flex; flex-wrap: wrap; gap: 0.3rem 1.5rem; margin: 0.4rem 0; font-size: 0.9rem; }
.reaction-conditions > div { display: flex; gap: 0.4rem; min-width: 0; }
.reaction-conditions dt { color: var(--muted); }
.reaction-conditions dd { margin: 0; overflow-wrap: anywhere; }
.reaction-conditions-form { border: 1px solid var(--border); border-radius: 10px; padding: 0.6rem 0.9rem; margin: 1rem 0; }
.reaction-conditions-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: 0.5rem 1rem; }
.reaction-condition-pair { display: flex; gap: 0.4rem; align-items: center; }
.reaction-condition-pair input { min-width: 0; flex: 1 1 5rem; }
.strain-twin-notice {
  margin-bottom: 1.2rem;
  border-left: 3px solid var(--warn);
}
.strain-twin-notice p { margin: 0 0 0.4rem; }
.strain-twin-notice p:last-child { margin-bottom: 0; }
.strain-twin-title { font-weight: 600; }
.strain-twin-list { margin: 0 0 0.5rem; padding-left: 1.2rem; }
.strain-twin-chip { border-color: var(--warn); }
.access-flags {
  margin-bottom: 1.2rem;
  border-left: 3px solid var(--warn);
}
.access-flags h2 { margin: 0 0 0.5rem; font-size: 1rem; }
.access-flags ul { margin: 0; padding-left: 1.2rem; }
.access-flags li + li { margin-top: 0.5rem; }
.feature-preset { max-width: 62rem; }
.feature-preset + .feature-preset { margin-top: 0.8rem; }
.feature-preset h3 { margin: 0 0 0.4rem; font-size: 0.98rem; }
.feature-preset p { margin: 0 0 0.5rem; }
.feature-preset-state { font-size: 0.86rem; color: var(--muted); }
table.data-table td.access-reason {
  white-space: normal;
  overflow-wrap: anywhere;
  min-width: 12rem;
  max-width: 24rem;
}
.access-flags,
.access-panel > .field-help { max-width: 62rem; }
.access-panel + .access-panel { margin-top: 1.2rem; }
.access-panel h3 { margin-top: 1.4rem; }
.feature-note,
.feature-explain { max-width: 62rem; }
.feature-panel + .feature-panel { margin-top: 1.6rem; }
.feature-note p + p { margin-bottom: 0; }
.review-mode-panel { max-width: 62rem; }
.review-mode-form { display: grid; gap: 0.6rem; max-width: 40rem; margin-top: 0.8rem; }
.review-mode-form fieldset { border: 0; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.review-mode-choice { display: flex; gap: 0.6rem; align-items: flex-start; }
.review-mode-choice .card-meta { display: block; }
.review-mode-live { border-left: 3px solid var(--warn); padding-left: 0.75rem; margin: 0; }
table.data-table td.feature-effect,
table.data-table td.feature-reason {
  white-space: normal;
  overflow-wrap: anywhere;
  min-width: 14rem;
  max-width: 30rem;
}
table.data-table th[scope="row"] .feature-label,
table.data-table th[scope="row"] .feature-description { white-space: normal; }
.feature-label { display: block; font-weight: 650; }
.feature-description {
  display: block;
  margin-top: 0.15rem;
  font-weight: 400;
  font-size: 0.82rem;
  color: var(--muted);
  max-width: 24rem;
}
.feature-origin {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.75rem;
  color: var(--muted);
  white-space: normal;
}
.feature-origin-set { font-style: italic; }
.feature-actions { white-space: normal; }
.feature-actions .btn-sm { margin: 0.1rem 0.15rem 0.1rem 0; }
.badge-on {
  border-color: rgba(52,211,153,0.45);
  background: rgba(52,211,153,0.12);
  color: #34d399;
}
.badge-off {
  border-color: var(--border);
  background: var(--card);
  color: var(--muted);
}
.reason-dialog {
  width: min(28rem, calc(100vw - 2rem));
  max-width: 100%;
  padding: 1.2rem;
  color: var(--ink);
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.reason-dialog::backdrop { background: rgba(0, 0, 0, 0.55); }
.reason-dialog h2 { margin-top: 0; font-size: 1.05rem; overflow-wrap: anywhere; }
.reason-dialog textarea { width: 100%; box-sizing: border-box; }
.methods-index-list { list-style: none; padding: 0; margin: 1rem 0; display: grid; gap: 0.15rem; }
.methods-index-list li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem 0.6rem; padding: 0.45rem 0.2rem; border-bottom: 1px solid var(--border); }
.methods-index-title { font-weight: 600; overflow-wrap: anywhere; }
.method-index-awaiting { color: var(--muted); }
.method-technical { margin-top: 1rem; }
.method-technical > summary { cursor: pointer; color: var(--muted); }
.tour-list-subhead { margin: 1rem 0 0.2rem; font-size: 0.95rem; }
@media (max-width: 640px) {
  .assistant-widget { top: 0.9rem; bottom: auto; right: calc(1.25rem + 40px + 0.5rem); z-index: 11; }
  .assistant-fab { width: 40px; height: 40px; box-shadow: none; }
  .assistant-fab svg { width: 18px; height: 18px; }
  .topbar .nav-toggle { margin-left: calc(40px + 0.5rem); }
  .tour-hint { bottom: auto; top: 52px; }
  .tour-hint::after { display: none; }
  body:has(#site-nav:not([hidden])) .tour-hint { display: none; }
  body:has(.topbar .nav-menu:not([hidden])) .tour-hint { display: none; }
}
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.dist-table th, .dist-table td { white-space: nowrap; }
.dist-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.dist-table .dist-agent { max-width: 12rem; white-space: normal; overflow-wrap: anywhere; vertical-align: top; text-align: left; }
.dist-table .dist-kind { font-weight: 400; color: var(--muted); text-align: left; }
.dist-table tbody.dist-block { border-top: 2px solid var(--border); }
.dist-table .dist-end { background: color-mix(in srgb, var(--accent) 14%, transparent); }
.dist-legend .dist-swatch { display: inline-block; width: 0.9em; height: 0.9em; border-radius: 2px; vertical-align: -0.1em; }
.time-kill-table td.time-kill-from-inoculum { color: var(--muted); font-style: italic; }
.time-kill-headline-rule { margin: 0.2rem 0; }
.time-kill-rules > summary { cursor: pointer; font-size: 0.8rem; color: var(--muted); }
.time-kill-inoculum-working { margin: 0 0 0.4rem; overflow-wrap: anywhere; }
.entry-ref { width: fit-content; margin: 0.8rem 0; padding: 0.6rem 0.8rem; border: 1px solid var(--border); border-radius: 8px; background: var(--card); max-width: 100%; }
.entry-ref figcaption { margin-top: 0.3rem; font-size: 0.85rem; overflow-wrap: anywhere; }
.entry-ref-depiction { overflow-x: auto; max-width: 100%; }
.entry-ref-depiction svg { max-width: 100%; height: auto; }
.entry-ref-title { font-weight: 600; }
.entry-ref-meta { color: var(--muted); }
.entry-ref-note, .entry-ref-action { display: block; margin-top: 0.3rem; color: var(--muted); }
.entry-ref-hidden { color: var(--muted); font-style: italic; }
.editor-ref-results { list-style: none; padding: 0; margin: 0.4rem 0; display: grid; gap: 0.2rem; max-height: 14rem; overflow-y: auto; }
.editor-ref-result { background: none; border: 1px solid var(--border); border-radius: 6px; padding: 0.25rem 0.6rem; color: var(--accent); cursor: pointer; }
.editor-ref-paste-actions { display: flex; gap: 0.5rem; margin: 0.4rem 0; }
.strain-merge-panel { margin-top: 0.6rem; }
.strain-merge-panel summary { cursor: pointer; }
.strain-merge-panel textarea, .strain-merge-panel select { max-width: 100%; box-sizing: border-box; }
:where(input:not([type="checkbox"], [type="radio"], [type="hidden"], [type="file"], [type="range"],
             [type="color"], [type="submit"], [type="button"], [type="reset"], [type="image"]),
       select, textarea) {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.45rem 0.65rem;
  color: var(--ink);
  font-size: 0.92rem;
  font-family: inherit;
}
:where(input:not([type="checkbox"], [type="radio"], [type="hidden"], [type="file"], [type="range"],
             [type="color"], [type="submit"], [type="button"], [type="reset"], [type="image"]),
       select, textarea):focus { outline: none; border-color: var(--accent-dim); }
.builder-actions { justify-content: flex-end; }
@media (max-width: 640px) {
  .builder-actions {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
    margin: 0; padding: 0.6rem 4.5rem 0.6rem 1rem;
    justify-content: flex-start; flex-wrap: wrap;
    background: var(--bg); border-top: 1px solid var(--border);
  }
  .assay-builder { padding-bottom: 5rem; }
}
.procedure-digest { overflow-wrap: anywhere; word-break: break-all; }
#procedure-current, #procedure-versions, #procedure-runs, #record-detail-header h1 { overflow-wrap: anywhere; min-width: 0; }
.procedure-body { overflow-wrap: anywhere; }
.procedure-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.2rem; align-items: start; }
.procedure-main, .procedure-side { min-width: 0; }
.procedure-side > .panel + .panel { margin-top: 1.2rem; }
.procedure-body { max-width: 75ch; line-height: 1.55; }
@media (min-width: 1100px) {
  .procedure-layout { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
}
.search-form input[type="search"] { flex: 1 1 18rem; min-width: 0; }
.search-chosen { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; margin: -0.75rem 0 1.25rem; }
.search-chosen-chip {
  display: inline-flex; gap: 0.35rem; align-items: center; padding: 0.2rem 0.65rem;
  border: 1px solid var(--accent-dim); border-radius: 999px; color: var(--ink); text-decoration: none; font-size: 0.85rem;
}
.search-clear-all { font-size: 0.85rem; }
.search-layout { display: grid; grid-template-columns: minmax(12rem, 16rem) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.search-layout > .search-results:only-child { grid-column: 1 / -1; }
.search-facets-box > summary { display: none; }
.search-facet { margin-bottom: 1.1rem; }
.search-facet h2 { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); margin: 0 0 0.4rem; }
.search-facet ul { list-style: none; margin: 0; padding: 0; }
.search-facet a {
  display: flex; justify-content: space-between; gap: 0.75rem; padding: 0.25rem 0.5rem; border-radius: 6px;
  color: var(--ink); text-decoration: none; font-size: 0.9rem;
}
.search-facet a:hover { background: var(--card-hover); }
.search-facet a.selected { background: var(--card); outline: 1px solid var(--accent-dim); }
.search-facet-label { overflow-wrap: anywhere; }
.search-count { color: var(--muted); font-variant-numeric: tabular-nums; }
.search-summary { color: var(--muted); margin: 0 0 0.75rem; }
.search-result-list { list-style: none; margin: 0; padding: 0; }
.search-result {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 0.15rem 0.75rem; align-items: baseline;
  padding: 0.7rem 0.9rem; border: 1px solid var(--border); border-radius: 10px; background: var(--card); margin-bottom: 0.5rem;
}
.search-kind { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); }
.search-title { font-weight: 600; overflow-wrap: anywhere; }
.search-detail { grid-column: 2 / 4; color: var(--muted); font-size: 0.85rem; overflow-wrap: anywhere; }
.search-when { color: var(--muted); font-size: 0.8rem; white-space: nowrap; }
@media (max-width: 760px) {
  .search-layout { grid-template-columns: minmax(0, 1fr); }
  .search-facets-box > summary {
    display: list-item; cursor: pointer; font-weight: 600; padding: 0.5rem 0.75rem;
    border: 1px solid var(--border); border-radius: 8px; background: var(--card);
  }
  .search-facets-box[open] > summary { margin-bottom: 0.75rem; }
  .search-facets { display: flex; flex-wrap: wrap; gap: 0 1.25rem; }
  .search-facet { flex: 1 1 12rem; min-width: 0; }
  .search-result { grid-template-columns: minmax(0, 1fr) auto; }
  .search-kind { grid-column: 1 / -1; }
  .search-detail { grid-column: 1 / -1; }
}
.offscale-choice-summary { margin: 0 0 0.6rem; }
.offscale-choice .form-actions { margin-top: 0; }
.offscale-grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
  gap: 0.3rem 1.2rem;
}
.offscale-grid li { display: flex; align-items: baseline; gap: 0.4rem; font-size: 0.86rem; min-width: 0; }
.offscale-grid-count { margin-left: auto; color: var(--muted); font-size: 0.78rem; white-space: nowrap; }
.review-columns { display: grid; gap: 0.8rem 1.2rem; }
.review-columns > * { min-width: 0; margin: 0; }
@media (min-width: 1100px) {
  .offscale-form { max-width: none; }
  .review-columns { grid-template-columns: repeat(auto-fill, minmax(24rem, 1fr)); align-items: start; }
  .review-columns.phenotype-flags { grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); }
  .review-columns.header-blocks { grid-template-columns: repeat(auto-fill, minmax(34rem, 1fr)); }
}
.batch-bulk { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.75rem; margin: 0.6rem 0; }
.batch-held td:first-child { box-shadow: inset 3px 0 0 var(--warning, #f5c26b); }
.batch-held-label { margin-top: 0.2rem; }
.batch-reason textarea { width: 100%; }
@media (max-width: 640px) {
  .batch-collisions td:last-child label { display: block; white-space: nowrap; }
}
.batch-assist-offer { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1rem; }
.batch-assist-offer > div { flex: 1 1 28rem; min-width: 0; }
.batch-assist-dialog {
  width: min(44rem, calc(100vw - 2rem)); max-height: calc(100vh - 3rem); overflow-y: auto;
  border: 1px solid var(--border); border-radius: 10px; padding: 1.2rem 1.4rem;
  background: var(--card, var(--bg)); color: var(--ink);
}
.batch-assist-dialog::backdrop { background: rgba(0, 0, 0, 0.55); }
.batch-assist-dialog h2 { margin-top: 0; font-size: 1.15rem; overflow-wrap: anywhere; }
.batch-assist-dialog select, .batch-assist-dialog input[type="text"] { width: 100%; max-width: 100%; }
.batch-assist-question { border-top: 1px solid var(--border); padding-top: 0.7rem; }
.batch-assist-question label { overflow-wrap: anywhere; }
.batch-assist-note { font-size: 0.88rem; }
.batch-assist-sure li { margin: 0.25rem 0; overflow-wrap: anywhere; }
.batch-assist-summary { display: flex; align-items: center; gap: 0.5rem; font-size: 0.88rem; }
.link-button { background: none; border: none; padding: 0; color: var(--accent); font: inherit; cursor: pointer; text-decoration: underline; }
.new-assay-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 1.5rem; align-items: start; }
@media (max-width: 1000px) { .new-assay-grid { grid-template-columns: minmax(0, 1fr); } }
.new-assay-steps { display: grid; gap: 1rem; min-width: 0; }
.new-assay-step { display: grid; gap: 0.75rem; min-width: 0; margin: 0; }
.new-assay-step h2 { margin: 0; font-size: 1.05rem; display: flex; gap: 0.6rem; align-items: center; }
.step-num {
  display: inline-grid; place-items: center; width: 1.45rem; height: 1.45rem; border-radius: 50%; flex: none;
  background: var(--accent); color: var(--bg); font-size: 0.75rem; font-weight: 700;
}
.design-cards { display: grid; gap: 0.6rem; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); }
.design-card {
  display: grid; gap: 0.2rem; text-align: left; padding: 0.6rem 0.75rem; border-radius: 8px; cursor: pointer;
  background: var(--card); color: var(--ink); border: 1.5px solid var(--border); font: inherit; min-width: 0;
}
.design-card:hover { border-color: var(--accent-dim); }
.design-card[aria-pressed="true"] { border-color: var(--accent); background: rgba(94, 234, 212, 0.08); }
.design-card span { color: var(--muted); font-size: 0.8rem; overflow-wrap: anywhere; }
.axis-word { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); font-weight: 400; }
.pick-suggest { display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; font-size: 0.8rem; color: var(--muted); margin-top: 0.4rem; }
.pick-suggest:empty { display: none; }
.pick-suggest-btn {
  border: 1px solid var(--border); background: none; color: var(--ink); border-radius: 999px;
  padding: 0.05rem 0.6rem; font: inherit; cursor: pointer;
}
.pick-suggest-btn:hover { border-color: var(--accent); }
.pick-group-btn { display: inline-flex; gap: 0.35rem; align-items: baseline; max-width: 100%; }
.pick-group-name { overflow-wrap: anywhere; }
.pick-group-count { color: var(--muted); font-size: 0.72rem; font-variant-numeric: tabular-nums; }
.pick-group-btn[aria-pressed="true"] { border-color: var(--accent); background: rgba(94, 234, 212, 0.12); }
.pick-group-btn[aria-pressed="true"]::before { content: "✓"; color: var(--accent); }
.pick-group-btn[aria-pressed="mixed"] { border-style: dashed; border-color: var(--accent-dim); }
.pick-group-btn[aria-pressed="mixed"]::before { content: "–"; color: var(--accent-dim); }
.fixed-axes { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 0.4rem 0.75rem; margin: 0; }
.fixed-axes dt { color: var(--muted); font-size: 0.85rem; }
.fixed-axes dd { margin: 0; display: flex; flex-wrap: wrap; gap: 0.3rem; }
.more-details summary { cursor: pointer; color: var(--accent); font-weight: 600; }
.more-details-grid { display: grid; gap: 0.75rem 1rem; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); margin-top: 0.75rem; }
.more-details-wide { grid-column: 1 / -1; }
.more-details-grid .form-field { margin: 0; min-width: 0; }
.new-assay-actions { display: flex; gap: 0.75rem; align-items: center; flex-wrap: wrap; }
.new-assay-preview { position: sticky; top: calc(var(--topbar-h) + 1rem); display: grid; gap: 0.6rem; min-width: 0; margin: 0; }
.new-assay-preview { grid-template-columns: minmax(0, 1fr); }
.new-assay-preview h3 { margin: 0; font-size: 1rem; }
.preview-facts { margin: 0; color: var(--muted); font-size: 0.85rem; }
.preview-table-wrap { overflow: auto; max-height: min(32rem, calc(100vh - var(--topbar-h) - 8rem)); border: 1px solid var(--border); border-radius: 6px; }
.preview-table { border-collapse: collapse; font-size: 0.8rem; background-color: var(--card); }
.preview-table th, .preview-table td { border-bottom: 1px solid var(--border); border-right: 1px solid var(--border); padding: 0.3rem 0.55rem; white-space: nowrap; }
.preview-table thead { position: sticky; top: 0; z-index: 3; }
.preview-table thead th { background: var(--card); color: var(--accent); }
.preview-table tbody th { position: sticky; left: 0; background: var(--card); text-align: left; font-weight: 500; }
.preview-table thead th:first-child { position: sticky; left: 0; z-index: 2; color: var(--muted); }
.preview-table td { min-width: 3rem; }
.preview-empty { color: var(--muted); font-size: 0.9rem; padding: 1.1rem; text-align: center; border: 1px dashed var(--border); border-radius: 6px; }
.preview-error { color: var(--warn); }
.new-assay-empty-warning { color: var(--warn); margin: 0; }
.flow-steps ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.35rem; }
@media (min-width: 1001px) {
  .flow-steps ol { flex-wrap: nowrap; gap: 0.25rem; }
  .flow-steps li { min-width: 0; }
  .flow-steps .flow-step { max-width: 100%; padding: 0.2rem 0.45rem 0.2rem 0.25rem; gap: 0.25rem; font-size: 0.76rem; }
  .flow-step-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
.flow-step {
  display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.25rem 0.6rem 0.25rem 0.3rem;
  border: 1px solid var(--border); border-radius: 999px; background: none; color: var(--muted);
  font: inherit; font-size: 0.8rem; cursor: pointer;
}
.flow-step-num {
  display: inline-grid; place-items: center; width: 1.25rem; height: 1.25rem; border-radius: 50%;
  border: 1px solid var(--border); font-size: 0.7rem; font-weight: 700;
}
.flow-step:hover:not(:disabled) { border-color: var(--accent-dim); color: var(--ink); }
.flow-step[data-done="true"] .flow-step-num { background: var(--accent-dim); border-color: var(--accent-dim); color: var(--bg); }
.flow-step[aria-current="step"] { border-color: var(--accent); color: var(--ink); font-weight: 600; }
.flow-step[aria-current="step"] .flow-step-num { background: var(--accent); border-color: var(--accent); color: var(--bg); }
.flow-step:disabled { opacity: 0.5; cursor: default; }
.flow-viewport { position: relative; overflow-x: clip; min-width: 0; }
.flow-page[hidden] { display: none; }
.flow-page.flow-leaving { position: absolute; inset: 0 0 auto 0; pointer-events: none; }
.flow-page h2:focus { outline: none; }
.flow-page h2:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 4px; }
.flow-nav { display: flex; gap: 0.75rem; align-items: center; flex-wrap: wrap; }
.flow-nav .flow-next, .flow-nav .btn-primary[type="submit"] { margin-left: auto; }
.flow-nothing { color: var(--muted); }
.flow-error:empty { display: none; }
.flow-in-forward { animation: flow-in-forward 220ms ease-out both; }
.flow-in-back { animation: flow-in-back 220ms ease-out both; }
.flow-out-forward { animation: flow-out-forward 180ms ease-in both; }
.flow-out-back { animation: flow-out-back 180ms ease-in both; }
@keyframes flow-in-forward { from { opacity: 0; transform: translateX(2.5rem); } to { opacity: 1; transform: none; } }
@keyframes flow-in-back { from { opacity: 0; transform: translateX(-2.5rem); } to { opacity: 1; transform: none; } }
@keyframes flow-out-forward { to { opacity: 0; transform: translateX(-2.5rem); } }
@keyframes flow-out-back { to { opacity: 0; transform: translateX(2.5rem); } }
@media (prefers-reduced-motion: reduce) {
  .flow-in-forward, .flow-in-back, .flow-out-forward, .flow-out-back { animation: none; }
}
@media (max-width: 1000px) {
  .flow-viewport { height: min(30rem, 62vh); overflow-y: auto; }
}
.qc-live-summary {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.35rem 0.9rem; margin: 0 0 0.6rem;
  padding: 0.5rem 0.75rem; border: 1px solid var(--border); border-radius: 6px; background: var(--card);
  font-size: 0.84rem;
}
.qc-live-k { font-weight: 600; }
.qc-live-note { color: var(--muted); }
.qc-live-sum-in { color: #34d399; font-weight: 600; }
.qc-live-sum-out { color: var(--danger); font-weight: 600; }
.qc-live-sum-cant { color: var(--warn); font-weight: 600; }
.qc-live-sum-none { color: var(--muted); font-weight: 600; }
.editable-table td.qc-live-in { background: rgba(52, 211, 153, 0.10); }
.editable-table td.qc-live-out { background: rgba(248, 113, 113, 0.14); box-shadow: inset 0 0 0 2px var(--danger); }
.editable-table td.qc-live-cant { background: rgba(251, 191, 36, 0.10); outline: 2px dashed var(--warn); outline-offset: -2px; }
.editable-table td.qc-live-none { background: rgba(148, 163, 184, 0.08); }
.qc-live-state {
  display: block; font-size: 0.68rem; font-weight: 700; line-height: 1.2; padding: 0 0.3rem 0.15rem;
  white-space: nowrap; cursor: help;
}
.qc-live-in .qc-live-state { color: #34d399; }
.qc-live-out .qc-live-state { color: var(--danger); }
.qc-live-cant .qc-live-state { color: var(--warn); }
.qc-live-none .qc-live-state { color: var(--muted); }
.qc-live-rowtag, .qc-tag {
  display: inline-block; margin: 0 0.3rem 0 0.2rem; padding: 0 0.3rem; border: 1px solid var(--accent);
  border-radius: 4px; color: var(--accent); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.66rem; font-weight: 700; line-height: 1.3; vertical-align: 1px;
}
.editable-table tr.qc-live-row td:first-child { box-shadow: inset 3px 0 0 var(--accent); }
.qc-pick-table { font-size: 0.85rem; color: var(--muted); margin: 0.3rem 0 0; }
.qc-pick-table b { color: var(--ink); font-weight: 600; }
.qc-coverage { display: flex; flex-direction: column; gap: 0.45rem; margin-top: 0.5rem; }
.qc-coverage[hidden] { display: none; }
.qc-cov-row {
  display: grid; grid-template-columns: 1.2rem minmax(0, 1fr); gap: 0.4rem; align-items: start;
  padding: 0.45rem 0.6rem; border: 1px solid var(--border); border-radius: 6px; font-size: 0.84rem;
}
.qc-cov-row .qc-cov-icon { font-weight: 700; text-align: center; }
.qc-cov-ok { background: rgba(52, 211, 153, 0.07); }
.qc-cov-ok .qc-cov-icon { color: #34d399; }
.qc-cov-warn { background: rgba(251, 191, 36, 0.08); border-color: var(--warn); }
.qc-cov-warn .qc-cov-icon { color: var(--warn); }
.qc-cov-info .qc-cov-icon { color: var(--muted); }
.qc-cov-row ul { margin: 0.2rem 0 0; padding-left: 1.1rem; color: var(--muted); }
.qc-cov-meter { display: block; height: 5px; max-width: 14rem; margin-top: 0.3rem; border-radius: 3px; background: var(--border); overflow: hidden; }
.qc-cov-meter > i { display: block; height: 100%; background: var(--accent); }
.preview-table tr.preview-qc-row th { box-shadow: inset 3px 0 0 var(--accent); }
.qc-view-meta { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 0.2rem 0.9rem; margin: 0; font-size: 0.85rem; }
.qc-view-meta dt { color: var(--muted); }
.qc-view-meta dd { margin: 0; overflow-wrap: anywhere; }
.qc-view-filters { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-bottom: 0.75rem; font-size: 0.85rem; }
.qc-view-filters select { max-width: 100%; }
.qc-view-table td, .qc-view-table th { white-space: nowrap; }
.qc-view-table tbody th {
  text-transform: none; letter-spacing: normal; font-size: inherit; font-weight: 500; color: var(--ink);
}
.qc-view-table .qc-aka { display: block; color: var(--muted); font-size: 0.78rem; font-weight: 400; }
.qc-bind-ok { color: #34d399; }
.qc-bind-bad { color: var(--warn); }
.qc-bind-none { color: var(--muted); }
.view-switch a.view-switch-btn { text-decoration: none; }
table.data-table thead tr.dt-eyebrow-row th.dt-medium-band {
  color: var(--ink);
  font-size: 0.72rem;
  letter-spacing: 0.01em;
  font-weight: 600;
  text-transform: none;
  background-image: linear-gradient(rgba(94,234,212,0.10), rgba(94,234,212,0.10));
  border-bottom-color: var(--accent-dim);
}
table.data-table thead tr.dt-eyebrow-row th.dt-medium-band.dt-medium-alt {
  background-image: linear-gradient(rgba(148,163,184,0.10), rgba(148,163,184,0.10));
}
table.data-table thead tr.dt-eyebrow-row th.dt-medium-band .dt-band-label {
  position: sticky;
  left: calc(var(--dt-frozen-width, 0px) + 0.4rem);
  display: inline-block;
  white-space: nowrap;
}
@media (max-width: 640px) {
  table.data-table thead tr.dt-eyebrow-row th.dt-medium-band .dt-band-label { white-space: normal; }
}
.sheet-condition-medium a { color: inherit; }
.media-field .media-add-row { display: flex; flex-wrap: wrap; gap: 0.4rem 0.6rem; align-items: center; font-size: 0.88rem; }
#media-chooser { display: grid; gap: 0.5rem; }
.table-reps { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.6rem; font-size: 0.88rem; }
.table-reps input[type="number"] { width: 4rem; }
.media-matrix-wrap { overflow-x: auto; max-width: 100%; }
table.media-matrix { border-collapse: collapse; font-size: 0.85rem; }
table.media-matrix th, table.media-matrix td { border: 1px solid var(--border); padding: 0.25rem 0.5rem; text-align: left; white-space: nowrap; }
table.media-matrix thead th { color: var(--accent); font-weight: 600; background: var(--bg-2); }
table.media-matrix td.media-matrix-cell { text-align: center; }
.media-new-form { display: flex; flex-wrap: wrap; gap: 0.4rem 0.6rem; align-items: center; padding: 0.5rem; border: 1px dashed var(--border); border-radius: 6px; font-size: 0.85rem; }
.media-notice:empty { display: none; }
.preview-table thead tr.preview-band-row th { font-size: 0.7rem; color: var(--ink); background-image: linear-gradient(rgba(94,234,212,0.10), rgba(94,234,212,0.10)); }
.preview-table thead tr.preview-band-row th.preview-band { border-left: 2px solid var(--accent); }
table.media-table td { vertical-align: top; }
table.media-table tr.media-first td { border-top: 2px solid var(--border); }
table.media-table tr.media-single td { border-top: 1px solid var(--border); }
.media-remove { margin-top: 0.35rem; }
.media-removed-list { list-style: none; margin: 0.5rem 0 0; padding: 0; display: grid; gap: 0.5rem; }
.media-unreviewed { color: var(--warn); }
.media-add-forms { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.media-alias-form { display: flex; gap: 0.3rem; margin-top: 0.3rem; flex-wrap: wrap; }
#editable-table thead tr.editor-band-row th { font-size: 0.72rem; padding: 0.2rem 0.5rem; text-align: left; }
#editable-table thead tr.editor-band-row th.dt-medium-band { background-image: linear-gradient(rgba(94,234,212,0.10), rgba(94,234,212,0.10)); color: var(--ink); }
#editable-table thead tr.editor-band-row .dt-band-label { position: sticky; left: calc(var(--editor-frozen, 0px) + 0.4rem); display: inline-block; white-space: nowrap; }
#editable-table thead tr#header-row th { top: var(--editor-band-h, 0px); }
#editable-table thead tr#band-row th { top: var(--editor-band-h, 0px); }
#editable-table thead th.editor-medium-start { border-left: 2px solid var(--accent); }
.assistant-deck {
  align-self: stretch; display: flex; align-items: center; gap: 0.6rem;
  padding: 0.55rem 0.7rem; border: 1px solid var(--border); border-radius: 8px; background: var(--card);
}
.assistant-deck-icon { color: var(--accent); font-size: 1.2rem; }
.assistant-deck-body { flex: 1; min-width: 0; }
.assistant-deck-title { font-weight: 600; overflow-wrap: anywhere; }
.assistant-deck-meta { color: var(--muted); font-size: 0.78rem; }
.selection-deck-dialog { max-width: min(34rem, calc(100vw - 2rem)); }
.selection-deck-dialog form { display: flex; flex-direction: column; gap: 0.55rem; }
.selection-deck-dialog textarea { width: 100%; }
.ws-sp { color: var(--muted); letter-spacing: -0.05em; }
.ws-ctl { color: var(--warn); font-family: var(--mono, ui-monospace, monospace); font-size: 0.85em; }
.ab-header { font-weight: 500; overflow-wrap: anywhere; white-space: normal; }
.ab-mapping td, .ab-mapping th { white-space: normal; vertical-align: top; }
.ab-mapping select { max-width: 100%; }
.ab-names { display: grid; gap: 0.75rem 1rem; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); margin-bottom: 1rem; }
.ab-pill { display: inline-flex; align-items: center; font-size: 0.72rem; font-weight: 600; border: 1px solid currentColor; border-radius: 999px; padding: 0.05rem 0.5rem; white-space: nowrap; }
.ab-ok { color: var(--accent); }
.ab-warn { color: var(--warn); }
.ab-none { color: var(--muted); }
.ab-count-ok { color: var(--accent); }
.ab-count-warn { color: var(--warn); font-weight: 600; }
.ab-counts { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: 0.6rem; margin: 0.75rem 0; }
.ab-counts > div { display: grid; gap: 0.1rem; border: 1px solid var(--border); border-radius: 8px; padding: 0.5rem 0.7rem; }
.ab-counts b { font-size: 1.2rem; font-variant-numeric: tabular-nums; }
.ab-counts span { font-size: 0.78rem; color: var(--muted); }
.ab-call { font-family: var(--mono, ui-monospace, monospace); font-weight: 700; }
.ab-call-S { color: var(--accent); }
.ab-call-I { color: var(--warn); }
.ab-call-R { color: var(--danger); }
.ab-differs, tr.reference-differs td { background: rgba(251, 191, 36, 0.10); }
.ab-no-changes { padding: 0.5rem 0.7rem; border: 1px solid var(--accent); border-radius: 6px; }
.batch-antibiogram-offer { display: flex; gap: 0.6rem; align-items: flex-start; cursor: pointer; }
.reference-mics + .reference-mics { margin-top: 1.25rem; }
.reference-mics-table td, .reference-mics-table th { white-space: normal; }
.oi-verb-link { text-decoration: none; cursor: pointer; transition: background 0.12s, box-shadow 0.12s; }
.oi-verb-link:hover { box-shadow: inset 0 0 0 1px currentColor; filter: brightness(1.15); }
.oi-verb-link:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.act-arrived { box-shadow: 0 0 0 3px rgba(94, 234, 212, 0.55); border-radius: 6px; transition: box-shadow 0.4s; }
.act-notice {
  margin: 0 0 1rem; padding: 0.6rem 0.85rem; border: 1px solid var(--warn); border-left-width: 4px;
  border-radius: 6px; background: rgba(251, 191, 36, 0.06); font-size: 0.88rem;
}
.idle-warning {
  position: fixed; left: 50%; bottom: 1rem; transform: translateX(-50%); z-index: 9800;
  display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap;
  width: min(36rem, calc(100vw - 2rem)); box-sizing: border-box; padding: 0.8rem 1rem;
  background: var(--card); border: 1px solid var(--warn); border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
}
.idle-warning[hidden] { display: none; }
.idle-warning p { margin: 0; flex: 1 1 16rem; }
.idle-warning-icon { font-size: 1.3rem; color: var(--warn); }
#idle-warning-countdown { font-variant-numeric: tabular-nums; }
.file-fingerprint { margin-top: 0.2rem; font-size: 0.78rem; color: var(--muted); }
.file-fingerprint summary { cursor: pointer; width: fit-content; }
.file-fingerprint[open] { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; }
.file-fingerprint[open] summary { flex-basis: 100%; }
.file-fingerprint code { font-family: ui-monospace, "SF Mono", Consolas, monospace; }
.file-fingerprint-full { overflow-wrap: anywhere; color: var(--ink); user-select: all; }
.file-fixity-problem { margin: 0.25rem 0 0; font-size: 0.8rem; color: var(--warn); font-weight: 600; }
.ai-notice { margin: 0; font-size: 0.75rem; line-height: 1.35; color: var(--muted); }
.assistant-panel .ai-notice { padding: 0 0.8rem 0.7rem; margin-top: -0.4rem; }
.analysis-prompt-bar + .ai-notice { margin: 0.35rem 0 0.25rem; }
.bug-report-preview {
  white-space: pre-wrap; overflow-wrap: anywhere; max-height: 16rem; overflow: auto;
  margin: 0.4rem 0 0.6rem; padding: 0.6rem 0.75rem; font-size: 0.85rem;
  background: var(--bg); border: 1px solid var(--border); border-radius: 6px; color: var(--ink);
}
.bug-report-share { border: 1px solid var(--border); border-radius: 8px; padding: 0.75rem 0.9rem; margin: 0.75rem 0; }
.bug-report-share legend { padding: 0 0.3rem; font-weight: 600; }
.bug-steps { display: flex; flex-wrap: wrap; gap: 0.35rem 1.2rem; list-style: none; margin: 0.4rem 0 0.8rem; padding: 0; }
.bug-step { color: var(--muted); }
.bug-step::before { content: "○ "; }
.bug-step-done { color: var(--ink); font-weight: 600; }
.bug-step-done::before { content: "✓ "; color: var(--accent); }
.bug-triage { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 0.25rem 0.8rem; margin: 0.5rem 0; }
.bug-triage dt { color: var(--muted); }
.bug-triage dd { margin: 0; overflow-wrap: anywhere; }
.bug-history { margin: 0.4rem 0 0.8rem; padding-left: 1.2rem; }
.bug-history li { margin: 0.2rem 0; overflow-wrap: anywhere; }
.bug-report-words { overflow-wrap: anywhere; }
.bug-report-list { list-style: none; margin: 0; padding: 0; }
.bug-report-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.25rem 1rem; padding: 0.55rem 0; border-bottom: 1px solid var(--border); }
.bug-report-row a { overflow-wrap: anywhere; min-width: 0; }
.bug-report-meta { color: var(--muted); font-size: 0.85rem; }
.bug-status { color: var(--ink); font-weight: 600; }
.assistant-feedback-bug { display: inline-flex; align-items: center; gap: 0.3rem; margin-right: auto; font-size: 0.8rem; color: var(--muted); }
.assistant-feedback-bug-link { font-weight: 600; }
.equipment-flag { color: var(--warn); font-weight: 600; }
.instrument-use { padding: 0.35rem 0; border-top: 1px solid var(--border); }
.instrument-use:first-of-type { border-top: 0; }
.instrument-use p { margin: 0.15rem 0; overflow-wrap: anywhere; }
.instrument-concern { border-left: 3px solid var(--warn); padding-left: 0.5rem; }
.instruments-concern { margin-left: 0.5rem; font-size: 0.85rem; }
.instrument-use-add { display: flex; flex-wrap: wrap; gap: 0.4rem 0.6rem; align-items: center; margin-top: 0.5rem; }
.instrument-use-add select { flex: 1 1 14rem; min-width: 0; max-width: 100%; }
.instrument-ack { flex-basis: 100%; font-size: 0.85rem; }
.instruments-field { border: 0; padding: 0; margin: 0; min-width: 0; }
.instruments-field legend { font-weight: 600; padding: 0; margin-bottom: 0.25rem; }
.instrument-choices { max-height: 11rem; overflow-y: auto; display: grid; gap: 0.2rem; }
.instrument-choice { display: block; font-weight: 400; overflow-wrap: anywhere; }
.blocker-waiting { margin: 0.5rem 0; padding: 0.5rem 0.65rem; border-left: 3px solid var(--warn); background: rgba(251, 191, 36, 0.06); border-radius: 4px; }
.blocker-waiting-label { margin: 0 0 0.25rem; font-weight: 600; font-size: 0.85rem; }
.blocker-wait-list { margin: 0; padding-left: 1.1rem; font-size: 0.85rem; }
.blocker-wait-list .blocker-wait-list { margin-top: 0.2rem; }
.blocker-wait-item { margin: 0.15rem 0; overflow-wrap: anywhere; }
.blocker-wait-meta { color: var(--muted); }
.blocker-withdraw { margin-left: 0.4rem; }
.blocker-withdraw-form { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.3rem; }
.blocker-withdraw-reason { flex: 1 1 12rem; min-width: 0; }
.blocker-behind { margin: 0.35rem 0; font-size: 0.82rem; font-weight: 600; }
.wait-mode { border: 0; padding: 0; margin: 0 0 0.6rem; display: flex; flex-wrap: wrap; gap: 0.3rem 1rem; }
.wait-mode legend { font-weight: 600; margin-bottom: 0.3rem; }
.oi-waits-on { margin-top: 0.25rem; font-size: 0.75rem; color: var(--muted); overflow-wrap: anywhere; }
.oi-waits-on-label { font-weight: 600; color: var(--ink); }
.upload-traces { margin-top: 0.75rem; display: flex; flex-direction: column; gap: 0.5rem; }
.upload-trace { margin: 0; }
.upload-trace-when { font-weight: 400; }
.upload-trace-cut-flag { font-weight: 600; color: var(--warn); }
.upload-trace-step { color: var(--ink); }
.upload-trace-cut { color: var(--warn); font-weight: 600; }
.upload-trace-cut::before { background: var(--warn); }
.upload-trace-detail { margin: 0.2rem 0 0; padding-left: 1rem; color: var(--muted); font-weight: 400; overflow-wrap: anywhere; }
.upload-trace-earlier > summary { cursor: pointer; font-size: 0.76rem; color: var(--muted); padding: 0.2rem 0; }
.upload-trace-earlier > .upload-trace { margin-top: 0.4rem; }
.legal-hold-list { margin: 0.4rem 0 0; padding-left: 1.1rem; }
.legal-hold-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.5rem 0.75rem; }
.legal-hold-form label { display: flex; flex-direction: column; gap: 0.2rem; font-size: 0.82rem; min-width: 0; max-width: 100%; }
.legal-hold-form input, .legal-hold-form select { min-width: 0; max-width: 100%; }
.legal-hold-form .card-meta { flex-basis: 100%; margin: 0; }
.legal-hold-place { margin: 0.5rem 0; }
.legal-hold-place summary { cursor: pointer; font-size: 0.85rem; color: var(--muted); }
.legal-hold-facts { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 0.35rem 1rem; margin: 0; }
.legal-hold-facts dt { color: var(--muted-2); }
.legal-hold-facts dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 600px) { .legal-hold-facts { grid-template-columns: minmax(0, 1fr); } }
.next-step-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.6rem 1rem; margin: 0.75rem 0; }
.next-step-text { display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; }
.next-step-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.next-step-actions label { display: flex; align-items: center; gap: 0.35rem; font-size: 0.8rem; }
.next-step-actions input[type="text"] { min-width: 12rem; max-width: 100%; }
.qcw-drafts-list { margin: 0; padding-left: 1.1rem; }
.qcw-problem-list { margin: 0.25rem 0 0; padding-left: 1.1rem; overflow-wrap: anywhere; }
.qcw-inline-form { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.75rem; margin: 0.4rem 0; }
.qcw-inline-form label { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; min-width: 0; }
.qcw-inline-form select { max-width: 100%; }
.qcw-grid th, .qcw-grid td { vertical-align: top; }
.qcw-col, .qcw-agent { min-width: 9rem; }
.qcw-header, .qcw-label { display: block; font-weight: 600; }
.qcw-mechanism, .qcw-match { display: block; font-size: 0.78rem; font-weight: 400; }
.qcw-cell { white-space: nowrap; }
.qcw-cell-btn { background: none; border: 1px dashed transparent; border-radius: 4px; color: inherit; cursor: pointer; font: inherit; padding: 0.1rem 0.3rem; }
.qcw-cell-btn:hover, .qcw-cell-btn:focus-visible { border-color: var(--muted); }
.qcw-blank { color: var(--muted); }
.qcw-error { background: color-mix(in srgb, var(--danger, #c0392b) 14%, transparent); }
.qcw-warning { background: color-mix(in srgb, var(--warning, #b7791f) 14%, transparent); }
.qcw-corrected .qcw-cell-btn { border-color: var(--accent, #5eead4); }
.qcw-dropped { opacity: 0.45; }
.qcw-flag { display: block; max-width: 16rem; white-space: normal; font-size: 0.75rem; }
.qcw-menu summary { cursor: pointer; font-size: 0.78rem; font-weight: 400; }
.qcw-menu-form { display: flex; flex-direction: column; gap: 0.35rem; margin-top: 0.35rem; font-weight: 400; }
.qcw-menu-form label { display: flex; flex-direction: column; gap: 0.2rem; font-size: 0.8rem; }
.qcw-menu-form input { min-width: 0; max-width: 100%; }
.qcw-edit { max-width: min(28rem, calc(100vw - 2rem)); width: 100%; box-sizing: border-box; }
.qcw-actions { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; }
.retention-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.5rem 0.75rem; margin-top: 0.4rem; }
.retention-form label { display: flex; flex-direction: column; gap: 0.2rem; font-size: 0.82rem; min-width: 0; max-width: 100%; }
.retention-form input { min-width: 0; max-width: 100%; }
.retention-form input[type="number"] { width: 6rem; }
.retention-form-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.retention-change summary, .retention-decide summary { cursor: pointer; font-size: 0.85rem; }
.retention-due-pager { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; margin-top: 0.75rem; }
.compound-table-wrap { max-width: 100%; overflow-x: auto; }
.compound-table { width: 100%; border-collapse: collapse; font-size: 0.86rem; }
.compound-table th, .compound-table td { padding: 0.3rem 0.35rem; border-bottom: 1px solid var(--border); text-align: left; vertical-align: middle; }
.compound-table thead th { font-size: 0.78rem; font-weight: 600; vertical-align: bottom; }
.compound-table-unit { display: block; color: var(--muted); font-weight: 400; }
.compound-table-starts-head .compound-table-set-all { display: block; font-size: 0.76rem; font-weight: 400; text-align: left; white-space: nowrap; }
.compound-table input { padding: 0.25rem 0.4rem; min-height: 0; }
.compound-table .btn-small { padding: 0.2rem 0.5rem; }
.compound-table-set-all-box { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; margin-top: 0.3rem; font-weight: 400; white-space: normal; }
.compound-table-set-all-box[hidden] { display: none; }
.compound-table .compound-name { overflow-wrap: anywhere; }
.compound-table .compound-actions { text-align: right; white-space: nowrap; }
.compound-table .compound-actions > * + * { margin-left: 0.35rem; }
.compound-row .compound-combo, .compound-row .compound-ratio { color: var(--muted); }
.compound-row.is-combo-only .compound-name strong { color: var(--muted); text-decoration: line-through; }
.compound-only-combo { display: block; color: var(--muted); font-size: 0.78rem; }
.pairing-row td { border-bottom-style: dashed; }
.pairing-row .pairing-of { color: var(--muted); padding-left: 1.1rem; }
.pairing-row.is-refused .pairings-ratio-input { border-color: var(--danger); }
.pairing-start { color: var(--muted); font-size: 0.82rem; }
.pairing-partner { font-weight: 600; overflow-wrap: anywhere; }
.pairing-status { font-size: 0.78rem; color: var(--muted); }
.pairing-status-refused { display: block; color: var(--danger); }
.pairing-pick-row > td { padding: 0 0 0.45rem; }
.compound-remove { background: none; border: 0; color: var(--muted); cursor: pointer; padding: 0.15rem 0.35rem; font-size: 0.95rem; }
.compound-remove:hover, .compound-remove:focus-visible { color: var(--danger); }
.compound-table.is-plain th:nth-child(2), .compound-table.is-plain th:nth-child(3), .compound-table.is-plain th:nth-child(4),
.compound-table.is-plain td:nth-child(2), .compound-table.is-plain td:nth-child(3), .compound-table.is-plain td:nth-child(4) { display: none; }
.compound-table-foot { margin: 0.4rem 0 0; font-weight: 600; }
.compound-table-foot:empty { display: none; }
#compounds-pick #compound-tag-chip-row { display: none; }
#reps-chips .tag-chip-remove { display: none; }
.reps-chips { margin-bottom: 0.6rem; }
.pairings-ratio { display: inline-flex; align-items: center; gap: 0.25rem; }
.pairings-ratio-input { width: 3rem; text-align: right; }
.compound-table .pairings-ratio-input { width: 2.6rem; }
.pairings-ratio-input[aria-invalid="true"] { border-color: var(--danger); }
.pairings-basis, .pairings-why { color: var(--muted); font-size: 0.78rem; }
.compound-table .pairings-basis { display: none; }
.pairings-error { display: block; color: var(--danger); font-size: 0.78rem; }
.pairings-error:empty { display: none; }
.pairings-pick { padding: 0.55rem; border: 1px solid var(--accent); border-radius: 8px; }
.pairings-search { width: 100%; }
.pairings-options { list-style: none; margin: 0.4rem 0; padding: 0; max-height: 12rem; overflow-y: auto; }
.pairings-option { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; padding: 0.15rem 0; }
.pairings-none { color: var(--muted); font-size: 0.82rem; }
.pairings-pick-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.4rem; border-top: 1px solid var(--border); padding-top: 0.45rem; }
.pairings-inherit { font-size: 0.82rem; }
.starts-control { display: inline-flex; align-items: center; gap: 0.3rem; white-space: nowrap; }
.compound-table .suggest-wrap { flex: 0 0 auto; width: auto; display: inline-block; }
.compound-table input.starts-input { width: 4.75rem; max-width: 4.75rem; }
.starts-unit { color: var(--muted); font-size: 0.8rem; }
.starts-from { color: var(--muted); font-size: 0.78rem; }
.starts-error { display: block; color: var(--danger); font-size: 0.78rem; white-space: normal; }
.starts-error:empty { display: none; }
.starts-input[aria-invalid="true"] { border-color: var(--danger); }
@media (max-width: 700px) {
  .compound-table, .compound-table tbody, .compound-table tr, .compound-table td { display: block; width: 100%; }
  .compound-table thead tr { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem; }
  .compound-table thead th { display: none; border: 0; padding: 0 0 0.35rem; }
  .compound-table thead th.compound-table-starts-head { display: block; white-space: normal; }
  .compound-table tbody tr { border: 1px solid var(--border); border-radius: 8px; padding: 0.35rem 0.55rem; margin-bottom: 0.5rem; }
  .compound-table tbody tr.pairing-row { margin-left: 1rem; width: calc(100% - 1rem); border-style: dashed; }
  .compound-table tbody tr.pairing-pick-row { border: 0; padding: 0; }
  .compound-table td { border: 0; padding: 0.2rem 0 0.2rem 6.5rem; position: relative; overflow-wrap: anywhere; }
  .compound-table td::before {
    content: attr(data-label); position: absolute; left: 0; top: 0.2rem; width: 6.25rem;
    color: var(--muted); font-size: 0.75rem; line-height: 1.6;
  }
  .compound-only-combo { display: inline; margin-left: 0.4rem; }
  .compound-table td.compound-actions { display: flex; justify-content: flex-end; text-align: right; padding-left: 0; }
  .compound-table td.compound-actions::before { content: none; }
  .compound-table .pairing-pick-row > td { display: block; padding-left: 0; }
  .compound-table .pairing-pick-row > td::before { content: none; }
  .pairing-row .pairing-of { padding-left: 0; }
  .compound-table.is-plain td:nth-child(2), .compound-table.is-plain td:nth-child(3), .compound-table.is-plain td:nth-child(4) { display: none; }
}
.preview-starts th, .preview-starts td { color: var(--muted); font-size: 0.78rem; font-weight: 400; }
.sheet-starts { margin: 0.4rem 0 0; font-size: 0.82rem; color: var(--muted); }
.qcw-suggested { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 0.5rem; margin-top: 0.35rem; padding: 0.3rem 0.45rem; border-left: 3px solid var(--accent, #5eead4); font-size: 0.78rem; font-weight: 400; white-space: normal; }
.qcw-suggested-unsure { border-left-style: dashed; }
.qcw-suggested-label { font-weight: 600; }
.qcw-suggested-reason { flex-basis: 100%; }
.qcw-accept-form { display: inline; }
.qcw-flag-assistant { font-style: italic; }
.qcw-add-strain { display: block; margin-top: 0.3rem; font-weight: 400; }
.qcw-assist form { min-width: 0; max-width: 100%; }
.qcw-assist button { white-space: normal; max-width: 100%; text-align: left; }
.axis-chip-pairings { flex-basis: 100%; min-width: 0; font-style: normal; white-space: normal; display: grid; gap: 0.3rem; margin-top: 0.3rem; padding-top: 0.3rem; border-top: 1px dashed var(--border); }
.axis-chip-pairing-lines { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.25rem; }
.axis-chip-pairing { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; }
.axis-chip-pairing-status:empty { display: none; }
.axis-chip-pairing-status { flex-basis: 100%; min-width: 0; overflow-wrap: anywhere; }
.axis-chip-alone { font-size: 0.82rem; color: var(--muted); }
.axis-chip-pairing-note { margin: 0; font-size: 0.78rem; color: var(--muted); }
.axis-chip-pair { background: none; border: 0; color: inherit; font: inherit; font-size: 0.9rem; line-height: 1; font-style: normal; padding: 0 0.1rem; cursor: pointer; opacity: 0.7; }
.axis-chip-pair:hover, .axis-chip-pair:focus-visible, .axis-chip-pair[aria-expanded="true"] { opacity: 1; color: var(--accent); }
.axis-chip:has(.axis-chip-pair-corner) { position: relative; }
.axis-chip-pair-corner {
  position: absolute; top: -0.5rem; right: -0.35rem; visibility: hidden;
  background: var(--card); border-radius: 50%; padding: 0 0.15rem; opacity: 1;
}
.axis-chip:hover > .axis-chip-pair-corner, .axis-chip:focus-within > .axis-chip-pair-corner,
.axis-chip-paired > .axis-chip-pair-corner, .axis-chip-pair-corner[aria-expanded="true"] { visibility: visible; }
.qcw-chat-list { margin: 0; padding-left: 1.1rem; display: flex; flex-direction: column; gap: 0.5rem; }
.qcw-chat-item { overflow-wrap: anywhere; }
.qcw-chat-text { font-weight: 600; }
.qcw-chat-reason { display: block; }
.qcw-pending .qcw-cell-btn { border-style: dashed; border-color: var(--accent, #5eead4); }
.qcw-flag-pending { font-weight: 600; }
.qc-ranges-section > summary { cursor: pointer; font-weight: 600; }
.qc-ranges-rows { display: flex; flex-direction: column; gap: 0.6rem; margin-bottom: 0.6rem; }
.qc-range-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.5rem 0.75rem;
  margin: 0;
  padding: 0.6rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  min-width: 0;
}
.qc-range-legend { font-size: 0.78rem; color: var(--muted); padding: 0 0.25rem; }
.qc-range-field { display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; }
.qc-range-field input, .qc-range-field select { max-width: 100%; }
.qc-range-field-wide { flex: 1 1 14rem; }
.qc-range-field-wide select, .qc-range-field-wide input { width: 100%; }
.qc-range-caption { font-size: 0.75rem; color: var(--muted); }
.qc-ranges-table { margin-bottom: 1rem; }
.qc-ranges-table-title { font-size: 0.95rem; margin: 0 0 0.4rem; display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }
.qc-ranges-list td, .qc-ranges-list th { white-space: normal; }
.table-switch { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; margin: 0 0 0.75rem; }
.table-switch[hidden] { display: none; }
.table-switch-label { color: var(--muted); font-size: 0.8rem; margin-right: 0.15rem; }
.table-switch-button {
  display: inline-flex; align-items: baseline; gap: 0.4rem; max-width: 100%;
  padding: 0.25rem 0.65rem; border: 1px solid var(--border); border-radius: 999px;
  background: none; color: inherit; font: inherit; font-size: 0.85rem; cursor: pointer;
}
.table-switch-button[aria-pressed="true"] { border-color: var(--accent); background: rgba(94, 234, 212, 0.12); font-weight: 600; }
.table-switch-count { color: var(--muted); font-size: 0.75rem; font-variant-numeric: tabular-nums; }
.table-shared-rows { margin-top: 0; }
.clsi-note { margin-bottom: 1rem; }
.breakpoint-default-choices { border: 0; margin: 0 0 0.6rem; padding: 0; min-width: 0; }
.breakpoint-default-choices legend { font-weight: 600; margin-bottom: 0.3rem; }
.breakpoint-default-choice { display: block; margin: 0.25rem 0; overflow-wrap: anywhere; }
html.wide-card-pending [data-wide-card]:not([data-wide-shown]),
html.wide-card-pending #section-data-table:not(:has([data-wide-card][data-wide-shown])) { visibility: hidden; }
