*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:#1f2937}.login-page{min-height:100vh;background:linear-gradient(135deg,#09407e,#002e61);display:flex;align-items:center;justify-content:center;padding:18px}.login-wrapper{width:100%;max-width:420px;background:#fff;border-radius:12px;box-shadow:0 15px 40px rgba(0,0,0,.25);padding:30px 25px}.login-logo{text-align:center;margin-bottom:22px}.login-logo img{max-width:210px;max-height:95px}.form-group{margin-bottom:15px;position:relative}.form-control{width:100%;height:46px;border:1px solid #ccd5df;border-radius:8px;padding:0 13px;font-size:15px;outline:none}.form-control:focus{border-color:#2d7ab8;box-shadow:0 0 0 3px rgba(45,122,184,.12)}.password-field .form-control{padding-right:55px}.toggle-password{position:absolute;right:8px;top:8px;height:30px;border:0;background:transparent;color:#356b9b;cursor:pointer}.turnstile-wrap{display:flex;justify-content:center;margin:8px 0 16px}.btn-login{width:100%;border:0;border-radius:8px;background:#218838;color:#fff;font-weight:700;font-size:16px;padding:13px 15px;cursor:pointer}.btn-login:hover{background:#1e7e34}.alert-error{margin-top:16px;background:#fde7e7;border:1px solid #f4b5b5;color:#8f1d1d;border-radius:8px;padding:12px;text-align:center}.login-footer{text-align:center;margin-top:20px;font-size:12px;color:#666}.session-warning{text-align:center}.session-warning h2{color:#9b2226;font-size:22px}.session-warning p{line-height:1.55;color:#555}.back-link{display:block;margin-top:16px;color:#356b9b;text-decoration:none}.app-shell{min-height:100vh;background:#f4f7fa}.topbar{height:62px;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;padding:0 22px;justify-content:space-between}.topbar img{height:38px}.sidebar{position:fixed;left:0;top:62px;bottom:0;width:250px;background:#073869;color:#fff;padding:14px}.content{margin-left:250px;padding:24px}.menu-link{display:block;color:#fff;text-decoration:none;padding:10px 12px;border-radius:6px}.menu-link:hover{background:rgba(255,255,255,.1)}.password-alert{position:sticky;top:0;z-index:30;background:#fff3cd;border:1px solid #ffe69c;color:#664d03;padding:12px 16px;text-align:center}.card{background:#fff;border-radius:10px;padding:20px;box-shadow:0 3px 15px rgba(0,0,0,.06)}@media(max-width:760px){.sidebar{position:static;width:100%;min-height:auto}.content{margin-left:0}.topbar{padding:0 12px}.login-wrapper{padding:25px 18px}}

