:root {
  --bg: #0B0F14;
  --panel: #131D17;
  --panel-2: #19251E;
  --panel-3: #101813;

  --text: #F2E9D8;
  --muted: #B0A792;

  --grid: #29372F;
  --border: #35443A;

  /*
  Compatibility note:
  The existing website uses --cyan as its primary accent variable.
  We keep the variable name so dashboard.js / HTML do not need changes,
  but visually it is now Financial Package antique champagne gold.
  */
  --cyan: #32B9F1;
  --gold: #C6A564;
  --purple: #8A6472;
  --orange: #B8794D;

  --green: #668267;
  --yellow: #C3A15A;
  --red: #984F4F;
  --blue: #718998;
  --neutral: #918E82;

  --shadow: 0 22px 60px rgba(0, 0, 0, .32);
}


* {
  box-sizing: border-box;
}


html {
  scroll-behavior: smooth;
}


body {
  margin: 0;
  background:
    radial-gradient(circle at 20% -10%, rgba(76, 201, 232, .08), transparent 32%),
    radial-gradient(circle at 90% 5%, rgba(169, 139, 239, .055), transparent 30%),
    var(--bg);
  color: var(--text);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  line-height: 1.5;
}


a {
  color: inherit;
  text-decoration: none;
}


button {
  font: inherit;
}


.app-shell {
  min-height: 100vh;
}


/* Shared site header is loaded from ../shared/site_header.css */

/* PAGE */

.page {
  width:
    min(
      1440px,
      calc(100% - 48px)
    );

  margin: 0 auto;

  padding: 34px 0 70px;
}


.section {
  margin-top: 28px;
}


.section-kicker,
.eyebrow {
  color: var(--cyan);

  font-size: 10px;
  font-weight: 750;

  letter-spacing: .16em;
}


.section-heading,
.panel-header {
  display: flex;

  justify-content: space-between;

  gap: 24px;

  align-items: end;

  margin-bottom: 16px;
}


.section-heading h2,
.panel-header h2,
.methodology-copy h2 {
  margin: 5px 0 0;

  font-size: 22px;

  letter-spacing: -.015em;
}


.section-heading > p {
  max-width: 590px;

  margin: 0;

  color: var(--muted);

  font-size: 12px;
}


/* HERO */

.hero-grid {
  display: grid;

  grid-template-columns:
    minmax(0, 1.8fr)
    minmax(300px, .72fr);

  gap: 18px;
}


.hero-card,
.snapshot-card,
.panel,
.methodology-card {
  border:
    1px solid rgba(53, 68, 58, .92);

  background:
    linear-gradient(
      180deg,
      rgba(19, 29, 23, .97),
      rgba(16, 24, 19, .97)
    );

  box-shadow: var(--shadow);
}


.hero-card {
  min-height: 330px;

  padding: 30px 32px;
}


.snapshot-card {
  padding: 26px 26px 18px;
}


.hero-title-row {
  display: flex;

  justify-content: space-between;

  gap: 30px;

  align-items: flex-start;

  margin-top: 12px;
}


.hero-title-row h1 {
  max-width: 800px;

  margin: 0;

  font-size:
    clamp(
      34px,
      4.4vw,
      62px
    );

  line-height: 1.02;

  letter-spacing: -.035em;
}


.hero-summary {
  max-width: 900px;

  margin: 18px 0 0;

  color: #C6BDA8;

  font-size: 15px;

  line-height: 1.58;
}


.regime-badge {
  flex: 0 0 auto;

  padding: 9px 11px;

  border:
    1px solid var(--border);

  background:
    rgba(145, 142, 130, .08);

  color: var(--neutral);

  font-size: 10px;
  font-weight: 800;

  letter-spacing: .12em;
}


.hero-metrics {
  display: grid;

  grid-template-columns:
    repeat(3, 1fr);

  gap: 14px;

  margin-top: 34px;
}


.metric-block {
  min-height: 104px;

  padding: 15px 17px;

  border:
    1px solid rgba(53, 68, 58, .82);

  background:
    rgba(25, 37, 30, .64);
}


