/* Panel owner: shell panel headers, side-panel cards, metric cards, and shared card primitives.
   Loads after map-canvas.css and before feature-specific panel owners. */

.panel-header {
  display: grid;
  grid-template-columns: minmax(210px, 0.52fr) minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 11px 12px;
  border-bottom: 1px solid var(--line);
  background:
    linear-gradient(180deg, rgba(255, 253, 247, 0.68), rgba(242, 237, 224, 0.22)),
    linear-gradient(90deg, transparent, rgba(12, 12, 12, 0.026) 50%, transparent);
}

.panel-title-block {
  position: relative;
  min-width: 0;
  padding-left: 13px;
}

.panel-title-block::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1px;
  bottom: 2px;
  width: 4px;
  background:
    repeating-linear-gradient(
      180deg,
      var(--mode-accent) 0 11px,
      var(--paper) 11px 15px,
      color-mix(in srgb, var(--mode-accent) 54%, var(--accent-2)) 15px 27px,
      var(--paper) 27px 31px
    );
  box-shadow: inset 0 0 0 1px rgba(12, 12, 12, 0.14);
}

.panel-header h2 {
  margin: 0;
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 850;
  letter-spacing: 0.085em;
  line-height: 1.05;
  text-transform: uppercase;
}

.panel-header p {
  max-width: 60ch;
  margin: 6px 0 0;
  color: var(--ink-soft);
  font-family: var(--font-serif);
  font-size: 0.92rem;
  line-height: 1.32;
}

.panel-controls {
  position: relative;
  z-index: 10;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 5px;
  align-items: center;
  overflow: visible;
}

.panel-controls .mode-control,
.panel-controls .select-control {
  margin-right: 0;
}

.panel-controls .select-control {
  margin-left: 0;
}

.panel-controls .utility-button {
  margin-left: 0;
}

.side-panel {
  display: grid;
  gap: 12px;
  position: sticky;
  top: 18px;
  max-height: calc(100vh - 36px);
  overflow-y: auto;
  padding-right: 2px;
  scrollbar-gutter: stable;
  animation: page-in var(--motion-duration-scene) var(--motion-duration-fast) var(--ease) both;
}

.side-panel > section {
  contain: content;
  transition:
    border-color var(--motion-duration-fast) var(--ease-crisp),
    box-shadow var(--motion-duration-fast) var(--ease-crisp),
    transform var(--motion-duration-fast) var(--ease-crisp);
}

.side-panel > section,
.side-panel > .briefing-masthead,
.side-panel > .score-card,
.side-panel > .details-card,
.side-panel > .route-card,
#stationDetails,
#reachDetails,
#reachMeta {
  contain: none;
}

.side-panel > section[hidden],
.side-panel > section[data-panel-visible="false"] {
  display: none;
}

.side-panel > section[data-panel-visible="true"]:not([hidden]) {
  display: grid;
}

.side-panel > section:hover {
  border-color: rgba(12, 12, 12, 0.5);
  box-shadow: var(--shadow-soft), inset 0 0 0 1px rgba(255, 253, 247, 0.48);
}

.score-card,
.details-card,
.route-card {
  position: relative;
  overflow: hidden;
  padding: 13px;
  isolation: isolate;
}

.score-card {
  padding: 14px 15px;
}

.score-card::before,
.details-card::before,
.route-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 2px;
  background: var(--rule-gradient);
}

.score-card::after,
.details-card::after,
.route-card::after {
  content: "";
  position: absolute;
  top: 2px;
  right: 0;
  z-index: -1;
  width: 18px;
  height: 18px;
  background:
    linear-gradient(135deg, rgba(12, 12, 12, 0.12) 0 50%, rgba(255, 253, 247, 0.36) 51% 100%);
  clip-path: polygon(100% 0, 0 0, 100% 100%);
}

.route-card {
  display: none;
  padding: 12px;
  background:
    linear-gradient(90deg, rgba(12, 12, 12, 0.022) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255, 255, 255, 0.56), rgba(255, 253, 247, 0.88)),
    var(--paper);
  background-size: 34px 34px, auto, auto;
  box-shadow: var(--shadow-soft);
}

body.is-route-mode .route-card {
  display: block;
}

