/* Gestão financeira CSB Tech */
.finance-app{
  padding-top:18px;
}

.finance-container{
  max-width: 1480px;
  padding-bottom:52px;
}

.top-user{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  min-width:0;
}

.top-user[hidden]{
  display:none !important;
}

.top-user-text{
  min-width:0;
  max-width:260px;
  text-align:right;
}

.top-user-name{
  color:#0f172a;
  font-size:13px;
  font-weight:900;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.top-user-email{
  margin-top:2px;
  color:#64748b;
  font-size:12px;
  font-weight:700;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.finance-hero{
  border:1px solid rgba(15,75,140,.12);
  border-radius:22px;
  padding:20px;
  background:linear-gradient(135deg,#ffffff 0%,#eef7ff 56%,#f8fbff 100%);
  box-shadow:0 18px 46px rgba(15,23,42,.08);
}

.finance-hero-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}

.finance-title{
  margin:0;
  color:#0f172a;
  font-size:28px;
  line-height:1.1;
  font-weight:1000;
}

.finance-sub{
  margin-top:7px;
  color:#64748b;
  font-size:14px;
  font-weight:700;
}

.finance-toolbar{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}

.finance-kpis{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-top:16px;
}

.finance-kpi{
  min-height:96px;
  display:grid;
  gap:6px;
  padding:16px;
  border:1px solid rgba(15,75,140,.10);
  border-radius:18px;
  background:#fff;
  box-shadow:0 12px 30px rgba(15,23,42,.055);
}

.finance-kpi span{
  color:#64748b;
  font-size:12px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.finance-kpi strong{
  color:#0f172a;
  font-size:24px;
  line-height:1.05;
}

.finance-kpi small{
  color:#64748b;
  font-weight:800;
}

.finance-kpi.received{ border-color:rgba(22,163,74,.22); }
.finance-kpi.generated{ border-color:rgba(29,111,184,.22); }
.finance-kpi.pending{ border-color:rgba(202,138,4,.24); }

.finance-rows{
  display:grid;
  gap:10px;
  padding:14px;
}

.finance-row-card{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  gap:12px;
  align-items:flex-start;
  border:1px solid rgba(15,75,140,.12);
  border-radius:16px;
  padding:14px;
  background:#fff;
}

.finance-row-card.ok{ background:#effdf5; border-color:#bbf7d0; }
.finance-row-card.info{ background:#eff6ff; border-color:#bfdbfe; }
.finance-row-card.warn{ background:#fff8e6; border-color:#fde68a; }
.finance-row-card.danger{ background:#fff1f2; border-color:#fecdd3; }
.finance-row-card.muted{ background:#f8fafc; border-color:#e2e8f0; }

.finance-row-check{
  min-height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  background:rgba(15,75,140,.08);
  color:#0f4b8c;
}

.finance-row-check input{
  width:18px;
  height:18px;
}

.finance-row-main{
  min-width:0;
}

.finance-row-top{
  display:flex;
  justify-content:space-between;
  gap:12px;
}

.finance-row-title{
  color:#0f172a;
  font-size:16px;
  font-weight:1000;
}

.finance-row-title span{
  color:#64748b;
  font-size:13px;
  font-weight:900;
}

.finance-row-sub{
  margin-top:4px;
  color:#475569;
  font-size:13px;
  font-weight:800;
}

.finance-row-value{
  color:#0f172a;
  font-size:20px;
  font-weight:1000;
  white-space:nowrap;
}

.finance-row-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
  color:#64748b;
  font-size:12px;
  font-weight:800;
}

.finance-row-meta span{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  border-radius:999px;
  padding:4px 9px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(15,75,140,.08);
}

.finance-pill{
  font-weight:1000 !important;
}

.finance-pill.ok{ color:#047857; background:#d1fae5 !important; border-color:#a7f3d0 !important; }
.finance-pill.info{ color:#1d4ed8; background:#dbeafe !important; border-color:#bfdbfe !important; }
.finance-pill.warn{ color:#92400e; background:#fef3c7 !important; border-color:#fde68a !important; }
.finance-pill.danger{ color:#be123c; background:#ffe4e6 !important; border-color:#fecdd3 !important; }
.finance-pill.muted{ color:#64748b; background:#f1f5f9 !important; border-color:#e2e8f0 !important; }

.finance-row-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.finance-lot-details{
  margin-top:10px;
}

.finance-lot-details summary{
  cursor:pointer;
  color:#0f4b8c;
  font-weight:1000;
}

.finance-lot-items{
  display:grid;
  gap:8px;
  margin-top:8px;
}

.finance-lot-item,
.settle-line{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:1px solid rgba(15,75,140,.10);
  border-radius:12px;
  padding:10px;
  background:rgba(255,255,255,.78);
}

.finance-lot-item div{
  display:grid;
  gap:2px;
}

.finance-lot-item strong{
  color:#0f172a;
  font-size:13px;
}

.finance-lot-item span,
.finance-lot-item small{
  color:#64748b;
  font-weight:800;
}

.finance-page-btn{
  min-width:38px;
  min-height:38px;
  border-radius:12px;
  border:1px solid rgba(15,75,140,.14);
  background:#fff;
  color:#0f172a;
  font-weight:1000;
  cursor:pointer;
}

.finance-page-btn.is-active{
  background:#0f4b8c;
  color:#fff;
}

@media (max-width: 820px){
  .finance-row-card{
    grid-template-columns:34px minmax(0,1fr);
  }

  .finance-row-actions{
    grid-column:1 / -1;
    justify-content:flex-start;
  }

  .finance-row-top{
    display:grid;
  }

  .finance-row-value{
    font-size:18px;
  }
}

.finance-card{
  margin-top:14px;
  border:1px solid rgba(15,75,140,.10);
  border-radius:22px;
  background:#fff;
  box-shadow:0 16px 40px rgba(15,23,42,.07);
  overflow:hidden;
}

.finance-panel-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px;
  border-bottom:1px solid rgba(15,75,140,.09);
  background:rgba(255,255,255,.92);
}

.finance-tabs{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.finance-tab{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  gap:9px;
  border:1px solid rgba(15,75,140,.13);
  border-radius:14px;
  background:#fff;
  color:#334155;
  padding:9px 12px;
  font-weight:900;
  cursor:pointer;
}

.finance-tab.is-active{
  background:#0f4b8c;
  border-color:#0f4b8c;
  color:#fff;
  box-shadow:0 12px 28px rgba(15,75,140,.20);
}

.finance-tab b{
  min-width:24px;
  min-height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:rgba(15,75,140,.10);
  color:inherit;
  padding:2px 7px;
  font-size:12px;
}

.finance-tab.is-active b{
  background:rgba(255,255,255,.20);
}

.finance-panel-actions{
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}

.finance-page-size{
  display:grid;
  gap:5px;
  margin:0;
}

.finance-page-size span{
  color:#64748b;
  font-size:11px;
  font-weight:1000;
  text-transform:uppercase;
}

.finance-page-size select{
  min-height:40px;
  min-width:94px;
  border-radius:13px;
  border:1px solid rgba(15,75,140,.16);
  background:#fff;
  color:#0f172a;
  font-weight:900;
}

.finance-filters{
  display:grid;
  grid-template-columns:minmax(260px,1fr) repeat(4,minmax(150px,210px));
  gap:10px;
  padding:14px;
  border-bottom:1px solid rgba(15,75,140,.09);
  background:rgba(248,251,255,.88);
}

.finance-filters .field{
  display:grid;
  gap:6px;
  margin:0;
}

.finance-filters .field span{
  color:#64748b;
  font-size:12px;
  font-weight:1000;
}

.finance-filters input,
.finance-filters select{
  width:100%;
  min-height:42px;
  border-radius:14px;
  border:1px solid rgba(15,75,140,.16);
  background:#fff;
  color:#0f172a;
  font-size:14px;
  font-weight:800;
  outline:none;
}

.finance-list-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  border-bottom:1px solid rgba(15,75,140,.08);
  background:#fff;
}

.finance-list-head strong{
  display:block;
  color:#0f172a;
  font-size:14px;
}

.finance-list-head span,
#financePageText{
  color:#64748b;
  font-size:12px;
  font-weight:800;
}

.finance-table-wrap{
  overflow:visible;
  -webkit-overflow-scrolling:auto;
}

.finance-record-list{
  display:grid;
  gap:0;
}

.finance-record{
  display:grid;
  grid-template-columns:44px minmax(260px,1.45fr) minmax(180px,.82fr) minmax(140px,.58fr) minmax(170px,.74fr);
  gap:12px;
  align-items:center;
  padding:14px;
  border-bottom:1px solid rgba(15,75,140,.08);
  background:#fff;
}

.finance-record:hover{
  background:#fbfdff;
}

.finance-record-select{
  display:flex;
  align-items:center;
  justify-content:center;
}

.finance-record-select input{
  width:18px;
  height:18px;
}

.finance-record-main{
  min-width:0;
}

.finance-record-title{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.finance-record-title strong{
  color:#0f172a;
  font-size:15px;
  font-weight:1000;
}

.finance-record-sub{
  margin-top:5px;
  color:#64748b;
  font-size:12px;
  font-weight:750;
}

.finance-tags{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-top:8px;
}

.finance-tag{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:4px 8px;
  border-radius:999px;
  background:rgba(15,75,140,.08);
  color:#0f4b8c;
  font-size:11px;
  font-weight:1000;
}

.finance-record-status,
.finance-record-value{
  min-width:0;
}

.finance-record-value strong{
  display:block;
  color:#0f172a;
  font-size:16px;
  font-weight:1000;
  text-align:right;
}

.finance-record-value span{
  display:block;
  margin-top:4px;
  color:#64748b;
  font-size:12px;
  font-weight:800;
  text-align:right;
}

.finance-record-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  flex-wrap:wrap;
}

.finance-record-actions .btn{
  min-height:36px;
  padding:8px 10px !important;
  border-radius:12px !important;
}

.finance-record-actions .is-danger-text{
  border-color:rgba(220,38,38,.30) !important;
  color:#dc2626 !important;
}

.finance-lot-record{
  grid-template-columns:minmax(280px,1.45fr) minmax(190px,.85fr) minmax(160px,.65fr) minmax(180px,.8fr);
}

.finance-lot-icon{
  width:38px;
  height:38px;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(15,75,140,.10);
  color:#0f4b8c;
}

.finance-lot-titleline{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}

.finance-table{
  width:100%;
  min-width:1180px;
  border-collapse:collapse;
}

.finance-table th,
.finance-table td{
  padding:12px 10px;
  border-bottom:1px solid rgba(15,75,140,.08);
  text-align:left;
  vertical-align:middle;
}

.finance-table th{
  position:sticky;
  top:0;
  z-index:2;
  background:#f8fbff;
  color:#64748b;
  font-size:11px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.finance-table tr:hover td{
  background:#fbfdff;
}

.finance-primary{
  color:#0f172a;
  font-weight:1000;
}

.finance-muted{
  margin-top:3px;
  color:#64748b;
  font-size:12px;
  font-weight:750;
}

.finance-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
}

.finance-actions .btn{
  min-height:36px;
  padding:8px 10px !important;
  border-radius:12px !important;
}

.finance-lot{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px 8px;
  border-radius:999px;
  background:rgba(15,75,140,.08);
  color:#0f4b8c;
  font-size:12px;
  font-weight:1000;
}

.finance-empty{
  padding:28px;
  color:#64748b;
  text-align:center;
  font-weight:800;
}

.finance-pagination{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  padding:14px;
  border-top:1px solid rgba(15,75,140,.08);
  background:#fff;
}

.finance-pagination[hidden]{
  display:none !important;
}

.finance-page-buttons{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  justify-content:center;
}

.finance-page-btn{
  min-width:38px;
  min-height:38px;
  border:1px solid rgba(15,75,140,.14);
  border-radius:12px;
  background:#fff;
  color:#0f172a;
  font-weight:900;
  cursor:pointer;
}

.finance-page-btn.is-active{
  background:#0f4b8c;
  border-color:#0f4b8c;
  color:#fff;
}

.settle-modal-card{
  width:min(1040px, calc(100vw - 24px));
  max-width:1040px !important;
}

.settle-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}

.settle-box{
  padding:12px;
  border:1px solid rgba(15,75,140,.10);
  border-radius:16px;
  background:#f8fbff;
}

.settle-box span{
  display:block;
  color:#64748b;
  font-size:11px;
  font-weight:1000;
  text-transform:uppercase;
}

.settle-box strong{
  display:block;
  margin-top:5px;
  color:#0f172a;
  font-size:16px;
}

.settle-items{
  margin-top:14px;
  border:1px solid rgba(15,75,140,.10);
  border-radius:16px;
  overflow:auto;
}

.settle-table{
  width:100%;
  min-width:760px;
  border-collapse:collapse;
}

.settle-table th,
.settle-table td{
  padding:10px;
  border-bottom:1px solid rgba(15,75,140,.08);
  text-align:left;
}

.settle-table th{
  background:#f8fbff;
  color:#64748b;
  font-size:11px;
  font-weight:1000;
  text-transform:uppercase;
}

.settle-table input{
  width:120px;
  min-height:36px;
  border-radius:12px;
  border:1px solid rgba(15,75,140,.16);
  font-weight:800;
}

.settle-foot{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-top:14px;
}

.settle-foot .field{
  display:grid;
  gap:6px;
  min-width:260px;
  flex:1;
}

.settle-foot textarea{
  min-height:70px;
  border-radius:14px;
}

@media (max-width:980px){
  .finance-kpis,
  .finance-filters,
  .settle-summary{
    grid-template-columns:1fr 1fr;
  }

  .finance-panel-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .finance-panel-actions{
    width:100%;
    justify-content:space-between;
  }

  .finance-record,
  .finance-lot-record{
    grid-template-columns:1fr;
    align-items:start;
  }

  .finance-record-select{
    justify-content:flex-start;
  }

  .finance-record-value strong,
  .finance-record-value span{
    text-align:left;
  }

  .finance-record-actions{
    justify-content:flex-start;
  }

  .finance-toolbar{
    width:100%;
    justify-content:flex-start;
  }
}

@media (max-width:640px){
  .finance-app{ padding-top:12px; }
  .finance-container{ padding-left:10px; padding-right:10px; padding-bottom:44px; }
  .top-user-text{ display:none; }
  .finance-title{ font-size:23px; }
  .finance-hero,
  .finance-card{
    border-radius:18px;
  }
  .finance-kpis,
  .finance-filters,
  .settle-summary{
    grid-template-columns:1fr;
  }

  .finance-panel-head,
  .finance-filters,
  .finance-list-head,
  .finance-record{
    padding-left:12px;
    padding-right:12px;
  }

  .finance-tabs,
  .finance-tab,
  .finance-panel-actions,
  .finance-panel-actions .btn,
  .finance-page-size,
  .finance-page-size select{
    width:100%;
  }

  .finance-tab{
    justify-content:space-between;
  }

  .finance-list-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .finance-record-actions .btn,
  .finance-record-actions a.btn{
    flex:1;
    justify-content:center;
  }

  .finance-pagination{
    align-items:stretch;
    flex-direction:column;
  }

  .finance-page-buttons{
    order:-1;
  }

  .finance-toolbar .btn,
  .settle-foot .btn{
    width:100%;
    justify-content:center;
  }
}