.metric-label {
  display: block;

  color: var(--muted);

  font-size: 10px;

  text-transform: uppercase;

  letter-spacing: .12em;
}


.metric-block strong {
  display: block;

  margin-top: 6px;

  font-size: 29px;

  letter-spacing: -.02em;
}


.meter {
  height: 4px;

  margin-top: 13px;

  overflow: hidden;

  background: #263229;
}


.meter span {
  display: block;

  height: 100%;

  width: 0;

  background: var(--cyan);

  transition:
    width 3.05s cubic-bezier(.22, .61, .36, 1);
}


.meter.risk span {
  background: var(--yellow);
}


.pill {
  display: inline-flex;

  margin-top: 10px;

  padding: 4px 7px;

  border:
    1px solid currentColor;

  font-size: 9px;
  font-weight: 750;

  letter-spacing: .1em;

  text-transform: uppercase;
}


/* SNAPSHOT */

.snapshot-list {
  margin-top: 14px;
}


.snapshot-row {
  padding: 12px 0;

  border-bottom:
    1px solid rgba(53, 68, 58, .64);
}


.snapshot-row:last-child {
  border-bottom: 0;
}


.snapshot-row-top {
  display: flex;

  justify-content: space-between;

  gap: 16px;

  align-items: baseline;
}


.snapshot-name {
  font-size: 12px;

  font-weight: 650;
}


.snapshot-value {
  font-size: 12px;

  font-weight: 750;
}


.snapshot-sub {
  margin-top: 4px;

  color: var(--muted);

  font-size: 10px;
}


/* TWO COLUMN */

.two-column {
  display: grid;

  grid-template-columns:
    1fr
    1fr;

  gap: 14px;
}


.panel {
  padding: 22px;
}


.panel-count {
  min-width: 30px;
  height: 30px;

  display: grid;

  place-items: center;

  border:
    1px solid var(--border);

  color: var(--muted);

  font-size: 11px;
}


.interpretation-text {
  margin: 2px 0 18px;

  color: #C8BEAA;

  font-size: 14px;

  line-height: 1.72;
}


.interpretation-tags {
  display: flex;

  flex-wrap: wrap;

  gap: 8px;
}


.interpretation-tag {
  display: inline-flex;

  gap: 7px;

  align-items: center;

  padding: 7px 9px;

  border:
    1px solid rgba(53, 68, 58, .8);

  background:
    rgba(25, 37, 30, .52);

  font-size: 9px;
}


.change-text {
  color: var(--purple);
}


.change-message {
  margin-bottom: 13px;

  color: var(--muted);

  font-size: 11px;
}


.change-list {
  display: grid;

  gap: 8px;
}


.change-row {
  display: grid;

  grid-template-columns:
    8px
    minmax(0, 1fr);

  gap: 10px;

  align-items: start;

  padding: 10px 11px;

  border:
    1px solid rgba(53, 68, 58, .72);

  background:
    rgba(25, 37, 30, .45);
}


.change-indicator {
  width: 7px;
  height: 7px;

  margin-top: 5px;

  border-radius: 50%;

  background: var(--neutral);
}


.change-indicator.positive {
  background: var(--green);
}


.change-indicator.negative {
  background: var(--red);
}


.change-row strong {
  display: block;

  font-size: 11px;
}


.change-row span:last-child {
  display: block;

  margin-top: 2px;

  color: var(--muted);

  font-size: 9px;
}


.no-change {
  display: flex;

  gap: 9px;

  align-items: center;

  min-height: 52px;

  padding: 12px;

  border:
    1px solid rgba(53, 68, 58, .68);

  color: var(--muted);

  font-size: 10px;
}


.no-change-dot {
  width: 7px;
  height: 7px;

  border-radius: 50%;

  background: var(--neutral);
}


/* SIGNAL LISTS */

.signal-list {
  display: grid;

  gap: 9px;
}