body.is-inspect-mode .score-card {
  max-height: min(58vh, 540px);
  overflow-y: auto;
  padding: 11px 12px;
}

body.is-inspect-mode .score-card > strong {
  margin-top: 4px;
  font-size: 1.52rem;
}

body.is-inspect-mode .score-card > p,
body.is-inspect-mode .score-card > .reach-meta {
  margin-top: 5px;
}

.route-card::before {
  height: 4px;
  background:
    repeating-linear-gradient(
      90deg,
      var(--accent) 0 22px,
      var(--paper) 22px 27px,
      var(--accent) 27px 48px
    );
}

.score-card > strong {
  display: block;
  margin-top: 10px;
  font-family: var(--font-mono);
  font-size: 4rem;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  line-height: 0.92;
  letter-spacing: 0;
  color: var(--ink);
}

.score-card > strong span {
  display: block;
  margin-top: 8px;
  color: var(--muted);
  font-family: var(--font-main);
  font-size: var(--panel-label);
  font-weight: 800;
  letter-spacing: 0.09em;
  line-height: 1;
  text-transform: uppercase;
}

.score-card p,
.score-card .reach-meta {
  margin-top: 7px;
  font-size: 0.86rem;
}

.details-card h3,
.route-card h3 {
  position: relative;
  width: fit-content;
  margin: 0 0 11px;
  color: var(--ink);
  font-family: var(--font-main);
  font-size: var(--type-section-size);
  font-weight: 850;
  letter-spacing: 0.085em;
  line-height: 1.08;
  text-transform: uppercase;
}

.details-card h3::after,
.route-card h3::after {
  content: "";
  display: block;
  width: 100%;
  min-width: 28px;
  height: 2px;
  margin-top: 5px;
  background: var(--rule-gradient);
  opacity: 0.78;
}

.route-card h3 {
  margin-bottom: 8px;
}

.details-card h3:not(:first-child) {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--line-soft);
}

.atlas-metric-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.atlas-metric-card {
  display: grid;
  align-content: start;
  gap: 2px;
  min-height: 78px;
  min-width: 0;
  padding: 8px 9px;
  box-shadow: inset 3px 0 0 var(--metric-accent, var(--accent-2));
}

.atlas-metric-card strong {
  display: block;
  min-width: 0;
  margin: 2px 0 1px;
  color: var(--ink);
  font-family: var(--font-mono);
  font-size: 1.18rem;
  font-weight: 560;
  letter-spacing: 0;
  line-height: 1;
  overflow-wrap: anywhere;
}

.atlas-percentile-head span,
.atlas-percentile-foot span,
.atlas-comparison-head span,
.atlas-comparison-foot span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.atlas-comparison-track b {
  position: absolute;
  top: -3px;
  left: var(--median, 50%);
  width: 1px;
  height: 12px;
  background: var(--accent);
}

.score-card > strong .network-count {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 0.28em;
  margin-top: 0;
  color: var(--ink);
  font: inherit;
  letter-spacing: 0;
  line-height: 0.98;
  text-transform: none;
}

.score-card > strong .network-count span {
  display: inline-flex;
  align-items: baseline;
  gap: 0.16em;
  margin-top: 0;
  color: inherit;
  font: inherit;
  letter-spacing: 0;
  line-height: inherit;
  text-transform: none;
  white-space: nowrap;
}

.score-card > strong .network-count strong {
  font: inherit;
  font-weight: inherit;
}

.route-destination-atlas .atlas-metric-grid,
.route-destination-atlas .atlas-percentile-grid,
.route-destination-atlas .atlas-comparison-grid {
  gap: 5px;
}

.route-destination-atlas .atlas-metric-card {
  min-height: 72px;
  padding: 7px 8px;
}

.route-destination-atlas .atlas-metric-card strong {
  font-size: 1.02rem;
}

.notes {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px 16px;
  align-items: center;
  margin-top: 14px;
  padding: 10px 14px;
}

.notes h2 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-main);
  font-size: var(--panel-label);
  font-weight: 850;
  letter-spacing: 0.085em;
  line-height: 1;
  text-transform: uppercase;
}



@media (max-width: 1180px) {
.panel-header {
      grid-template-columns: 1fr;
    }
}



