body {
  background: #f7fafb;
  color: #20333f;
  font-size: 15px;
  line-height: 1.45;
}

:root {
  --app-page-max-width: 1280px;
  --app-page-gutter: 1.25rem;
  --app-page-top-gap: 0.9rem;
  --app-page-header-gap: 0.35rem;
  --app-page-title-gap: 0.35rem;
  --app-page-section-gap: 1.4rem;
  --app-page-section-gap-tight: 0.85rem;
  --app-page-intro-size: 0.92rem;
  --app-page-card-radius: 8px;
  --app-page-control-radius: 6px;
  --app-page-card-border: rgba(var(--bs-primary-rgb), 0.14);
  --app-page-card-shadow: 0 4px 14px rgba(15, 45, 64, 0.06);
  --app-page-card-bg: #ffffff;
  --app-page-card-header-bg: color-mix(in srgb, var(--bs-primary) 8%, #ffffff);
  --app-page-card-header-border: color-mix(in srgb, var(--bs-primary) 16%, #ffffff);
  --app-page-heading-color: color-mix(in srgb, var(--bs-primary) 88%, #173345);
  --app-page-muted-color: #5f6b76;
  --app-page-copy-color: #20333f;
  --app-page-label-size: 0.74rem;
  --app-page-focus-ring: 0 0 0 0.16rem rgba(var(--bs-secondary-rgb), 0.2);
  --survey-top-gap: 0.5rem;
  --survey-footer-height: 72px;
}

body.bslib-page-navbar > .container-fluid.html-fill-item.html-fill-container {
  width: 100%;
  max-width: var(--app-page-max-width);
  margin: 0 auto;
  padding: var(--app-page-top-gap) var(--app-page-gutter) 0;
  box-sizing: border-box;
}

body.bslib-page-navbar > .container-fluid.html-fill-item.html-fill-container > .tab-content {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

body.bslib-page-navbar > .container-fluid.html-fill-item.html-fill-container > .tab-content > .tab-pane {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.app-page-shell {
  width: 100%;
  min-width: 0;
}

.app-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: var(--app-page-section-gap);
}

.app-page-header__main {
  min-width: 0;
  max-width: 52rem;
}

.app-page-header__aside {
  flex: 0 0 auto;
}

.app-page-eyebrow {
  display: none;
}

.app-page-heading {
  margin: 0;
  color: var(--bs-primary);
  font-size: 1.04rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  line-height: 1.15;
  text-transform: uppercase;
}

.app-page-intro {
  margin: var(--app-page-title-gap) 0 0;
  color: color-mix(in srgb, var(--bs-primary) 72%, #5f6b76);
  font-size: var(--app-page-intro-size);
  font-weight: 700;
  line-height: 1.4;
}

.app-page-main {
  display: grid;
  gap: var(--app-page-section-gap);
  min-width: 0;
}

.app-page-main > * {
  min-width: 0;
}

.app-page-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--app-page-section-gap-tight);
}

.app-page-copy-block {
  display: grid;
  gap: 0.5rem;
}

.app-page-reading {
  max-width: 74rem;
}

.app-page-reading .app-page-header__main,
.app-page-reading .app-page-copy-block {
  max-width: 68ch;
}

.app-page-text-stack {
  gap: 0.55rem;
}

.app-page-text-stack p,
.app-page-reading .app-page-card--plain p,
.app-page-reading .app-page-card--plain li,
.app-page-reading .app-page-callout {
  max-width: 68ch;
}

.app-page-text-stack p {
  margin: 0;
}

.app-section-heading {
  margin: 0;
  color: var(--bs-primary);
  font-size: 0.96rem;
  font-weight: 700;
  line-height: 1.3;
}

.app-page-note {
  padding: 0.7rem 0.8rem;
  border-radius: 0.75rem;
  border: 1px solid color-mix(in srgb, var(--bs-primary) 16%, #ffffff);
  background: linear-gradient(145deg, color-mix(in srgb, var(--bs-secondary) 10%, #ffffff), color-mix(in srgb, var(--bs-primary) 5%, #ffffff));
  color: var(--bs-primary);
  font-size: 0.9rem;
  line-height: 1.35;
}

.app-page-callout {
  padding: 0.78rem 0.9rem;
  border-radius: var(--app-page-card-radius);
  border: 1px solid rgba(245, 159, 0, 0.25);
  background: #fff9db;
  color: #664d03;
}

.app-page-card,
.app-page-card.app-page-card--plain,
.app-page-card.app-page-card--panel {
  border: 1px solid var(--app-page-card-border);
  border-radius: var(--app-page-card-radius);
  background: var(--app-page-card-bg);
  box-shadow: var(--app-page-card-shadow);
}

.app-page-card.bslib-card {
  overflow: hidden;
}

.app-page-card .card-header {
  padding: 0.7rem 0.9rem;
  font-weight: 800;
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--bs-primary);
  background: var(--app-page-card-header-bg);
  border-bottom: 1px solid var(--app-page-card-header-border);
}

.app-page-card .card-body {
  padding: 0.8rem 0.9rem;
}

.app-page-card--plain {
  padding: 0.8rem 0.9rem;
}

.app-page-card--panel {
  padding: 0.75rem 0.85rem;
}

.app-page-card--plain > h3:first-child {
  margin: -0.8rem -0.9rem 0.75rem;
  padding: 0.7rem 0.9rem;
  color: var(--bs-primary);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1.2;
  text-transform: uppercase;
  background: var(--app-page-card-header-bg);
  border-bottom: 1px solid var(--app-page-card-header-border);
}

.app-page-card--plain > *:last-child {
  margin-bottom: 0;
}

.app-page-accordion .accordion-item {
  border-left: 0;
  border-right: 0;
  border-radius: 0;
}

.app-page-accordion .accordion-button {
  padding: 0.7rem 0.9rem;
  color: var(--bs-primary);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: var(--app-page-card-header-bg);
  border-bottom: 1px solid var(--app-page-card-header-border);
}

.app-page-accordion .accordion-button:not(.collapsed) {
  color: var(--bs-primary);
  box-shadow: none;
}

.app-page-accordion .accordion-body {
  padding: 0.85rem 0.95rem 0.95rem;
}

.content-page {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.content-page p,
.content-page ul,
.content-page ol {
  line-height: 1.55;
}

.home-hero {
  margin-bottom: var(--app-page-section-gap);
}

.home-eyebrow,
.home-lead {
  margin: 0;
}

.home-grid {
  margin: 0;
}

.home-card,
.dashboard-context-card,
.review-matrix-col,
.review-detail-card {
  min-width: 0;
}

.home-card h3 {
  margin-bottom: 0.4rem;
}

.howto-phase {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--app-page-card-border);
}

.howto-phase-label {
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--bs-primary);
}

.howto-phase-subtitle {
  font-size: 0.88rem;
  color: var(--app-page-muted-color);
  line-height: 1.4;
}

.howto-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5em;
  height: 1.5em;
  margin-right: 0.3em;
  border-radius: 50%;
  background: var(--bs-primary);
  color: #fff;
  font-size: 0.7em;
  font-weight: 800;
  vertical-align: middle;
  flex-shrink: 0;
}

/* Neutral info callout for the recommended workflow block */
.app-page-callout--info {
  border-color: rgba(var(--bs-primary-rgb), 0.18);
  background: color-mix(in srgb, var(--bs-primary) 5%, #ffffff);
  color: var(--app-page-copy-color);
}

/* Centred max-width wrapper — matches reading line-length */
.howto-centred {
  max-width: 68ch;
  margin-left: auto;
  margin-right: auto;
}

/* Footer prose sections: stacked */
.howto-footer-sections {
  display: flex;
  flex-direction: column;
  gap: var(--app-page-section-gap);
}

/* Bottom padding and card inset for the about page */
.content-page--about {
  padding-bottom: 3rem;
}

.content-page--about .app-page-card-grid {
  padding-inline: 0.5rem;
}

/* CTA button row */
.howto-cta {
  padding-top: 2rem;
}

/* Static country map */
.static-map-wrapper {
  display: block;
  width: 100%;
  line-height: 0;
}

.static-map-img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 360px;
  object-fit: contain;
  border-radius: 0.375rem;
  cursor: pointer;
  transition: opacity 0.15s ease;
}

.static-map-img:hover {
  opacity: 0.88;
}

.static-map-img--tall {
  max-height: 560px;
}

@media (max-width: 767.98px) {
  .app-page-header {
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
  }

  .app-page-card-grid {
    grid-template-columns: 1fr;
  }
}

.app-section-shell,
.app-section-shell.card,
.app-section-shell.bslib-card {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.app-section-shell.card > .card-body,
.app-section-shell.bslib-card > .card-body,
.app-section-shell.card > .card-header,
.app-section-shell.bslib-card > .card-header {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}


.survey-shell {
  width: 100%;
  max-width: none;
  margin: 0;
  padding-left: 0;
  padding-right: 0;
}

.survey-layout {
  min-height: calc(100vh - 170px);
}

.survey-layout .bslib-sidebar-layout {
  min-height: calc(100vh - 190px);
}

.survey-layout .sidebar {
  max-height: calc(100vh - 200px);
  overflow-y: auto;
  padding: 0.35rem 0.45rem;
}



.survey-layout .sidebar .sidebar-title,
.survey-layout .sidebar .bslib-sidebar-title {
  font-size: 0.88rem;
  line-height: 1.2;
  margin-bottom: 0.25rem;
}

.survey-layout .sidebar .accordion-button {
  font-size: 0.84rem;
  padding: 0.32rem 0.45rem;
}

.survey-layout .sidebar .accordion-body {
  padding: 0.3rem 0.2rem;
}

.survey-main {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 210px);
  gap: 0.5rem;
}

.survey-main-content {
  flex: 1;
  overflow-y: auto;
  scrollbar-gutter: stable;
  padding-bottom: calc(var(--survey-footer-height) + 0.35rem);
}


.survey-meta-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 0.45rem;
}

.survey-meta-title {
  font-size: 1.4rem;
  margin-bottom: 0.2rem;
}

.survey-meta-actions {
  display: flex;
  gap: 0.4rem;
  align-items: center;
  flex-wrap: wrap;
}

.survey-path {
  font-size: 0.92rem;
  margin-bottom: 0.4rem;
}

.survey-path--header {
  margin-bottom: 0;
  font-size: 0.95rem;
  font-weight: 500;
}

.saved-pill {
  display: inline-block;
  border-radius: 999px;
  padding: 0.18rem 0.55rem;
  font-size: 0.82rem;
}

.saved-pill--clean {
  background: #e8f8ed;
  color: #146c43;
  border: 1px solid #badbcc;
}

.saved-pill--dirty {
  background: #fff3cd;
  color: #664d03;
  border: 1px solid #ffecb5;
}

.survey-section-card .card-header {
  padding: 0.45rem 0.75rem;
  font-weight: 600;
}

.survey-section-card .card-body {
  padding: 0.65rem 0.75rem;
}

.survey-two-col .survey-section-card {
  height: 100%;
}

.survey-domain-overview-layout .survey-section-card {
  min-width: 0;
}

.domain-overview-image-placeholder {
  min-height: 13rem;
  height: 100%;
  border: 1px dashed rgba(33, 37, 41, 0.28);
  border-radius: 6px;
  background: linear-gradient(135deg, rgba(13, 110, 253, 0.08), rgba(25, 135, 84, 0.08)),
    repeating-linear-gradient(45deg, rgba(33, 37, 41, 0.035) 0, rgba(33, 37, 41, 0.035) 8px, transparent 8px, transparent 16px);
}

.survey-domain-description-card .card-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.domain-overview-description {
  color: var(--bs-secondary-color);
  line-height: 1.5;
}

.domain-subdomain-summary {
  display: flex;
  flex-direction: column;
}

.domain-subdomain-summary__row {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid rgba(33, 37, 41, 0.07);
}

.domain-subdomain-summary__row:first-child {
  padding-top: 0;
}

.domain-subdomain-summary__row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.domain-subdomain-summary__label {
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--app-page-heading-color);
}

.domain-subdomain-summary__score {
  font-size: 0.8rem;
  font-style: italic;
  color: var(--bs-secondary-color);
}

.context-info-page {
  width: 100%;
  max-width: none;
  margin: 0;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
  padding-bottom: calc(var(--survey-footer-height) + 0.5rem);
}

.context-map-card .card-body {
  padding: 0.55rem 0.65rem 0.7rem;
}

.context-page-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.7rem;
}

