/* assets/css/style.css */
:root{

  --app-bg: #f4f7f4;
  --card-bg: #ffffff;
  --text-1: #15231c;
  --text-2: #607168;
  --brand: #126b49;
  --brand-2: #1fa36c;
  --brand-dark: #0b3d2d;
  --accent: #d99a2b;
  --surface-tint: #eff8f1;
  --border-soft: rgba(21, 35, 28, 0.1);
  --shadow-soft: 0 18px 45px rgba(21, 35, 28, 0.1);
  --radius-xl: 18px;
  --radius-lg: 12px;
}

.min-w-0{ min-width:0; }

.app-body{
  background: var(--app-bg);
  color: var(--text-1);
  min-height: 100vh;
}

.app-container{
  max-width: 1180px;
}

.table td, .table th { vertical-align: middle; }
.badge { font-size: 0.85rem; }

.card{
  border: 1px solid rgba(21, 35, 28, 0.07);
  border-radius: var(--radius-lg);
  background: var(--card-bg);
  box-shadow: var(--shadow-soft);
}

.btn{
  border-radius: 12px;
  font-weight: 700;
}
.btn-primary,
.btn-dark{
  background: linear-gradient(135deg, var(--brand), var(--brand-2));
  border-color: transparent;
  color: #fff;
  box-shadow: 0 12px 24px rgba(18, 107, 73, 0.2);
}
.btn-primary:hover,
.btn-dark:hover{
  background: linear-gradient(135deg, #0e5c3e, #188a5c);
  border-color: transparent;
  color: #fff;
}
.btn-outline-primary,
.btn-outline-success{
  border-color: rgba(18, 107, 73, 0.35);
  color: var(--brand);
}
.btn-outline-primary:hover,
.btn-outline-success:hover{
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
}
.form-control,
.form-select{
  border-color: rgba(21, 35, 28, 0.14);
  border-radius: 12px;
  padding: .72rem .9rem;
}
.form-control:focus,
.form-select:focus{
  border-color: rgba(31, 163, 108, 0.75);
  box-shadow: 0 0 0 .2rem rgba(31, 163, 108, 0.14);
}

.card-compact .card-body { padding: 1rem; }

.navbar .nav-link{
  color: var(--text-2);
}
.navbar .nav-link.active{
  color: var(--text-1);
  font-weight: 600;
}
.navbar-brand{
  font-weight: 700;
}

.portal-body{
  background:
    radial-gradient(circle at top left, rgba(31, 163, 108, .12), transparent 34rem),
    linear-gradient(180deg, #f7faf7 0%, #eef5ef 100%);
}
.portal-navbar{
  background: rgba(255, 255, 255, .88);
  border-bottom: 1px solid rgba(21, 35, 28, .08);
  box-shadow: 0 10px 30px rgba(21, 35, 28, .07);
  backdrop-filter: blur(16px);
}
.portal-nav-container{
  gap: .75rem;
  max-width: 1240px;
  margin: 0 auto;
}
.portal-brand{
  color: var(--brand-dark);
  font-weight: 900;
  letter-spacing: .02em;
}
.portal-brand-mark{
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--brand), var(--brand-2));
  color: #fff;
  box-shadow: 0 10px 22px rgba(18,107,73,.22);
}
.portal-main-nav{
  display: flex;
  align-items: center;
  gap: .25rem;
  border: 1px solid rgba(21,35,28,.08);
  border-radius: 999px;
  padding: .25rem;
  background: rgba(244, 247, 244, .72);
}
.portal-main-nav .nav-link{
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  border-radius: 999px;
  padding: .48rem .78rem;
  color: var(--text-2);
  font-size: .92rem;
  font-weight: 800;
}
.portal-main-nav .nav-link:hover{
  color: var(--brand);
  background: rgba(31,163,108,.09);
}
.portal-main-nav .nav-link.active{
  color: #fff;
  background: var(--brand-dark);
  box-shadow: 0 10px 22px rgba(18,107,73,.16);
}
.portal-main-nav .nav-link i{
  font-size: .98rem;
}
.portal-user-actions{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .65rem;
}
.portal-user-pill{
  align-items: center;
  gap: .45rem;
  max-width: 280px;
  border: 1px solid rgba(21,35,28,.08);
  border-radius: 999px;
  padding: .36rem .52rem .36rem .66rem;
  color: var(--text-2);
  background: #fff;
  font-size: .86rem;
  font-weight: 700;
}
.portal-user-pill > span:not(.badge){
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.portal-toggler{
  border: 1px solid rgba(21,35,28,.12);
  border-radius: 12px;
  padding: .35rem .55rem;
}
.portal-main{
  padding-bottom: 3rem !important;
}
.portal-main > .alert:first-child{
  margin-top: .25rem;
}
.portal-body .page-toolbar{
  align-items: center;
  border: 1px solid rgba(21,35,28,.08);
  border-radius: 18px;
  padding: 1.15rem;
  background:
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(239,248,241,.9));
  box-shadow: var(--shadow-soft);
}
.portal-body .page-title{
  color: var(--text-1);
  font-size: clamp(1.35rem, 2.5vw, 1.9rem);
  font-weight: 900;
  letter-spacing: 0;
}
.portal-body .page-subtitle{
  max-width: 720px;
}
.portal-body .filters-card{
  overflow: hidden;
}
.portal-body .filters-card,
.portal-body .card{
  border-color: rgba(21,35,28,.08);
}
.portal-body .card .card-body{
  padding: clamp(1rem, 2vw, 1.35rem);
}
.portal-body h4,
.portal-body h5,
.portal-body h6{
  color: var(--text-1);
  font-weight: 850;
}
.portal-body .table{
  margin-bottom: 0;
}
.portal-body .table thead th{
  border-bottom-color: rgba(21,35,28,.1);
  color: var(--text-2);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.portal-body .table tbody td{
  border-color: rgba(21,35,28,.07);
  padding-top: .85rem;
  padding-bottom: .85rem;
}
.portal-body .badge{
  border-radius: 999px;
  padding: .45rem .62rem;
  font-weight: 800;
}

.soft-divider{
  border-top: 1px solid var(--border-soft);
}

/* Asaas-inspired summary card */
.asaas-card{
  border-radius: var(--radius-xl);
  background: var(--card-bg);
  box-shadow: var(--shadow-soft);
  border: 1px solid var(--border-soft);
}

.asaas-segment{
  display: inline-flex;
  border: 1px solid rgba(30, 58, 138, 0.35);
  border-radius: 999px;
  overflow: hidden;
  background: #ffffff;
}
.asaas-segment .btn-check + label{
  padding: .6rem 1.1rem;
  font-weight: 600;
  color: #1d4ed8;
  cursor: pointer;
  user-select: none;
}
.asaas-segment .btn-check:checked + label{
  background: #1d4ed8;
  color: #fff;
}
.asaas-segment label{
  margin: 0;
}

.asaas-summary-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 1rem;
  padding: .9rem 0;
}
.asaas-summary-row + .asaas-summary-row{
  border-top: 1px solid var(--border-soft);
}

.asaas-summary-left{
  font-weight: 700;
}
.asaas-meta{
  color: var(--text-2);
  font-size: .9rem;
}
.asaas-split{
  width: 1px;
  align-self: stretch;
  background: var(--border-soft);
  margin: 0 .75rem;
}