@media (max-width: 980px) {
.side-panel {
      position: static;
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

  .notes {
      grid-template-columns: 1fr;
    }
}



@media (max-width: 980px) {
.panel-header {
      display: none;
    }

  .side-panel {
      display: none;
    }

  .mobile-metric-card {
      display: grid;
      gap: 5px;
      padding: 9px;
      border: 1px solid rgba(17, 16, 14, 0.18);
      background: rgba(255, 253, 247, 0.54);
    }

  .mobile-metric-card strong {
      color: var(--ink);
      font-family: var(--font-metric-display);
      font-size: 1.18rem;
      font-weight: 440;
      line-height: 1;
    }
}

.panel-header {
  grid-template-columns: minmax(250px, 0.42fr) minmax(0, 1fr);
  gap: 14px;
  padding: 18px;
  border-bottom-color: rgba(17, 16, 14, 0.26);
  background: rgba(251, 250, 244, 0.5);
}

.panel-title-block {
  padding-left: 16px;
}

.panel-title-block::before {
  width: 4px;
  background: linear-gradient(#b84c35 0 34%, #f4f1e8 34% 41%, #b84c35 41% 68%, #3d858d 68%);
}

.panel-header h2 {
  font-family: var(--font-mono);
  font-size: 0.86rem;
  font-weight: 800;
}

.panel-header p {
  max-width: 39ch;
  color: rgba(17, 16, 14, 0.62);
  font-size: 0.93rem;
}

.panel-controls {
  gap: 7px;
}

.side-panel {
  gap: 14px;
  top: 20px;
  max-height: calc(100vh - 40px);
}

.score-card,
.details-card,
.route-card {
  padding: 16px 16px 15px;
}

.score-card::before,
.details-card::before,
.route-card::before {
  height: 3px;
}

.score-card::after,
.details-card::after,
.route-card::after {
  width: 22px;
  height: 22px;
  background: linear-gradient(135deg, rgba(61, 133, 141, 0.16) 0 50%, rgba(251, 250, 244, 0.48) 51% 100%);
}

.score-card > strong {
  margin-top: 10px;
  font-size: 3.2rem;
  line-height: 0.92;
}

.details-card h3,
.route-card h3 {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  font-weight: 800;
}

.details-card h3::after,
.route-card h3::after {
  height: 1px;
}

.route-card {
  background:
    linear-gradient(180deg, rgba(251, 250, 244, 0.94), rgba(241, 236, 224, 0.72)),
    linear-gradient(90deg, rgba(17, 16, 14, 0.028) 1px, transparent 1px);
  background-size: auto, 38px 38px;
}

.route-card::before {
  height: 4px;
  background:
    repeating-linear-gradient(
      90deg,
      #b84c35 0 28px,
      #f4f1e8 28px 34px,
      #e0a928 34px 58px,
      #f4f1e8 58px 64px,
      #3d858d 64px 92px
    );
}

body.is-route-mode .side-panel {
  gap: 12px;
}

body.is-route-mode .route-card {
  padding: 18px;
}

body.is-route-mode .route-card #routeSubmitButton {
  background: #b84c35;
}

body.is-route-mode .route-card #routeSubmitButton:hover {
  background: #11100e;
}

body.is-route-mode .route-card h3 {
  margin-bottom: 8px;
}

.notes {
  margin-top: 18px;
  padding: 9px 14px;
  border-top: 1px solid rgba(17, 16, 14, 0.34);
  background: rgba(251, 250, 244, 0.48);
  box-shadow: none;
}



