@import url("../customer-ui/tokens.65456f588365.css");

:root {
  color-scheme: light;
  --ink: var(--ui-ink);
  --muted: var(--ui-muted);
  --line: var(--ui-line-solid);
  --paper: var(--ui-paper);
  --surface: var(--ui-surface);
  --accent: var(--ui-accent);
  --accent-soft: var(--ui-accent-soft);
  --warn: var(--ui-warning);
  --danger: var(--ui-negative);
  --gain: var(--ui-positive);
}

* { box-sizing: border-box; }

body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", sans-serif;
  letter-spacing: 0;
}

a { color: var(--accent); text-decoration: none; }

.page-shell {
  width: min(1500px, calc(100% - 64px));
  margin: 0 auto;
  padding: 42px 0 72px;
}

.site-header {
  display: grid;
  grid-template-columns: minmax(340px, .9fr) minmax(0, 1.3fr) auto;
  gap: 28px;
  align-items: start;
  padding-bottom: 24px;
}

.brand-block h1,
.detail-header h1 {
  margin: 6px 0 0;
  font-size: 42px;
  line-height: 1.15;
  font-weight: 750;
}

.brand-block p,
.detail-header p {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 15px;
}

.eyebrow {
  color: var(--accent);
  font-size: 11px;
  font-weight: 700;
}

.header-data {
  display: grid;
  gap: 10px;
  justify-items: end;
  min-width: 0;
  padding-top: 3px;
}

.market-clock-row,
.status-line {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  width: 100%;
  font-variant-numeric: tabular-nums;
}

.market-clock-row { gap: 8px 30px; }
.status-line { gap: 6px 18px; color: var(--muted); font-size: 12px; }
.status-line span { white-space: nowrap; }
.status-alert { color: var(--danger); font-weight: 650; }

.market-clock {
  display: inline-flex;
  gap: 8px;
  align-items: baseline;
  white-space: nowrap;
}

.market-clock strong { color: var(--accent); font-size: 13px; font-weight: 600; }
.market-clock span { font-size: 14px; font-weight: 500; }

.outline-link,
.text-link,
.reset-link {
  white-space: nowrap;
  font-size: 13px;
}

.outline-link {
  padding: 9px 12px;
  border: 1px solid var(--line);
  background: var(--surface);
}

.header-actions,
.detail-actions {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  justify-content: flex-end;
}

.privacy-toggle {
  display: inline-grid;
  width: 36px;
  height: 36px;
  padding: 0;
  place-items: center;
  color: var(--muted);
  border: 1px solid var(--line);
  border-radius: 0;
  background: var(--surface);
  cursor: pointer;
}