.signal-row {
  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    auto;

  gap: 16px;

  padding: 13px;

  border:
    1px solid rgba(53, 68, 58, .72);

  background:
    rgba(25, 37, 30, .45);
}


.signal-name {
  font-size: 12px;

  font-weight: 700;
}


.signal-meta {
  margin-top: 3px;

  color: var(--muted);

  font-size: 10px;
}


.signal-right {
  text-align: right;
}


.signal-score {
  font-size: 18px;

  font-weight: 750;
}


.signal-tag {
  display: block;

  margin-top: 3px;

  font-size: 9px;

  text-transform: uppercase;

  letter-spacing: .09em;
}


.empty-state {
  min-height: 64px;

  display: flex;

  align-items: center;

  padding: 14px;

  border:
    1px solid rgba(53, 68, 58, .70);

  color: var(--muted);

  font-size: 10px;
}


/* CATEGORY CARDS */

.category-grid {
  display: grid;

  grid-template-columns:
    repeat(
      3,
      minmax(0, 1fr)
    );

  gap: 14px;
}


.category-card {
  position: relative;

  min-height: 176px;

  padding: 19px;

  overflow: hidden;

  border:
    1px solid rgba(53, 68, 58, .90);

  background:
    linear-gradient(
      145deg,
      rgba(19, 29, 23, .98),
      rgba(16, 24, 19, .98)
    );
}


.category-card::after {
  content: "";

  position: absolute;

  right: -65px;
  bottom: -65px;

  width: 160px;
  height: 160px;

  border-radius: 50%;

  background:
    radial-gradient(
      circle,
      rgba(194, 166, 107, .07),
      transparent 68%
    );

  pointer-events: none;
}


.category-top,
.category-score-row {
  display: flex;

  justify-content: space-between;

  gap: 16px;
}


.category-id {
  color: var(--muted);

  font-size: 9px;

  letter-spacing: .11em;
}


.category-card h3 {
  margin: 7px 0 3px;

  font-size: 19px;
}


.category-label {
  color: var(--muted);

  font-size: 12px;
}


.category-score-row {
  align-items: flex-end;

  margin-top: 24px;
}


.small-metric span {
  display: block;

  color: var(--muted);

  font-size: 9px;

  text-transform: uppercase;

  letter-spacing: .1em;
}


.small-metric strong {
  display: block;

  margin-top: 2px;

  font-size: 19px;
}


/* FILTERS */

.monitor-heading {
  align-items: start;
}


.filters {
  display: flex;

  flex-wrap: wrap;

  justify-content: flex-end;

  gap: 7px;
}


.filter-btn {
  padding: 7px 10px;

  cursor: pointer;

  border:
    1px solid var(--border);

  background: transparent;

  color: var(--muted);

  font-size: 10px;

  letter-spacing: .05em;
}


.filter-btn:hover,
.filter-btn.active {
  border-color:
    rgba(194, 166, 107, .60);

  color: var(--cyan);

  background:
    rgba(194, 166, 107, .07);
}


/* MONITOR CARDS */

.monitor-grid {
  display: grid;

  grid-template-columns:
    repeat(
      3,
      minmax(0, 1fr)
    );

  gap: 12px;
}


.monitor-card {
  min-height: 164px;

  display: flex;

  flex-direction: column;

  padding: 16px;

  border:
    1px solid rgba(53, 68, 58, .82);

  background:
    rgba(19, 29, 23, .92);

  transition:
    border-color .16s ease,
    transform .16s ease;
}


.monitor-card.live {
  cursor: pointer;
}


.monitor-card.live:hover {
  transform:
    translateY(-2px);

  border-color:
    rgba(194, 166, 107, .46);
}


.monitor-card.coming_soon {
  opacity: .66;
}


.monitor-top {
  display: flex;

  justify-content: space-between;

  gap: 12px;
}


.monitor-category,
.monitor-status {
  font-size: 9px;

  letter-spacing: .1em;

  text-transform: uppercase;
}


.monitor-category {
  color: var(--cyan);
}


