/* Concordia: theme, layout, controls, graph layers, reading and responsive states. */
:root {
  color-scheme:dark;
  --bg:#06080d;
  --panel:#0d1018;
  --surface:#151a25;
  --line:#252b39;
  --muted:#a0a8bb;
  --subtle:#727d92;
  --text:#edeef3;
  --accent:#d5bd88;
  --accent-dim:#2c281f;
  --sidebar:352px;
  --header:68px;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:14px
}
* {
  box-sizing:border-box
}
html,body {
  margin:0;
  width:100%;
  height:100%;
  overflow:hidden
}
body {
  background:var(--bg);
  color:var(--text)
}
button,input,select {
  font:inherit
}
button,a,input,select,summary {
  -webkit-tap-highlight-color:transparent
}
button,summary {
  cursor:pointer
}
button {
  color:inherit;
  border:0;
  background:none
}
button:disabled {
  opacity:.35;
  cursor:not-allowed
}
a {
  color:var(--accent);
  text-decoration:none
}
a:hover {
  text-decoration:underline
}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:3px
}
button:hover:not(:disabled) {
  color:#fff
}
svg {
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex-shrink:0
}
[hidden] {
  display:none!important
}
h1,h2,h3,p {
  margin:0
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap
}
.skip {
  position:fixed;
  left:10px;
  top:-80px;
  z-index:100;
  padding:12px;
  background:var(--panel)
}
.skip:focus {
  top:10px
}
.app-header {
  height:var(--header);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 25px 0 18px;
  border-bottom:1px solid var(--line);
  gap:20px;
  background:#0a0d14
}
.brand-group,.brand,.header-actions {
  display:flex;
  align-items:center;
  gap:20px
}
.brand {
  gap:12px;
  color:var(--text);
  font-size:16px;
  letter-spacing:.18em;
  font-weight:550;
  line-height:1.1
}
.brand:hover {
  text-decoration:none
}
.brand-mark {
  width:37px;
  height:30px;
  stroke:var(--accent);
  stroke-width:1.15
}
.brand-sub {
  display:block;
  font-size:9px;
  letter-spacing:.23em;
  font-weight:450;
  color:var(--subtle);
  margin-top:6px
}
.header-center {
  font-size:12px;
  color:var(--muted);
  display:flex;
  align-items:center;
  gap:9px
}
.status-dot {
  width:5px;
  height:5px;
  background:#a5b88a;
  border-radius:50%;
  display:inline-block;
  flex-shrink:0
}
.header-actions {
  gap:19px
}
.edition {
  font-size:10px;
  letter-spacing:.12em;
  border:1px solid var(--line);
  padding:6px 8px;
  border-radius:5px;
  color:var(--muted)
}
.icon-button {
  width:36px;
  height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:7px;
  font-size:22px;
  color:var(--muted);
  flex-shrink:0
}
.icon-button:hover:not(:disabled) {
  background:var(--surface)
}
.icon-button.small {
  width:30px;
  height:30px;
  font-size:17px
}
.text-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-size:12px;
  color:var(--muted);
  padding:7px 8px;
  border-radius:5px;
  white-space:nowrap
}
.text-button:hover {
  background:var(--surface)
}
.text-button svg {
  width:15px;
  height:15px
}
.key,kbd {
  font:10px ui-monospace,monospace;
  border:1px solid #363d4b;
  border-radius:4px;
  padding:1px 4px;
  color:var(--muted);
  background:#141822
}
.key {
  margin-left:6px
}
.app-body {
  display:grid;
  grid-template-columns:var(--sidebar) minmax(0,1fr);
  height:calc(100dvh - var(--header));
  min-height:0
}
.app-body.sidebar-closed {
  grid-template-columns:0 minmax(0,1fr)
}
.sidebar {
  min-width:0;
  width:var(--sidebar);
  display:flex;
  flex-direction:column;
  border-right:1px solid var(--line);
  background:var(--panel);
  overflow:hidden;
  z-index:12
}
.sidebar-closed .sidebar {
  visibility:hidden;
  pointer-events:none
}
.search-section {
  padding:26px 23px 0;
  flex-shrink:0
}
.eyebrow {
  font-size:9px;
  font-weight:650;
  letter-spacing:.18em;
  color:var(--accent);
  line-height:1.5
}
.search-section h2 {
  font-size:18px;
  font-weight:450;
  letter-spacing:-.04em;
  margin:8px 0 19px
}
.search-box {
  display:flex;
  align-items:center;
  background:#080b12;
  border:1px solid #333b4c;
  border-radius:8px;
  padding:0 11px;
  gap:8px;
  height:44px
}
.search-box:focus-within {
  border-color:var(--accent);
  box-shadow:0 0 0 3px #d5bd8810
}
.search-box svg {
  width:17px;
  color:var(--subtle)
}
.search-box input {
  width:100%;
  min-width:0;
  border:0;
  outline:0;
  background:transparent;
  color:var(--text);
  height:100%;
  font-size:12px
}
.search-box input:focus-visible {
  outline:0
}
.search-box input::placeholder {
  color:#8992a3
}
.search-box input::-webkit-search-cancel-button {
  display:none
}
.clear-button {
  font-size:21px;
  color:var(--muted);
  padding:0 1px;
  line-height:1
}
.micro-copy {
  font-size:10px;
  color:var(--subtle);
  line-height:1.7
}
.search-section>.micro-copy {
  margin-top:9px
}
.search-section kbd {
  float:right
}
.suggestions {
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin:15px 0 17px
}
.suggestions button {
  border:1px solid #303646;
  background:#151a25;
  color:#b6bed0;
  border-radius:100px;
  padding:5px 9px;
  font-size:10px
}
.suggestions button:hover {
  border-color:#807457;
  background:#262318
}
.filters {
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line)
}
summary {
  list-style:none
}
summary::-webkit-details-marker {
  display:none
}
.filters>summary {
  display:flex;
  align-items:center;
  padding:12px 0;
  font-size:11px;
  color:var(--muted);
  gap:8px
}
.chevron {
  margin-left:auto;
  font-size:17px
}
.filters[open] .chevron {
  transform:rotate(180deg)
}
#filter-badge {
  font-size:8px;
  letter-spacing:.1em;
  color:var(--accent);
  background:var(--accent-dim);
  border-radius:3px;
  padding:2px 4px
}
.filter-grid {
  display:grid;
  gap:12px;
  padding:3px 0 15px
}
label {
  display:block;
  color:var(--muted);
  font-size:11px
}
select,input[type=number] {
  width:100%;
  padding:8px 9px;
  margin-top:6px;
  border:1px solid #343c4d;
  border-radius:5px;
  background:#121722;
  color:var(--text);
  font-size:11px;
  min-width:0
}
.filter-row {
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:10px
}
.filter-grid .micro-copy {
  font-size:9px;
  line-height:1.5
}
.results-header {
  padding:20px 23px 10px;
  display:flex;
  justify-content:space-between;
  gap:8px;
  align-items:center
}
.results-header h3 {
  font-size:10px;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.07em;
  color:var(--muted)
}
#result-count {
  font-size:10px;
  background:#1b212d;
  padding:3px 7px;
  border-radius:4px;
  color:var(--accent)
}
.search-status {
  font-size:11px;
  color:var(--muted);
  line-height:1.55;
  padding:0 23px 10px;
  flex-shrink:0
}
.search-status:empty {
  display:none
}
.search-status.error {
  color:#e9afa7
}
.results {
  overflow:auto;
  min-height:0;
  flex:1;
  padding:0 15px 15px;
  scrollbar-width:thin;
  scrollbar-color:#343d4f transparent
}
.result-card {
  border:1px solid #252c3a;
  background:#10141e;
  border-radius:8px;
  margin-bottom:9px;
  overflow:hidden;
  transition:border-color .15s,background .15s
}
.result-card:hover {
  border-color:#414c60;
  background:#151a25
}
.result-card.selected {
  border-color:#b29b67;
  background:#1b1b20;
  box-shadow:inset 2px 0 #d5bd88
}
.result-card summary {
  padding:13px 13px 4px;
  display:flex;
  align-items:flex-start;
  gap:10px
}
.result-card summary:focus-visible {
  outline-offset:-3px
}
.reference-pair {
  font-size:12px;
  line-height:1.65;
  color:#d9ddea;
  flex:1;
  min-width:0
}
.reference-pair .target {
  display:block;
  color:var(--muted);
  font-size:11px
}
.reference-pair .target::before {
  content:'\2194';
  margin-right:7px;
  color:var(--accent)
}
.result-card .disclosure {
  font-size:12px;
  color:var(--subtle);
  padding-top:3px
}
.result-card details[open] .disclosure {
  transform:rotate(180deg)
}
.result-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:5px 12px 10px
}
.votes {
  font-size:9px;
  color:var(--subtle)
}
.view-link {
  font-size:11px;
  color:var(--accent);
  padding:5px 8px;
  background:#222127;
  border-radius:4px
}
.view-link:hover {
  background:#353028
}
.detail-body {
  padding:12px 13px 2px;
  border-top:1px solid #2b303c;
  margin-top:8px;
  max-height:460px;
  overflow:auto;
  scrollbar-width:thin
}
.detail-body:empty {
  display:none
}
.passage-heading {
  display:block;
  color:var(--accent);
  font-size:9px;
  letter-spacing:.12em;
  margin:0 0 8px;
  text-transform:uppercase
}
.passage {
  margin-bottom:17px
}
.verse-paragraph {
  font-family:Georgia,'Times New Roman',serif;
  line-height:1.65;
  font-size:15px;
  color:#e5e3dc;
  margin-bottom:10px;
  overflow-wrap:anywhere
}
.verse-number {
  font-family:ui-sans-serif,system-ui,sans-serif;
  font-size:10px;
  font-weight:600;
  color:var(--accent);
  margin-right:6px;
  vertical-align:super
}
.verse-line {
  white-space:pre-wrap
}
.annotation {
  font:italic 12px/1.5 Georgia,serif;
  color:#c0b49a;
  margin:7px 0
}
.empty-list {
  padding:25px 10px;
  color:var(--muted);
  font-size:12px;
  line-height:1.7
}
.pagination {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:9px 18px;
  border-top:1px solid var(--line);
  flex-shrink:0
}
.pagination span {
  font-size:10px;
  color:var(--muted)
}
.sidebar-foot {
  padding:13px 22px 17px;
  font-size:9px;
  color:var(--subtle);
  border-top:1px solid #1b202b;
  display:flex;
  gap:8px;
  align-items:center
}
.tiny-rainbow {
  width:6px;
  height:6px;
  border-radius:50%;
  background:linear-gradient(120deg,#baa95e,#6a87ba,#ab72b2)
}
.workspace {
  min-width:0;
  min-height:0;
  display:flex;
  flex-direction:column;
  position:relative;
  background:var(--bg)
}
.map-heading {
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:center;
  padding:27px 33px 21px;
  flex-shrink:0
}
.map-heading .eyebrow {
  font-size:8px;
  letter-spacing:.2em
}
.map-heading h1 {
  font-family:Georgia,'Times New Roman',serif;
  font-size:34px;
  letter-spacing:-.04em;
  font-weight:400;
  line-height:1.2;
  margin:7px 0 8px
}
.map-heading p {
  font-size:11px;
  line-height:1.6;
  color:var(--muted)
}
.map-stats {
  text-align:right;
  flex-shrink:0
}
.map-stats strong {
  display:block;
  font-size:30px;
  font-weight:350;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.04em
}
.map-stats>span {
  display:block;
  color:var(--muted);
  font-size:10px;
  margin-top:2px
}
.map-stats small {
  display:block;
  color:var(--subtle);
  font-size:9px;
  margin-top:9px
}
.map-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 26px 10px;
  gap:12px;
  position:relative;
  z-index:7;
  flex-shrink:0
}
.view-state {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:10px;
  color:var(--muted);
  min-width:0
}
.toolbar-divider {
  height:10px;
  width:1px;
  background:var(--line);
  margin:0 3px
}
#render-status {
  font-size:9px;
  color:var(--subtle);
  white-space:nowrap
}
.visual-controls {
  display:flex;
  align-items:center;
  gap:8px
}
.visual-settings {
  position:relative
}
.visual-settings summary {
  display:flex
}
.visual-settings[open] summary {
  background:#252a36;
  color:var(--text)
}
.settings-popover {
  position:absolute;
  right:0;
  top:38px;
  width:255px;
  padding:19px;
  background:#131823;
  border:1px solid #394151;
  border-radius:10px;
  box-shadow:0 14px 70px #000b;
  display:grid;
  gap:18px
}
.settings-popover output {
  float:right;
  color:var(--accent);
  font-size:10px
}
.settings-popover input[type=range] {
  width:100%;
  accent-color:var(--accent);
  margin-top:12px;
  cursor:pointer
}
.settings-popover .text-button {
  border:1px solid var(--line);
  width:100%
}
.stage {
  flex:1;
  min-height:160px;
  position:relative;
  isolation:isolate;
  overflow:hidden
}
.stage>canvas {
  width:100%;
  height:100%;
  display:block;
  touch-action:none;
  cursor:grab;
  outline-offset:-4px
}
.stage>canvas.dragging {
  cursor:grabbing
}
.selection-bar {
  position:absolute;
  left:26px;
  right:74px;
  top:9px;
  z-index:5;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  border:1px solid #61543b;
  border-radius:7px;
  background:#15161aeF;
  backdrop-filter:blur(10px)
}
.selection-name {
  display:flex;
  gap:9px;
  align-items:center;
  min-width:0;
  font-size:11px;
  color:#e8d6b0
}
.selection-name span:last-child {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.selection-indicator {
  width:6px;
  height:6px;
  flex-shrink:0;
  border-radius:50%;
  background:#ffe4a6;
  box-shadow:0 0 12px #ebc879
}
.selection-actions {
  display:flex;
  gap:4px;
  flex-shrink:0
}
.selection-actions button {
  padding:4px 6px;
  color:#c9bb9e;
  font-size:10px;
  border-radius:4px
}
.selection-actions button:hover {
  background:#383127
}
.zoom-tools {
  position:absolute;
  top:13px;
  right:20px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  padding:5px 2px;
  background:#111620eb;
  border:1px solid #333b4b;
  border-radius:9px;
  z-index:6;
  box-shadow:0 5px 16px #0005
}
.zoom-tools .icon-button {
  width:32px;
  height:29px;
  font-size:22px
}
.zoom-tools svg {
  width:16px
}
.zoom-tools span {
  font:9px ui-monospace,monospace;
  color:var(--muted);
  padding:3px 0
}
.zoom-tools .zoom-rule {
  height:1px;
  width:24px;
  background:var(--line);
  padding:0;
  margin:3px 0
}
.chart-hint {
  position:absolute;
  bottom:8px;
  left:0;
  right:0;
  pointer-events:none;
  text-align:center;
  font-size:9px;
  color:#8390a5;
  z-index:1
}
.chart-hint span {
  margin:0 10px;
  color:#536176
}
.reading-layer {
  position:absolute;
  left:0;
  right:0;
  bottom:27px;
  z-index:3;
  overflow:hidden;
  background:linear-gradient(180deg,#0c1019 0%,#0a0e17 100%);
  border-top:1px solid #323948
}
.reading-caption {
  height:33px;
  display:flex;
  justify-content:space-between;
  padding:11px 27px 8px;
  letter-spacing:.12em;
  font-size:8px;
  color:var(--accent);
  border-bottom:1px solid #232a38;
  white-space:nowrap
}
.reading-caption span {
  color:var(--muted);
  letter-spacing:0;
  font-size:9px
}
.verse-lane {
  position:absolute;
  inset:34px 0 0;
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-width:thin;
  scrollbar-color:#4c5366 transparent
}
.axis-verse {
  position:absolute;
  top:0;
  padding:18px 16px 26px;
  border-right:1px solid #2b3342;
  min-height:100%;
  overflow-wrap:anywhere
}
.axis-verse.focused {
  background:#25231c66;
  border-top:2px solid var(--accent);
  padding-top:16px
}
.axis-verse h3 {
  font-size:10px;
  color:var(--accent);
  font-weight:500;
  margin-bottom:12px
}
.axis-verse .verse-paragraph {
  font-size:17px;
  line-height:1.65;
  color:#efebe1;
  margin:0
}
.axis-verse .annotation {
  font-size:12px
}
.axis-verse .verse-number {
  display:none
}
.empty-map {
  position:absolute;
  inset:10% 70px 20%;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  text-align:center;
  background:#06080ddb;
  gap:14px
}
.empty-symbol {
  font:50px Georgia,serif;
  color:#9b8b67
}
.empty-map h2 {
  font:25px Georgia,serif;
  font-weight:400
}
.empty-map p {
  font-size:12px;
  color:var(--muted);
  max-width:370px;
  line-height:1.7
}
.primary-button {
  font-size:11px;
  color:#e6d6b8;
  border:1px solid #6c5d42;
  background:#252219;
  border-radius:6px;
  padding:10px 14px;
  margin-top:5px
}
.primary-button:hover {
  background:#353020
}
.loading {
  position:absolute;
  inset:0;
  z-index:9;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  background:var(--bg);
  gap:16px
}
.loading h2 {
  font:29px Georgia,serif;
  font-weight:400
}
.loading>p {
  font-size:12px;
  color:var(--muted)
}
.loading>.micro-copy {
  font-size:10px;
  color:var(--subtle)
}
.loading progress {
  width:250px;
  height:3px;
  border:0;
  background:#292e3b;
  color:var(--accent);
  border-radius:10px
}
.loading progress::-webkit-progress-bar {
  background:#292e3b;
  border-radius:10px
}
.loading progress::-webkit-progress-value {
  background:var(--accent);
  border-radius:10px
}
.loading progress::-moz-progress-bar {
  background:var(--accent)
}
.loading-mark {
  position:relative;
  width:65px;
  height:45px;
  margin-bottom:16px
}
.loading-mark i {
  position:absolute;
  border:1px solid #7c7866;
  border-bottom:0;
  border-radius:50px 50px 0 0;
  inset:0
}
.loading-mark i:nth-child(2) {
  inset:9px 10px 0;
  border-color:#8c9fbf
}
.loading-mark i:nth-child(3) {
  inset:19px 22px 0;
  border-color:#ae85b0
}
.loading.error h2 {
  color:#ebbbb0
}
.loading.error progress {
  display:none
}
.navigator-row {
  display:flex;
  align-items:center;
  gap:15px;
  padding:7px 30px;
  height:50px;
  border-top:1px solid #1c222e;
  flex-shrink:0
}
.navigator-row canvas {
  flex:1;
  min-width:0;
  width:100%;
  height:34px;
  touch-action:none;
  cursor:ew-resize
}
.nav-book {
  font-size:8px;
  letter-spacing:.14em;
  color:var(--subtle)
}
.map-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:9px 28px 12px;
  gap:16px;
  flex-shrink:0
}
.legend {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:8px;
  letter-spacing:.08em;
  color:var(--subtle)
}
.rainbow-scale {
  width:89px;
  height:3px;
  border-radius:3px;
  background:linear-gradient(90deg,#b847cb,#6866d8,#559cc8,#5cac88,#b4b25f,#c28b4b)
}
#engine-label {
  font:9px ui-monospace,monospace;
  color:var(--subtle)
}
.map-footer .text-button {
  font-size:9px;
  padding:3px
}
.toast {
  position:fixed;
  bottom:25px;
  left:50%;
  transform:translateX(-50%);
  z-index:60;
  max-width:min(600px,90vw);
  padding:13px 18px;
  border:1px solid #605741;
  background:#22221f;
  color:#e1d3b5;
  border-radius:8px;
  box-shadow:0 8px 35px #000a;
  font-size:12px;
  line-height:1.6
}
.sidebar-backdrop {
  position:absolute;
  inset:0;
  background:#0008;
  z-index:11
}
.fatal-noscript {
  position:fixed;
  inset:0;
  background:#090d16;
  color:#fff;
  padding:20vh 10vw;
  z-index:100;
  font:22px system-ui
}
dialog {
  color:var(--text);
  background:#111620;
  border:1px solid #3a4455;
  border-radius:14px;
  padding:35px;
  width:min(670px,94vw);
  max-height:86dvh;
  scrollbar-width:thin;
  box-shadow:0 35px 160px #000c
}
dialog::backdrop {
  background:#000b;
  backdrop-filter:blur(6px)
}
dialog .dialog-close {
  position:absolute;
  top:13px;
  right:13px
}
dialog h2 {
  font:30px/1.3 Georgia,serif;
  letter-spacing:-.03em;
  margin:12px 30px 22px 0
}
dialog h3 {
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.09em;
  color:var(--accent);
  margin:25px 0 10px
}
dialog p {
  font-size:13px;
  line-height:1.8;
  color:#bdc5d4;
  margin-bottom:13px
}
dialog strong {
  font-weight:550;
  color:#eee6d9
}
dialog table {
  border-collapse:collapse;
  width:100%;
  font-size:11px;
  line-height:1.6
}
dialog td {
  padding:9px 7px;
  border-bottom:1px solid #2a3241;
  color:var(--muted)
}
dialog td:first-child {
  width:38%
}
dialog code {
  color:#e3d3b4;
  font-size:10px
}
.notice {
  padding:14px 17px;
  background:#1e211f;
  border-left:2px solid #9e8c62;
  border-radius:0 5px 5px 0
}
.separator {
  margin:0 10px;
  color:var(--subtle)
}
@media(min-width:1700px) {
  :root {
    --sidebar:380px
  }
  .map-heading {
    padding-top:33px;
    padding-bottom:27px
  }
  .map-heading h1 {
    font-size:39px
  }
  .search-section {
    padding-top:33px
  }
  .map-stats strong {
    font-size:35px
  }
}
@media(max-width:1100px) {
  :root {
    --sidebar:320px
  }
  .header-center {
    display:none
  }
  .map-heading {
    padding:23px 25px 20px;
    gap:12px
  }
  .map-heading h1 {
    font-size:29px
  }
  .map-stats strong {
    font-size:26px
  }
  .map-heading p {
    font-size:10px
  }
  .map-toolbar {
    padding-left:22px;
    padding-right:20px;
    gap:8px
  }
  .toolbar-divider,#render-status {
    display:none
  }
  .map-toolbar .text-button {
    font-size:10px;
    padding:7px 4px
  }
  .visual-controls {
    gap:5px
  }
  .selection-bar {
    align-items:flex-start;
    flex-direction:column;
    gap:6px
  }
  .map-footer {
    padding:7px 20px 10px;
    gap:9px
  }
  #engine-label {
    font-size:8px
  }
}
@media(max-width:850px) {
  :root {
    --header:60px;
    --sidebar:335px
  }
  .app-body,.app-body.sidebar-closed {
    grid-template-columns:minmax(0,1fr)
  }
  .sidebar {
    position:absolute;
    left:0;
    top:var(--header);
    bottom:0;
    box-shadow:25px 0 80px #0007;
    max-width:calc(100vw - 45px)
  }
  .sidebar-closed .sidebar {
    display:none
  }
  .app-header {
    padding:0 14px 0 9px;
    gap:10px
  }
  .brand-group {
    gap:10px
  }
  .brand {
    font-size:14px;
    gap:9px
  }
  .brand-mark {
    width:29px
  }
  .brand-sub {
    font-size:8px
  }
  .header-actions {
    gap:7px
  }
  .header-actions .text-button {
    font-size:11px
  }
  .edition {
    font-size:8px;
    padding:5px 6px
  }
  .map-heading {
    padding:24px 22px 19px
  }
  .map-heading h1 {
    font-size:32px
  }
  .map-stats strong {
    font-size:28px
  }
  .map-toolbar {
    padding:0 20px 8px
  }
  .map-footer {
    padding:8px 20px 12px
  }
  .workspace {
    width:100%
  }
}
@media(max-width:520px) {
  :root {
    font-size:13px
  }
  .header-actions .key {
    display:none
  }
  .header-actions .edition {
    display:none
  }
  .header-actions {
    gap:4px
  }
  .brand-group {
    gap:7px
  }
  .brand {
    font-size:12px
  }
  .brand-sub {
    font-size:7px
  }
  .brand-mark {
    width:26px;
    height:26px
  }
  .map-heading {
    align-items:flex-start;
    padding:20px 17px 17px
  }
  .map-heading h1 {
    font-size:26px;
    max-width:250px
  }
  .map-heading .eyebrow {
    font-size:7px
  }
  .map-heading p {
    font-size:10px;
    max-width:230px;
    line-height:1.6
  }
  .map-stats {
    padding-top:3px
  }
  .map-stats strong {
    font-size:21px
  }
  .map-stats>span {
    font-size:8px
  }
  .map-stats small {
    font-size:8px;
    max-width:110px;
    line-height:1.6
  }
  .map-toolbar {
    padding:0 15px 5px
  }
  .view-state {
    font-size:8px;
    gap:6px
  }
  .map-toolbar .text-button {
    font-size:9px;
    gap:5px
  }
  .visual-controls {
    gap:4px
  }
  .visual-controls .icon-button {
    width:25px
  }
  .visual-controls svg {
    width:13px
  }
  .map-toolbar #fit-all span {
    display:none
  }
  .zoom-tools {
    right:12px;
    top:9px
  }
  .selection-bar {
    left:16px;
    right:61px;
    top:9px;
    padding:9px;
    gap:7px
  }
  .selection-name {
    font-size:10px
  }
  .selection-actions {
    gap:0
  }
  .selection-actions button {
    font-size:9px;
    padding:3px 5px
  }
  .chart-hint {
    font-size:8px;
    padding:0 9px
  }
  .chart-hint span {
    margin:0 5px
  }
  .navigator-row {
    padding:7px 16px;
    gap:9px;
    height:46px
  }
  .nav-book {
    font-size:6px
  }
  .map-footer {
    padding:6px 16px 12px;
    gap:8px
  }
  .legend {
    font-size:6px;
    gap:6px
  }
  .rainbow-scale {
    width:60px
  }
  #engine-label {
    display:none
  }
  .map-footer .text-button {
    font-size:8px
  }
  .reading-caption {
    font-size:7px;
    padding-left:16px;
    padding-right:16px
  }
  .reading-caption span {
    font-size:8px;
    max-width:190px;
    text-align:right;
    white-space:normal;
    margin-top:-2px
  }
  .axis-verse {
    padding-left:14px;
    padding-right:14px
  }
  .axis-verse .verse-paragraph {
    font-size:16px
  }
  .empty-map {
    inset:15% 25px 20%
  }
  .empty-map h2 {
    font-size:21px
  }
  .empty-map p {
    font-size:11px
  }
  .loading h2 {
    font-size:25px
  }
  .loading>p {
    font-size:11px
  }
  .loading>.micro-copy {
    font-size:9px
  }
  .settings-popover {
    right:-45px;
    width:245px
  }
  dialog {
    padding:28px 23px
  }
  dialog h2 {
    font-size:27px
  }
  dialog table {
    font-size:10px
  }
  dialog code {
    font-size:9px
  }
  dialog td {
    padding:8px 4px
  }
}
@media(max-height:700px) {
  .search-section {
    padding-top:16px
  }
  .search-section h2 {
    margin-bottom:12px
  }
  .suggestions {
    margin:10px 0
  }
  .results-header {
    padding-top:14px
  }
  .sidebar-foot {
    display:none
  }
  .map-heading {
    padding-top:16px;
    padding-bottom:13px
  }
  .map-heading h1 {
    font-size:28px
  }
  .map-toolbar {
    padding-bottom:4px
  }
  .map-footer {
    padding-top:3px;
    padding-bottom:8px
  }
  .navigator-row {
    height:40px
  }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    scroll-behavior:auto!important;
    transition:none!important;
    animation:none!important
  }
}

