
:root{
  --arrec-primary:#174a8b;
  --arrec-primary-2:#2365b6;
  --arrec-success:#198754;
  --arrec-warning:#d97706;
  --arrec-danger:#c62828;
  --arrec-surface:#ffffff;
  --arrec-bg:#f3f6fa;
  --arrec-border:#dfe6ee;
  --arrec-text:#172033;
  --arrec-muted:#667085;
}

.arrec-modal .modal-dialog{
  max-width:100vw;
  margin:0;
}

.arrec-modal .modal-content{
  min-height:100vh;
  border:0;
  border-radius:0;
  overflow:hidden;
  background:var(--arrec-bg);
}

.arrec-modal .modal-header{
  position:sticky;
  top:0;
  z-index:1035;
  min-height:84px;
  padding:1rem 1.35rem;
  color:#000000;
  border:0;
  background:linear-gradient(135deg,var(--arrec-primary),var(--arrec-primary-2));
  box-shadow:0 6px 18px rgba(23,74,139,.18);
}

.arrec-modal .modal-header .modal-title{
  margin:0;
  font-size:1.3rem;
  font-weight:750;
  letter-spacing:.01em;
}

.arrec-modal .modal-header .text-muted{
  display:block;
  margin-top:.2rem;
  color:rgba(145, 140, 140, 0.82)!important;
  font-size:.86rem;
}

.arrec-modal .modal-header .btn-close{
  filter:brightness(0) invert(1);
  opacity:.88;
}

.arrec-modal .modal-body{
  padding:1.15rem;
  background:
    radial-gradient(circle at 95% 0%,rgba(35,101,182,.06),transparent 24rem),
    var(--arrec-bg);
}

#arrec-content{
  max-width:1720px;
  margin:0 auto;
}

#arrec-content>.d-flex.justify-content-end{
  align-items:center;
  gap:.6rem!important;
  padding:.65rem .75rem;
  margin-bottom:1rem!important;
  border:1px solid var(--arrec-border);
  border-radius:14px;
  background:rgba(255,255,255,.9);
  box-shadow:0 4px 14px rgba(16,24,40,.04);
}

#arrec-ano{
  width:145px!important;
  min-height:40px;
  border-radius:10px;
}

#arrec-refresh{
  min-height:40px;
  padding:.45rem .9rem;
  border-radius:10px;
  font-weight:650;
}

.arrec-kpi{
  position:relative;
  height:100%;
  overflow:hidden;
  border:1px solid rgba(223,230,238,.9);
  border-radius:16px;
  background:var(--arrec-surface);
  box-shadow:0 8px 22px rgba(16,24,40,.065);
  transition:transform .16s ease,box-shadow .16s ease;
}

.arrec-kpi:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(16,24,40,.11);
}

.arrec-kpi::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:4px;
  background:var(--arrec-primary-2);
}

#arrec-content>.row.g-3.mb-3>.col-6:nth-child(2) .arrec-kpi::before{
  background:var(--arrec-success);
}

#arrec-content>.row.g-3.mb-3>.col-6:nth-child(3) .arrec-kpi::before{
  background:var(--arrec-warning);
}

#arrec-content>.row.g-3.mb-3>.col-3:nth-child(4) .arrec-kpi::before{
  background:#1784c7;
}

#arrec-content>.row.g-3.mb-3>.col-3:nth-child(5) .arrec-kpi::before{
  background:var(--arrec-danger);
}

.arrec-kpi .card-body{
  min-height:94px;
  padding:1rem 1.1rem .9rem;
}

.arrec-kpi small{
  display:block;
  color:var(--arrec-muted);
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.035em;
  text-transform:uppercase;
}

.arrec-kpi h3{
  margin:.5rem 0 0;
  color:var(--arrec-text);
  font-size:1.58rem;
  font-weight:780;
  line-height:1.1;
}

#arrec-content .card{
  border:1px solid var(--arrec-border);
  border-radius:16px;
  background:var(--arrec-surface);
  box-shadow:0 8px 22px rgba(16,24,40,.055);
}

#arrec-content .card-header{
  min-height:52px;
  padding:.75rem .95rem;
  border-bottom:1px solid var(--arrec-border);
  background:linear-gradient(180deg,#fff,#fbfcfe);
  border-radius:16px 16px 0 0;
}

#arrec-content .card-header strong{
  color:var(--arrec-text);
  font-size:.95rem;
}

.arrec-chart{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:8px;
  height:180px;
  min-height:180px;
  padding:12px 8px 4px;
}

.arrec-bar-wrap{
  display:flex;
  flex:1;
  min-width:22px;
  height:100%;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
}