.monitor-status {
  color: var(--muted);
}


.monitor-card h3 {
  margin: 9px 0 0;

  font-size: 15px;

  line-height: 1.25;
}


.monitor-signal {
  margin-top: 5px;

  color: var(--muted);

  font-size: 10px;
}


.monitor-bottom {
  display: grid;

  grid-template-columns:
    .72fr
    .72fr
    1.56fr;

  gap: 7px;

  margin-top: auto;

  padding-top: 13px;
}


.monitor-mini {
  padding-top: 7px;

  border-top:
    1px solid rgba(53, 68, 58, .62);
}


.monitor-mini span {
  display: block;

  color: var(--muted);

  font-size: 8px;

  text-transform: uppercase;

  letter-spacing: .08em;
}


.monitor-mini strong {
  display: block;

  margin-top: 2px;

  font-size: 10px;

  line-height: 1.25;
}


.monitor-mini-trend strong {
  max-width: 165px;
}


/* METHODOLOGY */

.methodology-card {
  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    minmax(520px, 1fr);

  gap: 28px;

  align-items: center;

  padding: 20px 22px;
}


.methodology-copy p {
  max-width: 680px;

  margin: 8px 0 0;

  color: var(--muted);

  font-size: 11px;
}


.weight-grid {
  display: grid;

  grid-template-columns:
    repeat(
      3,
      minmax(0, 1fr)
    );

  gap: 8px;
}


.weight-item {
  min-height: 70px;

  display: flex;

  flex-direction: column;

  justify-content: center;

  padding: 10px 11px;

  border:
    1px solid rgba(53, 68, 58, .74);

  background:
    rgba(25, 37, 30, .35);
}


.weight-item span {
  display: block;

  color: var(--muted);

  font-size: 9px;
}


.weight-item strong {
  display: block;

  margin-top: 2px;

  font-size: 16px;
}


.data-quality {
  padding: 10px 13px;

  border:
    1px solid rgba(53, 68, 58, .70);

  color: var(--muted);

  font-size: 10px;
}


/* FOOTER */

.footer {
  display: flex;

  justify-content: space-between;

  gap: 24px;

  padding: 20px 34px 28px;

  border-top:
    1px solid rgba(53, 68, 58, .75);

  color: var(--muted);

  font-size: 9px;

  letter-spacing: .07em;
}


/* ERROR */

.error-box {
  position: fixed;

  right: 24px;
  bottom: 24px;

  z-index: 100;

  width:
    min(
      540px,
      calc(100vw - 48px)
    );

  padding: 16px;

  border:
    1px solid rgba(152, 79, 79, .65);

  background: #261718;

  color: #E8CBC5;

  box-shadow: var(--shadow);

  font-size: 12px;
}


.hidden {
  display: none;
}


/* SEMANTIC COLORS */

.positive-text {
  color: var(--green);
}


.risk-text {
  color: var(--red);
}


.strongly_constructive,
.low {
  color: var(--green);
}


.constructive {
  color: var(--cyan);
}


.neutral,
.moderate {
  color: var(--neutral);
}


.cautious,
.elevated {
  color: var(--yellow);
}


.risk_off,
.high,
.extreme {
  color: var(--red);
}


.trend-positive {
  color: var(--green);
}


.trend-negative {
  color: var(--red);
}


.trend-neutral {
  color: var(--neutral);
}


/* RESPONSIVE */

@media (max-width: 1120px) {

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

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

  .methodology-card {
    grid-template-columns: 1fr;
  }

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

}


@media (max-width: 760px) {

  .page {
    width:
      min(
        100% - 28px,
        1440px
      );

    padding-top: 20px;
  }

  .hero-card {
    padding: 22px;
  }

  .hero-title-row {
    display: block;
  }

  .regime-badge {
    width: fit-content;

    margin-top: 18px;
  }

  .hero-metrics {
    grid-template-columns: 1fr;
  }

  .category-grid,
  .two-column,
  .monitor-grid,
  .weight-grid {
    grid-template-columns: 1fr;
  }

  .section-heading {
    align-items: start;

    flex-direction: column;
  }

  .filters {
    justify-content: flex-start;
  }

  .footer {
    flex-direction: column;

    padding: 20px;
  }

}


