:root {
  color-scheme: dark;
  --bg: #08111f;
  --panel: rgba(12, 23, 40, 0.88);
  --line: rgba(255, 255, 255, 0.08);
  --text: #eef4ff;
  --muted: #9db0cd;
  --accent: #5b9cff;
  --accent-2: #4fd1c5;
  --danger: #ff6b7a;
  --success: #47d18c;
  --warning: #f7c66a;
  --shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
}

* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at top left, rgba(91, 156, 255, 0.18), transparent 30%),
    radial-gradient(circle at top right, rgba(79, 209, 197, 0.12), transparent 25%),
    var(--bg);
  color: var(--text);
}

.app-shell { max-width: 1360px; margin: 0 auto; padding: 32px 20px 56px; }
.hero, .panel {
  background: var(--panel);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  backdrop-filter: blur(16px);
}
.hero {
  display: grid;
  grid-template-columns: 1.9fr 1fr;
  gap: 24px;
  padding: 32px;
  border-radius: 28px;
  margin-bottom: 24px;
}
.eyebrow, .section-kicker, .card-label {
  margin: 0 0 10px;
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--accent-2);
}
 h1, h2, h3, p, strong { margin: 0; }
 h1 { font-size: clamp(32px, 4vw, 54px); line-height: 1.05; margin-bottom: 16px; }
 h2 { font-size: 28px; }
 .hero-text, .muted, .helper-text, .quote-cell-subtext, .news-meta, .sparkline-caption, .macro-card p, .rule-card p, .group-card p, .allocation-card p, .side-card p {
  color: var(--muted);
  line-height: 1.7;
 }
 .hero-text { font-size: 18px; max-width: 760px; }
 .hero-meta, .ai-tag-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
 .hero-meta span, .pill, .badge {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 14px; background: rgba(255,255,255,.05); border: 1px solid var(--line); border-radius: 999px; font-size: 13px;
 }
 .badge { padding: 6px 10px; font-size: 12px; }
 .badge-watch { color: var(--warning); background: rgba(247,198,106,.12); }
 .badge-hold { color: var(--accent-2); background: rgba(79,209,197,.12); }
 .hero-card { padding: 24px; border-radius: 22px; background: linear-gradient(180deg, rgba(91,156,255,.15), rgba(91,156,255,.02)); border: 1px solid rgba(91,156,255,.18); }
 .hero-card ul, .action-list { margin: 0; padding-left: 20px; color: var(--muted); line-height: 1.8; }
 .layout, .macro-grid, .news-grid, .scenario-layout, .actions-grid, .scenario-main, .scenario-side, .variables-grid, .summary-grid, .group-overview, .rules-grid, .allocation-grid, .ai-grid { display: grid; gap: 16px; }
 .layout { gap: 24px; }
 .panel { border-radius: 24px; padding: 28px; }
 .section-head, .group-card-header, .allocation-header, .scenario-header, .live-actions { display: flex; justify-content: space-between; gap: 16px; }
 .section-head { align-items: end; margin-bottom: 20px; }
 .section-head.compact { margin-top: 26px; }
 .live-actions { align-items: center; flex-wrap: wrap; }
 .refresh-button, .scenario-tab {
  appearance: none; border: 1px solid var(--line); background: rgba(255,255,255,.03); color: var(--text);
  padding: 12px 16px; border-radius: 14px; cursor: pointer; transition: .2s ease; font: inherit;
 }
 .refresh-button:hover, .scenario-tab:hover, .scenario-tab.active { background: rgba(91,156,255,.14); border-color: rgba(91,156,255,.5); }
 .refresh-button:disabled { opacity: .65; cursor: wait; }
 .refresh-button:focus-visible, .scenario-tab:focus-visible { outline: 2px solid var(--accent-2); outline-offset: 2px; }
 .summary-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
 .group-overview { grid-template-columns: repeat(4, minmax(0,1fr)); }
 .variables-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
 .macro-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
 .news-grid, .ai-grid, .allocation-grid, .rules-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
 .scenario-layout { grid-template-columns: 2fr 1fr; }
 .summary-card, .group-card, .rule-card, .allocation-card, .action-card, .side-card, .macro-card, .news-card, .ai-hero-card, .variable-card {
  padding: 18px; background: rgba(255,255,255,.03); border: 1px solid var(--line); border-radius: 20px;
 }
 .ai-panel { background: linear-gradient(180deg, rgba(91,156,255,.12), rgba(12,23,40,.88)); }
 .ai-hero-card { grid-column: span 2; }
 .money-large { margin-top: 8px; font-size: clamp(26px, 3vw, 36px); font-weight: 700; color: var(--text); }
 .small-value { font-size: clamp(20px, 2.2vw, 28px); }
 .group-percent, .allocation-percent, .macro-change { font-weight: 700; color: var(--accent); }
 .bar-track { height: 10px; margin-top: 14px; background: rgba(255,255,255,.06); border-radius: 999px; overflow: hidden; }
 .bar-fill { height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--accent), var(--accent-2)); }
 .table-wrap { overflow-x: auto; }
 table { width: 100%; border-collapse: collapse; min-width: 1040px; }
 th, td { padding: 16px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
 th { color: var(--muted); font-size: 13px; font-weight: 600; }
 td { line-height: 1.7; }
 .quote-name { display: grid; gap: 4px; }
 .quote-price { font-weight: 700; }
 .price-up, .delta-up { color: var(--success); }
 .price-down, .delta-down { color: var(--danger); }
 .price-flat, .delta-flat { color: var(--warning); }
 .macro-card-header, .news-card-header { display: flex; justify-content: space-between; align-items: start; gap: 12px; }
 .macro-title-row { display: grid; gap: 4px; }
 .macro-price-row { display: flex; justify-content: space-between; align-items: end; gap: 10px; margin: 10px 0 6px; }
 .macro-price { font-size: 24px; font-weight: 700; }
 .sparkline { width: 100%; height: 88px; display: block; margin-top: 12px; }
 .sparkline polyline { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
 .sparkline-up polyline { stroke: var(--success); }
 .sparkline-down polyline { stroke: var(--danger); }
 .sparkline-flat polyline { stroke: var(--warning); }
 .sparkline-area { fill: rgba(91,156,255,.08); }
 .news-topic { color: var(--accent-2); }
 .news-list { display: grid; gap: 12px; margin-top: 12px; }
 .news-item { padding-top: 12px; border-top: 1px solid var(--line); }
 .news-item:first-child { border-top: 0; padding-top: 0; }
 .news-item a { color: var(--text); text-decoration: none; }
 .news-item a:hover { color: var(--accent-2); }
 .scenario-tabs { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 20px; }
 .scenario-signal { min-width: 220px; }
 .scenario-thesis { font-size: 16px; }
 .allocation-delta { display: inline-flex; margin-top: 10px; padding: 4px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; }
 .delta-up { background: rgba(71,209,140,.12); }
 .delta-down { background: rgba(255,107,122,.12); }
 .delta-flat { background: rgba(247,198,106,.12); }
 .helper-text { margin-top: 14px; }
 .disclaimer { background: rgba(247,198,106,.08); border-color: rgba(247,198,106,.18); }

@media (max-width: 1024px) {
  .hero, .summary-grid, .group-overview, .variables-grid, .macro-grid, .news-grid, .ai-grid, .allocation-grid, .rules-grid, .scenario-layout { grid-template-columns: 1fr; }
  .ai-hero-card { grid-column: span 1; }
  .section-head, .scenario-header, .live-actions { align-items: start; flex-direction: column; }
}
@media (max-width: 640px) {
  .app-shell { padding: 16px 14px 32px; }
  .panel, .hero { border-radius: 20px; padding: 18px; }
  h2 { font-size: 24px; }
  .refresh-button, .scenario-tab { width: 100%; justify-content: center; }
}