.context-page-header__copy {
  max-width: 46rem;
}

.context-hero__meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.4rem;
}

.context-meta-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  border-radius: 999px;
  padding: 0.28rem 0.62rem;
  background: rgba(var(--bs-primary-rgb), 0.07);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.14);
  color: var(--bs-primary);
  font-size: 0.73rem;
  font-weight: 700;
  box-shadow: none;
}

.context-meta-pill--editing {
  background: rgba(var(--bs-primary-rgb), 0.12);
}

.context-sections-nav > .tabbable {
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
  box-shadow: none;
}

.context-sections-nav > .tabbable > .nav {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.35rem 0.95rem;
  margin-bottom: 0.55rem;
  padding-bottom: 0.12rem;
  border-bottom: 1px solid rgba(var(--bs-primary-rgb), 0.16);
}

.context-sections-nav > .tabbable > .tab-content {
  overflow: visible;
}

.context-sections-nav .nav-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  color: color-mix(in srgb, var(--bs-primary) 58%, #7b8791);
  font-weight: 700;
  padding: 0.12rem 0 0.42rem;
  margin-bottom: -0.12rem;
  box-shadow: none;
}

.context-sections-nav .nav-link.active,
.context-sections-nav .nav-link[aria-selected="true"] {
  color: var(--bs-primary);
  border-bottom-color: rgba(var(--bs-primary-rgb), 0.72);
  background: transparent;
  box-shadow: none;
}

.context-section-tab {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
}

.context-section-tab__title {
  line-height: 1.15;
}

.context-sections-nav .nav-link:hover,
.context-sections-nav .nav-link:focus-visible {
  color: var(--bs-primary);
}

@media (max-width: 767.98px) {
  .context-sections-nav > .tabbable > .nav {
    gap: 0.3rem 0.7rem;
    margin-bottom: 0.5rem;
  }

  .context-sections-nav .nav-link {
    padding-bottom: 0.38rem;
  }

  .context-section-tab {
    flex-wrap: wrap;
    row-gap: 0.12rem;
  }
}

.context-section-panel {
  display: grid;
  gap: 0.55rem;
}

.context-section-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.22rem 0.72rem;
}

.context-form-field {
  border: 0;
  border-bottom: 1px solid rgba(var(--bs-primary-rgb), 0.12);
  border-radius: 0;
  padding: 0.28rem 0.05rem 0.36rem;
  background: transparent;
  box-shadow: none;
}

.context-form-field--full {
  grid-column: 1 / -1;
}

.context-form-field--references {
  margin-top: 0.08rem;
  padding: 0.45rem 0.55rem 0.55rem;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.1);
  border-radius: 0.72rem;
  background: rgba(var(--bs-secondary-rgb), 0.05);
}

.context-composite-question,
.context-answer {
  display: grid;
  gap: 0.22rem;
}

.context-composite-question__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 0.4rem 0.62rem;
  align-items: start;
}

.context-composite-question__heading {
  margin-bottom: 0;
}

.context-composite-question__subs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 0.22rem 0.52rem;
}

.context-question-input .form-group,
.context-question-input--compact .form-group {
  margin-bottom: 0;
}

.context-question-input .control-label,
.context-question-input .form-label,
.context-composite-question__label,
.context-question-title {
  display: block;
  margin-bottom: 0.16rem;
  color: var(--bs-primary);
  font-size: 0.67rem;
  font-weight: 800;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.context-question-input .form-control,
.context-question-input .form-select,
.context-question-input .selectize-input {
  min-height: 2.05rem;
  border-radius: 0.45rem;
  border-color: rgba(var(--bs-primary-rgb), 0.18);
  padding: 0.28rem 0.48rem;
  box-shadow: inset 0 1px 2px rgba(15, 45, 64, 0.03);
}

.context-question-input textarea.form-control {
  min-height: 5rem;
  resize: vertical;
}

.context-question-input .form-control,
.context-question-input .form-select,
.context-question-input .selectize-input,
.context-question-input .selectize-dropdown,
.context-question-input .selectize-input input {
  background: #ffffff;
  color: #173345;
}

.context-question-input .form-control:focus,
.context-question-input .form-select:focus,
.context-question-input .selectize-input.focus {
  border-color: rgba(var(--bs-secondary-rgb), 0.78);
  box-shadow: 0 0 0 0.14rem rgba(var(--bs-secondary-rgb), 0.16);
}

.context-question-input .selectize-control.multi .selectize-input > div {
  border-radius: 999px;
  padding: 0.18rem 0.45rem;
  background: rgba(var(--bs-secondary-rgb), 0.12);
  color: var(--bs-primary);
}

.context-answer-value {
  color: #243642;
  font-size: 0.88rem;
  line-height: 1.3;
}

.context-empty-value {
  color: #6c757d;
  font-style: italic;
}

.context-question-input .help-block,
.context-question-input .form-text,
.context-section-panel .text-muted {
  color: #5f6b76 !important;
  font-size: 0.74rem;
}

.context-answer-sub-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 0.18rem 0.52rem;
}

.context-answer-sub-item {
  padding: 0.08rem 0;
  border-radius: 0;
  background: transparent;
  border: 0;
}

.evidence-panel-body {
  max-height: calc(100vh - 395px);
  overflow-y: auto;
}

.evidence-piece {
  border: 1px solid #adb5bd;
  border-radius: 0.45rem;
  padding: 0.35rem 0.45rem;
  background: #e9ecef;
}

.evidence-piece summary {
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
}

.evidence-piece-title {
  font-size: 0.82rem;
  font-weight: 600;
}

.evidence-piece-hint {
  font-size: 0.76rem;
  color: #495057 !important;
}

.survey-question-title {
  font-size: 1.05rem;
  font-weight: 400;
  line-height: 1.25;
  margin-bottom: 0.55rem;
}

.survey-question-title--subdomain {
  font-size: 1.16rem;
  font-style: italic;
}

.guidance-details {
  border: 1px solid var(--bs-border-color);
  border-radius: 0.45rem;
  padding: 0.35rem 0.55rem;
  margin-bottom: 0.55rem;
  background: #f8f9fa;
}

.guidance-details summary {
  cursor: pointer;
  font-weight: 500;
}

.guidance-details ul {
  margin: 0.45rem 0 0;
  padding-left: 1rem;
}

.evidence-panel {
  --evidence-pre: #f59e0b;
  --evidence-val: #14A085;
  --evidence-pre-rgb: 245, 158, 11;
  --evidence-val-rgb: 20, 160, 133;
}

.evidence-tabs {
  --evidence-pre-accent: #d97706;
  --evidence-val-accent: #14A085;
  --evidence-pre-accent-rgb: 217, 119, 6;
  --evidence-val-accent-rgb: 20, 160, 133;
}

.evidence-tabs .nav-tabs .nav-link:not(.active):not([aria-selected="true"]) {
  background-color: transparent;
  color: var(--bs-secondary-color);
  border-color: transparent;
}

.evidence-tabs .nav-tabs .nav-link.active,
.evidence-tabs .nav-tabs .nav-link[aria-selected="true"] {
  font-weight: 600;
}

.evidence-tabs .nav-tabs .nav-item:nth-child(1) .nav-link.active,
.evidence-tabs .nav-tabs .nav-item:nth-child(1) .nav-link[aria-selected="true"] {
  color: var(--evidence-pre-accent);
  border-bottom-color: var(--evidence-pre-accent);
  box-shadow: inset 0 -2px 0 var(--evidence-pre-accent);
  background-color: rgba(var(--evidence-pre-accent-rgb), 0.08);
}

.evidence-tabs .nav-tabs .nav-item:nth-child(2) .nav-link.active,
.evidence-tabs .nav-tabs .nav-item:nth-child(2) .nav-link[aria-selected="true"] {
  color: var(--evidence-val-accent);
  border-bottom-color: var(--evidence-val-accent);
  box-shadow: inset 0 -2px 0 var(--evidence-val-accent);
  background-color: rgba(var(--evidence-val-accent-rgb), 0.08);
}

.evidence-tabs .tab-content > .tab-pane.show.active {
  border-top: 1px solid var(--bs-border-color);
}

.evidence-tabs .tab-content > .tab-pane:nth-child(1).show.active .evidence-panel__tab {
  background-color: rgba(var(--evidence-pre-accent-rgb), 0.04);
}

.evidence-tabs .tab-content > .tab-pane:nth-child(2).show.active .evidence-panel__tab {
  background-color: rgba(var(--evidence-val-accent-rgb), 0.05);
}

.evidence-panel .evidence-panel__tab {
  padding-top: 0.2rem;
}

/* Roadmap page */
.roadmap-page {
  width: 100%;
  max-width: none;
  margin: 0;
  padding-left: 0;
  padding-right: 0;
  padding-bottom: 4rem;
  box-sizing: border-box;
}

.roadmap-page-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.7rem;
}

.roadmap-page-header__copy {
  max-width: 48rem;
}

.roadmap-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 0.85rem;
  margin: 0.9rem 0 1rem;
}

.roadmap-country-select {
  width: min(22rem, 100%);
}

.roadmap-country-select .form-group {
  margin-bottom: 0;
}

.roadmap-country-select .form-label,
.roadmap-country-select .control-label {
  color: var(--bs-primary);
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
}

.roadmap-toolbar__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.4rem;
}

.roadmap-main {
  display: grid;
  gap: 1rem;
}

.roadmap-export-frame {
  --roadmap-national: #006699;
  --roadmap-national-rgb: 0, 102, 153;
  --roadmap-regional: #14a085;
  --roadmap-regional-rgb: 20, 160, 133;
  --roadmap-amber: #d9822b;
  padding: 1.05rem;
  background: #ffffff;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.12);
  box-shadow: 0 14px 32px rgba(13, 45, 64, 0.08);
}

.roadmap-export-frame__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.8rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid rgba(var(--bs-primary-rgb), 0.12);
}

.roadmap-export-frame__eyebrow {
  color: var(--bs-secondary);
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
}

.roadmap-export-frame__title {
  margin: 0.05rem 0 0;
  color: var(--app-page-heading-color);
  font-size: 1.55rem;
  font-weight: 800;
  line-height: 1.15;
}

.roadmap-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.4rem;
}

.roadmap-legend__item {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  border-radius: 999px;
  padding: 0.25rem 0.55rem;
  font-size: 0.72rem;
  font-weight: 800;
  border: 1px solid transparent;
}

