/* =========================================================
   SWC PMO · physfin.css
   Cronograma Físico-Financeiro (Sprint I).
========================================================= */

.pf-topbar select {
  background: var(--swm-input, #0f1117);
  border: 1px solid var(--swm-border, #1a1d27);
  color: var(--swm-text, #e8eaf0);
  padding: 6px 10px; border-radius: 6px; font-size: 12px;
  min-width: 240px;
}

.pf-meta {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px;
  padding: 12px 28px;
  border-bottom: 1px solid var(--swm-border, #1a1d27);
}
.pf-meta > div { display: flex; flex-direction: column; gap: 2px; }
.pf-meta .lbl {
  font-size: 10.5px; text-transform: uppercase;
  color: var(--swm-muted, #8892a4); letter-spacing: .5px;
}
.pf-meta strong { font-size: 14px; }

.pf-kpis {
  display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px;
  padding: 14px 28px;
}
.pf-kpis .kpi-card { padding: 12px; }
.pf-kpis .kpi-card span {
  font-size: 10.5px; text-transform: uppercase;
  color: var(--swm-muted, #8892a4); letter-spacing: .4px; display: block;
  margin-bottom: 4px;
}
.pf-kpis .kpi-card strong { font-size: 15px; display: block; }
.pf-kpis .kpi-card small {
  font-size: 10.5px; color: var(--swm-muted, #8892a4);
  display: block; margin-top: 2px;
}

.pf-delta.pos strong { color: #34d399; }
.pf-delta.neg strong { color: #60a5fa; }
.pf-delta.warn strong { color: #fbbf24; }

/* ── Sections ──────────────────────────────────── */
.pf-section { padding: 14px 28px; }
.pf-section h3 {
  font-size: 12px; text-transform: uppercase;
  color: var(--swm-muted, #8892a4); letter-spacing: .5px;
  margin-bottom: 10px;
}
.pf-empty {
  text-align: center; padding: 32px 16px;
  color: var(--swm-muted, #8892a4); font-size: 13px;
}
.pf-table-wrap { overflow-x: auto; }

.pf-table th, .pf-table td { white-space: nowrap; padding: 7px 9px !important; }
.pf-table .num { text-align: right; }
.pf-table .pos { color: #34d399; }
.pf-table .neg { color: #f87171; }
.pf-total td { font-weight: 600; background: rgba(245,158,11,.05); }
.pf-total td:first-child { color: #f59e0b; }

.pf-bar { min-width: 180px; padding: 4px 8px !important; }
.pf-bar__row {
  display: flex; align-items: center; gap: 6px;
  margin: 2px 0;
}
.pf-bar__lbl {
  width: 14px; font-size: 10px; color: var(--swm-muted, #8892a4);
  font-weight: 700; text-align: center;
}
.pf-bar__lbl.in  { color: #34d399; }
.pf-bar__lbl.out { color: #f87171; }
.pf-bar__track {
  flex: 1; height: 7px; background: rgba(255,255,255,.04);
  border-radius: 4px; overflow: hidden;
}
.pf-bar__track i {
  display: block; height: 100%; transition: width .3s;
}
.pf-bar__val {
  font-size: 10.5px; color: var(--swm-muted, #8892a4);
  min-width: 80px; text-align: right;
}

.pf-flow td { padding: 6px 9px !important; }

.pf-status {
  display: inline-block; padding: 2px 8px; border-radius: 10px;
  font-size: 10.5px; text-transform: uppercase; letter-spacing: .3px;
}
.pf-status.ok   { background: rgba(52,211,153,.15);  color: #34d399; }
.pf-status.warn { background: rgba(245,158,11,.15);  color: #f59e0b; }
.pf-status.neg  { background: rgba(248,113,113,.15); color: #f87171; }
.pf-status.muted{ background: rgba(148,163,184,.10); color: #94a3b8; }

/* Responsivo: KPIs em 2 linhas em telas estreitas */
@media (max-width: 1200px) {
  .pf-kpis { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 760px) {
  .pf-kpis { grid-template-columns: repeat(2, 1fr); }
  .pf-meta { grid-template-columns: repeat(2, 1fr); }
}