.privacy-toggle:hover,
.privacy-toggle:focus-visible { color: var(--accent); border-color: var(--accent); outline: none; }
.privacy-toggle:disabled { cursor: default; opacity: .72; }
.privacy-icon { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.privacy-icon-eye-off { display: none; }
.privacy-toggle.is-private .privacy-icon-eye { display: none; }
.privacy-toggle.is-private .privacy-icon-eye-off { display: block; }

.site-nav {
  display: flex;
  gap: 26px;
  align-items: center;
  min-height: 44px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.site-nav a {
  display: inline-flex;
  align-items: center;
  align-self: stretch;
  color: var(--muted);
  font-size: 14px;
  border-bottom: 2px solid transparent;
}

.site-nav a.active { color: var(--ink); border-bottom-color: var(--accent); }

.notice {
  margin-top: 18px;
  padding: 10px 12px;
  color: var(--warn);
  background: var(--ui-warning-panel);
  border-left: 3px solid #c8942e;
  font-size: 13px;
  line-height: 1.55;
}

.privacy-notice {
  margin-top: 18px;
  padding: 10px 12px;
  color: var(--accent);
  background: var(--ui-info-panel);
  border-left: 3px solid var(--accent);
  font-size: 13px;
  line-height: 1.55;
}

.hero-metrics {
  display: grid;
  grid-template-columns: 1.65fr repeat(4, minmax(0, 1fr));
  gap: 32px;
  padding: 34px 0 30px;
  border-bottom: 1px solid var(--line);
}

.metric {
  min-width: 0;
  border-top: 2px solid var(--line);
  padding-top: 15px;
}

.metric.primary { border-top-color: var(--accent); }
.label { color: var(--muted); font-size: 12px; }
.metric .value {
  margin-top: 8px;
  font-size: 25px;
  line-height: 1.18;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.metric.primary .value { font-size: 42px; }
.subvalue { margin-top: 5px; color: var(--muted); font-size: 12px; }
.positive .value, .positive strong, .positive .subline { color: var(--gain); }
.negative .value, .negative strong, .negative .subline { color: var(--danger); }

.news-brief {
  padding: 30px 0 28px;
  border-bottom: 1px solid var(--line);
}

.news-brief .section-head { margin-bottom: 14px; }

.news-brief-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.news-brief-item {
  min-width: 0;
  padding: 16px 22px 16px 0;
}

.news-brief-item + .news-brief-item {
  padding-left: 22px;
  border-left: 1px solid var(--line);
}

.news-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  align-items: center;
  color: var(--muted);
  font-size: 10px;
  font-variant-numeric: tabular-nums;
}

.news-tier {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 2px 7px;
  color: var(--muted);
  background: var(--ui-control);
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
}

.tier-must_read { color: #8b2d20; background: #f7e7e3; }
.tier-important { color: #80550d; background: #fff1d2; }
.tier-context { color: #4f6259; background: #e9eeeb; }

.news-brief-item h3 {
  display: -webkit-box;
  overflow: hidden;
  margin: 10px 0 0;
  color: var(--ink);
  font-size: 15px;
  line-height: 1.4;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.news-brief-item h3 a { color: inherit; }
.news-brief-item p {
  display: -webkit-box;
  overflow: hidden;
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.overview-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  align-items: stretch;
  padding: 28px 0 4px;
}

.overview-panel,
.holdings-section { min-width: 0; }

.overview-panel {
  padding: 0 20px 12px;
  border-left: 1px solid var(--line);
}

.overview-panel:first-child {
  padding-left: 0;
  border-left: 0;
}

.overview-panel:last-child { padding-right: 0; }
.overview-panel > .section-head { min-height: 52px; }

.section-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 16px;
  margin-bottom: 16px;
}

.section-head h2 { margin: 5px 0 0; font-size: 22px; }
.section-note { color: var(--muted); font-size: 12px; }
.allocation-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.allocation-group { min-width: 0; }
.allocation-group-head { display: flex; justify-content: space-between; gap: 18px; align-items: baseline; padding-bottom: 10px; border-bottom: 1px solid var(--ink); }
.allocation-group-head h3 { margin: 0; font-size: 14px; font-weight: 700; }
.allocation-group-head span { color: var(--muted); font-size: 11px; white-space: nowrap; }
.allocation-list { display: grid; }
.allocation-row { display: grid; grid-template-columns: minmax(78px, 1fr) 56px minmax(84px, 104px); gap: 6px; align-items: baseline; min-height: 41px; padding: 10px 0 8px; border-bottom: 1px solid var(--line); font-variant-numeric: tabular-nums; }
.allocation-row strong { overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.allocation-row span { color: var(--ink); font-size: 13px; font-weight: 650; white-space: nowrap; }
.allocation-row small { min-width: 0; overflow: hidden; color: var(--muted); font-size: 12px; text-align: right; text-overflow: ellipsis; white-space: nowrap; }

.ledger-summary { min-width: 0; }
.activity-list { display: grid; border-top: 1px solid var(--line); }
.activity-row { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 14px; align-items: center; min-height: 58px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.activity-date { display: grid; justify-items: center; color: var(--muted); font-variant-numeric: tabular-nums; line-height: 1; }
.activity-date span { font-size: 9px; }
.activity-date strong { margin-top: 4px; color: var(--ink); font-size: 18px; font-weight: 650; }
.activity-copy { display: grid; min-width: 0; gap: 5px; }
.activity-copy > strong { overflow: hidden; color: var(--ink); font-size: 14px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.activity-detail { display: flex; min-width: 0; gap: 7px; color: var(--muted); font-size: 10px; line-height: 1.2; }
.activity-detail span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.activity-detail span + span::before { margin-right: 7px; color: var(--line-strong); content: "·"; }
.decision-preview { display: grid; gap: 6px; padding: 14px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.activity-list + .decision-preview { border-top: 0; }
.decision-preview strong { color: var(--ink); font-size: 15px; line-height: 1.35; }
.decision-preview span { color: var(--muted); font-size: 12px; }
.decision-date { font-variant-numeric: tabular-nums; }
.ledger-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; padding-top: 13px; }
.ledger-links a { display: grid; gap: 4px; }
.ledger-links span { color: var(--muted); font-size: 11px; }
.ledger-links strong { color: var(--ink); font-size: 14px; }

.cash-section { margin-top: 0; }
.cash-group-head span { text-align: right; }
.cash-list { display: grid; }
.cash-row {
  display: grid;
  grid-template-columns: minmax(78px, 1fr) minmax(94px, auto);
  gap: 12px;
  align-items: start;
  min-height: 51px;
  padding: 10px 0 8px;
  border-bottom: 1px solid var(--line);
  font-variant-numeric: tabular-nums;
}
.cash-row strong { overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.cash-values { display: grid; gap: 3px; justify-items: end; min-width: 0; text-align: right; }
.cash-values > span { color: var(--ink); font-size: 13px; white-space: nowrap; }
.cash-values [data-exact-money] { max-width: 100%; white-space: normal; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; text-overflow: clip; }
.cash-section .cash-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); }
.cash-row > strong { min-width: 0; white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
.cash-values > small { overflow: hidden; max-width: 100%; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.cash-values > small.negative { color: var(--danger); }

.holdings-section { margin-top: 38px; }
.holdings-list { overflow: hidden; border: 1px solid var(--line); background: var(--surface); }
.holding-row {
  display: grid;
  grid-template-columns: minmax(260px, 1.35fr) minmax(112px, .52fr) minmax(120px, .55fr) minmax(145px, .68fr) minmax(140px, .64fr) minmax(145px, .68fr);
  gap: 20px;
  align-items: center;
  min-width: 0;
  padding: 16px 20px;
  border-bottom: 1px solid var(--line);
  color: inherit;
  text-decoration: none;
}
.holding-row:last-child { border-bottom: 0; }
.holding-main, .holding-number { min-width: 0; }
.holding-title { display: flex; align-items: baseline; gap: 9px; min-width: 0; }
.asset-symbol { font-size: 17px; font-weight: 760; }
.asset-name { overflow: hidden; color: var(--muted); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.holding-meta { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; margin-top: 5px; color: var(--muted); font-size: 11px; }
.pill { display: inline-flex; padding: 2px 6px; color: var(--ink); background: var(--accent-soft); font-size: 10px; white-space: nowrap; }
.holding-number strong { display: block; overflow: hidden; margin-top: 4px; font-size: 16px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; font-variant-numeric: tabular-nums; }
.holding-number .subline { display: block; overflow: hidden; margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.holding-trend { display: grid; min-width: 0; gap: 5px; }
.holding-trend > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--muted); font-size: 10px; }
.holding-trend > div strong { color: var(--muted); font-size: 10px; font-variant-numeric: tabular-nums; }
.holding-trend.positive > div strong { color: var(--positive); }
.holding-trend.negative > div strong { color: var(--danger); }
.holding-sparkline { display: block; width: 100%; height: 28px; overflow: visible; }
.holding-sparkline path { vector-effect: non-scaling-stroke; }
.holding-spark-area { fill: rgba(23, 101, 79, .055); stroke: none; }
.holding-spark-line { fill: none; stroke: #728079; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.55; }
.holding-trend.positive .holding-spark-area { fill: rgba(13, 116, 73, .08); }
.holding-trend.positive .holding-spark-line { stroke: var(--ui-positive); }
.holding-trend.negative .holding-spark-area { fill: rgba(162, 58, 45, .07); }
.holding-trend.negative .holding-spark-line { stroke: var(--ui-negative); }
.holding-sparkline.is-missing { min-height: 28px; opacity: .22; }
.more-note { padding: 10px 0 0; color: var(--muted); font-size: 12px; text-align: right; }
.empty { padding: 18px 0; color: var(--muted); font-size: 13px; }

.news-header { border-bottom: 0; }
.news-tier-section { margin-top: 34px; }
.news-tier-heading {
  display: flex;
  gap: 14px;
  align-items: center;
  padding-bottom: 11px;
  border-bottom: 1px solid var(--ink);
}
.news-tier-heading p { margin: 0; color: var(--muted); font-size: 12px; }
.news-feed { display: grid; }
.news-row {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr) 110px;
  gap: 28px;
  align-items: start;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}
.news-source { display: grid; gap: 6px; color: var(--muted); font-size: 11px; }
.news-source strong { color: var(--accent); font-size: 12px; }
.news-source time { color: var(--ink); font-variant-numeric: tabular-nums; }
.news-content { min-width: 0; }
.news-content h2 { margin: 0; font-size: 18px; line-height: 1.4; }
.news-content h2 a { color: var(--ink); }
.news-summary,
.news-reason { margin: 8px 0 0; font-size: 12px; line-height: 1.6; }
.news-summary { color: var(--muted); }
.news-reason { color: var(--ink); }
.news-links { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 8px; }
.news-links a { font-size: 12px; font-weight: 500; line-height: 1.4; }
.news-impact { display: grid; gap: 5px; justify-items: end; text-align: right; }
.news-impact span,
.news-impact small { color: var(--muted); font-size: 10px; }
.news-impact strong { color: var(--ink); font-size: 14px; }
.news-impact.positive strong { color: var(--gain); }
.news-impact.negative strong { color: var(--danger); }
.news-empty { display: grid; gap: 8px; margin-top: 34px; padding: 28px 0; border-top: 1px solid var(--line); color: var(--muted); }
.news-empty strong { color: var(--ink); font-size: 17px; }

.news-detail-page { max-width: 1120px; }
.news-detail-header { padding: 18px 0 38px; border-bottom: 1px solid var(--line); }
.news-detail-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; color: var(--muted); font-size: 11px; }
.news-detail-meta time { font-variant-numeric: tabular-nums; }
.news-detail-header h1 { max-width: 900px; margin: 18px 0 0; font-size: 38px; line-height: 1.25; }
.news-detail-takeaway { max-width: 850px; margin: 18px 0 0; color: var(--ink); font-size: 17px; line-height: 1.75; }
.news-detail-actions { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 22px; }
.news-analysis-section { padding: 30px 0; border-bottom: 1px solid var(--line); }
.section-kicker { display: block; margin-bottom: 15px; color: var(--accent); font-size: 11px; font-weight: 700; }
.news-point-list { display: grid; gap: 13px; max-width: 900px; margin: 0; padding: 0; list-style: none; counter-reset: news-point; }
.news-point-list li { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 10px; color: var(--ink); font-size: 15px; line-height: 1.7; counter-increment: news-point; }
.news-point-list li::before { color: var(--muted); font-size: 11px; font-variant-numeric: tabular-nums; content: "0" counter(news-point); }
.news-analysis-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; border-bottom: 1px solid var(--line); }
.news-analysis-columns .news-analysis-section { border-bottom: 0; }
.news-analysis-empty, .portfolio-relevance p, .pending-analysis p { max-width: 850px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.7; }
.pending-analysis strong { display: block; margin-bottom: 10px; font-size: 19px; }
.pending-analysis p + p { margin-top: 12px; color: var(--ink); }
.evidence-list { display: grid; gap: 18px; max-width: 900px; }
.evidence-list blockquote { margin: 0; padding: 0 0 0 18px; border-left: 2px solid var(--line-strong); }
.evidence-list p { margin: 0; color: var(--ink); font-size: 13px; line-height: 1.65; }
.evidence-list cite { display: block; margin-top: 7px; color: var(--muted); font-size: 11px; font-style: normal; }
.analysis-provenance { margin: 18px 0 0; color: var(--muted); font-size: 10px; line-height: 1.6; }

.detail-header {
  display: flex;
  justify-content: space-between;
  gap: 28px;
  align-items: flex-start;
  padding-bottom: 24px;
}
.detail-summary { display: grid; gap: 4px; padding-top: 4px; text-align: right; }
.detail-summary span { color: var(--muted); font-size: 12px; }
.detail-summary strong { font-size: 24px; white-space: nowrap; }
.holding-toolbar { display: flex; justify-content: space-between; gap: 24px; align-items: flex-end; padding: 24px 0 0; }
.filter-form { display: flex; gap: 12px; align-items: flex-end; }
.filter-form label { display: grid; gap: 5px; color: var(--muted); font-size: 11px; }
.filter-form > select,
.filter-form > button[type="submit"] {
  min-height: 36px;
  border: 1px solid var(--line);
  border-radius: 0;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  padding: 7px 30px 7px 10px;
}
.filter-form > button[type="submit"] { padding: 7px 14px; color: var(--surface); background: var(--accent); border-color: var(--accent); cursor: pointer; }
.reset-link { padding: 9px 2px; }
.toolbar-status { display: flex; gap: 18px; color: var(--muted); font-size: 12px; }
.detail-holdings { margin-top: 18px; }
.pagination { display: flex; justify-content: center; gap: 22px; align-items: center; padding-top: 24px; color: var(--muted); font-size: 13px; }

@media (max-width: 1240px) {
  .overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .overview-panel {
    padding: 24px 20px 12px;
    border-top: 1px solid var(--line);
  }
  .overview-panel:nth-child(odd) {
    padding-left: 0;
    border-left: 0;
  }
  .overview-panel:nth-child(even) { padding-right: 0; }
  .overview-panel:nth-child(-n + 2) {
    padding-top: 0;
    border-top: 0;
  }
}

@media (max-width: 980px) {
  .site-header { grid-template-columns: 1fr; }
  .header-data { justify-items: start; }
  .market-clock-row, .status-line { justify-content: flex-start; }
  .hero-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .metric.primary { grid-column: 1 / -1; }
  .news-brief-grid { grid-template-columns: 1fr; }
  .news-brief-item,
  .news-brief-item + .news-brief-item { padding: 15px 0; border-left: 0; border-bottom: 1px solid var(--line); }
  .news-brief-item:last-child { border-bottom: 0; }
  .news-row { grid-template-columns: 120px minmax(0, 1fr); }
  .news-impact { grid-column: 2; justify-items: start; text-align: left; }
  .overview-grid { grid-template-columns: 1fr; }
  .overview-panel,
  .overview-panel:nth-child(n) {
    margin-top: 22px;
    padding: 22px 0 0;
    border-top: 1px solid var(--line);
    border-left: 0;
  }
  .overview-panel:first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
  }
  .news-analysis-columns { grid-template-columns: 1fr; gap: 0; }
  .news-analysis-columns .news-analysis-section + .news-analysis-section { border-top: 1px solid var(--line); }
  .holding-row { grid-template-columns: minmax(230px, 1.2fr) minmax(110px, .58fr) repeat(2, minmax(135px, .72fr)); }
  .holding-row .holding-latest-price, .holding-row .holding-market-value { display: none; }
}

@media (max-width: 680px) {
  .page-shell { width: min(100% - 28px, 1500px); padding-top: 26px; }
  .brand-block h1, .detail-header h1 { font-size: 31px; }
  .site-nav { gap: 18px; overflow-x: auto; }
  .hero-metrics { gap: 16px; }
  .metric .value { font-size: 20px; }
  .metric.primary .value { font-size: 31px; }
  .allocation-columns { grid-template-columns: 1fr; }
  .allocation-row { grid-template-columns: minmax(100px, 1fr) auto; gap: 8px 12px; }
  .allocation-row small { grid-column: 1 / -1; min-width: 0; text-align: left; }
  .cash-row { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 18px; }
  .detail-header, .holding-toolbar { display: block; }
  .detail-summary { margin-top: 18px; text-align: left; }
  .filter-form { display: grid; grid-template-columns: 1fr 1fr; }
  .filter-form > button[type="submit"], .reset-link { align-self: end; }
  .toolbar-status { margin-top: 14px; }
  .holding-row { grid-template-columns: 1fr; gap: 10px; }
  .holding-row .holding-latest-price, .holding-row .holding-market-value { display: block; }
  .news-tier-heading { display: grid; gap: 8px; }
  .news-row { grid-template-columns: 1fr; gap: 12px; }
  .news-impact { grid-column: auto; justify-items: start; text-align: left; }
  .news-detail-header h1 { font-size: 29px; }
  .news-detail-takeaway { font-size: 15px; }
}

.news-carousel-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}
.news-carousel-arrow {
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 3px;
  color: var(--accent);
  background: transparent;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}
.news-carousel-arrow:hover,
.news-carousel-arrow:focus-visible { border-color: var(--accent); outline: none; }
.news-carousel-dots { display: flex; gap: 7px; }
.news-carousel-dot {
  width: 7px;
  height: 7px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--line);
  cursor: pointer;
}
.news-carousel-dot.is-active { background: var(--accent); }
.news-carousel-viewport { min-height: 184px; }
.news-carousel-page { display: none; }
.news-carousel-page.is-active { display: block; }

.global-page { max-width: 1760px; }
.global-site-header { grid-template-columns: 1fr; padding-bottom: 20px; }
.global-dashboard {
  position: relative;
  min-height: 640px;
  height: calc(100vh - 300px);
  margin-top: 24px;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--surface);
}
.global-dashboard iframe { width: 100%; height: 100%; border: 0; background: var(--surface); }
.global-dashboard-status {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 10px;
  padding: 28px;
  text-align: center;
  background: var(--surface);
}
.global-dashboard-status[hidden] { display: none; }
.global-dashboard-status strong { font-size: 20px; }
.global-dashboard-status p { margin: 0; color: var(--muted); }
.global-dashboard-actions { display: flex; gap: 18px; align-items: center; margin-top: 8px; }
.global-dashboard-actions button {
  padding: 9px 14px;
  border: 1px solid var(--accent);
  border-radius: 3px;
  color: var(--surface);
  background: var(--accent);
  cursor: pointer;
}
.global-dashboard[data-global-state="loading"] .global-dashboard-status p,
.global-dashboard[data-global-state="loading"] .global-dashboard-actions { visibility: hidden; }

@media (max-width: 980px) {
  .news-carousel-viewport { min-height: 470px; }
  .global-dashboard { min-height: 560px; height: calc(100vh - 340px); }
}