/* =========================================================
   ANALYTICS CLEANUP V1
   Removed: Market Snapshot, Cross-Market Read,
   Since Prior Build, Research Monitors, Regime Engine.
   ========================================================= */

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


/* =========================================================
   GALAXY OSCILLATION ANALYTICS LIMITED ANALYTICS V2
   Premium old-money treatment refinements
   ========================================================= */

/* Old-money logo used only on Analytics.
   Match the Homepage logo's shared-header dimensions exactly. */
.topbar .brand-logo {
  display: block;
  width: 250px;
  max-width: 100%;
  height: auto;
  object-fit: contain;
  object-position: left center;
}

/* Rounded premium panel language */
.hero-card,
.snapshot-card,
.panel,
.methodology-card,
.metric-block,
.signal-row,
.category-card,
.monitor-card,
.weight-item,
.data-quality,
.change-row,
.no-change,
.empty-state,
.regime-badge,
.filter-btn {
  border-radius: 14px;
}

.hero-card,
.panel,
.methodology-card {
  border-radius: 18px;
}

.metric-block,
.signal-row,
.category-card {
  overflow: hidden;
}

/* Risk level now uses the same visual language as the score bars */
.risk-level-meter {
  margin-top: 13px;
}

.risk-level-meter span {
  background: var(--yellow);
}

/* No standalone regime badge remains in the hero */
.hero-title-row {
  align-items: flex-start;
}

/* Slightly softer premium card edges */
.hero-card,
.panel,
.category-card,
.metric-block {
  box-shadow:
    0 18px 46px rgba(0, 0, 0, .26);
}

@media (max-width: 760px) {
  .topbar .brand-logo {
    width: 205px;
    max-width: 100%;
  }
}


/* =========================================================
   GALAXY OSCILLATION ANALYTICS LIMITED ANALYTICS V2.3
   Simplified premium Analytics landing page
   ========================================================= */

/* Category heading is now title-only after removing explanatory copy. */
#categories .section-heading {
  align-items: flex-start;
}

#categories .section-heading > p {
  display: none;
}


/* =========================================================
   GALAXY OSCILLATION ANALYTICS LIMITED ANALYTICS V2.4 — HEADER LOGO ALIGNMENT
   Match Homepage logo size and placement.
   ========================================================= */

.topbar .brand {
  align-items: center;
}

.topbar .brand-logo {
  width: 250px;
  max-width: 100%;
  height: auto;
  margin: 0;
  transform: none;
}

@media (max-width: 760px) {
  .topbar .brand-logo {
    width: 205px;
  }
}


/* =========================================================
   GALAXY OSCILLATION ANALYTICS LIMITED ANALYTICS V2.5 — SIMPLIFIED CATEGORY CARDS
   Category IDs and Signal/Risk score fields removed.
   ========================================================= */

.category-id {
  display: none !important;
}

.category-score-row-monitors-only {
  justify-content: flex-start;
}

.category-score-row-monitors-only .small-metric {
  min-width: 92px;
}


/* =========================================================
   GALAXY OSCILLATION ANALYTICS LIMITED ANALYTICS V2.6 — CATEGORY CHART PREVIEWS
   ========================================================= */

.category-card {
  min-height: 210px;
}

.category-card-layout {
  display: grid;
  grid-template-columns: minmax(150px, .78fr) minmax(210px, 1.22fr);
  gap: 18px;
  align-items: stretch;
  height: 100%;
}

.category-card-copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.category-card-copy .category-score-row {
  margin-top: auto;
  padding-top: 20px;
}

.category-preview {
  position: relative;
  min-height: 154px;
  overflow: hidden;
  border: 1px solid rgba(194, 166, 107, .20);
  border-radius: 12px;
  background: rgba(8, 14, 11, .58);
}