.runtime-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:15px;margin:20px 0}.runtime-grid>div{padding:15px;background:#f7f8fa;border:1px solid #e4e7eb;border-radius:8px}.form-stack{max-width:520px;display:flex;flex-direction:column;gap:10px}.form-stack select{padding:11px;border:1px solid #cfd5dc;border-radius:6px}.muted{color:#68727d;font-size:13px}.notice{padding:12px;border-radius:6px;margin:12px 0}.notice.success{background:#edf8ef}.notice.error{background:#fff0f0}.root-menu{font-weight:bold}

.brand{display:flex;align-items:center;gap:12px}.brand strong{font-size:16px;color:#0b3b6e}.user-tools a{color:#245f96;text-decoration:none}.badge-root{background:#7b1e1e;color:#fff;padding:3px 7px;border-radius:10px;font-size:10px}.sidebar-title{font-size:11px;opacity:.65;padding:4px 12px 10px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.page-head h2,.card h2{margin-top:0}.page-head p,.card>p{color:#667085}.admin-form{border:1px solid #e4e9ef;background:#fafcfe;border-radius:9px;padding:16px;margin:18px 0}.admin-form.compact{margin-bottom:24px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid label{font-size:13px;font-weight:600;display:flex;flex-direction:column;gap:6px}.form-grid .span-2{grid-column:span 2}.check-label{justify-content:center;align-items:flex-start!important;flex-direction:row!important;padding-top:30px}.btn-primary,.btn-danger{border:0;border-radius:7px;padding:10px 16px;color:#fff;font-weight:700;cursor:pointer}.btn-primary{background:#1769aa}.btn-danger{background:#b42318}.table-wrap{overflow:auto;margin-top:18px}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{background:#eef3f8;color:#30445a;text-align:left;padding:10px;border-bottom:1px solid #dce4ec}.admin-table td{padding:10px;border-bottom:1px solid #edf0f3}.empty{text-align:center;color:#7a8694;padding:24px!important}.role-tabs{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0}.role-tab{padding:8px 11px;border:1px solid #ccd7e2;border-radius:7px;color:#2e5f8a;text-decoration:none;background:#fff}.role-tab.active{background:#0b4f86;color:#fff;border-color:#0b4f86}.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px;margin:15px 0 20px}.permission-item{display:flex;gap:9px;border:1px solid #e1e6ec;border-radius:8px;padding:12px;background:#fafafa}.permission-item span{display:flex;flex-direction:column;gap:3px}.permission-item small{color:#73808c}.admin-form small{font-weight:400;color:#718096}@media(max-width:760px){.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:span 1}.brand strong{display:none}.user-tools{font-size:12px}}
.login-intro{text-align:center;margin:-8px 0 18px}.login-intro h1{font-size:20px;color:#123e6b;margin:0 0 5px}.login-intro p{font-size:13px;color:#6b7280;margin:0}


/* ==========================================================================
   LOGIN POR QR - v1.19
   ========================================================================== */
.login-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:#818181;font-size:12px;text-transform:uppercase}
.login-divider:before,.login-divider:after{content:"";height:1px;background:#e5e5e5;flex:1}
.qr-login-box{text-align:center;border:1px solid #ececec;border-radius:14px;padding:18px;background:#fff}
.qr-title{font-weight:700;font-size:16px;margin-bottom:6px}
.qr-help{font-size:12px;line-height:1.45;color:#666;margin:0 auto 14px;max-width:300px}
#qr-code{width:180px;height:180px;margin:0 auto 10px;padding:8px;background:#fff;border-radius:8px}
#qr-code img,#qr-code canvas,#qr-code svg{max-width:100%;height:auto}
.qr-status{font-size:12px;min-height:18px;color:#555;margin:8px 0 12px}
.btn-secondary{border:1px solid #ddd;background:#fff;color:#444;border-radius:8px;padding:9px 14px;cursor:pointer}
.alert-success{padding:12px;border-radius:8px;background:#eef9f0;color:#286837;margin:12px 0}
.mobile-login-wrapper{max-width:420px}
@media(max-width:600px){.qr-login-box{padding:14px}#qr-code{width:170px;height:170px}}

/* Login por QR Code: oculto por padrão e exibido somente em modal. */
.btn-qr-login{width:100%;border:1px solid #ccd5df;border-radius:8px;background:#fff;color:#123e6b;font-weight:700;font-size:15px;padding:12px 15px;cursor:pointer}.btn-qr-login:hover,.btn-qr-login:focus{background:#f4f7fa;border-color:#9fb2c5;outline:none}.qr-modal{display:none;position:fixed;inset:0;z-index:1000;align-items:center;justify-content:center;padding:18px}.qr-modal.is-open{display:flex}.qr-modal-backdrop{position:absolute;inset:0;background:rgba(0,20,45,.68)}.qr-modal-dialog{position:relative;z-index:1;width:100%;max-width:390px;background:#fff;border-radius:14px;box-shadow:0 20px 55px rgba(0,0,0,.32);padding:12px}.qr-modal-close{position:absolute;right:12px;top:8px;z-index:2;width:36px;height:36px;border:0;border-radius:50%;background:#f1f4f7;color:#334155;font-size:25px;line-height:34px;cursor:pointer}.qr-modal-close:hover,.qr-modal-close:focus{background:#e2e8f0;outline:none}.qr-modal .qr-login-box{border:0;padding:28px 18px 18px}.qr-modal-open{overflow:hidden}@media(max-width:600px){.qr-modal{padding:12px}.qr-modal-dialog{max-width:100%}.qr-modal .qr-login-box{padding:28px 8px 12px}}


/* Gestao de Usuarios v1.19.10 - Bootstrap visual + fallback funcional */
.action-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:32px;padding:0;margin:2px;border-radius:.375rem;text-decoration:none;font-size:16px;line-height:1}
.btn-primary.action-icon{color:#fff}.btn-success.action-icon{color:#fff}.btn-warning.action-icon{color:#212529}.btn-secondary.action-icon{color:#fff}
.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}
.modal.show{display:block}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.175);border-radius:.5rem;outline:0}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6}.modal-title{margin:0}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em;border:0;background:transparent;font-size:1.5rem;line-height:1;cursor:pointer}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background:#000}.modal-backdrop.show{opacity:.5}.d-none{display:none!important}.modal-open{overflow:hidden}
@media(min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}}@media(min-width:992px){.modal-xl{max-width:1140px}}

/* Gestão de Usuários v1.19.11 */
.cb-action-form{display:inline-flex;margin:0 2px}.cb-action{width:34px;height:34px;padding:0;border:1px solid transparent;border-radius:.375rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;vertical-align:middle;transition:background-color .15s,border-color .15s,box-shadow .15s}.cb-edit{background:#ffc107;border-color:#ffc107;color:#212529}.cb-email{background:#0d6efd;border-color:#0d6efd;color:#fff}.cb-whatsapp{background:#25d366;border-color:#25d366;color:#fff}.cb-action:hover{filter:brightness(.92)}.cb-action:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.25);outline:0}
.cb-icon{display:block;position:relative;width:18px;height:18px}.cb-pencil:before{content:"";position:absolute;width:14px;height:4px;background:currentColor;border-radius:1px;left:2px;top:7px;transform:rotate(-45deg)}.cb-pencil:after{content:"";position:absolute;left:0;top:12px;border-left:5px solid currentColor;border-top:2px solid transparent;border-bottom:2px solid transparent;transform:rotate(-45deg)}
.cb-envelope{border:2px solid currentColor;border-radius:2px;box-sizing:border-box}.cb-envelope:before{content:"";position:absolute;left:1px;top:2px;width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)}
.cb-wa{border:2px solid currentColor;border-radius:50%;box-sizing:border-box}.cb-wa:before{content:"☎";position:absolute;font-size:12px;line-height:14px;left:1px;top:0;transform:rotate(-25deg)}.cb-wa:after{content:"";position:absolute;left:0;bottom:-3px;border-top:5px solid currentColor;border-right:4px solid transparent}

/* v1.19.12 */
.cb-actions{display:flex!important;align-items:center!important;gap:5px;white-space:nowrap}.cb-actions .cb-action-form{display:flex!important;align-items:center!important;margin:0!important}.cb-actions .cb-action{margin:0!important;position:static!important;top:auto!important;vertical-align:middle!important;flex:0 0 34px}
.cb-checkbox-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0}
@media(max-width:1100px){.cb-checkbox-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.cb-checkbox-grid{grid-template-columns:1fr}}.cb-check-option{display:flex!important;align-items:center;gap:8px;padding:10px 12px;margin:0!important;min-height:44px;border:1px solid #dee2e6;border-radius:8px;background:#f8f9fa}.cb-check-option input{margin:0}
.cb-help-button{width:34px;height:34px;border:0;border-radius:6px;background:#6c757d;color:#fff;font-weight:700;font-size:18px;cursor:pointer}.cb-help-modal{display:none;position:fixed;inset:0;z-index:1300;align-items:center;justify-content:center;padding:16px}.cb-help-modal.is-open{display:flex}.cb-help-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.5)}.cb-help-dialog{position:relative;z-index:1;width:min(620px,100%);background:#fff;border-radius:10px;padding:24px;box-shadow:0 20px 60px rgba(0,0,0,.25)}.cb-help-close{position:absolute;right:12px;top:8px;border:0;background:transparent;font-size:26px;cursor:pointer}
@media(max-width:760px){.cb-checkbox-grid{grid-template-columns:1fr}}

/* Gestão de Usuários v1.19.14 - ajuda e alinhamento */
.page-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important}
.page-actions #openUserModal,.page-actions .cb-help-button{height:34px!important;min-height:34px!important;margin:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;vertical-align:middle!important}
.page-actions #openUserModal{min-width:34px;padding-top:0!important;padding-bottom:0!important}
.cb-help-button{width:34px!important;line-height:1!important}

.cb-help-actions{display:flex;flex-direction:column;gap:12px;margin:18px 0 20px}
.cb-help-action-row{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #edf0f2}
.cb-help-action-row:last-child{border-bottom:0}
.cb-help-action-row .cb-help-icon{margin:0!important;pointer-events:none}
.cb-help-action-row strong{display:inline-block;margin-bottom:2px}
.cb-help-action-row span{line-height:1.45}
.cb-help-required{margin-top:16px;padding:14px 16px;background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px}
.cb-help-required h4{margin:0 0 8px}
.cb-help-required p{margin:0 0 8px}
.cb-help-required ul{columns:2;column-gap:28px;margin:8px 0 0;padding-left:20px}
.cb-help-required li{break-inside:avoid;margin:4px 0}
.cb-help-note{margin:16px 0 0;padding-top:12px;border-top:1px solid #dee2e6}
@media(max-width:600px){.cb-help-required ul{columns:1}}

/* Menu Início - v1.19.15 */
.home-brand{
    min-height:calc(100vh - 180px);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    width:100%;
    padding:32px 20px;
    box-sizing:border-box;
    text-align:center;
}
.home-brand-logo{
    display:block;
    width:min(420px,65vw);
    max-width:100%;
    height:auto;
    object-fit:contain;
}
.home-brand-tagline{
    margin-top:22px;
    color:#0d6efd;
    font-size:clamp(1.15rem,2.2vw,1.65rem);
    line-height:1.25;
    font-weight:600;
    letter-spacing:.01em;
}
@media(max-width:600px){
    .home-brand{min-height:calc(100vh - 150px);padding:24px 14px}
    .home-brand-logo{width:min(320px,82vw)}
    .home-brand-tagline{margin-top:16px}
}

/* Menu Início - ajuste v1.19.16 */
.home-brand{
    background:#fff!important;
}
.home-brand-logo{
    width:min(520px,72vw)!important;
}
@media(max-width:600px){
    .home-brand-logo{
        width:min(380px,88vw)!important;
    }
}

/* Menu Início - ajuste v1.19.17
   Fundo compatível com o fundo claro da logomarca Cyberbox. */
.home-brand{
    background:rgb(252,252,252)!important;
}

/* v1.19.18 - Preferencias visuais, SMTP modal e responsividade */
.topbar-right{display:flex;align-items:center;gap:18px}.ui-preferences{display:flex;align-items:center;gap:10px}.ui-switch{display:inline-flex;align-items:center;gap:6px;font-size:12px;cursor:pointer;white-space:nowrap}.ui-switch input{position:absolute;opacity:0;pointer-events:none}.ui-switch-track{width:34px;height:19px;border-radius:20px;background:#c8d1db;position:relative;transition:.2s}.ui-switch-track:after{content:"";position:absolute;width:15px;height:15px;left:2px;top:2px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.25)}.ui-switch input:checked+.ui-switch-track{background:#1769aa}.ui-switch input:checked+.ui-switch-track:after{transform:translateX(15px)}.user-tools{display:flex;align-items:center;gap:10px;white-space:nowrap}

.menu-hidden .sidebar{display:none!important}.menu-hidden .content{margin-left:0!important}

.btn-secondary{border:1px solid #aeb9c5;border-radius:7px;padding:9px 16px;background:#fff;color:#30445a;font-weight:700;cursor:pointer}.smtp-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:14px}
.cb-modal{display:none;position:fixed;inset:0;z-index:1500;align-items:center;justify-content:center;padding:16px}.cb-modal.is-open{display:flex}.cb-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55)}.cb-modal-dialog{position:relative;z-index:1;width:min(520px,100%);background:#fff;color:#1f2937;border-radius:10px;padding:24px;box-shadow:0 24px 70px rgba(0,0,0,.3)}.cb-modal-close{position:absolute;right:12px;top:8px;border:0;background:transparent;color:inherit;font-size:27px;cursor:pointer}.smtp-test-form{margin-bottom:0}

/* Dark: aplicado ao shell autenticado; tela de login permanece independente. */
.theme-dark{background:#111827;color:#e5e7eb}.theme-dark .topbar{background:#111827;border-color:#334155}.theme-dark .brand strong,.theme-dark .user-tools a{color:#93c5fd}.theme-dark .sidebar{background:#071f38}.theme-dark .content{background:#111827}.theme-dark .card,.theme-dark .admin-form,.theme-dark .cb-modal-dialog,.theme-dark .cb-help-dialog{background:#1f2937;color:#e5e7eb;border-color:#374151}.theme-dark .page-head p,.theme-dark .card>p,.theme-dark .muted{color:#aeb9c5}.theme-dark .form-control,.theme-dark select,.theme-dark textarea{background:#111827;color:#f3f4f6;border-color:#4b5563}.theme-dark .admin-table th{background:#263548;color:#e5e7eb;border-color:#3b4a5d}.theme-dark .admin-table td{border-color:#374151}.theme-dark .permission-item,.theme-dark .cb-check-option,.theme-dark .cb-help-required{background:#172033;color:#e5e7eb;border-color:#374151}.theme-dark .btn-secondary{background:#253246;color:#e5e7eb;border-color:#526173}.theme-dark .home-brand{background:#111827!important}.theme-dark .role-tab{background:#1f2937;color:#93c5fd;border-color:#475569}.theme-dark .role-tab.active{background:#1769aa;color:#fff}

/* Celular/tablet: cabeçalho quebra de forma controlada e menu vira bloco compacto. */
@media(max-width:900px){
  .topbar{height:auto;min-height:62px;flex-wrap:wrap;gap:8px;padding:9px 12px}.brand{min-width:0}.brand img{height:34px}.brand strong{font-size:14px}.topbar-right{width:100%;justify-content:space-between;gap:10px;flex-wrap:wrap}.ui-preferences{order:1}.user-tools{order:2;flex-wrap:wrap;gap:8px;font-size:12px}
  .sidebar{position:relative;top:auto;left:auto;bottom:auto;width:100%;padding:8px;display:flex;flex-wrap:wrap;gap:5px}.sidebar-title{width:100%;padding:2px 8px}.menu-link{flex:1 1 145px;padding:9px 10px}
  .content{margin-left:0;padding:14px}.card{padding:14px}.page-head{gap:10px;flex-wrap:wrap}.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.check-label{padding-top:8px}.admin-form{padding:12px}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-table{min-width:680px}
  .home-brand{min-height:calc(100vh - 220px)}
}
@media(max-width:520px){
  .topbar-right{align-items:flex-start}.ui-preferences{width:100%;justify-content:space-between}.user-tools{width:100%;justify-content:flex-start}.ui-switch-text{font-size:11px}.content{padding:10px}.card{border-radius:8px;padding:12px}.smtp-actions>*{width:100%}.cb-modal-dialog{padding:20px 14px}.admin-table{font-size:12px}
}

/* v1.19.19 - Menu hambúrguer mobile */
.mobile-menu-button,.mobile-menu-overlay{display:none}
@media(max-width:900px){
 .mobile-menu-button{display:inline-flex;flex:0 0 38px;width:38px;height:38px;padding:8px;border:1px solid #d6dee7;border-radius:7px;background:#fff;align-items:center;justify-content:center;flex-direction:column;gap:4px;cursor:pointer;z-index:1210}
 .mobile-menu-button span{display:block;width:20px;height:2px;border-radius:2px;background:#1769aa;transition:.2s}
 .mobile-menu-open .mobile-menu-button span:nth-child(1){transform:translateY(6px) rotate(45deg)}
 .mobile-menu-open .mobile-menu-button span:nth-child(2){opacity:0}
 .mobile-menu-open .mobile-menu-button span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
 .brand{flex:1;min-width:0}
 .sidebar,.menu-hidden .sidebar{display:block!important;position:fixed!important;left:0!important;top:0!important;bottom:0!important;width:min(82vw,310px)!important;height:100vh!important;padding:76px 10px 18px!important;overflow-y:auto!important;z-index:1200!important;transform:translateX(-105%);transition:transform .22s ease;box-shadow:8px 0 30px rgba(0,0,0,.22)}
 .mobile-menu-open .sidebar{transform:translateX(0)}
 .sidebar-title{width:auto!important}.menu-link{display:block!important;width:auto!important}
 .mobile-menu-overlay{position:fixed;inset:0;z-index:1190;border:0;padding:0;background:rgba(0,0,0,.46);cursor:pointer}
 .mobile-menu-open .mobile-menu-overlay{display:block}
 .content,.menu-hidden .content{margin-left:0!important;width:auto!important;padding:14px!important}
 body.mobile-menu-open{overflow:hidden}
 .ui-preferences .ui-switch:last-child{display:none}
}
@media(max-width:520px){.topbar{padding:8px 10px}.brand img{height:31px}.brand strong{font-size:13px}.content,.menu-hidden .content{padding:10px!important}.sidebar{width:min(86vw,300px)!important}}
.theme-dark .mobile-menu-button{background:#1f2937;border-color:#475569}.theme-dark .mobile-menu-button span{background:#93c5fd}

/* v1.19.20 - Dark completo, footer e refinamentos */
.app-footer{margin-left:250px;padding:18px 24px;text-align:center;font-size:12px;color:#64748b;background:#fff;border-top:1px solid #e5e7eb}.menu-hidden .app-footer{margin-left:0}
.theme-dark,.theme-dark body{background:#0f172a!important;color:#e5e7eb}
.theme-dark .content,.theme-dark main,.theme-dark .home-brand{background:#0f172a!important;color:#e5e7eb}
.theme-dark .card,.theme-dark .admin-form,.theme-dark .modal-content,.theme-dark .modal-body,.theme-dark .modal-header,.theme-dark .modal-footer,.theme-dark .cb-modal-dialog,.theme-dark .cb-help-dialog,.theme-dark .cb-help-required,.theme-dark .cb-check-option{background:#1e293b!important;color:#e5e7eb!important;border-color:#475569!important}
.theme-dark .modal-backdrop{background:#000!important}
.theme-dark label,.theme-dark h1,.theme-dark h2,.theme-dark h3,.theme-dark h4,.theme-dark p,.theme-dark td,.theme-dark th{color:inherit}
.theme-dark input,.theme-dark select,.theme-dark textarea,.theme-dark .form-control{background:#0f172a!important;color:#f8fafc!important;border-color:#475569!important}
.theme-dark input::placeholder,.theme-dark textarea::placeholder{color:#94a3b8!important}
.theme-dark input:disabled,.theme-dark select:disabled,.theme-dark textarea:disabled{background:#263449!important;color:#94a3b8!important}
.theme-dark .admin-table,.theme-dark table{background:#1e293b!important;color:#e5e7eb!important}
.theme-dark .admin-table tbody tr,.theme-dark table tbody tr{background:#1e293b!important}
.theme-dark .admin-table tbody tr:nth-child(even),.theme-dark table tbody tr:nth-child(even){background:#172033!important}
.theme-dark .admin-table tbody tr:hover,.theme-dark table tbody tr:hover{background:#263449!important}
.theme-dark .admin-table td,.theme-dark .admin-table th,.theme-dark table td,.theme-dark table th{border-color:#334155!important}
.theme-dark .alert-info,.theme-dark .info-box{background:#172554!important;color:#dbeafe!important;border-color:#1d4ed8!important}
.theme-dark .success{background:#052e16!important;color:#bbf7d0!important;border-color:#166534!important}
.theme-dark .error{background:#450a0a!important;color:#fecaca!important;border-color:#991b1b!important}
.theme-dark .btn-secondary{background:#334155!important;color:#f8fafc!important;border-color:#64748b!important}
.theme-dark .app-footer{background:#111827;color:#94a3b8;border-color:#334155}
.theme-dark a:not(.menu-link):not(.btn-primary):not(.btn-secondary){color:#93c5fd}
@media(max-width:900px){.app-footer,.menu-hidden .app-footer{margin-left:0;padding:15px 12px;font-size:11px}}

/* v1.19.21 - identidade desktop em azul profundo */
@media(min-width:901px){
  .topbar,
  .sidebar{
    background:#071b2f!important;
    color:#fff!important;
  }
  .topbar{
    border-bottom-color:#102f4d!important;
  }
  .topbar .brand strong,
  .topbar .user-tools,
  .topbar .user-tools a,
  .topbar .ui-switch,
  .topbar .ui-switch-text,
  .sidebar .sidebar-title,
  .sidebar .menu-link{
    color:#fff!important;
  }
  .topbar .user-tools a:hover,
  .sidebar .menu-link:hover{
    color:#fff!important;
  }
  .sidebar .menu-link:hover,
  .sidebar .menu-link.active{
    background:#102f4d!important;
  }
  .topbar .ui-switch-track{
    background:#36526c;
  }
  .topbar .ui-switch input:checked+.ui-switch-track{
    background:#1f6ea9;
  }
  .topbar .badge-root{
    border-color:rgba(255,255,255,.5);
  }

  /* Mantém cabeçalho e menu uniformes também quando o tema Dark estiver ativo. */
  .theme-dark .topbar,
  .theme-dark .sidebar{
    background:#061625!important;
  }
  .theme-dark .topbar{
    border-bottom-color:#17334c!important;
  }
}

/* v1.19.23 - menu lateral mais compacto */
.sidebar .menu-link{
  font-size:12.5px!important;
  line-height:1.25!important;
  padding-top:7px!important;
  padding-bottom:7px!important;
  margin-top:1px!important;
  margin-bottom:1px!important;
}
.sidebar .sidebar-title{
  font-size:11px!important;
  margin-bottom:5px!important;
}
@media(max-width:900px){
  .sidebar .menu-link{
    font-size:13px!important;
    padding-top:8px!important;
    padding-bottom:8px!important;
  }
}

/* v1.19.33 - padrão global de listagens retornadas pela API */
.admin-table,.api-list,.table-wrap table{font-size:.75rem}
.admin-table th,.admin-table td,.api-list th,.api-list td,.table-wrap table th,.table-wrap table td{padding:7px 8px}

/* tamanho global de fonte controlado pelo header/localStorage */
html.font-small{font-size:13px}html.font-normal{font-size:16px}html.font-large{font-size:18px}html.font-xlarge{font-size:20px}
.font-size-control{display:inline-flex;align-items:center;gap:5px;font-size:12px;white-space:nowrap}.font-size-control select{height:30px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;padding:0 6px;color:#334155}

/* notas adesivas */
.sticky-notes-board{position:relative;min-height:620px;margin-top:18px;border:1px dashed #ccd5df;border-radius:10px;background:#f8fafc;overflow:hidden}
.sticky-note{position:absolute;width:240px;min-height:210px;padding:12px;border-radius:4px;box-shadow:0 8px 18px rgba(0,0,0,.16);left:16px;top:16px}
.sticky-note-handle{cursor:move;text-align:center;font-weight:bold;letter-spacing:3px;user-select:none;padding:2px 0 7px}
.sticky-note textarea{width:100%;border:0;background:transparent;resize:vertical;outline:none;font:inherit;min-height:125px}
.sticky-note-tools{display:flex;align-items:center;gap:8px}.sticky-note-tools .btn-primary{padding:6px 9px;font-size:11px}.note-delete{position:absolute;right:5px;top:3px;border:0;background:transparent;font-size:20px;cursor:pointer}.note-color-input{padding:4px}.note-textarea{height:auto!important;padding:10px 13px}
.global-license-alerts{position:fixed;z-index:900;left:270px;right:20px;bottom:48px;display:flex;flex-direction:column;gap:5px;pointer-events:none}.global-license-alert{background:#fff3cd;border:1px solid #ffe69c;color:#664d03;border-radius:7px;padding:8px 12px;box-shadow:0 4px 12px rgba(0,0,0,.12);font-size:12px;text-align:center}
body.menu-hidden .global-license-alerts{left:20px}
.theme-dark .font-size-control select{background:#0f2740;color:#e5edf5;border-color:#31506d}.theme-dark .sticky-notes-board{background:#0d2034;border-color:#31506d}
@media(max-width:900px){.font-size-control span{display:none}.font-size-control select{max-width:92px}.global-license-alerts{left:12px;right:12px;bottom:48px}.sticky-notes-board{min-height:700px}}

/* v1.19.34 - fonte média, modal e notas redimensionáveis */
html.font-medium{font-size:14.5px}
.note-color-compact{width:34px!important;height:28px!important;min-width:34px;padding:1px!important;border:1px solid rgba(0,0,0,.18);border-radius:5px;background:transparent;cursor:pointer}
.sticky-note{resize:both;overflow:hidden;min-width:190px;min-height:160px;max-width:100%;max-height:100%}
.sticky-note-edit{height:calc(100% - 26px);display:flex;flex-direction:column}.sticky-note textarea{flex:1;min-height:70px;resize:none}.sticky-note-tools{justify-content:space-between}.note-save{border:0;border-radius:5px;background:rgba(255,255,255,.72);padding:5px 9px;cursor:pointer;font-weight:700}.sticky-note-delete{margin:0}.cb-note-modal{display:none;position:fixed;inset:0;z-index:1500;align-items:center;justify-content:center;padding:16px}.cb-note-modal.is-open{display:flex}.cb-note-backdrop{position:absolute;inset:0;background:rgba(0,20,45,.62)}.cb-note-dialog{position:relative;z-index:1;width:min(540px,100%);background:#fff;border-radius:12px;padding:22px;box-shadow:0 22px 60px rgba(0,0,0,.3)}.cb-note-close{position:absolute;right:10px;top:7px;border:0;background:transparent;font-size:25px;cursor:pointer}.cb-note-dialog label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600}.note-modal-footer{display:flex;justify-content:space-between;align-items:end;margin-top:14px}.note-modal-footer label{flex-direction:row;align-items:center}.theme-dark .cb-note-dialog{background:#10283f;color:#e8eef5}

/* v1.19.34 - upload da marca compartilhada por Header/Login */
.branding-upload{border:1px solid #e1e7ee;border-radius:8px;padding:14px}.branding-preview{margin:10px 0;padding:12px;background:#fff;border:1px solid #edf0f3;border-radius:7px;display:flex;align-items:center;min-height:70px}.branding-preview img{max-width:240px;max-height:80px;object-fit:contain}.theme-dark .branding-upload{border-color:#31506d}.theme-dark .branding-preview{background:#fff}

/* v1.19.38 - Header fixo durante rolagem vertical */
.topbar{
  position:sticky;
  top:0;
  z-index:1200;
  width:100%;
}

/* v1.19.39 - geolocalizacao obrigatoria no login */
.geo-login-required{margin:10px 0;padding:10px 12px;border:1px solid #b91c1c;border-radius:8px;background:#fff7f7;font-size:.86rem;font-weight:600}
.geo-login-required.is-ok{border-color:#15803d;background:#f0fdf4}
.theme-dark .geo-login-required{background:#2b1518}.theme-dark .geo-login-required.is-ok{background:#10281b}
.geo-cell{max-width:320px;white-space:normal;word-break:break-word;font-size:.72rem}

/* v1.19.56 - submenu de auditoria */
.menu-group{margin:0;padding:0}
.menu-group>summary{cursor:pointer;list-style:none}
.menu-group>summary::-webkit-details-marker{display:none}
.menu-group>summary:after{content:"▸";float:right}
.menu-group[open]>summary:after{content:"▾"}
.submenu{padding-left:14px}
.submenu-link{font-size:.95em}
.audit-sheet{font-size:12px;white-space:nowrap}
.audit-sheet th{position:sticky;top:0;z-index:1}
.audit-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}

/* v1.19.58 - auditoria integrada a Gestao de Usuarios */
.cb-audit-button{display:inline-flex;align-items:center;gap:6px;border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700;cursor:pointer}.cb-audit-button:hover{background:#f8fafc}.cb-audit-icon{font-size:15px}.cb-audit-modal{display:none;position:fixed;inset:0;z-index:1080}.cb-audit-modal.is-open{display:block}.cb-audit-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.58)}.cb-audit-dialog{position:absolute;inset:4vh 3vw;background:#fff;border-radius:12px;padding:18px;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.28)}.cb-audit-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.cb-audit-header h3{margin:0}.cb-audit-header p{margin:4px 0 0;color:#64748b}.audit-sheet{white-space:nowrap;font-size:12px}.audit-sheet th{position:sticky;top:0;z-index:1}.cb-audit-panel .table-wrap{max-height:72vh;overflow:auto}@media(max-width:700px){.cb-audit-dialog{inset:2vh 2vw;padding:12px}.cb-audit-button span:last-child{display:none}}

/* Gestão de Usuários v1.19.58 - auditoria integrada ao padrão visual */
.page-actions .cb-audit-action{flex:0 0 34px;width:34px;height:34px;margin:0!important;background:#0b4f86;border-color:#0b4f86;color:#fff}.page-actions .cb-audit-action:hover{background:#083d68;border-color:#083d68}.cb-audit-search:before{content:"";position:absolute;width:9px;height:9px;border:2px solid currentColor;border-radius:50%;left:1px;top:1px}.cb-audit-search:after{content:"";position:absolute;width:8px;height:2px;background:currentColor;transform:rotate(45deg);left:10px;top:12px;border-radius:2px}.cb-audit-history:before{content:"";position:absolute;left:3px;top:2px;width:12px;height:14px;border:2px solid currentColor;border-radius:2px}.cb-audit-history:after{content:"≡";position:absolute;left:6px;top:-2px;font-size:16px;font-weight:700}.cb-audit-sheet-wrap{margin-top:0;max-height:68vh;overflow:auto}.audit-sheet{white-space:nowrap;font-size:12px;min-width:max-content}.audit-sheet th{position:sticky;top:0;z-index:2}.theme-dark .cb-audit-action{background:#1769aa;border-color:#1769aa}.theme-dark #usersAuditModal .modal-content,.theme-dark #usersLogAuditModal .modal-content{background:#1f2937;color:#e5e7eb;border-color:#374151}

/* v1.19.62 - auditoria: links de geolocalizacao e fechamento padrao */
.cb-audit-geo-link{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-weight:600;text-decoration:none}
.cb-audit-geo-link:hover{text-decoration:underline}
.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid #e5e7eb}
.cb-help-footer{display:flex;justify-content:flex-end;margin-top:18px;padding-top:12px;border-top:1px solid #e5e7eb}

/* v1.19.62 - fechamento padronizado do modal de cadastro/edicao de usuarios */
.cb-modal-close-x{display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;padding:0;border:1px solid #d7dee8;border-radius:7px;background:#fff;color:#334155;font-size:24px;line-height:1;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.cb-modal-close-x:hover,.cb-modal-close-x:focus{background:#f1f5f9;border-color:#b8c3d1;color:#0f172a;outline:none}
.cb-user-form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid #e5e7eb}
.theme-dark .cb-modal-close-x{background:#1e293b;color:#e5e7eb;border-color:#475569}
.theme-dark .cb-modal-close-x:hover,.theme-dark .cb-modal-close-x:focus{background:#334155;color:#fff;border-color:#64748b}
.theme-dark .cb-user-form-actions{border-top-color:#475569}

/* v1.19.62 - posicionamento do cadastro/edicao e X no padrao dos demais modais */
#userModal{padding-top:0}
#userModal .cb-user-modal-dialog{margin-top:5.5rem;margin-bottom:1.5rem;height:calc(100vh - 7rem);max-height:calc(100vh - 7rem)}
#userModal .cb-user-modal-dialog .modal-content{max-height:100%}
#userModal .modal-header{position:relative;z-index:2;flex:0 0 auto}
#userModal .modal-header .btn-close{display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;padding:0;border:0;background:transparent;color:inherit;font-size:1.5rem;line-height:1;border-radius:4px}
#userModal .modal-header .btn-close:hover,#userModal .modal-header .btn-close:focus{background:rgba(100,116,139,.12);outline:none}
@media(max-width:575.98px){#userModal .cb-user-modal-dialog{margin:4.75rem .5rem 1rem;height:calc(100vh - 5.75rem);max-height:calc(100vh - 5.75rem)}}

/* v1.19.62 - módulo Unidades de Saúde */
#healthUnitModal .cb-health-unit-modal-dialog{margin-top:5.5rem;margin-bottom:1.5rem;height:calc(100vh - 7rem);max-height:calc(100vh - 7rem)}
#healthUnitModal .cb-health-unit-modal-dialog .modal-content{max-height:100%}
#healthUnitModal .modal-header .btn-close{display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;padding:0;border:0;background:transparent;color:inherit;font-size:1.5rem;line-height:1;border-radius:4px}
#healthUnitModal .modal-header .btn-close:hover,#healthUnitModal .modal-header .btn-close:focus{background:rgba(100,116,139,.12);outline:none}
.cb-health-toggle{background:#198754;border-color:#198754;color:#fff;font-weight:700}.cb-health-toggle:hover{background:#157347;border-color:#146c43}
.form-error{display:block;margin-top:5px;color:#b42318;font-size:12px;line-height:1.35}
.theme-dark #healthUnitModal .modal-content,.theme-dark #healthUnitsAuditModal .modal-content,.theme-dark #healthUnitsLogAuditModal .modal-content{background:#1f2937;color:#e5e7eb;border-color:#374151}
@media(max-width:575.98px){#healthUnitModal .cb-health-unit-modal-dialog{margin:4.75rem .5rem 1rem;height:calc(100vh - 5.75rem);max-height:calc(100vh - 5.75rem)}}
/* v1.19.67 - Ajuda contextual centralizada */
.cb-help-dialog-complete{width:min(780px,100%);max-height:88vh;overflow:auto}
.cb-help-dialog-complete h4{margin:18px 0 7px;color:inherit}.cb-help-dialog-complete p{line-height:1.55}.cb-help-dialog-complete ul{margin:8px 0 14px;padding-left:22px}.cb-help-dialog-complete li{margin:5px 0}.cb-help-section{padding:12px 0;border-bottom:1px solid #e5e7eb}.cb-help-section:last-of-type{border-bottom:0}.cb-help-tip{padding:12px 14px;border:1px solid #dee2e6;border-radius:8px;background:#f8f9fa;margin:12px 0}.theme-dark .cb-help-tip{background:#172033;border-color:#374151}.page-head>div>p{display:none!important}.modal-header small.muted{display:none!important}.admin-form small:not(.form-error){display:none!important}





/* v1.19.70 - Ajuda: cabeçalho e rodapé fixos; somente o conteúdo central rola. */
.cb-help-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:1300;
  padding:72px 16px 24px;
  box-sizing:border-box;
  align-items:flex-start;
  justify-content:center;
  overflow:hidden;
}
.cb-help-modal.is-open{display:flex}
.cb-help-dialog,
.cb-help-dialog-complete{
  position:relative;
  z-index:1;
  width:min(680px,100%);
  height:min(680px,calc(100vh - 96px));
  max-height:calc(100vh - 96px);
  padding:0!important;
  overflow:hidden!important;
  display:flex;
  flex-direction:column;
  background:#fff;
  border-radius:10px;
  box-shadow:0 20px 60px rgba(0,0,0,.25);
}
.cb-help-head{
  flex:0 0 auto;
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 18px;
  border-bottom:1px solid #dee2e6;
  background:inherit;
}
.cb-help-head h3{margin:0!important}
.cb-help-head .cb-help-close{
  position:static!important;
  flex:0 0 auto;
  width:34px;
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}
.cb-help-scroll{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  padding:18px 22px;
}
.cb-help-footer{
  position:static!important;
  flex:0 0 auto;
  margin:0!important;
  padding:12px 18px!important;
  border-top:1px solid #dee2e6;
  background:inherit;
  z-index:2;
}
@media(max-width:760px){
  .cb-help-modal{padding:64px 10px 12px}
  .cb-help-dialog,.cb-help-dialog-complete{
    width:100%;
    height:calc(100vh - 76px);
    max-height:calc(100vh - 76px);
  }
  .cb-help-scroll{padding:16px}
}


/* v1.19.73 - Botão Remover das Unidades de Saúde no padrão visual administrativo. */
.cb-remove-health-unit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  min-height:30px;
  margin-top:6px;
  padding:5px 10px;
  font-size:.82rem;
  line-height:1.1;
  border-radius:6px;
  cursor:pointer;
}


/* v1.19.74 - Ajuste exclusivo do modal Auditoria — users_log.
 * Afasta o diálogo do header sem alterar os demais modais do sistema. */
#usersLogAuditModal .cb-users-log-audit-dialog{
  transform:translateY(28px);
}
@media (max-width:767px){
  #usersLogAuditModal .cb-users-log-audit-dialog{
    transform:translateY(18px);
  }
}


/* v1.19.84 - ícones de referência do modal de ajuda */
.cb-help-ref-action{display:inline-flex;vertical-align:middle;pointer-events:none;margin-right:6px}

/* v1.19.150 - Acesso por Geolocalizacao */
#geoAccessHelpModal .geo-help-map{display:block;width:100%;max-width:680px;height:auto;margin:12px auto;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 2px 10px rgba(15,23,42,.08)}
.geo-user-input{height:38px!important;border-color:#dbe3ec!important;border-radius:7px!important;background:#fbfdff!important;padding:0 10px!important;font-size:13px!important;box-shadow:none!important;transition:border-color .15s,background .15s,box-shadow .15s}
.geo-user-input:focus{background:#fff!important;border-color:#9dbbd7!important;box-shadow:0 0 0 2px rgba(45,122,184,.08)!important}
.theme-dark .geo-user-input{background:#172033!important;border-color:#3b4a5d!important}
.theme-dark #geoAccessHelpModal .geo-help-map{border-color:#475569}

/* v1.19.186 - menu principal rolável e reorganizável localmente */
.sidebar{overflow:hidden;display:flex;flex-direction:column}
.sidebar-title{flex:0 0 auto}
.sidebar-menu-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;overscroll-behavior:contain;padding-right:2px}
.sidebar-menu-scroll::-webkit-scrollbar{width:7px}.sidebar-menu-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.28);border-radius:8px}.sidebar-menu-scroll::-webkit-scrollbar-track{background:transparent}
.cb-menu-sortable-item{cursor:grab}.cb-menu-sortable-item.cb-menu-dragging{opacity:.45}.cb-menu-sortable-item.cb-menu-drag-over{outline:1px dashed rgba(255,255,255,.65);outline-offset:-2px}.cb-menu-sortable-item:active{cursor:grabbing}
.cb-menu-modal{display:none;position:fixed;inset:0;z-index:1500;background:rgba(0,0,0,.48);padding:72px 16px 20px;overflow-y:auto}
.cb-menu-modal.show{display:block!important}
.cb-menu-modal .modal-dialog{width:min(860px,100%);margin:0 auto!important;max-height:calc(100vh - 100px)}
.cb-menu-modal .modal-content{display:flex;flex-direction:column;max-height:calc(100vh - 100px);overflow:hidden;background:#fff;border-radius:10px}
.cb-menu-modal .modal-header,.cb-menu-modal .modal-footer{flex:0 0 auto;padding:15px 18px}
.cb-menu-modal .modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:18px;overscroll-behavior:contain}
@media(max-width:900px){.sidebar{display:none}.mobile-menu-open .sidebar{display:flex;position:fixed;top:0;left:0;bottom:0;width:min(300px,88vw);z-index:1200}.sidebar-menu-scroll{overflow-y:auto}.cb-menu-modal{padding:56px 10px 12px}.cb-menu-modal .modal-dialog,.cb-menu-modal .modal-content{max-height:calc(100vh - 68px)}}

.two-factor-setup{text-align:center;margin:14px 0 18px}.two-factor-setup #two-factor-qr{display:flex;justify-content:center;margin:12px auto}.two-factor-secret{display:block;word-break:break-all;padding:10px;border:1px solid #dbe4ef;border-radius:6px;background:#f8fafc;font-size:15px}.two-factor-help{font-size:13px;color:#5b6775;margin-top:10px}
