/* ===================================== PORTFOLIO COMMAND CENTER ===================================== */
.portfolio-command-center{margin:22px 0 34px;display:grid;gap:18px}
.portfolio-command-hero{display:grid;grid-template-columns:minmax(260px,.95fr) minmax(280px,1.05fr);gap:18px;align-items:stretch;background:linear-gradient(135deg,var(--glass-2),var(--glass-1));border:1px solid var(--glass-border-2);border-radius:22px;padding:22px;box-shadow:var(--shadow-lg),var(--glow-soft)}
.portfolio-command-hero h2{margin:2px 0 6px;font-size:clamp(1.35rem,2.2vw,2rem);line-height:1.1}
.portfolio-command-hero p{margin:0;color:var(--muted-fg);max-width:760px}
.eyebrow{font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;font-weight:700;color:var(--accent)!important;margin:0 0 6px!important}
.portfolio-narrative{margin:0;padding:0;list-style:none;display:grid;gap:8px;align-content:center}
.portfolio-narrative li{background:var(--glass-1);border:1px solid var(--glass-border-1);border-radius:14px;padding:10px 12px;color:var(--muted-fg)}
.portfolio-narrative strong{color:var(--page-fg)}
.portfolio-insight-grid{display:grid;grid-template-columns:1.2fr .9fr .9fr;gap:16px}
.portfolio-insight-card,.portfolio-chart-card,.portfolio-diagnostics-card{background:var(--glass-1);border:1px solid var(--glass-border-1);border-radius:20px;padding:18px;box-shadow:var(--shadow-soft);min-width:0}
.portfolio-insight-card:hover,.portfolio-chart-card:hover,.portfolio-diagnostics-card:hover{border-color:var(--glass-border-2);box-shadow:var(--shadow-lg),var(--glow-soft)}
.portfolio-insight-card h3,.portfolio-chart-card h3,.portfolio-diagnostics-card h3{margin:0 0 10px;font-size:1.05rem}
.pi-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.pi-mega{font-size:clamp(2.4rem,6vw,4.2rem);line-height:.95;font-weight:800;letter-spacing:-.05em;color:var(--page-fg)}
.pi-big{font-size:clamp(1.5rem,3vw,2.15rem);line-height:1.05;font-weight:800;color:var(--page-fg)}
.pi-sub,.pi-copy{color:var(--muted-fg);font-size:.92rem;margin-top:6px}
.pi-micro-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px}
.pi-micro-grid span,.pi-stat-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--glass-1);border:1px solid var(--glass-border-1);border-radius:12px;padding:8px 10px;color:var(--muted-fg)}
.pi-micro-grid strong,.pi-stat-row strong{color:var(--page-fg);font-variant-numeric:tabular-nums;white-space:nowrap}
.portfolio-analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.exposure-list{display:grid;gap:7px;margin-top:12px}
.exposure-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:12px;background:var(--glass-1);border:1px solid var(--glass-border-1);color:var(--muted-fg)}
.exposure-row strong{color:var(--page-fg);font-variant-numeric:tabular-nums;white-space:nowrap}
.exposure-title{margin:16px 0 6px;font-size:.92rem;color:var(--muted-fg);font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.portfolio-diagnostics-scroll{overflow-x:auto;border-radius:14px;border:1px solid var(--glass-border-1)}
.portfolio-diagnostics-table{width:100%;border-collapse:collapse;min-width:980px;background:var(--glass-1)}
.portfolio-diagnostics-table th,.portfolio-diagnostics-table td{text-align:center;padding:11px 12px;border-bottom:1px solid var(--glass-border-1);font-variant-numeric:tabular-nums;white-space:nowrap}
.portfolio-diagnostics-table th{font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-fg);background:var(--glass-2)}
.portfolio-diagnostics-table td:nth-child(1),.portfolio-diagnostics-table td:nth-child(2){text-align:left;font-weight:700;color:var(--page-fg)}
.portfolio-diagnostics-table tr:last-child td{border-bottom:0}
.empty-note{color:var(--muted-fg);text-align:center;padding:14px!important}
.portfolio-command-card{cursor:pointer;align-items:stretch!important}
.p-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}
.p-badge{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--glass-border-2);border-radius:999px;padding:4px 9px;font-size:.76rem;font-weight:700;background:var(--glass-2);color:var(--page-fg);white-space:nowrap}
.p-badge.muted{color:var(--muted-fg)}
.p-badge.gain,.p-badge.good{border-color:rgba(110,231,168,.38);background:rgba(110,231,168,.11);color:#6ee7a8}
.p-badge.loss{border-color:rgba(255,107,107,.38);background:rgba(255,107,107,.11);color:#ff6b6b}
.p-badge.warn,.warn{color:#ffd166!important}
.p-analyst-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;color:var(--muted-fg);font-size:.86rem}
.p-analyst-strip span{border:1px solid var(--glass-border-1);background:var(--glass-1);border-radius:999px;padding:5px 9px}
.p-analyst-strip strong{color:var(--page-fg)}
.p-note{font-size:.92rem;color:var(--muted-fg)!important;font-weight:500!important}
@media (max-width: 980px){
  .portfolio-command-hero,.portfolio-insight-grid,.portfolio-analytics-grid{grid-template-columns:1fr}
  .pi-micro-grid{grid-template-columns:1fr 1fr}
}
@media (max-width: 560px){
  .portfolio-command-hero,.portfolio-insight-card,.portfolio-chart-card,.portfolio-diagnostics-card{padding:14px}
  .pi-micro-grid{grid-template-columns:1fr}
  .p-card-head{align-items:flex-start;flex-direction:column}
}

/* Portfolio holdings analyst workbench */
.holding-magic-section{margin:22px 0 28px;display:grid;gap:16px}
.holding-magic-section[hidden]{display:none!important}
.holding-magic-hero{display:grid;grid-template-columns:minmax(280px,1.15fr) minmax(260px,.85fr);gap:18px;align-items:stretch;background:linear-gradient(135deg,var(--glass-2),rgba(45,80,120,.18));border:1px solid var(--glass-border-2);border-radius:22px;padding:22px;box-shadow:var(--shadow-lg),var(--glow-soft)}
.holding-magic-hero h2{margin:2px 0 8px;font-size:clamp(1.35rem,2.2vw,2rem);line-height:1.1}
.eyebrow{margin:0 0 8px;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:var(--accent);font-weight:800}
.muted-copy{color:var(--muted-fg);margin:0 0 12px;max-width:840px}
.holding-signal-list{margin:14px 0 0;padding-left:20px;color:var(--text-secondary);display:grid;gap:8px}
.holding-signal-list strong{color:var(--text-primary)}
.holding-magic-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.holding-mini-kpi,.holding-projection-card{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.11);border-radius:16px;padding:14px;display:grid;gap:6px;min-width:0}
.holding-mini-kpi span,.holding-projection-card span{font-size:.76rem;color:var(--muted-fg);text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.holding-mini-kpi strong,.holding-projection-card strong{font-size:clamp(1.25rem,2vw,1.85rem);line-height:1;color:var(--text-primary)}
.holding-mini-kpi small,.holding-projection-card small{color:var(--muted-fg);line-height:1.35}
.holding-projection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.holding-projection-card.gain strong{color:#47d18c}.holding-projection-card.loss strong{color:#ff6b7a}
.holding-analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.holding-chart-card,.holding-diagnostics-card{background:var(--glass-1);border:1px solid var(--glass-border);border-radius:20px;padding:18px;box-shadow:var(--shadow-md)}
.chart-card-head{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}
.chart-card-head h3{margin:0;font-size:1.02rem}.chart-card-head p{margin:0;color:var(--muted-fg);font-size:.9rem;line-height:1.45}
.holding-chart-wrap{height:300px;position:relative}
.holding-diagnostics-table td,.holding-diagnostics-table th{white-space:nowrap}.micro-muted{font-size:.75rem;color:var(--muted-fg);margin-top:2px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:900px){.holding-magic-hero,.holding-analytics-grid{grid-template-columns:1fr}.holding-projection-grid{grid-template-columns:1fr}.holding-magic-kpis{grid-template-columns:1fr}.holding-chart-wrap{height:260px}}

/* Portfolio holdings restructuring */
.holding-magic-section-top{margin-top:18px;margin-bottom:16px}
.holdings-tile-stack{margin:12px 0 18px}
.holding-scenario-section{margin:18px 0 28px;display:grid;gap:16px}
.holding-scenario-section[hidden]{display:none!important}
.scenario-headline{background:var(--glass-1);border:1px solid var(--glass-border);border-radius:18px;padding:18px;box-shadow:var(--shadow-md);margin-bottom:0}
.scenario-headline h2{margin:0;font-size:clamp(1.25rem,2vw,1.85rem)}
.holding-methodology-card{background:linear-gradient(135deg,var(--glass-1),rgba(255,255,255,.035));border:1px solid var(--glass-border);border-radius:20px;padding:18px;display:grid;grid-template-columns:minmax(260px,1.15fr) minmax(260px,.85fr);gap:18px;box-shadow:var(--shadow-md)}
.holding-methodology-card h3{margin:0 0 8px;font-size:1.05rem}.holding-methodology-card p{margin:0;color:var(--muted-fg);line-height:1.55;font-size:.92rem}.holding-methodology-card strong{color:var(--text-primary)}
.methodology-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.methodology-grid div{background:rgba(255,255,255,.052);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:12px;display:grid;gap:5px}.methodology-grid span{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-fg);font-weight:800}.methodology-grid strong{font-size:.88rem;line-height:1.35}
@media (max-width:900px){.holding-methodology-card{grid-template-columns:1fr}.methodology-grid{grid-template-columns:1fr}}

/* Portfolio dashboard polish pass: compact, professional dashboard sizing */
.portfolio-header-ticker{max-width:920px}
.portfolio-command-center.professional-flow,.portfolio-command-center{gap:14px}
.portfolio-compact-chart{height:210px;position:relative;max-height:210px;overflow:hidden}
.portfolio-chart-card{padding:16px}
.portfolio-chart-card canvas{max-height:210px!important}
.portfolio-analytics-grid{align-items:start}
.portfolio-analytics-grid .exposure-list{max-height:210px;overflow:auto;padding-right:2px}
.portfolio-insight-grid{align-items:stretch}
.portfolio-insight-card .pi-mega{font-size:clamp(2.1rem,4vw,3.4rem)}
@media (min-width:981px){
  .portfolio-analytics-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
}

/* Holding-level x-ray layer */
.holding-xray-section{display:grid;gap:14px;margin:4px 0 16px}
.compact-headline{padding:16px!important}
.compact-headline h2{font-size:clamp(1.18rem,1.8vw,1.55rem)!important}
.holding-xray-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.holding-chart-wrap.compact-chart{height:245px}
.holding-insight-card{display:flex;flex-direction:column}
.holding-insight-list{display:grid;gap:9px;align-content:start}
.holding-insight-row{display:grid;grid-template-columns:minmax(110px,.75fr) minmax(80px,.35fr);gap:4px 12px;align-items:center;background:rgba(255,255,255,.052);border:1px solid rgba(255,255,255,.10);border-radius:14px;padding:10px 12px}
.holding-insight-row span{color:var(--muted-fg);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800}
.holding-insight-row strong{color:var(--text-primary);font-size:1.02rem;text-align:right;font-variant-numeric:tabular-nums}
.holding-insight-row small{grid-column:1/-1;color:var(--muted-fg);line-height:1.35}
@media (max-width:900px){
  .portfolio-header-ticker{display:none}
  .holding-xray-grid{grid-template-columns:1fr}
  .portfolio-compact-chart{height:190px}
  .holding-chart-wrap.compact-chart{height:235px}
}


/* Portfolio page-specific layout cleanup: keep Main.css global, keep portfolio pages disciplined. */
.portfolio-insight-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}
.portfolio-insight-card {
  min-height: 292px;
  display: flex;
  flex-direction: column;
}
.portfolio-insight-card.hero-card .pi-micro-grid {
  margin-top: auto;
}
.portfolio-insight-card:not(.hero-card) .pi-stat-row {
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.10);
  border-radius: 0;
  padding: 6px 0;
}
.portfolio-insight-card:not(.hero-card) .pi-stat-row:last-child { border-bottom: 0; }
.portfolio-insight-card:not(.hero-card) .pi-copy { margin-bottom: auto; }
.portfolio-insight-card .pi-big { font-size: clamp(1.8rem, 2.8vw, 2.65rem); }
.portfolio-insight-card .pi-mega { font-size: clamp(2.4rem, 4.2vw, 3.5rem); }

