:root{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:#e6eefb;background:#0b1628;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}.hidden{display:none!important}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px max(22px,calc((100vw - 1250px)/2));background:#12233b;border-bottom:1px solid #294563}.brand{font-size:22px;font-weight:800;letter-spacing:-.6px;white-space:nowrap}.brand span{color:#67adfa}.brand em{font-style:normal;font-weight:700;font-size:10px;letter-spacing:.12em;color:#b2caf0;background:#254265;padding:6px 8px;border-radius:7px;margin-left:10px;vertical-align:middle}.status{color:#92a9ca;font-size:12px}main{max-width:1250px;padding:22px 20px 55px;margin:auto}.login-card{width:min(100%,460px);margin:58px auto 85px;padding:34px;background:#162841;border:1px solid #334a68;border-radius:18px;box-shadow:0 18px 60px #030a16a1;text-align:left}.lock{font-size:32px}.login-card h1{font-size:27px;margin:16px 0 7px}.login-card p{font-size:14px;line-height:1.55;color:#bbc9db}.login-card form{display:grid;gap:17px;margin-top:25px}label{font-size:13px;font-weight:600;color:#cbd7e9}label input,label select{display:block;width:100%;margin-top:8px;padding:11px 12px;border-radius:9px;border:1px solid #455c7a;background:#0d1c30;color:#f2f7ff;outline:none}label input:focus,label select:focus{border-color:#7fb8ff;box-shadow:0 0 0 2px #3877b13d}.login-card button{width:100%;background:#3887e0;color:#fff;border:0;border-radius:9px;padding:13px;font-weight:700}.hint{display:block;margin-top:23px;font-size:12px;color:#839bb7}.alert,.notice{color:#ffe3de;background:#652f37;padding:12px;border-radius:8px;font-size:13px}.welcome{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:19px}.welcome h1{font-size:28px;margin:0}.welcome p{color:#9eafc5;font-size:14px;margin:5px 0}.outlined{background:transparent;border:1px solid #4b6486;color:#d8e8ff;border-radius:8px;padding:9px 15px;font-weight:600}.filters{display:flex;align-items:end;gap:18px;margin:18px 0;padding:17px 20px;background:#142740;border:1px solid #2d496a;border-radius:12px}.filters label{min-width:175px}.filters select{margin-top:5px}.filters span{margin:0 0 11px auto;color:#9db1ca;font-size:12px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.kpi{background:#162b48;border:1px solid #2f4a6a;border-radius:13px;padding:20px}.kpi-title{font-size:13px;color:#a6bfdb;margin-bottom:16px}.kpi strong{font-size:clamp(19px,2vw,28px);white-space:nowrap;letter-spacing:-.5px}.panels{display:grid;grid-template-columns:1.3fr 1fr;gap:16px;margin:19px 0}.card{background:#152740;border:1px solid #2d4868;border-radius:13px;padding:19px;min-width:0}.heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.heading h2,.record-title h2{font-size:17px;margin:0}.heading span{font-size:11px;color:#96afca;text-align:right}.legend{font-size:12px;color:#a9bbd0;display:flex;align-items:center;gap:9px;margin:13px 0}.legend-income,.legend-expense{width:10px;height:10px;border-radius:2px;background:#3bc698}.legend-expense{background:#ec7f85}.chart{height:220px;display:flex;align-items:stretch;gap:7px;padding-top:10px}.chart-group{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px}.chart-bars{flex:1;width:100%;display:flex;align-items:end;justify-content:center;gap:3px;border-bottom:1px solid #46617a}.chart-bar{width:min(39%,19px);min-height:1px;background:#3bc698;border-radius:4px 4px 0 0}.chart-bar.des{background:#ec7f85}.chart-group small{color:#9eafc6;font-size:10px}.categories{margin-top:17px}.category-row{padding:11px 0;border-bottom:1px solid #2a405d}.category-name{font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:10px}.category-name span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-name b{font-size:12px}.progress{background:#29425f;height:7px;border-radius:10px;overflow:hidden;margin-top:8px}.progress >span{display:block;background:#73a6e9;height:100%;border-radius:10px}.record-title{display:flex;align-items:center;justify-content:space-between;gap:15px}.record-title p{font-size:13px;color:#a4b8d2;margin:6px 0}.records nav{display:flex;flex-wrap:wrap;gap:7px;margin:20px 0}.records nav button{background:#223955;border:1px solid #37516c;color:#cbd8e7;padding:9px 13px;border-radius:8px;font-size:12px}.records nav button.active{background:#397fde;border-color:#397fde;color:#fff}.help{font-size:12px;color:#a2b8d1;line-height:1.55}.table-area{max-height:430px;overflow:auto;border-radius:8px}table{border-collapse:collapse;width:100%;min-width:650px;text-align:left;font-size:12px}thead{position:sticky;top:0;background:#253c5a}th,td{padding:12px 13px;border-bottom:1px solid #2a415f;white-space:nowrap}td{color:#dbe7f7}tr:hover{background:#1d344f}.pager{display:flex;justify-content:flex-end;align-items:center;gap:12px;color:#9bb3d1;font-size:12px;margin-top:12px}.pager button{color:#dbe9fa;background:#223955;border:1px solid #385675;padding:8px 12px;border-radius:7px}.muted{font-size:13px;color:#99b0cc}footer{font-size:11px;text-align:center;color:#7990ae;margin-top:32px}@media(max-width:950px){.kpis{grid-template-columns:repeat(2,1fr)}.panels{grid-template-columns:1fr}}@media(max-width:610px){.topbar{align-items:flex-start;flex-direction:column;padding:17px}.status{margin-left:3px}.kpis{grid-template-columns:1fr 1fr;gap:9px}.kpi{padding:13px}.kpi strong{font-size:19px}.filters{flex-wrap:wrap;gap:10px}.filters label{flex:1;min-width:125px}.filters span{flex:0 0 100%;margin:2px}.welcome h1{font-size:22px}.card{padding:14px}.login-card{margin:25px auto;padding:24px}}

/* FinanceiroPro Fase 7: módulo administrativo */
.view-nav{display:flex;gap:8px;margin-bottom:22px;padding:6px;background:#142740;border:1px solid #2d496a;border-radius:10px;width:max-content;max-width:100%}
.view-nav button{padding:10px 16px;border:0;background:none;color:#b3cee8;border-radius:8px;font-weight:650;font-size:13px}
.view-nav button.view-active{color:#fff;background:#387fde}
.admin-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:5px 0 18px}
.admin-header h2{margin:0;font-size:22px}.admin-header p{color:#a8bbd1;font-size:13px;margin:5px 0}
.admin-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.admin-kpis .kpi{padding:16px}.admin-kpis strong{font-size:clamp(17px,1.9vw,25px)}
.admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}.admin-columns h3,.admin-table h3{margin:0;font-size:17px}
.admin-form{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:19px}.admin-form label{min-width:0}.admin-form label:first-child,.admin-form label:nth-child(2){grid-column:1/-1}
.admin-form .primary-btn{grid-column:1/-1}
.primary-btn{background:#387fde;color:white;padding:11px 13px;border:0;border-radius:9px;font-weight:700}
.admin-users{margin-top:14px}.admin-pending-user{border:1px solid #365579;background:#182e4c;border-radius:10px;padding:15px;margin-bottom:12px}
.admin-pending-user b{font-size:15px}.admin-pending-user small{color:#a0b4cf;display:block;margin-top:7px}
.admin-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.admin-actions button{font-size:12px;border-radius:7px;padding:7px 9px;color:#fff;background:#34629d;border:1px solid #4576b8}.admin-actions .danger{background:#6b323e;border-color:#9a5062}.admin-actions .light{background:#274361}
.admin-table{min-width:840px}.admin-table td{white-space:normal}.admin-table tr.admin-row{background:#142b43}
.admin-search input{min-width:180px;margin-top:5px}.admin-table .admin-badge{white-space:nowrap;border-radius:22px;font-size:11px;padding:5px 8px}
.admin-badge.ativo{color:#9aebc3;background:#214736}.admin-badge.pendente{color:#f8d19a;background:#5b432d}.admin-badge.inativo{color:#ffbec0;background:#5f2b33}
.success-note{color:#c2f5d9;background:#183e34;padding:12px;border-radius:9px;font-size:13px}.admin-monetary{color:#d1e4fc}
@media(max-width:950px){.admin-kpis{grid-template-columns:repeat(2,1fr)}.admin-columns{grid-template-columns:1fr}}
@media(max-width:610px){.admin-header{align-items:start;flex-direction:column}.admin-kpis{gap:8px}.admin-search input{min-width:0}}


/* Fase 9 - identidade visual oficial enviada pelo usuário. O original está em assets/. */
.brand-logo {display:flex;align-items:center;gap:20px;min-width:0}
.brand-logo img {width:174px;height:auto;max-width:100%;object-fit:contain;display:block}
.brand-logo em {font-style:normal;letter-spacing:.12em;font-size:10px;font-weight:750;padding:6px 9px;
  border-radius:7px;background:#264267;color:#c8dcf8;white-space:nowrap}
.login-logo{display:flex;justify-content:center;align-items:center;min-height:160px;margin:-5px 0 -8px}
.login-logo img{width:min(245px,90%);height:auto;max-height:170px;object-fit:contain}
.login-card h1{margin-top:5px}
@media(max-width:640px){.brand-logo{gap:12px}.brand-logo img{width:140px}.brand-logo em{font-size:9px}
.login-logo{min-height:130px}.login-logo img{max-height:142px;width:225px}}

/* Logo original RGBA transparente: sem cartão branco, contorno ou padding. */
.brand-logo img,.login-logo img {background:transparent;padding:0;border:0;border-radius:0;box-shadow:none;filter:drop-shadow(0 1px 1px rgba(209,230,252,.54));}
/* Faturas de cartão, consulta apenas. */
.invoice-head{display:flex;justify-content:space-between;align-items:start;gap:16px;margin-bottom:16px}
.invoice-head h2{margin:0;font-size:23px}.invoice-head p{color:#a1bad8;margin:7px 0 0;font-size:13px}
.invoice-filter{display:flex;flex-wrap:wrap;gap:16px;padding:18px;margin-bottom:18px;background:#142740;border:1px solid #2d496a;border-radius:12px}
.invoice-filter label{flex:1;min-width:140px}.invoice-filter label:first-child{min-width:220px}
.invoice-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.invoice-kpis strong{display:block;font-size:clamp(17px,2vw,26px);margin-top:8px}
.invoice-details{line-height:1.6;color:#b4c8e0;font-size:13px}
.invoice-empty{border:1px dashed #47617a;padding:22px;color:#b5cbe8;border-radius:10px}
.invoice-table-wrap{max-width:100%;overflow:auto}
.invoice-table-wrap table{min-width:580px}
.invoice-pill{display:inline-block;color:#90dfb6;background:#184535;border-radius:20px;padding:5px 10px;font-size:12px}
.invoice-pill.due{color:#f5bec1;background:#4b2732}
@media(max-width:700px){.invoice-kpis{grid-template-columns:1fr}.invoice-head{flex-direction:column}}


/* Fase 11: acompanhamento financeiro de recebimentos e vencimentos. */
.view-nav{width:100%;flex-wrap:wrap;align-items:center}
.view-nav button{flex:0 1 auto}
.toolbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#receivables-content .kpis,#due-content .kpis{margin:16px 0 22px}
#receivables-content .heading,#due-content .heading{margin-bottom:14px}
#due-content .panels{grid-template-columns:1fr 1fr}
#due-content h3{margin:0 0 14px}
#receivables-list table{min-width:600px}
#due-content table{min-width:460px}
.fp-status{font-size:12px;border-radius:18px;padding:4px 9px;display:inline-block;background:#2c4563;color:#daeeff;white-space:nowrap}
.fp-status.paid{color:#9fe9c6;background:#174736}
.fp-status.late{color:#ffc1c2;background:#5d2c38}
.fp-note{font-size:12px;color:#99afcd;margin:12px 0}
@media(max-width:860px){#due-content .panels{grid-template-columns:1fr}.view-nav button{flex-grow:1}}
@media(max-width:540px){.toolbar-actions button{flex:1}.view-nav{gap:5px}.view-nav button{font-size:12px;padding:9px 10px}}

/* Fase 12 - preparação de lançamentos sem mutações em dados reais. */
.launch-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;align-items:end;margin:15px 0}
.launch-form label{min-width:0;font-size:13px;color:#c7daf3}
.launch-form input,.launch-form select{width:100%;margin-top:7px;min-height:43px}
.launch-form .launch-full{grid-column:1/-1}
.launch-form button.launch-full{justify-self:start;min-width:260px}
.launch-preview-badge{display:inline-flex;white-space:nowrap;background:#365477;color:#e2efff;border-radius:25px;padding:9px 14px;font-size:13px;font-weight:700}
.launch-notice{background:#1c3854;border:1px solid #5279a0;color:#d2e7fc;padding:15px 17px;border-radius:11px;font-size:13px;line-height:1.6;margin:14px 0}
.launch-preview-results{margin:20px 0}.launch-preview-results h3{margin:0;font-size:18px}
.launch-preview-results strong{color:#7cc9a7}.launch-preview-results table{min-width:680px}
.launch-note{color:#ffdeab;background:#3e362e;border-radius:8px;padding:12px;font-size:12px;margin:20px 0 0}
@media(max-width:940px){.launch-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.launch-form{grid-template-columns:1fr}.launch-form button.launch-full{width:100%;min-width:0}.launch-preview-badge{align-self:start}}

/* Fase 13 - gerenciamento em prévia, sem qualquer escrita financeira. */
.manage-form{display:grid;grid-template-columns:minmax(180px,280px) auto;gap:16px;align-items:end;margin:20px 0}
.manage-form label{display:flex;flex-direction:column;gap:7px;color:#c3dbf6;font-size:13px}
.manage-form label input,.manage-form select{width:100%;min-height:43px}
.manage-form>button{justify-self:start;min-height:44px}
.manage-current{grid-column:1/-1;padding:17px 20px;border:1px solid #355574;border-radius:9px;min-height:58px;background:#172f49;line-height:1.6;font-size:13px}
.manage-form>form{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:13px;align-items:end}
.manage-form>form label{flex:1;min-width:220px}
.manage-form>form button{min-height:43px}
.manage-result h3{margin:0 0 14px}.manage-result table{min-width:520px}.manage-result{margin-bottom:17px}
.manage-inline-action{background:#2a5c89;color:#f2f7ff;border:1px solid #4d81ad;border-radius:7px;padding:6px 10px;font-size:11px}
.manage-inline-action:hover{background:#347bb3}
@media(max-width:640px){.manage-form{grid-template-columns:1fr}.manage-form>form{display:grid;grid-template-columns:1fr}.manage-form>button,.manage-form>form button{width:100%}}


/* Fase 14 - testes de escrita em tabela separada */
.fp-lab-chip{font-size:12px;font-weight:800;letter-spacing:.05em;color:#082f24;background:#97e8cb;padding:10px 14px;border-radius:25px;white-space:nowrap}
.lab-warning{line-height:1.65;font-size:13px;border-radius:11px;border:1px solid #9e6b38;background:#3f3029;color:#ffe9c5;padding:16px 20px;margin:12px 0 20px}
.lab-warning code{color:#d8f5ff;word-break:break-all}
.lab-panels{grid-template-columns:1fr 1fr}.lab-form{display:grid;gap:15px;margin:16px 0}.lab-form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.lab-form .primary-btn{justify-self:start}.lab-actions{display:flex;flex-wrap:wrap;gap:6px}.lab-actions button{font-size:11px;padding:6px 8px;background:#2b5d89;color:#fff;border:1px solid #487ca8;border-radius:7px}.lab-actions button.lab-delete{background:#793e44;border-color:#b45f70}.lab-panels .muted{line-height:1.65}.lab-table{min-width:750px}.lab-table td{white-space:normal}.lab-footer-note{font-size:12px;color:#a3bad4;margin:15px 0 0}
@media(max-width:850px){.lab-panels{grid-template-columns:1fr}}@media(max-width:480px){.lab-form-row{grid-template-columns:1fr}.fp-lab-chip{white-space:normal;text-align:center}}

/* Centro de backup: visível somente na área administrativa */
.backup-card{margin-top:18px;padding:24px}
.backup-card h3{margin-top:0}
.backup-card h4{margin-bottom:8px}
.backup-form{display:grid;grid-template-columns:repeat(2,minmax(230px,1fr));gap:12px 18px;align-items:end;margin:16px 0}
.backup-form label{display:flex;flex-direction:column;gap:7px;font-size:13px;color:#d4e6fa}
.backup-form input{padding:11px;border:1px solid #3c5d83;border-radius:10px;background:#11243b;color:#f3f8ff;min-width:0}
.backup-form button{min-height:42px;grid-column:1/-1;justify-self:start}
.backup-verify{border-top:1px solid #36506f;margin-top:18px;padding-top:10px}
.backup-card .help{line-height:1.55}
@media(max-width:650px){.backup-form{grid-template-columns:1fr}.backup-form button{width:100%}}