.roadmap-legend__item::before {
  content: "";
  width: 0.48rem;
  height: 0.48rem;
  border-radius: 999px;
  background: currentColor;
}

.roadmap-legend__item--national {
  color: var(--roadmap-national);
  background: rgba(var(--roadmap-national-rgb), 0.08);
  border-color: rgba(var(--roadmap-national-rgb), 0.16);
}

.roadmap-legend__item--regional {
  color: var(--roadmap-regional);
  background: rgba(var(--roadmap-regional-rgb), 0.09);
  border-color: rgba(var(--roadmap-regional-rgb), 0.18);
}

.roadmap-board {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  padding-top: 0.85rem;
}

.roadmap-horizon {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: #f8fbfc;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.1);
}

.roadmap-horizon__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.55rem;
  min-height: 3.1rem;
  padding: 0.65rem 0.7rem;
  background: linear-gradient(180deg, #ffffff 0%, #f2f8fa 100%);
  border-bottom: 1px solid rgba(var(--bs-primary-rgb), 0.1);
}

.roadmap-horizon__title {
  margin: 0;
  color: var(--bs-primary);
  font-size: 0.93rem;
  font-weight: 800;
  line-height: 1.2;
}

.roadmap-horizon__count {
  display: inline-grid;
  place-items: center;
  min-width: 1.45rem;
  height: 1.45rem;
  border-radius: 999px;
  color: #ffffff;
  background: var(--bs-secondary);
  font-size: 0.76rem;
  font-weight: 800;
}

.roadmap-horizon__goal-wrap {
  flex: 1;
  min-width: 0;
  padding: 0 0.5rem;
  margin-left: 0.5rem;
  border-left: 2px solid rgba(var(--bs-primary-rgb), 0.15);
}

/* View mode: italic text */
.roadmap-horizon__goal {
  flex: 1;
  margin: 0;
  font-size: 0.83rem;
  font-style: italic;
  color: var(--app-page-muted-color);
  line-height: 1.35;
}

.roadmap-horizon__goal--empty {
  color: rgba(0, 0, 0, 0.28);
}

/* Shared row layout for view and edit states */
.roadmap-horizon__goal-row {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 1.6rem;
}

/* Edit mode: ghost text input */
.roadmap-horizon__goal-input {
  flex: 1;
  min-width: 0;
  background: transparent;
  border: none;
  border-bottom: 1px dashed rgba(var(--bs-primary-rgb), 0.32);
  border-radius: 0;
  font-size: 0.83rem;
  font-style: italic;
  color: var(--app-page-muted-color);
  padding: 0.08rem 0.1rem;
  outline: none;
  transition: border-color 0.15s, color 0.15s;
}

.roadmap-horizon__goal-input:focus {
  border-bottom-color: var(--bs-primary);
  color: var(--bs-body-color);
  box-shadow: none;
}

.roadmap-horizon__goal-input::placeholder {
  color: rgba(0, 0, 0, 0.28);
  font-style: italic;
}

/* Pencil / floppy toggle button */
.roadmap-horizon__goal-btn {
  flex-shrink: 0;
  padding: 0.15rem 0.35rem;
  font-size: 0.75rem;
  line-height: 1;
  opacity: 0.55;
  transition: opacity 0.15s;
}

.roadmap-horizon__goal-row:hover .roadmap-horizon__goal-btn,
.roadmap-horizon__goal-btn:focus {
  opacity: 1;
}

.roadmap-horizon__cards {
  display: grid;
  align-content: start;
  gap: 0.55rem;
  padding: 0.65rem;
  min-height: 26rem;
}

.roadmap-horizon__empty {
  margin: 0;
  padding: 0.8rem;
  color: #62717c;
  font-size: 0.86rem;
  font-style: italic;
  text-align: center;
  border: 1px dashed rgba(var(--bs-primary-rgb), 0.16);
  background: #ffffff;
}

.roadmap-card {
  position: relative;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid rgba(16, 47, 66, 0.12);
  border-left: 0.36rem solid var(--roadmap-national);
  box-shadow: 0 8px 18px rgba(13, 45, 64, 0.06);
}

.roadmap-card--regional {
  border-left-color: var(--roadmap-regional);
}

.roadmap-card__header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.55rem;
  align-items: center;
  padding: 0.72rem 0.75rem 0.35rem;
}

.roadmap-card__icon {
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  color: var(--roadmap-national);
  background: rgba(var(--roadmap-national-rgb), 0.09);
}

.roadmap-card--regional .roadmap-card__icon {
  color: var(--roadmap-regional);
  background: rgba(var(--roadmap-regional-rgb), 0.1);
}

.roadmap-card__icon svg {
  width: 1.05rem;
  height: 1.05rem;
}

.roadmap-card__title-wrap {
  min-width: 0;
}

.roadmap-card__title {
  margin: 0;
  color: #183444;
  font-size: 0.96rem;
  font-weight: 800;
  line-height: 1.22;
  overflow-wrap: anywhere;
}

.roadmap-card__scope {
  color: #667682;
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
}

.roadmap-card__actions {
  margin: 0;
  padding: 0.12rem 0.85rem 0.78rem 1.65rem;
  color: #263b48;
  font-size: 0.86rem;
  line-height: 1.36;
}

.roadmap-card__actions li + li {
  margin-top: 0.22rem;
}

.roadmap-card__empty {
  margin: 0;
  padding: 0.1rem 0.85rem 0.78rem;
  color: #667682;
  font-size: 0.84rem;
  font-style: italic;
}

/* Edit / delete controls shown on each card in edit mode */
.roadmap-card__controls {
  display: flex;
  justify-content: flex-end;
  gap: 0.3rem;
  padding: 0.4rem 0.5rem 0;
}

.roadmap-card__controls .btn {
  padding: 0.18rem 0.42rem;
  font-size: 0.74rem;
  line-height: 1;
}

.roadmap-card__controls .btn svg {
  width: 0.8rem;
  height: 0.8rem;
}

/* + Add card button at the base of each horizon column */
.roadmap-horizon__add {
  width: 100%;
  margin-top: 0.55rem;
  border-style: dashed !important;
  font-size: 0.82rem;
  color: var(--bs-secondary);
  border-color: rgba(var(--bs-primary-rgb), 0.22) !important;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}

.roadmap-horizon__add:hover,
.roadmap-horizon__add:focus-visible {
  background: rgba(var(--bs-primary-rgb), 0.04);
  border-color: rgba(var(--bs-primary-rgb), 0.38) !important;
}

/* Card modal form layout */
.roadmap-modal-form .form-group {
  margin-bottom: 0.75rem;
}

.roadmap-modal-form .form-label,
.roadmap-modal-form .control-label {
  color: var(--bs-primary);
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  margin-bottom: 0.18rem;
}

.roadmap-modal-form .form-control,
.roadmap-modal-form .form-select {
  font-size: 0.88rem;
}

.roadmap-modal-form textarea.form-control {
  min-height: 7rem;
  resize: vertical;
}

.roadmap-modal-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  align-items: flex-end;
  margin-bottom: 0.75rem;
}

.roadmap-modal-row .form-group {
  margin-bottom: 0;
  flex: 1 1 9rem;
  min-width: 0;
}

.roadmap-modal-icon-col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex-shrink: 0;
}

.roadmap-modal-icon-col .form-label {
  color: var(--bs-primary);
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  margin-bottom: 0.18rem;
}

.roadmap-icon-button {
  display: inline-grid;
  place-items: center;
  width: 2.3rem;
  height: 2.3rem;
  padding: 0;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.16);
  background: #ffffff;
  color: #263b48;
  transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.roadmap-icon-button svg {
  width: 1rem;
  height: 1rem;
}

.roadmap-icon-button:hover,
.roadmap-icon-button:focus-visible,
.roadmap-icon-button[aria-describedby] {
  border-color: rgba(var(--bs-secondary-rgb), 0.75);
  box-shadow: 0 0 0 0.12rem rgba(var(--bs-secondary-rgb), 0.13);
}

.roadmap-icon-popover-shell {
  max-width: min(19rem, calc(100vw - 2rem));
  border: 1px solid rgba(var(--bs-primary-rgb), 0.16);
  border-radius: 0.55rem;
  box-shadow: 0 16px 36px rgba(13, 45, 64, 0.18);
}

.roadmap-icon-popover-shell .popover-body {
  padding: 0.55rem;
}

.roadmap-icon-popover {
  display: grid;
  grid-template-columns: repeat(5, 2.75rem);
  justify-content: start;
  gap: 0.45rem;
  width: 16.35rem;
  max-width: calc(100vw - 3rem);
  max-height: 9.15rem;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 0.65rem;
  scrollbar-gutter: stable;
}

.roadmap-icon-popover__choice {
  display: inline-grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  min-height: 0;
  padding: 0;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.16);
  background: #ffffff;
  color: #263b48;
  transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.roadmap-icon-popover__choice svg {
  width: 1rem;
  height: 1rem;
}

.roadmap-icon-popover__choice:hover,
.roadmap-icon-popover__choice:focus-visible {
  border-color: rgba(var(--bs-secondary-rgb), 0.75);
  box-shadow: 0 0 0 0.12rem rgba(var(--bs-secondary-rgb), 0.13);
}

.roadmap-icon-popover__choice--active {
  border-color: rgba(var(--bs-primary-rgb), 0.48);
  background: rgba(var(--bs-secondary-rgb), 0.08);
  box-shadow: inset 0 0 0 1px rgba(var(--bs-primary-rgb), 0.18);
}

.roadmap-icon-popover__choice--active svg {
  color: var(--bs-primary);
}

.roadmap-icon-button,
.roadmap-icon-popover__choice {
  border-radius: 0.38rem;
}

@media (max-width: 991.98px) {
  .roadmap-board {
    grid-template-columns: 1fr;
  }

  .roadmap-horizon__cards {
    min-height: 8rem;
  }

  .roadmap-editor-card__grid {
    grid-template-columns: minmax(14rem, 1fr) minmax(8rem, 0.85fr) minmax(7rem, 0.75fr) minmax(4.2rem, auto);
  }
}