.value-green{ color:#16a34a; font-weight:700; }
.value-blue{ color:#2563eb; font-weight:700; }
.value-orange{ color:#f59e0b; font-weight:700; }
.value-red{ color:#ef4444; font-weight:700; }
.value-gray{ color:#64748b; font-weight:700; }

/* Toggle chips */
.chip-check .btn{
  border-radius: 999px;
}

/* Searchable select */
.searchable-select{
  position: relative;
}
.searchable-select .ss-menu{
  position: absolute;
  z-index: 1050;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  max-height: 260px;
  overflow: auto;
  background: #fff;
  border: 1px solid var(--border-soft);
  border-radius: 12px;
  box-shadow: var(--shadow-soft);
}
.searchable-select .ss-item{
  padding: .6rem .75rem;
  cursor: pointer;
}
.searchable-select .ss-item:hover{
  background: rgba(37, 99, 235, 0.08);
}
.searchable-select .ss-empty{
  padding: .75rem;
  color: var(--text-2);
  font-size: .92rem;
}


/* Portal do Cliente (Asaas-like) */
.asaas-stat{border:1px solid rgba(0,0,0,.08);border-radius:14px;padding:14px;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.04)}
.asaas-stat .label{font-size:.82rem;color:#6c757d}
.asaas-stat .value{font-size:1.2rem;font-weight:700}
@media print{
  .no-print{display:none!important}
  body{background:#fff}
  .card{box-shadow:none!important}
}


/* Timeline (Asaas-like) */
.timeline{position:relative;padding-left:18px}
.timeline:before{content:'';position:absolute;left:6px;top:2px;bottom:2px;width:2px;background:rgba(15,23,42,0.08)}
.timeline-item{position:relative;padding:0 0 14px 0}
.timeline-dot{position:absolute;left:-2px;top:6px;width:14px;height:14px;border-radius:50%;background:#1d4ed8;box-shadow:0 0 0 4px rgba(29,78,216,0.10)}
.timeline-content{margin-left:14px;background:#fff;border:1px solid rgba(15,23,42,0.08);border-radius:14px;padding:12px 14px;box-shadow:0 8px 18px rgba(15,23,42,0.06)}
.timeline-title{font-weight:800;color:#0f172a}
.timeline-meta{color:#64748b;font-size:.85rem;margin-top:2px}
.timeline-time{color:#94a3b8;font-size:.82rem;white-space:nowrap}
.timeline-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid rgba(15,23,42,0.12);font-weight:700;font-size:.82rem;color:#0f172a;background:rgba(15,23,42,0.02)}
.timeline-pill.security{border-color:rgba(239,68,68,0.35);color:#ef4444;background:rgba(239,68,68,0.06)}

/* ------------------------------------------------------------------ */
/* Public landing and tenant login                                     */
/* ------------------------------------------------------------------ */
.public-landing{
  background: #0c2118;
  color: #f8fff9;
}
.landing-wrap{
  min-height: 100vh;
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(115deg, rgba(12, 33, 24, .97) 0%, rgba(14, 69, 48, .92) 52%, rgba(244, 248, 239, .96) 52.2%, rgba(238, 247, 238, .98) 100%);
}
.landing-glow{
  position: absolute;
  border-radius: 999px;
  filter: blur(10px);
  pointer-events: none;
}
.landing-glow-one{
  width: 360px;
  height: 360px;
  left: -120px;
  top: -90px;
  background: rgba(31, 163, 108, .25);
}
.landing-glow-two{
  width: 280px;
  height: 280px;
  right: 8%;
  bottom: 8%;
  background: rgba(217, 154, 43, .22);
}
.landing-nav{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 0 3rem;
}
.landing-brand{
  display: inline-flex;
  align-items: center;
  min-height: 52px;
  color: #fff;
  text-decoration: none;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.landing-brand img{
  width: min(220px, 52vw);
  height: auto;
  max-height: 76px;
  object-fit: contain;
}
.landing-hero{
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .75fr);
  align-items: center;
  gap: clamp(2rem, 6vw, 5rem);
  min-height: 62vh;
}
.landing-kicker,
.form-eyebrow{
  display: inline-flex;
  align-items: center;
  width: fit-content;
  border: 1px solid rgba(217, 154, 43, .42);
  border-radius: 999px;
  padding: .38rem .75rem;
  color: #ffe0a5;
  background: rgba(217, 154, 43, .14);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.landing-title{
  margin: 1rem 0;
  max-width: 10ch;
  color: #fff;
  font-size: clamp(3.6rem, 10vw, 7.7rem);
  line-height: .9;
  font-weight: 900;
}
.landing-sub{
  max-width: 620px;
  color: rgba(248, 255, 249, .82);
  font-size: clamp(1.05rem, 2.3vw, 1.35rem);
  line-height: 1.55;
}
.landing-actions{
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
  margin-top: 2rem;
}
.landing-actions .btn,
.landing-nav-actions .btn{
  border-radius: 999px;
}
.landing-note{
  margin-top: 2rem;
  max-width: 560px;
  color: rgba(248, 255, 249, .72);
}
.landing-note span{
  color: #fff;
  font-weight: 800;
}
.landing-panel{
  width: 100%;
  border: 1px solid rgba(21, 35, 28, .08);
  border-radius: 18px;
  padding: 1.2rem;
  background: rgba(255, 255, 255, .88);
  color: var(--text-1);
  box-shadow: 0 28px 80px rgba(10, 33, 23, .22);
  backdrop-filter: blur(18px);
}
.landing-panel-top{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}
.panel-label{
  display: block;
  color: var(--text-2);
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.status-pill{
  border-radius: 999px;
  padding: .35rem .65rem;
  color: var(--brand);
  background: rgba(31, 163, 108, .13);
  font-size: .8rem;
  font-weight: 800;
}
.portal-preview{
  display: grid;
  gap: .7rem;
}
.preview-row{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border: 1px solid rgba(21, 35, 28, .08);
  border-radius: 12px;
  padding: .9rem;
  background: #fff;
}
.preview-row span{
  color: var(--text-2);
}
.preview-row.active{
  border-color: rgba(31, 163, 108, .28);
  background: var(--surface-tint);
}
.landing-panel-cta{
  display: flex;
  justify-content: center;
  margin-top: 1rem;
  border-radius: 12px;
  padding: .85rem 1rem;
  background: var(--brand-dark);
  color: #fff;
  text-decoration: none;
  font-weight: 800;
}
.landing-benefits{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .8rem;
  margin-top: 3rem;
}
.landing-benefits div{
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 14px;
  padding: 1rem;
  background: rgba(255,255,255,.08);
}
.landing-benefits strong,
.landing-benefits span{
  display: block;
}
.landing-benefits span{
  margin-top: .25rem;
  color: rgba(248,255,249,.76);
  font-size: .95rem;
}
.landing-footer{
  padding: 1.6rem 0 0;
  color: rgba(248,255,249,.65);
  font-size: .9rem;
}
.login-body{
  background:
    radial-gradient(circle at 12% 15%, rgba(31, 163, 108, .18), transparent 28rem),
    linear-gradient(135deg, #eef7ef 0%, #fbfcf8 100%);
}
.login-shell{
  position: relative;
  display: flex;
  align-items: center;
  min-height: 100vh;
  padding: 2rem 0;
  overflow: hidden;
}
.login-ambient{
  position: absolute;
  right: -90px;
  bottom: -140px;
  width: 380px;
  height: 380px;
  border-radius: 999px;
  background: rgba(217, 154, 43, .18);
}
.login-card{
  overflow: hidden;
  border: 1px solid rgba(21, 35, 28, .08);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 30px 90px rgba(21, 35, 28, .14);
}
.login-story{
  display: flex;
  flex-direction: column;
  min-height: 640px;
  padding: clamp(1.5rem, 4vw, 3rem);
  background:
    linear-gradient(145deg, rgba(12, 33, 24, .94), rgba(18, 107, 73, .88)),
    url("../img/logo.png") center 78% / min(360px, 70%) auto no-repeat;
  color: #fff;
}
.login-logo{
  color: #fff;
  text-decoration: none;
  font-size: 1.05rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.login-story-copy{
  margin-top: auto;
}
.login-story h1{
  max-width: 11ch;
  margin: 1rem 0;
  font-size: clamp(2.7rem, 6vw, 4.7rem);
  line-height: .94;
  font-weight: 900;
}
.login-story p{
  max-width: 520px;
  color: rgba(248, 255, 249, .82);
  font-size: 1.08rem;
  line-height: 1.55;
}
.login-feature-list{
  display: grid;
  gap: .7rem;
  margin-top: 2rem;
}
.login-feature-list div{
  display: flex;
  align-items: center;
  gap: .7rem;
  color: rgba(248, 255, 249, .9);
}
.login-feature-list i{
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: rgba(255,255,255,.13);
  color: #ffe0a5;
}
.login-form-panel{
  display: flex;
  align-items: center;
  background: #fff;
}
.login-form-inner{
  width: 100%;
  padding: clamp(1.5rem, 5vw, 3.3rem);
}
.login-form-inner h2{
  color: var(--text-1);
  font-size: clamp(1.8rem, 4vw, 2.5rem);
  font-weight: 900;
}
.login-form-inner .form-eyebrow{
  margin-bottom: 1rem;
  color: var(--brand);
  background: rgba(31, 163, 108, .1);
  border-color: rgba(31, 163, 108, .22);
}

@media (max-width: 991.98px){
  .portal-nav-container{
    align-items: center;
  }
  .portal-user-actions{
    margin-left: auto;
  }
  .portal-main-nav{
    align-items: stretch;
    margin: .75rem 0 .25rem;
    border-radius: 16px;
    padding: .45rem;
    background: rgba(244, 247, 244, .94);
  }
  .portal-main-nav .nav-link{
    justify-content: flex-start;
    border-radius: 12px;
    padding: .72rem .85rem;
  }
  .landing-wrap{
    background: linear-gradient(180deg, #0c2118 0%, #114d37 58%, #eff8f1 58.1%, #f8fbf7 100%);
  }
  .landing-nav{
    padding-bottom: 1.5rem;
  }
  .landing-hero{
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .landing-title{
    max-width: 8ch;
  }
  .landing-benefits{
    grid-template-columns: 1fr;
  }
  .login-story{
    min-height: 420px;
  }
}

@media (max-width: 575.98px){
  .portal-nav-container{
    gap: .5rem;
  }
  .portal-brand span:last-child{
    max-width: 118px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .portal-user-actions{
    width: 100%;
    order: 5;
  }
  .portal-user-actions .btn{
    flex: 1;
  }
  .portal-body .page-toolbar{
    border-radius: 14px;
    padding: 1rem;
  }
  .portal-body .page-actions{
    width: 100%;
    justify-content: stretch;
  }
  .portal-body .page-actions .btn{
    flex: 1;
  }
  .landing-nav{
    align-items: flex-start;
  }
  .landing-nav-actions .btn{
    padding-inline: .7rem;
  }
  .landing-actions .btn{
    width: 100%;
  }
  .preview-row{
    align-items: flex-start;
    flex-direction: column;
    gap: .25rem;
  }
  .login-shell{
    padding: 0;
  }
  .login-card{
    border-radius: 0;
  }
  .login-story{
    min-height: auto;
    padding: 1.4rem;
    background-position: 92% 78%;
    background-size: 210px auto;
  }
  .login-story h1{
    max-width: 12ch;
    font-size: 2.35rem;
  }
  .login-story p{
    font-size: .98rem;
  }
  .login-feature-list{
    margin-top: 1.2rem;
    gap: .45rem;
  }
  .login-feature-list div{
    font-size: .92rem;
  }
  .login-feature-list i{
    width: 30px;
    height: 30px;
  }
}


/* Melhorias mobile: resumo do dashboard */
@media (max-width: 576px) {
  .asaas-summary-row {
    flex-direction: column;
    align-items: stretch;
    gap: .25rem !important;
    padding-top: .75rem;
    padding-bottom: .75rem;
  }
  .asaas-summary-row > div {
    width: 100% !important;
    min-width: 0 !important;
  }
  .asaas-summary-row .text-md-end {
    text-align: left !important;
  }
}


/* ------------------------------------------------------------------ */
/* Toolbar / Filters (Asaas-like)                                      */
/* ------------------------------------------------------------------ */
.page-toolbar{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}
.page-toolbar .page-title{
  margin:0;
  font-weight:700;
}
.page-toolbar .page-subtitle{
  margin:2px 0 0 0;
  color:var(--text-2);
  font-size:.92rem;
}
.page-toolbar .page-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.filters-card{
  background:var(--card-bg);
  border:1px solid var(--border-soft);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-soft);
}
.filters-card .filters-inner{
  padding:12px;
}
.filters-sticky{
  position:sticky;
  top:78px;
  z-index:2;
}

/* ------------------------------------------------------------------ */
/* Smart datalist dropdown                                              */
/* ------------------------------------------------------------------ */
.smartlist-wrap{ position:relative; }
.smartlist-menu{
  display:none;
  position:absolute;
  left:0; right:0;
  top:calc(100% + 4px);
  background:#fff;
  border:1px solid var(--border-soft);
  border-radius:12px;
  box-shadow:var(--shadow-soft);
  padding:6px;
  max-height:260px;
  overflow:auto;
  z-index:1081;
}
.smartlist-menu.open{ display:block; }
.smartlist-item{
  width:100%;
  text-align:left;
  border:0;
  background:transparent;
  padding:8px 10px;
  border-radius:10px;
}
.smartlist-item:hover{ background:rgba(15,23,42,.06); }
.smartlist-empty{
  padding:10px;
  color:var(--text-2);
  font-size:.9rem;
}

/* Compact table */
.table.compact th{ font-size:.85rem; color:var(--text-2); }
.table.compact td{ font-size:.92rem; }

/* Toasts (padrão do sistema) */
.toast-container { pointer-events: none; }
.toast-container .toast { pointer-events: auto; }

/* Loading overlay (feedback imediato em telas pesadas) */
.app-loading{
  display:flex;
  align-items:center;
  justify-content:center;
  position:fixed;
  inset:0;
  padding:1rem;
  background: rgba(15,23,42,.24);
  backdrop-filter: blur(1.5px);
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease;
  z-index: 1085;
}
body.is-loading{ overflow:hidden; }
body.is-loading .app-loading{
  opacity:1;
  pointer-events:auto;
}
.app-loading-inner{
  min-width:min(92vw, 320px);
  display:flex;
  align-items:center;
  gap:.75rem;
  background: rgba(255,255,255,.96);
  padding: .95rem 1.1rem;
  border-radius: 16px;
  border:1px solid rgba(148,163,184,.25);
  box-shadow: 0 20px 48px rgba(15,23,42,.22);
  color: #111827;
}
.app-loading-copy{
  display:flex;
  flex-direction:column;
  gap:.12rem;
  min-width:0;
}
.app-loading-title{
  font-weight:700;
  color:#0f172a;
}
.app-loading-subtitle{
  font-size:.84rem;
  color:#64748b;
}
.negociacao-alert-row{
  background:rgba(220,38,38,.06);
}
.negociacao-alert-row > td{
  box-shadow:inset 0 -1px 0 rgba(220,38,38,.08);
}
.negociacao-alert-card{
  border:1px solid rgba(220,38,38,.28) !important;
  box-shadow:0 0 0 1px rgba(220,38,38,.08), 0 12px 26px rgba(220,38,38,.08);
}
.negociacao-alert-badge{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.42rem .62rem;
  border-radius:999px;
  background:#fee2e2;
  color:#991b1b;
  font-weight:700;
  border:1px solid rgba(220,38,38,.18);
}
.negociacao-alert-note{
  display:flex;
  align-items:center;
  gap:.35rem;
  font-size:.85rem;
  font-weight:600;
  color:#991b1b;
}

/* Mobile (admin mínimo funcional) */
@media (max-width: 576px){
  .app-container{ padding-top: .75rem; padding-bottom: .75rem; }
  .table{ font-size: .92rem; }
  .btn{ padding: .45rem .65rem; }
}

/* ------------------------------------------------------------------ */
/* Admin drawer navigation                                              */
/* ------------------------------------------------------------------ */
.app-admin-body{
  min-height:100vh;
  background:
    radial-gradient(circle at top left, rgba(37,99,235,.08), transparent 32%),
    linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
}
.app-admin-navbar{
  backdrop-filter:saturate(180%) blur(12px);
  background:rgba(255,255,255,.88) !important;
}
.app-admin-menu-btn{
  width:44px;
  height:44px;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:1.35rem;
  padding:0;
  border-color:rgba(148,163,184,.45);
}
.app-admin-menu-btn:hover{
  transform:translateY(-1px);
}
.app-admin-brand-icon{
  width:38px;
  height:38px;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#0f172a,#1d4ed8);
  color:#fff;
  box-shadow:0 12px 28px rgba(29,78,216,.22);
}
.app-admin-page-badge{
  min-height:36px;
  border-radius:999px;
  padding:.35rem .8rem;
  font-weight:700;
  color:var(--text-1);
  background:rgba(255,255,255,.92) !important;
}
.app-admin-drawer{
  width:min(390px, calc(100vw - 56px));
  max-width:390px;
  border-right:1px solid rgba(148,163,184,.22);
  background:linear-gradient(180deg,#ffffff 0%,#f8fafc 100%);
  box-shadow:18px 0 48px rgba(15,23,42,.14);
}
.app-admin-drawer .offcanvas-header{
  padding:1rem 1rem .95rem;
}
.app-admin-drawer-header{
  background:rgba(255,255,255,.92);
}
.app-admin-drawer-eyebrow{
  text-transform:uppercase;
  letter-spacing:.09em;
  font-size:.72rem;
  color:#64748b;
  font-weight:800;
  margin-bottom:.2rem;
}
.app-admin-drawer-hero{
  display:flex;
  align-items:flex-start;
  gap:.9rem;
  padding:1rem;
  background:
    radial-gradient(circle at top right, rgba(37,99,235,.16), transparent 42%),
    linear-gradient(145deg, rgba(15,23,42,.98), rgba(30,41,59,.96));
  color:#e2e8f0;
}
.app-admin-drawer-hero-icon{
  width:48px;
  height:48px;
  border-radius:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:1.2rem;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
.app-admin-drawer-hero-title{
  font-size:1rem;
  font-weight:700;
  color:#fff;
}
.app-admin-drawer-hero-subtitle{
  font-size:.88rem;
  line-height:1.45;
  color:rgba(226,232,240,.88);
}
.app-admin-drawer-user{
  padding:1rem;
  background:linear-gradient(180deg, rgba(15,23,42,.03), rgba(15,23,42,0));
}
.app-admin-section-label{
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#64748b;
  font-weight:800;
  margin-bottom:.6rem;
}
.app-admin-accordion{
  padding:0 .75rem .75rem;
}
.app-admin-accordion .accordion-item{
  background:transparent;
  border:0;
  margin-bottom:.65rem;
}
.app-admin-accordion .accordion-header{
  border-radius:18px;
  overflow:hidden;
}
.app-admin-accordion .accordion-button{
  box-shadow:none;
  border:1px solid rgba(148,163,184,.18);
  background:rgba(255,255,255,.9);
  color:var(--text-1);
  font-weight:700;
  padding:.95rem 1rem;
  border-radius:18px !important;
}
.app-admin-accordion .accordion-button:not(.collapsed){
  background:linear-gradient(180deg, rgba(37,99,235,.08), rgba(255,255,255,.96));
  color:var(--text-1);
  box-shadow:0 10px 24px rgba(15,23,42,.08);
}
.app-admin-accordion .accordion-button::after{
  width:1rem;
  height:1rem;
  background-size:1rem;
}
.app-admin-accordion .accordion-button:focus{
  box-shadow:0 0 0 .2rem rgba(37,99,235,.12);
}
.app-admin-accordion .accordion-body{
  padding:.7rem .25rem 0;
}
.app-admin-section-head{
  display:flex;
  align-items:center;
  gap:.85rem;
  min-width:0;
}
.app-admin-section-icon{
  width:40px;
  height:40px;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(37,99,235,.1);
  color:#1d4ed8;
  flex:0 0 auto;
}
.app-admin-section-copy{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.app-admin-section-title{
  font-size:.98rem;
  font-weight:800;
  line-height:1.15;
}
.app-admin-section-meta{
  font-size:.78rem;
  color:#64748b;
  line-height:1.35;
}
.app-admin-submenu-title{
  font-size:.74rem;
  text-transform:uppercase;
  letter-spacing:.09em;
  color:#64748b;
  font-weight:800;
  margin:.7rem .25rem .45rem;
}
.app-admin-submenu-title:first-child{
  margin-top:0;
}
.app-admin-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.85rem;
  width:100%;
  border-radius:16px;
  padding:.82rem .9rem;
  margin-bottom:.42rem;
  color:var(--text-1);
  text-decoration:none;
  border:1px solid transparent;
  background:rgba(255,255,255,.75);
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease, color .16s ease;
}
.app-admin-link-main{
  display:flex;
  align-items:center;
  gap:.82rem;
  min-width:0;
  flex:1 1 auto;
}
.app-admin-link-icon{
  width:38px;
  height:38px;
  border-radius:13px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(15,23,42,.06);
  color:#334155;
  flex:0 0 auto;
  transition:inherit;
}
.app-admin-link-text{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.app-admin-link-label{
  display:block;
  font-weight:700;
  line-height:1.2;
}
.app-admin-link-meta{
  display:block;
  font-size:.77rem;
  color:#64748b;
  line-height:1.35;
  margin-top:.12rem;
}
.app-admin-link-arrow{
  color:#94a3b8;
  flex:0 0 auto;
  transition:transform .16s ease, color .16s ease;
}
.app-admin-link:hover{
  background:#fff;
  color:var(--text-1);
  border-color:rgba(37,99,235,.16);
  box-shadow:0 10px 24px rgba(15,23,42,.08);
  transform:translateY(-1px);
}
.app-admin-link:hover .app-admin-link-icon,
.app-admin-link.active .app-admin-link-icon{
  background:rgba(255,255,255,.16);
  color:inherit;
}
.app-admin-link:hover .app-admin-link-arrow,
.app-admin-link.active .app-admin-link-arrow{
  color:inherit;
  transform:translateX(2px);
}
.app-admin-link.active{
  background:linear-gradient(135deg,#0f172a,#1e3a8a);
  color:#fff;
  box-shadow:0 16px 30px rgba(15,23,42,.18);
}
.app-admin-link.active .app-admin-link-meta{
  color:rgba(255,255,255,.82);
}
.app-admin-link-sub{
  padding:.78rem .88rem;
  font-size:.95rem;
}
.app-admin-drawer-footer{
  background:linear-gradient(180deg, rgba(248,250,252,.4), rgba(255,255,255,.94));
}
.app-admin-exit-btn{
  border-radius:14px;
  min-height:46px;
  font-weight:700;
}
@media (max-width: 576px){
  .app-admin-page-badge{
    display:none !important;
  }
  .app-admin-drawer{
    width:min(340px, calc(100vw - 52px));
    max-width:calc(100vw - 52px);
  }
  .app-admin-drawer-hero,
  .app-admin-drawer-user{
    padding:.9rem;
  }
  .app-admin-accordion{
    padding:0 .65rem .65rem;
  }
  .app-admin-link,
  .app-admin-link-sub{
    padding:.78rem .82rem;
  }
}


/* ------------------------------------------------------------------ */
/* Admin Phase 1 — miolo visual                                        */
/* ------------------------------------------------------------------ */
.app-admin-main{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:1.25rem;
}
.app-admin-hero{
  position:relative;
  overflow:hidden;
  border-radius:26px;
  padding:1.35rem 1.4rem;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  border:1px solid rgba(148,163,184,.22);
  background:
    radial-gradient(circle at top right, rgba(96,165,250,.20), transparent 32%),
    radial-gradient(circle at bottom left, rgba(59,130,246,.16), transparent 30%),
    linear-gradient(135deg, rgba(15,23,42,.98), rgba(30,41,59,.96));
  box-shadow:0 22px 48px rgba(15,23,42,.18);
}
.app-admin-hero-copy{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  gap:.95rem;
  min-width:0;
}
.app-admin-hero-badge{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  width:max-content;
  padding:.42rem .8rem;
  border-radius:999px;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.14);
  color:#dbeafe;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.app-admin-hero-icon{
  width:62px;
  height:62px;
  border-radius:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:1.45rem;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08), 0 18px 34px rgba(15,23,42,.14);
}
.app-admin-hero-title{
  margin:0;
  font-size:clamp(1.35rem, 2vw, 1.9rem);
  line-height:1.08;
  letter-spacing:-.03em;
  color:#fff;
  font-weight:800;
}
.app-admin-hero-subtitle{
  margin:.42rem 0 0;
  max-width:760px;
  color:rgba(226,232,240,.88);
  line-height:1.55;
  font-size:.97rem;
}
.app-admin-hero-meta{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.55rem;
  flex-wrap:wrap;
}
.app-admin-hero-pill{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  min-height:38px;
  padding:.48rem .78rem;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.14);
  color:#fff;
  font-weight:700;
  font-size:.83rem;
}
.app-admin-hero-pill.subtle{
  color:#e2e8f0;
  background:rgba(15,23,42,.18);
}
.app-admin-hero-orb{
  position:absolute;
  border-radius:999px;
  pointer-events:none;
  filter:blur(4px);
}
.app-admin-hero-orb-one{
  width:180px;
  height:180px;
  right:-56px;
  top:-70px;
  background:rgba(96,165,250,.22);
}
.app-admin-hero-orb-two{
  width:138px;
  height:138px;
  right:18%;
  bottom:-84px;
  background:rgba(148,163,184,.14);
}
.app-admin-content{
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.app-admin-content > *{ min-width:0; }
body.app-admin-body .page-toolbar{
  margin-bottom:0;
  padding:1rem 1.1rem;
  border-radius:22px;
  background:rgba(255,255,255,.86);
  border:1px solid rgba(148,163,184,.18);
  box-shadow:0 14px 30px rgba(15,23,42,.08);
  backdrop-filter:saturate(160%) blur(12px);
}
body.app-admin-body .page-title{
  font-size:1.42rem;
  letter-spacing:-.03em;
  font-weight:800;
}
body.app-admin-body .page-subtitle{
  font-size:.94rem;
  line-height:1.5;
}
body.app-admin-body .page-actions .btn,
body.app-admin-body .page-toolbar .btn-group .btn{
  min-height:42px;
}
body.app-admin-body .card{
  border:1px solid rgba(148,163,184,.16);
  box-shadow:0 16px 34px rgba(15,23,42,.08);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
body.app-admin-body .card:hover{
  transform:translateY(-1px);
  box-shadow:0 18px 38px rgba(15,23,42,.11);
  border-color:rgba(37,99,235,.18);
}
body.app-admin-body .card-header{
  padding:.95rem 1.15rem;
  border-bottom:1px solid rgba(148,163,184,.16);
  background:linear-gradient(180deg, rgba(248,250,252,.96), rgba(255,255,255,.96));
}
body.app-admin-body .card-body{
  padding:1.15rem;
}
body.app-admin-body .card-title,
body.app-admin-body h3.mb-0,
body.app-admin-body h4.mb-0,
body.app-admin-body h5.card-title{
  letter-spacing:-.02em;
  font-weight:800;
}
body.app-admin-body .btn{
  border-radius:13px;
  font-weight:700;
}
body.app-admin-body .btn-sm{
  border-radius:12px;
}
body.app-admin-body .form-control,
body.app-admin-body .form-select,
body.app-admin-body textarea,
body.app-admin-body .input-group-text{
  min-height:46px;
  border-radius:14px;
  border-color:rgba(148,163,184,.28);
  box-shadow:none;
}
body.app-admin-body textarea.form-control{
  min-height:auto;
}
body.app-admin-body .form-control:focus,
body.app-admin-body .form-select:focus,
body.app-admin-body textarea:focus{
  border-color:rgba(37,99,235,.42);
  box-shadow:0 0 0 .22rem rgba(37,99,235,.12);
}
body.app-admin-body .input-group-text{
  background:linear-gradient(180deg, rgba(248,250,252,.96), rgba(255,255,255,.96));
  color:#475569;
}
body.app-admin-body .form-label{
  font-weight:700;
  color:#334155;
  margin-bottom:.45rem;
}
body.app-admin-body .form-text{
  color:#64748b;
}
body.app-admin-body .nav-tabs,
body.app-admin-body .nav-pills{
  gap:.55rem;
}
body.app-admin-body .nav-tabs{
  border-bottom:0;
  padding:.72rem;
  border-radius:20px;
  background:rgba(255,255,255,.86);
  border:1px solid rgba(148,163,184,.18);
  box-shadow:0 12px 24px rgba(15,23,42,.06);
}
body.app-admin-body .nav-tabs .nav-link,
body.app-admin-body .nav-pills .nav-link{
  border:1px solid rgba(148,163,184,.18);
  border-radius:999px;
  color:#334155;
  font-weight:700;
  padding:.62rem .95rem;
  background:rgba(248,250,252,.9);
}
body.app-admin-body .nav-tabs .nav-link:hover,
body.app-admin-body .nav-pills .nav-link:hover{
  border-color:rgba(37,99,235,.22);
  color:#0f172a;
  background:#fff;
}
body.app-admin-body .nav-tabs .nav-link.active,
body.app-admin-body .nav-pills .nav-link.active{
  color:#fff;
  background:linear-gradient(135deg,#0f172a,#1d4ed8);
  border-color:transparent;
  box-shadow:0 12px 22px rgba(29,78,216,.22);
}
body.app-admin-body .table{
  --bs-table-bg: transparent;
  margin-bottom:0;
}
body.app-admin-body .table thead th{
  border-bottom:1px solid rgba(148,163,184,.22);
  border-top:0;
  background:rgba(248,250,252,.94);
  color:#475569;
  font-size:.79rem;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-weight:800;
  padding:.88rem .88rem;
}
body.app-admin-body .table td{
  padding:.86rem .88rem;
  border-color:rgba(148,163,184,.12);
}
body.app-admin-body .table-striped > tbody > tr:nth-of-type(odd) > *{
  --bs-table-accent-bg: rgba(248,250,252,.78);
}
body.app-admin-body .table-hover > tbody > tr:hover > *,
body.app-admin-body .table tbody tr:hover > *{
  --bs-table-accent-bg: rgba(37,99,235,.045);
}
body.app-admin-body .table-responsive{
  border-radius:18px;
}
body.app-admin-body .badge{
  border-radius:999px;
  font-weight:700;
  padding:.48rem .68rem;
}
body.app-admin-body .alert{
  border:1px solid rgba(148,163,184,.18);
  border-radius:18px;
  padding:1rem 1.05rem;
  box-shadow:0 12px 26px rgba(15,23,42,.05);
}
body.app-admin-body .alert-info{
  background:linear-gradient(180deg, rgba(239,246,255,.98), rgba(255,255,255,.98));
  color:#0f172a;
}
body.app-admin-body .alert-success{
  background:linear-gradient(180deg, rgba(240,253,244,.98), rgba(255,255,255,.98));
  color:#14532d;
}
body.app-admin-body .alert-warning{
  background:linear-gradient(180deg, rgba(255,251,235,.98), rgba(255,255,255,.98));
  color:#92400e;
}
body.app-admin-body .alert-danger{
  background:linear-gradient(180deg, rgba(254,242,242,.98), rgba(255,255,255,.98));
  color:#991b1b;
}
.app-stat-card{
  position:relative;
  overflow:hidden;
}
.app-stat-card .card-body{
  padding:1rem 1rem .95rem;
}
.app-stat-head{
  display:flex;
  align-items:center;
  gap:.72rem;
  margin-bottom:.8rem;
}
.app-stat-icon{
  width:42px;
  height:42px;
  border-radius:15px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(37,99,235,.1);
  color:#1d4ed8;
  font-size:1.05rem;
  flex:0 0 auto;
}
.app-stat-label{
  display:block;
  color:#64748b;
  font-size:.82rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.app-stat-value{
  font-size:1.38rem;
  line-height:1.05;
  letter-spacing:-.03em;
  font-weight:800;
  color:#0f172a;
}
.app-stat-meta{
  margin-top:.45rem;
  font-size:.82rem;
  color:#64748b;
}
.app-stat-tone-success .app-stat-icon{
  background:rgba(34,197,94,.12);
  color:#16a34a;
}
.app-stat-tone-warning .app-stat-icon{
  background:rgba(245,158,11,.14);
  color:#d97706;
}
.app-stat-tone-danger .app-stat-icon{
  background:rgba(239,68,68,.12);
  color:#dc2626;
}
.app-stat-tone-dark .app-stat-icon{
  background:rgba(15,23,42,.08);
  color:#0f172a;
}
.app-admin-content .border.rounded.p-3,
.app-admin-content .border.rounded.p-2{
  border-color:rgba(148,163,184,.18) !important;
  background:linear-gradient(180deg, rgba(248,250,252,.92), rgba(255,255,255,.96));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6);
}
@media (max-width: 991px){
  .app-admin-hero{
    flex-direction:column;
  }
  .app-admin-hero-meta{
    justify-content:flex-start;
  }
}
@media (max-width: 576px){
  .app-admin-main{ gap:1rem; }
  .app-admin-hero{
    padding:1.05rem;
    border-radius:22px;
  }
  .app-admin-hero-icon{
    width:54px;
    height:54px;
    border-radius:18px;
  }
  .app-admin-hero-title{
    font-size:1.25rem;
  }
  body.app-admin-body .page-toolbar{
    padding:.95rem;
    border-radius:18px;
  }
  body.app-admin-body .nav-tabs,
  body.app-admin-body .nav-pills{
    gap:.42rem;
  }
  body.app-admin-body .nav-tabs .nav-link,
  body.app-admin-body .nav-pills .nav-link{
    padding:.56rem .82rem;
    font-size:.92rem;
  }
  body.app-admin-body .card-body,
  body.app-admin-body .card-header{
    padding:1rem;
  }
}


/* ------------------------------------------------------------------ */
/* Admin Phase 2 — operação visual                                     */
/* ------------------------------------------------------------------ */
.app-admin-shell{
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.app-admin-surface{
  border-radius:22px;
  border:1px solid rgba(148,163,184,.18);
  background:rgba(255,255,255,.88);
  box-shadow:0 14px 30px rgba(15,23,42,.06);
  backdrop-filter:saturate(160%) blur(12px);
}
.app-admin-surface .card-body,
.app-admin-surface .card-header{
  background:transparent;
}
.app-admin-inline-meta{
  display:flex;
  align-items:center;
  gap:.55rem;
  flex-wrap:wrap;
  color:#64748b;
  font-size:.86rem;
}
.app-admin-inline-meta .dot{
  width:4px;
  height:4px;
  border-radius:999px;
  background:#cbd5e1;
}
.app-mini-stat{
  border-radius:18px;
  border:1px solid rgba(148,163,184,.16);
  background:linear-gradient(180deg, rgba(248,250,252,.94), rgba(255,255,255,.98));
  box-shadow:0 12px 24px rgba(15,23,42,.05);
  padding:1rem;
  height:100%;
}
.app-mini-stat-label{
  display:flex;
  align-items:center;
  gap:.55rem;
  color:#64748b;
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-weight:800;
}
.app-mini-stat-label i{
  width:30px;
  height:30px;
  border-radius:11px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(37,99,235,.1);
  color:#1d4ed8;
  font-size:.92rem;
}
.app-mini-stat-value{
  margin-top:.85rem;
  color:#0f172a;
  font-size:1.45rem;
  line-height:1.05;
  letter-spacing:-.03em;
  font-weight:800;
}
.app-mini-stat-meta{
  margin-top:.38rem;
  color:#64748b;
  font-size:.84rem;
}
.app-filter-shell{
  position:relative;
  overflow:hidden;
}
.app-filter-shell::before{
  content:'';
  position:absolute;
  inset:0 auto auto 0;
  width:100%;
  height:4px;
  background:linear-gradient(90deg,#1d4ed8,#60a5fa);
}
.app-section-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  flex-wrap:wrap;
  margin-bottom:.9rem;
}
.app-section-title h5,
.app-section-title h6{
  margin:0;
  font-weight:800;
  letter-spacing:-.02em;
}
.app-section-title .meta{
  color:#64748b;
  font-size:.86rem;
}
.app-kanban-column .card-header{
  background:linear-gradient(180deg, rgba(241,245,249,.96), rgba(255,255,255,.98));
}
.app-kanban-stack{
  display:grid;
  gap:.75rem;
  max-height:68vh;
  overflow:auto;
  padding-right:.15rem;
}
.app-kanban-item{
  border-radius:18px !important;
  border-color:rgba(148,163,184,.18) !important;
  background:linear-gradient(180deg, rgba(248,250,252,.95), rgba(255,255,255,.98));
  box-shadow:0 10px 22px rgba(15,23,42,.05);
}
.app-kanban-item .badge{
  background:rgba(255,255,255,.86);
}
.app-admin-code-soft{
  display:inline-flex;
  align-items:center;
  padding:.2rem .5rem;
  border-radius:999px;
  background:rgba(15,23,42,.06);
  color:#334155;
  font-size:.78rem;
  font-family:inherit;
}
.app-admin-data-card{
  border-radius:20px;
  border:1px solid rgba(148,163,184,.16);
  background:linear-gradient(180deg, rgba(248,250,252,.94), rgba(255,255,255,.98));
  box-shadow:0 12px 24px rgba(15,23,42,.05);
}
.dash-shell .dash-sensitive{ position:relative; white-space:nowrap; }
.dash-shell.dash-private .dash-sensitive,
.dash-private .dash-sensitive{ color:transparent !important; user-select:none; }
.dash-shell.dash-private .dash-sensitive::after,
.dash-private .dash-sensitive::after{ content:attr(data-mask); color:var(--bs-body-color, #212529); position:absolute; left:0; top:0; }
.dash-shell .dash-segment{
  display:inline-flex;
  border:1px solid rgba(0,0,0,.12);
  background:rgba(0,0,0,.02);
  border-radius:999px;
  padding:4px;
  gap:4px;
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.dash-shell .dash-segment::-webkit-scrollbar{ display:none; }
.dash-shell .dash-segment label{
  cursor:pointer;
  user-select:none;
  border-radius:999px;
  padding:.45rem .75rem;
  font-size:.875rem;
  line-height:1;
  border:1px solid transparent;
  color:rgba(0,0,0,.75);
  white-space:nowrap;
  flex:0 0 auto;
}
.dash-shell .dash-segment .btn-check:focus + label,
.dash-shell .dash-segment label:focus{ outline:none; box-shadow:0 0 0 .2rem rgba(13,110,253,.15); }
.dash-shell .dash-segment .btn-check:checked + label{ background:#111; color:#fff; border-color:rgba(0,0,0,.15); }
.dash-shell .chip-check .btn{ border-radius:999px; }
.dash-shell .chip-check .btn-outline-dark{ border-color:rgba(0,0,0,.15); }
.dash-shell .chip-check .btn-check:checked + .btn{ background:#111; color:#fff; border-color:#111; }
.dash-shell .soft-divider{ height:1px; background:rgba(148,163,184,.18); }
@media (max-width: 420px){
  .dash-shell .dash-segment label{ padding:.4rem .6rem; font-size:.82rem; }
}
@media (max-width: 576px){
  .app-mini-stat{ padding:.9rem; }
}

/* ------------------------------------------------------------------ */
/* Admin Loft — padrão verde e contenção de largura                    */
/* ------------------------------------------------------------------ */
body.app-admin-body{
  overflow-x:hidden;
}
body.app-admin-body .app-admin-main,
body.app-admin-body .app-admin-content,
body.app-admin-body .container,
body.app-admin-body .container-fluid,
body.app-admin-body .row,
body.app-admin-body [class*="col-"]{
  min-width:0;
}
body.app-admin-body .app-admin-main,
body.app-admin-body .app-admin-content{
  max-width:100%;
  overflow-x:hidden;
}
body.app-admin-body .app-admin-hero{
  border-radius:8px;
  border-color:rgba(207,230,219,.9);
  background:linear-gradient(135deg,#103523 0%,#166b4b 56%,#dff5ea 100%);
  box-shadow:0 18px 45px rgba(19,68,45,.16);
}
body.app-admin-body .app-admin-hero-badge,
body.app-admin-body .app-admin-hero-pill,
body.app-admin-body .app-admin-hero-icon,
body.app-admin-body .page-toolbar,
body.app-admin-body .card,
body.app-admin-body .alert,
body.app-admin-body .app-admin-surface,
body.app-admin-body .app-mini-stat,
body.app-admin-body .app-admin-data-card,
body.app-admin-body .app-kanban-item,
body.app-admin-body .btn,
body.app-admin-body .btn-sm,
body.app-admin-body .form-control,
body.app-admin-body .form-select,
body.app-admin-body textarea,
body.app-admin-body .input-group-text{
  border-radius:8px !important;
}
body.app-admin-body .app-admin-hero-badge{
  color:#d8f6e8;
  letter-spacing:0;
}
body.app-admin-body .app-admin-hero-title,
body.app-admin-body .page-title,
body.app-admin-body .app-stat-value,
body.app-admin-body .app-mini-stat-value{
  letter-spacing:0;
}
body.app-admin-body .app-admin-hero-orb{
  display:none;
}
body.app-admin-body .card{
  min-width:0;
  max-width:100%;
}
body.app-admin-body .card:hover{
  border-color:rgba(17,137,87,.18);
}
body.app-admin-body .form-control:focus,
body.app-admin-body .form-select:focus,
body.app-admin-body textarea:focus{
  border-color:rgba(17,137,87,.42);
  box-shadow:0 0 0 .22rem rgba(17,137,87,.12);
}
body.app-admin-body .nav-tabs .nav-link.active,
body.app-admin-body .nav-pills .nav-link.active{
  background:linear-gradient(135deg,#0b3f2d,#118957);
  box-shadow:0 12px 22px rgba(17,137,87,.2);
}
body.app-admin-body .table-responsive{
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border-radius:8px;
}
body.app-admin-body .table{
  width:100%;
}
body.app-admin-body .table th,
body.app-admin-body .table td{
  overflow-wrap:anywhere;
}
body.app-admin-body .text-nowrap,
body.app-admin-body .font-monospace{
  overflow-wrap:normal;
}
body.app-admin-body .btn,
body.app-admin-body .badge{
  max-width:100%;
}
body.app-admin-body .btn-group,
body.app-admin-body .page-actions,
body.app-admin-body .d-flex{
  min-width:0;
}
body.app-admin-body .btn-group{
  flex-wrap:wrap;
}
body.app-admin-body .app-stat-card{
  min-height:128px;
  text-decoration:none;
}
body.app-admin-body .app-stat-head{
  justify-content:space-between;
}
body.app-admin-body .app-stat-label,
body.app-admin-body .app-stat-meta{
  overflow-wrap:anywhere;
}
body.app-admin-body .app-admin-shell,
body.app-admin-body .app-admin-surface,
body.app-admin-body .filters-card,
body.app-admin-body .table-shell{
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
body.app-admin-body .filters-card .row,
body.app-admin-body form.row{
  min-width:0;
}
body.app-admin-body .app-stat-icon,
body.app-admin-body .app-mini-stat-label i{
  background:rgba(17,137,87,.12);
  color:#118957;
}
body.app-admin-body .app-filter-shell::before{
  background:linear-gradient(90deg,#0b3f2d,#118957,#dff5ea);
}
@media (max-width:576px){
  body.app-admin-body .table-responsive > .table{
    min-width:560px;
  }
  body.app-admin-body .app-stat-card{
    min-height:116px;
  }
  body.app-admin-body .app-stat-card .card-body{
    padding:.9rem;
  }
  body.app-admin-body .app-stat-value{
    font-size:1.22rem;
  }
  body.app-admin-body .app-admin-hero{
    padding:1.05rem;
  }
  body.app-admin-body .app-admin-hero-copy > .d-flex{
    gap:.75rem !important;
  }
  body.app-admin-body .app-admin-hero-icon{
    width:48px;
    height:48px;
  }
  body.app-admin-body .app-admin-hero-meta{
    width:100%;
    justify-content:flex-start;
  }
  body.app-admin-body .btn{
    white-space:normal;
  }
  body.app-admin-body .page-toolbar{
    align-items:stretch;
    flex-direction:column;
  }
  body.app-admin-body .page-actions{
    justify-content:flex-start;
  }
}


/* ------------------------------------------------------------------ */
/* Admin Phase 3 — formulários e ações                                */
/* ------------------------------------------------------------------ */
.app-admin-form-shell{
  overflow:hidden;
}
.app-form-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
}
.app-form-kicker{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  margin-bottom:.45rem;
  font-size:.78rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#64748b;
}
.app-form-header-icon{
  width:56px;
  height:56px;
  border-radius:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg, rgba(37,99,235,.12), rgba(96,165,250,.18));
  color:#1d4ed8;
  font-size:1.35rem;
  box-shadow:inset 0 0 0 1px rgba(37,99,235,.08);
}
.app-form-section,
.app-form-sidecard{
  border:1px solid rgba(148,163,184,.18);
  border-radius:20px;
  background:linear-gradient(180deg, rgba(248,250,252,.92), rgba(255,255,255,.98));
  box-shadow:0 12px 24px rgba(15,23,42,.05);
  padding:1rem;
}
.app-form-section-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  flex-wrap:wrap;
  margin-bottom:1rem;
}
.app-form-section-title h5,
.app-form-section-title h6{
  margin:0;
  font-weight:800;
  letter-spacing:-.02em;
}
.app-form-section-title span{
  color:#64748b;
  font-size:.84rem;
}
.app-check-stack{
  display:grid;
  gap:.6rem;
}
.app-check-stack .form-check{
  min-height:46px;
  display:flex;
  align-items:center;
  gap:.55rem;
  padding:.72rem .85rem;
  border-radius:16px;
  border:1px solid rgba(148,163,184,.18);
  background:rgba(255,255,255,.84);
}
.app-check-stack .form-check-input{
  float:none;
  margin:0;
}
.app-check-stack .form-check-label{
  font-weight:600;
  color:#334155;
}
.app-form-checklist{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:.85rem;
}
.app-form-checklist li{
  display:flex;
  align-items:flex-start;
  gap:.7rem;
  color:#334155;
}
.app-form-checklist i{
  color:#2563eb;
  font-size:1rem;
  margin-top:.1rem;
}
body.app-admin-body .searchable-select .form-control{
  padding-right:2.5rem;
}
body.app-admin-body .searchable-select::after{
  content:'\F282';
  font-family:'bootstrap-icons';
  position:absolute;
  right:.9rem;
  top:50%;
  transform:translateY(-50%);
  color:#64748b;
  pointer-events:none;
  font-size:.95rem;
}
body.app-admin-body .searchable-select .ss-item{
  border-radius:12px;
}
body.app-admin-body .searchable-select .ss-item + .ss-item{
  margin-top:2px;
}
@media (max-width: 768px){
  .app-form-header-icon{
    width:48px;
    height:48px;
    border-radius:16px;
  }
  .app-form-section,
  .app-form-sidecard{
    padding:.9rem;
  }
}


/* ------------------------------------------------------------------ */
/* Admin Phase 4 — entrada e páginas auxiliares                        */
/* ------------------------------------------------------------------ */
.app-admin-login-body{
  min-height:100vh;
  background:
    radial-gradient(circle at top left, rgba(96,165,250,.16), transparent 26%),
    radial-gradient(circle at bottom right, rgba(15,23,42,.16), transparent 28%),
    linear-gradient(180deg, #eef3fb 0%, #f8fafc 100%);
}
.app-admin-login-shell{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:2.25rem 0;
}
.app-admin-login-brand{
  position:relative;
  overflow:hidden;
  height:100%;
  border-radius:28px;
  padding:2rem 1.7rem;
  display:flex;
  flex-direction:column;
  gap:1.35rem;
  color:#fff;
  background:
    radial-gradient(circle at top right, rgba(96,165,250,.22), transparent 34%),
    radial-gradient(circle at bottom left, rgba(148,163,184,.16), transparent 32%),
    linear-gradient(145deg, rgba(15,23,42,.98), rgba(30,41,59,.95));
  box-shadow:0 24px 50px rgba(15,23,42,.18);
}
.app-admin-login-badge,
.app-admin-login-card-badge,
.app-receipt-badge{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  width:max-content;
  padding:.45rem .82rem;
  border-radius:999px;
  font-size:.78rem;
  font-weight:800;
}
.app-admin-login-badge{
  color:#dbeafe;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.16);
  text-transform:uppercase;
  letter-spacing:.08em;
}
.app-admin-login-title{
  margin:0;
  font-size:clamp(2rem, 4vw, 2.8rem);
  line-height:1.02;
  letter-spacing:-.04em;
  font-weight:900;
}
.app-admin-login-subtitle{
  margin:.7rem 0 0;
  color:rgba(226,232,240,.88);
  max-width:34rem;
  line-height:1.65;
}
.app-admin-login-points{
  display:flex;
  flex-direction:column;
  gap:.95rem;
}
.app-admin-login-point{
  position:relative;
  z-index:1;
  display:flex;
  align-items:flex-start;
  gap:.9rem;
  padding:1rem 1.05rem;
  border-radius:20px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.1);
  backdrop-filter:blur(10px);
}
.app-admin-login-point-icon{
  width:44px;
  height:44px;
  border-radius:15px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:1.05rem;
  flex:0 0 auto;
}
.app-admin-login-point strong{
  display:block;
  font-size:.98rem;
}
.app-admin-login-point small{
  display:block;
  margin-top:.2rem;
  color:rgba(226,232,240,.82);
  line-height:1.5;
}
.app-admin-login-footer{
  margin-top:auto;
  position:relative;
  z-index:1;
  color:rgba(226,232,240,.72);
  font-size:.88rem;
}
.app-admin-login-orb{
  position:absolute;
  border-radius:999px;
  pointer-events:none;
  filter:blur(4px);
}
.app-admin-login-orb.orb-one{
  width:170px;
  height:170px;
  right:-48px;
  top:-52px;
  background:rgba(96,165,250,.2);
}
.app-admin-login-orb.orb-two{
  width:145px;
  height:145px;
  left:-44px;
  bottom:-68px;
  background:rgba(148,163,184,.14);
}
.app-admin-login-card{
  border:1px solid rgba(148,163,184,.18);
  border-radius:28px;
  background:rgba(255,255,255,.9);
  box-shadow:0 24px 48px rgba(15,23,42,.1);
  backdrop-filter:blur(12px);
}
.app-admin-login-card-badge{
  color:#1d4ed8;
  background:rgba(37,99,235,.08);
  border:1px solid rgba(37,99,235,.14);
}
.app-admin-login-card-title{
  margin:.8rem 0 .35rem;
  font-size:2rem;
  line-height:1.05;
  letter-spacing:-.04em;
  font-weight:900;
  color:#0f172a;
}
.app-admin-login-card-subtitle{
  margin:0;
  color:#64748b;
  line-height:1.6;
}
.app-admin-login-form .input-group-text{
  min-width:54px;
  justify-content:center;
}
.app-admin-login-form .form-control[readonly]{
  background:#f8fafc;
  color:#334155;
}
.app-empty-state-card{
  overflow:hidden;
}
.app-empty-state{
  display:flex;
  align-items:flex-start;
  gap:1.05rem;
}
.app-empty-state-icon{
  width:64px;
  height:64px;
  border-radius:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  font-size:1.4rem;
  background:rgba(37,99,235,.1);
  color:#1d4ed8;
}
.app-empty-state-icon.warning{
  background:rgba(245,158,11,.14);
  color:#d97706;
}
.app-empty-state-title{
  margin:0 0 .35rem;
  font-size:1.5rem;
  line-height:1.1;
  letter-spacing:-.03em;
  font-weight:850;
  color:#0f172a;
}
.app-empty-state-text{
  color:#64748b;
  line-height:1.6;
}
.app-receipt-shell .page-toolbar{
  margin-bottom:0;
}
.app-receipt-card{
  overflow:hidden;
}
.app-receipt-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  padding-bottom:1.1rem;
  margin-bottom:1rem;
  border-bottom:1px solid rgba(148,163,184,.16);
}
.app-receipt-badge{
  color:#0f172a;
  background:rgba(15,23,42,.06);
  border:1px solid rgba(148,163,184,.18);
}
.app-receipt-title{
  font-size:clamp(1.4rem, 2vw, 1.9rem);
  line-height:1.08;
  letter-spacing:-.03em;
  font-weight:900;
  color:#0f172a;
}
.app-receipt-subtitle{
  color:#64748b;
  line-height:1.6;
}
.app-receipt-head-side{
  min-width:180px;
  text-align:right;
}
.app-receipt-reference{
  font-size:1.12rem;
  font-weight:800;
  letter-spacing:-.02em;
}
.app-receipt-metric,
.app-receipt-total-card{
  height:100%;
  border-radius:18px;
  border:1px solid rgba(148,163,184,.18);
  background:linear-gradient(180deg, rgba(248,250,252,.94), rgba(255,255,255,.96));
  padding:1rem 1.05rem;
}
.app-receipt-metric.compact{
  padding:.95rem 1rem;
}
.app-receipt-metric .label,
.app-receipt-total-card span{
  display:block;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-weight:800;
  color:#64748b;
  margin-bottom:.38rem;
}
.app-receipt-metric strong,
.app-receipt-total-card strong{
  display:block;
  font-size:1.05rem;
  color:#0f172a;
  line-height:1.4;
}
.app-receipt-total-card.highlight{
  background:linear-gradient(135deg, rgba(15,23,42,.98), rgba(29,78,216,.94));
  border-color:transparent;
  box-shadow:0 18px 32px rgba(29,78,216,.2);
}
.app-receipt-total-card.highlight span,
.app-receipt-total-card.highlight strong{
  color:#fff;
}
.app-receipt-section{
  border-radius:22px;
  border:1px solid rgba(148,163,184,.18);
  background:rgba(248,250,252,.72);
  padding:1.1rem;
}
.app-receipt-section-title{
  margin-bottom:.95rem;
  font-size:.98rem;
  font-weight:850;
  color:#0f172a;
}
.app-receipt-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding-top:1rem;
  border-top:1px solid rgba(148,163,184,.16);
}
@media (max-width: 991px){
  .app-admin-login-shell{
    padding:1.5rem 0;
  }
}
@media (max-width: 767px){
  .app-empty-state,
  .app-receipt-head,
  .app-receipt-foot{
    flex-direction:column;
  }
  .app-receipt-head-side{
    text-align:left;
    min-width:0;
  }
}
@media print{
  .app-admin-login-shell{ min-height:auto; }
  .app-receipt-shell .page-toolbar,
  .app-admin-navbar,
  .offcanvas,
  .toast-container,
  .app-admin-hero{ display:none !important; }
  .app-receipt-card,
  .app-receipt-section,
  .app-receipt-metric,
  .app-receipt-total-card{
    box-shadow:none !important;
  }
}

/* ------------------------------------------------------------------ */
/* Admin Phase 6 — energia operacional                                 */
/* ------------------------------------------------------------------ */
.app-energy-shell,
.app-energy-panel{
  overflow:hidden;
}
.app-energy-stat-filter{
  display:block;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  text-align:left;
}
.app-energy-stat-filter .app-stat-card{
  transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease;
}
.app-energy-stat-filter:hover .app-stat-card{
  transform:translateY(-2px);
  box-shadow:0 .65rem 1.6rem rgba(15,23,42,.12)!important;
}
.app-energy-stat-filter.is-active .app-stat-card{
  border-color:rgba(37,99,235,.38);
  box-shadow:0 0 0 2px rgba(37,99,235,.08),0 .65rem 1.6rem rgba(15,23,42,.08)!important;
}
.app-energy-filter-chips{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
}
.app-energy-filter-chips .btn{
  border-radius:999px;
  padding:.5rem .82rem;
  font-weight:700;
}
.app-energy-filter-chips .btn.is-active{
  background:#0f172a;
  border-color:#0f172a;
  color:#fff;
}
.app-energy-tip{
  display:flex;
  align-items:flex-start;
  gap:.55rem;
  padding:.8rem .95rem;
  border-radius:16px;
  border:1px dashed rgba(148,163,184,.28);
  background:rgba(248,250,252,.86);
  color:#475569;
  font-size:.88rem;
}
.app-energy-client-card{
  border-radius:22px;
  border:1px solid rgba(148,163,184,.18);
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,252,.95));
  box-shadow:0 14px 28px rgba(15,23,42,.06);
}
.app-energy-client-card.is-readonly{
  border-color:rgba(34,197,94,.22);
}
.app-energy-client-card.is-canceled{
  border-color:rgba(100,116,139,.26);
}
.app-energy-client-name{
  font-size:1.04rem;
  line-height:1.2;
  font-weight:800;
  letter-spacing:-.02em;
  color:#0f172a;
}
.app-energy-client-meta{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem .9rem;
  margin-top:.45rem;
  color:#64748b;
  font-size:.84rem;
}
.app-energy-client-meta span{
  display:inline-flex;
  align-items:center;
}
.app-energy-value-box{
  padding:1rem;
  border-radius:18px;
  border:1px solid rgba(148,163,184,.16);
  background:linear-gradient(180deg, rgba(248,250,252,.94), rgba(255,255,255,.98));
}
.app-energy-input-wrap,
.app-energy-table-input-wrap{
  position:relative;
}
.app-energy-input-wrap .form-control,
.app-energy-table-input-wrap .form-control{
  padding-left:3rem;
  border-radius:16px;
  font-weight:700;
}
.app-energy-input-prefix{
  position:absolute;
  left:1rem;
  top:50%;
  transform:translateY(-50%);
  color:#64748b;
  font-size:.88rem;
  font-weight:800;
  z-index:2;
}
.js-energy-value.is-dirty{
  border-color:rgba(37,99,235,.34);
  background:rgba(239,246,255,.92);
  box-shadow:0 0 0 .2rem rgba(37,99,235,.08);
}
.app-energy-muted-note{
  display:inline-flex;
  align-items:center;
  padding:.35rem 0;
  color:#64748b;
  font-size:.88rem;
}
.app-energy-actions .btn-group .btn{
  border-radius:12px;
}
.app-energy-actions .btn-group .btn + .btn{
  margin-left:0;
}
.app-energy-table thead th{
  white-space:nowrap;
}
.app-energy-table tbody tr td{
  vertical-align:middle;
}
.app-energy-empty{
  display:grid;
  place-items:center;
  gap:.55rem;
  text-align:center;
  padding:2rem 1rem .5rem;
  color:#64748b;
}
.app-energy-empty-icon{
  width:56px;
  height:56px;
  border-radius:18px;
  display:grid;
  place-items:center;
  background:rgba(37,99,235,.08);
  color:#2563eb;
  font-size:1.35rem;
}
.app-energy-empty h3{
  margin:0;
  color:#0f172a;
  font-size:1.05rem;
  font-weight:800;
}
.app-energy-empty p{
  margin:0;
}
.app-energy-savebar{
  position:static;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  padding:.9rem 1rem;
  border-radius:20px;
  border:1px solid rgba(148,163,184,.2);
  background:rgba(255,255,255,.96);
  box-shadow:0 18px 42px rgba(15,23,42,.12);
  backdrop-filter:saturate(160%) blur(14px);
}
.app-energy-savebar.is-enhanced:not(.is-readonly){
  position:fixed;
  left:50%;
  bottom:18px;
  z-index:1042;
  width:min(980px,calc(100% - 32px));
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translate(-50%,12px);
  transition:opacity .16s ease,transform .16s ease,visibility .16s ease,bottom .16s ease;
}
.app-energy-savebar.is-enhanced.is-visible:not(.is-readonly){
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate(-50%,0);
}
.app-energy-savebar.is-readonly{
  box-shadow:none;
}
.app-energy-savebar-label{
  color:#0f172a;
  font-weight:800;
  letter-spacing:-.02em;
}
.app-energy-savebar-meta{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.55rem;
  margin-top:.3rem;
  color:#64748b;
  font-size:.88rem;
}
.app-energy-savebar-meta .dot{
  width:4px;
  height:4px;
  border-radius:999px;
  background:#cbd5e1;
}
.app-energy-savebar-actions{
  display:flex;
  align-items:center;
  gap:.9rem;
  flex-wrap:wrap;
  margin-left:auto;
}
.app-energy-save-switch{
  margin:0;
  padding:0;
  color:#334155;
}
.app-energy-save-switch .form-check-input{
  margin-right:.55rem;
}
@media (max-width: 991px){
  .app-energy-savebar.is-enhanced:not(.is-readonly){
    width:calc(100% - 24px);
  }
}
@media (max-width: 767px){
  .app-energy-client-meta{
    gap:.45rem .75rem;
  }
  .app-energy-savebar.is-enhanced:not(.is-readonly){
    bottom:var(--app-admin-mobile-nav-clearance);
    width:calc(100% - 22px);
    padding:.75rem .8rem;
    border-radius:18px;
  }
  .app-energy-savebar-actions{
    width:100%;
    margin-left:0;
    justify-content:space-between;
    gap:.65rem;
  }
  .app-energy-savebar-actions .btn{
    width:auto;
    flex:0 0 auto;
  }
  .app-energy-save-switch{
    flex:1 1 auto;
    min-width:0;
    font-size:.82rem;
  }
  .app-energy-form.has-pending-changes .app-energy-panel{
    margin-bottom:7rem;
  }
}

/* ------------------------------------------------------------------ */
/* Caminho A — Cobranças / Clientes                                     */
/* ------------------------------------------------------------------ */
.page-hero{
  position:relative;
  overflow:hidden;
  border:1px solid var(--border-soft);
  border-radius:24px;
  background:linear-gradient(135deg, #ffffff 0%, #f8fbff 48%, #eef4ff 100%);
  box-shadow:var(--shadow-soft);
  margin-bottom:18px;
}
.page-hero::after{
  content:"";
  position:absolute;
  right:-72px;
  top:-72px;
  width:220px;
  height:220px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(37,99,235,.10) 0%, rgba(37,99,235,0) 70%);
  pointer-events:none;
}
.page-hero-inner{
  position:relative;
  z-index:1;
  padding:20px 22px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
}
.page-hero-main{
  display:flex;
  align-items:flex-start;
  gap:16px;
  min-width:0;
  flex:1 1 420px;
}
.page-hero-icon{
  width:52px;
  height:52px;
  border-radius:16px;
  background:rgba(37,99,235,.10);
  color:#2563eb;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:1.35rem;
  box-shadow:inset 0 0 0 1px rgba(37,99,235,.08);
}
.page-hero-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(15,23,42,.04);
  color:#475569;
  font-size:.8rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.03em;
}
.page-hero-title{ margin:10px 0 4px; font-size:1.45rem; font-weight:800; }
.page-hero-subtitle{ margin:0; color:var(--text-2); max-width:720px; }
.page-hero-actions{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.metric-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(190px, 1fr));
  gap:14px;
  margin-bottom:18px;
}
.metric-card{
  border:1px solid var(--border-soft);
  border-radius:18px;
  background:#fff;
  box-shadow:var(--shadow-soft);
  padding:16px 18px;
}
.metric-top{
  display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:8px;
}
.metric-label{ color:var(--text-2); font-size:.9rem; font-weight:600; }
.metric-icon{
  width:38px; height:38px; border-radius:12px; display:inline-flex; align-items:center; justify-content:center;
  background:rgba(15,23,42,.05); color:#0f172a;
}
.metric-value{ font-size:1.4rem; font-weight:800; color:var(--text-1); line-height:1.2; }
.metric-meta{ color:var(--text-2); font-size:.88rem; margin-top:3px; }
.metric-card.is-success .metric-icon{ background:rgba(22,163,74,.12); color:#15803d; }
.metric-card.is-warning .metric-icon{ background:rgba(245,158,11,.16); color:#b45309; }
.metric-card.is-danger .metric-icon{ background:rgba(239,68,68,.14); color:#dc2626; }
.metric-card.is-primary .metric-icon{ background:rgba(37,99,235,.12); color:#1d4ed8; }
.surface-card{
  border:1px solid var(--border-soft);
  border-radius:20px;
  background:#fff;
  box-shadow:var(--shadow-soft);
  margin-bottom:18px;
}
.surface-card > .surface-card-header{
  padding:16px 18px 0;
}
.surface-card > .surface-card-body{
  padding:18px;
}
.surface-card-title{ font-size:1rem; font-weight:800; margin:0; }
.surface-card-subtitle{ color:var(--text-2); font-size:.9rem; margin:.2rem 0 0; }
.quick-pills{ display:flex; gap:8px; flex-wrap:wrap; }
.quick-pills .btn{ border-radius:999px; }
.filters-grid-tight > [class*="col-"] { display:flex; }
.filters-grid-tight .filter-box{
  width:100%;
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  background:#fff;
  padding:12px 14px;
}
.filters-grid-tight .filter-box label{ font-weight:700; margin-bottom:8px; }
.section-stack{ display:flex; flex-direction:column; gap:16px; }
.table-shell{
  border:1px solid var(--border-soft);
  border-radius:18px;
  background:#fff;
  overflow:hidden;
}
.table-shell .table{ margin-bottom:0; }
.table-shell thead th{
  background:#f8fafc;
  border-bottom-color:rgba(15,23,42,.08);
  color:#334155;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.03em;
}
.table-shell tbody tr:hover{ background:rgba(37,99,235,.03); }
.entity-card{
  border:1px solid rgba(15,23,42,.08);
  border-radius:18px;
  background:#fff;
  box-shadow:var(--shadow-soft);
  height:100%;
}
.entity-card .entity-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}
.entity-card .entity-name{ font-size:1.06rem; font-weight:800; color:var(--text-1); }
.entity-meta{ display:flex; flex-wrap:wrap; gap:8px 12px; color:var(--text-2); font-size:.9rem; }
.entity-stack{ display:flex; flex-direction:column; gap:10px; }
.entity-line{ display:flex; align-items:center; gap:10px; color:var(--text-2); font-size:.92rem; }
.entity-line i{ color:#2563eb; }
.entity-actions{ display:flex; flex-wrap:wrap; gap:8px; }
.entity-actions .btn{ border-radius:12px; }
.record-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; }
.record-box{
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  padding:14px 16px;
  background:#fff;
}
.record-box-label{ color:var(--text-2); font-size:.86rem; font-weight:700; margin-bottom:4px; }
.record-box-value{ color:var(--text-1); font-size:1rem; font-weight:700; }
.record-box-sub{ color:var(--text-2); font-size:.85rem; margin-top:4px; }
.action-band{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  padding:14px 16px;
  border:1px dashed rgba(15,23,42,.12);
  border-radius:16px;
  background:rgba(248,250,252,.95);
}
.action-band-meta{ color:var(--text-2); font-size:.9rem; }
.inline-count-badge{
  display:inline-flex; align-items:center; gap:6px; padding:7px 12px; border-radius:999px;
  background:rgba(15,23,42,.05); color:#334155; font-size:.86rem; font-weight:700;
}
.section-nav-clean .nav-link{
  border:none;
  border-radius:12px;
  color:var(--text-2);
  font-weight:700;
  padding:.7rem 1rem;
}
.section-nav-clean .nav-link.active{
  background:rgba(37,99,235,.10);
  color:#1d4ed8;
}
.info-callout{
  border:1px solid rgba(37,99,235,.12);
  background:rgba(37,99,235,.05);
  border-radius:16px;
  padding:14px 16px;
}
.info-callout .title{ font-weight:800; margin-bottom:4px; }
@media (max-width: 767px){
  .page-hero-inner{ padding:18px; }
  .page-hero-title{ font-size:1.2rem; }
  .surface-card > .surface-card-body{ padding:16px; }
}


/* ------------------------------------------------------------------ */
/* Admin — busca global + mobile                                       */
/* ------------------------------------------------------------------ */
.app-admin-topsearch{
  flex:1 1 420px;
  max-width:min(620px, 100%);
  margin-inline:1rem;
}
.app-admin-topsearch-group{
  border:1px solid rgba(148,163,184,.24);
  border-radius:16px;
  overflow:hidden;
  background:rgba(255,255,255,.92);
  box-shadow:0 10px 24px rgba(15,23,42,.06);
}
.app-admin-topsearch-group .input-group-text,
.app-admin-topsearch-group .form-control,
.app-admin-topsearch-group .btn{
  min-height:42px;
  border:0 !important;
  box-shadow:none !important;
}
.app-admin-topsearch-group .input-group-text{
  background:transparent;
  color:#64748b;
  padding-left:.9rem;
}
.app-admin-topsearch-group .form-control{
  background:transparent;
  padding-inline:.2rem;
}
.app-admin-topsearch-group .form-control::placeholder{
  color:#94a3b8;
}
.app-admin-topsearch-group .btn{
  border-radius:0;
  padding-inline:1rem;
}
.app-global-search-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:14px;
}
.app-global-search-card{
  border:1px solid rgba(148,163,184,.18);
  border-radius:20px;
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,252,.95));
  box-shadow:0 14px 30px rgba(15,23,42,.06);
}
.app-global-search-card .card-body{
  padding:1rem 1.05rem;
}
.app-global-search-chiprow{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
}
.app-global-search-chiprow .btn,
.app-global-search-chiprow .form-select{
  border-radius:999px;
}
.app-admin-mobilebar{
  position:fixed;
  left:12px;
  right:12px;
  bottom:calc(12px + env(safe-area-inset-bottom, 0px));
  z-index:1072;
  display:grid;
  grid-template-columns:repeat(5, minmax(0, 1fr));
  gap:.55rem;
  padding:.55rem;
  border:1px solid rgba(148,163,184,.18);
  border-radius:22px;
  background:rgba(255,255,255,.94);
  backdrop-filter:saturate(170%) blur(16px);
  box-shadow:0 22px 42px rgba(15,23,42,.18);
}
.app-admin-mobilebar a,
.app-admin-mobilebar button{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.18rem;
  min-height:58px;
  border:0;
  border-radius:16px;
  background:transparent;
  color:#475569;
  text-decoration:none;
  font-size:.73rem;
  font-weight:800;
  padding:.45rem .25rem;
}
.app-admin-mobilebar i{
  font-size:1.1rem;
  line-height:1;
}
.app-admin-mobilebar a.is-active,
.app-admin-mobilebar button.is-active,
.app-admin-mobilebar a:active,
.app-admin-mobilebar button:active{
  background:linear-gradient(135deg,#0f172a,#1d4ed8);
  color:#fff;
  box-shadow:0 14px 28px rgba(29,78,216,.22);
}
@media (max-width: 767px){
  body.app-admin-body .app-container{
    padding-bottom:1rem;
  }
  .app-admin-mobile-safe-space{
    height:128px;
  }
  .app-admin-drawer{
    padding-bottom:calc(118px + env(safe-area-inset-bottom, 0px));
  }
  .app-admin-drawer .offcanvas-body{
    padding-bottom:calc(132px + env(safe-area-inset-bottom, 0px));
    scroll-padding-bottom:calc(132px + env(safe-area-inset-bottom, 0px));
  }
  .app-admin-drawer-footer{
    padding-bottom:calc(132px + env(safe-area-inset-bottom, 0px));
    margin-bottom:calc(8px + env(safe-area-inset-bottom, 0px));
  }
  .app-admin-topsearch{
    display:none !important;
  }
  body.app-admin-body .page-toolbar{
    flex-direction:column;
    align-items:stretch;
  }
  body.app-admin-body .page-actions{
    width:100%;
    justify-content:flex-start;
  }
  body.app-admin-body .page-actions .btn,
  body.app-admin-body .page-actions .btn-group,
  body.app-admin-body .page-actions .btn-group .btn{
    width:100%;
  }
  .app-global-search-chiprow{
    flex-direction:column;
    align-items:stretch;
  }
}
@media (min-width: 768px){
  .app-admin-mobilebar{
    display:none !important;
  }
}

/* ------------------------------------------------------------------ */
/* Admin R16.9.6 — elementos flutuantes respeitam o menu móvel        */
/* ------------------------------------------------------------------ */
body.app-admin-body{
  --app-admin-mobile-nav-clearance:22px;
}
.app-scroll-top{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:1041;
  width:46px;
  height:46px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.12);
  background:rgba(255,255,255,.96);
  color:#0f172a;
  box-shadow:0 14px 34px rgba(15,23,42,.18);
  backdrop-filter:saturate(150%) blur(12px);
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(8px);
  transition:opacity .15s ease,transform .15s ease,visibility .15s ease,bottom .15s ease;
}
.app-scroll-top.is-visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}
.app-scroll-top:hover{background:#f8fafc;color:#0f172a}
body.modal-open .app-scroll-top{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
@media (max-width: 767.98px){
  body.app-admin-body{
    --app-admin-mobile-nav-clearance:calc(104px + env(safe-area-inset-bottom, 0px));
  }
  .app-scroll-top{
    right:14px;
    bottom:var(--app-admin-mobile-nav-clearance);
  }
  .app-scroll-top.has-bottom-dock{
    bottom:calc(var(--app-admin-mobile-nav-clearance) + 92px);
  }
  .app-admin-bottom-sheet .modal-dialog{
    margin:0;
    min-height:100%;
    height:100%;
    display:flex;
    align-items:flex-end;
    padding:0 0 var(--app-admin-mobile-nav-clearance);
    box-sizing:border-box;
  }
  .app-admin-bottom-sheet .modal-content{
    width:100%;
    max-height:calc(100dvh - var(--app-admin-mobile-nav-clearance) - 8px);
    border-radius:24px 24px 0 0;
  }
}


/* ------------------------------------------------------------------ */
/* PWA install prompt / shell                                          */
/* ------------------------------------------------------------------ */
.app-pwa-install{
  position:fixed;
  left:16px;
  right:16px;
  bottom:16px;
  z-index:1075;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 16px;
  border-radius:16px;
  border:1px solid rgba(15,23,42,0.08);
  background:rgba(255,255,255,0.98);
  box-shadow:0 16px 40px rgba(15,23,42,0.16);
  opacity:0;
  transform:translateY(10px);
  pointer-events:none;
  transition:opacity .16s ease, transform .16s ease;
  backdrop-filter:blur(8px);
}
.app-pwa-install.is-visible{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}
.app-pwa-install-copy{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.app-pwa-install-copy strong{
  font-size:.98rem;
  color:var(--text-1);
}
.app-pwa-install-copy span{
  font-size:.88rem;
  color:var(--text-2);
}
.app-pwa-install-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-shrink:0;
}
.app-admin-body .app-pwa-install{
  bottom:86px;
}
@media (max-width: 767.98px){
  body.app-admin-body .app-pwa-install{
    bottom:var(--app-admin-mobile-nav-clearance);
  }
}

/* R10 — UX mobile: evita pull-to-refresh/overscroll do navegador sem bloquear o scroll normal. */
html,
body{
  overscroll-behavior-y:none;
}

/* Mantém copiar/colar e seleção em texto/campos; remove o callout de pressionar/segurar em ações. */
a[href],
button,
.btn,
[role="button"],
img,
video,
audio{
  -webkit-touch-callout:none;
}

body.app-pwa-standalone{
  overscroll-behavior-y:none;
}
@media (min-width: 768px){
  .app-pwa-install{
    width:min(560px, calc(100vw - 32px));
    left:50%;
    right:auto;
    transform:translate(-50%, 10px);
  }
  .app-pwa-install.is-visible{
    transform:translate(-50%, 0);
  }
}
@media (max-width: 575.98px){
  .app-pwa-install{
    flex-direction:column;
    align-items:stretch;
  }
  .app-pwa-install-actions{
    width:100%;
  }
  .app-pwa-install-actions .btn{
    flex:1 1 auto;
  }
}

/* ------------------------------------------------------------------ */
/* Banco LOFT R15 — contexto operacional e privacidade                */
/* ------------------------------------------------------------------ */
.app-bank-privacy-toggle{
  min-width:44px;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
}
body.bank-values-hidden [data-bank-value]{
  filter:none;
  user-select:none;
  letter-spacing:.04em;
}
body:not(.bank-values-hidden) [data-bank-value]{
  letter-spacing:normal;
}
@media (max-width: 767.98px){
  body.app-bank-context .app-admin-hero{display:none;}
  body.app-bank-context .app-admin-main{gap:.55rem;}
  body.app-bank-context .app-admin-content{gap:.8rem;}
}

/* ------------------------------------------------------------------ */
/* Banco LOFT R16 — navegação móvel sempre disponível                 */
/* ------------------------------------------------------------------ */
@media (max-width: 767.98px){
  body.app-bank-context .app-admin-mobilebar{
    display:grid !important;
    visibility:visible !important;
    opacity:1 !important;
    transform:none !important;
  }
  body.app-bank-context .app-admin-mobile-safe-space{
    display:block !important;
  }
  /* Modais em formato bottom sheet terminam acima do menu móvel. */
  body.app-bank-context.modal-open .app-admin-mobilebar{
    z-index:1072;
  }
}

/* ------------------------------------------------------------------ */
/* Admin R16.9.7 — energia: seleção em lote e perfil de cobrança      */
/* ------------------------------------------------------------------ */
.js-energy-item.is-selected .app-energy-client-card{
  border-color:rgba(37,99,235,.55);
  box-shadow:0 0 0 2px rgba(37,99,235,.08),0 16px 34px rgba(15,23,42,.09);
}
.app-energy-table .js-energy-item.is-selected > td{
  background:rgba(239,246,255,.82);
}
.app-energy-bulk-dock{
  position:fixed;
  z-index:1043;
  left:50%;
  transform:translateX(-50%);
  bottom:18px;
  width:min(780px,calc(100% - 32px));
  border-radius:22px;
  padding:.78rem .9rem;
  background:#0f172a;
  color:#fff;
  box-shadow:0 24px 60px rgba(15,23,42,.28);
  display:none;
  align-items:center;
  justify-content:space-between;
  gap:.85rem;
  transition:bottom .16s ease;
}
.app-energy-bulk-dock.is-visible{display:flex}
.app-energy-bulk-dock.has-savebar{bottom:112px}
.app-energy-bulk-count{color:#cbd5e1;font-size:.82rem}
.app-energy-bulk-total{font-size:1.15rem;font-weight:800;line-height:1.15}
.app-energy-bulk-actions{display:flex;align-items:center;gap:.55rem}
.app-energy-bulk-dock .btn{border-radius:12px;white-space:nowrap}
.app-energy-bulk-modal .modal-content{border:0;border-radius:24px;overflow:hidden;box-shadow:0 24px 70px rgba(15,23,42,.24)}
.app-energy-bulk-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid #e2e8f0;border-radius:18px;background:#f8fafc}
.app-energy-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.app-energy-bulk-action{width:100%;border:1px solid #e2e8f0;border-radius:16px;background:#fff;padding:.85rem;display:flex;align-items:center;gap:.75rem;text-align:left}
.app-energy-bulk-action:hover{border-color:#93c5fd;background:#f8fbff}
.app-energy-bulk-action.is-active{border-color:#0d6efd;background:#eff6ff;box-shadow:0 0 0 2px rgba(13,110,253,.08)}
.app-energy-bulk-action-icon{width:38px;height:38px;border-radius:12px;background:#f1f5f9;display:inline-flex;align-items:center;justify-content:center;color:#0f172a;flex:0 0 auto}
.app-client-profile-option{cursor:pointer;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}
.app-client-profile-option:hover{border-color:#93c5fd!important}
.app-client-profile-option.border-primary{box-shadow:0 0 0 2px rgba(37,99,235,.08)}
@media (min-width:768px){
  .app-energy-scroll-top.has-bottom-dock{bottom:112px}
  .app-energy-scroll-top.has-two-bottom-docks{bottom:205px}
}
@media (max-width:767.98px){
  .app-energy-bulk-dock{
    bottom:var(--app-admin-mobile-nav-clearance);
    width:calc(100% - 22px);
    padding:.7rem .75rem;
    border-radius:18px;
  }
  .app-energy-bulk-dock.has-savebar{bottom:calc(var(--app-admin-mobile-nav-clearance) + 108px)}
  .app-energy-bulk-clear-label{display:none}
  .app-energy-bulk-modal .modal-dialog{
    margin:0;
    min-height:100%;
    height:100%;
    display:flex;
    align-items:flex-end;
    padding-bottom:var(--app-admin-mobile-nav-clearance);
    box-sizing:border-box;
  }
  .app-energy-bulk-modal .modal-content{
    width:100%;
    max-height:calc(100dvh - var(--app-admin-mobile-nav-clearance) - 8px);
    border-radius:24px 24px 0 0;
  }
  .app-energy-action-grid{grid-template-columns:1fr}
  .app-energy-scroll-top.has-two-bottom-docks{bottom:calc(var(--app-admin-mobile-nav-clearance) + 184px)}
  .app-energy-form.has-pending-changes:has(.app-energy-bulk-dock.is-visible) .app-energy-panel{margin-bottom:13rem}
}

/* ------------------------------------------------------------------ */
/* Admin polish: denser, calmer operational cockpit                    */
/* ------------------------------------------------------------------ */
body.app-admin-body{
  --admin-ink:#172033;
  --admin-muted:#667085;
  --admin-line:rgba(23,32,51,.10);
  --admin-surface:rgba(255,255,255,.94);
  background:
    radial-gradient(circle at 82% 8%, rgba(18,107,73,.10), transparent 27rem),
    radial-gradient(circle at 10% 18%, rgba(36,73,125,.10), transparent 30rem),
    linear-gradient(180deg,#f6f8fb 0%,#eef3f6 100%);
  color:var(--admin-ink);
}
body.app-admin-body .app-admin-navbar{
  min-height:68px;
  border-bottom:1px solid var(--admin-line)!important;
  background:rgba(255,255,255,.90)!important;
  box-shadow:0 12px 34px rgba(23,32,51,.08)!important;
  backdrop-filter:blur(18px);
}
body.app-admin-body .app-admin-menu-btn{
  width:42px;
  height:42px;
  border-radius:14px;
  justify-content:center;
  background:#fff;
}
body.app-admin-body .navbar-brand{
  color:var(--admin-ink);
  font-weight:900;
}
body.app-admin-body .app-admin-brand-icon{
  width:40px;
  height:40px;
  border-radius:14px;
  background:linear-gradient(135deg,#16213a,#126b49);
  color:#fff;
  box-shadow:0 12px 26px rgba(18,107,73,.18);
}
body.app-admin-body .app-admin-page-badge{
  height:40px;
  border-radius:999px;
  padding:0 .9rem;
  background:#fff!important;
  color:var(--admin-ink);
  font-weight:850;
}
body.app-admin-body .app-admin-topsearch{
  max-width:620px;
}
body.app-admin-body .app-admin-topsearch-group{
  border:1px solid rgba(23,32,51,.10);
  border-radius:16px;
  background:#fff;
  box-shadow:0 10px 24px rgba(23,32,51,.06);
}
body.app-admin-body .app-admin-topsearch-group .input-group-text,
body.app-admin-body .app-admin-topsearch-group .form-control,
body.app-admin-body .app-admin-topsearch-group .btn{
  min-height:46px;
}
body.app-admin-body .app-admin-topsearch-group .btn{
  min-width:96px;
  border-radius:0 15px 15px 0;
}
body.app-admin-body .app-container{
  max-width:1240px;
}
body.app-admin-body .app-admin-page-hero,
body.app-admin-body .app-admin-hero{
  border:1px solid rgba(255,255,255,.18);
  border-radius:22px;
  background:
    radial-gradient(circle at 88% 18%, rgba(31,163,108,.22), transparent 18rem),
    linear-gradient(135deg,#172033,#24496e);
  box-shadow:0 24px 70px rgba(23,32,51,.18);
}
body.app-admin-body .app-admin-hero-title{
  letter-spacing:0;
}
body.app-admin-body .app-admin-drawer{
  background:#f8fafc;
}
body.app-admin-body .app-admin-drawer-header,
body.app-admin-body .app-admin-drawer-hero,
body.app-admin-body .app-admin-drawer-user,
body.app-admin-body .app-admin-drawer-footer{
  background:rgba(255,255,255,.88);
}
body.app-admin-body .app-admin-accordion .accordion-item{
  border:0;
  background:transparent;
}
body.app-admin-body .app-admin-accordion .accordion-button{
  border-radius:16px!important;
  background:transparent;
}
body.app-admin-body .app-admin-accordion .accordion-button:not(.collapsed){
  background:rgba(18,107,73,.08);
  color:var(--admin-ink);
  box-shadow:none;
}
body.app-admin-body .page-toolbar{
  border:1px solid var(--admin-line);
  border-radius:18px;
  background:var(--admin-surface);
  box-shadow:0 16px 46px rgba(23,32,51,.08);
}
body.app-admin-body .card{
  border:1px solid rgba(23,32,51,.08);
  border-radius:16px;
  background:rgba(255,255,255,.96);
  box-shadow:0 14px 38px rgba(23,32,51,.07);
}
body.app-admin-body .card:hover{
  transform:none;
  box-shadow:0 18px 48px rgba(23,32,51,.10);
}
body.app-admin-body .table-responsive{
  border-radius:14px;
  border:1px solid rgba(23,32,51,.07);
}
body.app-admin-body .table thead th{
  background:#f8fafc;
  color:#4d5a6c;
}
body.app-admin-body .table tbody tr:last-child td{
  border-bottom-width:0;
}
body.app-admin-body .offcanvas{
  border:0;
}
body.app-admin-body .offcanvas-header{
  border-bottom:1px solid rgba(23,32,51,.08);
}
body.app-admin-body .app-admin-link{
  border-radius:14px;
}
body.app-admin-body .app-admin-link.active{
  background:linear-gradient(135deg,rgba(18,107,73,.13),rgba(36,73,110,.13));
  color:var(--admin-ink);
}
body.app-admin-body .app-admin-link.active .app-admin-link-icon{
  background:var(--brand-dark);
  color:#fff;
}
body.app-admin-body .app-admin-mobilebar{
  border:1px solid rgba(23,32,51,.10);
  background:rgba(255,255,255,.94);
  box-shadow:0 -12px 34px rgba(23,32,51,.12);
  backdrop-filter:blur(18px);
}
body.app-admin-body .app-admin-mobilebar a.is-active{
  background:var(--brand-dark);
  color:#fff;
}
@media (max-width:991.98px){
  body.app-admin-body .app-admin-navbar .container-fluid{align-items:center}
  body.app-admin-body .app-admin-page-hero{border-radius:18px}
}
@media (max-width:575.98px){
  body.app-admin-body .app-admin-navbar{min-height:62px}
  body.app-admin-body .navbar-brand .text-truncate{max-width:128px}
  body.app-admin-body .app-container{
    padding-left:.85rem;
    padding-right:.85rem;
  }
  body.app-admin-body .card{border-radius:14px}
}

/* ------------------------------------------------------------------ */
/* Public payment page                                                 */
/* ------------------------------------------------------------------ */
.public-pay-body{
  background:
    radial-gradient(circle at 12% 8%, rgba(31,163,108,.16), transparent 28rem),
    radial-gradient(circle at 88% 14%, rgba(217,154,43,.16), transparent 26rem),
    linear-gradient(180deg,#f7fbf7 0%,#eef5ef 100%);
  color:var(--text-1);
}
.public-pay-shell{
  min-height:100vh;
}
.public-pay-container{
  max-width:1080px;
}
.public-pay-header{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:1.5rem;
  align-items:start;
  margin-bottom:1.4rem;
  border:1px solid rgba(21,35,28,.08);
  border-radius:22px;
  padding:clamp(1rem,3vw,1.6rem);
  background:
    radial-gradient(circle at 92% 10%, rgba(31,163,108,.18), transparent 18rem),
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(239,248,241,.92));
  box-shadow:0 20px 60px rgba(21,35,28,.10);
}
.public-pay-brand{
  display:inline-flex;
  align-items:center;
  gap:.65rem;
  color:var(--brand-dark);
  text-decoration:none;
  font-weight:900;
  letter-spacing:.02em;
}
.public-pay-hero{
  margin-top:1.35rem;
}
.public-pay-hero .landing-kicker{
  color:var(--brand);
  background:rgba(31,163,108,.10);
  border-color:rgba(31,163,108,.22);
}
.public-pay-hero h1{
  max-width:720px;
  margin:.8rem 0 .45rem;
  color:var(--text-1);
  font-size:clamp(2rem,5vw,4rem);
  line-height:.98;
  font-weight:950;
}
.public-pay-hero p{
  max-width:620px;
  margin:0;
  color:var(--text-2);
  font-size:1.05rem;
}
.public-pay-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:.55rem;
}
.public-pay-body .debt-selector,
.public-pay-body .pix-box,
.public-pay-body .card{
  border:1px solid rgba(21,35,28,.08);
  border-radius:18px;
  background:rgba(255,255,255,.96);
  box-shadow:0 16px 46px rgba(21,35,28,.09);
}
.public-pay-body .pix-box{
  padding:1.15rem;
  position:relative;
}
.public-pay-body .qr{
  width:100%;
  max-width:260px;
  height:auto;
  border:1px solid rgba(21,35,28,.08);
  border-radius:18px;
  padding:.5rem;
  background:#fff;
}
.public-pay-body code{white-space:break-spaces}
.public-pay-body .debt-option{
  display:block;
  border:1px solid rgba(21,35,28,.10);
  border-radius:14px;
  padding:.9rem;
  cursor:pointer;
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.public-pay-body .debt-option:has(.debt-check:checked){
  border-color:rgba(31,163,108,.55);
  box-shadow:0 0 0 3px rgba(31,163,108,.10);
  background:var(--surface-tint);
}
.public-pay-body .debt-option + .debt-option{margin-top:.6rem}
.public-pay-body .pay-cart-dock{
  position:sticky;
  bottom:10px;
  z-index:1025;
  border-radius:16px;
  background:linear-gradient(135deg,var(--brand-dark),var(--brand));
  color:#fff;
  padding:.75rem .85rem;
  box-shadow:0 18px 42px rgba(18,107,73,.24);
}
.pix-busy-overlay,
.payment-review-overlay{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  z-index:1090;
  padding:16px;
  background:rgba(15,23,42,.48);
}
.pix-busy-overlay.is-active,
.payment-review-overlay.is-active{display:flex}
.pix-busy-card,
.payment-review-sheet{
  background:#fff;
  border-radius:20px;
  box-shadow:0 28px 80px rgba(15,23,42,.28);
}
.pix-busy-card{
  max-width:340px;
  width:100%;
  padding:1.3rem 1.4rem;
  text-align:center;
}
.pix-busy-card .spinner-border{
  width:2rem;
  height:2rem;
}
.payment-review-sheet{
  width:min(560px,100%);
  max-height:min(82vh,760px);
  overflow:auto;
}
.payment-review-item{
  padding:.75rem 0;
  border-bottom:1px solid rgba(21,35,28,.08);
}
body.pix-busy,
body.payment-review-open{overflow:hidden}
.public-pay-footer{
  padding-bottom:1rem;
}
@media(max-width:767.98px){
  .public-pay-header{
    grid-template-columns:1fr;
    border-radius:18px;
  }
  .public-pay-actions{
    justify-content:flex-start;
  }
  .public-pay-actions .btn{
    flex:1;
  }
  body.has-pay-cart{padding-bottom:92px}
  .public-pay-body .pay-cart-dock{
    position:fixed;
    left:10px;
    right:10px;
    bottom:10px;
  }
  .public-pay-body .pay-cart-dock .btn{min-height:44px}
  .payment-review-overlay{
    align-items:flex-end;
    padding:0;
  }
  .payment-review-sheet{
    width:100%;
    max-height:88vh;
    border-radius:20px 20px 0 0;
    padding-bottom:max(0px,env(safe-area-inset-bottom));
  }
}

/* ------------------------------------------------------------------ */
/* Admin V2: visible desktop sidebar and client-like login              */
/* ------------------------------------------------------------------ */
.app-admin-login-body{
  min-height:100vh;
  overflow-x:hidden;
  background:
    radial-gradient(circle at 12% 15%, rgba(31,163,108,.18), transparent 28rem),
    linear-gradient(135deg,#eef7ef 0%,#fbfcf8 100%);
}
.app-admin-login-shell{
  position:relative;
  display:flex;
  align-items:center;
  overflow:hidden;
  min-height:100vh;
  padding:2rem 0;
}
.app-admin-login-shell::after{
  content:"";
  position:absolute;
  right:-120px;
  bottom:-150px;
  width:420px;
  height:420px;
  border-radius:999px;
  background:rgba(217,154,43,.18);
  pointer-events:none;
}
.app-admin-login-shell > .row,
.app-admin-login-shell .col-xl-10 > .row{
  position:relative;
  z-index:1;
  width:100%;
  margin-left:0;
  margin-right:0;
}
.app-admin-login-shell > .row > .col-xl-10{
  padding-left:0;
  padding-right:0;
}
.app-admin-login-shell .col-xl-10 > .row{
  overflow:hidden;
  border:1px solid rgba(21,35,28,.08);
  border-radius:24px;
  background:#fff;
  box-shadow:0 30px 90px rgba(21,35,28,.14);
}
.app-admin-login-brand{
  display:flex;
  flex-direction:column;
  min-height:640px;
  border-radius:0;
  padding:clamp(1.5rem,4vw,3rem);
  background:
    linear-gradient(145deg, rgba(12,33,24,.94), rgba(18,107,73,.88)),
    url("../img/logo.png") center 78% / min(360px,70%) auto no-repeat;
  color:#fff;
  overflow:hidden;
}
.app-admin-login-badge{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  width:max-content;
  border:1px solid rgba(217,154,43,.42);
  border-radius:999px;
  padding:.42rem .78rem;
  color:#ffe0a5;
  background:rgba(217,154,43,.14);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.app-admin-login-title{
  max-width:11ch;
  margin:1rem 0;
  color:#fff;
  font-size:clamp(3rem,6vw,5rem);
  line-height:.92;
  font-weight:950;
}
.app-admin-login-subtitle{
  max-width:520px;
  color:rgba(248,255,249,.82);
  font-size:1.08rem;
  line-height:1.55;
}
.app-admin-login-points{
  display:grid;
  gap:.8rem;
  margin-top:auto;
}
.app-admin-login-point{
  display:flex;
  align-items:flex-start;
  gap:.75rem;
  color:rgba(248,255,249,.9);
}
.app-admin-login-point strong,
.app-admin-login-point small{
  display:block;
}
.app-admin-login-point small{
  color:rgba(248,255,249,.72);
}
.app-admin-login-point-icon{
  display:inline-grid;
  place-items:center;
  width:36px;
  height:36px;
  border-radius:999px;
  background:rgba(255,255,255,.13);
  color:#ffe0a5;
  flex:0 0 auto;
}
.app-admin-login-footer{
  margin-top:1.4rem;
  color:rgba(248,255,249,.64);
  font-size:.9rem;
}
.app-admin-login-orb{
  display:none;
}
.app-admin-login-card{
  border:0;
  border-radius:0;
  box-shadow:none;
}
.app-admin-login-card-badge{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  width:max-content;
  border:1px solid rgba(31,163,108,.22);
  border-radius:999px;
  padding:.38rem .75rem;
  color:var(--brand);
  background:rgba(31,163,108,.1);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.app-admin-login-card-title{
  margin:.9rem 0 .4rem;
  color:var(--text-1);
  font-size:clamp(2rem,4vw,2.8rem);
  font-weight:950;
}
.app-admin-login-card-subtitle{
  color:var(--text-2);
}

@media (min-width:992px){
  body.app-admin-body{
    --admin-sidebar-width: 326px;
    overflow-x:hidden;
  }
  body.app-admin-body .app-admin-navbar{
    left:var(--admin-sidebar-width);
    width:calc(100% - var(--admin-sidebar-width));
  }
  body.app-admin-body .app-admin-menu-btn{
    display:none!important;
  }
  body.app-admin-body .app-admin-drawer{
    position:fixed;
    top:0;
    left:0;
    bottom:0;
    width:var(--admin-sidebar-width)!important;
    transform:none!important;
    visibility:visible!important;
    z-index:1031;
    border-right:1px solid rgba(23,32,51,.10);
    box-shadow:18px 0 44px rgba(23,32,51,.08);
  }
  body.app-admin-body .app-admin-drawer.show:not(.hiding),
  body.app-admin-body .app-admin-drawer.showing{
    transform:none!important;
  }
  body.app-admin-body .app-admin-drawer .offcanvas-body{
    overflow-y:auto;
  }
  body.app-admin-body .app-admin-drawer .btn-close{
    display:none;
  }
  body.app-admin-body .app-admin-drawer-header{
    min-height:68px;
  }
  body.app-admin-body .offcanvas-backdrop{
    display:none!important;
  }
  body.app-admin-body .app-container{
    margin-left:var(--admin-sidebar-width);
    width:calc(100% - var(--admin-sidebar-width));
    max-width:none;
    padding-left:2rem;
    padding-right:2rem;
  }
  body.app-admin-body .app-admin-main{
    max-width:1320px;
    margin:0 auto;
  }
  body.app-admin-body .app-admin-hero{
    margin-top:.25rem;
  }
}

@media (max-width:991.98px){
  .app-admin-login-shell{
    padding:0;
  }
  .app-admin-login-shell .col-xl-10 > .row{
    border-radius:0;
  }
  .app-admin-login-brand{
    min-height:420px;
  }
}

@media (max-width:575.98px){
  .app-admin-login-brand{
    min-height:auto;
    padding:1.4rem;
    background-position:92% 78%;
    background-size:210px auto;
  }
  .app-admin-login-title{
    max-width:12ch;
    font-size:2.45rem;
  }
  .app-admin-login-subtitle{
    font-size:.98rem;
  }
  .app-admin-login-points{
    margin-top:1.2rem;
    gap:.5rem;
  }
}

/* ------------------------------------------------------------------ */
/* Admin drawer header: warmer, cleaner navigation intro               */
/* ------------------------------------------------------------------ */
body.app-admin-body .app-admin-drawer-header{
  padding:1rem 1rem .85rem;
  border-bottom:0!important;
  background:
    linear-gradient(145deg, rgba(12,33,24,.98), rgba(20,119,81,.94))!important;
  color:#fff;
}
body.app-admin-body .app-admin-drawer-brand{
  display:flex;
  align-items:center;
  gap:.78rem;
  min-width:0;
}
body.app-admin-body .app-admin-drawer-logo{
  width:44px;
  height:44px;
  border-radius:14px;
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  color:#fff;
  background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 12px 28px rgba(4,36,24,.26);
}
body.app-admin-body .app-admin-drawer-header .app-admin-drawer-eyebrow{
  margin:0 0 .16rem;
  color:rgba(255,255,255,.68);
  letter-spacing:.08em;
}
body.app-admin-body .app-admin-drawer-header .offcanvas-title{
  color:#fff;
  font-weight:900;
  line-height:1.1;
}
body.app-admin-body .app-admin-drawer-header .btn-close{
  filter:invert(1) grayscale(1);
  opacity:.8;
}
body.app-admin-body .app-admin-drawer-user{
  display:flex;
  align-items:center;
  gap:.8rem;
  margin:.9rem .9rem .5rem;
  padding:.9rem;
  border:1px solid rgba(31,163,108,.14)!important;
  border-radius:18px;
  background:
    radial-gradient(circle at 90% 0%, rgba(217,154,43,.18), transparent 44%),
    linear-gradient(180deg, #ffffff, #f3fbf6)!important;
  box-shadow:0 16px 36px rgba(15,23,42,.08);
}
body.app-admin-body .app-admin-drawer-user-avatar{
  width:44px;
  height:44px;
  border-radius:14px;
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  color:#fff;
  font-weight:900;
  background:linear-gradient(145deg, var(--brand), var(--brand-700));
  box-shadow:0 12px 24px rgba(31,163,108,.25);
}
body.app-admin-body .app-admin-drawer-user-kicker{
  color:var(--brand-700);
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}
body.app-admin-body .app-admin-drawer-user-title{
  margin:.12rem 0 .18rem;
  color:#0f172a;
  font-size:1rem;
  font-weight:900;
}
body.app-admin-body .app-admin-drawer-user-meta{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.35rem;
  color:#64748b;
  font-size:.78rem;
  font-weight:700;
}
body.app-admin-body .app-admin-drawer-user-meta span{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:.18rem .48rem;
  background:rgba(15,23,42,.05);
}

/* ------------------------------------------------------------------ */
/* Contrast fixes: Banco LOFT cards and selected admin menu states     */
/* ------------------------------------------------------------------ */
body.app-admin-body .app-admin-accordion .accordion-button,
body.app-admin-body .app-admin-accordion .accordion-button:not(.collapsed),
body.app-admin-body .app-admin-accordion .accordion-button:focus,
body.app-admin-body .app-admin-accordion .accordion-button:hover{
  color:#13251d!important;
}
body.app-admin-body .app-admin-accordion .accordion-button .app-admin-section-label,
body.app-admin-body .app-admin-accordion .accordion-button .app-admin-section-meta{
  color:inherit!important;
}
body.app-admin-body .app-admin-link,
body.app-admin-body .app-admin-link:hover,
body.app-admin-body .app-admin-link.active{
  color:#13251d!important;
}
body.app-admin-body .app-admin-link.active{
  background:linear-gradient(135deg, rgba(31,163,108,.16), rgba(217,154,43,.12))!important;
  border-color:rgba(31,163,108,.24)!important;
}
body.app-admin-body .app-admin-link.active .app-admin-link-meta{
  color:#557064!important;
}
body.app-admin-body .app-admin-link.active .app-admin-link-arrow{
  color:#126b49!important;
}
body.app-admin-body .app-admin-link.active .app-admin-link-icon{
  color:#fff!important;
  background:linear-gradient(145deg, var(--brand), var(--brand-700))!important;
}

body.app-admin-body .bank-home .bank-balance-card{
  color:#ffffff!important;
  background:
    radial-gradient(circle at 84% 8%, rgba(31,163,108,.34), transparent 24rem),
    linear-gradient(145deg, #10251b, #06462f)!important;
  border:0!important;
}
body.app-admin-body .bank-home .bank-balance-card,
body.app-admin-body .bank-home .bank-balance-card .card-body,
body.app-admin-body .bank-home .bank-balance-card [data-bank-value],
body.app-admin-body .bank-home .bank-balance-card .display-6,
body.app-admin-body .bank-home .bank-balance-card .fw-bold{
  color:#ffffff!important;
}
body.app-admin-body .bank-home .bank-balance-card .text-white-50,
body.app-admin-body .bank-home .bank-balance-card .small{
  color:rgba(255,255,255,.76)!important;
}
body.app-admin-body .bank-home .bank-stat-link,
body.app-admin-body .bank-home .bank-stat-link .card,
body.app-admin-body .bank-home .bank-stat-link .metric,
body.app-admin-body .bank-home .bank-stat-link [data-bank-value]{
  color:#13251d!important;
}
body.app-admin-body .bank-home .bank-stat-link .text-muted,
body.app-admin-body .bank-home .bank-stat-link .small.text-muted{
  color:#64748b!important;
}

/* ------------------------------------------------------------------ */
/* R19.1 - Public card checkout                                        */
/* ------------------------------------------------------------------ */
.card-pay-body{
  min-height:100vh;
  background:
    radial-gradient(circle at 8% 6%,rgba(31,163,108,.17),transparent 24rem),
    radial-gradient(circle at 93% 12%,rgba(217,154,43,.14),transparent 24rem),
    linear-gradient(180deg,#f7fbf7 0%,#eef5ef 100%);
}
.card-pay-shell{min-height:100vh;padding-bottom:2rem}
.card-pay-container{max-width:1120px}
.card-pay-topbar{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.8rem 0 1rem;
}
.card-pay-back{border-radius:999px;padding:.55rem .85rem;background:rgba(255,255,255,.88)!important}
.card-pay-heading{
  display:flex;justify-content:space-between;gap:2rem;align-items:end;
  margin:.4rem 0 1.4rem;
}
.card-pay-kicker{
  display:inline-flex;align-items:center;border:1px solid rgba(31,163,108,.20);
  background:rgba(31,163,108,.10);color:var(--brand-dark);font-weight:800;
  border-radius:999px;padding:.38rem .68rem;font-size:.82rem;
}
.card-pay-heading h1{font-size:clamp(2rem,4vw,3.2rem);line-height:1;margin:.75rem 0 .45rem;font-weight:950;letter-spacing:-.035em;color:var(--text-1)}
.card-pay-heading p{margin:0;color:var(--text-2);font-size:1rem;max-width:650px}
.card-pay-heading-total{text-align:right;min-width:190px}
.card-pay-heading-total span{display:block;color:var(--text-2);font-size:.85rem;margin-bottom:.15rem}
.card-pay-heading-total strong{font-size:1.55rem;color:var(--brand-dark)}
.card-pay-section{
  border:1px solid rgba(21,35,28,.08);border-radius:20px;background:rgba(255,255,255,.97);
  box-shadow:0 16px 44px rgba(21,35,28,.08);padding:clamp(1rem,3vw,1.45rem);margin-bottom:1rem;
}
.card-pay-section-head{display:flex;align-items:flex-start;gap:.8rem;margin-bottom:1.05rem}
.card-pay-section-head h2{font-size:1.04rem;font-weight:900;margin:0 0 .15rem;color:var(--text-1)}
.card-pay-section-head p{margin:0;color:var(--text-2);font-size:.88rem}
.card-pay-step{
  flex:0 0 30px;width:30px;height:30px;border-radius:10px;display:grid;place-items:center;
  color:#fff;background:linear-gradient(135deg,var(--brand-dark),var(--brand));font-weight:900;box-shadow:0 7px 16px rgba(18,107,73,.20);
}
.card-pay-installment-box{
  display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:.4rem 1rem;align-items:end;
  padding:1rem;border-radius:15px;background:var(--surface-tint);border:1px solid rgba(31,163,108,.12);
}
.card-pay-installment-box .form-label{grid-column:1;margin:0;font-weight:800}
.card-pay-installment-box .form-select{grid-column:1;grid-row:2;border-radius:12px}
.card-pay-installment-info{grid-column:2;grid-row:1/3;align-self:center;color:var(--brand-dark);font-weight:800;font-size:1rem}
.card-pay-card-preview{
  width:min(100%,390px);aspect-ratio:1.65/1;margin:0 auto 1.25rem;padding:1.2rem 1.25rem;
  border-radius:22px;color:#fff;display:flex;flex-direction:column;justify-content:space-between;
  background:
    radial-gradient(circle at 82% 20%,rgba(255,255,255,.20),transparent 8rem),
    linear-gradient(135deg,#16392d 0%,#1f8f64 58%,#2fb57f 100%);
  box-shadow:0 20px 46px rgba(18,107,73,.25);position:relative;overflow:hidden;
}
.card-pay-card-preview:after{content:"";position:absolute;width:190px;height:190px;border-radius:50%;border:1px solid rgba(255,255,255,.12);right:-75px;bottom:-100px}
.card-pay-card-preview-top,.card-pay-card-preview-bottom{display:flex;align-items:center;justify-content:space-between;gap:1rem;position:relative;z-index:1}
.card-pay-card-preview-top{font-size:.95rem;font-weight:800;opacity:.95}.card-pay-card-preview .rotate-90{transform:rotate(90deg)}
.card-pay-card-number{font-size:clamp(1.25rem,4vw,1.7rem);letter-spacing:.08em;font-weight:750;position:relative;z-index:1;white-space:nowrap}
.card-pay-card-preview-bottom{font-size:.72rem;letter-spacing:.06em;font-weight:800;text-transform:uppercase;opacity:.92}
.card-pay-section .form-label{font-size:.84rem;font-weight:800;color:#33433c;margin-bottom:.35rem}
.card-pay-section .form-control,.card-pay-section .form-select,.card-pay-section .input-group-text{border-color:rgba(21,35,28,.13)}
.card-pay-section .form-control:focus,.card-pay-section .form-select:focus{border-color:rgba(31,163,108,.58);box-shadow:0 0 0 .2rem rgba(31,163,108,.10)}
.card-pay-input-group .input-group-text{background:#f7faf8;color:var(--brand-dark)}
.card-pay-save-card{
  display:grid;grid-template-columns:auto auto 1fr;gap:.8rem;align-items:center;cursor:pointer;
  border:1px solid rgba(31,163,108,.18);border-radius:18px;background:rgba(244,251,246,.96);
  padding:1rem 1.05rem;margin:1rem 0;transition:.15s ease;
}
.card-pay-save-card:hover{border-color:rgba(31,163,108,.45);box-shadow:0 10px 24px rgba(21,35,28,.07)}
.card-pay-save-card .form-check-input{margin:0;width:1.15rem;height:1.15rem}
.card-pay-save-card-icon{width:38px;height:38px;border-radius:12px;background:rgba(31,163,108,.12);color:var(--brand-dark);display:grid;place-items:center;font-size:1.05rem}
.card-pay-save-card strong{display:block;color:var(--text-1)}
.card-pay-save-card small{display:block;color:var(--text-2);margin-top:.12rem;line-height:1.35}
.card-pay-submit{min-height:58px;border-radius:16px;font-weight:900;font-size:1.03rem;box-shadow:0 15px 30px rgba(18,107,73,.22)}
.card-pay-security-row{display:flex;align-items:center;justify-content:center;gap:.65rem 1rem;flex-wrap:wrap;color:var(--text-2);font-size:.76rem;padding:.8rem .25rem 0}
.card-pay-security-row i{color:var(--brand)}
.card-pay-summary{
  position:sticky;top:1rem;border:1px solid rgba(21,35,28,.08);border-radius:22px;
  background:rgba(255,255,255,.97);box-shadow:0 20px 54px rgba(21,35,28,.10);overflow:hidden;
}
.card-pay-summary-head{display:flex;justify-content:space-between;gap:1rem;align-items:start;padding:1.2rem 1.25rem;background:linear-gradient(135deg,#183b30,#237c59);color:#fff}
.card-pay-summary-head span{display:block;font-size:.78rem;opacity:.78;margin-bottom:.15rem}.card-pay-summary-head strong{display:block;font-size:1.02rem}
.card-pay-summary-count{flex:0 0 auto!important;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:.35rem .6rem!important;opacity:1!important;font-weight:800}
.card-pay-summary-items{padding:.5rem 1.2rem}
.card-pay-summary-item{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid rgba(21,35,28,.08)}
.card-pay-summary-item:last-child{border-bottom:0}.card-pay-summary-item strong{font-size:.88rem;display:block}.card-pay-summary-item small{display:block;color:var(--text-2);font-size:.75rem;margin-top:.12rem}.card-pay-summary-item>span{font-weight:850;white-space:nowrap;font-size:.9rem}
.card-pay-totals{padding:1rem 1.2rem;border-top:1px solid rgba(21,35,28,.08);background:#fbfdfb}
.card-pay-totals>div{display:flex;justify-content:space-between;gap:1rem;padding:.26rem 0;color:var(--text-2);font-size:.9rem}.card-pay-totals>div strong{color:var(--text-1)}
.card-pay-totals .card-pay-grand-total{margin-top:.65rem;padding-top:.85rem;border-top:1px dashed rgba(21,35,28,.16);align-items:end}.card-pay-grand-total span{color:var(--text-1);font-weight:900}.card-pay-grand-total strong{font-size:1.55rem;color:var(--brand-dark)!important}
.card-pay-summary-note{display:flex;gap:.6rem;align-items:flex-start;margin:.8rem 1.2rem 1.15rem;padding:.75rem;border-radius:13px;background:#f4f7f5;color:var(--text-2);font-size:.78rem;line-height:1.4}.card-pay-summary-note i{color:var(--brand);margin-top:.05rem}
@media(max-width:991.98px){
  .card-pay-summary{position:static}.card-pay-heading{align-items:start}.card-pay-summary-items{max-height:190px;overflow:auto}
}
@media(max-width:575.98px){
  .card-pay-shell{padding-bottom:1rem}.card-pay-topbar{align-items:flex-start}.card-pay-back{font-size:.76rem}.card-pay-heading h1{font-size:2rem}
  .card-pay-section{border-radius:17px;padding:1rem}.card-pay-installment-box{grid-template-columns:1fr}.card-pay-installment-box .form-label,.card-pay-installment-box .form-select,.card-pay-installment-info{grid-column:1;grid-row:auto}.card-pay-installment-info{padding-top:.25rem;font-size:.92rem}
  .card-pay-card-preview{border-radius:18px;padding:1rem}.card-pay-card-number{font-size:1.16rem}.card-pay-save-card{grid-template-columns:auto 1fr}.card-pay-save-card-icon{display:none}.card-pay-security-row{justify-content:flex-start;padding-left:.2rem}
}

/* R19.4 - checkout de cartao alinhado ao pagar.php */
.card-pay-body{background:linear-gradient(135deg,#eef8f1 0%,#f7f4e8 100%);min-height:100vh;color:var(--text-1)}
.card-pay-page{max-width:1054px;margin:0 auto;padding:24px 14px 32px}
.card-pay-main{display:block}
.card-pay-hero{min-height:0;padding:26px 26px 24px;margin-bottom:24px}
.card-pay-hero h1{font-size:clamp(2.35rem,5.4vw,4rem);line-height:.98;margin:18px 0 6px;font-weight:950;letter-spacing:0;color:#102019}
.card-pay-hero p{font-size:1rem;color:#5f6f67;margin:0}
.card-pay-back{border-radius:12px;font-weight:800;padding:8px 13px;background:rgba(255,255,255,.72)}
.card-pay-summary,.card-pay-form{border-radius:16px;padding:18px;background:#fff;box-shadow:0 10px 26px rgba(15,23,42,.08);border:1px solid rgba(15,23,42,.06)}
.card-pay-summary{position:sticky;top:18px;overflow:hidden}
.card-pay-form{padding:20px}
.pay-panel-title{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.pay-panel-title h2{font-size:1.18rem;font-weight:900;margin:0;color:#15231c;letter-spacing:0}
.pay-panel-title p{margin:2px 0 0;color:#607067;font-size:.9rem}
.pay-panel-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#eaf3ff;color:#2463eb;font-size:1.15rem;flex:0 0 auto}
.card-pay-summary-items{padding:0;margin-bottom:12px}
.card-pay-summary-item{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid rgba(15,23,42,.08)}
.card-pay-summary-item:first-child{border-top:1px solid rgba(15,23,42,.08)}
.card-pay-summary-item strong{font-size:.95rem;display:block;color:#17221c}
.card-pay-summary-item small{display:block;color:#65746d;font-size:.8rem;margin-top:3px}
.card-pay-summary-item>span{font-weight:900;white-space:nowrap;color:#17221c}
.card-pay-totals{padding:12px 0 0;background:transparent;border-top:0}
.card-pay-totals>div{display:flex;justify-content:space-between;gap:12px;padding:5px 0;font-size:.95rem;color:#65746d}
.card-pay-totals>div strong{color:#17221c}
.card-pay-grand-total{border-top:1px dashed rgba(15,23,42,.16);margin-top:8px;padding-top:13px!important}
.card-pay-grand-total span{font-weight:900;color:#17221c}
.card-pay-grand-total strong{font-size:1.45rem;color:#126b49!important}
.card-pay-installments{display:grid;grid-template-columns:minmax(150px,210px) 1fr;gap:8px 14px;align-items:end;margin-bottom:18px;padding:14px;border-radius:12px;background:#f7fbf8;border:1px solid rgba(18,107,73,.12)}
.card-pay-installments .form-label{grid-column:1;margin:0;font-weight:850;color:#23372d}
.card-pay-installments .form-select{grid-column:1;border-radius:10px;min-height:44px}
.card-pay-installment-info{grid-column:2;grid-row:1/3;align-self:center;font-weight:850;color:#126b49;font-size:.98rem}
.card-pay-form .form-label{font-size:.86rem;font-weight:850;color:#27382f;margin-bottom:6px}
.card-pay-form .form-control,.card-pay-form .form-select,.card-pay-form .input-group-text{border-color:rgba(15,23,42,.13);min-height:44px;border-radius:10px}
.card-pay-form .input-group>.form-control{border-radius:0 10px 10px 0}
.card-pay-form .input-group>.input-group-text:first-child{border-radius:10px 0 0 10px;background:#f7faf8;color:#126b49}
.card-pay-form .form-control:focus,.card-pay-form .form-select:focus{border-color:#1f9d67;box-shadow:0 0 0 .2rem rgba(31,157,103,.12)}
.card-pay-cadastro-note{display:flex;align-items:flex-start;gap:9px;margin-top:16px;padding:12px 14px;border-radius:12px;background:#ecfdf3;color:#24513c;font-size:.9rem;border:1px solid rgba(18,107,73,.14)}
.card-pay-cadastro-note i{color:#126b49;margin-top:1px}
.card-pay-save-card{margin-top:14px;border-radius:12px;border:1px solid rgba(18,107,73,.16);background:#f8fcfa;padding:12px;display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start}
.card-pay-save-card-icon{display:none}
.card-pay-submit{min-height:50px;border-radius:12px;font-weight:900;margin-top:14px;box-shadow:0 12px 24px rgba(18,107,73,.18)}
.card-pay-security-row{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;color:#65746d;font-size:.78rem;padding:12px 2px 0;justify-content:flex-start}
.card-pay-security-row i{color:#126b49}
.card-pay-card-preview,.card-pay-section,.card-pay-heading,.card-pay-topbar,.card-pay-shell,.card-pay-container{all:unset}
@media(max-width:991.98px){.card-pay-summary{position:static}.card-pay-page{padding-top:14px}.card-pay-hero{padding:22px 18px}.card-pay-form{padding:16px}}
@media(max-width:575.98px){.card-pay-installments{grid-template-columns:1fr}.card-pay-installments .form-label,.card-pay-installments .form-select,.card-pay-installment-info{grid-column:1;grid-row:auto}.card-pay-hero h1{font-size:2.35rem}.card-pay-summary,.card-pay-form{border-radius:14px}.card-pay-security-row{display:none}}

/* R19.5 - acabamento final do checkout de cartao */
.card-pay-body{
  background:
    radial-gradient(circle at 12% 5%, rgba(31,163,108,.14), transparent 34%),
    linear-gradient(135deg,#edf7f1 0%,#f7f4e8 100%)!important;
  min-height:100vh;
}
.card-pay-page{
  width:100%;
  max-width:1088px!important;
  margin:0 auto!important;
  padding:24px 16px 34px!important;
}
.card-pay-main{
  display:block!important;
  width:100%!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.card-pay-hero{
  display:block!important;
  margin:0 0 20px!important;
  padding:26px 28px!important;
  border:1px solid rgba(31,163,108,.14)!important;
  border-radius:20px!important;
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(231,248,239,.88))!important;
  box-shadow:0 12px 30px rgba(15,35,25,.08)!important;
}
.card-pay-hero .public-pay-brand{
  color:#123126!important;
  text-decoration:none!important;
}
.card-pay-hero h1{
  max-width:640px!important;
  margin:18px 0 6px!important;
  color:#102019!important;
  font-size:3.35rem!important;
  line-height:1!important;
  font-weight:950!important;
  letter-spacing:0!important;
}
.card-pay-hero p{
  margin:0!important;
  color:#5e6e66!important;
  font-size:1.02rem!important;
}
.card-pay-back{
  border-radius:12px!important;
  border-color:rgba(20,48,38,.28)!important;
  background:rgba(255,255,255,.78)!important;
  color:#21352c!important;
  font-weight:800!important;
}
.card-pay-page .row{
  --bs-gutter-x:18px;
  --bs-gutter-y:18px;
}
.card-pay-summary,
.card-pay-form{
  width:100%!important;
  border:1px solid rgba(15,23,42,.08)!important;
  border-radius:16px!important;
  background:#fff!important;
  box-shadow:0 12px 28px rgba(15,23,42,.09)!important;
}
.card-pay-summary{
  position:sticky!important;
  top:18px!important;
  padding:0!important;
  overflow:hidden!important;
}
.card-pay-form{
  padding:22px!important;
}
.card-pay-summary .pay-panel-title{
  margin:0!important;
  padding:18px 18px 16px!important;
  background:linear-gradient(135deg,#17392f,#1f8c62)!important;
  color:#fff!important;
}
.card-pay-summary .pay-panel-title h2,
.card-pay-summary .pay-panel-title p{
  color:#fff!important;
}
.card-pay-summary .pay-panel-title p{
  opacity:.82!important;
}
.card-pay-summary .pay-panel-icon{
  background:rgba(255,255,255,.16)!important;
  color:#fff!important;
}
.card-pay-form .pay-panel-title{
  margin-bottom:18px!important;
}
.pay-panel-title h2{
  margin:0!important;
  color:#14231c!important;
  font-size:1.22rem!important;
  line-height:1.15!important;
  font-weight:900!important;
  letter-spacing:0!important;
}
.pay-panel-title p{
  margin:3px 0 0!important;
  color:#65746d!important;
  font-size:.91rem!important;
}
.pay-panel-icon{
  width:44px!important;
  height:44px!important;
  border-radius:12px!important;
  display:grid!important;
  place-items:center!important;
  flex:0 0 44px!important;
  background:#eaf3ff!important;
  color:#2563eb!important;
}
.card-pay-summary-items{
  margin:0!important;
  padding:6px 18px!important;
}
.card-pay-summary-item{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:14px!important;
  padding:13px 0!important;
  border-top:0!important;
  border-bottom:1px solid rgba(15,23,42,.08)!important;
}
.card-pay-summary-item strong{
  display:block!important;
  color:#17221c!important;
  font-size:.95rem!important;
  line-height:1.25!important;
}
.card-pay-summary-item small{
  display:block!important;
  margin-top:4px!important;
  color:#6a786f!important;
  font-size:.8rem!important;
}
.card-pay-summary-item>span{
  color:#17221c!important;
  font-weight:900!important;
  white-space:nowrap!important;
}
.card-pay-totals{
  margin:0!important;
  padding:15px 18px 18px!important;
  border-top:0!important;
  background:#f7faf8!important;
}
.card-pay-totals>div{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  padding:5px 0!important;
  color:#65746d!important;
  font-size:.96rem!important;
}
.card-pay-totals strong{
  color:#17221c!important;
}
.card-pay-grand-total{
  margin-top:9px!important;
  padding-top:13px!important;
  border-top:1px dashed rgba(15,23,42,.18)!important;
}
.card-pay-grand-total span{
  color:#17221c!important;
  font-weight:900!important;
}
.card-pay-grand-total strong{
  color:#126b49!important;
  font-size:1.55rem!important;
  line-height:1!important;
}
.card-pay-installments{
  display:grid!important;
  grid-template-columns:minmax(164px,210px) minmax(0,1fr)!important;
  gap:8px 14px!important;
  align-items:end!important;
  margin:0 0 18px!important;
  padding:14px!important;
  border:1px solid rgba(18,107,73,.14)!important;
  border-radius:12px!important;
  background:#f6fbf8!important;
}
.card-pay-installments .form-label{
  grid-column:1!important;
  margin:0!important;
}
.card-pay-installments .form-select{
  grid-column:1!important;
  min-height:46px!important;
}
.card-pay-installment-info{
  grid-column:2!important;
  grid-row:1/3!important;
  align-self:center!important;
  color:#126b49!important;
  font-size:1rem!important;
  font-weight:900!important;
  line-height:1.25!important;
}
.card-pay-form .form-label{
  margin-bottom:6px!important;
  color:#27382f!important;
  font-size:.87rem!important;
  font-weight:850!important;
}
.card-pay-form .form-control,
.card-pay-form .form-select,
.card-pay-form .input-group-text{
  min-height:46px!important;
  border-color:rgba(15,23,42,.14)!important;
  font-size:.96rem!important;
}
.card-pay-form .form-control,
.card-pay-form .form-select{
  background:#fff!important;
}
.card-pay-form .input-group-text{
  background:#f7faf8!important;
  color:#126b49!important;
}
.card-pay-form .form-control:focus,
.card-pay-form .form-select:focus{
  border-color:#1f9d67!important;
  box-shadow:0 0 0 .2rem rgba(31,157,103,.12)!important;
}
.card-pay-cadastro-note{
  display:flex!important;
  align-items:flex-start!important;
  gap:10px!important;
  margin-top:16px!important;
  padding:12px 14px!important;
  border:1px solid rgba(18,107,73,.14)!important;
  border-radius:12px!important;
  background:#ecfdf3!important;
  color:#24513c!important;
  font-size:.9rem!important;
}
.card-pay-submit{
  min-height:52px!important;
  margin-top:14px!important;
  border-radius:12px!important;
  background:#15865b!important;
  border-color:#15865b!important;
  color:#fff!important;
  font-weight:900!important;
  box-shadow:0 12px 24px rgba(18,107,73,.2)!important;
}
.card-pay-submit:hover,
.card-pay-submit:focus{
  background:#126f4d!important;
  border-color:#126f4d!important;
}
.card-pay-security-row{
  display:flex!important;
  justify-content:flex-start!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:8px 14px!important;
  padding:12px 2px 0!important;
  color:#65746d!important;
  font-size:.78rem!important;
}
.card-pay-security-row i{
  color:#126b49!important;
}
@media(max-width:991.98px){
  .card-pay-page{padding-top:14px!important}
  .card-pay-summary{position:static!important}
  .card-pay-hero{padding:22px 18px!important}
  .card-pay-hero h1{font-size:2.65rem!important}
  .card-pay-form{padding:18px!important}
}
@media(max-width:575.98px){
  .card-pay-page{padding:10px 10px 24px!important}
  .card-pay-hero{border-radius:16px!important}
  .card-pay-hero h1{font-size:2.15rem!important}
  .card-pay-installments{grid-template-columns:1fr!important}
  .card-pay-installments .form-label,
  .card-pay-installments .form-select,
  .card-pay-installment-info{grid-column:1!important;grid-row:auto!important}
  .card-pay-summary,
  .card-pay-form{border-radius:14px!important}
  .card-pay-security-row{display:none!important}
}

/* Admin Loft — ajuste final do padrão verde */
body.app-admin-body .app-admin-content > .app-container,
body.app-admin-body .app-admin-content > .container,
body.app-admin-body .app-admin-content > .container-fluid{
  margin-left:0!important;
  margin-right:0!important;
  width:100%!important;
  max-width:1240px!important;
}
body.app-admin-body .app-admin-page-hero,
body.app-admin-body .app-admin-hero{
  border-radius:8px!important;
  border-color:rgba(207,230,219,.9)!important;
  background:linear-gradient(135deg,#103523 0%,#166b4b 56%,#dff5ea 100%)!important;
  box-shadow:0 24px 70px rgba(15,83,55,.18)!important;
}
body.app-admin-body .app-admin-hero-orb{
  display:none!important;
}
@media (min-width:1400px){
  body.app-admin-body .app-admin-content > .app-container,
  body.app-admin-body .app-admin-content > .container,
  body.app-admin-body .app-admin-content > .container-fluid{
    max-width:1320px!important;
  }
}

/* Admin Loft — legibilidade mobile e trilhos internos */
body.app-admin-body,
body.app-admin-body .app-admin-main,
body.app-admin-body .app-admin-content{
  max-width:100%!important;
  overflow-x:hidden!important;
}
body.app-admin-body .app-stat-label,
body.app-admin-body .app-stat-meta,
body.app-admin-body .dash-work-title,
body.app-admin-body .dash-activity-title,
body.app-admin-body .bank-movement-title,
body.app-admin-body .payable-search-title,
body.app-admin-body .receipt-cart-title,
body.app-admin-body .cob-action-title,
body.app-admin-body .app-energy-title,
body.app-admin-body .cc-column-title,
body.app-admin-body .cc-item-title,
body.app-admin-body .cc-item-desc,
body.app-admin-body .badge,
body.app-admin-body .btn,
body.app-admin-body th,
body.app-admin-body td{
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:manual!important;
}
body.app-admin-body .dash-work-title,
body.app-admin-body .dash-activity-title,
body.app-admin-body .cc-item-title,
body.app-admin-body .cc-item-desc,
body.app-admin-body .cob-action-title,
body.app-admin-body .app-energy-title{
  overflow-wrap:break-word!important;
}
body.app-admin-body .table-responsive{
  max-width:100%!important;
  overflow-x:auto!important;
  -webkit-overflow-scrolling:touch;
}
body.app-admin-body .table-responsive > .table{
  margin-bottom:0;
}
body.app-admin-body #ccBoardArea{
  max-width:100%;
  overflow-x:auto;
  overflow-y:visible;
  -webkit-overflow-scrolling:touch;
  padding-bottom:.4rem;
}
body.app-admin-body #ccBoardArea > .row{
  min-width:0;
}
@media (max-width:767.98px){
  body.app-admin-body #ccBoardArea{
    margin-left:-.15rem;
    margin-right:-.15rem;
  }
  body.app-admin-body #ccBoardArea > .row{
    flex-wrap:nowrap!important;
    width:max-content;
    max-width:none;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:.15rem;
    padding-right:.15rem;
  }
  body.app-admin-body #ccBoardArea .cc-board-col{
    flex:0 0 min(86vw, 360px)!important;
    width:min(86vw, 360px)!important;
    max-width:360px!important;
    padding-left:.4rem!important;
    padding-right:.4rem!important;
  }
  body.app-admin-body .cc-shell .cc-column-stack{
    max-height:none!important;
    overflow:visible!important;
  }
  body.app-admin-body .cc-shell .cc-item-head,
  body.app-admin-body .cc-shell .cc-column-head{
    align-items:flex-start!important;
    gap:.65rem!important;
  }
  body.app-admin-body .cc-shell .cc-item-title{
    font-size:.95rem!important;
    line-height:1.2!important;
  }
  body.app-admin-body .cc-shell .cc-item-desc{
    font-size:.82rem!important;
  }
}

/* Admin Loft — revisão geral de responsividade */
body.app-admin-body .row{
  min-width:0!important;
}
body.app-admin-body [class*="col-"]{
  min-width:0;
}
body.app-admin-body .card,
body.app-admin-body .modal-content,
body.app-admin-body .accordion,
body.app-admin-body .list-group,
body.app-admin-body .page-toolbar,
body.app-admin-body .app-section-title{
  max-width:100%;
}
body.app-admin-body .app-stat-card .card-body{
  min-width:0;
}
body.app-admin-body .app-stat-head{
  align-items:flex-start!important;
  gap:.7rem!important;
}
body.app-admin-body .app-stat-icon{
  flex:0 0 auto;
}
body.app-admin-body .app-stat-label,
body.app-admin-body .mini-label,
body.app-admin-body .app-section-title h5,
body.app-admin-body .page-title{
  line-height:1.15!important;
}
body.app-admin-body .table-responsive > table{
  width:max-content;
  min-width:100%;
}
body.app-admin-body .table-responsive th,
body.app-admin-body .table-responsive td{
  min-width:max-content;
}
body.app-admin-body .table-responsive td .btn,
body.app-admin-body .table-responsive th .btn{
  white-space:nowrap!important;
}
body.app-admin-body .app-admin-hero,
body.app-admin-body .app-admin-page-hero,
body.app-admin-body .page-toolbar,
body.app-admin-body .card{
  border-radius:8px!important;
}
@media (max-width:575.98px){
  body.app-admin-body .app-container,
  body.app-admin-body .container,
  body.app-admin-body .container-fluid{
    padding-left:.8rem!important;
    padding-right:.8rem!important;
  }
  body.app-admin-body .app-admin-hero,
  body.app-admin-body .app-admin-page-hero{
    padding:1rem!important;
  }
  body.app-admin-body .app-stat-card{
    min-height:104px;
  }
  body.app-admin-body .row > .col-6:has(.app-stat-card),
  body.app-admin-body .row > .col-6:has(.bank-stat-link),
  body.app-admin-body .row > .col-6:has(.payable-stat-link),
  body.app-admin-body .row > .col-6:has(.cob-stat-link){
    width:50%!important;
    max-width:50%!important;
    flex:0 0 50%!important;
    min-width:0!important;
  }
  body.app-admin-body .app-stat-card .card-body{
    padding:.72rem!important;
  }
  body.app-admin-body .app-stat-head{
    align-items:center!important;
    gap:.45rem!important;
  }
  body.app-admin-body .app-stat-icon{
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
    border-radius:8px!important;
    font-size:.95rem!important;
  }
  body.app-admin-body .app-stat-label{
    font-size:.66rem!important;
    line-height:1.05!important;
    max-width:100%;
    overflow-wrap:anywhere;
  }
  body.app-admin-body .app-stat-value{
    font-size:1.18rem!important;
    line-height:1.05!important;
    overflow-wrap:anywhere;
  }
  body.app-admin-body .app-stat-meta{
    font-size:.68rem!important;
    line-height:1.15!important;
    overflow-wrap:anywhere;
  }
  body.app-admin-body .metric-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:.65rem!important;
  }
  body.app-admin-body .metric-card{
    min-height:92px!important;
    padding:.75rem!important;
    border-radius:8px!important;
  }
  body.app-admin-body .metric-icon{
    width:32px!important;
    height:32px!important;
    border-radius:8px!important;
    font-size:.95rem!important;
  }
  body.app-admin-body .metric-label{
    font-size:.66rem!important;
    line-height:1.05!important;
    overflow-wrap:anywhere;
  }
  body.app-admin-body .metric-value{
    font-size:1.18rem!important;
    line-height:1.05!important;
    overflow-wrap:anywhere;
  }
  body.app-admin-body .metric-meta{
    font-size:.68rem!important;
    line-height:1.15!important;
    overflow-wrap:anywhere;
  }
  body.app-admin-body .table-responsive > table{
    min-width:620px;
  }
  body.app-admin-body .table-responsive .table-sm{
    font-size:.84rem;
  }
}

/* Keep shared admin page context compact; module pages already have their own content headers. */
body.app-admin-body .app-admin-hero:not(.app-admin-hero-config){
  min-height:0!important;
  align-items:center!important;
  padding:.72rem 1rem!important;
  border:1px solid var(--admin-line,rgba(23,32,51,.12))!important;
  border-radius:8px!important;
  background:var(--admin-surface,#fff)!important;
  box-shadow:none!important;
}
body.app-admin-body .app-admin-hero:not(.app-admin-hero-config) .app-admin-hero-copy{gap:0!important}
body.app-admin-body .app-admin-hero:not(.app-admin-hero-config) .app-admin-hero-badge,
body.app-admin-body .app-admin-hero:not(.app-admin-hero-config) .app-admin-hero-meta,
body.app-admin-body .app-admin-hero:not(.app-admin-hero-config) .app-admin-hero-orb{display:none!important}
body.app-admin-body .app-admin-hero:not(.app-admin-hero-config) .app-admin-hero-copy > .d-flex{
  align-items:center!important;
  gap:.7rem!important;
}
body.app-admin-body .app-admin-hero:not(.app-admin-hero-config) .app-admin-hero-icon{
  width:40px!important;
  height:40px!important;
  border-radius:8px!important;
  background:#e8f4ec!important;
  color:#126b49!important;
  font-size:1rem!important;
  box-shadow:none!important;
}
body.app-admin-body .app-admin-hero:not(.app-admin-hero-config) .app-admin-hero-title{
  color:var(--admin-ink,#172033)!important;
  font-size:1.12rem!important;
  line-height:1.2!important;
  margin:0!important;
}
body.app-admin-body .app-admin-hero:not(.app-admin-hero-config) .app-admin-hero-subtitle{
  max-width:760px;
  margin:.15rem 0 0!important;
  color:var(--text-2,#667085)!important;
  font-size:.82rem!important;
  line-height:1.35!important;
}
@media(max-width:767.98px){
  body.app-admin-body .app-admin-hero:not(.app-admin-hero-config){padding:.62rem .75rem!important}
}
@supports selector(body:has(.page-toolbar .page-title)){
  body.app-admin-body:has(.page-toolbar .page-title) .app-admin-hero:not(.app-admin-hero-config){display:none!important}
}
@media(max-width:767.98px){
  body.app-admin-body .admin-message-tabs,
  body.app-admin-body .admin-message-template-tabs{
    display:flex;
    flex-wrap:nowrap!important;
    gap:.4rem;
    max-width:100%;
    margin:0 0 1rem!important;
    padding:0 0 .35rem;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
  }
  body.app-admin-body .admin-message-tabs .nav-item,
  body.app-admin-body .admin-message-template-tabs .nav-item{flex:0 0 auto}
  body.app-admin-body .admin-message-tabs .nav-link,
  body.app-admin-body .admin-message-template-tabs .nav-link{
    min-height:40px;
    padding:.48rem .72rem;
    border:1px solid rgba(23,32,51,.12);
    border-radius:8px;
    background:#fff;
    color:#344054;
    white-space:nowrap;
  }
  body.app-admin-body .admin-message-tabs .nav-link.active,
  body.app-admin-body .admin-message-template-tabs .nav-link.active{
    border-color:#126b49;
    background:#126b49;
    color:#fff;
  }
}

@media(max-width:767.98px){
  body.app-admin-body .energy-page-actions{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.25fr);
    gap:.4rem;
    width:100%;
  }
  body.app-admin-body .energy-page-actions .btn-group{display:contents}
  body.app-admin-body .energy-page-actions .btn{
    display:flex;
    align-items:center;
    justify-content:center;
    width:auto!important;
    min-width:0;
    min-height:42px;
    padding:.45rem .35rem;
    border-radius:8px;
    font-size:.84rem;
    white-space:nowrap;
  }
  body.app-admin-body .energy-page-actions .btn-group .btn.active{
    border-color:#126b49;
    background:#126b49;
    color:#fff;
  }
}
body.app-admin-body:has(.admin-appearance-page, .admin-risk-page) .app-admin-hero:not(.app-admin-hero-config){display:none!important}
@media(max-width:767.98px){
  body.app-admin-body .gateway-clients-table{display:block;width:100%;min-width:0!important}
  body.app-admin-body .gateway-clients-table thead{display:none}
  body.app-admin-body .gateway-clients-table tbody{display:grid;gap:.65rem}
  body.app-admin-body .gateway-clients-table tbody tr{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.25rem .7rem;
    margin:0;
    padding:.65rem;
    border:1px solid rgba(148,163,184,.24);
    border-radius:8px;
    background:#fff;
  }
  body.app-admin-body .gateway-clients-table tbody td{
    display:flex;
    flex-direction:column;
    min-width:0;
    padding:.4rem .25rem;
    border:0;
    overflow-wrap:anywhere;
  }
  body.app-admin-body .gateway-clients-table tbody td::before{
    content:attr(data-label);
    margin-bottom:.2rem;
    color:#667085;
    font-size:.67rem;
    font-weight:700;
    line-height:1.2;
  }
  body.app-admin-body .gateway-clients-table tbody td:first-child,
  body.app-admin-body .gateway-clients-table tbody td:last-child{grid-column:1/-1}
  body.app-admin-body .gateway-clients-table tbody td:last-child .btn{width:100%;white-space:normal}
}
