/* =====================================================================
   TzMoz Admin — tema monocromático azul-marinho
   Uma única cor de destaque (--azul) sobre cinzentos neutros.
   ===================================================================== */
:root {
    --azul-950: #0d1b2e;
    --azul-900: #12233b;
    --azul-800: #192f4e;
    --azul: #1e3d63;          /* cor principal */
    --azul-600: #2c5282;
    --azul-300: #a9bbd1;
    --azul-100: #e7edf5;
    --azul-50: #f3f6fa;

    --texto: #18202c;
    --texto-2: #4a5566;
    --muted: #7a8596;
    --borda: #e3e7ee;
    --fundo: #f5f7fa;
    --branco: #ffffff;
    --raio: 12px;
    --sidebar-w: 248px;

    --bs-body-font-family: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --bs-body-color: var(--texto);
    --bs-primary: var(--azul);
    --bs-primary-rgb: 30, 61, 99;
    --bs-link-color: var(--azul);
    --bs-link-color-rgb: 30, 61, 99;
    --bs-link-hover-color: var(--azul-950);
    --bs-border-color: var(--borda);
    --bs-form-invalid-color: var(--azul-950);
    --bs-form-invalid-border-color: var(--azul);
}

body { background: var(--fundo); color: var(--texto); font-size: .9rem; -webkit-font-smoothing: antialiased; }
a { text-decoration: none; }
h1, h2, h3, h4, h5, h6 { color: var(--texto); }

/* ---------- Estrutura ---------- */
.app { display: flex; min-height: 100vh; }

