/* ----------------------------------------------------------------
	Custom CSS

	Add all your Custom Styled CSS here for New Styles or
	Overwriting Default Theme Styles for Better Handling Updates
-----------------------------------------------------------------*/

@import url("https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;600;700&family=Raleway:wght@400;500;600;700&family=Sora:wght@300;400;500;600;700&display=swap");

/* ----------------------------------------------------------------
  Background System
-----------------------------------------------------------------*/
html, body {
  background: transparent;
}

.institution-researchers-page {
  display: grid;
  gap: 1.5rem;
  padding-top: 1.5rem;
}

.institution-researchers-hero,
.institution-researchers-panel {
  border: 1px solid rgba(19, 49, 70, 0.1);
  border-radius: 0.75rem;
  background: #fff;
}

.institution-researchers-hero {
  display: flex;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 2rem;
}

.institution-researchers-eyebrow {
  margin-bottom: 0.5rem;
  color: rgba(19, 49, 70, 0.62);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.institution-researchers-hero h1 {
  margin-bottom: 0.4rem;
  font-size: 2.35rem;
}

.institution-researchers-lede {
  max-width: 42rem;
  margin-bottom: 0.65rem;
  color: rgba(19, 49, 70, 0.7);
  font-size: 1.05rem;
}

.institution-researchers-hero__actions,
.institution-researchers-actions,
.institution-researchers-filter-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
}

.institution-researchers-panel {
  padding: 1.5rem;
}

.institution-researchers-panel__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.institution-researchers-panel h2 {
  margin-bottom: 0.25rem;
  font-size: 1.35rem;
}

.institution-researchers-status,
.institution-researcher-flag {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  font-size: 0.76rem;
  font-weight: 700;
  line-height: 1.2;
}

.institution-researchers-status {
  padding: 0.45rem 0.7rem;
  background: rgba(29, 105, 113, 0.1);
  color: #1d6971;
  white-space: nowrap;
}

.institution-researchers-stats {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.75rem;
  margin-bottom: 1.1rem;
}

.institution-researchers-stats > div {
  padding: 0.85rem;
  background: rgba(216, 239, 228, 0.24);
}

.institution-researchers-stats span {
  display: block;
  margin-bottom: 0.25rem;
  color: rgba(19, 49, 70, 0.62);
  font-size: 0.73rem;
  text-transform: uppercase;
}

.institution-researchers-stats strong {
  color: #133146;
}

.institution-researchers-empty {
  margin-bottom: 1.1rem;
  padding: 1rem;
  background: rgba(183, 207, 235, 0.14);
  color: rgba(19, 49, 70, 0.72);
}

.institution-researchers-filters {
  margin-bottom: 1.25rem;
  padding: 1rem;
  background: rgba(183, 207, 235, 0.1);
}

.institution-researchers-filter-grid {
  display: grid;
  grid-template-columns: 2fr repeat(3, 1fr);
  gap: 0.85rem;
}

.institution-researchers-filter-grid .form-group {
  margin-bottom: 0.85rem;
}

.institution-researchers-table-wrap {
  border: 1px solid rgba(19, 49, 70, 0.1);
}

.institution-researchers-client-status {
  min-height: 1.25rem;
  margin: 0 0 1rem;
  color: rgba(19, 49, 70, 0.68);
  font-size: 0.86rem;
}

.institution-researchers-client-status.is-error {
  color: #8b3a2e;
}

.institution-researchers-table-note {
  margin: 0.75rem 0 0;
  color: rgba(19, 49, 70, 0.62);
  font-size: 0.82rem;
}

.institution-researchers-table {
  min-width: 920px;
  margin-bottom: 0;
}

.institution-researchers-table th {
  border-top: 0;
  color: rgba(19, 49, 70, 0.68);
  font-size: 0.76rem;
  text-transform: uppercase;
  white-space: nowrap;
}

.institution-researchers-table td {
  vertical-align: top;
}

.institution-researcher-name {
  color: #133146;
  font-weight: 700;
}

.institution-researcher-flags {
  min-width: 13rem;
}

.institution-researcher-flag {
  margin: 0 0.25rem 0.3rem 0;
  padding: 0.28rem 0.45rem;
}

.institution-researcher-flag--active {
  background: rgba(22, 135, 106, 0.12);
  color: #16876a;
}

.institution-researcher-flag--warning {
  margin-left: 0.35rem;
  background: rgba(251, 81, 14, 0.1);
  color: #8d4a11;
}

.institution-researcher-flag--muted {
  background: rgba(19, 49, 70, 0.08);
  color: rgba(19, 49, 70, 0.58);
}

.institution-researchers-pagination {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-top: 1rem;
}

.institution-researcher-completion {
  min-width: 10rem;
}

.institution-overview-completion-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.institution-overview-completion-card {
  display: grid;
  gap: 0.3rem;
  min-height: 7rem;
  padding: 1rem;
  border: 1px solid rgba(19, 49, 70, 0.1);
  border-radius: 0.5rem;
  color: var(--text);
  text-decoration: none;
  background: #fff;
}

.institution-overview-completion-card:hover {
  color: var(--text);
  text-decoration: none;
  border-color: rgba(29, 105, 113, 0.3);
}

.institution-overview-completion-card__label {
  color: rgba(19, 49, 70, 0.68);
  font-size: 0.82rem;
  font-weight: 700;
}

.institution-overview-completion-card strong {
  color: #133146;
  font-size: 1.65rem;
}

.institution-overview-completion-heatmap {
  padding-top: 0.5rem;
}

.institution-overview-completion-heatmap__form {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.institution-overview-heatmap-table {
  min-width: 42rem;
  margin-bottom: 0;
}

.institution-overview-heatmap-table th,
.institution-overview-heatmap-table td {
  vertical-align: middle;
  text-align: center;
}

.institution-overview-heatmap-table th:first-child {
  min-width: 10rem;
  text-align: left;
}

.institution-overview-heatmap-cell {
  display: block;
  min-width: 4.2rem;
  padding: 0.55rem 0.35rem;
  border-radius: 0.35rem;
  color: #133146;
  text-decoration: none;
  background: rgba(29, 105, 113, 0.12);
  font-weight: 700;
}

.institution-overview-heatmap-cell:hover {
  color: #fff;
  background: #1d6971;
  text-decoration: none;
}

@media (max-width: 1199.98px) {
  .institution-researchers-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .institution-overview-completion-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .institution-researchers-stats,
  .institution-researchers-filter-grid {
    grid-template-columns: 1fr;
  }

  .institution-researchers-hero {
    display: grid;
    padding: 1.25rem;
  }

  .institution-researchers-hero h1 {
    font-size: 1.85rem;
  }

  .institution-researchers-panel {
    padding: 1rem;
  }

  .institution-researchers-panel__header {
    display: grid;
  }

  .institution-overview-completion-cards {
    grid-template-columns: 1fr;
  }

  .institution-overview-section__header,
  .institution-overview-panel__header,
  .institution-overview-completion-heatmap__form {
    display: grid;
  }

  .institution-researchers-pagination {
    justify-content: center;
    flex-wrap: wrap;
  }
}

body::before,
body::after {
  z-index: 0;
}

.main-content,
#wrapper,
#content {
  position: relative;
  z-index: 1;
}

.bg-system-option-a {
  background: linear-gradient(
    180deg,
    #F1F5FA 0%,
    #EEF2F7 40%,
    #F5F7FB 100%
  );
}

.bg-system-option-b {
  background: linear-gradient(
    135deg,
    #F1F5FA 0%,
    #EDF3FA 50%,
    #F6F9FC 100%
  );
}

.bg-system-option-c {
  background:
  radial-gradient(
    circle at 0% 0%,
    rgba(118, 160, 208, 0.12),
    transparent 50%
  ),
  radial-gradient(
    circle at 90% 90%,
    rgba(10, 231, 255, 0.08),
    transparent 50%
  ),
  #F1F5FA; /* NOT powder-blue */
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 1;

  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAQCAYAAABAfUpiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFZJREFUeNpi/P//PwMlgImBQjDwH4iFQAyGhgYGBgYGJgYGBgYGhgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYAAAwDq9gk7t2raWAAAAAElFTkSuQmCC");
  opacity: 0.015;
}

body::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 1;

  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAQCAYAAABAfUpiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFZJREFUeNpi/P//PwMlgImBQjDwH4iFQAyGhgYGBgYGJgYGBgYGhgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYAAAwDq9gk7t2raWAAAAAElFTkSuQmCC");
  opacity: 0.01;
}

body.bg-system-option-a,
body.bg-system-option-b,
body.bg-system-option-c {
  min-height: 100vh;
  background-repeat: no-repeat;
  background-size: cover;
  background-attachment: fixed;
}

body.bg-system-option-a #wrapper,
body.bg-system-option-b #wrapper,
body.bg-system-option-c #wrapper {
  background: transparent;
  box-shadow: none;
}

body.bg-system-option-a #content,
body.bg-system-option-b #content,
body.bg-system-option-c #content {
  background: transparent;
}


@media (max-width: 480px) {
  .container {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }
}

@media (min-width: 576px) {
  .container {
    max-width: 900px;
    padding: 0px;
  }
}

@media (min-width: 768px) {
  .container {
    max-width: 1100px;
  }
}

@media (min-width: 992px) {
  .container {
    max-width: 1400px;
  }
}

/* Large tablets: iPad Pro 11", iPad Pro 12.9", Xiaomi Redmi Pad Pro, etc. */
@media (min-width: 1024px) and (max-width: 1399.98px) {
  .container {
    max-width: 95vw;
    width: 100%;
  }
}

@media (min-width: 1200px) {
  .container {
    max-width: 1600px;
  }
}


a {
  color: var(--malachite);
  text-decoration: none;
  background-color: transparent;
}

a:hover {
  color: var(--text) !important;
}
.widget_links > ul > li > a,
#primary-menu > ul > li > a {
  color: var(--yinmn-blue) !important;
  text-decoration: none;
  background-color: transparent;
}
.site-canvas {
  /*background-color: var(--anti-flash-white);*/
}
.stretched {
  /*background-color: var(--anti-flash-white);*/
}

body:not(:has(.homepage-landing)):not(:has(.segment-page)) {
  background:
    radial-gradient(circle at top left, rgba(183, 207, 235, 0.34), transparent 28%),
    radial-gradient(circle at 100% 0, rgba(241, 245, 250, 0.96), transparent 24%),
    linear-gradient(180deg, #fbfcfe 0%, #f4f7fb 52%, #eef2f7 100%);
  background-attachment: fixed;
}

body:not(:has(.homepage-landing)):not(:has(.segment-page)) #wrapper,
body:not(:has(.homepage-landing)):not(:has(.segment-page)) #content {
  background: transparent;
}

body:not(:has(.homepage-landing)):not(:has(.segment-page)) #content .content-wrap {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.34) 0%, rgba(255, 255, 255, 0.16) 100%);
}

.btn-primary {
  color:white !important;
  background-color: var(--yinmn-blue);
  border-color: var(--indigo-dye);  
  border-radius: 5px;
  text-decoration: none;
  text-shadow: none;
}

.btn-primary:hover {
  background-color: var(--alice-blue);
  border-color: var(--indigo-dye);
  color: var(--text);
}

.btn-primary a {
  color: white !important;
}

.btn-primary > a:hover {
  color: var(--text) !important;
}


.btn-disabled {
  color: var(--powder-blue) !important;
  background-color: transparent;
  border-color: var(--powder-blue);
  border-radius: 5px;
  text-decoration: none;
  text-shadow: none;
}

.btn-disabled a {
  color: var(--powder-blue) !important;
}

.btn-secondary {
  border-color: white;
  border-radius: 5px;
  text-decoration: none;
  text-shadow: none;
}

.btn-success {
  color: #fff !important;
  background-color: var(--malachite);
  border-color: var(--malachite);
  border-radius: 5px;
  text-decoration: none;
  text-shadow: none;
}
.btn-success-2 {
  color: #fff !important;
  background-color: var(--yinmn-blue);
  border-color: var(--border);
  border-radius: 5px;
  text-decoration: none;
  text-shadow: none;
}

.one-index-gauge {
  margin: 0 auto;
  border-radius: 999px;
  background:
    radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.55) 0 42%, rgba(244, 248, 253, 0.22) 43% 68%, rgba(183, 207, 235, 0.06) 69% 100%);
  box-shadow: none;
  transition: none;
}

.one-index-gauge:hover {
  transform: none;
  box-shadow: none;
}

/* ONE Framework */
.oneframework-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.oneframework-title {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.oneframework-title-icon {
  height: 36px;
  margin-left: 0.5rem;
  vertical-align: middle;
}

.oneframework-section {
  margin-top: 1.5rem;
}

.oneframework-controls {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin: 1rem 0 1.5rem;
}

.oneframework-controls .form-control {
  max-width: 320px;
}

.oneframework-count {
  font-size: 0.9rem;
}

.oneframework-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
}

.oneframework-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 10px;
  padding: 1rem;
  box-shadow: 0 1px 2px rgba(45, 85, 131, 0.06);
  border-top: 3px solid var(--color-border);
}

.oneframework-card-title {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  margin-bottom: 0.5rem;
}

.oneframework-context {
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--color-text-soft);
}

.oneframework-context.dimension-context {
  opacity: 0.85;
}

.oneframework-tag {
  font-size: 0.75rem;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  background: rgba(183, 207, 235, 0.16);
  color: var(--color-secondary);
  border: 1px solid rgba(170, 178, 208, 0.68);
  white-space: nowrap;
}

.oneframework-tag--ok {
  background: rgba(0, 191, 21, 0.12);
  color: var(--color-success);
  border-color: rgba(0, 191, 21, 0.28);
}

.oneframework-tag--warn {
  background: rgba(251, 81, 14, 0.08);
  color: var(--color-accent-warm);
  border-color: rgba(251, 81, 14, 0.22);
}

.oneframework-tag--bad {
  background: rgba(251, 81, 14, 0.16);
  color: var(--color-text);
  border-color: rgba(251, 81, 14, 0.34);
}

@media (max-width: 575.98px) {
  .oneframework-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .oneframework-card,
  .oneframework-card-title,
  .oneframework-context {
    min-width: 0;
    overflow-wrap: anywhere;
  }
}

.oneframework-dims {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.5rem;
}

.oneframework-supra {
  border: 1px solid var(--color-border);
  border-radius: 12px;
  padding: 1rem;
  margin-bottom: 1rem;
  background: var(--color-surface);
}

.oneframework-axis {
  border: 1px solid var(--color-border);
  border-left: 4px solid var(--color-border);
  border-radius: 12px;
  padding: 1rem;
  margin-bottom: 1rem;
  background: var(--color-surface);
}

.chart-gate {
  position: relative;
}

.chart-gate-target {
  transition: filter 0.2s ease;
}

.chart-gate.is-locked .chart-gate-target {
  filter: blur(6px);
  pointer-events: none;
}

.chart-gate-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: rgba(241, 245, 250, 0.9);
  border: 1px dashed var(--color-border);
  border-radius: 12px;
  text-align: left;
}

.chart-gate-card {
  max-width: 640px;
  background: rgba(255, 255, 255, 0.96);
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  box-shadow: 0 10px 25px rgba(45, 85, 131, 0.12);
}

.oneframework-axis-title {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  margin-bottom: 0.35rem;
}

.oneframework-axis-label {
  font-weight: 600;
  color: var(--dark-slate);
}

.oneframework-axis-name {
  color: var(--dark-slate);
}

.oneframework-axis-summary {
  font-size: 0.9rem;
}

.oneframework-axis.axis-performance,
.oneframework-card.axis-performance {
  --axis-color: var(--color-primary);
  --axis-color-soft: rgba(67, 119, 177, 0.1);
}

.oneframework-axis.axis-interaction_scientific_comm,
.oneframework-card.axis-interaction_scientific_comm {
  --axis-color: var(--color-secondary);
  --axis-color-soft: rgba(45, 85, 131, 0.1);
}

.oneframework-axis.axis-interaction_society,
.oneframework-card.axis-interaction_society {
  --axis-color: var(--color-accent-purple);
  --axis-color-soft: rgba(103, 78, 167, 0.12);
}

.oneframework-axis.axis-performance,
.oneframework-axis.axis-interaction_scientific_comm,
.oneframework-axis.axis-interaction_society {
  border-left-color: var(--axis-color);
  background: linear-gradient(90deg, var(--axis-color-soft), rgba(255, 255, 255, 0.98) 68%);
}

.oneframework-axis.axis-performance .oneframework-axis-name,
.oneframework-axis.axis-interaction_scientific_comm .oneframework-axis-name,
.oneframework-axis.axis-interaction_society .oneframework-axis-name {
  color: var(--axis-color);
}

.oneframework-axis.axis-performance .oneframework-axis-summary,
.oneframework-axis.axis-interaction_scientific_comm .oneframework-axis-summary,
.oneframework-axis.axis-interaction_society .oneframework-axis-summary {
  color: var(--axis-color);
  opacity: 0.8;
}

.oneframework-axis.axis-performance .oneframework-dimension,
.oneframework-axis.axis-interaction_scientific_comm .oneframework-dimension,
.oneframework-axis.axis-interaction_society .oneframework-dimension {
  border-left-color: var(--axis-color);
}

.oneframework-card.axis-performance,
.oneframework-card.axis-interaction_scientific_comm,
.oneframework-card.axis-interaction_society {
  border-top-color: var(--axis-color);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04), 0 0 0 1px rgba(0, 0, 0, 0.02);
}

.oneframework-card.axis-performance .axis-context,
.oneframework-card.axis-interaction_scientific_comm .axis-context,
.oneframework-card.axis-interaction_society .axis-context {
  color: var(--axis-color);
}

.oneframework-dimension {
  border-left: 3px solid rgba(170, 178, 208, 0.72);
  margin: 0.75rem 0 0.75rem 1rem;
  padding-left: 0.75rem;
}

.oneframework-dimension[open] > .oneframework-dimension-title {
  margin-bottom: 0.35rem;
}

.oneframework-dimension-title {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}

.oneframework-dimension-title::-webkit-details-marker {
  display: none;
}

.oneframework-dimension-title::before {
  content: "▸";
  display: inline-block;
  margin-right: 0.5rem;
  color: var(--color-text-soft);
}

.oneframework-dimension[open] .oneframework-dimension-title::before {
  content: "▾";
}

.oneframework-dimension-body {
  margin-left: 1.4rem;
}


.oneframework-indicator-label {
  font-size: 0.85rem;
  font-weight: 600;
  margin: 0.35rem 0;
}

.oneframework-measure-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.6rem;
  font-size: 0.9rem;
  margin-left: 1rem;
}

.oneframework-indicator-link {
  border: 1px solid rgba(170, 178, 208, 0.68);
  background: rgba(183, 207, 235, 0.14);
  border-radius: 999px;
  padding: 0.2rem 0.6rem;
  font-size: 0.85rem;
  color: var(--color-secondary);
  cursor: pointer;
}

.oneframework-indicator-link:hover {
  background: rgba(10, 231, 255, 0.1);
  border-color: rgba(10, 231, 255, 0.45);
  color: var(--color-accent-cyan);
}

.btn-success-3 {
  color: var(--text) !important;
  background-color: var(--electric-blue);
  border-color: var(--border);
  border-radius: 5px;
  text-decoration: none;
  text-shadow: none;
}
.btn-success-4 {
  color: var(--text) !important;
  background-color: var(--columbia-blue);
  border-color: var(--border);
  border-radius: 5px;
  text-decoration: none;
  text-shadow: none;
}

.btn-success-4.disabled {
  color: var(--text) !important;
  background-color: white;
}

.btn-success-4.active {
  color: white !important;
  background-color: var(--yinmn-blue)
}


.btn-option.selected {
  color: #fff !important;
  background-color: var(--yinmn-blue);
}
.btn-option {
  color: var(--text) !important;
  background-color: var(--alice-blue);
  border: 1px solid var(--border);
  border-radius: 5px;
}

.btn-cta {
  background-color: var(--orange-peel);
  opacity: 0.9;
  border-radius: 5px;
  color: var(--text);
  text-decoration: none;
}
.btn-cta:hover {
  background-color: var(--malachite);
  color: white !important;
  text-decoration: none;
  text-shadow: none;
}
.btn-cta:active {
  background-color: var(--malachite);
  color: white;
  text-decoration: none;
  text-shadow: none;
}

.btn {
  text-decoration: none;
  text-shadow: none;
}
.btn:hover {
  text-decoration: none;
  text-shadow: none;
}

.pricing-title-1 {
  background-color: var(--columbia-blue);
}
.pricing-title-2 {
  background-color: var(--powder-blue);
}
.pricing-title-3 {
  color: white;
  background-color: var(--ucla-blue);
}
.pricing-title-4 {
  color: white;
  background-color: var(--yinmn-blue);
}

.pricing-title > span {
  color: var(--text);
}

.pricing-box2 {
  height: 25rem;
  text-align: center;
  border: 1px solid var(--border);
  
}
.pricing-body {
  height: 28rem;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.pricing-body > div {
  flex-grow: 1; 
}
.pricing-box-1,
.pricing-price-1 {
  background-color: var(--columbia-blue);
}
.pricing-box-2,
.pricing-price-2 {
  background-color: var(--powder-blue);
}
.pricing-box-3,
.pricing-price-3 {
  color: white;
  background-color: var(--ucla-blue);
}
.pricing-box-4,
.pricing-price-4 {
  color: white;
  background-color: var(--yinmn-blue);
}
.pricing-box-sponsorship {
  background-color: var(--electric-blue);
}
.pricing-features {
  /*height: 10rem;*/
  text-align: left;
  padding-left: 1rem;
}
.pricing-action {
  padding-top: .5rem;
  padding-bottom: 2rem;
  /*display: flex;
  align-self: baseline;
  justify-content: center;*/
}
.authorName {
  font-size: 4vh;
}

.oneLogo {
  height: 80px;
  width: 80px;
  border-radius: 50%;
  color: var(--text);
  background-color: #0CF500;
  display: inline-block;
  border: #A20FC0 solid 1px;
  
  align-items: center;
  justify-content: center;
}
/*
.sidebar {
  height: 100%;
  display: flex;
  flex-direction: column;
}*/

.full-height {
  flex: 1;
}


.sidebar-widgets-wrap {
  padding: 1rem;
  background-color: white;
  border-radius: 10px;
  border-style: solid;
  border-color: var(--border); 
  border-width: 1px;
}

.sticky {
  position: -webkit-sticky; /* Safari */
  position: sticky;
  top: 35px;
}

.info-box {
  border-style: solid;
  border-color: var(--border);
  border-width: 1px;
  border-radius: 10px;
  background-color: white;
  padding: 1rem;
  box-sizing: border-box; 
}

.info-box-trasparent {
  border-style: solid;
  border-color: white;
  border-width: 1px;
  border-radius: 10px;
  background-color: white;
  padding: 1rem;
  box-sizing: border-box; 
}

.dimension {
  width: auto;
  border-style: solid;
  border-color: var(--border); /*#aab2d0; */
  border-width: 1px;
  border-radius: 10px;
  background-color: white;
}
.dimension:hover {
  border-color: var(--electric-blue);
  border-width: 2px;
  
} 
.toggle-button > i {
  color: var(--text);
  font-size: .5rem;
  border: solid 1px var(--border);
  padding: 3px 6px;
  border-radius: 5px;
  rotate: 90deg;
}
.toggle-button > i:hover {
  cursor: pointer;
  font-size: .6em;
  color: white;
  background-color: var(--yinmn-blue);
}

.dimension-expanded {
  padding: .5em;
  border-style: solid;
  border-color: var(--border);
  border-width: 1px;
  border-radius: 10px;
  background-color: white;
}
/*.dimension-expanded > div > div > h1,
.dimension-expanded > div > h2 {
  color: var(--electric-blue);
}

.dimension-expanded > div > div > h3 {
  /*color: white;
}

.dimension-expanded > div > div > div > p {
  /*color: white;
}*/
.dimension-expanded > div > div > i {
  color: var(--text);
  font-size: 1rem;
  border: solid 1px var(--text);
  padding: 0 5px;
  border-radius: 5px;
}
.avatar-image {
  height: auto;
  /*height: 7rem;*/
  width: 100%;
  border-radius: 5%; 
  padding: 5px; 
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box; /* Ensure padding and border are included in the element's total width and height */
}

.avatar-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
}
.responsive {
  max-width: 100%;
  height: auto;
}

.chart-container {
  color: var(--text);
  background-color: white;
  border-radius: 10px;
  padding: 1em;
}
.data-box0 {
  /*color: white;*/
  border: solid 1px var(--border);
  border-radius: 10px;
  padding: 1em;
}
.data-box-sponsorship {
  background-color: var(--malachite);
  border: solid 1px var(--border);
  border-radius: 10px;
  padding: 1em;
}
.data-box1 {
  color: white;
  background-color: var(--yinmn-blue);
  border: solid 1px var(--border);
  border-radius: 10px;
  padding: 1em;
}

.data-box1 > h4,
.data-box1 > div > h3,
.data-box1 > div > div > h3,
.data-box1 > div > div > i,
.data-box1 > div > h4,
.data-box1 > div > div > div > h4,
div.togglec > div > div > h4,
div.togglec > div > div > div > h4,
div.togglec > div > div > div > div > h4,
.data-box1-extended > div > div > h4 {
  color: white;
}

.data-box2 {
  color: var(--text);
  background-color: var(--alice-blue);
  border: solid 1px var(--border);
  border-radius: 10px;
  padding: 1em;
}

.data-box3 {
  color: var(--text);
  background-color: var(--columbia-blue);
  border: solid 1px var(--border);
  border-radius: 10px;
  padding: 1em;
}

.data-box4 {
  color: white;
  background-color: var(--ucla-blue);  
  border: solid 1px var(--border); /*#2A7886*/
  border-radius: 10px;
  padding: 1em;
}

.data-box4 > h4,
.data-box4-extended > div > div > h4 {
  color: white;
}

.data-box5 {
  color: white;
  background-color: #2A7886;  
  border: solid 1px var(--border); /*#2A7886*/
  border-radius: 10px;
  padding: 1em;
}

.data-box5 > h4,
.data-box5-extended > div > div > h4 {
  color: white;
}


.data-box1-extended {
  color: white;
  background-color: var(--yinmn-blue);
  border: solid 1px var(--border);
  border-radius: 10px;
  padding: 1em;
  height: 15em;
}

.data-box2-extended {
  color: var(--text);
  background-color: var(--alice-blue);
  border: solid 1px var(--border);
  border-radius: 10px;
  padding: 1em;
  height: 15em;
}

.data-box3-extended {
  color: var(--text);
  background-color: var(--columbia-blue);
  border: solid 1px var(--border);
  border-radius: 10px;
  padding: 1em;
  height: 15em;
}

.data-box4-extended {
  color: white;
  background-color: var(--ucla-blue);
  border: solid 1px var(--border);
  border-radius: 10px;
  padding: 1em;
  height: 15em;
}
.data-box1-extended > div h4, 
.data-box2-extended > div h4, 
.data-box3-extended > div h4,
.data-box4-extended > div h4 {
  padding-top: 1.1em;
  padding-left: 5px;
  margin-bottom: .5em;
}

.data-box1-extended > div ol li, 
.data-box2-extended > div ol li, 
.data-box3-extended > div ol li,
.data-box4-extended > div ol li {
  font-size: .8em;
  padding-left: 3px;
  list-style-type: decimal;
}

.list-box {
  overflow-y: scroll;
  max-height: 8.5em;
  padding-left: 1rem;
  padding-right: .5rem;
}

.data-box1-extended > div ol li a, 
.data-box2-extended > div ol li a, 
.data-box3-extended > div ol li a,
.data-box4-extended > div ol li a {
  color: var(--electric-blue) !important;
}

.sponsorship-counter {
  font-size: 3.5rem;
  line-height: 4rem;
  padding: 1.7rem;
}

div.sponsorship-links a {
  color: var(--yinmn-blue) !important;
  background-color: var(--electric-blue);
}


.inbox-notification {
  color: white;
  text-decoration: none;
  padding: 15px 26px;
  position: relative;
  display: inline-block;
}

.inbox-notification .badge {
  position: absolute;
  top: -10px;
  right: -10px;
  padding: 5px 7px 6px 7px;
  border-radius: 50%;
  background: var(--malachite);
  color: white;
}

.modal-header {
  background-color: var(--yinmn-blue);
}
.modal-title {
  color: white;
}
.modal-body > div > div > p > a{
  font-size: 1rem;
  font-weight: 300;
}
.add-indicator {
  cursor: pointer;
  align-self: center;
}

.data-label {
  border-color: var(--border);
  border: 1px;
  border-style: solid;
  border-radius: 5px;
}

#supradimensionsChart {
  min-height: 40vh;
  border-radius: 10px;
}

.oneIndex {
  font-size: 2rem;
}

.oneIndexSmall {
  color: #2D5583; 
  text-shadow: 1px 1px 2px #B6E2EB; 
  font-size: 1.3em; 
  border: 2px solid #77C190;
   cursor:default;
}


.oneIndex_old {
  margin-top: 20px;
  height: 200px;
  width: 200px;
  background-color: white;
  border-radius: 50%;
  display: inline-block;
  /*border: #7913f6ff  solid 3px;*/
  z-index: 500;
}
.outerring {
  /*align-items: center;*/
  height: 240px;
  width: 240px;
  border-radius: 50%;
  display: inline-block;
  background-image: linear-gradient(120deg, #0ae7ffff, #0069fdff, #7913f6ff);
  z-index: -200;
}
.innerring {
  margin-top:0px;
  height: 200px;
  width: 200px;
  background-color: transparent;
  border-radius: 50%;
  display: inline-block;
  border: #A20FC0 solid 3px;
}
.grade-xxlarge {
  /*color: var(--highlight1);*/
  font-size: 6.4em;
  font-weight: 700;
  margin-bottom: 0px;
  line-height: 6rem;
  text-align: right;
  /*-webkit-text-stroke-width: 1px;
  -webkit-text-stroke-color: whitesmoke;*/
}
.grade-large {
  /*color: var(--highlight1);*/
  font-size: 3.4em;
  font-weight: 700;
  margin-bottom: 0px;
  line-height: 3.4rem;
  text-align: right;
  /*-webkit-text-stroke-width: 1px;
  -webkit-text-stroke-color: whitesmoke;*/
}
.contribution {
  display: block;
  font-size: 1.5em;
  font-weight: 300;
  text-align: right;
}
.badge-keyword, .badge-keyword:hover {
  font-size: 1em;
  margin: 3px;
  background-color: var(--alice-blue);
  color: var(--text);
  border-radius: 5px;
  border-color: transparent;
  cursor: pointer;
}
.gender-radio {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.badge-radio {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.badge-senior {
  padding: 3px 15px;
  font-size: 1rem;
  background-color: var(--malachite);
  color: var(--text);
  border-radius: 5px;
}
.badge-info {
  padding: 3px 15px;
  font-size: 1em;
  font-weight: 300;
  background-color: var(--electric-blue);
  color: var(--text);
  border-radius: 5px;
}
.badge-info:hover {
  background-color: var(--columbia-blue);
  color: var(--text);
  cursor: pointer;
}
.badge-keyword-danger {
  padding: 3px 15px;
  font-size: 1em;
  margin: 3px;
  background-color: red;
  color: white;
  border-radius: 5px;
  border-color: transparent;
}
.badge-keyword-danger:hover {
  border: solid 3px #ccc;
}
.badge-keyword-warning {
  padding: 3px 15px;
  font-size: 1em;
  margin: 3px;
  background-color: #FFA500;
  border-radius: 5px;
  border-color: transparent;
}
p {
  font-size: 1.3em;
}
ul {
  font-size: 1.3em;
}

ol {
  list-style-type: none;
  counter-reset: elementcounter;
}
.dimensionScore {  
  font-weight: 700;
  font-family: 'Titillium+Web', sans-serif;
  font-size: 5em;
}


.indicator-list li {
  font-size: 1.2em;
  display: inline-block;
}
.line {
  border-color: #aab2d0;
  border-width: .5px;
  border-style: dashed;
}

.section {
  /*background-color: #DBE4EE;*/
  border-radius: 10px;
}


#button-upgrade {
  background-color: var(--yinmn-blue);
  color: white !important;
  text-transform: none;
  text-shadow: none;
}
#button-upgrade:hover {
  background-color: var(--anti-flash-white);
  color: var(--text) !important;
}

#button-dismis {
  background-color: var(--columbia-blue);
  text-transform: none;
  text-shadow: none;
}

div textarea {
  box-sizing: border-box;
  max-width: 90%;
}

.feedback {
  width: 100%;
  font-weight: 300;
  /*color: white;*/
  background-color: white;
  border-radius: 10px;
  /*border: solid #aab2d0 1px;*/
}

#dimDescription {
  font-size: 1rem;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;        /* Required for line clamping */
  -webkit-line-clamp: 3;       /* Number of lines to show */
  line-clamp: 3;               /* Standard property for compatibility */
  -webkit-box-orient: vertical; /* Required for line clamping */
  line-height: 1.5;            /* Adjust based on your font and spacing needs */
  max-height: calc(1.5em * 3); /* Control the maximum height based on line count */
}

textarea {
  border-style: dashed;
  border-radius: 10px;
  border-color: #aab2d0;
}

.button-feedback {
  background-color: #0AE7FF !important;
  text-transform: none;
  text-shadow: none;
  color: var(--text) !important;
}

.chartable {
  cursor: pointer;
}

div[id$="extraTallChart"] {
  height: 60vh;
  width: 100%;
  display: block;
  box-sizing: border-box;
}


div[id$="tallChart"] {
  height: 45vh;
  width: 100%;
  display: block;
  box-sizing: border-box;
}

div[id$="lgChart"] {
  height: 35vh;
  width: 100%;
  display: block;
  box-sizing: border-box;
}

div[id$="mdChart"] {
  height: 28vh;
  width: 100%;
  display: block;
  box-sizing: border-box;
}

div[id$="smChart"] {
  height: 15vh;
  width: 100%;
  display: block;
  box-sizing: border-box;
}

/* Chart size classes */

.extraTallChart {
  height: 70vh;
  width: 100%;
  display: block;
  box-sizing: border-box;
}

.tallChart {
  height: 45vh;
  width: 100%;
  display: block;
  box-sizing: border-box;
}

.lgChart {
  height: 35vh;
  width: 100%;
  display: block;
  box-sizing: border-box;
}

.mdChart {
  height: 28vh;
  width: 100%;
  display: block;
  box-sizing: border-box;
}

.smChart {
  height: 12vh;
  width: 100%;
  display: block;
  box-sizing: border-box;
}

.xsChart {
  height: 12vh;
  width: 100%;
  display: block;
  box-sizing: border-box;
}

.mdAppChart {
  min-height: 250px !important;
  height: 25vh;
  width: 100%;
  display: block;
  box-sizing: border-box;
}
.plotting {
  font-size: .8rem;
  color: #F0002C;
}

.not-plotting {
  font-size: .8rem;
  color: var(--text);
}

.dimension-image {
  max-height: 14vh;       /* Limits height relative to viewport */
  width: 100%;            /* Makes the SVG scale to its container */
  height: auto;           /* Keeps aspect ratio */
  display: block;         /* Removes bottom whitespace on inline SVGs */
  object-fit: contain;    /* Ensures it scales without cropping */
}

.tooltip-inner {
  max-width: 250px;
  padding: 0.25rem 0.5rem;
  text-align: center;
  background-color: #bfe6c3;
  border-radius: 0.25rem;
}

#ovOneIndex {
  color: var(--text);
  font-size: 4rem;
}

ul.location-list {
  font-size: .8em;
  color: var(--text);
  list-style-type: none;
  margin: 0;
  padding-left: 10px;

}
.icon-line2-pointer {
  color: var(--aerospace-orange);
  font-weight: 600;
}
.tilt-up {
  rotate: 30deg;
  font-size: 1.3rem;
  color: var(--malachite);
}
.tilt-down {
  rotate: 320deg;
  font-size: 1.3rem;
  color: var(--aerospace-orange);
}



/* My styles */

.orcid_link {
  color: #A6CE39;
  /*background-color: #A6CE39;*/
  border-radius: 0.25rem;
  padding: 0.2rem 0.4rem;
  font-size: 0.875rem;
  text-align: center;
}

.pdf_link {
  color: white;
  background-color: #E2513F;
  border-radius: 0.25rem;
  padding: 0.2rem 0.4rem;
  text-align: center;
}

.pdf_link:visited {
  color: white;
}

.xlsx_link {
  color: white;
  background-color: #4CAF51;
  border-radius: 0.25rem;
  padding: 0.2rem 0.4rem;
  text-align: center;
}

.xlsx_link:visited {
  color: white;
}

.bibtex_link {
  color: black !important;
  background-color: #E6E6F9;
  border-radius: 0.25rem;
  padding: 0.2rem 0.4rem;
  text-align: center;
}

.bibtex_link:visited {
  color: white;
}

.ris_link {
  color: white;
  background-color: var(--yinmn-blue);
  border-radius: 0.25rem;
  padding: 0.2rem 0.4rem;
  text-align: center;
}

.ris_link:visited {
  color: white;
}

sup.phd_mark {
  color: white;
  background-color: var(--malachite);
  border-radius: 0.25rem;
  padding: 0.15rem 0.3rem;
  font-size: 0.7rem;
  text-align: center;
}

td.selected {
  background-color: #fcffcd;
}

.main_author_profile {
  color: white;
  background-color: #ecd078;
  border-radius: 0.25rem;
  padding: 0.35rem 0.55rem;
  font-size: 0.8rem;
  text-align: center;
}

.secondary_author_profile {
  color: #ecd078;
  background-color: white;
  border: 1px solid #ecd078;
  border-radius: 0.25rem;
  padding: 0.3rem 0.5rem;
  font-size: 0.8rem;
  text-align: center;
  cursor: pointer;
}

/*====== Count down to release ========*/
.release-day {
  font-size: 7vh;
  font-family: 'Titillium';
}
.release-day-subtitle {
  font-size: 2.5vh;
  font-family: Titillium, sans-serif;
}
#countdown {
  font-family: Titillium, sans-serif;
  text-align: center;
  padding: 20px;
  background-color: var(--electric-blue);
  border-radius: 5px;
  margin: auto;
}
.countdown-number {
    font-size: 6em;
    font-weight: 700;
    line-height: 4rem;
    padding-top: 1.5rem;
}

.countdown-label {
  font-size: 2.5em;
  font-weight: 400;
  padding-bottom: .8rem;
}

#countdown-days {
    color: #ff4500;
}
.value-proposition-list {
  list-style-type: none;
}
.highlight-check {
  color: var(--malachite);
  font-size: 1.5rem;
}
.discount-early-birds {
  text-decoration: line-through;
  font-size: 1.7rem;
  padding-top: 1.3rem;
}
.promotion-early-birds {
  color: white;
  background-color: var(--aerospace-orange);
  padding-bottom: .7rem;
  border-radius: 5px;
}
#countdown {
    transition: all 0.3s ease-in-out; /* Smooth transition for position change */
}

.supporters {
  border-bottom: solid 1px var(--border);
}
.sponsored-created {
  color: var(--malachite);
  font-weight: 700;
}
.Innovate-stars {
  font-size: .7rem;
}
#primary-menu > ul.one-page-menu > li.language > a {
  text-decoration: none;
  text-transform: none;
  color: var(--aerospace-orange) !important;
  font-weight: 300;
}

#primary-menu > ul.one-page-menu > li.disabled a {
  cursor: not-allowed;
  color: grey !important;
}
tr[id^="author_"] > td > a {
  color: var(--text) !important;
}
tr[id^="organization_"] > td > a {
  color: var(--text) !important;
}
tr[id^="location_"] > td > a {
  color: var(--text) !important;
}
tr[id^="document_"] > td > a {
  color: var(--text) !important;
}
div[id^="author_affiliation"] > a {
  color: var(--text) !important;
}
span[id^="author_affiliation"] > a {
  color: var(--text) !important;
}
.support-sponsorship {
  background-color: var(--electric-blue);
}
div.support-sponsorship > h3 > a {
  color: var(--text) !important;
}
/*=================== benchmarking and plans table ===========*/

.institution-benchmark-title {
  margin-top: 2rem;
}

.institution-benchmark-legend {
  font-size: 0.9rem;
}

.institution-benchmark-legend h3 {
  font-size: 1.05rem;
}

.institution-benchmark-legend p {
  margin-bottom: 0.5rem;
}

.badge-institution-selected {
  background-color: var(--malachite);
  color: #fff;
}

.institution-benchmark-findings-table {
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.9rem;
}

.institution-benchmark-findings-table th {
  white-space: nowrap;
}

.institution-benchmark-findings-table tbody tr[data-role="main"] td {
  background: rgba(0, 191, 21, 0.08);
}

.institution-benchmark-findings-table tbody tr[data-role="main"] td:first-child {
  border-left: 3px solid var(--malachite);
}

.institution-benchmark-selected-column .institution-subfield-column-label {
  color: var(--malachite);
  font-weight: 600;
}

.institution-subfield-column-label {
  display: inline-block;
  max-width: 11rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: bottom;
}

.subfield-benchmark-table-wrap {
  width: 100%;
}

#subfieldBenchmarkDataTable {
  width: 100% !important;
}

.data-box0 > h3.mb-2 {
  border-bottom: solid 1px var(--border);
}

/* bar style */
.score-cell {
  background-repeat: no-repeat;
  background-size: var(--fill-percentage) 100%;
  background-image: linear-gradient(to right, var(--columbia-blue), var(--columbia-blue));
  background-position: left center;
}
/* chart like cell */
.indicator-score-cell {
  --fill-percentage: 0%;
  --fill-color: #9bd3f7; /* Columbia blue */
  
  background-repeat: no-repeat;
  background-position: left center;
  background-size: var(--fill-percentage) 100%;
  background-image: linear-gradient(to right, var(--fill-color), var(--fill-color));
  
  height: 1.4em;
  padding-left: 6px;
  transition: background-size 1s ease;
  border-right: solid 1px var(--border);
  border-bottom: solid 1px var(--border);
}
.authorName:hover {
  color: var(--text);
  background-repeat: no-repeat;
  background-size: var(--fill-percentage) 80%;
  background-image: linear-gradient(to right, var(--powder-blue), var(--powder-blue));
  background-position: left center;
  cursor: pointer;
}

/* Highlights selected author  */
.highlighted-cell {
  color: var(--text) !important;
  background-repeat: no-repeat;
  background-size: var(--fill-percentage) 80%;
  background-image: linear-gradient(to right, var(--powder-blue), var(--powder-blue));
  background-position: left center;
}

/* Highlights current user */
.benchmark-highlight {
  color: var(--text) !important;
  background-repeat: no-repeat;
  background-size: var(--fill-percentage) 80%;
  background-image: linear-gradient(to right, var(--electric-blue), var(--electric-blue));
  background-position: left center;
}

/* Highlights users with values within 5% range */
.tolerance-highlight {
  background-color: var(--alice-blue);
  border-left: solid 3px var(--malachite);
  border-right: solid 3px var(--malachite);
}

#benchmarkTablebenchmarkTableOneIndex td,
#benchmarkTableSciCommunitySupraDimension td {
  width: 17%;
}

#benchmarkTable_dimension_impact_excellence td,
#benchmarkTable_dimension_activity td,
#benchmarkTable_dimension_mobility_international_collaboration td,
#benchmarkTable_dimension_community_support td,
#benchmarkTable_dimension_community_recognition td,
#benchmarkTable_dimension_public_outreach td,
#benchmarkTable_dimension_fundraising td {
  width: 10%;
}

#benchmarkTable_dimension_transference td,
#benchmarkTable_dimension_leadership td,
#benchmarkTable_dimension_openness td {
  width:7%;
}

.border-left {
  border-left: solid 1px var(--border);
} 
table[id^="benchmarkTable"] {
  width: 100%;
}

table[id^="benchmarkTable"] th {
  padding: 5px;
}
table[id^="benchmarkTable"] td {
  color: var(--border);
  text-align: left;
  font-size: .7rem;
  padding: .3rem ;
  border-top: solid 1px var(--anti-flash-white);
  border-bottom: solid 1px var(--anti-flash-white);
  margin-top: 1rem;
}

table > tbody > tr > td.authorName {
  color: var(--text) !important;
  font-size: .8rem;
  line-height: .8rem;
}

.plan-features-included {
  color: var(--malachite) !important;
}
.plan-features-excluded {
  color: red !important;
}
div.pricing-price > div > span.badge {
  font-size: .8rem;
}
.pricing-price-small {
  font-size: 2rem;
}
#featuresTable > thead > tr:nth-child(1) > td:nth-child(2) {
  background-color: var(--columbia-blue);
  text-align: center;
  text-transform: uppercase;
}
#featuresTable > thead > tr:nth-child(1) > td:nth-child(3) {
  background-color: var(--powder-blue);
  text-align: center;
  text-transform: uppercase;
}
#featuresTable > thead > tr:nth-child(1) > td:nth-child(4) {
  background-color: var(--ucla-blue);
  color: white;
  text-align: center;
  text-transform: uppercase;
}
#featuresTable > thead > tr:nth-child(1) > td:nth-child(5) {
  background-color: var(--yinmn-blue);
  color: white;
  text-align: center;
  text-transform: uppercase;
}
#featuresTable > tbody > tr > td:nth-child(n+2) {
  text-align: center;
}
#indicatorsTable > tbody > tr > th {
  background-color: var(--columbia-blue) !important;
}

.form-control::placeholder {
  color: var(--silver);
}

a.delete_icon {
  font-size: 1.2rem;
  color: #000000;
}


.is-invalid {
  border-color: #dc3545;
  padding-right: calc(1.5em + 0.75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");
  background-repeat: no-repeat;
  background-position: center right calc(0.375em + 0.1875rem);
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

.is-invalid {
  border-color: #28a745;
  padding-right: calc(1.5em + 0.75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center right calc(0.375em + 0.1875rem);
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

/*================ search table ======================*/
table.cart > tbody > tr > td.select-peer {
  vertical-align: top !important;
  padding-top: 1.5rem !important;
}
td.select-peer > input[type=checkbox] {
  width: 20px;
  height: 20px;
}

/* ONE index circle in the search list*/
.i-rounded:hover,
.i-circled:hover,
.i-bordered:hover {
  background-color: var(--electric-blue) !important;
}

.testi-content > p {
  font-size: 1rem;
}

.call-to-action {
  color: var(--text);
  background-color: var(--electric-blue);
  text-align: center;
  font-size: 1.2rem;
  padding: 1rem .5rem;
  margin: 3rem;
  border-radius: 10px;
}
div.postcontent > div.section > div.container > div > p.post-paragraph {
  font-size: 1.2rem !important;
}
.magnify-text-1 {
  font-size: 1.5rem;
  line-height: 1;
}
.magnify-text-2 {
  font-size: 2rem;
  line-height: 1;
}
.magnify-text-3 {
  font-size: 3rem;
}
.magnify-text-4 {
  font-size: 4rem;
}
.cookie {
  background-color: var(--malachite);
  color: var(--text);
  border: solid 1px white;
  padding: 25px;
  margin: 15px;
  font-size: 1.3rem;
  text-align: center;
  z-index: 2000;
  border-radius: 10px;
}


.boxes-grid {
  list-style: none;
}

.boxes-grid li {
  width: 50%;
  padding: 25px;
  float: left;
}

.box {
  color: var(--text);
  border-color: silver;
  border-width: 1px;
  border-radius: 10px;
  padding: 1rem;
  margin: 1rem;
  text-align: center;
}

.clamp-text-multiple-lines {
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3; /* this code clamps based on specified lines */
  line-clamp: 3;
  display: -webkit-box;
}

.description-box {
  background-color: var(--alice-blue);
  border-left: 4px solid var(--powder-blue);
  border-radius: 12px;
  padding: 1.5rem;
  margin-top: 1rem;
  margin-bottom: 2rem;
  position: relative;
  box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.description-box .showLongParagraph {
  margin-top: 0.5rem;
}


#title-container {
  display: flex;
  align-self: center;
  padding: auto;
  margin-right: 40px; 
}

#title {
  font-size: .5rem;
  font-weight: 700;
  color: var(--text);
  text-transform: uppercase;
  display: flex;
  align-self: center;
  padding: auto;
}

#content > div.content-wrap > div.container {
  padding: 0 20px;
}

.icon-magic1 {
    font-size: 24px;
    color: var(--text);
    margin: 10px;
    transition: color 0.3s;
    background-color: #ffc107; 
    /*border: 2px solid var(--text); */
    border-radius: 50%; /* Make it a circle */
    padding: 6px 12px; /* Add padding to ensure the icon fits well inside the circle */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box; /* Ensure padding and border are included in the element's total width and height */
}

.icon-magic1:hover {
    color: var(--aerospace-orange); 
    background-color: var(--electric-blue); 
}
.interpretation {
  font-size: 1rem;
  margin-left: 1rem;
}

.close {
  color: white;
}
.close:hover {
  color: var(--aerospace-orange)
}


/*  Indicator styles  */

.indicator {
  font-size: 42px;
  font-weight: 600;
  font-family: Titillium+Web, sans-serif;
}

.indicator_small {
  font-size: 1.1rem;
}



a.share_link {
  color: var(--columbia-blue) !important; 
}

a.share_link:hover {
  color: var(--text) !important;
}


a.delete_link {
  color: white !important; 
}

a.delete_link:hover {
  color: var(--columbia-blue) !important;
}


a.link_as_text,
a.link_as_text:visited {
  color: var(--text) !important; 
  font-weight: 300 !important;
}


/* -----------------------------------------------------------
	SWITCH 
-------------------------------------------------------------- */


input.switch-toggle + label {
	padding: 2px;
	width: 60px;
	height: 30px;
	background-color: var(--columbia-blue);
	-webkit-border-radius: 15px;
	-o-border-radius: 15px;
	border-radius: 15px;
}

input.switch-toggle-flat + label:after { background-color: white;}
input.switch-toggle + label:before { background-color: var(--ucla-blue);}

input.switch-toggle-flat:checked + label:after {
	margin-left: 30px;
	background-color: var(--electric-blue);
}

.reset-button {
  background-color: #81A4CD !important;
  font-size: .9em;
  color: white;
  padding: 0px 20px;
  border-color: var(--columbia-blue);
  border-radius: 15px;
  text-shadow: none;
}
#hrfilter {
}

.fancy-title.title-border-color:before {
  border-top: 1px solid var(--border);
}

/*===============  indicator list ================ */
ul.indicator-list {
  flex-wrap: wrap;              /* Allow the items to wrap onto new lines */
  justify-content: flex-start;   /* Align items to the left */
  list-style: none;              /* Remove bullet points (optional) */
  padding: 0;                   /* Remove default padding */
  margin: 0;  
}
ul.indicator-list > li {
  font-size: 0.8rem;            /* Adjust font size */
  margin: 5px;                  /* Add some spacing between items */
  white-space: nowrap;          /* Prevent the text from breaking within each item */
  overflow: hidden;             /* Hide overflow content if any */
  text-overflow: ellipsis;
  line-height: 1.5;
  margin: 5px 7px;
  /*transition: transform 0.3s ease, background-color 0.3s ease; */
}
#shop > .badge-keyword {
  background-color: var(--alice-blue);
}
#shop > li:hover,
#shop > li:focus {
  transform: scale(1.2);
  color: white;
  background-color: var(--ucla-blue);
  cursor: pointer;           /* Change cursor to pointer on hover or focus */
  outline: none; 
}

#hrfilter > div > span.badge-keyword {
  color: white;
  background-color: var(--ucla-blue);

} 

/* Selected buttons for quick filters */

.badge-unselected {
  cursor: pointer;
  font-size: 1em;
  margin: 3px;
  background-color: var(--alice-blue);
  color: var(--text);
  border-radius: 5px;
  border-color: var(--text);
}

.badge-selected, .badge-selected:hover {
  cursor: pointer;
  font-size: 1em;
  margin: 3px;
  background-color: var(--yinmn-blue);
  color: white;
  border-radius: 5px;
  border-color: transparent;
}
.badge-selected::after {
  content: "✔";
  position: absolute;
  right: 0.6rem;
  font-size: 0.9em;
  color: white;
  transform: scale(0.6);
  opacity: 0;
  animation: checkmark-fade 0.25s forwards ease-out;
}
.badge-autocomplete {
  font-size: 0.8em;
  font-weight: 300;
  margin: 3px;
  background-color: var(--columbia-blue);
  color: var(--text);
  border-radius: 5px;
  border-color: var(--text);
}

#exportDataSubtotalsBtn.badge-senior,
#exportFieldSubtotalsBtn.badge-senior {
  color: white;
  font-weight: 300;
  border: 1px solid var(--border);
  border-radius: 25;
  padding: .4rem;
}

.md {
  font-size: 1em;
}

.lg {
  font-size: 1.2em; padding: 0.5em;
}

/* Badges for org attributes */

.badge-attr {
  font-size: 0.8em;
  font-weight: 300;
  margin: 3px;
  border-radius: 5px;
}

.badge-attr-excellent {
  background-color: #bdedfc;
  color: var(--polynesian-blue);
  border-color: var(--polynesian-blue);
}

.badge-attr-good {
  background-color: #c2f7be;
  color: var(--text);
  border-color: var(--text);
}

.badge-attr-regular {
  background-color: #ffdfb2;
  color: var(--text);
  border-color: var(--text);
}

.badge-attr-poor {
  background-color: #f4d2d2;
  color: var(--highlight2);
  border-color: var(--highlight2);
}

.badge-attr-unknown {
  background-color: var(--light);
  color: var(--gray);
  border-color: var(--gray);
}

.badge-warning {
  color: var(--text) !important;
  background-color: #ffc108ca;
  display: inline-block;
  padding: 0.25em 0.4em;
  font-size: 1em;
  font-weight:400;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  border: 1px solid var(--border);
  border-radius: 0.25rem;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.numerical-icon {
  font-size: 4rem;             /* Make the number 4 times the base rem size */
  width: 4.5rem;               /* Width of the circle */
  height: 4.5rem;              /* Height of the circle */
  display: flex;               /* Flexbox for centering */
  align-items: center;         /* Center vertically */
  justify-content: center;     /* Center horizontally */
  border-radius: 50%;          /* Makes it a circle */
  background-color: var(--electric-blue);   /* Background color for the circle */
  color: white;              /* Text color */
  font-weight: bold;           /* Make the number bold */
}

.numerical-icon-2 {
  font-family:Arial, Helvetica, sans-serif;
  font-size: 4rem;             /* Make the number 4 times the base rem size */
  width: 4.5rem;               /* Width of the circle */
  height: 4.5rem;              /* Height of the circle */
  display: flex;               /* Flexbox for centering */
  align-items: center;         /* Center vertically */
  justify-content: center;     /* Center horizontally */
  border-radius: 50%;          /* Makes it a circle */
  background-color: white;   /* Background color for the circle */
  color: var(--ucla-blue);              /* Text color */
  font-weight: bold;           /* Make the number bold */
}

div.negative > h2,
div.negative > p {
  color: white;
}

/* increase and decresa arrow icons */ 
i.icon-arrow-circle-up {
  color: var(--malachite);
  rotate: 30deg;
}
i.icon-arrow-circle-down {
  color: red;
  rotate: -330deg;
}

#indicatorDefinitionsList {
  font-size: 1rem;
  padding: 2rem;
}
#indicatorsDefinition:hover,
#humanResourcesIndicators:hover {
  cursor: pointer;
}
.logo-org {
  max-width: 100%; 
  height: auto; 
  max-height: 80px;
  display: block; /* Prevents inline image whitespace issues */
  object-fit: contain; /* Ensures the image is scaled without cropping */
}
#instReportFeatures > h2 {
  font-size: 1.5rem;
  color: white;
  font-weight: 300;
}
#instReportFeatures > ol > li {
  font-size: 1.2rem;
  color: white;
  font-weight: 300;
}
.malachite {
  color: var(--malachite);
  font-weight: 300;
  padding: 0 5px;
}
.compact-table {
  text-align: left;
  font-size: .7rem;
  padding: .3rem ;
  width: 100%;
  border-top: solid 1px var(--text);
  border-bottom: solid 1px var(--text);
  margin-top: 1rem;
}

.compact-table > thead > tr > th {
  text-align: center;
  padding: 3px;
}
.compact-table > tbody > tr > td {
  color: var(--text);
  padding-top: 2px;
  padding-bottom: 2px;
}
.table-compact {
  font-size: .9rem; /* Reduce font size */
  line-height: 1.1rem;   /* Tighten line spacing */
  width: 100%;
  border-collapse: collapse;
  margin: 0; /* Remove extra margins */
}
.table-utlra-compact {
  font-size: .8rem; /* Reduce font size */
  line-height: 1rem;   /* Tighten line spacing */
  width: 100%;
  border-collapse: collapse;
  margin: 0; /* Remove extra margins */
}
.table-compact tr td {
  padding-top: .3rem;
  padding-bottom: .3rem;
}
.table-ultra-compact tr td {
  padding-top: .3rem;
  padding-bottom: .3rem;
}
#regionalDistribution tr td {
  padding-top: .3rem;
  padding-bottom: .3rem;
}
#regionalDistributionContainer {
  max-height: 520px;
  overflow-y: auto;
}
#regionalDistribution thead th {
  position: sticky;
  top: 0;
  background: #fff;
  z-index: 1;
}
/* Safe default before the treegrid plugin (loaded from a CDN) initializes,
   and a fallback if it never does: only root rows show until JS expands a
   branch. The plugin own show/hide uses inline styles, which win over
   this class-based rule once it runs. */
#regionalDistribution tbody tr:not([data-treegrid-root]) {
  display: none;
}
#chartContainer {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 30; /* Ensure it appears above the map */
  background: rgba(255, 255, 255, 0.99); /* Semi-transparent white background */
  border-radius: 8px; /* Rounded corners */
  padding: 10px; /* Padding inside the container */
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); /* Subtle shadow for better visibility */
}

#avgAuthorsChart, #avgOneIndexChart {
  width: 370px;
  height: 50px;
}
#institutionTable tr td a {
  color: var(--text);
}

.dataTables_wrapper .dataTables_scrollBody .right-align {
  text-align: right;
}
.regular {
  font-size: 1.1rem;
  font-weight: 300;
  padding-left: 1.5rem;
}
.cohort-box {
  background-color: white;
  /*color: white;*/
  flex-direction: column;
  flex: 1;
}
ul.no-bullets {
  list-style-type: none; /* Remove bullets */
  padding: 0; /* Remove padding */
  margin: 0; /* Remove margins */
}

#fundingDataTable td{
  padding-top: .1rem;
  padding-bottom: .1rem;
}

#projectsScivoc td {
  padding-top: .1rem;
  padding-bottom: .1rem;
}


.autocomplete-suggestions {
  top: 100%;
  position: absolute;
  background: white;
  border: 1px solid #ccc;
  max-height: 200px;
  overflow-y: auto;
  z-index: 1000;
}

.autocomplete-suggestion {
  padding: 8px;
  cursor: pointer;
}

.autocomplete-suggestion:hover {
  background: #f0f0f0;
}

/* font size*/
.f15x {
  font-size: 1.5rem;
}
.f17x {
  font-size: 1.7rem;
}
.f2x {
  font-size: 2rem;
}
.f25x {
  font-size: 2.5rem;
}
.f3x {
  font-size: 3rem;
}
.f35x {
  font-size: 3.5rem;
}
/*.icon-line2-info {
  outline: none; /* optional: prevents the browser's default focus outline 
  cursor: default; /* default cursor 
  transition: color 0.2s ease;
}*/

.info-element:hover {
  font-size: 1.2rem;
  color: 'red';      /* changes text/icon color on focus #2d5583 */ 
  cursor: pointer;     /* shows pointer instead of default arrow */
}


/*=================  trajectory threshold slider ====================*/

#trajectoryThresholdSlider {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 6px;
  background: #2d5583;
  border-radius: 3px;
  outline: none;
}

/* Chrome & Safari: Track */
#trajectoryThresholdSlider::-webkit-slider-runnable-track {
  height: 6px;
  background: var(--yinmn-blue);
  border-radius: 3px;
}

/* Chrome & Safari: Thumb */
#trajectoryThresholdSlider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 16px;
  height: 16px;
  background: var(--columbia-blue);
  border: solid 1px var(--yinmn-blue);
  border-radius: 50%;
  cursor: pointer;
  margin-top: -5px; /* aligns with track */
}

/* Firefox: Track */
#trajectoryThresholdSlider::-moz-range-track {
  height: 6px;
  background: var(--columbia-blue);
  border-radius: 3px;
}

/* Firefox: Thumb */
#trajectoryThresholdSlider::-moz-range-thumb {
  width: 16px;
  height: 16px;
  background: var(--columbia-blue);
  border: none;
  border-radius: 50%;
  cursor: pointer;
}

.button.button-mini.button-circle { 
  color: var(--text);
  text-shadow: none;
  background-color: var(--columbia-blue);
  border-radius: 5px;
  border: solid 1px var(--border);
}
.button.button-mini.button-circle:hover {
  background-color: var(--ucla-blue) !important;
  color: white;
}
.button.button-mini.button-circle.selected {
  background-color: #48D569 !important;
}
.button.button-mini.button-circle.active {
  background-color: #48D569 !important;
}
span.activeFilter {
  background-color: #48d569aa;
  padding: 1px 6px;
  border-radius: 3px;
  border-color: white;
}

#fieldRankingTable, #regionsTable {
  max-height: 30vh;
  overflow-y: auto;
}
#subfieldRankingTable {
  max-height: 30vh;
  overflow-y: auto;
}

.ranking-table tbody tr.selected {
  background-color: #48D569 !important;
  font-weight: bold;
}

.ranking-table tbody tr:hover {
  cursor: pointer;
  background-color: var(--columbia-blue);
}

/* css for data tables */

#researchersData.table.dataTable {
  text-align: left;
  font-size: .7rem;
  padding: .3rem ;
  width: 100%;
  margin-top: 1rem;
}


#researchersData.dataTable > thead > tr > th {
  text-align: center;
}
#researchersData.dataTable > tbody > tr > td {
  color: var(--text);
  padding: 2px;
}

a {
  color: var(--text);
  /*text-decoration: none;
  font-weight: 300;*/
}


#dtExcelButton {
  background-color: #2d5583;
  color: white;
  border: none;
  padding: 3px 10px;
  border-radius: 5px;
  font-size: 0.8rem;
}

#dtExcelButton:hover {
  background-color: #4377b1;
}



.roadmap-table tbody tr:hover {
  cursor: pointer;
  background-color: #f0f0f0;
}
.icon-line2-info {
  outline: none; /* optional: prevents the browser's default focus outline */
  cursor: default; /* default cursor */
  transition: color 0.2s ease;
}

.icon-line2-info:focus {
  color: #2d5583;      /* changes text/icon color on focus */
  cursor: pointer;     /* shows pointer instead of default arrow */
}

#fieldRankingTable, #regionsTable {
  max-height: 30vh;
  overflow-y: auto;
}
#subfieldRankingTable {
  max-height: 30vh;
  overflow-y: auto;
}

.ranking-table tbody tr.selected {
  background-color: #48D569 !important;
  font-weight: bold;
}

.ranking-table tbody tr:hover {
  cursor: pointer;
  background-color: var(--columbia-blue);
}

.clickable-region {
cursor: pointer;
}

.clickable-region.selected {
  background-color: #48D569;
  padding: .2rem .4rem;
  font-weight: bold;
}
/*#regionContainer {
  /*background-color: #4377b1;
  color: white;
}*/
/* Base */
#trajectoryThresholdSlider {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 6px;
  background: #2d5583;
  border-radius: 3px;
  outline: none;
}

/* Chrome & Safari: Track */
#trajectoryThresholdSlider::-webkit-slider-runnable-track {
  height: 6px;
  background: var(--yinmn-blue);
  border-radius: 3px;
}

/* Chrome & Safari: Thumb */
#trajectoryThresholdSlider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 16px;
  height: 16px;
  background: var(--columbia-blue);
  border: solid 1px var(--yinmn-blue);
  border-radius: 50%;
  cursor: pointer;
  margin-top: -5px; /* aligns with track */
}

/* Firefox: Track */
#trajectoryThresholdSlider::-moz-range-track {
  height: 6px;
  background: var(--columbia-blue);
  border-radius: 3px;
}

/* Firefox: Thumb */
#trajectoryThresholdSlider::-moz-range-thumb {
  width: 16px;
  height: 16px;
  background: var(--columbia-blue);
  border: none;
  border-radius: 50%;
  cursor: pointer;
}

.flex-list {
  display: flex;
  flex-wrap: wrap;         /* allow wrapping to next line */
  gap: 1rem;               /* spacing between items */
  list-style-type: none;   /* optional: remove default bullets */
  padding-left: 0;         /* reset padding if needed */
}

.flex-list li {
  background-color: var(--columbia-blue);
  flex: 1 1 150px;          /* grow/shrink, base width */
  min-width: 120px;         /* minimum width before wrapping */
}

.one-focus:hover {
  border-radius: 5px;
  background-color: var(--columbia-blue);
  cursor: pointer;
  z-index: 10;
}
.one-focus:focus {
  background-color: var(--columbia-blue);
  cursor: pointer;
}
.progress-bar {
  font-weight: 600;
  background-color: var(--malachite);
}

.form-control {
  font-size: 0.9rem;
  padding: 0px 2px;
}
.dimension-form {
  display: flex;
  flex-wrap: wrap;         /* Allows wrapping to next line if screen is narrow */
                 /* gap: 1rem; Adds space between inputs */
  align-items: flex-start; /* Align inputs to top of row */
}

.dimension-form .form-control {
  flex: 1 1 auto;           /* Allow inputs to grow/shrink as needed */
  min-width: 200px;         /* Prevent inputs from becoming too small */
  max-width: 600px;         /* Optional: control maximum width */
}

/* Style input fields on focus */
.dimension-form input:focus,
.dimension-form textarea:focus,
.dimension-form select:focus {
  background-color: #eef6fc;    /* Light blue background on focus */
  border-color: #3399cc;        /* Optional: blue border on focus */
  outline: none;                /* Remove default outline */
  box-shadow: 0 0 0 2px rgba(51, 153, 204, 0.2); /* Optional: glow effect */
}
.no-text-tranformation {
  text-transform: none;
}

#fieldToggleControls > span.badge-selected {
  background-color: var(--ucla-blue);
}

.fields-career-stage-badge {
  background-color: var(--alice-blue);
  border-color: var(--border);
  border-left: 0.45rem solid var(--columbia-blue);
  color: var(--text);
  cursor: pointer;
  font-size: 1em;
  margin: 3px;
  padding: 0.35rem 0.65rem;
}

.fields-career-stage-badge:hover {
  background-color: var(--columbia-blue);
  color: var(--text);
}

.fields-career-stage-badge-selected,
.fields-career-stage-badge-selected:hover {
  background-color: var(--yinmn-blue);
  border-color: var(--malachite);
  box-shadow: none;
  color: white;
}

.fields-analysis-counter {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.4;
}

.fields-analysis-warning {
  background-color: var(--alice-blue);
  border-left: 0.25rem solid var(--malachite);
  color: var(--text);
  padding: 0.45rem 0.7rem;
}

.active-area {
  background-color: var(--alice-blue);
}

.icon-line2-plus {
  cursor: pointer;
  font-size: 1.5rem;
  padding-top: 1.2rem;
}
.icon-line2-plus:hover {
  color: #48D569;
}

.drag-handle {
  cursor: grab;
}
.sortable-ghost {
  opacity: 0.5;
}
#rateButton > a > div > i.icon-star {
  color: var(--aerospace-orange);
}

.badge-pill {
  border: solid 1px var(--border);
}

.needs-review {
  background-color: #fff8e1;
}
.excluded {
  opacity: 0.5;
  text-decoration: line-through;
}
.text-danger:hover,
.btn-outline-danger:hover {
  color: white !important;
}
.btn-outline-success:hover {
  color: var(--text) !important;
  background-color: #28a745 !important;
}
.btn-outline-success1 {
  color: var(--text) !important;
  border: solid 1px var(--yinmn-blue) !important;
}
.btn-outline-success1:hover {
  color: white !important;
  background-color: var(--yinmn-blue) !important;
}
.btn-outline-success1.active {
  color: white !important;
  background-color: var(--yinmn-blue) !important;
}


.item_confirmed {
  background-color: #28a745;
  color: white;
}



/* css rules for the web CV*/
.cv-container {
  max-width: 800px;
  margin: 40px auto;
  padding: 40px;
  font-family: 'Georgia', serif;
  font-size: 14px;
  line-height: 1.6;
  color: #333;
}

.cv-container h1 {
  font-size: 28px;
  margin-bottom: 10px;
}

.cv-container h2 {
  font-size: 20px;
  margin-top: 30px;
  margin-bottom: 10px;
}

.cv-container h3 {
  font-size: 16px;
  margin-top: 20px;
  color: #444;
}

.cv-badge {
  display: inline-block;
  background: #e6ecf3;
  color: #333;
  font-size: 11px;
  padding: 2px 6px;
  margin-left: 8px;
  border-radius: 4px;
  font-weight: bold;
}

.drag-handle {
  cursor: move;
  color: #888;
  display: inline-block;
  margin-left: 10px;
}

.section-wrapper {
  border-left: 4px solid #eee;
  /*padding: 10px 20px;*/
  margin-bottom: 30px;
  background: #fdfdfd;
}

.section-wrapper.drag-over {
  border-color: #007bff;
  background-color: #f0f8ff;
}

.section-wrapper > p {
  font-size: 14px;
}

.cv-annex {
  margin-top: 60px;
  padding-top: 40px;
  border-top: 2px solid #ddd;
}

.cv-annex h2 {
  font-size: 20px;
  margin-top: 30px;
}
.cv-annex h3 {
  font-size: 18px;
  margin-top: 30px;
}
.cv-annex h4 {
  font-size: 14px;
  margin-top: 30px;
}

.annex-text {
  font-size: 14px;
  color: #555;
  line-height: 1.6;
  margin-bottom: 20px;
}

.framework-chart {
  display: block;
  max-width: 600px;
  margin: 20px auto 40px;
}

.indicator-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 30px;
}

.indicator-table th, .indicator-table td {
  padding: 8px 10px;
  border: 1px solid #ccc;
  text-align: left;
}

.indicator-table th {
  background: #f5f5f5;
  font-weight: bold;
}


.match-success {
  background-color: var(--fill-percentage);
  font-weight: 700;
}

.match-warning {
  background-color: #FFF8E2;
  font-weight: 500;
}

.item-excluded {
  text-decoration: line-through;
  color: #615f5f;
  background-color:#f2f4f5;
}

textarea.item-excluded {
  text-decoration: line-through;
  color: #615f5f;
  background-color:#f2f4f5;
}


/* keep the ℹ︎ tight with the label text */
.info-tip { font-weight: 600; text-decoration: none; line-height: 1; }
.info-tip:hover { text-decoration: none; }


#experts-search-query {
  width: 100%;
  height: 230px;
}

.file-drop-area {
  position: relative;
  height: 230px;
  width: 100%;  
  padding: 25px;
  border: 1px dashed var(--border);
  border-radius: 10px;
  background-color: white;
  transition: 0.2s;
}

.choose-file-button {
  color: white;
  background-color: var(--vista-blue);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 3px;
  padding: 8px 15px;
  margin-right: 10px;
  font-size: 1rem;
}

.file-message {
  font-size: small;
  font-weight: 300;
  line-height: 1.4;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.file-input {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  cursor: pointer;
  opacity: 0;
  
}




/* =========== badges on the author photo ================*/ 
#author-photo-container {
  position: relative; /* creates a positioning context */
  display: inline-block; /* keeps it sized to the image */
}

.profile-summary-page .profile-summary-photo-column {
  flex: 0 0 140px;
  max-width: 140px;
}

.profile-summary-page .author-photo-container {
  width: 100%;
  min-width: 0;
}

.profile-summary-page .author-photo-container .status-badges {
  top: 102px;
  right: -6px;
}

.profile-summary-page .author-photo-container .status-badge {
  width: 42px;
}

.integrity-badge {
  position: absolute;
  bottom: 8px;  /* or top: 8px; depending on your layout */
  right: 8px;
  width: 40px;
  height: 40px;
  z-index: 10;
  transition: transform 0.25s ease-in-out, box-shadow 0.25s ease-in-out;
  transform-origin: center;
  cursor: pointer;
}

.integrity-badge img {
  width: 100%;
  height: auto;
  border-radius: 50%;  /* optional for circular badge */
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
}

/* Zoom on hover or focus */
.integrity-badge:hover,
.integrity-badge:focus {
  transform: scale(3);
  box-shadow: 0 0 12px rgba(0, 0, 0, 0.3);
}

.badge-checkbox {
  font-size: 1em;
  margin: 3px;
  background-color: var(--alice-blue);
  color: var(--text);
  border-radius: 5px;
  border: solid 1px var(--border);
  cursor: pointer;
  position: relative;
  text-transform: none;
  user-select: none;
  transition: all 0.2s ease-in-out;
}

/* Hide the native checkbox/radio */
.badge-checkbox input[type="checkbox"],
.badge-checkbox input[type="radio"] {
  -webkit-appearance: none;
  appearance: none !important;
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

/* Checked badge using :has() */
.badge-checkbox:has(input[type="checkbox"]:checked),
.badge-checkbox:has(input[type="radio"]:checked) {
  background-color: var(--yinmn-blue);
  color: white;
  border-color: var(--yinmn-blue);
  box-shadow: 0 0 6px rgba(10, 231, 255, 0.6);
  padding-right: 1.8rem; /* room for the icon */
}

/* Checkmark icon when active */
.badge-checkbox:has(input[type="checkbox"]:checked)::after,
.badge-checkbox:has(input[type="radio"]:checked)::after {
  content: "✔";
  position: absolute;
  right: 0.6rem;
  font-size: 0.9em;
  color: white;
  transform: scale(0.6);
  opacity: 0;
  animation: checkmark-fade 0.25s forwards ease-out;
}

/* Animation */
@keyframes checkmark-fade {
  to {
    transform: scale(1);
    opacity: 1;
  }
}

/* Hover lift effect */
.badge-checkbox:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.feedback-dismissed {
  opacity: 0.55;
  position: relative;
}

.feedback-dismissed::before {
  content: "✕";
  color: #c0392b;
  font-weight: 700;
  position: absolute;
  top: 8px;
  right: 12px;
  font-size: 1rem;
}

.base-number {
  position: relative; /* establishes positioning context */
  display: inline-block;
  font-size: 2.4rem;
  font-weight: 600;
}

/* STATUS BADGES (overlay) */
.status-badges {
  position: absolute;
  top: 120px;
  right: 0px;
  display: flex;
  gap: 0;
}

.status-badge {
  width: 54px;
  height: auto;
  border-radius: 50%;
  background: white;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  cursor: pointer;
}

.status-badge + .status-badge {
  margin-left: -12px; /* slight overlap */
}

.status-badge:hover,
.status-badge:focus-visible {
  transform: scale(4);
  box-shadow: 0 4px 10px rgba(0,0,0,0.18);
}

.disabled {
  opacity: 0.5;
  cursor: not-allowed !important;
}

/* PROFILE BADGES (below photo) */
.profile-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
}

.profile-badge {
  width: auto;
  height: var(--profile-badge-height, 54px);
  border-radius: 50%;
  background: white;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  cursor: pointer;
}

.profile-badge + .profile-badge {
  margin-left: -12px; /* slight overlap */
}

.profile-badge:hover,
.profile-badge:focus-visible {
  transform: scale(4);
  box-shadow: 0 4px 10px rgba(0,0,0,0.18);
}

.badges-board .profile-badge:hover,
.badges-board .profile-badge:focus-visible {
  transform: none;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}

.profile-badges--compact .profile-badge + .profile-badge {
  margin-left: -8px;
}

.profile-badges--compact .profile-badge:hover,
.profile-badges--compact .profile-badge:focus-visible {
  transform: scale(4);
}




/* =========== end of badges on the author photo ================*/




/* style + position the score badge */
.score_context {
  position: absolute;
  top: -6px;
  right: -30px;
  border-radius: 50%;
  font-size: 0.7rem;
  font-weight: 600;
  padding: 15px;
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.score-high {
  background-color: var(--malachite);
  color: white; /* or any accent color */
}

.score-midhigh {
  background-color: var(--columbia-blue);
  color: var(--text); /* or any accent color */
}

.score-standard {
  background-color: white;
  color: var(--border)
}





/*=====================================*/
.card{border-radius:14px; padding:14px;}
.card + .card{margin-top:12px}
.btn-border{display:inline-flex; align-items:center; gap:8px; background:transparent; border:1px solid #1e293b; border-radius:10px; padding:8px 12px; cursor:pointer}
.btn-border[disabled]{opacity:.6; cursor:not-allowed}
.btn-border.primary{background:linear-gradient(90deg,#0ea5e9,#22d3ee); color:#02131d; border-color:#22d3ee; font-weight:700}
.btn-border.icon{padding:6px 8px}
.danger{color:var(--bad)}
.rounded{border-radius: 10px;}
ul[id^="skill"]{font-size: 1em;}

main{padding:22px;}
.wizard{max-width:1100px; margin:0 auto; display:grid; grid-template-columns: 280px 1fr; gap:18px}
.steps{position:sticky; top:76px; align-self:start}
.step{display:flex; align-items:center; gap:12px; padding:9px 10px; border-radius:10px; color:var(--muted); cursor:pointer; border:1px solid transparent}
.step.active{color:var(--ink); background:#0f172a; border-color:#1b2540}
.step .dot{width:10px;height:10px;border-radius:50%; background:#334155}
.step.ok .dot{background:var(--ok)}


.panel{background:transparent; border:1px solid #1a2339; border-radius:16px; padding:16px}
.panel h2{margin:0 0 6px 0}
.desc{color:var(--text); font-size:14px}


.item{border-top:1px dashed #20314f; padding-top:12px; margin-top:12px}
.legend{font-size:14px; color:var(--muted); margin:8px 0 12px 0}
.levels{display:flex; flex-wrap:wrap;}
.chip{border:1px solid #27334c; background:#0b1427; color:#d1d5db; padding:6px 10px; border-radius:999px; cursor:pointer;}
.chip input{appearance:none}
.chip.active{border-color:var(--accent); box-shadow:0 0 0 2px rgba(34,211,238,.2) inset}


textarea{width:100%; min-height:72px; border:1px solid #23324f; border-radius:10px; padding:8px; resize:vertical}
.grid-2{display:grid; grid-template-columns: 1fr 1fr; gap:12px}
.progress{height:18px; background:#0b1426; border-radius:6px; border:1px solid #1c2944; overflow:hidden}
.progress > span{display:block; height:100%; background:linear-gradient(90deg,#22d3ee,#a78bfa)}


.toolbar{display:flex; flex-wrap:wrap; gap:10px}
.pill{font-size:12px; padding:4px 8px; border-radius:999px; border:1px solid #1f2c47; background:#0c1426; color:#cbd5e1}


.summary{display:grid; grid-template-columns: repeat(7,1fr); gap:8px}
.gauge{padding:10px; border-radius:12px; border:1px solid #1b2540; background:#0c1428; text-align:center}
.gauge strong{display:block; font-size:18px}
.gauge .val{font-size:22px}
.levels {margin-top: 0.8rem; margin-bottom: 2rem;}
.level-card {
  height: 25vh; 
  width: 45%; 
  background-color: var(--columbia-blue); 
  border:1px solid var(--yinmn-blue); 
  border-radius:10px;
  padding:10px;
  overflow-y: scroll;
}
.level-card > div > div > p {font-size: .8rem;}
.attained{background-color: var(--yinmn-blue); color: #0af005; border-color: var(--malachite);}
.attained > div > div > h4,
.attained > div > div > p { color: white; font-size: .8rem;}
.notattained{color: var(--text); background-color: var(--columbia-blue); border: solid var(--yinmn-blue) 1px;}

.rc-modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;z-index:9999}
.rc-modal[aria-hidden="false"]{display:flex}
.rc-modal__dialog{max-width:720px;width:92vw;max-height:80vh;overflow:auto;background:#0f1629;border:1px solid #1a2339;border-radius:14px;padding:16px;box-shadow:0 10px 40px rgba(0,0,0,.35)}
.rc-modal__close{position:absolute;right:18px;top:10px;background:transparent;border:0;color:#e5e7eb;font-size:24px;cursor:pointer}
.rc-modal__body p{margin:.5rem 0;color:#cbd5e1}
.rc-expander{background:transparent;border:0;color:#93c5fd;cursor:pointer}

.rc-highlight {
  box-shadow: 0 0 0 3px #2d5583;
  transition: box-shadow 0.3s ease;
}

.unselected-row {
  opacity: 0.6;
  background-color: #f0f0f0;
}
#mapTable tbody .ec-area-header > th {
  padding-top: 15px;
  padding-bottom: 5px;
  background-color: #f5f5f5;
  font-weight: 600;
}

/* Upskills classes */
/* === UPSKILL.MAP QUESTIONNAIRE === */

/* container sections */
#areaPanel section[id^="dom-"] {
  margin-bottom: 2rem;
  padding: 1rem 1.25rem;
  border: 1px solid #1e293b; /* dark slate border */
  border-radius: 12px;
  background-color: var(--columbia-blue);
  /*box-shadow: 0 2px 5px rgba(0,0,0,0.25);*/
}

#areaPanel section[id^="dom-"] h3 {
  font-size: 1.15rem;
  font-weight: 600;
  /*color: #f1f5f9;*/
  margin-bottom: .75rem;
  border-bottom: 1px solid #1e293b;
  padding-bottom: .25rem;
}

/* each questionnaire item */
.us-item {
  margin-bottom: 1rem;
  padding: .5rem 0;
  border-bottom: 1px dashed rgba(255,255,255,0.05);
}

.us-q {
  font-size: 0.95rem;
  /*color: #e2e8f0;*/
  margin-bottom: 0.4rem;
}

/* Likert group */
.us-opts {
  display: flex;
  gap: .6rem;
  flex-wrap: wrap;
}

.us-opt {
  display: flex;
  align-items: center;
  gap: .25rem;
  padding: .3rem .6rem;
  border: 1px solid #1e293b;
  border-radius: 6px;
  background-color: var(--alice-blue);
  color: var(--text);
  cursor: pointer;
  transition: background-color .2s, border-color .2s;
}

.us-opt:hover {
  background-color:  var(--yinmn-blue);
  color: white;
  border-color: var(--malachite); /* cyan hover tone */
}

.us-opt input[type="radio"] {
  accent-color: var(--malachite); 
  transform: scale(1.1);
  cursor: pointer;
}

/* highlight the checked option */
label.us-opt:has(> input[type="radio"]:checked) {
  background-color:  var(--yinmn-blue);
  color: white;
  border-color: var(--malachite);
  font-weight: 600;
}
.us-opt input[type="radio"]:checked + span {
  background-color: var(--yinmn-blue);
  color: white;
  font-weight: 600;
}


#mapTable tbody tr.upskill-domain-header th {
  background: #f5f5f5;
  font-weight: 600;
}

#mapTable td.map-upskill-item {
  font-size: 0.95rem;
}
#mapTable td.map-upskill-item::first-letter { text-transform: uppercase }




/* summary styles */
#summary ul {
  list-style: none;
  padding-left: 0;
  margin-top: 0.5rem;
}

#summary li {
  padding: 0.25rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.05);
}

#summary strong {
  color: #f8fafc;
}

/* domain selector buttons (left sidebar) */
#areaList button.btn {
  display: block;
  width: 100%;
  margin-bottom: 0.4rem;
  border-radius: 6px;
  background: var(--alice-blue);
  border: solid 1px var(--border) !important;
  color: var(--text);
  padding: 0.45rem 0.75rem;
  text-align: left;
  transition: background-color .15s;
  font-size: 0.9rem;
  border: transparent;
}

#areaList button.btn:hover {
  background: var(--yinmn-blue);
  color: white;
}

#areaList button.btn.active {
  background: var(--yinmn-blue) !important;
  color: white;
}
.back-to-top {
  display: flex;
  align-items: center;
  justify-content: end;
  margin-left: 2rem;
}
.back-to-top button {
  background-color: var(--yinmn-blue);
  color: white;
  font-size: 1.2rem;
  line-height: 1;
  border: solid white 1px;
  transition: background-color .2s;
}
.back-to-top button:hover {
  background-color: var(--electric-blue);
}

/* Responsive tweaks 
@media (max-width: 768px) {
  .us-opts {
    flex-direction: column;
    gap: .3rem;
  }
  #areaPanel section[id^="dom-"] {
    padding: .75rem;
  }
}*/
.medium {
  font-size: 0.8rem;
}

#tab-responsive-1 > div > div.card > div.card-header { 
  background-color: var(--ucla-blue) !important;
  color: white;
}
#tab-responsive-1 > div > div.card > div.card-body > p.card-text {
  font-size: 0.8rem;
}
#tab-responsive-2 > div > div.card > div.card-header,
#tab-responsive-2 > div > div.card > div.card-footer { 
  background-color: var(--alice-blue) !important;
  color: var(--text);
}

#tab-responsive-2 > div > div.card > div.card-body > p.card-text {
  font-size: 0.8rem;
}

/* inbox unread messages */
.inbox-link {
  position: relative;
}

.inbox-unread-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-width: 18px;
  height: 18px;
  padding: 0 6px;

  margin-left: 6px;

  background-color: #d32f2f; /* strong red */
  color: #ffffff;

  font-size: 11px;
  font-weight: 600;
  line-height: 1;

  border-radius: 999px; /* perfect circle / pill */
  position: absolute;
  top: 29px;
  right: 57px;
  z-index: 20;
}

.one-page-menu li,
.one-page-menu li a {
  overflow: visible;
}

/* header menu "More" dropdown — Stimulus header_menu_controller fills it
   with items that don't fit on the bar. Uses native <details>/<summary>. */
.header-menu-more details {
  position: relative;
}
.header-menu-more summary {
  list-style: none;
  cursor: pointer;
  padding: 0;
}
.header-menu-more summary::-webkit-details-marker {
  display: none;
}
.header-menu-more .header-menu-overflow-list {
  position: absolute;
  top: 100%;
  right: 0;
  background: white;
  border: 1px solid var(--border, #ddd);
  border-radius: 4px;
  padding: 4px 0;
  list-style: none;
  margin: 0;
  min-width: 160px;
  z-index: 30;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.header-menu-more .header-menu-overflow-list li {
  display: block;
  padding: 4px 14px;
  white-space: nowrap;
}
.header-menu-more .header-menu-overflow-list li a {
  display: block;
}

/* message foooter buttons*/
.button_to { margin-bottom: 3px;}
.button-mini-1  {
  background-color: white;
  color: var(--yinmn-blue);
  font-size: o.8rem;
  text-transform: none;
  text-shadow: none;
  border-radius: 5px;
  border: solid 1px var(--border);
}
.button-mini-2  {
  background-color: white;
  color: var(--yinmn-blue);
  font-size: 0.7rem;
  text-transform: none;
  text-shadow: none;
  border-radius: 5px;
  border: solid 1px var(--border);
}
.button-mini-1:hover,
.button-mini-2:hover {
  background-color: var(--yinmn-blue);
}
.button-mini-1:active,
.button-mini-2:active {
  background-color: var(--yinmn-blue);
}
input[id^="cap_"] { text-align: right; }
#target_max_year { text-align: right; }




.week-cell {
  background-color: lightgray;
  cursor: pointer;
  padding: 6px;
  border-radius: 4px;
  font-size: 0.9em;
}
.week-cell.available {
  background-color: var(--malachite);
  color: white;
}

.nav-tree .sidebar-menu { list-style: none; margin: 0; padding: 0; }
.nav-tree .sidebar-menu > li { margin-bottom: 4px; }

/* Group header */
.nav-tree .menu-group-toggle {
  display: flex;
}

/* Submenu list */
.nav-tree .submenu {
  list-style: none;
  margin: 4px 0 0 16px;
  padding: 0;
}

/* Collapsing behaviour */
.nav-tree .submenu { display: none; }
.nav-tree .submenu.open { display: block; }

.nav-tree .menu-group, .submenu-item { line-height: 0.5rem;}
.nav-tree li.menu-group.sub-menu > a,
.nav-tree li.menu-group.sub-menu > a > i {
  color: var(--yinmn-blue);
  text-transform: none;
}
.nav-tree li.menu-group, 
.nav-tree li.submenu-item { margin-bottom: 0.5rem; }
.nav-tree .menu-group.active > ul.submenu { margin-left: 10px; }
.nav-tree ul ul a,
.nav-tree ul a  { 
  font-weight: 500;
  padding-left: 5px; 
  font-size: 0.8rem; 
  color: var(--yinmn-blue) !important; 
}
.nav-tree > ul > li > ul > li.submenu-item > a { text-transform: none; }
.nav-tree li:hover > a, 
.nav-tree li.current > a, 
.nav-tree li.active > ul.submenu {
  border-left: 3px solid var(--malachite);
}

.nav-tree li:hover > a,
.nav-tree li.current > a,
.nav-tree li.active > a {
  color: var(--yinmn-blue) !important;
}
a.active:hover{
  color: white !important;
}
#progressModal {
  z-index: 1200;
}
#progressModal .modal-dialog {
  z-index: 1066 !important;
}
.icon-trash { color: #DC3546;}
.icon-trash:hover { scale: 1.5;}

/* Container alignment (optional, for side-by-side big buttons) */
[role="group"] {
  display: flex;
  gap: 12px;
}

.btn-option {
  flex: 1;
  font-size: 1.2rem;
  font-weight: 600;
  padding: 16px 20px;
  border-radius: 12px;
  border: 2px solid #dee2e6;
  background-color: #f8f9fa;
  color: #333;
  transition: all 0.2s ease;
  cursor: pointer;
}

.btn-option:hover {
  background-color: #84a6c8;
}

.btn-check {
  position: absolute;
  opacity: 0;
}

/* Selected state base */
.btn-check:checked + .btn-option {
  color: #fff;
  box-shadow: 0 0 0 0.2rem rgba(0,0,0,.15);
}

/* Yes */
.btn-check:checked + .btn-yes {
  background-color: var(--malachite);
  border-color: var(--malachite);
}

/* No */
.btn-check:checked + .btn-no {
  background-color: #dc3545;
  border-color: #dc3545;
}

.badge-danger {
    color: #fff;
    background-color: #dc3545;
}


/* =============== badges =============== */
.badges-board {
  margin-top: 16px;
}

.badges-board-header {
  margin-bottom: 12px;
}

.badges-board-title {
  margin: 0 0 6px 0;
  font-weight: 700;
}

.badges-board-intro {
  margin: 0;
  opacity: 0.9;
  line-height: 1.35;
}

.badges-section {
  margin-top: 18px;
}

.badges-section-title {
  margin: 0 0 10px 0;
  font-weight: 700;
}

.badges-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

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

@media (max-width: 700px) {
  .badges-grid { grid-template-columns: repeat(1, minmax(0, 1fr)); }
}

.badge-board-card {
  border: 1px solid rgba(0,0,0,0.10);
  border-radius: 12px;
  padding: 12px;
  background: #fff;
}

.badges-board .badge-card {
  border: 1px solid rgba(0,0,0,0.10);
  border-radius: 12px;
  padding: 18px;
  background: #fff;
}

.badge-board-card-top {
  display: flex;
  gap: 12px;
  align-items: center;
}

.badges-board .badge-card-top {
  display: flex;
  gap: 16px;
  align-items: center;
}

.badge-board-icon {
  width: 64px;
  height: 64px;
  object-fit: contain;
}

.badges-board .badge-icon-wrap {
  width: 120px;
  height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.badges-board .badge-icon {
  width: 112px;
  height: auto;
  object-fit: contain;
}

.badges-board .badge-icon-link {
  display: inline-block;
}

.badge-board-title-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.badge-title-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.badge-board-title {
  font-weight: 700;
  font-size: 15px;
}

.badges-board .badge-title {
  font-weight: 700;
  font-size: 18px;
}

.badge-board-subtitle {
  font-size: 12px;
  opacity: 0.85;
  margin-top: 2px;
}

.badges-board .badge-subtitle {
  font-size: 14px;
  opacity: 0.85;
  margin-top: 2px;
}

.badge-board-pill {
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,0.10);
}

.badges-board .badge-pill {
  font-size: 13px;
  padding: 4px 12px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,0.10);
}

.badge-board-pill-earned {
  opacity: 0.95;
}

.badge-board-pill-locked {
  opacity: 0.75;
}

.badge-pill-earned {
  opacity: 0.95;
}

.badge-pill-locked {
  opacity: 0.75;
}

.badge-board-card-body {
  margin-top: 10px;
  display: grid;
  gap: 10px;
}

.badges-board .badge-card-body {
  margin-top: 10px;
  display: grid;
  gap: 10px;
}

.badge-board-block-title {
  font-weight: 700;
  font-size: 12px;
  opacity: 0.9;
  margin-bottom: 2px;
}

.badges-board .badge-block-title {
  font-weight: 700;
  font-size: 16px;
  opacity: 0.9;
  margin-bottom: 2px;
}

.badge-board-block-text {
  font-size: 12px;
  opacity: 0.9;
  line-height: 1.35;
}

.badges-board .badge-block-text {
  font-size: 15px;
  opacity: 0.9;
  line-height: 1.5;
}

.badges-board .badge-block-text ul,
.badges-board .badge-block-text ol,
.badges-board .badge-block-text li {
  font-size: inherit;
  line-height: inherit;
}

.badge-board-card-footer {
  margin-top: 10px;
}

.badge-card-footer {
  margin-top: 10px;
}

.badge-board-cta {
  display: inline-block;
  font-weight: 700;
  font-size: 12px;
  text-decoration: none;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,0.12);
}

.badges-board .badge-cta {
  display: inline-block;
  font-weight: 700;
  font-size: 14px;
  text-decoration: none;
  padding: 10px 14px;
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,0.12);
}

.badge-board-locked,
.badge-board-earned,
.badge-locked,
.badge-earned {
  opacity: 1;
}

.badges-board-compact .badge-card-body,
.badges-board-compact .badge-card-footer {
  display: none;
}

/* ----------- */
.doc-tldr {
  background: #f6f8fa;
  border-left: 4px solid #2d5583;
  padding: 12px 16px;
  margin-bottom: 24px;
}

.badge-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 20px;
  margin-top: 16px;
}

.badge-item {
  text-align: center;
  font-size: 13px;
}

.badge-item img {
  width: 150px;
  height: auto;
  margin-bottom: 8px;
}

.badge-item span {
  opacity: 0.75;
}

/* ============ end of badges ============ */


#emptyCommonBlocksContainer {
  max-height: 220px; 
  overflow:auto;
}


/* Requirement emphasis (subtle, dark-blue) */
.req-input-required,
.req-input-recommended {
  border-left-width: 4px !important;
  border-left-style: solid !important;
}

.req-input-required {
  border-left-color: #0b3d91 !important; /* dark blue */
}

.req-input-recommended {
  border-left-color: #0b3d91 !important;
  opacity: 0.92;
}

/* Optional: give the whole column a tiny tint without breaking layout 
.req-required {
 keep it super subtle 
}*/

 /*.req-recommended {
  keep it super subtle 
}*/
.fx05 { font-size: 0.5rem; }
.fx08 { font-size: 0.8rem; }
.fx1 { font-size: 1rem; }
.fx1-5 { font-size: 1.5rem; }
.fx2 { font-size: 2rem; }
.fx3 { font-size: 3rem; }
.fx4 { font-size: 4rem; }


.performance-section {
  background-color: var(--ucla-blue);
}

.communityInteraction-section {
  background-color: var(--malachite);
}

.societyInteraction-section {
  background-color: var(--verypery);
}

/* ============ BETA Badge ============ */
.badge-beta {
  background: linear-gradient(135deg, #6c5ce7 0%, #a29bfe 100%);
  color: white;
  font-size: 0.2em;
  font-weight: 500;
  padding: 0.35em 0.65em;
  border-radius: 0.25rem;
  vertical-align: top;
  cursor: help;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  animation: pulse-beta 2s ease-in-out infinite;
}

@keyframes pulse-beta {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.75; }
}

.badge-beta:hover {
  animation: none;
  opacity: 1;
}

/* ============ Sidebar Menu Indicators ============ */
.menu-indicator {
  display: inline-flex;
  align-items: center;
  margin-left: 0.35rem;
}

.menu-indicator i {
  font-size: 0.55rem;
  line-height: 1;
}

.menu-indicator--new {
  color: #28a745;
}

.menu-indicator--badge {
  color: #f4b400;
}

.menu-indicator--status {
  color: #1b6ec2;
}

/* ============ Infrastructure Pages ============ */
.infra-page {
  --infra-ink: #0f1f2d;
  --infra-muted: #4a5b6c;
  --infra-accent: #0b8f7a;
  --infra-accent-2: #1b3f68;
  --infra-surface: #ffffff;
  --infra-border: rgba(15, 31, 45, 0.12);
  position: relative;
  padding: 2.5rem 2.5rem;
  border-radius: 20px;
  background: #ffffff;
  color: var(--infra-ink);
  font-family: "Sora", "Helvetica Neue", sans-serif;
  line-height: 1.7;
  border: 1px solid var(--infra-border);
  max-width: 980px;
  width: 100%;
  margin: 0 auto;
  margin-top: 1.75rem;
}

.infra-page h1,
.infra-page h2,
.infra-page h3 {
  font-family: "Fraunces", "Georgia", serif;
  color: var(--infra-ink);
  margin-bottom: 0.6rem;
}

.infra-kicker {
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--infra-accent-2);
  margin-bottom: 0.75rem;
}

.infra-subhead {
  font-size: 1.1rem;
  color: var(--infra-muted);
  max-width: 52rem;
  line-height: 1.7;
}

.infra-hero {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  align-items: start;
  margin-bottom: 2rem;
  animation: infraFadeUp 500ms ease-out both;
}

.infra-hero-content h1 {
  font-size: clamp(2rem, 2.6vw, 3rem);
  line-height: 1.15;
}

.infra-statement-row {
  display: grid;
  gap: 0.35rem;
  margin-top: 1rem;
}

.infra-statement-row span {
  padding: 0;
  border-radius: 0;
  background: none;
  color: var(--infra-muted);
  font-weight: 500;
  font-size: 0.95rem;
}

.infra-hero-aside {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.infra-section {
  margin-bottom: 2rem;
}

.infra-grid {
  display: grid;
  gap: 1.5rem;
}

.infra-grid.two {
  grid-template-columns: 1fr;
}

.infra-card {
  background: transparent;
  border-radius: 0;
  padding: 0;
  border: none;
  box-shadow: none;
  animation: infraFadeUp 500ms ease-out both;
}

.infra-card h2 {
  font-size: 1.4rem;
}

.infra-card h3 {
  font-size: 1.2rem;
}

.infra-callout {
  border-left: 4px solid var(--infra-accent);
  background: #f7fafc;
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  border: 1px solid rgba(15, 31, 45, 0.08);
}

.infra-emphasis {
  border-left-color: var(--infra-accent-2);
}

.infra-banner {
  padding: 0;
  border: none;
  background: transparent;
  border-radius: 0;
  margin-bottom: 1.25rem;
}

.infra-list,
.infra-checklist {
  list-style: none;
  padding-left: 0;
  margin: 0.75rem 0 0;
  color: var(--infra-muted);
  line-height: 1.7;
}

.infra-list li,
.infra-checklist li {
  position: relative;
  padding-left: 1.4rem;
  margin-bottom: 0.5rem;
  font-family: "Raleway", "Sora", "Helvetica Neue", sans-serif;
  font-weight: 500;
}

.infra-list li::before,
.infra-checklist li::before {
  content: "•";
  position: absolute;
  left: 0;
  top: 0;
  width: 1rem;
  height: 1rem;
  border-radius: 0;
  border: none;
  color: var(--infra-accent);
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
}

.infra-muted {
  color: var(--infra-muted);
  margin-top: 1rem;
}

.infra-quote {
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--infra-accent-2);
}

.infra-quote-line {
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 0.4rem;
}

.infra-compare {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

.infra-cta-block {
  margin-bottom: 0;
  padding-top: 1.5rem;
  border-top: 1px solid var(--infra-border);
}

.infra-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

.infra-form {
  margin-top: 1.75rem;
  padding-top: 1.5rem;
  border-top: 1px dashed rgba(15, 31, 45, 0.12);
}

.infra-lead-form {
  display: grid;
  gap: 1rem;
  margin-top: 1rem;
}

.infra-form-row {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.infra-form-row--full {
  grid-template-columns: minmax(0, 1fr);
}

.infra-form-field label {
  display: block;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--infra-ink);
  margin-bottom: 0.35rem;
}

.infra-input {
  width: 100%;
  border: 1px solid var(--infra-border);
  border-radius: 10px;
  padding: 0.7rem 0.85rem;
  font-family: "Raleway", "Sora", "Helvetica Neue", sans-serif;
  font-size: 0.95rem;
  color: var(--infra-ink);
  background: #fff;
}

.infra-input:focus {
  outline: none;
  border-color: var(--infra-accent);
  box-shadow: 0 0 0 3px rgba(11, 143, 122, 0.15);
}

.infra-form-actions {
  align-items: center;
}

.infra-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1.4rem;
  border-radius: 999px;
  border: 1px solid var(--infra-accent);
  background: var(--infra-accent);
  color: #fff !important;
  font-weight: 600;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.infra-cta.ghost {
  background: transparent;
  color: var(--infra-accent-2) !important;
  border-color: rgba(27, 63, 104, 0.4);
}

.infra-cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 20px rgba(15, 31, 45, 0.12);
  color: #fff !important;
}

.infra-cta.ghost:hover {
  color: var(--infra-accent-2) !important;
}

@keyframes infraFadeUp {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 768px) {
  .infra-page {
    padding: 2rem 1.5rem;
    border-radius: 16px;
  }

  .infra-form-row {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .infra-page * {
    animation: none !important;
    transition: none !important;
  }
}

.alewrt-warning {
  animation: pulse-beta 2s ease-in-out infinite;
}

.one-doc-pill {
  display: inline-block;
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 0.9rem;
  font-weight: 500;
  color: #111;
  background: rgba(0,0,0,0.04);
  transition: all 0.2s ease;
  text-decoration: none;
}

.one-doc-pill:hover {
  background: rgba(0,0,0,0.08);
  text-decoration: none;
}

.one-doc-secondary {
  font-size: 0.9rem;
  font-weight: 500;
  color: rgba(0,0,0,0.7);
  text-decoration: none;
  transition: color 0.2s ease;
}

.one-doc-secondary:hover {
  color: #000;
}

.one-doc-tertiary {
  font-size: 0.85rem;
  color: rgba(0,0,0,0.55);
  text-decoration: none;
}

.one-doc-tertiary:hover {
  color: rgba(0,0,0,0.8);
}
/* ----------------------------------------------------------------
	Tablet Responsive Fixes - Author Overview
-----------------------------------------------------------------*/

/* Large tablets in portrait mode (like Xiaomi Redmi Pad Pro) */
@media (min-width: 768px) and (max-width: 1199.98px) {
  /* Author photo section - make it bigger */
  .author-photo-container {
    min-width: 100px;
    width: 100%;
  }
  
  /* Reduce padding in author info section */
  .col-2.d-flex.pr-2 {
    flex: 0 0 20%;
    max-width: 20%;
    padding-right: 0.5rem !important;
  }
  
  .col-lg-8 {
    flex: 0 0 60%;
    max-width: 60%;
  }
  
  .col-lg-2.pr-0 {
    flex: 0 0 20%;
    max-width: 20%;
  }
  
  /* Evolution charts - switch to 2 columns */
  #overview .row.d-flex,
  .Evolution .row.d-flex {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1rem;
  }
  
  /* Evolution charts - remove border right from all but last in row */
  .Evolution .row.d-flex > div.border-right {
    border-right: none !important;
  }
  
  .Evolution .row.d-flex > div:nth-child(2n) {
    border-right: 1px solid var(--border) !important;
  }
  
  /* Metrics boxes - switch to 2 columns */
  .row.d-flex:has(.data-box2) {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1rem;
  }
  
  /* Reference Cohort - fix flex layout */
  .row.my-4 .d-flex {
    flex-wrap: wrap !important;
    gap: 1rem;
  }
  
  .row.my-4 .d-flex > div {
    flex: 1 1 45% !important;
    min-width: 200px;
  }
  
  .row.my-4 .d-flex > div.m-3 {
    flex: 1 1 30% !important;
  }
  
  /* Reduce font sizes for tablet */
  h1 {
    font-size: 2rem !important;
  }
  
  h4, .h4 {
    font-size: 1.1rem !important;
  }
  
  .base-number {
    font-size: 1.8rem !important;
  }
  
  .f15x {
    font-size: 1.2rem !important;
  }
}

/* Small tablets and large phones - portrait */
@media (min-width: 576px) and (max-width: 767.98px) {
  /* Single column for everything */
  .author-photo-container {
    min-width: 80px;
    max-width: 120px;
  }
  
  .col-2.d-flex.pr-2,
  .col-lg-8,
  .col-lg-2.pr-0 {
    flex: 0 0 100%;
    max-width: 100%;
  }
  
  /* All sections single column */
  .Evolution .row.d-flex,
  .row.d-flex:has(.data-box2) {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }
  
  /* Reference Cohort stacked */
  .row.my-4 .d-flex > div {
    flex: 1 1 100% !important;
    border-right: none !important;
    border-bottom: 1px solid var(--border);
    padding-bottom: 1rem;
    margin-bottom: 1rem;
  }
  
  /* Publications and coauthors side by side */
  .col-lg-6 {
    flex: 0 0 100%;
    max-width: 100%;
    margin-bottom: 2rem;
  }
  
  /* oneIndexChart - increase width and adjust size */
  .col-lg-2:has(#oneIndexChart) {
    flex: 0 0 50% !important;
    max-width: 50% !important;
    margin: 1rem auto;
  }
  
  #oneIndexChart {
    width: 100% !important;
    max-width: 180px !important;
    height: 180px !important;
    margin: 0 auto;
    display: block;
  }
}

/* Large tablets 12 inches - landscape and portrait */
@media (min-width: 992px) and (max-width: 1199.98px) {
  /* oneIndexChart - adjust for medium-lg screens */
  .col-lg-2:has(#oneIndexChart) {
    flex: 0 0 25% !important;
    max-width: 25% !important;
  }
  
  #oneIndexChart {
    width: 100% !important;
    max-width: 180px !important;
    height: 180px !important;
  }
}


.one-index-gauge {
  width: 320px;     /* ajustable */
  max-width: 100%;
}

/* The gauge draws a 220-unit square inside a box left free to stretch to its
   column, so the browser centred the drawing and left slack on both sides —
   that slack, not the layout, is what held the card away from the right edge
   of the dashboard below. Sizing the box to the drawing removes it. */
#oneIndexChart { width: 220px; max-width: 100%; margin: 0 auto; }

@media (min-width: 992px) {
  /* Two-column header: the gauge hugs the right, and the offset carries it out
     to the dashboard panel's edge. Three fixed pixel amounts, measured rather
     than guessed: 30px because the header is `row col-12`, and col-12's
     max-width:100% caps the row's width so its negative gutters shift it left
     instead of widening it, leaving the row 30px short on the right; 10px that
     the SVG keeps around the card for its drop shadow; less the 4px the panel
     below keeps (px-1), less another 8px because the card's own drop shadow
     already reads as breathing room and the full offset put it too close.
     None of those amounts varies with the viewport.
     The top margin drops the gauge to sit against the middle of the header
     rather than its top: the row centres the two columns on each other, and
     the name block runs lower than the gauge is tall.
     Both numbers are here to be nudged — first value vertical, second
     horizontal (more negative pushes it right). */
  #oneIndexChart { margin: 28px -28px 0 auto; }
}
.one-index-gauge svg {
  display: block;
}

/* Homepage redesign */
body:has(.homepage-landing) #title-container {
  display: none;
}

body:has(.homepage-landing) #header-wrap {
  background: #fff;
  backdrop-filter: none;
  border-bottom: 1px solid rgba(17, 42, 84, 0.08);
}

body:has(.homepage-landing) #header .container {
  align-items: center;
  min-height: 84px;
}

body:has(.homepage-landing) #content .content-wrap {
  padding-top: 0;
}

.homepage-landing {
  --homepage-ink: #10213f;
  --homepage-ink-soft: #4b5875;
  --homepage-surface: rgba(255, 255, 255, 0.78);
  --homepage-line: rgba(16, 33, 63, 0.08);
  --homepage-shadow: 0 30px 80px rgba(20, 37, 69, 0.12);
  --homepage-radius: 30px;
  color: var(--homepage-ink);
  padding-bottom: 5rem;
}

.homepage-landing__full-bleed {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.homepage-landing__hero,
.homepage-spotlight {
  position: relative;
  overflow: hidden;
}

.homepage-landing__hero {
  background:
    radial-gradient(circle at top left, rgba(142, 192, 255, 0.34), transparent 32%),
    radial-gradient(circle at 88% 14%, rgba(214, 232, 255, 0.72), transparent 18%),
    linear-gradient(145deg, #eef5ff 0%, #f6f9ff 42%, #fafcff 100%);
}

.homepage-landing__hero::before,
.homepage-landing__hero::after,
.homepage-spotlight::before,
.homepage-spotlight::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  pointer-events: none;
}

.homepage-landing__hero::before {
  width: 34rem;
  height: 34rem;
  top: -12rem;
  right: -10rem;
  background: rgba(114, 157, 219, 0.12);
  filter: blur(12px);
}

.homepage-landing__hero::after {
  width: 22rem;
  height: 22rem;
  bottom: -10rem;
  left: -8rem;
  background: rgba(96, 221, 151, 0.12);
}

.homepage-landing__hero-shell,
.homepage-spotlight__shell {
  position: relative;
  z-index: 1;
  width: min(1220px, calc(100% - 3rem));
  margin: 0 auto;
}

.homepage-landing__hero-shell {
  min-height: calc(100vh - 84px);
  display: grid;
  align-content: center;
  gap: 2rem;
  padding: clamp(4rem, 8vw, 6.5rem) 0;
}

.homepage-landing__hero-copy {
  width: 100%;
  max-width: none;
}

.homepage-landing .homepage-landing__hero-copy h1,
.homepage-landing .homepage-landing__hero-copy .homepage-landing__lede {
  width: 100%;
  max-width: none;
}

.homepage-landing__eyebrow {
  margin-bottom: 1rem;
  color: #51617f;
  font-family: "Sora", sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.homepage-landing__eyebrow--warm {
  color: #8f5d27;
}

.homepage-landing h1,
.homepage-landing h2 {
  margin: 0;
  color: var(--homepage-ink);
  font-family: "Fraunces", serif;
  letter-spacing: -0.03em;
}

.homepage-landing h1 {
  max-width: 12ch;
  font-size: clamp(3.1rem, 7vw, 5.8rem);
  line-height: 0.95;
}

.homepage-landing h2 {
  font-size: clamp(2rem, 4vw, 3.3rem);
  line-height: 1.02;
}

.homepage-landing p,
.homepage-landing span,
.homepage-landing a {
  font-family: "Sora", sans-serif;
}

.homepage-landing__lede,
.homepage-band__body,
.homepage-spotlight__copy p,
.homepage-trust__secondary {
  color: var(--homepage-ink-soft);
  font-size: 1.08rem;
  line-height: 1.8;
}

.homepage-landing__lede {
  max-width: 760px;
  margin-top: 1.4rem;
  font-size: 1.15rem;
}

.homepage-router {
  display: grid;
  gap: 1rem;
}

.homepage-router__grid,
.homepage-footer-router__grid {
  display: grid;
  gap: 1rem;
}

.homepage-router__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.homepage-router__card,
.homepage-footer-router__link {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-height: 100%;
  border: 1px solid var(--homepage-line);
  border-radius: var(--homepage-radius);
  background: var(--homepage-surface);
  box-shadow: var(--homepage-shadow);
  color: var(--homepage-ink);
  text-decoration: none;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.homepage-router__card {
  padding: 1.7rem;
  backdrop-filter: blur(20px);
}

.homepage-router__card::before,
.homepage-footer-router__link::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 0.25s ease;
}

.homepage-router__card:hover,
.homepage-router__card:focus-visible,
.homepage-footer-router__link:hover,
.homepage-footer-router__link:focus-visible {
  transform: translateY(-6px);
  box-shadow: 0 38px 90px rgba(20, 37, 69, 0.16);
  color: var(--homepage-ink);
  text-decoration: none;
}

.homepage-router__card:hover::before,
.homepage-router__card:focus-visible::before,
.homepage-footer-router__link:hover::before,
.homepage-footer-router__link:focus-visible::before {
  opacity: 1;
}

.homepage-router__card:focus-visible,
.homepage-footer-router__link:focus-visible,
.homepage-landing__button:focus-visible {
  outline: 2px solid #274f86;
  outline-offset: 4px;
}

.homepage-router__card--researchers::before,
.homepage-footer-router__link--researchers::before {
  background: linear-gradient(140deg, rgba(67, 119, 177, 0.12), transparent 55%);
}

.homepage-router__card--institutions::before,
.homepage-footer-router__link--institutions::before {
  background: linear-gradient(140deg, rgba(72, 213, 105, 0.11), transparent 55%);
}

.homepage-router__card--policy::before,
.homepage-footer-router__link--policy::before {
  background: linear-gradient(140deg, rgba(13, 87, 154, 0.13), transparent 55%);
}

.homepage-router__card--framework::before,
.homepage-footer-router__link--framework::before {
  background: linear-gradient(140deg, rgba(94, 123, 176, 0.18), transparent 55%);
}

.homepage-footer-router__link--sponsorship::before {
  background: linear-gradient(140deg, rgba(206, 151, 86, 0.16), transparent 55%);
}

.homepage-router__title {
  position: relative;
  z-index: 1;
  font-family: "Fraunces", serif;
  font-size: 1.65rem;
  line-height: 1.1;
}

.homepage-router__card p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: var(--homepage-ink-soft);
  font-size: 0.98rem;
  line-height: 1.75;
}

.homepage-router__cta,
.homepage-footer-router__link {
  position: relative;
  z-index: 1;
}

.homepage-router__cta {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.93rem;
  font-weight: 600;
  color: #173d72;
}

.homepage-router__card--foundation {
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.homepage-band,
.homepage-trust,
.homepage-footer-router {
  padding-top: 5rem;
}

.homepage-band__content,
.homepage-trust__card,
.homepage-footer-router {
  max-width: 1040px;
  margin: 0 auto;
}

.homepage-band__content {
  text-align: center;
}

.homepage-band__body {
  max-width: 860px;
  margin: 1.4rem auto 0;
}

.homepage-band__microgrid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.8rem;
  margin-top: 2rem;
}

.homepage-band__microgrid span {
  display: inline-flex;
  align-items: center;
  padding: 0.7rem 1rem;
  border: 1px solid rgba(16, 33, 63, 0.08);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  color: #2f446b;
  font-size: 0.92rem;
  font-weight: 600;
}

.homepage-band__closing {
  margin-top: 1.8rem;
  color: #173d72;
  font-size: 1rem;
  font-weight: 600;
}

.homepage-spotlight {
  margin-top: 5rem;
  padding: 4.4rem 0;
  background:
    radial-gradient(circle at 14% 20%, rgba(255, 224, 177, 0.3), transparent 24%),
    linear-gradient(140deg, #fff4e5 0%, #fff9f2 40%, #f7f2ea 100%);
}

.homepage-spotlight::before {
  width: 26rem;
  height: 26rem;
  right: -8rem;
  bottom: -12rem;
  background: rgba(214, 161, 89, 0.1);
}

.homepage-spotlight__shell {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) auto;
  gap: 2rem;
  align-items: center;
}

.homepage-spotlight__copy p {
  max-width: 720px;
  margin: 1.3rem 0 0;
}

.homepage-spotlight__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.8rem;
}

.homepage-landing__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0.85rem 1.25rem;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 0.95rem;
  font-weight: 600;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, background 0.2s ease;
}

.homepage-landing__button:hover {
  transform: translateY(-2px);
  text-decoration: none;
}

.homepage-landing__button--primary {
  background: #173d72;
  box-shadow: 0 18px 40px rgba(23, 61, 114, 0.2);
  color: #fff;
}

.homepage-landing__button--primary:hover {
  color: #fff !important;
  background: #10213f;
}

.homepage-landing__button--secondary {
  border-color: rgba(143, 93, 39, 0.22);
  background: rgba(255, 255, 255, 0.85);
  color: #6f4b24;
}

.homepage-landing__button--secondary:hover {
  color: #4d3013 !important;
  background: #fff;
}

.homepage-trust__card {
  padding: 2rem 2.2rem;
  border: 1px solid var(--homepage-line);
  border-radius: calc(var(--homepage-radius) - 4px);
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 20px 45px rgba(20, 37, 69, 0.08);
  text-align: center;
}

.homepage-trust__primary {
  margin: 0;
  color: var(--homepage-ink);
  font-family: "Fraunces", serif;
  font-size: clamp(1.45rem, 3vw, 2.2rem);
  line-height: 1.15;
}

.homepage-trust__secondary {
  max-width: 760px;
  margin: 1rem auto 0;
}

.homepage-footer-router__header {
  text-align: center;
  margin-bottom: 1.6rem;
}

.homepage-footer-router__header h2 {
  margin-top: 0.45rem;
}

.homepage-footer-router__grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.homepage-footer-router__link {
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  min-height: 104px;
  padding: 1.15rem 1.25rem;
  font-size: 0.95rem;
  font-weight: 600;
}

.homepage-header-menu {
  align-items: center;
  gap: 0.15rem;
}

.homepage-header-menu > li {
  margin-left: 0 !important;
}

.homepage-header-menu > li > a {
  border-radius: 999px;
  padding: 0.5rem 0.9rem !important;
  font-family: "Sora", sans-serif;
  font-size: 0.87rem;
  font-weight: 600;
  letter-spacing: 0.01em;
}

.homepage-header-menu__cta > a {
  background: #173d72;
  color: #fff !important;
}

.homepage-header-menu__cta > a:hover {
  background: #10213f;
  color: #fff !important;
}

.homepage-landing__fade-up {
  animation: homepage-rise-in 0.7s ease both;
}

.homepage-landing__fade-up--delayed {
  animation-delay: 0.12s;
}

@keyframes homepage-rise-in {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 1199.98px) {
  .homepage-router__grid,
  .homepage-footer-router__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .homepage-router__card--foundation,
  .homepage-spotlight__shell {
    grid-template-columns: 1fr;
  }

  .homepage-spotlight__actions {
    justify-content: flex-start;
  }

  .homepage-header-menu {
    gap: 0.25rem;
  }
}

@media (max-width: 767.98px) {
  .homepage-landing {
    padding-bottom: 4rem;
  }

  .homepage-landing__hero-shell,
  .homepage-spotlight__shell {
    width: min(100%, calc(100% - 2rem));
  }

  .homepage-landing__hero-shell {
    min-height: auto;
    padding: 3rem 0 3.5rem;
  }

  .homepage-router__grid,
  .homepage-footer-router__grid {
    grid-template-columns: 1fr;
  }

  .homepage-router__card,
  .homepage-router__card--foundation {
    padding: 1.35rem;
  }

  .homepage-router__card--foundation {
    align-items: flex-start;
  }

  .homepage-band,
  .homepage-trust,
  .homepage-footer-router {
    padding-top: 3.5rem;
  }

  .homepage-spotlight {
    margin-top: 3.5rem;
    padding: 3.2rem 0;
  }

  .homepage-trust__card {
    padding: 1.5rem;
  }

  .homepage-band__microgrid {
    gap: 0.6rem;
  }

  body:has(.homepage-landing) #header .container {
    min-height: 72px;
  }
}

/* Segment page family */
body:has(.segment-page) #title-container {
  display: none;
}

body:has(.segment-page) #header-wrap {
  background: #fff;
  backdrop-filter: none;
  border-bottom: 1px solid rgba(17, 42, 84, 0.08);
}

body:has(.segment-page) #header .container {
  align-items: center;
  min-height: 84px;
}

body:has(.segment-page) #content .content-wrap {
  padding-top: 0;
}

.segment-page {
  --segment-accent: #1f4b85;
  --segment-accent-soft: rgba(31, 75, 133, 0.12);
  --segment-accent-strong: #10213f;
  --segment-warm: #bb8a47;
  --segment-border: rgba(16, 33, 63, 0.08);
  --segment-shadow: 0 28px 70px rgba(20, 37, 69, 0.12);
  --segment-surface: rgba(255, 255, 255, 0.86);
  --segment-muted: #53627f;
  --segment-ink: #10213f;
  color: var(--segment-ink);
  padding-bottom: 5rem;
}

.segment-page--researchers {
  --segment-accent: #215690;
  --segment-accent-soft: rgba(33, 86, 144, 0.13);
  --segment-accent-strong: #173863;
}

.segment-page--plans {
  --segment-accent: #245f87;
  --segment-accent-soft: rgba(36, 95, 135, 0.12);
  --segment-accent-strong: #12324f;
}

.segment-page--institutions {
  --segment-accent: #0e6b60;
  --segment-accent-soft: rgba(14, 107, 96, 0.12);
  --segment-accent-strong: #0b3f4d;
}

.segment-page--policy {
  --segment-accent: #27476d;
  --segment-accent-soft: rgba(39, 71, 109, 0.13);
  --segment-accent-strong: #132b47;
}

.segment-page--framework {
  --segment-accent: #435b87;
  --segment-accent-soft: rgba(67, 91, 135, 0.12);
  --segment-accent-strong: #20314f;
}

.segment-page--sponsorship {
  --segment-accent: #8d5e2b;
  --segment-accent-soft: rgba(141, 94, 43, 0.12);
  --segment-accent-strong: #5d3914;
}

.segment-page__full-bleed {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.segment-page h1,
.segment-page h2,
.segment-page h3 {
  margin: 0;
  color: var(--segment-ink);
  font-family: "Fraunces", serif;
  letter-spacing: -0.03em;
}

.segment-page p,
.segment-page span,
.segment-page li,
.segment-page a,
.segment-page label,
.segment-page input,
.segment-page select,
.segment-page textarea {
  font-family: "Sora", sans-serif;
}

.segment-page p {
  color: var(--segment-muted);
  font-size: 1rem;
  line-height: 1.8;
}

.segment-shell {
  width: min(1160px, calc(100% - 3rem));
  margin: 0 auto;
}

.segment-section {
  padding-top: 4.5rem;
}

.segment-section__header {
  max-width: 780px;
  margin-bottom: 1.5rem;
}

.segment-section__header h2 {
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.02;
}

.segment-section__supporting {
  margin-top: 1rem;
  color: var(--segment-accent-strong);
  font-weight: 600;
}

.segment-eyebrow {
  margin-bottom: 1rem;
  color: var(--segment-accent);
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.segment-hero {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at top left, rgba(142, 192, 255, 0.3), transparent 26%),
    linear-gradient(145deg, #eef5ff 0%, #f6f8fd 42%, #fafcff 100%);
}

.segment-page--institutions .segment-hero {
  background:
    radial-gradient(circle at top left, rgba(114, 210, 188, 0.18), transparent 24%),
    linear-gradient(145deg, #eef8f5 0%, #f5faf8 44%, #fafdfc 100%);
}

.segment-page--policy .segment-hero,
.segment-page--framework .segment-hero {
  background:
    radial-gradient(circle at top left, rgba(173, 196, 232, 0.24), transparent 24%),
    linear-gradient(145deg, #eef3fb 0%, #f5f8fc 46%, #fafcff 100%);
}

.segment-page--sponsorship .segment-hero {
  background:
    radial-gradient(circle at top left, rgba(255, 224, 177, 0.34), transparent 24%),
    linear-gradient(145deg, #fff4e7 0%, #fff9f3 46%, #fffdfb 100%);
}

.segment-hero::before,
.segment-cta-band::before {
  content: "";
  position: absolute;
  width: 28rem;
  height: 28rem;
  right: -10rem;
  top: -10rem;
  border-radius: 999px;
  background: var(--segment-accent-soft);
  pointer-events: none;
}

.segment-hero__shell {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(280px, 0.7fr);
  gap: 1.5rem;
  align-items: end;
  min-height: calc(100vh - 84px);
  padding: clamp(3.8rem, 8vw, 6rem) 0;
}

.segment-hero__copy h1 {
  max-width: 11ch;
  font-size: clamp(3rem, 7vw, 5.4rem);
  line-height: 0.94;
}

.segment-hero__copy p {
  max-width: 720px;
  margin-top: 1.35rem;
  font-size: 1.12rem;
}

.segment-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin-top: 1.6rem;
}

.segment-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0.85rem 1.25rem;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 0.95rem;
  font-weight: 600;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, background 0.2s ease;
}

.segment-button:hover,
.segment-button:focus-visible {
  transform: translateY(-2px);
  text-decoration: none;
}

.segment-button:focus-visible {
  outline: 2px solid var(--segment-accent-strong);
  outline-offset: 4px;
}

.segment-button--primary {
  background: var(--segment-accent-strong);
  color: #fff !important;
  box-shadow: 0 18px 40px rgba(20, 37, 69, 0.18);
}

.segment-button--primary:hover {
  background: var(--segment-accent);
  color: #fff !important;
}

.segment-button--secondary {
  background: rgba(255, 255, 255, 0.9);
  border-color: rgba(16, 33, 63, 0.12);
  color: var(--segment-accent-strong);
}

.segment-button--secondary:hover {
  background: #fff;
  color: var(--segment-accent-strong) !important;
}

.segment-hero__support,
.segment-grid,
.segment-metric-grid,
.segment-stats-grid {
  display: grid;
  gap: 1rem;
}

.segment-card,
.segment-proof-band,
.segment-briefing,
.segment-framework-browser {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--segment-border);
  border-radius: 28px;
  background: var(--segment-surface);
  box-shadow: var(--segment-shadow);
  backdrop-filter: blur(16px);
}

.segment-card {
  padding: 1.5rem;
}

.segment-card--accent {
  background: linear-gradient(140deg, var(--segment-accent-soft), rgba(255, 255, 255, 0.94) 70%);
}

.segment-card--quote {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 160px;
  color: var(--segment-accent-strong);
  font-family: "Fraunces", serif;
  font-size: 1.7rem;
  line-height: 1.15;
}

.segment-card h3 {
  font-size: 1.4rem;
  line-height: 1.08;
}

.segment-card p {
  margin: 0.8rem 0 0;
}

.segment-card__label {
  color: var(--segment-accent);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

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

.segment-grid--three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.segment-grid--four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.segment-pill-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

.segment-pill-list span,
.segment-metric {
  border: 1px solid var(--segment-border);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--segment-accent-strong);
  font-size: 0.92rem;
  font-weight: 600;
}

.segment-pill-list span {
  padding: 0.7rem 0.95rem;
}

.segment-list {
  list-style: none;
  padding: 0;
  margin: 0.85rem 0 0;
}

.segment-list li {
  position: relative;
  margin-bottom: 0.7rem;
  padding-left: 1.35rem;
  color: var(--segment-muted);
  font-size: 0.98rem;
  line-height: 1.7;
}

.segment-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.72rem;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 999px;
  background: var(--segment-accent);
}

.segment-proof-band {
  padding: 1.75rem 1.9rem;
}

.segment-proof-band h2 {
  font-size: clamp(1.8rem, 4vw, 2.5rem);
}

.segment-proof-band p {
  margin-top: 0.9rem;
}

.segment-cta-band {
  position: relative;
  overflow: hidden;
  margin-top: 4.5rem;
  padding: 4rem 0;
  background: linear-gradient(145deg, rgba(16, 33, 63, 0.94), rgba(33, 86, 144, 0.94));
}

.segment-page--institutions .segment-cta-band {
  background: linear-gradient(145deg, rgba(11, 63, 77, 0.94), rgba(14, 107, 96, 0.94));
}

.segment-page--policy .segment-cta-band,
.segment-page--framework .segment-cta-band {
  background: linear-gradient(145deg, rgba(19, 43, 71, 0.94), rgba(39, 71, 109, 0.94));
}

.segment-page--sponsorship .segment-cta-band {
  background: linear-gradient(145deg, rgba(93, 57, 20, 0.96), rgba(141, 94, 43, 0.94));
}

.segment-cta-band__shell {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 1.6rem;
  align-items: start;
}

.segment-cta-band__content h2,
.segment-cta-band__content p,
.segment-cta-band__content .segment-eyebrow,
.segment-briefing__intro h2,
.segment-briefing__intro p {
  color: #fff;
}

.segment-cta-band__content .segment-eyebrow {
  color: rgba(255, 255, 255, 0.72);
}

.segment-briefing {
  padding: 1.6rem;
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: none;
}

.segment-briefing__intro p {
  margin-top: 0.9rem;
}

.segment-form {
  margin-top: 1.4rem;
}

.segment-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.segment-form__field {
  margin-bottom: 1rem;
}

.segment-form__field label {
  display: block;
  margin-bottom: 0.35rem;
  color: #fff;
  font-size: 0.9rem;
  font-weight: 600;
}

.segment-form__input {
  width: 100%;
  min-height: 48px;
  padding: 0.75rem 0.85rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.96);
  color: var(--segment-ink);
  font-size: 0.95rem;
}

.segment-form__input--textarea {
  min-height: 120px;
  resize: vertical;
}

.segment-form__input:focus {
  outline: none;
  border-color: rgba(255, 255, 255, 0.55);
  box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.12);
}

.segment-form__field--full {
  grid-column: 1 / -1;
}

.segment-human-check {
  margin: 1rem 0 1.25rem;
}

.segment-human-check__fallback {
  margin: 0.75rem 0 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.9rem;
}

.segment-metric-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 1.5rem;
}

.segment-metric {
  padding: 1.1rem 1.15rem;
}

.segment-metric strong {
  display: block;
  color: var(--segment-accent-strong);
  font-family: "Fraunces", serif;
  font-size: 1.9rem;
  line-height: 1;
}

.segment-metric span {
  display: block;
  margin-top: 0.35rem;
  color: var(--segment-muted);
  font-size: 0.88rem;
  font-weight: 600;
}

.segment-stats-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.segment-framework-summary {
  display: grid;
  gap: 0.9rem;
}

.segment-framework-browser {
  padding: 1.5rem;
}

.segment-framework-browser .oneframework-section:first-child {
  margin-top: 0;
}

.segment-framework-browser .oneframework-controls {
  margin-top: 1rem;
}

.segment-note {
  margin-top: 1rem;
  color: var(--segment-accent-strong);
  font-size: 0.95rem;
  font-weight: 600;
}

.segment-fade-up {
  animation: homepage-rise-in 0.7s ease both;
}

@media (max-width: 1199.98px) {
  .segment-hero__shell,
  .segment-cta-band__shell {
    grid-template-columns: 1fr;
  }

  .segment-grid--four,
  .segment-stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .segment-page {
    padding-bottom: 4rem;
  }

  .segment-shell {
    width: min(100%, calc(100% - 2rem));
  }

  .segment-hero__shell {
    min-height: auto;
    padding: 3rem 0 3.5rem;
  }

  .segment-section {
    padding-top: 3.5rem;
  }

  .segment-grid,
  .segment-grid--three,
  .segment-grid--four,
  .segment-form__grid,
  .segment-metric-grid,
  .segment-stats-grid {
    grid-template-columns: 1fr;
  }

  .segment-card,
  .segment-proof-band,
  .segment-briefing,
  .segment-framework-browser {
    padding: 1.25rem;
  }

  .segment-cta-band {
    margin-top: 3.5rem;
    padding: 3.2rem 0;
  }

  body:has(.segment-page) #header .container {
    min-height: 72px;
  }
}

/* Public refinement pass */
body:has(.homepage-landing) #header-wrap,
body:has(.segment-page) #header-wrap {
  background: #fff;
  border-bottom: 1px solid rgba(16, 33, 63, 0.06);
}

.homepage-landing {
  --homepage-ink: #13233f;
  --homepage-ink-soft: #5a6780;
  --homepage-surface: rgba(255, 255, 255, 0.7);
  --homepage-line: rgba(16, 33, 63, 0.07);
  --homepage-shadow: 0 16px 38px rgba(20, 37, 69, 0.08);
  --homepage-radius: 24px;
}

.homepage-landing__hero {
  background:
    radial-gradient(circle at 10% 10%, rgba(120, 160, 220, 0.26), transparent 28%),
    radial-gradient(circle at 92% 12%, rgba(206, 220, 244, 0.5), transparent 18%),
    linear-gradient(145deg, #f0f4fb 0%, #f6f8fc 48%, #fbfcfe 100%);
}

.homepage-landing__hero-shell,
.homepage-spotlight__shell {
  width: min(1280px, calc(100% - 4rem));
}

.homepage-landing h2,
.homepage-router__title,
.homepage-trust__primary {
  font-family: "Sora", sans-serif;
  letter-spacing: -0.045em;
}

.homepage-landing h2 {
  font-size: clamp(2rem, 3.6vw, 3.05rem);
  line-height: 1.05;
}

.homepage-router__card,
.homepage-footer-router__link,
.homepage-trust__card {
  box-shadow: var(--homepage-shadow);
  border-radius: 24px;
}

.homepage-router__card {
  padding: 1.85rem;
}

.homepage-router__card:hover,
.homepage-router__card:focus-visible,
.homepage-footer-router__link:hover,
.homepage-footer-router__link:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 22px 46px rgba(20, 37, 69, 0.1);
}

.homepage-router__title {
  font-size: 1.45rem;
  font-weight: 600;
  line-height: 1.15;
}

.homepage-router__card p,
.homepage-footer-router__link {
  font-size: 0.96rem;
}

.homepage-trust__primary {
  font-size: clamp(1.35rem, 2.7vw, 2rem);
  line-height: 1.18;
}

.homepage-footer-router__link {
  min-height: 94px;
}

.homepage-header-menu {
  gap: 0.25rem;
}

.homepage-header-menu > li > a {
  background: transparent;
  color: #4f5a72 !important;
  padding: 0.5rem 0.75rem !important;
}

.homepage-header-menu > li > a:hover {
  background: rgba(16, 33, 63, 0.05);
  color: #15263f !important;
}

.homepage-header-menu__cta > a {
  background: #152b4d;
  color: #fff !important;
  box-shadow: 0 10px 22px rgba(21, 43, 77, 0.15);
}

.segment-page {
  --segment-border: rgba(16, 33, 63, 0.07);
  --segment-shadow: 0 16px 38px rgba(20, 37, 69, 0.08);
  --segment-surface: rgba(255, 255, 255, 0.74);
  --segment-muted: #5a6780;
  --segment-ink: #13233f;
}

.segment-shell {
  width: min(1280px, calc(100% - 4rem));
}

.segment-page h1,
.segment-page h2,
.segment-page h3 {
  font-family: "Sora", sans-serif;
  letter-spacing: -0.045em;
}

.segment-hero__copy h1,
.segment-card--quote {
  font-family: "Fraunces", serif;
  letter-spacing: -0.03em;
}

.segment-page p {
  font-size: 1.03rem;
  line-height: 1.82;
}

.segment-section {
  padding-top: 5.25rem;
}

.segment-section__header {
  max-width: 860px;
  margin-bottom: 2rem;
}

.segment-section__header h2 {
  font-size: clamp(2.1rem, 3.6vw, 3.2rem);
  line-height: 1.03;
}

.segment-hero {
  background:
    radial-gradient(circle at 10% 10%, rgba(135, 169, 223, 0.22), transparent 28%),
    linear-gradient(145deg, #f0f4fb 0%, #f6f8fc 50%, #fbfcfe 100%);
}

.segment-page--institutions .segment-hero {
  background:
    radial-gradient(circle at 10% 10%, rgba(108, 187, 172, 0.16), transparent 26%),
    linear-gradient(145deg, #eef7f4 0%, #f5faf7 50%, #fbfdfc 100%);
}

.segment-page--policy .segment-hero {
  background:
    radial-gradient(circle at 10% 10%, rgba(153, 177, 214, 0.2), transparent 27%),
    linear-gradient(145deg, #eef3f9 0%, #f5f8fb 50%, #fbfcfe 100%);
}

.segment-page--framework .segment-hero {
  background:
    radial-gradient(circle at 12% 12%, rgba(111, 138, 192, 0.22), transparent 26%),
    radial-gradient(circle at 88% 14%, rgba(208, 218, 238, 0.45), transparent 18%),
    linear-gradient(150deg, #edf2fa 0%, #f4f7fc 50%, #fbfcfe 100%);
}

.segment-page--sponsorship .segment-hero {
  background:
    radial-gradient(circle at 10% 10%, rgba(222, 182, 126, 0.2), transparent 24%),
    linear-gradient(145deg, #fff5ea 0%, #fff9f4 50%, #fffdfb 100%);
}

.segment-hero__shell {
  min-height: clamp(560px, 78vh, 760px);
  align-items: center;
  gap: 2rem;
}

.segment-page--framework .segment-hero__shell {
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
  min-height: clamp(620px, 82vh, 840px);
}

.segment-page--framework .segment-hero__copy h1 {
  max-width: 9ch;
}

.segment-card,
.segment-proof-band,
.segment-framework-browser {
  border-radius: 24px;
  box-shadow: var(--segment-shadow);
}

.segment-card,
.segment-proof-band {
  background: var(--segment-surface);
}

.segment-card {
  padding: 1.7rem;
}

.segment-card--accent {
  background: linear-gradient(145deg, var(--segment-accent-soft), rgba(255, 255, 255, 0.92) 72%);
}

.segment-card h3 {
  font-size: 1.28rem;
  line-height: 1.14;
}

.segment-proof-band {
  padding: 2rem 2.15rem;
}

.segment-button--primary {
  background: var(--segment-accent-strong);
  box-shadow: 0 14px 28px rgba(20, 37, 69, 0.14);
}

.segment-button--secondary {
  border-color: rgba(16, 33, 63, 0.1);
}

.segment-cta-band {
  background: linear-gradient(145deg, rgba(17, 34, 63, 0.96), rgba(35, 73, 124, 0.94));
}

.segment-page--institutions .segment-cta-band {
  background: linear-gradient(145deg, rgba(11, 52, 64, 0.96), rgba(16, 99, 93, 0.94));
}

.segment-page--policy .segment-cta-band {
  background: linear-gradient(145deg, rgba(20, 44, 71, 0.96), rgba(42, 74, 112, 0.94));
}

.segment-page--framework .segment-cta-band {
  background: linear-gradient(145deg, rgba(28, 43, 73, 0.97), rgba(56, 79, 121, 0.95));
}

.segment-page--sponsorship .segment-cta-band {
  background: linear-gradient(145deg, rgba(87, 54, 20, 0.97), rgba(131, 88, 42, 0.95));
}

.segment-page--framework .segment-framework-browser {
  background: rgba(255, 255, 255, 0.82);
  border-color: rgba(30, 46, 76, 0.07);
}

.segment-page--framework .oneframework-axis {
  border-radius: 20px;
  box-shadow: none;
}

.segment-page--framework .oneframework-card {
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.88);
}

.framework-support-note {
  max-width: 46rem;
  margin-top: 1.15rem;
  color: var(--segment-muted);
  font-size: 0.95rem;
}

.framework-reading-block {
  max-width: 820px;
}

.framework-reading-block p + p {
  margin-top: 1.15rem;
}

.framework-limits-grid,
.framework-principles-grid,
.framework-audience-grid {
  display: grid;
  gap: 1rem;
}

.framework-limits-grid,
.framework-principles-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.framework-audience-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.framework-principle {
  min-height: 100%;
}

.framework-principle__number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.7rem;
  height: 2.7rem;
  margin-bottom: 1rem;
  border-radius: 999px;
  background: var(--segment-accent-soft);
  color: var(--segment-accent-strong);
  font-size: 0.95rem;
  font-weight: 700;
}

.framework-audience-link {
  margin-top: 1rem;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: var(--segment-accent-strong);
  font-size: 0.92rem;
  font-weight: 600;
  text-decoration: none;
}

.framework-audience-link:hover {
  color: var(--segment-accent);
  text-decoration: none;
}

.segment-cta-band--centered .segment-cta-band__shell {
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
}

.segment-cta-band--centered .segment-cta-band__content {
  max-width: 820px;
  text-align: center;
}

.segment-cta-band--centered .segment-actions {
  justify-content: center;
}

.framework-tertiary-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem 1.4rem;
  margin-top: 1.5rem;
}

.framework-tertiary-links a {
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.92rem;
  font-weight: 600;
  text-decoration: none;
}

.framework-tertiary-links a:hover {
  color: #fff;
  text-decoration: none;
}

.framework-reference-note {
  max-width: 760px;
}

.plans-page .segment-hero {
  background: linear-gradient(145deg, #eef5fb 0%, #f7fafc 52%, #fbfcfe 100%);
}

.content-box .segment-page--plans {
  max-width: 100%;
  overflow: hidden;
}

.content-box .segment-page--plans .segment-page__full-bleed {
  margin-left: 0;
  margin-right: 0;
  border-radius: 18px;
}

.content-box .segment-page--plans .segment-shell {
  width: min(100%, calc(100% - 2rem));
}

.content-box .segment-page--plans .segment-hero__shell {
  grid-template-columns: 1fr;
  align-items: start;
  min-height: 0;
  padding: 3rem 0;
}

.content-box .segment-page--plans .segment-hero__copy h1 {
  max-width: 14ch;
  font-size: clamp(2.4rem, 5vw, 3.8rem);
}

.content-box .segment-page--plans .plans-pathway-grid,
.content-box .segment-page--plans .plans-card-grid {
  grid-template-columns: 1fr;
}

.content-box .segment-page--plans .segment-grid--four {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.content-box .segment-page--plans .segment-card,
.content-box .segment-page--plans .plans-table-block,
.content-box .segment-page--plans .table-responsive {
  min-width: 0;
}

.plans-pathway-grid,
.plans-card-grid {
  display: grid;
  gap: 1rem;
}

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

.plans-pathway-card {
  display: block;
  color: inherit;
  text-decoration: none;
}

.plans-pathway-card:hover,
.plans-pathway-card:focus-visible {
  color: inherit;
  text-decoration: none;
  transform: translateY(-2px);
}

.plans-pathway-card--institutional {
  background: linear-gradient(145deg, rgba(14, 107, 96, 0.1), rgba(255, 255, 255, 0.9) 72%);
}

.plans-card-cta {
  display: inline-flex;
  margin-top: 1rem;
  color: var(--segment-accent-strong);
  font-size: 0.93rem;
  font-weight: 700;
}

.plans-card-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}

.plans-plan-card {
  display: flex;
  flex-direction: column;
}

.plans-plan-card--featured {
  border-color: rgba(36, 95, 135, 0.22);
  background: linear-gradient(145deg, rgba(36, 95, 135, 0.1), rgba(255, 255, 255, 0.92) 72%);
}

.plans-plan-card__header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 1rem;
}

.plans-plan-card__price {
  color: var(--segment-accent-strong);
  font-family: "Fraunces", serif;
  font-size: 2.1rem;
  line-height: 1;
  white-space: nowrap;
}

.plans-plan-card__price span {
  color: var(--segment-muted);
  font-family: "Sora", sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
}

.plans-rate-note {
  margin-top: 0;
  color: var(--segment-accent-strong);
  font-size: 0.9rem;
  font-weight: 700;
}

.plans-plan-card h4 {
  margin: 1.4rem 0 0;
  color: var(--segment-ink);
  font-family: "Sora", sans-serif;
  font-size: 0.9rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.plans-best-for {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--segment-border);
}

.plans-best-for strong {
  display: block;
  color: var(--segment-ink);
  font-size: 0.92rem;
}

.plans-plan-card__button {
  align-self: flex-start;
  margin-top: auto;
}

.plans-institutional-band {
  margin-top: 5rem;
  padding-bottom: 5rem;
  background: linear-gradient(145deg, #eef8f5 0%, #f7fbf9 52%, #fbfdfc 100%);
}

.plans-institutional-band .segment-card__label,
.plans-institutional-band .segment-eyebrow {
  color: #0e6b60;
}

.plans-table-block {
  margin-top: 4rem;
}

.plans-feature-table,
.plans-pricing-table {
  overflow: hidden;
  border: 1px solid var(--segment-border);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: var(--segment-shadow);
}

.plans-feature-table th,
.plans-feature-table td,
.plans-pricing-table th,
.plans-pricing-table td {
  padding: 1rem;
  border-color: rgba(16, 33, 63, 0.08) !important;
  color: var(--segment-muted);
  font-size: 0.95rem;
  line-height: 1.55;
  vertical-align: top;
}

.plans-feature-table th,
.plans-pricing-table th {
  background: rgba(18, 50, 79, 0.06);
  color: var(--segment-ink);
  font-weight: 800;
}

.plans-feature-table td:first-child,
.plans-pricing-table td:first-child {
  color: var(--segment-ink);
}

.plans-pricing-table td strong,
.plans-pricing-table td span {
  display: block;
}

.plans-pricing-table td span {
  margin-top: 0.25rem;
  color: var(--segment-muted);
  font-size: 0.86rem;
}

.plans-pricing-table__adjustment td {
  background: rgba(14, 107, 96, 0.06);
  color: var(--segment-accent-strong);
  font-weight: 700;
}

.plans-footnotes {
  max-width: 860px;
  margin-top: 1rem;
}

.plans-footnotes p,
.plans-best-for p {
  margin: 0.35rem 0 0;
  font-size: 0.92rem;
}

.plans-footnotes p + p {
  margin-top: 0.65rem;
}

.plans-faq-list {
  display: grid;
  gap: 0.75rem;
}

.plans-faq-item {
  border: 1px solid var(--segment-border);
  border-radius: 18px;
  background: var(--segment-surface);
  box-shadow: 0 10px 24px rgba(20, 37, 69, 0.06);
}

.plans-faq-item summary {
  cursor: pointer;
  padding: 1rem 1.15rem;
  color: var(--segment-ink);
  font-family: "Sora", sans-serif;
  font-weight: 800;
}

.plans-faq-item p {
  margin: 0;
  padding: 0 1.15rem 1.15rem;
}

@media (max-width: 1199.98px) {
  .framework-audience-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .homepage-landing__hero-shell,
  .homepage-spotlight__shell,
  .segment-shell {
    width: min(100%, calc(100% - 2rem));
  }

  .framework-limits-grid,
  .framework-principles-grid,
  .framework-audience-grid,
  .plans-pathway-grid,
  .plans-card-grid {
    grid-template-columns: 1fr;
  }

  .segment-section {
    padding-top: 4rem;
  }

  .segment-proof-band {
    padding: 1.6rem;
  }

  .plans-plan-card__header {
    display: block;
  }

  .plans-plan-card__price {
    margin-top: 0.8rem;
  }
}

/* Public color system alignment */
body:has(.homepage-landing),
body:has(.segment-page) {
  background: var(--color-bg);
  color: var(--color-text);
}

body:has(.homepage-landing) #header-wrap,
body:has(.segment-page) #header-wrap {
  background: #fff;
  border-bottom: 1px solid rgba(170, 178, 208, 0.45);
}

body:has(.homepage-landing) #header #logo,
body:has(.segment-page) #header #logo {
  display: flex;
  align-items: center;
}

body:has(.homepage-landing) #header #logo a,
body:has(.segment-page) #header #logo a {
  line-height: 0;
}

body:has(.homepage-landing) #header.sticky-header:not(.static-sticky) .container,
body:has(.segment-page) #header.sticky-header:not(.static-sticky) .container {
  min-height: 60px;
}

.homepage-landing {
  --homepage-ink: var(--color-text);
  --homepage-ink-soft: var(--color-text-soft);
  --homepage-surface: rgba(255, 255, 255, 0.82);
  --homepage-line: rgba(170, 178, 208, 0.52);
  --homepage-shadow: 0 16px 38px rgba(45, 85, 131, 0.1);
  --homepage-radius: 24px;
  background: var(--color-bg);
}

.homepage-landing__hero {
  background:
    radial-gradient(circle at 10% 10%, rgba(10, 231, 255, 0.12), transparent 24%),
    radial-gradient(circle at 92% 12%, rgba(118, 160, 208, 0.24), transparent 18%),
    linear-gradient(145deg, var(--color-bg) 0%, rgba(183, 207, 235, 0.26) 48%, #fbfcfe 100%);
}

.homepage-landing__hero-shell {
  min-height: clamp(460px, 72vh, 680px);
}

.homepage-landing__hero::before {
  background: rgba(67, 119, 177, 0.1);
}

.homepage-landing__hero::after {
  background: rgba(183, 207, 235, 0.2);
}

.homepage-landing__eyebrow {
  color: var(--color-text-soft);
}

.homepage-landing__eyebrow--warm {
  color: var(--color-success);
}

.homepage-router__card,
.homepage-footer-router__link,
.homepage-trust__card {
  background: var(--homepage-surface);
  border-color: var(--homepage-line);
  box-shadow: var(--homepage-shadow);
}

.homepage-router__card:hover,
.homepage-router__card:focus-visible,
.homepage-footer-router__link:hover,
.homepage-footer-router__link:focus-visible {
  box-shadow: 0 22px 46px rgba(45, 85, 131, 0.14);
}

.homepage-router__card:focus-visible,
.homepage-footer-router__link:focus-visible,
.homepage-landing__button:focus-visible {
  outline: 2px solid var(--color-accent-cyan);
}

.homepage-router__card--researchers::before,
.homepage-footer-router__link--researchers::before {
  background: linear-gradient(140deg, rgba(67, 119, 177, 0.12), transparent 58%);
}

.homepage-router__card--institutions::before,
.homepage-footer-router__link--institutions::before {
  background: linear-gradient(140deg, rgba(45, 85, 131, 0.12), transparent 58%);
}

.homepage-router__card--policy::before,
.homepage-footer-router__link--policy::before {
  background: linear-gradient(140deg, rgba(30, 41, 59, 0.08), rgba(67, 119, 177, 0.08) 56%, transparent 72%);
}

.homepage-router__card--framework::before,
.homepage-footer-router__link--framework::before {
  background: linear-gradient(140deg, rgba(103, 78, 167, 0.14), rgba(183, 207, 235, 0.08) 58%, transparent 74%);
}

.homepage-footer-router__link--sponsorship::before {
  background: linear-gradient(140deg, rgba(251, 81, 14, 0.12), transparent 58%);
}

.homepage-router__cta {
  color: var(--color-secondary);
}

.homepage-router__card:hover .homepage-router__cta,
.homepage-router__card:focus-visible .homepage-router__cta {
  color: var(--color-accent-cyan);
}

.homepage-band__microgrid span {
  border-color: rgba(170, 178, 208, 0.5);
  background: rgba(255, 255, 255, 0.92);
  color: var(--color-text-soft);
}

.homepage-band__closing {
  color: var(--color-secondary);
}

.homepage-spotlight {
  background:
    radial-gradient(circle at 10% 10%, rgba(10, 231, 255, 0.12), transparent 24%),
    radial-gradient(circle at 92% 12%, rgba(118, 160, 208, 0.24), transparent 18%),
    linear-gradient(145deg, var(--color-bg) 0%, rgba(183, 207, 235, 0.26) 48%, #fbfcfe 100%);
}

.homepage-spotlight::before {
  width: 34rem;
  height: 34rem;
  top: -12rem;
  right: -10rem;
  background: rgba(67, 119, 177, 0.1);
  filter: blur(12px);
}

.homepage-spotlight::after {
  width: 22rem;
  height: 22rem;
  bottom: -10rem;
  left: -8rem;
  background: rgba(183, 207, 235, 0.2);
}

.homepage-landing__button--primary {
  background: var(--color-primary);
  box-shadow: 0 14px 28px rgba(67, 119, 177, 0.22);
  color: #fff !important;
}

.homepage-landing__button--primary:visited,
.homepage-landing__button--primary:hover {
  background: var(--color-primary-hover);
  color: #fff !important;
}

.homepage-landing__button--primary:focus-visible,
.homepage-landing__button--primary:active {
  color: #fff !important;
}

.homepage-landing__button--secondary {
  border-color: var(--color-primary);
  background: rgba(255, 255, 255, 0.9);
  color: var(--color-primary);
}

.homepage-landing__button--secondary:hover {
  background: rgba(183, 207, 235, 0.24);
  color: var(--color-primary-hover) !important;
}

.homepage-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin-top: 2rem;
}

.homepage-hero__text-link {
  display: inline-flex;
  margin-top: 1rem;
  color: var(--color-secondary);
  font-size: 0.94rem;
  font-weight: 600;
  text-decoration: none;
}

.homepage-hero__text-link:hover {
  color: var(--color-primary-hover);
  text-decoration: none;
}

.homepage-hero__claim-note {
  max-width: 820px;
  margin: 0.85rem 0 0;
  color: var(--homepage-ink-soft);
  font-size: 0.92rem;
  line-height: 1.55;
}

.homepage-segment-selector,
.homepage-trust,
.homepage-framework-teaser,
.homepage-footer-router {
  padding-top: 4rem;
}

.homepage-segment-selector__shell,
.homepage-framework-teaser__card {
  width: min(1040px, calc(100% - 3rem));
  margin: 0 auto;
}

.homepage-segment-selector__header,
.homepage-framework-teaser__card,
.homepage-footer-router__header {
  text-align: center;
}

.homepage-segment-selector__header {
  margin-bottom: 1.25rem;
}

.homepage-trust__card--single-line {
  max-width: 1040px;
  padding: 1.8rem 2rem;
}

.homepage-trust__card--single-line .homepage-trust__primary {
  font-size: clamp(1.5rem, 3vw, 2.3rem);
}

.homepage-framework-teaser__card {
  padding: 2.75rem 3rem;
  border: 1px solid var(--homepage-line);
  border-radius: calc(var(--homepage-radius) - 4px);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.92) 0%, rgba(245, 248, 252, 0.96) 100%);
  box-shadow: var(--homepage-shadow);
}

.homepage-framework-teaser__card p {
  max-width: 34rem;
  margin: 1rem auto 0;
  color: var(--homepage-ink-soft);
  font-size: 1.02rem;
  line-height: 1.75;
}

.homepage-framework-teaser__card .homepage-landing__button {
  margin-top: 1.75rem;
}

.homepage-footer-router__supporting {
  max-width: 34rem;
  margin: 0.75rem auto 0;
  color: var(--homepage-ink-soft);
  font-size: 1rem;
  line-height: 1.7;
}

.homepage-footer-router__grid {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.homepage-header-menu > li > a {
  color: var(--color-secondary) !important;
}

.homepage-header-menu > li > a:hover {
  background: rgba(183, 207, 235, 0.18);
  color: var(--color-accent-cyan) !important;
}

.homepage-header-menu__cta > a {
  background: var(--color-primary);
  box-shadow: 0 10px 22px rgba(67, 119, 177, 0.2);
  color: #fff !important;
}

.homepage-header-menu__cta > a:hover {
  background: var(--color-primary-hover);
  color: #fff !important;
}

@media (max-width: 991px) {
  .homepage-framework-teaser__card {
    padding: 2.25rem 1.85rem;
  }
}

@media (max-width: 767px) {
  .homepage-hero__actions {
    flex-direction: column;
    align-items: stretch;
    max-width: 22rem;
  }

  .homepage-segment-selector,
  .homepage-trust,
  .homepage-framework-teaser,
  .homepage-footer-router {
    padding-top: 3.25rem;
  }

  .homepage-framework-teaser__card {
    width: min(100%, calc(100% - 2rem));
    padding: 2rem 1.4rem;
  }
}

.segment-page {
  --segment-accent: var(--color-primary);
  --segment-accent-soft: rgba(67, 119, 177, 0.12);
  --segment-accent-strong: var(--color-secondary);
  --segment-border: rgba(170, 178, 208, 0.52);
  --segment-shadow: 0 16px 38px rgba(45, 85, 131, 0.1);
  --segment-surface: rgba(255, 255, 255, 0.82);
  --segment-muted: rgba(30, 41, 59, 0.82);
  --segment-ink: var(--color-text);
  background: var(--color-bg);
}

.segment-page--researchers {
  --segment-accent: var(--color-primary);
  --segment-accent-soft: rgba(118, 160, 208, 0.16);
}

.segment-page--institutions {
  --segment-accent: var(--color-secondary);
  --segment-accent-soft: rgba(151, 181, 216, 0.18);
}

.segment-page--policy {
  --segment-accent: var(--color-secondary);
  --segment-accent-soft: rgba(183, 207, 235, 0.22);
}

.segment-page--framework {
  --segment-accent: var(--color-secondary);
  --segment-accent-soft: rgba(103, 78, 167, 0.12);
}

.segment-page--sponsorship {
  --segment-accent: var(--color-accent-warm);
  --segment-accent-soft: rgba(251, 81, 14, 0.1);
}

.segment-hero {
  background:
    radial-gradient(circle at 10% 10%, rgba(10, 231, 255, 0.1), transparent 26%),
    radial-gradient(circle at 88% 12%, rgba(118, 160, 208, 0.22), transparent 18%),
    linear-gradient(145deg, var(--color-bg) 0%, rgba(183, 207, 235, 0.26) 50%, #fbfcfe 100%);
}

.segment-page--institutions .segment-hero {
  background:
    radial-gradient(circle at 10% 10%, rgba(151, 181, 216, 0.18), transparent 26%),
    linear-gradient(145deg, rgba(239, 239, 239, 0.7) 0%, rgba(241, 245, 250, 0.92) 50%, #fbfcfe 100%);
}

.segment-page--policy .segment-hero {
  background:
    radial-gradient(circle at 10% 10%, rgba(183, 207, 235, 0.24), transparent 27%),
    linear-gradient(145deg, rgba(241, 245, 250, 0.96) 0%, rgba(239, 239, 239, 0.82) 50%, #fbfcfe 100%);
}

.segment-page--framework .segment-hero {
  background:
    radial-gradient(circle at 12% 12%, rgba(103, 78, 167, 0.12), transparent 24%),
    radial-gradient(circle at 88% 14%, rgba(183, 207, 235, 0.28), transparent 18%),
    linear-gradient(150deg, rgba(241, 245, 250, 0.98) 0%, rgba(239, 239, 239, 0.82) 52%, #fbfcfe 100%);
}

.segment-page--sponsorship .segment-hero {
  background:
    radial-gradient(circle at 10% 10%, rgba(251, 81, 14, 0.1), transparent 24%),
    linear-gradient(145deg, rgba(239, 239, 239, 0.72) 0%, rgba(241, 245, 250, 0.94) 50%, #ffffff 100%);
}

.segment-card,
.segment-proof-band,
.segment-framework-browser {
  border-color: var(--segment-border);
  box-shadow: var(--segment-shadow);
}

.segment-button:focus-visible {
  outline: 2px solid var(--color-accent-cyan);
}

.segment-button--primary {
  background: var(--color-primary);
  box-shadow: 0 14px 28px rgba(67, 119, 177, 0.22);
}

.segment-button--primary:hover {
  background: var(--color-primary-hover);
}

.segment-button--secondary {
  border-color: var(--color-primary);
  background: rgba(255, 255, 255, 0.9);
  color: var(--color-primary);
}

.segment-button--secondary:hover {
  background: rgba(183, 207, 235, 0.24);
  color: var(--color-primary-hover) !important;
}

.segment-form__input {
  color: var(--color-text);
}

.segment-form__input:focus {
  border-color: rgba(10, 231, 255, 0.6);
  box-shadow: 0 0 0 4px rgba(10, 231, 255, 0.14);
}

.segment-hero__supporting-line {
  max-width: 46rem;
  margin-top: 1.1rem;
  color: var(--color-text-soft);
  font-size: 0.96rem;
  font-weight: 600;
}

.policy-use-case-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
}

.policy-use-case-grid .segment-card {
  min-height: 100%;
}

.segment-cta-band {
  background: linear-gradient(145deg, var(--color-text) 0%, var(--color-secondary) 100%);
}

.segment-cta-band::before {
  background: rgba(118, 160, 208, 0.16);
}

.segment-page--institutions .segment-cta-band {
  background: linear-gradient(145deg, var(--color-text) 0%, var(--color-primary) 100%);
}

.segment-page--policy .segment-cta-band {
  background: linear-gradient(145deg, var(--color-text) 0%, var(--color-secondary) 100%);
}

.segment-page--framework .segment-cta-band {
  background: linear-gradient(145deg, var(--color-text) 0%, var(--color-secondary) 80%, var(--color-accent-purple) 100%);
}

.segment-page--framework .segment-cta-band::before {
  background: rgba(103, 78, 167, 0.18);
}

.segment-page--sponsorship .segment-cta-band {
  background: linear-gradient(145deg, var(--color-text) 0%, var(--color-secondary) 100%);
}

.segment-page--sponsorship .segment-cta-band::before {
  background: rgba(251, 81, 14, 0.16);
}

.segment-page--framework .segment-framework-browser {
  background: rgba(255, 255, 255, 0.88);
  border-color: rgba(170, 178, 208, 0.5);
}

.segment-page--framework .oneframework-card {
  background: rgba(255, 255, 255, 0.9);
}

.framework-principle__number {
  background: rgba(103, 78, 167, 0.12);
  border: 1px solid rgba(103, 78, 167, 0.18);
  color: var(--color-accent-purple);
}

.framework-audience-link {
  color: var(--color-secondary);
}

.framework-audience-link:hover {
  color: var(--color-accent-cyan);
}

.framework-tertiary-links a {
  color: rgba(241, 245, 250, 0.82);
}

.framework-tertiary-links a:hover {
  color: var(--color-accent-cyan);
}

.segment-tertiary-links {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.4rem;
  margin-top: 1.5rem;
}

.segment-tertiary-links a {
  color: rgba(241, 245, 250, 0.82);
  font-size: 0.92rem;
  font-weight: 600;
  text-decoration: none;
}

.segment-tertiary-links a:hover {
  color: var(--color-accent-cyan);
  text-decoration: none;
}

#footer,
#copyrights {
  color: rgba(241, 245, 250, 0.9);
}

#footer h3,
#footer strong,
#footer abbr,
#footer address,
#footer span,
#copyrights,
#copyrights a {
  color: inherit;
}

#footer a,
#copyrights a {
  color: var(--columbia-blue);
}

#footer a:hover,
#copyrights a:hover {
  color: var(--electric-blue);
}

#footer .copyright-links a {
  border-bottom-color: rgba(183, 207, 235, 0.45);
}

#footer .copyright-links a:hover {
  border-bottom-color: rgba(10, 231, 255, 0.55);
}

.bg-light {
  background-color: var(--alice-blue) !important;
}

.institution-footprint-page {
  display: grid;
  gap: 2rem;
}

.institution-footprint-hero {
  display: grid;
  gap: 1.5rem;
  /* padding: 2rem; */
  /* border: 1px solid rgba(20, 79, 69, 0.12); */
  border-radius: 1.25rem;
  /*background:
    radial-gradient(circle at top right, rgba(125, 161, 112, 0.16), transparent 34%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(241, 246, 243, 0.96));*/
}

.institution-footprint-hero__eyebrow {
  margin-bottom: 0.65rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text);
}

.institution-footprint-hero__lede {
  max-width: 52rem;
  font-size: 1.02rem;
}

.institution-footprint-hero__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.institution-footprint-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.95rem;
  border: solid 1px var(--border);
  border-radius: 5px;
  background: var(--alice-blue);
  color: var(--text);
  font-weight: 600;
  text-decoration: none;
}

.institution-footprint-chip:hover {
  color: white !important;
  text-decoration: none;
  background: var(--yinmn-blue);
}

.institution-footprint-section {
  display: grid;
  gap: 1.25rem;
}

.institution-footprint-section__header {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1rem;
}

.institution-footprint-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.institution-footprint-kpi,
.institution-footprint-panel,
.institution-footprint-usecase {
  border: 1px solid rgba(19, 49, 70, 0.08);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 18px 36px rgba(19, 49, 70, 0.05);
}

.institution-footprint-kpi {
  padding: 1.15rem 1.25rem;
}

.institution-footprint-kpi__label {
  display: block;
  margin-bottom: 0.45rem;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(19, 49, 70, 0.62);
}

.institution-footprint-kpi strong {
  font-size: 1.8rem;
  color: #133146;
}

.institution-footprint-panel {
  padding: 1.3rem;
}

.institution-footprint-panel__title {
  margin-bottom: 1rem;
}

.institution-footprint-map,
.institution-footprint-chart {
  min-height: 340px;
}

.institution-collaboration-network-shell {
  position: relative;
  min-height: 520px;
  overflow: hidden;
}

.institution-collaboration-network-map {
  min-height: 520px;
}

.institution-footprint-table th {
  border-top: 0;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(19, 49, 70, 0.64);
}

.institution-footprint-table__row {
  cursor: pointer;
}

.institution-footprint-table__row:hover {
  background: rgba(183, 207, 235, 0.22);
}

.institution-footprint-table__row--active {
  background: rgba(0, 191, 21, 0.12);
}

.institution-footprint-table__row--active .institution-footprint-link {
  color: var(--malachite);
}

.institution-footprint-table__country-cell .institution-footprint-link {
  font-size: 0.88rem;
}

.institution-footprint-link {
  color: #1d6971;
  font-weight: 600;
  text-decoration: none;
}

.institution-footprint-link:hover {
  color: #174f45;
}

/* ONE repositioning sprint */
.homepage-section {
  padding-top: 4rem;
}

.homepage-section__shell {
  width: min(1040px, calc(100% - 3rem));
  margin: 0 auto;
}

.homepage-section__header {
  max-width: 760px;
  margin: 0 auto 1.5rem;
  text-align: center;
}

.homepage-section__header p {
  line-height: 1.75;
}

.homepage-reading-block {
  max-width: 820px;
  margin: 0 auto;
  padding: 2rem;
  border: 1px solid var(--homepage-line);
  border-radius: calc(var(--homepage-radius) - 8px);
  background: var(--homepage-surface);
  box-shadow: var(--homepage-shadow);
}

.homepage-highlight {
  margin-top: 1.5rem;
  color: var(--homepage-ink) !important;
  font-weight: 700;
}

.homepage-card-grid {
  display: grid;
  gap: 1rem;
}

.homepage-card-grid--four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.homepage-card-grid--five {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.homepage-card {
  min-height: 100%;
  padding: 1.5rem;
  border: 1px solid var(--homepage-line);
  border-radius: calc(var(--homepage-radius) - 10px);
  background: var(--homepage-surface);
  box-shadow: var(--homepage-shadow);
}

.homepage-card h3 {
  margin-bottom: 0.75rem;
  color: var(--homepage-ink);
  font-size: 1.15rem;
}

.homepage-card p {
  margin-bottom: 0;
  line-height: 1.65;
}

.homepage-flow,
.segment-flow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

.homepage-flow span,
.segment-flow span {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 0.55rem 0.9rem;
  border: 1px solid var(--homepage-line, var(--segment-border));
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.82);
  color: var(--homepage-ink, var(--segment-accent-strong));
  font-size: 0.95rem;
  font-weight: 700;
}

.homepage-flow span:not(:last-child)::after,
.segment-flow span:not(:last-child)::after {
  content: "\2192";
  margin-left: 0.75rem;
  color: var(--homepage-ink-soft, var(--segment-muted));
}

.homepage-hero__actions--centered {
  justify-content: center;
}

.homepage-header-menu__resources {
  position: relative;
}

.homepage-header-menu__dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 0.35rem);
  right: 0;
  z-index: 1000;
  min-width: 210px;
  margin: 0;
  padding: 0.5rem;
  border: 1px solid rgba(170, 178, 208, 0.52);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 16px 38px rgba(45, 85, 131, 0.16);
  list-style: none;
}

.homepage-header-menu__resources:hover .homepage-header-menu__dropdown,
.homepage-header-menu__resources:focus-within .homepage-header-menu__dropdown {
  display: block;
}

.homepage-header-menu__dropdown a {
  display: block;
  padding: 0.55rem 0.7rem;
  border-radius: 6px;
  color: var(--color-secondary) !important;
  font-size: 0.92rem;
  font-weight: 600;
  white-space: nowrap;
}

.homepage-header-menu__dropdown a:hover {
  background: rgba(183, 207, 235, 0.18);
  color: var(--color-primary-hover) !important;
}

.footer-site-links {
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-site-links li {
  margin-bottom: 0.45rem;
}

.footer-site-links a {
  color: var(--powder-blue) !important;
}

.footer-site-links a:hover {
  color: white !important;
}

.footer-evidence-counters {
  align-items: flex-start;
}

.footer-evidence-counter.counter {
  color: #fff;
  font-size: 2.2rem;
  line-height: 1;
}

.footer-evidence-counter span {
  color: #fff;
}

.footer-evidence-counter__label {
  margin: 0.45rem 0 0;
  color: var(--powder-blue);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: uppercase;
}

.segment-inline-link {
  display: inline-flex;
  margin-top: 0.75rem;
  color: var(--segment-accent-strong) !important;
  font-weight: 700;
}

.tutorial-card {
  display: flex;
  overflow: hidden;
  border: 1px solid rgba(170, 178, 208, 0.52);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 12px 28px rgba(45, 85, 131, 0.08);
}

.tutorial-card__thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 150px;
  min-height: 180px;
  background: linear-gradient(145deg, rgba(67, 119, 177, 0.15), rgba(183, 207, 235, 0.28));
  color: var(--color-secondary);
  font-size: 2.4rem;
}

.tutorial-card__body {
  flex: 1;
  padding: 1.4rem;
}

@media (max-width: 991.98px) {
  .homepage-card-grid--four,
  .homepage-card-grid--five {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .homepage-header-menu__dropdown {
    position: static;
    display: block;
    min-width: 100%;
    margin-top: 0.35rem;
    box-shadow: none;
  }
}

@media (max-width: 575.98px) {
  .homepage-section {
    padding-top: 3rem;
  }

  .homepage-section__shell {
    width: 100%;
  }

  .homepage-reading-block {
    padding: 1.25rem;
  }

  .homepage-card-grid--four,
  .homepage-card-grid--five {
    grid-template-columns: 1fr;
  }

  .tutorial-card {
    display: block;
  }

  .tutorial-card__thumb {
    width: 100%;
    min-height: 120px;
  }
}

.country-network-page {
  display: grid;
  gap: 1.25rem;
  padding: 2rem 0;
}

.country-network-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.5rem;
  align-items: end;
}

.country-network-eyebrow {
  margin: 0;
  color: var(--yinmn-blue);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
}

.country-network-lede {
  max-width: 46rem;
  color: rgba(19, 49, 70, 0.72);
}

.country-network-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(6rem, 1fr));
  gap: 0.65rem;
  min-width: 24rem;
}

.country-network-summary-item {
  padding: 0.8rem 0.95rem;
  border: 1px solid rgba(19, 49, 70, 0.1);
  border-radius: 8px;
  background: #fff;
}

.country-network-summary-item strong {
  display: block;
  color: #133146;
  font-size: 1.45rem;
  line-height: 1.1;
}

.country-network-summary-item span {
  color: rgba(19, 49, 70, 0.68);
  font-size: 0.82rem;
}

.country-network-controls,
.country-network-chart-panel,
.country-network-side-panel {
  border: 1px solid rgba(19, 49, 70, 0.1);
  border-radius: 8px;
  background: #fff;
}

.country-network-controls {
  display: grid;
  grid-template-columns: minmax(10rem, auto) minmax(18rem, auto) minmax(9rem, auto) minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
  padding: 1rem;
}

.country-network-control-group {
  display: grid;
  gap: 0.45rem;
}

.country-network-control-group--wide {
  min-width: 0;
}

.country-network-control-label {
  color: rgba(19, 49, 70, 0.68);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
}

.country-network-button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.country-network-button {
  min-height: 2rem;
  padding: 0.3rem 0.65rem;
  border: 1px solid rgba(45, 85, 131, 0.26);
  border-radius: 6px;
  background: #f8fbff;
  color: #1e3f62;
  font-size: 0.86rem;
  font-weight: 700;
  line-height: 1.2;
}

.country-network-button:hover,
.country-network-button:focus {
  border-color: var(--ucla-blue);
  background: #eef5ff;
}

.country-network-button--active {
  border-color: var(--yinmn-blue);
  background: var(--yinmn-blue);
  color: #fff;
}

.country-network-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(15rem, 18rem);
  gap: 1rem;
  align-items: stretch;
}

.country-network-chart-panel {
  position: relative;
  min-height: 680px;
  overflow: hidden;
}

.country-network-chart {
  width: 100%;
  min-height: 680px;
}

.country-network-status {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 1;
  max-width: min(28rem, calc(100% - 2rem));
  padding: 0.45rem 0.7rem;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.92);
  color: rgba(19, 49, 70, 0.76);
  font-size: 0.88rem;
  box-shadow: 0 6px 18px rgba(19, 49, 70, 0.08);
}

.country-network-status:empty {
  display: none;
}

.institution-similarity-map-status {
  position: static;
  max-width: none;
  margin-bottom: 0.75rem;
}

.institution-main-fields-list {
  list-style-type: decimal;
  list-style-position: outside;
}

.country-network-side-panel {
  padding: 1rem;
}

.country-network-side-title {
  margin: 0 0 0.85rem;
  color: #133146;
  font-size: 1rem;
  font-weight: 700;
}

.country-network-link-list {
  display: grid;
  gap: 0.6rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.country-network-link-item {
  padding: 0.7rem;
  border: 1px solid rgba(19, 49, 70, 0.08);
  border-radius: 8px;
  background: #fbfcfe;
}

.country-network-link-pair {
  display: block;
  color: #133146;
  font-weight: 700;
  line-height: 1.25;
}

.country-network-link-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.35rem;
  color: rgba(19, 49, 70, 0.7);
  font-size: 0.84rem;
}

@media (max-width: 1199.98px) {
  .country-network-header,
  .country-network-layout,
  .country-network-controls {
    grid-template-columns: 1fr;
  }

  .country-network-summary {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 575.98px) {
  .country-network-summary {
    grid-template-columns: 1fr;
  }

  .country-network-chart,
  .country-network-chart-panel {
    min-height: 520px;
  }
}

.institution-footprint-list {
  display: grid;
  gap: 0.9rem;
}

.institution-footprint-insights {
  display: grid;
  gap: 1rem;
}

.institution-footprint-insight {
  padding-bottom: 0.95rem;
  border-bottom: 1px solid rgba(19, 49, 70, 0.08);
}

.institution-footprint-insight:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.institution-footprint-insight__label {
  display: block;
  margin-bottom: 0.3rem;
  font-size: 0.84rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(19, 49, 70, 0.6);
}

.institution-footprint-usecases {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.institution-footprint-usecase {
  padding: 1.3rem;
}

.institution-footprint-usecase h3 {
  margin-bottom: 0.75rem;
  font-size: 1.05rem;
}

.institution-footprint-kpis--compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.institution-footprint-table--dense th,
.institution-footprint-table--dense td {
  font-size: 0.84rem;
  padding-top: 0.18rem;
  padding-bottom: 0.18rem;
  white-space: nowrap;
}

@media (max-width: 991.98px) {
  .institution-footprint-kpis,
  .institution-footprint-usecases {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .institution-footprint-hero {
    padding: 1.35rem;
  }

  .institution-footprint-kpis,
  .institution-footprint-usecases {
    grid-template-columns: 1fr;
  }
}

.institution-overview-page {
  display: grid;
  gap: 2rem;
}

.institution-overview-hero {
  display: grid;
  gap: 1.5rem;
  border-radius: 1.25rem;
}

.institution-overview-hero__eyebrow {
  margin-bottom: 0.65rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text);
}

.institution-overview-hero__lede {
  max-width: 54rem;
  font-size: 1.02rem;
}

.institution-overview-hero__nav,
.institution-overview-badges,
.institution-overview-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.institution-overview-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.95rem;
  border: solid 1px var(--border);
  border-radius: 5px;
  background: var(--alice-blue);
  color: var(--text);
  font-weight: 600;
  text-decoration: none;
}

.institution-overview-chip:hover {
  color: white !important;
  text-decoration: none;
  background: var(--yinmn-blue);
}

.institution-overview-badge {
  padding: 0.45rem 0.7rem;
  border: 1px solid rgba(19, 49, 70, 0.08);
  border-radius: 999px;
  background: rgba(216, 239, 228, 0.4);
  color: #174f45;
  font-weight: 600;
}

.institution-overview-refresh,
.institution-overview-panel,
.institution-overview-kpi,
.institution-overview-module-card,
.institution-overview-signal-card,
.institution-overview-empty__card {
  padding: 1rem 1.1rem;
  border: 1px solid rgba(19, 49, 70, 0.08);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 18px 36px rgba(19, 49, 70, 0.05);
}

.institution-overview-refresh {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 1.25rem;
  padding: 1.15rem 1.25rem;
  box-shadow: 0 10px 24px rgba(19, 49, 70, 0.04);
}

.institution-overview-refresh__status,
.institution-overview-refresh__filters,
.institution-overview-panel {
  display: grid;
  gap: 1rem;
}

.institution-overview-refresh__facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
}

.institution-overview-stat {
  padding: 1rem;
  border-radius: 0.9rem;
  background: rgba(216, 239, 228, 0.24);
}

.institution-overview-stat__label,
.institution-overview-kpi__label,
.institution-overview-signal-card__label,
.institution-overview-module-card__metric span {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(19, 49, 70, 0.62);
}

.institution-overview-status-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  background: rgba(251, 81, 14, 0.1);
  color: #8d4a11;
  font-size: 0.92rem;
  font-weight: 700;
}

.institution-overview-status-badge[data-status-state="up_to_date"] {
  background: rgba(0, 191, 21, 0.12);
  color: #0d6b29;
}

.institution-overview-status-badge[data-status-state="minor_updates"],
.institution-overview-status-badge[data-status-state="queued"] {
  background: rgba(255, 190, 11, 0.14);
  color: #8a6514;
}

.institution-overview-status-badge[data-status-state="running"] {
  background: rgba(29, 105, 113, 0.12);
  color: #1d6971;
}

.institution-overview-refresh__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.institution-overview-progress-shell {
  grid-column: 1 / -1;
  margin-top: 0.1rem;
}

.institution-overview-progress {
  display: grid;
  gap: 0.85rem;
  padding: 1rem;
  /*border-radius: 0.95rem;
  background:
    linear-gradient(135deg, rgba(243, 249, 247, 0.95), rgba(251, 248, 239, 0.96));*/
  /*border: 1px solid var(--border);*/
}

.institution-overview-progress__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.75rem;
}

.institution-overview-progress__eyebrow {
  display: block;
  margin-bottom: 0.2rem;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: rgba(19, 49, 70, 0.54);
}

.institution-overview-progress__summary {
  display: block;
  color: #133146;
}

.institution-overview-progress__count {
  min-width: 3rem;
  text-align: right;
  font-weight: 700;
  color: #1d6971;
}

.institution-overview-progress__bar {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 0.4rem;
}

.institution-overview-progress__segment {
  display: block;
  height: 0.62rem;
  border-radius: 999px;
  background: rgba(19, 49, 70, 0.12);
  overflow: hidden;
}

.institution-overview-progress__segment.is-completed {
  background: linear-gradient(90deg, #16876a, #1aa97f);
}

.institution-overview-progress__segment.is-current {
  background: linear-gradient(90deg, #1d6971, #2f96a1);
}

.institution-overview-progress__segment.is-queued {
  background: linear-gradient(90deg, #d7ab34, #f0c453);
}

.institution-overview-progress__segment.is-failed {
  background: linear-gradient(90deg, #b94b44, #de6a62);
}

.institution-overview-progress__focus {
  padding: 0.8rem 0.95rem;
  border-radius: 0.9rem;
  border: 1px solid rgba(19, 49, 70, 0.08);
  background: rgba(255, 255, 255, 0.84);
}

.institution-overview-progress__focus-head {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.25rem;
}

.institution-overview-progress__focus strong {
  display: block;
  color: #133146;
}

.institution-overview-progress__focus p {
  color: rgba(19, 49, 70, 0.68);
  font-size: 0.92rem;
}

.institution-overview-progress__state {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(19, 49, 70, 0.56);
}

.institution-overview-progress__focus.is-completed {
  border-color: rgba(22, 135, 106, 0.18);
  background: rgba(232, 247, 241, 0.95);
}

.institution-overview-progress__focus.is-completed .institution-overview-progress__state {
  background: rgba(22, 135, 106, 0.12);
  color: #16876a;
}

.institution-overview-progress__focus.is-current {
  border-color: rgba(29, 105, 113, 0.2);
  background: rgba(232, 245, 246, 0.96);
}

.institution-overview-progress__focus.is-current .institution-overview-progress__state {
  background: rgba(29, 105, 113, 0.12);
  color: #1d6971;
}

.institution-overview-progress__focus.is-queued {
  border-color: rgba(215, 171, 52, 0.22);
  background: rgba(255, 248, 224, 0.94);
}

.institution-overview-progress__focus.is-queued .institution-overview-progress__state {
  background: rgba(215, 171, 52, 0.16);
  color: #9d6b0f;
}

.institution-overview-progress__focus.is-failed {
  border-color: rgba(185, 75, 68, 0.22);
  background: rgba(252, 239, 237, 0.96);
}

.institution-overview-progress__focus.is-failed .institution-overview-progress__state {
  background: rgba(185, 75, 68, 0.12);
  color: #b94b44;
}

.institution-overview-section {
  display: grid;
  gap: 1.25rem;
}

.institution-overview-section__header,
.institution-overview-panel__header,
.institution-overview-module-card__top {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 1rem;
}

.institution-overview-section-title,
.institution-overview-panel__title {
  margin-bottom: 0;
}

.institution-overview-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.institution-overview-kpi {
  min-height: 7.5rem;
  padding: 1.35rem 1.45rem;
}

.institution-overview-kpi strong {
  font-size: 2rem;
  color: #133146;
}

.institution-evidence-readiness {
  gap: 1rem;
}

.institution-evidence-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.institution-evidence-legend span {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0.35rem 0.6rem;
  border: 1px solid rgba(170, 178, 208, 0.55);
  border-radius: 5px;
  font-size: 0.82rem;
  font-weight: 700;
}

.institution-evidence-legend span::before {
  content: "";
  width: 0.7rem;
  height: 0.7rem;
  margin-right: 0.4rem;
  border-radius: 50%;
  background: currentColor;
}

.institution-evidence-matrix-shell {
  width: 100%;
  overflow-x: auto;
  border: 1px solid var(--border, #aab2d0);
  border-radius: 0.75rem;
  background: var(--alice-blue, #F1F5FA);
}

.institution-evidence-matrix {
  width: 100%;
  min-width: 860px;
  margin-bottom: 0;
  border-collapse: separate;
  border-spacing: 0;
}

.institution-evidence-matrix th,
.institution-evidence-matrix td {
  padding: 0.65rem;
  border-bottom: 1px solid rgba(170, 178, 208, 0.38);
  vertical-align: middle;
}

.institution-evidence-matrix thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--alice-blue, #F1F5FA);
  color: var(--yinmn-blue, #2d5583);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.institution-evidence-matrix th:first-child {
  width: 18rem;
  min-width: 18rem;
  color: var(--dark-slate, #1e293b);
}

.institution-evidence-matrix__group-row th,
.institution-evidence-matrix__group-row td {
  background: rgba(183, 207, 235, 0.28);
}

.institution-evidence-group-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--dark-slate, #1e293b);
  font: inherit;
  text-align: left;
}

.institution-evidence-group-toggle span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.45rem;
  height: 1.45rem;
  border: 1px solid rgba(170, 178, 208, 0.72);
  border-radius: 50%;
  background: var(--alice-blue, #F1F5FA);
  color: var(--ucla-blue, #4377b1);
  font-weight: 800;
}

.institution-evidence-matrix__detail-row th {
  padding-left: 2.75rem;
  font-weight: 600;
}

.institution-evidence-cell {
  display: grid;
  gap: 0.2rem;
  width: 100%;
  min-height: 4.1rem;
  padding: 0.55rem 0.6rem;
  border: 1px solid rgba(170, 178, 208, 0.62);
  border-radius: 0.45rem;
  color: var(--dark-slate, #1e293b);
  text-align: left;
  background: var(--anti-flash-white, #EFEFEF);
}

.institution-evidence-cell:hover,
.institution-evidence-cell:focus {
  outline: none;
  border-color: rgba(67, 119, 177, 0.48);
  box-shadow: 0 0 0 0.16rem rgba(67, 119, 177, 0.16);
}

.institution-evidence-cell__rate {
  font-weight: 800;
}

.institution-evidence-cell__label,
.institution-evidence-cell__note {
  font-size: 0.74rem;
  line-height: 1.15;
}

.institution-evidence-cell__note {
  color: rgba(30, 41, 59, 0.68);
}

.institution-evidence-cell--evidence_missing,
.institution-evidence-legend span[data-state="evidence_missing"] {
  background: var(--anti-flash-white, #EFEFEF);
  color: var(--yinmn-blue, #2d5583);
}

.institution-evidence-cell--limited_evidence,
.institution-evidence-legend span[data-state="limited_evidence"] {
  background: var(--columbia-blue, #b7cfeb);
  color: var(--yinmn-blue, #2d5583);
}

.institution-evidence-cell--moderate_evidence,
.institution-evidence-legend span[data-state="moderate_evidence"] {
  background: var(--yinmn-blue, #2d5583);
  color: white;
}

.institution-evidence-cell--evidence_ready,
.institution-evidence-legend span[data-state="evidence_ready"] {
  background: var(--malachite, #00bf15);
  color: white;
}

.institution-evidence-detail {
  border: 1px solid rgba(170, 178, 208, 0.62);
  border-radius: 0.75rem;
  background: var(--alice-blue, #F1F5FA);
}

.institution-evidence-detail__content {
  display: grid;
  gap: 1rem;
  padding: 1rem;
}

.institution-evidence-detail__header,
.institution-evidence-detail__actions {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.institution-evidence-detail__eyebrow {
  display: block;
  margin-bottom: 0.2rem;
  color: var(--yinmn-blue, #2d5583);
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.institution-evidence-detail__header h3 {
  margin-bottom: 0;
  color: var(--dark-slate, #1e293b);
}

.institution-dimension-profile {
  gap: 1rem;
}

.institution-dimension-grid {
  width: 100%;
}

.institution-dimension-card {
  display: flex;
  flex-direction: column;
  height: auto;
  min-height: 0;
  overflow: visible;
  padding: 0.85rem;
}

.institution-dimension-card--button {
  width: 100%;
  cursor: pointer;
}

.institution-dimension-card--button:focus {
  outline: 3px solid rgba(10, 231, 255, 0.45);
  outline-offset: 3px;
}

.institution-dimension-card:hover,
.institution-dimension-card--button:focus {
  border-width: 1px;
}

.institution-dimension-card__axis {
  flex: 0 0 auto;
}

.institution-dimension-card h4 {
  min-height: 2.2rem;
  margin-bottom: 0;
  color: var(--yinmn-blue, #2d5583);
  font-size: 0.88rem;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.institution-dimension-card__axis--scientific-community h4 {
  color: #274E12;
}

.institution-dimension-card__axis--public-outreach h4 {
  color: #351B76;
}

.institution-dimension-workspace__axis.institution-dimension-card__axis--scientific-community {
  color: #274E12;
}

.institution-dimension-workspace__axis.institution-dimension-card__axis--public-outreach {
  color: #351B76;
}


#oneApplications li {
  display: inline-block;
  padding: 0.5rem 0.75rem;
  font-weight: 600;
}


.institution-dimension-card__main {
  flex: 0 0 auto;
  min-width: 0;
  padding-top: 0.6rem;
}

.institution-dimension-card__image {
  min-height: 0;
  height: 6.4rem;
  margin-bottom: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.institution-dimension-card__image .dimension-image {
  max-height: 6.4rem;
  width: 100%;
  object-fit: contain;
}

.institution-dimension-card__title {
  min-height: 0;
  margin-bottom: 0;
  color: var(--dark-slate, #1e293b);
  font-size: 1.22rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.institution-dimension-card__score {
  display: flex;
  justify-content: center;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.2rem 0.35rem;
  max-width: 100%;
  margin: 0.85rem 0;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.institution-dimension-card .institution-dimension-card__score-value {
  font-size: 2.45rem;
  line-height: 2.55rem;
  max-width: 100%;
  text-align: center;
  overflow-wrap: anywhere;
}

.institution-dimension-card__score-denominator {
  color: rgba(30, 41, 59, 0.72);
  font-size: 0.95rem;
  line-height: 1.1rem;
  white-space: nowrap;
}

.institution-dimension-card__distribution {
  margin: 0 0 0.85rem;
}

.institution-dimension-card__distribution-chart {
  width: 100%;
  height: 4.5rem;
}

.institution-dimension-card__distribution-caption {
  margin-top: 1.5rem;
  color: rgba(30, 41, 59, 0.68);
  font-size: 1rem;
  line-height: 1.25;
  text-align: center;
}

.institution-dimension-card--expanded {
  border-color: rgba(10, 231, 255, 0.75);
  box-shadow: 0 0 0 3px rgba(10, 231, 255, 0.16);
}

.institution-dimension-workspace[hidden] {
  display: none;
}

.institution-dimension-workspace {
  width: 100%;
  margin: 0.75rem 0 1.75rem;
}

.institution-dimension-workspace__panel {
  border: 1px solid var(--one-card-border, rgba(30, 41, 59, 0.14));
  border-radius: 8px;
  background: #fff;
  padding: 1.25rem;
}

.institution-dimension-workspace__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  border-bottom: 1px solid rgba(30, 41, 59, 0.1);
  padding-bottom: 1rem;
}

.institution-dimension-workspace__axis {
  margin-bottom: 0.25rem;
  color: var(--yinmn-blue, #2d5583);
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
}

.institution-dimension-workspace__header h3 {
  margin-bottom: 0.35rem;
  color: var(--dark-slate, #1e293b);
  font-size: 1.55rem;
  line-height: 1.2;
}

.institution-dimension-workspace__header p,
.institution-dimension-workspace__section p,
.institution-dimension-workspace__indicator-row span,
.institution-dimension-workspace__indicator-row small {
  color: rgba(30, 41, 59, 0.72);
}

.institution-dimension-workspace__body {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.35fr);
  gap: 1.25rem;
  padding-top: 1.25rem;
}

.institution-dimension-workspace__section + .institution-dimension-workspace__section {
  margin-top: 1.1rem;
}

.institution-dimension-workspace__section h4,
.institution-dimension-workspace__evidence h4 {
  margin-bottom: 0.45rem;
  color: var(--dark-slate, #1e293b);
  font-size: 1rem;
  line-height: 1.25;
}

.institution-dimension-workspace__section ul {
  margin-bottom: 0;
  padding-left: 1.15rem;
}

.institution-dimension-workspace__section li + li {
  margin-top: 0.25rem;
}

.institution-dimension-workspace__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
  margin-bottom: 1rem;
}

.institution-dimension-workspace__stats > div {
  border: 1px solid rgba(30, 41, 59, 0.1);
  border-radius: 6px;
  padding: 0.7rem;
  background: rgba(248, 250, 252, 0.9);
}

.institution-dimension-workspace__stats strong,
.institution-dimension-workspace__stats span {
  display: block;
}

.institution-dimension-workspace__stats strong {
  color: var(--dark-slate, #1e293b);
  font-size: 1.1rem;
  line-height: 1.25;
}

.institution-dimension-workspace__stats span {
  margin-top: 0.2rem;
  color: rgba(30, 41, 59, 0.68);
  font-size: 0.78rem;
  line-height: 1.2;
}

.institution-dimension-workspace__indicator-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(10rem, 0.45fr);
  gap: 1rem;
  border-top: 1px solid rgba(30, 41, 59, 0.1);
  padding: 0.85rem 0;
}

.institution-dimension-workspace__indicator-row strong,
.institution-dimension-workspace__indicator-row span,
.institution-dimension-workspace__indicator-row small {
  display: block;
}

.institution-dimension-workspace__indicator-row strong {
  color: var(--dark-slate, #1e293b);
}

.institution-dimension-workspace__indicator-row span {
  margin-top: 0.25rem;
  font-size: 0.86rem;
  line-height: 1.35;
}

.institution-dimension-workspace__indicator-metric {
  text-align: right;
}

.institution-dimension-workspace__indicator-metric > span {
  margin-top: 0;
  color: var(--dark-slate, #1e293b);
  font-weight: 700;
}

.institution-dimension-workspace__bar {
  height: 0.45rem;
  margin: 0.35rem 0;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(30, 41, 59, 0.1);
}

.institution-dimension-workspace__bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--yinmn-blue, #2d5583);
}

@media (max-width: 991px) {
  .institution-dimension-workspace__body,
  .institution-dimension-workspace__indicator-row,
  .institution-dimension-workspace__stats {
    grid-template-columns: 1fr;
  }

  .institution-dimension-workspace__header {
    flex-direction: column;
  }

  .institution-dimension-workspace__indicator-metric {
    text-align: left;
  }
}

.institution-evidence-detail__status {
  padding: 0.35rem 0.65rem;
  border-radius: 5px;
}

.institution-evidence-detail__metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}

.institution-evidence-detail__metric {
  padding: 0.75rem;
  border-radius: 0.5rem;
  background: rgba(183, 207, 235, 0.28);
}

.institution-evidence-detail__metric span {
  display: block;
  margin-bottom: 0.25rem;
  color: var(--yinmn-blue, #2d5583);
  font-size: 0.76rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.institution-evidence-detail__metric strong {
  color: var(--dark-slate, #1e293b);
  font-size: 1.1rem;
}

.institution-evidence-detail__explanation {
  max-width: 60rem;
  margin-bottom: 0;
  color: rgba(30, 41, 59, 0.76);
}

.institution-evidence-detail__disabled-note {
  align-self: center;
  color: rgba(30, 41, 59, 0.68);
  font-size: 0.9rem;
}

.institution-overview-list {
  display: grid;
  gap: 0.9rem;
}

.institution-overview-list__item,
.institution-overview-spotlight {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 1rem;
  padding: 1rem 1.05rem;
  margin: 0.5rem 1rem;
  border-radius: 0.9rem;
  color: var(--text);
  text-decoration: none;
  background: rgba(216, 239, 228, 0.22);
}

.institution-overview-list__item:hover,
.institution-overview-module-card:hover,
.institution-overview-signal-card:hover,
.institution-overview-spotlight:hover {
  text-decoration: none;
  color: var(--text);
  border-color: rgba(29, 105, 113, 0.22);
  box-shadow: 0 20px 40px rgba(19, 49, 70, 0.07);
}

.institution-overview-list__item--warning {
  background: rgba(251, 81, 14, 0.08);
}

.institution-overview-list__item--info {
  background: rgba(29, 105, 113, 0.08);
}

.institution-overview-list__item--neutral {
  background: rgba(183, 207, 235, 0.2);
}

.institution-overview-list__count,
.institution-overview-list__arrow,
.institution-overview-module-card__open {
  color: rgba(19, 49, 70, 0.55);
  font-weight: 700;
  white-space: nowrap;
}

.institution-overview-list__empty {
  padding: 1rem;
  border-radius: 0.9rem;
  background: rgba(183, 207, 235, 0.14);
  color: rgba(19, 49, 70, 0.68);
}

.institution-overview-module-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.institution-overview-module-card,
.institution-overview-signal-card,
.institution-overview-spotlight {
  display: grid;
  gap: 0.9rem;
  padding: 1.2rem;
  color: var(--text);
  text-decoration: none;
}

.institution-overview-module-card__metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}

.institution-overview-module-card__metric strong {
  font-size: 1.15rem;
  color: #133146;
}

.institution-overview-module-card__strength,
.institution-overview-module-card__weakness {
  margin-bottom: 0;
  font-size: 0.92rem;
}

.institution-overview-chart {
  min-height: 280px;
}

.institution-overview-signal-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.institution-overview-signal-card strong,
.institution-overview-spotlight strong {
  color: #133146;
}

.institution-overview-actions__button {
  min-width: 11rem;
}

.institution-overview-button-spinner {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  margin-right: 0.45rem;
  border: 2px solid rgba(255, 255, 255, 0.45);
  border-top-color: #fff;
  border-radius: 50%;
  vertical-align: -0.15em;
  animation: institution-overview-button-spin 0.75s linear infinite;
}

@keyframes institution-overview-button-spin {
  to {
    transform: rotate(360deg);
  }
}

.institution-overview-empty__card {
  padding: 2rem;
  text-align: center;
}

.institution-overview-empty__card p {
  max-width: 40rem;
  margin: 0 auto 1.25rem;
}

.institution-overview-modal h3 {
  font-size: 1rem;
  margin-bottom: 0.75rem;
}

.institution-overview-modal__list {
  margin: 0;
  padding-left: 1.1rem;
}

.institution-dimension-modal__eyebrow {
  margin-bottom: 0.25rem;
  color: var(--yinmn-blue, #2d5583);
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.institution-dimension-modal .modal-title {
  color: var(--dark-slate, #1e293b);
  font-size: 1.35rem;
  font-weight: 700;
}

.institution-dimension-modal__description {
  color: rgba(30, 41, 59, 0.82);
  font-size: 0.96rem;
  line-height: 1.55;
}

.institution-dimension-modal__section h4 {
  margin-bottom: 0.75rem;
  color: var(--dark-slate, #1e293b);
  font-size: 1rem;
  font-weight: 700;
}

.institution-dimension-modal__indicators {
  display: grid;
  gap: 0.65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.institution-dimension-modal__indicators li {
  padding: 0.75rem 0.85rem;
  border: 1px solid rgba(170, 178, 208, 0.55);
  border-radius: 6px;
  background: rgba(241, 245, 250, 0.74);
}

.institution-dimension-modal__indicators strong,
.institution-dimension-modal__indicators span {
  display: block;
}

.institution-dimension-modal__indicators strong {
  color: var(--yinmn-blue, #2d5583);
  font-size: 0.94rem;
}

.institution-dimension-modal__indicators span {
  margin-top: 0.2rem;
  color: rgba(30, 41, 59, 0.72);
  font-size: 0.86rem;
  line-height: 1.4;
}

@media (max-width: 1199.98px) {
  .institution-overview-kpis,
  .institution-overview-module-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .institution-overview-refresh {
    grid-template-columns: 1fr;
  }

  .institution-overview-kpis,
  .institution-overview-module-grid,
  .institution-evidence-detail__metrics,
  .institution-overview-signal-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .institution-overview-refresh__facts,
  .institution-overview-kpis,
  .institution-overview-module-grid,
  .institution-evidence-detail__metrics,
  .institution-overview-signal-grid {
    grid-template-columns: 1fr;
  }

  .institution-overview-progress__header {
    flex-direction: column;
  }

  .institution-overview-progress__focus-head {
    flex-direction: column;
  }

  .institution-overview-progress__count,
  .institution-overview-progress__state {
    text-align: left;
  }
}

.leadership-recognition-module {
  --lr-ink: #17324d;
  --lr-muted: rgba(19, 49, 70, 0.68);
  --lr-border: rgba(19, 49, 70, 0.1);
  --lr-surface: rgba(255, 255, 255, 0.96);
  --lr-soft: rgba(183, 207, 235, 0.18);
  --lr-green: #16876a;
  --lr-blue: #1d6971;
  --lr-amber: #9d6b0f;
  --lr-red: #b5563f;
  display: grid;
  gap: 1.1rem;
  color: var(--lr-ink);
}

.leadership-recognition-header,
.leadership-recognition-panel__header,
.leadership-recognition-people-meta {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
}

.leadership-recognition-eyebrow {
  margin-bottom: 0.35rem;
  color: rgba(19, 49, 70, 0.58);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.leadership-recognition-lede,
.leadership-recognition-note {
  color: var(--lr-muted);
}

.leadership-recognition-note {
  max-width: 28rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--lr-border);
  border-radius: 0.5rem;
  background: var(--lr-soft);
  font-size: 0.92rem;
}

.leadership-recognition-loading,
.leadership-recognition-empty {
  padding: 1rem;
  border: 1px dashed rgba(19, 49, 70, 0.18);
  border-radius: 0.5rem;
  color: var(--lr-muted);
  background: rgba(255, 255, 255, 0.72);
}

.leadership-recognition-content {
  display: grid;
  gap: 1rem;
}

.leadership-recognition-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.85rem;
}

.leadership-recognition-kpi,
.leadership-recognition-panel {
  border: 1px solid var(--lr-border);
  border-radius: 0.75rem;
  background: var(--lr-surface);
  box-shadow: 0 16px 32px rgba(19, 49, 70, 0.05);
}

.leadership-recognition-kpi {
  min-height: 6rem;
  padding: 1rem;
}

.leadership-recognition-kpi span {
  display: block;
  margin-bottom: 0.35rem;
  color: rgba(19, 49, 70, 0.6);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.leadership-recognition-kpi strong {
  font-size: 1.35rem;
  color: var(--lr-ink);
}

.leadership-recognition-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.leadership-recognition-panel {
  padding: 1rem;
}

.leadership-recognition-panel h3 {
  margin-bottom: 0.15rem;
  font-size: 1.1rem;
}

.leadership-recognition-matrix {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin-top: 1rem;
  padding-top: 1.35rem;
  padding-left: 1.1rem;
}

.leadership-recognition-axis {
  position: absolute;
  color: rgba(19, 49, 70, 0.58);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.leadership-recognition-axis--top {
  top: 0;
  left: 1.1rem;
  right: 0;
  text-align: center;
}

.leadership-recognition-axis--side {
  top: 50%;
  left: -2.15rem;
  transform: rotate(-90deg);
}

.leadership-recognition-cell {
  display: grid;
  gap: 0.35rem;
  min-height: 8.5rem;
  padding: 0.95rem;
  border: 1px solid rgba(19, 49, 70, 0.12);
  border-radius: 0.55rem;
  color: var(--lr-ink);
  background: rgba(216, 239, 228, 0.22);
  text-align: left;
}

.leadership-recognition-cell:not(:disabled):hover,
.leadership-recognition-cell.is-active {
  border-color: rgba(29, 105, 113, 0.42);
  background: rgba(232, 245, 246, 0.95);
  cursor: pointer;
}

.leadership-recognition-cell:disabled {
  opacity: 1;
}

.leadership-recognition-cell__axis {
  color: rgba(19, 49, 70, 0.52);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
}

.leadership-recognition-coverage {
  display: grid;
  gap: 0.6rem;
  margin: 0;
}

.leadership-recognition-coverage div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 0.45rem;
  border-bottom: 1px solid rgba(19, 49, 70, 0.08);
}

.leadership-recognition-coverage dt,
.leadership-recognition-coverage dd {
  margin: 0;
}

.leadership-recognition-coverage dt {
  color: var(--lr-muted);
}

.leadership-recognition-table {
  margin-bottom: 0;
  color: var(--lr-ink);
}

.leadership-recognition-table th {
  border-top: 0;
  color: rgba(19, 49, 70, 0.62);
  font-size: 0.78rem;
  text-transform: uppercase;
}

.leadership-recognition-drilldown-button {
  padding: 0;
  border: 0;
  color: var(--lr-blue);
  background: transparent;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.18rem;
}

.leadership-recognition-drilldown-button:hover,
.leadership-recognition-drilldown-button:focus {
  color: var(--lr-ink);
}

.leadership-recognition-tag {
  display: inline-flex;
  margin-left: 0.4rem;
  padding: 0.16rem 0.45rem;
  border-radius: 999px;
  background: rgba(22, 135, 106, 0.12);
  color: var(--lr-green);
  font-size: 0.72rem;
  font-weight: 700;
}

.leadership-recognition-concentration,
.leadership-recognition-people-meta {
  margin-bottom: 0.85rem;
  color: var(--lr-muted);
}

.leadership-recognition-trend-list {
  display: grid;
  gap: 0.45rem;
}

.leadership-recognition-trend-row {
  display: grid;
  grid-template-columns: 5rem repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  padding: 0.65rem 0.75rem;
  border-radius: 0.45rem;
  background: var(--lr-soft);
}

.leadership-recognition-people {
  display: grid;
  gap: 1rem;
}

.leadership-recognition-filters {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
}

.leadership-recognition-filters label {
  color: rgba(19, 49, 70, 0.7);
  font-size: 0.82rem;
  font-weight: 700;
}

.leadership-recognition-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.leadership-recognition-evidence {
  display: grid;
  gap: 1rem;
}

.leadership-recognition-evidence-axis {
  display: grid;
  gap: 0.75rem;
}

.leadership-recognition-evidence-axis h4 {
  margin-bottom: 0;
  font-size: 1rem;
}

.leadership-recognition-evidence-family {
  display: grid;
  gap: 0.45rem;
  padding: 0.8rem;
  border-radius: 0.5rem;
  background: rgba(183, 207, 235, 0.14);
}

.leadership-recognition-evidence-item {
  display: grid;
  grid-template-columns: minmax(8rem, 0.35fr) minmax(0, 1fr) auto;
  gap: 0.75rem;
  padding-top: 0.45rem;
  border-top: 1px solid rgba(19, 49, 70, 0.08);
  color: var(--lr-muted);
}

.leadership-recognition-notes {
  margin: 0.85rem 0 0;
  padding-left: 1.1rem;
  color: var(--lr-muted);
}

@media (max-width: 991.98px) {
  .leadership-recognition-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .leadership-recognition-grid,
  .leadership-recognition-filters {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575.98px) {
  .leadership-recognition-header,
  .leadership-recognition-panel__header,
  .leadership-recognition-people-meta {
    flex-direction: column;
  }

  .leadership-recognition-kpis,
  .leadership-recognition-matrix {
    grid-template-columns: 1fr;
  }

  .leadership-recognition-matrix {
    padding-left: 0;
  }

  .leadership-recognition-axis--side {
    display: none;
  }

  .leadership-recognition-evidence-item {
    grid-template-columns: 1fr;
  }
}

.institution-benchmarking-workspace {
  --benchmark-ink: #17324d;
  --benchmark-border: rgba(23, 50, 77, 0.1);
  --benchmark-green: #1f7a52;
  --benchmark-red: #b8453e;
  --benchmark-gold: #c8891f;
  display: grid;
  gap: 1.75rem;
}

.institution-benchmarking-hero,
.institution-benchmarking-panel,
.institution-benchmarking-summary-card,
.institution-benchmarking-dimension-card,
.institution-benchmarking-action-card,
.institution-benchmarking-empty__card,
.institution-benchmarking-field-highlight,
.institution-benchmarking-quality-card {
  border: 1px solid var(--benchmark-border);
  border-radius: 1.15rem;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 18px 40px rgba(23, 50, 77, 0.05);
}

.institution-benchmarking-hero {
  display: grid;
  gap: 1.4rem;
  padding: 1.75rem;
  border: 0;
  box-shadow: none;
  /*background:
    radial-gradient(circle at top right, rgba(205, 224, 255, 0.85), transparent 34%),
    linear-gradient(135deg, rgba(245, 250, 255, 0.98), rgba(255, 247, 236, 0.96));*/
}

.institution-benchmarking-hero__eyebrow,
.institution-benchmarking-summary-card__label,
.institution-benchmarking-quality-card__label,
.institution-benchmarking-field-highlight span {
  display: block;
  margin-bottom: 0.45rem;
  font-size: 0.79rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(23, 50, 77, 0.62);
}

.institution-benchmarking-hero__lede {
  max-width: 52rem;
  font-size: 1.02rem;
}

.institution-benchmarking-hero__actions,
.institution-benchmarking-hero__nav,
.institution-benchmarking-hero__meta,
.institution-benchmarking-empty__actions,
.institution-benchmarking-note-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.institution-benchmarking-pill,
.institution-benchmarking-chip,
.institution-benchmarking-tag {
  display: inline-flex;
  align-items: center;
  padding: 0.42rem 0.85rem;
  border: 1px solid rgba(23, 50, 77, 0.12);
  border-radius: 999px;
  background: rgba(245, 250, 255, 0.85);
  color: var(--benchmark-ink);
  font-weight: 600;
  text-decoration: none;
}

.institution-benchmarking-pill--muted {
  background: rgba(255, 247, 236, 0.7);
}

.institution-benchmarking-chip:hover,
.institution-benchmarking-tag:hover {
  color: white !important;
  background: var(--benchmark-ink);
  text-decoration: none;
}

.institution-benchmarking-panel,
.institution-benchmarking-section,
.institution-benchmarking-action-card,
.institution-benchmarking-quality-card {
  display: grid;
  gap: 1rem;
}

.institution-benchmarking-panel {
  padding: 1.35rem;
}

.institution-benchmarking-panel--selector {
  gap: 1.2rem;
}

.institution-benchmarking-panel__header,
.institution-benchmarking-section__header,
.institution-benchmarking-dimension-card__top,
.institution-benchmarking-compare-row__meta,
.institution-benchmarking-compare-row__values,
.institution-benchmarking-signal-card {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 1rem;
}

.institution-benchmarking-selector-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.institution-benchmarking-selector-grid--cohorts {
  grid-template-columns: minmax(0, 36rem);
}

.institution-benchmarking-selector__actions {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1rem;
}

.institution-benchmarking-summary-grid,
.institution-benchmarking-quality-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.institution-benchmarking-summary-card {
  display: grid;
  gap: 0.55rem;
  padding: 1.15rem 1.2rem;
}

.institution-benchmarking-summary-card strong,
.institution-benchmarking-field-highlight strong,
.institution-benchmarking-quality-card strong {
  font-size: 1.45rem;
  color: var(--benchmark-ink);
}

.institution-benchmarking-summary-card[data-tone="positive"],
.institution-benchmarking-dimension-card[data-tone="positive"],
.institution-benchmarking-field-highlight[data-tone="positive"],
.institution-benchmarking-quality-card[data-tone="positive"] {
  border-color: rgba(31, 122, 82, 0.18);
  background: linear-gradient(180deg, rgba(244, 252, 247, 0.98), rgba(255, 255, 255, 0.96));
}

.institution-benchmarking-summary-card[data-tone="negative"],
.institution-benchmarking-dimension-card[data-tone="negative"],
.institution-benchmarking-field-highlight[data-tone="negative"],
.institution-benchmarking-quality-card[data-tone="negative"] {
  border-color: rgba(184, 69, 62, 0.18);
  background: linear-gradient(180deg, rgba(253, 245, 244, 0.98), rgba(255, 255, 255, 0.96));
}

.institution-benchmarking-two-up,
.institution-benchmarking-dimension-grid,
.institution-benchmarking-action-grid,
.institution-benchmarking-field-highlights {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.institution-benchmarking-dimension-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.institution-benchmarking-dimension-card {
  display: grid;
  gap: 0.9rem;
  padding: 1.2rem;
  color: var(--benchmark-ink);
  text-decoration: none;
}

.institution-benchmarking-dimension-card:hover,
.institution-benchmarking-signal-card:hover,
.institution-benchmarking-note:hover,
.institution-benchmarking-table__field:hover {
  text-decoration: none;
}

.institution-benchmarking-dimension-card__delta {
  font-weight: 700;
  color: rgba(23, 50, 77, 0.7);
}

.institution-benchmarking-dimension-card__metric span {
  display: block;
  font-size: 0.79rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(23, 50, 77, 0.58);
}

.institution-benchmarking-meter {
  position: relative;
  height: 0.72rem;
  border-radius: 999px;
  background: rgba(183, 207, 235, 0.26);
  overflow: hidden;
}

.institution-benchmarking-meter__fill {
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #2f9b61, #7acb86);
}

.institution-benchmarking-meter__median {
  position: absolute;
  top: -0.18rem;
  bottom: -0.18rem;
  width: 2px;
  background: #17324d;
  opacity: 0.65;
}

.institution-benchmarking-dimension-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.institution-benchmarking-signal-list,
.institution-benchmarking-compare-list {
  display: grid;
  gap: 0.85rem;
}

.institution-benchmarking-signal-card,
.institution-benchmarking-note {
  padding: 0.95rem 1rem;
  border-radius: 0.95rem;
  color: var(--benchmark-ink);
  text-decoration: none;
  background: rgba(245, 250, 255, 0.76);
}

.institution-benchmarking-signal-card[data-tone="positive"],
.institution-benchmarking-note[data-tone="positive"] {
  background: rgba(228, 244, 236, 0.78);
}

.institution-benchmarking-signal-card[data-tone="negative"],
.institution-benchmarking-note[data-tone="negative"] {
  background: rgba(251, 236, 234, 0.78);
}

.institution-benchmarking-signal-card__arrow {
  white-space: nowrap;
  font-weight: 700;
  color: rgba(23, 50, 77, 0.55);
}

.institution-benchmarking-compare-row {
  display: grid;
  gap: 0.55rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid rgba(23, 50, 77, 0.08);
}

.institution-benchmarking-compare-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.institution-benchmarking-compare-row__values {
  font-size: 0.93rem;
  color: rgba(23, 50, 77, 0.7);
}

.institution-benchmarking-field-highlight {
  display: grid;
  gap: 0.35rem;
  padding: 1rem 1.15rem;
}

.institution-benchmarking-inline-form {
  align-self: end;
}

.institution-benchmarking-table {
  margin-bottom: 0;
}

.institution-benchmarking-table thead th {
  border-top: 0;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(23, 50, 77, 0.6);
}

.institution-benchmarking-table tbody tr[data-tone="positive"] td {
  background: rgba(228, 244, 236, 0.38);
}

.institution-benchmarking-table tbody tr[data-tone="negative"] td {
  background: rgba(251, 236, 234, 0.38);
}

.institution-benchmarking-table__field {
  font-weight: 700;
  color: var(--benchmark-ink);
}

.institution-benchmarking-action-card {
  padding: 1.1rem 1.15rem;
}

.institution-benchmarking-empty__card {
  padding: 2rem;
  text-align: center;
}

.institution-benchmarking-empty__card p,
.institution-benchmarking-placeholder {
  color: rgba(23, 50, 77, 0.7);
}

.institution-benchmarking-placeholder {
  padding: 1rem;
  border-radius: 0.9rem;
  background: rgba(183, 207, 235, 0.14);
}

@media (max-width: 1199.98px) {
  .institution-benchmarking-summary-grid,
  .institution-benchmarking-quality-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .institution-benchmarking-dimension-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .institution-benchmarking-selector-grid,
  .institution-benchmarking-two-up,
  .institution-benchmarking-field-highlights,
  .institution-benchmarking-action-grid {
    grid-template-columns: 1fr;
  }

  .institution-benchmarking-selector__actions,
  .institution-benchmarking-section__header {
    flex-direction: column;
    align-items: start;
  }
}

@media (max-width: 575.98px) {
  .institution-benchmarking-summary-grid,
  .institution-benchmarking-quality-grid,
  .institution-benchmarking-dimension-grid {
    grid-template-columns: 1fr;
  }

  .institution-benchmarking-hero,
  .institution-benchmarking-panel {
    padding: 1.15rem;
  }
}

.institution-communication-workspace {
  display: grid;
  gap: 1.5rem;
}

.institution-communication-hero,
.institution-communication-panel,
.institution-communication-kpi-card,
.institution-communication-template-card,
.institution-communication-impact-card,
.institution-communication-saved-card,
.institution-communication-preview-card {
  /*background: linear-gradient(180deg, #ffffff 0%, #f7f4ee 100%);*/
  padding: 1rem 1.1rem;
  border: 1px solid var(--border);
  border-radius: 5px;
  box-shadow: 0 18px 40px rgba(30, 55, 90, 0.08);
}

.institution-communication-hero,
.institution-communication-panel {
  padding: 1.5rem;
}

.institution-communication-hero {
  /*background: radial-gradient(circle at top right, rgba(32, 178, 170, 0.12), transparent 35%), linear-gradient(135deg, #16324f 0%, #274c77 48%, #f4f1de 100%);
  color: white;*/
  border: 1px solid white;
  display: grid;
  gap: 1.25rem;
  box-shadow: 0 18px 40px rgba(255, 255, 255, 0.08);
}

.institution-communication-hero .text-muted,
.institution-communication-hero__lede {
  color: var(--text) !important;
}

.institution-communication-hero__eyebrow {
  margin-bottom: 0.4rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.78rem;
  color: var(--text);
}

.institution-communication-hero__status {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
}

.institution-communication-stat {
  padding: 1rem 1.1rem;
  border-radius: 10px;
  border: 1px solid var(--border);
  /*background: rgba(255, 255, 255, 0.12);*/
  backdrop-filter: blur(10px);
}

.institution-communication-stat span,
.institution-communication-kpi-card span,
.institution-communication-preview-card span,
.institution-communication-impact-card span {
  display: block;
  font-size: 0.82rem;
  color: var(--text);
  margin-bottom: 0.35rem;
  padding: 1rem;
}

.institution-communication-stat span {
  color: var(--text);
}

.institution-communication-stat strong,
.institution-communication-kpi-card strong,
.institution-communication-preview-card strong,
.institution-communication-impact-card strong {
  display: block;
  font-size: 1.4rem;
  line-height: 1.1;
}

.institution-communication-stat strong {
  color: var(--text);
}

.institution-communication-hero__nav,
.institution-communication-tag-list,
.institution-communication-actions,
.institution-communication-impact-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.institution-communication-chip,
.institution-communication-tag,
.institution-communication-impact-link {
  display: inline-flex;
  align-items: center;
  border-radius: 10px;
  text-decoration: none !important;
}

.institution-communication-chip {
  padding: 0.6rem 0.95rem;
  background: var(--alice-blue);
  color: var(--yinmn-blue);
  font-weight: 600;
  border: 1px solid var(--border);
}

.institution-communication-section {
  padding: 1rem 1.1rem;
  display: grid;
  gap: 1rem;
}

.institution-communication-section__header,
.institution-communication-panel__header,
.institution-communication-builder-preview__top,
.institution-communication-preview-grid,
.institution-communication-two-up,
.institution-communication-form-grid,
.institution-communication-kpi-grid,
.institution-communication-template-grid,
.institution-communication-impact-grid,
.institution-communication-saved-grid {
  display: grid;
  gap: 1rem;
}

.institution-communication-section__header,
.institution-communication-panel__header {
  grid-template-columns: 1fr auto;
  align-items: end;
}

.institution-communication-two-up {
  grid-template-columns: 1fr;
}

.institution-communication-form-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.institution-communication-kpi-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.institution-communication-preview-grid,
.institution-communication-impact-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.institution-communication-template-grid,
.institution-communication-saved-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.institution-communication-template-preview,
.institution-communication-builder-preview,
.institution-communication-empty-state {
  padding: 1rem 1.1rem;
  border-radius: 10px;
  /*background: #f0ede6;*/
  border: 1px solid rgba(22, 50, 79, 0.08);
}

.institution-communication-builder-preview__top {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.institution-communication-tag {
  padding: 0.45rem 0.8rem;
  background: #fff7e7;
  border: 1px solid var(--border);
  color: #9a6700;
  font-size: 0.84rem;
}

.institution-communication-note-list {
  margin: 0;
  padding-left: 1.1rem;
  color: #4c5660;
}

.institution-communication-note-list li + li {
  margin-top: 0.45rem;
}

.institution-communication-sample-list {
  display: grid;
  gap: 0.8rem;
  margin-top: 1rem;
}

.institution-communication-sample-card {
  padding: 0.95rem 1rem;
  border-radius: 10px;
  background: white;
  border: 1px solid rgba(22, 50, 79, 0.08);
  display: grid;
  gap: 0.2rem;
}

.institution-communication-sample-card span {
  color: #6c757d;
  font-size: 0.88rem;
}

.institution-communication-saved-card.is-selected,
.institution-communication-impact-link.is-active {
  border-color: rgba(32, 178, 170, 0.35);
  box-shadow: 0 18px 40px rgba(32, 178, 170, 0.12);
}

.institution-communication-status-pill {
  padding: 0.35rem 0.75rem;
  border-radius: 10px;
  font-size: 0.78rem;
  font-weight: 600;
}

.institution-communication-status-pill[data-status="completed"],
.institution-communication-status-pill[data-status="active"] {
  background: #e2f7ef;
  color: #136f4a;
}

.institution-communication-status-pill[data-status="scheduled"] {
  background: #fff4d8;
  color: #9a6700;
}

.institution-communication-status-pill[data-status="draft"] {
  background: #edf2f7;
  color: #4b5563;
}

.institution-communication-table__primary,
.institution-communication-impact-link {
  color: #16324f;
  font-weight: 600;
}

.institution-communication-impact-link {
  padding: 0.55rem 0.9rem;
  background: white;
  border: 1px solid rgba(22, 50, 79, 0.08);
}

.institution-communication-impact-card__delta {
  margin-top: 0.5rem;
  color: #136f4a;
  font-weight: 600;
}

.institution-communication-schedule-picker {
  display: grid;
  gap: 0.75rem;
}

.institution-communication-schedule-picker__panel {
  display: grid;
  gap: 1rem;
  padding: 1rem 1.1rem;
  border-radius: 10px;
  border: 1px solid rgba(22, 50, 79, 0.08);
  background: rgba(248, 251, 253, 0.9);
}

.institution-communication-schedule-picker__panel[hidden] {
  display: none;
}

.institution-communication-schedule-picker__days {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}

.institution-communication-day-chip {
  display: grid;
  gap: 0.25rem;
  width: 100%;
  padding: 0.85rem 0.95rem;
  border: 1px solid rgba(22, 50, 79, 0.12);
  border-radius: 10px;
  background: white;
  color: #16324f;
  text-align: left;
  transition: border-color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
}

.institution-communication-day-chip:hover,
.institution-communication-day-chip:focus-visible {
  border-color: rgba(22, 50, 79, 0.32);
  box-shadow: 0 8px 18px rgba(22, 50, 79, 0.08);
  transform: translateY(-1px);
  outline: none;
}

.institution-communication-day-chip span {
  font-size: 0.78rem;
  color: #6c757d;
}

.institution-communication-day-chip strong {
  font-size: 0.95rem;
  line-height: 1.2;
}

.institution-communication-day-chip.is-selected {
  border-color: rgba(22, 50, 79, 0.42);
  background: #edf4ff;
  box-shadow: 0 12px 24px rgba(22, 50, 79, 0.12);
}

.institution-communication-schedule-picker__controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: end;
}

.institution-communication-schedule-picker__actions {
  display: flex;
  align-items: end;
  min-height: 100%;
}

.institution-communication-schedule-picker__summary {
  min-height: 1.25rem;
}

.institution-communication-schedule-picker__summary.is-error {
  color: #9a6700 !important;
}

@media (max-width: 1199.98px) {
  .institution-communication-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .institution-communication-kpi-grid,
  .institution-communication-template-grid,
  .institution-communication-saved-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .institution-communication-two-up,
  .institution-communication-hero__status,
  .institution-communication-preview-grid,
  .institution-communication-impact-grid,
  .institution-communication-builder-preview__top {
    grid-template-columns: 1fr;
  }

  .institution-communication-section__header,
  .institution-communication-panel__header {
    grid-template-columns: 1fr;
  }

  .institution-communication-schedule-picker__days,
  .institution-communication-schedule-picker__controls {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .institution-communication-schedule-picker__actions {
    grid-column: span 2;
  }
}

@media (max-width: 575.98px) {
  .institution-communication-form-grid,
  .institution-communication-kpi-grid,
  .institution-communication-template-grid,
  .institution-communication-saved-grid {
    grid-template-columns: 1fr;
  }

  .institution-communication-hero,
  .institution-communication-panel {
    padding: 1.15rem;
  }

  .institution-communication-schedule-picker__days,
  .institution-communication-schedule-picker__controls {
    grid-template-columns: 1fr;
  }

  .institution-communication-schedule-picker__actions {
    grid-column: auto;
  }
}
.author-mobility-card {
  position: relative;
  /*border: 1px solid var(--border);
  border-radius: 10px;*/
  /*background: linear-gradient(180deg, rgba(248, 251, 252, 0.98) 0%, rgba(236, 244, 246, 0.98) 100%);*/
  overflow: hidden;
}

.author-mobility-card__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  /*padding: 1.25rem 0 0;*/
}

.author-mobility-card__shell {
  position: relative;
  min-height: auto;
}

.author-mobility-card__content {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
  /*padding: 1rem 1.5rem 1.5rem;*/
  transition: filter 180ms ease, transform 180ms ease;
}

.author-mobility-card__content--blurred {
  filter: blur(10px);
  transform: scale(1.015);
  pointer-events: none;
  user-select: none;
}

.author-mobility-card__map {
  width: 100%;
  min-height: 30rem;
  border-radius: 10px;
  background: radial-gradient(circle at top, rgba(90, 149, 194, 0.18), rgba(45, 85, 131, 0.08));
}

.author-mobility-card__roadmap {
  width: 100%;
  min-height: 0;
  border-radius: 10px;
  padding: 1rem;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: inset 0 0 0 1px rgba(29, 105, 113, 0.08);
}

.author-mobility-card__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: rgba(15, 33, 51, 0.28);
}

.author-mobility-card__overlay--visible {
  backdrop-filter: blur(2px);
}

.author-mobility-card__lock {
  max-width: 30rem;
  padding: 1.5rem;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 18px 40px rgba(14, 38, 59, 0.16);
  text-align: center;
}

@media (max-width: 991px) {
  .author-mobility-card__shell,
  .author-mobility-card__map,
  .author-mobility-card__roadmap {
    min-height: auto;
  }

  .author-mobility-card__map {
    min-height: 24rem;
  }
}

/* ----------------------------------------------------------------
  CORDIS Linkage Workbench
-----------------------------------------------------------------*/
:root {
  --one-linkage-paper: rgba(255, 255, 255, 0.92);
  --one-linkage-border: rgba(47, 72, 104, 0.14);
  --one-linkage-shadow: 0 18px 40px rgba(45, 74, 106, 0.12);
  --one-linkage-text: #19324a;
  --one-linkage-subtle: #64748b;
  --one-linkage-accent: #1f5f8b;
  --one-linkage-accent-soft: #dcecf6;
  --one-linkage-warm: #b86a32;
  --one-linkage-danger: #a33636;
  --one-linkage-success: #1f7f58;
}

.one-admin-page {
  color: var(--one-linkage-text);
  padding: 2.5rem 0 1.25rem;
}

.one-admin-page__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 1.75rem;
}

.one-admin-page__eyebrow {
  margin: 0 0 0.45rem;
  font: 700 0.74rem/1 "Sora", sans-serif;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--one-linkage-accent);
}

.one-admin-page__header h1 {
  margin: 0;
  font-family: "Raleway", "Sora", "Helvetica Neue", sans-serif;
  font-size: clamp(2rem, 2.6vw, 3rem);
  font-weight: 600;
  line-height: 1.04;
  color: #14324a;
}

.one-admin-page__subtitle {
  max-width: 54rem;
  margin: 0.7rem 0 0;
  color: var(--one-linkage-subtle);
  font-size: 1rem;
}

.one-admin-page__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: flex-end;
}

.one-status-banner {
  margin: 0 0 1.2rem;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(31, 95, 139, 0.18);
  border-radius: 10px;
  background: rgba(220, 236, 246, 0.72);
  color: #14324a;
  font-size: 0.92rem;
  line-height: 1.45;
}

.one-review-progress {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.38rem;
}

.one-review-progress__hint {
  color: var(--one-linkage-subtle);
  font: 700 0.74rem/1 "Sora", sans-serif;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.one-stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.one-stat-card,
.one-card,
.one-table-card {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(246, 249, 252, 0.93) 100%);
  border: 1px solid var(--one-linkage-border);
  border-radius: 22px;
  box-shadow: var(--one-linkage-shadow);
}

.one-stat-card {
  padding: 1.1rem 1.2rem;
}

.one-stat-card__label {
  color: var(--one-linkage-subtle);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.one-stat-card__value {
  margin-top: 0.4rem;
  font-family: "Fraunces", serif;
  font-size: 2rem;
  font-weight: 600;
  color: #17344d;
}

.one-card {
  padding: 1.15rem 1.2rem;
}

.one-domain-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.one-domain-card {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-height: 100%;
}

.one-domain-card--inactive {
  opacity: 0.84;
}

.one-domain-card__header,
.one-domain-card__footer {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.85rem;
}

.one-domain-card__header h2 {
  margin-bottom: 0;
}

.one-domain-card__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 1rem;
}

.one-domain-card__description {
  margin: 0;
  color: var(--one-linkage-subtle);
  font-size: 0.98rem;
  line-height: 1.55;
}

.one-domain-card__metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.one-domain-card__metric {
  padding: 0.9rem 0.95rem;
  border: 1px solid rgba(31, 95, 139, 0.1);
  border-radius: 18px;
  background: rgba(220, 236, 246, 0.48);
}

.one-domain-card__metric-label {
  display: block;
  color: var(--one-linkage-subtle);
  font: 700 0.72rem/1.35 "Sora", sans-serif;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.one-domain-card__metric-value {
  display: block;
  margin-top: 0.45rem;
  color: #17344d;
  font-family: "Fraunces", serif;
  font-size: 1.7rem;
  font-weight: 600;
  line-height: 1;
}

.one-domain-card__updated-at {
  align-self: center;
  color: var(--one-linkage-subtle);
  font: 700 0.72rem/1.35 "Sora", sans-serif;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.one-card--section + .one-card--section {
  margin-top: 1rem;
}

.one-card h2,
.one-table-card h2,
.one-candidate-list__header h2,
.one-decision-panel h2 {
  margin: 0 0 0.85rem;
  font-family: "Raleway", "Sora", "Helvetica Neue", sans-serif;
  font-size: 1.28rem;
  font-weight: 600;
  color: #18344b;
}

.one-card h3,
.one-table-card h3,
.one-ai-card h3 {
  margin: 0 0 0.6rem;
  font-family: "Raleway", "Sora", "Helvetica Neue", sans-serif;
  font-size: 1rem;
  font-weight: 600;
}

.one-filter-form {
  margin-bottom: 1.5rem;
  padding: 1.15rem 1.2rem;
  background: var(--one-linkage-paper);
  border: 1px solid var(--one-linkage-border);
  border-radius: 22px;
  box-shadow: var(--one-linkage-shadow);
}

.one-filter-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 1rem;
}

.one-filter-grid label,
.one-form-stack label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--one-linkage-subtle);
}

.one-filter-row,
.one-filter-actions,
.one-row-actions,
.one-candidate-card__actions,
.one-decision-panel__workflow,
.one-ai-card__actions,
.one-inline-form {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
}

.one-filter-row {
  margin-top: 1rem;
  font-size: 0.92rem;
}

.one-filter-actions {
  margin-top: 1rem;
}

.one-source-highlight {
  padding: 1rem 1.05rem;
  border: 1px solid rgba(31, 95, 139, 0.16);
  border-radius: 16px;
  background: rgba(220, 236, 246, 0.58);
  color: var(--one-linkage-text);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.55;
}

.one-input,
.one-form-stack textarea,
.one-form-stack input {
  width: 100%;
  border: 1px solid rgba(44, 69, 96, 0.16);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.96);
  color: var(--one-linkage-text);
  padding: 0.72rem 0.9rem;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.one-input:focus,
.one-form-stack textarea:focus,
.one-form-stack input:focus {
  outline: none;
  border-color: rgba(31, 95, 139, 0.55);
  box-shadow: 0 0 0 4px rgba(31, 95, 139, 0.12);
}

.one-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 0.72rem 1rem;
  font: 600 0.92rem/1 "Sora", sans-serif;
  text-decoration: none !important;
  transition: transform 0.16s ease, box-shadow 0.16s ease, background 0.16s ease, color 0.16s ease, border-color 0.16s ease;
  cursor: pointer;
}

.one-btn:disabled {
  cursor: wait;
  opacity: 0.82;
  transform: none;
}

.one-btn.disabled {
  pointer-events: none;
}

.one-btn__spinner {
  display: none;
  width: 0.9rem;
  height: 0.9rem;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: oneSpin 0.7s linear infinite;
}

.one-btn--loading .one-btn__spinner {
  display: inline-block;
}

.one-candidate-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  min-height: 9rem;
  color: var(--one-linkage-subtle);
  font: 700 0.85rem/1.35 "Sora", sans-serif;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.one-loading-spinner {
  display: inline-block;
  width: 1.15rem;
  height: 1.15rem;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: oneSpin 0.7s linear infinite;
}

@keyframes oneSpin {
  to {
    transform: rotate(360deg);
  }
}

.one-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 22px rgba(31, 66, 97, 0.12);
}

.one-btn--primary {
  background: linear-gradient(135deg, #1f5f8b 0%, #2e7a93 100%);
  color: #fff !important;
}

.one-btn--secondary {
  background: rgba(220, 236, 246, 0.9);
  border-color: rgba(31, 95, 139, 0.14);
  color: var(--one-linkage-accent) !important;
}

.catalogue-candidate-navigation {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin: 0.75rem 0 1.2rem;
}

.catalogue-candidate-navigation__sequence {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.one-btn--danger {
  background: rgba(163, 54, 54, 0.12);
  border-color: rgba(163, 54, 54, 0.2);
  color: var(--one-linkage-danger) !important;
}

.one-btn--warning {
  background: rgba(184, 106, 50, 0.14);
  border-color: rgba(184, 106, 50, 0.24);
  color: var(--one-linkage-warm) !important;
}

.one-btn--small {
  padding: 0.52rem 0.8rem;
  font-size: 0.76rem;
}

.one-btn--block {
  width: 100%;
}

.one-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.36rem 0.62rem;
  border-radius: 999px;
  font: 700 0.72rem/1 "Sora", sans-serif;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  background: rgba(226, 232, 240, 0.78);
  color: #38506b;
}

.one-badge--success {
  background: rgba(31, 127, 88, 0.12);
  color: var(--one-linkage-success);
}

.one-badge--warning {
  background: rgba(184, 106, 50, 0.14);
  color: var(--one-linkage-warm);
}

.one-badge--attention {
  background: rgba(31, 95, 139, 0.14);
  color: var(--one-linkage-accent);
}

.one-badge--danger {
  background: rgba(163, 54, 54, 0.12);
  color: var(--one-linkage-danger);
}

.one-badge--muted {
  background: rgba(148, 163, 184, 0.14);
  color: var(--one-linkage-subtle);
}

.one-badge-stack {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  align-items: flex-start;
}

.one-priority-pill {
  display: inline-flex;
  min-width: 3rem;
  justify-content: center;
  padding: 0.48rem 0.65rem;
  border-radius: 14px;
  background: var(--one-linkage-accent-soft);
  color: var(--one-linkage-accent);
  font: 700 0.92rem/1 "Sora", sans-serif;
}

.one-table-card {
  overflow: hidden;
}

.one-table-card .dataTables_wrapper {
  overflow-x: auto;
  padding: 1rem 1.2rem 1.2rem;
}

.one-table-card .dataTables_wrapper .dataTables_filter {
  float: none;
  margin-bottom: 0.85rem;
  text-align: right;
}

.one-table-card .dataTables_wrapper .dataTables_filter label {
  color: var(--one-linkage-subtle);
  font: 700 0.78rem/1.35 "Sora", sans-serif;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.one-table-card .dataTables_wrapper .dataTables_filter input {
  width: min(24rem, 100%);
  margin-left: 0.6rem;
  border: 1px solid rgba(44, 69, 96, 0.16);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.96);
  color: var(--one-linkage-text);
  padding: 0.58rem 0.72rem;
}

.one-table-card table.one-admin-table.dataTable {
  width: 100% !important;
  min-width: 980px;
  border-collapse: separate;
  border-spacing: 0;
}

.one-table-card table.one-admin-table.dataTable thead th,
.one-table-card table.one-admin-table.dataTable tbody td {
  padding: 0.9rem 0.78rem;
  border-bottom: 1px solid rgba(47, 72, 104, 0.09);
  vertical-align: top;
}

.one-table-card table.one-admin-table.dataTable thead th {
  color: var(--one-linkage-subtle);
  font: 700 0.74rem/1 "Sora", sans-serif;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.one-table-card table.one-admin-table.dataTable.no-footer {
  border-bottom: 0;
}

.catalogue-target-search {
  display: inline-block;
  max-width: 680px;
  position: relative;
  width: 100%;
}

.catalogue-target-search input {
  width: 100%;
}

.catalogue-target-search-results {
  background: #fff;
  border: 1px solid #aab2d0;
  box-shadow: 0 8px 20px rgba(30, 41, 59, 0.12);
  display: block;
  margin-top: 4px;
  max-height: 260px;
  overflow-y: auto;
  position: relative;
  z-index: 1;
}

.catalogue-target-search-results[hidden] {
  display: none;
}

.catalogue-target-search-result {
  background: #fff;
  border: 0;
  border-bottom: 1px solid #e4e7ef;
  cursor: pointer;
  display: grid;
  gap: 2px;
  padding: 8px 10px;
  text-align: left;
  width: 100%;
}

.catalogue-target-search-result:hover,
.catalogue-target-search-result.active {
  background: #f1f5fa;
}

.catalogue-target-search-result small {
  color: #64748b;
}

.catalogue-target-search-result-location {
  color: #334155;
  font-size: 0.86rem;
}

.project-funder-target-picker {
  margin-top: 0.75rem;
}

.project-funder-target-picker__summary {
  align-items: center;
  border: 1px solid rgba(170, 178, 208, 0.8);
  border-radius: 6px;
  color: #2d5583;
  cursor: pointer;
  display: inline-flex;
  height: 2rem;
  justify-content: center;
  list-style: none;
  width: 2rem;
}

.project-funder-target-picker__summary::-webkit-details-marker {
  display: none;
}

.project-funder-target-picker__icon {
  border: 2px solid currentColor;
  border-radius: 50%;
  display: inline-block;
  height: 0.8rem;
  position: relative;
  width: 0.8rem;
}

.project-funder-target-picker__icon::after {
  background: currentColor;
  content: "";
  height: 2px;
  left: 0.55rem;
  position: absolute;
  top: 0.62rem;
  transform: rotate(45deg);
  transform-origin: left center;
  width: 0.45rem;
}

.project-funder-target-picker__summary:hover,
.project-funder-target-picker[open] .project-funder-target-picker__summary {
  background: #f1f5fa;
  border-color: #4377b1;
}

.project-funder-target-picker__form {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.65rem;
}

.project-funder-target-picker__search {
  flex: 1 1 360px;
  max-width: 720px;
}

.project-funder-bulk-assign,
.project-funder-exact-approve {
  background: #f8fafc;
  border: 1px solid rgba(170, 178, 208, 0.6);
  border-radius: 8px;
  margin: 1rem 0 1.25rem;
  padding: 0.85rem 1rem;
}

.project-funder-bulk-assign h2,
.project-funder-exact-approve h2 {
  font-size: 1rem;
  margin: 0 0 0.65rem;
}

.project-funder-bulk-assign__form,
.project-funder-exact-approve__form {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.project-funder-bulk-assign__search {
  flex: 1 1 360px;
  max-width: 720px;
}

.project-funder-exact-match-badge {
  background: var(--malachite);
  border: 1px solid var(--malachite);
  border-radius: 6px;
  box-shadow: 0 0 0 2px rgba(72, 213, 105, 0.2);
  color: #0f2d18;
  display: inline-flex;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.2;
  margin: 0 0.4rem 0 0;
  padding: 0.2rem 0.4rem;
  vertical-align: middle;
}

.project-funder-exact-match-badge--warning {
  background: #facc15;
  border-color: #ca8a04;
  box-shadow: 0 0 0 2px rgba(250, 204, 21, 0.22);
  color: #422006;
}

.project-funder-source-stats {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 0.75rem 0 1.5rem;
}

.project-funder-source-stats__label {
  color: #4b5563;
  font-size: 0.88rem;
  font-weight: 600;
  margin-right: 0.25rem;
}

.project-funder-source-stats__item {
  align-items: center;
  background: #ffffff;
  border: 1px solid rgba(170, 178, 208, 0.75);
  border-radius: 6px;
  color: #25324d;
  display: inline-flex;
  font-size: 0.82rem;
  gap: 0.35rem;
  line-height: 1.2;
  padding: 0.35rem 0.5rem;
  text-decoration: none;
}

.project-funder-source-stats__item:hover,
.project-funder-source-stats__item.active {
  background: #f1f5fa;
  border-color: #4377b1;
  color: #1f4f85;
  text-decoration: none;
}

.candidate-section {
  background: var(--alice-blue, #F1F5FA);
  border: 1px solid rgba(170, 178, 208, 0.55);
  border-radius: 8px;
  padding: 1rem;
}

.candidate-section__header {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}

.candidate-section__header h3 {
  margin-bottom: 0;
}

.decision-fields-grid {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  margin: 1rem 0;
  max-width: 100%;
}

.decision-field {
  min-width: 0;
}

.decision-field-wide {
  grid-column: span 2;
}

.decision-field-compact {
  max-width: 10rem;
}

.decision-field label {
  display: block;
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 0.25rem;
}

.decision-field input,
.decision-field select {
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

@media (max-width: 760px) {
  .decision-field-wide {
    grid-column: auto;
  }
}

.one-table-card .dataTables_wrapper .dataTables_info {
  float: left;
  padding-top: 1rem;
  color: var(--one-linkage-subtle);
  font-size: 0.84rem;
}

.one-table-card .dataTables_wrapper .dataTables_paginate {
  float: right;
  padding-top: 0.75rem;
}

.one-table-card .dataTables_wrapper .dataTables_paginate .paginate_button {
  border: 1px solid rgba(44, 69, 96, 0.16) !important;
  border-radius: 999px !important;
  color: var(--one-linkage-text) !important;
  margin-left: 0.35rem;
  padding: 0.42rem 0.72rem !important;
}

.one-table-card .dataTables_wrapper .dataTables_paginate .paginate_button.current,
.one-table-card .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  background: var(--one-linkage-accent) !important;
  border-color: var(--one-linkage-accent) !important;
  color: #fff !important;
}

.one-table-card .dataTables_wrapper .dataTables_paginate .paginate_button.disabled {
  opacity: 0.5;
}

.one-table-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem 1.2rem 0;
}

.one-table-card__header p,
.one-table-card__meta {
  color: var(--one-linkage-subtle);
}

.one-table-wrap {
  overflow-x: auto;
  padding: 0 0.35rem 0.35rem;
}

.one-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  min-width: 1180px;
}

.one-table th,
.one-table td {
  padding: 0.95rem 0.8rem;
  border-bottom: 1px solid rgba(47, 72, 104, 0.09);
  vertical-align: top;
  font-size: 0.92rem;
}

.one-table th {
  position: sticky;
  top: 0;
  background: rgba(246, 249, 252, 0.98);
  color: var(--one-linkage-subtle);
  font: 700 0.74rem/1 "Sora", sans-serif;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  z-index: 1;
}

.one-table tbody tr:hover {
  background: rgba(221, 236, 246, 0.22);
}

.one-table-primary {
  font-weight: 600;
  min-width: 0;
  overflow-wrap: anywhere;
  color: #17344d;
}

.one-table-secondary {
  margin-top: 0.22rem;
  min-width: 0;
  color: var(--one-linkage-subtle);
  font-size: 0.82rem;
}

.one-admin-page--cordis-queue .one-table {
  min-width: 1040px;
}

.one-admin-page--cordis-queue .one-table th,
.one-admin-page--cordis-queue .one-table td {
  padding: 0.55rem 0.45rem;
  font-size: 0.76rem;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.one-admin-page--cordis-queue .one-table th {
  font-size: 0.6rem;
  letter-spacing: 0.04em;
}

.one-admin-page--cordis-queue .one-table-primary {
  font-size: 0.8rem;
  line-height: 1.25;
}

.one-admin-page--cordis-queue .one-table-secondary {
  margin-top: 0.14rem;
  font-size: 0.66rem;
  line-height: 1.25;
}

.one-admin-page--cordis-queue .one-badge {
  padding: 0.28rem 0.42rem;
  font-size: 0.58rem;
}

.one-admin-page--cordis-queue .one-badge-stack {
  gap: 0.25rem;
}

.one-admin-page--cordis-queue .one-priority-pill {
  min-width: 2.35rem;
  padding: 0.34rem 0.44rem;
  font-size: 0.72rem;
}

.one-admin-page--cordis-queue .one-row-actions {
  gap: 0.35rem;
}

.one-admin-page--cordis-queue .one-row-actions .one-btn--small {
  padding: 0.36rem 0.5rem;
  font-size: 0.62rem;
}

.one-table__empty {
  padding: 2.5rem 1rem !important;
  text-align: center;
  color: var(--one-linkage-subtle);
}

.one-pagination {
  display: flex;
  justify-content: flex-end;
  gap: 0.7rem;
  padding: 0 1.2rem 1.2rem;
}

.one-review-layout {
  display: grid;
  grid-template-columns: minmax(240px, 28%) minmax(360px, 44%) minmax(240px, 28%);
  align-items: start;
  gap: 1rem;
  height: calc(100vh - 190px);
  min-height: 520px;
}

.one-review-layout__left,
.one-review-layout__right {
  position: sticky;
  top: 1rem;
  max-height: calc(100vh - 210px);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.one-review-layout__center {
  height: 100%;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 0.35rem;
}

.one-review-layout__center::-webkit-scrollbar,
.one-review-layout__left::-webkit-scrollbar,
.one-review-layout__right::-webkit-scrollbar {
  width: 8px;
}

.one-review-layout__center::-webkit-scrollbar-thumb,
.one-review-layout__left::-webkit-scrollbar-thumb,
.one-review-layout__right::-webkit-scrollbar-thumb {
  background: rgba(100, 116, 139, 0.34);
  border-radius: 999px;
}

.one-meta-list {
  display: grid;
  gap: 0.65rem;
  margin: 0;
}

.one-meta-list div {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 0.75rem;
}

.one-meta-list dt {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--one-linkage-subtle);
}

.one-meta-list dd {
  margin: 0;
  min-width: 0;
  color: #17344d;
}

.one-source-mention-name {
  white-space: normal;
  overflow-wrap: anywhere;
}

.one-source-mention-key {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}

.one-json-block {
  max-height: 320px;
  overflow: auto;
  margin: 0.8rem 0 0;
  padding: 1rem;
  border-radius: 16px;
  background: #162a3c;
  color: #d8e9f5;
  font-size: 0.8rem;
  line-height: 1.5;
}

.one-candidate-list__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.9rem;
}

.one-candidate-list__header p,
.one-candidate-card__id,
.one-candidate-card__preview,
.one-family-tree__label,
.one-search-result__meta div {
  color: var(--one-linkage-subtle);
}

.one-candidate-card + .one-candidate-card,
.one-candidate-overflow {
  margin-top: 1rem;
}

.one-candidate-card--top {
  border-color: rgba(31, 95, 139, 0.26);
  box-shadow: 0 20px 44px rgba(31, 95, 139, 0.14);
}

.one-candidate-card--top .one-badge--success {
  align-self: flex-start;
  padding: 0.18rem 0.48rem;
  font-size: 0.66rem;
  line-height: 1;
}

.one-candidate-card__header,
.one-search-result,
.one-drawer__header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.one-candidate-card__rank {
  display: inline-block;
  margin-bottom: 0.4rem;
  padding: 0.22rem 0.5rem;
  border-radius: 999px;
  background: rgba(31, 95, 139, 0.1);
  color: var(--one-linkage-accent);
  font: 700 0.72rem/1 "Sora", sans-serif;
}

.one-candidate-card__meta,
.one-candidate-card__badges,
.one-decision-panel__actions,
.one-decision-panel__helper,
.one-form-stack,
.one-plain-list {
  display: grid;
  gap: 0.7rem;
}

.one-candidate-card__meta {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  margin: 0.75rem 0 0.65rem;
}

.one-candidate-card__badges {
  grid-template-columns: repeat(auto-fit, minmax(120px, max-content));
  margin-bottom: 1rem;
}

.one-candidate-card__actions {
  gap: 0.45rem;
}

.one-candidate-card__actions .one-btn--small {
  padding: 0.38rem 0.62rem;
  font-size: 0.68rem;
  line-height: 1;
}

.one-cordis-propagation-toggle {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 0.6rem;
  color: var(--one-linkage-text);
  font-size: 0.78rem;
  line-height: 1.3;
}

.one-family-tree {
  margin-top: 1rem;
  padding: 0.85rem 1rem;
  border-radius: 18px;
  background: rgba(220, 236, 246, 0.4);
}

.one-family-tree__node {
  font-weight: 600;
}

.one-family-tree__node--parent {
  color: var(--one-linkage-accent);
}

.one-family-tree__connector {
  margin: 0.2rem 0 0.25rem;
  color: var(--one-linkage-subtle);
}

.one-decision-panel__helper p,
.one-decision-panel__search p,
.one-decision-panel__shortcuts p {
  margin: 0;
}

.one-decision-panel__search,
.one-decision-panel__workflow,
.one-decision-panel__shortcuts,
.one-drawer__section + .one-drawer__section {
  margin-top: 1.1rem;
}

.one-admin-page--address-review .one-decision-panel__actions,
.one-admin-page--address-review .one-decision-panel__search,
.one-admin-page--address-review .one-decision-panel__workflow {
  gap: 0.5rem;
}

.one-admin-page--address-review .one-decision-panel__actions .one-btn,
.one-admin-page--address-review .one-decision-panel__search .one-btn,
.one-admin-page--address-review .one-decision-panel__workflow .one-btn {
  padding: 0.46rem 0.68rem;
  font-size: 0.74rem;
  line-height: 1;
}

.one-modal,
.one-drawer-shell {
  position: fixed;
  inset: 0;
  z-index: 1500;
}

.one-modal__backdrop,
.one-drawer-shell {
  background: rgba(15, 23, 42, 0.48);
}

.one-modal__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(680px, calc(100vw - 2rem));
  max-height: min(760px, calc(100vh - 3rem));
  margin: 6vh auto;
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 34px 70px rgba(15, 23, 42, 0.26);
  overflow: hidden;
}

.one-modal__content--wide {
  width: min(940px, calc(100vw - 2rem));
}

.one-modal__header,
.one-modal__body,
.one-drawer__header,
.one-drawer__section {
  padding: 1.15rem 1.2rem;
}

.one-modal__header,
.one-drawer__header {
  border-bottom: 1px solid rgba(47, 72, 104, 0.08);
}

.one-modal__body {
  min-height: 0;
  overflow-y: auto;
}

.one-modal__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.6rem;
  margin-top: 1rem;
}

.one-cordis-propagation-samples {
  margin-top: 1rem;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(47, 72, 104, 0.1);
  border-radius: 8px;
  background: rgba(248, 250, 252, 0.92);
}

.one-cordis-propagation-samples .one-plain-list {
  margin-top: 0.6rem;
}

.one-modal__close {
  border: 0;
  background: transparent;
  font-size: 1.45rem;
  color: var(--one-linkage-subtle);
  cursor: pointer;
}

.one-search-results {
  display: grid;
  gap: 0.8rem;
  margin-top: 1rem;
}

.one-search-result {
  align-items: flex-start;
  padding: 1rem;
  border: 1px solid rgba(47, 72, 104, 0.1);
  border-radius: 18px;
  background: rgba(248, 250, 252, 0.92);
}

.one-search-result__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  justify-content: flex-end;
}

.one-search-result__ids,
.one-search-result__aliases {
  margin-top: 0.18rem;
  font-size: 0.78rem;
}

.one-drawer__header-actions {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.one-drawer {
  position: absolute;
  top: 0;
  right: 0;
  width: min(460px, 100vw);
  height: 100vh;
  overflow-y: auto;
  background: #fff;
  box-shadow: -18px 0 44px rgba(15, 23, 42, 0.2);
}

.one-plain-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.one-inline-form input {
  flex: 1 1 180px;
}

.one-form-stack {
  gap: 0.9rem;
}

.one-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 0.75rem;
}

.one-form-grid label {
  display: grid;
  gap: 0.28rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--one-linkage-ink);
}

.one-form-grid__full {
  grid-column: 1 / -1;
}

.one-component-list {
  display: grid;
  gap: 0.35rem;
  margin: 0;
  padding-left: 1.25rem;
}

.one-component-list li {
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  padding: 0.45rem 0.55rem;
}

.one-component-list li.is-selected {
  border-color: #2563eb;
  background: #eff6ff;
}

.one-component-list span,
.one-component-list small {
  display: block;
}

.one-component-badge-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0;
  margin-top: 0.75rem;
}

.one-component-badge-list .badge-checkbox {
  max-width: 100%;
  white-space: normal;
  line-height: 1.25;
}

.one-component-badge-list .one-component-badge--assigned {
  border: 4px solid #16a34a;
  box-shadow: 0 0 0 2px rgba(22, 163, 74, 0.18);
}

.one-card.one-component-badge--assigned {
  border: 4px solid #16a34a;
  box-shadow: 0 0 0 2px rgba(22, 163, 74, 0.18);
}

.one-component-badge--assigned:not(.one-card):not(tr) {
  display: inline-block;
  max-width: 100%;
  border: 2px solid #16a34a;
  border-radius: 0.35rem;
  padding: 0.08rem 0.35rem;
  box-shadow: 0 0 0 2px rgba(22, 163, 74, 0.12);
}

tr.one-component-badge--assigned > td:first-child {
  border-left: 4px solid #16a34a;
}

.one-component-badge-list .one-component-badge--assigned:has(input[type="checkbox"]:checked) {
  border-color: #16a34a;
  box-shadow:
    0 0 0 2px rgba(22, 163, 74, 0.22),
    0 0 6px rgba(10, 231, 255, 0.6);
}

.one-component-badge-list .one-component-badge--primary {
  outline: 2px solid #2563eb;
  outline-offset: 2px;
}

.one-component-badge-list .one-component-badge--context {
  outline: 2px solid #f59e0b;
  outline-offset: 2px;
}

.one-component-role,
.one-component-role-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.one-component-role {
  margin-left: 0.35rem;
  padding: 0.1rem 0.35rem;
  border-radius: 999px;
  background: #e0f2fe;
  color: #075985;
  font-size: 0.66rem;
  font-weight: 700;
  text-transform: uppercase;
}

.one-component-badge--context .one-component-role {
  background: #fef3c7;
  color: #92400e;
}

.one-component-role-actions {
  flex-wrap: wrap;
  margin: 0.35rem 0 0.55rem;
}

.one-suggestion-batch-actions {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.one-suggestion-row {
  align-items: center;
  gap: 0.75rem;
}

.one-suggestion-row__check {
  margin: 0;
}

.one-suggestion-row--reviewed {
  opacity: 0.62;
}

.one-evidence-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 0.35rem 0.75rem;
  color: #475569;
  font-size: 0.82rem;
  margin: 0.75rem 0;
}

.one-component-selection-hint {
  margin: 0.55rem 0 0;
  font-size: 0.76rem;
}

.one-similar-components-panel {
  margin-top: 1rem;
}

.one-similar-components-group + .one-similar-components-group {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #e5e7eb;
}

.one-similar-components-group h3 {
  margin-bottom: 0.65rem;
}

.one-review-nav,
.one-candidate-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

@media (max-width: 1199px) {
  .one-domain-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .one-review-layout {
    grid-template-columns: 1fr;
    height: auto;
    min-height: 0;
  }

  .one-review-layout__left,
  .one-review-layout__right {
    position: static;
    max-height: none;
    overflow: visible;
  }

  .one-review-layout__center {
    height: auto;
    overflow: visible;
  }

  .one-admin-page__header {
    flex-direction: column;
  }

  .one-admin-page__actions {
    justify-content: flex-start;
  }

  .one-review-progress {
    align-items: flex-start;
  }
}

@media (max-width: 767px) {
  .one-domain-grid,
  .one-domain-card__metrics,
  .one-filter-grid,
  .one-candidate-card__meta {
    grid-template-columns: 1fr;
  }

  .one-meta-list div {
    grid-template-columns: 1fr;
  }

  .one-search-result,
  .one-candidate-card__header,
  .one-drawer__header {
    flex-direction: column;
  }
}

.one-print-visual-snapshot {
  display: none;
}

:root {
  --electric-blue: #0ae7ff;
  --yinmn-blue: #2d5583;
  --ucla-blue: #4377b1;
  --vista-blue: #76a0d0;
  --powder-blue: #97b5d8;
  --columbia-blue: #b7cfeb;
  --alice-blue: #F1F5FA;
  --anti-flash-white: #EFEFEF;
  --aerospace-orange: #fb510e;
  --malachite: #00bf15;
  --orchid: #674ea7;
  --border: #aab2d0;
  --dark-slate: #1e293b;
}

/* Researcher 2x2 matrix panels. This stylesheet is loaded by the main layout. */
.two-by-two-panel-grid { row-gap: 1rem; }
.two-by-two-matrix-panel { position: relative; display: grid; gap: .75rem; height: 100%; padding: 1rem; border: 1px solid rgba(170, 178, 208, .45); background: #fff; }
.two-by-two-matrix-panel.is-sparse { border-color: rgba(170, 178, 208, .7); background: var(--alice-blue); }
.two-by-two-matrix-panel-header { display: flex; justify-content: space-between; align-items: flex-start; gap: .75rem; margin-bottom: .75rem; }
.two-by-two-matrix-panel-header h2 { margin: 0 0 .8rem; font-size: 1.1rem; }
.two-by-two-matrix-panel-header p { margin: 0; color: #475569; font-size: .85rem; }
.two-by-two-panel-actions { display: inline-flex; align-items: center; gap: .4rem; }
.two-by-two-panel-count { flex: 0 0 auto; color: #475569; font-size: .8rem; white-space: nowrap; }
.two-by-two-panel-export { display: inline-grid; place-items: center; width: 30px; height: 30px; padding: 0; border: 1px solid var(--border); border-radius: 4px; background: #fff; color: var(--ucla-blue); }
.two-by-two-panel-export:hover { background: var(--alice-blue); }
.two-by-two-panel-export:focus-visible { outline: 3px solid var(--electric-blue); outline-offset: 2px; }
.two-by-two-panel-coverage { position: relative; display: grid; place-items: center; height: 24px; overflow: hidden; border: 1px solid var(--border); background: var(--alice-blue); }
.two-by-two-panel-coverage-fill { position: absolute; inset: 0 auto 0 0; display: block; min-width: 2px; background: var(--ucla-blue) !important; opacity: .85; }
.two-by-two-panel-coverage-label { position: relative; color: var(--dark-slate); font-size: .78rem; font-weight: 700; }
.two-by-two-panel-chart { width: 100%; min-height: 360px; overflow: hidden; border: 1px solid rgba(170, 178, 208, .45); background: #fff; }
.two-by-two-panel-chart:focus-visible { outline: 3px solid var(--electric-blue); outline-offset: 2px; }
.two-by-two-quadrant-popover { position: absolute; z-index: 5; right: 1rem; bottom: 1rem; width: min(290px, calc(100% - 2rem)); padding: .75rem; border: 1px solid var(--border); border-radius: 4px; background: #fff; box-shadow: 0 8px 20px rgba(15, 23, 42, .18); }
.two-by-two-quadrant-popover[hidden] { display: none; }
.two-by-two-quadrant-popover__header { display: flex; justify-content: space-between; gap: .75rem; align-items: flex-start; }
.two-by-two-quadrant-popover__header strong, .two-by-two-quadrant-popover__header span { display: block; }
.two-by-two-quadrant-popover__header span, .two-by-two-quadrant-popover__note, .two-by-two-quadrant-popover__status { margin: .2rem 0 0; color: #475569; font-size: .78rem; }
.two-by-two-quadrant-popover__close { display: grid; place-items: center; width: 26px; height: 26px; padding: 0; border: 0; background: transparent; color: var(--dark-slate); font-size: 1.25rem; line-height: 1; }
.two-by-two-quadrant-popover__actions { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .7rem; }
.two-by-two-quadrant-popover__note:empty { display: none; }
.two-by-two-panel-empty { display: grid; place-items: center; height: 100%; padding: 1rem; color: #475569; text-align: center; }
.two-by-two-panel-unavailable { margin: 0; color: #8b3a2e; font-size: .8rem; }
.two-by-two-composer { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(0, 2fr); gap: 1rem; align-items: end; margin-top: 1.5rem; padding: 1rem 0; border-top: 1px solid rgba(170, 178, 208, .6); }
.two-by-two-composer h2, .two-by-two-custom-plots h2 { margin: 0 0 .25rem; font-size: 1.15rem; }
.two-by-two-composer p { margin: 0; color: #475569; font-size: .85rem; }
.two-by-two-composer-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: .65rem; align-items: end; }
.two-by-two-composer-form label { display: grid; gap: .3rem; margin: 0; color: var(--dark-slate); font-size: .78rem; font-weight: 700; }
.two-by-two-composer-form select { width: 100%; min-height: 38px; padding: .35rem .5rem; border: 1px solid var(--border); border-radius: 4px; background: #fff; color: var(--dark-slate); }
.two-by-two-composer-form .btn { min-height: 38px; white-space: nowrap; }
.two-by-two-composer-status { grid-column: 2; min-height: 1.2rem; }
.two-by-two-composer-status.is-error { color: #8b3a2e; }
.two-by-two-custom-plots { margin-top: 1rem; }
.two-by-two-custom-plots[hidden] { display: none; }
.capacity-discovery-filters { margin: 1.5rem 0; padding: 1rem; border: 1px solid rgba(170, 178, 208, .6); background: var(--alice-blue); }
.capacity-discovery-filters-header { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.capacity-discovery-filters h2 { margin: 0 0 .2rem; font-size: 1.15rem; }
.capacity-discovery-filters p { margin: 0; color: #475569; font-size: .85rem; }
.capacity-discovery-filters .form-group { margin-bottom: .75rem; }
.capacity-discovery-filters label { margin-bottom: .3rem; color: var(--dark-slate); font-size: .78rem; font-weight: 700; }
.capacity-discovery-capability-search { max-width: 42rem; margin: 0 0 .9rem; }
.capacity-discovery-capability-search .input-group { flex-wrap: nowrap; }
.capacity-discovery-capability-search .btn { min-width: 2.5rem; padding-top: .3rem; padding-bottom: .3rem; }
.capacity-discovery-capability-token { display: inline-flex; align-items: center; gap: .25rem; margin-top: .45rem; padding: .25rem .5rem; border: 1px solid #aab2d0; background: #fff; color: #2d5583; font-size: .82rem; }
.capacity-discovery-capability-token .btn { min-width: auto; padding: 0 .18rem; color: inherit; font-size: 1.1rem; line-height: 1; }
.capacity-discovery-display-unit { max-width: 18rem; margin-bottom: 1rem; }
.capacity-discovery-filter-help { margin: 0 0 .75rem !important; }
.capacity-discovery-reveal-row { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-top: .25rem; }
.capacity-discovery-reveal-label { display: block; margin-bottom: .35rem; color: var(--dark-slate); font-size: .78rem; font-weight: 700; }
.capacity-discovery-reveal-row .badge-options { display: flex; flex-wrap: wrap; gap: .35rem; }
.capacity-discovery-reveal-row .badge-options button { border: 1px solid var(--border); cursor: pointer; }
.capacity-discovery-reveal-row .badge-selected { background: var(--ucla-blue); color: #fff; }
.capacity-discovery-reveal-legend { display: flex; flex-wrap: wrap; gap: .45rem 1rem; margin: .55rem 0 0; color: #475569; font-size: .78rem; }
.capacity-discovery-legend-item { display: inline-flex; align-items: center; gap: .35rem; }
.capacity-discovery-legend-symbol { display: inline-block; width: 11px; height: 11px; flex: 0 0 auto; background: var(--ucla-blue); border: 1px solid #fff; box-shadow: 0 0 0 1px var(--border); }
.capacity-discovery-legend-symbol.is-circle { border-radius: 50%; }
.capacity-discovery-legend-symbol.is-triangle { clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.capacity-discovery-legend-symbol.is-diamond { transform: rotate(45deg); }
.capacity-discovery-legend-symbol.is-rect { border-radius: 1px; }
.capacity-discovery-point-tooltip { line-height: 1.6; }
.capacity-discovery-point-tooltip__name { color: var(--ucla-blue); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.capacity-discovery-point-tooltip__name:hover { color: var(--lapis-lazuli); }
.capacity-discovery-status { display: flex; align-items: center; gap: .55rem; min-height: 1.3rem; margin: 0 0 1rem; color: #475569; font-size: .85rem; }
.capacity-discovery-status.is-error { color: #8b3a2e; }
.capacity-discovery-spinner { width: 1rem; height: 1rem; flex: 0 0 auto; border: 2px solid rgba(67, 119, 177, .25); border-top-color: var(--ucla-blue); border-radius: 50%; animation: capacity-discovery-spin .75s linear infinite; }
.capacity-discovery-spinner[hidden] { display: none; }
@keyframes capacity-discovery-spin { to { transform: rotate(360deg); } }
table.two-by-two-panel-coverage { display: table; width: 100%; border-collapse: collapse; }
table.two-by-two-panel-coverage td { position: relative; display: table-cell; padding: 0; text-align: center; vertical-align: middle; }

@media (max-width: 900px) {
  .two-by-two-panel-chart { min-height: 400px; }
  .two-by-two-composer { grid-template-columns: 1fr; }
  .two-by-two-composer-status { grid-column: auto; }
  .capacity-discovery-reveal-row { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 576px) {
  .two-by-two-matrix-panel { padding: .75rem; }
  .two-by-two-matrix-panel-header { display: grid; }
  .two-by-two-panel-chart { min-height: 340px; }
  .two-by-two-composer-form { grid-template-columns: 1fr; }
}

.public-researcher-profile {
  color: var(--dark-slate);
  background: linear-gradient(180deg, #fff 0, var(--alice-blue) 100%);
  border-radius: 8px;
  padding: 1.25rem;
}

.public-researcher-profile a {
  color: var(--ucla-blue);
}

.public-researcher-profile a:focus,
.public-researcher-profile button:focus,
.public-researcher-profile summary:focus {
  outline: 3px solid var(--electric-blue);
  outline-offset: 3px;
}

.prp-living-cv-shell {
  display: grid;
  grid-template-columns: minmax(260px, 30%) minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
}

body:has(.public-researcher-profile) #content,
body:has(.public-researcher-profile) #content .content-wrap,
body:has(.public-researcher-profile) #content .container,
body:has(.public-researcher-profile) .content-box,
body:has(.public-researcher-profile) .content-box > .info-box,
body:has(.public-researcher-profile) .content-box > .info-box-trasparent,
body:has(.public-researcher-profile) .content-box > .info-box > .col-12,
body:has(.public-researcher-profile) .content-box > .info-box-trasparent > .col-12 {
  overflow: visible !important;
}

.prp-identity-rail {
  position: -webkit-sticky;
  position: sticky;
  top: 6rem;
  align-self: start;
  z-index: 3;
  display: grid;
  gap: .85rem;
  max-height: calc(100vh - 7rem);
  overflow-y: auto;
  padding: 1.25rem;
  border: 1px solid var(--columbia-blue);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 16px 40px rgba(45, 85, 131, 0.12);
}

.prp-identity-rail h1 {
  margin: 0;
  color: var(--dark-slate);
  font-size: clamp(1.55rem, 2.4vw, 2.2rem);
  line-height: 1.08;
  letter-spacing: 0;
}

.prp-identity-rail > .prp-kicker {
  color: #64748b;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .06em;
}

.prp-rail-positioning {
  margin: 0;
  color: var(--yinmn-blue);
  font-size: 1.22rem;
  font-weight: 800;
  line-height: 1.25;
}

.prp-rail-links {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  padding-top: .1rem;
}

.prp-rail-link {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  min-height: 34px;
  padding: .3rem .6rem;
  border: 1px solid var(--columbia-blue);
  border-radius: 999px;
  background: var(--alice-blue);
  color: var(--ucla-blue);
  font-size: .82rem;
  font-weight: 800;
  text-decoration: none;
  transition: background-color .18s ease, transform .18s ease;
}

.prp-rail-link:hover {
  background: #fff;
  transform: translateY(-1px);
  text-decoration: none;
}

.prp-living-main > .prp-claim-panel:first-child,
.prp-living-main > .prp-section:first-child,
/* The activity slot is the first child even while it is still empty, so the
   block that follows it -- and the sections that land inside it -- open the
   column without a gap above them. */
.prp-living-main > .prp-activity-slot:empty + .prp-claim-panel,
.prp-living-main > .prp-activity-slot > .prp-section:first-child {
  margin-top: 0;
}

.prp-hero {
  display: grid;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  gap: 2rem;
  align-items: center;
  padding: 1.5rem;
  background: #fff;
  border: 1px solid var(--columbia-blue);
  border-radius: 8px;
  box-shadow: 0 16px 40px rgba(45, 85, 131, 0.12);
}

.prp-hero__portrait {
  display: grid;
  gap: 1rem;
  justify-items: center;
}

.prp-avatar {
  width: 178px;
  height: 178px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--anti-flash-white);
  border: 5px solid var(--alice-blue);
  box-shadow: 0 10px 28px rgba(30, 41, 59, 0.18);
}

.prp-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.prp-kicker {
  margin: 0 0 .4rem;
  color: var(--yinmn-blue);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.prp-hero h1 {
  margin: 0;
  color: var(--dark-slate);
  font-size: clamp(2rem, 4vw, 3.5rem);
  line-height: 1.05;
  letter-spacing: 0;
}

.prp-role,
.prp-location,
.prp-summary,
.prp-section__header p,
.prp-claim-panel p {
  color: #475569;
  font-size: 1rem;
  line-height: 1.55;
}

.prp-role {
  margin: .75rem 0 .1rem;
  font-weight: 600;
}

.prp-location {
  margin: 0 0 1rem;
}

.prp-meta-with-icon,
.prp-location {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}

.prp-meta-with-icon i {
  color: var(--ucla-blue);
  font-size: .95rem;
  line-height: 1;
}

.prp-positioning {
  max-width: 760px;
  margin: 1rem 0 .65rem;
  color: var(--yinmn-blue);
  font-size: clamp(1.4rem, 2.4vw, 2.1rem);
  line-height: 1.2;
  letter-spacing: 0;
}

.prp-summary {
  max-width: 780px;
  margin: 0 0 1rem;
}

.prp-badge-strip,
.prp-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.prp-badge-chip,
.prp-competence-chip {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: .35rem .65rem;
  border: 1px solid var(--columbia-blue);
  border-radius: 999px;
  background: var(--alice-blue);
  color: var(--dark-slate);
  font-size: .88rem;
  font-weight: 600;
}

.prp-badge-chip--hero {
  background: #fff;
  color: var(--orchid);
  text-decoration: none;
}

.prp-action-row {
  margin-top: 1.1rem;
}

.prp-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: .55rem .95rem;
  border: 1px solid var(--ucla-blue);
  border-radius: 6px;
  font-weight: 700;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.prp-button:hover,
.prp-link-card:hover,
.prp-territory-card:hover,
.prp-trust-card:hover,
.prp-opportunity-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(45, 85, 131, .16);
  text-decoration: none;
}

.prp-button--primary {
  background: var(--ucla-blue);
  color: #fff !important;
}

.prp-contact-through-one {
  width: 100%;
  gap: .55rem;
  border-color: var(--yinmn-blue);
  background: var(--yinmn-blue);
  color: #fff !important;
}

.prp-button--orange {
  border-color: var(--aerospace-orange);
  background: var(--aerospace-orange);
}

.prp-button--secondary,
.prp-button--ghost {
  background: #fff;
  color: var(--ucla-blue);
}

.prp-claim-panel,
.prp-section {
  margin-top: 1.25rem;
  padding: 1.25rem;
  border: 1px solid var(--columbia-blue);
  border-radius: 8px;
  background: #fff;
}

.prp-claim-panel {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(280px, 1.05fr);
  gap: 1.25rem;
  background: linear-gradient(135deg, #fff 0, var(--alice-blue) 100%);
}

.prp-claim-panel h2,
.prp-section h2 {
  margin: 0 0 .45rem;
  color: var(--dark-slate);
  font-size: 1.55rem;
  letter-spacing: 0;
}

.prp-workspace-disclosure {
  padding: 1rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
}

.prp-workspace-disclosure summary {
  cursor: pointer;
  color: var(--yinmn-blue);
  font-weight: 800;
}

.prp-benefit-grid,
.prp-territory-grid,
.prp-trust-grid,
.prp-opportunity-grid,
.prp-link-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}

.prp-benefit-grid article,
.prp-territory-card,
.prp-trust-card,
.prp-opportunity-card,
.prp-link-card {
  border: 1px solid var(--columbia-blue);
  border-radius: 8px;
  background: #fff;
}

.prp-benefit-grid article {
  padding: .85rem;
  background: var(--alice-blue);
}

.prp-benefit-grid h3,
.prp-territory-card h3,
.prp-trust-card h3,
.prp-opportunity-card h3 {
  margin: 0 0 .35rem;
  color: var(--dark-slate);
  font-size: 1rem;
  letter-spacing: 0;
}

.prp-privacy-note {
  margin: .85rem 0 0;
  color: var(--yinmn-blue) !important;
}

.prp-section__header {
  max-width: 820px;
  margin-bottom: 1.15rem;
}

/* Short accent rule under each section heading for visual rhythm (§4). */
.prp-section__header h2::after {
  content: "";
  display: block;
  width: 44px;
  height: 3px;
  margin-top: .55rem;
  border-radius: 999px;
  background: var(--electric-blue);
}

.prp-timeline {
  position: relative;
  display: grid;
  gap: 1.1rem;
  margin: 0;
  padding: 0 0 0 1.75rem;
  list-style: none;
}

/* Continuous vertical spine running through every milestone node. */
.prp-timeline::before {
  content: "";
  position: absolute;
  top: .4rem;
  bottom: .4rem;
  left: 6px;
  width: 2px;
  background: linear-gradient(180deg, var(--columbia-blue) 0, var(--powder-blue) 100%);
}

.prp-timeline__item {
  position: relative;
}

/* Lines of work, publications and collaborators (authors#public_activity). */

/* The first thing in the section and the loudest: on a profile nobody has
   claimed, these three names are the answer to what this person works on. */
.prp-activity-header {
  margin-bottom: .75rem;
}

.prp-topic-pills {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.prp-topic-pill {
  display: inline-flex;
  align-items: baseline;
  gap: .45rem;
  padding: .45rem .9rem;
  border: 1px solid var(--columbia-blue);
  border-radius: 999px;
  background: var(--alice-blue);
  color: var(--dark-slate);
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.25;
}

/* Each pill carries its topic's description in the title attribute. */
.prp-topic-pill[title] {
  cursor: help;
}

.prp-full-report-link {
  margin-top: .5rem;
}

/* What a model made of the same record. */
.prp-activity-description {
  margin: .95rem 0 0;
  color: var(--dark-slate);
  font-size: 1.02rem;
  line-height: 1.55;
}

.prp-coauthor-card {
  padding: .85rem 1rem;
}

.prp-topic-count {
  color: #475569;
  font-size: .82rem;
}

.prp-coauthor-card h3 a {
  color: var(--yinmn-blue);
}

/* What they work on carries the card: the name says who, this says why they
   are on this page. */
.prp-coauthor-subfield {
  margin: .1rem 0 .2rem;
  color: var(--dark-slate);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
}

.prp-coauthor-organization {
  display: flex;
  align-items: center;
  gap: .4rem;
  margin: 0;
  color: #475569;
  font-size: .88rem;
}

/* Said quietly: an absence of recent publications describes the record we
   hold, not the person. */
.prp-activity-note {
  color: #64748b !important;
  font-size: .82rem;
}

.prp-doc-heading {
  margin: 1.15rem 0 .6rem;
  color: var(--dark-slate);
  font-size: 1.05rem;
}

.prp-doc-list {
  display: grid;
  gap: .7rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.prp-doc-item {
  padding-left: .85rem;
  border-left: 3px solid var(--columbia-blue);
}

.prp-doc-title {
  color: var(--dark-slate);
  font-weight: 600;
  line-height: 1.35;
}

a.prp-doc-title:hover {
  color: var(--yinmn-blue);
}

.prp-doc-meta {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin: .2rem 0 0;
  color: #475569;
  font-size: .85rem;
}

.prp-doc-pdf {
  padding: 0 .4rem;
  border: 1px solid var(--columbia-blue);
  border-radius: 4px;
  font-size: .72rem;
}

.prp-doc-disclosure {
  margin-top: 1.15rem;
}

.prp-doc-disclosure summary {
  cursor: pointer;
  color: var(--yinmn-blue);
  font-weight: 700;
}

/* Territory-accented node dot sitting on the spine (colour reuses .prp-accent-*). */
.prp-timeline__item::before {
  content: "";
  position: absolute;
  top: 1.05rem;
  left: calc(-1.75rem + 1px);
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: #fff;
  border: 3px solid var(--prp-accent, var(--ucla-blue));
  box-shadow: 0 0 0 3px #fff;
  z-index: 1;
}

.prp-timeline__button {
  width: 100%;
  padding: .9rem 1.05rem;
  text-align: left;
  border: 1px solid var(--columbia-blue);
  border-left: 4px solid var(--prp-accent, var(--ucla-blue));
  border-radius: 8px;
  background: var(--alice-blue);
  color: var(--dark-slate);
  cursor: pointer;
  transition: box-shadow .18s ease, transform .18s ease;
}

.prp-timeline__button:hover {
  transform: translateX(2px);
  box-shadow: 0 10px 22px rgba(45, 85, 131, .14);
}

.prp-timeline__desc {
  display: block;
  margin-top: .5rem;
  color: #475569;
  font-size: .9rem;
  line-height: 1.45;
}

.prp-timeline__source {
  display: inline-block;
  margin-top: .5rem;
  font-size: .82rem;
  font-weight: 800;
  text-decoration: none;
}

.prp-timeline__source::after {
  content: " \2197";
}

.prp-timeline__year,
.prp-card-topline span,
.prp-trust-card > span,
.prp-opportunity-card > span {
  display: block;
  color: var(--yinmn-blue);
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.prp-timeline__title {
  display: block;
  margin: .45rem 0;
  font-weight: 800;
  line-height: 1.25;
}

.prp-timeline__meta {
  display: block;
  color: #64748b;
  font-size: .86rem;
  line-height: 1.35;
}

.prp-territory-card,
.prp-trust-card,
.prp-opportunity-card {
  padding: 1rem;
  transition: transform .18s ease, box-shadow .18s ease;
}

.prp-card-topline {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.prp-card-topline span {
  flex: 0 0 auto;
  padding: .2rem .55rem;
  border-radius: 999px;
  background: var(--alice-blue);
  color: var(--yinmn-blue);
  font-size: .68rem;
  letter-spacing: .04em;
}

.prp-territory-card p,
.prp-trust-card p {
  color: #475569;
}

.prp-territory-card ul {
  margin: .75rem 0;
  padding: 0;
  list-style: none;
}

.prp-territory-card li + li {
  margin-top: .55rem;
}

.prp-territory-card li strong,
.prp-territory-card li span {
  display: block;
}

.prp-territory-card li strong {
  font-size: .95rem;
}

.prp-territory-card li span,
.prp-evidence-list p {
  color: #64748b;
  font-size: .86rem;
}

.prp-territory-card details {
  margin-top: .8rem;
}

.prp-territory-card summary {
  cursor: pointer;
  color: var(--ucla-blue);
  font-weight: 800;
}

.prp-evidence-list {
  display: grid;
  gap: .65rem;
  margin-top: .75rem;
}

.prp-evidence-list article {
  padding-top: .65rem;
  border-top: 1px solid var(--columbia-blue);
}

.prp-evidence-list h4 {
  margin: 0 0 .25rem;
  font-size: .95rem;
  letter-spacing: 0;
}

.prp-competence-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
}

.prp-competence-chart {
  grid-column: 1 / -1;
  margin: 0;
  padding: 1rem;
  border: 1px solid var(--columbia-blue);
  border-radius: 8px;
  background: var(--alice-blue);
}

.prp-competence-chart figcaption {
  color: var(--dark-slate);
  font-size: 1.1rem;
  font-weight: 800;
}

.prp-bar-list {
  display: grid;
  gap: .7rem;
  margin-top: .85rem;
}

.prp-bar-row {
  display: grid;
  grid-template-columns: minmax(120px, 1fr) minmax(110px, 1fr) auto;
  gap: .65rem;
  align-items: center;
}

.prp-bar-row > span:first-child {
  font-weight: 700;
}

.prp-bar-row small {
  color: #64748b;
}

.prp-bar-track {
  display: block;
  height: 12px;
  overflow: hidden;
  border-radius: 999px;
  background: var(--anti-flash-white);
  box-shadow: inset 0 0 0 1px var(--columbia-blue);
}

.prp-bar-track span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--ucla-blue) 0, var(--orchid) 100%);
  transition: width .4s ease;
}

/* Selected public competence without an approved proficiency level: show a
   neutral dashed track (no proportional fill would be meaningful). */
.prp-bar-track--priority {
  background: transparent;
  box-shadow: none;
  border: 1px dashed var(--border);
}

.prp-trust-grid {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.prp-trust-card {
  display: grid;
  place-items: center;
  min-height: 170px;
}

.prp-trust-card__badge-link {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 140px;
  text-decoration: none;
}

.prp-trust-card__badge-image {
  display: block;
  width: min(132px, 90%);
  height: auto;
  object-fit: contain;
}

.prp-trust-card__badge-fallback {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 96px;
  padding: .75rem;
  border: 1px solid var(--columbia-blue);
  border-radius: 8px;
  background: var(--alice-blue);
  color: var(--orchid);
  font-weight: 800;
  text-align: center;
}

.prp-see-all {
  display: inline-flex;
  margin-top: .85rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ucla-blue);
  cursor: pointer;
  font: inherit;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.prp-see-all:hover,
.prp-see-all:focus-visible {
  color: var(--yinmn-blue);
}

.prp-opportunity-card {
  cursor: pointer;
  background: var(--alice-blue);
}

.prp-opportunity-card > span {
  color: var(--malachite);
}

.prp-link-grid {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.prp-link-card {
  display: flex;
  align-items: center;
  gap: .65rem;
  min-height: 56px;
  padding: .85rem 1rem;
  font-weight: 800;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease;
}

.prp-link-card--button {
  width: 100%;
  color: inherit;
  cursor: pointer;
  text-align: left;
}

.prp-media-link {
  gap: .55rem;
}

.prp-media-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 1.35rem;
  height: 1.35rem;
  overflow: hidden;
  border-radius: 4px;
  background: #fff;
}

.prp-button .prp-media-logo {
  width: 1.2rem;
  height: 1.2rem;
}

.prp-media-logo__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.prp-media-logo--fallback {
  color: var(--ucla-blue);
  border: 1px solid var(--columbia-blue);
  background: var(--alice-blue);
  font-size: .9rem;
}

.prp-media-link__label {
  min-width: 0;
}

.prp-territory-card[class*="prp-accent-"] {
  border-top-width: 5px;
  border-top-style: solid;
}

/* Each accent exposes --prp-accent (inherited by the timeline node + button
   left border) and border-top-color (used by the territory cards' top edge). */
.prp-accent-ucla-blue {
  --prp-accent: var(--ucla-blue);
  border-top-color: var(--ucla-blue);
}

.prp-accent-aerospace-orange {
  --prp-accent: var(--aerospace-orange);
  border-top-color: var(--aerospace-orange);
}

.prp-accent-vista-blue {
  --prp-accent: var(--vista-blue);
  border-top-color: var(--vista-blue);
}

.prp-accent-malachite {
  --prp-accent: var(--malachite);
  border-top-color: var(--malachite);
}

.prp-accent-orchid {
  --prp-accent: var(--orchid);
  border-top-color: var(--orchid);
}

.prp-accent-electric-blue {
  --prp-accent: var(--electric-blue);
  border-top-color: var(--electric-blue);
}

.prp-accent-yinmn-blue {
  --prp-accent: var(--yinmn-blue);
  border-top-color: var(--yinmn-blue);
}

.prp-accent-powder-blue {
  --prp-accent: var(--powder-blue);
  border-top-color: var(--powder-blue);
}

@media (max-width: 991.98px) {
  .prp-living-cv-shell {
    grid-template-columns: 1fr;
  }

  .prp-identity-rail {
    position: static;
    max-height: none;
    overflow: visible;
  }

  .prp-hero,
  .prp-claim-panel,
  .prp-competence-layout {
    grid-template-columns: 1fr;
  }

  .prp-hero__portrait {
    justify-items: start;
  }
}

.portable-research-cv {
  --cv-border: #aab2d0;
  color: var(--dark-slate);
  background: #fff;
  border: 1px solid var(--cv-border);
  border-radius: 8px;
  padding: 1.5rem;
}

.portable-research-cv__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, .34fr);
  gap: 1rem;
  align-items: start;
  padding-bottom: 1rem;
  border-bottom: 4px solid var(--ucla-blue);
}

.portable-research-cv__kicker {
  margin: 0 0 .25rem;
  color: var(--yinmn-blue);
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.portable-research-cv h1,
.portable-research-cv h2,
.portable-research-cv h3 {
  letter-spacing: 0;
}

.portable-research-cv h1 {
  margin: 0;
  font-size: 2.25rem;
  line-height: 1.05;
}

.portable-research-cv__positioning {
  margin: .5rem 0;
  color: var(--yinmn-blue);
  font-size: 1.2rem;
  font-weight: 800;
}

.portable-research-cv__meta,
.portable-research-cv small,
.portable-research-cv__live-link {
  color: #475569;
}

.portable-research-cv__live-link {
  padding: .85rem;
  border: 1px solid var(--columbia-blue);
  border-radius: 8px;
  background: var(--alice-blue);
  overflow-wrap: anywhere;
}

.portable-research-cv__live-link span,
.portable-research-cv__live-link strong,
.portable-research-cv__live-link small {
  display: block;
}

.portable-research-cv__section {
  break-inside: avoid;
  margin-top: 1rem;
  padding-top: .85rem;
  border-top: 1px solid var(--columbia-blue);
}

.portable-research-cv__section h2 {
  margin: 0 0 .5rem;
  color: var(--dark-slate);
  font-size: 1.05rem;
  text-transform: uppercase;
}

.portable-research-cv__timeline {
  display: grid;
  gap: .55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.portable-research-cv__timeline li {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: .65rem;
  break-inside: avoid;
}

.portable-research-cv__timeline li > span {
  color: var(--ucla-blue);
  font-weight: 800;
}

.portable-research-cv__timeline strong,
.portable-research-cv__timeline small {
  display: block;
}

.portable-research-cv__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}

.portable-research-cv__grid section {
  break-inside: avoid;
  padding: .75rem;
  border: 1px solid var(--columbia-blue);
  border-radius: 8px;
}

.portable-research-cv__chips {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}

.portable-research-cv__chips span {
  display: inline-flex;
  padding: .28rem .55rem;
  border: 1px solid var(--columbia-blue);
  border-radius: 999px;
  background: var(--alice-blue);
  font-size: .9rem;
  font-weight: 700;
}

@media print {
  .portable-research-cv {
    border: 0;
    padding: 0;
  }

  .portable-research-cv__header,
  .portable-research-cv__grid {
    grid-template-columns: 1fr 1fr;
  }

  .portable-research-cv__section {
    page-break-inside: avoid;
  }
}

@media (max-width: 767.98px) {
  .public-researcher-profile {
    padding: .75rem;
  }

  .prp-hero,
  .prp-claim-panel,
  .prp-section {
    padding: 1rem;
  }

  .prp-benefit-grid,
  .prp-territory-grid,
  .prp-opportunity-grid {
    grid-template-columns: 1fr;
  }

  .prp-timeline {
    grid-template-columns: 1fr;
  }

  .prp-bar-row {
    grid-template-columns: 1fr;
    gap: .35rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .prp-button,
  .prp-link-card,
  .prp-territory-card,
  .prp-trust-card,
  .prp-opportunity-card,
  .prp-timeline__button,
  .prp-rail-link,
  .prp-bar-track span {
    transition: none;
  }

  .prp-button:hover,
  .prp-link-card:hover,
  .prp-territory-card:hover,
  .prp-trust-card:hover,
  .prp-opportunity-card:hover,
  .prp-timeline__button:hover,
  .prp-rail-link:hover {
    transform: none;
  }
}

@media print {
  @page {
    size: A4 portrait;
    margin: 12mm;
  }

  @page one-dashboard {
    size: A4 landscape;
    margin: 10mm;
  }

  html,
  body {
    background: #fff !important;
    color: #111 !important;
  }

  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  #header,
  #footer,
  #sidebar-panel,
  #post_section,
  #gotoTop,
  #cookie-consent-popup,
  .modal,
  .modal-backdrop,
  .sticky-sidebar-wrap,
  .no-print,
  .d-print-none,
  .dataTables_filter,
  .dataTables_length,
  .dataTables_info,
  .dataTables_paginate,
  .dt-buttons {
    display: none !important;
  }

  #wrapper,
  #content,
  #content .content-wrap,
  #content .container,
  #content-container,
  .content-box,
  .content-box > .info-box,
  .content-box > .info-box-trasparent,
  .content-box > .info-box > .col-12,
  .content-box > .info-box-trasparent > .col-12 {
    display: block !important;
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    position: static !important;
  }

  .content-box {
    break-inside: auto;
    page-break-inside: auto;
  }

  .content-box + .content-box {
    margin-top: 10mm !important;
  }

  body:has(.public-researcher-profile) {
    background: #fff !important;
  }

  body:has(.public-researcher-profile) #content,
  body:has(.public-researcher-profile) #content .content-wrap,
  body:has(.public-researcher-profile) #content .container,
  body:has(.public-researcher-profile) .content-box,
  body:has(.public-researcher-profile) .content-box > .info-box,
  body:has(.public-researcher-profile) .content-box > .info-box-trasparent {
    overflow: visible !important;
  }

  .public-researcher-profile {
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
    color: #111827 !important;
  }

  .prp-living-cv-shell {
    display: grid !important;
    grid-template-columns: 58mm minmax(0, 1fr) !important;
    gap: 7mm !important;
    align-items: start !important;
  }

  .prp-identity-rail {
    position: static !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 0 6mm 0 0 !important;
    border: 0 !important;
    border-right: 1px solid #d8e2ee !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .prp-living-main {
    min-width: 0 !important;
  }

  .prp-avatar {
    width: 26mm !important;
    height: 26mm !important;
  }

  .prp-identity-rail h1 {
    font-size: 17pt !important;
    line-height: 1.08 !important;
  }

  .prp-identity-rail > .prp-kicker,
  .prp-kicker {
    color: #64748b !important;
    font-size: 7.5pt !important;
    letter-spacing: .04em !important;
  }

  .prp-rail-positioning {
    color: var(--yinmn-blue) !important;
    font-size: 10pt !important;
    line-height: 1.25 !important;
  }

  .prp-role,
  .prp-location,
  .prp-summary,
  .prp-section__header p,
  .prp-claim-panel p,
  .prp-territory-card p,
  .prp-evidence-list p,
  .prp-bar-row,
  .prp-link-card {
    font-size: 8.5pt !important;
    line-height: 1.35 !important;
  }

  .prp-summary {
    margin-bottom: 4mm !important;
  }

  .prp-contact-through-one,
  .prp-see-all,
  .prp-button,
  .prp-timeline__button,
  .prp-opportunity-card {
    box-shadow: none !important;
  }

  .prp-contact-through-one,
  .prp-see-all {
    display: none !important;
  }

  .prp-rail-links {
    gap: 2mm !important;
  }

  .prp-rail-link,
  .prp-badge-chip,
  .prp-competence-chip {
    min-height: 0 !important;
    padding: 1.5mm 2.5mm !important;
    border-color: #d8e2ee !important;
    background: #f8fafc !important;
    font-size: 7.5pt !important;
  }

  .prp-claim-panel,
  .prp-section {
    margin-top: 5mm !important;
    padding: 5mm !important;
    border: 1px solid #d8e2ee !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .prp-claim-panel {
    display: block !important;
  }

  .prp-section__header {
    max-width: none !important;
    margin-bottom: 3mm !important;
  }

  .prp-section h2,
  .prp-claim-panel h2 {
    margin-bottom: 2mm !important;
    font-size: 13pt !important;
    line-height: 1.15 !important;
  }

  .prp-section__header h2::after {
    width: 16mm !important;
    height: 1.2mm !important;
    margin-top: 2mm !important;
  }

  .prp-timeline {
    gap: 3mm !important;
    padding-left: 6mm !important;
  }

  .prp-timeline__button {
    padding: 3mm !important;
    border-color: #d8e2ee !important;
    background: #f8fafc !important;
    color: #111827 !important;
  }

  .prp-timeline__source {
    font-size: 7.5pt !important;
  }

  .prp-benefit-grid,
  .prp-territory-grid,
  .prp-opportunity-grid,
  .prp-link-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 3mm !important;
  }

  .prp-trust-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 3mm !important;
  }

  .prp-trust-card[hidden] {
    display: grid !important;
  }

  .prp-territory-card,
  .prp-trust-card,
  .prp-opportunity-card,
  .prp-link-card {
    padding: 3mm !important;
    border-color: #d8e2ee !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .prp-trust-card {
    min-height: 31mm !important;
  }

  .prp-trust-card__badge-link {
    min-height: 26mm !important;
  }

  .prp-trust-card__badge-image {
    width: min(25mm, 90%) !important;
  }

  .prp-competence-layout {
    display: block !important;
  }

  .prp-competence-chart {
    padding: 4mm !important;
    border-color: #d8e2ee !important;
    border-radius: 0 !important;
    background: #f8fafc !important;
  }

  .prp-competence-chart figcaption {
    font-size: 10pt !important;
  }

  .prp-bar-list {
    gap: 2.5mm !important;
  }

  .prp-bar-row {
    grid-template-columns: minmax(36mm, 1fr) minmax(36mm, 1fr) 22mm !important;
    gap: 3mm !important;
  }

  .prp-bar-track {
    height: 3mm !important;
    background: #eef2f7 !important;
  }

  .prp-link-card--button {
    display: none !important;
  }

  details,
  details > * {
    display: block !important;
  }

  details > summary {
    display: none !important;
  }

  .content-box .info-box,
  .content-box .info-box-trasparent,
  .institution-footprint-panel,
  .institution-footprint-kpi,
  .institution-footprint-usecase {
    background: #fff !important;
    box-shadow: none !important;
  }

  .one-print-visual-snapshot {
    display: block !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 auto 1rem !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .one-print-original-visual {
    display: none !important;
  }

  .institution-footprint-map,
  .institution-footprint-chart,
  [id$="Chart"],
  [id$="lgChart"],
  [id$="mdChart"] {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  table {
    width: 100% !important;
    border-collapse: collapse !important;
  }

  .table-responsive,
  .dataTables_wrapper,
  .dataTables_scroll,
  .dataTables_scrollBody {
    width: 100% !important;
    height: auto !important;
    overflow: visible !important;
  }

  thead {
    display: table-header-group;
  }

  tr,
  img,
  svg,
  canvas {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  a[href]::after {
    content: "" !important;
  }
  /* ── Printing one section ─────────────────────────────────────────────────
     ONEPrint.printSection marks the target and its ancestor chain; every other
     child of every ancestor folds away, so the section prints alone whatever
     its depth in the layout. */
  body.one-print-section > *:not(.one-print-ancestor):not(.one-print-target),
  body.one-print-section .one-print-ancestor > *:not(.one-print-ancestor):not(.one-print-target) {
    display: none !important;
  }

  /* The chain that survives keeps its own indents and gutters, which are page
     layout, not section layout: left in, they push a section that fits onto a
     second, empty sheet. */
  body.one-print-section,
  body.one-print-section .one-print-ancestor,
  body.one-print-section .one-print-target {
    margin: 0 !important;
    padding: 0 !important;
  }

  /* The named page goes on the whole document, not on the section: naming it
     only on the section makes the flow change page on the way out and emit a
     blank sheet behind it. Browsers without named pages fall back to portrait,
     which still prints -- it just takes two pages. */
  body.one-print-section {
    page: one-dashboard;
  }

  /* ── Organization report: the control dashboard ───────────────────────────
     On screen the controls ARE the state; on paper they cannot be operated, so
     what is off disappears and what is on stays as the record of the filter.
     The caption above spells the same thing out in words. */
  .org-dash__print-head {
    display: block !important;
    margin-bottom: 4mm;
    border-bottom: 1px solid #ccc;
    padding-bottom: 2mm;
  }

  .org-dash__print-title {
    font-size: 15pt;
    font-weight: 600;
    line-height: 1.25;
  }

  .org-dash__print-meta {
    font-size: 8.5pt;
    color: #444 !important;
    margin-top: 1.5mm;
    line-height: 1.5;
  }

  /* The filter rows are controls that cannot be operated on paper, and the
     caption above already states what they were set to; printing them as well
     leaves a scatter of pills and separators saying it a second time. What
     stays is the label of the year chart, which is reading, not driving. */
  .org-dash__row--filters,
  .org-dash .dash-menu,
  .org-dash .dash-radio,
  .org-dash .dash-step,
  .org-dash__forms,
  .org-dash__loading,
  .org-dash__print-hide {
    display: none !important;
  }

  .org-dash .dash-tab:not(.active) {
    display: none !important;
  }

  .org-dash__switch {
    border: 0 !important;
  }

  /* One sheet. Two things have to be said out loud for that to happen.
     First: a printed page lays out at around 740 CSS pixels whatever the paper
     is, and only then gets scaled up to it, so every one of the site's mobile
     breakpoints is live while printing. The dashboard would go to paper in its
     phone layout -- one card per row -- unless the desktop grid is restated
     here. Second: the charts arrive already drawn at the right shape (see PAPER
     in the dashboard controller), so the pictures simply fill their boxes and
     nothing on the sheet is scaled down. Zoom is not an option even where it
     would look right: Chrome paginates zoomed content by its unzoomed height
     and emits a blank page behind it. */
  .org-dash__cards {
    grid-template-columns: 1.7fr 1fr 1fr 1fr !important;
  }

  .org-dash__row {
    flex-wrap: nowrap !important;
  }

  .org-dash__card-body {
    min-height: 0 !important;
  }

  /* The share sits inside the ring, and the ring on paper is a good deal
     smaller than on screen. The box has to stop growing with the card too, or
     the figure centres itself on the empty space under the ring instead. */
  .org-dash__donut {
    flex: 0 0 auto !important;
  }

  .org-dash__donut-value {
    font-size: 19px;
  }

  .org-dash__donut-count {
    font-size: 9px;
  }

  .org-dash__row--chart > .one-print-visual-snapshot,
  .org-dash__bar-wrap > .one-print-visual-snapshot,
  .org-dash__card > .one-print-visual-snapshot,
  .org-dash__donut > .one-print-visual-snapshot {
    width: 100% !important;
    margin: 0 !important;
    /* A flex item will not shrink below its own content by default, and the
       content here is a picture wider than the page: without this the year
       chart overflowed its panel and the sheet lost its last year off the
       right-hand edge -- while the picture itself was perfectly complete. */
    min-width: 0 !important;
  }

  .org-dash__card,
  .org-dash__panel {
    box-shadow: none !important;
    border: 1px solid #dcdfe8 !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }
}


/* =========================================================================
   Admin badges (.one-badge) — homogeneous badge system for the user admin.
   One shape and tint style; the color encodes the plan family:
   gray = free tiers, blue = personal paid, green = institutional, violet = premium.
   Text/background pairs validated at >= 4.7:1 contrast (WCAG AA).
   ========================================================================= */
.one-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
  border: 1px solid transparent;
  white-space: nowrap;
}
.one-badge--free          { color: #52514e; background: #f0efec; border-color: #dbdad5; }
.one-badge--personal      { color: #1c5cab; background: #e4eefb; border-color: #b7d3f6; }
.one-badge--institutional { color: #0d7a55; background: #e2f6ee; border-color: #a9e6cf; }
.one-badge--premium       { color: #3d2f95; background: #ebe8f9; border-color: #c7c0ee; }
.one-badge--status-good   { color: #0a7a0a; background: #e6f4e6; border-color: #bfe3bf; }
.one-badge--status-warn   { color: #8a5a00; background: #fdf0d5; border-color: #f3d89a; }
.one-badge--status-muted  { color: #52514e; background: #f0efec; border-color: #dbdad5; }
.one-badge--clickable { cursor: pointer; }
.one-badge--clickable:hover { filter: brightness(0.95); }
.one-badge--active { outline: 2px solid currentColor; outline-offset: 1px; }
.one-badge--zero { opacity: 0.4; }
.one-filter-row .one-badge { margin: 0 4px 4px 0; }
/* Country filter/count badges: the flag is a 20x15 <sup> image that, raised as a
   superscript with only 2px vertical padding, touched the badge edges. Centre it
   and give the badge a little more breathing room. */
.one-filter-row .one-badge { padding-top: 3px; padding-bottom: 3px; }
.one-filter-row .one-badge sup { top: 0; vertical-align: middle; margin-right: 1px; }
.one-badge--status-bad    { color: #a12c2c; background: #fbe7e7; border-color: #f0bcbc; }


/* Admin new-user form: lift the tiny helper text (base 14px + .small = ~12px in
   grey was hard to read). Scoped so registration / the rest of the app are untouched. */
.admin-user-new-form .small,
.admin-user-new-form small {
  font-size: 0.9rem;
}
.admin-user-new-form .text-muted {
  color: #6b7280 !important;
}
/* Plan card description ships with font-weight:300 (faint); make it readable here */
.admin-user-new-form .form-check label span[style*="font-weight: 300"] {
  font-weight: 400 !important;
}

/* ── Organization report: control dashboard ───────────────────────────────
   One screen at the top of the report. Surfaces follow the public profile:
   white cards, a soft lavender border and a barely-there shadow; the accent
   underline and the chart palette follow the ONE Index gauge. */

.org-dash { display: grid; gap: 12px; }
.org-dash__print-head { display: none; }

.org-dash__card,
.org-dash__panel {
  background: #fff;
  border: 1px solid #e6e9f5;
  border-radius: 14px;
  box-shadow: 0 1px 3px rgba(16, 42, 84, .05);
}

.org-dash__panel { padding: 16px 20px; }

.org-dash__label {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #4a5a73;
  margin-bottom: 10px;
}
.org-dash__label::after {
  content: "";
  display: block;
  width: 34px;
  height: 3px;
  border-radius: 2px;
  background: #5cb3ef;
  margin-top: 6px;
}

.org-dash__row { display: flex; align-items: center; gap: 20px; padding: 7px 0; }
.org-dash__row--filters { padding-top: 4px; }
.org-dash__row--chart { align-items: stretch; padding-top: 12px; }

.org-dash__figure { flex: 0 0 190px; display: flex; align-items: baseline; gap: 7px; flex-wrap: wrap; }
/* the export button sits under the figure it exports, on its own line */
.org-dash__export { flex: 0 0 100%; margin-top: 7px; }
/* the population the headline does not claim, kept visible but subordinate */
.org-dash__aside { flex: 0 0 100%; font-size: 11.5px; color: #8a96a8; margin-top: 2px; }
.org-dash__figure--label {
  flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 10px;
  font-size: 11.5px; color: #6b7a90; text-transform: uppercase; letter-spacing: .06em;
}
/* The column reads top to bottom: what this row is, which population it counts,
   room for the selectors to come, and the period pinned at the foot so it sits
   with the brush at the bottom of the chart it drives. */
.org-dash__figure--label .org-dash__card-title { margin-bottom: 0; }
/* what the chart is showing, under the button that changes it */
.org-dash__metric-name {
  font-size: 12.5px; color: #0f2740; font-weight: 600;
  text-transform: none; letter-spacing: 0; line-height: 1.3;
}
.org-dash__chart-controls { display: flex; align-items: center; gap: 14px; }
.org-dash__forms { display: inline-flex; gap: 10px; }
.org-dash__switch--mini .dash-tab { font-size: 11px; padding: 1px 8px; }
.org-dash__card-foot { margin-top: 6px; }
/* swap the indicator in a slot: a mark, not a word -- the title row is narrow
   and every box carries one */
.dash-swap {
  border: 0; background: none; padding: 2px; line-height: 0; cursor: pointer;
  color: #b3bcc9; border-radius: 4px; transition: color .15s, background .15s;
}
.dash-swap:hover { color: #1b86cf; background: #eef4fb; }
.dash-swap svg { display: block; }
.dash-form {
  border: 0; background: none; padding: 0; line-height: 0; cursor: pointer;
  color: #b3bcc9; transition: color .15s;
}
.dash-form:hover { color: #6b7a90; }
.dash-form.active { color: #1b86cf; }
.dash-form svg { fill: currentColor; display: block; }
.org-dash__figure--label .org-dash__stepper { margin-top: auto; }

.org-dash__num {
  font-size: 36px; line-height: 1; font-weight: 600; color: #0f2740;
  font-variant-numeric: tabular-nums;
}
.org-dash__unit { font-size: 13px; color: #6b7a90; }
/* What is still coming, shown under the figure it is going to fill: the number
   above reads as a total, and while the pages are still landing it is not one
   yet. It leaves as soon as the last page is in. */
.org-dash__loading { flex: 0 0 100%; margin-top: 6px; }
.org-dash__loading-track {
  display: block; height: 3px; border-radius: 2px; background: #e2e6f0; overflow: hidden;
}
.org-dash__loading-track i {
  display: block; height: 100%; width: 0; border-radius: 2px;
  background: #1b86cf; transition: width .25s ease-out;
}
/* Before the first page lands there is no fraction to draw: the bar paces
   instead of filling, which says working without claiming to know how much. */
.org-dash__loading--waiting .org-dash__loading-track i {
  width: 38%; transition: none; animation: org-dash-waiting 1.2s ease-in-out infinite;
}
@keyframes org-dash-waiting {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(262%); }
}
.org-dash__loading-label {
  display: block; margin-top: 3px; font-size: 10.5px; color: #8a96a8;
  font-variant-numeric: tabular-nums;
}

.org-dash__bar-wrap { flex: 1 1 auto; min-width: 0; }
.org-dash__bar { height: 30px; }
.org-dash__legend { margin-top: 3px; line-height: 1.5; }

.org-dash__group { display: inline-flex; align-items: center; gap: 8px; }
/* the radio marks which dimension the charts are drawing */
.dash-radio {
  width: 12px; height: 12px; border-radius: 50%; border: 2px solid #cdd6e5;
  display: inline-block; cursor: pointer; flex: 0 0 auto; transition: border-color .15s;
}
.dash-radio:hover { border-color: #1b86cf; }
.dash-radio.checked { border-color: #1b86cf; background: #1b86cf; box-shadow: inset 0 0 0 2px #fff; }

.org-dash__pills { display: inline-flex; flex-wrap: wrap; gap: 7px; }
.org-dash__sep { width: 1px; height: 20px; background: #e6e9f5; margin: 0 12px; }

.dash-pill {
  border: 1px solid #dde3f0; background: #fff; color: #45566b;
  border-radius: 15px; padding: 3px 12px; font-size: 12px; line-height: 19px;
  cursor: pointer; transition: background .15s, color .15s, border-color .15s;
}
.dash-pill:hover { border-color: #1b86cf; color: #1b86cf; }
.dash-pill.active { background: #1b86cf; border-color: #1b86cf; color: #fff; }
.dash-pill--reset { border-style: dashed; }

/* multi-select of document types: a small panel, applied on demand */
.dash-menu { position: relative; display: inline-block; }
.dash-menu__panel {
  display: none; position: absolute; z-index: 30; top: calc(100% + 6px); left: 0;
  min-width: 230px; background: #fff; border: 1px solid #e6e9f5; border-radius: 10px;
  box-shadow: 0 6px 18px rgba(16, 42, 84, .12); padding: 8px;
}
.dash-menu.open .dash-menu__panel { display: block; }
.dash-menu__panel--right { left: auto; right: 0; }

/* ── A report table wearing the dashboard's clothes ───────────────────────
   Same surface as the cards above (white, the soft lavender border, a
   barely-there shadow), and a rule drawn only where a row ends. Most of this
   is taking away what DataTables ships: its heavy header underline, its
   padding, the boxes around the pager.

   Every selector is written twice, plain and with .dataTable. The class only
   appears when DataTables initialises, and its stylesheet is loaded after this
   one -- so the plain form dresses the table on arrival and the second wins
   back the rules DataTables would otherwise take. */
/* The thematic chart sits on the same surface as the table below it, named
   by the same line the yearly chart uses. */
.org-dash-fields__chart { height: 340px; }

/* Funded projects: the same cards as the dashboard, three across. The three
   headline figures take the large size and the six that qualify them the
   small one, so the block reads as one figure with its conditions rather than
   as nine equal boxes. */
.org-proj__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.org-proj__card .org-dash__card-figure { font-size: 26px; }
.org-proj__card--lead .org-dash__card-figure { font-size: 34px; }
.org-proj__card .org-dash__card-title { margin-bottom: 6px; }
.org-proj__card .org-dash__card-delta i { font-size: 11px; margin-right: 2px; }
.org-proj__chart { height: 320px; width: 100%; }

/* The competence heatmap: the same surface as the other panels, and a height
   of its own -- it grows with the number of competences on the axis. */
.org-competence__chart { width: 100%; height: 100%; min-height: 520px; }

/* The author list: its controls in one row above it, and a pager under it.
   No table library involved -- the search and the order are answered from the
   dataset already in the page and only the visible page is drawn. */
.org-list__controls { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.org-list__search {
  flex: 1 1 260px; max-width: 380px;
  border: 1px solid #dde3f0; border-radius: 7px; background: #fff;
  padding: 5px 12px; font-size: 13px; color: #0f2740;
}
.org-list__search::placeholder { color: #9aa5b1; }
.org-list__search:focus { outline: none; border-color: #5cb3ef; }
.org-list__loading { padding: 24px 0; color: #6b7a90; font-size: 12.5px; }
.org-list__pager { display: flex; align-items: center; gap: 10px; margin-top: 12px; }
.org-list__pager .dash-tab[disabled] { opacity: .45; cursor: default; }

/* The membership of a researcher, as a badge on their row: the six colours of
   the dashboard's standing bar, with the ink chosen against each so the pale
   end stays readable. */
.one-membership {
  display: inline-block; margin-right: 8px; padding: 2px 9px;
  border-radius: 999px; font-size: 11px; font-weight: 600; letter-spacing: .02em;
  vertical-align: middle;
}
.one-membership--0 { background: #0f4a70; color: #fff; }
.one-membership--1 { background: #454f5d; color: #fff; }
.one-membership--2 { background: #6f7987; color: #fff; }
.one-membership--3 { background: #99a2ae; color: #fff; }
.one-membership--4 { background: #c2c9d2; color: #0f2740; }
.one-membership--5 { background: #e3e7ec; color: #0f2740; }

/* What the centre is, under its address: a sentence, not a badge, because the
   thing it replaces -- a row of keyword pills -- looked like data and was not.
   Empty while it is being resolved, and it takes no room until it arrives. */
.org-description {
  margin: 6px 0 0; padding-left: .5rem;
  font-size: .95rem; line-height: 1.5; color: #38506b;
}
.org-description--waiting { margin: 0; min-height: 0; }

/* What the centre is, in three words: what kind it is, how big, and what it
   works on. The first two are labels of the catalogue and stay quiet; the
   third is a finding of the data, and carries the report's colour. */
.org-tags { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.org-tag {
  display: inline-block; padding: 2px 10px; border-radius: 999px;
  font-size: 11.5px; font-weight: 600; letter-spacing: .02em;
  background: #eef1f8; color: #38506b;
}
.org-tag--sector { background: #e3e7ec; color: #113555; }
.org-tag--size { background: #f2f8fe; color: #2b83c2; cursor: help; }
/* The area is not a label of the catalogue but what the centre works on, so it
   is a word and not a pill: bold, a size up, and the page's own ink. */
.org-area {
  font-size: 1.05rem; font-weight: 700; letter-spacing: .01em;
  color: #113555; margin-left: 4px;
}

/* The innovation of the region, on the address line. Four steps of the
   report's own blue and not a traffic light: this describes an environment,
   and green-to-red would turn a description into a verdict. */
.org-region {
  display: inline-flex; align-items: center; gap: 6px;
  margin-left: 10px; padding: 2px 10px;
  border-radius: 999px; font-size: 12px; font-weight: 600; letter-spacing: .01em;
  vertical-align: middle; cursor: pointer; white-space: nowrap;
}
.org-region--static { cursor: default; margin-left: 0; }
.org-region--leader   { background: #0f4a70; color: #fff; }
.org-region--strong   { background: #2b83c2; color: #fff; }
.org-region--moderate { background: #b7cfeb; color: #113555; }
.org-region--emerging { background: #eef5fc; color: #113555; }
.org-region__index { font-weight: 700; opacity: .9; }
.org-region__info { font-size: 12px; opacity: .8; }
.org-region__code { font-size: .8rem; font-weight: 400; color: #6b7a90; margin-left: 6px; }
.org-region__dot {
  display: inline-block; width: 10px; height: 10px; border-radius: 50%;
  margin-right: 6px; vertical-align: baseline;
}
.org-region__bands td { border: 0; padding: 3px 4px; font-size: 13px; }
.org-region__band--mine { background: #f2f8fe; font-weight: 600; }
.org-region__series span { display: inline-block; margin-right: 12px; font-size: 12.5px; color: #113555; }
.org-region__caveat {
  font-size: 12.5px; color: #6b7a90;
  border-left: 3px solid #dde3f0; padding-left: 10px;
}

/* Collaboration: two tables, half the page each, so countries and institutions
   are read against each other rather than one after the other. */
.org-collab { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.org-collab__title {
  font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  color: #6b7a90; margin: 2px 0 8px;
}
/* The dashboard tables right-align everything but the first column, which is
   what a table of figures wants. Here the first column is the flag, so the
   name -- a name, not a figure -- has to be told to stay left. */
.org-collab td:nth-child(2), .org-collab th:nth-child(2) { text-align: left !important; }
.org-collab__flag { width: 34px; }
.org-collab__flag img {
  border-radius: 2px; vertical-align: middle;
  box-shadow: 0 0 0 1px rgba(15, 39, 64, .12);
}
.org-collab__switch--off { opacity: .4; pointer-events: none; }
.org-collab__row { cursor: pointer; }
.org-collab__row--active td { background: #f2f8fe; font-weight: 600; }
.org-collab__row--active td:first-child { box-shadow: inset 3px 0 0 #2f6fbf; }
.org-collab__x { color: #6b7a90; margin-left: 6px; }
.org-collab__name, .org-collab__name:hover { color: #113555 !important; }
.org-collab__name:hover { text-decoration: underline !important; }
@media (max-width: 900px) { .org-collab { grid-template-columns: 1fr; } }

/* A row of the documents list. The type wears the pill of the author list --
   same pale ground, same rounded shape -- and the title wears the page's own
   ink (#113555, var(--text)) rather than a link blue of its own: it is the
   subject of the row, not a link that happens to be there. */
.org-doc__type {
  display: inline-block; margin-right: 8px; padding: 2px 9px;
  border-radius: 999px; font-size: 11px; font-weight: 600; letter-spacing: .02em;
  vertical-align: middle;
  background: #e3e7ec; color: #113555;
}
/* The site sets `a { color: ... !important }`, so a link that has to wear the
   page's own ink has to say it just as loudly. */
.org-doc__title, .org-doc__title:hover, .org-doc__title:focus,
.org-doc__pdf, .org-doc__pdf:hover, .org-doc__pdf:focus { color: #113555 !important; }
.org-doc__title:hover { text-decoration: underline !important; }
.org-doc__pdf {
  display: inline-block; margin-left: 8px; padding: 1px 8px;
  border-radius: 999px; font-size: 10.5px; font-weight: 700; letter-spacing: .04em;
  background: #e3e7ec;
}

.org-authors__scope { align-self: flex-start; }
.org-authors__symbol { font-size: 15px; color: #6b7a90; margin: 0 4px 0 0; vertical-align: baseline; }
.org-authors__symbol + span + .org-authors__symbol { margin-left: 14px; }

/* Author analysis: two panels side by side, each with its chart and the
   wording of its own classes underneath -- the text is why the pair exists. */
.org-authors__pair { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.org-authors__chart { height: 260px; width: 100%; }
.org-authors__legend {
  font-size: 11.5px; line-height: 1.45; color: #6b7a90; margin: 8px 0 0;
}
.org-authors__legend b { color: #4a5a73; font-weight: 600; }

@media (max-width: 991px) {
  .org-authors__pair { grid-template-columns: 1fr; }
}

@media (max-width: 991px) {
  .org-proj__cards { grid-template-columns: 1fr; }
}


.org-dash-table {
  background: #fff;
  border: 1px solid #e6e9f5;
  border-radius: 14px;
  box-shadow: 0 1px 3px rgba(16, 42, 84, .05);
  padding: 6px 14px 10px;
}
/* Read through a department: the centre becomes the line above, small and
   still clickable, and the department takes the headline. The report is the
   same report -- one dataset, one dashboard -- so nothing else changes size. */
.org-report__parent {
  font-size: .95rem;
  color: #6b7a90;
  letter-spacing: .01em;
}
.org-report__parent-link { color: #2f6fbf; }
.org-report__parent-link:hover { text-decoration: underline; }
.org-report__parent-sep { margin: 0 .35rem; color: #9aa5b1; }
.org-report__parent-kind { text-transform: uppercase; font-size: .72rem; letter-spacing: .08em; color: #9aa5b1; }
.org-report__unpin {
  margin-left: .5rem;
  font-size: 1.4rem;
  line-height: 1;
  color: #9aa5b1;
  vertical-align: middle;
}
.org-report__unpin:hover { color: #0f2740; }

/* The department the report is being read through. It is the only row left in
   the table, so this is not to tell it from the others -- it is to say that a
   choice was made and there is a way back. */
.org-dash-table table tbody tr.org-dash-table__row--pinned td {
  background: #f2f8fe;
  font-weight: 600;
}
.org-dash-table table tbody tr.org-dash-table__row--pinned td:first-child {
  box-shadow: inset 3px 0 0 #2f6fbf;
}

/* A department whose people fall outside the current selection: still listed
   -- it exists -- but recessive, so a table of mostly zeros does not read as
   a table of measurements. */
.org-dash-table table tbody tr.org-dash-table__row--empty td {
  color: #9aa5b1;
}
.org-dash-table table,
.org-dash-table table.dataTable {
  border-collapse: collapse !important;
  font-size: 13px;
  color: #0f2740;
}
.org-dash-table table thead th,
.org-dash-table table.dataTable thead th {
  border-bottom: 1px solid #e6e9f5;
  padding: 8px 10px;
  font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  color: #6b7a90;
}
.org-dash-table table tbody td,
.org-dash-table table.dataTable tbody td {
  border-top: 1px solid #eef1f8;
  padding: 7px 10px;
  font-variant-numeric: tabular-nums;
}
/* The first column is a name and reads as text; the rest are quantities. */
.org-dash-table table thead th:not(:first-child),
.org-dash-table table tbody td:not(:first-child),
.org-dash-table table.dataTable thead th:not(:first-child),
.org-dash-table table.dataTable tbody td:not(:first-child) { text-align: right; }
.org-dash-table table tbody tr:hover td,
.org-dash-table table.dataTable tbody tr:hover td { background: #f7f9fd; }
.org-dash-table table tbody td a { color: #1b86cf; }
.org-dash-table .dataTables_info,
.org-dash-table .dataTables_paginate { font-size: 12px; color: #6b7a90; padding-top: 8px; }
.org-dash-table .dataTables_paginate .paginate_button {
  border: 0 !important; background: none !important; padding: 2px 8px !important;
  border-radius: 6px; color: #45566b !important;
}
.org-dash-table .dataTables_paginate .paginate_button.current {
  background: #eef4fb !important; color: #1b86cf !important;
}
.org-dash-table .dataTables_paginate .paginate_button:hover { background: #f4f7fd !important; }
.dash-menu__list { max-height: 220px; overflow-y: auto; }
.dash-menu__item {
  display: flex; align-items: center; gap: 8px; margin: 0;
  padding: 4px 6px; border-radius: 6px; font-size: 12px; color: #45566b; cursor: pointer;
}
.dash-menu__item:hover { background: #f4f7fd; }
.dash-menu__item--empty { color: #98a4b5; }
/* The family comes from the page, the size from the menu: `font: inherit`
   here made the same dropdown render at whatever size its surroundings
   happened to use -- small inside the dashboard, large in a report section. */
.dash-menu__item--action {
  width: 100%; border: 0; background: transparent; text-align: left;
  font-family: inherit; font-size: 12px; line-height: 1.45;
}
.dash-menu__note {
  font-size: 11px; color: #8a96a8; padding: 2px 6px 7px;
  border-bottom: 1px solid #eef1f8; margin-bottom: 6px;
}
/* three states per row: neutral, included, excluded (struck through) */
.dash-menu__item--tri {
  width: 100%; border: 0; background: transparent; text-align: left; font: inherit;
}
.dash-tri {
  width: 12px; height: 12px; border-radius: 3px; border: 1.5px solid #cdd6e5;
  display: inline-block; flex: 0 0 auto; position: relative;
}
[data-state="in"] .dash-tri { background: #2f6fbf; border-color: #2f6fbf; }
[data-state="in"] .dash-tri::after {
  content: ""; position: absolute; left: 3px; top: 0px; width: 3px; height: 7px;
  border: solid #fff; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg);
}
[data-state="out"] .dash-tri { background: #e2542a; border-color: #e2542a; }
[data-state="out"] .dash-tri::after {
  content: ""; position: absolute; left: 1.5px; top: 4px; width: 6px; height: 1.5px; background: #fff;
}
[data-state="out"] span:nth-of-type(1) { text-decoration: line-through; color: #b0392a; }
.dash-menu__item span:nth-of-type(1) { flex: 1 1 auto; }
.dash-menu__count { color: #8a96a8; font-variant-numeric: tabular-nums; }
.dash-menu__actions {
  display: flex; justify-content: flex-end; gap: 6px;
  border-top: 1px solid #eef1f8; margin-top: 6px; padding-top: 8px;
}

.org-dash__switch { display: inline-flex; border: 1px solid #dde3f0; border-radius: 7px; overflow: hidden; }
.dash-tab { border: 0; background: #fff; color: #45566b; font-size: 12px; padding: 4px 14px; cursor: pointer; }
.dash-tab.active { background: #1b86cf; color: #fff; }
/* the period: a brush to sweep, a pair of nudges per edge */
.org-dash__stepper {
  display: inline-flex; align-items: center; gap: 2px;
  text-transform: none; letter-spacing: 0;
}
.dash-step {
  width: 20px; height: 20px; padding: 0; line-height: 18px;
  border: 1px solid #dde3f0; background: #fff; color: #45566b;
  border-radius: 5px; font-size: 13px; cursor: pointer;
}
.dash-step:hover { border-color: #1b86cf; color: #1b86cf; background: #f5faff; }
.dash-step:active { background: #1b86cf; color: #fff; }
.dash-step__year {
  font-size: 15px; font-weight: 600; color: #0f2740;
  font-variant-numeric: tabular-nums; padding: 0 3px; min-width: 42px; text-align: center;
}
.dash-step__dash { color: #b6c0cf; padding: 0 4px; }

.org-dash__period {
  font-size: 15px; color: #0f2740; font-weight: 600;
  text-transform: none; letter-spacing: 0; font-variant-numeric: tabular-nums;
}

.org-dash__years { flex: 1 1 auto; height: 200px; min-width: 0; }

/* the three quality cards: square, so the charts get room */
/* thematic scope keeps its width; the rest share what is left */
.org-dash__cards { display: grid; grid-template-columns: 1.7fr 1fr 1fr 1fr; gap: 12px; }
.org-dash__stack { display: grid; grid-template-rows: 1fr 1fr; gap: 12px; min-width: 0; }
.org-dash__card--compact { justify-content: center; }
.org-dash__card--compact .org-dash__card-figure { font-size: 32px; }
.org-dash__card-delta { font-size: 12px; margin-top: 4px; font-variant-numeric: tabular-nums; }
.org-dash__card { padding: 14px 16px; display: flex; flex-direction: column; }
.org-dash__card-title {
  font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: #4a5a73; margin-bottom: 8px;
}
.org-dash__card-title--with-action {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
}
.org-dash__card-title--with-action .dash-pill { text-transform: none; letter-spacing: 0; font-weight: 400; }
.dash-menu--right .dash-menu__panel { left: auto; right: 0; }

.org-dash__hint { text-transform: none; letter-spacing: 0; font-weight: 400; color: #8a96a8; }
.org-dash__card-body { flex: 1 1 auto; min-height: 168px; }
.org-dash__donut .org-dash__card-body { width: 100%; height: 100%; }
.org-dash__card-figure {
  font-size: 40px; font-weight: 600; color: #0f2740; line-height: 1.05;
  font-variant-numeric: tabular-nums;
}


/* The ring and the figure inside it are two separate drawings stacked on the
   same box, so the box is what has to hold them together: the chart centres
   itself in it, and the figure is centred on the very same point. */
.org-dash__donut {
  position: relative; flex: 1 1 auto;
  display: flex; align-items: center; justify-content: center;
}
.org-dash__donut-value {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  font-size: 30px; font-weight: 600; color: #0f2740; font-variant-numeric: tabular-nums;
  /* Centred as text as well as a box: without this the share sits against the
     left edge of whatever width its own subline gives the block. And bounded,
     so a long subline wraps inside the ring instead of crossing it. */
  text-align: center; line-height: 1.1; max-width: 84%;
}
/* the count the share stands on, subordinate to it */
.org-dash__donut-count {
  display: block; margin-top: 2px;
  font-size: 10.5px; font-weight: 500; color: #8a96a8; letter-spacing: 0;
  line-height: 1.25;
}

@media (max-width: 991px) {
  .org-dash__row { flex-wrap: wrap; }
  .org-dash__figure { flex-basis: 130px; }
  .org-dash__cards { grid-template-columns: 1fr; }
}

/* Inside a dashboard card the delta arrows take the dashboard's status
   colours (up green, down orange, flat grey) instead of the page-wide
   malachite/red pair. Shared by the organization and location reports. */
.org-dash__card-delta i.icon-arrow-circle-up { color: #0f9d78; }
.org-dash__card-delta i.icon-arrow-circle-down { color: #e2542a; }
.org-dash__card-delta i.icon-equals { color: #6b7a90; }

/* Where a header figure sits among its peers: just the glyph, no box. The
   triangle carries the direction and the colour the reading — the status
   pair the report's deltas already use, with amber for the middle band. */
.geo-standing {
  display: inline-block; margin-left: 5px;
  font-size: 9px; font-weight: 700; letter-spacing: -1px; line-height: 1;
  vertical-align: baseline; white-space: nowrap; cursor: help;
}
.geo-standing--up   { color: #0f9d78; }
.geo-standing--mid  { color: #b07d00; }
.geo-standing--down { color: #e2542a; }

/* Global Context: the reference group's own figure, and beside it how this
   country compares with it. Small and quiet on purpose -- a table can carry
   fifty of these marks and the colour has to inform, not shout. The arrow
   repeats what the colour says, for print and for the readers who cannot tell
   the two apart. */
.global-context .gc-value { color: #6b7a90; }
.global-context .gc-delta {
  margin-left: 6px;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .01em;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  cursor: help;
}
.global-context .gc-delta--up   { color: #0f9d78; }
.global-context .gc-delta--down { color: #e2542a; }
.global-context .gc-delta--flat { color: #9aa5b1; }
/* An indicator where more is not plainly better keeps the arrow and loses the
   colour: the direction is a fact, the verdict would not be. */
.global-context .gc-delta--none { color: #9aa5b1; }

/* The country is the subject of the table, not one column among the others. */
.global-context .gc-mine {
  font-weight: 700;
  color: #0f2740;
  border-right: 1px solid #e6e9f5;
}
.global-context thead .gc-mine { border-right: 1px solid #e6e9f5; }
.global-context__legend {
  font-size: 11.5px;
  color: #8a96a8;
  margin: -2.5rem 0 3rem;
  padding-left: .5rem;
}

/* The eight years of a Scoreboard dimension, beside the figure they end on.
   The cell holds the drawing and nothing else, so it keeps no padding of its
   own and the line sits on the row's baseline.

   The names are short and the decade is what deserves the room, so the first
   column is held to what its longest label needs -- "Investments in
   information technologies" -- and everything left over goes to the drawing. */
.global-context--eis th:first-child,
.global-context--eis td:first-child { width: 380px; }
.global-context--eis .gc-mine { width: 90px; }
.global-context--eis th:nth-child(3),
.global-context--eis td:nth-child(3) { width: 120px; }
.eis-spark__cell { width: 320px; padding-top: 2px !important; padding-bottom: 2px !important; }
.eis-spark { display: inline-block; vertical-align: middle; cursor: help; }

/* The dimension carries its own definition, so the name has to lead: a size up
   and the report's ink, over the indicators the Scoreboard aggregates into it,
   small and quiet. */
.eis-dim__name { font-size: 14px; font-weight: 600; color: #0f2740; line-height: 1.25; }
.eis-dim__parts { font-size: 11px; color: #8a96a8; line-height: 1.35; margin-top: 2px; }

/* Rows told apart with the hairline the Regions table uses, and the same
   answer to the pointer. A row is three lines tall now, and without a rule
   between them the eye loses which figure belongs to which name. */
.global-context tbody td { border-top: 1px solid #eef1f8; padding: 7px 10px; }
.global-context tbody tr:hover td { background: #f7f9fd; }
.global-context thead th { border-bottom: 1px solid #e6e9f5; }


#researcherImportBatchHistoryContainer {
  max-height: 420px;
  overflow-y: auto;
}
#researcherImportBatchHistoryContainer thead th {
  position: sticky;
  top: 0;
  background-color: #fff;
  z-index: 1;
}

/* Researcher list review: readable at a glance, the candidate cards included */
.roster-row { font-size: 0.95rem; }
.roster-row .small { font-size: 0.85rem; }
.roster-row .badge { font-size: 0.8rem; }

/* The "search another person" dropdown: wider than its column and framed so it
   stands apart from the candidate cards behind it */
.roster-row .roster-person-suggestions {
  width: 140%;
  max-width: 720px;
  max-height: 360px;
  border: 2px solid var(--yinmn-blue, #355c7d);
  border-radius: 6px;
  background: #f4f7fb;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28);
  z-index: 1050;
}
.roster-row .roster-person-suggestions:empty { display: none; }
.roster-row .roster-person-suggestions .autocomplete-suggestion { border-bottom: 1px solid #e3e6ea; padding: 8px 10px; }
.roster-row .roster-person-suggestions .autocomplete-suggestion:last-child { border-bottom: 0; }
.roster-row .roster-person-suggestions .autocomplete-suggestion:hover { background: #e1ebf7; }
/* The role and department lists, same frame, column width */
.roster-row [data-suggest-box] { border: 2px solid var(--yinmn-blue, #355c7d); border-radius: 6px; background: #f4f7fb; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28); z-index: 1050; }
.roster-row [data-suggest-box] .autocomplete-suggestion:hover { background: #e1ebf7; }
.roster-row [data-suggest-box]:empty { display: none; }

/* Roster editor: the same dropdowns as the researcher list review */
.roster-editor { font-size: 0.95rem; }
.roster-editor .roster-table td { vertical-align: middle; }
.roster-editor .roster-member-who { min-width: 220px; }
.roster-editor .roster-person-suggestions {
  width: 100%;
  max-width: 720px;
  max-height: 360px;
  border: 2px solid var(--yinmn-blue, #355c7d);
  border-radius: 6px;
  background: #f4f7fb;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28);
  z-index: 1050;
}
.roster-editor .roster-person-suggestions:empty { display: none; }
.roster-editor .roster-person-suggestions .autocomplete-suggestion { border-bottom: 1px solid #e3e6ea; padding: 8px 10px; }
.roster-editor .roster-person-suggestions .autocomplete-suggestion:last-child { border-bottom: 0; }
.roster-editor .roster-person-suggestions .autocomplete-suggestion:hover { background: #e1ebf7; }
.roster-editor [data-suggest-box] { border: 2px solid var(--yinmn-blue, #355c7d); border-radius: 6px; background: #f4f7fb; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28); z-index: 1050; min-width: 260px; }
.roster-editor [data-suggest-box] .autocomplete-suggestion:hover { background: #e1ebf7; }
.roster-editor [data-suggest-box]:empty { display: none; }

/* The mini roster editor of the report's author list */
.roster-inline { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.roster-inline__switch { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-size: 0.85rem; white-space: nowrap; cursor: pointer; }
.roster-inline__field { width: 200px; max-width: 100%; font-size: 0.85rem; }
.roster-inline.is-dirty { background: #fff7e0; border-radius: 4px; padding: 4px 6px; }
.roster-inline__bar { position: sticky; top: 0; z-index: 20; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 8px 12px; margin-bottom: 12px; background: #fff; border: 1px solid #ddd; border-radius: 6px; box-shadow: 0 2px 8px rgba(0,0,0,.08); font-size: 0.9rem; }

/* The report's documents list and the "why is it here?" panel */
.org-doc-list__row { padding: 8px 0; border-bottom: 1px solid #eceff3; font-size: 0.95rem; }
.org-doc-list__title a { color: inherit; }
.org-doc-list__why-box { background: #f7f8fa; border: 1px solid #e3e6ea; border-radius: 6px; padding: 8px 10px; font-size: 0.85rem; }
.org-doc-list__signatures td, .org-doc-list__signatures th { font-size: 0.82rem; padding: 4px 6px; }
.org-doc-list__veto { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.org-doc-list__reason { width: 260px; max-width: 100%; }
.org-doc-list__queued { font-size: 0.85rem; color: #a63a2e; margin-left: 6px; }
