@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Playfair+Display:wght@500;600;700&display=swap');
:root{--forest:#1f4d3f;--forest-deep:#123a32;--petrol:#0f3d4e;--champagne:#d9c4a7;--gray:#e8ecea;--ivory:#fbfaf8;--ink:#213b37;--soft:#667b70;font-family:'DM Sans',Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:#f5f7f6}
body{background:#f5f7f6}
h1,h2,h3{letter-spacing:-.4px}h1{color:#183e36;font-weight:750}h2{color:#23483e}
#loginView{background:linear-gradient(135deg,#153c33 0%,#1f4d3f 58%,#0f3d4e 100%);padding:clamp(18px,4vw,56px)}
.brandAccess{width:min(1110px,100%);min-height:620px;display:grid;grid-template-columns:1fr minmax(370px,440px);overflow:hidden;background:var(--ivory);box-shadow:0 35px 100px #081c1866;border-radius:27px}
.accessIntro{background:linear-gradient(142deg,#173e34 0%,#123e37 58%,#0f3440 100%);color:white;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(28px,5vw,70px);position:relative;isolation:isolate}
.accessIntro:before{content:"";position:absolute;width:480px;height:480px;right:-220px;bottom:-160px;border:1px solid #d9c4a75b;border-radius:50%;z-index:-1}
.accessIntro:after{content:"";position:absolute;width:365px;height:365px;right:-140px;bottom:-112px;border:1px solid #d9c4a759;border-radius:50%;z-index:-1}
.introBrand{display:flex;align-items:center;gap:14px;color:#fff}.introBrand img{width:65px;height:65px;border-radius:16px}
.introBrand strong{display:block;font-family:'Playfair Display',Georgia,serif;font-size:24px;font-weight:600}.introBrand span{font-size:10px;letter-spacing:4.2px;color:var(--champagne)}
.accessHeadline{max-width:470px;margin-top:80px}.accessHeadline .labelTop{font-size:11px;letter-spacing:3.5px;color:#dfc7a4;font-weight:700}
.accessHeadline h1{font-family:'Playfair Display',Georgia,serif;color:#fff;font-size:clamp(37px,4vw,58px);line-height:1.16;font-weight:500;letter-spacing:-1.2px;margin:18px 0 20px}
.accessHeadline h1 em{font-style:normal;color:var(--champagne)}
.accessHeadline p{font-size:15px;color:#c6dcd3;line-height:1.9;max-width:400px}
.accessFoot{display:flex;align-items:center;gap:12px;font-size:11px;color:#b4cec0;letter-spacing:.3px}.accessFoot:before{content:"";width:42px;height:1px;background:#d9c4a7}
.brandAccess .loginCard{width:auto;border-radius:0;box-shadow:none;background:#fbfaf8;padding:52px clamp(25px,4vw,50px);display:flex;flex-direction:column;justify-content:center}
.loginCard .brandWordmark{width:100%;max-height:116px;object-fit:contain;margin-bottom:28px}
.loginCard .introLogin{font-family:'Playfair Display',Georgia,serif;color:#174337;font-size:29px;font-weight:600;margin-bottom:9px}
.loginCard .loginSub{font-size:13px;line-height:1.6;color:#7a8b83;margin-bottom:30px}
.loginCard h2{display:none}.loginCard label{font-size:12px;color:#3f5a4e;margin-top:11px}
.loginCard input{border-radius:10px;height:48px;background:#fff;border:1px solid #d5dfd8}
.loginCard input:focus{box-shadow:0 0 0 3px #d6e8de;outline:none}
.loginCard button{background:#1f4d3f;height:51px;margin-top:20px;border-radius:11px;font-weight:750;box-shadow:0 8px 20px #1f4d3f1b}
.loginCard button:hover{background:#143e32}
#loginMessage{margin-top:15px}
.sidebar{background:linear-gradient(175deg,#193e36 0%,#102e34 100%);padding-top:26px;border-right:1px solid #163f33}
.sidebarBrand{display:flex;align-items:center;gap:12px;margin:0 5px 29px;padding:0 3px 21px;border-bottom:1px solid #ffffff27;min-height:67px}
.sidebarBrand img{width:47px;height:47px;border-radius:11px;box-shadow:0 5px 12px #020e0b35}
.sidebarBrand strong{display:block;color:#fff;font-family:'Playfair Display',Georgia,serif;font-size:20px;line-height:1.1;font-weight:600;white-space:nowrap}
.sidebarBrand small{display:block;font-size:9px;letter-spacing:3.7px;color:#d9c4a7;margin-top:8px}
.sidebar .navButton{font-family:'DM Sans',Arial,sans-serif;font-size:13px;border-radius:11px;padding:13px 12px;font-weight:600}
.sidebar .navButton.active{background:#d9c4a720;color:#f7e9d3;border-left:3px solid #d9c4a7;padding-left:9px}
.sidebar .navButton:hover{background:#ffffff18}
#adminToggle{border-top:1px solid #ffffff20}
.topbar{background:#fff;border-bottom:1px solid #e6ebe7;min-height:78px}
.topbar #pageTitle{font-family:'Playfair Display',Georgia,serif;font-size:20px;color:#1d4337;font-weight:600}
.topbar .small{font-size:12px;color:#748b7c}
.pageBrand{display:flex;align-items:center;gap:11px}.pageBrand img{height:34px;width:34px;border-radius:8px;display:none}
.main{max-width:1420px}
.workflowTitle .eyebrow,.eyebrow{color:#a48866;letter-spacing:2px;font-size:11px}
.workflowTitle h1,#page-reports h1{font-family:'Playfair Display',Georgia,serif;font-size:clamp(29px,2.8vw,37px);font-weight:600;letter-spacing:-1px}
.workflowTitle .muted{color:#6c8278}
#stepBar{background:#eef2ed;border:1px solid #e4ebe4}
#stepBar button{font-weight:650;color:#5f7569}
#stepBar button.chosen{color:#1e4a3d;background:#fff;border-bottom:2px solid #d9c4a7}
button{font-family:'DM Sans',Inter,Arial,sans-serif;letter-spacing:0;background:#1f4d3f;border-radius:10px}
button:hover:not(:disabled){background:#153f33}
button.secondary{background:#edf3ee;color:#1f4d3f}
button.secondary:hover:not(:disabled){background:#dceae0}
button.outline{border-color:#d9e2db;color:#24483d}
button.outline:hover:not(:disabled){background:#f0f4f0}
button.danger{background:#fff2ed;color:#a14937}
button.danger:hover:not(:disabled){background:#ffe6dc}
#openImport,#reportFilter,#reportRefresh{box-shadow:0 7px 18px #1f4d3f21}
#openManual{border:1px solid #d6e6da}
.panel,.metric,.filterPanel{background:#fff;border-color:#e6ece8;border-radius:15px;box-shadow:0 3px 14px #14382a07}
.metric:before{content:"";height:2px;width:33px;background:#d9c4a7;border-radius:20px;margin-bottom:2px}
.metric strong{color:#203f35}
.metric.good strong,.metric.success strong{color:#197551}
#summaryStrip .metric{transition:transform .2s,box-shadow .2s}
#summaryStrip .metric:hover{transform:translateY(-2px);box-shadow:0 12px 22px #1f4d3f0b}
input,select,textarea{border-color:#dce5de}
input:focus,select:focus,textarea:focus{outline-color:#9ebdab}
#billBody tr:hover td,.reportTable tr:hover td{background:#fafcf9}
th{background:#f5f8f6;color:#667d70;letter-spacing:.03em}
.pill{background:#edf3ee;color:#285b45}
.status.paid{background:#e5f4e9;color:#25734d}
.status.partial{background:#fff3e0;color:#956e2f}
.status.incomplete{background:#fff0e7;color:#ad5942}
.status.waiting{background:#eef2f0;color:#6d7c74}
#billBody .deleteInline{background:#fff8f4;color:#b05a48;border-color:#f5e1d9}
#billBody .deleteInline:hover{background:#feeae0}
#modal{background:#0e2824af}
.dialog{border:1px solid #e9ebe5;border-radius:20px;box-shadow:0 30px 100px #04271d38}
.dialog .sectionHeader h2{font-family:'Playfair Display',Georgia,serif;font-size:25px;font-weight:600}
.receiptSummary>div{background:#f6f9f6;border-color:#e7eee8}
.receiptSummary strong{color:#1e4d3f}
.formActions button[type="submit"],.formActions button:not(.secondary):not(.outline):not(.danger){padding-inline:20px}
.advancedFields{background:#fafcfb;border-color:#e4ece5}
#page-reports .reportMetricGrid .metric{border-left:3px solid #d9c4a7}
@media(max-width:900px){.brandAccess{grid-template-columns:1fr minmax(340px,390px)}.accessIntro{padding:34px}.accessHeadline h1{font-size:37px}}
@media(max-width:740px){.brandAccess{grid-template-columns:1fr;max-width:460px;min-height:initial}.accessIntro{min-height:170px;padding:21px 25px}.accessHeadline,.accessFoot{display:none}.brandAccess .loginCard{padding:27px 26px 35px}.loginCard .brandWordmark{max-height:95px;margin-bottom:15px}.sidebar .sidebarBrand{display:none}.topbar .pageBrand img{display:block}.topbar #pageTitle{font-size:17px}.topbar{min-height:67px}.metric{border-radius:13px}}
@media(max-width:420px){.brandAccess .loginCard{padding:20px}.topbar .pageBrand img{display:none}}

/* Logo oficial movida para o lado institucional do login. */
#loginView .introBrandPlaque{
  display:flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  width:min(100%,430px);
  height:126px;
  background:#ffffff;
  border-radius:15px;
  padding:16px 19px;
  box-shadow:0 14px 35px rgba(1,24,20,.17);
}
#loginView .introBrandPlaque img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
#loginView .loginCard .introLogin{
  margin-top:0;
}
@media(max-width:740px){
  #loginView .introBrandPlaque{
    width:min(100%,340px);
    height:92px;
    border-radius:12px;
    padding:10px 13px;
  }
}

/* Ajuste aprovado: logomarca completa sobre branco no menu lateral. */
#appView .sidebarBrand{
  background:#ffffff;
  border:0;
  border-radius:12px;
  margin:0 2px 25px;
  padding:11px 12px;
  min-height:93px;
  width:calc(100% - 4px);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 22px rgba(4,27,19,.16);
}
#appView .sidebarBrand img{
  display:block;
  width:100%;
  height:auto;
  max-height:73px;
  object-fit:contain;
  border:0;
  border-radius:0;
  box-shadow:none;
}
/* Remover os arcos que atravessavam o painel e o formulário de login. */
#loginView .accessIntro::before,
#loginView .accessIntro::after{
  content:none !important;
  display:none !important;
}
@media(max-width:740px){
  #appView .sidebarBrand{display:none}
}