.arrec-bar{
  width:72%;
  min-width:12px;
  min-height:3px;
  border-radius:6px 6px 2px 2px;
  background:linear-gradient(180deg,#2d72c6,#174a8b);
  box-shadow:0 4px 10px rgba(23,74,139,.18);
  transition:filter .15s ease,transform .15s ease;
}

.arrec-bar:hover{
  filter:brightness(1.08);
  transform:scaleX(1.05);
}

.arrec-bar-label{
  margin-top:6px;
  color:var(--arrec-muted);
  font-size:.68rem;
  font-weight:650;
}

.arrec-empty-state{
  display:flex;
  width:100%;
  min-height:156px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  color:var(--arrec-muted);
  border:1px dashed #c9d3df;
  border-radius:13px;
  background:#f8fafc;
  text-align:center;
}

.arrec-empty-state i{
  color:#9aa8ba;
  font-size:1.65rem;
}

#arrec-search,
#arrec-status-filter{
  min-height:38px;
  border-radius:10px;
  border-color:#d8e0e9;
}

.arrec-table{
  margin:0;
}

.arrec-table thead th{
  position:sticky;
  top:0;
  z-index:2;
  padding:.7rem .75rem;
  color:#344054;
  border-bottom:1px solid var(--arrec-border);
  background:#f6f8fb;
  font-size:.78rem;
  font-weight:750;
  letter-spacing:.015em;
}

.arrec-table tbody td{
  padding:.75rem;
  color:#273142;
  border-color:#edf1f5;
  font-size:.88rem;
}

.arrec-table tbody tr:hover{
  background:#f8fbff;
}

.arrec-table .btn{
  border-radius:9px;
}

.arrec-status{
  display:inline-flex;
  align-items:center;
  padding:.38rem .62rem;
  border-radius:999px;
  font-size:.68rem;
  font-weight:760;
  letter-spacing:.02em;
}

#arrec-content>.card>.card-header{
  padding:.72rem .85rem 0;
}

#arrecadacaoModal .nav-tabs{
  gap:.45rem;
  border-bottom:0;
}

#arrecadacaoModal .nav-tabs .nav-link{
  margin:0;
  padding:.58rem .9rem;
  color:#475467;
  border:0;
  border-radius:999px;
  background:#edf2f7;
  font-size:.84rem;
  font-weight:700;
}

#arrecadacaoModal .nav-tabs .nav-link.active{
  color:#fff;
  background:linear-gradient(135deg,var(--arrec-primary),var(--arrec-primary-2));
  box-shadow:0 5px 12px rgba(23,74,139,.2);
}

#arrec-content>.card>.card-body{
  padding:1rem;
}

#arrec-tabela-form,
#arrec-regra-form{
  padding:1rem;
  border:1px solid #e2e8f0;
  border-radius:14px;
  background:#f8fafc;
}

#arrec-tabela-form .form-control,
#arrec-tabela-form .form-select,
#arrec-regra-form .form-control,
#arrec-regra-form .form-select{
  min-height:42px;
  border-radius:10px;
  border-color:#d7e0e9;
  background:#fff;
}

#arrec-tabela-form .btn,
#arrec-regra-form .btn{
  min-height:42px;
  border-radius:10px;
  font-weight:700;
}

#arrec-tabelas-body td,
#arrec-regras-body td{
  padding:.72rem;
  border-color:#edf1f5;
  font-size:.87rem;
}

#arrec-tabelas-body:empty::after,
#arrec-regras-body:empty::after{
  content:"Nenhum registro cadastrado.";
}

.arrec-loading{
  min-height:360px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--arrec-muted);
}

#arrec-error{
  max-width:980px;
  margin:2rem auto;
  border-radius:14px;
}

#arrecTaxaModal .modal-content{
  border:0;
  border-radius:16px;
  overflow:hidden;
}

#arrecTaxaModal .modal-header{
  color:#fff;
  border:0;
  background:linear-gradient(135deg,var(--arrec-primary),var(--arrec-primary-2));
}

#arrecTaxaModal .modal-header .btn-close{
  filter:brightness(0) invert(1);
}

#arrecTaxaModal h6{
  margin-bottom:.9rem;
  color:var(--arrec-primary);
  font-weight:750;
}

#arrecTaxaModal .form-control,
#arrecTaxaModal .form-select{
  min-height:42px;
  border-radius:10px;
}

#arrecTaxaModal .btn{
  border-radius:10px;
  font-weight:650;
}

@media (max-width:991.98px){
  .arrec-modal .modal-body{padding:.8rem}
  .arrec-kpi h3{font-size:1.32rem}
  .arrec-chart{height:155px;min-height:155px}
}

@media (max-width:575.98px){
  .arrec-modal .modal-header{min-height:76px;padding:.85rem 1rem}
  .arrec-modal .modal-header .modal-title{font-size:1.08rem}
  #arrec-content>.d-flex.justify-content-end{flex-wrap:wrap;justify-content:stretch!important}
  #arrec-ano,#arrec-refresh{width:100%!important;max-width:none!important}
  .arrec-kpi .card-body{min-height:82px;padding:.85rem}
  .arrec-kpi small{font-size:.66rem}
  .arrec-kpi h3{font-size:1.18rem}
}