@media (max-width: 767.98px) {
  .roadmap-page-header,
  .roadmap-toolbar,
  .roadmap-export-frame__header {
    flex-direction: column;
    align-items: stretch;
  }

  .roadmap-legend {
    justify-content: flex-start;
  }

  .roadmap-country-select {
    width: 100%;
  }

  .roadmap-editor-card__grid {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .roadmap-editor-card__icon-input {
    width: 100%;
  }
}

.evidence-panel .evidence-panel__heading {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.88rem;
  font-weight: 600;
  margin-bottom: 0.4rem;
}

.evidence-panel__tab--pre .evidence-panel__heading {
  color: color-mix(in srgb, var(--evidence-pre) 78%, black);
}

.evidence-panel__tab--val .evidence-panel__heading {
  color: color-mix(in srgb, var(--evidence-val) 76%, black);
}

.evidence-panel .evidence-panel__prompts-wrap {
  border-left: 3px solid var(--bs-border-color);
  border-radius: 0.3rem;
  padding: 0.35rem 0.55rem;
  background: var(--bs-tertiary-bg);
}

.evidence-panel__tab--pre .evidence-panel__prompts-wrap {
  border-left-color: rgba(var(--evidence-pre-rgb), 0.6);
  background: rgba(var(--evidence-pre-rgb), 0.06);
}

.evidence-panel__tab--val .evidence-panel__prompts-wrap {
  border-left-color: rgba(var(--evidence-val-rgb), 0.6);
  background: rgba(var(--evidence-val-rgb), 0.08);
}

.evidence-panel .evidence-panel__prompts {
  padding-left: 1rem;
  font-size: 0.82rem;
  line-height: 1.3;
}

.evidence-panel .evidence-panel__prompts li + li {
  margin-top: 0.16rem;
}

.evidence-panel__tab--pre .evidence-panel__prompts li::marker {
  color: var(--evidence-pre);
}

.evidence-panel__tab--val .evidence-panel__prompts li::marker {
  color: var(--evidence-val);
}

.evidence-panel .evidence-panel__divider {
  border-top-color: var(--bs-border-color-translucent);
  opacity: 1;
}

.evidence-panel .evidence-panel__tab .form-label {
  margin-bottom: 0.22rem;
  font-size: 0.8rem;
  font-weight: 600;
}

.evidence-panel__tab--pre .form-label {
  color: color-mix(in srgb, var(--evidence-pre) 72%, black);
}

.evidence-panel__tab--val .form-label {
  color: color-mix(in srgb, var(--evidence-val) 74%, black);
}

.evidence-panel .evidence-panel__tab textarea.form-control {
  width: 100%;
  min-height: 5.75rem;
  max-height: 11rem;
  resize: vertical;
  font-size: 0.84rem;
  line-height: 1.35;
}

.evidence-panel__tab--pre textarea.form-control {
  border-color: rgba(var(--evidence-pre-rgb), 0.48);
}

.evidence-panel__tab--val textarea.form-control {
  border-color: rgba(var(--evidence-val-rgb), 0.48);
}

.evidence-panel__tab--pre textarea.form-control:focus-visible {
  border-color: var(--evidence-pre);
  box-shadow: 0 0 0 0.22rem rgba(var(--evidence-pre-rgb), 0.2);
}

.evidence-panel__tab--val textarea.form-control:focus-visible {
  border-color: var(--evidence-val);
  box-shadow: 0 0 0 0.22rem rgba(var(--evidence-val-rgb), 0.2);
}

.maturity-radio {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  margin: 0;
}

.maturity-option {
  position: relative;
  width: 100%;
}

.maturity-cards-list {
  width: 100%;
  display: grid !important;
  grid-template-columns: 1fr;
  gap: 0.45rem !important;
}

.maturity-card-body {
  cursor: pointer;
  display: block;
  width: 100%;
  min-height: 56px;
  padding: 0.5rem 0.55rem;
  border: 1px solid var(--bs-border-color);
  border-radius: 0.45rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  transition: all 0.12s ease-in-out;
}

.maturity-card-body:hover {
  box-shadow: 0 2px 7px rgba(0, 0, 0, 0.14);
}

.maturity-radio:checked + .maturity-card-body {
  border-color: #f59e0b;
  background-color: rgba(245, 158, 11, 0.06);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.14);
}

.maturity-option:focus-within .maturity-card-body {
  outline: 2px solid rgba(245, 158, 11, 0.5);
  outline-offset: 1px;
}



.maturity-option--zero {
  width: 100%;
}

.maturity-option--zero .maturity-card-body {
  background: #f1f3f5;
  min-height: 28px;
}

.maturity-option--unscored {
  grid-column: 1 / -1;
}

.maturity-option--unscored .maturity-card-body {
  border-style: dashed;
  background: #f8f9fa;
  min-height: 28px;
}

.maturity-option--unscored .maturity-card-title {
  font-style: italic;
}
.maturity-card-title {
  font-weight: 600;
  margin-bottom: 0.2rem;
  font-size: 0.92rem;
}

.maturity-card-desc {
  font-size: 0.82rem;
  line-height: 1.25;
}

.survey-below-evidence-nav {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-top: 0.4rem;
  margin-bottom: 0.45rem;
}

.survey-below-evidence-nav .btn {
  min-width: 110px;
}

.survey-sticky-footer {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1030;
  background: rgba(255, 255, 255, 0.97);
  backdrop-filter: blur(2px);
  border-top: 1px solid var(--bs-border-color);
  padding: 0.45rem 0;
}

.survey-sticky-footer > .d-flex {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 0.75rem;
}

.survey-sticky-footer .btn {
  min-width: 110px;
}

.survey-review-footer .survey-footer-downloads {
  justify-content: flex-start;
}

.survey-review-footer .survey-footer-actions {
  justify-content: flex-end;
}

.survey-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 32px;
  height: auto;
  font-size: 0.78rem;
  line-height: 1;
  padding: 0.3rem 0.55rem;
  vertical-align: middle;
}

.survey-action-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: none;
}

.survey-action-btn.btn-secondary:disabled,
.survey-action-btn.btn-secondary.disabled {
  background-color: #cfd4da;
  border-color: #cfd4da;
  color: #6c757d;
}

.submit-changes-btn--inactive,
.submit-changes-btn--inactive:hover,
.submit-changes-btn--inactive:focus,
.submit-changes-btn--inactive:focus-visible,
.submit-changes-btn--inactive:active {
  background-color: transparent !important;
  border: 1px solid #adb5bd !important;
  color: #6c757d !important;
  opacity: 1 !important;
  box-shadow: none !important;
  text-decoration: none !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}

.shiny-notification-panel {
  pointer-events: none;
}

.shiny-notification-panel .shiny-notification {
  pointer-events: auto;
}

.survey-validate-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.survey-validate-help {
  display: inline-block;
  margin-left: 0.4rem;
  padding-left: 0.65rem;
  border-left: 1px solid var(--bs-border-color);
  color: var(--bs-secondary-color);
  font-size: 0.85rem;
  font-style: italic;
  line-height: 1.25;
  max-width: 34rem;
}

/* Align validate button with validation green (#14A085) rather than Bootstrap's --bs-success */
.survey-validate-row .btn-outline-success {
  color: #14A085;
  border-color: #14A085;
}
.survey-validate-row .btn-outline-success:hover,
.survey-validate-row .btn-outline-success:focus {
  background-color: #14A085;
  border-color: #14A085;
  color: #fff;
}
.survey-validate-row .btn-success {
  background-color: #14A085;
  border-color: #14A085;
  color: #fff;
}
.survey-validate-row .btn-success:hover,
.survey-validate-row .btn-success:focus {
  background-color: #0f8a72;
  border-color: #0f8a72;
  color: #fff;
}

/* Submit modal — submission type toggle buttons */
/* inline=TRUE renders label.radio-inline directly, no .radio wrapper */
.submit-type-picker .shiny-options-group {
  display: flex;
  gap: 0.5rem;
}

.submit-type-picker .radio-inline {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0.5rem 0.75rem;
  border: 2px solid;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 500;
  font-size: 0.9rem;
  transition: background 0.15s, color 0.15s;
  user-select: none;
}

.submit-type-picker .radio-inline input[type="radio"] {
  display: none;
}

/* Pre-assessment — amber */
.submit-type-picker .radio-inline:has(.type-label--pre) {
  border-color: #f59e0b;
  color: #b45309;
  background: transparent;
}

.submit-type-picker .radio-inline:has(.type-label--pre):has(input:checked) {
  background: #f59e0b;
  color: #fff;
}

/* Validation — green */
.submit-type-picker .radio-inline:has(.type-label--val) {
  border-color: #14A085;
  color: #0f8a72;
  background: transparent;
}

.submit-type-picker .radio-inline:has(.type-label--val):has(input:checked) {
  background: #14A085;
  color: #fff;
}


.footer-country-btn {
  min-width: 0;
}

.nav-tree-link {
  display: block;
  width: 100%;
  color: inherit;
  text-decoration: none;
  text-shadow: none;
  box-shadow: none;
}

.nav-tree-link:hover,
.nav-tree-link:focus,
.nav-tree-link:active,
.nav-tree-link:visited {
  color: inherit;
  text-decoration: none;
  text-shadow: none;
}

.nav-tree-link:focus-visible {
  outline: 2px solid rgba(var(--bs-secondary-rgb), 0.35);
  outline-offset: 2px;
  border-radius: 0.35rem;
}

.nav-tree-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 0.22rem 0.35rem;
  border-radius: 0.35rem;
  border-left: 3px solid transparent;
  text-decoration: none;
  font-size: 0.82rem;
}

.nav-tree-item:hover {
  background: #f6f8fa;
}

.nav-tree-link--active .nav-tree-item {
  background: transparent;
  border-left-color: var(--bs-secondary);
  color: var(--bs-secondary);
  font-weight: 600;
}

.nav-tree-badge {
  font-size: 0.68rem;
  border-radius: 999px;
  padding: 0.06rem 0.4rem;
  border: 1px solid #d0d7de;
  color: #57606a;
  white-space: nowrap;
}

.nav-tree-badge--complete {
  background: #e6f6f3;
  border-color: #a8ddd5;
  color: #14A085;
}

.nav-tree-badge--progress {
  background: #fff3cd;
  border-color: #ffe69c;
  color: #664d03;
}

.nav-tree-badge--empty {
  background: #f8f9fa;
  border-color: #dee2e6;
  color: #6c757d;
}


@media (max-width: 1199px) {
  .survey-two-col > * {
    flex: 0 0 100%;
    width: 100%;
  }
}

@media (max-height: 820px) {
  :root {
    --survey-footer-height: 66px;
  }

  .survey-layout .sidebar {
    max-height: calc(100vh - 180px);
  }

  .survey-main,
  .survey-layout .bslib-sidebar-layout {
    min-height: calc(100vh - 170px);
  }

  .survey-section-card .card-body {
    padding: 0.55rem 0.65rem;
  }

  .evidence-panel-body {
    max-height: calc(100vh - 355px);
  }

  .survey-question-title {
    margin-bottom: 0.45rem;
  }

  .maturity-card-body {
    min-height: 51px;
    padding: 0.42rem 0.5rem;
  }

  .maturity-option--unscored .maturity-card-body {
    min-height: 26px;
  }
}

@media (max-width: 991px) {
  .survey-meta-header {
    flex-direction: column;
    align-items: stretch;
  }

  .context-page-header {
    flex-direction: column;
    align-items: stretch;
  }

  .context-hero__meta {
    justify-content: flex-start;
  }

  .context-section-grid,
  .context-composite-question__grid {
    grid-template-columns: 1fr;
  }

  .survey-sticky-footer > .d-flex {
    flex-wrap: wrap;
  }

  .survey-review-footer .d-flex {
    width: 100%;
  }

  .survey-review-footer .survey-footer-downloads,
  .survey-review-footer .survey-footer-actions {
    width: 100%;
  }

  .survey-below-evidence-nav {
    justify-content: flex-start;
  }

  .maturity-cards-list {
    grid-template-columns: 1fr;
  }
}

.review-matrix {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.55rem;
}

.review-subdomain-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 0.88fr);
  gap: 1rem;
  align-items: start;
}

.review-subdomain-workspace__matrix,
.review-subdomain-workspace__detail {
  min-width: 0;
}

.review-subdomain-workspace__detail {
  position: sticky;
  top: 0.75rem;
}

.review-matrix-col {
  display: grid;
  gap: 0.45rem;
}

.review-matrix-col-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 0.4rem;
}

.review-matrix-col-level {
  font-weight: 700;
  font-size: 1rem;
}

.review-matrix-col-count {
  font-size: 0.78rem;
}