/* Phase 2.1: progressive navigation, bounded-load choices and inspection. */
.map-heading .legend {
  margin-top:14px;
  gap:10px;
  color:#abb2be;
  letter-spacing:.13em;
  font-size:9px;
}
.map-heading .rainbow-scale { width:118px; height:4px }
.vote-select {
  display:flex;
  align-items:center;
  gap:9px;
  font-size:10px;
  letter-spacing:.025em;
  color:#c5cad5;
  white-space:nowrap;
}
.vote-select select {
  width:auto;
  margin:0;
  min-width:154px;
  height:33px;
  padding:6px 9px;
  color:#e9d9b3;
  border-color:#5e5038;
  background:#24221d;
  cursor:pointer;
}
.pick-hint {
  position:absolute;
  bottom:40px;
  left:50%;
  transform:translateX(-50%);
  width:min(480px,calc(100% - 44px));
  text-align:center;
  border:1px solid #615739;
  border-radius:8px;
  padding:11px 15px;
  z-index:8;
  background:#1e1c18f2;
  color:#e7d7b7;
  font-size:12px;
  line-height:1.5;
  pointer-events:none;
}
.arc-chooser {
  position:absolute;
  z-index:8;
  width:min(380px,calc(100% - 100px));
  max-height:60%;
  overflow-y:auto;
  top:63px;
  left:25px;
  background:#141924f7;
  border:1px solid #556175;
  border-radius:9px;
  box-shadow:0 14px 40px #000b;
}
.chooser-title,.inspector-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#e6d4b4;
  font-size:11px;
  letter-spacing:.03em;
  padding:12px 14px;
  border-bottom:1px solid #2c3445;
}
.chooser-title button,.inspector-head button { padding:1px 6px; font-size:22px; line-height:1; color:#bac2d0 }
.chooser-item {
  display:block;
  width:100%;
  padding:12px 13px;
  border-bottom:1px solid #27303f;
  text-align:left;
  color:#e7e5de;
  font-size:11px;
  line-height:1.5;
}
.chooser-item:hover,.chooser-item:focus-visible { background:#303646 }
.chooser-item small { display:block; color:#9aa6bb; font-size:9px; margin-top:4px }
.arc-chooser .micro-copy { font-size:10px; padding:12px; color:#abb5c7 }
.arc-inspector {
  position:absolute;
  right:66px;
  top:64px;
  z-index:7;
  width:min(390px,calc(100% - 100px));
  max-height:min(62%,610px);
  display:flex;
  flex-direction:column;
  border:1px solid #756449;
  border-radius:10px;
  background:#101621f5;
  box-shadow:0 10px 40px #000a;
  overflow:hidden;
}
.inspector-head { flex:none; font-size:9px; letter-spacing:.13em; padding:9px 14px }
.arc-inspector h3 { flex:none; font-size:12px; font-weight:500; padding:12px 15px; line-height:1.45; color:#f3e4be; border-bottom:1px solid #293347 }
.inspector-body { overflow-y:auto; padding:2px 15px 18px; scrollbar-width:thin }
.inspector-passage h4 { font-size:9px; letter-spacing:.14em; color:#d2bc86; margin:16px 0 8px; text-transform:uppercase }
.inspector-passage .verse-paragraph { font:12px/1.7 system-ui,sans-serif; color:#e2e5ed; margin:8px 0 }
.inspector-passage .verse-number { color:#e6c991; margin-right:9px; font-size:10px }
.inspector-passage .annotation { font-size:10px; color:#a6adbd }
.warning-actions { display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap; margin-top:28px }
.warning-actions .text-button { border:1px solid #41495a; padding:11px 15px }
.warning-actions .primary-button { margin-top:0 }
#low-dialog { max-width:min(510px,calc(100vw - 32px)) }
#low-dialog .eyebrow { color:#e4bc7e }
#low-dialog p { line-height:1.8 }
@media (max-width:1080px) {
  .vote-select { font-size:0; gap:0 }
  .vote-select select { font-size:11px }
}
@media (max-width:720px) {
  .vote-select select { min-width:118px; max-width:128px; font-size:10px }
  .arc-inspector { top:94px; right:55px; width:min(320px,calc(100% - 70px)); max-height:52% }
  .arc-chooser { top:84px; left:12px; width:min(320px,calc(100% - 85px)) }
  .meter-head span { font-size:8px }
}
@media (max-width:400px) {
  .vote-select select { min-width:94px; max-width:102px; padding:6px 3px; font-size:9px }
  .map-toolbar { gap:3px }
  .arc-inspector { top:111px }
}
@media (prefers-reduced-motion:reduce) { .meter-track::after { animation:none } }

/* 2.3: precise chapter hover, accessible overlap chooser and movable inspector. */
.axis-tooltip {
  position:absolute; z-index:12; pointer-events:none;
  max-width:min(310px,calc(100% - 16px));
  padding:10px 13px; border:1px solid #665b42; border-radius:8px;
  background:#1b2230f7; color:#f3e9ce; font-size:12px; line-height:1.5;
  box-shadow:0 8px 26px #0009;
}
.chooser-pagination { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 11px; border-top:1px solid #343c4c; }
.chooser-pagination button { color:#eddbb4; border:1px solid #525a6a; border-radius:5px; padding:6px 9px; }
.chooser-pagination button:disabled { opacity:.35; cursor:default }
.chooser-pagination span { font-size:10px; color:#b4becd; font-variant-numeric:tabular-nums; }
.inspector-head { touch-action:none; user-select:none; cursor:grab; }
.arc-inspector.moving .inspector-head { cursor:grabbing }
.inspector-head small { margin-left:9px; font-size:8px; color:#8f9aab; letter-spacing:.07em }
.inspector-actions { display:flex; align-items:center; gap:5px; }
.inspector-actions button { min-width:29px; min-height:27px; }
.arc-inspector.minimized { max-height:none; }
.arc-inspector.minimized #inspector-title,
.arc-inspector.minimized #inspector-body { display:none; }
@media (max-width:720px) {
  .axis-tooltip { font-size:11px; max-width:240px; }
  .inspector-head small { display:none; }
}

/* 2.4: compact single toolbar; full available height goes to the atlas. */
.map-toolbar {
  padding:9px 22px 10px;
  min-height:50px;
  align-items:center;
  gap:12px;
}
.toolbar-info { display:flex; align-items:center; gap:14px; min-width:0; }
.toolbar-info .legend { font-size:9px; font-weight:600; letter-spacing:.08em; gap:7px; white-space:nowrap; }
.toolbar-info .rainbow-scale { width:100px; height:4px; }
.toolbar-count { display:flex; gap:5px; align-items:baseline; white-space:nowrap; color:#a3aebe; }
.toolbar-count strong { color:#e8dbc2; font-size:13px; font-weight:650; font-variant-numeric:tabular-nums; }
.toolbar-count span { font-size:10px; }
#render-status { border-left:1px solid #363d4a; padding-left:12px; color:#9da9bb; }

/* The source and target share one single line. Full labels remain in the
 * accessible title/ARIA text when ellipsized due to a narrow sidebar. */
.reference-pair { display:flex; align-items:baseline; gap:5px; white-space:nowrap; overflow:hidden; font-size:11.5px; }
.reference-pair .origin { flex:0 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }
.reference-pair .reference-arrow { flex:none; font-weight:700; color:var(--accent); }
.reference-pair .target { display:block; flex:1 1 auto; min-width:0; color:#acb9d1; font-size:11.5px; overflow:hidden; text-overflow:ellipsis; }
.reference-pair .target::before { content:none; }
.result-actions { gap:6px; align-items:center; }
.votes { font-size:11px; line-height:1.5; flex:1 1 auto; min-width:0; overflow-wrap:normal; color:#b2bbc9; }
.view-link { flex:0 0 auto; }

.loading { z-index:25; background:#070a10eb; }
#fit-all:disabled { opacity:.30; cursor:not-allowed; }
@media(max-width:1250px) {
  .toolbar-count span { display:none; }
  .toolbar-info { gap:8px; }
  .toolbar-info .rainbow-scale { width:66px; }
}
@media(max-width:720px) {
  .map-toolbar { padding:5px 12px 8px; flex-wrap:wrap; }
  .toolbar-info { flex:1 1 100%; justify-content:space-between; }
  .toolbar-info .legend { font-size:8px; }
  .toolbar-count strong { font-size:11px; }
  .toolbar-count span { display:block; font-size:8px; }
  .visual-controls { justify-content:flex-end; width:100%; }
}

/* 2.5: persistent, unobtrusive progress in the original toolbar status slot.
 * Neither the progress indicator nor its animation covers the atlas canvas. */
.map-toolbar {
  min-height:72px;
  padding:10px 20px 11px;
  gap:9px 16px;
  flex-wrap:wrap;
}
.toolbar-info {
  flex:1 1 480px;
  min-width:0;
  gap:16px;
  justify-content:flex-start;
}
.toolbar-info .legend {
  gap:8px;
  font-size:11px;
  font-weight:650;
  letter-spacing:.07em;
  color:#c2cbd8;
}
.toolbar-info .rainbow-scale { width:110px; height:5px; }
.toolbar-count { gap:7px; align-items:baseline; }
.toolbar-count strong {
  font-size:24px;
  font-weight:720;
  letter-spacing:-.035em;
  color:#f5e4c0;
  line-height:1.1;
}
.toolbar-count span { font-size:12px; color:#b8c3d3; }
.render-meter {
  position:static;
  display:flex;
  flex:0 0 177px;
  flex-direction:column;
  justify-content:center;
  min-width:135px;
  width:auto;
  height:auto;
  padding:2px 0 1px 14px;
  margin:0;
  transform:none;
  z-index:auto;
  border:0;
  border-left:1px solid #394356;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  pointer-events:none;
}
.meter-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:9px;
  margin:0 0 6px;
  min-height:17px;
}
.meter-head #render-status {
  display:block;
  padding:0;
  border:0;
  font-size:12px;
  font-weight:600;
  line-height:1.2;
  letter-spacing:0;
  color:#c6d2e2;
}
.meter-head strong {
  flex:none;
  font:650 13px ui-monospace,SFMono-Regular,monospace;
  font-variant-numeric:tabular-nums;
  color:#ebd5a5;
}
.meter-track {
  position:relative;
  overflow:hidden;
  width:100%;
  height:6px;
  border:0;
  border-radius:9px;
  background:#333c4e;
}
.meter-track::after {
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:32%;
  background:linear-gradient(90deg,transparent,#e8e7d34d,transparent);
  animation:meter-scan 1.2s linear infinite;
  pointer-events:none;
  will-change:transform;
  opacity:0;
}
.render-meter.is-rendering .meter-track::after { opacity:1; }
.meter-fill {
  width:0;
  height:100%;
  border-radius:9px;
  background:linear-gradient(90deg,#bc5eab,#627cd4,#5bb4a5,#d3b668);
  transition:none;
}
@keyframes meter-scan {
  from { transform:translateX(-100%); }
  to { transform:translateX(420%); }
}
.visual-controls { flex:0 1 auto; gap:10px; margin-left:auto; }
.vote-control-group { display:flex; align-items:center; gap:6px; }
.vote-select { gap:8px; font-size:12px; font-weight:600; color:#cad4e1; }
.vote-select select { min-width:162px; height:36px; font-size:12px; }
.vote-help-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  flex:none;
  border:1px solid #677187;
  border-radius:50%;
  background:#202838;
  color:#f1dfb7;
  font:750 15px ui-sans-serif,system-ui,sans-serif;
  cursor:pointer;
}
.vote-help-button:hover { background:#333f53; color:#fff; border-color:#d4c090; }
.vote-help-button:focus-visible { outline:2px solid #f2d699; outline-offset:3px; }
.map-toolbar .text-button { font-size:12px; padding:8px 7px; }
.votes-dialog { max-width:min(515px,calc(100vw - 26px)); }
.votes-dialog .eyebrow { color:#d7b979; }
.votes-dialog p { margin-top:12px; }
.votes-explanation {
  display:grid;
  gap:1px;
  margin:18px 0 7px;
  background:#323a48;
  border:1px solid #394452;
  border-radius:7px;
  overflow:hidden;
}
.votes-explanation p {
  margin:0;
  padding:10px 12px;
  display:flex;
  gap:14px;
  align-items:baseline;
  background:#171e2b;
  line-height:1.5;
}
.votes-explanation strong { min-width:105px; color:#f2d9a8; font-size:12px; white-space:nowrap; }
.votes-explanation span { color:#b7c3d3; font-size:11px; }
.votes-dialog .votes-source { font-size:11px; color:#b6c2d2; }
.votes-dialog a { color:#e0c889; text-underline-offset:3px; }
/* Two rows are preferable to the progress meter overlapping vote controls. */
@media (max-width:1550px) {
  .toolbar-info { flex:1 1 100%; }
  .visual-controls { justify-content:flex-end; width:100%; }
}
@media (max-width:1450px) {
  .toolbar-info { gap:12px; }
  .toolbar-info .rainbow-scale { width:75px; }
  .toolbar-count span { display:block; }
}
@media (max-width:1100px) {
  .map-toolbar { gap:8px 12px; }
  .toolbar-info { flex:1 1 100%; }
  .visual-controls { margin-left:auto; width:auto; }
}
@media (max-width:720px) {
  .map-toolbar { padding:8px 11px; min-height:0; gap:7px; }
  .toolbar-info { flex:1 1 100%; gap:8px 10px; flex-wrap:wrap; justify-content:space-between; }
  .toolbar-info .legend { font-size:10px; }
  .toolbar-info .rainbow-scale { width:65px; }
  .toolbar-count strong { font-size:21px; }
  .toolbar-count span { display:block; font-size:10px; }
  .render-meter { flex:1 1 155px; max-width:220px; padding-left:9px; }
  .meter-head #render-status { font-size:11px; }
  .meter-head strong { font-size:12px; }
  .visual-controls { justify-content:flex-end; width:100%; gap:7px; }
  .vote-select { font-size:11px; gap:5px; }
  .vote-select select { min-width:120px; max-width:136px; padding:6px; font-size:11px; }
  .vote-help-button { width:27px; height:27px; font-size:14px; }
  .map-toolbar .text-button { font-size:11px; }
  .votes-explanation p { flex-direction:column; gap:3px; }
}
@media (max-width:440px) {
  .toolbar-info .legend { width:100%; }
  .toolbar-info .rainbow-scale { width:105px; }
  .render-meter { flex:0 0 145px; }
  .toolbar-count { flex:1 1 auto; }
  .toolbar-count strong { font-size:22px; }
  .vote-select select { min-width:121px; max-width:129px; }
  .visual-controls { gap:5px; }
}
@media (prefers-reduced-motion:reduce) {
  .meter-track::after { animation:none; }
}

/* 2.6 · Accessible search/route modes. Both panes remain mounted so the
 * ordinary search index and UI keep their state without reinitialization. */
.sidebar-tabs {
  display:grid; grid-template-columns:1fr 1fr;
  gap:5px; padding:11px 15px 6px; flex:none;
  border-bottom:1px solid #303947;
}
.sidebar-tabs button {
  color:#adb9ca; border-radius:7px 7px 0 0;
  padding:10px 6px; font-size:13px; font-weight:650;
  border-bottom:2px solid transparent;
}
.sidebar-tabs button[aria-selected="true"] {
  color:#ffe2a7; background:#252b37; border-bottom-color:#dfbd7c;
}
.sidebar-tabs button:focus-visible,
.route-step:focus-visible,.route-show:focus-visible { outline:2px solid #dfbf89; outline-offset:2px }
.sidebar-pane { display:flex; flex-direction:column; min-height:0; flex:1; }
.sidebar-pane[hidden] { display:none !important }
.routes-pane { overflow-y:auto; scrollbar-width:thin; }
.routes-form { padding:23px 20px 8px; display:flex; flex-direction:column; gap:9px; }
.routes-form h2 { font-size:18px; font-weight:500; letter-spacing:-.03em; line-height:1.25; margin:5px 0 15px; }
.routes-form label { font-size:12px; color:#d5dfec; font-weight:600; }
.routes-form input,.routes-form select {
  width:100%; min-height:43px; padding:10px 12px;
  border:1px solid #465164; border-radius:7px;
  color:#f4e9d2; background:#0a101b; font:13px system-ui,sans-serif;
}
.routes-form input:focus,.routes-form select:focus { outline:2px solid #ba9963; outline-offset:1px; }
.route-swap-row { text-align:right; }
.route-swap { font-size:12px; color:#e3c895; padding:4px 8px; }
.route-buttons { display:flex; flex-wrap:wrap; gap:9px; align-items:center; margin:10px 0 0; }
.route-buttons .primary-button { margin:0; font-size:12px; padding:10px 13px; }
.route-buttons .text-button { font-size:12px; padding:8px; }
.route-buttons button:disabled { opacity:.55; cursor:progress; }
.route-notice { font-size:11px; color:#aeb9c8; line-height:1.6; margin:10px 0 0; }
.route-status { padding:12px 20px; border-block:1px solid #2c3543; font-size:12px; line-height:1.6; color:#dfc895; }
.route-status.error,.route-error { color:#f0a99e; }
.route-list { padding:15px 13px 20px; display:flex; flex-direction:column; gap:12px; }
.route-working { font-size:13px; padding:17px 8px; color:#d5c299; }
.route-working::before { content:'◌'; display:inline-block; margin-right:9px; animation:route-spin 1s linear infinite; }
@keyframes route-spin { to { transform:rotate(360deg); } }
.route-card { background:#111927; border:1px solid #323e50; border-radius:9px; padding:13px; }
.route-card.active { border-color:#d1b27c; background:#1a2330; }
.route-card-head { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:10px; }
.route-card-head strong { font-size:13px; color:#f6e6bc; }
.route-card-head span { color:#aebbd0; font-size:11px; }
.route-show { width:100%; border:1px solid #786b4d; border-radius:6px; color:#ead6a8; padding:9px 10px; font-size:12px; font-weight:600; text-align:center; }
.route-show[aria-pressed="true"] { background:#675338; color:#fff1d2; }
.route-steps { margin:13px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:5px; }
.route-steps li { min-width:0; }
.route-step { width:100%; display:grid; grid-template-columns:22px minmax(0,1fr); gap:5px 8px; text-align:left; padding:9px 6px; border-radius:5px; background:#0d1420; }
.route-step:hover { background:#303d50; }
.route-step-number { width:20px; height:20px; display:grid; place-items:center; border-radius:50%; background:#50452f; font-weight:700; font-size:10px; color:#ffe6b7; grid-row:1 / span 2; }
.route-step-name { color:#e6e8eb; overflow-wrap:anywhere; font-size:12px; line-height:1.5; }
.route-step-votes { color:#e6c28a; font-size:11px; }
.route-texts { border-top:1px solid #394452; margin-top:14px; padding-top:10px; }
.route-texts summary { font-size:12px; color:#e7cd9b; cursor:pointer; }
.route-texts-body { margin:10px 0 0; display:flex; flex-direction:column; gap:10px; }
.route-texts-body .verse-paragraph { font-size:12px; line-height:1.65; color:#e3e8f0; }
.route-texts-body .verse-number { display:block; font-weight:650; color:#f0cb90; margin-bottom:4px; }
.inspector-votes { display:inline-block; font:700 12px system-ui,sans-serif; color:#ffe1a2; letter-spacing:0; margin-left:10px; white-space:nowrap; }
@media (max-width:720px) { .sidebar-tabs { padding-top:8px; } .routes-form { padding:14px 18px 8px; } }
@media (prefers-reduced-motion:reduce) { .route-working::before { animation:none } }
