*{box-sizing:border-box}
body{margin:0;background:var(--fundo);background-attachment:fixed;min-height:100vh;color:var(--text);font:15px/1.5 var(--font)}
button,input,select,textarea{font:inherit}
a{color:inherit;text-decoration:none}
.nav{display:grid;gap:4px;margin-top:36px}
.eyebrow{margin:0;color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.12em}
.intro{margin:0 0 24px;color:var(--muted);max-width:760px}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:24px}
.kpi,.card,.table-card,.form-card,.chart-card,.audit-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.kpi{padding:16px;min-height:120px;border-top:3px solid var(--accent)}
.kpi small{display:block;text-transform:uppercase;letter-spacing:.07em;font-size:10px;color:var(--muted);font-weight:700}
.kpi strong{display:block;font:700 27px/1.2 var(--font-title);letter-spacing:-.03em;margin:10px 0 5px}
.kpi span{font-size:12px;color:var(--accent-soft)}
.page-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:20px}
.card{padding:20px}
.card h2,.section-head h2{font:700 16px var(--font-title);margin:0 0 8px}
.card p{color:var(--muted);margin:0}
.filter-bar,.form-grid{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
.form-card{padding:18px;margin-bottom:18px}
.field{display:grid;gap:5px;min-width:145px;flex:0 1 210px}
.field.grow{flex:1 1 260px}
.field label,.field>span{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}
input{height:40px;width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:0 12px;color:var(--text);outline:none}
input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}
.scope{height:40px;border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;overflow:hidden}
.scope a{padding:9px 12px;font-size:13px;color:var(--muted)}
.scope a.is-current{background:var(--accent);color:var(--accent-ink);font-weight:700}
.btn{height:40px;border:1px solid transparent;border-radius:var(--radius-sm);padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-weight:600;font-size:13px}
.btn-primary{background:var(--accent);color:var(--accent-ink)}
.btn-primary:hover{background:var(--accent-hover)}
.btn-secondary{background:transparent;border-color:var(--border);color:var(--text)}
.form-action{margin-left:auto}
.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 18px 12px}
.section-head h2{margin:0}
.table-card{overflow:visible}
.table-scroll{overflow:auto;border-radius:0 0 var(--radius) var(--radius)}
table{border-collapse:collapse;width:100%;min-width:650px}
th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:12px 18px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-weight:700}
td{padding:14px 18px;border-bottom:1px solid rgba(58,58,58,.75);font-size:13px}
tbody tr:hover{background:var(--surface)}
td.numeric,th.numeric{text-align:right;font-variant-numeric:tabular-nums}
.row-link{color:var(--text)}
.row-link:hover{color:var(--accent-soft)}
.table-footer{padding:13px 18px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:var(--muted);font-size:12px}
.pagination{justify-self:center;display:flex;gap:6px;align-items:center}
.pagination a{padding:4px 7px;border:1px solid var(--border);border-radius:5px}
.chart-card,.audit-card{padding:18px;margin-top:20px}
.chart{display:grid;gap:11px;margin-top:15px}
.chart-row{display:grid;grid-template-columns:155px 1fr auto;gap:10px;align-items:center;font-size:12px}
.chart-track{height:10px;border-radius:999px;background:var(--surface)}
.chart-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-hover));width:0}
.audit-list{display:grid;gap:0;margin-top:8px}
.audit-row{display:grid;grid-template-columns:110px 1fr 1fr 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);font-size:13px}
.muted{color:var(--muted)}
.notice{padding:11px 12px;border-radius:var(--radius-sm);font-size:13px;margin-bottom:14px}
.notice-error{color:var(--danger);background:color-mix(in srgb,var(--danger) 13%,transparent);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent)}
.tutorial{font-size:13px;color:var(--muted);padding:12px 0 0}
.stack-form{display:grid;gap:15px}
.stack-form label{display:grid;gap:6px;font-size:13px;font-weight:600}
.stack-form .btn{margin-top:6px}

@media(max-width:800px){
  .page-grid{grid-template-columns:1fr}
  .form-action{margin-left:0}
  .field{flex:1 1 100%}
  .scope{width:100%}
  .table-footer{grid-template-columns:1fr;gap:8px}
  .pagination{justify-self:start}
  .chart-row{grid-template-columns:95px 1fr auto}
  .audit-row{grid-template-columns:1fr;gap:3px}
  .audit-row span:first-child{color:var(--accent-soft)}
}