.review-section-prompt {
  display: flex;
  align-items: center;
  gap: 0.42rem;
  margin-bottom: 0.55rem !important;
  padding: 0.38rem 0.55rem !important;
  border-radius: 0.45rem;
  font-size: 0.78rem;
  line-height: 1.35;
  background: #fff7e6;
  border-color: rgba(245, 158, 11, 0.24);
  color: #6f4f12;
}

.review-section-prompt__icon {
  flex: 0 0 auto;
  color: #b7791f;
  font-size: 0.95rem;
}

.review-section-prompt__text {
  min-width: 0;
}

.review-domain-accordion {
  border: 1px solid rgba(33, 37, 41, 0.08);
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}

.review-domain-accordion .accordion-item {
  border-left: 0;
  border-right: 0;
}

.review-domain-accordion .accordion-button {
  padding: 0.72rem 0.9rem;
  font-size: 0.84rem;
  font-weight: 800;
  color: var(--bs-primary);
  background: var(--app-page-card-header-bg);
}

.review-domain-accordion .accordion-button:not(.collapsed) {
  background: rgba(var(--bs-primary-rgb), 0.06);
  color: var(--bs-primary);
  box-shadow: none;
}

.review-domain-accordion .accordion-body {
  padding: 0.75rem 0.85rem 0.9rem;
  background: #fff;
}

.review-domain-detail-card {
  margin-top: 0;
}

.review-chip-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.review-chip.btn {
  padding: 0.12rem 0.45rem;
  font-size: 0.74rem;
  line-height: 1.2;
  border-radius: 999px;
  text-align: left;
}

.review-chip.btn.review-chip--selected {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
  box-shadow: 0 0 0 0.15rem rgba(var(--bs-primary-rgb), 0.14);
}

.review-detail-card {
  min-width: 0;
}

.review-detail-block {
  min-width: 0;
}

.review-detail-block__heading {
  margin: 0 0 0.45rem;
  color: #17384c;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.review-detail-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 9rem;
  padding: 1rem;
  border: 1px dashed rgba(var(--bs-primary-rgb), 0.18);
  border-radius: 0.75rem;
  background: rgba(var(--bs-primary-rgb), 0.035);
  color: #4f6d7a;
  font-size: 0.88rem;
  font-weight: 700;
}

.review-detail-panel {
  width: 100%;
}

.review-detail-panel__content {
  padding: 0.85rem 0.95rem 0.95rem;
}

.review-detail-panel .dashboard-cell-modal__block {
  margin-top: 0.85rem;
}

.review-detail-list {
  padding-left: 1.1rem;
  color: #284557;
  font-size: 0.84rem;
  line-height: 1.45;
}

.review-detail-list li + li {
  margin-top: 0.2rem;
}

@media (max-width: 991px) {
  .review-subdomain-workspace {
    grid-template-columns: 1fr;
  }

  .review-subdomain-workspace__detail {
    position: static;
  }
}

.review-evidence-list {
  display: grid;
  gap: 0.45rem;
}

.review-evidence-item {
  border: 1px solid var(--bs-border-color);
  border-radius: 0.4rem;
  padding: 0.4rem 0.55rem;
  background: #f8f9fa;
}


.review-submission-table th,
.review-submission-table td {
  font-size: 0.8rem;
  padding: 0.25rem 0.4rem;
  vertical-align: middle;
}

.review-submission-table th {
  width: 38%;
}


.review-matrix-summary {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 0.5rem;
  font-size: 0.84rem;
}


.review-incomplete-block {
  border: 1px solid rgba(108, 117, 125, 0.18);
  border-radius: 0.5rem;
  padding: 0.55rem 0.65rem;
  background: #f4f5f6;
  color: #3f474f;
  text-align: center;
}

.review-incomplete-block__heading {
  color: #3f474f;
}

.review-incomplete-block .review-chip-wrap {
  justify-content: center;
}

.review-diagnostic-matrix {
  font-size: 0.8rem;
  table-layout: fixed;
}

.review-diagnostic-matrix th,
.review-diagnostic-matrix td {
  padding: 0.3rem 0.45rem;
  vertical-align: middle;
}

.review-diagnostic-subdomain {
  text-align: left;
  width: 68%;
}

.review-diagnostic-level,
.review-diagnostic-level-cell {
  text-align: center;
  width: 8%;
}

.review-diagnostic-level-number {
  font-weight: 700;
  line-height: 1.1;
}

.review-diagnostic-level-label {
  font-size: 0.68rem;
  line-height: 1.1;
  color: var(--bs-secondary-color);
}

.review-diagnostic-domain-row td {
  background: rgba(13, 110, 253, 0.08);
  font-weight: 600;
}

.review-diagnostic-level-cell {
  height: 1.9rem;
}

.review-diagnostic-hit {
  background: rgba(40, 167, 69, 0.14);
}

.review-diagnostic-symbol {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  font-weight: 700;
  color: #6c757d;
}

.review-diagnostic-symbol-validated {
  color: #14A085;
}


.app-top-header {
  background-color: var(--bs-primary);
  border-bottom: 1px solid color-mix(in srgb, var(--bs-primary) 74%, black);
}

.app-top-header__inner {
  width: 100%;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.3rem 0.5rem;
}

.app-top-header__brand {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex: 1 1 auto;
}

.app-top-header__logo {
  height: 40px;
  width: auto;
  display: block;
  flex: 0 0 auto;
}

.app-top-header__title {
  font-size: 1.05rem;
  font-weight: 500;
  line-height: 1.2;
  color: #ffffff;
  min-width: 0;
}

.app-top-header__lang {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem;
  flex: 0 0 auto;
}