.category-preview img {
  width: 100%;
  height: 100%;
  min-height: 154px;
  display: block;
  object-fit: cover;
  object-position: center;
  filter: saturate(.78) contrast(.96) brightness(.86);
  transition: transform .18s ease, filter .18s ease;
}

.category-card:hover .category-preview img {
  transform: scale(1.015);
  filter: saturate(.88) contrast(1) brightness(.92);
}

.category-preview-fallback {
  display: none;
  position: absolute;
  inset: 0;
  place-items: center;
  padding: 16px;
  color: var(--muted);
  font-size: 9px;
  letter-spacing: .10em;
  text-transform: uppercase;
  text-align: center;
}

.category-preview.chart-missing .category-preview-fallback {
  display: grid;
}

@media (max-width: 980px) {
  .category-card-layout {
    grid-template-columns: 1fr;
  }

  .category-preview {
    min-height: 180px;
  }
}




/* =========================================================
   GALAXY OSCILLATION ANALYTICS LIMITED ANALYTICS — V2.10
   Regime title alignment + category monitor typography
   ========================================================= */

/* Same size as "Market Regime by Category" (22px). */
.current-regime-row {
  width: 100%;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
}

.current-regime-row .eyebrow {
  color: var(--text);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.015em;
  text-transform: none;
}

.current-regime-row #overallRegime {
  margin: 0 0 0 auto;
  max-width: none;
  color: var(--cyan);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.015em;
  text-align: right;
}

.current-regime-row + .hero-summary {
  margin-top: 18px;
}

/* Keep MONITORS smaller than the category heading (e.g. Macro = 19px). */
.category-score-row-monitors-only .small-metric span {
  font-size: 13px;
  font-weight: 700;
}

/* Keep the number below visually secondary. */
.category-score-row-monitors-only .small-metric strong {
  font-size: 9px;
  font-weight: 400;
}

@media (max-width: 760px) {
  .current-regime-row {
    gap: 14px;
  }

  .current-regime-row .eyebrow,
  .current-regime-row #overallRegime {
    font-size: 20px;
  }
}


@media (prefers-reduced-motion: reduce) {
  .meter span {
    transition-duration: .01ms;
  }
}


/* =========================================================
   GALAXY OSCILLATION ANALYTICS LIMITED ANALYTICS — V2.13 CATEGORY CARD LAYOUT
   - SIGNAL / RISK removed
   - MONITORS anchored lower-left
   - representative chart on right
   ========================================================= */

.category-card {
  min-height: 210px;
}

.category-card-layout {
  display: grid;
  grid-template-columns: minmax(150px, .78fr) minmax(210px, 1.22fr);
  gap: 18px;
  align-items: stretch;
  height: 100%;
}

.category-card-copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: 100%;
}

.category-card-copy .category-top {
  margin: 0;
}

.category-card-copy .category-score-row-monitors-only {
  margin-top: auto;
  padding-top: 18px;
  display: block;
}

