body {
  background:#050608;
  color:#f0f0f0;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  padding:0;
  margin:0;
  box-sizing:border-box;
}
#layout {
  display:flex;
  flex-direction:column;
  gap:8px;
  min-height:100vh;
}
#report-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
#report-toolbar-controls {
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
#report-toolbar-controls label {
  color:#d1d5db;
  font-size:12px;
  text-transform:uppercase;
}
#run-selector {
  min-width:140px;
  background:#0b1018;
  color:#f3f4f6;
  border:1px solid #374151;
  border-radius:4px;
  padding:6px 8px;
  font-size:12px;
}
#run-status {
  color:#9ca3af;
  font-size:12px;
  display:none;
}
#top-panels {
  display:grid;
  grid-template-columns: 1.2fr 1fr;
  gap:8px;
}
.panel {
  background:#111318;
  border:1px solid #333;
  padding:6px 8px;
  box-sizing:border-box;
  overflow:hidden;
}
.panel-title {
  font-size:12px;
  color:#ffa500;
  margin-bottom:4px;
  text-transform:uppercase;
}
#matrix-raw-table,
#matrix-rs-table {
  height:420px;
}
.tabulator {
  background:#0b1018;
  border:1px solid #232937;
  color:#f0f0f0;
  font-size:12px;
}
.tabulator .tabulator-header {
  background:#151a23;
  border-bottom:1px solid #232937;
}
.tabulator .tabulator-col,
.tabulator .tabulator-col-group {
  background:#151a23;
  color:#f0f0f0;
  border-right:1px solid #232937;
}
.tabulator .tabulator-col.tabulator-sortable:hover {
  background:#1e2532;
}
.tabulator .tabulator-row {
  background:#0d1119;
  border-bottom:1px solid #1a1f2a;
}
.tabulator .tabulator-row:nth-child(even) {
  background:#111726;
}
.tabulator .tabulator-row.tabulator-selected {
  background:#1f2c42;
  color:#fff;
}
.tabulator .tabulator-row:hover {
  background:#1a2232;
}
.tabulator .tabulator-row .tabulator-cell {
  border-right:1px solid #1a1f2a;
}
.tab-bar {
  display:flex;
  gap:4px;
  margin-bottom:6px;
}
.tab-btn {
  padding:4px 8px;
  font-size:11px;
  background:#1f2430;
  border:1px solid #333;
  color:#ddd;
  text-transform:uppercase;
  cursor:pointer;
}
.tab-btn.active {
  background:#374151;
  color:#fff;
}
.tab-content {
  display:none;
}
.tab-content.active {
  display:block;
}
.toggle-trade-metrics {
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  margin-bottom:4px;
  color:#e5e7eb;
}
.tabulator .tabulator-col-group.raw-group-matrix,
.tabulator .tabulator-col.raw-col-matrix {background:#142c4f;color:#fff;}
.tabulator .tabulator-col-group.raw-group-performance,
.tabulator .tabulator-col.raw-col-performance {background:#1c3f6f;color:#fff;}
.tabulator .tabulator-col-group.raw-group-entrya,
.tabulator .tabulator-col.raw-col-entrya {background:#2b4e74;color:#fff;}
.tabulator .tabulator-col-group.raw-group-moving,
.tabulator .tabulator-col.raw-col-moving {background:#2b4e74;color:#fff;}
.tabulator .tabulator-col-group.raw-group-atr,
.tabulator .tabulator-col.raw-col-atr {background:#5c7db5;color:#fff;}
.tabulator .tabulator-col-group.raw-group-stop,
.tabulator .tabulator-col.raw-col-stop {background:#b91c1c;color:#fff;}
.tabulator .tabulator-col-group.raw-group-sma50,
.tabulator .tabulator-col.raw-col-sma50 {background:#4b5563;color:#fff;}
.tabulator .tabulator-col-group.raw-group-entryb,
.tabulator .tabulator-col.raw-col-entryb {background:#15803d;color:#fff;}
.tabulator .tabulator-col-group.raw-group-hold,
.tabulator .tabulator-col.raw-col-hold {background:#facc15;color:#111;}
.tabulator .tabulator-col-group.raw-group-down20,
.tabulator .tabulator-col.raw-col-down20 {background:#fca5a5;color:#111;}
.tabulator .tabulator-col-group.raw-group-return,
.tabulator .tabulator-col.raw-col-return,
.tabulator .tabulator-col-group.raw-group-reward,
.tabulator .tabulator-col.raw-col-reward {background:#0f2647;color:#fff;}
.tabulator .tabulator-col-group.raw-group-info,
.tabulator .tabulator-col.raw-col-info {background:#374151;color:#fff;}
.tv-link-btn {
  cursor:pointer;
  color:#ffa500;
  font-weight:bold;
  text-decoration:none;
}

/* Breadth layout */
#breadth-layout {
  display:grid;
  grid-template-columns: 2fr 1.1fr 1.1fr 1.1fr;
  gap:8px;
}
#breadth-tree-wrapper {
  display:flex;
  flex-direction:column;
  height:420px;
}
#breadthTreeChart {
  flex:1;
}
.breadth-table {
  height:auto;
}
.breadth-percent-high {
  background:#14532d;
  color:#d1fae5;
}
#tv-chart-wrapper {
  display:flex;
  align-items:center;
  justify-content:center;
  height:420px;
}
#tradingview-widget {
  width:100%;
  height:100%;
}
#finviz-overlay-panel {
  margin-top:8px;
  border:1px solid #232937;
  border-radius:4px;
  background:#0b1018;
  padding:8px;
  display:flex;
  flex-direction:column;
  gap:6px;
}
#finviz-overlay-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  font-size:12px;
}
#finviz-overlay-symbol {
  color:#f3f4f6;
  font-weight:700;
  letter-spacing:0.04em;
}
#finviz-overlay-summary {
  color:#9ca3af;
  font-size:11px;
}
#finviz-overlay-status {
  color:#9ca3af;
  font-size:12px;
}
#finviz-overlay-grid {
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:6px;
}
.finviz-overlay-card {
  border:1px solid #1f2937;
  border-radius:4px;
  padding:5px 6px;
  background:#0f172a;
  min-width:0;
}
.finviz-overlay-label {
  color:#9ca3af;
  font-size:10px;
  margin-bottom:3px;
  line-height:1.2;
}
.finviz-overlay-value {
  color:#f9fafb;
  font-size:13px;
  font-weight:700;
}
.finviz-overlay-card.is-pass .finviz-overlay-value {
  color:#4ade80;
}
.finviz-overlay-card.is-fail .finviz-overlay-value {
  color:#f87171;
}
.finviz-overlay-card.is-missing .finviz-overlay-value {
  color:#9ca3af;
}
#etf-rotation-wrapper,
#rs-viewer-wrapper,
#poc-viewer-wrapper {
  height:420px;
}
#etf-rotation-iframe,
#rs-viewer,
#poc-viewer {
  width:100%;
  height:100%;
  border:none;
  border-radius:4px;
  background:#050505;
}
#rs-viewer-wrapper {
  display:none;
}

@media (max-width: 1200px) {
  #finviz-overlay-grid {
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 960px) {
  #report-toolbar {
    align-items:flex-start;
    flex-direction:column;
  }
  #top-panels {
    grid-template-columns:1fr;
  }
  #breadth-layout {
    grid-template-columns:1fr;
  }
  #finviz-overlay-grid {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  #finviz-overlay-grid {
    grid-template-columns:1fr;
  }
}
