.fin-sub { color:#5C5C5C; margin:-6px 0 14px; font-size:.9rem; max-width:980px; }
.fin-kpis { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:14px; }
.fin-kpi { display:flex; flex-direction:column; align-items:flex-start; background:#FFFFFF; border:1px solid #EDE3D7; border-radius:12px; padding:10px 14px; min-width:170px; cursor:pointer; text-align:left; font:inherit; }
.fin-kpi:hover { background:#FBF7F1; }
.fin-kpi.on { border-color:#1A1A1A; }
.fin-kpi b { display:block; font-size:22px; font-weight:800; line-height:1.1; color:#1A1A1A; }
.fin-kpi b.bad { color:#A12A1C; } .fin-kpi b.warn { color:#8F5600; } .fin-kpi b.ok { color:#3F7A1F; } .fin-kpi b.mut { color:#9A8F84; }
.fin-kpi span { font-size:.78rem; color:#5C5C5C; }
.fin-kpi small { display:block; font-size:.72rem; color:#9A8F84; margin-top:2px; }
.fin-barra { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:12px; }
.fin-seg { display:inline-flex; border:1px solid #CFC4B6; border-radius:8px; overflow:hidden; }
.fin-seg button { height:32px; padding:0 14px; border:none; background:#FFFFFF; font:inherit; font-size:.86rem; font-weight:600; color:#1A1A1A; cursor:pointer; }
.fin-seg button + button { border-left:1px solid #CFC4B6; }
.fin-seg button.on { background:#22324A; color:#FFFFFF; }
.fin-chips { display:flex; flex-wrap:wrap; gap:6px; }
.fin-chip { height:28px; padding:0 11px; border-radius:14px; border:1px solid #CFC4B6; background:#FFFFFF; font:inherit; font-size:.8rem; font-weight:600; color:#1A1A1A; cursor:pointer; }
.fin-chip.on { background:#1A1A1A; color:#FFFFFF; border-color:#1A1A1A; }
.fin-busca, .fin-sel { height:32px; border:1px solid #CFC4B6; border-radius:8px; padding:0 10px; font:inherit; font-size:.86rem; background:#FFFFFF; }
.fin-busca { min-width:240px; }
.fin-dir { margin-left:auto; display:flex; gap:8px; align-items:center; }
.fin-btn { height:32px; border-radius:8px; padding:0 14px; font:inherit; font-size:.86rem; font-weight:600; cursor:pointer; border:1px solid #D9CCBA; background:#FFFFFF; color:#1A1A1A; }
.fin-btn:hover:not(:disabled) { background:#F4ECDF; }
.fin-btn:disabled { opacity:.55; cursor:default; }
.fin-btn.pri { background:#B8321F; color:#FFFFFF; border-color:#B8321F; }
.fin-btn.pri:hover:not(:disabled) { background:#9C2A1A; }
.fin-btn.sm { height:26px; padding:0 9px; font-size:.78rem; }
.fin-btn.lnk { background:none; border:none; color:#1A5A8A; padding:0 4px; height:auto; text-decoration:underline; }
.fin-card { background:#FFFFFF; border:1px solid #EDE3D7; border-radius:14px; padding:4px 0 0; overflow:auto; }
.fin-tab { width:100%; border-collapse:collapse; font-size:.86rem; }
.fin-tab th { position:sticky; top:0; background:#F4ECDF; text-align:left; font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; color:#5C5C5C; padding:8px 10px; white-space:nowrap; }
.fin-tab td { padding:6px 10px; border-bottom:1px solid #F1E8DC; vertical-align:middle; }
.fin-tab tbody tr:hover { background:#FBF7F1; }
.fin-tab .r, .fin-tab th.r { text-align:right; white-space:nowrap; }
.fin-tab tfoot td { font-weight:700; background:#FBF7F1; }
.fin-tab .sub { font-size:.75rem; color:#5C5C5C; }
.fin-tab a { color:#1A1A1A; text-decoration:none; font-weight:600; }
.fin-tab a:hover { text-decoration:underline; }
.fin-vazio { padding:26px; text-align:center; color:#9A8F84; }
.fin-sit { display:inline-block; padding:2px 8px; border-radius:6px; font-size:.74rem; font-weight:700; white-space:nowrap; }
.fin-sit.rec { background:#DDEAC1; color:#3F5824; }
.fin-sit.venc { background:#F4D8CB; color:#A12A1C; }
.fin-sit.breve { background:#FFF3CD; color:#856404; }
.fin-sit.av { background:#E5DED2; color:#5C5C5C; }
.fin-sit.fis { background:#F4D8CB; color:#A12A1C; margin:1px 2px 1px 0; }
.fin-sit.fis.leve { background:#FFF3CD; color:#856404; }
.fin-omie { display:inline-block; margin-top:2px; font-size:.72rem; color:#A12A1C; font-weight:600; }
.fin-omie.ok { color:#5C5C5C; font-weight:500; }
.fin-prog { height:7px; background:#EDE3D7; border-radius:4px; overflow:hidden; min-width:90px; }
.fin-prog div { height:100%; background:#3F7A1F; }
.fin-nota { font-size:.74rem; color:#7A6F65; margin:10px 2px 0; }
@media (max-width: 900px) { .fin-busca { min-width:160px; } .fin-dir { margin-left:0; } }