.scope-choice{display:flex;align-items:center;gap:6px;padding:0 12px;font-size:13px;color:var(--muted);cursor:pointer}
.scope-choice:has(input:checked){background:var(--accent);color:var(--accent-ink);font-weight:700}
.scope-choice input{width:auto;height:auto;accent-color:var(--accent-ink)}
.notice-success{color:var(--success);background:color-mix(in srgb,var(--success) 13%,transparent);border:1px solid color-mix(in srgb,var(--success) 35%,transparent)}
.notice-info{color:var(--accent-soft);background:color-mix(in srgb,var(--accent) 11%,transparent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.table-tools{position:relative}
.table-tools summary{list-style:none}
.table-tools summary::-webkit-details-marker{display:none}
.tools-menu{position:absolute;right:0;top:calc(100% + 6px);width:205px;padding:6px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);z-index:3}
.tools-menu a{display:flex;align-items:center;gap:8px;padding:8px 9px;border-radius:6px;font-size:13px}
.tools-menu a:hover{background:var(--bg-elev);color:var(--accent-soft)}
.table-search{display:flex;gap:8px;padding:0 18px 14px}
.table-search input{max-width:350px}
.table-search .btn{flex:0 0 auto}
.dropzone{display:grid;place-items:center;gap:5px;min-height:170px;padding:20px;text-align:center;border:2px dashed var(--border);border-radius:var(--radius);color:var(--muted);cursor:pointer}
.dropzone i{font-size:34px;color:var(--accent)}
.dropzone strong{color:var(--text)}
.dropzone.is-over{border-style:solid;border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
.dropzone.is-loaded{border-style:solid;border-color:var(--success);background:color-mix(in srgb,var(--success) 10%,transparent)}
.dropzone.is-loaded i{color:var(--success)}
.file-input{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.upload-form{display:grid;gap:14px}
.upload-action{display:flex;align-items:center;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.upload-feedback{margin-right:auto;color:var(--muted);font-size:13px}

/* Ajustes de alinhamento e acessibilidade do padrão do evento. */
.field label,.field>span{font-size:13px;font-weight:600;text-transform:none;letter-spacing:normal}
.numeric{white-space:nowrap}
.audit-row{overflow-wrap:anywhere}
.form-action{margin-left:auto}
.btn:disabled{opacity:.45;cursor:not-allowed}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.scope-choice input{position:absolute;opacity:0;width:1px;height:1px}
.scope-choice:focus-within{outline:2px solid var(--accent-soft);outline-offset:-3px}
.chart-track:has(.chart-fill[data-chart-value="0"]){background:var(--surface)}
.chart-fill[data-chart-value="0"]{visibility:hidden}
.kpi strong{font-size:clamp(20px,2vw,27px)}
.page-grid{align-items:stretch}
.card{height:100%}

.workflow{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0 24px}
.workflow>a,.workflow>span{padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px}
.workflow .is-active{color:var(--accent-soft);border-color:var(--accent)}
.balance-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:stretch}
.statement{min-width:0}
.statement table{font-variant-numeric:tabular-nums}
.statement th:first-child,.statement td:first-child{min-width:220px;position:sticky;left:0;background:var(--bg-elev);z-index:1}
.statement th:first-child{z-index:2}
.row-subtotal td,.row-subtotal th{background:var(--surface-2)!important;font-weight:700;color:var(--accent-soft);border-top:1px solid var(--border)}
.row-total td,.row-total{background:var(--surface-2)!important;font-weight:800;color:var(--accent-soft);border-top:2px solid var(--accent)}
.emphasis{font-weight:700}
.date-value{font-size:22px!important}
.upload-form{gap:20px}
.form-grid select,.field select{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;min-height:42px;width:100%;font:inherit}
.field input{max-width:100%}
.kpi>a{font-size:12px;color:var(--accent-soft)}
@media(max-width:1250px){.balance-grid{grid-template-columns:1fr}}
@media(max-width:650px){.workflow{gap:6px}.workflow>a,.workflow>span{font-size:11px;padding:8px}.statement th:first-child,.statement td:first-child{min-width:150px;max-width:200px;white-space:normal}}

@media(min-width:1251px){.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:650px) and (max-width:1250px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.row-unclassified td{color:var(--warning)}
.statement table td,.statement table th{padding-top:12px;padding-bottom:12px}
.statement .numeric{white-space:nowrap}

.balance-grid table{min-width:0!important;width:100%;table-layout:fixed}
.balance-grid table th:first-child,.balance-grid table td:first-child{width:50%;min-width:0;white-space:normal;position:static}
.balance-grid table td,.balance-grid table th{padding-left:12px;padding-right:12px}
.balance-grid .numeric{width:25%;font-size:12px;white-space:nowrap}
.balance-grid th.numeric{white-space:normal}

/* Alternância de tema (claro/escuro) no topbar + campo de senha com botão mostrar/ocultar (login). */
.theme-toggle{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:17px;cursor:pointer}
.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}
.pwd-field{position:relative;display:block}
.pwd-field input{padding-right:44px}
.pwd-toggle{position:absolute;top:0;right:0;height:40px;width:40px;display:grid;place-items:center;background:transparent;border:0;color:var(--muted);cursor:pointer;font-size:17px}
.pwd-toggle:hover{color:var(--text)}