.category-score-row-monitors-only .small-metric {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.category-score-row-monitors-only .small-metric span {
  font-size: 13px;
  font-weight: 700;
}

.category-score-row-monitors-only .small-metric strong {
  margin-top: 6px;
  font-size: 19px;
  font-weight: 700;
}

.category-preview {
  position: relative;
  min-height: 154px;
  overflow: hidden;
  border: 1px solid rgba(194, 166, 107, .20);
  border-radius: 12px;
  background: rgba(8, 14, 11, .58);
}

.category-preview img {
  width: 100%;
  height: 100%;
  min-height: 154px;
  display: block;
  object-fit: cover;
  object-position: center;
  filter: saturate(.78) contrast(.96) brightness(.86);
  transition: transform .18s ease, filter .18s ease;
}

.category-card:hover .category-preview img {
  transform: scale(1.015);
  filter: saturate(.88) contrast(1) brightness(.92);
}

.category-preview-fallback {
  display: none;
  position: absolute;
  inset: 0;
  place-items: center;
  padding: 16px;
  color: var(--muted);
  font-size: 9px;
  letter-spacing: .10em;
  text-transform: uppercase;
  text-align: center;
}

.category-preview.chart-missing .category-preview-fallback {
  display: grid;
}

@media (max-width: 980px) {
  .category-card-layout {
    grid-template-columns: 1fr;
  }

  .category-preview {
    min-height: 180px;
  }
}


/* =========================================================
   GALAXY OSCILLATION ANALYTICS LIMITED ANALYTICS — V2.14 CATEGORY CARD INTERACTION
   Whole card is clickable + subtle homepage-style hover lift
   ========================================================= */

.category-card-link {
  display: block;
  color: inherit;
  text-decoration: none;
  border-radius: 18px;
  cursor: pointer;
  outline: none;
}

.category-card-link .category-card {
  transition:
    transform .18s ease,
    box-shadow .18s ease,
    border-color .18s ease;
  transform: translateY(0);
  will-change: transform;
}

.category-card-link:hover .category-card {
  transform: translateY(-3px) scale(1.004);
  border-color: rgba(194, 166, 107, .34);
  box-shadow:
    0 12px 30px rgba(0, 0, 0, .18),
    0 0 0 1px rgba(194, 166, 107, .035);
}

.category-card-link:active .category-card {
  transform: translateY(-1px) scale(1.001);
}

.category-card-link:focus-visible .category-card {
  border-color: rgba(194, 166, 107, .52);
  box-shadow:
    0 0 0 2px rgba(194, 166, 107, .20),
    0 12px 30px rgba(0, 0, 0, .16);
}

@media (prefers-reduced-motion: reduce) {
  .category-card-link .category-card {
    transition: none;
  }

  .category-card-link:hover .category-card,
  .category-card-link:active .category-card {
    transform: none;
  }
}


/* =========================================================
   GALAXY OSCILLATION ANALYTICS LIMITED ANALYTICS — V2.14.1
   Equal-height category cards
   ========================================================= */

.category-grid {
  grid-auto-rows: 1fr;
  align-items: stretch;
}

.category-card-link {
  height: 100%;
  min-height: 0;
}

.category-card-link .category-card {
  height: 100%;
  min-height: 210px;
  box-sizing: border-box;
}

.category-card-link .category-card-layout {
  height: 100%;
}


/* =========================================================
   GALAXY OSCILLATION ANALYTICS LIMITED ANALYTICS — V2.15 BREADCRUMB
   Matches category-page breadcrumb placement.
   ========================================================= */

.page-breadcrumb {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 20px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}

.page-breadcrumb a {
  color: var(--muted);
  transition: color .16s ease;
}

.page-breadcrumb a:hover {
  color: var(--cyan);
}

.breadcrumb-separator {
  color: var(--muted);
}

.breadcrumb-current {
  color: var(--text);
  font-weight: 700;
}

@media (max-width: 760px) {
  .page-breadcrumb {
    margin-bottom: 16px;
  }
}

/* Launch phase: retain deferred market-regime markup without displaying it. */
.launch-deferred[hidden] { display: none !important; }

/* Galaxy Oscillation launch — compact square Macro card.
   All other category data and markup remain available for future phases. */
.category-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, 300px);
  grid-auto-rows: auto;
  justify-content: start;
  align-items: start;
  gap: 18px;
}
.category-card-link {
  width: 300px;
  height: 300px;
  max-width: 100%;
}
.category-card-link .category-card {
  width: 100%;
  height: 100%;
  min-height: 0;
  aspect-ratio: 1 / 1;
  padding: 18px;
  border-radius: 18px;
  box-sizing: border-box;
}
.category-card-link .category-card-layout {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 14px;
  height: 100%;
}
.category-card-link .category-card-copy {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: space-between;
  height: auto;
}
.category-card-copy .category-score-row-monitors-only {
  margin-top: 0;
  padding-top: 0;
}
.category-score-row-monitors-only .small-metric span {
  text-transform: none;
  letter-spacing: normal;
}
.category-card-link .category-preview {
  min-height: 0;
  height: 100%;
}
.category-card-link .category-preview img {
  min-height: 0;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 360px) {
  .category-grid { grid-template-columns: minmax(0, 1fr); }
  .category-card-link { width: 100%; height: auto; aspect-ratio: 1 / 1; }
}