@media (max-width: 980px) {
.side-panel {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.panel-header {
  background: transparent;
}

.panel-title-block::before {
  width: 3px;
  background: #b84c35;
}

.score-card::before,
.details-card::before,
.route-card::before {
  height: 1px;
  background: rgba(17, 16, 14, 0.5);
}

.score-card::after,
.details-card::after,
.route-card::after {
  display: none;
}

.route-card {
  background: var(--panel-bg);
  background-size: auto;
}

.score-card .reach-stats {
  gap: 8px;
}

.score-card .reach-section {
  gap: 5px;
}

.score-card .reach-section .detail-section-label {
  margin-top: 4px;
  font-family: var(--font-mono);
  color: rgba(17, 16, 14, 0.58);
  font-size: var(--panel-label);
  font-weight: 760;
  letter-spacing: 0.055em;
  line-height: 1.12;
}

.score-card .linked-row {
  gap: 1px;
  padding: 6px 8px;
}

.score-card .linked-row strong {
  margin: 0;
  font-family: var(--font-main);
  font-size: 0.82rem;
  font-weight: 780;
  line-height: 1.14;
}

.score-card .linked-row span {
  font-size: var(--panel-label);
  line-height: 1.24;
}

.score-card .line-rank-list {
  display: grid;
  gap: 5px;
}

.score-card .line-rank {
  width: 100%;
  min-width: 0;
  padding: 6px 8px;
}

.score-card .line-rank strong {
  margin: 0;
  font-family: var(--font-main);
  font-size: var(--panel-label);
  font-weight: 780;
  line-height: 1.14;
}

.score-card .line-rank span {
  margin-top: 2px;
  font-size: var(--panel-label);
  line-height: 1.24;
  white-space: normal;
}

body.is-reach-mode.has-origin .side-panel {
  gap: 10px;
}

body.is-reach-mode.has-origin .score-card > span {
  display: block;
  max-width: 22ch;
  line-height: 1.16;
}

body.is-reach-mode.has-origin .score-card > strong {
  margin-top: 8px;
}



@media (max-width: 420px) {
.mobile-route-card .atlas-metric-grid,
    .mobile-inspector .atlas-metric-grid {
      grid-template-columns: 1fr;
    }
}

.details-card h3,
.route-card h3 {
  font-size: var(--panel-label);
  font-weight: 760;
}



@media (hover: hover) {
.side-panel > section:hover{
      transform: translateY(-1px);
      box-shadow: 0 18px 38px rgba(36, 30, 20, 0.085);
    }
}

.panel-header {
  grid-template-columns: minmax(190px, 0.3fr) minmax(0, 1fr);
  gap: 10px;
  padding: 10px 12px;
  align-items: center;
}

.panel-title-block {
  padding-left: 11px;
}

.panel-title-block::before {
  width: 3px;
}

.panel-header h2 {
  font-size: var(--panel-label);
}

.panel-header p {
  max-width: 30ch;
  margin-top: 3px;
  font-size: var(--panel-label);
  line-height: 1.2;
}

.panel-controls {
  gap: 5px;
}

.panel-controls .utility-button {
  min-height: 32px;
  padding-inline: 10px;
  font-size: var(--panel-label);
}

body.is-map-active .panel-header {
  grid-template-columns: minmax(180px, 0.28fr) minmax(0, 1fr);
  padding-block: 8px;
}



@media (max-width: 1180px) {
.panel-header,
    body.is-map-active .panel-header {
      grid-template-columns: 1fr;
      padding: 9px 10px;
    }

  .panel-header p {
      max-width: none;
    }

  .panel-controls {
      justify-content: flex-start;
    }
}



@media (prefers-reduced-motion: no-preference) {
.side-panel { animation-delay: var(--motion-duration-fast); }

  .notes { animation-delay: var(--motion-duration-base); }
}

.side-panel {
  gap: 12px;
  padding-right: 4px;
}

.side-panel > section {
  overflow: hidden;
  padding: 15px;
}

.side-panel > section::before {
  height: 3px;
  background:
    linear-gradient(
      90deg,
      var(--mode-accent),
      color-mix(in srgb, var(--mode-accent) 42%, var(--gold)),
      color-mix(in srgb, var(--mode-accent) 24%, var(--accent-2))
    );
  opacity: 0.9;
}

.side-panel > section::after {
  display: none;
}

.side-panel > section:hover {
  border-color: var(--side-border-strong);
  box-shadow: var(--side-shadow-hover);
  transform: translateY(-1px);
}

.details-card h3,
.route-card h3 {
  display: flex;
  align-items: center;
  gap: 7px;
  width: auto;
  margin: 0 0 12px;
  color: var(--ink);
  font-size: var(--panel-label);
  font-weight: 820;
}

.details-card h3::before,
.route-card h3::before {
  content: "";
  width: 8px;
  height: 8px;
  flex: 0 0 auto;
  border-radius: 99px;
  background: var(--mode-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--mode-accent) 16%, transparent);
}

.details-card h3::after,
.route-card h3::after {
  display: none;
}

.details-card h3:not(:first-child) {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--side-border);
}

