.jdbe,
.jdbe * {
  box-sizing: border-box;
}

.jdbe {
  --jdbe-navy: #092f57;
  --jdbe-navy-deep: #061f3c;
  --jdbe-blue: #157bb1;
  --jdbe-cyan: #54d8e8;
  --jdbe-ink: #17243a;
  --jdbe-muted: #617086;
  --jdbe-line: #d9e3ed;
  --jdbe-paper: #ffffff;
  --jdbe-soft: #f3f7fb;
  --jdbe-red: #e94141;
  --jdbe-orange: #f08a24;
  --jdbe-gold: #f4cd45;
  --jdbe-green: #1b9b6f;
  --jdbe-aqua: #31b9b2;
  --jdbe-violet: #7b6bd6;
  color: var(--jdbe-ink);
  margin: 0 auto 2rem;
  overflow: hidden;
  border: 1px solid rgba(9, 47, 87, 0.1);
  border-radius: 26px;
  background: linear-gradient(180deg, #f9fcff 0%, #eef4fa 100%);
  box-shadow: 0 24px 70px rgba(5, 36, 68, 0.16);
}

.jdbe .screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.jdbe-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(310px, 0.65fr);
  gap: 34px;
  padding: 44px;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 90% 10%, rgba(84, 216, 232, 0.26), transparent 34%),
    linear-gradient(135deg, var(--jdbe-navy-deep), var(--jdbe-navy) 62%, #125f83);
}

.jdbe-hero::after {
  position: absolute;
  right: -120px;
  bottom: -170px;
  width: 360px;
  height: 360px;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 50%;
  box-shadow: 0 0 0 48px rgba(255,255,255,0.035), 0 0 0 96px rgba(255,255,255,0.025);
  content: "";
}

.jdbe-hero-copy,
.jdbe-stat-grid {
  position: relative;
  z-index: 1;
}

.jdbe-eyebrow,
.jdbe-kicker {
  margin: 0 0 10px;
  color: #86e5ef;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.jdbe-pulse {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 9px;
  border-radius: 50%;
  background: #72ebca;
  box-shadow: 0 0 0 6px rgba(114,235,202,0.12);
  animation: jdbe-pulse 2.4s ease-out infinite;
}

.jdbe .jdbe-hero h2 {
  max-width: 700px;
  margin: 0;
  color: #fff !important;
  font-size: clamp(2rem, 4vw, 3.7rem) !important;
  line-height: 0.98 !important;
  letter-spacing: -0.045em !important;
}

.jdbe-deck {
  max-width: 720px;
  margin: 19px 0 0;
  color: rgba(255,255,255,0.78);
  font-size: 1.02rem;
  line-height: 1.65;
}

.jdbe-stat-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  align-content: center;
}

.jdbe-stat {
  display: grid;
  grid-template-columns: 70px 1fr;
  grid-template-rows: auto auto;
  column-gap: 14px;
  padding: 15px 17px;
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 15px;
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(10px);
}

.jdbe-stat strong {
  grid-row: 1 / 3;
  align-self: center;
  justify-self: center;
  color: #fff;
  font-size: 1.8rem;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  letter-spacing: -0.04em;
  text-align: center;
}

.jdbe-stat span {
  color: #fff;
  font-size: 0.9rem;
  font-weight: 800;
}

.jdbe-stat small {
  color: rgba(255,255,255,0.62);
  font-size: 0.72rem;
}

.jdbe-chart-card {
  margin: 24px 24px 0;
  padding: 24px 26px 18px;
  border: 1px solid rgba(9,47,87,0.12);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 14px 35px rgba(14, 48, 80, 0.08);
}

