:root {
    --cor-vermelho: #e53e3e;
    --cor-verde: #38a169;
    --cor-amarelo: #d69e2e;
    --cor-cinza: #a0aec0;
}
.dashboard-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; }
.dashboard-actions { display: flex; gap: 0.5rem; align-items: center; }
.detail-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.indicador { font-size: 1.2rem; }
.indicador.vermelho { color: var(--cor-vermelho); }
.indicador.verde { color: var(--cor-verde); }
.indicador.amarelo { color: var(--cor-amarelo); }
.indicador.cinza { color: var(--cor-cinza); }
.status-ok { color: var(--cor-verde); font-weight: 600; }
.status-fora { color: var(--cor-vermelho); font-weight: 600; }
.status-bar { padding: 0.3rem 0.8rem; border-radius: 4px; margin-bottom: 1rem; }
.status-bar.status-concluido { background: #f0fff4; border: 1px solid var(--cor-verde); }
.status-bar.status-em_andamento { background: #fffff0; border: 1px solid var(--cor-amarelo); }
.badge { background: var(--cor-vermelho); color: white; border-radius: 50%; padding: 0.1rem 0.45rem; font-size: 0.75rem; margin-left: 0.3rem; vertical-align: super; }
.fase-badge { display: inline-block; padding: 0.15rem 0.5rem; border-radius: 4px; font-size: 0.8rem; font-weight: 600; white-space: nowrap; }
.fase-badge.fase-homologada, .fase-badge.fase-adjudicada, .fase-badge.fase-contratada { background: #c6f6d5; color: #22543d; }
.fase-badge.fase-edital-publicado, .fase-badge.fase-aguardando-sessao { background: #bee3f8; color: #2a4365; }
.fase-badge.fase-em-disputa, .fase-badge.fase-em-analise { background: #fefcbf; color: #744210; }
.fase-badge.fase-suspensa, .fase-badge.fase-revogada, .fase-badge.fase-deserta-fracassada { background: #fed7d7; color: #742a2a; }
.fase-badge.fase-encerrada { background: #e2e8f0; color: #4a5568; }
.fase-badge.fase-nao-classificada { background: #feebc8; color: #7b341e; }
.fase-badge.fase-em-preparacao { background: #e9d8fd; color: #553c9a; }
.tipo-badge { display: inline-block; padding: 0.1rem 0.4rem; border-radius: 3px; font-size: 0.75rem; font-weight: 600; }
.tipo-badge.tipo-mudanca { background: #bee3f8; color: #2a4365; }
.tipo-badge.tipo-parado { background: #fefcbf; color: #744210; }
.tipo-badge.tipo-erro { background: #fed7d7; color: #742a2a; }
.tipo-badge.tipo-fase_relevante { background: #c6f6d5; color: #22543d; }
.objeto-col { max-width: 250px; }
.btn-sm { padding: 0.2rem 0.5rem; font-size: 0.8rem; }
.alerta-nao-lido { font-weight: 600; background: #fffff0; }
.filtros-form { margin-bottom: 1rem; }
.error-msg { color: var(--cor-vermelho); font-weight: 600; }
.htmx-indicator { display: none; }
.htmx-request .htmx-indicator { display: inline; }
.htmx-request.htmx-indicator { display: inline; }
@media (max-width: 768px) {
    .dashboard-header { flex-direction: column; gap: 0.5rem; }
    .dashboard-actions { width: 100%; }
    .detail-header { flex-direction: column; }
}