.score-card {
  display: grid;
  gap: 8px;
}

.score-card > strong {
  margin-top: 0;
  color: var(--ink);
  font-size: clamp(2.35rem, 3vw, 3.15rem);
  font-weight: 560;
  line-height: 0.96;
}

.score-card > strong span {
  color: var(--side-text-muted);
  font-size: var(--panel-label);
}

body.is-inspect-mode .score-card {
  max-height: none;
  overflow: hidden;
  padding: 14px;
}

.route-card {
  padding: 15px;
}

body.is-route-mode .route-card {
  padding: 16px;
}

.route-card::before {
  background:
    linear-gradient(
      90deg,
      var(--mode-accent),
      color-mix(in srgb, var(--mode-accent) 42%, var(--gold)),
      color-mix(in srgb, var(--mode-accent) 24%, var(--accent-2))
    );
}

.atlas-metric-card {
  min-height: 76px;
  padding: 9px;
}

.side-panel {
  gap: 10px;
  padding-right: 2px;
}

.side-panel > section {
  padding: 14px;
}

.details-card h3::before,
.route-card h3::before {
  display: none;
}

.details-card h3:not(:first-child) {
  margin-top: 16px;
  padding-top: 13px;
  border-top: 1px solid var(--atlas-border-soft);
}

.score-card {
  gap: 6px;
}

.score-card > strong {
  margin-top: 3px;
  color: var(--ink);
  font-family: var(--font-mono);
  font-size: clamp(2.6rem, 3vw, 3.25rem);
  font-weight: 560;
  letter-spacing: 0;
  line-height: 0.94;
}

.score-card > strong span {
  color: var(--atlas-caption);
  font-family: var(--font-main);
  font-size: var(--panel-label);
  font-weight: 850;
  letter-spacing: 0.075em;
}

body.is-inspect-mode .score-card {
  max-height: none;
  overflow: hidden;
  padding: 13px;
}

.route-card,
body.is-route-mode .route-card {
  padding: 14px;
}

.route-card::before {
  height: 2px;
  background:
    repeating-linear-gradient(
      90deg,
      var(--mode-accent) 0 28px,
      var(--atlas-paper-strong) 28px 34px,
      color-mix(in srgb, var(--mode-accent) 54%, var(--gold)) 34px 58px,
      var(--atlas-paper-strong) 58px 64px
    );
}

body.is-reach-mode.has-origin .score-card {
  display: none;
}

.score-card {
  padding: 18px 18px 16px;
}

.score-card > strong {
  margin-top: 14px;
  font-family: var(--font-metric-display);
  font-size: clamp(64px, 7vw, 96px);
  font-weight: 380;
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: -0.012em;
  line-height: 0.92;
  color: var(--plate-ink);
}

.score-card > strong span {
  margin-top: 12px;
  font-family: var(--font-caps);
  font-size: var(--panel-label);
  font-weight: 720;
  letter-spacing: 0.16em;
}

.score-card .reach-meta,
.score-card p {
  font-family: var(--font-serif);
  font-size: 0.92rem;
  line-height: 1.42;
  color: var(--ink-soft);
}

.score-card {
  min-height: 232px;
}

.score-card-caption {
  min-height: 96px;
}

.panel-controls > .select-control.surface-control,
.panel-controls > .select-control:not(.surface-control) {
  display: none;
}

.panel-controls > .range-control {
  order: 2;
}

.panel-controls > .share-button {
  order: 3;
}