.jdbe-chart-heading,
.jdbe-results-bar,
.jdbe-scale-caption {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.jdbe-chart-heading h3 {
  margin: 0;
  color: var(--jdbe-navy);
  font-size: clamp(1.25rem, 2.3vw, 1.7rem);
}

.jdbe-chart-heading .jdbe-kicker {
  margin-bottom: 3px;
  color: var(--jdbe-blue);
}

.jdbe-download {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 8px 13px;
  border: 1px solid #cbd9e6;
  border-radius: 11px;
  color: var(--jdbe-navy);
  background: #f8fbfe;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 800;
  cursor: pointer;
  transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.jdbe-download:hover,
.jdbe-download:focus-visible {
  transform: translateY(-1px);
  border-color: var(--jdbe-blue);
  box-shadow: 0 8px 18px rgba(21,123,177,0.15);
}

.jdbe-download svg {
  width: 18px;
  height: 18px;
}

.jdbe-chart-shell {
  position: relative;
  min-height: 260px;
  margin-top: 12px;
}

.jdbe-chart svg {
  display: block;
  width: 100%;
  height: auto;
  min-height: 240px;
  overflow: visible;
}

.jdbe-chart .jdbe-chart-grid {
  stroke: #dce6ef;
  stroke-width: 1;
}

.jdbe-chart .jdbe-chart-zero {
  stroke: #7a8da1;
  stroke-width: 1.5;
  stroke-dasharray: 5 5;
}

.jdbe-chart .jdbe-chart-year {
  stroke: #e8eef4;
  stroke-width: 1;
}

.jdbe-chart .jdbe-chart-label {
  fill: #6c7d90;
  font-size: 11px;
  font-weight: 700;
}

.jdbe-chart .jdbe-chart-band--plaintiff {
  fill: #eaf9f7;
  opacity: 0.58;
}

.jdbe-chart .jdbe-chart-band--defendant {
  fill: #fff4ea;
  opacity: 0.58;
}

.jdbe-chart .jdbe-chart-region-label {
  paint-order: stroke;
  stroke: rgba(255,255,255,0.92);
  stroke-width: 3px;
  stroke-linejoin: round;
  font-size: 9.5px;
  font-weight: 900;
  letter-spacing: 0.055em;
}

.jdbe-chart .jdbe-chart-region-label--plaintiff { fill: #087f78; }
.jdbe-chart .jdbe-chart-region-label--neutral { fill: #16845f; }
.jdbe-chart .jdbe-chart-region-label--defendant { fill: #b65018; }

.jdbe-chart .jdbe-chart-path {
  fill: none;
  stroke: #0f5e8c;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 4px 4px rgba(9,47,87,0.15));
}

.jdbe-chart .jdbe-chart-area {
  opacity: 0.9;
}

.jdbe-chart .jdbe-point circle {
  stroke: #fff;
  stroke-width: 3;
  filter: drop-shadow(0 3px 5px rgba(5,36,68,0.28));
  transition: r 140ms ease, opacity 140ms ease;
}

.jdbe-chart .jdbe-point:hover circle,
.jdbe-chart .jdbe-point:focus circle,
.jdbe-chart .jdbe-point.is-active circle {
  r: 8;
  outline: none;
}

.jdbe-tooltip {
  position: absolute;
  z-index: 5;
  width: max-content;
  max-width: 240px;
  padding: 10px 12px;
  border-radius: 10px;
  color: #fff;
  background: #071f39;
  box-shadow: 0 10px 26px rgba(5,28,52,0.3);
  font-size: 0.76rem;
  line-height: 1.4;
  pointer-events: none;
  transform: translate(-50%, calc(-100% - 12px));
}

.jdbe-tooltip strong,
.jdbe-tooltip span {
  display: block;
}

.jdbe-tooltip span {
  color: rgba(255,255,255,0.72);
}

.jdbe-time-axis {
  margin-top: 2px;
  color: #738297;
  font-size: 0.67rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-align: center;
  text-transform: uppercase;
}

.jdbe-time-axis strong {
  color: var(--jdbe-navy);
  font-weight: 900;
}

.jdbe-controls {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto auto;
  gap: 12px;
  align-items: center;
  margin: 18px 24px 0;
  padding: 13px;
  border: 1px solid rgba(9,47,87,0.1);
  border-radius: 17px;
  background: rgba(255,255,255,0.86);
  box-shadow: 0 10px 24px rgba(14,48,80,0.05);
}

.jdbe-search {
  position: relative;
  display: block;
}

.jdbe-search svg {
  position: absolute;
  top: 50%;
  left: 13px;
  width: 18px;
  height: 18px;
  color: #77879a;
  transform: translateY(-50%);
  pointer-events: none;
}

.jdbe-search input,
.jdbe-sort select {
  width: 100%;
  min-height: 42px;
  margin: 0;
  border: 1px solid #cad7e3;
  border-radius: 11px;
  color: var(--jdbe-ink);
  background: #fff;
  font: inherit;
  font-size: 0.82rem;
  outline: none;
}

.jdbe-search input {
  padding: 8px 12px 8px 40px;
}

.jdbe-search input:focus,
.jdbe-sort select:focus {
  border-color: var(--jdbe-blue);
  box-shadow: 0 0 0 3px rgba(21,123,177,0.13);
}

.jdbe-filter-group {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.jdbe-filter-group button {
  min-height: 36px;
  padding: 7px 10px;
  border: 1px solid transparent;
  border-radius: 9px;
  color: #536479;
  background: transparent;
  font: inherit;
  font-size: 0.7rem;
  font-weight: 800;
  cursor: pointer;
}

.jdbe-filter-group button:hover,
.jdbe-filter-group button:focus-visible {
  color: var(--jdbe-navy);
  background: #eaf2f8;
}

.jdbe-filter-group button[aria-pressed="true"] {
  color: #fff;
  background: var(--jdbe-navy);
  box-shadow: 0 5px 12px rgba(9,47,87,0.2);
}

.jdbe-sort {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #66778b;
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
}

.jdbe-sort select {
  min-width: 132px;
  padding: 7px 28px 7px 10px;
  text-transform: none;
}

.jdbe-results-bar {
  gap: 15px;
  margin: 17px 28px 9px;
}

.jdbe-results-bar p {
  margin: 0;
  color: #506176;
  font-size: 0.76rem;
  font-weight: 800;
}

.jdbe-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 13px;
  color: #68798d;
  font-size: 0.68rem;
  font-weight: 700;
}

.jdbe-legend span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.jdbe-legend i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.jdbe-legend-high { background: var(--jdbe-red); }
.jdbe-legend-medium { background: var(--jdbe-orange); }
.jdbe-legend-low { background: var(--jdbe-gold); }
.jdbe-legend-neutral { background: var(--jdbe-green); }

.jdbe-matrix {
  margin: 0 24px 24px;
  overflow: hidden;
  border: 1px solid #cdd9e5;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(14,48,80,0.07);
}

.jdbe-matrix-header,
.jdbe-row {
  display: grid;
  grid-template-columns: minmax(185px, 0.78fr) minmax(420px, 1.7fr) minmax(230px, 1fr);
}

.jdbe-matrix-header {
  position: sticky;
  z-index: 3;
  top: calc(var(--wp-admin--admin-bar--height, 0px) + 0px);
  color: #fff;
  background: linear-gradient(180deg, #0b345e, #082849);
}

/* The logged-in WordPress toolbar adds a 32px sticky offset. Near the top of
   the matrix that offset can push the header over the first row, so admin
   sessions use the header in normal document flow. Public visitors retain the
   sticky header. */
body.admin-bar .jdbe-matrix-header {
  position: relative;
  top: auto;
}

.jdbe-header-side {
  display: flex;
  align-items: center;
  padding: 16px 18px;
  border-right: 1px solid rgba(255,255,255,0.12);
  font-size: 0.77rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.jdbe-header-side--right {
  border-right: 0;
  border-left: 1px solid rgba(255,255,255,0.12);
}

.jdbe-scale-header {
  padding: 10px 10px 8px;
}

.jdbe-scale-caption {
  margin-bottom: 7px;
  color: rgba(255,255,255,0.72);
  font-size: 0.62rem;
  font-weight: 800;
  text-transform: uppercase;
}

.jdbe-scale-ticks,
.jdbe-meter-cells {
  display: grid;
  grid-template-columns: repeat(21, minmax(0, 1fr));
}

.jdbe-scale-ticks span {
  min-height: 22px;
  color: rgba(255,255,255,0.82);
  font-size: 0.58rem;
  font-weight: 800;
  line-height: 22px;
  text-align: center;
}

.jdbe-scale-ticks span:nth-child(11) {
  border-radius: 5px;
  color: #fff;
  background: rgba(27,155,111,0.55);
}

.jdbe-row {
  --jdbe-meta-cell: #f1f7fb;
  --jdbe-meter-cell: #fbfcfd;
  --jdbe-detail-cell: #fbfaf6;
  position: relative;
  min-height: 104px;
  border-top: 1px solid var(--jdbe-line);
  background: #fff;
  transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.jdbe-row:nth-child(even) {
  --jdbe-meta-cell: #eaf3f8;
  --jdbe-meter-cell: #f6f9fb;
  --jdbe-detail-cell: #f7f6f1;
}

.jdbe-row:hover,
.jdbe-row.is-linked {
  --jdbe-meta-cell: #e5f1f8;
  --jdbe-meter-cell: #f1f8f7;
  --jdbe-detail-cell: #faf6ec;
  z-index: 2;
  background: #fff;
  box-shadow: 0 9px 26px rgba(9,47,87,0.14);
}

.jdbe-row[hidden] {
  display: none !important;
}

.jdbe-row-meta,
.jdbe-row-detail,
.jdbe-meter {
  min-width: 0;
  padding: 14px 16px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.72);
  transition: background-color 160ms ease;
}

.jdbe-row-meta {
  border-right: 1px solid var(--jdbe-line);
  background-color: var(--jdbe-meta-cell);
}

.jdbe-date-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #0d6f9f;
  font-size: 0.9rem;
  font-weight: 850;
  white-space: nowrap;
  text-decoration: none;
}

.jdbe-date-link:hover,
.jdbe-date-link:focus-visible,
.jdbe-row-detail h3 a:hover,
.jdbe-row-detail h3 a:focus-visible {
  color: #074a73;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.jdbe-date-link svg {
  width: 17px;
  height: 17px;
}

.jdbe-docs {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 11px;
}

.jdbe-doc {
  display: inline-flex;
  align-items: stretch;
  overflow: hidden;
  border: 1px solid #d2dde7;
  border-radius: 7px;
  background: #fff;
}

.jdbe-doc small,
.jdbe-doc b {
  display: inline-flex;
  align-items: center;
  padding: 4px 6px;
  font-size: 0.58rem;
  line-height: 1;
}

.jdbe-doc small {
  color: #fff;
  background: #60758a;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.jdbe-doc b {
  color: #43556a;
  background: #fff;
}

.jdbe-meter {
  display: flex;
  align-self: stretch;
  flex-direction: column;
  justify-content: center;
  background-color: var(--jdbe-meter-cell);
}

.jdbe-meter-cells {
  gap: 2px;
  min-height: 38px;
  padding: 3px;
  border: 1px solid #ccd8e3;
  border-radius: 10px;
  background: #e8eef4;
}

.jdbe-cell {
  position: relative;
  display: grid;
  place-items: center;
  min-width: 0;
  border-radius: 4px;
  color: #0a2948;
  background: #f9fbfd;
  font-size: 0.58rem;
  font-weight: 900;
  transition: transform 160ms ease, filter 160ms ease;
}

.jdbe-cell:nth-child(11) {
  box-shadow: inset 0 0 0 1px rgba(27,155,111,0.28);
}

.jdbe-cell--active { background: var(--jdbe-green); }
.jdbe-cell--red { color: #fff; background: var(--jdbe-red); }
.jdbe-cell--orange { background: var(--jdbe-orange); }
.jdbe-cell--gold { background: var(--jdbe-gold); }
.jdbe-cell--green { color: #fff; background: var(--jdbe-green); }
.jdbe-cell--aqua { background: var(--jdbe-aqua); }
.jdbe-cell--blue { color: #fff; background: #3a8fcb; }
.jdbe-cell--violet { color: #fff; background: var(--jdbe-violet); }

.jdbe-cell--score {
  z-index: 1;
  transform: scale(1.12);
  box-shadow: 0 3px 9px rgba(7,31,57,0.25), inset 0 0 0 2px rgba(255,255,255,0.8);
}

.jdbe-row:hover .jdbe-cell--score,
.jdbe-row.is-linked .jdbe-cell--score {
  transform: scale(1.2);
  filter: saturate(1.15);
}

.jdbe-score-line {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  color: #64758a;
  font-size: 0.68rem;
}

.jdbe-score {
  display: inline-grid;
  place-items: center;
  min-width: 34px;
  min-height: 25px;
  padding: 3px 7px;
  border-radius: 999px;
  color: #fff;
  font-size: 0.76rem;
  line-height: 1;
}

.jdbe-score--high-defendant { background: var(--jdbe-red); }
.jdbe-score--medium-defendant { background: var(--jdbe-orange); }
.jdbe-score--low-defendant { color: #503700; background: var(--jdbe-gold); }
.jdbe-score--neutral { background: var(--jdbe-green); }
.jdbe-score--plaintiff { color: #062d31; background: #79d5c2; }

.jdbe-row-detail {
  border-left: 1px solid var(--jdbe-line);
  background-color: var(--jdbe-detail-cell);
}

.jdbe-row-detail h3 {
  margin: 0 !important;
  color: var(--jdbe-navy);
  font-size: 0.86rem !important;
  line-height: 1.25;
}

.jdbe-row-detail h3 a {
  color: inherit;
  text-decoration: none;
}

.jdbe-row-detail p {
  margin: 5px 0 0 !important;
  color: #65758a;
  font-size: 0.71rem;
  line-height: 1.38;
}

.jdbe-read {
  display: inline-block;
  margin-top: 8px;
  color: var(--jdbe-blue);
  font-size: 0.68rem;
  font-weight: 850;
  letter-spacing: 0.02em;
  text-decoration: none;
  text-transform: uppercase;
}

.jdbe-read:hover,
.jdbe-read:focus-visible {
  color: var(--jdbe-navy);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.jdbe-empty {
  display: grid;
  place-items: center;
  gap: 6px;
  padding: 58px 24px;
  color: #68798d;
  text-align: center;
}

.jdbe-empty[hidden] {
  display: none !important;
}

.jdbe-empty strong {
  color: var(--jdbe-navy);
  font-size: 1.1rem;
}

.jdbe-empty button {
  margin-top: 9px;
  padding: 8px 13px;
  border: 0;
  border-radius: 9px;
  color: #fff;
  background: var(--jdbe-navy);
  font: inherit;
  font-size: 0.74rem;
  font-weight: 800;
  cursor: pointer;
}

.jdbe-method {
  margin: 0 24px 24px;
  border: 1px solid #ccd9e5;
  border-radius: 15px;
  background: rgba(255,255,255,0.78);
}

.jdbe-method summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  color: var(--jdbe-navy);
  font-size: 0.82rem;
  font-weight: 850;
  cursor: pointer;
  list-style: none;
}

.jdbe-method summary::-webkit-details-marker { display: none; }

.jdbe-method summary svg {
  width: 19px;
  height: 19px;
  transition: transform 160ms ease;
}

.jdbe-method[open] summary svg { transform: rotate(180deg); }

.jdbe-method > div {
  padding: 0 18px 17px;
  color: #536579;
  font-size: 0.78rem;
  line-height: 1.55;
}

.jdbe-method p { margin: 7px 0; }

.jdbe-caveat {
  padding: 10px 12px;
  border-left: 3px solid var(--jdbe-blue);
  border-radius: 0 8px 8px 0;
  background: #edf5fb;
}

@keyframes jdbe-pulse {
  0% { box-shadow: 0 0 0 0 rgba(114,235,202,0.38); }
  70% { box-shadow: 0 0 0 9px rgba(114,235,202,0); }
  100% { box-shadow: 0 0 0 0 rgba(114,235,202,0); }
}

@media (max-width: 1050px) {
  .jdbe-controls {
    grid-template-columns: minmax(220px, 1fr) auto;
  }
  .jdbe-filter-group {
    grid-column: 1 / -1;
    grid-row: 2;
  }
  .jdbe-sort {
    grid-column: 2;
    grid-row: 1;
  }
  .jdbe-matrix-header,
  .jdbe-row {
    grid-template-columns: minmax(205px, 0.86fr) minmax(355px, 1.59fr) minmax(205px, 1fr);
  }
}

@media (max-width: 850px) {
  .jdbe-hero {
    grid-template-columns: 1fr;
    padding: 34px 28px;
  }
  .jdbe-stat-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .jdbe-stat {
    display: block;
    padding: 14px;
  }
  .jdbe-stat strong,
  .jdbe-stat span,
  .jdbe-stat small {
    display: block;
  }
  .jdbe-stat span { margin-top: 6px; }
  .jdbe-chart-card,
  .jdbe-controls,
  .jdbe-matrix,
  .jdbe-method {
    margin-right: 14px;
    margin-left: 14px;
  }
  .jdbe-results-bar {
    margin-right: 18px;
    margin-left: 18px;
  }
  .jdbe-matrix-header {
    grid-template-columns: 1fr;
  }
  .jdbe-header-side { display: none; }
  .jdbe-scale-header { padding: 12px 15px; }
  .jdbe-row {
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    grid-template-areas:
      "meta detail"
      "meter meter";
  }
  .jdbe-row-meta { grid-area: meta; border-right: 1px solid var(--jdbe-line); }
  .jdbe-row-detail { grid-area: detail; border-left: 0; }
  .jdbe-meter { grid-area: meter; border-top: 1px solid var(--jdbe-line); }
}

@media (max-width: 620px) {
  .jdbe { border-radius: 18px; }
  .jdbe-hero { padding: 30px 20px; }
  .jdbe-hero h2 { font-size: 2.35rem; }
  .jdbe-deck { font-size: 0.92rem; }
  .jdbe-stat-grid { grid-template-columns: 1fr; }
  .jdbe-stat {
    display: grid;
    grid-template-columns: 64px 1fr;
  }
  .jdbe-chart-card { padding: 19px 15px 14px; }
  .jdbe-chart-heading { align-items: flex-start; gap: 12px; }
  .jdbe-download { padding: 8px; font-size: 0; }
  .jdbe-download svg { width: 20px; height: 20px; }
  .jdbe-chart-shell { min-height: 220px; }
  .jdbe-chart svg { min-height: 210px; }
  .jdbe-time-axis { font-size: 0.56rem; }
  .jdbe-chart .jdbe-chart-region-label { font-size: 8.5px; letter-spacing: 0.025em; }
  .jdbe-controls { grid-template-columns: 1fr; }
  .jdbe-search,
  .jdbe-filter-group,
  .jdbe-sort {
    grid-column: 1;
    grid-row: auto;
  }
  .jdbe-sort { justify-content: space-between; }
  .jdbe-filter-group button { flex: 1 1 auto; }
  .jdbe-results-bar { align-items: flex-start; flex-direction: column; }
  .jdbe-legend { gap: 9px; }
  .jdbe-scale-caption { font-size: 0.52rem; }
  .jdbe-scale-ticks span { font-size: 0.5rem; }
  .jdbe-row {
    grid-template-columns: 1fr;
    grid-template-areas: "meta" "detail" "meter";
  }
  .jdbe-row-meta { border-right: 0; }
  .jdbe-row-detail { padding-top: 2px; }
  .jdbe-meter { padding: 14px 10px 17px; }
  .jdbe-meter-cells { gap: 1px; min-height: 38px; padding: 2px; }
  .jdbe-cell { font-size: 0.48rem; }
  .jdbe-score-line { align-items: flex-start; }
  .jdbe-score-line span { line-height: 1.3; }
}

@media (prefers-reduced-motion: reduce) {
  .jdbe *,
  .jdbe *::before,
  .jdbe *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media print {
  .jdbe-download,
  .jdbe-controls,
  .jdbe-read,
  .jdbe-method summary svg { display: none !important; }
  .jdbe { border: 0; box-shadow: none; }
  .jdbe-hero { color: #111; background: #fff; }
  .jdbe-hero h2,
  .jdbe-hero p,
  .jdbe-stat strong,
  .jdbe-stat span,
  .jdbe-stat small { color: #111; }
  .jdbe-row[hidden] { display: grid !important; }
  .jdbe-method > div { display: block !important; }
}


/* Download controls: CSV data plus a true-vector, print-friendly summary. */
.jdbe-downloads {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.jdbe-download--link {
  text-decoration: none !important;
}

.jdbe-download--link:visited {
  color: var(--jdbe-navy);
}

@media (max-width: 620px) {
  .jdbe-downloads {
    flex: 0 0 auto;
    gap: 6px;
  }
}

/* Center each order/hearing destination card while retaining the structural
   column-header alignment. */
.jdbe-row-detail {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