.portfolio-analytics-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}
.portfolio-chart-card {
  height: 430px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.portfolio-compact-chart {
  height: 190px;
  max-height: 190px;
  flex: 0 0 190px;
}
.portfolio-chart-card canvas { max-height: 190px !important; }
.portfolio-chart-card .exposure-list {
  max-height: 155px;
  overflow: auto;
  padding-right: 4px;
}
.portfolio-chart-card .exposure-row span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.portfolio-diagnostics-table th:nth-child(2),
.portfolio-diagnostics-table td:nth-child(2) {
  max-width: 270px;
  white-space: normal;
  line-height: 1.25;
}

.holding-xray-grid,
.holding-analytics-grid { align-items: start; }
.holding-chart-card,
.holding-diagnostics-card {
  overflow: hidden;
}
.holding-chart-wrap.compact-chart {
  height: 250px;
  max-height: 250px;
  overflow: hidden;
}
.holding-chart-wrap.compact-chart canvas {
  max-height: 250px !important;
}
.holding-diagnostics-table th,
.holding-diagnostics-table td {
  vertical-align: middle;
}
.holding-diagnostics-table th:nth-child(4),
.holding-diagnostics-table td:nth-child(4) {
  max-width: 240px;
  min-width: 180px;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.25;
}
.holding-diagnostics-table th:nth-child(5),
.holding-diagnostics-table td:nth-child(5) {
  min-width: 98px;
}
.holding-diagnostics-table td:nth-child(1) { min-width: 150px; }

@media (max-width: 1100px) {
  .portfolio-insight-grid,
  .portfolio-analytics-grid { grid-template-columns: 1fr; }
  .portfolio-insight-card { min-height: 0; }
  .portfolio-chart-card { height: auto; min-height: 390px; }
}

/* Portfolio header ticker width fix: let the ticker consume the full available header lane. */
.top-header .portfolio-header-ticker{
  flex:1 1 auto !important;
  max-width:none !important;
  width:auto !important;
  min-width:0 !important;
  margin:0 !important;
}
.top-header .portfolio-header-ticker .stock-ticker-mask{
  width:100% !important;
}
.top-header .portfolio-header-ticker #stock-ticker{
  min-width:max-content;
}

/* Holding X-Ray final sizing pass: matching tile heights and full-tile chart use. */
.holding-xray-grid {
  align-items: stretch !important;
}
.holding-xray-grid .holding-chart-card {
  min-height: 405px;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.holding-xray-grid .chart-card-head {
  flex: 0 0 auto;
}
.holding-xray-grid .holding-chart-wrap.compact-chart {
  flex: 1 1 auto;
  height: auto !important;
  max-height: none !important;
  min-height: 300px;
  position: relative;
}
.holding-xray-grid .holding-chart-wrap.compact-chart canvas {
  height: 100% !important;
  max-height: none !important;
  width: 100% !important;
}
.holding-xray-grid .holding-insight-card {
  min-height: 405px;
}
.holding-xray-grid .holding-insight-list {
  flex: 1 1 auto;
  align-content: stretch;
}
.holding-xray-grid .holding-insight-row {
  min-height: 0;
}
@media (max-width: 900px) {
  .holding-xray-grid .holding-chart-card,
  .holding-xray-grid .holding-insight-card {
    min-height: 340px;
  }
  .holding-xray-grid .holding-chart-wrap.compact-chart {
    min-height: 260px;
  }
}