.details-card h3,
.route-card h3 {
  font-family: var(--font-caps);
  font-size: var(--panel-label);
  font-weight: 720;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.details-card h3::after,
.route-card h3::after {
  content: "";
  display: block;
  width: 28px;
  height: 1px;
  margin-top: 6px;
  background: var(--plate-ink);
  opacity: 0.55;
}

.side-panel {
  gap: 0;
  padding: 0;
}

body:not(.is-map-active) .side-panel > section {
  margin: 0;
  padding: 28px 22px 8px;
  background: transparent;
  box-shadow: none;
  border: 0;
  overflow: visible;
}

body:not(.is-map-active) .side-panel > section + section {
  border-top: 1px solid rgba(17, 16, 14, 0.16);
}

body:not(.is-map-active) .side-panel > section::before,
body:not(.is-map-active) .side-panel > section::after {
  display: none;
}

.side-panel .briefing-kicker::after,
.details-card h3::after,
.route-card h3::after {
  width: 24px;
  height: 1px;
  margin-top: 6px;
  background: var(--plate-ink);
  opacity: 0.5;
}

.score-card {
  padding-top: 24px;
}

.score-card > strong {
  margin-top: 10px;
  font-family: var(--font-metric-display);
  font-size: clamp(72px, 7vw, 104px);
  font-weight: 380;
  letter-spacing: -0.014em;
  line-height: 0.92;
  font-variant-numeric: tabular-nums lining-nums;
  color: var(--plate-ink);
}

.score-card > strong span,
.score-card .network-count {
  display: block;
  margin-top: 10px;
  font-family: var(--font-mono);
  font-size: var(--panel-label);
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--ink-soft);
  text-transform: none;
}

.score-card .reach-meta,
.score-card p {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 0.96rem;
  line-height: 1.45;
  color: rgba(17, 16, 14, 0.72);
  margin: 6px 0 0;
}

.route-card .route-summary,
.route-card .route-steps,
.route-card .route-alternatives {
  font-family: var(--font-serif);
  font-size: 0.96rem;
  line-height: 1.5;
}

.route-card label {
  font-family: var(--font-caps);
  font-size: var(--panel-label);
  font-weight: 720;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

body.is-reach-mode.has-origin .score-card {
  display: block;
}

.atlas-metric-card {
  position: relative;
  display: grid;
  gap: 4px;
  padding: 12px 6px 14px 14px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(17, 16, 14, 0.12);
  border-radius: 0;
  box-shadow: none;
  margin: 0;
}

.atlas-metric-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  bottom: 8px;
  width: 3px;
  background: var(--metric-accent, rgba(17, 16, 14, 0.32));
}

.atlas-metric-card > * {
  background: transparent;
  border: 0;
  padding: 0;
  box-shadow: none;
}

.atlas-metric-grid.is-single {
  grid-template-columns: minmax(0, 1fr);
}

body:is(.is-route-mode, .is-inspect-mode) .side-panel > .score-card {
  padding-top: 28px;
}

.score-card > strong {
  margin-top: 8px;
  margin-bottom: 8px;
}

.score-card > strong + p,
.score-card > strong + .reach-meta,
.score-card .reach-meta {
  padding-top: 10px;
  border-top: 1px solid rgba(17, 16, 14, 0.12);
  margin-top: 14px;
}

.side-panel .reach-section,
.side-panel .station-detail .station-role-band{
  background: transparent;
  border-color: rgba(17, 16, 14, 0.1);
  box-shadow: none;
}

.score-card > strong {
  display: block;
}

.score-card > strong > span {
  display: none;
}

.score-card .reach-meta {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 0.86rem;
  line-height: 1.4;
  color: rgba(17, 16, 14, 0.55);
  margin-top: 8px;
  border-top: 0;
  padding-top: 0;
}

.score-card > strong {
  font-size: var(--plate-type-display);
  line-height: 0.92;
}

.side-panel .detail-section-label {
  font-size: var(--plate-type-kicker);
  letter-spacing: 0.22em;
}

.score-card-caption {
  display: grid;
  gap: 6px;
  margin: 10px 0 2px;
}

.score-card-caption > .reach-supporting-row {
  display: block;
  padding: 6px 0 0;
  border-top: 1px solid rgba(17, 16, 14, 0.16);
  margin: 0;
  font-family: var(--font-mono);
  font-size: var(--panel-label);
  font-weight: 500;
  letter-spacing: 0.08em;
  font-style: normal;
  text-transform: uppercase;
  color: var(--ink-soft);
  font-variant-numeric: tabular-nums;
}

body.is-reach-mode.has-origin .score-card {
  min-height: 0;
  padding-top: 18px;
}

body.is-reach-mode.has-origin .score-card-caption {
  min-height: 0;
}

.panel-controls .mode-control-lenses .mode-button strong {
  color: inherit;
  font-family: var(--font-main);
  font-size: var(--panel-label);
  font-style: normal;
  font-weight: 780;
  letter-spacing: 0;
  line-height: 1;
  text-transform: uppercase;
}

