/* ===== ERP Planta & Forma — Financeiro e usuários ===== */
body:not(.role-admin) .admin-only{display:none !important}
.fin-menu{margin-top:14px}
.menu-group{margin:14px 0 4px;padding:0 14px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#8f8b80}
.menu-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;margin-left:6px;border-radius:10px;background:#c8923d;color:#fff;font-size:11px;font-weight:700}
.user-actions{display:flex;gap:6px}

.fin-view .card h3{margin-top:0}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.card-head h3{margin:0}
.small{font-size:12px}.muted{color:var(--muted)}.strong{font-weight:700}.nowrap{white-space:nowrap}
.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.pos{color:#3f6b38}.neg{color:var(--danger)}

/* toolbar e filtros */
.fin-toolbar{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;justify-content:space-between}
.fin-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;flex:1}
.fin-filters label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted);min-width:140px}
.fin-filters label.grow{flex:1;min-width:220px}
.fin-filters input,.fin-filters select{padding:9px 10px}
.fin-toolbar-actions{display:flex;gap:10px}
.full-row{flex-basis:100%;margin:0}
.file-btn{cursor:pointer;display:inline-flex;align-items:center}

/* cards de resumo */
.fin-cards{grid-template-columns:repeat(4,1fr)}
.fin-stat{text-align:left;cursor:pointer;font:inherit;transition:transform .15s,box-shadow .15s,border-color .15s}
.fin-stat:hover{transform:translateY(-2px);border-color:var(--accent2);box-shadow:0 8px 20px rgba(43,43,40,.08)}
.fin-stat strong{font-size:22px}
.fin-stat.danger strong{color:var(--danger)}
.fin-stat.good strong{color:#3f6b38}

/* tabelas */
.table-scroll{overflow-x:auto}
.fin-table{width:100%;border-collapse:collapse;font-size:13.5px}
.fin-table th{text-align:left;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:10px 8px;border-bottom:1px solid var(--border);background:var(--panel2);white-space:nowrap}
.fin-table td{padding:10px 8px;border-bottom:1px solid #ece8de;vertical-align:top}
.fin-table tfoot td{font-weight:700;border-top:2px solid var(--border);border-bottom:0;background:var(--panel2)}
.fin-table.compact td{padding:8px 6px}
.fin-table tbody tr:hover{background:#faf9f5}
.fin-table tr.row-atrasado td:first-child{box-shadow:inset 3px 0 0 var(--danger)}
.fin-table tr.row-cancelado{opacity:.55}
.fin-table tr.row-current td{background:#f6f3ea}
.row-actions{text-align:right}
.kind-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:middle}
.kind-dot.receber{background:#6b8f5a}.kind-dot.pagar{background:#c0654f}

.fin-badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap;background:#eeeae0;color:#5b584f}
.fin-badge.st-aberto{background:#eef1e6;color:#4a5e40}
.fin-badge.st-parcial{background:#f5ecd6;color:#8a6420}
.fin-badge.st-atrasado{background:#f7e0db;color:#a33d2a}
.fin-badge.st-pago{background:#dfeedd;color:#2f6a2c}
.fin-badge.st-cancelado{background:#eceae6;color:#8d8a84}

button.mini{padding:6px 10px;font-size:12px;border-radius:8px;border:1px solid var(--border);background:var(--panel);color:var(--text);margin-left:4px}
button.mini:hover{border-color:var(--accent);color:var(--accent)}
button.mini.primary-mini{background:var(--accent);border-color:var(--accent);color:#fff}
button.mini.primary-mini:hover{background:var(--accent-dark);color:#fff}
button.mini.danger{color:var(--danger)}
.btn-fin{background:var(--accent) !important;color:#fff !important;border-color:var(--accent) !important}

/* menu suspenso */
.fin-pop{position:absolute;z-index:1000;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.14);padding:6px;display:flex;flex-direction:column;min-width:210px}
.fin-pop button{background:none;border:0;text-align:left;padding:9px 12px;border-radius:7px;font-size:13.5px;color:var(--text)}
.fin-pop button:hover{background:var(--panel2)}
.fin-pop button.danger{color:var(--danger)}

/* modal */
.fin-modal-wrap{position:fixed;inset:0;z-index:900;background:rgba(30,32,28,.45);display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;overflow-y:auto}
.fin-modal{background:var(--panel);border-radius:16px;width:100%;max-width:520px;box-shadow:0 30px 80px rgba(0,0,0,.25);animation:finIn .18s ease}
.fin-modal.wide{max-width:760px}
@keyframes finIn{from{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}
.fin-modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--border)}
.fin-modal-head h3{margin:0;font-size:18px}
.fin-x{background:none;border:0;font-size:26px;line-height:1;color:var(--muted);padding:0 4px}
.fin-modal-body{padding:18px 22px 22px}
.fin-modal-body .form-grid{margin-top:4px}
.fin-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.fin-modal-actions .secondary{margin-right:0}
.fin-form-error{color:var(--danger);font-size:13px;margin:10px 0 0;min-height:0}
.fin-form-error:empty{display:none}
.fin-checks{gap:10px}
.paid-now-fields{display:flex;gap:10px}
.inline-add{display:flex;gap:6px}.inline-add select{flex:1}

/* toast */
.fin-toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,20px);opacity:0;z-index:2000;background:#2b2b28;color:#fff;padding:12px 18px;border-radius:10px;font-size:14px;box-shadow:0 10px 30px rgba(0,0,0,.2);transition:.25s;max-width:90vw}
.fin-toast.show{opacity:1;transform:translate(-50%,0)}
.fin-toast.error{background:var(--danger)}

/* fluxo de caixa */
.fin-chart{display:flex;gap:10px;align-items:flex-end;height:230px;padding:10px 4px 0;overflow-x:auto}
.fc-col{flex:1;min-width:70px;display:flex;flex-direction:column;align-items:center;height:100%}
.fc-bars{flex:1;display:flex;gap:4px;align-items:flex-end;width:100%;justify-content:center}
.fc-bar{width:40%;max-width:26px;border-radius:5px 5px 0 0;position:relative;min-height:2px;display:flex;flex-direction:column;justify-content:flex-start;overflow:hidden}
.fc-bar.in{background:#7f9e6c}.fc-bar.out{background:#c97a64}
.fc-bar .plan{display:block;width:100%;background:repeating-linear-gradient(45deg,rgba(255,255,255,.55) 0 4px,rgba(255,255,255,.15) 4px 8px)}
.fc-label{font-size:12px;color:var(--muted);margin-top:6px}
.fc-col.current .fc-label{color:var(--accent);font-weight:700}
.fc-bal{font-size:11.5px;font-weight:700;white-space:nowrap}
.fc-bal.neg{color:var(--danger)}
.fc-legend{display:flex;gap:14px;align-items:center;font-size:12px;color:var(--muted);margin-top:12px;flex-wrap:wrap}
.lg{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:-8px;vertical-align:middle}
.lg.in{background:#7f9e6c}.lg.out{background:#c97a64}.lg.plan{background:repeating-linear-gradient(45deg,#bbb 0 3px,#eee 3px 6px)}

/* DRE */
.fin-table.dre td,.fin-table.dre th{font-size:12.5px;padding:8px 6px}
.fin-table.dre tr.grp{cursor:pointer;font-weight:600}
.fin-table.dre tr.cat-row td{color:var(--muted);font-size:12px}
.fin-table.dre tr.cat-row td:first-child{padding-left:26px}
.fin-table.dre tr.subtotal td{font-weight:700;background:#f4f2ea}
.fin-table.dre tr.total td{font-weight:800;background:#e7ecdf;color:var(--accent-dark);border-top:2px solid var(--accent)}
.caret{display:inline-block;transition:transform .15s;color:var(--muted)}
tr.open .caret{transform:rotate(90deg)}
.proj-row{cursor:pointer}
.proj-detail td{background:#faf9f4;font-size:12.5px;color:#55534c}

/* conciliação */
.fin-table.conc td{vertical-align:middle}
.sugs{display:flex;flex-direction:column;gap:5px;align-items:flex-start;margin-bottom:6px}
.sugs .mini{margin-left:0;text-align:left}
.conc-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.conc-actions select{max-width:340px;padding:6px 8px;font-size:12.5px}
.tx-conciliado td,.tx-ignorado td{color:var(--muted)}

/* abas */
.fin-tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}
.fin-tab{background:var(--panel);border:1px solid var(--border);padding:9px 16px;border-radius:999px;font-size:13.5px;color:var(--text)}
.fin-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}
.perfis{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}
.perfis p{margin:4px 0 0}

@media (max-width:1100px){.fin-cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){
  .fin-cards{grid-template-columns:1fr 1fr}
  .fin-filters label{min-width:calc(50% - 8px)}
  .perfis{grid-template-columns:1fr}
  .fin-modal-wrap{padding:12px}
}

body[data-view^="fin-"] .topbar-actions > button,body[data-view="usuarios"] .topbar-actions > button{display:none}