.app-top-header__lang-label {
  margin-bottom: 0;
  color: #ffffff;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

.app-top-header__lang .form-group,
.app-top-header__lang .shiny-input-container {
  margin-bottom: 0;
  width: auto;
  min-width: 0;
  flex: 0 0 auto;
}

.app-top-header__lang .form-select,
.app-top-header__lang select {
  width: 2.2rem;
  min-width: 2.2rem;
  height: 1.9rem;
  padding: 0.12rem 0.2rem;
  border-radius: 999px;
  border-color: rgba(255, 255, 255, 0.55);
  background-color: rgba(255, 255, 255, 0.16);
  color: #ffffff;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.1;
  text-align: center;
  text-align-last: center;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: none;
}

.app-top-header__lang .form-select:focus,
.app-top-header__lang select:focus {
  border-color: rgba(255, 255, 255, 0.8);
  box-shadow: 0 0 0 0.14rem rgba(255, 255, 255, 0.18);
}

.app-top-header__lang .form-select option,
.app-top-header__lang select option {
  color: #212529;
}

@media (max-width: 768px) {
  .app-top-header__inner {
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .app-top-header__brand {
    flex: 1 1 100%;
  }

  .app-top-header__lang {
    width: 100%;
    justify-content: flex-end;
    padding-left: calc(40px + 0.5rem);
  }
}


.survey-layout .card,
.survey-layout .accordion-item,
.survey-layout .bslib-sidebar-layout > .main,
.survey-layout .bslib-sidebar-layout > .sidebar {
  border-color: color-mix(in srgb, var(--bs-primary) 26%, var(--bs-border-color)) !important;
}

.survey-layout .card-header {
  border-bottom-color: color-mix(in srgb, var(--bs-primary) 24%, var(--bs-border-color)) !important;
}

.app-navbar-title {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  overflow: visible;
  min-height: 32px;
}

.app-navbar-logo {
  height: 24px;
  width: auto;
  display: block;
  flex: 0 0 auto;
}

.app-navbar-text {
  display: inline-block;
  line-height: 1.2;
  white-space: nowrap;
}

.survey-review-wrap .selectize-dropdown,
.survey-review-wrap .selectize-dropdown-content {
  z-index: 2000 !important;
}

.survey-review-wrap {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 0 calc(var(--survey-footer-height) + 0.5rem);
  box-sizing: border-box;
}

.survey-review-wrap .card,
.survey-review-wrap .card-body,
.survey-review-wrap .card-header {
  overflow: visible;
}

.country-selection-card {
  border: 1px solid color-mix(in srgb, var(--bs-primary) 45%, #ffffff);
  border-radius: 0.75rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.country-selection-card .card-body {
  padding: 1rem 1.1rem;
}

.country-selection-card__grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
}

.country-selection-card__title {
  margin-bottom: 0.75rem;
}

.country-selection-card__stats {
  border-left: 2px solid color-mix(in srgb, var(--bs-primary) 30%, #ffffff);
  padding-left: 0.9rem;
  display: grid;
  gap: 0.35rem;
}

@media (max-width: 768px) {
  .country-selection-card__grid {
    grid-template-columns: 1fr;
    gap: 0.7rem;
  }

  .country-selection-card__stats {
    border-left: 0;
    border-top: 2px solid color-mix(in srgb, var(--bs-primary) 30%, #ffffff);
    padding-left: 0;
    padding-top: 0.7rem;
  }
}

.survey-section-card--validated .maturity-radio:checked + .maturity-card-body {
  border-color: #14A085;
  background-color: rgba(20, 160, 133, 0.12);
  box-shadow: 0 2px 8px rgba(20, 160, 133, 0.2);
}

.free-text-field .form-control,
.free-text-field textarea.form-control {
  font-size: 0.95rem;
  line-height: 1.45;
  padding: 0.55rem 0.65rem;
}

.review-free-text {
  font-size: 0.95rem;
  line-height: 1.45;
}

.review-free-text p,
.review-free-text ul,
.review-free-text ol {
  margin-bottom: 0.45rem;
}

.review-free-text li {
  margin-bottom: 0.2rem;
}

.context-info-page .context-question-title {
  font-weight: 600;
}

.context-info-page {
  padding-bottom: calc(var(--survey-footer-height) + 0.35rem);
}

.context-info-page .card-body {
  padding: 0.5rem 0.6rem;
}

.context-info-footer .context-footer-meta {
  min-width: 230px;
}

.context-info-page .context-answer {
  padding: 0.1rem 0;
}

.context-info-page .context-answer-value {
  color: #495057;
  white-space: pre-wrap;
}

@media (max-width: 768px) {
  .context-composite-question__grid {
    grid-template-columns: 1fr;
  }

  .context-answer--inline-sub {
    grid-template-columns: 1fr;
  }
}

.dashboard-shell {
  width: 100%;
  max-width: none;
  margin: 0;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}

.dashboard-header {
  gap: 1rem;
}

.dashboard-title {
  color: inherit;
}

.home-hero {
  margin-bottom: var(--app-page-section-gap);
}

.dashboard-card {
  overflow: hidden;
}

.dashboard-card.dashboard-card--heatmap.bslib-card {
  overflow: visible;
}

.dashboard-card.dashboard-card--heatmap.bslib-card > .card-body {
  overflow: visible;
}

.dashboard-country-pill-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.dashboard-country-pill {
  border-radius: 999px;
  padding: 0.45rem 0.85rem;
  font-weight: 600;
  border-width: 1px;
  background: #ffffff;
}

.dashboard-country-pill--active {
  background: linear-gradient(135deg, var(--bs-secondary), color-mix(in srgb, var(--bs-primary) 72%, var(--bs-secondary)));
  border-color: var(--bs-secondary);
  box-shadow: 0 4px 10px rgba(var(--bs-secondary-rgb), 0.24);
}

.dashboard-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 240px));
  gap: 0.6rem;
}

.dashboard-kpi {
  background: linear-gradient(145deg, color-mix(in srgb, var(--bs-secondary) 10%, #ffffff), color-mix(in srgb, var(--bs-primary) 4%, #ffffff));
  border: 1px solid color-mix(in srgb, var(--bs-primary) 16%, #ffffff);
  border-radius: 0.75rem;
  padding: 0.75rem 0.95rem;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.dashboard-kpi__label {
  color: color-mix(in srgb, var(--bs-primary) 70%, #6c757d);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.dashboard-kpi strong {
  font-size: 1.45rem;
  color: var(--bs-primary);
}

.dashboard-side-stack {
  min-width: 0;
}

.dashboard-heatmap-shell {
  position: relative;
  overflow: visible;
  width: 100%;
  --dashboard-country-column-width: clamp(264px, 28ch, 300px);
  --dashboard-heatmap-cell-min-size: 22px;
  --dashboard-heatmap-cell-height: 22px;
  --dashboard-domain-header-height: 34px;
  --dashboard-subdomain-header-height: 14px;
}

.dashboard-heatmap-scroll {
  position: relative;
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
}

.dashboard-heatmap-matrix {
  position: relative;
  display: inline-grid;
  background: transparent;
  width: 100%;
  min-width: calc(var(--dashboard-country-column-width) + (var(--dashboard-subdomain-count) * var(--dashboard-heatmap-cell-min-size)));
  padding-bottom: 0.25rem;
}

.dashboard-heatmap-grid {
  display: grid;
  grid-template-columns: var(--dashboard-grid-columns);
  grid-template-rows: var(--dashboard-grid-rows);
}

.dashboard-heatmap-band {
  pointer-events: none;
}

.dashboard-heatmap-band--odd {
  background: rgba(255, 255, 255, 0.96);
}

.dashboard-heatmap-band--even {
  background: rgba(0, 0, 0, 0.055);
}

.dashboard-heatmap-grid--bands {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.dashboard-heatmap-grid--content {
  position: relative;
  z-index: 1;
}

.dashboard-heatmap__corner {
  position: sticky;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: var(--dashboard-country-column-width);
  min-width: var(--dashboard-country-column-width);
  max-width: var(--dashboard-country-column-width);
  padding-right: 0.55rem;
  background: color-mix(in srgb, var(--bs-secondary) 7%, #ffffff);
  color: var(--bs-primary);
  font-size: 0.8rem;
  z-index: 4;
  box-shadow: inset -1px 0 0 rgba(0, 0, 0, 0.08);
}

.dashboard-heatmap__corner--top {
  top: 0;
  height: var(--dashboard-domain-header-height);
  font-weight: 600;
}

.dashboard-heatmap__corner--sub {
  top: var(--dashboard-domain-header-height);
  height: var(--dashboard-subdomain-header-height);
  font-size: 0.68rem;
  color: #6a7d72;
}

.dashboard-heatmap__country-name {
  position: sticky;
  left: 0;
  display: flex;
  align-items: center;
  width: var(--dashboard-country-column-width);
  min-width: var(--dashboard-country-column-width);
  max-width: var(--dashboard-country-column-width);
  height: var(--dashboard-heatmap-cell-height);
  background: linear-gradient(180deg, #ffffff, color-mix(in srgb, var(--bs-secondary) 5%, #ffffff));
  font-weight: 700;
  white-space: nowrap;
  padding-right: 0.55rem;
  color: color-mix(in srgb, var(--bs-primary) 90%, #1f2933);
  z-index: 3;
  overflow: hidden;
  box-shadow: inset -1px 0 0 rgba(0, 0, 0, 0.08);
}

.dashboard-heatmap__domain-header {
  position: sticky;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  height: var(--dashboard-domain-header-height);
  background: transparent;
  padding: 0.25rem 0.15rem 0.22rem;
  z-index: 3;
}

.dashboard-heatmap__domain-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 4.9rem;
  height: 1.35rem;
  padding: 0 0.65rem !important;
  border-radius: 999px !important;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.18) !important;
  background: rgba(255, 255, 255, 0.9) !important;
  color: var(--bs-primary) !important;
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 1px 3px rgba(15, 45, 64, 0.08);
}

.dashboard-heatmap__domain-chip:hover,
.dashboard-heatmap__domain-chip:focus,
.dashboard-heatmap__domain-chip:active {
  background: #ffffff !important;
  color: var(--bs-primary) !important;
  border-color: rgba(var(--bs-primary-rgb), 0.3) !important;
  box-shadow: 0 2px 6px rgba(15, 45, 64, 0.12);
}

.dashboard-heatmap__subdomain-header {
  position: sticky;
  top: var(--dashboard-domain-header-height);
  width: 100%;
  min-width: var(--dashboard-heatmap-cell-min-size);
  height: var(--dashboard-subdomain-header-height);
  background: transparent;
  z-index: 3;
}

.dashboard-heatmap__cell-wrap {
  width: 100%;
  min-width: var(--dashboard-heatmap-cell-min-size);
  height: var(--dashboard-heatmap-cell-height);
  min-height: var(--dashboard-heatmap-cell-height);
  max-height: var(--dashboard-heatmap-cell-height);
  line-height: 0;
  overflow: hidden;
  background: transparent;
  display: flex;
  align-items: stretch;
  justify-content: stretch;
}

.dashboard-heatmap__cell {
  position: relative;
  display: block;
  flex: 1 1 auto;
  width: 100%;
  height: var(--dashboard-heatmap-cell-height);
  min-width: var(--dashboard-heatmap-cell-min-size);
  margin: 0 !important;
  border-radius: 0;
  border: 0 !important;
  box-shadow: none;
  padding: 0 !important;
  line-height: 0 !important;
  min-height: var(--dashboard-heatmap-cell-height);
  max-height: var(--dashboard-heatmap-cell-height);
  vertical-align: top;
  font-size: 0;
  background-image: none;
  appearance: none;
  -webkit-appearance: none;
}

.dashboard-heatmap__cell:hover,
.dashboard-heatmap__cell:focus {
  position: relative;
  z-index: 1;
  box-shadow: inset 0 0 0 1px rgba(9, 48, 33, 0.7), 0 0 0 1px rgba(9, 48, 33, 0.18);
}

.dashboard-heatmap__cell[aria-expanded="true"] {
  position: relative;
  z-index: 2;
  box-shadow: inset 0 0 0 1px rgba(9, 48, 33, 0.92), 0 0 0 2px rgba(9, 48, 33, 0.14);
}

.dashboard-heatmap__cell.btn,
.dashboard-heatmap__cell.btn:focus,
.dashboard-heatmap__cell.btn:hover,
.dashboard-heatmap__cell.btn:active {
  margin: 0 !important;
  padding: 0 !important;
  min-width: var(--dashboard-heatmap-cell-min-size);
  max-width: none;
  width: 100%;
  height: var(--dashboard-heatmap-cell-height);
  min-height: var(--dashboard-heatmap-cell-height);
  max-height: var(--dashboard-heatmap-cell-height);
  box-sizing: border-box;
  border-width: 0 !important;
  outline: 0;
  display: block;
  border-radius: 0 !important;
}

.dashboard-heatmap__cell--0,
.dashboard-heatmap__swatch--0 {
  background: #ffffff;
}

.dashboard-heatmap__cell--1,
.dashboard-heatmap__swatch--1 {
  background: #ffffcc;
}

.dashboard-heatmap__cell--2,
.dashboard-heatmap__swatch--2 {
  background: #c2e699;
}

.dashboard-heatmap__cell--3,
.dashboard-heatmap__swatch--3 {
  background: #78c679;
}

.dashboard-heatmap__cell--4,
.dashboard-heatmap__swatch--4 {
  background: #238443;
}

.dashboard-heatmap__cell--na,
.dashboard-heatmap__swatch--na {
  background: #ffffff;
  border: 1px solid rgba(73, 80, 87, 0.34) !important;
}

.dashboard-heatmap__cell--validated::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 0;
  height: 0;
  border-top: 7px solid rgba(33, 37, 41, 0.8);
  border-left: 7px solid transparent;
}

.dashboard-heatmap-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1rem;
  align-items: center;
  font-size: 0.82rem;
}

.dashboard-heatmap-legend__item {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.dashboard-heatmap__swatch {
  position: relative;
  width: 14px;
  height: 14px;
  border-radius: 2px;
  display: inline-block;
}

.dashboard-heatmap__swatch--validated {
  background: #ffffff;
  border: 1px solid rgba(73, 80, 87, 0.24);
}

.dashboard-heatmap__swatch--validated::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 0;
  height: 0;
  border-top: 6px solid rgba(33, 37, 41, 0.8);
  border-left: 6px solid transparent;
}

.dashboard-cell-popover {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 6;
  width: min(420px, calc(100% - 1rem));
  min-width: 280px;
  pointer-events: none;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 120ms ease, transform 120ms ease;
}

.dashboard-cell-popover.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.dashboard-cell-popover.is-open {
  pointer-events: auto;
}

.dashboard-cell-popover__inner {
  position: relative;
  overflow-y: auto;
  border-radius: 0.9rem;
  background: rgba(255, 255, 255, 0.985);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.16);
  box-shadow: 0 16px 36px rgba(15, 45, 64, 0.18);
  backdrop-filter: blur(6px);
}

.dashboard-cell-popover__content {
  position: relative;
  z-index: 1;
  padding: 0.85rem 0.95rem 0.95rem;
}

.dashboard-cell-popover__hint {
  margin: 0 0 0.65rem;
  color: color-mix(in srgb, var(--bs-primary) 58%, #6c757d);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.dashboard-cell-popover__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.7rem;
}

.dashboard-cell-popover__title-wrap {
  min-width: 0;
}

.dashboard-cell-popover__eyebrow {
  display: block;
  margin-bottom: 0.15rem;
  color: #4f6d7a;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.dashboard-cell-popover__title {
  display: block;
  color: var(--bs-primary);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.25;
}

.dashboard-cell-popover__close {
  flex: 0 0 auto;
  border-radius: 999px !important;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.16) !important;
  background: #fff !important;
  color: var(--bs-primary) !important;
  font-size: 0.74rem !important;
  font-weight: 700 !important;
}

.dashboard-cell-popover__meta {
  padding: 0.55rem 0.65rem;
  border-radius: 0.7rem;
  background: linear-gradient(180deg, rgba(0, 176, 202, 0.08), rgba(255, 255, 255, 0.92));
  border: 1px solid rgba(var(--bs-primary-rgb), 0.08);
}

.dashboard-cell-popover__prompt {
  color: color-mix(in srgb, var(--bs-primary) 78%, #1f2933);
  font-size: 0.98rem;
  line-height: 1.5;
  font-style: italic;
}

.dashboard-cell-popover__section-title {
  margin-bottom: 0.45rem;
  color: #17384c;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.dashboard-cell-popover__section-title--pre {
  color: #d97706;
}

.dashboard-cell-popover__section-title--val {
  color: #14A085;
}

.dashboard-cell-popover__evidence-stack {
  display: grid;
  gap: 0.6rem;
}

.dashboard-cell-popover__evidence-card {
  padding: 0.05rem 0;
  border-top: 1px solid rgba(var(--bs-primary-rgb), 0.08);
}

.dashboard-cell-popover__evidence-card:first-child {
  border-top: 0;
  padding-top: 0;
}

.dashboard-cell-popover__evidence-label {
  margin-bottom: 0.3rem;
  color: var(--bs-primary);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.dashboard-cell-popover__evidence-label--pre {
  color: #d97706;
}

.dashboard-cell-popover__evidence-label--val {
  color: #14A085;
}

.dashboard-cell-popover__evidence-ref {
  color: #284557;
  line-height: 1.45;
}

.dashboard-domain-panel {
  position: absolute;
  right: 0.75rem;
  bottom: 0.75rem;
  width: min(360px, calc(100% - 1.5rem));
  padding: 0.75rem 0.8rem;
  border-radius: 0.85rem;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.16);
  box-shadow: 0 12px 28px rgba(15, 45, 64, 0.16);
  backdrop-filter: blur(4px);
  z-index: 5;
}

.dashboard-domain-panel__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}

.dashboard-domain-panel__title-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
}

.dashboard-domain-panel__eyebrow {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: color-mix(in srgb, var(--bs-primary) 68%, #6c757d);
}

.dashboard-domain-panel__close {
  border-radius: 999px;
  white-space: nowrap;
}

.dashboard-domain-panel__list {
  display: grid;
  gap: 0.45rem;
}

.dashboard-domain-panel__item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.55rem;
  align-items: start;
}

.dashboard-domain-panel__number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.65rem;
  height: 1.65rem;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(var(--bs-secondary-rgb), 0.14), rgba(var(--bs-primary-rgb), 0.08));
  color: var(--bs-primary);
  font-weight: 700;
  font-size: 0.74rem;
}

.dashboard-domain-panel__label {
  color: #253740;
  line-height: 1.3;
}

.dashboard-context-prompt {
  margin-bottom: 0.85rem;
}

.dashboard-context-header {
  margin-bottom: 0.85rem;
}

.dashboard-context-header h4 {
  color: var(--bs-primary);
  font-size: 1.25rem;
}

.dashboard-context-tab {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.65rem;
  padding-top: 0.8rem;
}

.dashboard-context-card .nav-tabs {
  border-bottom-color: rgba(28, 86, 58, 0.12);
}

.dashboard-card .nav-tabs .nav-link {
  border: 0;
  border-radius: 999px;
  color: color-mix(in srgb, var(--bs-primary) 68%, #6c757d);
  font-weight: 600;
  padding: 0.38rem 0.8rem;
  margin-right: 0.35rem;
}

.dashboard-card .nav-tabs .nav-link.active,
.dashboard-card .nav-tabs .nav-link[aria-selected="true"] {
  background: linear-gradient(135deg, rgba(var(--bs-secondary-rgb), 0.16), rgba(var(--bs-primary-rgb), 0.08));
  color: var(--bs-primary);
  box-shadow: inset 0 0 0 1px rgba(var(--bs-primary-rgb), 0.16);
}

.dashboard-context-card {
  display: grid;
  gap: 0.5rem;
}

.dashboard-context-card__label {
  color: color-mix(in srgb, var(--bs-primary) 64%, #6c757d);
  font-size: 0.76rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 0.35rem;
  font-weight: 700;
}

.dashboard-context-card__value {
  color: #22342b;
  white-space: pre-wrap;
  line-height: 1.35;
  font-size: 0.96rem;
}

.dashboard-context-section {
  border-top: 1px solid rgba(11, 79, 113, 0.1);
  padding-top: 0.7rem;
  margin-top: 0.7rem;
}

.dashboard-context-section__title {
  color: #0b4f71;
  margin-bottom: 0.55rem;
}

.dashboard-context-item {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.35fr);
  gap: 0.5rem;
  margin-bottom: 0.45rem;
}

.dashboard-context-item__label {
  color: #4c6470;
  font-weight: 600;
}

.dashboard-context-item__value {
  color: #2b3a42;
  white-space: pre-wrap;
}

.dashboard-roadmap-placeholder {
  border: 1px dashed color-mix(in srgb, var(--bs-primary) 28%, #ffffff);
  border-radius: 0.8rem;
  padding: 1.2rem 1.25rem;
  background: radial-gradient(circle at top left, color-mix(in srgb, var(--bs-secondary) 10%, #ffffff), color-mix(in srgb, var(--bs-primary) 4%, #ffffff) 65%);
}

.dashboard-roadmap-placeholder h5 {
  color: var(--bs-primary);
}

.dashboard-cell-modal__block {
  margin-top: 1rem;
}

.dashboard-cell-modal__block:first-child {
  margin-top: 0;
}

.dashboard-cell-popover ul {
  padding-left: 1rem;
}

.dashboard-domain-popover {
  --bs-popover-max-width: 280px;
}

.dashboard-domain-popover .popover-body {
  padding: 0.7rem 0.8rem;
  border-radius: 0.8rem;
  background: rgba(255, 255, 255, 0.98);
}

.dashboard-domain-popover__body {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
}

.dashboard-domain-popover__eyebrow {
  color: color-mix(in srgb, var(--bs-primary) 68%, #6c757d);
  font-size: 0.69rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.dashboard-domain-popover__title {
  color: #18374a;
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.35;
}

@media (max-width: 992px) {
  .dashboard-context-item {
    grid-template-columns: 1fr;
    gap: 0.15rem;
  }

  .dashboard-context-tab {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .context-sections-nav > .tabbable > .nav {
    gap: 0.4rem;
  }

  .app-page-card--panel {
    padding: 0.68rem;
  }

  .dashboard-country-pill-wrap {
    gap: 0.45rem;
  }

  .dashboard-country-pill {
    width: 100%;
  }

  .dashboard-kpi-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-heatmap-shell {
    --dashboard-country-column-width: 220px;
    --dashboard-heatmap-cell-min-size: 18px;
    --dashboard-heatmap-cell-height: 18px;
  }

  .dashboard-cell-popover {
    width: min(360px, calc(100% - 0.75rem));
    min-width: 240px;
  }

  .dashboard-heatmap__corner,
  .dashboard-heatmap__country-name {
    min-width: 220px;
  }

  .dashboard-domain-panel {
    position: static;
    width: 100%;
    margin-top: 0.75rem;
  }

  .dashboard-card .card-body {
    padding: 0.7rem;
  }
}

@media (max-width: 767px) {
  .dashboard-cell-popover {
    width: calc(100% - 0.5rem);
    min-width: 0;
  }

  .dashboard-cell-popover__content {
    padding: 0.8rem 0.85rem 0.85rem;
  }
}

.dashboard-score-chip,
.dashboard-heat {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  border-radius: 999px;
  padding: 0.15rem 0.5rem;
  font-weight: 700;
  font-size: 0.82rem;
}

.dashboard-score-chip--0,
.dashboard-heat--0 {
  background: #e8edf2;
  color: #495057;
}

.dashboard-score-chip--1,
.dashboard-heat--1 {
  background: #fff4d6;
  color: #8a6116;
}

.dashboard-score-chip--2,
.dashboard-heat--2 {
  background: #dff2ff;
  color: #0b5c87;
}

.dashboard-score-chip--3,
.dashboard-heat--3 {
  background: #dff6ea;
  color: #166b47;
}

.dashboard-score-chip--4,
.dashboard-heat--4 {
  background: #cfe8ff;
  color: #0a4b73;
}

.dashboard-heat--na {
  background: #f3f5f7;
  color: #6c757d;
}


/* UI unification polish */
body.bslib-page-navbar > .container-fluid.html-fill-item.html-fill-container {
  max-width: var(--app-page-max-width);
  padding-top: var(--app-page-top-gap);
}

.app-page-shell,
.content-page,
.dashboard-shell,
.context-info-page,
.survey-review-wrap,
.survey-shell {
  color: var(--app-page-copy-color);
}

.app-page-header {
  gap: 1rem;
  margin-bottom: var(--app-page-section-gap);
}

.app-page-header__main {
  max-width: 58rem;
}

.app-page-heading,
.dashboard-title,
.context-page-title,
.review-page-title,
.content-page--survey-landing > h1:first-child,
.content-page--survey-landing > h2:first-child {
  margin: 0;
  color: var(--app-page-heading-color);
  font-size: 1.22rem;
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1.2;
  text-transform: none;
}

.app-page-intro,
.dashboard-intro,
.context-page-intro,
.review-page-intro,
.home-lead {
  max-width: 58rem;
  color: var(--app-page-muted-color);
  font-size: 0.96rem;
  font-weight: 500;
  line-height: 1.45;
}

.app-section-heading,
.review-detail-block__heading,
.dashboard-context-section__title,
.dashboard-context-card__label,
.context-question-input .control-label,
.context-question-input .form-label,
.context-composite-question__label,
.context-question-title,
.dashboard-cell-popover__evidence-label,
.dashboard-domain-popover__eyebrow,
.dashboard-domain-panel__eyebrow,
.dashboard-kpi__label,
.app-page-accordion .accordion-button,
.app-top-header__lang-label {
  letter-spacing: 0;
}

.app-section-heading,
.review-detail-block__heading,
.dashboard-context-section__title {
  color: var(--app-page-heading-color);
  font-size: 0.92rem;
  font-weight: 800;
  line-height: 1.3;
}

.app-page-main,
.dashboard-main,
.context-main,
.review-page-main {
  gap: var(--app-page-section-gap);
}

.app-page-card,
.survey-section-card,
.dashboard-card,
.country-selection-card,
.review-domain-accordion,
.review-detail-panel .dashboard-cell-popover__inner,
.context-section-panel {
  border: 1px solid var(--app-page-card-border);
  border-radius: var(--app-page-card-radius);
  background: var(--app-page-card-bg);
  box-shadow: var(--app-page-card-shadow);
}

.app-page-card.bslib-card,
.survey-section-card.bslib-card,
.dashboard-card.bslib-card,
.country-selection-card.bslib-card {
  overflow: hidden;
}

.app-page-card > .card-header,
.survey-section-card > .card-header,
.dashboard-card > .card-header,
.app-page-accordion .accordion-button,
.review-domain-accordion .accordion-button,
.app-page-card--plain > h3:first-child {
  padding: 0.68rem 0.85rem;
  color: var(--app-page-heading-color);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1.25;
  text-transform: none;
  background: var(--app-page-card-header-bg);
  border-bottom: 1px solid var(--app-page-card-header-border);
}

.app-page-card > .card-body,
.survey-section-card > .card-body,
.dashboard-card > .card-body,
.country-selection-card > .card-body {
  padding: 0.82rem 0.9rem;
}

.app-page-card--plain,
.app-page-card--panel,
.context-section-panel {
  padding: 0.82rem 0.9rem;
}

.app-page-card--plain > h3:first-child {
  margin: -0.82rem -0.9rem 0.78rem;
}

.app-page-card--plain > h3,
.home-card h3,
.country-selection-card__title {
  color: var(--app-page-heading-color);
  font-size: 0.94rem;
  font-weight: 800;
  line-height: 1.3;
}

.app-page-copy-block,
.content-page p,
.content-page ul,
.content-page ol,
.dashboard-context-card__value,
.dashboard-context-item__value,
.review-detail-list,
.review-free-text,
.domain-overview-description {
  color: var(--app-page-copy-color);
  line-height: 1.45;
}

.app-page-note,
.app-page-callout,
.review-section-prompt {
  border-radius: var(--app-page-card-radius);
  box-shadow: none;
}

.btn,
.survey-action-btn,
.review-chip.btn,
.dashboard-country-pill,
.context-meta-pill,
.saved-pill,
.nav-tree-badge {
  letter-spacing: 0;
}

.survey-action-btn,
.country-selection-card__actions .btn,
.country-selection-card__actions .action-button {
  min-height: 34px;
  border-radius: var(--app-page-control-radius);
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.15;
  padding: 0.38rem 0.62rem;
}

.form-control,
.form-select,
.selectize-input,
.context-question-input .form-control,
.context-question-input .form-select,
.context-question-input .selectize-input {
  border-radius: var(--app-page-control-radius);
}

.form-control:focus,
.form-select:focus,
.selectize-input.focus,
.context-question-input .form-control:focus,
.context-question-input .form-select:focus,
.context-question-input .selectize-input.focus {
  border-color: rgba(var(--bs-secondary-rgb), 0.78);
  box-shadow: var(--app-page-focus-ring);
}

.country-list-card > .card-body {
  display: grid;
  gap: 0.8rem;
  padding: 0;
}

.country-selection-card {
  margin-bottom: 0 !important;
  min-height: 6.8rem;
}

.country-selection-card__grid {
  height: 100%;
  min-height: 5.2rem;
  grid-template-columns: minmax(34rem, 1fr) minmax(15rem, 0.34fr);
  gap: 1rem 1.15rem;
  align-items: stretch;
}

.country-selection-card__main {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.country-selection-card__title {
  margin: 0;
  color: var(--app-page-heading-color);
  font-size: clamp(1.38rem, 1.2vw, 1.62rem);
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.country-selection-card__actions {
  margin-top: auto;
  padding-top: 0.85rem;
  align-items: flex-end;
}

.country-selection-card__stats {
  color: var(--app-page-muted-color) !important;
  font-size: 0.82rem;
  line-height: 1.35;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 0.22rem;
  text-align: left;
}

.country-selection-card__stat-row {
  display: flex;
  justify-content: flex-start;
  align-items: baseline;
  gap: 0.4rem;
  white-space: nowrap;
}

.country-selection-card__stat-row strong {
  display: inline;
  color: var(--app-page-heading-color);
  font-size: var(--app-page-label-size);
}

.survey-layout .card,
.survey-layout .accordion-item,
.survey-layout .bslib-sidebar-layout > .main,
.survey-layout .bslib-sidebar-layout > .sidebar {
  border-color: var(--app-page-card-border) !important;
  box-shadow: var(--app-page-card-shadow);
}

.survey-layout .sidebar,
.survey-layout .bslib-sidebar-layout > .main {
  background: #ffffff;
}

.survey-layout .sidebar .sidebar-title,
.survey-layout .sidebar .bslib-sidebar-title,
.survey-path--header,
.nav-tree-item,
.survey-question-title,
.maturity-card-title,
.evidence-panel .evidence-panel__heading {
  color: var(--app-page-heading-color);
}

.survey-path--header {
  font-size: 0.84rem;
  line-height: 1.3;
}

.survey-question-title {
  font-size: 1.05rem;
  font-weight: 800;
}

.survey-question-title.survey-question-title--subdomain {
  font-size: 1.16rem;
  font-weight: 600;
  font-style: italic;
}

.maturity-card-body {
  border-radius: var(--app-page-control-radius);
  box-shadow: 0 1px 3px rgba(15, 45, 64, 0.07);
}

.maturity-card-body:hover {
  border-color: rgba(var(--bs-primary-rgb), 0.28);
  box-shadow: 0 3px 8px rgba(15, 45, 64, 0.1);
}

.maturity-radio:checked + .maturity-card-body {
  border-color: #f59e0b;
  background: rgba(245, 158, 11, 0.08);
  box-shadow: 0 0 0 0.14rem rgba(245, 158, 11, 0.13);
}

.maturity-option:focus-within .maturity-card-body,
.nav-tree-link:focus-visible {
  outline: 2px solid rgba(var(--bs-secondary-rgb), 0.38);
  outline-offset: 2px;
}

.evidence-tabs .nav-tabs {
  gap: 0.25rem;
  border-bottom-color: rgba(var(--bs-primary-rgb), 0.14);
}

.evidence-tabs .nav-tabs .nav-link,
.dashboard-card .nav-tabs .nav-link,
.context-sections-nav .nav-link {
  border-radius: var(--app-page-control-radius);
  color: color-mix(in srgb, var(--bs-primary) 64%, var(--app-page-muted-color));
  font-weight: 700;
  letter-spacing: 0;
}

.evidence-tabs .nav-tabs .nav-link.active,
.evidence-tabs .nav-tabs .nav-link[aria-selected="true"],
.dashboard-card .nav-tabs .nav-link.active,
.dashboard-card .nav-tabs .nav-link[aria-selected="true"] {
  color: var(--app-page-heading-color);
  background: rgba(var(--bs-secondary-rgb), 0.1);
}

.survey-sticky-footer {
  background: rgba(255, 255, 255, 0.98);
  border-top-color: rgba(var(--bs-primary-rgb), 0.14);
  box-shadow: 0 -6px 18px rgba(15, 45, 64, 0.06);
}

.context-sections-nav > .tabbable > .nav {
  border-bottom-color: rgba(var(--bs-primary-rgb), 0.14);
}

.context-form-field {
  border-bottom-color: rgba(var(--bs-primary-rgb), 0.12);
}

.context-form-field--references {
  border-radius: var(--app-page-card-radius);
  background: rgba(var(--bs-secondary-rgb), 0.05);
}

.context-question-input .control-label,
.context-question-input .form-label,
.context-composite-question__label,
.context-question-title,
.dashboard-context-card__label,
.dashboard-kpi__label {
  color: color-mix(in srgb, var(--bs-primary) 76%, #44515c);
  font-size: var(--app-page-label-size);
  font-weight: 800;
  text-transform: none;
}

.dashboard-kpi {
  border-color: var(--app-page-card-border);
  border-radius: var(--app-page-card-radius);
  background: linear-gradient(145deg, rgba(var(--bs-secondary-rgb), 0.08), #ffffff 68%);
  box-shadow: var(--app-page-card-shadow);
}

.dashboard-kpi strong {
  color: var(--app-page-heading-color);
}

.dashboard-country-pill {
  border-radius: var(--app-page-control-radius);
  box-shadow: none;
}

.dashboard-country-pill--active {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  box-shadow: 0 4px 10px rgba(var(--bs-primary-rgb), 0.18);
}

.dashboard-roadmap-placeholder {
  border-radius: var(--app-page-card-radius);
  background: linear-gradient(145deg, rgba(var(--bs-secondary-rgb), 0.08), #ffffff 72%);
}

.review-domain-accordion {
  overflow: hidden;
}

.review-domain-accordion .accordion-item {
  border-color: rgba(var(--bs-primary-rgb), 0.1);
}

.review-domain-accordion .accordion-button:not(.collapsed) {
  background: rgba(var(--bs-secondary-rgb), 0.08);
}

.review-domain-accordion .accordion-body {
  padding: 0.82rem 0.9rem 0.95rem;
}

.review-section-prompt {
  background: #fff8e8;
  border-color: rgba(245, 158, 11, 0.24);
}

.review-detail-empty {
  border-radius: var(--app-page-card-radius);
  color: var(--app-page-muted-color);
}

.review-diagnostic-matrix {
  overflow: hidden;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.12);
  border-radius: var(--app-page-card-radius);
  color: var(--app-page-copy-color);
  font-size: 0.82rem;
  table-layout: fixed;
}

.review-diagnostic-matrix thead th {
  padding: 0.5rem 0.46rem;
  color: var(--app-page-heading-color);
  font-weight: 800;
  background: var(--app-page-card-header-bg);
  border-bottom: 1px solid var(--app-page-card-header-border);
}

.review-diagnostic-matrix tbody td {
  padding: 0.4rem 0.46rem;
  border-color: rgba(var(--bs-primary-rgb), 0.08);
}

.review-diagnostic-matrix tbody tr:nth-child(odd):not(.review-diagnostic-domain-row) td {
  background: #fbfdfe;
}

.review-diagnostic-subdomain {
  color: #243642;
  font-weight: 600;
}

.review-diagnostic-domain-row td {
  padding: 0.42rem 0.52rem;
  color: var(--app-page-heading-color);
  background: rgba(var(--bs-secondary-rgb), 0.1);
  font-weight: 800;
}

.review-diagnostic-level-number {
  color: var(--app-page-heading-color);
  font-weight: 800;
}

.review-diagnostic-level-label {
  color: var(--app-page-muted-color);
  font-size: 0.68rem;
}

.review-diagnostic-level-cell {
  height: 2rem;
}

.review-diagnostic-hit {
  background: rgba(var(--bs-success-rgb), 0.13) !important;
}

.review-diagnostic-symbol {
  color: color-mix(in srgb, var(--bs-success) 62%, #52616d);
}

.review-diagnostic-symbol-validated {
  color: #14A085;
}

@media (max-width: 768px) {
  :root {
    --app-page-gutter: 0.85rem;
    --app-page-top-gap: 0.7rem;
    --app-page-section-gap: 1rem;
    --app-page-section-gap-tight: 0.7rem;
  }

.app-page-heading,
.dashboard-title,
.context-page-title,
.review-page-title,
.content-page--survey-landing > h1:first-child,
.content-page--survey-landing > h2:first-child {
  font-size: 1.08rem;
}

  .app-page-card > .card-body,
  .survey-section-card > .card-body,
  .dashboard-card > .card-body,
  .country-selection-card > .card-body,
  .app-page-card--plain,
  .app-page-card--panel,
  .context-section-panel {
    padding: 0.72rem;
  }

  .app-page-card--plain > h3:first-child {
    margin: -0.72rem -0.72rem 0.68rem;
    padding: 0.62rem 0.72rem;
  }

  .country-selection-card__actions .btn,
  .country-selection-card__actions .action-button {
    width: 100%;
  }

  .country-selection-card {
    min-height: 0;
  }

  .country-selection-card__grid {
    min-height: 0;
    grid-template-columns: 1fr;
  }

  .country-selection-card__title {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
  }

  .country-selection-card__actions {
    padding-top: 0.9rem;
  }

  .review-diagnostic-matrix {
    font-size: 0.76rem;
  }

  .review-diagnostic-level-label {
    font-size: 0.62rem;
  }
}

.country-selection-card__stat-row span {
  display: inline;
}

/* ============================================================
   Loading feedback
   ============================================================ */

/* Thin progress bar sweeping across the top while Shiny is busy */
body.shiny-busy::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  z-index: 9999;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    transparent 0%,
    #d97706 30%,
    #14A085 70%,
    transparent 100%
  );
  background-size: 200% 100%;
  animation: app-busy-bar 1.4s ease-in-out infinite;
}

@keyframes app-busy-bar {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* Fade content while a uiOutput is recomputing */
.shiny-html-output.recalculating {
  opacity: 0.45;
  transition: opacity 0.15s ease;
}

/* ── Roadmap print / save-as-PDF ─────────────────────────────────────── */
@media print {
  /* Isolate the roadmap frame — hide everything else on the page */
  body * { visibility: hidden; }
  .roadmap-export-frame,
  .roadmap-export-frame * { visibility: visible; }

  .roadmap-export-frame {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    box-shadow: none !important;
    border: none !important;
  }

  /* Hide interactive controls visible in view mode */
  .roadmap-export-frame .roadmap-horizon__goal-btn { display: none !important; }
  .roadmap-export-frame .roadmap-card__controls    { display: none !important; }

  /* Page setup — landscape A4 with comfortable margins */
  @page {
    size: A4 landscape;
    margin: 1.5cm;
  }
}