.panel-controls .mode-control-lenses .mode-button em {
  color: rgba(17, 16, 14, 0.56);
  font-family: var(--font-main);
  font-size: var(--panel-label);
  font-style: normal;
  font-weight: 560;
  letter-spacing: 0;
  line-height: 1.15;
  text-transform: none;
}

.panel-controls .mode-control-lenses .mode-button.is-active em {
  color: rgba(255, 253, 247, 0.72);
}

.side-panel .briefing-masthead-title strong,
.score-card > strong {
  letter-spacing: -0.006em;
}

.side-panel .detail-meta,
.side-panel .linked-row span,
.side-panel .line-rank span{
  font-family: var(--font-main);
  letter-spacing: 0;
  text-transform: none;
}

body.is-comparison-surface .score-card-caption > .reach-supporting-row,
body.is-comparison-surface .score-card .reach-meta {
  font-family: var(--font-main);
  font-size: 0.86rem;
  font-style: normal;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.38;
  text-transform: none;
}

body.is-reach-mode .score-card {
  order: 3;
}

@media (min-width: 981px), (min-width: 761px) and (max-width: 980px) and (min-height: 600px) and (orientation: landscape) {
  .side-panel {
    align-content: start;
    grid-auto-rows: max-content;
    overscroll-behavior: contain;
  }

  .side-panel > section {
    min-height: max-content;
  }

  .side-panel > .briefing-masthead,
  .side-panel > .score-card,
  .side-panel > .details-card,
  .side-panel > .route-card {
    overflow: visible;
  }
}

.side-panel {
  grid-template-columns: minmax(0, 1fr);
  justify-items: stretch;
  min-width: 0;
  max-width: 100%;
  overflow-x: hidden;
}