.arrec-toolbar{display:flex;align-items:center;gap:.6rem;padding:.65rem .75rem;margin-bottom:1rem;border:1px solid var(--arrec-border);border-radius:14px;background:#fff}
.arrec-toolbar .form-select{max-width:145px}
.arrec-scroll-table{max-height:360px}
#arrec-processos-body .badge{white-space:nowrap}
#arrec-calculo-body tfoot th{border-top:2px solid #cfd8e3}
#arrec-tabela-form .form-label,#arrec-regra-form .form-label{font-size:.78rem;font-weight:700;color:#475467;margin-bottom:.3rem}

#arrec-parametros-form label,#arrec-regra-form label,#arrec-tabela-form label{font-size:.78rem;font-weight:700;color:#475467;margin-bottom:.3rem}


/* v0.4.1 — interface refinada */
.arrec-alert{transition:opacity .2s ease,transform .2s ease;box-shadow:0 6px 18px rgba(16,24,40,.06)}
.arrec-alert-leaving{opacity:0;transform:translateY(-6px)}
.arrec-config-card{overflow:hidden}
.arrec-config-header{display:flex!important;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1rem 1.1rem!important}
.arrec-config-header>div:first-child{display:flex;flex-direction:column;gap:.15rem}
.arrec-config-header small{color:var(--arrec-muted);font-size:.78rem}
.arrec-tabs{display:inline-flex;gap:.35rem;padding:.3rem;border:1px solid var(--arrec-border);border-radius:13px;background:#f4f7fb}
.arrec-tab-btn{display:inline-flex;align-items:center;gap:.45rem;padding:.58rem .88rem;border:0;border-radius:10px;background:transparent;color:#475467;font-size:.84rem;font-weight:700;transition:.15s ease}
.arrec-tab-btn:hover{background:#e8eef6;color:var(--arrec-primary)}
.arrec-tab-btn.active{color:#fff;background:linear-gradient(135deg,var(--arrec-primary),var(--arrec-primary-2));box-shadow:0 4px 10px rgba(23,74,139,.2)}
.arrec-tab-pane{display:none}
.arrec-tab-pane.active{display:block}
.arrec-section-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding:.9rem 1rem;border:1px solid #e4eaf1;border-radius:13px;background:#f8fafc}
.arrec-section-toolbar h6{margin:0;color:var(--arrec-text);font-weight:750}
.arrec-section-toolbar p{margin:.2rem 0 0;color:var(--arrec-muted);font-size:.8rem}
.arrec-form-grid{display:grid;gap:1rem;padding:1rem;border:1px solid #e1e8f0;border-radius:14px;background:#fff}
.arrec-table-form{grid-template-columns:120px minmax(220px,1.4fr) minmax(150px,.7fr) minmax(140px,.65fr) minmax(160px,.75fr) 120px}
.arrec-rule-form{grid-template-columns:repeat(12,minmax(0,1fr))}
.arrec-rule-form .arrec-field:nth-child(1){grid-column:span 3}
.arrec-rule-form .arrec-field:nth-child(2){grid-column:span 2}
.arrec-rule-form .arrec-field:nth-child(3){grid-column:span 3}
.arrec-rule-form .arrec-field:nth-child(4),
.arrec-rule-form .arrec-field:nth-child(5){grid-column:span 2}
.arrec-rule-form .arrec-field:nth-child(n+6):nth-child(-n+10){grid-column:span 2}
.arrec-rule-form .arrec-field:nth-child(11),
.arrec-rule-form .arrec-field:nth-child(12){grid-column:span 2}
.arrec-rule-form .arrec-field:nth-child(13){grid-column:span 1}
.arrec-rule-form .arrec-field:nth-child(14){grid-column:span 1}
.arrec-field{min-width:0;display:flex;flex-direction:column;justify-content:flex-end}
.arrec-field label{font-size:.75rem;font-weight:700;color:#475467;margin-bottom:.35rem}
.arrec-field .form-control,.arrec-field .form-select{min-height:42px;border-radius:10px}
.arrec-field-action{align-self:end}
.arrec-save-btn{min-height:42px;width:100%;border-radius:10px;font-weight:700;white-space:nowrap}
#arrec-tabelas-body td:last-child{display:flex;gap:.45rem;flex-wrap:wrap;min-width:220px}
#arrec-tabelas-body .btn{white-space:nowrap;border-radius:9px}
#arrec-regras-body td{vertical-align:middle}
@media(max-width:1200px){.arrec-table-form{grid-template-columns:repeat(2,minmax(0,1fr))}.arrec-table-form .arrec-field-action{grid-column:span 2}.arrec-rule-form .arrec-field{grid-column:span 3!important}.arrec-rule-form .arrec-field-action{grid-column:span 3!important}}
@media(max-width:767.98px){.arrec-config-header,.arrec-section-toolbar{align-items:stretch;flex-direction:column}.arrec-tabs{width:100%}.arrec-tab-btn{flex:1;justify-content:center}.arrec-table-form,.arrec-rule-form{grid-template-columns:1fr}.arrec-table-form .arrec-field,.arrec-rule-form .arrec-field{grid-column:1!important}.arrec-section-toolbar .btn{width:100%}}
