/* Financeiro: navegação, tabelas e ficha comercial restritas à administração. */
body.finance-mode { display:block; overflow-y:auto; align-items:initial; }
body.finance-mode .main-container { width:100%; max-width:1480px; margin:0 auto; padding:28px 34px; }
@media (min-width:761px) {
    body.finance-mode .app-brand { display:flex; align-items:center; gap:16px; margin:0 0 24px; text-align:left; min-height:40px; }
    body.finance-mode .app-brand .status { margin:0; font-size:.78rem; }
}
body.finance-mode .logo-container { flex-direction:row; gap:12px; margin:0; }
body.finance-mode .logo-img { width:42px; height:42px; padding:4px; margin:0; box-shadow:none; }
body.finance-mode .logo-container .badge { display:none; }
body.finance-mode .background-globes { opacity:.09; }
body.finance-mode .main-container > .legal-audit-footer { margin-top:20px; }
.finance-app,.finance-drawer { --fin-border:rgba(148,163,184,.2); --fin-surface:#191b20; --fin-surface-soft:#202329; --fin-paid:#6ee7b7; --fin-paid-bg:rgba(16,185,129,.13); --fin-danger:#fca5a5; --fin-danger-bg:rgba(239,68,68,.12); --fin-focus:#60a5fa; color:var(--text-main); font-size:14px; line-height:1.5; }
body.theme-light .finance-app,body.theme-light .finance-drawer { --fin-border:#e5e8ef; --fin-surface:#fff; --fin-surface-soft:#f7f8fb; --fin-paid:#047857; --fin-paid-bg:#ecfdf5; --fin-danger:#b91c1c; --fin-danger-bg:#fff1f2; --fin-focus:#2563eb; }
#finance-step.finance-app { max-width:none; padding:30px; background:var(--fin-surface); border:1px solid var(--fin-border); border-radius:20px; box-shadow:0 6px 30px rgba(15,23,42,.045); backdrop-filter:none; }
.finance-app button,.finance-drawer button,.finance-app a { font:inherit; }
.finance-app button,.finance-drawer button,.finance-app input,.finance-drawer input,.finance-app select,.finance-drawer select,.finance-drawer textarea { min-height:42px; }
.finance-app button:focus-visible,.finance-drawer button:focus-visible,.finance-app a:focus-visible,.finance-drawer a:focus-visible { outline:3px solid var(--fin-focus); outline-offset:3px; }
.finance-topbar { display:flex; justify-content:space-between; gap:24px; align-items:center; margin-bottom:26px; }
.finance-eyebrow { font-size:.64rem; letter-spacing:.13em; color:var(--text-muted); font-weight:700; margin:0 0 6px; }
.finance-topbar h2 { font-size:1.9rem; letter-spacing:-.04em; margin:0 0 6px; }
.finance-topbar > div > p:last-child { color:var(--text-muted); font-size:.9rem; margin:0; }
.finance-top-actions { display:flex; flex-wrap:wrap; gap:10px; flex-shrink:0; }
.finance-top-actions button { width:auto; margin:0; padding:9px 15px; }
.finance-main-tabs { display:flex; gap:28px; border-bottom:1px solid var(--fin-border); }
.finance-main-tabs button,.finance-detail-tabs button { width:auto; border:0; border-bottom:3px solid transparent; color:var(--text-muted); background:transparent; border-radius:0; cursor:pointer; padding:13px 0; font-weight:600; margin:0; }
.finance-main-tabs button[aria-selected="true"],.finance-detail-tabs button[aria-selected="true"] { border-color:#dc2626; color:var(--text-main); }
.finance-main-tabs button span { margin-left:7px; font-size:.7rem; background:var(--fin-surface-soft); border:1px solid var(--fin-border); padding:2px 7px; border-radius:6px; }
.finance-main-tabs .finance-tab-long,.finance-main-tabs .finance-tab-short { margin:0; border:0; padding:0; background:none; font:inherit; }
.finance-main-tabs .finance-tab-short { display:none; }
.finance-feedback { display:flex; justify-content:space-between; gap:12px; min-height:46px; align-items:center; color:var(--text-muted); font-size:.74rem; }
.finance-feedback p { margin:0; }
.finance-feedback time { flex-shrink:0; }
.finance-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:5px 0 26px; }
.finance-kpi { color:inherit; text-align:left; background:var(--fin-surface); border:1px solid var(--fin-border); border-radius:13px; padding:20px; margin:0; cursor:pointer; display:flex; flex-direction:column; gap:10px; min-width:0; transition:border-color .15s,transform .15s; }
.finance-kpi:hover { border-color:#a1a8b4; transform:translateY(-2px); }
.finance-kpi > span { color:var(--text-muted); font-size:.8rem; font-weight:500; }
.finance-kpi > strong { font-size:clamp(1.3rem,2.1vw,1.85rem); font-weight:650; letter-spacing:-.035em; font-variant-numeric:tabular-nums; line-height:1.25; overflow-wrap:anywhere; }
.finance-kpi > small { font-size:.7rem; color:var(--text-muted); margin-top:auto; }
.finance-kpi-paid > strong { color:var(--fin-paid); }
.finance-kpi-overdue > strong { color:var(--fin-danger); }
.finance-overview-grid { display:grid; grid-template-columns:1.08fr 1fr; gap:22px; }
.finance-box { border:1px solid var(--fin-border); border-radius:14px; padding:20px; min-width:0; }
.finance-box-heading { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:20px; }
.finance-box-heading h3,.finance-box-heading h4 { font-size:.95rem; font-weight:650; margin:0 0 4px; }
.finance-box-heading p { font-size:.76rem; color:var(--text-muted); margin:0; }
.finance-text-button { width:auto; background:none; border:0; color:var(--text-main); font-size:.76rem!important; font-weight:600!important; cursor:pointer; text-decoration:underline; text-underline-offset:3px; margin:0; padding:0 3px; white-space:nowrap; }
.finance-attention-row,.finance-recent-row { display:flex; gap:12px; align-items:center; padding:16px 0; border-bottom:1px solid var(--fin-border); min-width:0; }
.finance-attention-row:last-child,.finance-recent-row:last-child { border-bottom:0; }
.finance-attention-row > div:first-of-type,.finance-recent-row > div { flex:1; min-width:0; }
.finance-attention-row > div:last-child { text-align:right; flex:0 1 auto; }
.finance-attention-row small,.finance-recent-row small { display:block; font-size:.7rem; color:var(--text-muted); margin-top:4px; }
.finance-recent-row > strong { font-size:.83rem; font-variant-numeric:tabular-nums; white-space:nowrap; }
.finance-avatar,.finance-payment-icon { display:inline-flex; width:36px; height:36px; align-items:center; justify-content:center; border-radius:10px; background:var(--fin-surface-soft); border:1px solid var(--fin-border); font-size:.71rem; font-weight:700; color:var(--text-muted); flex-shrink:0; }
.finance-payment-icon { color:var(--fin-paid); background:var(--fin-paid-bg); border-color:transparent; }
.finance-client-link { display:inline; width:auto; padding:3px 0; margin:0; min-height:initial!important; border:0; background:none; color:var(--text-main); text-align:left; cursor:pointer; font-size:.83rem!important; font-weight:650!important; line-height:1.4; overflow-wrap:anywhere; }
.finance-client-link:hover { text-decoration:underline; text-underline-offset:3px; }
.finance-source-note { font-size:.73rem; color:var(--text-muted); line-height:1.65; padding:18px 0 0; margin:0; max-width:940px; }
.finance-pill { display:inline-block; font-size:.67rem; font-weight:600; padding:4px 9px; border-radius:6px; line-height:1.45; background:var(--fin-surface-soft); color:var(--text-muted); white-space:normal; }
.finance-pill.paid { color:var(--fin-paid); background:var(--fin-paid-bg); }
.finance-pill.overdue,.finance-detail-message.is-error,.finance-feedback .is-error { color:var(--fin-danger); }
.finance-pill.overdue { background:var(--fin-danger-bg); }
.finance-pill.pending,.finance-pill.trial { color:#fcd34d; background:rgba(245,158,11,.1); }
body.theme-light .finance-pill.pending,body.theme-light .finance-pill.trial { color:#92400e; background:#fffbeb; }
.finance-section-intro { display:flex; justify-content:space-between; gap:18px; align-items:center; margin:8px 0 22px; }
.finance-section-intro h3 { font-size:1.05rem; margin:0 0 5px; }
.finance-section-intro p,.finance-section-intro > span { margin:0; color:var(--text-muted); font-size:.78rem; }
.finance-searchbar { display:grid; grid-template-columns:minmax(230px,1fr) minmax(160px,210px) minmax(150px,190px); gap:14px; margin-bottom:22px; }
.finance-history-filters { display:grid; grid-template-columns:minmax(230px,1fr) minmax(165px,220px) minmax(150px,180px) minmax(140px,160px); gap:12px; margin-bottom:20px; }
.finance-app label,.finance-drawer label { display:flex; flex-direction:column; gap:7px; font-size:.74rem; color:var(--text-muted); min-width:0; }
.finance-app input,.finance-app select,.finance-drawer input,.finance-drawer select,.finance-drawer textarea { width:100%; margin:0; min-width:0; padding:11px 12px; font:inherit; font-size:.82rem; border-radius:8px; color:var(--text-main); background:var(--fin-surface); border:1px solid var(--fin-border); }
.finance-app input:focus,.finance-app select:focus,.finance-drawer input:focus,.finance-drawer select:focus,.finance-drawer textarea:focus { outline:2px solid var(--fin-focus); outline-offset:1px; border-color:var(--fin-focus); box-shadow:none; }
.finance-data-list { border:1px solid var(--fin-border); border-radius:12px; overflow:hidden; }
.finance-table { border-collapse:collapse; table-layout:fixed; width:100%; text-align:left; }
.finance-table th { font-size:.67rem; font-weight:600; color:var(--text-muted); padding:13px 14px; background:var(--fin-surface-soft); border-bottom:1px solid var(--fin-border); }
.finance-table td { padding:18px 14px; border-bottom:1px solid var(--fin-border); font-size:.76rem; vertical-align:middle; overflow-wrap:anywhere; }
.finance-table tbody tr:last-child td { border-bottom:0; }
.finance-table tbody tr:hover { background:var(--fin-surface-soft); }
.finance-table td strong { font-size:.77rem; display:block; font-weight:550; }
.finance-table td small { display:block; color:var(--text-muted); font-size:.67rem; margin-top:5px; }
.finance-table .finance-money { font-weight:600; font-variant-numeric:tabular-nums; }
.finance-clients-table th:first-child { width:25%; }
.finance-clients-table th:nth-child(2) { width:16%; }
.finance-clients-table th:nth-child(3) { width:17%; }
.finance-clients-table th:nth-child(4) { width:12%; }
.finance-clients-table th:nth-child(5) { width:15%; }
.finance-clients-table th:last-child { width:15%; }
.finance-client-identity { display:flex; align-items:center; gap:10px; }
.finance-client-identity > div { min-width:0; }
.finance-table-actions { text-align:right; }
.finance-row-button { display:inline-flex; justify-content:center; align-items:center; gap:4px; color:var(--text-main); background:var(--fin-surface); border:1px solid var(--fin-border); border-radius:7px; padding:7px 9px; font-size:.69rem!important; text-decoration:none; cursor:pointer; width:auto; margin:3px 0 3px 5px; min-height:34px!important; }
.finance-row-button:hover { border-color:var(--text-muted); }
.finance-payments-table th:first-child { width:20%; }
.finance-payments-table th:nth-child(2) { width:18%; }
.finance-payments-table th:last-child { width:9%; }
.finance-invoice-code { font-family:ui-monospace,monospace; font-size:.6rem!important; overflow-wrap:anywhere; }
.finance-history-summary { display:flex; flex-wrap:wrap; align-items:center; gap:12px; color:var(--text-muted); background:var(--fin-surface-soft); border:1px solid var(--fin-border); border-radius:8px; padding:12px 14px; font-size:.75rem; margin-bottom:18px; }
.finance-pagination { display:flex; justify-content:space-between; gap:10px; align-items:center; margin-top:18px; font-size:.73rem; color:var(--text-muted); }
.finance-pagination > div { display:flex; align-items:center; gap:12px; }
.finance-pagination button { width:auto; color:var(--text-main); background:var(--fin-surface); border:1px solid var(--fin-border); border-radius:7px; font-size:.72rem; padding:6px 11px; margin:0; cursor:pointer; min-height:36px; }
.finance-pagination button:disabled { opacity:.4; cursor:default; }
.finance-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:35px 24px; min-height:180px; }
.finance-empty > span { background:var(--fin-surface-soft); color:var(--text-muted); border:1px solid var(--fin-border); border-radius:12px; width:42px; height:42px; display:grid; place-items:center; margin-bottom:12px; }
.finance-empty strong { font-size:.87rem; margin-bottom:7px; }
.finance-empty p { margin:0; color:var(--text-muted); font-size:.76rem; max-width:330px; line-height:1.6; }
.finance-muted { color:var(--text-muted); font-size:.7rem; }
.finance-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; clip:rect(0,0,0,0); overflow:hidden; white-space:nowrap; border:0; }
.finance-drawer { position:fixed; inset:0 0 0 auto; width:min(760px,95vw); max-width:none; height:100dvh; max-height:100dvh; margin:0; border:0; border-left:1px solid var(--fin-border); padding:0; color:var(--text-main); background:var(--fin-surface); box-shadow:-12px 0 60px rgba(0,0,0,.2); overflow:hidden; }
.finance-drawer[open] { display:flex; flex-direction:column; }
.finance-drawer::backdrop { background:rgba(15,23,42,.52); backdrop-filter:blur(3px); }
.finance-drawer-top { display:flex; align-items:center; gap:13px; padding:26px; border-bottom:1px solid var(--fin-border); flex-shrink:0; }
.finance-drawer-top > div { flex:1; min-width:0; }
.finance-drawer-top h3 { font-size:1.2rem; letter-spacing:-.02em; line-height:1.3; margin:0 0 6px; overflow-wrap:anywhere; }
.finance-drawer-top #finance-detail-subtitle { font-size:.76rem; color:var(--text-muted); margin:0; }
.finance-drawer-top .finance-avatar { width:46px; height:46px; font-size:.87rem; border-radius:12px; }
.finance-close { color:var(--text-muted); background:var(--fin-surface-soft); border:1px solid var(--fin-border); width:36px; height:36px; min-height:36px!important; margin:0; border-radius:8px; cursor:pointer; font-size:1.5rem!important; flex-shrink:0; }
.finance-detail-tabs { display:flex; gap:25px; padding:0 26px; border-bottom:1px solid var(--fin-border); flex-shrink:0; }
.finance-detail-tabs button { font-size:.8rem; }
.finance-drawer-scroll { padding:0 26px 32px; overflow-y:auto; overscroll-behavior:contain; min-height:0; }
.finance-detail-message { font-size:.78rem; min-height:20px; padding:14px 0; color:var(--fin-paid); margin:0; }
.finance-detail-message:empty { min-height:20px; padding:0; }
.finance-detail-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 15px; margin:0 0 24px; }
.finance-detail-facts > div { min-width:0; }
.finance-detail-facts dt { font-size:.7rem; color:var(--text-muted); margin-bottom:6px; }
.finance-detail-facts dd { font-size:.83rem; font-weight:550; margin:0; overflow-wrap:anywhere; }
.finance-due-box,.finance-usage-box { background:var(--fin-surface-soft); border:1px solid var(--fin-border); border-radius:12px; padding:18px; margin-bottom:20px; }
.finance-due-box .finance-box-heading { margin:0; }
.finance-due-box .finance-box-heading strong { font-size:.86rem; }
.finance-due-box .finance-box-heading h4,.finance-usage-box h4 { margin:0 0 8px; font-size:.85rem; }
.finance-drawer .btn-secondary,.finance-drawer .btn-primary { width:auto; padding:9px 14px; margin:0; font-size:.78rem; }
#finance-due-form { border-top:1px solid var(--fin-border); margin-top:17px; padding-top:17px; }
#finance-due-date { display:block; width:min(100%,270px); margin:8px 0 18px; }
.finance-drawer .finance-checkbox { display:flex; flex-direction:row; gap:10px; align-items:flex-start; color:var(--text-main); font-size:.77rem; }
.finance-drawer .finance-checkbox input { width:18px; height:18px; min-height:18px; flex-shrink:0; margin:2px 0 0; }
.finance-form-note { font-size:.72rem; color:var(--text-muted); line-height:1.65; margin:12px 0 18px; }
.finance-form-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.finance-form-actions > span { font-size:.68rem; color:var(--text-muted); }
.finance-usage-metric { margin-top:20px; }
.finance-usage-metric > div { display:flex; flex-wrap:wrap; gap:6px 12px; justify-content:space-between; font-size:.73rem; }
.finance-usage-metric > div > span { color:var(--text-muted); font-size:.7rem; }
.finance-usage-metric progress { width:100%; height:7px; border:0; border-radius:10px; appearance:none; margin-top:10px; }
.finance-usage-metric progress::-webkit-progress-bar { background:var(--fin-border); border-radius:10px; }
.finance-usage-metric progress::-webkit-progress-value { background:#dc2626; border-radius:10px; }
.finance-usage-metric progress::-moz-progress-bar { background:#dc2626; border-radius:10px; }
.finance-credit-note { border-top:1px solid var(--fin-border); margin-top:22px; padding-top:17px; font-size:.75rem; }
.finance-credit-note p { color:var(--text-muted); margin-top:5px; }
.finance-detail-filter { margin-bottom:16px; max-width:240px; }
.finance-drawer .finance-payments-table { border-top:1px solid var(--fin-border); }
.finance-drawer .finance-payments-table th { font-size:.61rem; padding:10px 7px; }
.finance-drawer .finance-payments-table td { font-size:.7rem; padding:15px 7px; }
.finance-drawer .finance-payments-table th:first-child { width:25%; }
.finance-drawer .finance-payments-table th:nth-child(2) { width:16%; }
.finance-profile-heading h4 { font-size:.96rem; margin:0 0 5px; }
.finance-profile-heading p { color:var(--text-muted); font-size:.75rem; margin:0 0 24px; }
.finance-drawer fieldset { border:0; padding:0; margin:0 0 24px; min-width:0; }
.finance-drawer legend { width:100%; font-size:.74rem; font-weight:650; padding:0 0 12px; margin-bottom:16px; border-bottom:1px solid var(--fin-border); }
.finance-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; }
.finance-field-full { grid-column:1/-1; }
.finance-read-field { display:flex; flex-direction:column; gap:8px; font-size:.74rem; justify-content:flex-start; padding-top:0; }
.finance-read-field span { color:var(--text-muted); }
.finance-read-field strong { font-size:.8rem; margin-top:9px; font-weight:500; }
#finance-profile-contract { margin-top:22px; padding:18px; background:var(--fin-surface-soft); border-radius:10px; }
#finance-profile-contract .finance-detail-facts { margin:0; }
@media (max-width:1100px) {
    body.finance-mode .main-container { padding:20px; }
    #finance-step.finance-app { padding:24px; }
    .finance-kpi { padding:17px; }
    .finance-overview-grid { grid-template-columns:1fr; }
    .finance-history-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .finance-clients-table .finance-avatar { display:none; }
    .finance-table th,.finance-table td { padding-left:10px; padding-right:10px; }
}
@media (max-width:760px) {
    body.finance-mode .main-container { padding:18px 12px; }
    #finance-step.finance-app { padding:20px 16px; border-radius:15px; }
    .finance-topbar { align-items:flex-start; flex-direction:column; gap:16px; margin-bottom:20px; }
    .finance-topbar h2 { font-size:1.6rem; }
    .finance-topbar > div > p:last-child { font-size:.8rem; }
    .finance-top-actions { width:100%; }
    .finance-top-actions button { font-size:.75rem; flex:1; }
    .finance-main-tabs { gap:20px; overflow-x:auto; scrollbar-width:thin; }
    .finance-main-tabs button { white-space:nowrap; font-size:.77rem; flex-shrink:0; padding:12px 0; }
    .finance-main-tabs .finance-tab-long { display:none; }
    .finance-main-tabs .finance-tab-short { display:inline; }
    .finance-feedback { font-size:.68rem; padding:8px 0; flex-wrap:wrap; gap:2px; }
    .finance-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-bottom:20px; }
    .finance-kpi { padding:15px 12px; gap:8px; }
    .finance-kpi > strong { font-size:1.35rem; }
    .finance-kpi > span { font-size:.71rem; }
    .finance-kpi > small { font-size:.63rem; }
    .finance-box { padding:16px; }
    .finance-box-heading { gap:10px; }
    .finance-box-heading h3 { font-size:.85rem; }
    .finance-box-heading p { font-size:.68rem; }
    .finance-attention-row .finance-avatar { display:none; }
    .finance-searchbar { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .finance-searchbar .finance-search-field { grid-column:1/-1; }
    .finance-history-filters .finance-search-field { grid-column:1/-1; }
    .finance-section-intro { align-items:flex-start; flex-direction:column; gap:8px; }
    .finance-data-list { border:0; border-radius:0; overflow:visible; }
    .finance-table,.finance-table tbody,.finance-table tr,.finance-table td { display:block; width:100%; }
    .finance-table thead { display:none; }
    .finance-table tbody { display:grid; gap:14px; }
    .finance-table tbody tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; border:1px solid var(--fin-border); border-radius:12px; padding:16px; background:var(--fin-surface); }
    .finance-table tbody tr:hover { background:var(--fin-surface); }
    .finance-table tbody tr td { padding:0; border:0; font-size:.78rem; min-width:0; }
    .finance-table td::before { content:attr(data-label); display:block; font-size:.66rem; font-weight:400; color:var(--text-muted); margin-bottom:6px; }
    .finance-table td:first-child { grid-column:1/-1; padding-bottom:13px; border-bottom:1px solid var(--fin-border); }
    .finance-clients-table td:first-child::before { display:none; }
    .finance-clients-table .finance-avatar { display:inline-flex; }
    .finance-table td.finance-table-actions { grid-column:1/-1; text-align:left; display:flex; gap:10px; padding-top:10px; border-top:1px solid var(--fin-border); }
    .finance-table td.finance-table-actions::before { display:none; }
    .finance-table-actions .finance-row-button { flex:1; min-height:40px!important; margin:0; font-size:.75rem!important; }
    .finance-pagination { flex-direction:column; gap:12px; }
    .finance-pagination > div { width:100%; justify-content:space-between; }
    .finance-drawer { width:100%; border:0; }
    .finance-drawer-top { padding:18px; }
    .finance-drawer-top h3 { font-size:1.05rem; }
    .finance-detail-tabs { gap:24px; padding:0 18px; }
    .finance-detail-tabs button { font-size:.76rem; }
    .finance-drawer-scroll { padding:0 18px 30px; }
    .finance-drawer .finance-payments-table { border-top:0; }
    .finance-drawer .finance-payments-table tbody tr td { padding:0; font-size:.78rem; }
    .finance-drawer .finance-payments-table td:first-child { padding-bottom:12px; }
    .finance-drawer .finance-box-heading { flex-wrap:wrap; }
}
@media (max-width:380px) {
    .finance-main-tabs { gap:16px; }
    .finance-main-tabs button { font-size:.72rem; }
    .finance-main-tabs button span { display:none; }
    .finance-form-grid { grid-template-columns:1fr; }
    .finance-detail-tabs { gap:18px; }
    .finance-detail-tabs button { font-size:.72rem; }
    .finance-kpi { padding:14px 10px; }
    .finance-kpi > strong { font-size:1rem; white-space:nowrap; overflow-wrap:normal; }
}
@media (prefers-reduced-motion:reduce) { .finance-app *,.finance-drawer * { scroll-behavior:auto!important; transition:none!important; } }