.side-panel > *,
.side-panel .briefing-masthead-title,
.side-panel .station-result-name,
.side-panel .station-sign-name,
.side-panel .detail-title,
.side-panel .desktop-origin-summary{
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.side-panel .briefing-masthead-title > *,
.side-panel .station-result-primary,
.side-panel .station-result-name small,
.side-panel .station-sign-name strong,
.side-panel .station-sign-name span,
.side-panel .detail-title strong,
.side-panel .detail-title span {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
}

body.is-reach-mode.has-origin:not(.is-comparison-surface) .side-panel {
  gap: 10px;
}

body.is-reach-mode.has-origin:not(.is-comparison-surface) .side-panel > section {
  padding-block: 14px;
}

body.is-reach-mode.has-origin:not(.is-comparison-surface) .score-card {
  padding-top: 14px;
}

body.is-reach-mode.has-origin:not(.is-comparison-surface) .score-card > strong {
  margin-block: 4px;
}

body.is-reach-mode.has-origin:not(.is-comparison-surface) .score-card-caption {
  gap: 4px;
  margin-top: 6px;
}

body.is-map-active .panel-header {
  grid-template-columns: minmax(150px, 0.22fr) minmax(310px, 0.42fr) minmax(420px, 1fr);
  gap: 8px;
  align-items: center;
  padding: 8px 10px;
  overflow: visible;
  z-index: 30;
}

body.is-map-active .panel-title-block {
  min-width: 0;
}

body.is-map-active .panel-title-block p[hidden] {
  display: none;
}

body.is-map-active .panel-header h2 {
  font-size: 0.82rem;
  letter-spacing: 0.075em;
  white-space: nowrap;
}

body.is-map-active .panel-header .map-origin-search {
  position: relative;
  z-index: 20;
  display: grid;
  grid-template-columns: auto minmax(180px, 1fr) auto;
  grid-template-areas: "label search locate";
  align-items: center;
  grid-column: auto;
  grid-row: auto;
  gap: 6px 8px;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

body.is-map-active .panel-header .map-origin-search .search-card-top {
  grid-area: label;
  grid-column: label;
  grid-row: auto;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}

body.is-map-active .panel-header .map-origin-search .search-card-top label {
  grid-column: auto;
  white-space: nowrap;
}

body.is-map-active .panel-header .map-origin-search .search-language-toggle {
  min-height: 32px;
  background: rgba(255, 253, 247, 0.68);
}

body.is-map-active .panel-header .map-origin-search .search-row {
  grid-area: search;
  grid-column: search;
  grid-row: auto;
  grid-template-columns: minmax(0, 1fr) 50px;
  gap: 6px;
}

body.is-map-active .panel-header .map-origin-search .search-row input {
  min-height: 36px;
}

body.is-map-active .panel-header .map-origin-search .search-row button,
body.is-map-active .panel-header .map-origin-search .text-button {
  min-height: 36px;
  padding-inline: 10px;
  white-space: nowrap;
}

body.is-map-active .panel-header .map-origin-search .text-button {
  grid-area: locate;
  grid-column: locate;
  grid-row: auto;
  justify-self: end;
  max-width: 82px;
}

body.is-map-active .panel-header .map-origin-search .search-results {
  position: absolute;
  top: calc(100% + 7px);
  left: 0;
  right: 0;
  z-index: 45;
  grid-area: results;
  max-height: min(280px, 48vh);
  padding: 6px;
  border: 1px solid var(--line);
  background: rgba(247, 245, 236, 0.96);
  box-shadow: var(--shadow);
  backdrop-filter: blur(14px);
}

body.is-map-active .panel-header .map-origin-search .search-results:empty {
  display: none;
}

body.is-map-active .panel-controls {
  justify-content: flex-end;
  gap: 4px;
}



@media (min-width: 981px), (min-width: 761px) and (max-width: 980px) and (min-height: 600px) and (orientation: landscape) {
body.is-map-active .panel-header {
      grid-template-columns: minmax(170px, auto) minmax(460px, 1fr);
    }

  body.is-map-active .panel-controls {
      grid-column: 1 / -1;
    }
}



@media (max-width: 1180px) {
body.is-map-active .panel-header {
      grid-template-columns: minmax(150px, 0.32fr) minmax(300px, 1fr);
    }

  body.is-map-active .panel-controls {
      grid-column: 1 / -1;
      justify-content: flex-start;
    }
}



@media (max-width: 980px) {
.panel-header .map-origin-search {
      display: none;
    }
}



@media (min-width: 981px), (min-width: 761px) and (max-width: 980px) and (min-height: 600px) and (orientation: landscape) {
body.is-map-active .panel-controls {
      display: grid;
      grid-template-columns: minmax(190px, 1fr) auto minmax(146px, auto);
      grid-template-areas:
        "modes modes modes"
        "surface layers range";
      align-items: stretch;
      justify-content: stretch;
      gap: 6px;
    }

  body.is-map-active:not(.is-reach-mode) .panel-controls {
      grid-template-columns: minmax(0, 1fr) auto;
      grid-template-areas:
        "modes modes"
        "layers layers";
      justify-content: stretch;
    }

  body.is-map-active .panel-controls > .mode-control-lenses {
      grid-area: modes;
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      width: 100%;
    }

  body.is-map-active .panel-controls > .surface-story-toggle {
      grid-area: surface;
      width: 100%;
    }

  body.is-map-active .panel-controls > .range-control {
      grid-area: range;
      justify-content: center;
    }
}

body.is-route-mode.has-route-endpoints .route-card {
  display: grid;
  align-content: start;
  gap: 8px;
}

body.is-route-mode.has-route-endpoints .route-card > h3 {
  order: 1;
}

body.is-route-mode.has-route-endpoints .route-card .route-view-toggle {
  order: 2;
}

body.is-route-mode.has-route-endpoints .route-card .route-summary {
  order: 3;
  margin-top: 0;
}

body.is-route-mode.has-route-endpoints .route-card .route-steps-disclosure {
  order: 4;
}

body.is-route-mode.has-route-endpoints .route-card .route-alternatives {
  order: 5;
}

body.is-route-mode.has-route-endpoints .route-card .route-form {
  order: 6;
}

body.is-route-mode.has-route-endpoints .route-card .route-search-results,
body.is-route-mode.has-route-endpoints .route-card .route-sketch-choices {
  order: 7;
}

@media (min-width: 981px), (min-width: 761px) and (max-width: 980px) and (min-height: 600px) and (orientation: landscape) {
  body.is-map-active .side-panel {
    height: 100%;
    min-height: 0;
    max-height: 100%;
  }
}
