/* ================================================================
   ZAPBOT | Revisão final de RESPONSIVIDADE — PC / tablet / mobile
   Compatível com o tema principal, páginas independentes e login.
   Esta folha deve ser carregada APÓS os estilos originais da página.
   ================================================================ */
:root {
  --zb-scroll-track:#050d09;
  --zb-scroll-thumb:#198756;
  --zb-scroll-hover:#35d888;
  --zb-mobile-gutter:12px;
  color-scheme:dark;
}
/* Barra de rolagem real, inclusive áreas com overflow próprio. */
html,body,body *,html * {
  scrollbar-width:thin!important;
  scrollbar-color:var(--zb-scroll-thumb) var(--zb-scroll-track)!important;
}
html::-webkit-scrollbar,body::-webkit-scrollbar,
body *::-webkit-scrollbar {width:9px!important;height:9px!important;display:block!important}
html::-webkit-scrollbar-track,body::-webkit-scrollbar-track,
body *::-webkit-scrollbar-track {background:var(--zb-scroll-track)!important;border-radius:10px!important}
html::-webkit-scrollbar-thumb,body::-webkit-scrollbar-thumb,
body *::-webkit-scrollbar-thumb {background:var(--zb-scroll-thumb)!important;border:2px solid var(--zb-scroll-track)!important;border-radius:12px!important;min-height:28px!important}
html::-webkit-scrollbar-thumb:hover,body::-webkit-scrollbar-thumb:hover,
body *::-webkit-scrollbar-thumb:hover {background:var(--zb-scroll-hover)!important}
html::-webkit-scrollbar-corner,body::-webkit-scrollbar-corner,
body *::-webkit-scrollbar-corner {background:var(--zb-scroll-track)!important}
body .simplebar-track {background:#07100b!important}
body .simplebar-scrollbar::before {background:#1fc47a!important;opacity:1!important;border-radius:12px!important}
body .ps__thumb-y,body .ps__thumb-x {background:#1fc47a!important;border-radius:12px!important}
body .ps__rail-x,body .ps__rail-y {background:#07100b!important}
body {max-width:100%;}
body img,body video,body svg,body canvas {max-width:100%;}
body :is(input,textarea,select,button) {min-width:0;}
/* Prevê overflow sem esconder tabelas: só a tabela rola dentro do card. */
body.zapbot-panel .wrapper,
body.zapbot-panel .page-wrapper,
body.zapbot-panel .page-content,
body.zapbot-panel .page-content>.container,
body.zapbot-panel .page-content>.container-fluid,
body.zb-standalone-page>.container {min-width:0;max-width:100%}
body.zapbot-panel .page-content :is(.row,.col,.card,.card-body,.card-header,.main-card,.register-card,.edit-card,.container,.container-fluid,.form-group,.input-group),
body.zb-standalone-page :is(.row,.col,.glass-card,.stat-card,.main-card,.container,.form-group,.input-group) {min-width:0}
body.zapbot-panel .page-content .table-responsive,
body.zapbot-panel .page-content .dataTables_scrollBody,
body.zb-standalone-page .table-responsive {display:block;width:100%;max-width:100%;overflow-x:auto!important;overflow-y:visible;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-gutter:stable}
body.zapbot-panel .page-content :is(.table-responsive,.dataTables_scrollBody) > table {width:max-content;min-width:100%;max-width:none}
body.zapbot-panel .page-content table th,
body.zapbot-panel .page-content table td {overflow-wrap:normal;white-space:normal}
body.zapbot-panel .page-content .table-responsive table :is(th,td) {white-space:nowrap}
body.zapbot-panel .page-content :is(.card-header,.main-card>.d-flex,.d-flex.flex-wrap) {min-width:0}
body.zapbot-panel .page-content .card-header {gap:12px;flex-wrap:wrap}
body.zapbot-panel .page-content .btn:not(.action-btn),
body.zb-standalone-page .btn {min-height:38px;max-width:100%;overflow-wrap:anywhere}
body.zapbot-panel .page-content .form-control,
body.zapbot-panel .page-content .form-select,
body.zapbot-panel .page-content .form-control-custom,
body.zb-standalone-page :is(.form-control,.form-select) {max-width:100%!important;width:100%;min-width:0;color:#f1fff6!important;background-color:#0a1b11!important;border-color:rgba(73,207,129,.30)!important}
body.zapbot-panel .page-content :is(.form-control,.form-select,.form-control-custom):focus,
body.zb-standalone-page :is(.form-control,.form-select):focus {border-color:#39e58e!important;box-shadow:0 0 0 3px rgba(49,219,131,.13)!important}
body.zapbot-panel .page-content :is(.btn-primary,.btn-update,.btn-register,.btn-save,.btn-action.btn-save),
body.zb-standalone-page :is(.btn-primary,.btn-storm,.btn-primary-neon) {background:linear-gradient(125deg,#16985b,#2dd989)!important;border-color:#279963!important;color:#fafffc!important;box-shadow:none!important}
body.zapbot-panel .page-content .btn-outline-primary,
body.zapbot-panel .page-content .btn-outline-info {border-color:#278558!important;color:#a0f3c0!important}
body.zapbot-panel .page-content .btn-outline-primary:hover,
body.zapbot-panel .page-content .btn-outline-info:hover {background:#174f31!important;color:#f5fff8!important}
body.zapbot-panel .page-content .text-primary,
body.zapbot-panel .page-content .text-info,
body.zb-standalone-page .text-primary,
body.zb-standalone-page .text-info {color:#54e69b!important}
body.zapbot-panel .page-content .card-title,
body.zapbot-panel .page-content .card-title-pearl {text-shadow:none!important;filter:none!important;-webkit-text-fill-color:#edfdf3!important;background-image:none!important}
body.zapbot-panel .page-content :is(.card,.edit-card,.register-card) {width:100%;max-width:100%;overflow-wrap:anywhere}
body.zapbot-panel .page-content .register-card,
body.zapbot-panel .page-content .edit-card,
body.zapbot-panel .page-content .card-update {width:min(100%,680px)!important;margin-left:auto!important;margin-right:auto!important}
body.zapbot-panel .page-content :is(.register-card,.edit-card,.card-update) .btn {white-space:normal}
body.zapbot-panel .page-content .user-badge {display:inline-flex;margin:3px 6px 3px 0!important;max-width:100%;overflow-wrap:anywhere}
body.zapbot-panel .page-content :is(.main-card,.card,.glass-card,.register-card,.edit-card) :is(h2,h3,h4,h5) {overflow-wrap:anywhere}
body.zapbot-panel .page-content .table-modern td {min-width:0}
body.zapbot-panel .page-content .table-modern .action-group {min-width:max-content;flex-wrap:nowrap}
body.zapbot-panel .page-content .badge-unlimited {background:rgba(27,168,91,.14)!important;color:#8defaf!important;border-color:rgba(42,210,110,.32)!important}
body.zapbot-panel .page-content .badge-admin {background:#15482d!important;color:#77e7aa!important;border-color:#318f5c!important}
body.zapbot-panel .page-content :is(.table,.table-modern) thead th {background:#102b1c!important;color:#a0ecc0!important}
/* Protege datatables em vistas estreitas; barras azul não se repetem. */
body.zapbot-panel .dataTables_wrapper {max-width:100%;min-width:0}
body.zapbot-panel .dataTables_wrapper .row {margin-left:0;margin-right:0}
body.zapbot-panel .dataTables_wrapper .dataTables_length,
body.zapbot-panel .dataTables_wrapper .dataTables_filter {max-width:100%;white-space:normal}
body.zapbot-panel .dataTables_wrapper .dataTables_filter input {max-width:100%;margin-left:0.35rem}
/* Header / menu: sem prender conteúdo ou criar barra horizontal na página. */
body.zapbot-panel .zb-header .zb-topnav {min-width:0}
body.zapbot-panel .zb-topright {flex:0 1 auto}
body.zapbot-panel .zb-breadcrumb {flex:1 1 auto}
body.zapbot-panel .zb-sidebar-content {overflow-x:hidden!important;overflow-y:auto!important}
body.zapbot-panel .sidebar-wrapper {overscroll-behavior:contain}
body.zapbot-panel.zb-sidebar-lock {overflow:hidden!important}
/* PÁGINAS INDEPENDENTES: cobranças, serviços, mensagens. */
body.zb-standalone-page {width:100%;margin:0!important;min-height:100dvh;padding:clamp(10px,2vw,22px)!important;display:block!important;overflow-x:clip!important}
body.zb-standalone-page>.container,
body.zb-standalone-page>.main-card {max-width:1440px!important;margin-left:auto!important;margin-right:auto!important}
body.zb-standalone-page .zb-standalone-bar {width:100%;max-width:1440px;min-width:0;gap:12px}
body.zb-standalone-page .zb-standalone-nav {min-width:0;flex-wrap:wrap}
body.zb-standalone-page :is(.glass-card,.main-card,.stat-card) {min-width:0;max-width:100%;overflow-wrap:anywhere}
body.zb-standalone-page .glass-card {padding:clamp(14px,2vw,28px)!important}
body.zb-standalone-page .stat-card {height:100%;padding:clamp(12px,2vw,20px)!important}
body.zb-standalone-page .stat-card h3 {font-size:clamp(20px,2.2vw,29px);overflow-wrap:anywhere}
body.zb-standalone-page h1[style] {letter-spacing:clamp(0px,.45vw,4px)!important;text-shadow:none!important}
body.zb-standalone-page .container>.d-flex.justify-content-between {gap:12px!important}
body.zb-standalone-page .container>.d-flex.justify-content-between>.flex-grow-1 {min-width:0}
body.zb-standalone-page .nav-pills {flex-wrap:wrap;gap:6px}
body.zb-standalone-page .nav-pills .nav-link {padding:9px 12px;white-space:normal}
body.zb-standalone-page .nav-pills .nav-link.active {background:#165a38!important;opacity:1}
body.zb-standalone-page .d-flex.gap-2:has(> select.form-select) {min-width:0}
body.zb-standalone-page .d-flex.gap-2>select.form-select {flex:1 1 0!important;min-width:0!important;width:0;max-width:100%}
body.zb-standalone-page .input-group-responsive {max-width:100%}
body.zb-standalone-page .input-group-responsive select {min-width:0}
body.zb-standalone-page .client-selector,
body.zb-standalone-page .result-area {max-width:100%;padding:clamp(12px,2.5vw,23px)!important}
body.zb-standalone-page .header-section {gap:12px;flex-wrap:wrap}
body.zb-standalone-page .btn {white-space:normal!important;line-height:1.25}
body.zb-standalone-page select option {color:#edfff3;background:#0a2015}
body.zb-standalone-page :is(textarea,input,select) {font-size:16px}
/* Login: longa página / teclado aberto não recortam a tela. */
html:has(body.zb-login-page),body.zb-login-page {height:auto!important;min-height:100%!important;overflow-x:hidden!important;overflow-y:auto!important}
body.zb-login-page .login-screen {height:auto!important;min-height:100dvh!important;overflow:visible!important;width:100%;padding:clamp(12px,3vw,28px)!important}
body.zb-login-page .login-shell {max-width:min(470px,100%)!important;min-width:0}
body.zb-login-page .login-area {min-height:0!important}
body.zb-login-page .field-wrap {min-width:0}
body.zb-login-page .field input {max-width:100%;min-width:0}
/* 1024: sidebar sobreposta ao conteúdo, sem lateral vazia. */
@media(max-width:1024px){
 body.zapbot-panel .sidebar-wrapper {width:min(280px,88vw)!important;max-width:88vw!important}
 body.zapbot-panel .zb-header .topbar {left:0!important;right:0!important;width:100%}
 body.zapbot-panel .page-wrapper {margin-left:0!important;width:100%!important}
 body.zapbot-panel .zb-menu-button {flex-shrink:0}
}
@media(max-width:767.98px){
 html::-webkit-scrollbar,body::-webkit-scrollbar,body *::-webkit-scrollbar {width:7px!important;height:7px!important}
 body.zapbot-panel .page-content {padding:14px var(--zb-mobile-gutter) 28px!important}
 body.zapbot-panel .page-content>.container,
 body.zapbot-panel .page-content>.container-fluid {padding-left:0!important;padding-right:0!important}
 body.zapbot-panel .page-content .card,
 body.zapbot-panel .page-content .main-card,
 body.zapbot-panel .page-content .edit-card,
 body.zapbot-panel .page-content .register-card {margin-top:0!important}
 body.zapbot-panel .page-content .card-body,
 body.zapbot-panel .page-content .main-card,
 body.zapbot-panel .page-content .register-card,
 body.zapbot-panel .page-content .edit-card {padding:clamp(13px,3vw,20px)!important}
 body.zapbot-panel .page-content :is(.container,.container-fluid)>.row {--bs-gutter-x:13px}
 body.zapbot-panel .page-content .form-control-custom,
 body.zapbot-panel .page-content :is(.form-control,.form-select),
 body.zb-standalone-page :is(.form-control,.form-select) {font-size:16px!important}
 body.zapbot-panel .page-content .card-header {flex-direction:column;align-items:flex-start!important}
 body.zapbot-panel .page-content .card-header>.btn {width:100%}
 body.zapbot-panel .page-content .table-responsive {padding-bottom:5px}
 body.zapbot-panel .page-content .action-group {justify-content:flex-start}
 body.zapbot-panel .page-content .main-card>.d-flex>.btn {max-width:100%}
 body.zb-standalone-page>.container {padding:0!important}
 body.zb-standalone-page .zb-standalone-bar {flex-wrap:wrap;justify-content:space-between;gap:9px;margin-bottom:16px}
 body.zb-standalone-page .zb-standalone-nav {order:3;flex:1 0 100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
 body.zb-standalone-page .zb-standalone-nav a {width:100%;display:flex;flex-direction:column;gap:3px;white-space:normal;min-width:0;text-align:center;font-size:10px;padding:10px 3px;line-height:1.1}
 body.zb-standalone-page .zb-standalone-brand {min-width:0;font-size:18px}
 body.zb-standalone-page .zb-standalone-brand small {font-size:10px}
 body.zb-standalone-page .container>.d-flex.justify-content-between {flex-direction:column;align-items:stretch!important;margin-bottom:22px!important;text-align:center}
 body.zb-standalone-page .container>.d-flex.justify-content-between>.flex-grow-1 {width:100%;order:-1}
 body.zb-standalone-page .container>.d-flex.justify-content-between>a,
 body.zb-standalone-page .container>.d-flex.justify-content-between>button {width:100%;justify-content:center}
 body.zb-standalone-page .row {--bs-gutter-x:12px;--bs-gutter-y:14px}
 body.zb-standalone-page .glass-card {border-radius:15px!important}
 body.zb-standalone-page .stat-card {padding:12px 9px!important;border-radius:13px!important}
 body.zb-standalone-page .main-card {padding:15px!important}
 body.zb-standalone-page .main-card .header-section {text-align:left!important}
 body.zb-standalone-page .input-group-responsive {flex-wrap:wrap!important;width:100%!important;gap:8px}
 body.zb-standalone-page .input-group-responsive>* {width:100%!important;flex:1 1 100%!important;border-radius:11px!important}
 body.zb-standalone-page .header-section .btn {max-width:100%}
 body.zb-standalone-page .result-area {margin-top:18px}
 body.zb-standalone-page textarea {max-width:100%;resize:vertical}
}
@media(max-width:480px){
 body.zapbot-panel .page-content {padding-left:10px!important;padding-right:10px!important}
 body.zapbot-panel .zb-header .zb-topnav {gap:8px!important;padding:0 10px!important}
 body.zapbot-panel .zb-topright {gap:5px!important}
 body.zapbot-panel .zb-hero {padding:18px 14px!important}
 body.zapbot-panel .zb-metrics {grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}
 body.zapbot-panel .zb-metric {padding:13px 10px!important}
 body.zapbot-panel .zb-metric-top {font-size:10px!important}
 body.zapbot-panel .zb-metric>strong {font-size:clamp(20px,6vw,27px)!important}
 body.zapbot-panel .zb-metric-icon {min-height:29px!important;min-width:29px!important;font-size:17px!important}
 body.zapbot-panel .zb-shortcuts {grid-template-columns:minmax(0,1fr)!important}
 body.zb-standalone-page {padding:9px!important}
 body.zb-standalone-page .zb-standalone-bar {padding:10px!important}
 body.zb-standalone-page .glass-card {padding:14px 12px!important}
 body.zb-standalone-page .container>.d-flex h1 {font-size:21px!important;letter-spacing:0!important}
 body.zb-standalone-page .nav-pills .nav-link {padding:8px 9px;font-size:12px}
 body.zb-login-page .login-screen {padding:10px!important}
 body.zb-login-page .login-area {padding:25px 17px!important}
}
@media(max-width:360px){
 body.zapbot-panel .zb-breadcrumb strong {font-size:12px!important}
 body.zapbot-panel .zb-metrics {grid-template-columns:1fr!important}
 body.zb-standalone-page .stat-card h3 {font-size:18px!important}
 body.zb-standalone-page .zb-standalone-brand small {display:none}
}
@media(prefers-reduced-motion:reduce){
 body.zb-standalone-page *,body.zapbot-panel *,body.zb-login-page * {animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
/* Tabela de usuários em cartões no celular: nenhuma coluna escondida. */
@media(max-width:767.98px){
 body.zapbot-panel .table-responsive:has(>.table-modern){overflow:visible!important;scrollbar-gutter:auto!important}
 body.zapbot-panel .table-responsive>.table-modern {display:block;min-width:0!important;width:100%;border-spacing:0;margin:0}
 body.zapbot-panel .table-responsive>.table-modern thead {position:absolute!important;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}
 body.zapbot-panel .table-responsive>.table-modern tbody {display:grid;gap:12px}
 body.zapbot-panel .table-responsive>.table-modern tbody tr {display:block!important;width:100%;margin:0;transform:none!important;box-shadow:none!important;border-radius:14px;background:#0d1e14!important;border:1px solid #244631!important;overflow:hidden}
 body.zapbot-panel .table-responsive>.table-modern tbody td {display:flex!important;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:11px 13px!important;border-radius:0!important;border-bottom:1px solid rgba(128,209,151,.12)!important;white-space:normal!important;overflow-wrap:anywhere}
 body.zapbot-panel .table-responsive>.table-modern tbody td:last-child {border-bottom:0!important}
 body.zapbot-panel .table-responsive>.table-modern tbody td::before {color:#80af94;font-size:11px;font-weight:800;flex:0 0 87px;max-width:87px;line-height:1.3}
 body.zapbot-panel .table-responsive>.table-modern tbody td:nth-child(1)::before{content:'Nome'}
 body.zapbot-panel .table-responsive>.table-modern tbody td:nth-child(2)::before{content:'Login'}
 body.zapbot-panel .table-responsive>.table-modern tbody td:nth-child(3)::before{content:'Nível'}
 body.zapbot-panel .table-responsive>.table-modern tbody td:nth-child(4)::before{content:'Validade'}
 body.zapbot-panel .table-responsive>.table-modern tbody td:nth-child(5)::before{content:'Ações'}
 body.zapbot-panel .table-responsive>.table-modern tbody td>div {min-width:0}
 body.zapbot-panel .table-responsive>.table-modern tbody td .action-group {flex:1 1 auto;justify-content:flex-end!important;flex-wrap:wrap!important;min-width:0}
 body.zapbot-panel .table-responsive>.table-modern tbody td .avatar {flex:0 0 35px}
 body.zapbot-panel .table-responsive>.table-modern tbody td span {overflow-wrap:anywhere}
 body.zapbot-panel .zb-scroll-tip {display:block}
}
.zapbot-panel .zb-scroll-tip {display:none;font-size:12px;color:#97bca4!important;margin:0 0 9px}
/* Correções pontuais identificadas em 320–390px. */
@media(max-width:767.98px){
 body.zb-standalone-page .input-group-responsive {flex-direction:column!important;flex-wrap:nowrap!important;height:auto!important}
 body.zb-standalone-page .input-group-responsive>* {position:static!important;width:100%!important;max-width:100%!important;min-width:0!important;flex:0 0 auto!important;margin-left:0!important}
 body.zapbot-panel .table-responsive>.table-modern {width:100%!important;max-width:100%!important;min-width:0!important;table-layout:fixed!important}
 body.zapbot-panel .table-responsive>.table-modern tbody,
 body.zapbot-panel .table-responsive>.table-modern tbody tr,
 body.zapbot-panel .table-responsive>.table-modern tbody td {width:100%!important;max-width:100%!important;min-width:0!important}
 body.zapbot-panel .table-responsive>.table-modern tbody td {box-sizing:border-box;overflow-wrap:anywhere}
}
/* CRÍTICO: o CSS legado centraliza o BODY com flex + height:100vh.
   Isso cortava o início/final das páginas e impedia rolagem vertical.
   Restaurar fluxo normal e scroll da janela em TODAS as telas do painel. */
html.zapbot-theme {height:auto!important;min-height:100%!important;overflow-y:auto!important;overflow-x:clip!important}
body.zapbot-panel {display:block!important;position:relative!important;height:auto!important;min-height:100dvh!important;margin:0!important;align-items:initial!important;justify-content:initial!important;overflow-x:clip!important;overflow-y:visible!important}
body.zapbot-panel>.wrapper {display:block!important;position:relative!important;width:100%!important;min-height:100dvh!important;margin:0!important;overflow:visible!important}
body.zb-login-page {display:block!important;position:relative!important;align-items:initial!important;justify-content:initial!important;height:auto!important;margin:0!important;overflow-y:auto!important}
/* Último ajuste da paleta: os rótulos/ícones legados também ficam verdes. */
body.zapbot-panel {--neon-blue:#2dd989!important;--bs-primary:#1ba46b;--bs-link-color:#60eeab}
