/* Campanhas Outbound (Sprint 42). Reusa .kpi/.panel/.modal globais; classes camp-*. */
.camp { display: flex; flex-direction: column; gap: 16px; padding: 4px 0; }
.camp-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.camp .panel { background: var(--az-bg-primary); border: 1px solid var(--az-border-tertiary); border-radius: 12px; padding: 16px 18px; }
.camp .panel h4 { margin: 0 0 12px; font-size: 14px; font-weight: 600; }

.camp-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.camp-table th { text-align: left; padding: 8px 10px; color: var(--az-text-secondary); font-weight: 600; border-bottom: 1px solid var(--az-border-tertiary); white-space: nowrap; }
.camp-table td { padding: 8px 10px; border-bottom: .5px solid var(--az-border-tertiary); }
.camp-table th.r, .camp-table td.r { text-align: right; }

.camp-badge { padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 600; white-space: nowrap; }
.camp-badge.ok { background: var(--az-success-50, rgba(16,185,129,.15)); color: var(--az-success-700, #059669); }
.camp-badge.warn { background: var(--az-warning-50, rgba(245,158,11,.15)); color: #b45309; }
.camp-badge.err { background: var(--az-danger-50, rgba(239,68,68,.15)); color: var(--az-danger-700, #dc2626); }

.camp-bar { background: var(--az-bg-tertiary, #e5e7eb); height: 8px; border-radius: 4px; overflow: hidden; }
.camp-bar-fill { height: 100%; background: linear-gradient(90deg, var(--az-primary), #06b6d4); border-radius: 4px; }

.btn-xs { padding: 3px 8px; font-size: 11px; border-radius: 6px; border: .5px solid var(--az-border-tertiary); background: var(--az-bg-secondary); color: var(--az-text-primary); cursor: pointer; margin-left: 4px; }
.btn-xs:hover { background: var(--az-bg-tertiary); }

@media (max-width: 900px) { .camp-kpis { grid-template-columns: repeat(2, 1fr); } }

/* Sub-tabs Geral|Voz */
.camp-tabs { display: flex; gap: 4px; margin-bottom: 14px; padding: 4px; background: var(--az-bg-secondary); border-radius: 8px; width: fit-content; }
.camp-tab { padding: 8px 16px; border: none; border-radius: 6px; cursor: pointer; font-size: 13px; background: transparent; color: var(--az-text-secondary); }
.camp-tab.is-active { background: var(--az-bg-primary); color: var(--az-primary); font-weight: 500; box-shadow: 0 1px 2px rgba(0,0,0,.06); }

/* Voz: 7 KPIs */
.voz-kpis { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; margin-bottom: 16px; }
@media (max-width: 1200px) { .voz-kpis { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 768px) { .voz-kpis { grid-template-columns: repeat(2, 1fr); } }
.voz-kpi { padding: 12px; background: var(--az-bg-primary); border: .5px solid var(--az-border-tertiary); border-radius: 10px; text-align: center; border-left: 3px solid var(--az-border-secondary); }
.voz-kpi.k-primary { border-left-color: var(--az-primary); }
.voz-kpi.k-ok { border-left-color: #10b981; }
.voz-kpi.k-warn { border-left-color: #f59e0b; }
.voz-kpi.k-purple { border-left-color: #8b5cf6; }
.voz-kpi.k-danger { border-left-color: #ef4444; }
.voz-kpi.k-neutral { border-left-color: #6b7280; }
.voz-ico { font-size: 20px; margin-bottom: 4px; }
.voz-val { font-size: 22px; font-weight: 700; line-height: 1; }
.voz-lbl { font-size: 11px; color: var(--az-text-secondary); margin-top: 4px; }
.voz-pct { font-size: 10px; color: var(--az-text-tertiary); margin-top: 2px; font-weight: 500; }
.voz-table td, .voz-table th { padding: 6px 8px; font-size: 12px; }
.voz-table .cell-ok { font-weight: 600; color: #047857; }

/* Voz: timeline horária */
.voz-timeline { display: flex; gap: 4px; align-items: end; height: 200px; }
.voz-tcol { flex: 1; display: flex; flex-direction: column; align-items: center; height: 100%; justify-content: flex-end; gap: 2px; }
.voz-tcol small { font-size: 10px; color: var(--az-text-tertiary); }
.voz-tbar { position: relative; width: 100%; min-height: 4px; background: var(--az-bg-tertiary, #e5e7eb); border-radius: 4px 4px 0 0; }
.voz-tbar-ok { position: absolute; bottom: 0; width: 100%; background: linear-gradient(180deg, #10b981, #059669); border-radius: 4px 4px 0 0; }
.voz-th { font-size: 11px; color: var(--az-text-secondary); }
