/* ===== Charts Row ===== */
.charts-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px; margin-bottom: 20px;
}

.chart-wrapper { position: relative; max-height: 320px; }

/* ===== Treemap ===== */
.treemap-wrapper { position: relative; height: 360px; width: 100%; }
@media (max-width: 640px) { .treemap-wrapper { height: 260px; } }

/* ===== Allocation Target Table ===== */
.drift-targets {
  margin-top: 14px;
  border-top: 1px solid rgba(10,22,40,0.08);
  padding-top: 12px;
}
.drift-targets table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11px;
  font-family: 'Inter', sans-serif;
}
.drift-targets th {
  color: #888;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 3px 6px;
  text-align: right;
}
.drift-targets th:first-child { text-align: left; }
.drift-targets td {
  padding: 4px 6px;
  text-align: right;
  color: var(--navy);
  border-bottom: 1px solid rgba(10,22,40,0.04);
}
.drift-targets td:first-child { text-align: left; font-weight: 500; }
.drift-targets .status-over  { color: #e74c3c; font-weight: 700; }
.drift-targets .status-under { color: #3498db; font-weight: 700; }
.drift-targets .status-ok    { color: #27ae60; }

/* ===== Factor Score Mini Bars ===== */
.factor-bars { display:flex; gap:3px; margin-top:8px; }
.factor-bar { flex:1; text-align:center; }
.factor-bar > span { font-size:9px; color:var(--gray); display:block; margin-bottom:2px; }
.factor-bar-track { background:rgba(255,255,255,0.1); border-radius:2px; height:4px; }
.factor-bar-fill { height:4px; border-radius:2px; transition:width 0.3s; }

/* ===== Market Regime Badge ===== */
.regime-badge { display:inline-flex; align-items:center; gap:6px; padding:5px 14px;
  border-radius:20px; font-size:12px; font-weight:600; margin:8px 0 4px; }
.regime-badge.neutral { background:rgba(234,179,8,0.15); color:#eab308; border:1px solid rgba(234,179,8,0.3); }
.regime-badge.bullish { background:rgba(16,185,129,0.15); color:var(--up); border:1px solid rgba(16,185,129,0.3); }
.regime-badge.bearish { background:rgba(239,68,68,0.15); color:var(--down); border:1px solid rgba(239,68,68,0.3); }

/* Regime Banner (inside smart picks) */
.regime-banner { padding:8px 14px; border-radius:8px; font-size:12px; font-weight:600;
  margin-bottom:12px; text-align:center; }
.regime-banner.neutral { background:rgba(234,179,8,0.1); color:#eab308; }
.regime-banner.bullish { background:rgba(16,185,129,0.1); color:var(--up); }
.regime-banner.bearish { background:rgba(239,68,68,0.1); color:var(--down); }

/* ===== Portfolio Insights Tags ===== */
.insights-row { display:flex; flex-wrap:wrap; gap:8px; margin:4px 0 12px; padding:0 0 0 2px; }
.insight-tag { padding:3px 10px; border-radius:12px; font-size:12px; font-weight:500; }
.insight-tag.overweight { background:rgba(239,68,68,0.15); color:var(--down); }
.insight-tag.underweight { background:rgba(59,130,246,0.15); color:#60a5fa; }
.insight-tag.info { background:rgba(255,255,255,0.08); color:var(--gray); }

/* ===== Responsive (Charts) ===== */
@media (max-width: 768px) {
  .charts-row { grid-template-columns: 1fr; }
}