.sidebar {
    width: var(--sidebar-w); position: fixed; inset: 0 auto 0 0; z-index: 1040;
    background: var(--azul-900); color: #c3cedd;
    display: flex; flex-direction: column; transition: transform .2s ease;
}
.sidebar-brand { display: block; padding: 20px 18px 12px; }
.sidebar-brand span { display: block; background: #fff; border-radius: 10px; padding: 8px 10px; }
.sidebar-brand img { width: 100%; display: block; }
.sidebar-nav { flex: 1; overflow-y: auto; padding: 4px 12px 16px; }
.nav-titulo { font-size: .67rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #6f819b; padding: 18px 12px 6px; }
.sidebar .nav-link {
    display: flex; align-items: center; gap: 11px; padding: 9px 12px; margin-bottom: 2px;
    border-radius: 8px; color: #c3cedd; font-weight: 500; font-size: .87rem;
}
.sidebar .nav-link i { font-size: 1.05rem; width: 20px; text-align: center; opacity: .8; }
.sidebar .nav-link:hover { background: rgba(255,255,255,.05); color: #fff; }
.sidebar .nav-link.active { background: var(--azul); color: #fff; }
.sidebar .nav-link.active i { opacity: 1; }
.sidebar-foot { padding: 14px 16px 18px; border-top: 1px solid rgba(255,255,255,.07); }
.btn-quiosque { width: 100%; background: transparent; border: 1px solid rgba(255,255,255,.22); color: #fff; font-weight: 600; }
.btn-quiosque:hover { background: rgba(255,255,255,.08); color: #fff; }
.sidebar-backdrop { display: none; }

.main { flex: 1; min-width: 0; margin-left: var(--sidebar-w); display: flex; flex-direction: column; }
.topbar {
    position: sticky; top: 0; z-index: 1020; display: flex; align-items: center; gap: 14px;
    padding: 14px 28px; background: var(--branco); border-bottom: 1px solid var(--borda);
}
.topbar h1 { font-size: 1.1rem; font-weight: 700; margin: 0; }
.topbar small { color: var(--muted); font-size: .78rem; }
.topbar-actions { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.btn-icon { width: 38px; height: 38px; border-radius: 8px; display: inline-grid; place-items: center; border: 0; background: transparent; color: var(--texto); }
.btn-icon:hover { background: var(--azul-50); }
.user-chip { display: flex; align-items: center; gap: 10px; background: var(--branco); border: 1px solid var(--borda); border-radius: 10px; padding: 5px 12px 5px 5px; }
.user-chip strong { font-size: .82rem; }
.user-chip small { display: block; color: var(--muted); font-size: .72rem; }
.avatar { width: 32px; height: 32px; border-radius: 8px; display: inline-grid; place-items: center; background: var(--azul); color: #fff; font-weight: 700; font-size: .75rem; flex-shrink: 0; }
.avatar-lg { width: 72px; height: 72px; border-radius: 16px; font-size: 1.5rem; }

.content { flex: 1; padding: 26px 28px; }
.footer { display: flex; justify-content: space-between; padding: 14px 28px; color: var(--muted); font-size: .76rem; border-top: 1px solid var(--borda); }

/* ---------- Cartões ---------- */
.card { background: var(--branco); border: 1px solid var(--borda); border-radius: var(--raio); box-shadow: none; }
.card-header { background: transparent; border-bottom: 1px solid var(--borda); padding: 14px 18px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.card-header h6 { margin: 0; font-weight: 700; font-size: .9rem; }
.card-body { padding: 18px; }

.kpi { padding: 18px 20px; height: 100%; }
.kpi-label { font-size: .74rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); display: flex; align-items: center; gap: 8px; }
.kpi-label i { color: var(--azul); font-size: .95rem; }
.kpi-value { font-size: 1.5rem; font-weight: 800; letter-spacing: -.02em; margin: 8px 0 2px; font-variant-numeric: tabular-nums; }
.kpi-foot { font-size: .78rem; color: var(--muted); }
.kpi-destaque { background: var(--azul); border-color: var(--azul); color: #fff; }
.kpi-destaque .kpi-label, .kpi-destaque .kpi-label i, .kpi-destaque .kpi-foot { color: #c3cedd; }
.kpi-destaque .kpi-value { color: #fff; }

/* ---------- Etiquetas (todas na mesma cor, intensidades diferentes) ---------- */
.etiqueta { display: inline-block; font-size: .72rem; font-weight: 600; padding: .3em .65em; border-radius: 6px; background: var(--azul-100); color: var(--azul); white-space: nowrap; }
.etiqueta-forte { background: var(--azul); color: #fff; }
.etiqueta-contorno { background: transparent; color: var(--azul); box-shadow: inset 0 0 0 1px var(--azul-300); }
.etiqueta-neutra { background: #eef0f3; color: var(--texto-2); }

/* ---------- Tabelas ---------- */
.table { --bs-table-bg: transparent; margin-bottom: 0; font-size: .86rem; color: var(--texto); }
.table > thead th { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); background: var(--azul-50); border-bottom: 1px solid var(--borda); padding: 10px 14px; white-space: nowrap; }
.table > tbody td { padding: 11px 14px; vertical-align: middle; border-color: var(--borda); }
.table-hover > tbody > tr:hover > * { --bs-table-bg-state: var(--azul-50); }
.table tfoot td { font-weight: 700; background: var(--azul-50); padding: 11px 14px; }
.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.v-entrada { color: #1f5fae; font-weight: 700; }
.v-saida { color: var(--texto); font-weight: 600; }
.sub { display: block; font-size: .76rem; color: var(--muted); }

/* ---------- Botões e formulários ---------- */
.btn { border-radius: 8px; font-weight: 600; font-size: .86rem; padding: .5rem .95rem; }
.btn-sm { font-size: .78rem; padding: .32rem .7rem; border-radius: 7px; }
.btn-lg { font-size: .95rem; padding: .7rem 1.2rem; }
.btn-primary { --bs-btn-bg: var(--azul); --bs-btn-border-color: var(--azul); --bs-btn-hover-bg: var(--azul-800); --bs-btn-hover-border-color: var(--azul-800); --bs-btn-active-bg: var(--azul-900); --bs-btn-active-border-color: var(--azul-900); --bs-btn-disabled-bg: var(--azul); --bs-btn-disabled-border-color: var(--azul); }
.btn-outline-primary { --bs-btn-color: var(--azul); --bs-btn-border-color: var(--azul-300); --bs-btn-hover-bg: var(--azul); --bs-btn-hover-border-color: var(--azul); --bs-btn-active-bg: var(--azul); --bs-btn-active-border-color: var(--azul); }
.btn-light { --bs-btn-bg: var(--branco); --bs-btn-border-color: var(--borda); --bs-btn-color: var(--texto); --bs-btn-hover-bg: var(--azul-50); --bs-btn-hover-border-color: var(--azul-300); }
.btn-check:checked + .btn-outline-primary { background: var(--azul); border-color: var(--azul); color: #fff; }

.form-label { font-weight: 600; font-size: .8rem; margin-bottom: .3rem; color: var(--texto-2); }
.form-control, .form-select { border-radius: 8px; border-color: var(--borda); font-size: .88rem; padding: .5rem .8rem; }
.form-control:focus, .form-select:focus { border-color: var(--azul); box-shadow: 0 0 0 .2rem rgba(30,61,99,.12); }
.form-check-input:checked { background-color: var(--azul); border-color: var(--azul); }
.form-check-input:focus { box-shadow: 0 0 0 .2rem rgba(30,61,99,.12); border-color: var(--azul); }
.form-text { font-size: .74rem; color: var(--muted); }
.input-group-text { border-color: var(--borda); background: var(--azul-50); font-size: .85rem; }
.required::after { content: " *"; color: var(--azul); }
.form-control.is-invalid, .form-select.is-invalid { border-color: var(--azul); background-image: none; box-shadow: 0 0 0 .2rem rgba(30,61,99,.12); }
.invalid-feedback { color: var(--azul); font-weight: 600; }
.invalid-feedback::before { content: "\F33A"; font-family: bootstrap-icons; margin-right: 4px; }

/* Alertas: todos com a mesma cor */
.alert { border: 1px solid var(--azul-300); background: var(--azul-50); color: var(--azul-950); border-radius: 10px; font-size: .87rem; }
.alert i.bi { color: var(--azul); }

.nav-tabs-tz { display: flex; gap: 4px; border-bottom: 1px solid var(--borda); margin-bottom: 18px; flex-wrap: wrap; }
.nav-tabs-tz a { padding: 10px 14px; color: var(--muted); font-weight: 600; font-size: .85rem; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.nav-tabs-tz a:hover { color: var(--texto); }
.nav-tabs-tz a.active { color: var(--azul); border-bottom-color: var(--azul); }

.page-actions { display: flex; gap: 8px; align-items: end; flex-wrap: wrap; margin-bottom: 18px; }
.page-actions .ms-auto { margin-left: auto; }
.filtros .form-control, .filtros .form-select { min-width: 130px; }

.pagination { --bs-pagination-active-bg: var(--azul); --bs-pagination-active-border-color: var(--azul); --bs-pagination-color: var(--azul); }
.dropdown-menu { border-color: var(--borda); border-radius: 10px; font-size: .86rem; box-shadow: 0 10px 30px rgba(13,27,46,.08); }
.dropdown-item:active { background: var(--azul); }
.modal-content { border: 0; border-radius: 14px; }
.modal-header { border-bottom: 1px solid var(--borda); }
.modal-footer { border-top: 1px solid var(--borda); }

.progress { height: 6px; border-radius: 6px; background: var(--azul-100); }
.progress-bar { background: var(--azul); border-radius: 6px; }

.vazio { text-align: center; padding: 44px 20px; color: var(--muted); }
.vazio i { display: block; font-size: 2.2rem; color: var(--azul-300); margin-bottom: 8px; }

.dados { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 14px 24px; margin: 0; }
.dados dt { font-size: .7rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.dados dd { margin: 2px 0 0; font-weight: 600; }

.lista-simples .item { display: flex; align-items: center; gap: 12px; padding: 11px 18px; border-bottom: 1px solid var(--borda); }
.lista-simples .item:last-child { border-bottom: 0; }

.chart-box { position: relative; height: 280px; }

.confirm-icon { width: 52px; height: 52px; border-radius: 14px; display: inline-grid; place-items: center; font-size: 1.5rem; background: var(--azul-100); color: var(--azul); }

/* ---------- Responsivo ---------- */
@media (max-width: 991.98px) {
    .sidebar { transform: translateX(-100%); }
    .sidebar.open { transform: none; }
    .sidebar.open + .sidebar-backdrop { display: block; position: fixed; inset: 0; background: rgba(13,27,46,.45); z-index: 1030; }
    .main { margin-left: 0; }
    .content { padding: 16px; }
    .topbar { padding: 10px 16px; }
    .topbar small { display: none; }
    .footer { padding: 12px 16px; }
}

/* ---------- Impressão ---------- */
@media print {
    .sidebar, .topbar, .footer, .no-print, .page-actions, .btn, .alert, .nav-tabs-tz { display: none !important; }
    .main { margin: 0; }
    .content { padding: 0; }
    body { background: #fff; font-size: 11px; }
    .card { border: 0; }
    .print-only { display: block !important; }
}
.print-only { display: none; }

/* =====================================================================
   Financeiro: saídas a vermelho, períodos e saúde financeira
   ===================================================================== */
:root {
    --vermelho: #c62828;
    --vermelho-escuro: #9b1c1c;
    --vermelho-100: #fdecec;
    --ambar: #b7791f;
    --ambar-100: #fdf3e1;
}
.v-saida { color: var(--vermelho); font-weight: 700; }
.kpi-saida .kpi-value { color: var(--vermelho); }
.kpi-saida .kpi-label i { color: var(--vermelho); }
.kpi-saida { border-top: 3px solid var(--vermelho); }
.kpi-entrada { border-top: 3px solid var(--azul); }
.kpi-negativo .kpi-value { color: var(--vermelho); }
.etiqueta-saida { background: var(--vermelho-100); color: var(--vermelho); }
.btn-check:checked + .btn-saida { background: var(--vermelho); border-color: var(--vermelho); color: #fff; }
.btn-saida { --bs-btn-color: var(--vermelho); --bs-btn-border-color: #f1b4b4; --bs-btn-hover-bg: var(--vermelho); --bs-btn-hover-border-color: var(--vermelho); --bs-btn-hover-color: #fff; }
.btn-danger-tz { --bs-btn-bg: var(--vermelho); --bs-btn-border-color: var(--vermelho); --bs-btn-color: #fff; --bs-btn-hover-bg: var(--vermelho-escuro); --bs-btn-hover-border-color: var(--vermelho-escuro); --bs-btn-hover-color: #fff; }

/* Barra de período */
.periodo-bar { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 10px 16px; padding: 10px 14px; }
.periodo-atalhos { display: flex; flex-wrap: wrap; gap: 4px; background: var(--azul-50); border-radius: 9px; padding: 3px; }
.periodo-atalhos a { padding: 6px 11px; border-radius: 7px; font-size: .8rem; font-weight: 600; color: var(--texto-2); white-space: nowrap; }
.periodo-atalhos a:hover { background: #fff; color: var(--texto); }
.periodo-atalhos a.active { background: var(--azul); color: #fff; }
.periodo-mes, .periodo-datas { display: flex; align-items: center; gap: 6px; }
.periodo-mes .form-control { width: 150px; min-width: 0; }
.periodo-datas .form-control { width: 140px; min-width: 0; }
.periodo-datas { margin-left: auto; }

/* Saúde financeira */
.saude { border: 0; overflow: hidden; }
.saude-topo { display: flex; flex-wrap: wrap; gap: 24px; align-items: center; padding: 24px 26px; color: #fff; background: var(--azul); }
.saude.atencao .saude-topo { background: var(--ambar); }
.saude.critica .saude-topo { background: var(--vermelho); }
.saude-anel { --v: 0; width: 132px; height: 132px; border-radius: 50%; flex-shrink: 0; display: grid; place-items: center;
    background: conic-gradient(#fff calc(var(--v) * 1%), rgba(255,255,255,.22) 0); }
.saude-anel > div { width: 104px; height: 104px; border-radius: 50%; display: grid; place-items: center; text-align: center; }
.saude-anel-interior { background: var(--azul); }
.saude.atencao .saude-anel-interior { background: var(--ambar); }
.saude.critica .saude-anel-interior { background: var(--vermelho); }
.saude-anel strong { display: block; font-size: 2.2rem; font-weight: 800; line-height: 1; }
.saude-anel small { font-size: .7rem; opacity: .8; }
.saude-estado { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; opacity: .85; }
.saude-titulo { font-size: 1.6rem; font-weight: 800; margin: 2px 0 6px; color: #fff; }
.saude-texto { max-width: 560px; opacity: .92; margin: 0; }
.saude-indicadores { display: grid; grid-template-columns: repeat(4, 1fr); }
.saude-ind { padding: 16px 20px; border-right: 1px solid var(--borda); }
.saude-ind:last-child { border-right: 0; }
.saude-ind .nome { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); display: flex; gap: 6px; align-items: center; }
.saude-ind .valor { font-size: 1.35rem; font-weight: 800; margin: 4px 0 2px; }
.saude-ind .dica { font-size: .76rem; color: var(--muted); }
.saude-ind .nivel { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.nivel-bom { background: var(--azul); } .nivel-medio { background: var(--ambar); } .nivel-mau { background: var(--vermelho); }
.saude-ind .barra { height: 5px; border-radius: 5px; background: var(--azul-100); margin-top: 8px; overflow: hidden; }
.saude-ind .barra span { display: block; height: 100%; border-radius: 5px; }

.legenda-cat .item { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--borda); font-size: .84rem; }
.legenda-cat .item:last-child { border-bottom: 0; }
.legenda-cat .cor { width: 10px; height: 10px; border-radius: 3px; flex-shrink: 0; }

@media (max-width: 991.98px) {
    .saude-indicadores { grid-template-columns: repeat(2, 1fr); }
    .saude-ind:nth-child(2) { border-right: 0; }
    .saude-ind:nth-child(-n+2) { border-bottom: 1px solid var(--borda); }
    .periodo-datas { margin-left: 0; }
}
@media (max-width: 575.98px) {
    .periodo-datas .form-control, .periodo-mes .form-control { width: auto; flex: 1 1 0; min-width: 0; }
    .periodo-datas { flex-wrap: nowrap; }
    .periodo-atalhos { width: 100%; }
    .periodo-datas, .periodo-mes { width: 100%; }
    .saude-topo { justify-content: center; text-align: center; }
}
@media print { .periodo-bar { display: none !important; } }

/* Cores dos valores também dentro de tabelas (o Bootstrap define a cor das células) */
.v-entrada, .table td.v-entrada, .table td .v-entrada { color: #1f5fae; font-weight: 700; }
.v-saida, .table td.v-saida, .table td .v-saida { color: var(--vermelho); font-weight: 700; }
.v-transf, .table td.v-transf { color: var(--texto-2); font-weight: 600; }

/* Paginação */
.paginacao { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 12px 16px; border-top: 1px solid var(--borda); }
.paginacao .info { font-size: .8rem; color: var(--muted); }
.paginacao .pagination { margin: 0; }
.paginacao .page-link { font-size: .8rem; padding: .35rem .7rem; color: var(--azul); border-color: var(--borda); }
.paginacao .page-item.active .page-link { background: var(--azul); border-color: var(--azul); color: #fff; }
.paginacao .page-item.disabled .page-link { color: var(--muted); }

/* ---------- Processos de viaturas ---------- */
.contador { display: inline-block; min-width: 20px; padding: 0 6px; margin-left: 4px; border-radius: 10px; background: var(--azul-100); color: var(--azul); font-size: .7rem; font-weight: 700; text-align: center; }
.nav-tabs-tz a.active .contador { background: var(--azul); color: #fff; }
.mini-barra { height: 4px; border-radius: 4px; background: var(--azul-100); margin-top: 5px; min-width: 70px; overflow: hidden; }
.mini-barra span { display: block; height: 100%; background: var(--azul); border-radius: 4px; }
.mini-barra-saida { background: var(--vermelho-100); }
.mini-barra-saida span { background: var(--vermelho); }
.tabela-processos tr[data-href] { cursor: pointer; }

.etapas { display: flex; gap: 0; overflow-x: auto; }
.etapa { flex: 1; min-width: 96px; display: flex; flex-direction: column; align-items: center; gap: 6px; background: none; border: 0; padding: 4px 2px; position: relative; color: var(--muted); font-size: .76rem; font-weight: 600; }
.etapa::before { content: ''; position: absolute; top: 18px; left: -50%; width: 100%; height: 2px; background: var(--borda); z-index: 0; }
.etapa:first-child::before { display: none; }
.etapa .bola { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: #fff; border: 2px solid var(--borda); position: relative; z-index: 1; font-size: .8rem; }
.etapa.feita { color: var(--azul); }
.etapa.feita .bola { background: var(--azul); border-color: var(--azul); color: #fff; }
.etapa.feita::before, .etapa.actual::before { background: var(--azul); }
.etapa.actual { color: var(--azul); }
.etapa.actual .bola { border-color: var(--azul); color: var(--azul); box-shadow: 0 0 0 4px var(--azul-100); font-weight: 800; }
.etapa:not(:disabled):hover .bola { border-color: var(--azul); }
.etapa:disabled { cursor: default; opacity: .75; }

.dinheiro .d-label, .d-label { font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.dinheiro .d-valor { font-size: 1.25rem; font-weight: 800; letter-spacing: -.02em; margin: 4px 0 2px; font-variant-numeric: tabular-nums; }
.dinheiro .d-sub { font-size: .76rem; color: var(--muted); }
.d-caixa { background: var(--azul); color: #fff; border-radius: 10px; padding: 10px 14px; height: 100%; }
.d-caixa .d-label, .d-caixa .d-sub { color: #c3cedd; }
.d-caixa.negativo { background: var(--vermelho); }
.d-caixa.negativo .d-label, .d-caixa.negativo .d-sub { color: #fbd5d5; }

.barra-x { display: flex; height: 26px; border-radius: 8px; overflow: hidden; background: var(--azul-50); box-shadow: inset 0 0 0 1px var(--borda); }
.barra-x span { display: block; height: 100%; border-right: 2px solid #fff; }
.barra-x span:last-child { border-right: 0; }
.barra-x .sobra { background: var(--azul); }
.legenda-x { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 10px; font-size: .8rem; color: var(--texto-2); }
.legenda-x i, .ponto-cor { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 6px; vertical-align: middle; }
.aviso-saida { display: flex; gap: 10px; align-items: flex-start; background: var(--vermelho-100); color: var(--vermelho-escuro); border-radius: 10px; padding: 10px 14px; font-size: .85rem; }
.aviso-saida i { font-size: 1.1rem; }

.dados-lista { margin: 0; padding: 6px 18px 14px; display: grid; grid-template-columns: 112px 1fr; gap: 10px 12px; }
.dados-lista dt { font-size: .74rem; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; padding-top: 2px; }
.dados-lista dd { margin: 0; font-weight: 600; }
.table tfoot th { border-top: 2px solid var(--borda); border-bottom: 0; }
.etiqueta-processo { background: var(--azul-50); color: var(--azul); box-shadow: inset 0 0 0 1px var(--azul-100); font-size: .68rem; }
.etiqueta-processo:hover { background: var(--azul-100); }
.print-cabecalho { margin-bottom: 12px; font-size: .85rem; }
@media print {
    .no-print, .dropdown { display: none !important; }
    .barra-x span, .legenda-x i, .ponto-cor, .d-caixa, .mini-barra span { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
.faixa-processo { display: flex; gap: 12px; align-items: center; background: var(--azul-50); border-bottom: 1px solid var(--borda); padding: 12px 20px; border-radius: var(--raio) var(--raio) 0 0; }
.faixa-processo > i { font-size: 1.4rem; color: var(--azul); }
.table th.v-saida, .table tfoot th.v-saida { color: var(--vermelho); }
.table th.v-entrada, .table tfoot th.v-entrada { color: #1f5fae; }
.dinheiro .d-valor { white-space: nowrap; }
.d-caixa .d-valor { font-size: 1.1rem; }
@media (max-width: 767.98px) {
    .dinheiro .d-valor { font-size: 1rem; }
    .d-caixa .d-valor { font-size: .98rem; }
}
.tabela-docs td { vertical-align: middle; }
.tabela-docs .doc-icone { color: var(--azul-300); }
.tabela-docs tr.doc-ok .doc-icone { color: var(--azul); }
.tabela-docs tr:not(.doc-ok) td:first-child { color: var(--texto-2); }
.form-switch .form-check-input:checked { background-color: var(--azul); border-color: var(--azul); }

/* Cartão de processos no Painel */
.cartao-processos { overflow: hidden; border: 0; }
.cp-topo { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding: 20px 22px; background: linear-gradient(120deg, var(--azul-900), var(--azul) 70%); color: #fff; }
.cp-icone { width: 52px; height: 52px; border-radius: 14px; background: rgba(255,255,255,.12); display: grid; place-items: center; font-size: 1.6rem; }
.cp-titulo { font-size: .76rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: #c3cedd; }
.cp-num { font-size: 1.7rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.1; }
.cp-num span { font-size: .9rem; font-weight: 600; color: #c3cedd; }
.cp-acoes { display: flex; gap: 8px; flex-wrap: wrap; }
.cp-acoes .btn-light { color: var(--azul); font-weight: 700; }
.cp-corpo { display: flex; flex-wrap: wrap; gap: 18px; padding: 16px 22px; align-items: center; }
.cp-etapas { display: flex; gap: 8px; flex-wrap: wrap; flex: 1 1 420px; }
.cp-etapa { flex: 1 1 80px; text-align: center; border: 1px solid var(--borda); border-radius: 10px; padding: 8px 6px; color: var(--muted); }
.cp-etapa strong { display: block; font-size: 1.25rem; color: var(--azul-300); }
.cp-etapa span { font-size: .72rem; font-weight: 600; }
.cp-etapa.tem { border-color: var(--azul-300); background: var(--azul-50); color: var(--azul); }
.cp-etapa.tem strong { color: var(--azul); }
.cp-etapa:hover { border-color: var(--azul); }
.cp-alertas { display: flex; gap: 22px; flex-wrap: wrap; }
.cp-alertas div { display: flex; flex-direction: column; }
.cp-alertas span { font-size: .72rem; color: var(--muted); font-weight: 600; }
.cp-alertas strong { font-size: 1.1rem; font-weight: 800; }
.cp-alertas .alerta strong { color: var(--vermelho); }
@media (max-width: 575.98px) { .cp-acoes { width: 100%; } .cp-acoes .btn { flex: 1; } }

/* Tipo de processo */
.tipos-processo { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.tipo-card { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border: 1.5px solid var(--borda); border-radius: var(--raio); background: #fff; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.tipo-card > i { font-size: 1.5rem; color: var(--azul-300); }
.tipo-card strong { display: block; }
.tipo-card small { display: block; color: var(--muted); font-size: .76rem; line-height: 1.3; }
.btn-check:checked + .tipo-card { border-color: var(--azul); box-shadow: 0 0 0 3px var(--azul-100); }
.btn-check:checked + .tipo-card > i { color: var(--azul); }
@media (max-width: 575.98px) { .tipos-processo { grid-template-columns: 1fr; } }
.etiqueta-tipo { font-size: .66rem; padding: .2em .5em; background: transparent; color: var(--texto-2); box-shadow: inset 0 0 0 1px var(--borda); }
.etiqueta-tipo.leg { color: var(--azul); box-shadow: inset 0 0 0 1px var(--azul-300); background: var(--azul-50); }
.filtro-tipo { display: flex; gap: 8px; flex-wrap: wrap; }
.filtro-tipo a { padding: 6px 14px; border-radius: 20px; border: 1px solid var(--borda); background: #fff; color: var(--texto-2); font-size: .82rem; font-weight: 600; }
.filtro-tipo a span { font-weight: 500; color: var(--muted); font-size: .74rem; }
.filtro-tipo a.active { background: var(--azul); border-color: var(--azul); color: #fff; }
.filtro-tipo a.active span { color: #c3cedd; }
.cp-tipos { flex: 1 1 560px; display: flex; flex-direction: column; gap: 10px; }
.cp-tipo { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.cp-tipo-nome { width: 140px; white-space: nowrap; font-size: .78rem; font-weight: 700; color: var(--texto-2); text-transform: uppercase; letter-spacing: .04em; }
.cp-tipo-nome strong { display: inline-block; margin-left: 4px; padding: 0 7px; border-radius: 10px; background: var(--azul); color: #fff; font-size: .72rem; }
.cp-tipo .cp-etapas { flex: 1 1 380px; }
.cp-etapa { padding: 6px 4px; }
.cp-etapa strong { font-size: 1.05rem; }
.cp-corpo { align-items: flex-start; }
.cp-alertas { flex-direction: column; gap: 10px; padding-left: 18px; border-left: 1px solid var(--borda); }
@media (max-width: 991.98px) { .cp-alertas { flex-direction: row; border-left: 0; padding-left: 0; } .cp-tipo-nome { width: 100%; } }
.kpi-link { color: inherit; transition: box-shadow .15s, border-color .15s; }
.kpi-link:hover { box-shadow: 0 4px 14px rgba(18,35,59,.08); }
.kpi-link.activo { box-shadow: 0 0 0 2px var(--azul-300); }

/* Visão geral */
.saldo-global { background: linear-gradient(135deg, var(--azul-950), var(--azul) 75%); color: #fff; border: 0; overflow: hidden; display: flex; flex-direction: column; }
.sg-topo { padding: 26px 26px 18px; flex: 1; }
.sg-label { font-size: .78rem; font-weight: 600; text-transform: uppercase; letter-spacing: .07em; color: #c3cedd; }
.sg-valor { font-size: 2.5rem; font-weight: 800; letter-spacing: -.03em; margin: 6px 0 12px; font-variant-numeric: tabular-nums; line-height: 1.1; }
.sg-valor.neg { color: #ffb4b4; }
.sg-tipos { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: .84rem; color: #dbe3ee; }
.sg-tipos strong { color: #fff; }
.sg-nota { background: rgba(255,255,255,.08); padding: 10px 26px; font-size: .78rem; color: #c3cedd; }
.banco { padding: 16px 18px; transition: box-shadow .15s, border-color .15s; }
.banco:hover { border-color: var(--azul-300); box-shadow: 0 4px 14px rgba(18,35,59,.07); }
.banco-topo { display: flex; align-items: center; gap: 12px; }
.banco-logo { width: 42px; height: 42px; border-radius: 10px; background: var(--azul); color: #fff; display: grid; place-items: center; font-weight: 800; font-size: .74rem; letter-spacing: .02em; flex-shrink: 0; }
.banco-saldo { font-size: 1.4rem; font-weight: 800; margin: 14px 0 6px; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.banco-rodape { display: flex; gap: 8px; margin-top: 8px; font-size: .74rem; color: var(--muted); }
.banco-nova { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; border: 1.5px dashed var(--azul-300); background: transparent; color: var(--azul); font-weight: 600; min-height: 150px; }
.banco-nova i { font-size: 1.5rem; }
.lista-simples .item .text-truncate { min-width: 0; }
.lista-simples .item > span:first-child { min-width: 0; flex: 1; }
.aviso-pagar { display: flex; gap: 10px; align-items: flex-start; background: #fff7e6; color: #7a4a00; border-radius: 10px; padding: 10px 14px; font-size: .85rem; }
.aviso-pagar a { color: inherit; text-decoration: underline; }
.sg-divisao { margin-top: 22px; }
.sg-barra { height: 10px; border-radius: 6px; background: rgba(255,255,255,.85); overflow: hidden; }
.sg-barra .cli { display: block; height: 100%; background: #7fa0c7; }
.sg-legenda { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 12px; }
.sg-legenda span { display: flex; flex-direction: column; font-size: .76rem; color: #c3cedd; position: relative; padding-left: 16px; }
.sg-legenda i { position: absolute; left: 0; top: 3px; width: 10px; height: 10px; border-radius: 3px; }
.sg-legenda i.cli { background: #7fa0c7; } .sg-legenda i.livre { background: rgba(255,255,255,.85); }
.sg-legenda strong { color: #fff; font-size: 1.05rem; margin: 2px 0; font-variant-numeric: tabular-nums; }
.sg-legenda small { font-size: .7rem; color: #a9bbd1; }
@media (max-width: 575.98px) { .sg-legenda { grid-template-columns: 1fr; } .sg-valor { font-size: 1.9rem; } }