/* Launch: compact, single-line monitor count, with matching font sizes. */
.category-card-link .category-score-row-monitors-only .small-metric {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  gap: 7px;
  white-space: nowrap;
}
.category-card-link .category-score-row-monitors-only .small-metric strong,
.category-card-link .category-score-row-monitors-only .small-metric span {
  display: inline;
  font-size: 14px;
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  margin: 0;
}

/* Macro title and count: one aligned header row, matching count/label color. */
.category-card-link .category-card-copy {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  gap: 10px;
  width: 100%;
}
.category-card-link .category-top,
.category-card-link .category-score-row-monitors-only {
  margin: 0;
  padding: 0;
  flex: 0 0 auto;
}
.category-card-link .category-score-row-monitors-only .small-metric {
  display: inline-flex;
  align-items: baseline;
  gap: 7px;
  white-space: nowrap;
}
.category-card-link .category-score-row-monitors-only .small-metric strong,
.category-card-link .category-score-row-monitors-only .small-metric span {
  color: var(--muted, #9CA8B4) !important;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
}

/* Align the bottoms of the Macro title and 3 Monitors on one row. */
.category-card-link .category-card-copy {
  align-items: flex-end;
}
.category-card-link .category-top h3 {
  margin-bottom: 0;
}
.category-card-link .category-score-row-monitors-only .small-metric {
  margin-bottom: 0;
}


/* Galaxy Oscillation launch — Macro preview and count alignment (2026-10-31)
   The thumbnail is the latest published Central Bank chart. The count is
   supplied by market_regime.json and aligns to the preview's right border. */
.category-card-link .category-card-copy {
  width: 100%;
  min-width: 0;
  justify-content: space-between;
  align-items: flex-end;
}
.category-card-link .category-card-copy .category-score-row-monitors-only {
  display: flex;
  flex: 0 0 auto;
  margin: 0 0 0 auto;
  padding: 0;
  align-items: flex-end;
  justify-content: flex-end;
  text-align: right;
}
.category-card-link .category-score-row-monitors-only .small-metric {
  display: inline-flex;
  width: max-content;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  padding: 0;
  justify-content: flex-end;
  align-items: baseline;
  text-align: right;
  gap: 7px;
}
/* Show the entire source chart (rather than cropping its title or legend). */
.category-card-link .category-preview img[src*="central_bank_assets_to_gdp"] {
  object-fit: contain;
  object-position: center;
}


/* Galaxy Oscillation | Cross-page alignment contract | 31 Oct 2026
   Macro category page is the breadcrumb + footer reference.
   Card positions on the Analytics page are preserved as the reference. */
.page { padding-top: 26px; }
.page-breadcrumb {
  gap: 9px;
  margin: 0 0 18px;
  color: #9CA8B4;
  font-size: 12px;
  line-height: 1.5;
}
.page-breadcrumb a,
.page-breadcrumb .breadcrumb-separator { color: #9CA8B4; }
.page-breadcrumb a:hover { color: #4CC9E8; }
.page-breadcrumb .breadcrumb-current { color: #F2F5F7; font-weight: 650; }
/* Match category-footer exactly, including left and right baselines. */
.footer {
  margin-top: 42px;
  padding: 22px 28px 28px;
  border-top: 1px solid #303A46;
  color: #9CA8B4;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  font-size: 11px;
  letter-spacing: .04em;
}
.footer > div:first-child {
  color: #F2F5F7;
  letter-spacing: .08em;
}
@media (max-width: 760px) {
  .page { width: min(calc(100% - 28px), 1440px); padding-top: 18px; }
  .footer { flex-direction: column; gap: 8px; padding-left: 18px; padding-right: 18px; }
}
