
:root{
    --bg:#f4f7fb;
    --card:#ffffff;
    --text:#2f3742;
    --muted:#6b7280;
    --blue:#0f9f9a;
    --blue-dark:#12366f;
    --cyan:#20b8b1;
    --green:#10b981;
    --orange:#f97316;
    --purple:#8b5cf6;
    --red:#ef4444;
    --border:#dce8ef;
    --sidebar:#2f3742;
    --sidebar-2:#12366f;
}

*{box-sizing:border-box}

body{
    margin:0;
    font-family:Segoe UI, Arial, sans-serif;
    background:var(--bg);
    color:var(--text);
}

.app-layout{
    display:flex;
    min-height:100vh;
}

/* Sidebar */
.sidebar{
    width:285px;
    min-height:100vh;
    background:linear-gradient(180deg,#2f3742,#12366f);
    color:white;
    position:fixed;
    left:0;
    top:0;
    bottom:0;
    display:flex;
    flex-direction:column;
    box-shadow:10px 0 30px rgba(15,23,42,.16);
    z-index:50;
}

.sidebar-brand{
    display:flex;
    gap:12px;
    align-items:center;
    padding:22px 20px 18px;
    border-bottom:1px solid rgba(255,255,255,.08);
}

.sidebar-brand img{
    width:52px;
    height:52px;
    border-radius:16px;
    background:rgba(255,255,255,.10);
    padding:5px;
    object-fit:contain;
}

.sidebar-brand h1{
    margin:0;
    font-size:16px;
    line-height:1.15;
    font-weight:900;
}

.sidebar-brand span{
    display:block;
    margin-top:5px;
    font-size:12px;
    color:#cddce7;
    font-weight:700;
}

.sidebar-nav{
    padding:16px 12px;
    display:flex;
    flex-direction:column;
    gap:7px;
    flex:1;
}

.sidebar-nav a{
    display:flex;
    align-items:center;
    min-height:42px;
    padding:0 14px;
    border-radius:13px;
    color:#dce8ef;
    text-decoration:none;
    font-weight:800;
    font-size:14px;
    transition:.18s ease;
}

.sidebar-nav a:hover{
    background:rgba(255,255,255,.10);
    color:white;
    transform:translateX(2px);
}

.sidebar-footer{
    padding:16px;
    border-top:1px solid rgba(255,255,255,.08);
}

.user-box{
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.08);
    border-radius:15px;
    padding:12px;
    margin-bottom:10px;
    text-align:center;
}

.user-box span{
    display:block;
    color:#cddce7;
    font-size:12px;
    font-weight:800;
    text-align:center;
}

.user-box strong{
    display:block;
    margin-top:3px;
    font-size:15px;
    text-align:center;
}

.logout-side{
    display:flex;
    justify-content:center;
    align-items:center;
    height:40px;
    border-radius:13px;
    background:rgba(239,68,68,.22);
    color:#fecaca;
    text-decoration:none;
    font-weight:900;
}

/* Área principal */
.main-shell{
    margin-left:285px;
    width:calc(100% - 285px);
    min-height:100vh;
}

.topbar-simple{
    height:70px;
    background:rgba(255,255,255,.88);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--border);
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 28px;
    position:sticky;
    top:0;
    z-index:40;
}

.topbar-simple h2{
    margin:0;
    color:#2f3742;
    font-size:20px;
}

.top-actions{
    display:flex;
    gap:8px;
    align-items:center;
}

.mini-action{
    height:36px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    background:#eef9f8;
    color:#12366f;
    text-decoration:none;
    font-weight:900;
    padding:0 13px;
    border:1px solid #c6e9e6;
}

.container{
    padding:24px 28px 34px;
    max-width:1700px;
    margin:0 auto;
}

/* Hero compacto */
.hero-compact{
    background:linear-gradient(135deg,#ffffff,#eef9f8);
    border:1px solid rgba(148,163,184,.22);
    border-radius:22px;
    box-shadow:0 8px 28px rgba(15,23,42,.07);
    padding:16px 20px;
    margin-bottom:20px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:104px;
    overflow:hidden;
    border-left:5px solid #0f9f9a;
}

.hero-content{
    min-width:0;
}

.eyebrow{
    display:inline-flex;
    align-items:center;
    background:#e1f5f3;
    color:#12366f;
    font-size:12px;
    font-weight:900;
    padding:6px 10px;
    border-radius:999px;
    margin-bottom:8px;
}

.hero-compact h2{
    margin:0;
    font-size:26px;
    color:#12366f;
    line-height:1.1;
}

.hero-compact img{
    width:92px;
    height:92px;
    object-fit:contain;
    border-radius:20px;
}

.danger-hero{
    background:linear-gradient(135deg,#ffffff,#fff7ed);
    border-left-color:#f97316;
}

/* Cards e KPIs */
.card{
    background:var(--card);
    border:1px solid rgba(148,163,184,.22);
    border-radius:22px;
    box-shadow:0 8px 28px rgba(15,23,42,.08);
    padding:22px;
    margin-bottom:22px;
}

.card h2{
    margin:0 0 16px;
    font-size:20px;
}

.card h3{
    margin:10px 0 16px;
}

.grid{
    display:grid;
    gap:18px;
}

.kpis{
    grid-template-columns:repeat(5,1fr);
    margin-bottom:22px;
}

.kpi{
    border-radius:20px;
    padding:18px;
    color:white;
    background:linear-gradient(135deg,#6b7280,#98a2b3);
    box-shadow:0 10px 28px rgba(15,23,42,.12);
}

.kpi span{
    display:block;
    font-weight:800;
    opacity:.95;
    margin-bottom:8px;
}

.kpi strong{
    font-size:30px;
}

.kpi.green{background:linear-gradient(135deg,#059669,#34d399)}
.kpi.orange{background:linear-gradient(135deg,#f97316,#facc15)}
.kpi.blue{background:linear-gradient(135deg,#0f9f9a,#20b8b1)}
.kpi.purple{background:linear-gradient(135deg,#7c3aed,#c084fc)}
.kpi.red{background:linear-gradient(135deg,#dc2626,#fb7185)}

.form-grid{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:14px;
    align-items:end;
}

label{
    display:block;
    font-size:13px;
    color:var(--muted);
    font-weight:800;
    margin-bottom:6px;
}

input, select{
    width:100%;
    border:1px solid #cddce7;
    border-radius:13px;
    padding:10px 12px;
    font:inherit;
    background:white;
}

button, .button{
    border:0;
    border-radius:13px;
    padding:11px 16px;
    color:white;
    background:linear-gradient(135deg,#0f9f9a,#20b8b1);
    font-weight:900;
    cursor:pointer;
    text-decoration:none;
    display:inline-block;
    text-align:center;
}

button.secondary, .button.secondary{
    background:linear-gradient(135deg,#6b7280,#98a2b3);
}

button.danger, .button.danger{
    background:linear-gradient(135deg,#dc2626,#fb7185);
}

.align-end{align-self:end}

.tools{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    align-items:center;
}

.inline-form{
    display:flex;
    gap:10px;
    align-items:center;
    flex-wrap:wrap;
}

.table-wrap{
    overflow:auto;
    border-radius:16px;
    border:1px solid var(--border);
}

table{
    width:100%;
    border-collapse:collapse;
    font-size:14px;
    background:white;
}

th, td{
    border-bottom:1px solid var(--border);
    padding:10px;
    vertical-align:middle;
}

th{
    background:#eef9f8;
    color:#12366f;
    text-align:left;
    position:sticky;
    top:0;
    z-index:2;
}

td input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]){
    min-width:120px;
}

tr:hover td{
    background:#f7fbfd;
}

.badge{
    display:inline-block;
    padding:7px 10px;
    border-radius:999px;
    font-weight:900;
    font-size:12px;
}

.badge.ok{
    background:#dcfce7;
    color:#166534;
}

.badge.pendente{
    background:#fee2e2;
    color:#991b1b;
}

.actions{
    display:flex;
    gap:7px;
    flex-wrap:wrap;
}

.empty{
    text-align:center;
    color:var(--muted);
    padding:28px;
}

.alert{
    padding:14px 16px;
    border-radius:16px;
    margin-bottom:18px;
    font-weight:800;
}

.alert.ok{
    background:#dcfce7;
    color:#166534;
    border:1px solid #86efac;
}

.alert.erro{
    background:#fee2e2;
    color:#991b1b;
    border:1px solid #fecaca;
}

.hint{
    color:#6b7280;
    font-size:13px;
    margin-top:-8px;
    margin-bottom:14px;
    font-weight:700;
}

.login-page{
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,#12366f,#0f9f9a,#20b8b1);
}

.login-card{
    width:390px;
    max-width:92vw;
    background:white;
    border-radius:26px;
    padding:28px;
    box-shadow:0 20px 50px rgba(15,23,42,.28);
}

.login-card-wide{width:460px}

.login-hero{
    display:flex;
    justify-content:center;
    margin-bottom:14px;
}

.login-hero img{
    width:150px;
    height:150px;
    object-fit:contain;
    border-radius:24px;
    background:#f7fbfd;
    padding:8px;
}

.login-card h1{margin:0}
.login-card p{color:var(--muted);margin-top:6px}
.login-card button{width:100%;margin-top:14px}
.login-card small{
    display:block;
    color:var(--muted);
    margin-top:16px;
    text-align:center;
}

.permissions-form{
    grid-template-columns:repeat(4,1fr);
}

.permissions-box{
    grid-column:1 / -1;
    background:#f7fbfd;
    border:1px solid #dce8ef;
    border-radius:16px;
    padding:14px;
}

.check-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(180px,1fr));
    gap:8px 14px;
}

.check-item{
    display:flex;
    align-items:center;
    gap:8px;
    color:#2f3742;
    font-weight:700;
    margin:0;
}

.check-item input{width:auto}

.table-checks{
    grid-template-columns:repeat(2, minmax(160px,1fr));
    min-width:420px;
}

.profile-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
}

.profile-card{
    background:#f7fbfd;
    border:1px solid #dce8ef;
    border-radius:18px;
    padding:16px;
}

.profile-card h3{margin:0 0 6px}
.profile-card p{
    margin:0;
    color:#6b7280;
    font-weight:700;
}

input[readonly]{
    background:#f2f7f9;
    color:#6b7280;
}

.section-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    flex-wrap:wrap;
    margin-bottom:14px;
}

.pagination{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}

.dash-grid{
    grid-template-columns:repeat(2,1fr);
}

.bar-row{
    display:grid;
    grid-template-columns:170px 1fr 60px;
    gap:10px;
    align-items:center;
    margin:10px 0;
}

.bar-row span{
    color:#3b414a;
    font-weight:800;
    font-size:13px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.bar{
    height:14px;
    background:#dce8ef;
    border-radius:999px;
    overflow:hidden;
}

.bar div{
    height:100%;
    background:linear-gradient(135deg,#0f9f9a,#20b8b1);
    border-radius:999px;
}

.bar-row strong{
    color:#2f3742;
    text-align:right;
}

.import-card{
    border-left:5px solid #20b8b1;
}

.import-info-grid{
    grid-template-columns:repeat(3,1fr);
}

.info-card{
    background:linear-gradient(135deg,#ffffff,#f7fbfd);
}

.info-card h3{
    color:#12366f;
    margin-top:0;
}

.info-card p{
    color:#6b7280;
    font-weight:700;
    line-height:1.45;
}

@media screen and (max-width:1200px){
    .kpis{grid-template-columns:repeat(2,1fr)}
    .form-grid{grid-template-columns:repeat(2,1fr)}
}

@media screen and (max-width:980px){
    .sidebar{
        position:relative;
        width:100%;
        min-height:auto;
    }

    .app-layout{
        display:block;
    }

    .main-shell{
        margin-left:0;
        width:100%;
    }

    .sidebar-nav{
        display:grid;
        grid-template-columns:repeat(2,1fr);
    }

    .sidebar-footer{
        display:flex;
        gap:10px;
        align-items:center;
    }

    .user-box{
        flex:1;
        margin-bottom:0;
    }
}

@media screen and (max-width:900px){
    .dash-grid,
    .import-info-grid,
    .profile-grid{
        grid-template-columns:1fr;
    }
    .permissions-form{grid-template-columns:1fr}
    .check-grid{grid-template-columns:1fr}
    .bar-row{grid-template-columns:1fr}
    .bar-row strong{text-align:left}
}

@media screen and (max-width:650px){
    .kpis{grid-template-columns:1fr}
    .form-grid{grid-template-columns:1fr}
    .container{padding:16px}
    .hero-compact{
        flex-direction:column;
        text-align:center;
    }
    .topbar-simple{
        height:auto;
        padding:14px;
        flex-direction:column;
        gap:10px;
        align-items:flex-start;
    }
}


/* ===== Botão de ocultar menu e impressão ===== */
.top-title-group{
    display:flex;
    align-items:center;
    gap:12px;
}

.print-action{
    border:1px solid #c6e9e6;
    cursor:pointer;
    font-family:inherit;
}
.sidebar{
    transition:transform .22s ease;
}
.main-shell{
    transition:margin-left .22s ease, width .22s ease;
}

/* impressão limpa */
@media print{
    body{
        background:white!important;
    }

    .sidebar,
    .topbar-simple,
    .actions,
    .pagination,
    .tools,
    button,
    .button,
    .mini-action,
    .toggle-sidebar-btn,
    .logout-side{
        display:none!important;
    }

    .main-shell{
        margin-left:0!important;
        width:100%!important;
    }

    .container{
        padding:0!important;
        max-width:none!important;
    }

    .card,
    .hero-compact,
    .kpi{
        box-shadow:none!important;
        border:1px solid #d1d5db!important;
        break-inside:avoid;
    }

    .hero-compact img,
    .login-hero,
    .dashboard-hero img{
        display:none!important;
    }

    .kpis{
        grid-template-columns:repeat(3,1fr)!important;
    }

    table{
        font-size:11px!important;
    }

    th,td{
        padding:6px!important;
    }

    input,select{
        border:0!important;
        padding:0!important;
        background:white!important;
        font-size:11px!important;
    }

    a{
        text-decoration:none!important;
        color:black!important;
    }

    @page{
        size:A4 landscape;
        margin:10mm;
    }
}

@media screen and (max-width:980px){
    .sidebar-collapsed .sidebar{
        display:none;
    }
    .sidebar{
        transform:none;
    }
}


/* ===== Menu lateral recolhido com revelação pelo canto esquerdo ===== */
.sidebar-hotspot{
    position:fixed;
    left:0;
    top:86px;
    width:38px;
    height:58px;
    border-radius:0 16px 16px 0;
    background:linear-gradient(135deg,#0f9f9a,#20b8b1);
    color:white;
    display:none;
    align-items:center;
    justify-content:center;
    font-size:21px;
    font-weight:900;
    box-shadow:0 10px 28px rgba(15,159,154,.25);
    z-index:80;
    cursor:pointer;
}

.sidebar-collapsed .sidebar-hotspot{
    display:flex;
}

.sidebar-collapsed .sidebar{
    transform:translateX(-100%);
}

.sidebar-collapsed.sidebar-hover-open .sidebar{
    transform:translateX(0);
}

.sidebar-collapsed.sidebar-hover-open .sidebar-hotspot{
    display:none;
}

.sidebar-collapsed .main-shell{
    margin-left:0;
    width:100%;
}

.sidebar-collapsed.sidebar-hover-open .main-shell{
    margin-left:0;
    width:100%;
}

/* Botão superior do menu mais discreto */
/* O topo agora fica mais limpo, sem backup rápido */
.top-actions{
    min-width:0;
}

@media screen and (max-width:980px){
    .sidebar-hotspot{
        top:76px;
    }

    .sidebar-collapsed .sidebar{
        display:none;
        transform:none;
    }

    .sidebar-collapsed.sidebar-hover-open .sidebar{
        display:flex;
    }
}


/* ===== Exclusão em massa ===== */
.bulk-actions{
    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
    background:#fff7ed;
    border:1px solid #fed7aa;
    border-radius:16px;
    padding:12px;
    margin-bottom:12px;
}

.bulk-check{
    display:flex;
    align-items:center;
    gap:8px;
    color:#9a3412;
    font-weight:900;
    margin:0;
}

.bulk-check input,
.select-col input{
    width:auto;
}

.inline-hint{
    margin:0;
}

.select-col{
    width:54px;
    text-align:center;
}


/* ===== Ações em massa da lixeira ===== */
#form-lixeira-massa .bulk-actions{
    background:#f0fdf4;
    border-color:#bbf7d0;
}

#form-lixeira-massa .bulk-check{
    color:#166534;
}


/* ===== Dashboard analítico avançado ===== */
.secondary-kpis .kpi strong{
    font-size:26px;
}

.kpi.cyan{
    background:linear-gradient(135deg,#0f9f9a,#54d2c9);
}

.analysis-grid{
    grid-template-columns:1.2fr .8fr;
    margin-bottom:22px;
}

.insight-card{
    border-left:6px solid #0f9f9a;
}

.insight-card.ok{
    border-left-color:#10b981;
}

.insight-card.medio{
    border-left-color:#f97316;
}

.insight-card.alerta{
    border-left-color:#ef4444;
}

.big-insight{
    font-size:22px;
    font-weight:900;
    color:#2f3742;
    margin:0 0 18px;
}

.mini-metrics{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
}

.mini-metrics div{
    background:#f7fbfd;
    border:1px solid #dce8ef;
    border-radius:16px;
    padding:12px;
}

.mini-metrics span{
    display:block;
    color:#6b7280;
    font-size:12px;
    font-weight:900;
    margin-bottom:5px;
}

.mini-metrics strong{
    font-size:20px;
    color:#12366f;
}

.alert-card{
    border-left:6px solid #f97316;
}

.alert-list{
    margin:0;
    padding-left:20px;
    color:#3b414a;
    font-weight:800;
    line-height:1.65;
}

.stack-row{
    margin:13px 0;
}

.stack-label{
    display:flex;
    justify-content:space-between;
    gap:10px;
    margin-bottom:6px;
}

.stack-label strong{
    color:#12366f;
}

.stack-label span{
    color:#6b7280;
    font-size:12px;
    font-weight:800;
}

.stack-bar{
    height:15px;
    background:#dce8ef;
    border-radius:999px;
    overflow:hidden;
}

.bar-total{
    height:100%;
    background:linear-gradient(135deg,#0f9f9a,#20b8b1);
    border-radius:999px;
}

.rank-row{
    display:grid;
    grid-template-columns:1.2fr 1fr;
    gap:12px;
    align-items:center;
    padding:9px 0;
    border-bottom:1px solid #dce8ef;
}

.rank-row strong{
    display:block;
    color:#2f3742;
    font-size:13px;
}

.rank-row span{
    display:block;
    color:#6b7280;
    font-size:12px;
    font-weight:800;
    margin-top:3px;
}

.table-grid{
    grid-template-columns:1fr 1fr;
}

@media screen and (max-width:1100px){
    .analysis-grid,
    .table-grid{
        grid-template-columns:1fr;
    }
    .mini-metrics{
        grid-template-columns:1fr;
    }
    .rank-row{
        grid-template-columns:1fr;
    }
}


/* ===== Ajustes seguros: rodapé e impressão ===== */
.page-footer{
    text-align:center;
    padding:14px 20px 22px;
    color:#6b7280;
    font-size:13px;
    font-weight:800;
}

.login-footer{
    position:fixed;
    left:0;
    right:0;
    bottom:12px;
    text-align:center;
    color:white;
    font-size:13px;
    font-weight:900;
    text-shadow:0 2px 10px rgba(0,0,0,.25);
}

.print-header{
    display:none;
    align-items:center;
    justify-content:flex-start;
    gap:16px;
    margin-bottom:18px;
    border-bottom:2px solid #cddce7;
    padding-bottom:10px;
}

.print-header-texto{
    flex:0 1 auto;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.print-header strong{
    display:block;
    color:#2f3742;
    font-size:16px;
}

.print-header span{
    display:block;
    color:#6b7280;
    font-size:13px;
    font-weight:800;
    margin-top:2px;
}

.print-header-brasao{
    width:72px;
    height:auto;
    object-fit:contain;
    flex:0 0 auto;
}

@media print{
    .print-header{
        display:flex!important;
    }

    .page-footer{
        display:block!important;
        color:#000!important;
        text-align:center!important;
        padding-top:12px!important;
    }
}


/* Ícones nos botões */
button, .button, .mini-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
}
.actions form button{
    white-space:nowrap;
}
button i, .button i, .mini-action i{
    font-size:.95em;
    line-height:1;
}
.page-footer{
    text-align:center;
    padding:14px 20px 22px;
    color:#6b7280;
    font-size:13px;
    font-weight:800;
}


/* Ícones no menu lateral */
.sidebar-nav a,
.logout-side{
    display:flex;
    align-items:center;
    gap:10px;
}

.sidebar-nav a i,
.logout-side i{
    font-size:15px;
    width:18px;
    text-align:center;
    flex:0 0 18px;
}

.sidebar-nav a span,
.logout-side span{
    display:inline-block;
}


/* ===== Login inicial em estilo profissional ===== */
.login-page{
    min-height:100vh;
    margin:0;
    background:#071a3c;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:16px 16px 58px;
}

.login-shell{
    width:min(1680px, 100%);
    min-height:calc(100vh - 32px);
    display:grid;
    grid-template-columns:1.15fr .85fr;
    border-radius:22px;
    overflow:hidden;
    box-shadow:0 24px 60px rgba(0,0,0,.22);
    background:#0b1733;
    position:relative;
}

.login-showcase{
    position:relative;
    display:flex;
    align-items:center;
    padding:48px 54px;
    background:
        radial-gradient(circle at 15% 20%, rgba(111,75,216,.28), transparent 22%),
        radial-gradient(circle at 75% 35%, rgba(32,184,177,.18), transparent 20%),
        radial-gradient(circle at 25% 75%, rgba(15,159,154,.20), transparent 16%),
        linear-gradient(rgba(4,17,40,.72), rgba(4,17,40,.72)),
        linear-gradient(135deg, #2f3742 0%, #12366f 48%, #2f3742 100%);
}

.showcase-overlay{
    position:absolute;
    inset:0;
    background:
        linear-gradient(90deg, rgba(4,17,40,.55), rgba(4,17,40,.10)),
        radial-gradient(circle at 20% 25%, rgba(255,255,255,.05), transparent 18%);
    pointer-events:none;
}

.showcase-content{
    position:relative;
    z-index:2;
    max-width:720px;
    color:white;
}

.showcase-kicker{
    display:inline-flex;
    padding:8px 16px;
    border-radius:999px;
    background:rgba(255,255,255,.10);
    border:1px solid rgba(255,255,255,.18);
    color:#e6f7f6;
    font-size:16px;
    font-weight:800;
    margin-bottom:18px;
    backdrop-filter:blur(8px);
}

.showcase-content h1{
    margin:0;
    font-size:78px;
    line-height:0.98;
    font-weight:300;
    letter-spacing:-2px;
    color:#f7fbfd;
    text-shadow:0 6px 22px rgba(0,0,0,.24);
}

.showcase-content p{
    margin:22px 0 0;
    font-size:28px;
    color:#e1f5f3;
    font-weight:500;
}

.login-panel{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:36px;
    background:linear-gradient(180deg, rgba(243,244,246,.98), rgba(255,255,255,.98));
}

.login-card{
    width:100%;
    max-width:560px;
    background:#f7fbfd;
    border-radius:28px;
    padding:34px 34px 30px;
    box-shadow:0 16px 40px rgba(15,23,42,.12);
    border:1px solid #e5e7eb;
}

.login-card-wide{
    width:100%;
    max-width:560px;
}

.login-card-top{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    margin-bottom:18px;
}

.login-hero{
    display:flex;
    justify-content:center;
    margin-bottom:12px;
}

.login-hero img{
    width:150px;
    height:150px;
    object-fit:contain;
    border-radius:24px;
    background:linear-gradient(135deg,#ffffff,#eef9f8);
    padding:14px;
    box-shadow:0 10px 24px rgba(15,159,154,.10);
    border:1px solid #e1f5f3;
}

.login-title-wrap{
    width:100%;
    text-align:center;
}

.login-kicker{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#e8f0ff;
    color:#087f82;
    border:1px solid #c6e9e6;
    border-radius:999px;
    padding:7px 14px;
    font-size:13px;
    font-weight:900;
    margin-bottom:14px;
}

.login-title-wrap h2{
    margin:0;
    font-size:34px;
    line-height:1.05;
    color:#3b414a;
    font-weight:300;
}

.login-title-wrap p{
    margin:14px 0 0;
    color:#6b7280;
    font-size:16px;
    font-weight:500;
}

.login-form{
    margin-top:10px;
}

.login-form label{
    display:block;
    margin:14px 0 7px;
    font-size:14px;
    color:#3b414a;
    font-weight:800;
}

.input-with-icon{
    display:grid;
    grid-template-columns:58px 1fr;
    align-items:center;
    border:1px solid #cfd8e3;
    border-radius:12px;
    overflow:hidden;
    background:white;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.85);
}

.input-with-icon span{
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#eef2f7;
    border-right:1px solid #d7dee9;
    color:#6b7280;
    font-size:24px;
}

.input-with-icon input{
    width:100%;
    border:none;
    outline:none;
    padding:13px 14px;
    font:inherit;
    background:white;
}

.login-form button{
    width:100%;
    min-height:56px;
    margin-top:22px;
    border:none;
    border-radius:999px;
    background:linear-gradient(135deg,#0f9f9a,#0f9f9a);
    color:white;
    font-size:16px;
    font-weight:900;
    box-shadow:0 16px 28px rgba(15,159,154,.24);
    cursor:pointer;
}

.login-form button i{
    font-size:16px;
}

.login-footer{
    position:fixed;
    left:0;
    right:0;
    bottom:10px;
    text-align:center;
    color:white;
    font-size:13px;
    font-weight:900;
    text-shadow:0 2px 10px rgba(0,0,0,.35);
}

@media screen and (max-width: 1180px){
    .login-shell{
        grid-template-columns:1fr;
    }

    .login-showcase{
        min-height:320px;
    }

    .showcase-content h1{
        font-size:56px;
    }

    .showcase-content p{
        font-size:22px;
    }
}

@media screen and (max-width: 680px){
    .login-page{
        padding:10px 10px 54px;
    }

    .login-shell{
        min-height:auto;
        border-radius:18px;
    }

    .login-showcase{
        padding:28px 24px;
        min-height:250px;
    }

    .showcase-kicker{
        font-size:13px;
        margin-bottom:12px;
    }

    .showcase-content h1{
        font-size:38px;
        line-height:1.02;
        letter-spacing:-1px;
    }

    .showcase-content p{
        margin-top:14px;
        font-size:18px;
    }

    .login-panel{
        padding:20px 14px;
    }

    .login-card{
        padding:24px 18px 22px;
        border-radius:22px;
    }

    .login-hero img{
        width:118px;
        height:118px;
    }

    .login-title-wrap h2{
        font-size:28px;
    }

    .login-title-wrap p{
        font-size:14px;
    }

    .input-with-icon{
        grid-template-columns:50px 1fr;
    }

    .input-with-icon span{
        font-size:20px;
    }

    .login-form button{
        min-height:50px;
    }
}



/* Ajuste do brasão no login */
.login-hero img{
    object-fit: contain !important;
    background: #ffffff !important;
}


/* ===== Ajustes do login: mostrar senha e menos espaços vazios ===== */
.login-shell{
    grid-template-columns: 1.05fr .95fr !important;
    min-height: calc(100vh - 48px) !important;
}

.login-showcase{
    padding: 34px 42px !important;
}

.showcase-content{
    max-width: 640px !important;
}

.showcase-content h1{
    font-size: 64px !important;
    line-height: 0.98 !important;
}

.showcase-content p{
    margin-top: 16px !important;
    font-size: 24px !important;
}

.login-panel{
    padding: 18px 24px !important;
}

.login-card{
    max-width: 500px !important;
    padding: 24px 24px 22px !important;
    border-radius: 24px !important;
}

.login-card-top{
    margin-bottom: 12px !important;
}

.login-hero{
    margin-bottom: 8px !important;
}

.login-hero img{
    width: 118px !important;
    height: 118px !important;
    padding: 10px !important;
}

.login-kicker{
    margin-bottom: 10px !important;
}

.login-title-wrap h2{
    font-size: 30px !important;
}

.login-title-wrap p{
    margin: 10px 0 0 !important;
    font-size: 15px !important;
}

.login-form{
    margin-top: 2px !important;
}

.login-form label{
    margin: 10px 0 6px !important;
}

.input-with-icon input{
    padding: 11px 13px !important;
}

.login-form button{
    min-height: 50px !important;
    margin-top: 14px !important;
}

.show-password{
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin-top: 8px !important;
    color: #6b7280 !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    user-select: none !important;
}

.show-password input{
    width: auto !important;
    margin: 0 !important;
}

.senha-header{
    display: flex;
    align-items: center;
    justify-content: space-between;
}

@media screen and (max-width: 1180px){
    .login-shell{
        grid-template-columns: 1fr !important;
        min-height: auto !important;
    }

    .login-showcase{
        min-height: 260px !important;
        padding: 24px 28px !important;
    }

    .showcase-content h1{
        font-size: 48px !important;
    }

    .showcase-content p{
        font-size: 20px !important;
    }

    .login-panel{
        padding: 16px !important;
    }
}

@media screen and (max-width: 680px){
    .showcase-content h1{
        font-size: 36px !important;
    }

    .showcase-content p{
        font-size: 17px !important;
    }

    .login-card{
        padding: 20px 16px 18px !important;
    }

    .login-title-wrap h2{
        font-size: 25px !important;
    }
}


/* ===== Correção: remover fundos brancos do login e do brasão ===== */
.login-page{
    background:
        radial-gradient(circle at 18% 20%, rgba(111,75,216,.16), transparent 22%),
        radial-gradient(circle at 82% 18%, rgba(14,165,233,.14), transparent 20%),
        linear-gradient(135deg, #2f3742 0%, #12366f 52%, #2f3742 100%) !important;
}

.login-shell{
    background: transparent !important;
    box-shadow: none !important;
    min-height: calc(100vh - 34px) !important;
}

.login-showcase{
    border-radius: 22px 0 0 22px;
    overflow: hidden;
}

.login-panel{
    background:
        linear-gradient(180deg, rgba(9,24,54,.94), rgba(10,31,74,.96)) !important;
    padding: 18px 22px !important;
}

.login-card{
    background: rgba(245,248,252,.97) !important;
    border: 1px solid rgba(255,255,255,.18) !important;
    box-shadow: 0 18px 44px rgba(0,0,0,.18) !important;
}

.login-hero{
    margin-bottom: 6px !important;
}

.login-hero img,
.login-hero .brasao-login,
.brasao-login{
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    object-fit: contain !important;
}

.login-hero img{
    width: 134px !important;
    height: 134px !important;
    filter: drop-shadow(0 6px 12px rgba(0,0,0,.10));
}

.login-title-wrap{
    margin-top: 2px !important;
}

.login-kicker{
    background: rgba(15,159,154,.10) !important;
    border-color: rgba(15,159,154,.18) !important;
}

@media screen and (max-width: 1180px){
    .login-shell{
        background: transparent !important;
    }

    .login-showcase{
        border-radius: 18px 18px 0 0;
    }

    .login-panel{
        border-radius: 0 0 18px 18px;
    }
}

@media screen and (max-width: 680px){
    .login-panel{
        padding: 14px !important;
    }

    .login-card{
        background: rgba(245,248,252,.98) !important;
    }

    .login-hero img{
        width: 112px !important;
        height: 112px !important;
    }
}



/* ===== Fundo total da tela de login ===== */
.login-page{
    background:
        radial-gradient(circle at 18% 20%, rgba(111,75,216,.18), transparent 22%),
        radial-gradient(circle at 82% 18%, rgba(14,165,233,.16), transparent 20%),
        radial-gradient(circle at 25% 75%, rgba(15,159,154,.12), transparent 18%),
        linear-gradient(135deg, #2f3742 0%, #12366f 48%, #2f3742 100%) !important;
}

.login-shell{
    background:
        radial-gradient(circle at 18% 20%, rgba(111,75,216,.16), transparent 22%),
        radial-gradient(circle at 82% 18%, rgba(14,165,233,.14), transparent 20%),
        linear-gradient(135deg, #2f3742 0%, #12366f 48%, #2f3742 100%) !important;
    box-shadow: 0 24px 60px rgba(0,0,0,.22) !important;
}

.login-showcase{
    background:
        radial-gradient(circle at 15% 20%, rgba(111,75,216,.28), transparent 22%),
        radial-gradient(circle at 75% 35%, rgba(32,184,177,.18), transparent 20%),
        radial-gradient(circle at 25% 75%, rgba(15,159,154,.20), transparent 16%),
        linear-gradient(rgba(4,17,40,.72), rgba(4,17,40,.72)),
        linear-gradient(135deg, #2f3742 0%, #12366f 48%, #2f3742 100%) !important;
}

.login-panel{
    background: transparent !important;
}



/* ===== Login uniforme + recuperação de senha ===== */
.login-page{
    background: linear-gradient(135deg, #2f3742 0%, #12366f 50%, #2f3742 100%) !important;
}
.showcase-content{
    max-width: 720px !important;
}

.login-card{
    background: rgba(248,250,252,.97) !important;
}

.login-links{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    margin-top:8px;
    margin-bottom:4px;
}
.login-links.two-actions{
    justify-content:flex-start;
    margin-top:10px;
}
.recovery-cell{
    display:flex;
    flex-direction:column;
    gap:8px;
    min-width:230px;
}
.recovery-cell input{ width:100%; }


/* ===== Login uniforme + recuperação por e-mail ===== */
.login-page{
    background: linear-gradient(135deg, #2f3742 0%, #12366f 50%, #2f3742 100%) !important;
}

.login-shell{
    background: linear-gradient(135deg, #2f3742 0%, #12366f 50%, #2f3742 100%) !important;
    box-shadow: 0 24px 60px rgba(0,0,0,.22) !important;
}

.login-showcase,
.login-panel{
    background: transparent !important;
}

.showcase-overlay{
    display:none !important;
}

.login-hero img{
    background: linear-gradient(135deg,#ffffff,#eef9f8) !important;
    padding: 12px !important;
    border: 1px solid #e1f5f3 !important;
    box-shadow: 0 10px 24px rgba(15,159,154,.10) !important;
}

.login-links{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:16px;
    margin-top:8px;
    margin-bottom:4px;
}

.login-links a{
    color:#087f82;
    text-decoration:none;
    font-size:13px;
    font-weight:800;
}

.login-links a:hover{
    text-decoration:underline;
}

.login-links.two-actions{
    justify-content:space-between;
    flex-wrap:wrap;
}

.auth-shell{
    width:100%;
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:26px 16px;
}

.auth-card{
    width:min(560px, 100%);
    background:rgba(248,250,252,.98);
    border:1px solid rgba(255,255,255,.18);
    border-radius:26px;
    box-shadow:0 24px 60px rgba(0,0,0,.22);
    padding:28px 26px 24px;
}

.auth-top{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    margin-bottom:10px;
}

.auth-hero{
    margin-bottom:10px !important;
}

.auth-title h2{
    font-size:32px !important;
}

.auth-title p{
    margin-top:10px !important;
}

.recovery-hint{
    background:#eef9f8;
    border:1px solid #c6e9e6;
    color:#12366f;
    border-radius:14px;
    padding:12px;
    font-size:13px;
    font-weight:700;
    line-height:1.4;
}

.ok-text{
    color:#15803d;
    font-weight:800;
}

.warn-text{
    color:#c2410c;
    font-weight:800;
}


/* ===== Correção do contorno do login ===== */
.login-page{
    padding: 0 !important;
}

.login-shell{
    width: 100% !important;
    min-height: 100vh !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: hidden !important;
}

.login-showcase{
    border-radius: 0 !important;
}

.login-panel{
    border-radius: 0 !important;
}

@media screen and (max-width: 1180px){
    .login-showcase{
        border-radius: 0 !important;
    }

    .login-panel{
        border-radius: 0 !important;
    }
}


/* ===== Gerenciamento da base ===== */
.danger-zone{
    border-left:5px solid #dc2626 !important;
}

.danger-text{
    color:#7f1d1d;
    font-weight:800;
    background:#fef2f2;
    border:1px solid #fecaca;
    padding:12px 14px;
    border-radius:14px;
}

.base-actions-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:16px;
    margin-top:14px;
}

.danger-box{
    border:1px solid #fecaca;
    background:linear-gradient(135deg,#fff7f7,#ffffff);
    border-radius:18px;
    padding:16px;
}

.danger-box h3{
    margin:0 0 8px;
    color:#991b1b;
    display:flex;
    align-items:center;
    gap:8px;
}

.danger-box p{
    color:#6b7280;
    font-weight:700;
    line-height:1.45;
}

.danger-box label{
    display:block;
    font-weight:900;
    color:#7f1d1d;
    margin:10px 0 6px;
}

.danger-box input{
    width:100%;
    margin-bottom:10px;
}

.danger-button{
    background:linear-gradient(135deg,#dc2626,#991b1b) !important;
    color:white !important;
    border:none !important;
}

@media screen and (max-width: 900px){
    .base-actions-grid{
        grid-template-columns:1fr;
    }
}


/* ===== Exclusão de backups ===== */
.backup-actions-top{
    display:flex;
    justify-content:flex-end;
    gap:10px;
    margin:0 0 12px;
}

.card-backups-disponiveis .backup-actions-top.backup-actions-left{
    justify-content:flex-start;
    align-items:center;
    flex-wrap:wrap;
}

.backup-select-all-option{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:10px 14px;
    border:1px solid #0f9f9a;
    border-radius:12px;
    background:#0f9f9a;
    color:#fff;
    font-weight:800;
    cursor:pointer;
    box-shadow:0 8px 18px rgba(15,159,154,.20);
}

.backup-select-all-option:hover{
    filter:brightness(.96);
}

.backup-select-all-option span{
    color:#fff;
}

.backup-select-all-option input{
    width:16px;
    height:16px;
    margin:0;
    cursor:pointer;
}

.backup-row-actions{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}

.inline-form{
    display:inline-flex;
    margin:0;
}

.mini-danger{
    height:36px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    border-radius:12px;
    background:#fef2f2 !important;
    color:#991b1b !important;
    border:1px solid #fecaca !important;
    font-weight:900;
    padding:0 12px;
    cursor:pointer;
}

.mini-danger:hover{
    background:#fee2e2 !important;
}


/* ===== Versão completa final ===== */
.help-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.help-item h3{
    margin:0 0 8px;
    color:#2f3742;
    display:flex;
    align-items:center;
    gap:8px;
}
.help-item p{
    margin:0;
    color:#6b7280;
    font-weight:700;
    line-height:1.45;
}
.alert-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}
.alert-mini{
    background:linear-gradient(135deg,#eef9f8,#ffffff);
    border:1px solid #c6e9e6;
    border-radius:18px;
    padding:16px;
}
.alert-mini strong{
    display:block;
    font-size:30px;
    color:#087f82;
}
.alert-mini span{
    color:#6b7280;
    font-weight:800;
}
.link-button{
    border:none !important;
    background:transparent !important;
    color:#087f82 !important;
    font-size:13px !important;
    font-weight:800 !important;
    padding:0 !important;
    box-shadow:none !important;
    min-height:auto !important;
    width:auto !important;
}
.muted{color:#6b7280;font-weight:700}
@media screen and (max-width:900px){
    .help-grid,.alert-grid{grid-template-columns:1fr}
}


/* ===== Correção final de menus e avisos ===== */
.atalho-info-final{
    border-left:5px solid #0f9f9a;
    background:linear-gradient(135deg,#eef9f8,#ffffff);
}
.help-item h3{
    margin:0 0 8px;
    display:flex;
    align-items:center;
    gap:8px;
}

.help-item p{
    margin:0;
    color:#6b7280;
    font-weight:700;
}

.muted{
    color:#6b7280;
    font-weight:700;
}

@media screen and (max-width:900px){
    .help-grid{
        grid-template-columns:1fr;
    }
}


/* ===== Menu lateral com novos itens visíveis ===== */
.sidebar-nav{
    overflow-y:auto;
    padding-bottom:20px;
}
/* ===== Menu: hover mantido + clique na figura/logo ===== */
.sidebar-brand-click{
    cursor:pointer;
    user-select:none;
}
.sidebar-collapsed.sidebar-click-open .sidebar-hotspot{
    display:none !important;
}
.sidebar-nav{
    overflow-y:auto;
    padding-bottom:20px;
}

.sidebar-nav a{
    min-height:39px;
}


/* ===== Correção definitiva do menu lateral ===== */
.sidebar-nav{
    overflow-y:auto !important;
    padding-bottom:24px !important;
}
.sidebar-brand-click{
    cursor:pointer;
    user-select:none;
}

.sidebar-collapsed.sidebar-click-open .sidebar{
    transform:translateX(0) !important;
}

.sidebar-collapsed.sidebar-click-open .main-shell{
    margin-left:285px !important;
    width:calc(100% - 285px) !important;
}

.help-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}

.help-item{
    background:#f7fbfd;
    border:1px solid #dce8ef;
    border-radius:18px;
    padding:16px;
}


/* ===== Conferido: menu hover + clique no logo ===== */
.sidebar-brand-click{
    cursor:pointer;
    user-select:none;
}

.sidebar-brand-click:hover{
    background:rgba(255,255,255,.06);
}

.sidebar-nav{
    overflow-y:auto !important;
    padding-bottom:24px !important;
}

.sidebar-nav a{
    min-height:38px !important;
}


/* ===== Usuários: editar login e excluir ===== */
.usuario-editor-box{
    background:#f7fbfd;
    border:1px solid #e1f5f3;
    border-radius:18px;
    padding:18px;
}

.permissoes-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin:12px 0 16px;
}

.check-card{
    display:flex;
    align-items:center;
    gap:10px;
    background:#fff;
    border:1px solid #dce8ef;
    border-radius:14px;
    padding:10px 12px;
    font-weight:800;
    color:#3b414a;
}

.badge-soft{
    display:inline-flex;
    align-items:center;
    min-height:34px;
    padding:0 10px;
    border-radius:999px;
    background:#eef9f8;
    color:#087f82;
    font-weight:900;
    font-size:12px;
}

.secondary-button{
    background:#f7fbfd !important;
    color:#3b414a !important;
    border:1px solid #cddce7 !important;
}

@media screen and (max-width:900px){
    .permissoes-grid{
        grid-template-columns:1fr;
    }
}


/* ===== Backups: data, hora e tamanho corretos ===== */
.backup-table th,
.backup-table td{
    vertical-align:middle;
}

.check-col{
    width:42px;
    text-align:center;
}

.backup-date{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-weight:900;
    color:#3b414a;
    white-space:nowrap;
}

.backup-date::before{
    content:"📅";
    color:#0f9f9a;
}

.backup-size{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-weight:900;
    color:#0f766e;
    white-space:nowrap;
}

.backup-size::before{
    content:"💾";
    color:#0f766e;
}


/* ===== Confirmação com senha do administrador ===== */
.danger-box input[type="password"]{
    border:1px solid #fecaca !important;
    background:#fff7f7;
}

.danger-box label{
    margin-top:10px;
}


/* ===== Nº Controle visual ===== */
.controle-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:72px;
    padding:6px 10px;
    border-radius:999px;
    background:#eef9f8;
    color:#087f82;
    border:1px solid #c6e9e6;
    font-weight:900;
    letter-spacing:.4px;
}


/* ===== Nº Controle como referência principal ===== */
.controle-badge{
    background:#e1f5f3 !important;
    color:#12366f !important;
    border:1px solid #a9deda !important;
    font-weight:950 !important;
}


/* ===== Protocolo/Nº Controle na dashboard ===== */
.controle-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:72px;
    padding:6px 10px;
    border-radius:999px;
    background:#e1f5f3 !important;
    color:#12366f !important;
    border:1px solid #a9deda !important;
    font-weight:950 !important;
    letter-spacing:.4px;
}


/* ===== Configurações do sistema ===== */
.config-card{
    padding:24px;
}

.config-form .form-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:18px;
}

.config-form .form-group{
    display:flex;
    flex-direction:column;
    gap:7px;
}

.config-form .form-group.full{
    grid-column:1 / -1;
}

.config-form label{
    font-weight:800;
    color:#2f3742;
}

.config-form input,
.config-form textarea{
    width:100%;
    border:1px solid #d1d5db;
    border-radius:14px;
    padding:12px 14px;
    font-size:15px;
    background:#fff;
}

.config-form textarea{
    resize:vertical;
}

.actions-bar{
    display:flex;
    justify-content:flex-end;
    margin-top:22px;
}

.primary-button{
    display:inline-flex;
    align-items:center;
    gap:8px;
    border:0;
    border-radius:14px;
    padding:12px 18px;
    background:#0f9f9a;
    color:#fff;
    font-weight:900;
    cursor:pointer;
    box-shadow:0 10px 24px rgba(15,159,154,.25);
}

.primary-button:hover{
    filter:brightness(.95);
}

@media screen and (max-width:800px){
    .config-form .form-grid{
        grid-template-columns:1fr;
    }
}


/* ===== Configurações de importação ===== */
.config-section-title{
    grid-column:1 / -1;
    display:flex;
    align-items:center;
    gap:10px;
    margin:24px 0 4px;
    padding:14px 16px;
    border-radius:16px;
    background:#eef8f7;
    color:#12366f;
    font-weight:950;
    border:1px solid #c9e8e5;
}

.import-config-grid{
    margin-top:10px;
    padding-top:8px;
}

.config-form select{
    width:100%;
    border:1px solid #d1d5db;
    border-radius:14px;
    padding:12px 14px;
    font-size:15px;
    background:#fff;
}

.config-form small{
    color:#6b7280;
    font-size:12px;
    line-height:1.35;
}


/* ===== Backup administrativo ===== */
.admin-export-box{
    grid-column:1 / -1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:18px;
    border:1px solid #c6e9e6;
    border-radius:18px;
    background:#f7fbfd;
    margin-top:10px;
}
.secondary-button:hover{
    filter:brightness(.96);
}

@media screen and (max-width:800px){
    .admin-export-box{
        flex-direction:column;
        align-items:flex-start;
    }
}


/* ===== Botão visível de backup administrativo ===== */
.backup-admin-topo-visivel{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:18px 20px;
    margin:18px 0;
    border-radius:20px;
    background:linear-gradient(135deg,#12366f,#0f9f9a);
    color:#fff;
    box-shadow:0 16px 34px rgba(15,159,154,.24);
}
.backup-admin-button:hover{
    filter:brightness(.96);
}
.secondary-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    border:1px solid #a9deda;
    border-radius:14px;
    padding:12px 16px;
    background:#eef9f8;
    color:#087f82;
    font-weight:900;
    text-decoration:none;
    white-space:nowrap;
}

@media screen and (max-width:800px){
    .backup-admin-topo-visivel,
    .admin-export-box{
        flex-direction:column;
        align-items:flex-start;
    }
}


/* ===== Status Ativado/Inativo no cadastro de usuários ===== */
.form-group select{
    width:100%;
    border:1px solid #d1d5db;
    border-radius:14px;
    padding:12px 14px;
    font-size:15px;
    background:#fff;
}


/* ===== Correção: Backup admin visível e status de usuário ===== */
.backup-admin-topo-visivel{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:18px 20px;
    margin:18px 0;
    border-radius:20px;
    background:linear-gradient(135deg,#12366f,#0f9f9a);
    color:#fff;
    box-shadow:0 16px 34px rgba(15,159,154,.24);
}

.backup-admin-topo-visivel div{
    display:flex;
    flex-direction:column;
    gap:4px;
}

.backup-admin-topo-visivel strong{
    font-size:18px;
}

.backup-admin-topo-visivel span{
    opacity:.92;
    font-size:14px;
}

.backup-admin-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:12px 18px;
    border-radius:14px;
    background:#fff;
    color:#087f82;
    text-decoration:none;
    font-weight:950;
    white-space:nowrap;
}

.admin-export-box{
    grid-column:1 / -1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:18px;
    border:1px solid #c6e9e6;
    border-radius:18px;
    background:#f7fbfd;
    margin-top:10px;
}

.admin-export-box h3{
    margin:0 0 6px;
    color:#12366f;
    font-size:18px;
}

.admin-export-box p{
    margin:0;
    color:#6b7280;
    line-height:1.45;
}

.secondary-button,
.primary-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    border-radius:14px;
    padding:12px 16px;
    font-weight:900;
    text-decoration:none;
}

.secondary-button{
    border:1px solid #a9deda;
    background:#eef9f8;
    color:#087f82;
}

.primary-button{
    border:0;
    background:#0f9f9a;
    color:#fff;
}

.form-group select,
.config-form select{
    width:100%;
    border:1px solid #d1d5db;
    border-radius:14px;
    padding:12px 14px;
    font-size:15px;
    background:#fff;
}

.config-section-title{
    grid-column:1 / -1;
    display:flex;
    align-items:center;
    gap:10px;
    margin:24px 0 4px;
    padding:14px 16px;
    border-radius:16px;
    background:#eef8f7;
    color:#12366f;
    font-weight:950;
    border:1px solid #c9e8e5;
}

@media screen and (max-width:800px){
    .backup-admin-topo-visivel,
    .admin-export-box{
        flex-direction:column;
        align-items:flex-start;
    }
}


/* ===== Correção real: backup admin e status usuário visíveis ===== */
.backup-admin-card{
    border:1px solid #c6e9e6;
    background:#f7fbfd;
}

.backup-admin-card h2{
    color:#12366f;
}

.backup-admin-button-inline{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    margin-top:12px;
    padding:12px 18px;
    border-radius:14px;
    background:#0f9f9a;
    color:#fff;
    font-weight:950;
    text-decoration:none;
    box-shadow:0 10px 24px rgba(15,159,154,.25);
}

.form-grid select{
    width:100%;
    border:1px solid #d1d5db;
    border-radius:14px;
    padding:12px 14px;
    font-size:15px;
    background:#fff;
}


/* ===== Configurações completas + importar/exportar backup admin ===== */
.backup-admin-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}

.backup-admin-button.outline{
    background:rgba(255,255,255,.15);
    color:#fff;
    border:1px solid rgba(255,255,255,.65);
}

.config-section-title.no-margin-top{
    margin-top:0;
}

.admin-export-import-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:16px;
}

.admin-import-box{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:18px;
    border:1px solid #fed7aa;
    border-radius:18px;
    background:#fff7ed;
}

.admin-import-box h3{
    margin:0 0 6px;
    color:#9a3412;
    font-size:18px;
}

.admin-import-box p{
    margin:0;
    color:#7c2d12;
    line-height:1.45;
}

.admin-import-box input[type="file"]{
    max-width:280px;
    border:1px dashed #fb923c;
    background:#fff;
    border-radius:14px;
    padding:10px;
}

.warning-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    border:0;
    border-radius:14px;
    padding:12px 16px;
    background:#ea580c;
    color:#fff;
    font-weight:900;
    cursor:pointer;
    white-space:nowrap;
}

.backup-admin-import-inline{
    margin-top:14px;
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    align-items:center;
}

@media screen and (max-width:900px){
    .admin-import-box{
        flex-direction:column;
        align-items:flex-start;
    }
}










/* ===== Registros coloridos na aba Cadastros - verde e amarelo ouro ===== */
.cadastro-status-table{
    border-collapse:separate;
    border-spacing:0 8px;
}

.cadastro-status-table tbody tr{
    transition:.16s ease;
    box-shadow:0 2px 8px rgba(15,23,42,.07);
}

.cadastro-status-table tbody tr.status-retirado{
    background:#DCFCE7 !important; /* verde claro */
}

.cadastro-status-table tbody tr.status-nao-retirado{
    background:#FEF3C7 !important; /* amarelo ouro claro */
}

.cadastro-status-table tbody tr:hover{
    box-shadow:0 10px 24px rgba(15,23,42,.16);
    filter:brightness(.97);
    transform:translateY(-1px);
}

.cadastro-status-table tbody td{
    border-top:1px solid rgba(100,116,139,.28);
    border-bottom:1px solid rgba(100,116,139,.28);
    color:#2f3742;
}

.cadastro-status-table tbody td:first-child{
    border-left:6px solid #98a2b3;
    border-radius:13px 0 0 13px;
}

.cadastro-status-table tbody tr.status-retirado td:first-child{
    border-left-color:#16A34A;
}

.cadastro-status-table tbody tr.status-nao-retirado td:first-child{
    border-left-color:#D97706;
}

.cadastro-status-table tbody td:last-child{
    border-right:1px solid rgba(100,116,139,.28);
    border-radius:0 13px 13px 0;
}

.cadastro-legenda-status{
    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
    margin:8px 0 14px;
    padding:10px 12px;
    border-radius:14px;
    background:#f7fbfd;
    border:1px solid #dce8ef;
    color:#6b7280;
    font-size:13px;
    font-weight:700;
}

.cadastro-legenda-status .cadastro-legenda-filtro{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:6px 10px;
    border:1px solid transparent;
    border-radius:999px;
    color:#6b7280;
    background:transparent;
    text-decoration:none;
    cursor:pointer;
    transition:background .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.cadastro-legenda-status .cadastro-legenda-filtro:hover{
    background:#fff;
    border-color:#cddce7;
    color:#2f3742;
    transform:translateY(-1px);
}

.cadastro-legenda-status .cadastro-legenda-filtro:focus-visible{
    outline:3px solid rgba(15,159,154,.22);
    outline-offset:2px;
}

.cadastro-legenda-status .cadastro-legenda-filtro.ativo.filtro-retirado{
    background:#dcfce7;
    border-color:#86efac;
    color:#166534;
    box-shadow:0 2px 8px rgba(22,163,74,.16);
}

.cadastro-legenda-status .cadastro-legenda-filtro.ativo.filtro-nao-retirado{
    background:#fef3c7;
    border-color:#fcd34d;
    color:#92400e;
    box-shadow:0 2px 8px rgba(217,119,6,.16);
}

.cadastro-legenda-status i{
    width:14px;
    height:14px;
    border-radius:999px;
    display:inline-block;
    border:1px solid rgba(15,23,42,.18);
}

.cadastro-legenda-status .legenda-retirado{
    background:#22C55E;
}

.cadastro-legenda-status .legenda-nao-retirado{
    background:#F59E0B; /* amarelo ouro */
}



/* Aviso de exclusão em massa / lixeira - fundo neutro */
.bulk-actions{
    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
    background:#f7fbfd;
    border:1px solid #dce8ef;
    border-radius:16px;
    padding:12px;
    margin-bottom:12px;
}

.bulk-actions .inline-hint,
.bulk-actions .hint{
    color:#6b7280;
    font-weight:700;
}


/* ===== Identificação das páginas ===== */
.page-identificacao{
    margin-bottom:18px;
}

.page-identificacao .hero-content h1{
    margin:0;
    font-size:28px;
    color:#2f3742;
}

.page-identificacao .hero-content p{
    margin:8px 0 0;
    color:#6b7280;
    max-width:900px;
    line-height:1.5;
}

.page-identificacao img{
    display:none;
}


/* ===== Responsividade segura para telas pequenas ===== */
html{
    -webkit-text-size-adjust:100%;
}

img{
    max-width:100%;
    height:auto;
}

.table-wrap{
    width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}

@media screen and (max-width: 1200px){
    .analysis-grid,
    .mini-metrics,
    .table-checks{
        grid-template-columns:1fr 1fr;
    }
}

@media screen and (max-width: 980px){
    .app-layout{
        display:block;
    }

    .sidebar{
        position:fixed;
        left:0;
        top:0;
        bottom:0;
        width:min(320px, 88vw);
        min-height:100vh;
        z-index:90;
        transform:translateX(0);
        overflow-y:auto;
    }

    .sidebar-collapsed .sidebar{
        display:flex;
        transform:translateX(-105%);
    }

    .sidebar-collapsed.sidebar-hover-open .sidebar,
    body:not(.sidebar-collapsed) .sidebar{
        transform:translateX(0);
    }

    .sidebar-nav{
        display:flex;
        grid-template-columns:none;
    }

    .sidebar-footer{
        display:block;
    }

    .user-box{
        margin-bottom:10px;
    }

    .sidebar-hotspot{
        display:flex;
        top:76px;
    }

    body:not(.sidebar-collapsed) .sidebar-hotspot,
    .sidebar-collapsed.sidebar-hover-open .sidebar-hotspot{
        display:none;
    }

    .main-shell,
    .sidebar-collapsed .main-shell,
    .sidebar-collapsed.sidebar-hover-open .main-shell{
        margin-left:0;
        width:100%;
    }

    .container{
        padding:18px 16px 28px;
    }

    .topbar-simple{
        height:auto;
        min-height:70px;
        padding:14px 16px;
        flex-wrap:wrap;
        gap:10px;
        align-items:flex-start;
    }

    .top-title-group,
    .top-actions{
        width:100%;
    }

    .topbar-simple h2{
        font-size:18px;
        line-height:1.2;
    }

    .top-actions{
        display:flex;
        flex-wrap:wrap;
        gap:8px;
    }

    .top-actions .mini-action,
    .top-actions .print-action{
        flex:1 1 180px;
        min-height:42px;
    }

    .hero-compact{
        padding:16px;
        min-height:auto;
        gap:14px;
        align-items:flex-start;
    }

    .hero-compact h1,
    .hero-compact h2{
        font-size:22px;
    }

    .hero-compact p{
        font-size:14px;
    }

    .hero-compact img{
        width:72px;
        height:72px;
        align-self:flex-end;
    }

    .card{
        padding:16px;
        border-radius:18px;
    }

    .kpis,
    .dash-grid,
    .analysis-grid,
    .mini-metrics,
    .profile-grid,
    .permissions-form,
    .check-grid,
    .import-info-grid,
    .form-grid,
    .grid{
        grid-template-columns:1fr !important;
    }

    .tools,
    .inline-form,
    .actions,
    .bulk-actions{
        align-items:stretch;
    }

    .tools > *,
    .inline-form > *,
    .actions > *,
    .bulk-actions > *{
        flex:1 1 100%;
    }

    .actions .button,
    .actions button,
    .tools .button,
    .tools button,
    .inline-form .button,
    .inline-form button{
        width:100%;
        min-height:42px;
    }

    table{
        min-width:760px;
    }

    th, td{
        padding:9px 8px;
        font-size:13px;
    }

    input, select, textarea, button{
        font-size:16px;
    }

    .login-shell,
    .auth-shell{
        width:100%;
        min-height:100vh;
        display:block;
    }

    .login-showcase{
        min-height:220px;
    }

    .login-panel,
    .auth-card{
        width:min(100%, 100%);
    }
}

@media screen and (max-width: 650px){
    .container{
        padding:14px 12px 22px;
    }

    .hero-compact{
        flex-direction:column;
        text-align:left;
    }

    .eyebrow{
        font-size:11px;
        padding:5px 9px;
    }

    .hero-compact h1,
    .hero-compact h2{
        font-size:20px;
    }

    .sidebar-hotspot{
        width:34px;
        height:52px;
        font-size:19px;
    }

    .mini-action,
    .button,
    button{
        min-height:44px;
    }

    .login-card,
    .auth-card{
        width:100%;
        max-width:100%;
        border-radius:20px;
        padding:20px 16px;
    }

    .login-hero img{
        width:110px;
        height:110px;
    }

    .showcase-content h1{
        font-size:28px;
        line-height:1.05;
    }
}


/* ===== Backup automático e agendamento ===== */
.card .bi-clock-history{
    color:#0f9f9a;
}


/* ===== Ajuste do status do backup automático ===== */
.backup-info-box{
    margin-top:14px;
    background:#f7fbfd;
    border:1px solid #dce8ef;
    border-radius:16px;
    padding:12px 14px;
    display:block;
    max-width:100%;
    overflow:hidden;
}

.backup-info-box span{
    display:block;
    color:#6b7280;
    font-size:13px;
    font-weight:900;
    margin-bottom:5px;
}

.backup-info-box strong{
    display:block;
    color:#2f3742;
    font-size:14px;
    line-height:1.45;
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:break-word;
}

.backup-info-box small{
    display:block;
    color:#6b7280;
    font-weight:700;
    margin-top:7px;
    line-height:1.4;
}

.backup-schedule-actions{
    margin-top:12px;
    display:flex;
    justify-content:flex-start;
}

.backup-schedule-actions form{
    margin:0;
}

.backup-schedule-actions button{
    min-height:40px;
}

@media screen and (max-width:650px){
    .backup-schedule-actions,
    .backup-schedule-actions form,
    .backup-schedule-actions button{
        width:100%;
    }
}


.backup-schedule-actions{
    gap:10px;
    flex-wrap:wrap;
}

.backup-schedule-actions form + form{
    margin-left:0;
}


/* ===== Registros do agendamento de backup ===== */
.backup-schedule-log-table td{
    vertical-align:top;
}

.backup-schedule-log-table td:last-child{
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:break-word;
}


/* ===== Evita piscada do menu ao recarregar páginas ===== */
html.menu-pre-collapsed .sidebar{
    transform:translateX(-100%);
}

html.menu-pre-collapsed .main-shell{
    margin-left:0;
    width:100%;
}

html.menu-pre-collapsed .sidebar-hotspot{
    display:flex;
}

@media screen and (max-width:980px){
    html.menu-pre-collapsed .sidebar{
        transform:translateX(-105%);
    }

    html.menu-pre-collapsed .main-shell{
        margin-left:0;
        width:100%;
    }
}


/* ===== Evita aparecer o topo antes de restaurar a posição da tela ===== */
html.scroll-pre-restore body{
    visibility:hidden;
}

html.scroll-pre-restore .main-shell,
html.scroll-pre-restore .topbar-simple,
html.scroll-pre-restore .container{
    visibility:hidden;
}


/* Ajuste v124: mantém Filtrar e Limpar juntos nos filtros avançados do Cadastro */
.filtros-acoes{
    display: flex;
    align-items: end;
    gap: 10px;
    flex-wrap: nowrap;
}

.filtros-acoes .button,
.filtros-acoes button{
    white-space: nowrap;
}

@media screen and (max-width: 640px){
    .filtros-acoes{
        flex-wrap: wrap;
    }

    .filtros-acoes .button,
    .filtros-acoes button{
        width: 100%;
        justify-content: center;
    }
}


/* Ajuste v126: ao filtrar, a página desce direto para os dados filtrados */
#registros-filtrados,
#registros-lixeira{
    scroll-margin-top: 92px;
}


/* ===== Melhorias 1.5.0: versão, diagnóstico e status ===== */
.page-footer{
    padding: 14px 22px;
    color: #6b7280;
    font-size: 12px;
    text-align: right;
}
.status-badge{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    background: #dce8ef;
    color: #3b414a;
}
.status-badge.ok{
    background: #dcfce7;
    color: #166534;
}
.status-badge.atencao{
    background: #fef3c7;
    color: #92400e;
}
.status-badge.erro{
    background: #fee2e2;
    color: #991b1b;
}
.diagnostic-card .section-header{
    align-items: flex-start;
    gap: 16px;
}
.diagnostic-details{
    margin-top: 14px;
    padding: 12px 14px;
    border: 1px solid #dce8ef;
    border-radius: 12px;
    background: #f7fbfd;
}
.diagnostic-details summary{
    cursor: pointer;
    font-weight: 700;
    color: #2f3742;
}
.import-diagnostic-card{
    border-left: 5px solid #0f9f9a;
}
button[disabled], input[type="submit"][disabled]{
    opacity: .72;
    cursor: wait !important;
}

/* ===== v133: seletor de arquivo moderno na importação ===== */
.import-form-modern{
    grid-template-columns: 1.4fr .8fr .8fr auto;
    align-items: stretch;
}

.file-upload-field{
    min-width: 280px;
}

.file-drop-zone{
    position: relative;
    display: flex;
    min-height: 184px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 24px 20px;
    border: 2px dashed #a9deda;
    border-radius: 22px;
    background:
        radial-gradient(circle at top left, rgba(15,159,154,.12), transparent 34%),
        linear-gradient(135deg, #eef9f8, #ffffff 58%, #ecfeff);
    cursor: pointer;
    text-align: center;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
    overflow: hidden;
}

.file-drop-zone:hover,
.file-drop-zone.drag-over{
    transform: translateY(-2px);
    border-color: #0f9f9a;
    box-shadow: 0 18px 42px rgba(15,159,154,.16);
    background:
        radial-gradient(circle at top left, rgba(15,159,154,.18), transparent 36%),
        linear-gradient(135deg, #e1f5f3, #ffffff 55%, #cffafe);
}

.file-drop-zone.has-file{
    border-color: #10b981;
    background:
        radial-gradient(circle at top left, rgba(16,185,129,.14), transparent 34%),
        linear-gradient(135deg, #ecfdf5, #ffffff 58%, #eef9f8);
}

.file-drop-zone input[type="file"]{
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.file-drop-icon{
    width: 56px;
    height: 56px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    background: linear-gradient(135deg, #0f9f9a, #20b8b1);
    box-shadow: 0 14px 30px rgba(15,159,154,.24);
    font-size: 28px;
}

.file-drop-title{
    margin-top: 4px;
    color: #2f3742;
    font-size: 17px;
    font-weight: 900;
}

.file-drop-subtitle{
    color: #6b7280;
    font-size: 13px;
    font-weight: 700;
}

.file-drop-types{
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(255,255,255,.75);
    color: #0f9f9a;
    font-size: 12px;
    font-weight: 900;
    border: 1px solid rgba(15,159,154,.14);
}

.file-selected-name{
    width: 100%;
    max-width: 520px;
    margin-top: 6px;
    padding: 9px 12px;
    border-radius: 13px;
    background: #ffffff;
    color: #6b7280;
    border: 1px solid #e1f5f3;
    font-size: 13px;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.file-drop-zone.has-file .file-selected-name{
    color: #065f46;
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.import-submit-area{
    display: flex;
    align-items: end;
}

.import-submit-area button{
    min-height: 48px;
    white-space: nowrap;
}

@media screen and (max-width:1200px){
    .import-form-modern{
        grid-template-columns: 1fr 1fr;
    }
    .file-upload-field{
        grid-column: 1 / -1;
    }
}

@media screen and (max-width:700px){
    .import-form-modern{
        grid-template-columns: 1fr;
    }
    .file-drop-zone{
        min-height: 170px;
        padding: 20px 16px;
    }
    .import-submit-area button{
        width: 100%;
    }
}

/* ===== v136: Permissões compactas e ambiente compartilhado ===== */
.permissao-resumo{
    display:flex;
    flex-direction:column;
    gap:4px;
    align-items:flex-start;
}

.permissao-resumo-chip{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:6px 10px;
    border-radius:999px;
    background:#ecfdf5;
    border:1px solid #bbf7d0;
    color:#166534;
    font-weight:900;
    font-size:12px;
    white-space:nowrap;
}

.permissao-resumo small{
    color:#6b7280;
    font-weight:800;
}

.permissoes-panel{
    margin-top:18px;
    border:1px solid #c9e8e5;
    background:linear-gradient(135deg,#f7fbfd 0%,#eef8f7 100%);
    border-radius:20px;
    padding:16px;
    box-shadow:0 10px 26px rgba(15,23,42,.06);
}

.permissoes-panel-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    margin-bottom:12px;
}

.permissoes-panel-head h3{
    margin:4px 0 2px;
    font-size:18px;
    color:#2f3742;
}

.permissoes-panel-head p{
    margin:0;
    color:#6b7280;
    font-weight:700;
    font-size:13px;
}

.section-kicker{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:#087f82;
}

.permissoes-counter{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:8px 12px;
    border-radius:999px;
    background:#fff;
    border:1px solid #c9e8e5;
    color:#12366f;
    font-size:12px;
    font-weight:900;
    white-space:nowrap;
}

.permissoes-toolbar{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:10px 0 14px;
}

.permissoes-groups{
    display:grid;
    gap:10px;
}

.permissao-grupo{
    border:1px solid #dce8ef;
    border-radius:16px;
    background:rgba(255,255,255,.88);
    overflow:hidden;
}

.permissao-grupo summary{
    cursor:pointer;
    list-style:none;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:12px 14px;
    user-select:none;
}

.permissao-grupo summary::-webkit-details-marker{
    display:none;
}

.permissao-grupo summary::after{
    content:'+';
    width:24px;
    height:24px;
    border-radius:999px;
    background:#eef8f7;
    color:#087f82;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-weight:900;
    flex:0 0 auto;
}

.permissao-grupo[open] summary::after{
    content:'–';
}

.permissao-grupo-title{
    display:flex;
    align-items:center;
    gap:8px;
    color:#12366f;
    font-weight:900;
}

.permissao-grupo summary small{
    color:#6b7280;
    font-weight:700;
    margin-left:auto;
    text-align:right;
}

.permissoes-grid.compacto{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    padding:0 12px 12px;
    margin:0;
}

.check-card.compacto{
    min-height:38px;
    padding:8px 10px;
    border-radius:12px;
    font-size:13px;
    font-weight:800;
    box-shadow:none;
}

.check-card.compacto input{
    width:16px;
    height:16px;
    accent-color:#0f9f9a;
}

.check-card.compacto:hover{
    border-color:#67c9c2;
    background:#f7fbfd;
}

@media screen and (max-width:1100px){
    .permissoes-grid.compacto{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media screen and (max-width:720px){
    .permissoes-panel-head{
        flex-direction:column;
    }
    .permissoes-grid.compacto{
        grid-template-columns:1fr;
    }
    .permissao-grupo summary{
        align-items:flex-start;
        flex-direction:column;
    }
    .permissao-grupo summary::after{
        position:absolute;
        right:16px;
    }
    .permissao-grupo{
        position:relative;
    }
    .permissao-grupo summary small{
        text-align:left;
        margin-left:0;
        padding-right:34px;
    }
}

.backup-weekly-days{
    grid-column:1 / -1;
    background:linear-gradient(180deg,#f7fbfd,#eef8f7);
    border:1px solid #e1f5f3;
    border-radius:18px;
    padding:14px;
}

.backup-weekly-days small{
    display:block;
    margin-top:8px;
    color:var(--muted);
}

.backup-weekday-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
    gap:10px;
}

.backup-weekday-chip{
    display:flex;
    align-items:center;
    gap:10px;
    border:1px solid #cddce7;
    border-radius:14px;
    padding:10px 12px;
    background:white;
    font-weight:700;
    color:#2f3742;
    margin-bottom:0;
}

.backup-weekday-chip input{
    width:auto;
    margin:0;
}


.backup-windows-task-box{
    margin-top:16px;
    display:flex;
    justify-content:space-between;
    gap:16px;
    align-items:flex-start;
    background:linear-gradient(135deg,#eef9f8,#f7fbfd);
    border:1px solid #c6e9e6;
    border-radius:20px;
    padding:16px;
}

.backup-windows-task-box h3{
    margin:0 0 6px 0;
    color:#2f3742;
}

.backup-windows-task-box p{
    margin:0 0 6px 0;
    color:var(--muted);
}

.backup-windows-task-box small{
    color:#6b7280;
    font-weight:700;
}

.backup-windows-task-actions{
    display:flex;
    flex-direction:column;
    gap:10px;
    min-width:260px;
}

.backup-windows-task-actions form,
.backup-windows-task-actions button{
    width:100%;
}

@media screen and (max-width:760px){
    .backup-windows-task-box{
        flex-direction:column;
    }
    .backup-windows-task-actions{
        width:100%;
        min-width:0;
    }
}

/* Ajustes v139 - segurança de backups */
.restore-inline-form {
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
}
.restore-inline-form .mini-password {
    min-width: 120px;
    max-width: 160px;
    padding: 7px 9px;
    font-size: 0.85rem;
}

/* ===== v141 - Janela de confirmação com senha para ações sensíveis ===== */
.modal-confirmacao-senha{
    position:fixed;
    inset:0;
    z-index:9999;
    display:none;
    align-items:center;
    justify-content:center;
    padding:20px;
}

.modal-confirmacao-senha.aberto{
    display:flex;
}

.modal-confirmacao-overlay{
    position:absolute;
    inset:0;
    background:rgba(15, 23, 42, .58);
    backdrop-filter:blur(2px);
}

.modal-confirmacao-card{
    position:relative;
    z-index:1;
    width:min(520px, 100%);
    background:#ffffff;
    border:1px solid #fecaca;
    border-radius:22px;
    box-shadow:0 28px 80px rgba(15, 23, 42, .32);
    padding:22px;
}

.modal-confirmacao-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    margin-bottom:10px;
}

.modal-confirmacao-header h2{
    margin:4px 0 0;
    color:#991b1b;
}

.danger-eyebrow{
    color:#b91c1c;
    background:#fee2e2;
    border:1px solid #fecaca;
    padding:4px 8px;
    border-radius:999px;
}

.modal-confirmacao-fechar{
    width:38px;
    height:38px;
    border-radius:999px;
    border:1px solid #e5e7eb;
    background:#f7fbfd;
    color:#3b414a;
    font-size:26px;
    line-height:1;
    padding:0;
}

.modal-confirmacao-mensagem{
    color:#6b7280;
    margin:8px 0 16px;
}

.modal-confirmacao-card label{
    display:block;
    font-weight:800;
    color:#7f1d1d;
    margin-bottom:6px;
}

.modal-confirmacao-card input[type="password"]{
    width:100%;
    border:1px solid #fecaca !important;
    background:#fff7f7;
    border-radius:14px;
    padding:12px 14px;
    font-size:1rem;
}

.modal-confirmacao-actions{
    display:flex;
    justify-content:flex-end;
    gap:10px;
    margin-top:18px;
    flex-wrap:wrap;
}

@media screen and (max-width: 560px){
    .modal-confirmacao-actions button{
        width:100%;
    }
}



/* ===== Ícones locais ===== */
/* As formas dos ícones são carregadas por static/icons_local.css, sem CDN e sem fonte externa. */

/* ===== Ajuste v154: autofill do login sem cobrir os ícones =====
   Mantém o azul do preenchimento automático apenas no campo digitável.
   A área do ícone permanece com o fundo original. */
.login-form .input-with-icon input{
    border-radius: 0 !important;
    background-clip: border-box !important;
}

.login-form .input-with-icon:has(input:-webkit-autofill){
    background: #eaf7f6 !important;
}

.login-form .input-with-icon:has(input:-webkit-autofill) span{
    background: #eef2f7 !important;
    border-right-color: #d7dee9 !important;
    color: #6b7280 !important;
}

.login-form .input-with-icon input:-webkit-autofill,
.login-form .input-with-icon input:-webkit-autofill:hover,
.login-form .input-with-icon input:-webkit-autofill:focus{
    border-radius: 0 !important;
    -webkit-box-shadow: 0 0 0 1000px #eaf7f6 inset !important;
    -webkit-text-fill-color: #2f3742 !important;
    caret-color: #2f3742 !important;
}



/* ===== Listagem compacta de registros (escopo: aba Cadastro > Registros) ===== */
/* v168: mantém a linha visível ocupando a largura do bloco Detalhes,
   corrigindo o tamanho dos botões Salvar/Excluir sem afetar o bloco Detalhes. */
#registros-filtrados .table-wrap-registros{
    overflow-x:auto;
    overflow-y:visible;
}

#registros-filtrados .tabela-registros-compacta{
    width:100%;
    min-width:1470px;
    table-layout:fixed;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta th,
#registros-filtrados .cadastro-status-table.tabela-registros-compacta td{
    padding:8px 10px;
    vertical-align:middle;
}

/* Cadastro com permissão de seleção em massa: Sel. + 9 colunas. */
#registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(1),
#registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(1){width:46px;}
#registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(2),
#registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(2){width:110px;}
#registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(3),
#registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(3){width:150px;}
#registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(4),
#registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(4){width:205px;}
#registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(5),
#registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(5){width:240px; min-width:240px;}
#registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(6),
#registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(6){width:150px;}
#registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(7),
#registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(7){width:205px;}
#registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(8),
#registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(8){width:110px;}
#registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(9),
#registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(9){width:130px;}
#registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(10),
#registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(10){width:124px;}

/* Cadastro sem seleção em massa: as larguras não ficam deslocadas para usuário comum. */
#registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(1),
#registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(1){width:110px;}
#registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(2),
#registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(2){width:150px;}
#registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(3),
#registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(3){width:215px;}
#registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(4),
#registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(4){width:240px; min-width:240px;}
#registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(5),
#registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(5){width:150px;}
#registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(6),
#registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(6){width:215px;}
#registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(7),
#registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(7){width:110px;}
#registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(8),
#registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(8){width:130px;}
#registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(9),
#registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(9){width:124px;}

#registros-filtrados .tabela-registros-compacta td input{
    box-sizing:border-box;
    min-width:0;
    width:100%;
    max-width:100%;
    padding:8px 10px;
    border-radius:11px;
    font-size:14px;
}

#registros-filtrados .tabela-registros-compacta .campo-data,
#registros-filtrados .tabela-registros-compacta .campo-paciente,
#registros-filtrados .tabela-registros-compacta .campo-descricao,
#registros-filtrados .tabela-registros-compacta .campo-responsavel{
    width:100%;
    min-width:0;
    max-width:100%;
}

#registros-filtrados .tabela-registros-compacta .botao-detalhes-registro{
    width:100%;
    justify-content:center;
    white-space:nowrap;
    padding:8px 10px;
    min-height:36px;
    font-size:14px;
}

/* Botões Salvar/Excluir na listagem do Cadastro: maiores que na v167, mas sem estourar a linha. */
#registros-filtrados .tabela-registros-compacta .actions{
    min-width:0;
    max-width:none;
    align-items:stretch;
    gap:6px;
}

#registros-filtrados .tabela-registros-compacta .actions form{
    width:100%;
    margin:0;
}

#registros-filtrados .tabela-registros-compacta .actions button{
    width:100%;
    min-width:0;
    min-height:38px;
    padding:9px 9px;
    border-radius:11px;
    font-size:14px;
    justify-content:center;
    white-space:nowrap;
}

#registros-filtrados .tabela-registros-compacta .actions button i{
    font-size:.95em;
}

/* Parte oculta/Detalhes: mantida conforme aprovada, sem redimensionar. */
#registros-filtrados .cadastro-status-table tbody tr.registro-detalhes-linha{
    display:none;
    box-shadow:none;
    transform:none;
    filter:none;
}

#registros-filtrados .cadastro-status-table tbody tr.registro-detalhes-linha.aberto{
    display:table-row;
}

#registros-filtrados .cadastro-status-table tbody tr.registro-detalhes-linha:hover{
    box-shadow:none;
    transform:none;
    filter:none;
}

#registros-filtrados .cadastro-status-table tbody tr.registro-detalhes-linha td{
    border-left:6px solid #98a2b3;
    border-right:1px solid rgba(100,116,139,.28);
    border-radius:13px;
    background:#f7fbfd;
    padding:14px;
}

#registros-filtrados .cadastro-status-table tbody tr.registro-detalhes-linha.status-retirado td{
    border-left-color:#16A34A;
}

#registros-filtrados .cadastro-status-table tbody tr.registro-detalhes-linha.status-nao-retirado td{
    border-left-color:#D97706;
}

#registros-filtrados .registro-detalhes-card{
    display:grid;
    grid-template-columns:minmax(130px, .8fr) minmax(135px, .8fr) minmax(145px, .9fr) minmax(220px, 1.6fr);
    gap:12px;
    align-items:end;
}

#registros-filtrados .registro-detalhes-card label{
    display:block;
    margin-bottom:6px;
    color:#6b7280;
    font-size:12px;
    font-weight:900;
}

#registros-filtrados .registro-detalhes-card input{
    width:100%;
    padding:8px 9px;
    border-radius:11px;
    font-size:14px;
}

#registros-filtrados .registro-detalhes-observacao{
    grid-column:auto;
}

@media screen and (max-width:1100px){
    #registros-filtrados .registro-detalhes-card{
        grid-template-columns:1fr 1fr;
    }
    #registros-filtrados .registro-detalhes-observacao{
        grid-column:span 2;
    }
}

@media screen and (max-width:700px){
    #registros-filtrados .registro-detalhes-card{
        grid-template-columns:1fr;
    }
    #registros-filtrados .registro-detalhes-observacao{
        grid-column:span 1;
    }
}


/* ===== Ajuste v166: botões da Lixeira com tamanho padronizado ===== */
#registros-lixeira .bulk-actions button,
#registros-lixeira .bulk-actions .button{
    min-width: 218px;
    justify-content: center;
    white-space: nowrap;
}

#registros-lixeira .actions{
    gap:6px;
    align-items:stretch;
}

#registros-lixeira .actions form{
    margin:0;
}

#registros-lixeira .actions button,
#registros-lixeira .actions .button{
    width:128px;
    min-width:128px;
    min-height:38px;
    padding:8px 12px;
    border-radius:11px;
    font-size:14px;
    justify-content:center;
    white-space:nowrap;
}



/* ===== Ajuste v169: Lixeira - ações administrativas e cabeçalhos ===== */
#registros-lixeira .lixeira-admin-table th{
    text-align:center;
    vertical-align:middle;
}

#registros-lixeira .lixeira-admin-table th:last-child{
    text-align:right;
    padding-right:22px;
}

#registros-lixeira .lixeira-admin-table td.actions{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    justify-content:center;
    gap:6px;
    padding-right:12px;
    min-width:150px;
}

#registros-lixeira .lixeira-admin-table td.actions form{
    margin:0;
    display:flex;
    justify-content:flex-end;
    width:100%;
}

#registros-lixeira .lixeira-admin-table td.actions button,
#registros-lixeira .lixeira-admin-table td.actions .button{
    width:128px;
    min-width:128px;
}


/* ===== Ajuste v170: Cadastro - cabeçalhos da listagem centralizados ===== */
/* Centraliza os cabeçalhos Sel., Nº Controle, Data Recebimento, Paciente, Descrição,
   Data de Retirada, Responsável pela Retirada, Status, Detalhes e Ações. */
#registros-filtrados .cadastro-status-table.tabela-registros-compacta thead th{
    text-align:center;
    vertical-align:middle;
}

/* Centraliza a posição dos itens da linha, sem centralizar o texto digitado nos campos editáveis. */
#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody td{
    text-align:center;
    vertical-align:middle;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody td input:not([type="checkbox"]){
    text-align:left;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta .controle-badge,
#registros-filtrados .cadastro-status-table.tabela-registros-compacta .badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-left:auto;
    margin-right:auto;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta .select-col,
#registros-filtrados .cadastro-status-table.tabela-registros-compacta .celula-data-retirada,
#registros-filtrados .cadastro-status-table.tabela-registros-compacta .actions{
    text-align:center;
}

/* Cadastro: labels do formulário Novo cadastro centralizados, sem alterar campos, banco ou regras. */
#form-novo-cadastro label{
    display:block;
    text-align:center;
}


/* ===== Ajuste v178: centralizações otimizadas sem regras pesadas =====
   Substitui os blocos v171-v177 por seletores específicos para reduzir recálculo de CSS. */

/* Cabeçalhos de tabelas centralizados no sistema. */
.table-wrap table thead th,
.cadastro-status-table thead th,
.lixeira-admin-table thead th,
.backup-table thead th,
.backup-schedule-log-table thead th{
    text-align:center !important;
    vertical-align:middle;
}

/* Cadastro > Registros: mantém cabeçalhos e itens técnicos centralizados, sem centralizar texto digitado. */
#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody td{
    text-align:center;
    vertical-align:middle;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody td input:not([type="checkbox"]):not([readonly]){
    text-align:left;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody td input[readonly]{
    text-align:center !important;
}

/* Novo cadastro: centraliza somente os campos editáveis solicitados. */
#form-novo-cadastro input[name="data_rec"],
#form-novo-cadastro input[name="cpf"],
#form-novo-cadastro input[name="data_nascimento"],
#form-novo-cadastro input[name="telefone"]{
    text-align:center !important;
}

#form-novo-cadastro input[name="paciente"],
#form-novo-cadastro input[name="descricao"],
#form-novo-cadastro input[name="observacoes"]{
    text-align:left !important;
}

/* Filtros avançados: todos os campos editáveis centralizados, inclusive Pesquisar. */
.card-filtros-avancados form input,
.card-filtros-avancados form select{
    text-align:center !important;
    text-align-last:center;
}

/* Campos não editáveis dentro de formulários: centralizados, exceto login/redefinição. */
body:not(.login-page) form input[readonly]:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
body:not(.login-page) form input[disabled]:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
body:not(.login-page) form textarea[readonly],
body:not(.login-page) form textarea[disabled],
body:not(.login-page) form select[disabled]{
    text-align:center !important;
}

/* Login e redefinição/recuperação de senha continuam normais. */
.login-page form input,
.login-page form textarea,
.login-page form select,
.login-page form label,
.login-page .login-form label,
.login-page .senha-header label,
.login-page .show-password,
.login-page .recovery-hint,
.login-page .login-links{
    text-align:left !important;
}

.login-page .show-password{
    justify-content:flex-start !important;
}

/* Configurações do Sistema: permanece sem centralização geral. */
.card-configuracoes-sistema-antigo h2,
.card-configuracoes-sistema-antigo h3,
.card-configuracoes-sistema-antigo p,
.card-configuracoes-sistema-antigo .hint,
.card-configuracoes-sistema-antigo .muted,
.card-configuracoes-sistema-antigo label,
.card-configuracoes-sistema-antigo .config-section-title,
.card-configuracoes-sistema-antigo .form-grid > div > label,
.card-configuracoes-sistema-antigo .form-group > label{
    text-align:left !important;
}

.card-configuracoes-sistema-antigo .config-section-title{
    justify-content:flex-start !important;
}

.card-configuracoes-sistema-antigo input,
.card-configuracoes-sistema-antigo select,
.card-configuracoes-sistema-antigo textarea{
    text-align:left !important;
}

/* Histórico de alterações: conteúdo da tabela centralizado. */
.card-historico-alteracoes table thead th,
.card-historico-alteracoes table tbody td{
    text-align:center !important;
    vertical-align:middle !important;
}

/* Usuários cadastrados: conteúdo da tabela, ações e formulário de edição centralizados. */
.card-usuarios-cadastrados > .table-wrap > table > tbody > tr:not(.editor-usuario-row) > td{
    text-align:center !important;
    vertical-align:middle !important;
}

.card-usuarios-cadastrados .backup-row-actions{
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    gap:8px !important;
    flex-wrap:wrap !important;
    text-align:center !important;
}

.card-usuarios-cadastrados .backup-row-actions form{
    display:flex !important;
    justify-content:center !important;
    margin:0 !important;
}

.card-usuarios-cadastrados .backup-row-actions .mini-action,
.card-usuarios-cadastrados .backup-row-actions .mini-danger,
.card-usuarios-cadastrados .backup-row-actions .badge-soft,
.card-usuarios-cadastrados .backup-row-actions button{
    justify-content:center !important;
    text-align:center !important;
}

.card-usuarios-cadastrados .usuario-editor-box .form-grid > div > label,
.card-usuarios-cadastrados .usuario-editor-box .form-grid input,
.card-usuarios-cadastrados .usuario-editor-box .form-grid select{
    text-align:center !important;
}

.card-usuarios-cadastrados .usuario-editor-box .form-actions{
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    gap:10px !important;
    flex-wrap:wrap !important;
    text-align:center !important;
}

.card-usuarios-cadastrados .usuario-editor-box .form-actions button{
    justify-content:center !important;
    text-align:center !important;
}

/* Novo usuário: conteúdo dos campos centralizado. */
.card-novo-usuario .form-grid > div > label,
.card-novo-usuario .form-grid input,
.card-novo-usuario .form-grid select{
    text-align:center !important;
}

.card-novo-usuario .align-end{
    display:flex !important;
    align-items:end !important;
    justify-content:center !important;
}

/* Permissões de usuários: alinhado à esquerda, sem regra pesada com asterisco. */
.card-usuarios-cadastrados .permissoes-panel{
    text-align:left !important;
}

.card-usuarios-cadastrados .permissoes-panel-head,
.card-usuarios-cadastrados .permissoes-panel-head h3,
.card-usuarios-cadastrados .permissoes-panel-head p,
.card-usuarios-cadastrados .section-kicker,
.card-usuarios-cadastrados .permissao-grupo summary,
.card-usuarios-cadastrados .permissao-grupo-title,
.card-usuarios-cadastrados .permissao-grupo summary small,
.card-usuarios-cadastrados .check-card,
.card-usuarios-cadastrados .check-card span,
.card-usuarios-cadastrados .permissoes-toolbar,
.card-usuarios-cadastrados .permissoes-toolbar button{
    text-align:left !important;
}

.card-usuarios-cadastrados .permissoes-counter{
    text-align:center !important;
    justify-content:center !important;
}

.card-usuarios-cadastrados .permissao-resumo{
    align-items:center !important;
    text-align:center !important;
}

.card-usuarios-cadastrados .permissao-resumo-chip,
.card-usuarios-cadastrados .permissao-resumo small{
    text-align:center !important;
}

/* Minha conta: centraliza dados digitados nos campos editáveis. */
.card-minha-conta form input,
.card-minha-conta form select,
.card-minha-conta form textarea{
    text-align:center !important;
}

/* Dashboard/gráficos: centraliza nomes, legendas e valores sem centralizar títulos dos cards. */
.kpi span,
.kpi strong,
.mini-metrics span,
.mini-metrics strong,
.stack-label,
.stack-label strong,
.stack-label span,
.rank-row > div,
.rank-row strong,
.rank-row span,
.bar-row span,
.bar-row strong,
.info-card h3,
.info-card p{
    text-align:center;
}

.kpi strong{
    display:block;
}

.stack-label{
    align-items:center;
}

.bar-row span,
.bar-row strong{
    justify-self:center;
}

/* Lixeira: cabeçalho de ações e botões alinhados corretamente. */
#registros-lixeira .lixeira-admin-table th:last-child{
    text-align:center !important;
    padding-right:10px;
}

#registros-lixeira .lixeira-admin-table td.actions{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    justify-content:center;
    gap:6px;
    padding-right:6px;
    min-width:146px;
}

#registros-lixeira .lixeira-admin-table td.actions form{
    margin:0;
    display:flex;
    justify-content:flex-end;
    width:100%;
}

/* Backups: registros do agendamento centralizados. */
.card-registros-agendamento .backup-schedule-log-table th,
.card-registros-agendamento .backup-schedule-log-table td{
    text-align:center !important;
    vertical-align:middle !important;
}

/* Backups disponíveis: tabela e ações centralizadas. */
.card-backups-disponiveis .backup-table th,
.card-backups-disponiveis .backup-table td{
    text-align:center !important;
    vertical-align:middle !important;
}

.card-backups-disponiveis .backup-table .check-col input{
    margin-left:auto !important;
    margin-right:auto !important;
}

.card-backups-disponiveis .backup-row-actions{
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    gap:8px !important;
    flex-wrap:wrap !important;
    text-align:center !important;
}

.card-backups-disponiveis .backup-row-actions form,
.card-backups-disponiveis .backup-row-actions .inline-form{
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    margin:0 !important;
}

.card-backups-disponiveis .backup-row-actions .mini-action,
.card-backups-disponiveis .backup-row-actions .mini-danger,
.card-backups-disponiveis .backup-row-actions button,
.card-backups-disponiveis .backup-row-actions a{
    justify-content:center !important;
    text-align:center !important;
}

/* Backup automático: campos do formulário centralizados; blocos abaixo voltam ao padrão anterior. */
.card-backup-agendamento .form-grid > div > label,
.card-backup-agendamento .form-grid input,
.card-backup-agendamento .form-grid select{
    text-align:center !important;
    text-align-last:center;
}

.card-backup-agendamento .align-end{
    display:flex !important;
    justify-content:center !important;
    align-items:end !important;
}

.card-backup-agendamento .backup-info-box,
.card-backup-agendamento .backup-info-box span,
.card-backup-agendamento .backup-info-box strong,
.card-backup-agendamento .backup-info-box small{
    text-align:left !important;
}

.card-backup-agendamento .backup-schedule-actions{
    display:flex !important;
    justify-content:flex-start !important;
    align-items:center !important;
    gap:10px !important;
    flex-wrap:wrap !important;
    text-align:left !important;
}

.card-backup-agendamento .backup-schedule-actions form{
    margin:0 !important;
    display:block !important;
}

/* Agendador de Tarefas do Windows volta ao padrão antigo. */
.card-backup-agendamento .backup-windows-task-box{
    display:flex !important;
    justify-content:space-between !important;
    align-items:flex-start !important;
    gap:16px !important;
    text-align:left !important;
}

.card-backup-agendamento .backup-windows-task-box h3,
.card-backup-agendamento .backup-windows-task-box p,
.card-backup-agendamento .backup-windows-task-box small{
    text-align:left !important;
}

.card-backup-agendamento .backup-windows-task-actions{
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
    align-items:stretch !important;
    gap:10px !important;
    min-width:260px !important;
    text-align:left !important;
}

.card-backup-agendamento .backup-windows-task-actions form,
.card-backup-agendamento .backup-windows-task-actions button{
    width:100% !important;
}

/* Gerenciamento da base de dados volta ao padrão antigo. */
.card-gerenciamento-base,
.card-gerenciamento-base h2,
.card-gerenciamento-base .danger-text,
.card-gerenciamento-base .danger-box,
.card-gerenciamento-base .danger-box h3,
.card-gerenciamento-base .danger-box p,
.card-gerenciamento-base .danger-box label{
    text-align:left !important;
}

.card-gerenciamento-base .base-actions-grid{
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0,1fr)) !important;
    gap:16px !important;
    margin-top:14px !important;
}

.card-gerenciamento-base .danger-box form{
    display:block !important;
    text-align:left !important;
}

.card-gerenciamento-base .danger-box h3{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:8px !important;
}

@media screen and (max-width: 900px){
    .card-gerenciamento-base .base-actions-grid{
        grid-template-columns:1fr !important;
    }
}

@media screen and (max-width:760px){
    .card-backup-agendamento .backup-windows-task-box{
        flex-direction:column !important;
    }
    .card-backup-agendamento .backup-windows-task-actions{
        width:100% !important;
        min-width:0 !important;
    }
}


/* ===== v180: correção direta dos alinhamentos solicitados ===== */
/* Configurações de E-mail e Enviar e-mail de teste: submenus/rótulos e campos centralizados. */
html body .card-config-email form.form-grid > div > label,
html body .card-email-teste form.form-grid > div > label,
html body .card-config-email form.form-grid input:not([type="hidden"]),
html body .card-config-email form.form-grid select,
html body .card-email-teste form.form-grid input:not([type="hidden"]),
html body .card-email-teste form.form-grid select{
    display:block !important;
    width:100% !important;
    text-align:center !important;
    text-align-last:center !important;
}

html body .card-config-email form.form-grid .align-end,
html body .card-email-teste form.form-grid .align-end{
    display:flex !important;
    justify-content:center !important;
    align-items:end !important;
}

/* Minha conta: submenus/rótulos e campos centralizados. */
html body .card-minha-conta form.form-grid > div > label,
html body .card-minha-conta form.form-grid input:not([type="hidden"]),
html body .card-minha-conta form.form-grid select,
html body .card-minha-conta form.form-grid textarea{
    display:block !important;
    width:100% !important;
    text-align:center !important;
    text-align-last:center !important;
}

html body .card-minha-conta form.form-grid .align-end{
    display:flex !important;
    justify-content:center !important;
    align-items:end !important;
}

/* Filtros avançados: submenus/rótulos e campos centralizados, inclusive Pesquisar e Status. */
html body .card-filtros-avancados form.form-grid > div > label,
html body .card-filtros-avancados form.form-grid input:not([type="hidden"]),
html body .card-filtros-avancados form.form-grid select{
    display:block !important;
    width:100% !important;
    text-align:center !important;
    text-align-last:center !important;
}

html body .card-filtros-avancados form.form-grid .filtros-acoes{
    display:flex !important;
    justify-content:center !important;
    align-items:end !important;
    gap:10px !important;
}

/* Lista de Registros: centraliza somente CPF, Data Recebimento, Data de Retirada e Telefone. */
html body #registros-filtrados table.cadastro-status-table.tabela-registros-compacta tbody tr td input.campo-centralizado-solicitado:not([type="checkbox"]):not([type="hidden"]),
html body #registros-filtrados table.cadastro-status-table.tabela-registros-compacta tbody tr td input.campo-centralizado-solicitado[readonly]{
    text-align:center !important;
    text-align-last:center !important;
}

/* Diagnóstico do Sistema: afasta o texto indicado do item acima. */
html body .card-diagnostico-sistema .config-section-title{
    margin-bottom:12px !important;
}

html body .card-diagnostico-sistema p.hint{
    display:block !important;
    margin-top:10px !important;
    margin-bottom:14px !important;
    line-height:1.55 !important;
    text-align:center !important;
}

/* ===== v181: centralizações solicitadas no Dashboard, Alertas rápidos e listas recentes ===== */
/* Alertas rápidos: centraliza número e texto dos dois cards solicitados. */
html body .alerta-painel-operacional .alert-grid{
    align-items:stretch !important;
}

html body .alerta-painel-operacional .alert-mini,
html body .alerta-painel-operacional .alert-mini strong,
html body .alerta-painel-operacional .alert-mini span{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    width:100% !important;
}

/* Leitura geral: centraliza a mensagem e os campos abaixo dela. */
html body .insight-card .big-insight,
html body .insight-card .mini-metrics,
html body .insight-card .mini-metrics div,
html body .insight-card .mini-metrics span,
html body .insight-card .mini-metrics strong{
    text-align:center !important;
    justify-content:center !important;
    align-items:center !important;
}

/* Tabelas do Dashboard citadas: centraliza cabeçalhos, dados, badges e status. */
html body .card-dashboard-pendencias-antigas table thead th,
html body .card-dashboard-pendencias-antigas table tbody td,
html body .card-dashboard-ultimas-retiradas table thead th,
html body .card-dashboard-ultimas-retiradas table tbody td,
html body .card-dashboard-registros-recentes table thead th,
html body .card-dashboard-registros-recentes table tbody td{
    text-align:center !important;
    vertical-align:middle !important;
}

html body .card-dashboard-pendencias-antigas .controle-badge,
html body .card-dashboard-pendencias-antigas .badge,
html body .card-dashboard-ultimas-retiradas .controle-badge,
html body .card-dashboard-ultimas-retiradas .badge,
html body .card-dashboard-registros-recentes .controle-badge,
html body .card-dashboard-registros-recentes .badge{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
}

/* ===== v183: Importar Excel ou CSV - centralização solicitada ===== */
html body .import-form-modern .import-select-center,
html body .import-form-modern .import-select-center label,
html body .import-form-modern .import-select-center select{
    display:block !important;
    width:100% !important;
    text-align:center !important;
    text-align-last:center !important;
}

html body .import-form-modern .import-select-center select option{
    text-align:center !important;
}

/* ===== v185: Importação - cards dos passos alinhados à esquerda ===== */
html body .import-info-grid .info-card,
html body .import-info-grid .info-card h3,
html body .import-info-grid .info-card p{
    text-align:left !important;
}

html body .import-info-grid .info-card h3,
html body .import-info-grid .info-card p{
    width:100% !important;
}


/* ===== v186: Filtros avançados - texto digitado em Pesquisar à esquerda ===== */
html body .card-filtros-avancados form.form-grid input[name="busca"],
html body .card-filtros-avancados form.form-grid input[name="busca"]::placeholder{
    text-align:left !important;
    text-align-last:auto !important;
}

/* ===== v192 - Ajuste pontual: campo de seleção Complexidade de senha =====
   Corrige o alinhamento apenas deste select em Configurações do Sistema. */
.card-configuracoes-sistema-antigo .campo-complexidade-senha select[name="senha_complexidade_ativa"]{
    text-align:center !important;
    text-align-last:center !important;
}

.card-configuracoes-sistema-antigo .campo-complexidade-senha select[name="senha_complexidade_ativa"] option{
    text-align:center;
}

/* ===== v193 - Configurações do Sistema: alinhamento vertical dos campos =====
   Corrige o desalinhamento entre os campos da mesma linha sem alterar regras do sistema. */
html body .card-configuracoes-sistema-antigo form.config-form .form-grid,
html body .card-configuracoes-sistema-antigo form.config-form .config-operacional-grid,
html body .card-configuracoes-sistema-antigo form.config-form .config-importacao-grid{
    align-items:start !important;
}

/* Afasta o primeiro campo da seção Configurações de Importação do bloco acima. */
html body .card-configuracoes-sistema-antigo form.config-form .config-importacao-grid{
    margin-top:14px !important;
}

/* Garante o alinhamento do texto do select Complexidade de senha na tela principal de Configurações. */
html body .card-configuracoes-sistema-antigo select[name="senha_complexidade_ativa"]{
    text-align:center !important;
    text-align-last:center !important;
}

html body .card-configuracoes-sistema-antigo select[name="senha_complexidade_ativa"] option{
    text-align:center !important;
}

/* ===== v194 - Configurações do Sistema: espaçamento uniforme após títulos de seção =====
   Aplica a mesma distância usada em Configurações de Importação também nas seções Gerais e Operacionais. */
html body .card-configuracoes-sistema-antigo form.config-form > .config-section-title + .form-grid{
    margin-top:14px !important;
}

html body .card-configuracoes-sistema-antigo form.config-form > .config-section-title + .form-grid .form-group{
    align-self:start !important;
}

/* ===== v195 - Estabilização segura das centralizações visuais =====
   Camada final e conservadora para evitar que blocos antigos do CSS sobrescrevam
   centralizações já aprovadas. Não altera banco, login, e-mail, backup, rotas,
   permissões ou regras do sistema. */

/* Alertas rápidos: números e textos centralizados dentro dos cards. */
html body .alerta-painel-operacional .alert-grid{
    align-items:stretch !important;
}

html body .alerta-painel-operacional .alert-mini,
html body .alerta-painel-operacional .alert-mini strong,
html body .alerta-painel-operacional .alert-mini span{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    width:100% !important;
}

/* Cadastro > Filtros avançados: rótulos, campos, selects e botões centralizados. */
html body .card-filtros-avancados form.form-grid > div > label,
html body .card-filtros-avancados form.form-grid input:not([type="hidden"]),
html body .card-filtros-avancados form.form-grid select,
html body .card-filtros-avancados form.form-grid select option{
    display:block !important;
    width:100% !important;
    text-align:center !important;
    text-align-last:center !important;
}

html body .card-filtros-avancados form.form-grid input[name="busca"],
html body .card-filtros-avancados form.form-grid input[name="busca"]::placeholder{
    text-align:center !important;
    text-align-last:center !important;
}

html body .card-filtros-avancados form.form-grid .filtros-acoes{
    display:flex !important;
    align-items:end !important;
    justify-content:center !important;
    gap:10px !important;
    text-align:center !important;
}

html body .card-filtros-avancados form.form-grid .filtros-acoes button,
html body .card-filtros-avancados form.form-grid .filtros-acoes .button{
    justify-content:center !important;
    text-align:center !important;
}

/* Lista de Registros: centraliza somente campos editáveis solicitados, preservando paciente/descrição à esquerda. */
html body #registros-filtrados table.cadastro-status-table.tabela-registros-compacta tbody tr td input.campo-centralizado-solicitado:not([type="checkbox"]):not([type="hidden"]),
html body #registros-filtrados table.cadastro-status-table.tabela-registros-compacta tbody tr td input.campo-centralizado-solicitado[readonly]{
    text-align:center !important;
    text-align-last:center !important;
}

html body #registros-filtrados table.cadastro-status-table.tabela-registros-compacta tbody tr td input.campo-paciente,
html body #registros-filtrados table.cadastro-status-table.tabela-registros-compacta tbody tr td input.campo-descricao,
html body #registros-filtrados table.cadastro-status-table.tabela-registros-compacta tbody tr td input[name="resp_ret"],
html body #registros-filtrados table.cadastro-status-table.tabela-registros-compacta tbody tr td input[name="observacoes"]{
    text-align:left !important;
    text-align-last:auto !important;
}

/* E-mail do sistema: servidor SMTP, porta, login, senha, remetente, TLS e teste centralizados. */
html body .card-config-email form.form-grid > div > label,
html body .card-email-teste form.form-grid > div > label,
html body .card-config-email form.form-grid input:not([type="hidden"]),
html body .card-config-email form.form-grid select,
html body .card-config-email form.form-grid select option,
html body .card-email-teste form.form-grid input:not([type="hidden"]),
html body .card-email-teste form.form-grid select,
html body .card-email-teste form.form-grid select option{
    display:block !important;
    width:100% !important;
    text-align:center !important;
    text-align-last:center !important;
}

html body .card-config-email form.form-grid .align-end,
html body .card-email-teste form.form-grid .align-end{
    display:flex !important;
    align-items:end !important;
    justify-content:center !important;
    text-align:center !important;
}

html body .card-config-email form.form-grid button,
html body .card-email-teste form.form-grid button{
    justify-content:center !important;
    text-align:center !important;
}

/* Minha conta: rótulos, campos e botão centralizados. */
html body .card-minha-conta form.form-grid > div > label,
html body .card-minha-conta form.form-grid input:not([type="hidden"]),
html body .card-minha-conta form.form-grid select,
html body .card-minha-conta form.form-grid textarea{
    display:block !important;
    width:100% !important;
    text-align:center !important;
    text-align-last:center !important;
}

html body .card-minha-conta form.form-grid .align-end{
    display:flex !important;
    align-items:end !important;
    justify-content:center !important;
    text-align:center !important;
}

html body .card-minha-conta form.form-grid button{
    justify-content:center !important;
    text-align:center !important;
}

/* Dashboard: mantém indicadores, valores, listas operacionais e tabelas centralizados. */
html body .kpi,
html body .kpi span,
html body .kpi strong,
html body .secondary-kpis .kpi,
html body .secondary-kpis .kpi span,
html body .secondary-kpis .kpi strong,
html body .insight-card .big-insight,
html body .insight-card .mini-metrics,
html body .insight-card .mini-metrics div,
html body .insight-card .mini-metrics span,
html body .insight-card .mini-metrics strong,
html body .stack-label,
html body .stack-label strong,
html body .stack-label span,
html body .rank-row > div,
html body .rank-row strong,
html body .rank-row span,
html body .bar-row span,
html body .bar-row strong{
    text-align:center !important;
    justify-content:center !important;
    align-items:center !important;
}

html body .kpi strong{
    display:block !important;
}

html body .card-dashboard-pendencias-antigas table thead th,
html body .card-dashboard-pendencias-antigas table tbody td,
html body .card-dashboard-ultimas-retiradas table thead th,
html body .card-dashboard-ultimas-retiradas table tbody td,
html body .card-dashboard-registros-recentes table thead th,
html body .card-dashboard-registros-recentes table tbody td{
    text-align:center !important;
    vertical-align:middle !important;
}

html body .card-dashboard-pendencias-antigas .controle-badge,
html body .card-dashboard-pendencias-antigas .badge,
html body .card-dashboard-ultimas-retiradas .controle-badge,
html body .card-dashboard-ultimas-retiradas .badge,
html body .card-dashboard-registros-recentes .controle-badge,
html body .card-dashboard-registros-recentes .badge{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
}

/* Mantém Configurações do Sistema no padrão aprovado: geral à esquerda, apenas campos pontuais centralizados. */
html body .card-configuracoes-sistema-antigo h2,
html body .card-configuracoes-sistema-antigo h3,
html body .card-configuracoes-sistema-antigo p,
html body .card-configuracoes-sistema-antigo .hint,
html body .card-configuracoes-sistema-antigo .muted,
html body .card-configuracoes-sistema-antigo label,
html body .card-configuracoes-sistema-antigo .config-section-title,
html body .card-configuracoes-sistema-antigo .form-grid > div > label,
html body .card-configuracoes-sistema-antigo .form-group > label{
    text-align:left !important;
}

html body .card-configuracoes-sistema-antigo .config-section-title{
    justify-content:flex-start !important;
}

html body .card-configuracoes-sistema-antigo form.config-form > .config-section-title + .form-grid{
    margin-top:14px !important;
}

html body .card-configuracoes-sistema-antigo select[name="senha_complexidade_ativa"],
html body .card-configuracoes-sistema-antigo select[name="senha_complexidade_ativa"] option{
    text-align:center !important;
    text-align-last:center !important;
}


/* =========================================================
   v196 - Restauração manual de backup externo
   Permite escolher arquivo .db em pasta local, HD externo ou pendrive
   sem remover as rotinas existentes de backup automático/agendado/lista.
   ========================================================= */
.card-restaurar-backup-externo{
    text-align:center;
}

.card-restaurar-backup-externo .muted{
    max-width:980px;
    margin-left:auto;
    margin-right:auto;
}

.backup-externo-form{
    align-items:end;
    margin-top:18px;
}

.backup-externo-campo,
.backup-externo-acao{
    text-align:center;
}

.backup-externo-campo label,
.backup-externo-campo small{
    display:block;
    text-align:center;
}

.backup-file-picker{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    width:100%;
    min-height:58px;
    padding:10px;
    border:1px solid rgba(15, 23, 42, .12);
    border-radius:18px;
    background:linear-gradient(180deg, #ffffff 0%, #f7fbfd 100%);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.85), 0 10px 24px rgba(15, 23, 42, .06);
}

.backup-file-picker input[type="file"]{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0, 0, 0, 0);
    white-space:nowrap;
    border:0;
}

.backup-file-picker-button{
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:44px;
    padding:0 18px;
    border-radius:14px;
    border:1px solid rgba(15, 159, 154, .22);
    background:linear-gradient(180deg, #0f9f9a 0%, #087f82 100%);
    color:#fff;
    font-weight:800;
    line-height:1;
    cursor:pointer;
    box-shadow:0 10px 20px rgba(15, 159, 154, .20);
    transition:transform .15s ease, box-shadow .15s ease, filter .15s ease;
}

.backup-file-picker-button:hover{
    transform:translateY(-1px);
    filter:brightness(1.03);
    box-shadow:0 14px 24px rgba(15, 159, 154, .24);
}

.backup-file-picker input[type="file"]:focus + .backup-file-picker-button{
    outline:3px solid rgba(15, 159, 154, .18);
    outline-offset:2px;
}

.backup-file-picker-name{
    flex:1;
    min-width:180px;
    max-width:100%;
    padding:12px 14px;
    border-radius:14px;
    background:#eef8f7;
    color:#6b7280;
    font-weight:700;
    text-align:center;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.backup-file-picker-name.selecionado{
    background:#ecfdf5;
    color:#047857;
}

.backup-externo-acao button{
    width:100%;
    min-height:46px;
    justify-content:center;
}

@media screen and (max-width: 820px){
    .backup-externo-form{
        grid-template-columns:1fr !important;
    }
}


/* =========================================================
   v197 - Estética do seletor de arquivo do backup externo
   Substitui visualmente o botão nativo por um botão padronizado,
   mantendo o input file real e o funcionamento original do navegador.
   ========================================================= */
@media screen and (max-width: 680px){
    .backup-file-picker{
        flex-direction:column;
        align-items:stretch;
    }

    .backup-file-picker-button,
    .backup-file-picker-name{
        width:100%;
    }
}

/* v199 - Pesquisa e realce na aba Usuários */
.usuarios-search-panel{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:16px;
    margin:14px 0 18px;
    padding:14px;
    border:1px solid rgba(148,163,184,.32);
    border-radius:16px;
    background:linear-gradient(135deg, rgba(248,250,252,.98), rgba(241,245,249,.92));
}

.usuarios-search-field{
    flex:1 1 360px;
    min-width:240px;
}

.usuarios-search-field label{
    display:block;
    margin-bottom:6px;
    font-weight:800;
    color:#3b414a;
}

.usuarios-search-control{
    position:relative;
    display:flex;
    align-items:center;
}

.usuarios-search-control i{
    position:absolute;
    left:14px;
    color:#6b7280;
    pointer-events:none;
}

.usuarios-search-control input{
    width:100%;
    padding-left:42px !important;
    text-align:left !important;
}

.usuarios-search-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    flex-wrap:wrap;
}

.usuarios-search-status{
    font-size:.9rem;
    font-weight:700;
    color:#6b7280;
    white-space:nowrap;
}

tr.usuario-lista-row.usuario-pesquisa-realce > td{
    background:rgba(254,243,199,.74) !important;
    transition:background .2s ease, box-shadow .2s ease;
}

tr.usuario-lista-row.usuario-pesquisa-realce{
    box-shadow:inset 4px 0 0 #f59e0b;
}

.usuario-celula-destaque{
    background:rgba(253,230,138,.95) !important;
    box-shadow:inset 0 -3px 0 rgba(245,158,11,.55);
    font-weight:800;
}

tr.usuario-pesquisa-oculto{
    display:none !important;
}

@media screen and (max-width: 760px){
    .usuarios-search-panel{
        align-items:stretch;
        flex-direction:column;
    }

    .usuarios-search-actions{
        justify-content:flex-start;
    }

    .usuarios-search-status{
        width:100%;
        white-space:normal;
    }
}

/* v200 - Ajuste de alinhamento e tamanho dos botões da pesquisa de usuários */
.card-usuarios-cadastrados .usuarios-search-panel{
    align-items:flex-end;
}

.card-usuarios-cadastrados .usuarios-search-control input{
    min-height:42px;
    box-sizing:border-box;
}

.card-usuarios-cadastrados .usuarios-search-actions{
    align-self:flex-end;
    min-height:42px;
    align-items:center;
    gap:10px;
}

.card-usuarios-cadastrados .usuarios-search-actions .mini-action{
    width:112px;
    min-width:112px;
    height:42px;
    padding:0 14px;
    box-sizing:border-box;
    line-height:1;
    white-space:nowrap;
}

.card-usuarios-cadastrados .usuarios-search-actions .mini-action i{
    line-height:1;
}

.card-usuarios-cadastrados .usuarios-search-status{
    display:inline-flex;
    align-items:center;
    min-height:42px;
}

@media screen and (max-width: 760px){
    .card-usuarios-cadastrados .usuarios-search-actions{
        width:100%;
        align-self:stretch;
    }

    .card-usuarios-cadastrados .usuarios-search-actions .mini-action{
        flex:1 1 140px;
        width:auto;
        min-width:140px;
    }

    .card-usuarios-cadastrados .usuarios-search-status{
        min-height:auto;
    }
}
/* v201 - Remove mensagem textual da pesquisa de usuários */
.card-usuarios-cadastrados .usuarios-search-status{
    display:none !important;
}

/* ===== Manutenção do Banco SQLite ===== */
.maintenance-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
    margin-bottom:18px;
}

.maintenance-table{
    width:100%;
    border-collapse:collapse;
    overflow:hidden;
    border-radius:14px;
}

.maintenance-table th,
.maintenance-table td{
    padding:10px 12px;
    border-bottom:1px solid #dce8ef;
    text-align:left;
    vertical-align:top;
}

.maintenance-table th{
    width:42%;
    color:#3b414a;
    background:#f7fbfd;
    font-weight:900;
}

.maintenance-table td{
    color:#2f3742;
    font-weight:700;
    word-break:break-word;
}

.maintenance-actions-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.maintenance-action-card{
    border:1px solid #e1f5f3;
    background:#ffffff;
    border-radius:18px;
    padding:16px;
    box-shadow:0 10px 26px rgba(15,23,42,.06);
}

.maintenance-action-card h3{
    margin:0 0 8px;
    color:#12366f;
    font-size:16px;
    display:flex;
    gap:8px;
    align-items:center;
}

.maintenance-action-card p{
    margin:0 0 14px;
    color:#6b7280;
    font-weight:700;
    line-height:1.45;
}

.danger-zone-light{
    border-color:#fecaca;
    background:#fff7f7;
}

.manutencao-alerta{
    border-left:5px solid #0f9f9a;
}

@media screen and (max-width:900px){
    .maintenance-grid,
    .maintenance-actions-grid{
        grid-template-columns:1fr;
    }
}


/* ===== v206 - Melhor espaçamento e retorno visual na Manutenção do Banco ===== */
.hero-compact.page-identificacao{
    margin-bottom:22px;
}

.manutencao-alerta{
    margin-bottom:24px;
}

.manutencao-alerta .config-section-title,
.manutencao-resultado .config-section-title{
    margin-bottom:14px;
}

.maintenance-info-box{
    display:grid;
    gap:10px;
    margin-top:4px;
    padding:14px 16px;
    border-radius:16px;
    background:#f7fbfd;
    border:1px solid #dce8ef;
}

.maintenance-info-box p{
    margin:0;
    color:#6b7280;
    font-weight:750;
    line-height:1.55;
}

.manutencao-resultado{
    margin-bottom:18px;
    border-left:5px solid #16a34a;
    background:#f0fdf4;
}

.manutencao-resultado p{
    margin:0 0 12px;
    color:#14532d;
    font-weight:850;
    line-height:1.5;
}

.wal-status-ok,
.action-status-ok,
.action-status-warn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin:0 0 12px;
    padding:9px 12px;
    border-radius:999px;
    font-weight:950;
    font-size:13px;
}

.wal-status-ok,
.action-status-ok{
    background:#dcfce7;
    color:#166534;
    border:1px solid #86efac;
}

.action-status-warn{
    background:#fff7ed;
    color:#9a3412;
    border:1px solid #fed7aa;
}

.journal-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:64px;
    padding:6px 10px;
    border-radius:999px;
    text-transform:uppercase;
    font-size:12px;
    font-weight:950;
    letter-spacing:.03em;
}

.journal-badge-ok{
    color:#166534;
    background:#dcfce7;
    border:1px solid #86efac;
}

.journal-badge-warn{
    color:#92400e;
    background:#fef3c7;
    border:1px solid #fcd34d;
}

.maintenance-action-card .secondary-button,
.maintenance-action-card .primary-button,
.maintenance-action-card .danger-button{
    margin-top:2px;
}


/* ===== v207 - Ajuste Manutenção do Banco: espaçamento e desativação WAL ===== */
html body .card-configuracoes-sistema-antigo .manutencao-banco-hint{
    margin-top:10px !important;
    margin-bottom:18px !important;
    line-height:1.55 !important;
    text-align:center !important;
}

.maintenance-action-card{
    min-height:168px;
}

.maintenance-action-card p{
    margin-bottom:16px;
}


/* ===== v208 - Espaçamento entre Voltar e Resultado na Manutenção do Banco ===== */
.manutencao-page-header{
    margin-bottom:30px !important;
}

.manutencao-page-header .header-actions{
    margin-bottom:0 !important;
}

.manutencao-page-header + .manutencao-resultado{
    margin-top:4px !important;
}

@media screen and (max-width:700px){
    .manutencao-page-header{
        margin-bottom:24px !important;
    }
}


/* ===== v209 - Centralização suave do aviso e botão nas ações WAL ===== */
.centered-status-action{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
    margin-top:auto;
    width:100%;
    text-align:center;
}

.centered-status-action .action-status-ok,
.centered-status-action .action-status-warn{
    margin:0;
    justify-content:center;
    text-align:center;
    max-width:100%;
}

.centered-status-action .secondary-button,
.centered-status-action .primary-button,
.centered-status-action .danger-button{
    margin-top:0;
    align-self:center;
}


/* ===== v212: botão único de arquivo JSON do backup administrativo ===== */
.backup-admin-file-picker{
    display:inline-flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}

.backup-admin-file-input{
    position:absolute;
    width:1px;
    height:1px;
    opacity:0;
    overflow:hidden;
    pointer-events:none;
}

.backup-admin-file-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:46px;
    max-width:320px;
    padding:12px 16px;
    border:1px solid #fb923c;
    border-radius:14px;
    background:linear-gradient(135deg,#fff7ed,#ffedd5);
    color:#9a3412;
    font-weight:950;
    text-decoration:none;
    cursor:pointer;
    white-space:nowrap;
    box-shadow:0 8px 18px rgba(234,88,12,.16);
    transition:transform .14s ease, filter .14s ease, box-shadow .14s ease, border-color .14s ease;
}

.backup-admin-file-button:hover{
    filter:brightness(.98);
    transform:translateY(-1px);
    box-shadow:0 12px 24px rgba(234,88,12,.20);
}

.backup-admin-file-input:focus + .backup-admin-file-button{
    outline:3px solid rgba(251,146,60,.30);
    outline-offset:2px;
}

.backup-admin-file-button .backup-admin-file-icon{
    flex:0 0 auto;
    font-size:1rem;
}

.backup-admin-file-button .backup-admin-file-text{
    display:block;
    min-width:0;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
}

.backup-admin-file-button.arquivo-selecionado{
    border-color:#fb923c;
    background:linear-gradient(135deg,#fff7ed,#ffedd5);
    color:#9a3412;
}

.backup-admin-file-button.arquivo-selecionado .backup-admin-file-icon{
    color:#16a34a;
}

/* Mantém compatibilidade caso algum navegador renderize marcação antiga em cache. */
.backup-admin-file-name{
    display:none;
}

.admin-import-box .admin-backup-file-picker{
    justify-content:flex-end;
    max-width:460px;
}

.admin-import-box .backup-admin-file-button{
    max-width:300px;
}

@media screen and (max-width:900px){
    .backup-admin-file-picker,
    .backup-admin-file-button,
    .backup-admin-import-inline button[type="submit"],
    .admin-import-box .admin-backup-file-picker,
    .admin-import-box .backup-admin-file-button,
    .admin-import-box .warning-button{
        width:100%;
        max-width:100%;
    }

    .admin-import-box .admin-backup-file-picker{
        justify-content:flex-start;
    }
}


#registros-filtrados .tabela-registros-compacta td:nth-child(5) .campo-descricao,
#registros-filtrados .tabela-registros-compacta td:nth-child(4) .campo-descricao{
    min-width:220px;
}

/* v221 - Data de Retirada manual em dd/mm/aaaa, sem calendário nativo do navegador. */
#registros-filtrados input[data-data-retirada][data-data-br]{
    letter-spacing:.2px;
}

/* v223 - Data de Retirada com digitação manual + seletor de calendário auxiliar. */
#registros-filtrados .data-retirada-com-seletor{
    display:flex;
    align-items:center;
    gap:6px;
    width:100%;
}

#registros-filtrados .data-retirada-com-seletor input[name="data_ret"]{
    flex:1 1 auto;
    min-width:0;
}

#registros-filtrados .botao-calendario-retirada{
    flex:0 0 34px;
    width:34px;
    min-width:34px;
    height:34px;
    padding:0;
    border-radius:10px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
}

#registros-filtrados .seletor-calendario-retirada{
    position:absolute;
    width:1px;
    height:1px;
    opacity:0;
    pointer-events:none;
}

/* v224 - Data de Retirada: visual antigo, campo manual com ícone de calendário interno. */
#registros-filtrados .data-retirada-com-seletor.data-retirada-visual-antigo{
    position:relative;
    display:block;
    width:100%;
}

#registros-filtrados .data-retirada-com-seletor.data-retirada-visual-antigo input[name="data_ret"]{
    width:100%;
    padding-right:34px !important;
}

#registros-filtrados .data-retirada-visual-antigo .icone-calendario-retirada{
    position:absolute;
    right:10px;
    top:50%;
    transform:translateY(-50%);
    width:18px;
    height:18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:#2f3742;
    cursor:pointer;
    z-index:3;
    line-height:1;
}

#registros-filtrados .data-retirada-visual-antigo .icone-calendario-retirada i{
    font-size:14px;
}

#registros-filtrados .data-retirada-visual-antigo .seletor-calendario-retirada{
    position:absolute;
    right:8px;
    top:50%;
    width:22px;
    height:22px;
    opacity:0;
    pointer-events:none;
    transform:translateY(-50%);
}

/* v225 - Todos os campos de data no visual antigo, com digitação manual dd/mm/aaaa e ícone interno. */
.campo-data-manual-wrap{
    position:relative;
    display:block;
    width:100%;
}

.campo-data-manual-wrap input[data-data-br]{
    width:100%;
    padding-right:34px !important;
}

.campo-data-manual-wrap .icone-calendario-manual{
    position:absolute;
    right:10px;
    top:50%;
    transform:translateY(-50%);
    width:18px;
    height:18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:#2f3742;
    cursor:pointer;
    z-index:3;
    line-height:1;
}

.campo-data-manual-wrap .icone-calendario-manual i{
    font-size:14px;
}

.campo-data-manual-wrap .seletor-calendario-manual{
    position:absolute;
    right:8px;
    top:50%;
    width:22px;
    height:22px;
    opacity:0;
    pointer-events:none;
    transform:translateY(-50%);
}

.campo-data-manual-wrap input[data-data-br][readonly] + .icone-calendario-manual,
.campo-data-manual-wrap input[data-data-br][disabled] + .icone-calendario-manual{
    display:none;
}

/* v226 - Destaque visual do ícone de calendário nos campos de data. */
.campo-data-manual-wrap .icone-calendario-manual{
    color:#0f9f9a;
    background:#eef9f8;
    border:1px solid #c6e9e6;
    border-radius:8px;
    width:22px;
    height:22px;
    box-shadow:0 2px 8px rgba(15,159,154,.12);
}

.campo-data-manual-wrap .icone-calendario-manual:hover,
.campo-data-manual-wrap .icone-calendario-manual:focus{
    background:#e1f5f3;
    color:#087f82;
    outline:none;
}

.campo-data-manual-wrap .icone-calendario-manual i{
    font-size:13px;
}

/* v227 - Ajuste somente quando o menu lateral está fixo/aberto.
   Com o menu recolhido, mantém as larguras anteriores. */
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta{
    min-width:1360px;
}

/* Menu fixo + seleção em massa: compacta colunas textuais para manter Detalhes/Ações acessíveis. */
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(2),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(2){width:100px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(3),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(3){width:135px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(4),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(4){width:190px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(5),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(5){width:220px; min-width:220px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(6),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(6){width:135px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(7),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(7){width:190px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(8),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(8){width:100px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(9),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(9){width:118px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(10),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(10){width:118px;}

/* Menu fixo sem seleção em massa. */
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(1),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(1){width:100px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(2),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(2){width:135px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(3),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(3){width:190px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(4),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(4){width:220px; min-width:220px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(5),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(5){width:135px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(6),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(6){width:190px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(7),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(7){width:100px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(8),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(8){width:118px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(9),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(9){width:118px;}

/* Com menu fixo, fixa Detalhes e Ações à direita dentro da grade. */
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta th:nth-last-child(1),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta td:nth-last-child(1){
    position:sticky;
    right:0;
    z-index:4;
}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta th:nth-last-child(2),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta td:nth-last-child(2){
    position:sticky;
    right:118px;
    z-index:4;
}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta th:nth-last-child(1),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta th:nth-last-child(2){
    z-index:7;
    background:#eef9f8;
}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta tbody td:nth-last-child(1),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta tbody td:nth-last-child(2){
    background:inherit;
    box-shadow:-8px 0 12px rgba(15,23,42,.05);
}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .botao-detalhes-registro,
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .actions button{
    font-size:13px;
    padding-left:7px;
    padding-right:7px;
}

/* v228 - Refinamento da lista com menu fixo.
   Remove a sobreposição das colunas fixas e compacta melhor para caber Status, Detalhes e Ações. */
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta{
    min-width:1180px !important;
    table-layout:fixed;
}

body:not(.sidebar-collapsed) #registros-filtrados .cadastro-status-table.tabela-registros-compacta th,
body:not(.sidebar-collapsed) #registros-filtrados .cadastro-status-table.tabela-registros-compacta td{
    padding:7px 6px;
}

/* Remove o sticky da v227 para não cobrir Responsável/Status. */
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta th:nth-last-child(1),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta td:nth-last-child(1),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta th:nth-last-child(2),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta td:nth-last-child(2){
    position:static !important;
    right:auto !important;
    z-index:auto !important;
    box-shadow:none !important;
}

/* Menu fixo + seleção em massa. */
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(1),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(1){width:38px !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(2),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(2){width:92px !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(3),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(3){width:122px !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(4),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(4){width:165px !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(5),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(5){width:205px !important; min-width:205px !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(6),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(6){width:122px !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(7),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(7){width:158px !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(8),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(8){width:82px !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(9),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(9){width:96px !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao th:nth-child(10),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao td:nth-child(10){width:100px !important;}

/* Menu fixo sem seleção em massa. */
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(1),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(1){width:92px !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(2),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(2){width:122px !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(3),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(3){width:175px !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(4),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(4){width:220px !important; min-width:220px !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(5),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(5){width:122px !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(6),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(6){width:165px !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(7),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(7){width:82px !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(8),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(8){width:96px !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao th:nth-child(9),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao td:nth-child(9){width:100px !important;}

/* Campos e botões mais compactos somente com menu fixo. */
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta td input{
    padding:7px 8px;
    font-size:13px;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .controle-badge{
    padding-left:8px;
    padding-right:8px;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .badge{
    padding:7px 8px;
    font-size:12px;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .botao-detalhes-registro,
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .actions button{
    min-height:36px;
    font-size:12.5px;
    padding:7px 6px;
    border-radius:10px;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .actions{
    gap:5px;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta th{
    font-size:13px;
}

/* Evita que texto longo estoure a coluna compactada. */
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta input[name="paciente"],
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta input[name="descricao"],
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta input[name="resp_ret"]{
    text-overflow:ellipsis;
}


/* v229 - Padronização estrutural da grade de registros com colgroup.
   Assim cabeçalho e linhas usam a mesma malha e não desalinhamos uma coluna para ajustar outra. */
#registros-filtrados .tabela-registros-compacta{
    table-layout:fixed;
}

/* Base geral */
#registros-filtrados .tabela-registros-compacta col.col-controle{width:108px;}
#registros-filtrados .tabela-registros-compacta col.col-data-rec{width:132px;}
#registros-filtrados .tabela-registros-compacta col.col-paciente{width:190px;}
#registros-filtrados .tabela-registros-compacta col.col-descricao{width:250px;}
#registros-filtrados .tabela-registros-compacta col.col-data-ret{width:132px;}
#registros-filtrados .tabela-registros-compacta col.col-responsavel{width:190px;}
#registros-filtrados .tabela-registros-compacta col.col-status{width:96px;}
#registros-filtrados .tabela-registros-compacta col.col-detalhes{width:112px;}
#registros-filtrados .tabela-registros-compacta col.col-acoes{width:108px;}
#registros-filtrados .tabela-registros-compacta.com-selecao col.col-sel{width:46px;}

/* Sobrescreve os ajustes por nth-child das versões anteriores. */
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta th,
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta td{
    width:auto !important;
}

/* Menu fixo/aberto: versão compacta, mas coerente e alinhada. */
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta{
    min-width:1270px !important;
}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta col.col-controle{width:92px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta col.col-data-rec{width:120px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta col.col-paciente{width:165px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta col.col-descricao{width:208px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta col.col-data-ret{width:122px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta col.col-responsavel{width:165px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta col.col-status{width:86px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta col.col-detalhes{width:96px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta col.col-acoes{width:102px;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao col.col-sel{width:40px;}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta th,
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta td{
    padding:7px 6px !important;
}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta th{
    font-size:13px;
}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta td input{
    padding:7px 8px;
    font-size:13px;
}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .controle-badge{
    padding:8px 8px;
}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .badge{
    padding:7px 8px;
    font-size:12px;
}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .botao-detalhes-registro,
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .actions button{
    min-height:36px;
    font-size:12.5px;
    padding:7px 6px;
    border-radius:10px;
}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .actions{
    gap:5px;
}

/* Evita quebra/estouro visual nas colunas compactadas. */
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta input[name="paciente"],
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta input[name="descricao"],
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta input[name="resp_ret"]{
    text-overflow:ellipsis;
}

/* v230 - Correção definitiva da lista com menu fixo:
   a grade passa a caber dentro de 100% do cartão, sem cortar a coluna Ações. */
body:not(.sidebar-collapsed) #registros-filtrados .table-wrap-registros{
    overflow-x:hidden !important;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    table-layout:fixed !important;
}

/* Remove qualquer largura herdada por nth-child das versões anteriores. */
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta th,
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta td{
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    padding:7px 5px !important;
}

/* Larguras percentuais quando há seleção em massa: soma 100%. */
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao col.col-sel{width:3.2% !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao col.col-controle{width:7.2% !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao col.col-data-rec{width:10.2% !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao col.col-paciente{width:14.2% !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao col.col-descricao{width:18.2% !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao col.col-data-ret{width:10.2% !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao col.col-responsavel{width:13.4% !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao col.col-status{width:7.0% !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao col.col-detalhes{width:7.8% !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.com-selecao col.col-acoes{width:8.6% !important;}

/* Larguras percentuais quando não há seleção em massa: soma 100%. */
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao col.col-controle{width:8.0% !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao col.col-data-rec{width:10.8% !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao col.col-paciente{width:15.2% !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao col.col-descricao{width:20.0% !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao col.col-data-ret{width:10.8% !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao col.col-responsavel{width:14.4% !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao col.col-status{width:7.2% !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao col.col-detalhes{width:6.8% !important;}
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta.sem-selecao col.col-acoes{width:6.8% !important;}

/* Conteúdo compacto sem quebrar a tabela. */
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta th{
    font-size:12.5px !important;
    line-height:1.15 !important;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta td input{
    width:100% !important;
    min-width:0 !important;
    padding:7px 7px !important;
    font-size:12.5px !important;
    text-overflow:ellipsis;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .campo-data-manual-wrap input[data-data-br]{
    padding-right:28px !important;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .campo-data-manual-wrap .icone-calendario-manual{
    right:5px !important;
    width:20px !important;
    height:20px !important;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .controle-badge{
    padding:7px 7px !important;
    font-size:13px !important;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .badge{
    padding:7px 7px !important;
    font-size:11.5px !important;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .botao-detalhes-registro,
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .actions button{
    width:100% !important;
    min-width:0 !important;
    min-height:34px !important;
    padding:7px 4px !important;
    font-size:12px !important;
    border-radius:10px !important;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .botao-detalhes-registro i,
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .actions button i{
    display:none !important;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .actions{
    gap:4px !important;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta .actions form{
    width:100% !important;
}

/* Reforço: as últimas colunas não ficam coladas nem cortadas. */
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta th:nth-last-child(1),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta td:nth-last-child(1),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta th:nth-last-child(2),
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta td:nth-last-child(2){
    position:static !important;
    right:auto !important;
    z-index:auto !important;
    box-shadow:none !important;
}

/* v231 - Hover completo na linha de registros.
   Mantém a cor de fundo uniforme em toda a linha, inclusive Status, Detalhes e Ações. */
#registros-filtrados .cadastro-status-table tbody tr.status-retirado td,
#registros-filtrados .cadastro-status-table tbody tr.status-nao-retirado td{
    background:inherit;
}

#registros-filtrados .cadastro-status-table tbody tr.status-retirado:hover td{
    background:#c9f3d7 !important;
}

#registros-filtrados .cadastro-status-table tbody tr.status-nao-retirado:hover td{
    background:#f8e7a9 !important;
}

#registros-filtrados .cadastro-status-table tbody tr:hover td:first-child{
    border-radius:13px 0 0 13px;
}

#registros-filtrados .cadastro-status-table tbody tr:hover td:last-child{
    border-radius:0 13px 13px 0;
}

/* Reforço para a área final da linha não ficar com cor “pela metade”. */
#registros-filtrados .cadastro-status-table tbody tr:hover td.actions,
#registros-filtrados .cadastro-status-table tbody tr:hover td:last-child,
#registros-filtrados .cadastro-status-table tbody tr:hover td:nth-last-child(2),
#registros-filtrados .cadastro-status-table tbody tr:hover td:nth-last-child(3){
    background:inherit !important;
}

/* v232 - Remove a linha interna visual dos registros.
   O registro passa a parecer um cartão único, sem divisão interna entre as células. */
#registros-filtrados .cadastro-status-table tbody tr{
    overflow:hidden;
}

#registros-filtrados .cadastro-status-table tbody td{
    border-top:none !important;
    border-bottom:none !important;
    border-right:none !important;
    background:inherit !important;
}

#registros-filtrados .cadastro-status-table tbody td:first-child{
    border-left:6px solid #98a2b3;
    border-radius:13px 0 0 13px;
}

#registros-filtrados .cadastro-status-table tbody tr.status-retirado td:first-child{
    border-left-color:#16A34A;
}

#registros-filtrados .cadastro-status-table tbody tr.status-nao-retirado td:first-child{
    border-left-color:#D97706;
}

#registros-filtrados .cadastro-status-table tbody td:last-child{
    border-right:none !important;
    border-radius:0 13px 13px 0;
}

/* Mantém o bloco inteiro uniforme também no hover. */
#registros-filtrados .cadastro-status-table tbody tr.status-retirado:hover td{
    background:#c9f3d7 !important;
}

#registros-filtrados .cadastro-status-table tbody tr.status-nao-retirado:hover td{
    background:#f8e7a9 !important;
}

/* v233 - Centraliza o conteúdo dos campos de dias da semana do backup. */
.backup-weekday-chip{
    justify-content:center;
    text-align:center;
}

.backup-weekday-chip span{
    flex:0 1 auto;
    text-align:center;
    line-height:1.2;
}

.backup-weekday-chip input{
    flex:0 0 auto;
}

/* Ajuste de alinhamento dos textos solicitados, incluindo text-align-last. */
.card-restaurar-backup-externo > h2,
.card-restaurar-backup-externo > p.muted{
    text-align:left !important;
    text-align-last:left !important;
}

.card-restaurar-backup-externo > p.muted{
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
}

.card-backup-agendamento #backup-dias-semana-box > label,
.card-backup-agendamento .form-grid #backup-dias-semana-box > label{
    display:block !important;
    width:100% !important;
    text-align:left !important;
    text-align-last:left !important;
    justify-content:flex-start !important;
    align-items:flex-start !important;
}

/* ===== v243 - Redução real dos botões Salvar/Excluir na listagem =====
   Reduz a largura visual dos botões de ações, mantendo Detalhes e demais colunas preservadas. */
#registros-filtrados .tabela-registros-compacta col.col-acoes{
    width:90px !important;
}

#registros-filtrados .tabela-registros-compacta td.actions{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:5px !important;
    padding-left:4px !important;
    padding-right:4px !important;
}

#registros-filtrados .tabela-registros-compacta td.actions form{
    width:auto !important;
    flex:0 0 auto !important;
    margin:0 !important;
}

#registros-filtrados .tabela-registros-compacta td.actions button{
    width:82px !important;
    min-width:82px !important;
    max-width:82px !important;
    min-height:34px !important;
    padding:7px 5px !important;
    font-size:12px !important;
    border-radius:9px !important;
    justify-content:center !important;
}

#registros-filtrados .tabela-registros-compacta td.actions button i{
    font-size:.85em !important;
    margin-right:3px !important;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta col.col-acoes{
    width:84px !important;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta td.actions button{
    width:74px !important;
    min-width:74px !important;
    max-width:74px !important;
    min-height:32px !important;
    padding:6px 4px !important;
    font-size:11.5px !important;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta td.actions button i{
    display:none !important;
}


/* ===== v244 - Ajuste da folga lateral direita nas ações =====
   Afasta a coluna Ações da borda direita sem voltar a alargar os botões. */
#registros-filtrados .table-wrap-registros{
    padding-right:10px !important;
    box-sizing:border-box !important;
}

#registros-filtrados .tabela-registros-compacta col.col-acoes{
    width:98px !important;
}

#registros-filtrados .tabela-registros-compacta th:last-child,
#registros-filtrados .tabela-registros-compacta td:last-child{
    padding-right:12px !important;
}

#registros-filtrados .tabela-registros-compacta td.actions{
    padding-left:3px !important;
    padding-right:12px !important;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta col.col-acoes{
    width:92px !important;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta td.actions{
    padding-right:12px !important;
}


/* ===== v245 - Aumenta um pouco a largura dos botões Salvar/Excluir =====
   Mantém a folga da direita, mas devolve um pouco de largura visual aos botões. */
#registros-filtrados .tabela-registros-compacta col.col-acoes{
    width:104px !important;
}

#registros-filtrados .tabela-registros-compacta td.actions button{
    width:88px !important;
    min-width:88px !important;
    max-width:88px !important;
    padding:7px 6px !important;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta col.col-acoes{
    width:98px !important;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta td.actions button{
    width:78px !important;
    min-width:78px !important;
    max-width:78px !important;
    padding:6px 5px !important;
}


/* ===== v247 - Camada responsiva conservadora para diferentes resoluções =====
   Mantém o visual aprovado e só controla estouro, margens e rolagem em telas menores/zoom alto. */
html,
body{
    max-width:100% !important;
    overflow-x:hidden !important;
}

.main-shell,
.container,
.card{
    max-width:100% !important;
    box-sizing:border-box !important;
}

.table-wrap,
#registros-filtrados .table-wrap-registros{
    max-width:100% !important;
    overflow-x:auto !important;
    overflow-y:visible !important;
    -webkit-overflow-scrolling:touch !important;
    scrollbar-gutter:stable both-edges !important;
}

#registros-filtrados .tabela-registros-compacta{
    width:100% !important;
}

/* Notebook comum e Windows com zoom: preserva a tabela e libera rolagem, sem esmagar campos. */
@media screen and (max-width: 1280px){
    .container{
        padding-left:18px !important;
        padding-right:18px !important;
    }

    #registros-filtrados .table-wrap-registros{
        padding-right:14px !important;
    }

    #registros-filtrados .tabela-registros-compacta{
        min-width:1160px !important;
    }

    #registros-filtrados .tabela-registros-compacta th,
    #registros-filtrados .tabela-registros-compacta td{
        padding-left:6px !important;
        padding-right:6px !important;
    }
}

/* Tela menor: mantém leitura com rolagem horizontal controlada. */
@media screen and (max-width: 1100px){
    .container{
        padding-left:14px !important;
        padding-right:14px !important;
    }

    .form-grid{
        grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)) !important;
    }

    #registros-filtrados .tabela-registros-compacta{
        min-width:1080px !important;
    }

    #registros-filtrados .tabela-registros-compacta col.col-paciente{width:160px !important;}
    #registros-filtrados .tabela-registros-compacta col.col-descricao{width:220px !important;}
    #registros-filtrados .tabela-registros-compacta col.col-responsavel{width:165px !important;}
    #registros-filtrados .tabela-registros-compacta col.col-status{width:86px !important;}
    #registros-filtrados .tabela-registros-compacta col.col-detalhes{width:98px !important;}
    #registros-filtrados .tabela-registros-compacta col.col-acoes{width:98px !important;}
}

/* Celular/tablet estreito: filtros quebram sem sobrepor e tabela continua rolável. */
@media screen and (max-width: 760px){
    .container{
        padding-left:10px !important;
        padding-right:10px !important;
    }

    .topbar-simple{
        gap:8px !important;
        flex-wrap:wrap !important;
    }

    .form-grid{
        grid-template-columns:1fr !important;
    }

    html body .card-filtros-avancados form.form-grid .filtros-acoes{
        width:100% !important;
        flex-wrap:wrap !important;
    }

    html body .card-filtros-avancados form.form-grid .filtros-acoes button,
    html body .card-filtros-avancados form.form-grid .filtros-acoes .button{
        width:100% !important;
        min-width:0 !important;
        max-width:none !important;
    }

    #registros-filtrados .tabela-registros-compacta{
        min-width:1020px !important;
    }
}


/* ===== v248 - Compatibilidade visual conservadora para Microsoft Edge =====
   Evita cortes laterais/encavalamento percebidos no Edge sem alterar regras do sistema. */
*, *::before, *::after{
    box-sizing:border-box;
}

button,
.button,
input,
select,
textarea{
    line-height:1.2;
}

/* Reforço geral: cria uma folga lateral estável para navegadores que renderizam colunas mais largas. */
#registros-filtrados .table-wrap-registros{
    padding-right:16px !important;
}

#registros-filtrados .tabela-registros-compacta th:last-child,
#registros-filtrados .tabela-registros-compacta td:last-child{
    padding-right:14px !important;
}

#registros-filtrados .tabela-registros-compacta col.col-detalhes{
    width:108px !important;
}

#registros-filtrados .tabela-registros-compacta col.col-acoes{
    width:108px !important;
}

/* Edge Chromium: reserva um pouco mais de espaço para inputs de data, botões e última coluna. */
@supports (-ms-ime-align:auto){
    #registros-filtrados .table-wrap-registros{
        padding-right:20px !important;
    }

    #registros-filtrados .tabela-registros-compacta{
        min-width:1200px !important;
    }

    #registros-filtrados .tabela-registros-compacta col.col-data-rec,
    #registros-filtrados .tabela-registros-compacta col.col-data-ret{
        width:136px !important;
    }

    #registros-filtrados .tabela-registros-compacta col.col-detalhes{
        width:112px !important;
    }

    #registros-filtrados .tabela-registros-compacta col.col-acoes{
        width:112px !important;
    }

    #registros-filtrados .tabela-registros-compacta td.actions{
        padding-right:16px !important;
    }

    html body .card-filtros-avancados form.form-grid .filtros-acoes{
        gap:12px !important;
    }
}

@media screen and (max-width: 1280px){
    #registros-filtrados .table-wrap-registros{
        padding-right:18px !important;
    }

    #registros-filtrados .tabela-registros-compacta col.col-detalhes{
        width:104px !important;
    }

    #registros-filtrados .tabela-registros-compacta col.col-acoes{
        width:104px !important;
    }
}


/* ===== v249 - Padronização visual entre navegadores sem desalinhamento =====
   Camada conservadora: normaliza medidas e aparência somente nas telas internas do sistema. */
html{
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
}

*, *::before, *::after{
    box-sizing:border-box !important;
}

body.app-layout,
body.app-layout button:not(.rh-combobox-opcao-v217),
body.app-layout .button,
body.app-layout input,
body.app-layout select,
body.app-layout textarea{
    font-family:"Segoe UI", Arial, sans-serif !important;
}

body.app-layout{
    line-height:1.35 !important;
}

body.app-layout button:not(.rh-combobox-opcao-v217),
body.app-layout .button,
body.app-layout input,
body.app-layout select,
body.app-layout textarea{
    line-height:1.2 !important;
    -webkit-font-smoothing:antialiased;
    text-rendering:geometricPrecision;
}

body.app-layout button:not(.rh-combobox-opcao-v217),
body.app-layout .button{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:6px !important;
    white-space:nowrap !important;
    vertical-align:middle !important;
    flex-shrink:0 !important;
}

body.app-layout input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
body.app-layout select,
body.app-layout textarea{
    min-height:38px;
    max-width:100%;
}

body.app-layout input[type="date"]{
    min-width:118px;
    font-variant-numeric:tabular-nums;
}


/* Listagem: mantém o alinhamento por colgroup e dá espaço seguro para Edge/zoom. */
#registros-filtrados .table-wrap-registros{
    max-width:100% !important;
    overflow-x:auto !important;
    overflow-y:visible !important;
    padding-right:18px !important;
    scrollbar-gutter:stable both-edges !important;
}

#registros-filtrados .tabela-registros-compacta{
    table-layout:fixed !important;
    min-width:1220px !important;
}

#registros-filtrados .tabela-registros-compacta th,
#registros-filtrados .tabela-registros-compacta td{
    vertical-align:middle !important;
}

#registros-filtrados .tabela-registros-compacta col.col-detalhes{
    width:112px !important;
}

#registros-filtrados .tabela-registros-compacta col.col-acoes{
    width:112px !important;
}

#registros-filtrados .tabela-registros-compacta .botao-detalhes-registro{
    width:100% !important;
    min-height:36px !important;
    height:36px !important;
    padding:7px 8px !important;
    font-size:13px !important;
    line-height:1.2 !important;
}

#registros-filtrados .tabela-registros-compacta td.actions{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:5px !important;
    padding-left:4px !important;
    padding-right:14px !important;
}

#registros-filtrados .tabela-registros-compacta td.actions form{
    width:auto !important;
    flex:0 0 auto !important;
    margin:0 !important;
}

#registros-filtrados .tabela-registros-compacta td.actions button{
    width:88px !important;
    min-width:88px !important;
    max-width:88px !important;
    height:34px !important;
    min-height:34px !important;
    padding:7px 6px !important;
    font-size:12px !important;
    line-height:1.2 !important;
    border-radius:9px !important;
}

#registros-filtrados .tabela-registros-compacta th:last-child,
#registros-filtrados .tabela-registros-compacta td:last-child{
    padding-right:14px !important;
}

/* Notebook/zoom 125%: não espreme campos, usa rolagem horizontal segura. */
@media screen and (max-width:1366px){
    #registros-filtrados .tabela-registros-compacta{
        min-width:1180px !important;
    }

    #registros-filtrados .tabela-registros-compacta col.col-detalhes{
        width:108px !important;
    }

    #registros-filtrados .tabela-registros-compacta col.col-acoes{
        width:108px !important;
    }

    #registros-filtrados .tabela-registros-compacta td.actions{
        padding-right:14px !important;
    }
}

@media screen and (max-width:1280px){
    #registros-filtrados .table-wrap-registros{
        padding-right:18px !important;
    }

    #registros-filtrados .tabela-registros-compacta{
        min-width:1160px !important;
    }

    #registros-filtrados .tabela-registros-compacta td.actions button{
        width:84px !important;
        min-width:84px !important;
        max-width:84px !important;
    }
}




/* ===== v250 - Ajuste fino da sobra lateral direita =====
   Reduz a sobra visual no lado direito sem alterar o tamanho dos botões. */
#registros-filtrados .table-wrap-registros{
    padding-right:10px !important;
}

#registros-filtrados .tabela-registros-compacta th:last-child,
#registros-filtrados .tabela-registros-compacta td:last-child{
    padding-right:8px !important;
}

#registros-filtrados .tabela-registros-compacta td.actions{
    padding-right:8px !important;
}

#registros-filtrados .tabela-registros-compacta col.col-detalhes{
    width:104px !important;
}

#registros-filtrados .tabela-registros-compacta col.col-acoes{
    width:102px !important;
}

@supports (-ms-ime-align:auto){
    #registros-filtrados .table-wrap-registros{
        padding-right:12px !important;
    }

    #registros-filtrados .tabela-registros-compacta col.col-detalhes{
        width:106px !important;
    }

    #registros-filtrados .tabela-registros-compacta col.col-acoes{
        width:104px !important;
    }

    #registros-filtrados .tabela-registros-compacta td.actions{
        padding-right:10px !important;
    }
}

@media screen and (max-width: 1280px){
    #registros-filtrados .table-wrap-registros{
        padding-right:12px !important;
    }

    #registros-filtrados .tabela-registros-compacta col.col-detalhes{
        width:102px !important;
    }

    #registros-filtrados .tabela-registros-compacta col.col-acoes{
        width:102px !important;
    }
}


/* ===== v251 - Corrige faixa de Ações e realinha laterais da tabela =====
   Mantém os botões no tamanho aprovado, mas devolve o alinhamento correto entre cabeçalho e linhas. */
#registros-filtrados .table-wrap-registros{
    padding-left:0 !important;
    padding-right:0 !important;
    overflow-x:auto !important;
    overflow-y:visible !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta{
    width:100% !important;
    table-layout:fixed !important;
    border-collapse:separate !important;
    border-spacing:0 8px !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta thead th{
    background:#eef9f8 !important;
    vertical-align:middle !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta thead th:last-child{
    background:#eef9f8 !important;
    padding-right:8px !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody td:last-child{
    padding-right:6px !important;
}

#registros-filtrados .tabela-registros-compacta col.col-detalhes{
    width:108px !important;
}

#registros-filtrados .tabela-registros-compacta col.col-acoes{
    width:108px !important;
}

/* A célula Ações volta a ser célula de tabela; isso evita desalinhamento lateral no Edge. */
#registros-filtrados .tabela-registros-compacta td.actions{
    display:table-cell !important;
    text-align:center !important;
    vertical-align:middle !important;
    padding-left:6px !important;
    padding-right:6px !important;
}

#registros-filtrados .tabela-registros-compacta td.actions > button{
    display:inline-flex !important;
    width:88px !important;
    min-width:88px !important;
    max-width:88px !important;
    height:34px !important;
    min-height:34px !important;
    margin:0 auto 5px auto !important;
}

#registros-filtrados .tabela-registros-compacta td.actions form{
    display:block !important;
    width:100% !important;
    margin:0 !important;
    text-align:center !important;
}

#registros-filtrados .tabela-registros-compacta td.actions form button{
    display:inline-flex !important;
    width:88px !important;
    min-width:88px !important;
    max-width:88px !important;
    height:34px !important;
    min-height:34px !important;
    margin:0 auto !important;
}

body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta col.col-detalhes,
body:not(.sidebar-collapsed) #registros-filtrados .tabela-registros-compacta col.col-acoes{
    width:108px !important;
}

@media screen and (max-width:1280px){
    #registros-filtrados .tabela-registros-compacta col.col-detalhes,
    #registros-filtrados .tabela-registros-compacta col.col-acoes{
        width:106px !important;
    }
}


/* ===== v252 - Corrige ponta branca nos cantos das linhas =====
   Aplica a cor diretamente nas células e fecha os cantos arredondados sem alterar regras do sistema. */
#registros-filtrados .cadastro-status-table.tabela-registros-compacta{
    border-collapse:separate !important;
    border-spacing:0 8px !important;
    empty-cells:show !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-retirado > td{
    background:#DCFCE7 !important;
    background-clip:border-box !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-nao-retirado > td{
    background:#FEF3C7 !important;
    background-clip:border-box !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-retirado > td:first-child,
#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-nao-retirado > td:first-child{
    border-radius:13px 0 0 13px !important;
    overflow:hidden !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-retirado > td:last-child,
#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-nao-retirado > td:last-child{
    border-radius:0 13px 13px 0 !important;
    overflow:hidden !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-retirado > td:first-child{
    border-left-color:#16A34A !important;
    box-shadow:inset 6px 0 0 #16A34A !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-nao-retirado > td:first-child{
    border-left-color:#D97706 !important;
    box-shadow:inset 6px 0 0 #D97706 !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-retirado:hover > td{
    background:#c9f3d7 !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-nao-retirado:hover > td{
    background:#f8e7a9 !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-retirado:hover > td:first-child{
    box-shadow:inset 6px 0 0 #16A34A !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-nao-retirado:hover > td:first-child{
    box-shadow:inset 6px 0 0 #D97706 !important;
}


/* ===== v253 - Correção definitiva da ponta branca nos cantos das linhas =====
   Cria uma camada de fundo própria por célula e recorta os cantos arredondados,
   evitando vazamento branco em Edge/Chrome/Brave. */
#registros-filtrados .cadastro-status-table.tabela-registros-compacta{
    border-collapse:separate !important;
    border-spacing:0 8px !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-retirado,
#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-nao-retirado{
    background:transparent !important;
    box-shadow:none !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-retirado td,
#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-nao-retirado td{
    position:relative !important;
    overflow:hidden !important;
    background-clip:padding-box !important;
    border-top:0 !important;
    border-bottom:0 !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-retirado td{
    background:#d8f7e2 !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-nao-retirado td{
    background:#fff4c4 !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-retirado td:first-child,
#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-nao-retirado td:first-child{
    border-top-left-radius:13px !important;
    border-bottom-left-radius:13px !important;
    border-left:5px solid #22c55e !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-nao-retirado td:first-child{
    border-left-color:#d97706 !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-retirado td:last-child,
#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-nao-retirado td:last-child{
    border-top-right-radius:13px !important;
    border-bottom-right-radius:13px !important;
}

/* Fecha qualquer microvazamento no canto esquerdo causado por antialiasing do navegador. */
#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-retirado td:first-child::before,
#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-nao-retirado td:first-child::before{
    content:"" !important;
    position:absolute !important;
    left:0 !important;
    top:0 !important;
    bottom:0 !important;
    width:7px !important;
    background:#22c55e !important;
    border-top-left-radius:13px !important;
    border-bottom-left-radius:13px !important;
    pointer-events:none !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-nao-retirado td:first-child::before{
    background:#d97706 !important;
}

/* Fecha qualquer microvazamento no canto direito mantendo o fundo da linha até o final. */
#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-retirado td:last-child::after,
#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-nao-retirado td:last-child::after{
    content:"" !important;
    position:absolute !important;
    right:0 !important;
    top:0 !important;
    bottom:0 !important;
    width:4px !important;
    border-top-right-radius:13px !important;
    border-bottom-right-radius:13px !important;
    pointer-events:none !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-retirado td:last-child::after{
    background:#d8f7e2 !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-nao-retirado td:last-child::after{
    background:#fff4c4 !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-retirado:hover td{
    background:#c9f3d7 !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-nao-retirado:hover td{
    background:#f8e7a9 !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-retirado:hover td:last-child::after{
    background:#c9f3d7 !important;
}

#registros-filtrados .cadastro-status-table.tabela-registros-compacta tbody tr.status-nao-retirado:hover td:last-child::after{
    background:#f8e7a9 !important;
}


/* ===== v254 - Corrige KPIs/alertas de Relatórios em grade =====
   Reativa a grade dos cartões para não ficarem empilhados em largura total. */
html body .kpis{
    display:grid !important;
    grid-template-columns:repeat(4, minmax(180px, 1fr)) !important;
    gap:14px !important;
    align-items:stretch !important;
    margin-bottom:22px !important;
}

html body .kpis .kpi{
    min-height:96px !important;
    padding:16px 18px !important;
    border-radius:18px !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    align-items:center !important;
    text-align:center !important;
}

html body .kpis .kpi span{
    margin-bottom:8px !important;
    line-height:1.25 !important;
}

html body .kpis .kpi strong{
    line-height:1.1 !important;
}

@media screen and (max-width: 1200px){
    html body .kpis{
        grid-template-columns:repeat(2, minmax(180px, 1fr)) !important;
    }
}

@media screen and (max-width: 650px){
    html body .kpis{
        grid-template-columns:1fr !important;
    }
}


/* ===== v255 - Reorganiza cards do dashboard para eliminar espaço vazio ===== */
.dashboard-kpis{
    grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
    margin-bottom:14px;
}

.dashboard-kpis .kpi{
    min-height:96px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
}

.dashboard-kpis .kpi span{
    margin-bottom:10px;
}

.dashboard-kpis-alerts{
    margin-bottom:22px;
}

@media screen and (max-width:1100px){
    .dashboard-kpis{
        grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    }
}

@media screen and (max-width:650px){
    .dashboard-kpis{
        grid-template-columns:1fr !important;
    }
}


/* ===== v256 - Cadastro com 5 indicadores principais na mesma linha ===== */
html body .cadastro-kpis{
    grid-template-columns:repeat(5, minmax(0, 1fr)) !important;
}

@media screen and (max-width: 1500px){
    html body .cadastro-kpis{
        grid-template-columns:repeat(3, minmax(180px, 1fr)) !important;
    }
}

@media screen and (max-width: 1200px){
    html body .cadastro-kpis{
        grid-template-columns:repeat(2, minmax(180px, 1fr)) !important;
    }
}

@media screen and (max-width: 650px){
    html body .cadastro-kpis{
        grid-template-columns:1fr !important;
    }
}


/* ===== v257 - Reduz cards da Dashboard sem abrir espaços vazios =====
   Mantém a mesma grade, reduzindo apenas o tamanho interno dos cards do dashboard. */
html body .dashboard-kpis .kpi{
    min-height:80px !important;
    padding:12px 14px !important;
    border-radius:16px !important;
}

html body .dashboard-kpis .kpi span{
    margin-bottom:6px !important;
    font-size:12px !important;
    line-height:1.15 !important;
}

html body .dashboard-kpis .kpi strong{
    font-size:24px !important;
    line-height:1.05 !important;
}

html body .dashboard-kpis{
    gap:12px !important;
}


/* ===== v258 - Iguala cards da Dashboard ao tamanho dos cards do Cadastro =====
   Reverte apenas a compactação da v257 e mantém a grade fechada, sem espaços vazios. */
html body .dashboard-kpis{
    gap:14px !important;
    grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
}

html body .dashboard-kpis .kpi{
    min-height:96px !important;
    padding:16px 18px !important;
    border-radius:18px !important;
}

html body .dashboard-kpis .kpi span{
    margin-bottom:8px !important;
    font-size:inherit !important;
    line-height:1.25 !important;
}

html body .dashboard-kpis .kpi strong{
    font-size:30px !important;
    line-height:1.1 !important;
}

@media screen and (max-width:1100px){
    html body .dashboard-kpis{
        grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    }
}

@media screen and (max-width:650px){
    html body .dashboard-kpis{
        grid-template-columns:1fr !important;
    }
}

/* ===== v259 - Dashboard 10 cards com 5 por linha =====
   Mantém a mesma largura visual dos cards do Cadastro e evita espaços vazios. */
html body .dashboard-kpis{
    grid-template-columns:repeat(5, minmax(0, 1fr)) !important;
    gap:14px !important;
}

html body .dashboard-kpis .kpi{
    min-height:96px !important;
    padding:16px 18px !important;
    border-radius:18px !important;
}

html body .dashboard-kpis .kpi span{
    margin-bottom:8px !important;
    line-height:1.25 !important;
}

html body .dashboard-kpis .kpi strong{
    font-size:30px !important;
    line-height:1.1 !important;
}

@media screen and (max-width: 1500px){
    html body .dashboard-kpis{
        grid-template-columns:repeat(3, minmax(180px, 1fr)) !important;
    }
}

@media screen and (max-width: 1200px){
    html body .dashboard-kpis{
        grid-template-columns:repeat(2, minmax(180px, 1fr)) !important;
    }
}

@media screen and (max-width: 650px){
    html body .dashboard-kpis{
        grid-template-columns:1fr !important;
    }
}


/* ===== v262 - Mantém o título Itens verificados à esquerda e centraliza somente a tabela ===== */
html body .card-itens-verificados h2{
    text-align:left !important;
}

html body .card-itens-verificados .table-wrap,
html body .card-itens-verificados table,
html body .card-itens-verificados thead th,
html body .card-itens-verificados tbody td,
html body .card-itens-verificados tbody td strong,
html body .card-itens-verificados tbody td .status-badge{
    text-align:center !important;
}

html body .card-itens-verificados .table-wrap{
    display:block !important;
}

html body .card-itens-verificados table{
    width:100% !important;
    table-layout:fixed !important;
}

html body .card-itens-verificados thead th,
html body .card-itens-verificados tbody td{
    vertical-align:middle !important;
}

html body .card-itens-verificados thead th:nth-child(1),
html body .card-itens-verificados tbody td:nth-child(1){
    width:18% !important;
}

html body .card-itens-verificados thead th:nth-child(2),
html body .card-itens-verificados tbody td:nth-child(2){
    width:14% !important;
}

html body .card-itens-verificados thead th:nth-child(3),
html body .card-itens-verificados tbody td:nth-child(3){
    width:68% !important;
}

html body .card-itens-verificados tbody td .status-badge,
html body .card-itens-verificados tbody td strong{
    display:inline-flex !important;
    justify-content:center !important;
    align-items:center !important;
}


/* ===== v263: Diagnóstico - centralizar somente os escritos dos cards do resumo técnico ===== */
html body .card-resumo-tecnico .import-info-grid .info-card,
html body .card-resumo-tecnico .import-info-grid .info-card h3,
html body .card-resumo-tecnico .import-info-grid .info-card p{
    text-align:center !important;
}

html body .card-resumo-tecnico .import-info-grid .info-card h3,
html body .card-resumo-tecnico .import-info-grid .info-card p{
    width:100% !important;
}


/* ===== v264: Minha Conta - centralizar somente os escritos da área de troca de senha ===== */
html body .card-minha-conta form.form-grid > div > label{
    text-align:center !important;
}

html body .card-minha-conta form.form-grid .align-end{
    display:flex !important;
    justify-content:center !important;
    align-items:end !important;
    text-align:center !important;
}

html body .card-minha-conta form.form-grid .align-end button{
    justify-content:center !important;
    text-align:center !important;
}


/* ===== v265: Botões Alterar senha e Criar usuário mais próximos dos campos e centralizados na coluna ===== */
html body .card-minha-conta form.form-grid .align-end,
html body .card-novo-usuario .align-end{
    width:100% !important;
    display:flex !important;
    justify-content:center !important;
    align-items:flex-start !important;
    align-self:start !important;
    padding-top:30px !important;
    text-align:center !important;
}

html body .card-minha-conta form.form-grid .align-end button,
html body .card-novo-usuario .align-end button{
    margin:0 auto !important;
    justify-content:center !important;
    text-align:center !important;
}

/* ===== v266: reforço visível - botões Alterar senha e Criar usuário alinhados aos campos ===== */
html body .card-minha-conta form.form-grid,
html body .card-novo-usuario form.form-grid{
    align-items:start !important;
}

html body .card-minha-conta form.form-grid > div,
html body .card-novo-usuario form.form-grid > div{
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
}

html body .card-minha-conta form.form-grid > div.align-end,
html body .card-novo-usuario form.form-grid > div.align-end{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    align-self:start !important;
    padding-top:25px !important;
    margin-top:0 !important;
}

html body .card-minha-conta form.form-grid > div.align-end button,
html body .card-novo-usuario form.form-grid > div.align-end button{
    margin:0 auto !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    white-space:nowrap !important;
}


/* ===== v267: E-mail de teste - botão mais próximo do campo e centralizado na coluna ===== */
html body .card-email-teste form.form-grid{
    align-items:start !important;
}

html body .card-email-teste form.form-grid > div{
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
}

html body .card-email-teste form.form-grid > div > label{
    text-align:center !important;
    width:100% !important;
}

html body .card-email-teste form.form-grid > div.align-end{
    width:100% !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    align-self:start !important;
    padding-top:25px !important;
    margin-top:0 !important;
    text-align:center !important;
}

html body .card-email-teste form.form-grid > div.align-end button{
    margin:0 auto !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    white-space:nowrap !important;
}

/* ===== v268: correção real - botões alinhados ao campo da própria linha ===== */
/* Regra final, com classe própria, para não depender de regras antigas nem do bloco extra_head. */

html body .card-minha-conta form.form-grid,
html body .card-novo-usuario form.form-grid,
html body .card-email-teste form.form-grid{
    align-items:start !important;
}

html body .card-minha-conta form.form-grid > div,
html body .card-novo-usuario form.form-grid > div,
html body .card-email-teste form.form-grid > div{
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
}

html body .card-minha-conta form.form-grid > div > label,
html body .card-novo-usuario form.form-grid > div > label,
html body .card-email-teste form.form-grid > div > label{
    text-align:center !important;
    width:100% !important;
}

html body .ajuste-coluna-botao-campo{
    width:100% !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
    align-items:center !important;
    align-self:start !important;
    padding-top:25px !important;
    margin-top:0 !important;
    text-align:center !important;
}

html body .ajuste-coluna-botao-campo button{
    margin:0 auto !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    white-space:nowrap !important;
}

/* ===== v269: ajuste direto visível dos botões ao lado dos campos ===== */
html body .ajuste-botao-senha,
html body .ajuste-botao-criar-usuario,
html body .ajuste-botao-enviar-teste{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    align-self:center !important;
    padding-top:0 !important;
    margin-top:0 !important;
    min-height:48px !important;
    width:100% !important;
}

html body .ajuste-botao-senha button,
html body .ajuste-botao-criar-usuario button,
html body .ajuste-botao-enviar-teste button{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    margin:0 auto !important;
    white-space:nowrap !important;
}

/* ===== v271: alinhamento real dos botões Alterar senha e Criar usuário pela base dos campos ===== */
html body .form-senha-inline,
html body .form-novo-usuario-inline{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:flex-end !important;
    justify-content:center !important;
    gap:16px !important;
}

html body .form-senha-inline .ajuste-botao-senha,
html body .form-novo-usuario-inline .ajuste-botao-criar-usuario{
    flex:0 0 auto !important;
    display:flex !important;
    align-items:flex-end !important;
    justify-content:center !important;
    padding-top:0 !important;
    margin-top:0 !important;
    min-height:auto !important;
    width:auto !important;
}

html body .form-senha-inline .botao-alterar-senha,
html body .form-novo-usuario-inline .botao-criar-usuario{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    margin:0 !important;
    white-space:nowrap !important;
}

/* ===== v276: botões com a mesma altura visual dos campos ===== */
html body .botao-alterar-senha,
html body .botao-criar-usuario,
html body .botao-enviar-teste,
html body .botao-salvar-config{
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    padding-left:18px !important;
    padding-right:18px !important;
    line-height:1 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    margin:0 !important;
    white-space:nowrap !important;
}



/* ===== v288 - Corrige altura e alinhamento do botão Salvar configurações =====
   Ajuste visual restrito à tela de Configuração de E-mail. Não altera SMTP, senha,
   banco, rotas, permissões nem regras de envio/recuperação. */
html body.app-layout .card-config-email form.form-grid .ajuste-botao-salvar-config,
html body.app-layout .card-email-teste form.form-grid .ajuste-botao-enviar-teste{
    justify-content:flex-start !important;
    align-items:flex-start !important;
}

html body.app-layout .card-config-email form.form-grid button.botao-salvar-config,
html body.app-layout .card-email-teste form.form-grid button.botao-enviar-teste{
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    padding:0 22px !important;
    line-height:1 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    white-space:nowrap !important;
}

html body.app-layout .card-config-email form.form-grid button.botao-salvar-config{
    min-width:230px !important;
}


/* ===== v289 - Relatórios com 5 cards no mesmo tamanho do Cadastro ===== */
html body .relatorios-kpis{
    grid-template-columns:repeat(5, minmax(0, 1fr)) !important;
    gap:14px !important;
    align-items:stretch !important;
}

html body .relatorios-kpis .kpi{
    min-height:96px !important;
    padding:16px 18px !important;
    border-radius:18px !important;
    box-sizing:border-box !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    align-items:center !important;
    text-align:center !important;
}

html body .relatorios-kpis .relatorio-kpi{
    color:#2f3742 !important;
    background:linear-gradient(135deg,#ffffff,#f7fbfd) !important;
    border:1px solid rgba(148,163,184,.24) !important;
    box-shadow:0 8px 24px rgba(15,23,42,.08) !important;
}

html body .relatorios-kpis .relatorio-kpi span{
    color:#6b7280 !important;
    font-size:13px !important;
    font-weight:900 !important;
    line-height:1.25 !important;
    margin-bottom:8px !important;
}

html body .relatorios-kpis .relatorio-kpi strong{
    color:#0f9f9a !important;
    font-size:30px !important;
    line-height:1.1 !important;
}

@media screen and (max-width: 1500px){
    html body .relatorios-kpis{
        grid-template-columns:repeat(3, minmax(180px, 1fr)) !important;
    }
}

@media screen and (max-width: 1200px){
    html body .relatorios-kpis{
        grid-template-columns:repeat(2, minmax(180px, 1fr)) !important;
    }
}

@media screen and (max-width: 650px){
    html body .relatorios-kpis{
        grid-template-columns:1fr !important;
    }
}


/* ===== v290 - Centraliza somente os conteúdos da tela Relatórios Operacionais ===== */

html body .relatorios-card-centralizados .relatorios-table-centralizada thead th,
html body .relatorios-card-centralizados .relatorios-table-centralizada tbody td{
    text-align:center !important;
    vertical-align:middle !important;
}

html body .relatorios-card-centralizados .relatorios-table-centralizada tbody td .controle-badge{
    margin-left:auto !important;
    margin-right:auto !important;
}

/* ===== v291 - Mantém títulos dos blocos de Relatórios à esquerda =====
   Corrige a v290: centraliza apenas as tabelas/conteúdos, não os títulos dos blocos. */
html body .relatorios-card-centralizados h2{
    text-align:left !important;
}

/* ===== v300 - Cadastro: regra única para Filtrar com o mesmo tamanho do Limpar =====
   Remove as regras antigas conflitantes e mantém o ajuste apenas nos filtros avançados do Cadastro. */
html body.app-layout .card-filtros-avancados form.form-grid .filtros-acoes{
    display:flex !important;
    align-items:flex-end !important;
    justify-content:flex-start !important;
    gap:12px !important;
}

html body.app-layout .card-filtros-avancados form.form-grid .filtros-acoes > button.botao-filtrar-ajustado,
html body.app-layout .card-filtros-avancados form.form-grid .filtros-acoes > a.botao-limpar-ajustado{
    width:128px !important;
    min-width:128px !important;
    max-width:128px !important;
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    padding:0 18px !important;
    box-sizing:border-box !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;
    line-height:1 !important;
    margin:0 !important;
    white-space:nowrap !important;
}

@media screen and (max-width:640px){
    html body.app-layout .card-filtros-avancados form.form-grid .filtros-acoes{
        width:100% !important;
        flex-wrap:wrap !important;
    }

    html body.app-layout .card-filtros-avancados form.form-grid .filtros-acoes > button.botao-filtrar-ajustado,
    html body.app-layout .card-filtros-avancados form.form-grid .filtros-acoes > a.botao-limpar-ajustado{
        width:100% !important;
        min-width:0 !important;
        max-width:none !important;
    }
}

/* ===== v301 - Lixeira: mantém o botão Filtrar exatamente como estava certo =====
   Regra restrita à tela Consultar lixeira. Não altera o Cadastro, onde o Filtrar
   continua seguindo o tamanho do Limpar. */
html body.app-layout .card-lixeira-consulta form.form-grid .filtros-acoes button.botao-filtrar-lixeira{
    width:112px !important;
    min-width:112px !important;
    max-width:112px !important;
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    padding:0 14px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:6px !important;
    white-space:nowrap !important;
}

@media screen and (max-width:760px){
    html body.app-layout .card-lixeira-consulta form.form-grid .filtros-acoes button.botao-filtrar-lixeira{
        width:100% !important;
        min-width:0 !important;
        max-width:none !important;
    }
}



/* ===== v303 - Configuração de E-mail: corrige sem aumentar o campo =====
   Ajuste restrito ao card "Enviar e-mail de teste". O campo volta ao tamanho natural
   do sistema; somente o botão Enviar teste é redimensionado e alinhado ao campo. */
html body.app-layout .card-email-teste form.email-teste-inline{
    align-items:flex-start !important;
}

html body.app-layout .card-email-teste form.email-teste-inline input[name="email_teste"]{
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    padding:10px 12px !important;
    box-sizing:border-box !important;
}

html body.app-layout .card-email-teste form.email-teste-inline .email-teste-label-spacer{
    height:20px !important;
    min-height:20px !important;
    max-height:20px !important;
    flex:0 0 20px !important;
}

html body.app-layout .card-email-teste form.email-teste-inline .ajuste-botao-enviar-teste{
    justify-content:flex-start !important;
    align-items:center !important;
    align-self:flex-start !important;
    padding-top:0 !important;
    margin-top:0 !important;
    min-height:auto !important;
    width:auto !important;
}

html body.app-layout .card-email-teste form.email-teste-inline button.botao-enviar-teste{
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    box-sizing:border-box !important;
    padding:0 22px !important;
    margin:0 !important;
    line-height:1 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    white-space:nowrap !important;
}

@media screen and (max-width:640px){
    html body.app-layout .card-email-teste form.email-teste-inline .ajuste-botao-enviar-teste,
    html body.app-layout .card-email-teste form.email-teste-inline button.botao-enviar-teste{
        width:100% !important;
    }
}


/* ===== v304: Cadastro - redimensionar somente o botão Cadastrar, sem aumentar campos ===== */
html body.app-layout .card-novo-cadastro form#form-novo-cadastro > div.ajuste-botao-cadastrar-cadastro{
    width:100% !important;
    display:flex !important;
    align-items:flex-end !important;
    justify-content:flex-start !important;
    align-self:end !important;
    padding-top:0 !important;
    margin-top:0 !important;
}

html body.app-layout .card-novo-cadastro form#form-novo-cadastro > div.ajuste-botao-cadastrar-cadastro > button.botao-cadastrar-cadastro{
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    min-width:136px !important;
    box-sizing:border-box !important;
    padding:0 20px !important;
    margin:0 !important;
    line-height:1 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    white-space:nowrap !important;
}

@media screen and (max-width:640px){
    html body.app-layout .card-novo-cadastro form#form-novo-cadastro > div.ajuste-botao-cadastrar-cadastro{
        justify-content:center !important;
    }

    html body.app-layout .card-novo-cadastro form#form-novo-cadastro > div.ajuste-botao-cadastrar-cadastro > button.botao-cadastrar-cadastro{
        width:100% !important;
        max-width:280px !important;
    }
}


/* ===== v305: padronização de botões em formulários sem aumentar os campos ===== */
html body.app-layout .card-config-email form.form-grid > div.ajuste-botao-salvar-config,
html body.app-layout .card-configuracoes-sistema-antigo form.form-grid > div.ajuste-botao-salvar-sistema,
html body.app-layout .card-backup-agendamento form.form-grid > div.ajuste-botao-salvar-agendamento,
html body.app-layout .import-form-modern > div.ajuste-botao-pre-importacao{
    width:100% !important;
    display:flex !important;
    align-items:flex-end !important;
    justify-content:flex-start !important;
    align-self:end !important;
    padding-top:0 !important;
    margin-top:0 !important;
}

html body.app-layout .form-senha-inline .ajuste-botao-senha,
html body.app-layout .form-novo-usuario-inline .ajuste-botao-criar-usuario{
    flex:0 0 auto !important;
    display:flex !important;
    align-items:flex-end !important;
    justify-content:center !important;
    align-self:flex-end !important;
    padding-top:0 !important;
    margin-top:0 !important;
    width:auto !important;
}

html body.app-layout .botao-alterar-senha,
html body.app-layout .botao-criar-usuario,
html body.app-layout .botao-salvar-config,
html body.app-layout .botao-salvar-sistema,
html body.app-layout .botao-salvar-agendamento,
html body.app-layout .botao-pre-importacao{
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    box-sizing:border-box !important;
    padding:0 20px !important;
    margin:0 !important;
    line-height:1 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    white-space:nowrap !important;
    text-align:center !important;
}

html body.app-layout .botao-alterar-senha,
html body.app-layout .botao-criar-usuario{
    min-width:148px !important;
}

html body.app-layout .botao-salvar-config,
html body.app-layout .botao-salvar-sistema{
    min-width:210px !important;
}

html body.app-layout .botao-salvar-agendamento{
    min-width:205px !important;
}

html body.app-layout .botao-pre-importacao{
    min-width:225px !important;
}

@media screen and (max-width:640px){
    html body.app-layout .form-senha-inline .ajuste-botao-senha,
    html body.app-layout .form-novo-usuario-inline .ajuste-botao-criar-usuario,
    html body.app-layout .card-config-email form.form-grid > div.ajuste-botao-salvar-config,
    html body.app-layout .card-configuracoes-sistema-antigo form.form-grid > div.ajuste-botao-salvar-sistema,
    html body.app-layout .card-backup-agendamento form.form-grid > div.ajuste-botao-salvar-agendamento,
    html body.app-layout .import-form-modern > div.ajuste-botao-pre-importacao{
        width:100% !important;
        justify-content:center !important;
    }

    html body.app-layout .botao-alterar-senha,
    html body.app-layout .botao-criar-usuario,
    html body.app-layout .botao-salvar-config,
    html body.app-layout .botao-salvar-sistema,
    html body.app-layout .botao-salvar-agendamento,
    html body.app-layout .botao-pre-importacao{
        width:100% !important;
        max-width:280px !important;
    }
}


/* ===== v306: Usuários - botão Criar usuário na mesma altura dos campos ===== */
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline{
    align-items:flex-end !important;
}

html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > div.ajuste-botao-criar-usuario{
    flex:0 0 auto !important;
    display:flex !important;
    align-items:flex-end !important;
    justify-content:center !important;
    align-self:flex-end !important;
    padding-top:0 !important;
    margin-top:0 !important;
    width:auto !important;
}

html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > div.ajuste-botao-criar-usuario > button.botao-criar-usuario{
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    box-sizing:border-box !important;
    padding:0 22px !important;
    margin:0 !important;
    line-height:1 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    white-space:nowrap !important;
    text-align:center !important;
}

@media screen and (max-width:640px){
    html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > div.ajuste-botao-criar-usuario,
    html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > div.ajuste-botao-criar-usuario > button.botao-criar-usuario{
        width:100% !important;
    }
}


/* ===== v308: padroniza campos SELECT sem aumentar os outros campos =====
   Corrige a diferença visual dos selects do Windows/Chrome:
   - Perfil e Status em Usuários;
   - filtros do Cadastro e Lixeira;
   - TLS, Complexidade, Backups e Importação.
   Ajuste visual apenas nos selects. Não altera inputs, botões, banco, SMTP ou permissões. */
html body.app-layout form select{
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    box-sizing:border-box !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    padding-left:12px !important;
    padding-right:36px !important;
    line-height:42px !important;
    font:inherit !important;
    border:1px solid #cddce7 !important;
    border-radius:13px !important;
    background-color:#ffffff !important;
    color:var(--text) !important;
    text-align:center !important;
    text-align-last:center !important;
    appearance:none !important;
    -webkit-appearance:none !important;
    -moz-appearance:none !important;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16'%3E%3Cpath fill='%230f172a' d='M4.22 6.27a.75.75 0 0 1 1.06 0L8 8.69l2.72-2.72a.75.75 0 1 1 1.06 1.06L8.53 10.28a.75.75 0 0 1-1.06 0L4.22 7.03a.75.75 0 0 1 0-1.06z'/%3E%3C/svg%3E") !important;
    background-repeat:no-repeat !important;
    background-position:right 12px center !important;
    background-size:14px 14px !important;
}

/* Mantém os selects do Novo usuário exatamente dentro da coluna, sem parecerem maiores que os inputs. */
html body.app-layout .card-novo-usuario .form-novo-usuario-inline select{
    width:100% !important;
    max-width:100% !important;
}

/* Edição de usuários: Perfil e Status seguem a mesma altura dos campos de texto. */
html body.app-layout .card-usuarios-cadastrados .usuario-editor-box form select{
    width:100% !important;
    max-width:100% !important;
}

/* Impede que regras antigas de .form-grid select voltem a aplicar padding maior. */
html body.app-layout .form-grid select{
    padding-top:0 !important;
    padding-bottom:0 !important;
    padding-left:12px !important;
    padding-right:36px !important;
}


/* ===== v309: botões ao lado de campos acompanhando a altura dos inputs/selects =====
   Regra restrita aos botões de formulário que ficam na mesma linha de campos.
   Não altera botões de tabela, Lixeira, botões pequenos de ações, banco, SMTP, senha ou permissões. */
html body.app-layout button.botao-form-linha,
html body.app-layout .button.botao-form-linha{
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    box-sizing:border-box !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    padding-left:20px !important;
    padding-right:20px !important;
    margin:0 !important;
    line-height:1 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    white-space:nowrap !important;
    vertical-align:middle !important;
}

/* Reforço para os botões existentes que ficam ao lado de campos, mesmo se algum template antigo perder a classe comum. */
html body.app-layout button.botao-criar-usuario,
html body.app-layout button.botao-alterar-senha,
html body.app-layout button.botao-salvar-config,
html body.app-layout button.botao-enviar-teste,
html body.app-layout button.botao-salvar-sistema,
html body.app-layout button.botao-salvar-agendamento,
html body.app-layout button.botao-pre-importacao{
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    box-sizing:border-box !important;
    padding:0 20px !important;
    line-height:1 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    white-space:nowrap !important;
}

@media screen and (max-width:640px){
    html body.app-layout button.botao-form-linha{
        width:100% !important;
        max-width:280px !important;
    }
}


/* ===== v310: neutralização final das regras antigas de botões maiores =====
   Remove na prática os 48px/46px que ainda venciam a v309.
   Mantém os botões de formulário alinhados aos campos/selects de 42px.
   Não altera Lixeira, botões de tabela, banco, SMTP, senha, permissões ou rotas. */

/* Usuários > Novo usuário */
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > div.ajuste-botao-criar-usuario,
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > div.ajuste-botao-criar-usuario > button.botao-criar-usuario{
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    align-self:flex-end !important;
    align-items:center !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
}

/* Configuração de E-mail > Salvar configurações / Enviar teste */
html body.app-layout .card-config-email form.form-grid button.botao-salvar-config,
html body.app-layout .card-email-teste form.email-teste-inline button.botao-enviar-teste{
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
}

/* Cadastro > Filtros avançados: Filtrar e Limpar continuam idênticos, agora acompanhando os selects. */
html body.app-layout .card-filtros-avancados form.form-grid .filtros-acoes > button.botao-filtrar-ajustado,
html body.app-layout .card-filtros-avancados form.form-grid .filtros-acoes > a.botao-limpar-ajustado{
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
}

/* Configurações completas > Salvar configurações do sistema */
html body.app-layout .card-configuracoes-sistema-antigo form.config-form button.primary-button.botao-form-linha{
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    padding:0 20px !important;
    line-height:1 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
}

/* Usuários cadastrados / edição: botões finais têm regra própria, não acompanham campos. */
html body.app-layout .card-usuarios-cadastrados .usuario-editor-box .form-actions{
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    gap:10px !important;
    margin-top:18px !important;
}

html body.app-layout .card-usuarios-cadastrados .usuario-editor-box .form-actions button,
html body.app-layout .card-usuarios-cadastrados .usuario-editor-box .form-actions .secondary-button{
    height:44px !important;
    min-height:44px !important;
    max-height:44px !important;
    padding:0 22px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    line-height:1 !important;
    box-sizing:border-box !important;
}


/* ===== v311: Usuários cadastrados - botões finais com regra própria =====
   Salvar alterações e Cancelar são ações finais do formulário, não botões ao lado de campo.
   Mantém os dois iguais entre si, com destaque próprio, sem alterar selects/campos. */
html body.app-layout .card-usuarios-cadastrados .usuario-editor-box .form-actions{
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    gap:10px !important;
    margin-top:18px !important;
}

html body.app-layout .card-usuarios-cadastrados .usuario-editor-box .form-actions button,
html body.app-layout .card-usuarios-cadastrados .usuario-editor-box .form-actions .secondary-button{
    height:44px !important;
    min-height:44px !important;
    max-height:44px !important;
    padding:0 22px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    line-height:1 !important;
    box-sizing:border-box !important;
    white-space:nowrap !important;
}


/* ===== v312: E-mail de teste - campo e botão com mesma altura e topo alinhado =====
   Corrige o desalinhamento visual entre o input "E-mail para teste" e o botão "Enviar teste".
   Ajuste restrito ao card de teste de e-mail. Não altera SMTP, senha, banco, permissões ou rotas. */
html body.app-layout .card-email-teste form.email-teste-inline{
    align-items:flex-start !important;
}

html body.app-layout .card-email-teste form.email-teste-inline input[name="email_teste"]{
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    box-sizing:border-box !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    padding-left:12px !important;
    padding-right:12px !important;
    line-height:42px !important;
}

html body.app-layout .card-email-teste form.email-teste-inline .email-teste-label-spacer{
    height:24px !important;
    min-height:24px !important;
    max-height:24px !important;
    flex:0 0 24px !important;
}

html body.app-layout .card-email-teste form.email-teste-inline .ajuste-botao-enviar-teste{
    justify-content:flex-start !important;
    align-items:center !important;
    align-self:flex-start !important;
    padding-top:0 !important;
    margin-top:0 !important;
    width:auto !important;
}

html body.app-layout .card-email-teste form.email-teste-inline button.botao-enviar-teste{
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    box-sizing:border-box !important;
    padding:0 20px !important;
    margin:0 !important;
    line-height:1 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    white-space:nowrap !important;
}


/* ===== v313: botões ao lado de campos de arquivo - regra própria =====
   Corrige somente os 3 casos aceitos:
   1) Backups > Restaurar backup manual de uma pasta ou pendrive.
   2) Configuração do Sistema > Backup Administrativo.
   3) Configurações completas > Backup Administrativo.
   Não altera Importação, Lixeira, Cadastro, banco, SMTP, senha, permissões ou rotas. */

/* 1) Backups > Restaurar backup externo: botão acompanha a área do seletor de arquivo. */
html body.app-layout .card-restaurar-backup-externo form.backup-externo-form{
    align-items:end !important;
}

html body.app-layout .card-restaurar-backup-externo .backup-file-picker{
    min-height:58px !important;
}

html body.app-layout .card-restaurar-backup-externo .backup-externo-acao{
    display:flex !important;
    align-items:flex-end !important;
    justify-content:center !important;
    padding-bottom:18px !important;
}

html body.app-layout .card-restaurar-backup-externo .backup-externo-acao button{
    height:58px !important;
    min-height:58px !important;
    max-height:58px !important;
    width:100% !important;
    box-sizing:border-box !important;
    padding:0 20px !important;
    margin:0 !important;
    line-height:1 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    white-space:nowrap !important;
}

/* 2) Configuração do Sistema > Backup Administrativo: escolher JSON e importar com a mesma altura. */
html body.app-layout .card-configuracoes-sistema-antigo form.backup-admin-import-inline{
    align-items:center !important;
}

html body.app-layout .card-configuracoes-sistema-antigo form.backup-admin-import-inline .backup-admin-file-button,
html body.app-layout .card-configuracoes-sistema-antigo form.backup-admin-import-inline button[type="submit"]{
    height:46px !important;
    min-height:46px !important;
    max-height:46px !important;
    box-sizing:border-box !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;
    line-height:1 !important;
    white-space:nowrap !important;
}

/* 3) Configurações completas > Backup Administrativo: escolher JSON e importar com a mesma altura. */
html body.app-layout .card-configuracoes-sistema-antigo form.admin-import-box{
    align-items:center !important;
}

html body.app-layout .card-configuracoes-sistema-antigo form.admin-import-box .backup-admin-file-button,
html body.app-layout .card-configuracoes-sistema-antigo form.admin-import-box .warning-button{
    height:46px !important;
    min-height:46px !important;
    max-height:46px !important;
    box-sizing:border-box !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;
    line-height:1 !important;
    white-space:nowrap !important;
}

@media screen and (max-width:820px){
    html body.app-layout .card-restaurar-backup-externo .backup-externo-acao{
        padding-bottom:0 !important;
    }
}


/* ===== v317: Armazenamento do Banco de Dados - layout seguro seguindo padrão do sistema ===== */
.card-local-banco .hint{
    margin-bottom:16px !important;
}

.banco-status-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:12px;
    margin:14px 0 18px;
}

.banco-status-item{
    border:1px solid #dce8ef;
    border-radius:14px;
    background:#f7fbfd;
    padding:12px 14px;
    min-width:0;
}

.banco-status-item span{
    display:block;
    color:#6b7280;
    font-size:12px;
    font-weight:900;
    margin-bottom:5px;
}

.banco-status-item strong{
    display:block;
    color:#2f3742;
    font-size:13px;
    line-height:1.35;
    overflow-wrap:anywhere;
}

.form-local-banco{
    margin-top:10px;
}

.local-banco-grid{
    grid-template-columns:2fr 1fr !important;
    align-items:end !important;
}

.campo-local-banco{
    min-width:0;
}

.campo-local-banco input{
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    box-sizing:border-box !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
}

.campo-local-banco small,
.local-banco-info{
    display:block;
    margin-top:7px;
    color:#6b7280;
    font-size:12px;
    font-weight:800;
    line-height:1.35;
}

.local-banco-info{
    border:1px solid #dce8ef;
    border-radius:13px;
    background:#ffffff;
    padding:10px 12px;
    min-height:42px;
}

.local-banco-actions,
.local-banco-actions-inline{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex-wrap:wrap !important;
    gap:10px !important;
    margin-top:16px !important;
}

.local-banco-actions-inline{
    align-self:end !important;
    margin-top:0 !important;
}

.botao-local-banco{
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    box-sizing:border-box !important;
    padding:0 18px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    line-height:1 !important;
    white-space:nowrap !important;
}

html body.app-layout .card-local-banco form.form-grid,
html body.app-layout .card-local-banco form.config-form .form-grid{
    align-items:end !important;
}

@media screen and (max-width:900px){
    .banco-status-grid,
    .local-banco-grid{
        grid-template-columns:1fr !important;
    }

    .local-banco-actions,
    .local-banco-actions-inline{
        justify-content:stretch !important;
    }

    .botao-local-banco{
        width:100% !important;
        max-width:none !important;
    }
}


/* v317 complemento: impede desalinhamento do formulário simples do local do banco. */
html body.app-layout .card-local-banco form.form-grid.form-local-banco{
    grid-template-columns:minmax(0, 1fr) auto !important;
    align-items:end !important;
    gap:14px !important;
}

html body.app-layout .card-local-banco form.form-grid.form-local-banco > .campo-local-banco{
    min-width:0 !important;
}

html body.app-layout .card-local-banco form.form-grid.form-local-banco > .local-banco-actions-inline{
    width:auto !important;
    min-width:0 !important;
}

@media screen and (max-width:900px){
    html body.app-layout .card-local-banco form.form-grid.form-local-banco{
        grid-template-columns:1fr !important;
    }

    html body.app-layout .card-local-banco form.form-grid.form-local-banco > .local-banco-actions-inline{
        width:100% !important;
    }
}


/* ===== v318: Armazenamento do Banco de Dados - seletor de base e correção de textos encavalados ===== */
.banco-status-grid{
    grid-template-columns:minmax(0, 1.8fr) minmax(180px, 1fr) minmax(180px, 1fr);
}

.banco-status-item{
    min-height:96px;
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
}

.banco-status-item strong{
    font-size:12.5px;
    line-height:1.45;
    word-break:break-word;
}

.local-banco-grid{
    grid-template-columns:minmax(0, 2fr) minmax(280px, 1fr) !important;
    gap:18px !important;
}

.campo-local-banco small,
.local-banco-info{
    line-height:1.5;
}

.local-banco-escolha{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    margin-top:10px;
}

.botao-local-banco-escolha{
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    box-sizing:border-box !important;
    padding:0 16px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    line-height:1 !important;
    white-space:nowrap !important;
}

.local-banco-actions{
    margin-top:18px !important;
}

.local-banco-actions-inline{
    width:100% !important;
    justify-content:flex-start !important;
}

@media screen and (max-width:1100px){
    .banco-status-grid{
        grid-template-columns:1fr !important;
    }

    .banco-status-item{
        min-height:auto;
    }

    .local-banco-grid{
        grid-template-columns:1fr !important;
    }

    .local-banco-actions-inline{
        justify-content:center !important;
    }
}


/* ===== v320: Armazenamento do Banco - permissão e senha nas ações críticas ===== */
.local-banco-senha-aviso{
    color:#92400e !important;
    font-weight:900 !important;
}

.campo-senha-local-banco{
    display:none !important;
}


/* ===== v321: Armazenamento do Banco - respiro abaixo do texto explicativo ===== */
.card-local-banco > .hint,
.card-local-banco p.hint{
    margin-top:6px !important;
    margin-bottom:22px !important;
    line-height:1.5 !important;
}


/* ===== v322: centralização apenas dos campos da foto e retorno mais claro no testar ===== */
.banco-status-item-centralizado{
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
}

.banco-status-item-centralizado span,
.banco-status-item-centralizado strong{
    width:100%;
    text-align:center !important;
}


/* ===== v323: resultado do Testar local dentro do bloco Armazenamento do Banco ===== */
.local-banco-resultado{
    width:100%;
    box-sizing:border-box;
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin:16px auto 0;
    padding:12px 14px;
    border-radius:14px;
    border:1px solid #e1f5f3;
    background:#eef9f8;
    color:#12366f;
    font-weight:800;
    line-height:1.45;
}

.local-banco-resultado i{
    font-size:18px;
    margin-top:1px;
    flex:0 0 auto;
}

.local-banco-resultado strong{
    display:block;
    font-size:13px;
    margin-bottom:3px;
}

.local-banco-resultado span{
    display:block;
    overflow-wrap:anywhere;
    word-break:break-word;
    font-size:13px;
}

.local-banco-resultado.ok{
    border-color:#bbf7d0;
    background:#f0fdf4;
    color:#166534;
}

.local-banco-resultado.erro{
    border-color:#fecaca;
    background:#fef2f2;
    color:#991b1b;
}

/* ===== v327/v328/v329: Armazenamento do Banco - aviso Uso em rede horizontal e discreto ===== */
.local-banco-aviso-rede{
    grid-column:1 / -1 !important;
    justify-self:start !important;
    width:fit-content !important;
    max-width:100% !important;
    box-sizing:border-box;
    display:flex;
    align-items:flex-start;
    gap:8px;
    margin:12px 0 0;
    padding:8px 11px;
    border:1px solid #dce8ef;
    border-radius:13px;
    background:#ffffff;
    color:#6b7280;
    font-size:12.5px;
    font-weight:800;
    line-height:1.45;
}

.local-banco-aviso-rede i{
    font-size:15px;
    margin-top:1px;
    color:#6b7280;
    flex:0 0 auto;
}

.local-banco-aviso-rede strong{
    color:#3b414a;
    font-weight:900;
}

.local-banco-aviso-rede span{
    overflow-wrap:anywhere;
    word-break:break-word;
}

/* v351 — configuração SQLite/PostgreSQL */
.postgresql-grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.postgresql-bin-field { grid-column: span 2; }
.postgresql-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.banco-duplo-aviso, .banco-duplo-aviso-postgresql { margin-top:16px; }
#postgresql-banco-dados { border-top:4px solid #0f9f9a; }
#local-banco-dados { border-top:4px solid #5f6b75; }
@media screen and (max-width: 760px){ .postgresql-bin-field { grid-column: span 1; } }

/* ===== v353: PostgreSQL - alinhamento superior dos campos =====
   O card reutiliza a classe card-local-banco, cuja regra antiga alinhava os
   itens pelo rodapé. Como o campo Senha possui texto auxiliar, o campo SSL era
   empurrado para baixo. Esta regra é restrita ao formulário PostgreSQL. */
html body.app-layout #postgresql-banco-dados form.postgresql-config-form .form-grid.postgresql-grid{
    align-items:start !important;
}

html body.app-layout #postgresql-banco-dados form.postgresql-config-form .form-grid.postgresql-grid > .form-group{
    align-self:start !important;
    justify-content:flex-start !important;
    margin-top:0 !important;
}

html body.app-layout #postgresql-banco-dados form.postgresql-config-form .form-grid.postgresql-grid input,
html body.app-layout #postgresql-banco-dados form.postgresql-config-form .form-grid.postgresql-grid select{
    min-height:42px !important;
    box-sizing:border-box !important;
}

/* ===== v359: PostgreSQL automático, resultado legível e botão compacto ===== */
.postgresql-teste-conexao{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:12px;
    margin-top:16px;
}

.postgresql-teste-acoes{
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:center;
    gap:12px;
    flex-wrap:nowrap;
    width:100%;
}

.postgresql-teste-acoes > button{
    width:auto;
    min-width:0;
    min-height:52px !important;
    padding-left:20px !important;
    padding-right:20px !important;
    white-space:nowrap;
    box-sizing:border-box;
}

.postgresql-teste-ajuda{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:0;
    width:100%;
    text-align:center;
}

.postgresql-teste-conexao small{
    color:#6b7280;
    line-height:1.45;
}

.postgresql-test-button,
.postgresql-create-button{
    min-height:42px !important;
    padding:0 18px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;
}

.postgresql-test-button.primary-button,
.postgresql-create-button.primary-button{
    background:linear-gradient(135deg,#12366f,#0f9f9a,#20b8b1) !important;
    color:#ffffff !important;
    border:0 !important;
    box-shadow:0 6px 14px rgba(15,159,154,.20) !important;
}

.postgresql-test-button.primary-button:hover,
.postgresql-create-button.primary-button:hover{
    box-shadow:0 9px 18px rgba(15,159,154,.27) !important;
}

.postgresql-create-button.secondary-button{
    box-shadow:none !important;
}

.postgresql-teste-resultado{
    margin-top:12px;
}

.migracao-automatica-box{
    margin-top:18px;
    padding:16px;
    border:1px solid #e5e7eb;
    border-radius:17px;
    background:#f7fbfd;
}

.migracao-automatica-texto{
    display:flex;
    flex-direction:column;
    gap:5px;
    margin-bottom:13px;
}

.migracao-automatica-texto strong{
    color:#12366f;
    font-size:16px;
    font-weight:900;
}

.migracao-automatica-texto span{
    color:#6b7280;
    line-height:1.5;
}

.migracao-automatica-button{
    width:auto;
    max-width:100%;
    min-height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    margin:0 auto;
    padding:10px 18px;
    border:0;
    border-radius:12px;
    background:linear-gradient(135deg, #12366f 0%, #0f9f9a 58%, #20b8b1 100%);
    color:#ffffff;
    font-size:15px;
    font-weight:850;
    letter-spacing:.05px;
    box-shadow:0 6px 14px rgba(15,159,154,.20);
    cursor:pointer;
    transition:transform .15s ease, box-shadow .15s ease, filter .15s ease;
}

.migracao-automatica-button:hover{
    transform:translateY(-1px);
    box-shadow:0 11px 22px rgba(15,159,154,.28);
    filter:brightness(1.02);
}

.migracao-automatica-button:focus-visible{
    outline:3px solid rgba(15,159,154,.25);
    outline-offset:3px;
}

.migracao-automatica-button-voltar{
    background:linear-gradient(135deg, #3b414a, #0f9f9a);
    box-shadow:0 8px 18px rgba(15,159,154,.20);
}

.migracao-automatica-button-voltar:hover{
    box-shadow:0 11px 22px rgba(15,159,154,.27);
}

.migracao-automatica-observacao{
    display:flex;
    align-items:flex-start;
    gap:7px;
    margin-top:12px;
    color:#6b7280;
    line-height:1.45;
}

.migracao-automatica-observacao i{
    flex:0 0 auto;
    margin-top:1px;
    color:#247047;
}

.postgresql-opcoes-avancadas{
    margin-top:14px;
    border:1px solid #e5e7eb;
    border-radius:14px;
    background:#ffffff;
    overflow:hidden;
}

.postgresql-opcoes-avancadas summary{
    padding:12px 14px;
    color:#6b7280;
    font-weight:800;
    cursor:pointer;
    user-select:none;
}

.postgresql-opcoes-avancadas[open] summary{
    border-bottom:1px solid #edf0f3;
}

.postgresql-opcoes-avancadas .postgresql-actions{
    padding:14px;
}

/* ===== v376: três ações PostgreSQL em uma única linha no computador ===== */
@media screen and (max-width: 1050px){
    .postgresql-teste-acoes{
        flex-wrap:wrap;
    }
}

@media screen and (max-width: 640px){
    .migracao-automatica-box{
        padding:13px;
    }

    .migracao-automatica-button{
        width:100%;
        min-height:44px;
        padding:10px 12px;
        font-size:14px;
    }

    .postgresql-teste-acoes{
        flex-direction:column;
        align-items:stretch;
        width:100%;
    }

    .postgresql-teste-acoes > button{
        width:100%;
        min-width:0;
    }

    .postgresql-teste-ajuda{
        min-height:0;
        text-align:left;
        justify-content:flex-start;
    }
}


/* ===== v360 - Confirmação segura das ações de banco ===== */
.modal-confirmacao-banco .modal-confirmacao-card{
    border-color:#c6e9e6;
    box-shadow:0 28px 80px rgba(15, 23, 42, .32);
}

.modal-confirmacao-banco .modal-confirmacao-header h2{
    color:#12366f;
}

.banco-confirmacao-eyebrow{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:#087f82;
    background:#e9f8f7;
    border:1px solid #c6e9e6;
    padding:4px 8px;
    border-radius:999px;
    font-weight:800;
    font-size:.78rem;
}

.modal-confirmacao-banco .modal-confirmacao-card label{
    color:#12366f;
}

.modal-confirmacao-banco .modal-confirmacao-card input[type="password"]{
    border-color:#a9deda !important;
    background:#f7fbfd;
}

.modal-confirmacao-banco .modal-confirmacao-card input[type="password"]:focus{
    outline:none;
    border-color:#0f9f9a !important;
    box-shadow:0 0 0 4px rgba(15, 159, 154, .14);
}

.modal-confirmacao-erro{
    min-height:20px;
    margin:7px 0 0;
    color:#b91c1c;
    font-weight:700;
    font-size:.9rem;
}

/* ===== v364: criação confirmada da base PostgreSQL após o teste ===== */
.modal-base-postgresql-card{
    border-color:#caece9 !important;
    box-shadow:0 28px 80px rgba(15, 159, 154, .24) !important;
}

.modal-base-postgresql-card .modal-confirmacao-header h2{
    color:#087f82 !important;
}

.modal-base-postgresql-card .banco-confirmacao-eyebrow{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:#087f82;
    background:#e6f7f6;
    border:1px solid #caece9;
    padding:4px 9px;
    border-radius:999px;
    font-weight:800;
}

.modal-base-postgresql-pergunta{
    margin:4px 0 14px;
    color:#2f3742;
    font-weight:800;
}

.modal-base-postgresql-detalhes{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:10px;
    margin:12px 0 14px;
}

.modal-base-postgresql-detalhes > div{
    display:flex;
    flex-direction:column;
    gap:4px;
    padding:11px 12px;
    border:1px solid #caece9;
    border-radius:12px;
    background:#f0f9ff;
    min-width:0;
}

.modal-base-postgresql-detalhes span{
    color:#6b7280;
    font-size:.78rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.03em;
}

.modal-base-postgresql-detalhes strong{
    color:#087f82;
    overflow-wrap:anywhere;
}

.modal-base-postgresql-observacao,
.permissao-postgresql-aviso{
    display:flex;
    align-items:flex-start;
    gap:8px;
    width:100%;
    box-sizing:border-box;
    padding:10px 12px;
    border-radius:12px;
    line-height:1.4;
}

.modal-base-postgresql-observacao{
    margin:0 0 14px;
    color:#164e63;
    background:#ecfeff;
    border:1px solid #a5f3fc;
}

.permissao-postgresql-aviso{
    color:#92400e;
    background:#fffbeb;
    border:1px solid #fde68a;
    font-size:.9rem;
}

@media screen and (max-width:620px){
    .modal-base-postgresql-detalhes{
        grid-template-columns:1fr;
    }
}

/* ===== v365: alinhamento exato dos botões da janela de criação PostgreSQL ===== */
.modal-base-postgresql-card .modal-confirmacao-actions{
    align-items:center !important;
    justify-content:center !important;
}

.modal-base-postgresql-card .modal-confirmacao-actions > button{
    height:46px !important;
    min-height:46px !important;
    max-height:46px !important;
    box-sizing:border-box !important;
    margin:0 !important;
    padding:0 18px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    line-height:1 !important;
    font-size:15px !important;
    vertical-align:middle !important;
}

.modal-base-postgresql-card .modal-confirmacao-actions > button i{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    line-height:1 !important;
}

@media screen and (max-width:560px){
    .modal-base-postgresql-card .modal-confirmacao-actions > button{
        width:100% !important;
    }
}


/* ===== v375: base PostgreSQL existente e modos seguros de migração ===== */
.postgresql-connect-existing-button{
    min-height:42px !important;
    padding:0 18px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;
}

.postgresql-connect-existing-button.primary-button{
    background:linear-gradient(135deg,#166534,#15803d,#16a34a) !important;
    color:#fff !important;
    border:0 !important;
    box-shadow:0 6px 14px rgba(22,101,52,.22) !important;
}

.postgresql-connect-existing-button.primary-button:hover{
    box-shadow:0 9px 18px rgba(22,101,52,.30) !important;
}

.migracao-modos{
    margin:0 0 16px;
    padding:0;
    border:0;
}

.migracao-modos legend{
    margin:0 0 10px;
    color:#3b414a;
    font-weight:900;
    font-size:14px;
}

.migracao-modo-card{
    display:flex;
    align-items:flex-start;
    gap:11px;
    width:100%;
    box-sizing:border-box;
    margin:9px 0;
    padding:14px;
    border:1px solid #cddce7;
    border-radius:14px;
    background:#fff;
    cursor:pointer;
}

.migracao-modo-card:has(input:checked){
    border-color:#0f9f9a;
    box-shadow:0 0 0 3px rgba(15,159,154,.10);
}

.migracao-modo-card:has(input:disabled){
    opacity:.62;
    cursor:not-allowed;
}

.migracao-modo-card input[type="radio"]{
    width:18px !important;
    min-width:18px;
    height:18px;
    margin:2px 0 0;
    padding:0;
}

.migracao-modo-conteudo{
    display:flex;
    flex-direction:column;
    gap:5px;
}

.migracao-modo-conteudo strong{
    display:flex;
    align-items:center;
    gap:7px;
    color:#2f3742;
    line-height:1.3;
}

.migracao-modo-conteudo small{
    color:#6b7280;
    line-height:1.45;
}

.migracao-modo-seguro:has(input:checked){
    border-color:#16a34a;
    background:#f0fdf4;
    box-shadow:0 0 0 3px rgba(22,163,74,.10);
}

.migracao-modo-seguro .bi{
    color:#15803d;
}

.migracao-modo-perigo:has(input:checked){
    border-color:#dc2626;
    background:#fff7f7;
    box-shadow:0 0 0 3px rgba(220,38,38,.10);
}

.migracao-modo-perigo .bi{
    color:#b91c1c;
}

.postgresql-resultado-conteudo{
    min-width:0;
    width:100%;
}

.migracao-relatorio-aviso{
    display:flex;
    align-items:flex-start;
    gap:7px;
    margin-top:12px;
    color:#7c2d12;
    font-weight:750;
    line-height:1.4;
}

.migracao-relatorio-wrap{
    width:100%;
    margin-top:12px;
    overflow-x:auto;
    border:1px solid rgba(148,163,184,.45);
    border-radius:12px;
    background:#fff;
}

.migracao-relatorio-tabela{
    width:100%;
    min-width:860px;
    border-collapse:collapse;
    font-size:13px;
}

.migracao-relatorio-tabela th,
.migracao-relatorio-tabela td{
    padding:9px 10px;
    border-bottom:1px solid #dce8ef;
    text-align:right;
    white-space:nowrap;
}

.migracao-relatorio-tabela th:first-child,
.migracao-relatorio-tabela td:first-child{
    text-align:left;
    font-weight:800;
}

.migracao-relatorio-tabela thead th{
    background:#f7fbfd;
    color:#3b414a;
    font-weight:900;
}

.migracao-relatorio-tabela tbody tr:last-child td{
    border-bottom:0;
}

@media screen and (max-width:640px){
    .migracao-modo-card{
        padding:12px;
    }
}

/* ===== v377: seções recolhíveis na configuração SQLite/PostgreSQL ===== */
details.banco-recolhivel{
    padding:0 !important;
    overflow:hidden;
}

.banco-recolhivel-summary,
.banco-subsecao-summary{
    list-style:none;
    cursor:pointer;
    user-select:none;
}

.banco-recolhivel-summary::-webkit-details-marker,
.banco-subsecao-summary::-webkit-details-marker{
    display:none;
}

.banco-recolhivel-summary::marker,
.banco-subsecao-summary::marker{
    content:"";
}

.banco-recolhivel-summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    min-height:64px;
    padding:16px 22px;
    box-sizing:border-box;
    background:linear-gradient(135deg,#f7fbfd,#eef9f8);
    color:#12366f;
    border-bottom:1px solid transparent;
    transition:background .16s ease, border-color .16s ease;
}

.banco-recolhivel-summary:hover{
    background:linear-gradient(135deg,#f2f7f9,#edf8f7);
}

.banco-recolhivel-summary:focus-visible,
.banco-subsecao-summary:focus-visible{
    outline:3px solid rgba(15,159,154,.22);
    outline-offset:-3px;
}

details.banco-recolhivel[open] > .banco-recolhivel-summary{
    border-bottom-color:#dbe5f0;
}

.banco-recolhivel-titulo{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
    color:#12366f;
    font-size:17px;
    font-weight:950;
}

.banco-recolhivel-titulo > i{
    flex:0 0 auto;
    color:#0f9f9a;
    font-size:19px;
}

#local-banco-dados > .banco-recolhivel-summary .banco-recolhivel-titulo > i{
    color:#6b7280;
}

.banco-recolhivel-meta,
.banco-subsecao-meta{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    min-width:0;
}

.banco-recolhivel-resumo{
    max-width:680px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    padding:6px 10px;
    border:1px solid #d7e2ee;
    border-radius:999px;
    background:#ffffff;
    color:#6b7280;
    font-size:12px;
    font-weight:800;
}

.banco-recolhivel-seta{
    flex:0 0 auto;
    color:#6b7280;
    font-size:17px;
    transition:transform .18s ease;
}

details[open] > summary .banco-recolhivel-seta{
    transform:rotate(180deg);
}

.banco-recolhivel-conteudo{
    padding:22px 24px 24px;
}

.banco-recolhivel-conteudo > .hint:first-child{
    margin-top:0;
}

.banco-subsecao-recolhivel{
    margin-top:18px;
    border:1px solid #dbe5f0;
    border-radius:16px;
    background:#f7fbfd;
    overflow:hidden;
}

.banco-subsecao-summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    min-height:68px;
    padding:14px 16px;
    box-sizing:border-box;
    background:linear-gradient(135deg,#f7fbfd,#eef9f8);
    color:#12366f;
    transition:background .16s ease;
}

.banco-subsecao-summary:hover{
    background:linear-gradient(135deg,#f2f7f9,#edf8f7);
}

.banco-subsecao-recolhivel[open] > .banco-subsecao-summary{
    border-bottom:1px solid #dbe5f0;
}

.banco-subsecao-titulo{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
}

.banco-subsecao-titulo > i{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:38px;
    height:38px;
    border-radius:12px;
    background:#e1f5f3;
    color:#087f82;
    font-size:18px;
}

.banco-subsecao-titulo > span{
    display:flex;
    flex-direction:column;
    gap:3px;
    min-width:0;
}

.banco-subsecao-titulo strong{
    color:#12366f;
    font-size:15px;
    font-weight:950;
}

.banco-subsecao-titulo small{
    color:#6b7280;
    font-size:12px;
    line-height:1.35;
}

.banco-subsecao-resultado{
    padding:5px 9px;
    border:1px solid #bbf7d0;
    border-radius:999px;
    background:#f0fdf4;
    color:#166534;
    font-size:11px;
    font-weight:900;
    white-space:nowrap;
}

.banco-subsecao-conteudo{
    padding:0;
}

.banco-subsecao-conteudo > .migracao-automatica-box{
    margin:0;
    border:0;
    border-radius:0;
    background:transparent;
    padding:16px;
}

.banco-subsecao-conteudo > .postgresql-teste-resultado{
    margin:0 16px 16px;
}

@media screen and (max-width:760px){
    .banco-recolhivel-summary,
    .banco-subsecao-summary{
        align-items:flex-start;
    }

    .banco-recolhivel-summary{
        padding:15px 16px;
    }

    .banco-recolhivel-meta{
        max-width:48%;
    }

    .banco-recolhivel-resumo{
        max-width:100%;
    }

    .banco-recolhivel-conteudo{
        padding:18px 16px 20px;
    }
}

@media screen and (max-width:520px){
    .banco-recolhivel-summary,
    .banco-subsecao-summary{
        gap:10px;
    }

    .banco-recolhivel-meta{
        max-width:44%;
    }

    .banco-recolhivel-resumo{
        padding:5px 8px;
        font-size:11px;
    }

    .banco-subsecao-summary{
        padding:13px;
    }

    .banco-subsecao-titulo small{
        display:none;
    }

    .banco-subsecao-resultado{
        display:none;
    }
}

/* ===== v379: recolhimento por blocos na página Configurações do Sistema ===== */
.config-sistema-painel{
    display:block;
}

.form-config-sistema-recolhivel{
    display:block !important;
}

.config-sistema-subgrid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
    gap:16px 18px;
}

.form-config-sistema-recolhivel > .ajuste-botao-salvar-sistema{
    margin-top:18px;
}

details.config-pagina-recolhivel{
    padding:0 !important;
    overflow:hidden;
}

.config-pagina-recolhivel + .config-pagina-recolhivel{
    margin-top:16px;
}

.config-pagina-summary{
    list-style:none;
    cursor:pointer;
    user-select:none;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    min-height:64px;
    padding:16px 22px;
    box-sizing:border-box;
    background:linear-gradient(135deg,#f7fbfd,#eef9f8);
    color:#12366f;
    transition:background .16s ease, border-color .16s ease;
}

.config-pagina-summary::-webkit-details-marker{
    display:none;
}

.config-pagina-summary::marker{
    content:"";
}

.config-pagina-summary:hover{
    background:linear-gradient(135deg,#f2f7f9,#edf8f7);
}

.config-pagina-summary:focus-visible{
    outline:3px solid rgba(15,159,154,.22);
    outline-offset:-3px;
}

details.config-pagina-recolhivel[open] > .config-pagina-summary{
    border-bottom:1px solid #dbe5f0;
}

.config-pagina-titulo{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
    color:#12366f;
    font-size:17px;
    font-weight:950;
}

.config-pagina-titulo > i{
    flex:0 0 auto;
    color:#0f9f9a;
    font-size:19px;
}

.config-pagina-meta{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    min-width:0;
}

.config-pagina-resumo{
    max-width:680px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    padding:6px 10px;
    border:1px solid #d7e2ee;
    border-radius:999px;
    background:#ffffff;
    color:#6b7280;
    font-size:12px;
    font-weight:800;
}

.config-pagina-seta{
    flex:0 0 auto;
    color:#6b7280;
    font-size:17px;
    transition:transform .18s ease;
}

details[open] > summary .config-pagina-seta{
    transform:rotate(180deg);
}

.config-pagina-conteudo{
    padding:22px 24px 24px;
}

.config-pagina-conteudo > p:first-child,
.config-pagina-conteudo > .hint:first-child{
    margin-top:0;
}

.config-pagina-recolhivel-externo{
    margin-top:18px;
}

.config-pagina-recolhivel-banco > .config-pagina-conteudo{
    padding:20px 0 0;
}

.config-pagina-recolhivel-banco > .config-pagina-conteudo > .card-local-banco:first-child{
    margin-top:0;
}

@media screen and (max-width:760px){
    .config-pagina-summary{
        align-items:flex-start;
        padding:15px 16px;
    }

    .config-pagina-meta{
        max-width:48%;
    }

    .config-pagina-resumo{
        max-width:100%;
    }

    .config-pagina-conteudo{
        padding:18px 16px 20px;
    }

    .config-pagina-recolhivel-banco > .config-pagina-conteudo{
        padding:18px 0 0;
    }
}

@media screen and (max-width:520px){
    .config-pagina-summary{
        gap:10px;
    }

    .config-pagina-meta{
        max-width:44%;
    }

    .config-pagina-resumo{
        padding:5px 8px;
        font-size:11px;
    }
}

/* ===== v380: três blocos principais no mesmo padrão visual do PostgreSQL Centralizado ===== */
details.config-bloco-principal{
    border-top:4px solid #0f9f9a !important;
}

/* O cabeçalho principal reutiliza sem variações as classes do recolhimento PostgreSQL. */
details.config-bloco-principal > .banco-recolhivel-summary{
    min-height:64px;
    padding:16px 22px;
    background:linear-gradient(135deg,#f7fbfd,#eef9f8);
}

details.config-bloco-principal > .banco-recolhivel-summary:hover{
    background:linear-gradient(135deg,#f2f7f9,#edf8f7);
}

.config-bloco-principal + .config-bloco-principal{
    margin-top:18px;
}

.config-bloco-principal-conteudo > .hint:first-child,
.config-bloco-principal-conteudo > p:first-child{
    margin-top:0;
}

/* Mantém Configurações Gerais e Operacionais como nível interno. */
.config-subbloco-recolhivel{
    border:1px solid #dbe5f0;
    border-radius:16px;
    background:#ffffff;
}

@media screen and (max-width:760px){
    details.config-bloco-principal > .banco-recolhivel-summary{
        padding:15px 16px;
    }
}

/* ===== v381: recolhimento aplicado na rota realmente usada /configuracoes ===== */
.banco-status-resumo-interno{
    margin:0 0 18px;
    padding:0 0 4px;
}

.config-bloco-banco-conteudo > .banco-status-resumo-interno:first-child{
    margin-top:0;
}

.config-bloco-banco-conteudo > details.card-local-banco{
    margin-left:0;
    margin-right:0;
}

.config-bloco-principal > .banco-recolhivel-conteudo > .config-form{
    margin:0;
}

.config-bloco-principal .config-subbloco-recolhivel + .config-subbloco-recolhivel{
    margin-top:16px;
}

.config-bloco-principal .config-subbloco-recolhivel .config-pagina-conteudo{
    background:#ffffff;
}

.config-bloco-principal .ajuste-botao-salvar-sistema{
    margin-top:20px;
}

/* Todos os blocos de primeiro nível da página usam exatamente a mesma faixa. */
html body.app-layout details.config-bloco-principal > summary.banco-recolhivel-summary{
    display:flex !important;
    min-height:64px !important;
    padding:16px 22px !important;
    background:linear-gradient(135deg,#f7fbfd,#eef9f8) !important;
    border-bottom:1px solid transparent !important;
}

html body.app-layout details.config-bloco-principal[open] > summary.banco-recolhivel-summary{
    border-bottom-color:#dbe5f0 !important;
}

html body.app-layout details.config-bloco-principal{
    border-top:4px solid #0f9f9a !important;
    padding:0 !important;
    overflow:hidden !important;
}

@media screen and (max-width:760px){
    html body.app-layout details.config-bloco-principal > summary.banco-recolhivel-summary{
        align-items:flex-start !important;
        padding:15px 16px !important;
    }

    html body.app-layout details.config-bloco-principal > summary .banco-recolhivel-meta{
        max-width:48%;
    }
}


/* ===== v382: bordas padronizadas + contenção de mensagens longas =====
   - SQLite Local e PostgreSQL Centralizado usam o mesmo contorno azul.
   - Blocos principais usam uma única borda contínua, sem contorno duplo.
   - Caminhos, logs e mensagens longas quebram linha dentro do card. */

/* Contorno único e completo dos blocos principais de Configurações. */
html body.app-layout details.config-bloco-principal{
    box-sizing:border-box !important;
    width:100% !important;
    max-width:100% !important;
    padding:0 !important;
    overflow:hidden !important;
    background:#ffffff !important;
    border:1px solid #cbd8e6 !important;
    border-top:4px solid #0f9f9a !important;
    border-radius:22px !important;
    box-shadow:0 8px 28px rgba(15,23,42,.08) !important;
}

html body.app-layout details.config-bloco-principal > summary.banco-recolhivel-summary{
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    border-radius:17px 17px 0 0 !important;
}

html body.app-layout details.config-bloco-principal:not([open]) > summary.banco-recolhivel-summary{
    border-radius:17px !important;
    border-bottom-color:transparent !important;
}

html body.app-layout details.config-bloco-principal > .banco-recolhivel-conteudo{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
}

/* SQLite e PostgreSQL agora têm exatamente a mesma borda e a mesma cor do ícone. */
html body.app-layout #local-banco-dados,
html body.app-layout #postgresql-banco-dados{
    box-sizing:border-box !important;
    width:100% !important;
    max-width:100% !important;
    padding:0 !important;
    overflow:hidden !important;
    background:#ffffff !important;
    border:1px solid #cbd8e6 !important;
    border-top:4px solid #0f9f9a !important;
    border-radius:22px !important;
}

html body.app-layout #local-banco-dados > .banco-recolhivel-summary .banco-recolhivel-titulo > i,
html body.app-layout #postgresql-banco-dados > .banco-recolhivel-summary .banco-recolhivel-titulo > i{
    color:#0f9f9a !important;
}

html body.app-layout #local-banco-dados > .banco-recolhivel-summary,
html body.app-layout #postgresql-banco-dados > .banco-recolhivel-summary{
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    border-radius:17px 17px 0 0 !important;
}

html body.app-layout #local-banco-dados:not([open]) > .banco-recolhivel-summary,
html body.app-layout #postgresql-banco-dados:not([open]) > .banco-recolhivel-summary{
    border-radius:17px !important;
    border-bottom-color:transparent !important;
}

/* Nenhuma mensagem, caminho de arquivo, log ou resultado pode ultrapassar o card. */
html body.app-layout .container,
html body.app-layout .config-bloco-principal-conteudo,
html body.app-layout .banco-recolhivel-conteudo,
html body.app-layout .banco-status-resumo-interno,
html body.app-layout .banco-status-grid,
html body.app-layout .banco-status-item,
html body.app-layout .local-banco-resultado,
html body.app-layout .postgresql-teste-resultado,
html body.app-layout .permissao-postgresql-aviso,
html body.app-layout .local-banco-aviso-rede,
html body.app-layout .alert{
    min-width:0 !important;
    max-width:100% !important;
    box-sizing:border-box !important;
}

html body.app-layout .alert,
html body.app-layout .alert *,
html body.app-layout .local-banco-resultado,
html body.app-layout .local-banco-resultado *,
html body.app-layout .postgresql-teste-resultado,
html body.app-layout .postgresql-teste-resultado *,
html body.app-layout .permissao-postgresql-aviso,
html body.app-layout .permissao-postgresql-aviso *,
html body.app-layout .local-banco-aviso-rede,
html body.app-layout .local-banco-aviso-rede *,
html body.app-layout .banco-status-item strong,
html body.app-layout .banco-status-item span{
    white-space:normal !important;
    overflow-wrap:anywhere !important;
    word-wrap:break-word !important;
    word-break:break-word !important;
}

html body.app-layout .alert{
    width:100% !important;
    overflow:hidden !important;
    line-height:1.45 !important;
}

html body.app-layout .banco-recolhivel-titulo,
html body.app-layout .banco-recolhivel-meta,
html body.app-layout .config-pagina-titulo,
html body.app-layout .config-pagina-meta{
    min-width:0 !important;
}

@media screen and (max-width:760px){
    html body.app-layout details.config-bloco-principal,
    html body.app-layout #local-banco-dados,
    html body.app-layout #postgresql-banco-dados{
        border-radius:18px !important;
    }

    html body.app-layout details.config-bloco-principal > summary.banco-recolhivel-summary,
    html body.app-layout #local-banco-dados > .banco-recolhivel-summary,
    html body.app-layout #postgresql-banco-dados > .banco-recolhivel-summary{
        border-radius:13px 13px 0 0 !important;
    }

    html body.app-layout details.config-bloco-principal:not([open]) > summary.banco-recolhivel-summary,
    html body.app-layout #local-banco-dados:not([open]) > .banco-recolhivel-summary,
    html body.app-layout #postgresql-banco-dados:not([open]) > .banco-recolhivel-summary{
        border-radius:13px !important;
    }
}


/* ===== v384: simulação segura da migração SQLite → PostgreSQL ===== */
.local-banco-resultado.aviso{
    border-color:#fde68a;
    background:#fffbeb;
    color:#92400e;
}

.migracao-acoes{
    display:flex;
    align-items:stretch;
    justify-content:center;
    gap:12px;
    flex-wrap:wrap;
    width:100%;
}

.migracao-acoes .migracao-automatica-button,
.migracao-acoes .migracao-simulacao-button{
    margin:0;
}

.migracao-simulacao-button{
    width:auto;
    max-width:100%;
    min-height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:10px 18px;
    border:1px solid #0f9f9a;
    border-radius:12px;
    background:#ffffff;
    color:#087f82;
    font-size:15px;
    font-weight:850;
    cursor:pointer;
    box-shadow:0 5px 12px rgba(15,159,154,.10);
    transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}

.migracao-simulacao-button:hover:not(:disabled){
    transform:translateY(-1px);
    background:#eef9f8;
    box-shadow:0 9px 18px rgba(15,159,154,.18);
}

.migracao-simulacao-button:focus-visible{
    outline:3px solid rgba(15,159,154,.22);
    outline-offset:3px;
}

.migracao-simulacao-button:disabled,
.migracao-automatica-button:disabled{
    cursor:not-allowed;
    opacity:.58;
    transform:none;
    box-shadow:none;
}

@media screen and (max-width:640px){
    .migracao-acoes{
        flex-direction:column;
    }
    .migracao-acoes .migracao-automatica-button,
    .migracao-acoes .migracao-simulacao-button{
        width:100%;
    }
}


/* ===== v385: botões PostgreSQL compactos e mensagens sem estouro ===== */
html body.app-layout #postgresql-banco-dados .postgresql-teste-acoes > button{
    height:42px !important;
    min-height:42px !important;
    padding:0 16px !important;
    border-radius:12px !important;
    font-size:14px !important;
    line-height:1 !important;
    box-shadow:0 4px 10px rgba(15,159,154,.18) !important;
}

html body.app-layout #postgresql-banco-dados .postgresql-teste-acoes > .postgresql-connect-existing-button{
    box-shadow:0 4px 10px rgba(22,101,52,.20) !important;
}

html body.app-layout #postgresql-banco-dados .migracao-acoes > button{
    height:42px !important;
    min-height:42px !important;
    padding:0 16px !important;
    border-radius:12px !important;
    font-size:14px !important;
    line-height:1 !important;
}

html body.app-layout #postgresql-banco-dados .postgresql-teste-resultado,
html body.app-layout #postgresql-banco-dados .postgresql-teste-resultado > div,
html body.app-layout #postgresql-banco-dados .postgresql-teste-resultado span{
    min-width:0 !important;
    max-width:100% !important;
    white-space:normal !important;
    overflow-wrap:anywhere !important;
    word-break:break-word !important;
}

@media screen and (max-width:640px){
    html body.app-layout #postgresql-banco-dados .postgresql-teste-acoes > button,
    html body.app-layout #postgresql-banco-dados .migracao-acoes > button{
        width:100% !important;
    }
}


/* ===== v386: ícone visual no botão Simular migração ===== */
.postgresql-acao-icone-img{
    display:inline-block;
    flex:0 0 auto;
    width:24px;
    height:16px;
    object-fit:contain;
    vertical-align:middle;
}

.postgresql-acao-icone-simulacao{
    border-radius:4px;
    box-shadow:0 1px 2px rgba(15,23,42,.10);
}

html body.app-layout #postgresql-banco-dados .migracao-simulacao-button{
    gap:9px !important;
}

html body.app-layout #postgresql-banco-dados .migracao-simulacao-button:disabled .postgresql-acao-icone-simulacao{
    opacity:.82;
}


/* ===== v387: ícone padrão de transferência de dados na simulação ===== */
.postgresql-acao-icone-bootstrap{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    font-size:18px;
    line-height:1;
}

html body.app-layout #postgresql-banco-dados .migracao-simulacao-button .postgresql-acao-icone-bootstrap{
    color:inherit;
}


/* ===== v389: identidade oficial PostgreSQL e formulários protegidos ===== */
.postgresql-logo-titulo{
    width:26px;
    height:26px;
    object-fit:contain;
    flex:0 0 auto;
}
.logout-side-form{margin:0;padding:0;width:100%;}
.logout-side-form .logout-side{width:100%;border:0;text-align:left;font:inherit;cursor:pointer;}
.confirmar-importacao-form{display:flex;flex-direction:column;gap:10px;align-items:flex-start;max-width:520px;}
.confirmar-importacao-senha{display:flex;flex-direction:column;gap:6px;width:100%;font-weight:700;}
.confirmar-importacao-senha input{width:100%;max-width:360px;}


/* v398 - Acesso pela rede */
.config-rede-bloco { margin-top: 18px; }
.config-rede-resumo { display: grid; gap: 10px; margin-bottom: 18px; }
.config-rede-resumo > div { display: grid; grid-template-columns: minmax(190px, 0.7fr) minmax(240px, 1.3fr); gap: 14px; align-items: center; padding: 10px 12px; border: 1px solid var(--border, #d9e2ec); border-radius: 10px; }
.config-rede-resumo span { font-weight: 700; }
.config-rede-resumo strong { font-size: 1.05rem; }
.config-rede-campos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.config-rede-acoes { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.config-rede-acoes button { min-height: 42px; }
.config-rede-aviso { margin-top: 14px; }
.reinicio-rede-card { max-width: 760px; margin-inline: auto; }
.reinicio-rede-status { margin: 18px 0; padding: 14px; border-radius: 10px; background: rgba(15, 118, 110, 0.08); font-weight: 700; text-align: center; }
@media screen and (max-width: 760px){
    .config-rede-resumo > div, .config-rede-campos { grid-template-columns: 1fr; }
    .config-rede-acoes button { width: 100%; }
}

/* ===== v413: todos os painéis da página de backups recolhidos por padrão ===== */
details.backup-painel-recolhivel{
    margin-bottom:18px;
}

details.backup-painel-recolhivel > .banco-recolhivel-summary{
    min-height:66px;
}

details.backup-painel-recolhivel > .backup-recolhivel-conteudo{
    padding-top:20px;
}

details.backup-painel-recolhivel > .backup-recolhivel-conteudo > :first-child{
    margin-top:0;
}

details.backup-painel-recolhivel > .backup-recolhivel-conteudo > :last-child{
    margin-bottom:0;
}

details.backup-painel-critico{
    border-color:#fecaca !important;
}

details.backup-painel-critico > .banco-recolhivel-summary{
    background:linear-gradient(135deg,#fff7f7,#fee2e2);
    color:#991b1b;
}

details.backup-painel-critico > .banco-recolhivel-summary:hover{
    background:linear-gradient(135deg,#fff1f2,#fecaca);
}

details.backup-painel-critico[open] > .banco-recolhivel-summary{
    border-bottom-color:#fecaca;
}

details.backup-painel-critico > .banco-recolhivel-summary .banco-recolhivel-titulo,
details.backup-painel-critico > .banco-recolhivel-summary .banco-recolhivel-titulo > i,
details.backup-painel-critico > .banco-recolhivel-summary .banco-recolhivel-seta{
    color:#b91c1c;
}

details.backup-painel-critico > .banco-recolhivel-summary .banco-recolhivel-resumo{
    border-color:#fecaca;
    background:#fffafa;
    color:#991b1b;
}

@media screen and (max-width:700px){
    details.backup-painel-recolhivel > .banco-recolhivel-summary{
        align-items:flex-start;
    }
    details.backup-painel-recolhivel > .banco-recolhivel-summary .banco-recolhivel-meta{
        width:auto;
    }
}

/* ===== v4.2.2 — login compacto e identidade visual integrada ===== */
.login-page-v422{
    padding:20px !important;
    background:
        radial-gradient(circle at 12% 18%, rgba(20,184,166,.14), transparent 28%),
        radial-gradient(circle at 88% 14%, rgba(111,75,216,.14), transparent 24%),
        linear-gradient(145deg,#eef6fb 0%,#f7fbfd 48%,#eaf2f8 100%) !important;
}

.login-page-v422 .login-shell{
    width:min(1480px,100%) !important;
    min-height:min(940px,calc(100vh - 40px)) !important;
    grid-template-columns:minmax(0,1.15fr) minmax(440px,.85fr) !important;
    border-radius:30px !important;
    overflow:hidden !important;
    background:#f7fbfd !important;
    box-shadow:0 24px 70px rgba(15,45,75,.18) !important;
    border:1px solid rgba(148,163,184,.22) !important;
}

.login-page-v422 .login-showcase{
    min-width:0;
    padding:0 !important;
    border-radius:0 !important;
    background:#f5faff !important;
    display:flex;
    align-items:stretch;
    justify-content:center;
    overflow:hidden;
}

.login-page-v422 .login-showcase-art{
    display:block;
    width:100%;
    height:100%;
    min-height:0;
    object-fit:contain;
    object-position:center;
    background:#f5faff;
}

.login-page-v422 .login-panel{
    padding:38px 40px !important;
    background:linear-gradient(180deg,#f7fbfd 0%,#eef5fa 100%) !important;
    border-left:1px solid rgba(148,163,184,.16);
}

.login-page-v422 .login-card{
    width:100% !important;
    max-width:520px !important;
    padding:32px 34px 26px !important;
    border-radius:28px !important;
    background:rgba(255,255,255,.98) !important;
    border:1px solid rgba(148,163,184,.18) !important;
    box-shadow:0 18px 48px rgba(18,54,111,.13) !important;
}

.login-page-v422 .login-card-top{
    margin-bottom:18px !important;
}

.login-page-v422 .login-brand-v422{
    width:100%;
    margin:0 0 10px !important;
}

.login-page-v422 .login-brand-v422 img{
    width:250px !important;
    height:auto !important;
    max-height:none !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    background:transparent !important;
    filter:none !important;
    object-fit:contain !important;
}

.login-page-v422 .login-title-wrap h2{
    color:#12366f !important;
    font-size:31px !important;
    font-weight:800 !important;
    letter-spacing:-.5px;
}

.login-page-v422 .login-title-wrap p{
    max-width:400px;
    margin:10px auto 0 !important;
    color:#6b7280 !important;
    line-height:1.5;
    font-size:15px !important;
}

.login-page-v422 .login-form label{
    margin:13px 0 7px !important;
    color:#12366f !important;
    font-size:14px !important;
}

.login-page-v422 .input-with-icon{
    grid-template-columns:52px minmax(0,1fr);
    min-height:54px;
    border:1px solid #c9d7e6;
    border-radius:12px;
    background:#fff;
    box-shadow:0 2px 8px rgba(18,54,111,.04);
}

.login-page-v422 .input-with-icon:focus-within{
    border-color:#0ea5a4;
    box-shadow:0 0 0 3px rgba(14,165,164,.13);
}

.login-page-v422 .input-with-icon span{
    background:#f2f7fb;
    border-right:1px solid #dce6ef;
    color:#6b7280;
    font-size:21px;
}

.login-page-v422 .input-with-icon input{
    min-width:0;
    padding:14px 13px !important;
    color:#2f3742;
}

.login-page-v422 .input-password-v422{
    grid-template-columns:52px minmax(0,1fr) 50px;
}

.login-page-v422 .password-toggle-v422{
    width:50px !important;
    min-height:52px !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    color:#6b7280 !important;
    box-shadow:none !important;
    font-size:18px !important;
}

.login-page-v422 .password-toggle-v422:hover,
.login-page-v422 .password-toggle-v422:focus-visible{
    color:#0f766e !important;
    background:#f0fdfa !important;
    outline:none;
}

.login-page-v422 .login-links{
    margin:10px 2px 4px !important;
}

.login-page-v422 .login-links a{
    color:#087f82 !important;
    font-size:13px;
}

.login-page-v422 .login-submit-v422{
    min-height:56px !important;
    margin-top:18px !important;
    border-radius:12px !important;
    background:linear-gradient(135deg,#10a99c,#078b92) !important;
    box-shadow:0 14px 26px rgba(8,145,145,.23) !important;
    font-size:17px !important;
}

.login-page-v422 .login-submit-v422:hover{
    transform:translateY(-1px);
    filter:brightness(.98);
}

.login-page-v422 .login-security-v422{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin:24px -34px -26px;
    padding:17px 25px;
    border-top:1px solid #e3ebf2;
    color:#6b7280;
    background:#f9fbfd;
    border-radius:0 0 28px 28px;
    font-size:12px;
    font-weight:800;
}

.login-page-v422 .login-security-v422 span:first-child{
    color:#087f82;
}

@media screen and (max-width:1180px){
    .login-page-v422{
        padding:12px !important;
    }

    .login-page-v422 .login-shell{
        min-height:calc(100vh - 24px) !important;
        grid-template-columns:1fr !important;
        border-radius:24px !important;
    }

    .login-page-v422 .login-showcase{
        min-height:430px !important;
        max-height:52vh;
    }

    .login-page-v422 .login-showcase-art{
        object-fit:cover;
        object-position:center 20%;
    }

    .login-page-v422 .login-panel{
        padding:28px 20px !important;
        border-left:0;
        border-top:1px solid rgba(148,163,184,.16);
    }
}

@media screen and (max-width:700px){
    .login-page-v422{
        padding:0 !important;
    }

    .login-page-v422 .login-shell{
        min-height:100vh !important;
        border-radius:0 !important;
        border:0 !important;
    }

    .login-page-v422 .login-showcase{
        min-height:245px !important;
        max-height:245px;
    }

    .login-page-v422 .login-showcase-art{
        object-fit:cover;
        object-position:center 12%;
    }

    .login-page-v422 .login-panel{
        padding:18px 12px 26px !important;
    }

    .login-page-v422 .login-card{
        max-width:100% !important;
        padding:24px 18px 22px !important;
        border-radius:22px !important;
    }

    .login-page-v422 .login-brand-v422 img{
        width:210px !important;
    }

    .login-page-v422 .login-title-wrap h2{
        font-size:26px !important;
    }

    .login-page-v422 .login-security-v422{
        margin:22px -18px -22px;
        padding:14px 16px;
        border-radius:0 0 22px 22px;
        flex-wrap:wrap;
        justify-content:center;
    }
}


/* ===== v4.2.2 — login compacto sem rolagem no desktop ===== */
.login-page-v422{
    height:100vh;
    min-height:100vh;
    overflow:hidden;
    padding:12px !important;
}
.login-page-v422 .login-shell{
    width:min(1180px,100%) !important;
    height:min(760px,calc(100vh - 24px)) !important;
    min-height:0 !important;
    max-height:760px !important;
    grid-template-columns:minmax(0,1.12fr) minmax(390px,.88fr) !important;
    border-radius:24px !important;
}
.login-page-v422 .login-showcase{min-height:0 !important;}
.login-page-v422 .login-showcase-art{
    width:100%;height:100%;object-fit:contain;object-position:center;
}
.login-page-v422 .login-panel{
    min-height:0;padding:18px 22px !important;display:flex;align-items:center;justify-content:center;
}
.login-page-v422 .login-card{
    max-width:430px !important;max-height:calc(100vh - 58px);padding:20px 24px 18px !important;border-radius:22px !important;
}
.login-page-v422 .login-card-top{margin-bottom:10px !important;}
.login-page-v422 .login-brand-v422{margin-bottom:4px !important;}
.login-page-v422 .login-brand-v422 img{width:176px !important;max-height:150px !important;}
.login-page-v422 .login-title-wrap h2{font-size:26px !important;}
.login-page-v422 .login-title-wrap p{margin-top:5px !important;font-size:13px !important;line-height:1.35;}
.login-page-v422 .login-form label{margin:8px 0 5px !important;font-size:12px !important;}
.login-page-v422 .input-with-icon{min-height:46px;grid-template-columns:44px minmax(0,1fr);}
.login-page-v422 .input-password-v422{grid-template-columns:44px minmax(0,1fr) 44px;}
.login-page-v422 .input-with-icon span{font-size:17px;}
.login-page-v422 .input-with-icon input{padding:10px 11px !important;font-size:13px;}
.login-page-v422 .password-toggle-v422{width:44px !important;min-height:44px !important;}
.login-page-v422 .login-links{margin:7px 2px 2px !important;}
.login-page-v422 .login-links a{font-size:12px;}
.login-page-v422 .login-submit-v422{min-height:47px !important;margin-top:12px !important;font-size:15px !important;}
.login-page-v422 .login-security-v422{
    margin:16px -24px -18px;padding:12px 18px;border-radius:0 0 22px 22px;font-size:11px;
}
@media screen and (max-height:720px) and (min-width:981px){
    .login-page-v422{padding:8px !important;}
    .login-page-v422 .login-shell{height:calc(100vh - 16px) !important;}
    .login-page-v422 .login-panel{padding:10px 16px !important;}
    .login-page-v422 .login-card{padding-top:14px !important;}
    .login-page-v422 .login-brand-v422 img{width:145px !important;max-height:120px !important;}
    .login-page-v422 .login-title-wrap h2{font-size:22px !important;}
    .login-page-v422 .login-title-wrap p{font-size:12px !important;}
    .login-page-v422 .input-with-icon{min-height:42px;}
    .login-page-v422 .login-submit-v422{min-height:43px !important;}
}
@media screen and (max-width:980px){
    .login-page-v422{height:auto;min-height:100vh;overflow:auto;padding:12px !important;}
    .login-page-v422 .login-shell{
        width:min(540px,100%) !important;height:auto !important;min-height:calc(100vh - 24px) !important;max-height:none !important;grid-template-columns:1fr !important;
    }
    .login-page-v422 .login-showcase{display:none !important;}
    .login-page-v422 .login-panel{border:0;padding:18px !important;}
    .login-page-v422 .login-card{max-height:none;}
}
@media screen and (max-width:520px){
    .login-page-v422{padding:0 !important;}
    .login-page-v422 .login-shell{min-height:100vh !important;border-radius:0 !important;}
    .login-page-v422 .login-panel{padding:12px !important;}
    .login-page-v422 .login-card{padding:20px 18px 18px !important;border-radius:20px !important;}
    .login-page-v422 .login-security-v422{margin:16px -18px -18px;border-radius:0 0 20px 20px;}
}

/* ===== v4.2.2 — identidade visual interna harmonizada ===== */
:root{
    --brand-teal:#0f9f9a;
    --brand-teal-dark:#087f82;
    --brand-navy:#12366f;
    --brand-blue:#20b8b1;
    --brand-purple:#6f4bd8;
    --brand-bg:#f3f8fb;
    --brand-soft:#eaf7f6;
    --bg:#f3f8fb;
    --card:#ffffff;
    --text:#2f3742;
    --muted:#6b7280;
    --blue:#0f9f9a;
    --blue-dark:#12366f;
    --cyan:#20b8b1;
    --green:#10a779;
    --purple:#6f4bd8;
    --border:#dce8ef;
    --sidebar:#ffffff;
    --sidebar-2:#f7fbfd;
}
body.app-layout{
    background:radial-gradient(circle at 3% 4%,rgba(15,159,154,.08),transparent 24%),radial-gradient(circle at 96% 3%,rgba(111,75,216,.07),transparent 22%),var(--brand-bg);
}
.sidebar{
    background:linear-gradient(180deg,#ffffff 0%,#f8fcfd 100%);color:var(--brand-navy);border-right:1px solid #dce8ef;box-shadow:8px 0 28px rgba(18,54,111,.08);
}
.sidebar-brand{border-bottom:1px solid #e3edf2;background:rgba(255,255,255,.92);}
.sidebar-brand img{
    width:56px;height:56px;padding:3px;border-radius:16px;background:transparent;box-shadow:none;
}
.sidebar-brand h1{color:var(--brand-navy);}
.sidebar-brand span{color:var(--brand-teal-dark);}
.sidebar-nav a{color:#3b414a;border:1px solid transparent;}
.sidebar-nav a i{color:var(--brand-teal-dark);}
.sidebar-nav a:hover,.sidebar-nav a.active{
    color:#ffffff;background:linear-gradient(135deg,var(--brand-teal),var(--brand-teal-dark));border-color:rgba(8,127,130,.12);box-shadow:0 8px 18px rgba(15,159,154,.19);transform:none;
}
.sidebar-nav a:hover i,.sidebar-nav a.active i{color:#ffffff;}
.sidebar-footer{border-top:1px solid #e3edf2;background:#fbfdfe;}
.user-box{color:var(--brand-navy);background:#eef8f8;border:1px solid #d7ecea;}
.user-box span{color:#6b7280;}
.logout-side{background:#fff2f2;color:#b42335;border:1px solid #ffd5d9;}
.logout-side:hover{background:#ffe7e9;color:#921c2c;}
.topbar-simple{background:rgba(255,255,255,.93);border-bottom:1px solid #dce8ef;box-shadow:0 5px 16px rgba(18,54,111,.04);}
.topbar-simple h2,.card h2,.card h3,.section-header h2,.section-header h3{color:var(--brand-navy);}
.mini-action{color:var(--brand-navy);background:#edf8f7;border-color:#cbe8e6;}
.mini-action:hover{color:#fff;background:var(--brand-teal);border-color:var(--brand-teal);}
.container{background:transparent;}
.hero-compact{
    background:linear-gradient(135deg,#ffffff,#eef9f8 62%,#f1effc);border-color:#dbeae9;border-left-color:var(--brand-teal);box-shadow:0 9px 25px rgba(18,54,111,.07);
}
.eyebrow,.badge-soft{color:var(--brand-teal-dark);background:#e1f5f3;border-color:#c6e9e6;}
.hero-compact h2{color:var(--brand-navy);}
.card{border-color:#dfe9ef;box-shadow:0 8px 24px rgba(18,54,111,.065);}
.kpi{background:linear-gradient(135deg,#12366f,#0f9f9a);}
.kpi.green{background:linear-gradient(135deg,#078b83,#28b8a7);}
.kpi.blue{background:linear-gradient(135deg,#12366f,#0f9f9a);}
.kpi.purple{background:linear-gradient(135deg,#5d3aba,#8b6ce7);}
.kpi.orange{background:linear-gradient(135deg,#d97706,#f5ad35);}
button:not(.secondary):not(.danger):not(.password-toggle-v422):not(.modal-confirmacao-fechar):not(.rh-combobox-toggle-v217):not(.rh-combobox-opcao-v217),
.button:not(.secondary):not(.danger),.primary-button{
    background:linear-gradient(135deg,var(--brand-teal),var(--brand-teal-dark));box-shadow:0 9px 20px rgba(15,159,154,.18);
}
button:not(.secondary):not(.danger):not(.password-toggle-v422):not(.modal-confirmacao-fechar):not(.rh-combobox-toggle-v217):not(.rh-combobox-opcao-v217):hover,
.button:not(.secondary):not(.danger):hover,.primary-button:hover{filter:brightness(.96);}
button.secondary,.button.secondary,.secondary-button{
    color:var(--brand-navy) !important;background:#f2f7fb !important;border-color:#cfdde7 !important;box-shadow:none !important;
}
input,select,textarea,.config-form input,.config-form select,.config-form textarea{color:var(--brand-navy);border-color:#cddce7;}
input:not([type="checkbox"]):not([type="radio"]):focus,select:focus,textarea:focus{outline:none;border-color:var(--brand-teal);box-shadow:0 0 0 3px rgba(15,159,154,.12);}
.table-wrap{border-color:#dce8ef;}
th{color:var(--brand-navy);background:linear-gradient(180deg,#eef8f8,#e9f3f7);}
tr:hover td{background:#f2faf9;}
.bar{background:#dfeaf0;}
.bar div{background:linear-gradient(135deg,var(--brand-teal),var(--brand-blue));}
.info-card,.profile-card,.permissions-box{background:linear-gradient(135deg,#ffffff,#f5fafc);border-color:#dce8ef;}
.info-card h3{color:var(--brand-navy);}
.page-footer{color:#6b7280;}
.pagination .button,.pagination a{border-color:#cfe1e8;}
.alert.ok{background:#e7f8f1;color:#08735a;border-color:#bcebd8;}
.login-page:not(.login-page-v422){
    background:radial-gradient(circle at 15% 15%,rgba(15,159,154,.16),transparent 28%),linear-gradient(145deg,#eef7fa,#f8fbfd 55%,#eaf2f8);
}
.login-page:not(.login-page-v422) .auth-card,.login-page:not(.login-page-v422) .login-card{
    border:1px solid #dce8ef;box-shadow:0 18px 44px rgba(18,54,111,.14);
}

/* ===== v4.2.3 — botão de reabertura do menu na nova paleta ===== */
.sidebar-hotspot{
    background:linear-gradient(135deg,var(--brand-teal),var(--brand-teal-dark));
    color:#ffffff;
    border:1px solid rgba(255,255,255,.28);
    box-shadow:0 10px 28px rgba(15,159,154,.24);
    transition:background .18s ease,box-shadow .18s ease,transform .18s ease;
}
.sidebar-hotspot:hover,
.sidebar-hotspot:focus-visible{
    background:linear-gradient(135deg,var(--brand-teal-dark),#076a70);
    box-shadow:0 12px 30px rgba(8,127,130,.30);
    outline:none;
}
.sidebar-hotspot:active{
    transform:translateY(1px);
}


/* ===== v4.2.4 — login integrado e revisão completa da paleta ===== */
.login-page-v424{
    padding:14px !important;
    background:
        radial-gradient(circle at 10% 18%,rgba(15,159,154,.12),transparent 27%),
        radial-gradient(circle at 91% 12%,rgba(111,75,216,.10),transparent 24%),
        linear-gradient(145deg,#edf6f8 0%,#f8fbfd 52%,#eef4f8 100%) !important;
}
.login-page-v424 .login-shell{
    width:min(1120px,100%) !important;
    height:min(690px,calc(100vh - 28px)) !important;
    min-height:0 !important;
    max-height:690px !important;
    grid-template-columns:minmax(540px,.98fr) minmax(430px,1.02fr) !important;
    border-radius:26px !important;
    background:linear-gradient(90deg,#edf4f8 0%,#f5f9fb 55%,#f7fbfd 100%) !important;
    border:1px solid rgba(18,54,111,.10) !important;
    box-shadow:0 24px 64px rgba(18,54,111,.15) !important;
    overflow:hidden !important;
}
.login-page-v424 .login-showcase{
    position:relative;
    z-index:1;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    overflow:hidden;
}
.login-page-v424 .login-showcase::after{
    content:"";
    position:absolute;
    z-index:2;
    top:0;
    right:-1px;
    bottom:0;
    width:72px;
    pointer-events:none;
    background:linear-gradient(90deg,rgba(247,251,253,0),rgba(247,251,253,.42) 66%,#f7fbfd 100%);
}
.login-page-v424 .login-showcase-art{
    position:relative;
    z-index:1;
    width:100% !important;
    height:100% !important;
    padding:0 !important;
    margin:0 !important;
    object-fit:contain !important;
    object-position:center !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    transform:scale(.995);
}
.login-page-v424 .login-panel{
    position:relative;
    z-index:3;
    padding:24px 34px 24px 0 !important;
    border:0 !important;
    background:transparent !important;
    display:flex;
    align-items:center;
    justify-content:center;
}
.login-page-v424 .login-card{
    width:100% !important;
    max-width:420px !important;
    max-height:none !important;
    margin:0 !important;
    padding:6px 0 0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
}
.login-page-v424 .login-card-top{
    margin-bottom:10px !important;
}
.login-page-v424 .login-brand-integrated{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:11px;
    margin:0 auto 9px;
    color:var(--brand-navy);
}
.login-page-v424 .login-brand-integrated img{
    display:block;
    flex:0 0 auto;
    width:64px !important;
    height:64px !important;
    object-fit:contain !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    filter:drop-shadow(0 5px 10px rgba(18,54,111,.10));
}
.login-page-v424 .login-brand-text{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    line-height:1.02;
    letter-spacing:.2px;
    font-size:17px;
    font-weight:900;
}
.login-page-v424 .login-brand-text strong{color:var(--brand-navy);}
.login-page-v424 .login-brand-text .login-brand-highlight{color:var(--brand-teal);}
.login-page-v424 .login-title-wrap h2{
    margin:0 !important;
    color:var(--brand-navy) !important;
    font-size:25px !important;
    line-height:1.1;
}
.login-page-v424 .login-title-wrap p{
    max-width:360px;
    margin:6px auto 0 !important;
    color:var(--muted) !important;
    font-size:13px !important;
    line-height:1.4;
}
.login-page-v424 .login-form label{
    color:var(--brand-navy) !important;
    margin:8px 0 5px !important;
}
.login-page-v424 .input-with-icon{
    min-height:45px !important;
    grid-template-columns:43px minmax(0,1fr) !important;
    border-color:#cddce7 !important;
    background:rgba(255,255,255,.82) !important;
    box-shadow:0 3px 12px rgba(18,54,111,.035) !important;
}
.login-page-v424 .input-password-v422{
    grid-template-columns:43px minmax(0,1fr) 43px !important;
}
.login-page-v424 .input-with-icon span{
    color:var(--brand-teal-dark) !important;
    background:#edf8f7 !important;
    border-right-color:#d7ebe9 !important;
}
.login-page-v424 .input-with-icon:focus-within{
    border-color:var(--brand-teal) !important;
    box-shadow:0 0 0 3px rgba(15,159,154,.12) !important;
    background:#fff !important;
}
.login-page-v424 .login-links{
    margin:8px 1px 2px !important;
}
.login-page-v424 .login-links a{
    display:inline-flex;
    align-items:center;
    color:var(--brand-teal-dark) !important;
    font-size:12px !important;
    font-weight:800;
    text-decoration:none;
}
.login-page-v424 .login-links a:hover,
.login-page-v424 .login-links a:focus-visible{
    color:var(--brand-navy) !important;
    text-decoration:underline;
}
.login-page-v424 .login-submit-v422{
    min-height:47px !important;
    margin-top:12px !important;
    border-radius:11px !important;
    background:linear-gradient(135deg,var(--brand-teal),var(--brand-teal-dark)) !important;
    box-shadow:0 10px 22px rgba(15,159,154,.19) !important;
}
.login-page-v424 .login-security-v422{
    margin:17px 0 0 !important;
    padding:13px 0 0 !important;
    border-top:1px solid #dce8ef !important;
    border-radius:0 !important;
    color:var(--muted) !important;
    background:transparent !important;
}
.login-page-v424 .login-security-v422 span:first-child{color:var(--brand-navy) !important;}

/* Passagem final: componentes internos que ainda recebiam azul da identidade antiga. */
body.app-layout .tab-button.active,
body.app-layout .tab-button:hover,
body.app-layout .filter-chip.active,
body.app-layout .cadastro-legenda-filtro.ativo,
body.app-layout .pagination .active,
body.app-layout .pagination .current,
body.app-layout .nav-pill.active{
    color:#fff !important;
    border-color:var(--brand-teal) !important;
    background:linear-gradient(135deg,var(--brand-teal),var(--brand-teal-dark)) !important;
    box-shadow:0 7px 16px rgba(15,159,154,.16) !important;
}
body.app-layout a:not(.sidebar-nav a):not(.button):not(.mini-action):not(.logout-side){
    text-decoration-color:rgba(15,159,154,.35);
}
body.app-layout .link-action,
body.app-layout .text-link,
body.app-layout .card a:not(.button):not(.danger):not(.secondary),
body.app-layout td a:not(.button):not(.danger):not(.secondary){
    color:var(--brand-teal-dark);
}
body.app-layout .icon-circle,
body.app-layout .card-icon,
body.app-layout .metric-icon,
body.app-layout .stat-icon{
    color:var(--brand-teal-dark);
    background:#e8f7f6;
    border-color:#cce9e6;
}
body.app-layout progress::-webkit-progress-value{background:linear-gradient(90deg,var(--brand-teal),var(--brand-blue));}
body.app-layout progress::-moz-progress-bar{background:linear-gradient(90deg,var(--brand-teal),var(--brand-blue));}
body.app-layout details:not(.backup-painel-critico) > summary:hover{
    background:#edf8f7;
}
body.app-layout .banco-recolhivel-summary:not(.danger),
body.app-layout .details-summary:not(.danger){
    color:var(--brand-navy);
}
body.app-layout .banco-recolhivel-summary:not(.danger) i,
body.app-layout .details-summary:not(.danger) i{color:var(--brand-teal-dark);}
body.app-layout .status-info,
body.app-layout .badge-info,
body.app-layout .alert.info{
    color:#0b6f73;
    border-color:#bde5e2;
    background:#e9f8f7;
}
body.app-layout .modal-confirmacao-header,
body.app-layout .modal-header{
    border-bottom-color:#dce8ef;
}
body.app-layout .modal-confirmacao-card,
body.app-layout .modal-card{
    border-color:#dce8ef;
    box-shadow:0 24px 62px rgba(18,54,111,.18);
}

@media screen and (max-height:720px) and (min-width:981px){
    .login-page-v424{padding:8px !important;}
    .login-page-v424 .login-shell{height:calc(100vh - 16px) !important;max-height:670px !important;}
    .login-page-v424 .login-panel{padding:14px 28px 14px 4px !important;}
    .login-page-v424 .login-brand-integrated{margin-bottom:5px;}
    .login-page-v424 .login-brand-integrated img{width:58px !important;height:58px !important;}
    .login-page-v424 .login-brand-text{font-size:15px;}
    .login-page-v424 .login-title-wrap h2{font-size:22px !important;}
    .login-page-v424 .login-title-wrap p{font-size:12px !important;}
    .login-page-v424 .login-security-v422{margin-top:12px !important;padding-top:10px !important;}
}
@media screen and (max-width:980px){
    .login-page-v424{height:auto;min-height:100vh;overflow:auto;padding:12px !important;}
    .login-page-v424 .login-shell{
        width:min(540px,100%) !important;height:auto !important;min-height:calc(100vh - 24px) !important;max-height:none !important;grid-template-columns:1fr !important;
    }
    .login-page-v424 .login-showcase{display:none !important;}
    .login-page-v424 .login-panel{padding:24px !important;}
    .login-page-v424 .login-card{max-width:430px !important;}
}
@media screen and (max-width:520px){
    .login-page-v424{padding:0 !important;}
    .login-page-v424 .login-shell{min-height:100vh !important;border-radius:0 !important;border:0 !important;}
    .login-page-v424 .login-panel{padding:22px 18px !important;}
    .login-page-v424 .login-brand-integrated img{width:62px !important;height:62px !important;}
    .login-page-v424 .login-brand-text{font-size:15px;}
    .login-page-v424 .login-security-v422{flex-wrap:wrap;justify-content:center;gap:8px 18px;}
}


/* ===== v4.2.5 — auditoria profunda de cores e hierarquia textual =====
   Política visual: títulos em azul-marinho; ações e links em teal;
   textos corridos em grafite; descrições em cinza neutro; roxo apenas como apoio. */
:root{
    --brand-text:#2f3742;
    --brand-text-strong:#3b414a;
    --brand-muted:#6b7280;
    --brand-border:#d8e4e7;
    --brand-teal-soft:#e9f8f7;
    --brand-purple-soft:#f1effc;
    --text:#2f3742;
    --muted:#6b7280;
    --brand-blue:#20b8b1;
}

body.app-layout{
    color:var(--brand-text);
    background:
        radial-gradient(circle at 3% 4%,rgba(15,159,154,.08),transparent 24%),
        radial-gradient(circle at 96% 3%,rgba(111,75,216,.055),transparent 22%),
        var(--brand-bg);
}

/* Textos comuns deixam de usar azul da identidade anterior. */
body.app-layout :where(p,td,li,dd,.description,.descricao,.subtitle,.subtitulo,.help-text,.field-help,.form-help,.hint,.inline-hint,.page-footer,.empty-text){
    color:var(--brand-text);
}
body.app-layout :where(.muted,.text-muted,.small-muted,.card-subtitle,.section-description,.form-group small,.config-form small,.info-card small,.profile-card small,.permissions-box small){
    color:var(--brand-muted) !important;
}
body.app-layout :where(label,.form-label,.config-form label,.form-group > label){
    color:var(--brand-text-strong) !important;
}

/* Azul-marinho fica reservado à hierarquia institucional. */
body.app-layout :where(h1,h2,h3,h4,h5,h6,.page-title,.section-title,.card-title,.modal-title,th,legend){
    color:var(--brand-navy) !important;
}
body.app-layout :where(.eyebrow,.section-kicker,.kicker,.badge-soft){
    color:var(--brand-teal-dark) !important;
}

/* Links e ações textuais passam integralmente para teal. */
body.app-layout a:not(.sidebar-nav a):not(.button):not(.btn):not(.mini-action):not(.logout-side):not(.danger){
    color:var(--brand-teal-dark);
    text-decoration-color:rgba(15,159,154,.35);
}
body.app-layout a:not(.sidebar-nav a):not(.button):not(.btn):not(.mini-action):not(.logout-side):not(.danger):hover,
body.app-layout a:not(.sidebar-nav a):not(.button):not(.btn):not(.mini-action):not(.logout-side):not(.danger):focus-visible{
    color:var(--brand-navy);
}

/* Componentes que ainda poderiam herdar azul por regras antigas. */
body.app-layout :where(.section-kicker,.permissoes-counter,.permissao-grupo summary::after){
    color:var(--brand-teal-dark) !important;
}
body.app-layout .permissoes-counter{
    border-color:#c9e8e5 !important;
    background:var(--brand-teal-soft) !important;
}
body.app-layout .permissao-grupo summary::after{
    background:var(--brand-teal-soft) !important;
}
body.app-layout .check-card.compacto input,
body.app-layout input[type="checkbox"],
body.app-layout input[type="radio"]{
    accent-color:var(--brand-teal);
}
body.app-layout .check-card.compacto:hover{
    border-color:#67c9c2 !important;
    background:#f2faf9 !important;
}
body.app-layout .backup-weekly-days{
    background:linear-gradient(180deg,#f7fbfd,#eef8f7) !important;
}
body.app-layout #postgresql-banco-dados{
    border-top-color:var(--brand-teal) !important;
}
body.app-layout .banco-confirmacao-eyebrow{
    color:var(--brand-teal-dark) !important;
    background:var(--brand-teal-soft) !important;
    border-color:#c9e8e5 !important;
}
body.app-layout .modal-confirmacao-banco .modal-confirmacao-header h2,
body.app-layout .modal-confirmacao-banco .modal-confirmacao-card label{
    color:var(--brand-navy) !important;
}
body.app-layout .config-pagina-summary,
body.app-layout .config-pagina-titulo{
    color:var(--brand-navy) !important;
}

/* Indicadores antes chamados blue/cyan passam a usar somente a identidade atual. */
body.app-layout .kpi,
body.app-layout .kpi.blue{
    background:linear-gradient(135deg,var(--brand-navy),var(--brand-teal)) !important;
}
body.app-layout .kpi.cyan{
    background:linear-gradient(135deg,var(--brand-teal-dark),#54d2c9) !important;
}
body.app-layout .bar div,
body.app-layout progress::-webkit-progress-value{
    background:linear-gradient(90deg,var(--brand-teal),#54d2c9) !important;
}
body.app-layout progress::-moz-progress-bar{
    background:linear-gradient(90deg,var(--brand-teal),#54d2c9) !important;
}

/* Login: textos corridos neutros; azul-marinho apenas na marca e no título. */
.login-page-v424{
    color:var(--brand-text) !important;
}
.login-page-v424 .login-title-wrap p,
.login-page-v424 .login-security-v422{
    color:var(--brand-muted) !important;
}
.login-page-v424 .login-form label{
    color:var(--brand-text-strong) !important;
}
.login-page-v424 .input-with-icon input{
    color:var(--brand-text) !important;
}
.login-page-v424 .login-links a{
    color:var(--brand-teal-dark) !important;
}

/* ===== v4.2.6 — recuperação e redefinição de senha harmonizadas =====
   Aplica o fundo claro da identidade atual ao fluxo real, sem usar a arte como
   formulário estático e sem alterar as regras de recuperação. */
.recovery-page-v426{
    position:relative;
    isolation:isolate;
    min-height:100vh;
    overflow-x:hidden;
    padding:18px !important;
    background:
        radial-gradient(circle at 10% 16%,rgba(15,159,154,.10),transparent 25%),
        radial-gradient(circle at 92% 78%,rgba(21,184,176,.14),transparent 25%),
        radial-gradient(circle at 52% 48%,rgba(255,255,255,.88),transparent 38%),
        linear-gradient(145deg,#e9f3f7 0%,#f8fbfc 48%,#e6f5f5 100%) !important;
}
.recovery-page-v426::before,
.recovery-page-v426::after{
    content:"";
    position:fixed;
    z-index:-1;
    pointer-events:none;
    border-radius:50%;
}
.recovery-page-v426::before{
    width:360px;
    height:360px;
    left:-105px;
    bottom:-150px;
    border:2px solid rgba(18,54,111,.045);
    box-shadow:
        0 -510px 0 -68px rgba(15,159,154,.035),
        1320px -30px 0 -56px rgba(15,159,154,.045);
}
.recovery-page-v426::after{
    width:180px;
    height:180px;
    right:42px;
    top:22px;
    opacity:.42;
    background-image:radial-gradient(circle,rgba(15,159,154,.15) 2px,transparent 2.5px);
    background-size:22px 22px;
}
.recovery-page-v426 .recovery-shell-v426{
    position:relative;
    z-index:1;
    width:100%;
    min-height:calc(100vh - 36px);
    padding:0 !important;
    display:flex;
    align-items:center;
    justify-content:center;
}
.recovery-page-v426 .recovery-card-v426{
    width:min(630px,100%);
    padding:28px 30px 26px;
    border:1px solid rgba(255,255,255,.9);
    border-radius:28px;
    background:rgba(255,255,255,.92);
    box-shadow:0 24px 58px rgba(18,54,111,.13),0 2px 8px rgba(15,159,154,.06);
    backdrop-filter:blur(10px);
}
.recovery-page-v426 .recovery-top-v426{
    margin-bottom:14px;
}
.recovery-page-v426 .recovery-logo-v426{
    width:116px;
    height:116px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 12px !important;
    padding:0;
    border:1px solid rgba(255,255,255,.95);
    border-radius:24px;
    background:linear-gradient(145deg,#ffffff,#f7fbfb) !important;
    box-shadow:0 14px 28px rgba(18,54,111,.10),0 3px 10px rgba(15,159,154,.06) !important;
}
.recovery-page-v426 .recovery-logo-v426 img{
    width:68px !important;
    height:68px !important;
    object-fit:contain;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
}
.recovery-page-v426 .recovery-title-v426 .login-kicker{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 10px;
    padding:7px 15px;
    border:1px solid #b9e4e1;
    border-radius:999px;
    color:#087f82;
    background:#edf9f8;
    box-shadow:0 3px 10px rgba(15,159,154,.05);
    font-size:13px;
    font-weight:900;
    line-height:1;
}
.recovery-page-v426 .recovery-title-v426 h2{
    margin:0 !important;
    color:#21364d !important;
    font-size:clamp(27px,3vw,35px) !important;
    font-weight:400 !important;
    letter-spacing:-.5px;
    line-height:1.08;
}
.recovery-page-v426 .recovery-title-v426 p{
    max-width:520px;
    margin:8px auto 0 !important;
    color:#667085 !important;
    font-size:14px !important;
    line-height:1.45;
}
.recovery-page-v426 .recovery-form-v426{
    margin-top:4px;
}
.recovery-page-v426 .recovery-form-v426 label{
    display:block;
    margin:10px 0 5px !important;
    color:#263b52 !important;
    font-size:13px;
    font-weight:900;
}
.recovery-page-v426 .recovery-input-v426{
    display:grid;
    grid-template-columns:48px minmax(0,1fr);
    min-height:50px;
    overflow:hidden;
    border:1px solid #ccd7df !important;
    border-radius:12px;
    background:#ffffff !important;
    box-shadow:0 2px 7px rgba(31,51,71,.025) !important;
    transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.recovery-page-v426 .recovery-password-v426{
    grid-template-columns:48px minmax(0,1fr) 48px;
}
.recovery-page-v426 .recovery-input-v426 > span{
    display:flex;
    align-items:center;
    justify-content:center;
    color:#687789 !important;
    border-right:1px solid #d8e0e6 !important;
    background:#f3f6f7 !important;
}
.recovery-page-v426 .recovery-input-v426 > span i{
    font-size:19px;
}
.recovery-page-v426 .recovery-input-v426 input{
    width:100%;
    min-width:0;
    min-height:48px;
    padding:10px 15px !important;
    color:#303b47 !important;
    border:0 !important;
    border-radius:0 !important;
    outline:0 !important;
    background:#ffffff !important;
    box-shadow:none !important;
    font-size:15px;
}
.recovery-page-v426 .recovery-input-v426 input::placeholder{
    color:#8792a2;
    opacity:1;
}
.recovery-page-v426 .recovery-input-v426:focus-within{
    border-color:var(--brand-teal) !important;
    background:#fff !important;
    box-shadow:0 0 0 3px rgba(15,159,154,.12) !important;
}
.recovery-page-v426 .recovery-password-toggle-v426{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:48px !important;
    min-width:48px !important;
    min-height:48px !important;
    margin:0 !important;
    padding:0 !important;
    color:#687789 !important;
    border:0 !important;
    border-left:1px solid transparent !important;
    border-radius:0 !important;
    background:#ffffff !important;
    box-shadow:none !important;
    filter:none !important;
    cursor:pointer;
}
.recovery-page-v426 .recovery-password-toggle-v426:hover,
.recovery-page-v426 .recovery-password-toggle-v426:focus-visible{
    color:var(--brand-teal-dark) !important;
    background:#f0faf9 !important;
    outline:none !important;
}
.recovery-page-v426 .recovery-rule-v426{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin:14px 0 0 !important;
    padding:12px 13px;
    color:#284158 !important;
    border:1px solid #bce4e1 !important;
    border-radius:13px;
    background:rgba(240,250,249,.78) !important;
    font-size:13px;
    font-weight:700;
    line-height:1.38;
}
.recovery-page-v426 .recovery-rule-v426 i{
    flex:0 0 auto;
    margin-top:1px;
    color:var(--brand-teal-dark);
    font-size:17px;
}
.recovery-page-v426 .recovery-actions-v426{
    margin:11px 0 3px !important;
    display:flex;
    align-items:center;
    justify-content:space-between !important;
    gap:14px;
}
.recovery-page-v426 .recovery-actions-single-v426{
    justify-content:flex-start !important;
}
.recovery-page-v426 .recovery-actions-v426 a,
.recovery-page-v426 .recovery-actions-v426 .link-button{
    width:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:2px 0 !important;
    color:var(--brand-teal-dark) !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    filter:none !important;
    font-size:13px !important;
    font-weight:900 !important;
    line-height:1.3;
    text-decoration:none;
}
.recovery-page-v426 .recovery-actions-v426 a:hover,
.recovery-page-v426 .recovery-actions-v426 a:focus-visible,
.recovery-page-v426 .recovery-actions-v426 .link-button:hover,
.recovery-page-v426 .recovery-actions-v426 .link-button:focus-visible{
    color:#22516a !important;
    text-decoration:underline;
    outline:none;
}
.recovery-page-v426 .recovery-submit-v426{
    width:100%;
    min-height:54px;
    margin:12px 0 0 !important;
    border:0 !important;
    border-radius:999px !important;
    color:#fff !important;
    background:linear-gradient(135deg,#0aa7a0,#078a88) !important;
    box-shadow:0 12px 24px rgba(15,159,154,.20) !important;
    font-size:17px;
    font-weight:900;
}
.recovery-page-v426 .recovery-submit-v426:hover,
.recovery-page-v426 .recovery-submit-v426:focus-visible{
    background:linear-gradient(135deg,#078f8b,#067779) !important;
    box-shadow:0 14px 26px rgba(8,127,130,.24) !important;
    outline:none;
}
.recovery-page-v426 .recovery-alert-v426{
    margin:0 0 10px;
    border-radius:12px;
    font-size:13px;
}

@media screen and (max-height:760px) and (min-width:641px){
    .recovery-page-v426{padding:10px !important;}
    .recovery-page-v426 .recovery-shell-v426{min-height:calc(100vh - 20px);}
    .recovery-page-v426 .recovery-card-v426{padding:18px 26px 17px;}
    .recovery-page-v426 .recovery-logo-v426{width:82px;height:82px;margin-bottom:8px !important;border-radius:20px;}
    .recovery-page-v426 .recovery-logo-v426 img{width:51px !important;height:51px !important;}
    .recovery-page-v426 .recovery-title-v426 .login-kicker{margin-bottom:7px;padding:6px 13px;}
    .recovery-page-v426 .recovery-title-v426 h2{font-size:27px !important;}
    .recovery-page-v426 .recovery-title-v426 p{margin-top:5px !important;font-size:13px !important;}
    .recovery-page-v426 .recovery-top-v426{margin-bottom:8px;}
    .recovery-page-v426 .recovery-form-v426 label{margin-top:7px !important;}
    .recovery-page-v426 .recovery-input-v426{min-height:44px;grid-template-columns:44px minmax(0,1fr);}
    .recovery-page-v426 .recovery-password-v426{grid-template-columns:44px minmax(0,1fr) 44px;}
    .recovery-page-v426 .recovery-input-v426 input{min-height:42px;padding:8px 13px !important;}
    .recovery-page-v426 .recovery-password-toggle-v426{width:44px !important;min-width:44px !important;min-height:42px !important;}
    .recovery-page-v426 .recovery-rule-v426{margin-top:10px !important;padding:9px 11px;}
    .recovery-page-v426 .recovery-actions-v426{margin-top:8px !important;}
    .recovery-page-v426 .recovery-submit-v426{min-height:47px;margin-top:8px !important;font-size:15px;}
}

@media screen and (max-width:640px){
    .recovery-page-v426{padding:10px !important;}
    .recovery-page-v426::after{display:none;}
    .recovery-page-v426 .recovery-shell-v426{min-height:calc(100vh - 20px);align-items:flex-start;}
    .recovery-page-v426 .recovery-card-v426{margin:auto 0;padding:22px 16px 18px;border-radius:22px;}
    .recovery-page-v426 .recovery-logo-v426{width:86px;height:86px;margin-bottom:9px !important;border-radius:20px;}
    .recovery-page-v426 .recovery-logo-v426 img{width:52px !important;height:52px !important;}
    .recovery-page-v426 .recovery-title-v426 h2{font-size:27px !important;}
    .recovery-page-v426 .recovery-title-v426 p{font-size:13px !important;}
    .recovery-page-v426 .recovery-actions-v426{align-items:flex-start;flex-direction:column;gap:7px;}
    .recovery-page-v426 .recovery-submit-v426{font-size:15px;}
}


/* ===== v4.2.7 — marca completa e compacta na recuperação/redefinição =====
   Usa a mesma assinatura visual do login, em escala equilibrada para não
   aumentar o card nem provocar rolagem em telas comuns. */
.recovery-page-v427 .recovery-top-v426{
    margin-bottom:10px;
}
.recovery-page-v427 .recovery-brand-v427{
    width:min(292px,100%);
    min-height:68px;
    margin:0 auto 10px;
    display:grid;
    grid-template-columns:62px minmax(0,1fr);
    align-items:center;
    justify-content:center;
    gap:12px;
    padding:0;
    color:var(--brand-navy,#12366f);
    background:transparent;
}
.recovery-page-v427 .recovery-brand-v427 img{
    display:block;
    width:62px !important;
    height:62px !important;
    margin:0 !important;
    padding:0 !important;
    object-fit:contain;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
}
.recovery-page-v427 .recovery-brand-text-v427{
    display:flex;
    min-width:0;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:1px;
    color:var(--brand-navy,#12366f);
    font-size:18px;
    font-weight:900;
    line-height:.98;
    letter-spacing:-.35px;
    text-align:left;
}
.recovery-page-v427 .recovery-brand-text-v427 strong{
    display:block;
    white-space:nowrap;
}
.recovery-page-v427 .recovery-brand-highlight-v427{
    color:var(--brand-teal,#0f9f9a);
}
.recovery-page-v427 .recovery-title-v426 .login-kicker{
    margin-bottom:7px;
    padding:6px 13px;
}
.recovery-page-v427 .recovery-title-v426 h2{
    font-size:clamp(25px,2.4vw,31px) !important;
}
.recovery-page-v427 .recovery-title-v426 p{
    margin-top:6px !important;
    font-size:13px !important;
}
@media screen and (max-height:760px) and (min-width:641px){
    .recovery-page-v427 .recovery-brand-v427{
        width:260px;
        min-height:54px;
        grid-template-columns:50px minmax(0,1fr);
        gap:10px;
        margin-bottom:6px;
    }
    .recovery-page-v427 .recovery-brand-v427 img{
        width:50px !important;
        height:50px !important;
    }
    .recovery-page-v427 .recovery-brand-text-v427{
        font-size:15.7px;
    }
    .recovery-page-v427 .recovery-title-v426 h2{
        font-size:25px !important;
    }
}
@media screen and (max-width:640px){
    .recovery-page-v427 .recovery-brand-v427{
        width:242px;
        min-height:54px;
        grid-template-columns:50px minmax(0,1fr);
        gap:9px;
        margin-bottom:8px;
    }
    .recovery-page-v427 .recovery-brand-v427 img{
        width:50px !important;
        height:50px !important;
    }
    .recovery-page-v427 .recovery-brand-text-v427{
        font-size:14.5px;
        letter-spacing:-.2px;
    }
    .recovery-page-v427 .recovery-title-v426 h2{
        font-size:25px !important;
    }
}

/* ===== v4.2.8 — filtros de status com cores semânticas =====
   O filtro selecionado respeita a própria legenda:
   Retirado = verde; Não retirado = âmbar/laranja.
   Os estados inativos permanecem neutros, mantendo apenas o ponto de referência. */
body.app-layout .cadastro-legenda-status .cadastro-legenda-filtro{
    background:transparent !important;
    border-color:transparent !important;
    color:var(--brand-text,#2f3742) !important;
    box-shadow:none !important;
}

body.app-layout .cadastro-legenda-status .cadastro-legenda-filtro.filtro-retirado:not(.ativo):hover{
    background:#f0fdf4 !important;
    border-color:#86efac !important;
    color:#166534 !important;
    box-shadow:0 4px 10px rgba(22,163,74,.10) !important;
}

body.app-layout .cadastro-legenda-status .cadastro-legenda-filtro.filtro-nao-retirado:not(.ativo):hover{
    background:#fffbeb !important;
    border-color:#fcd34d !important;
    color:#92400e !important;
    box-shadow:0 4px 10px rgba(217,119,6,.10) !important;
}

body.app-layout .cadastro-legenda-status .cadastro-legenda-filtro.filtro-retirado.ativo{
    color:#ffffff !important;
    border-color:#16a34a !important;
    background:linear-gradient(135deg,#22c55e,#16a34a) !important;
    box-shadow:0 7px 16px rgba(22,163,74,.22) !important;
}

body.app-layout .cadastro-legenda-status .cadastro-legenda-filtro.filtro-nao-retirado.ativo{
    color:#ffffff !important;
    border-color:#d97706 !important;
    background:linear-gradient(135deg,#f59e0b,#d97706) !important;
    box-shadow:0 7px 16px rgba(217,119,6,.22) !important;
}

body.app-layout .cadastro-legenda-status .cadastro-legenda-filtro.filtro-retirado:focus-visible{
    outline:3px solid rgba(34,197,94,.28) !important;
    outline-offset:2px;
}

body.app-layout .cadastro-legenda-status .cadastro-legenda-filtro.filtro-nao-retirado:focus-visible{
    outline:3px solid rgba(245,158,11,.30) !important;
    outline-offset:2px;
}

body.app-layout .cadastro-legenda-status .cadastro-legenda-filtro.filtro-retirado.ativo .legenda-retirado{
    background:#dcfce7 !important;
    border-color:rgba(255,255,255,.75) !important;
    box-shadow:0 0 0 2px rgba(255,255,255,.20) !important;
}

body.app-layout .cadastro-legenda-status .cadastro-legenda-filtro.filtro-nao-retirado.ativo .legenda-nao-retirado{
    background:#fef3c7 !important;
    border-color:rgba(255,255,255,.75) !important;
    box-shadow:0 0 0 2px rgba(255,255,255,.20) !important;
}



/* ===== v4.2.9 — Filtrar e Limpar com o mesmo padrão visual =====
   Alteração restrita às ações dos formulários de filtro do Cadastro e da Lixeira.
   Os dois botões usam o mesmo degradê teal, texto/ícones brancos e o mesmo hover. */
html body.app-layout .card-filtros-avancados form.form-grid .filtros-acoes > button.botao-filtrar-ajustado,
html body.app-layout .card-filtros-avancados form.form-grid .filtros-acoes > a.botao-limpar-ajustado,
html body.app-layout .card-lixeira-consulta form.form-grid .filtros-acoes > button.botao-filtrar-lixeira,
html body.app-layout .card-lixeira-consulta form.form-grid .filtros-acoes > a.botao-limpar-lixeira{
    color:#ffffff !important;
    background:linear-gradient(135deg,var(--brand-teal),var(--brand-teal-dark)) !important;
    border:1px solid transparent !important;
    box-shadow:0 9px 20px rgba(15,159,154,.18) !important;
    text-decoration:none !important;
}

html body.app-layout .card-filtros-avancados form.form-grid .filtros-acoes > button.botao-filtrar-ajustado i,
html body.app-layout .card-filtros-avancados form.form-grid .filtros-acoes > a.botao-limpar-ajustado i,
html body.app-layout .card-lixeira-consulta form.form-grid .filtros-acoes > button.botao-filtrar-lixeira i,
html body.app-layout .card-lixeira-consulta form.form-grid .filtros-acoes > a.botao-limpar-lixeira i{
    color:#ffffff !important;
}

html body.app-layout .card-filtros-avancados form.form-grid .filtros-acoes > button.botao-filtrar-ajustado:hover,
html body.app-layout .card-filtros-avancados form.form-grid .filtros-acoes > a.botao-limpar-ajustado:hover,
html body.app-layout .card-lixeira-consulta form.form-grid .filtros-acoes > button.botao-filtrar-lixeira:hover,
html body.app-layout .card-lixeira-consulta form.form-grid .filtros-acoes > a.botao-limpar-lixeira:hover{
    color:#ffffff !important;
    background:linear-gradient(135deg,var(--brand-teal-dark),#076a70) !important;
    box-shadow:0 11px 23px rgba(8,127,130,.24) !important;
    filter:none !important;
}

html body.app-layout .card-filtros-avancados form.form-grid .filtros-acoes > button.botao-filtrar-ajustado:focus-visible,
html body.app-layout .card-filtros-avancados form.form-grid .filtros-acoes > a.botao-limpar-ajustado:focus-visible,
html body.app-layout .card-lixeira-consulta form.form-grid .filtros-acoes > button.botao-filtrar-lixeira:focus-visible,
html body.app-layout .card-lixeira-consulta form.form-grid .filtros-acoes > a.botao-limpar-lixeira:focus-visible{
    outline:3px solid rgba(15,159,154,.28) !important;
    outline-offset:2px !important;
}


/* ===== v4.3.0 — centraliza a marca da recuperação/redefinição e restaura KPIs multicoloridos =====
   Ajuste restrito ao topo das telas recuperar/redefinir senha e aos indicadores/KPIs,
   voltando ao comportamento colorido da v420 sem alterar a lógica funcional. */
.recovery-page-v427 .recovery-top-v426{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
}
.recovery-page-v427 .recovery-brand-v427{
    width:auto;
    max-width:100%;
    min-height:0;
    margin:0 auto 10px !important;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;
}
.recovery-page-v427 .recovery-brand-v427 img{
    flex:0 0 62px;
}
.recovery-page-v427 .recovery-brand-text-v427{
    flex:0 1 auto;
    align-items:flex-start;
    justify-content:center;
    text-align:left;
}
@media screen and (max-height:760px) and (min-width:641px){
    .recovery-page-v427 .recovery-brand-v427{
        gap:10px;
        margin-bottom:6px !important;
    }
    .recovery-page-v427 .recovery-brand-v427 img{
        flex-basis:50px;
    }
}
@media screen and (max-width:640px){
    .recovery-page-v427 .recovery-brand-v427{
        gap:9px;
        margin-bottom:8px !important;
    }
    .recovery-page-v427 .recovery-brand-v427 img{
        flex-basis:50px;
    }
}

body.app-layout .kpi{
    background:linear-gradient(135deg,#184c8d,#2576d8) !important;
}
body.app-layout .kpi.green{
    background:linear-gradient(135deg,#059669,#34d399) !important;
}
body.app-layout .kpi.orange{
    background:linear-gradient(135deg,#f97316,#facc15) !important;
}
body.app-layout .kpi.blue{
    background:linear-gradient(135deg,#1d4ed8,#38bdf8) !important;
}
body.app-layout .kpi.purple{
    background:linear-gradient(135deg,#7c3aed,#c084fc) !important;
}
body.app-layout .kpi.red{
    background:linear-gradient(135deg,#dc2626,#fb7185) !important;
}
body.app-layout .kpi.cyan{
    background:linear-gradient(135deg,#0891b2,#67e8f9) !important;
}
body.app-layout .kpi span,
body.app-layout .kpi strong{
    color:#ffffff !important;
}


/* ===== v4.3.1 — botão Sair com texto e ícone brancos =====
   Ajuste visual restrito ao botão lateral Sair. */
body.app-layout .logout-side,
body.app-layout .logout-side:link,
body.app-layout .logout-side:visited{
    color:#ffffff !important;
}
body.app-layout .logout-side i,
body.app-layout .logout-side span{
    color:#ffffff !important;
}
body.app-layout .logout-side:hover,
body.app-layout .logout-side:focus-visible{
    color:#ffffff !important;
}
body.app-layout .logout-side:hover i,
body.app-layout .logout-side:hover span,
body.app-layout .logout-side:focus-visible i,
body.app-layout .logout-side:focus-visible span{
    color:#ffffff !important;
}


/* ===== v4.3.2 — padrão consistente para textos e hover dos botões internos =====
   Botões principais preenchidos: teal com texto/ícone brancos; hover teal escuro.
   Botões secundários claros: azul-marinho; hover teal com texto/ícone brancos.
   Ações perigosas e de alerta mantêm suas cores semânticas. Controles de senha,
   fechar modal, links simples, filtros semânticos e selos não são afetados. */
body.app-layout button:not(.secondary):not(.secondary-button):not(.danger):not(.danger-button):not(.mini-danger):not(.warning-button):not(.modal-confirmacao-fechar):not(.password-toggle-v422):not(.recovery-password-toggle-v426):not(.link-button):not(.rh-combobox-toggle-v217):not(.rh-combobox-opcao-v217),
body.app-layout a.button:not(.secondary):not(.danger),
body.app-layout a.primary-button,
body.app-layout .mini-action,
body.app-layout a.backup-admin-button-inline,
body.app-layout .migracao-automatica-button,
body.app-layout .migracao-simulacao-button{
    color:#ffffff !important;
    background:linear-gradient(135deg,var(--brand-teal),var(--brand-teal-dark)) !important;
    border-color:transparent !important;
    box-shadow:0 9px 20px rgba(15,159,154,.18) !important;
    text-decoration:none !important;
}
body.app-layout button:not(.secondary):not(.secondary-button):not(.danger):not(.danger-button):not(.mini-danger):not(.warning-button):not(.modal-confirmacao-fechar):not(.password-toggle-v422):not(.recovery-password-toggle-v426):not(.link-button):not(.rh-combobox-toggle-v217):not(.rh-combobox-opcao-v217) i,
body.app-layout a.button:not(.secondary):not(.danger) i,
body.app-layout a.primary-button i,
body.app-layout .mini-action i,
body.app-layout a.backup-admin-button-inline i,
body.app-layout .migracao-automatica-button i,
body.app-layout .migracao-simulacao-button i{
    color:#ffffff !important;
}
body.app-layout button:not(.secondary):not(.secondary-button):not(.danger):not(.danger-button):not(.mini-danger):not(.warning-button):not(.modal-confirmacao-fechar):not(.password-toggle-v422):not(.recovery-password-toggle-v426):not(.link-button):not(.rh-combobox-toggle-v217):not(.rh-combobox-opcao-v217):hover,
body.app-layout button:not(.secondary):not(.secondary-button):not(.danger):not(.danger-button):not(.mini-danger):not(.warning-button):not(.modal-confirmacao-fechar):not(.password-toggle-v422):not(.recovery-password-toggle-v426):not(.link-button):not(.rh-combobox-toggle-v217):not(.rh-combobox-opcao-v217):focus-visible,
body.app-layout a.button:not(.secondary):not(.danger):hover,
body.app-layout a.button:not(.secondary):not(.danger):focus-visible,
body.app-layout a.primary-button:hover,
body.app-layout a.primary-button:focus-visible,
body.app-layout .mini-action:hover,
body.app-layout .mini-action:focus-visible,
body.app-layout a.backup-admin-button-inline:hover,
body.app-layout a.backup-admin-button-inline:focus-visible,
body.app-layout .migracao-automatica-button:hover,
body.app-layout .migracao-automatica-button:focus-visible,
body.app-layout .migracao-simulacao-button:hover:not(:disabled),
body.app-layout .migracao-simulacao-button:focus-visible:not(:disabled){
    color:#ffffff !important;
    background:linear-gradient(135deg,var(--brand-teal-dark),#076a70) !important;
    border-color:transparent !important;
    box-shadow:0 11px 23px rgba(8,127,130,.24) !important;
    filter:none !important;
    outline:none;
}
body.app-layout button:not(.secondary):not(.secondary-button):not(.danger):not(.danger-button):not(.mini-danger):not(.warning-button):not(.modal-confirmacao-fechar):not(.password-toggle-v422):not(.recovery-password-toggle-v426):not(.link-button):not(.rh-combobox-toggle-v217):not(.rh-combobox-opcao-v217):focus-visible,
body.app-layout a.button:not(.secondary):not(.danger):focus-visible,
body.app-layout a.primary-button:focus-visible,
body.app-layout .mini-action:focus-visible,
body.app-layout a.backup-admin-button-inline:focus-visible{
    outline:3px solid rgba(15,159,154,.28) !important;
    outline-offset:2px !important;
}

body.app-layout button.secondary,
body.app-layout button.secondary-button,
body.app-layout a.button.secondary,
body.app-layout a.secondary-button,
body.app-layout .button.secondary,
body.app-layout .secondary-button{
    color:var(--brand-navy) !important;
    background:#f2f7fb !important;
    border-color:#cfdde7 !important;
    box-shadow:none !important;
    text-decoration:none !important;
}
body.app-layout button.secondary i,
body.app-layout button.secondary-button i,
body.app-layout a.button.secondary i,
body.app-layout a.secondary-button i,
body.app-layout .button.secondary i,
body.app-layout .secondary-button i{
    color:var(--brand-navy) !important;
}
body.app-layout button.secondary:hover:not(:disabled),
body.app-layout button.secondary:focus-visible:not(:disabled),
body.app-layout button.secondary-button:hover:not(:disabled),
body.app-layout button.secondary-button:focus-visible:not(:disabled),
body.app-layout a.button.secondary:hover,
body.app-layout a.button.secondary:focus-visible,
body.app-layout a.secondary-button:hover,
body.app-layout a.secondary-button:focus-visible,
body.app-layout .button.secondary:hover,
body.app-layout .button.secondary:focus-visible,
body.app-layout .secondary-button:hover:not(:disabled),
body.app-layout .secondary-button:focus-visible:not(:disabled){
    color:#ffffff !important;
    background:linear-gradient(135deg,var(--brand-teal),var(--brand-teal-dark)) !important;
    border-color:transparent !important;
    box-shadow:0 9px 20px rgba(15,159,154,.18) !important;
    filter:none !important;
    outline:none;
}
body.app-layout button.secondary:hover:not(:disabled) i,
body.app-layout button.secondary:focus-visible:not(:disabled) i,
body.app-layout button.secondary-button:hover:not(:disabled) i,
body.app-layout button.secondary-button:focus-visible:not(:disabled) i,
body.app-layout a.button.secondary:hover i,
body.app-layout a.button.secondary:focus-visible i,
body.app-layout a.secondary-button:hover i,
body.app-layout a.secondary-button:focus-visible i,
body.app-layout .button.secondary:hover i,
body.app-layout .button.secondary:focus-visible i,
body.app-layout .secondary-button:hover:not(:disabled) i,
body.app-layout .secondary-button:focus-visible:not(:disabled) i{
    color:#ffffff !important;
}

body.app-layout button.danger,
body.app-layout .button.danger,
body.app-layout .danger-button,
body.app-layout .mini-danger{
    color:#ffffff !important;
    background:linear-gradient(135deg,#dc2626,#ef4444) !important;
    border-color:transparent !important;
}
body.app-layout button.danger i,
body.app-layout .button.danger i,
body.app-layout .danger-button i,
body.app-layout .mini-danger i{
    color:#ffffff !important;
}
body.app-layout button.danger:hover:not(:disabled),
body.app-layout button.danger:focus-visible:not(:disabled),
body.app-layout .button.danger:hover,
body.app-layout .button.danger:focus-visible,
body.app-layout .danger-button:hover:not(:disabled),
body.app-layout .danger-button:focus-visible:not(:disabled),
body.app-layout .mini-danger:hover:not(:disabled),
body.app-layout .mini-danger:focus-visible:not(:disabled){
    color:#ffffff !important;
    background:linear-gradient(135deg,#b91c1c,#dc2626) !important;
    border-color:transparent !important;
    filter:none !important;
}

body.app-layout .warning-button{
    color:#ffffff !important;
    background:linear-gradient(135deg,#d97706,#f59e0b) !important;
    border-color:transparent !important;
}
body.app-layout .warning-button i{color:#ffffff !important;}
body.app-layout .warning-button:hover:not(:disabled),
body.app-layout .warning-button:focus-visible:not(:disabled){
    color:#ffffff !important;
    background:linear-gradient(135deg,#b45309,#d97706) !important;
    border-color:transparent !important;
    filter:none !important;
}

body.app-layout button:disabled,
body.app-layout .button[aria-disabled="true"],
body.app-layout .secondary-button:disabled,
body.app-layout .primary-button:disabled{
    color:#7b8794 !important;
    background:#e7ecef !important;
    border-color:#d4dde3 !important;
    box-shadow:none !important;
    cursor:not-allowed !important;
    opacity:.78;
}
body.app-layout button:disabled i,
body.app-layout .button[aria-disabled="true"] i{
    color:#7b8794 !important;
}


/* ===== v4.3.3 — recuperação de senha mais compacta =====
   Reduz a largura da tela de recuperação de senha e remove o título redundante
   da etapa de solicitação, mantendo a etapa de redefinição intacta. */
.recovery-page-v426:not(.recovery-reset-v426) .recovery-card-v426{
    width:min(560px,100%);
    padding:26px 28px 24px;
}
.recovery-page-v426:not(.recovery-reset-v426) .recovery-top-v426{
    margin-bottom:10px;
}
.recovery-page-v426:not(.recovery-reset-v426) .recovery-title-v426{
    display:flex;
    flex-direction:column;
    align-items:center;
}
.recovery-page-v426:not(.recovery-reset-v426) .recovery-title-v426 .login-kicker{
    margin-bottom:9px;
}
.recovery-page-v426:not(.recovery-reset-v426) .recovery-subtitle-v433{
    max-width:430px;
    margin:0 auto !important;
    color:#667085 !important;
    font-size:14px !important;
    line-height:1.45;
    text-align:center;
}
.recovery-page-v426:not(.recovery-reset-v426) .recovery-rule-v426{
    margin-top:12px !important;
}
@media screen and (max-height:760px) and (min-width:641px){
    .recovery-page-v426:not(.recovery-reset-v426) .recovery-card-v426{
        width:min(528px,100%);
        padding:18px 24px 17px;
    }
    .recovery-page-v426:not(.recovery-reset-v426) .recovery-subtitle-v433{
        max-width:400px;
        font-size:13px !important;
    }
}
@media screen and (max-width:640px){
    .recovery-page-v426:not(.recovery-reset-v426) .recovery-card-v426{
        width:min(100%,520px);
        padding:20px 15px 18px;
    }
    .recovery-page-v426:not(.recovery-reset-v426) .recovery-subtitle-v433{
        max-width:100%;
        font-size:13px !important;
    }
}


/* ===== v4.3.4 — brasão no canto superior esquerdo das páginas internas =====
   Reinsere o brasão na barra superior das páginas internas, ao lado esquerdo do título. */
.top-title-group{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
}
.top-title-wrap{
    min-width:0;
}
.top-title-wrap h2{
    margin:0;
}
.topbar-brasao{
    width:42px;
    height:42px;
    flex:0 0 42px;
    object-fit:contain;
    border-radius:10px;
    background:linear-gradient(145deg,#ffffff,#f5f9fb);
    border:1px solid #dce8ef;
    box-shadow:0 6px 14px rgba(18,54,111,.08);
    padding:4px;
}
@media screen and (max-width:700px){
    .topbar-brasao{
        width:36px;
        height:36px;
        flex-basis:36px;
        padding:3px;
        border-radius:9px;
    }
}


/* ===== v4.3.5 — remove os círculos pontilhados do fundo da recuperação/redefinição =====
   Mantém o fundo claro harmonizado, removendo apenas o elemento decorativo pontilhado. */
.recovery-page-v426::after{
    display:none !important;
    background-image:none !important;
    content:none !important;
}


/* ===== v4.3.6 — mesma tipografia nos botões Imprimir e Exportar =====
   Normaliza fonte, tamanho, peso e alinhamento dos dois controles da barra superior. */
body.app-layout .top-actions .mini-action,
body.app-layout .top-actions button.mini-action,
body.app-layout .top-actions a.mini-action{
    font-family:"Segoe UI", Arial, sans-serif !important;
    font-size:14px !important;
    font-weight:900 !important;
    line-height:1 !important;
    letter-spacing:0 !important;
}
body.app-layout .top-actions .mini-action i{
    font-size:14px !important;
    line-height:1 !important;
}


/* ===== v4.3.7 — fundo liso nas telas de recuperação/redefinição =====
   Remove todos os círculos decorativos: preenchidos, contornados e pontilhados.
   Mantém somente um gradiente suave e uniforme da identidade visual. */
.recovery-page-v426{
    background:linear-gradient(145deg,#edf6f8 0%,#f9fbfc 52%,#eaf7f6 100%) !important;
}
.recovery-page-v426::before,
.recovery-page-v426::after{
    display:none !important;
    content:none !important;
    width:0 !important;
    height:0 !important;
    background:none !important;
    background-image:none !important;
    border:0 !important;
    box-shadow:none !important;
}


/* ===== v4.3.8 — recupera o tom teal do fundo sem voltar com figuras =====
   Mantém o fundo liso, porém com gradiente suave mais presente na identidade visual. */
.recovery-page-v426{
    background:linear-gradient(145deg,#e3f3f4 0%,#f8fbfc 48%,#dff2f1 100%) !important;
}


/* ===== v4.3.9 — seleção de backups compacta e painel preservado =====
   Impede que os checkboxes herdem o formato largo dos campos de texto. */
body.app-layout .card-backups-disponiveis input[type="checkbox"].backup-selection-checkbox{
    appearance:auto !important;
    -webkit-appearance:checkbox !important;
    width:18px !important;
    height:18px !important;
    min-width:18px !important;
    min-height:18px !important;
    max-width:18px !important;
    max-height:18px !important;
    margin:0 auto !important;
    padding:0 !important;
    border:0 !important;
    border-radius:3px !important;
    background:transparent !important;
    box-shadow:none !important;
    outline-offset:2px;
    display:inline-block !important;
    vertical-align:middle;
    cursor:pointer;
    accent-color:var(--brand-teal,#0f9f9a) !important;
}
body.app-layout .card-backups-disponiveis .backup-select-all-option input[type="checkbox"].backup-selection-checkbox{
    margin:0 !important;
    flex:0 0 18px !important;
}


/* ===== v4.4.0 — atualização parcial e estado dos painéis ===== */
.backup-panel-messages:empty{
    display:none;
}
.backup-panel-messages{
    display:grid;
    gap:8px;
    margin:0 0 14px;
}
.backup-panel-messages .alert{
    margin:0 !important;
}
#backups-disponiveis[aria-busy="true"] .backup-recolhivel-conteudo{
    opacity:.72;
    pointer-events:none;
}
#backups-disponiveis[aria-busy="true"] .banco-recolhivel-summary::after{
    content:"Atualizando...";
    margin-left:auto;
    color:var(--brand-teal-dark,#087f82);
    font-size:12px;
    font-weight:800;
}


/* ===== v4.4.2 — texto de apoio do login em uma única linha =====
   Amplia somente a área direita do login no desktop para que a frase de apoio
   permaneça inteira em uma linha, mantendo quebra normal em tablet e celular. */
@media (min-width:981px){
    .login-page-v424 .login-shell{
        width:min(1160px,100%) !important;
        grid-template-columns:minmax(530px,.96fr) minmax(480px,1.04fr) !important;
    }
    .login-page-v424 .login-panel{
        padding-right:26px !important;
    }
    .login-page-v424 .login-card{
        max-width:480px !important;
    }
    .login-page-v424 .login-title-wrap p{
        max-width:470px !important;
        white-space:nowrap !important;
    }
}
@media screen and (max-width:980px){
    .login-page-v424 .login-title-wrap p{
        max-width:430px !important;
        white-space:normal !important;
    }
}


/* ===== v4.4.3 — favicon ampliado e ícone vermelho nas ações críticas =====
   Ajusta o favicon para ocupar melhor a aba do navegador e força o ícone/título
   do painel “Ações críticas da base” a usar vermelho sem herdar o teal. */
html body.app-layout details.backup-painel-critico > .banco-recolhivel-summary,
html body.app-layout details.backup-painel-critico > .banco-recolhivel-summary .banco-recolhivel-titulo,
html body.app-layout details.backup-painel-critico > .banco-recolhivel-summary .banco-recolhivel-resumo,
html body.app-layout details.backup-painel-critico > .banco-recolhivel-summary .banco-recolhivel-seta,
html body.app-layout details.backup-painel-critico > .banco-recolhivel-summary .banco-recolhivel-titulo > i,
html body.app-layout details.backup-painel-critico > .banco-recolhivel-summary .bi,
html body.app-layout details.backup-painel-critico > .banco-recolhivel-summary svg{
    color:#b91c1c !important;
    fill:#b91c1c !important;
}

/* ===== v4.4.4 — primeiro acesso isolado, sem menus =====
   A configuração inicial usa uma tela própria e segura. Os menus aparecem
   somente depois que a nova senha é salva com sucesso. */
.first-access-page-v444{
    min-height:100vh;
    padding:18px !important;
    background:linear-gradient(145deg,#e3f3f4 0%,#f8fbfc 48%,#dff2f1 100%) !important;
}
.first-access-page-v444::before,
.first-access-page-v444::after{
    display:none !important;
    content:none !important;
}
.first-access-shell-v444{
    width:100%;
    min-height:calc(100vh - 36px);
    display:flex;
    align-items:center;
    justify-content:center;
}
.first-access-card-v444{
    width:min(570px,100%);
    padding:28px 30px 22px;
    border:1px solid rgba(255,255,255,.94);
    border-radius:28px;
    background:rgba(255,255,255,.94);
    box-shadow:0 24px 58px rgba(18,54,111,.13),0 2px 8px rgba(15,159,154,.06);
    backdrop-filter:blur(10px);
}
.first-access-brand-v444{
    margin:0 auto 11px !important;
}
.first-access-title-v444{
    text-align:center;
}
.first-access-title-v444 .login-kicker{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 9px;
    padding:7px 15px;
    border:1px solid #b9e4e1;
    border-radius:999px;
    color:#087f82;
    background:#edf9f8;
    font-size:13px;
    font-weight:900;
    line-height:1;
}
.first-access-title-v444 h1{
    margin:0;
    color:#21364d;
    font-size:clamp(27px,3vw,34px);
    line-height:1.08;
    letter-spacing:-.5px;
}
.first-access-title-v444 p{
    max-width:480px;
    margin:8px auto 0;
    color:#667085;
    font-size:14px;
    line-height:1.45;
}
.first-access-alert-v444{
    margin:14px 0 0;
}
.first-access-info-v444,
.first-access-menu-note-v444{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin:15px 0 0;
    padding:12px 13px;
    border:1px solid #bce4e1;
    border-radius:13px;
    color:#284158;
    background:rgba(240,250,249,.78);
    font-size:13px;
    font-weight:700;
    line-height:1.4;
}
.first-access-info-v444 i,
.first-access-menu-note-v444 i{
    flex:0 0 auto;
    margin-top:1px;
    color:#087f82;
    font-size:17px;
}
.first-access-form-v444{
    margin-top:4px;
}
.first-access-form-v444 label{
    display:block;
    margin:11px 0 5px;
    color:#263b52;
    font-size:13px;
    font-weight:900;
}
.first-access-input-v444{
    width:100%;
}
.first-access-menu-note-v444{
    margin-top:14px;
}
.first-access-submit-v444{
    margin-top:13px !important;
}
.first-access-footer-v444{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin:18px -30px -22px;
    padding:13px 22px;
    border-top:1px solid #e1ebef;
    border-radius:0 0 28px 28px;
    color:#52677b;
    background:rgba(248,251,252,.92);
    font-size:12px;
    font-weight:800;
}
.first-access-footer-v444 span{
    display:inline-flex;
    align-items:center;
    gap:6px;
}
.first-access-footer-v444 i{
    color:#087f82;
}
@media screen and (max-height:760px) and (min-width:641px){
    .first-access-page-v444{padding:10px !important;}
    .first-access-shell-v444{min-height:calc(100vh - 20px);}
    .first-access-card-v444{padding:18px 26px 17px;}
    .first-access-title-v444 h1{font-size:27px;}
    .first-access-title-v444 p{margin-top:5px;font-size:13px;}
    .first-access-info-v444{margin-top:10px;padding:9px 11px;}
    .first-access-form-v444 label{margin-top:7px;}
    .first-access-menu-note-v444{margin-top:10px;padding:9px 11px;}
    .first-access-submit-v444{min-height:47px !important;margin-top:8px !important;font-size:15px !important;}
    .first-access-footer-v444{margin:12px -26px -17px;padding:10px 18px;}
}
@media screen and (max-width:640px){
    .first-access-page-v444{padding:10px !important;}
    .first-access-shell-v444{min-height:calc(100vh - 20px);align-items:flex-start;}
    .first-access-card-v444{margin:auto 0;padding:22px 16px 18px;border-radius:22px;}
    .first-access-title-v444 h1{font-size:27px;}
    .first-access-title-v444 p{font-size:13px;}
    .first-access-footer-v444{
        margin:16px -16px -18px;
        padding:12px 14px;
        border-radius:0 0 22px 22px;
        flex-direction:column;
        gap:5px;
    }
}


/* ===== v4.4.5 — aviso do primeiro acesso sem ícone =====
   Remove o ícone do aviso “Os menus serão liberados...” e mantém o bloco limpo. */
.first-access-menu-note-v444{
    display:block;
    padding:11px 13px;
}


/* ===== v4.4.6 — login com marca maior e mais acima ===== */
.login-page-v424 .login-card{
    padding-top:0 !important;
}

.login-page-v424 .login-card-top{
    margin-bottom:12px !important;
}

.login-page-v424 .login-brand-integrated{
    gap:14px;
    margin:-12px auto 12px;
}

.login-page-v424 .login-brand-integrated img{
    width:86px !important;
    height:86px !important;
}

.login-page-v424 .login-brand-text{
    font-size:22px;
    line-height:1;
}

@media screen and (max-height:720px) and (min-width:981px){
    .login-page-v424 .login-brand-integrated{
        margin:-8px auto 8px;
        gap:12px;
    }
    .login-page-v424 .login-brand-integrated img{
        width:74px !important;
        height:74px !important;
    }
    .login-page-v424 .login-brand-text{
        font-size:19px;
    }
}

@media screen and (max-width:980px){
    .login-page-v424 .login-brand-integrated{
        margin:0 auto 10px;
        gap:12px;
    }
    .login-page-v424 .login-brand-integrated img{
        width:72px !important;
        height:72px !important;
    }
    .login-page-v424 .login-brand-text{
        font-size:18px;
    }
}

@media screen and (max-width:520px){
    .login-page-v424 .login-brand-integrated img{
        width:66px !important;
        height:66px !important;
    }
    .login-page-v424 .login-brand-text{
        font-size:16px;
    }
}


/* ===== v4.4.7 — login com marca bem maior e mais acima ===== */
.login-page-v424 .login-panel{
    align-items:flex-start !important;
    padding:8px 34px 24px 0 !important;
}

.login-page-v424 .login-card{
    max-width:470px !important;
    padding-top:0 !important;
}

.login-page-v424 .login-card-top{
    margin-bottom:14px !important;
}

.login-page-v424 .login-brand-integrated{
    gap:16px;
    margin:-6px auto 14px;
}

.login-page-v424 .login-brand-integrated img{
    width:108px !important;
    height:108px !important;
}

.login-page-v424 .login-brand-text{
    font-size:28px;
    line-height:.98;
    letter-spacing:0;
}

@media screen and (max-height:720px) and (min-width:981px){
    .login-page-v424 .login-panel{
        padding:6px 28px 14px 4px !important;
    }
    .login-page-v424 .login-brand-integrated{
        margin:-4px auto 10px;
        gap:13px;
    }
    .login-page-v424 .login-brand-integrated img{
        width:88px !important;
        height:88px !important;
    }
    .login-page-v424 .login-brand-text{
        font-size:22px;
    }
}

@media screen and (max-width:980px){
    .login-page-v424 .login-panel{
        align-items:center !important;
        padding:24px !important;
    }
    .login-page-v424 .login-card{
        max-width:470px !important;
    }
    .login-page-v424 .login-brand-integrated{
        margin:0 auto 12px;
        gap:12px;
    }
    .login-page-v424 .login-brand-integrated img{
        width:82px !important;
        height:82px !important;
    }
    .login-page-v424 .login-brand-text{
        font-size:21px;
    }
}

@media screen and (max-width:520px){
    .login-page-v424 .login-brand-integrated img{
        width:70px !important;
        height:70px !important;
    }
    .login-page-v424 .login-brand-text{
        font-size:17px;
    }
}


/* ===== v4.4.8 — ajuste fino: descer um pouco a marca mantendo o tamanho ===== */
.login-page-v424 .login-panel{
    align-items:flex-start !important;
    padding:18px 34px 24px 0 !important;
}

.login-page-v424 .login-card{
    max-width:470px !important;
}

.login-page-v424 .login-brand-integrated{
    gap:16px;
    margin:10px auto 14px;
}

.login-page-v424 .login-brand-integrated img{
    width:108px !important;
    height:108px !important;
}

.login-page-v424 .login-brand-text{
    font-size:28px;
    line-height:.98;
}

@media screen and (max-height:720px) and (min-width:981px){
    .login-page-v424 .login-panel{
        padding:14px 28px 14px 4px !important;
    }
    .login-page-v424 .login-brand-integrated{
        margin:8px auto 10px;
        gap:13px;
    }
    .login-page-v424 .login-brand-integrated img{
        width:88px !important;
        height:88px !important;
    }
    .login-page-v424 .login-brand-text{
        font-size:22px;
    }
}

@media screen and (max-width:980px){
    .login-page-v424 .login-panel{
        align-items:center !important;
        padding:24px !important;
    }
    .login-page-v424 .login-brand-integrated{
        margin:6px auto 12px;
    }
    .login-page-v424 .login-brand-integrated img{
        width:82px !important;
        height:82px !important;
    }
    .login-page-v424 .login-brand-text{
        font-size:21px;
    }
}

@media screen and (max-width:520px){
    .login-page-v424 .login-brand-integrated{
        margin:4px auto 10px;
    }
    .login-page-v424 .login-brand-integrated img{
        width:70px !important;
        height:70px !important;
    }
    .login-page-v424 .login-brand-text{
        font-size:17px;
    }
}


/* ===== v4.4.9 — alinhamento do topo da marca com a arte da área esquerda ===== */
.login-page-v424 .login-panel{
    align-items:flex-start !important;
    padding:10px 34px 24px 0 !important;
}

.login-page-v424 .login-card{
    max-width:470px !important;
}

.login-page-v424 .login-brand-integrated{
    gap:16px;
    margin:6px auto 14px;
}

.login-page-v424 .login-brand-integrated img{
    width:108px !important;
    height:108px !important;
}

.login-page-v424 .login-brand-text{
    font-size:28px;
    line-height:.98;
}

@media screen and (max-height:720px) and (min-width:981px){
    .login-page-v424 .login-panel{
        padding:10px 28px 14px 4px !important;
    }
    .login-page-v424 .login-brand-integrated{
        margin:6px auto 10px;
        gap:13px;
    }
    .login-page-v424 .login-brand-integrated img{
        width:88px !important;
        height:88px !important;
    }
    .login-page-v424 .login-brand-text{
        font-size:22px;
    }
}

@media screen and (max-width:980px){
    .login-page-v424 .login-panel{
        align-items:center !important;
        padding:24px !important;
    }
    .login-page-v424 .login-brand-integrated{
        margin:6px auto 12px;
    }
    .login-page-v424 .login-brand-integrated img{
        width:82px !important;
        height:82px !important;
    }
    .login-page-v424 .login-brand-text{
        font-size:21px;
    }
}

@media screen and (max-width:520px){
    .login-page-v424 .login-brand-integrated{
        margin:4px auto 10px;
    }
    .login-page-v424 .login-brand-integrated img{
        width:70px !important;
        height:70px !important;
    }
    .login-page-v424 .login-brand-text{
        font-size:17px;
    }
}


/* ===== v4.5.0 — marca no canto superior esquerdo da recuperação/redefinição =====
   Mantém o título e o formulário centralizados, alterando somente a posição da marca. */
.recovery-page-v427 .recovery-top-v426{
    width:100%;
    align-items:stretch !important;
    text-align:center;
}

.recovery-page-v427 .recovery-brand-v427{
    width:184px !important;
    max-width:calc(100% - 4px) !important;
    min-height:54px !important;
    align-self:flex-start !important;
    justify-content:flex-start !important;
    gap:9px !important;
    margin:0 0 9px -4px !important;
}

.recovery-page-v427 .recovery-brand-v427 img{
    width:50px !important;
    height:50px !important;
    flex:0 0 50px !important;
}

.recovery-page-v427 .recovery-brand-text-v427{
    font-size:14.5px !important;
    line-height:.98 !important;
    letter-spacing:-.2px !important;
}

.recovery-page-v427 .recovery-title-v426{
    width:100%;
    align-self:stretch;
    text-align:center;
}

@media screen and (max-height:760px) and (min-width:641px){
    .recovery-page-v427 .recovery-brand-v427{
        width:174px !important;
        min-height:48px !important;
        margin:0 0 7px -2px !important;
        gap:8px !important;
    }
    .recovery-page-v427 .recovery-brand-v427 img{
        width:46px !important;
        height:46px !important;
        flex-basis:46px !important;
    }
    .recovery-page-v427 .recovery-brand-text-v427{
        font-size:13.5px !important;
    }
}

@media screen and (max-width:640px){
    .recovery-page-v427 .recovery-brand-v427{
        width:164px !important;
        max-width:100% !important;
        min-height:46px !important;
        margin:0 0 8px 0 !important;
        gap:8px !important;
    }
    .recovery-page-v427 .recovery-brand-v427 img{
        width:44px !important;
        height:44px !important;
        flex-basis:44px !important;
    }
    .recovery-page-v427 .recovery-brand-text-v427{
        font-size:12.8px !important;
    }
}


/* ===== v4.5.1 — ajuste fino: descer um pouco o logo do login ===== */
.login-page-v424 .login-panel{
    align-items:flex-start !important;
    padding:18px 34px 24px 0 !important;
}

.login-page-v424 .login-card{
    max-width:470px !important;
}

.login-page-v424 .login-brand-integrated{
    gap:16px;
    margin:14px auto 14px;
}

.login-page-v424 .login-brand-integrated img{
    width:108px !important;
    height:108px !important;
}

.login-page-v424 .login-brand-text{
    font-size:28px;
    line-height:.98;
}

@media screen and (max-height:720px) and (min-width:981px){
    .login-page-v424 .login-panel{
        padding:16px 28px 14px 4px !important;
    }
    .login-page-v424 .login-brand-integrated{
        margin:12px auto 10px;
        gap:13px;
    }
    .login-page-v424 .login-brand-integrated img{
        width:88px !important;
        height:88px !important;
    }
    .login-page-v424 .login-brand-text{
        font-size:22px;
    }
}

@media screen and (max-width:980px){
    .login-page-v424 .login-panel{
        align-items:center !important;
        padding:24px !important;
    }
    .login-page-v424 .login-brand-integrated{
        margin:8px auto 12px;
    }
    .login-page-v424 .login-brand-integrated img{
        width:82px !important;
        height:82px !important;
    }
    .login-page-v424 .login-brand-text{
        font-size:21px;
    }
}

@media screen and (max-width:520px){
    .login-page-v424 .login-brand-integrated{
        margin:6px auto 10px;
    }
    .login-page-v424 .login-brand-integrated img{
        width:70px !important;
        height:70px !important;
    }
    .login-page-v424 .login-brand-text{
        font-size:17px;
    }
}


/* ===== v4.5.2 — alinhar o início do logo com o início de “Solução completa...” ===== */
.login-page-v424 .login-panel{
    align-items:flex-start !important;
    padding:28px 34px 24px 0 !important;
}

.login-page-v424 .login-card{
    max-width:470px !important;
}

.login-page-v424 .login-brand-integrated{
    gap:16px;
    margin:24px auto 14px;
}

.login-page-v424 .login-brand-integrated img{
    width:108px !important;
    height:108px !important;
}

.login-page-v424 .login-brand-text{
    font-size:28px;
    line-height:.98;
}

@media screen and (max-height:720px) and (min-width:981px){
    .login-page-v424 .login-panel{
        padding:22px 28px 14px 4px !important;
    }
    .login-page-v424 .login-brand-integrated{
        margin:18px auto 10px;
        gap:13px;
    }
    .login-page-v424 .login-brand-integrated img{
        width:88px !important;
        height:88px !important;
    }
    .login-page-v424 .login-brand-text{
        font-size:22px;
    }
}

@media screen and (max-width:980px){
    .login-page-v424 .login-panel{
        align-items:center !important;
        padding:24px !important;
    }
    .login-page-v424 .login-brand-integrated{
        margin:10px auto 12px;
    }
    .login-page-v424 .login-brand-integrated img{
        width:82px !important;
        height:82px !important;
    }
    .login-page-v424 .login-brand-text{
        font-size:21px;
    }
}

@media screen and (max-width:520px){
    .login-page-v424 .login-brand-integrated{
        margin:8px auto 10px;
    }
    .login-page-v424 .login-brand-integrated img{
        width:70px !important;
        height:70px !important;
    }
    .login-page-v424 .login-brand-text{
        font-size:17px;
    }
}


/* ===== v4.5.7 — menu lateral com logo levemente maior no quadro ===== */
.sidebar-brand{
    gap:13px;
}

.sidebar-brand img{
    width:62px;
    height:62px;
    padding:2px;
    border-radius:17px;
}

@media screen and (max-width:980px){
    .sidebar-brand img{
        width:60px;
        height:60px;
    }
}


/* ===== v4.5.7 — menu lateral com logo visivelmente maior no quadro ===== */
.sidebar-brand{
    gap:14px;
    padding:18px 20px 16px;
}

.sidebar-brand img{
    width:72px !important;
    height:72px !important;
    padding:1px !important;
    border-radius:18px !important;
}

.sidebar-brand h1{
    line-height:1.08;
}

@media screen and (max-width:980px){
    .sidebar-brand img{
        width:68px !important;
        height:68px !important;
    }
}


/* ===== v4.5.7 — menu lateral com logo ainda maior e mais destacado ===== */
.sidebar-brand{
    gap:15px;
    padding:14px 20px 14px;
}

.sidebar-brand img{
    width:84px !important;
    height:84px !important;
    padding:0 !important;
    border-radius:18px !important;
}

.sidebar-brand h1{
    line-height:1.06;
}

.sidebar-brand span{
    margin-top:4px;
}

@media screen and (max-width:980px){
    .sidebar-brand img{
        width:80px !important;
        height:80px !important;
    }
}


/* ===== v4.5.7 — logo do menu preenchendo melhor o quadro interno ===== */
.sidebar-brand{
    gap:15px;
    padding:14px 20px 14px;
}

.sidebar-brand img{
    width:88px !important;
    height:88px !important;
    padding:2px !important;
    border-radius:18px !important;
    object-fit:contain !important;
}

@media screen and (max-width:980px){
    .sidebar-brand img{
        width:82px !important;
        height:82px !important;
    }
}


/* ===== v4.5.7 — ajuste fino: diminuir um pouquinho o logo do menu ===== */
.sidebar-brand img{
    width:84px !important;
    height:84px !important;
    padding:2px !important;
    border-radius:18px !important;
    object-fit:contain !important;
}

@media screen and (max-width:980px){
    .sidebar-brand img{
        width:78px !important;
        height:78px !important;
    }
}


/* ===== v4.6.2 — tela de login com os dois lados do mesmo tamanho ===== */
@media(min-width:981px){
    .login-page-v424 .login-shell{
        grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    }
}


/* ===== v4.6.2 — imagem do login preenchendo melhor a área esquerda ===== */
@media(min-width:981px){
    .login-page-v424 .login-shell{
        grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    }

    .login-page-v424 .login-showcase::after{
        display:none !important;
    }

    .login-page-v424 .login-showcase-art{
        object-fit:cover !important;
        object-position:center center !important;
        transform:scale(1.02) !important;
    }
}


/* ===== v4.6.2 — ajuste fino da arte do login para não cortar o texto inferior ===== */
@media(min-width:981px){
    .login-page-v424 .login-showcase-art{
        object-fit:cover !important;
        object-position:42% 38% !important;
        transform:scale(1.0) !important;
    }
}


/* ===== v4.6.2 — mostrar corretamente o texto inferior da arte do login ===== */
@media(min-width:981px){
    .login-page-v424 .login-showcase-art{
        object-fit:cover !important;
        object-position:41% 64% !important;
        transform:scale(.985) !important;
    }
}


/* ===== v4.6.2 — fundo do login em verde/teal suave, reduzindo o azul ===== */
.login-page-v424{
    background:
        radial-gradient(circle at 10% 18%, rgba(15,159,154,.14), transparent 28%),
        radial-gradient(circle at 91% 12%, rgba(45,181,154,.10), transparent 24%),
        linear-gradient(145deg, #edf8f4 0%, #f6fcf9 52%, #eef8f3 100%) !important;
}

.login-page-v424 .login-shell{
    background:linear-gradient(90deg, #eef8f4 0%, #f7fcf9 55%, #f5fbf8 100%) !important;
    border:1px solid rgba(15,159,154,.10) !important;
    box-shadow:0 24px 64px rgba(14,110,96,.12) !important;
}

.login-page-v424 .login-showcase::after{
    background:linear-gradient(90deg, rgba(247,252,249,0), rgba(247,252,249,.42) 66%, #f7fcf9 100%) !important;
}


/* ===== v4.6.3 — mais respiro vertical na área direita do login ===== */
.login-page-v424 .login-card-top{
    margin-bottom:18px !important;
}

.login-page-v424 .login-title-wrap h2{
    margin:0 0 8px !important;
}

.login-page-v424 .login-title-wrap p{
    margin:10px auto 0 !important;
    line-height:1.5 !important;
}

.login-page-v424 .login-form label{
    margin:12px 0 6px !important;
}

.login-page-v424 .login-links{
    margin:12px 1px 4px !important;
}

.login-page-v424 .login-submit-v422{
    margin-top:16px !important;
}

.login-page-v424 .login-security-v422{
    margin:22px 0 0 !important;
    padding:15px 0 0 !important;
}

@media screen and (max-width:980px){
    .login-page-v424 .login-card-top{
        margin-bottom:16px !important;
    }
    .login-page-v424 .login-form label{
        margin:10px 0 6px !important;
    }
    .login-page-v424 .login-links{
        margin:10px 1px 4px !important;
    }
    .login-page-v424 .login-submit-v422{
        margin-top:14px !important;
    }
    .login-page-v424 .login-security-v422{
        margin-top:18px !important;
    }
}


/* ===== v4.6.4 — recuperação/redefinição com o mesmo tom de fundo do login ===== */
.recovery-page-v426{
    background:
        radial-gradient(circle at 10% 18%, rgba(15,159,154,.14), transparent 28%),
        radial-gradient(circle at 91% 12%, rgba(45,181,154,.10), transparent 24%),
        linear-gradient(145deg, #edf8f4 0%, #f6fcf9 52%, #eef8f3 100%) !important;
}

.recovery-page-v426::before{
    border:2px solid rgba(18,54,111,.035);
    box-shadow:
        0 -510px 0 -68px rgba(15,159,154,.03),
        1320px -30px 0 -56px rgba(15,159,154,.04);
}

.recovery-page-v426::after{
    opacity:.34;
    background-image:radial-gradient(circle, rgba(15,159,154,.13) 2px, transparent 2.5px);
}

.recovery-page-v426 .recovery-card-v426{
    background:linear-gradient(180deg, rgba(247,252,249,.96) 0%, rgba(242,250,246,.96) 100%) !important;
    border:1px solid rgba(15,159,154,.10) !important;
    box-shadow:0 24px 58px rgba(14,110,96,.12), 0 2px 8px rgba(15,159,154,.06) !important;
}

.recovery-page-v426 .recovery-logo-v426{
    background:linear-gradient(145deg,#ffffff,#f5fbf8) !important;
    box-shadow:0 14px 28px rgba(14,110,96,.10),0 3px 10px rgba(15,159,154,.06) !important;
}


/* ===== v4.6.6 — sombreado verde dos botões mais discreto ===== */
button:not(.secondary):not(.danger):not(.password-toggle-v422):not(.modal-confirmacao-fechar):not(.rh-combobox-toggle-v217):not(.rh-combobox-opcao-v217),
.button:not(.secondary):not(.danger),
.primary-button,
body.app-layout button:not(.secondary):not(.secondary-button):not(.danger):not(.danger-button):not(.mini-danger):not(.warning-button):not(.modal-confirmacao-fechar):not(.password-toggle-v422):not(.recovery-password-toggle-v426):not(.link-button):not(.rh-combobox-toggle-v217):not(.rh-combobox-opcao-v217),
body.app-layout a.button:not(.secondary):not(.danger),
body.app-layout a.primary-button,
body.app-layout .mini-action,
body.app-layout a.backup-admin-button-inline,
body.app-layout .migracao-automatica-button,
body.app-layout .migracao-simulacao-button,
.login-page-v424 .login-submit-v422,
.recovery-page-v426 .recovery-submit-v426,
.first-access-submit-v444,
.sidebar-hotspot,
html body.app-layout .card-filtros-avancados form.form-grid .filtros-acoes > button.botao-filtrar-ajustado,
html body.app-layout .card-filtros-avancados form.form-grid .filtros-acoes > a.botao-limpar-ajustado,
html body.app-layout .card-lixeira-consulta form.form-grid .filtros-acoes > button.botao-filtrar-lixeira,
html body.app-layout .card-lixeira-consulta form.form-grid .filtros-acoes > a.botao-limpar-lixeira{
    box-shadow:0 4px 10px rgba(15,159,154,.11) !important;
}

button:not(.secondary):not(.danger):not(.password-toggle-v422):not(.modal-confirmacao-fechar):not(.rh-combobox-toggle-v217):not(.rh-combobox-opcao-v217):hover,
.button:not(.secondary):not(.danger):hover,
.primary-button:hover,
body.app-layout button:not(.secondary):not(.secondary-button):not(.danger):not(.danger-button):not(.mini-danger):not(.warning-button):not(.modal-confirmacao-fechar):not(.password-toggle-v422):not(.recovery-password-toggle-v426):not(.link-button):not(.rh-combobox-toggle-v217):not(.rh-combobox-opcao-v217):hover,
body.app-layout button:not(.secondary):not(.secondary-button):not(.danger):not(.danger-button):not(.mini-danger):not(.warning-button):not(.modal-confirmacao-fechar):not(.password-toggle-v422):not(.recovery-password-toggle-v426):not(.link-button):not(.rh-combobox-toggle-v217):not(.rh-combobox-opcao-v217):focus-visible,
body.app-layout a.button:not(.secondary):not(.danger):hover,
body.app-layout a.button:not(.secondary):not(.danger):focus-visible,
body.app-layout a.primary-button:hover,
body.app-layout a.primary-button:focus-visible,
body.app-layout .mini-action:hover,
body.app-layout .mini-action:focus-visible,
body.app-layout a.backup-admin-button-inline:hover,
body.app-layout a.backup-admin-button-inline:focus-visible,
body.app-layout .migracao-automatica-button:hover,
body.app-layout .migracao-automatica-button:focus-visible,
body.app-layout .migracao-simulacao-button:hover:not(:disabled),
body.app-layout .migracao-simulacao-button:focus-visible:not(:disabled),
.login-page-v424 .login-submit-v422:hover,
.login-page-v424 .login-submit-v422:focus-visible,
.recovery-page-v426 .recovery-submit-v426:hover,
.recovery-page-v426 .recovery-submit-v426:focus-visible,
.first-access-submit-v444:hover,
.first-access-submit-v444:focus-visible,
.sidebar-hotspot:hover,
.sidebar-hotspot:focus-visible,
html body.app-layout .card-filtros-avancados form.form-grid .filtros-acoes > button.botao-filtrar-ajustado:hover,
html body.app-layout .card-filtros-avancados form.form-grid .filtros-acoes > a.botao-limpar-ajustado:hover,
html body.app-layout .card-lixeira-consulta form.form-grid .filtros-acoes > button.botao-filtrar-lixeira:hover,
html body.app-layout .card-lixeira-consulta form.form-grid .filtros-acoes > a.botao-limpar-lixeira:hover{
    box-shadow:0 6px 14px rgba(8,127,130,.16) !important;
}

body.app-layout button.secondary:hover:not(:disabled),
body.app-layout button.secondary:focus-visible:not(:disabled),
body.app-layout button.secondary-button:hover:not(:disabled),
body.app-layout button.secondary-button:focus-visible:not(:disabled),
body.app-layout a.button.secondary:hover,
body.app-layout a.button.secondary:focus-visible,
body.app-layout a.secondary-button:hover,
body.app-layout a.secondary-button:focus-visible,
body.app-layout .button.secondary:hover,
body.app-layout .button.secondary:focus-visible,
body.app-layout .secondary-button:hover:not(:disabled),
body.app-layout .secondary-button:focus-visible:not(:disabled){
    box-shadow:0 4px 10px rgba(15,159,154,.11) !important;
}


/* ===== v4.6.7 — rodapé do login desce dois espaçamentos de parágrafo ===== */
@media(min-width:981px){
    .login-page-v424 .login-security-v422{
        margin-top:58px !important;
    }
}

@media screen and (max-width:980px){
    .login-page-v424 .login-security-v422{
        margin-top:46px !important;
    }
}


/* ===== v4.6.9 — mais espaço entre o logo do login e “Boas-vindas” ===== */
.login-page-v424 .login-brand-integrated{
    margin:24px auto 28px !important;
}

.login-page-v424 .login-title-wrap h2{
    margin-top:0 !important;
}

@media screen and (max-height:720px) and (min-width:981px){
    .login-page-v424 .login-brand-integrated{
        margin:18px auto 20px !important;
    }
}

@media screen and (max-width:980px){
    .login-page-v424 .login-brand-integrated{
        margin:10px auto 18px !important;
    }
}

@media screen and (max-width:520px){
    .login-page-v424 .login-brand-integrated{
        margin:8px auto 16px !important;
    }
}


/* ===== v4.7.0 — aproximar o rodapé do login do botão Entrar ===== */
@media(min-width:981px){
    .login-page-v424 .login-security-v422{
        margin-top:22px !important;
        padding-top:14px !important;
    }
}

@media screen and (max-width:980px){
    .login-page-v424 .login-security-v422{
        margin-top:18px !important;
        padding-top:14px !important;
    }
}


/* ===== v4.7.1 — data e hora do login no campo do usuário do menu ===== */
.user-box small{
    display:block;
    margin-top:6px;
    font-size:11px;
    line-height:1.35;
    color:#5c6b80;
    font-weight:700;
    text-align:center;
}

.user-box small i{
    margin-right:4px;
    color:#0f9f9a;
}

.sidebar-footer .user-box{
    padding:14px 12px;
}

/* ===== v4.7.2 — Novo usuário sem fundo azul do preenchimento automático =====
   Correção restrita ao card “Novo usuário”:
   - aplica verde muito suave e uniforme em Usuário, E-mail, Senha, Perfil e Status;
   - neutraliza o azul automático de Chrome/Edge e mantém texto/cursor legíveis;
   - reforça foco em verde sem alterar login, edição de usuários ou outras telas. */
html body.app-layout .card-novo-usuario .form-novo-usuario-inline input:not([type="hidden"]),
html body.app-layout .card-novo-usuario .form-novo-usuario-inline select{
    background-color:#ffffff !important;
    border-color:#cddce7 !important;
    color:var(--text) !important;
    transition:border-color .16s ease, box-shadow .16s ease, background-color .16s ease !important;
}

html body.app-layout .card-novo-usuario .form-novo-usuario-inline input:not([type="hidden"]):hover,
html body.app-layout .card-novo-usuario .form-novo-usuario-inline select:hover{
    background-color:#fbfdfe !important;
    border-color:#8fc7c3 !important;
}

html body.app-layout .card-novo-usuario .form-novo-usuario-inline input:not([type="hidden"]):focus,
html body.app-layout .card-novo-usuario .form-novo-usuario-inline select:focus{
    outline:none !important;
    background-color:#ffffff !important;
    border-color:#0f9f9a !important;
    box-shadow:0 0 0 3px rgba(15,159,154,.13) !important;
}

/* Chrome, Edge e navegadores WebKit/Blink: substitui o azul nativo do autofill. */
html body.app-layout .card-novo-usuario .form-novo-usuario-inline input:-webkit-autofill,
html body.app-layout .card-novo-usuario .form-novo-usuario-inline input:-webkit-autofill:hover,
html body.app-layout .card-novo-usuario .form-novo-usuario-inline input:-webkit-autofill:focus,
html body.app-layout .card-novo-usuario .form-novo-usuario-inline input:-webkit-autofill:active{
    -webkit-text-fill-color:var(--text) !important;
    caret-color:var(--text) !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset !important;
    box-shadow:0 0 0 1000px #ffffff inset !important;
    border-color:#8fc7c3 !important;
    transition:border-color .16s ease, box-shadow .16s ease !important;
}

/* Padrão moderno para navegadores com suporte a :autofill. */
html body.app-layout .card-novo-usuario .form-novo-usuario-inline input:autofill{
    background-color:#ffffff !important;
    color:var(--text) !important;
    border-color:#8fc7c3 !important;
    box-shadow:0 0 0 1000px #ffffff inset !important;
}


/* ===== v4.7.6 — revisão visual dos campos internos e estabilidade dos botões =====
   - remove o azul de autofill/pesquisa no Chrome e Edge;
   - harmoniza campos editáveis com verde suave;
   - preserva campos desabilitados/somente leitura em cinza neutro;
   - garante que a pesquisa de usuários mantenha seus botões visíveis. */
body.app-layout input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):not([type="color"]):not([type="range"]):not([disabled]):not([readonly]),
body.app-layout select:not([disabled]),
body.app-layout textarea:not([disabled]):not([readonly]){
    background-color:#ffffff !important;
    border-color:#cddce7 !important;
    color:var(--text) !important;
    transition:border-color .16s ease, box-shadow .16s ease, background-color .16s ease !important;
}

body.app-layout input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):not([type="color"]):not([type="range"]):not([disabled]):not([readonly]):hover,
body.app-layout select:not([disabled]):hover,
body.app-layout textarea:not([disabled]):not([readonly]):hover{
    background-color:#fbfdfe !important;
    border-color:#8fc7c3 !important;
}

body.app-layout input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):not([type="color"]):not([type="range"]):not([disabled]):not([readonly]):focus,
body.app-layout select:not([disabled]):focus,
body.app-layout textarea:not([disabled]):not([readonly]):focus{
    outline:none !important;
    background-color:#ffffff !important;
    border-color:#0f9f9a !important;
    box-shadow:0 0 0 3px rgba(15,159,154,.13) !important;
}

/* Autofill global das telas internas: nunca usar o azul padrão do navegador. */
body.app-layout input:-webkit-autofill,
body.app-layout input:-webkit-autofill:hover,
body.app-layout input:-webkit-autofill:focus,
body.app-layout input:-webkit-autofill:active{
    -webkit-text-fill-color:var(--text) !important;
    caret-color:var(--text) !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset !important;
    box-shadow:0 0 0 1000px #ffffff inset !important;
    border-color:#8fc7c3 !important;
    transition:border-color .16s ease, box-shadow .16s ease !important;
}

body.app-layout input:autofill{
    background-color:#ffffff !important;
    color:var(--text) !important;
    border-color:#8fc7c3 !important;
    box-shadow:0 0 0 1000px #ffffff inset !important;
}

body.app-layout input[readonly],
body.app-layout textarea[readonly],
body.app-layout input[disabled],
body.app-layout select[disabled],
body.app-layout textarea[disabled]{
    background-color:#f3f6f8 !important;
    border-color:#d7e0e7 !important;
    color:#687786 !important;
    opacity:1 !important;
}

body.app-layout button:disabled,
body.app-layout .button[aria-disabled="true"]{
    cursor:not-allowed !important;
    opacity:.58 !important;
    filter:saturate(.55) !important;
}

.card-usuarios-cadastrados .usuarios-search-panel{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    align-items:end !important;
    gap:14px !important;
    background:linear-gradient(135deg,#f7fcfb,#eef9f8) !important;
    border-color:#c6e9e6 !important;
}

.card-usuarios-cadastrados .usuarios-search-field{
    min-width:0 !important;
}

.card-usuarios-cadastrados .usuarios-search-control input{
    background-color:#ffffff !important;
    border-color:#cddce7 !important;
    padding-right:42px !important;
}

.card-usuarios-cadastrados .usuarios-search-actions{
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    align-self:end !important;
}

.card-usuarios-cadastrados .usuarios-search-actions .mini-action{
    display:inline-flex !important;
    pointer-events:auto !important;
}

.card-usuarios-cadastrados .usuario-permissoes-somente-leitura{
    margin:10px 0 12px;
    padding:10px 12px;
    border:1px solid #c6e9e6;
    border-radius:10px;
    background:#eef9f8;
    color:#176a66;
    font-weight:700;
    line-height:1.4;
}

.card-usuarios-cadastrados .check-card.somente-leitura{
    cursor:default !important;
    opacity:.82;
}

.card-usuarios-cadastrados .check-card.somente-leitura input[disabled]{
    opacity:1 !important;
}

@media screen and (max-width:760px){
    .card-usuarios-cadastrados .usuarios-search-panel{
        grid-template-columns:1fr !important;
    }
    .card-usuarios-cadastrados .usuarios-search-actions{
        width:100% !important;
    }
    .card-usuarios-cadastrados .usuarios-search-actions .mini-action{
        flex:1 1 140px !important;
        width:auto !important;
    }
}

/* ===== v4.7.8 — conta conectada protegida no módulo Usuários ===== */
.usuario-proprio-aviso{
    margin:0 0 16px;
    padding:12px 14px;
    border:1px solid #b9dcd8;
    border-left:4px solid #0f9f9a;
    border-radius:12px;
    background:#eef9f8;
    color:#0a4f4c;
    font-size:.94rem;
    line-height:1.45;
}
.usuario-proprio-aviso i{margin-right:7px;color:#087f7a}
.usuario-editor-box select:disabled,
.usuario-editor-box input:disabled{
    cursor:not-allowed;
}

/* ===== v4.7.9 — organização dos controles TLS na Configuração de E-mail =====
   Mantém Usar TLS, Validar certificado TLS e Salvar configurações na mesma linha.
   A descrição inferior do certificado foi removida no template. Não altera regras de segurança. */
html body.app-layout .card-config-email form.form-grid > .config-email-seguranca-row{
    grid-column:1 / -1 !important;
    display:grid !important;
    grid-template-columns:repeat(6, minmax(0, 1fr)) !important;
    gap:14px !important;
    align-items:end !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
}

html body.app-layout .card-config-email .config-email-seguranca-row > .config-email-campo-tls{
    grid-column:1 !important;
}

html body.app-layout .card-config-email .config-email-seguranca-row > .config-email-campo-certificado{
    grid-column:2 !important;
}

html body.app-layout .card-config-email .config-email-seguranca-row > .ajuste-botao-salvar-config{
    grid-column:3 !important;
    align-self:end !important;
}

html body.app-layout .card-config-email .config-email-seguranca-row label{
    min-height:18px !important;
    margin-bottom:6px !important;
}

html body.app-layout .card-config-email .config-email-seguranca-row select,
html body.app-layout .card-config-email .config-email-seguranca-row button.botao-salvar-config{
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    margin:0 !important;
}

@media screen and (max-width:1100px){
    html body.app-layout .card-config-email form.form-grid > .config-email-seguranca-row{
        grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    }

    html body.app-layout .card-config-email .config-email-seguranca-row > .config-email-campo-tls{
        grid-column:1 !important;
    }

    html body.app-layout .card-config-email .config-email-seguranca-row > .config-email-campo-certificado{
        grid-column:2 !important;
    }

    html body.app-layout .card-config-email .config-email-seguranca-row > .ajuste-botao-salvar-config{
        grid-column:1 / -1 !important;
    }
}

@media screen and (max-width:640px){
    html body.app-layout .card-config-email form.form-grid > .config-email-seguranca-row{
        grid-template-columns:1fr !important;
    }

    html body.app-layout .card-config-email .config-email-seguranca-row > .config-email-campo-tls,
    html body.app-layout .card-config-email .config-email-seguranca-row > .config-email-campo-certificado,
    html body.app-layout .card-config-email .config-email-seguranca-row > .ajuste-botao-salvar-config{
        grid-column:1 !important;
    }

    html body.app-layout .card-config-email .config-email-seguranca-row > .ajuste-botao-salvar-config{
        justify-content:center !important;
    }
}

/* ===== v4.8.5 — usuário conectado e botão Sair no canto superior direito =====
   Reutiliza a rota POST /logout, mantém proteção CSRF e pede confirmação antes
   de encerrar a sessão. Login e recuperação de senha permanecem sem o controle. */
body.app-layout .top-actions .top-user-session{
    min-height:36px;
    max-width:230px;
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:0 11px;
    border:1px solid #d7e4ec;
    border-radius:12px;
    background:#f7fafc;
    color:var(--brand-navy,#12366f);
    font-size:13px;
    font-weight:800;
    line-height:1;
}
body.app-layout .top-actions .top-user-session i{
    flex:0 0 auto;
    color:var(--brand-teal,#0f9f9a);
    font-size:15px;
}
body.app-layout .top-actions .top-user-session span{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
body.app-layout .top-actions .logout-top-form{
    display:inline-flex;
    margin:0;
    padding:0;
}
body.app-layout .top-actions .logout-top-form .logout-top{
    min-width:82px;
    margin:0;
    color:#ffffff !important;
    background:linear-gradient(135deg,#dc2626,#b91c1c) !important;
    border-color:transparent !important;
    box-shadow:0 8px 18px rgba(185,28,28,.18) !important;
    cursor:pointer;
}
body.app-layout .top-actions .logout-top-form .logout-top i,
body.app-layout .top-actions .logout-top-form .logout-top span{
    color:#ffffff !important;
}
body.app-layout .top-actions .logout-top-form .logout-top:hover,
body.app-layout .top-actions .logout-top-form .logout-top:focus-visible{
    color:#ffffff !important;
    background:linear-gradient(135deg,#b91c1c,#991b1b) !important;
    box-shadow:0 10px 22px rgba(153,27,27,.25) !important;
}
body.app-layout .top-actions .logout-top-form .logout-top:focus-visible{
    outline:3px solid rgba(220,38,38,.24) !important;
    outline-offset:2px !important;
}

.first-access-logout-v485{
    position:fixed;
    top:18px;
    right:20px;
    z-index:30;
    display:flex;
    align-items:center;
    gap:8px;
    margin:0;
    padding:6px;
    border:1px solid rgba(18,54,111,.13);
    border-radius:14px;
    background:rgba(255,255,255,.94);
    box-shadow:0 10px 28px rgba(18,54,111,.12);
    backdrop-filter:blur(10px);
}
.first-access-user-v485{
    max-width:220px;
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:0 7px;
    color:var(--brand-navy,#12366f);
    font-size:13px;
    font-weight:800;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.first-access-user-v485 i{
    flex:0 0 auto;
    color:var(--brand-teal,#0f9f9a);
}
.first-access-logout-v485 button{
    min-height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    padding:0 13px;
    border:0;
    border-radius:11px;
    color:#ffffff;
    background:linear-gradient(135deg,#dc2626,#b91c1c);
    box-shadow:0 7px 16px rgba(185,28,28,.18);
    font-family:"Segoe UI",Arial,sans-serif;
    font-size:14px;
    font-weight:900;
    cursor:pointer;
}
.first-access-logout-v485 button:hover,
.first-access-logout-v485 button:focus-visible{
    background:linear-gradient(135deg,#b91c1c,#991b1b);
    box-shadow:0 9px 20px rgba(153,27,27,.25);
}
.first-access-logout-v485 button:focus-visible{
    outline:3px solid rgba(220,38,38,.24);
    outline-offset:2px;
}
@media screen and (max-width:1200px) and (min-width:981px){
    body.app-layout .topbar-simple{
        height:auto;
        min-height:70px;
        flex-wrap:wrap;
        gap:9px 14px;
        padding-top:10px;
        padding-bottom:10px;
    }
    body.app-layout .topbar-simple .top-title-group{
        flex:1 1 360px;
    }
    body.app-layout .topbar-simple .top-actions{
        flex:1 1 100%;
        justify-content:flex-end;
    }
}
@media screen and (max-width:980px){
    body.app-layout .top-actions .top-user-session{
        flex:1 1 180px;
        justify-content:center;
        max-width:none;
        min-height:42px;
    }
    body.app-layout .top-actions .logout-top-form{
        flex:1 1 180px;
    }
    body.app-layout .top-actions .logout-top-form .logout-top{
        width:100%;
        min-height:42px;
    }
    .first-access-logout-v485{
        position:relative;
        top:auto;
        right:auto;
        width:calc(100% - 20px);
        max-width:520px;
        margin:10px auto 0;
        justify-content:space-between;
        box-sizing:border-box;
    }
    .first-access-user-v485{
        max-width:calc(100% - 92px);
    }
}
@media print{
    .first-access-logout-v485,
    body.app-layout .top-actions .logout-top-form,
    body.app-layout .top-actions .top-user-session{
        display:none !important;
    }
}



/* ===== v4.8.7 — um único olho nos campos de senha e usuário clicável =====
   O Edge pode exibir um botão nativo de revelar senha além do botão próprio do
   sistema. O pseudo-elemento nativo é ocultado somente nos campos que já possuem
   o controle visual do sistema. O nome do usuário no topo abre Minha conta. */
.first-access-page-v444 .first-access-input-v444 input[type="password"]::-ms-reveal,
.first-access-page-v444 .first-access-input-v444 input[type="password"]::-ms-clear,
.recovery-page-v426 .recovery-password-v426 input[type="password"]::-ms-reveal,
.recovery-page-v426 .recovery-password-v426 input[type="password"]::-ms-clear,
.login-page-v422 .input-password-v422 input[type="password"]::-ms-reveal,
.login-page-v422 .input-password-v422 input[type="password"]::-ms-clear{
    display:none !important;
    width:0 !important;
    height:0 !important;
}
body.app-layout .top-actions a.top-user-session.top-user-account-link-v487{
    text-decoration:none !important;
    cursor:pointer;
    transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease;
}
body.app-layout .top-actions a.top-user-session.top-user-account-link-v487:hover,
body.app-layout .top-actions a.top-user-session.top-user-account-link-v487:focus-visible{
    color:var(--brand-navy,#12366f) !important;
    border-color:rgba(15,159,154,.44);
    background:#eef9f8;
    box-shadow:0 0 0 3px rgba(15,159,154,.12);
    outline:none;
    transform:translateY(-1px);
}
.first-access-user-link-v487{
    min-height:38px;
    border-radius:10px;
    text-decoration:none;
    cursor:pointer;
    transition:background .18s ease,box-shadow .18s ease,transform .18s ease;
}
.first-access-user-link-v487:hover,
.first-access-user-link-v487:focus-visible{
    color:var(--brand-navy,#12366f);
    background:#eef9f8;
    box-shadow:0 0 0 3px rgba(15,159,154,.12);
    outline:none;
    transform:translateY(-1px);
}

.pending-account-card-v487{
    overflow:hidden;
}
.pending-account-details-v487{
    display:grid;
    gap:10px;
    margin:4px 28px 14px;
}
.pending-account-details-v487 > div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:12px 14px;
    border:1px solid #d7e4ec;
    border-radius:12px;
    background:#f7fafc;
    color:#45566a;
}
.pending-account-details-v487 span{
    font-size:13px;
    font-weight:700;
}
.pending-account-details-v487 strong{
    color:var(--brand-navy,#12366f);
    font-size:14px;
    text-align:right;
}
.pending-account-note-v487{
    margin-left:28px;
    margin-right:28px;
}
a.pending-account-action-v487{
    width:auto;
    margin:8px 28px 14px;
    text-decoration:none;
    box-sizing:border-box;
}
a.pending-account-action-v487:hover,
a.pending-account-action-v487:focus-visible{
    color:#ffffff;
    text-decoration:none;
    outline:3px solid rgba(15,159,154,.18);
    outline-offset:2px;
}
@media screen and (max-width:640px){
    .pending-account-details-v487,
    .pending-account-note-v487,
    a.pending-account-action-v487{
        margin-left:18px;
        margin-right:18px;
    }
    .pending-account-details-v487 > div{
        align-items:flex-start;
        flex-direction:column;
        gap:4px;
    }
    .pending-account-details-v487 strong{
        text-align:left;
    }
}


/* ===== v4.8.8 — primeiro acesso sem botão Sair =====
   Nesta etapa obrigatória, permanece apenas o usuário clicável no canto
   superior direito. O botão Sair continua disponível nas demais páginas. */
.first-access-user-only-v488{
    width:auto;
    justify-content:flex-end;
}
.first-access-user-only-v488 .first-access-user-v485{
    max-width:240px;
    padding-left:9px;
    padding-right:9px;
}
@media screen and (max-width:980px){
    .first-access-user-only-v488{
        width:max-content;
        max-width:calc(100% - 20px);
        margin:10px 10px 0 auto;
    }
    .first-access-user-only-v488 .first-access-user-v485{
        max-width:calc(100vw - 58px);
    }
}


/* v4.9.1 — remove fundo do logo no menu lateral */
.sidebar-brand img{background:transparent !important; box-shadow:none !important;}


/* ===== v4.9.3 — cores semânticas nos campos editáveis =====
   Campos internos começam neutros; verde indica conteúdo preenchido e válido;
   vermelho indica erro após interação/tentativa de envio; teal indica foco.
   A lista de registros do Cadastro (#registros-filtrados) é excluída pelo script
   e conserva integralmente as cores e regras já aprovadas. */
body.app-layout input.campo-validacao-v493,
body.app-layout select.campo-validacao-v493,
body.app-layout textarea.campo-validacao-v493{
    background-color:#ffffff !important;
    border-color:#cddce7 !important;
    color:var(--text,#2f3742) !important;
    box-shadow:none !important;
    transition:border-color .16s ease, box-shadow .16s ease, background-color .16s ease !important;
}

body.app-layout input.campo-validacao-v493:hover:not(:focus),
body.app-layout select.campo-validacao-v493:hover:not(:focus),
body.app-layout textarea.campo-validacao-v493:hover:not(:focus){
    background-color:#fbfdfe !important;
    border-color:#aebfca !important;
}

/* Durante a digitação o destaque é somente de foco, não de confirmação. */
body.app-layout input.campo-validacao-v493:focus,
body.app-layout select.campo-validacao-v493:focus,
body.app-layout textarea.campo-validacao-v493:focus{
    outline:none !important;
    background-color:#ffffff !important;
    border-color:var(--brand-teal,#0f9f9a) !important;
    box-shadow:0 0 0 3px rgba(15,159,154,.13) !important;
}

/* Verde somente quando existe conteúdo e a validação do navegador foi aprovada. */
body.app-layout input.campo-validacao-v493.campo-validado-ok-v493:not(:focus),
body.app-layout select.campo-validacao-v493.campo-validado-ok-v493:not(:focus),
body.app-layout textarea.campo-validacao-v493.campo-validado-ok-v493:not(:focus){
    background-color:#f0fdf4 !important;
    border-color:#4ade80 !important;
    box-shadow:0 0 0 1px rgba(34,197,94,.08) !important;
}

/* Erro visual somente após interação ou tentativa de envio. */
body.app-layout input.campo-validacao-v493.campo-validado-erro-v493:not(:focus),
body.app-layout select.campo-validacao-v493.campo-validado-erro-v493:not(:focus),
body.app-layout textarea.campo-validacao-v493.campo-validado-erro-v493:not(:focus){
    background-color:#fff7f7 !important;
    border-color:#ef4444 !important;
    box-shadow:0 0 0 1px rgba(220,38,38,.08) !important;
}

/* Autofill do Chrome/Edge permanece neutro até a validação; nunca volta ao azul. */
body.app-layout input.campo-validacao-v493:-webkit-autofill,
body.app-layout input.campo-validacao-v493:-webkit-autofill:hover,
body.app-layout input.campo-validacao-v493:-webkit-autofill:focus,
body.app-layout input.campo-validacao-v493:-webkit-autofill:active{
    -webkit-text-fill-color:var(--text,#2f3742) !important;
    caret-color:var(--text,#2f3742) !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset !important;
    box-shadow:0 0 0 1000px #ffffff inset !important;
    border-color:#cddce7 !important;
    transition:border-color .16s ease, box-shadow .16s ease !important;
}

body.app-layout input.campo-validacao-v493.campo-validado-ok-v493:-webkit-autofill:not(:focus),
body.app-layout input.campo-validacao-v493.campo-validado-ok-v493:-webkit-autofill:hover:not(:focus){
    -webkit-box-shadow:0 0 0 1000px #f0fdf4 inset !important;
    box-shadow:0 0 0 1000px #f0fdf4 inset !important;
    border-color:#4ade80 !important;
}

body.app-layout input.campo-validacao-v493.campo-validado-erro-v493:-webkit-autofill:not(:focus),
body.app-layout input.campo-validacao-v493.campo-validado-erro-v493:-webkit-autofill:hover:not(:focus){
    -webkit-box-shadow:0 0 0 1000px #fff7f7 inset !important;
    box-shadow:0 0 0 1000px #fff7f7 inset !important;
    border-color:#ef4444 !important;
}

/* Campos não editáveis continuam com o padrão cinza já aprovado. */
body.app-layout input.campo-validacao-v493[readonly],
body.app-layout textarea.campo-validacao-v493[readonly],
body.app-layout input.campo-validacao-v493[disabled],
body.app-layout select.campo-validacao-v493[disabled],
body.app-layout textarea.campo-validacao-v493[disabled]{
    background-color:#f3f6f8 !important;
    border-color:#d7e0e7 !important;
    color:#687786 !important;
    box-shadow:none !important;
}


/* ===== v4.9.5 — campos vazios brancos e lista de registros sem fundo nos campos =====
   Corrige a camada antiga v4.7.6 que ainda deixava todos os campos editáveis verdes.
   A base passa a ser branca; verde fica reservado exclusivamente aos campos que o
   script semântico marcou como preenchidos e válidos. Na lista de registros do
   Cadastro, os campos digitáveis permanecem sempre brancos para não concorrer com
   as cores de situação já existentes nas linhas e cartões. */

/* Base neutra para todos os campos editáveis internos, inclusive antes do JavaScript. */
html body.app-layout input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):not([type="color"]):not([type="range"]):not([disabled]):not([readonly]),
html body.app-layout select:not([disabled]),
html body.app-layout textarea:not([disabled]):not([readonly]){
    background-color:#ffffff !important;
    border-color:#cddce7 !important;
    color:var(--text,#2f3742) !important;
    box-shadow:none !important;
}

html body.app-layout input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):not([type="color"]):not([type="range"]):not([disabled]):not([readonly]):hover:not(:focus),
html body.app-layout select:not([disabled]):hover:not(:focus),
html body.app-layout textarea:not([disabled]):not([readonly]):hover:not(:focus){
    background-color:#fbfdfe !important;
    border-color:#aebfca !important;
}

html body.app-layout input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):not([type="color"]):not([type="range"]):not([disabled]):not([readonly]):focus,
html body.app-layout select:not([disabled]):focus,
html body.app-layout textarea:not([disabled]):not([readonly]):focus{
    background-color:#ffffff !important;
    border-color:var(--brand-teal,#0f9f9a) !important;
    box-shadow:0 0 0 3px rgba(15,159,154,.13) !important;
}

/* O verde reaparece somente quando a validação semântica confirmou conteúdo válido. */
html body.app-layout input.campo-validacao-v493.campo-validado-ok-v493:not(:focus),
html body.app-layout select.campo-validacao-v493.campo-validado-ok-v493:not(:focus),
html body.app-layout textarea.campo-validacao-v493.campo-validado-ok-v493:not(:focus){
    background-color:#f0fdf4 !important;
    border-color:#4ade80 !important;
    box-shadow:0 0 0 1px rgba(34,197,94,.08) !important;
}

/* Campos vazios ou não confirmados ficam brancos, mesmo que regras antigas tentem pintá-los. */
html body.app-layout input.campo-validacao-v493:not(.campo-validado-ok-v493):not(.campo-validado-erro-v493),
html body.app-layout select.campo-validacao-v493:not(.campo-validado-ok-v493):not(.campo-validado-erro-v493),
html body.app-layout textarea.campo-validacao-v493:not(.campo-validado-ok-v493):not(.campo-validado-erro-v493){
    background-color:#ffffff !important;
    border-color:#cddce7 !important;
    box-shadow:none !important;
}

html body.app-layout input.campo-validacao-v493:not(.campo-validado-ok-v493):not(.campo-validado-erro-v493):focus,
html body.app-layout select.campo-validacao-v493:not(.campo-validado-ok-v493):not(.campo-validado-erro-v493):focus,
html body.app-layout textarea.campo-validacao-v493:not(.campo-validado-ok-v493):not(.campo-validado-erro-v493):focus{
    background-color:#ffffff !important;
    border-color:var(--brand-teal,#0f9f9a) !important;
    box-shadow:0 0 0 3px rgba(15,159,154,.13) !important;
}

/* Autofill neutro por padrão; verde apenas após confirmação válida. */
html body.app-layout input:-webkit-autofill,
html body.app-layout input:-webkit-autofill:hover,
html body.app-layout input:-webkit-autofill:focus,
html body.app-layout input:-webkit-autofill:active{
    -webkit-text-fill-color:var(--text,#2f3742) !important;
    caret-color:var(--text,#2f3742) !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset !important;
    box-shadow:0 0 0 1000px #ffffff inset !important;
    border-color:#cddce7 !important;
}

html body.app-layout input.campo-validacao-v493.campo-validado-ok-v493:-webkit-autofill:not(:focus),
html body.app-layout input.campo-validacao-v493.campo-validado-ok-v493:-webkit-autofill:hover:not(:focus){
    -webkit-box-shadow:0 0 0 1000px #f0fdf4 inset !important;
    box-shadow:0 0 0 1000px #f0fdf4 inset !important;
    border-color:#4ade80 !important;
}

/* Exceção obrigatória: campos digitáveis da lista de registros nunca recebem fundo semântico. */
html body.app-layout #registros-filtrados input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([disabled]):not([readonly]),
html body.app-layout #registros-filtrados select:not([disabled]),
html body.app-layout #registros-filtrados textarea:not([disabled]):not([readonly]){
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:#cddce7 !important;
    box-shadow:none !important;
}

html body.app-layout #registros-filtrados input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([disabled]):not([readonly]):hover:not(:focus),
html body.app-layout #registros-filtrados select:not([disabled]):hover:not(:focus),
html body.app-layout #registros-filtrados textarea:not([disabled]):not([readonly]):hover:not(:focus){
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:#aebfca !important;
}

html body.app-layout #registros-filtrados input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([disabled]):not([readonly]):focus,
html body.app-layout #registros-filtrados select:not([disabled]):focus,
html body.app-layout #registros-filtrados textarea:not([disabled]):not([readonly]):focus{
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:var(--brand-teal,#0f9f9a) !important;
    box-shadow:0 0 0 3px rgba(15,159,154,.13) !important;
}

html body.app-layout #registros-filtrados input:-webkit-autofill,
html body.app-layout #registros-filtrados input:-webkit-autofill:hover,
html body.app-layout #registros-filtrados input:-webkit-autofill:focus,
html body.app-layout #registros-filtrados input:-webkit-autofill:active{
    -webkit-box-shadow:0 0 0 1000px #ffffff inset !important;
    box-shadow:0 0 0 1000px #ffffff inset !important;
    border-color:#cddce7 !important;
}


/* Reforço de especificidade v4.9.5: vence regras antigas específicas de cada tela. */
html body.app-layout input.campo-validacao-v493.campo-validacao-v493.campo-validacao-v493:not(.campo-validado-ok-v493):not(.campo-validado-erro-v493),
html body.app-layout select.campo-validacao-v493.campo-validacao-v493.campo-validacao-v493:not(.campo-validado-ok-v493):not(.campo-validado-erro-v493),
html body.app-layout textarea.campo-validacao-v493.campo-validacao-v493.campo-validacao-v493:not(.campo-validado-ok-v493):not(.campo-validado-erro-v493){
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:#cddce7 !important;
    box-shadow:none !important;
}

html body.app-layout input.campo-validacao-v493.campo-validacao-v493.campo-validacao-v493.campo-validado-ok-v493:not(:focus),
html body.app-layout select.campo-validacao-v493.campo-validacao-v493.campo-validacao-v493.campo-validado-ok-v493:not(:focus),
html body.app-layout textarea.campo-validacao-v493.campo-validacao-v493.campo-validacao-v493.campo-validado-ok-v493:not(:focus){
    background:#f0fdf4 !important;
    background-color:#f0fdf4 !important;
    border-color:#4ade80 !important;
    box-shadow:0 0 0 1px rgba(34,197,94,.08) !important;
}

html body.app-layout input.campo-validacao-v493.campo-validacao-v493.campo-validacao-v493.campo-validado-erro-v493:not(:focus),
html body.app-layout select.campo-validacao-v493.campo-validacao-v493.campo-validacao-v493.campo-validado-erro-v493:not(:focus),
html body.app-layout textarea.campo-validacao-v493.campo-validacao-v493.campo-validacao-v493.campo-validado-erro-v493:not(:focus){
    background:#fff7f7 !important;
    background-color:#fff7f7 !important;
    border-color:#ef4444 !important;
    box-shadow:0 0 0 1px rgba(220,38,38,.08) !important;
}


/* ===== v4.9.6 — seletores neutros e autofill sem azul =====
   A validação por cor é exclusiva de input/textarea realmente digitáveis.
   SELECT é controle de escolha e permanece branco; azul nativo do Edge/Chrome
   é neutralizado para que campos válidos apareçam verde, nunca azul. */

/* Todos os seletores ficam neutros em repouso, inclusive quando possuem valor. */
html body.app-layout select:not([disabled]){
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:#cddce7 !important;
    color:var(--text,#2f3742) !important;
    box-shadow:none !important;
}
html body.app-layout select:not([disabled]):hover:not(:focus){
    background:#fbfdfe !important;
    background-color:#fbfdfe !important;
    border-color:#aebfca !important;
    box-shadow:none !important;
}
html body.app-layout select:not([disabled]):focus{
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:var(--brand-teal,#0f9f9a) !important;
    box-shadow:0 0 0 3px rgba(15,159,154,.13) !important;
}
/* Remove classes semânticas residuais de seletores que possam ter sido inseridas antes. */
html body.app-layout select.campo-validacao-v493,
html body.app-layout select.campo-validacao-v493.campo-validado-ok-v493,
html body.app-layout select.campo-validacao-v493.campo-validado-erro-v493{
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:#cddce7 !important;
    box-shadow:none !important;
}
html body.app-layout select.campo-validacao-v493:focus,
html body.app-layout select.campo-validacao-v493.campo-validado-ok-v493:focus,
html body.app-layout select.campo-validacao-v493.campo-validado-erro-v493:focus{
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:var(--brand-teal,#0f9f9a) !important;
    box-shadow:0 0 0 3px rgba(15,159,154,.13) !important;
}

/* Campo digitável vazio/neutro nunca herda azul do navegador. */
html body.app-layout input.campo-validacao-v493,
html body.app-layout textarea.campo-validacao-v493{
    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;
    transition:border-color .16s ease, box-shadow .16s ease !important;
}

/* Campo preenchido e validado: verde forte o bastante para vencer autofill. */
html body.app-layout input.campo-validacao-v493.campo-validado-ok-v493:not(:focus),
html body.app-layout textarea.campo-validacao-v493.campo-validado-ok-v493:not(:focus){
    background:#f0fdf4 !important;
    background-color:#f0fdf4 !important;
    background-image:none !important;
    border-color:#4ade80 !important;
    box-shadow:0 0 0 1px rgba(34,197,94,.08) !important;
    transition:none !important;
}

/* Edge/Chrome/Blink: neutraliza explicitamente o azul de preenchimento automático. */
html body.app-layout input.campo-validacao-v493:-webkit-autofill,
html body.app-layout input.campo-validacao-v493:-webkit-autofill:hover,
html body.app-layout input.campo-validacao-v493:-webkit-autofill:focus,
html body.app-layout input.campo-validacao-v493:-webkit-autofill:active{
    -webkit-text-fill-color:var(--text,#2f3742) !important;
    caret-color:var(--text,#2f3742) !important;
    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset !important;
    box-shadow:0 0 0 1000px #ffffff inset !important;
    border-color:#cddce7 !important;
    transition:none !important;
    -webkit-background-clip:border-box !important;
}
html body.app-layout input.campo-validacao-v493:autofill{
    background:#ffffff !important;
    background-color:#ffffff !important;
    box-shadow:0 0 0 1000px #ffffff inset !important;
    border-color:#cddce7 !important;
    transition:none !important;
}
html body.app-layout input.campo-validacao-v493.campo-validado-ok-v493:-webkit-autofill,
html body.app-layout input.campo-validacao-v493.campo-validado-ok-v493:-webkit-autofill:hover,
html body.app-layout input.campo-validacao-v493.campo-validado-ok-v493:-webkit-autofill:focus,
html body.app-layout input.campo-validacao-v493.campo-validado-ok-v493:-webkit-autofill:active{
    -webkit-text-fill-color:var(--text,#2f3742) !important;
    caret-color:var(--text,#2f3742) !important;
    background:#f0fdf4 !important;
    background-color:#f0fdf4 !important;
    background-image:none !important;
    -webkit-box-shadow:0 0 0 1000px #f0fdf4 inset !important;
    box-shadow:0 0 0 1000px #f0fdf4 inset !important;
    border-color:#4ade80 !important;
    transition:none !important;
    -webkit-background-clip:border-box !important;
}
html body.app-layout input.campo-validacao-v493.campo-validado-ok-v493:autofill{
    background:#f0fdf4 !important;
    background-color:#f0fdf4 !important;
    box-shadow:0 0 0 1000px #f0fdf4 inset !important;
    border-color:#4ade80 !important;
    transition:none !important;
}

/* Lista de registros: input, textarea e select sempre neutros/brancos. */
html body.app-layout #registros-filtrados input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([disabled]):not([readonly]),
html body.app-layout #registros-filtrados textarea:not([disabled]):not([readonly]),
html body.app-layout #registros-filtrados select:not([disabled]),
html body.app-layout #registros-filtrados input.campo-validacao-v493.campo-validado-ok-v493,
html body.app-layout #registros-filtrados textarea.campo-validacao-v493.campo-validado-ok-v493{
    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;
    border-color:#cddce7 !important;
    box-shadow:none !important;
}
html body.app-layout #registros-filtrados input:-webkit-autofill,
html body.app-layout #registros-filtrados input:-webkit-autofill:hover,
html body.app-layout #registros-filtrados input:-webkit-autofill:focus,
html body.app-layout #registros-filtrados input:-webkit-autofill:active{
    -webkit-text-fill-color:var(--text,#2f3742) !important;
    background:#ffffff !important;
    background-color:#ffffff !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset !important;
    box-shadow:0 0 0 1000px #ffffff inset !important;
    transition:none !important;
}


/* ===== v4.9.9 — revisão completa de campos internos, SMTP e listagem =====
   1) Campos internos usam branco/verde/vermelho conforme estado sem azul do navegador.
   2) SELECT permanece sempre neutro.
   3) A listagem mantém as cores originais das linhas e campos editáveis brancos.
   4) Somente realce, calendário e número de controle acompanham o status da linha. */

/* Base neutra de todos os controles realmente digitáveis nas páginas internas. */
html body.app-layout input.campo-validacao-v493,
html body.app-layout textarea.campo-validacao-v493{
    --campo-fundo-v499:#ffffff;
    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;
    color:var(--text,#2f3742) !important;
    -webkit-text-fill-color:var(--text,#2f3742) !important;
    caret-color:var(--text,#2f3742) !important;
    border-color:#cddce7 !important;
    -webkit-box-shadow:0 0 0 1000px var(--campo-fundo-v499) inset !important;
    box-shadow:0 0 0 1000px var(--campo-fundo-v499) inset !important;
    background-clip:padding-box !important;
    -webkit-background-clip:padding-box !important;
    transition:border-color .16s ease, box-shadow .16s ease !important;
    filter:none !important;
}

/* Válido: verde suave real, inclusive quando o navegador restaurou/autopreencheu o valor. */
html body.app-layout input.campo-validacao-v493.campo-validado-ok-v493:not(:focus),
html body.app-layout textarea.campo-validacao-v493.campo-validado-ok-v493:not(:focus){
    --campo-fundo-v499:#f0fdf4;
    background:#f0fdf4 !important;
    background-color:#f0fdf4 !important;
    border-color:#4ade80 !important;
    -webkit-box-shadow:0 0 0 1000px #f0fdf4 inset, 0 0 0 1px rgba(34,197,94,.08) !important;
    box-shadow:0 0 0 1000px #f0fdf4 inset, 0 0 0 1px rgba(34,197,94,.08) !important;
}

/* Inválido: vermelho suave. */
html body.app-layout input.campo-validacao-v493.campo-validado-erro-v493:not(:focus),
html body.app-layout textarea.campo-validacao-v493.campo-validado-erro-v493:not(:focus){
    --campo-fundo-v499:#fff7f7;
    background:#fff7f7 !important;
    background-color:#fff7f7 !important;
    border-color:#ef4444 !important;
    -webkit-box-shadow:0 0 0 1000px #fff7f7 inset, 0 0 0 1px rgba(220,38,38,.08) !important;
    box-shadow:0 0 0 1000px #fff7f7 inset, 0 0 0 1px rgba(220,38,38,.08) !important;
}

/* Em foco: fundo branco, sem declarar que o dado já está correto. */
html body.app-layout input.campo-validacao-v493:focus,
html body.app-layout textarea.campo-validacao-v493:focus{
    --campo-fundo-v499:#ffffff;
    outline:none !important;
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:var(--brand-teal,#0f9f9a) !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(15,159,154,.13) !important;
    box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(15,159,154,.13) !important;
}

/* Cobertura completa do autofill/restauração no Edge, Chrome e navegadores Blink. */
html body.app-layout input.campo-validacao-v493:-webkit-autofill,
html body.app-layout input.campo-validacao-v493:-webkit-autofill:hover,
html body.app-layout input.campo-validacao-v493:-webkit-autofill:active,
html body.app-layout input.campo-validacao-v493:autofill{
    -webkit-text-fill-color:var(--text,#2f3742) !important;
    caret-color:var(--text,#2f3742) !important;
    background:var(--campo-fundo-v499,#ffffff) !important;
    background-color:var(--campo-fundo-v499,#ffffff) !important;
    -webkit-box-shadow:0 0 0 1000px var(--campo-fundo-v499,#ffffff) inset !important;
    box-shadow:0 0 0 1000px var(--campo-fundo-v499,#ffffff) inset !important;
    transition:none !important;
    filter:none !important;
}
html body.app-layout input.campo-validacao-v493.campo-validado-ok-v493:-webkit-autofill:not(:focus),
html body.app-layout input.campo-validacao-v493.campo-validado-ok-v493:-webkit-autofill:hover:not(:focus),
html body.app-layout input.campo-validacao-v493.campo-validado-ok-v493:autofill:not(:focus){
    background:#f0fdf4 !important;
    background-color:#f0fdf4 !important;
    border-color:#4ade80 !important;
    -webkit-box-shadow:0 0 0 1000px #f0fdf4 inset, 0 0 0 1px rgba(34,197,94,.08) !important;
    box-shadow:0 0 0 1000px #f0fdf4 inset, 0 0 0 1px rgba(34,197,94,.08) !important;
}
html body.app-layout input.campo-validacao-v493.campo-validado-erro-v493:-webkit-autofill:not(:focus),
html body.app-layout input.campo-validacao-v493.campo-validado-erro-v493:-webkit-autofill:hover:not(:focus),
html body.app-layout input.campo-validacao-v493.campo-validado-erro-v493:autofill:not(:focus){
    background:#fff7f7 !important;
    background-color:#fff7f7 !important;
    border-color:#ef4444 !important;
    -webkit-box-shadow:0 0 0 1000px #fff7f7 inset, 0 0 0 1px rgba(220,38,38,.08) !important;
    box-shadow:0 0 0 1000px #fff7f7 inset, 0 0 0 1px rgba(220,38,38,.08) !important;
}
html body.app-layout input.campo-validacao-v493:-webkit-autofill:focus{
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:var(--brand-teal,#0f9f9a) !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(15,159,154,.13) !important;
    box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(15,159,154,.13) !important;
}

/* Reforço específico da tela de e-mail: nenhum campo preenchido fica azul. */
html body.app-layout .card-config-email input:not([type="hidden"]),
html body.app-layout .card-email-teste input:not([type="hidden"]){
    background-image:none !important;
    background-clip:padding-box !important;
    -webkit-background-clip:padding-box !important;
    color-scheme:light !important;
}
html body.app-layout .card-config-email input.campo-validacao-v493,
html body.app-layout .card-email-teste input.campo-validacao-v493{
    -webkit-box-shadow:0 0 0 1000px var(--campo-fundo-v499,#ffffff) inset !important;
    box-shadow:0 0 0 1000px var(--campo-fundo-v499,#ffffff) inset !important;
}
html body.app-layout .card-config-email input.campo-validacao-v493.campo-validado-ok-v493:not(:focus),
html body.app-layout .card-email-teste input.campo-validacao-v493.campo-validado-ok-v493:not(:focus){
    -webkit-box-shadow:0 0 0 1000px #f0fdf4 inset, 0 0 0 1px rgba(34,197,94,.08) !important;
    box-shadow:0 0 0 1000px #f0fdf4 inset, 0 0 0 1px rgba(34,197,94,.08) !important;
}

/* SELECT é controle de escolha: sempre branco/neutro, inclusive na tela SMTP. */
html body.app-layout select:not([disabled]),
html body.app-layout select.campo-validacao-v493,
html body.app-layout select.campo-validado-ok-v493,
html body.app-layout select.campo-validado-erro-v493{
    background:#ffffff !important;
    background-color:#ffffff !important;
    color:var(--text,#2f3742) !important;
    border-color:#cddce7 !important;
    box-shadow:none !important;
    filter:none !important;
}
html body.app-layout select:not([disabled]):hover:not(:focus){
    background:#fbfdfe !important;
    background-color:#fbfdfe !important;
    border-color:#aebfca !important;
}
html body.app-layout select:not([disabled]):focus{
    outline:none !important;
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:var(--brand-teal,#0f9f9a) !important;
    box-shadow:0 0 0 3px rgba(15,159,154,.13) !important;
}

/* Readonly e disabled continuam cinza neutro. */
html body.app-layout input[readonly],
html body.app-layout textarea[readonly],
html body.app-layout input[disabled],
html body.app-layout textarea[disabled],
html body.app-layout select[disabled]{
    background:#f3f6f8 !important;
    background-color:#f3f6f8 !important;
    border-color:#d7e0e7 !important;
    color:#687786 !important;
    -webkit-text-fill-color:#687786 !important;
    -webkit-box-shadow:0 0 0 1000px #f3f6f8 inset !important;
    box-shadow:0 0 0 1000px #f3f6f8 inset !important;
}

/* LISTAGEM: restaura as cores originais das linhas; interior dos campos sempre branco. */
html body.app-layout #registros-filtrados input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):not([type="color"]):not([type="range"]):not(.seletor-calendario-manual):not([disabled]):not([readonly]),
html body.app-layout #registros-filtrados textarea:not([disabled]):not([readonly]),
html body.app-layout #registros-filtrados select:not([disabled]){
    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;
    color:var(--text,#2f3742) !important;
    -webkit-text-fill-color:var(--text,#2f3742) !important;
    border-color:#cddce7 !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset !important;
    box-shadow:0 0 0 1000px #ffffff inset !important;
    filter:none !important;
}
html body.app-layout #registros-filtrados input:-webkit-autofill,
html body.app-layout #registros-filtrados input:-webkit-autofill:hover,
html body.app-layout #registros-filtrados input:-webkit-autofill:active,
html body.app-layout #registros-filtrados input:autofill{
    background:#ffffff !important;
    background-color:#ffffff !important;
    -webkit-text-fill-color:var(--text,#2f3742) !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset !important;
    box-shadow:0 0 0 1000px #ffffff inset !important;
    transition:none !important;
}

/* Realce discreto acompanha o status, sem pintar o fundo do campo. */
html body.app-layout #registros-filtrados tr.status-retirado input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not(.seletor-calendario-manual):not([readonly]):hover:not(:focus),
html body.app-layout #registros-filtrados tr.status-retirado textarea:not([readonly]):hover:not(:focus),
html body.app-layout #registros-filtrados tr.status-retirado select:hover:not(:focus){
    border-color:#86d9a4 !important;
}
html body.app-layout #registros-filtrados tr.status-nao-retirado input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not(.seletor-calendario-manual):not([readonly]):hover:not(:focus),
html body.app-layout #registros-filtrados tr.status-nao-retirado textarea:not([readonly]):hover:not(:focus),
html body.app-layout #registros-filtrados tr.status-nao-retirado select:hover:not(:focus){
    border-color:#e6bf62 !important;
}
html body.app-layout #registros-filtrados tr.status-retirado input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not(.seletor-calendario-manual):not([readonly]):focus,
html body.app-layout #registros-filtrados tr.status-retirado textarea:not([readonly]):focus,
html body.app-layout #registros-filtrados tr.status-retirado select:focus{
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:#16a34a !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(22,163,74,.16) !important;
    box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(22,163,74,.16) !important;
}
html body.app-layout #registros-filtrados tr.status-nao-retirado input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not(.seletor-calendario-manual):not([readonly]):focus,
html body.app-layout #registros-filtrados tr.status-nao-retirado textarea:not([readonly]):focus,
html body.app-layout #registros-filtrados tr.status-nao-retirado select:focus{
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:#d97706 !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(217,119,6,.16) !important;
    box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(217,119,6,.16) !important;
}

/* Número de controle: cor suave coerente com o status. */
html body.app-layout #registros-filtrados tr.status-retirado .controle-badge{
    background:#ecfdf5 !important;
    color:#166534 !important;
    border-color:#86efac !important;
    box-shadow:0 2px 7px rgba(22,163,74,.08) !important;
}
html body.app-layout #registros-filtrados tr.status-nao-retirado .controle-badge{
    background:#fff7ed !important;
    color:#9a3412 !important;
    border-color:#fdba74 !important;
    box-shadow:0 2px 7px rgba(217,119,6,.08) !important;
}

/* Calendário: fundo branco; apenas ícone/borda/realce acompanham o status. */
html body.app-layout #registros-filtrados tr.status-retirado .icone-calendario-manual{
    background:#ffffff !important;
    color:#15803d !important;
    border-color:#86efac !important;
    box-shadow:none !important;
}
html body.app-layout #registros-filtrados tr.status-retirado .icone-calendario-manual:hover,
html body.app-layout #registros-filtrados tr.status-retirado .icone-calendario-manual:focus{
    background:#ffffff !important;
    color:#166534 !important;
    border-color:#16a34a !important;
    box-shadow:0 0 0 3px rgba(22,163,74,.16) !important;
    outline:none !important;
}
html body.app-layout #registros-filtrados tr.status-nao-retirado .icone-calendario-manual{
    background:#ffffff !important;
    color:#b45309 !important;
    border-color:#fdba74 !important;
    box-shadow:none !important;
}
html body.app-layout #registros-filtrados tr.status-nao-retirado .icone-calendario-manual:hover,
html body.app-layout #registros-filtrados tr.status-nao-retirado .icone-calendario-manual:focus{
    background:#ffffff !important;
    color:#92400e !important;
    border-color:#d97706 !important;
    box-shadow:0 0 0 3px rgba(217,119,6,.16) !important;
    outline:none !important;
}

/* v4.9.9 — blindagem final de especificidade.
   :not(#...) acrescenta especificidade sem exigir um ID real, vencendo regras antigas
   muito específicas sem alterar o HTML ou o comportamento dos campos. */
html body.app-layout input.campo-validacao-v493:not(#v499-campo-never),
html body.app-layout textarea.campo-validacao-v493:not(#v499-campo-never){
    --campo-fundo-v499:#ffffff;
    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;
    border-color:#cddce7 !important;
    -webkit-text-fill-color:var(--text,#2f3742) !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset !important;
    box-shadow:0 0 0 1000px #ffffff inset !important;
}
html body.app-layout input.campo-validacao-v493.campo-validado-ok-v493:not(#v499-campo-never):not(:focus),
html body.app-layout textarea.campo-validacao-v493.campo-validado-ok-v493:not(#v499-campo-never):not(:focus){
    --campo-fundo-v499:#f0fdf4;
    background:#f0fdf4 !important;
    background-color:#f0fdf4 !important;
    border-color:#4ade80 !important;
    -webkit-box-shadow:0 0 0 1000px #f0fdf4 inset, 0 0 0 1px rgba(34,197,94,.08) !important;
    box-shadow:0 0 0 1000px #f0fdf4 inset, 0 0 0 1px rgba(34,197,94,.08) !important;
}
html body.app-layout input.campo-validacao-v493.campo-validado-erro-v493:not(#v499-campo-never):not(:focus),
html body.app-layout textarea.campo-validacao-v493.campo-validado-erro-v493:not(#v499-campo-never):not(:focus){
    --campo-fundo-v499:#fff7f7;
    background:#fff7f7 !important;
    background-color:#fff7f7 !important;
    border-color:#ef4444 !important;
    -webkit-box-shadow:0 0 0 1000px #fff7f7 inset, 0 0 0 1px rgba(220,38,38,.08) !important;
    box-shadow:0 0 0 1000px #fff7f7 inset, 0 0 0 1px rgba(220,38,38,.08) !important;
}
html body.app-layout input.campo-validacao-v493:not(#v499-campo-never):focus,
html body.app-layout textarea.campo-validacao-v493:not(#v499-campo-never):focus{
    --campo-fundo-v499:#ffffff;
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:var(--brand-teal,#0f9f9a) !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(15,159,154,.13) !important;
    box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(15,159,154,.13) !important;
}

html body.app-layout select:not(#v499-select-never):not([disabled]){
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:#cddce7 !important;
    box-shadow:none !important;
}
html body.app-layout select:not(#v499-select-never):not([disabled]):focus{
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:var(--brand-teal,#0f9f9a) !important;
    box-shadow:0 0 0 3px rgba(15,159,154,.13) !important;
}

/* Lista: dois IDs artificiais somados ao ID real garantem campo branco e realce correto. */
html body.app-layout #registros-filtrados input:not(#v499-lista-a):not(#v499-lista-b):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):not([type="color"]):not([type="range"]):not(.seletor-calendario-manual):not([disabled]):not([readonly]),
html body.app-layout #registros-filtrados textarea:not(#v499-lista-a):not(#v499-lista-b):not([disabled]):not([readonly]),
html body.app-layout #registros-filtrados select:not(#v499-lista-a):not(#v499-lista-b):not([disabled]){
    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;
    border-color:#cddce7 !important;
    -webkit-text-fill-color:var(--text,#2f3742) !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset !important;
    box-shadow:0 0 0 1000px #ffffff inset !important;
}
html body.app-layout #registros-filtrados tr.status-retirado input:not(#v499-lista-a):not(#v499-lista-b):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not(.seletor-calendario-manual):not([readonly]):focus,
html body.app-layout #registros-filtrados tr.status-retirado textarea:not(#v499-lista-a):not(#v499-lista-b):not([readonly]):focus,
html body.app-layout #registros-filtrados tr.status-retirado select:not(#v499-lista-a):not(#v499-lista-b):focus{
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:#16a34a !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(22,163,74,.16) !important;
    box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(22,163,74,.16) !important;
}
html body.app-layout #registros-filtrados tr.status-nao-retirado input:not(#v499-lista-a):not(#v499-lista-b):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not(.seletor-calendario-manual):not([readonly]):focus,
html body.app-layout #registros-filtrados tr.status-nao-retirado textarea:not(#v499-lista-a):not(#v499-lista-b):not([readonly]):focus,
html body.app-layout #registros-filtrados tr.status-nao-retirado select:not(#v499-lista-a):not(#v499-lista-b):focus{
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:#d97706 !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(217,119,6,.16) !important;
    box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(217,119,6,.16) !important;
}

/* v4.9.9 — foco da listagem com a mesma base de especificidade do campo branco. */
html body.app-layout #registros-filtrados tr.status-retirado input:not(#v499-lista-a):not(#v499-lista-b):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):not([type="color"]):not([type="range"]):not(.seletor-calendario-manual):not([disabled]):not([readonly]):focus,
html body.app-layout #registros-filtrados tr.status-retirado textarea:not(#v499-lista-a):not(#v499-lista-b):not([disabled]):not([readonly]):focus,
html body.app-layout #registros-filtrados tr.status-retirado select:not(#v499-lista-a):not(#v499-lista-b):not([disabled]):focus{
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:#16a34a !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(22,163,74,.16) !important;
    box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(22,163,74,.16) !important;
}
html body.app-layout #registros-filtrados tr.status-nao-retirado input:not(#v499-lista-a):not(#v499-lista-b):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):not([type="color"]):not([type="range"]):not(.seletor-calendario-manual):not([disabled]):not([readonly]):focus,
html body.app-layout #registros-filtrados tr.status-nao-retirado textarea:not(#v499-lista-a):not(#v499-lista-b):not([disabled]):not([readonly]):focus,
html body.app-layout #registros-filtrados tr.status-nao-retirado select:not(#v499-lista-a):not(#v499-lista-b):not([disabled]):focus{
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:#d97706 !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(217,119,6,.16) !important;
    box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(217,119,6,.16) !important;
}


/* ===== v5.0.0 — detalhes da listagem sem sobreposição e com menu aberto =====
   A célula expandida é simultaneamente a primeira e a última da linha. Regras
   antigas criavam camadas ::before/::after sobre o conteúdo quando o menu
   lateral estava aberto. Mantém a borda de status, mas remove as camadas internas. */
html body.app-layout #registros-filtrados .cadastro-status-table.tabela-registros-compacta
tr.registro-detalhes-linha > td:first-child::before,
html body.app-layout #registros-filtrados .cadastro-status-table.tabela-registros-compacta
tr.registro-detalhes-linha > td:last-child::after{
    content:none !important;
    display:none !important;
}

html body.app-layout #registros-filtrados .cadastro-status-table.tabela-registros-compacta
tr.registro-detalhes-linha > td{
    padding:14px 14px 14px 18px !important;
    box-sizing:border-box !important;
}

html body.app-layout #registros-filtrados .registro-detalhes-card{
    grid-template-columns:minmax(0,.8fr) minmax(0,.9fr) minmax(0,.9fr) minmax(0,1.6fr) !important;
    width:100% !important;
    min-width:0 !important;
}

html body.app-layout #registros-filtrados .registro-detalhes-card > div{
    min-width:0 !important;
    max-width:100% !important;
}

html body.app-layout #registros-filtrados .registro-detalhes-card input,
html body.app-layout #registros-filtrados .registro-detalhes-card .campo-data-manual-wrap{
    min-width:0 !important;
    max-width:100% !important;
    box-sizing:border-box !important;
}

@media screen and (max-width:1100px){
    html body.app-layout #registros-filtrados .registro-detalhes-card{
        grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    }
}

@media screen and (max-width:700px){
    html body.app-layout #registros-filtrados .registro-detalhes-card{
        grid-template-columns:minmax(0,1fr) !important;
    }
}


/* ===== v5.0.1 — campos numéricos neutros =====
   Campos input[type=number] representam valores/configurações e não confirmação semântica.
   Permanecem brancos, inclusive quando preenchidos; teal aparece somente no foco. */
html body.app-layout input[type="number"]:not([disabled]):not([readonly]),
html body.app-layout input[type="number"].campo-validacao-v493.campo-validado-ok-v493:not([disabled]):not([readonly]),
html body.app-layout input[type="number"].campo-validacao-v493.campo-validado-erro-v493:not([disabled]):not([readonly]){
    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;
    border-color:#cddce7 !important;
    -webkit-text-fill-color:var(--text,#2f3742) !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset !important;
    box-shadow:0 0 0 1000px #ffffff inset !important;
}
html body.app-layout input[type="number"]:not([disabled]):not([readonly]):focus,
html body.app-layout input[type="number"].campo-validacao-v493.campo-validado-ok-v493:not([disabled]):not([readonly]):focus,
html body.app-layout input[type="number"].campo-validacao-v493.campo-validado-erro-v493:not([disabled]):not([readonly]):focus{
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:var(--brand-teal,#0f9f9a) !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(15,159,154,.13) !important;
    box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(15,159,154,.13) !important;
    outline:none !important;
}


/* ===== v5.0.2 — cor da marca somente no autofill do navegador =====
   Regra final e autoritativa:
   - digitação manual: branco;
   - autofill Chrome/Edge: #eaf7f6, igual ao login;
   - erro: fundo branco e borda vermelha;
   - select, number, datas e lista de registros: neutros/preservados. */

/* Campos textuais elegíveis das páginas internas: sempre brancos quando manuais. */
html body.app-layout input.campo-autofill-v502,
html body.app-layout textarea.campo-autofill-v502,
html body.app-layout input.campo-autofill-v502.campo-autofill-erro-v502{
    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;
    border-color:#cddce7 !important;
    color:var(--text,#2f3742) !important;
    -webkit-text-fill-color:var(--text,#2f3742) !important;
    caret-color:var(--text,#2f3742) !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset !important;
    box-shadow:0 0 0 1000px #ffffff inset !important;
    transition:border-color .16s ease, box-shadow .16s ease !important;
    filter:none !important;
}

html body.app-layout input.campo-autofill-v502:focus,
html body.app-layout textarea.campo-autofill-v502:focus{
    outline:none !important;
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:var(--brand-teal,#0f9f9a) !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(15,159,154,.13) !important;
    box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(15,159,154,.13) !important;
}

/* Erro não cria outro fundo: apenas a borda informa o problema. */
html body.app-layout input.campo-autofill-v502.campo-autofill-erro-v502:not(:focus),
html body.app-layout textarea.campo-autofill-v502.campo-autofill-erro-v502:not(:focus){
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:#ef4444 !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 1px rgba(220,38,38,.08) !important;
    box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 1px rgba(220,38,38,.08) !important;
}

/* Único fundo colorido: autofill real do navegador, igual ao login. */
html body.app-layout input.campo-autofill-v502:-webkit-autofill,
html body.app-layout input.campo-autofill-v502:-webkit-autofill:hover,
html body.app-layout input.campo-autofill-v502:-webkit-autofill:active,
html body.app-layout input.campo-autofill-v502:autofill{
    background:#eaf7f6 !important;
    background-color:#eaf7f6 !important;
    background-image:none !important;
    border-color:#b7deda !important;
    -webkit-text-fill-color:var(--text,#2f3742) !important;
    caret-color:var(--text,#2f3742) !important;
    -webkit-box-shadow:0 0 0 1000px #eaf7f6 inset !important;
    box-shadow:0 0 0 1000px #eaf7f6 inset !important;
    transition:border-color .16s ease, box-shadow .16s ease !important;
    filter:none !important;
}

html body.app-layout input.campo-autofill-v502:-webkit-autofill:focus,
html body.app-layout input.campo-autofill-v502:autofill:focus{
    background:#eaf7f6 !important;
    background-color:#eaf7f6 !important;
    border-color:var(--brand-teal,#0f9f9a) !important;
    -webkit-box-shadow:0 0 0 1000px #eaf7f6 inset, 0 0 0 3px rgba(15,159,154,.13) !important;
    box-shadow:0 0 0 1000px #eaf7f6 inset, 0 0 0 3px rgba(15,159,154,.13) !important;
}

/* Auth pages: mesma cor oficial do autofill do login em todas as telas de acesso. */
body.login-page input:not([type="hidden"]):-webkit-autofill,
body.login-page input:not([type="hidden"]):-webkit-autofill:hover,
body.login-page input:not([type="hidden"]):-webkit-autofill:focus,
body.login-page input:not([type="hidden"]):autofill{
    background:#eaf7f6 !important;
    background-color:#eaf7f6 !important;
    -webkit-text-fill-color:#2f3742 !important;
    caret-color:#2f3742 !important;
    -webkit-box-shadow:0 0 0 1000px #eaf7f6 inset !important;
    box-shadow:0 0 0 1000px #eaf7f6 inset !important;
}

/* Controles não textuais permanecem neutros, mesmo preenchidos ou restaurados. */
html body.app-layout select:not([disabled]),
html body.app-layout input[type="number"]:not([disabled]):not([readonly]),
html body.app-layout input[type="date"]:not([disabled]):not([readonly]),
html body.app-layout input[type="datetime-local"]:not([disabled]):not([readonly]),
html body.app-layout input[type="month"]:not([disabled]):not([readonly]),
html body.app-layout input[type="week"]:not([disabled]):not([readonly]),
html body.app-layout input[type="time"]:not([disabled]):not([readonly]){
    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;
    border-color:#cddce7 !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset !important;
    box-shadow:0 0 0 1000px #ffffff inset !important;
}

html body.app-layout select:not([disabled]):focus,
html body.app-layout input[type="number"]:not([disabled]):not([readonly]):focus,
html body.app-layout input[type="date"]:not([disabled]):not([readonly]):focus,
html body.app-layout input[type="datetime-local"]:not([disabled]):not([readonly]):focus,
html body.app-layout input[type="month"]:not([disabled]):not([readonly]):focus,
html body.app-layout input[type="week"]:not([disabled]):not([readonly]):focus,
html body.app-layout input[type="time"]:not([disabled]):not([readonly]):focus{
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:var(--brand-teal,#0f9f9a) !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(15,159,154,.13) !important;
    box-shadow:0 0 0 1000px #ffffff inset, 0 0 0 3px rgba(15,159,154,.13) !important;
}

/* Blindagem: a lista de registros continua exatamente com o padrão aprovado da v501. */
html body.app-layout #registros-filtrados input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([disabled]):not([readonly]),
html body.app-layout #registros-filtrados textarea:not([disabled]):not([readonly]),
html body.app-layout #registros-filtrados select:not([disabled]){
    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset !important;
    box-shadow:0 0 0 1000px #ffffff inset !important;
}


/* ===== v5.0.3 — autofill Edge/Chrome sempre na cor oficial do sistema =====
   Corrige o azul nativo mostrado em campos como Paciente, Telefone e Descrição.
   A cor #eaf7f6 é exatamente a identidade suave usada no login. */

@-webkit-keyframes autofillMarcaV503{ from{opacity:1;} to{opacity:1;} }
@keyframes autofillMarcaV503{ from{opacity:1;} to{opacity:1;} }
@-webkit-keyframes autofillMarcaFimV503{ from{opacity:1;} to{opacity:1;} }
@keyframes autofillMarcaFimV503{ from{opacity:1;} to{opacity:1;} }

/* O pseudo nativo ativa a detecção JS e recebe a correção mesmo antes do JS. */
html body.app-layout input:-webkit-autofill,
html body.app-layout input:-webkit-autofill:hover,
html body.app-layout input:-webkit-autofill:focus,
html body.app-layout input:-webkit-autofill:active,
html body.app-layout textarea:-webkit-autofill,
html body.app-layout textarea:-webkit-autofill:hover,
html body.app-layout textarea:-webkit-autofill:focus,
html body.app-layout textarea:-webkit-autofill:active{
    -webkit-animation-name:autofillMarcaV503 !important;
    animation-name:autofillMarcaV503 !important;
    -webkit-animation-duration:.001s !important;
    animation-duration:.001s !important;
    background:#eaf7f6 !important;
    background-color:#eaf7f6 !important;
    background-image:none !important;
    color:var(--text,#2f3742) !important;
    -webkit-text-fill-color:var(--text,#2f3742) !important;
    caret-color:var(--text,#2f3742) !important;
    border-color:#b7deda !important;
    -webkit-box-shadow:0 0 0 9999px #eaf7f6 inset !important;
    box-shadow:0 0 0 9999px #eaf7f6 inset !important;
    -webkit-background-clip:padding-box !important;
    background-clip:padding-box !important;
    transition:border-color .16s ease, box-shadow .16s ease !important;
    filter:none !important;
}

/* Classe detectada: reforço contra o azul persistente do Edge após restauração/autocomplete. */
html body.app-layout input.autofill-marca-v503,
html body.app-layout textarea.autofill-marca-v503,
html body.app-layout input.campo-autofill-v502.autofill-marca-v503,
html body.app-layout textarea.campo-autofill-v502.autofill-marca-v503{
    background:#eaf7f6 !important;
    background-color:#eaf7f6 !important;
    background-image:none !important;
    color:var(--text,#2f3742) !important;
    -webkit-text-fill-color:var(--text,#2f3742) !important;
    caret-color:var(--text,#2f3742) !important;
    border-color:#b7deda !important;
    -webkit-box-shadow:0 0 0 9999px #eaf7f6 inset !important;
    box-shadow:0 0 0 9999px #eaf7f6 inset !important;
    -webkit-background-clip:padding-box !important;
    background-clip:padding-box !important;
    filter:none !important;
}

html body.app-layout input.autofill-marca-v503:focus,
html body.app-layout textarea.autofill-marca-v503:focus,
html body.app-layout input:-webkit-autofill:focus,
html body.app-layout textarea:-webkit-autofill:focus{
    background:#eaf7f6 !important;
    background-color:#eaf7f6 !important;
    border-color:var(--brand-teal,#0f9f9a) !important;
    -webkit-box-shadow:0 0 0 9999px #eaf7f6 inset, 0 0 0 3px rgba(15,159,154,.13) !important;
    box-shadow:0 0 0 9999px #eaf7f6 inset, 0 0 0 3px rgba(15,159,154,.13) !important;
    outline:none !important;
}

/* Login e demais telas de acesso recebem a mesma blindagem final. */
body.login-page input:-webkit-autofill,
body.login-page input:-webkit-autofill:hover,
body.login-page input:-webkit-autofill:focus,
body.login-page input:-webkit-autofill:active,
body.login-page input.autofill-marca-v503{
    background:#eaf7f6 !important;
    background-color:#eaf7f6 !important;
    -webkit-text-fill-color:#2f3742 !important;
    caret-color:#2f3742 !important;
    -webkit-box-shadow:0 0 0 9999px #eaf7f6 inset !important;
    box-shadow:0 0 0 9999px #eaf7f6 inset !important;
    filter:none !important;
}

/* Exceções obrigatórias: a lista e controles não textuais nunca recebem a cor do autofill. */
html body.app-layout #registros-filtrados input:-webkit-autofill,
html body.app-layout #registros-filtrados input:-webkit-autofill:hover,
html body.app-layout #registros-filtrados input:-webkit-autofill:focus,
html body.app-layout #registros-filtrados input:-webkit-autofill:active,
html body.app-layout #registros-filtrados textarea:-webkit-autofill,
html body.app-layout #registros-filtrados textarea:-webkit-autofill:hover,
html body.app-layout #registros-filtrados textarea:-webkit-autofill:focus,
html body.app-layout #registros-filtrados textarea:-webkit-autofill:active,
html body.app-layout #registros-filtrados .autofill-marca-v503{
    background:#ffffff !important;
    background-color:#ffffff !important;
    background-image:none !important;
    -webkit-box-shadow:0 0 0 9999px #ffffff inset !important;
    box-shadow:0 0 0 9999px #ffffff inset !important;
}

html body.app-layout select.autofill-marca-v503,
html body.app-layout input[type="number"].autofill-marca-v503,
html body.app-layout input[type="date"].autofill-marca-v503,
html body.app-layout input[type="datetime-local"].autofill-marca-v503,
html body.app-layout input[type="month"].autofill-marca-v503,
html body.app-layout input[type="week"].autofill-marca-v503,
html body.app-layout input[type="time"].autofill-marca-v503{
    background:#ffffff !important;
    background-color:#ffffff !important;
    -webkit-box-shadow:0 0 0 9999px #ffffff inset !important;
    box-shadow:0 0 0 9999px #ffffff inset !important;
}


/* ===== v5.0.4 — paleta final do sistema, autofill real sem azul e avisos harmonizados =====
   ESCOPO RESTRITO:
   - NÃO altera KPIs/cards, gradientes dos cards ou a lista de registros do Cadastro;
   - campos manuais permanecem brancos;
   - autofill real do Edge/Chrome usa a mesma cor suave do login (#eaf7f6);
   - mensagens flash usam a identidade teal/navy do sistema. */

:root{
    --autofill-sistema-v504:#eaf7f6;
    --autofill-borda-v504:#b7deda;
}

/* Campos textuais internos manuais: fundo branco autoritativo. */
html body.app-layout input[type="text"]:not(.seletor-calendario-manual):not([disabled]):not([readonly]),
html body.app-layout input[type="search"]:not([disabled]):not([readonly]),
html body.app-layout input[type="email"]:not([disabled]):not([readonly]),
html body.app-layout input[type="password"]:not([disabled]):not([readonly]),
html body.app-layout input[type="tel"]:not([disabled]):not([readonly]),
html body.app-layout input[type="url"]:not([disabled]):not([readonly]),
html body.app-layout textarea:not([disabled]):not([readonly]){
    background-color:#ffffff !important;
    background-image:none !important;
    -webkit-text-fill-color:var(--text,#2f3742) !important;
    caret-color:var(--text,#2f3742) !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset !important;
    box-shadow:0 0 0 1000px #ffffff inset !important;
    transition:border-color .16s ease, box-shadow .16s ease !important;
}

/* Autofill real: mesma cor suave do login, sem preservar o azul do navegador. */
html body.app-layout input[type="text"]:not(.seletor-calendario-manual):-webkit-autofill,
html body.app-layout input[type="text"]:not(.seletor-calendario-manual):-webkit-autofill:hover,
html body.app-layout input[type="text"]:not(.seletor-calendario-manual):-webkit-autofill:focus,
html body.app-layout input[type="text"]:not(.seletor-calendario-manual):-webkit-autofill:active,
html body.app-layout input[type="search"]:-webkit-autofill,
html body.app-layout input[type="search"]:-webkit-autofill:hover,
html body.app-layout input[type="search"]:-webkit-autofill:focus,
html body.app-layout input[type="search"]:-webkit-autofill:active,
html body.app-layout input[type="email"]:-webkit-autofill,
html body.app-layout input[type="email"]:-webkit-autofill:hover,
html body.app-layout input[type="email"]:-webkit-autofill:focus,
html body.app-layout input[type="email"]:-webkit-autofill:active,
html body.app-layout input[type="password"]:-webkit-autofill,
html body.app-layout input[type="password"]:-webkit-autofill:hover,
html body.app-layout input[type="password"]:-webkit-autofill:focus,
html body.app-layout input[type="password"]:-webkit-autofill:active,
html body.app-layout input[type="tel"]:-webkit-autofill,
html body.app-layout input[type="tel"]:-webkit-autofill:hover,
html body.app-layout input[type="tel"]:-webkit-autofill:focus,
html body.app-layout input[type="tel"]:-webkit-autofill:active,
html body.app-layout input[type="url"]:-webkit-autofill,
html body.app-layout input[type="url"]:-webkit-autofill:hover,
html body.app-layout input[type="url"]:-webkit-autofill:focus,
html body.app-layout input[type="url"]:-webkit-autofill:active,
html body.app-layout textarea:-webkit-autofill,
html body.app-layout textarea:-webkit-autofill:hover,
html body.app-layout textarea:-webkit-autofill:focus,
html body.app-layout textarea:-webkit-autofill:active,
html body.app-layout .autofill-sistema-v504{
    background-color:var(--autofill-sistema-v504) !important;
    background-image:none !important;
    border-color:var(--autofill-borda-v504) !important;
    color:var(--text,#2f3742) !important;
    -webkit-text-fill-color:var(--text,#2f3742) !important;
    caret-color:var(--text,#2f3742) !important;
    -webkit-box-shadow:0 0 0 1000px var(--autofill-sistema-v504) inset !important;
    box-shadow:0 0 0 1000px var(--autofill-sistema-v504) inset !important;
    transition:border-color .16s ease, box-shadow .16s ease !important;
    -webkit-background-clip:padding-box !important;
    background-clip:padding-box !important;
    filter:none !important;
}

html body.app-layout .autofill-sistema-v504:focus,
html body.app-layout input:-webkit-autofill:focus,
html body.app-layout textarea:-webkit-autofill:focus{
    border-color:var(--brand-teal,#0f9f9a) !important;
    -webkit-box-shadow:0 0 0 1000px var(--autofill-sistema-v504) inset, 0 0 0 3px rgba(15,159,154,.13) !important;
    box-shadow:0 0 0 1000px var(--autofill-sistema-v504) inset, 0 0 0 3px rgba(15,159,154,.13) !important;
    outline:none !important;
}

/* Exceções absolutas: não tocar em controles não textuais nem na lista aprovada. */
html body.app-layout select,
html body.app-layout input[type="number"],
html body.app-layout input[type="date"],
html body.app-layout input[type="datetime-local"],
html body.app-layout input[type="month"],
html body.app-layout input[type="week"],
html body.app-layout input[type="time"],
html body.app-layout #registros-filtrados input,
html body.app-layout #registros-filtrados textarea,
html body.app-layout #registros-filtrados select{
    --autofill-sistema-v504:#ffffff;
}

html body.app-layout #registros-filtrados .autofill-sistema-v504{
    background-color:#ffffff !important;
    -webkit-box-shadow:0 0 0 1000px #ffffff inset !important;
    box-shadow:0 0 0 1000px #ffffff inset !important;
}

/* Mensagens geradas pelo sistema: identidade teal/navy, sem verde genérico. */
html body.app-layout main.container > .alert{
    border-radius:16px !important;
    box-shadow:0 7px 18px rgba(18,54,111,.06) !important;
}
html body.app-layout main.container > .alert.ok,
html body.app-layout main.container > .alert.success{
    background:linear-gradient(135deg,#eaf7f6 0%,#f7fbfb 100%) !important;
    color:#087f82 !important;
    border:1px solid #b7deda !important;
    border-left:5px solid #0f9f9a !important;
}
html body.app-layout main.container > .alert.info{
    background:linear-gradient(135deg,#edf6f8 0%,#f8fbfc 100%) !important;
    color:#12366f !important;
    border:1px solid #cddce7 !important;
    border-left:5px solid #20b8b1 !important;
}
html body.app-layout main.container > .alert.aviso,
html body.app-layout main.container > .alert.warning{
    background:#fff7ed !important;
    color:#9a3412 !important;
    border:1px solid #fed7aa !important;
    border-left:5px solid #f97316 !important;
}
html body.app-layout main.container > .alert.erro,
html body.app-layout main.container > .alert.error,
html body.app-layout main.container > .alert.danger{
    background:#fff1f2 !important;
    color:#991b1b !important;
    border:1px solid #fecdd3 !important;
    border-left:5px solid #ef4444 !important;
}


/* ===== v5.0.5 — Central de redefinição do sistema ===== */
.redefinicao-sistema-card{
    border-color:#f3c7c7 !important;
}
.redefinicao-sistema-card > .banco-recolhivel-summary{
    background:linear-gradient(135deg,#fffafa 0%,#fff4f4 100%);
}
.redefinicao-sistema-card > .banco-recolhivel-summary .banco-recolhivel-titulo i{
    color:#b42318;
}
.redefinicao-sistema-resumo{
    display:flex;
    align-items:flex-start;
    gap:14px;
    padding:16px;
    border:1px solid #f2c6c6;
    border-radius:14px;
    background:#fff8f8;
    margin-bottom:14px;
}
.redefinicao-sistema-resumo > i{
    flex:0 0 auto;
    width:26px;
    height:26px;
    color:#b42318;
    margin-top:1px;
}
.redefinicao-sistema-resumo h3{
    margin:0 0 5px;
    color:#7f1d1d;
}
.redefinicao-sistema-resumo p{
    margin:0;
    color:#566575;
    line-height:1.55;
}
.redefinicao-sistema-preservacao{
    margin:0 0 16px;
    padding:11px 13px;
    border-radius:11px;
    background:#eef9f8;
    border:1px solid #c8e7e4;
    color:#176a66;
    line-height:1.5;
}
.redefinicao-sistema-abrir{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
}
.modal-redefinicao-sistema-card{
    width:min(680px,100%);
}
.redefinicao-sistema-opcoes{
    display:grid;
    gap:10px;
    margin:0 0 18px;
}
.redefinicao-sistema-opcao{
    position:relative;
    display:grid !important;
    grid-template-columns:22px minmax(0,1fr);
    gap:11px;
    align-items:flex-start;
    padding:13px 14px;
    margin:0 !important;
    border:1px solid #d8e3e8;
    border-radius:13px;
    background:#f8fbfc;
    color:#334155 !important;
    cursor:pointer;
}
.redefinicao-sistema-opcao:hover{
    border-color:#0f9f9a;
    background:#f1fbfa;
}
.redefinicao-sistema-opcao input[type="radio"]{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.redefinicao-sistema-opcao-marcador{
    width:20px;
    height:20px;
    border:2px solid #7c939f;
    border-radius:50%;
    background:#fff;
    box-sizing:border-box;
    position:relative;
    margin-top:1px;
}
.redefinicao-sistema-opcao input[type="radio"]:checked + .redefinicao-sistema-opcao-marcador{
    border-color:#0f9f9a;
    box-shadow:0 0 0 3px rgba(15,159,154,.13);
}
.redefinicao-sistema-opcao input[type="radio"]:checked + .redefinicao-sistema-opcao-marcador::after{
    content:"";
    position:absolute;
    inset:4px;
    border-radius:50%;
    background:#0f9f9a;
}
.redefinicao-sistema-opcao input[type="radio"]:focus-visible + .redefinicao-sistema-opcao-marcador{
    box-shadow:0 0 0 4px rgba(15,159,154,.2);
}
.redefinicao-sistema-opcao strong{
    display:block;
    color:#12366f;
    margin-bottom:3px;
}
.redefinicao-sistema-opcao small{
    display:block;
    color:#607080;
    font-weight:500;
    line-height:1.45;
}
@media screen and (max-width:620px){
    .redefinicao-sistema-resumo{padding:13px;}
    .modal-redefinicao-sistema-card{padding:18px;}
}


/* ===== v5.0.9 — Redefinições separadas ===== */
.redefinicoes-separadas-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:15px}
.redefinicao-acao-card{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid #d8e3e8;border-radius:14px;background:#f8fbfc;min-width:0}
.redefinicao-acao-configuracoes{border-color:#bfe1de;background:#f4fbfa}
.redefinicao-acao-sistema{border-color:#f2c6c6;background:#fff8f8}
.redefinicao-acao-icone{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:#e7f6f4;color:#0b7f7a;font-size:1.05rem}
.redefinicao-acao-sistema .redefinicao-acao-icone{background:#feecec;color:#b42318}
.redefinicao-acao-conteudo{flex:1}
.redefinicao-acao-conteudo h3{margin:0 0 6px;color:#12366f}
.redefinicao-acao-sistema .redefinicao-acao-conteudo h3{color:#7f1d1d}
.redefinicao-acao-conteudo p{margin:0 0 7px;color:#465665;line-height:1.5}
.redefinicao-acao-conteudo small{display:block;color:#607080;font-weight:500;line-height:1.45}
.redefinicao-acao-card .redefinicao-sistema-abrir{align-self:flex-start;margin-top:auto}
.redefinicao-modal-impacto{margin:0 0 16px;padding:12px 13px;border-radius:11px;background:#eef9f8;border:1px solid #c8e7e4;color:#176a66;line-height:1.5}
@media screen and (max-width:820px){.redefinicoes-separadas-grid{grid-template-columns:1fr}}


/* ===== v12.4 — descrições com 3+ linhas justificadas globalmente; retorno visual preservado ===== */
@media screen{
    .descricao-justificada-3-linhas{
        text-align:justify !important;
        text-justify:inter-word;
        hyphens:auto;
        -webkit-hyphens:auto;
    }

    html body.app-layout main.container > [data-aviso-sistema]{
        scroll-margin-top:96px;
        outline:none;
    }

    html body.app-layout main.container > [data-aviso-sistema].aviso-sistema-realce{
        animation:aviso-sistema-realce-v516 .72s ease-in-out 3;
    }
}

@keyframes aviso-sistema-realce-v516{
    0%,100%{transform:translateY(0);filter:brightness(1);box-shadow:0 7px 18px rgba(18,54,111,.06)}
    50%{transform:translateY(-2px);filter:brightness(.98);box-shadow:0 0 0 5px rgba(15,159,154,.18),0 12px 26px rgba(18,54,111,.16)}
}

@media print{
    .descricao-justificada-3-linhas{text-align:initial !important;}
}

/* ===== v5.1.8 — normalização global de checkbox e radio =====
   Impede que controles de marcação herdem largura mínima, preenchimento e sombra
   próprios dos campos de texto, inclusive quando estão dentro de tabelas. */
html body.app-layout input[type="checkbox"]:not(.controle-personalizado-oculto),
html body.app-layout input[type="radio"]:not(.controle-personalizado-oculto){
    -webkit-appearance:auto !important;
    appearance:auto !important;
    width:18px !important;
    min-width:18px !important;
    max-width:18px !important;
    height:18px !important;
    min-height:18px !important;
    max-height:18px !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    flex:0 0 18px !important;
    vertical-align:middle !important;
    accent-color:var(--brand-teal,#0f9f9a) !important;
}

html body.app-layout input[type="checkbox"]:not(.controle-personalizado-oculto):focus,
html body.app-layout input[type="radio"]:not(.controle-personalizado-oculto):focus{
    box-shadow:none !important;
}

html body.app-layout input[type="checkbox"]:not(.controle-personalizado-oculto):focus-visible,
html body.app-layout input[type="radio"]:not(.controle-personalizado-oculto):focus-visible{
    outline:2px solid rgba(15,159,154,.58) !important;
    outline-offset:2px !important;
}

/* ===== v5.2.4 — retorno local sem duplicidade no topo e paleta semântica do sistema =====
   Sucesso usa teal/navy da identidade visual; aviso permanece âmbar e erro vermelho.
   O resultado junto ao botão é o único retorno visual dessas operações. */
html body.app-layout .local-banco-resultado[data-resultado-local]{
    border-radius:16px !important;
    border-width:1px !important;
    border-style:solid !important;
    border-left-width:5px !important;
    box-shadow:0 7px 18px rgba(18,54,111,.06) !important;
    outline:none !important;
}
html body.app-layout .local-banco-resultado[data-resultado-local].ok{
    background:linear-gradient(135deg,#eaf7f6 0%,#f7fbfb 100%) !important;
    color:#087f82 !important;
    border-color:#b7deda !important;
    border-left-color:#0f9f9a !important;
}
html body.app-layout .local-banco-resultado[data-resultado-local].info{
    background:linear-gradient(135deg,#edf6f8 0%,#f8fbfc 100%) !important;
    color:#12366f !important;
    border-color:#cddce7 !important;
    border-left-color:#20b8b1 !important;
}
html body.app-layout .local-banco-resultado[data-resultado-local].aviso,
html body.app-layout .local-banco-resultado[data-resultado-local].warning{
    background:#fff7ed !important;
    color:#9a3412 !important;
    border-color:#fed7aa !important;
    border-left-color:#f97316 !important;
}
html body.app-layout .local-banco-resultado[data-resultado-local].erro,
html body.app-layout .local-banco-resultado[data-resultado-local].error,
html body.app-layout .local-banco-resultado[data-resultado-local].danger{
    background:#fff1f2 !important;
    color:#991b1b !important;
    border-color:#fecdd3 !important;
    border-left-color:#ef4444 !important;
}
html body.app-layout .local-banco-resultado[data-resultado-local] > i{
    color:currentColor !important;
}



/* ===== v5.2.5 — migração acrescentar sem bloqueio por usuário/configuração
   e relatório com rolagem/encaixe seguro ===== */
.postgresql-resultado-conteudo{
    flex:1 1 auto !important;
    min-width:0 !important;
    width:100% !important;
}
.migracao-relatorio-wrap{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    -webkit-overflow-scrolling:touch;
}
.migracao-relatorio-tabela{
    width:max-content !important;
    min-width:100% !important;
}
@media screen and (max-width: 1400px){
    .migracao-relatorio-tabela{
        min-width:860px !important;
    }
}


/* ===== v5.2.7 — centralização apenas das colunas numéricas do relatório de migração ===== */
.migracao-relatorio-tabela th,
.migracao-relatorio-tabela td{
    text-align:center !important;
}
.migracao-relatorio-tabela th:first-child,
.migracao-relatorio-tabela td:first-child{
    text-align:left !important;
}


/* ===== v5.2.8 — texto explicativo PostgreSQL integralmente alinhado à esquerda ===== */
.postgresql-teste-ajuda{
    align-items:flex-start !important;
    justify-content:flex-start !important;
    text-align:left !important;
}
.postgresql-teste-ajuda small{
    display:block !important;
    width:100% !important;
    text-align:left !important;
}


/* ===== v5.7.2 — avisos superiores sem realce/rolagem e resultado local crítico ===== */
html body.app-layout main.container > [data-aviso-sistema],
html body.app-layout main.container > [data-aviso-sistema].aviso-sistema-realce{
    animation:none !important;
    transform:none !important;
}
.resultado-redefinicao-sistema{
    margin-top:14px !important;
}
.resultado-redefinicao-conteudo{
    flex:1 1 auto;
    min-width:0;
}


/* ===== v5.7.5 — canto da arte de login mais arredondado ===== */
.login-page-v422 .login-shell{
    border-radius:34px !important;
}
.login-page-v422 .login-showcase{
    border-radius:34px 0 0 34px !important;
    overflow:hidden !important;
}
.login-page-v422 .login-showcase-art{
    border-radius:34px 0 0 34px !important;
}


/* ===== v5.7.7 — duas opções seguras de retorno PostgreSQL → SQLite ===== */
.retorno-sqlite-opcoes{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    width:100%;
    margin-top:14px;
}
.retorno-sqlite-card{
    min-width:0;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    gap:14px;
    padding:16px;
    border:1px solid #d6e3ea;
    border-radius:16px;
    background:#fff;
}
.retorno-sqlite-card-texto strong{
    display:block;
    color:#12366f;
    line-height:1.35;
    margin-bottom:7px;
}
.retorno-sqlite-card-texto small{
    display:block;
    color:#5b6775;
    line-height:1.5;
}
.retorno-sqlite-copia{
    border-color:#99d8d3;
    background:linear-gradient(135deg,#edf9f8 0%,#ffffff 100%);
}
.retorno-sqlite-recomendado{
    display:inline-block;
    margin-left:6px;
    padding:3px 7px;
    border-radius:999px;
    background:#d9f3ef;
    color:#087f82;
    font-size:11px;
    font-weight:900;
    vertical-align:middle;
}
.retorno-sqlite-button{
    width:100% !important;
    justify-content:center !important;
}
@media screen and (max-width:800px){
    .retorno-sqlite-opcoes{grid-template-columns:1fr;}
}


/* ===== v5.7.8 — paginação completa no topo e no rodapé da listagem do cadastro ===== */
.pagination-registros{
    align-items:center;
    justify-content:flex-end;
    row-gap:10px;
}
.pagination-registros .button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    min-height:40px;
    white-space:nowrap;
}
.pagination-registros .pagination-current{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:0 14px;
    border:1px solid #cfe1e8;
    border-radius:12px;
    background:#eef7f8;
    color:#12366f;
    font-weight:900;
    white-space:nowrap;
}
.pagination-registros .pagination-disabled{
    opacity:.48;
    cursor:not-allowed;
    pointer-events:none;
    user-select:none;
}
.pagination-registros-rodape{
    justify-content:center;
    margin-top:18px;
    padding-top:16px;
    border-top:1px solid #dce8ef;
}
@media screen and (max-width:760px){
    .pagination-registros{
        width:100%;
        justify-content:center;
    }
    .pagination-registros .button,
    .pagination-registros .pagination-current{
        flex:1 1 auto;
        min-width:128px;
    }
}

/* ===== v5.7.0 — paginação completa nas demais listagens administrativas ===== */
.paginacao-lista-cabecalho{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:14px;
    flex-wrap:wrap;
    margin:8px 0 12px;
}
.paginacao-lista-cabecalho .hint{margin:0;}
.paginacao-por-pagina-form{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:9px;
    flex-wrap:wrap;
    margin:10px 0 14px;
}
.paginacao-por-pagina-form label{
    margin:0;
    color:#566575;
    font-weight:800;
}
.paginacao-por-pagina-form select{
    width:auto;
    min-width:90px;
    max-width:110px;
}
.relatorios-card-centralizados .section-header,
.card-historico-alteracoes .section-header,
.card-usuarios-cadastrados .section-header{
    align-items:flex-start;
}
.relatorios-card-centralizados .pagination-registros,
.card-historico-alteracoes .pagination-registros,
.card-sessoes-conectadas .pagination-registros,
.card-usuarios-cadastrados .pagination-registros,
.card-backups-disponiveis .pagination-registros{
    margin-top:10px;
}
@media screen and (max-width:760px){
    .paginacao-lista-cabecalho,
    .paginacao-por-pagina-form{
        justify-content:center;
        text-align:center;
    }
}


/* ===== v5.7.1 — paginação sem encavalamento e Nome completo obrigatório =====
   Os controles superiores ocupam uma faixa própria, centralizada e com
   espaçamento antes da tabela. O cadastro de usuários mantém campos e botão
   alinhados em uma grade responsiva. */
.paginacao-faixa-separada{
    display:block !important;
    width:100% !important;
    clear:both !important;
    margin:14px 0 20px !important;
    padding:0 !important;
}
.paginacao-faixa-separada > .pagination-registros{
    display:flex !important;
    width:100% !important;
    float:none !important;
    clear:both !important;
    position:relative !important;
    justify-content:center !important;
    align-items:center !important;
    margin:0 !important;
    padding:0 !important;
}
.paginacao-faixa-separada + .table-wrap{
    clear:both !important;
    margin-top:0 !important;
}
.card-sessoes-conectadas .paginacao-lista-cabecalho,
.card-backups-disponiveis .paginacao-lista-cabecalho{
    margin-bottom:0 !important;
}

html body.app-layout .card-novo-usuario form.form-novo-usuario-inline{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(180px,1fr)) !important;
    gap:16px !important;
    align-items:end !important;
    justify-content:stretch !important;
    width:100% !important;
}
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .campo-novo-usuario{
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
}
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario{
    display:flex !important;
    align-items:flex-end !important;
    justify-content:center !important;
    align-self:end !important;
    width:100% !important;
    height:42px !important;
    min-height:42px !important;
    margin:0 !important;
    padding:0 !important;
}
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario > .botao-criar-usuario{
    width:100% !important;
    max-width:230px !important;
}
html body.app-layout .card-usuarios-cadastrados .usuario-editor-box .usuario-dados-grid{
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    align-items:end !important;
}

@media screen and (max-width:1200px){
    html body.app-layout .card-novo-usuario form.form-novo-usuario-inline{
        grid-template-columns:repeat(3,minmax(180px,1fr)) !important;
    }
    html body.app-layout .card-usuarios-cadastrados .usuario-editor-box .usuario-dados-grid{
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    }
}
@media screen and (max-width:820px){
    html body.app-layout .card-novo-usuario form.form-novo-usuario-inline{
        grid-template-columns:repeat(2,minmax(160px,1fr)) !important;
    }
    html body.app-layout .card-usuarios-cadastrados .usuario-editor-box .usuario-dados-grid{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }
}
@media screen and (max-width:560px){
    .paginacao-faixa-separada > .pagination-registros{
        justify-content:center !important;
    }
    html body.app-layout .card-novo-usuario form.form-novo-usuario-inline,
    html body.app-layout .card-usuarios-cadastrados .usuario-editor-box .usuario-dados-grid{
        grid-template-columns:1fr !important;
    }
    html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario > .botao-criar-usuario{
        max-width:280px !important;
    }
}

/* ===== v5.7.2 — botão Criar usuário alinhado à grade =====
   Correção exclusivamente visual no card Novo usuário:
   - aproxima o botão do campo ao lado usando apenas o gap normal da grade;
   - ocupa toda a largura da própria coluna, como os inputs e selects;
   - preserva altura, responsividade, validações e rotinas de banco. */
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario{
    justify-content:flex-start !important;
}
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario > .botao-criar-usuario{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
}



/* ===== v5.7.3 — hierarquia visual da paginação na tela Usuários =====
   O controle superior acompanha as ações da listagem à direita e deixa de
   competir visualmente com os títulos. O controle inferior continua
   centralizado para encerrar a tabela. */
html body.app-layout .card-sessoes-conectadas .paginacao-faixa-superior-direita > .pagination-registros,
html body.app-layout .card-usuarios-cadastrados .paginacao-faixa-superior-direita > .pagination-registros{
    justify-content:flex-end !important;
}
html body.app-layout .card-sessoes-conectadas .pagination-registros-rodape,
html body.app-layout .card-usuarios-cadastrados .pagination-registros-rodape{
    justify-content:center !important;
}
@media screen and (max-width:560px){
    html body.app-layout .card-sessoes-conectadas .paginacao-faixa-superior-direita > .pagination-registros,
    html body.app-layout .card-usuarios-cadastrados .paginacao-faixa-superior-direita > .pagination-registros{
        justify-content:flex-end !important;
    }
}

/* ===== v5.7.5 — hierarquia global das paginações =====
   Em todas as telas paginadas:
   - o primeiro bloco, antes da tabela, fica alinhado à direita;
   - o segundo bloco, após a tabela, permanece centralizado;
   - a regra também prevalece nas faixas separadas e em telas estreitas. */
html body.app-layout .pagination-registros-topo,
html body.app-layout .paginacao-faixa-separada > .pagination-registros-topo{
    justify-content:flex-end !important;
}
html body.app-layout .pagination-registros-rodape{
    justify-content:center !important;
}
@media screen and (max-width:760px){
    html body.app-layout .pagination-registros-topo,
    html body.app-layout .paginacao-faixa-separada > .pagination-registros-topo{
        width:100% !important;
        justify-content:flex-end !important;
    }
    html body.app-layout .pagination-registros-rodape{
        width:100% !important;
        justify-content:center !important;
    }
}

/* ===== v5.7.6 — número centralizado nos controles de quantidade por página =====
   Padroniza todos os seletores usados para definir a quantidade listada:
   - centraliza visualmente o número selecionado;
   - usa espaço interno simétrico, compensando a seta nativa à direita;
   - centraliza também as opções abertas e os campos de configuração
     "Registros por página";
   - não altera filtros, paginação, consultas ou quantidade efetivamente exibida. */
html body.app-layout select[name="per_page"],
html body.app-layout select[name="sessoes_per_page"],
html body.app-layout select[name="usuarios_per_page"],
html body.app-layout select[name="backups_per_page"],
html body.app-layout select[name="registros_por_pagina"]{
    text-align:center !important;
    text-align-last:center !important;
    padding-left:30px !important;
    padding-right:30px !important;
    font-variant-numeric:tabular-nums !important;
}
html body.app-layout select[name="per_page"] option,
html body.app-layout select[name="sessoes_per_page"] option,
html body.app-layout select[name="usuarios_per_page"] option,
html body.app-layout select[name="backups_per_page"] option,
html body.app-layout select[name="registros_por_pagina"] option{
    text-align:center !important;
}



/* ===== v5.7.7 — seletores independentes em Relatórios e registros do agendamento =====
   - cada uma das quatro tabelas de Relatórios possui quantidade por página própria;
   - Registros do agendamento de backup recebe paginação real e seletor próprio;
   - todos os novos números permanecem visualmente centralizados;
   - paginação superior à direita e inferior centralizada preservadas. */
html body.app-layout select[name="por_pagina30"],
html body.app-layout select[name="por_pagina60"],
html body.app-layout select[name="por_pagina_sem_resp"],
html body.app-layout select[name="por_pagina_sem_email"],
html body.app-layout select[name="agendamento_per_page"]{
    text-align:center !important;
    text-align-last:center !important;
    padding-left:30px !important;
    padding-right:30px !important;
    font-variant-numeric:tabular-nums !important;
}
html body.app-layout select[name="por_pagina30"] option,
html body.app-layout select[name="por_pagina60"] option,
html body.app-layout select[name="por_pagina_sem_resp"] option,
html body.app-layout select[name="por_pagina_sem_email"] option,
html body.app-layout select[name="agendamento_per_page"] option{
    text-align:center !important;
}
.card-registros-agendamento .paginacao-lista-cabecalho,
.relatorios-card-centralizados .paginacao-lista-cabecalho{
    margin-bottom:0 !important;
}

/* ===== v5.7.9 — seletores neutros e quantidade dentro da área Registros =====
   - remove o componente visual colorido da v548 e restaura os selects nativos;
   - mantém fundo branco, borda neutra e seta padrão do sistema;
   - move o controle de quantidade do bloco Filtros para o cabeçalho de Registros;
   - preserva filtros, paginação e centralização dos números. */
html body.app-layout .card-registros-cadastro > .section-header{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    align-items:end !important;
    column-gap:18px !important;
    row-gap:12px !important;
}
html body.app-layout .card-registros-cadastro > .section-header > .registros-por-pagina-form{
    grid-column:2 !important;
    justify-self:end !important;
    margin:0 !important;
    padding:0 !important;
}
html body.app-layout .card-registros-cadastro > .section-header > .pagination-registros-topo{
    grid-column:1 / -1 !important;
    width:100% !important;
    margin:0 !important;
    justify-content:flex-end !important;
}
html body.app-layout .registros-por-pagina-form select{
    width:90px !important;
    min-width:90px !important;
    max-width:90px !important;
    background-color:#ffffff !important;
    color:var(--text) !important;
    border-color:#cddce7 !important;
    box-shadow:none !important;
}
html body.app-layout .registros-por-pagina-form select option{
    text-align:center !important;
}
@media screen and (max-width:760px){
    html body.app-layout .card-registros-cadastro > .section-header{
        grid-template-columns:1fr !important;
    }
    html body.app-layout .card-registros-cadastro > .section-header > .registros-por-pagina-form,
    html body.app-layout .card-registros-cadastro > .section-header > .pagination-registros-topo{
        grid-column:1 !important;
        justify-self:stretch !important;
        width:100% !important;
    }
    html body.app-layout .card-registros-cadastro > .section-header > .registros-por-pagina-form{
        justify-content:flex-end !important;
    }
}

/* ===== v5.7.2 — listas centralizadas sem substituir nem colorir o seletor =====
   O campo fechado continua sendo o <select> nativo já existente, com exatamente
   o mesmo fundo, borda, seta, altura e estilos do sistema. Somente a lista aberta
   dos selects cujo conteúdo já é centralizado usa uma camada neutra para garantir
   opções centralizadas no Windows/Edge. Não há botão visual substituto. */
.select-lista-centralizada-v552-menu{
    position:fixed;
    z-index:1000000;
    display:flex;
    flex-direction:column;
    max-height:280px;
    overflow-y:auto;
    box-sizing:border-box;
    padding:4px 0;
    border:1px solid #d1d5db;
    border-radius:10px;
    background:#ffffff;
    color:var(--text);
    box-shadow:0 8px 20px rgba(15,23,42,.12);
}
.select-lista-centralizada-v552-opcao{
    display:flex;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:36px;
    box-sizing:border-box;
    margin:0;
    padding:8px 12px;
    border:0;
    border-radius:0;
    outline:0;
    background:#ffffff;
    color:inherit;
    box-shadow:none;
    font:inherit;
    line-height:1.25;
    cursor:default;
    white-space:normal;
    overflow-wrap:anywhere;
    text-align:center;
}
.select-lista-centralizada-v552-opcao:hover:not([aria-disabled="true"]),
.select-lista-centralizada-v552-opcao:focus-visible:not([aria-disabled="true"]){
    background:#ffffff;
    color:inherit;
    outline:0;
    box-shadow:inset 0 0 0 1px #d1d5db;
}
.select-lista-centralizada-v552-opcao.selecionada{
    background:#ffffff;
    color:inherit;
    font-weight:800;
}
.select-lista-centralizada-v552-opcao[aria-disabled="true"]{
    cursor:not-allowed;
    opacity:.48;
}
@media screen and (max-width:560px){
    .select-lista-centralizada-v552-menu{max-height:240px;}
}

/* Botão Criar usuário novamente compacto e proporcional, sem ocupar a coluna. */
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario{
    width:auto !important;
    min-width:0 !important;
    justify-self:start !important;
    justify-content:flex-start !important;
}
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario > .botao-criar-usuario{
    width:auto !important;
    min-width:148px !important;
    max-width:190px !important;
    padding-left:22px !important;
    padding-right:22px !important;
}
@media screen and (max-width:560px){
    .select-centralizado-v550-menu{max-height:240px;}
    html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario{
        width:100% !important;
        justify-self:stretch !important;
        justify-content:center !important;
    }
    html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario > .botao-criar-usuario{
        width:auto !important;
        max-width:190px !important;
    }
}


/* ===== v5.7.1 — padrão geral flexível de registros por página =====
   A configuração operacional define o valor inicial das listagens, sem
   bloquear ou sombrear os seletores locais. O campo de configuração usa
   as mesmas opções e a mesma centralização visual das páginas. */


/* ===== v5.7.5 — quantidade por página no bloco correto da listagem =====
   - a consulta da Lixeira volta a conter somente pesquisa e ações de filtro;
   - o seletor Registros por página pertence ao card Registros apagados;
   - contagem, seletor, paginação superior e tabela permanecem no mesmo bloco;
   - o padrão das demais listagens foi auditado e preservado. */
html body.app-layout .card-lixeira-registros .paginacao-lista-cabecalho{
    margin-bottom:0 !important;
}
html body.app-layout .card-lixeira-registros .paginacao-faixa-separada{
    margin-top:14px !important;
}

/* ===== Sistema de RH v1.0.0 ===== */
.rh-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin:0 0 18px}.rh-kpi{background:#fff;border:1px solid #dfe5ea;border-radius:14px;padding:16px;box-shadow:0 4px 14px rgba(15,23,42,.05)}.rh-kpi span{display:block;font-size:.82rem;color:#64748b;margin-bottom:5px}.rh-kpi strong{font-size:1.65rem;line-height:1.1;color:#0f172a}.rh-kpi small{display:block;margin-top:4px;color:#64748b}.rh-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}.rh-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.rh-form-grid.compact{grid-template-columns:2fr 1.3fr 1.3fr auto;align-items:end}.rh-form-grid label,.rh-mini-form label,.rh-form-inline label,.rh-access-form>div>label{display:block;font-weight:600;font-size:.85rem;color:#334155;margin-bottom:5px}.rh-form-grid input,.rh-form-grid select,.rh-form-grid textarea,.rh-mini-form input,.rh-mini-form select,.rh-form-inline input,.rh-form-inline select,.rh-access-form select{width:100%;box-sizing:border-box}.rh-form-grid .span-2{grid-column:span 2}.rh-form-actions{display:flex;align-items:end;gap:8px}.rh-table-wrap{overflow:auto;margin:8px 0 14px}.rh-table-wrap .table{min-width:620px}.rh-profile-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.rh-profile-head h2{margin:2px 0 4px}.rh-profile-head p{margin:0;color:#64748b}.rh-eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:700;color:#64748b}.rh-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rh-actions form{margin:0}.rh-tabs{position:sticky;top:0;z-index:5;background:#f8fafc;padding:9px;border:1px solid #e2e8f0;border-radius:12px;display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}.rh-tabs a{text-decoration:none;padding:7px 10px;border-radius:8px;background:white;border:1px solid #e2e8f0;color:#334155;font-weight:600;font-size:.84rem}.rh-anchor{scroll-margin-top:80px}.rh-mini-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:14px;display:grid;gap:8px}.rh-mini-form h4{margin:0 0 4px}.rh-form-inline{display:flex;gap:10px;align-items:end;flex-wrap:wrap;padding-top:8px;border-top:1px solid #eef2f7}.rh-form-inline label{min-width:130px}.rh-form-inline .grow{flex:1;min-width:220px}.rh-icon-danger{border:0;background:#fee2e2;color:#991b1b;border-radius:7px;width:30px;height:30px;font-weight:800;cursor:pointer}.rh-readonly-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.rh-readonly-grid div{padding:10px;border:1px solid #e2e8f0;border-radius:10px}.rh-readonly-grid b,.rh-readonly-grid span{display:block}.rh-readonly-grid b{font-size:.75rem;color:#64748b;margin-bottom:3px}.rh-access-card{margin-bottom:14px}.rh-access-form{display:grid;grid-template-columns:1.2fr 2fr 2fr auto;gap:14px;align-items:start}.rh-check-grid{max-height:170px;overflow:auto;border:1px solid #e2e8f0;border-radius:10px;padding:8px;background:#f8fafc}.rh-check{display:block;padding:5px 3px;font-size:.84rem}.rh-check input{width:auto;margin-right:5px}.rh-filter-card{margin-bottom:16px}
@media screen and (max-width:1000px){.rh-grid-2{grid-template-columns:1fr}.rh-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rh-access-form{grid-template-columns:1fr 1fr}.rh-form-grid.compact{grid-template-columns:1fr 1fr}.rh-readonly-grid{grid-template-columns:1fr 1fr}}
@media screen and (max-width:650px){.rh-form-grid,.rh-form-grid.compact,.rh-access-form,.rh-readonly-grid{grid-template-columns:1fr}.rh-form-grid .span-2{grid-column:span 1}.rh-profile-head{align-items:flex-start;flex-direction:column}.rh-form-inline{align-items:stretch}.rh-form-inline label{width:100%}}
@media print{.rh-tabs,.rh-form-grid,.rh-mini-form,.rh-form-inline,.rh-actions,.rh-icon-danger{display:none!important}.rh-grid-2{display:block}.rh-anchor{break-inside:avoid}}

/* ===== Sistema de RH v1.4.0 / v005 ===== */
.rh-status{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:.76rem;font-weight:700;background:#e2e8f0;color:#334155;white-space:nowrap}
.rh-status-ativo,.rh-status-aprovada{background:#dcfce7;color:#166534}.rh-status-afastado,.rh-status-licença,.rh-status-pendente{background:#fef3c7;color:#92400e}.rh-status-férias{background:#dbeafe;color:#1d4ed8}.rh-status-readaptado{background:#ede9fe;color:#6d28d9}.rh-status-inativo,.rh-status-desligado,.rh-status-rejeitada{background:#fee2e2;color:#991b1b}
.rh-alert{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.76rem;font-weight:700}.rh-alert-info{background:#dbeafe;color:#1d4ed8}.rh-alert-atencao{background:#fef3c7;color:#92400e}.rh-alert-erro{background:#fee2e2;color:#991b1b}
.rh-help{padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;color:#475569;font-size:.86rem;line-height:1.45}
.rh-calendar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.rh-calendar-month{margin:0}.rh-calendar-list{display:grid;gap:7px}.rh-calendar-event{display:block;text-decoration:none;color:#0f172a;border:1px solid #e2e8f0;border-radius:9px;padding:9px;background:#fff}.rh-calendar-event:hover{background:#f8fafc;border-color:#cbd5e1}.rh-calendar-event b,.rh-calendar-event span,.rh-calendar-event small{display:block}.rh-calendar-event span{margin:2px 0;font-size:.88rem}.rh-calendar-event small{color:#64748b}.rh-decision-form{display:grid;grid-template-columns:minmax(160px,1fr) auto auto;gap:6px;min-width:440px}.rh-decision-form input{min-width:160px}.muted{color:#64748b;font-size:.86rem}
@media screen and (max-width:1100px){.rh-calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media screen and (max-width:700px){.rh-calendar-grid{grid-template-columns:1fr}.rh-decision-form{grid-template-columns:1fr;min-width:230px}}

/* RH v006 */
.login-shell.login-shell-single{grid-template-columns:minmax(320px,560px)!important;justify-content:center!important;align-items:center!important;max-width:760px!important;margin:0 auto!important}
.login-shell.login-shell-single .login-panel{width:100%!important}
.rh-data-notice{border:1px solid #c8ced8;background:#f7f9fc;border-radius:10px;padding:14px 16px;margin:18px 0;font-size:.92rem;line-height:1.45}
.rh-data-notice strong{display:block;margin-bottom:4px}
.rh-char-counter{display:block;text-align:right;font-size:.78rem;color:#667085;margin-top:3px}
.rh-upload-help{font-size:.8rem;color:#667085;margin-top:4px}
@media print{.no-print{display:none!important}.rh-data-notice{break-inside:avoid}}


/* v013 — login compacto, versão somente no rodapé e anexos mais visíveis. */
.auth-version-footer{
    position:fixed; left:0; right:0; bottom:10px; text-align:center;
    font-size:12px; color:var(--text-muted,#6b7280); pointer-events:none;
}
.login-shell-single{max-width:560px !important; width:min(560px,calc(100vw - 28px)) !important; margin:auto !important;}
.login-shell-single .login-panel{width:100% !important; padding:18px !important;}
.login-shell-single .login-card{width:100% !important; max-width:480px !important; margin:auto !important;}
.rh-upload-field{border:1px dashed rgba(15,118,110,.38);border-radius:12px;padding:10px 12px;background:rgba(15,118,110,.035);}
.rh-upload-field label{display:flex;align-items:center;gap:8px;font-weight:700;}
.rh-upload-field input[type="file"]{width:100%;margin-top:7px;}
.rh-upload-field small{display:block;margin-top:5px;line-height:1.35;}


/* v014 — refinamento visual do login e padronização dos módulos RH novos. */
.login-page .login-shell-single{min-height:100vh;padding:22px 16px;box-sizing:border-box;}
.login-page .login-card-wide{width:min(420px,calc(100vw - 32px))!important;max-width:420px!important;padding:24px 26px!important;border-radius:18px!important;}
.login-page .login-card-top{gap:14px!important;margin-bottom:14px!important;}
.login-page .login-brand-integrated{gap:11px!important;align-items:center!important;}
.login-page .login-brand-integrated img{width:48px!important;height:48px!important;flex:0 0 48px!important;}
.login-page .login-brand-text{display:flex!important;flex-direction:column!important;gap:1px!important;line-height:1.04!important;white-space:nowrap!important;}
.login-page .login-brand-text strong{display:block!important;font-size:1rem!important;letter-spacing:.035em!important;white-space:nowrap!important;}
.login-page .login-brand-text .login-brand-highlight{font-size:1.12rem!important;}
.login-page .login-title-wrap h2{font-size:1.35rem!important;margin:0 0 4px!important;}
.login-page .login-title-wrap p{font-size:.9rem!important;line-height:1.42!important;margin:0!important;}
.login-page .login-form{gap:8px!important;}
.login-page .login-form label{margin-top:2px!important;}
.login-page .input-with-icon{min-height:44px!important;}
.login-page .login-submit-v422{min-height:44px!important;margin-top:8px!important;}
.login-page .login-security-v422{margin-top:12px!important;padding-top:10px!important;}

.recovery-page-v014{min-height:100vh;}
.recovery-shell-v014{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:22px 16px;box-sizing:border-box;}
.recovery-card-v014{width:min(440px,calc(100vw - 32px));padding:24px 26px;border-radius:18px;}
.recovery-top-v014{display:grid;gap:13px;margin-bottom:14px;text-align:center;}
.recovery-brand-v014{display:flex;justify-content:center;align-items:center;gap:11px;}
.recovery-brand-v014 img{width:48px;height:48px;object-fit:contain;}
.recovery-brand-text-v014{display:flex;flex-direction:column;text-align:left;line-height:1.04;white-space:nowrap;color:#12366f;font-weight:800;letter-spacing:.035em;}
.recovery-brand-highlight-v014{color:#087f82;font-size:1.08rem;}
.recovery-title-v014 h2{margin:3px 0 4px;font-size:1.35rem;}
.recovery-title-v014 p{margin:0;font-size:.9rem;line-height:1.42;}
.recovery-form-v014{gap:8px;}
.recovery-input-v014{min-height:44px;}
.recovery-password-v014{position:relative;}
.recovery-password-toggle-v014{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:36px!important;height:34px!important;min-height:34px!important;padding:0!important;margin:0!important;background:transparent!important;color:#52606d!important;box-shadow:none!important;}
.recovery-submit-v014{min-height:44px!important;margin-top:8px!important;}
.recovery-rule-v014{margin:7px 0!important;font-size:.86rem!important;}
.recovery-actions-v014{margin-top:6px!important;}
.recovery-external-v014{margin-top:14px;border-top:1px solid #dce7e9;padding-top:12px;color:#566575;}
.recovery-external-v014 summary{cursor:pointer;font-weight:800;color:#12366f;text-align:center;}
.recovery-external-form-v014{margin-top:12px;}

/* Escopo visual restrito aos módulos funcionais indicados nesta seção. */
.rh-modern-page .card{text-align:center;}
.rh-modern-page .card .card-header,.rh-modern-page .card .section-header{justify-content:center;text-align:center;}
.rh-modern-page .card .card-header>div,.rh-modern-page .card .section-header>div{margin-inline:auto;text-align:center;}
.rh-modern-page .card p,.rh-modern-page .card .hint{text-align:center;}
.rh-modern-page .card label{display:block;text-align:center;}
.rh-modern-page .rh-form-grid{align-items:end!important;gap:14px!important;margin-bottom:20px!important;}
.rh-modern-page .rh-form-grid>div{min-width:0;}
.rh-modern-page .rh-form-grid input,.rh-modern-page .rh-form-grid select,.rh-modern-page .rh-form-grid textarea{width:100%;min-height:44px;box-sizing:border-box;}
.rh-modern-page .rh-form-actions{display:flex;align-items:flex-end;justify-content:center;min-height:44px;}
.rh-modern-page .rh-form-actions .mini-action,.rh-modern-page form .mini-action,.rh-modern-page form button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 16px;box-sizing:border-box;white-space:nowrap;}
.rh-modern-page .rh-table-wrap{margin-top:14px;}
.rh-modern-page table thead th{text-align:center!important;vertical-align:middle!important;}
.rh-modern-page table tbody td{text-align:center!important;vertical-align:middle!important;}
.rh-modern-page table tbody td:first-child{text-align:left!important;}
.rh-modern-page table tbody tr td[colspan]{text-align:center!important;}

/* Ajustes específicos da área de Usuários solicitados na v014. */
.card-novo-usuario .form-novo-usuario-inline{align-items:end!important;gap:14px!important;}
.card-novo-usuario .form-novo-usuario-inline>div{justify-content:flex-end!important;}
.card-novo-usuario .form-novo-usuario-inline input,.card-novo-usuario .form-novo-usuario-inline select,.card-novo-usuario .form-novo-usuario-inline button{min-height:44px!important;box-sizing:border-box;}
.card-novo-usuario .ajuste-botao-criar-usuario{display:flex!important;align-items:flex-end!important;justify-content:center!important;padding-top:0!important;}
.card-novo-usuario .botao-criar-usuario{height:44px!important;min-height:44px!important;margin:0!important;}
/* Complemento v014 — conteúdo centralizado nos controles dos módulos novos. */
.rh-modern-page .rh-form-grid input,
.rh-modern-page .rh-form-grid select,
.rh-modern-page .rh-form-grid textarea,
.rh-modern-page .card input,
.rh-modern-page .card select,
.rh-modern-page .card textarea{text-align:center;text-align-last:center;}
.rh-modern-page .rh-form-actions .mini-action{min-width:112px;}
.rh-modern-page .mini-action,
.rh-modern-page .mini-danger,
.rh-modern-page a.mini-action,
.rh-modern-page button.mini-action{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 16px;box-sizing:border-box;white-space:nowrap;}


/* v015 — organização da ficha funcional e consistência visual dos novos módulos. */
.rh-modern-page .rh-submit-full{grid-column:1/-1!important;display:flex!important;justify-content:center!important;align-items:center!important;margin-top:2px!important;}
.rh-modern-page .rh-primary-form-button{min-width:260px!important;height:44px!important;min-height:44px!important;}
.rh-modern-page .rh-upload-field input[type="file"]{display:block;width:100%!important;min-height:46px!important;margin-top:8px!important;padding:0!important;border:1px solid #cfd9e3!important;border-radius:10px!important;background:#fff!important;color:#52606d!important;text-align:left!important;overflow:hidden!important;}
.rh-modern-page .rh-upload-field input[type="file"]::file-selector-button{height:44px;border:0;border-right:1px solid #cfd9e3;background:#eef6f6;color:#0f6f70;font-weight:800;padding:0 16px;margin-right:12px;cursor:pointer;}
.rh-modern-page .rh-upload-field input[type="file"]::file-selector-button:hover{background:#e2f1f1;}
.rh-profile-nav{top:8px!important;align-items:center!important;box-shadow:0 6px 18px rgba(15,23,42,.06);}
.rh-profile-nav-title{font-size:.78rem;font-weight:800;color:#52606d;text-transform:uppercase;letter-spacing:.055em;padding:0 6px;}
.rh-profile-nav .rh-nav-collapse-all{margin-left:auto;border:1px solid #d9e2ea;background:#fff;color:#334155;border-radius:8px;min-height:34px;padding:0 10px;font-weight:700;cursor:pointer;}
.rh-collapsible-section>.card-header{position:relative;padding-right:48px!important;cursor:pointer;}
.rh-collapsible-section>.card-header .rh-section-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:1px solid #d9e2ea;border-radius:9px;background:#fff;color:#0f6f70;font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.rh-collapsible-section.is-collapsed>.rh-section-body{display:none!important;}
.rh-collapsible-section.is-collapsed{padding-bottom:0!important;}
.rh-collapsible-section.is-collapsed>.card-header{margin-bottom:0!important;}
.rh-collapsible-section>.rh-section-body{padding-top:2px;}
.rh-modern-page select[data-rh-jornada]{font-weight:700;}
.rh-modern-page input[data-rh-carga-diaria][readonly]{background:#f3f7f8!important;color:#334155!important;font-weight:700;cursor:not-allowed;}
@media screen and (max-width:700px){.rh-profile-nav-title{width:100%;text-align:center}.rh-profile-nav .rh-nav-collapse-all{margin-left:0}.rh-modern-page .rh-primary-form-button{width:100%!important;min-width:0!important;}}

/* ================================================================
   RH v017 - Central do Vinculo
   Reorganizacao visual da ficha: um modulo por vez no painel.
   ================================================================ */
.rh-vinculo-workspace{display:grid;grid-template-columns:minmax(210px,250px) minmax(0,1fr);gap:18px;align-items:start;margin:0 0 22px;}
.rh-vinculo-sidebar{position:sticky;top:8px;z-index:6;align-self:start;max-height:calc(100vh - 18px);overflow:auto;scrollbar-width:thin;}
.rh-vinculo-workspace .rh-profile-nav{position:static!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;flex-wrap:nowrap!important;gap:7px!important;margin:0!important;padding:12px!important;background:#f8fafc!important;border:1px solid #dce5ec!important;border-radius:14px!important;box-shadow:0 7px 22px rgba(15,23,42,.06)!important;}
.rh-vinculo-workspace .rh-profile-nav-title{width:auto!important;text-align:left!important;padding:3px 7px 8px!important;color:#425466!important;border-bottom:1px solid #e2e8f0;margin-bottom:2px;}
.rh-vinculo-workspace .rh-profile-nav a{display:flex;align-items:center;min-height:40px;padding:8px 11px!important;border-radius:9px!important;border:1px solid transparent!important;background:transparent!important;color:#334155!important;font-size:.84rem!important;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease;}
.rh-vinculo-workspace .rh-profile-nav a:hover{background:#fff!important;border-color:#d8e2e9!important;color:#0f6f70!important;transform:translateX(2px);}
.rh-vinculo-workspace .rh-profile-nav a.is-active{background:#e8f4f3!important;border-color:#bcdedb!important;color:#0b6667!important;font-weight:800!important;box-shadow:inset 3px 0 0 #0f6f70;}
.rh-vinculo-workspace .rh-profile-nav .rh-profile-back{margin-bottom:4px;background:#fff!important;border-color:#d8e2e9!important;color:#475569!important;}
.rh-vinculo-panel{min-width:0;border:1px solid #dce5ec;border-radius:16px;background:#f8fafc;padding:14px;box-shadow:0 8px 24px rgba(15,23,42,.055);}
.rh-vinculo-panel-top{display:flex;justify-content:space-between;align-items:center;gap:14px;min-height:48px;padding:2px 4px 12px;margin-bottom:4px;border-bottom:1px solid #e2e8f0;}
.rh-vinculo-panel-top>div{display:flex;flex-direction:column;gap:1px;}
.rh-vinculo-panel-eyebrow{font-size:.7rem;letter-spacing:.07em;text-transform:uppercase;font-weight:800;color:#718096;}
.rh-vinculo-panel-title{font-size:1.08rem;color:#17324d;}
.rh-vinculo-panel-hint{font-size:.78rem;color:#718096;text-align:right;max-width:300px;}
.rh-vinculo-panel .rh-workspace-section{margin:14px 0 0!important;box-shadow:none!important;border-color:#dfe6ec!important;background:#fff!important;}
.rh-vinculo-panel .rh-workspace-section[hidden]{display:none!important;}
.rh-vinculo-panel .rh-workspace-section>.card-header{cursor:default!important;padding-right:inherit!important;}
.rh-vinculo-panel .rh-workspace-section>.card-header::after{display:none!important;}
.rh-vinculo-panel .rh-section-toggle,.rh-vinculo-workspace .rh-nav-collapse-all{display:none!important;}
.rh-vinculo-panel .rh-workspace-section>.rh-section-body{display:block!important;padding-top:0!important;}
@media screen and (max-width:980px){
  .rh-vinculo-workspace{grid-template-columns:1fr;gap:12px;}
  .rh-vinculo-sidebar{position:sticky;top:0;max-height:none;overflow:visible;z-index:7;}
  .rh-vinculo-workspace .rh-profile-nav{flex-direction:row!important;overflow-x:auto!important;white-space:nowrap!important;align-items:center!important;padding:9px!important;scrollbar-width:thin;}
  .rh-vinculo-workspace .rh-profile-nav-title{display:none!important;}
  .rh-vinculo-workspace .rh-profile-nav a{flex:0 0 auto;min-height:36px;}
  .rh-vinculo-workspace .rh-profile-nav .rh-profile-back{margin-bottom:0;}
  .rh-vinculo-panel-hint{display:none;}
}
@media screen and (max-width:650px){
  .rh-vinculo-panel{padding:10px;border-radius:12px;}
  .rh-vinculo-panel-top{align-items:flex-start;}
}
@media print{.rh-vinculo-sidebar,.rh-vinculo-panel-top{display:none!important}.rh-vinculo-workspace{display:block!important}.rh-vinculo-panel{border:0!important;box-shadow:none!important;padding:0!important;background:#fff!important}.rh-vinculo-panel .rh-workspace-section{display:block!important;border:0!important}}


/* v018 — refinamento final do login e recuperação unificada por CPF + e-mail. */
.login-page .login-shell-single{
    max-width:430px!important;
    width:min(430px,calc(100vw - 24px))!important;
    padding:12px!important;
}
.login-page .login-shell-single .login-panel{padding:8px!important;}
.login-page .login-card-wide{
    width:min(370px,calc(100vw - 24px))!important;
    max-width:370px!important;
    padding:18px 22px!important;
    border-radius:16px!important;
}
.login-page .login-card-top{gap:10px!important;margin-bottom:10px!important;}
.login-page .login-brand-integrated{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:12px!important;
    margin-bottom:2px!important;
}
.login-page .login-brand-integrated img{
    width:150px!important;
    height:150px!important;
    flex:0 0 150px!important;
    object-fit:contain!important;
}
.login-page .login-brand-text strong{
    font-size:.94rem!important;
    line-height:1.05!important;
    white-space:nowrap!important;
}
.login-page .login-brand-text .login-brand-highlight{font-size:1.06rem!important;}
.login-page .login-title-wrap h2{font-size:1.2rem!important;margin:0 0 3px!important;}
.login-page .login-title-wrap p{
    display:block!important;
    max-height:none!important;
    overflow:visible!important;
    white-space:normal!important;
    text-overflow:clip!important;
    font-size:.82rem!important;
    line-height:1.35!important;
    margin:0!important;
}
.login-page .login-form{gap:6px!important;}
.login-page .input-with-icon{min-height:40px!important;}
.login-page .login-submit-v422{min-height:40px!important;margin-top:6px!important;}
.login-page .login-security-v422{
    margin-top:9px!important;
    padding-top:8px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
}
.login-page .login-security-v422 span{white-space:nowrap!important;}

.recovery-page-v014 .recovery-brand-v014{
    justify-content:flex-start!important;
    text-align:left!important;
}
.recovery-page-v014 .recovery-brand-v014 img{
    width:58px!important;
    height:58px!important;
    flex:0 0 58px!important;
    object-fit:contain!important;
}
.recovery-page-v014 .recovery-top-v014{text-align:left!important;}
.recovery-page-v014 .recovery-title-v014{text-align:left!important;}

@media screen and (max-width:430px){
    .login-page .login-card-wide{width:calc(100vw - 20px)!important;padding:16px 18px!important;}
    .login-page .login-brand-integrated img{width:118px!important;height:118px!important;flex-basis:118px!important;}
    .login-page .login-brand-text strong{font-size:.86rem!important;}
    .login-page .login-brand-text .login-brand-highlight{font-size:.98rem!important;}
}

/* ================================================================
   RH v019 — correção de alinhamentos, paginação e Central do Vínculo.
   Escopo: somente páginas RH novas; tabelas existentes não são reformatadas.
   ================================================================ */

/* Recuperação/redefinição: volta ao fundo institucional padrão, sem versão adicional na tela. */
.recovery-page-v426.recovery-page-v014{
    background:linear-gradient(145deg,#e3f3f4 0%,#f8fbfc 48%,#dff2f1 100%) !important;
}
.recovery-page-v426.recovery-page-v014::before,
.recovery-page-v426.recovery-page-v014::after{display:none!important;content:none!important;}

/* A v014 havia centralizado conteúdo demais. Reverte somente esse excesso. */
.rh-modern-page .card{text-align:left!important;}
.rh-modern-page .card .card-header,
.rh-modern-page .card .section-header{
    justify-content:space-between!important;
    text-align:left!important;
}
.rh-modern-page .card .card-header>div,
.rh-modern-page .card .section-header>div{
    margin-inline:0!important;
    text-align:left!important;
}
.rh-modern-page .card p,
.rh-modern-page .card .hint,
.rh-modern-page .card .rh-help{text-align:left!important;}
.rh-modern-page .card label{text-align:left!important;}
.rh-modern-page .rh-form-grid input,
.rh-modern-page .rh-form-grid select,
.rh-modern-page .rh-form-grid textarea,
.rh-modern-page .card input,
.rh-modern-page .card select,
.rh-modern-page .card textarea{
    text-align:left!important;
    text-align-last:left!important;
}

/* Centralização solicitada: somente o conteúdo dos cards numéricos/indicadores. */
.rh-modern-page .rh-kpi,
.rh-modern-page .kpi{text-align:center!important;}
.rh-modern-page .rh-kpi span,
.rh-modern-page .rh-kpi strong,
.rh-modern-page .rh-kpi small,
.rh-modern-page .kpi span,
.rh-modern-page .kpi strong,
.rh-modern-page .kpi small{
    text-align:center!important;
    margin-left:auto!important;
    margin-right:auto!important;
}

/* Filtros dos módulos operacionais: controles e botão lado a lado, mesma altura. */
.rh-modern-page .rh-module-filter{
    display:grid!important;
    grid-template-columns:110px minmax(170px,1.25fr) minmax(170px,1fr) minmax(170px,1fr) 155px 112px!important;
    column-gap:10px!important;
    row-gap:10px!important;
    align-items:end!important;
    margin:14px 0 12px!important;
}
.rh-modern-page .rh-module-filter>div{margin:0!important;padding:0!important;}
.rh-modern-page .rh-module-filter input,
.rh-modern-page .rh-module-filter select,
.rh-modern-page .rh-module-filter .mini-action{
    height:44px!important;
    min-height:44px!important;
    margin:0!important;
    box-sizing:border-box!important;
}
.rh-modern-page .rh-module-filter .rh-form-actions{
    min-height:44px!important;
    height:44px!important;
    display:flex!important;
    align-items:stretch!important;
    justify-content:stretch!important;
    margin:0!important;
}
.rh-modern-page .rh-module-filter .rh-form-actions .mini-action{
    width:100%!important;
    min-width:0!important;
    padding:0 12px!important;
}
@media screen and (max-width:1180px){
    .rh-modern-page .rh-module-filter{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
}
@media screen and (max-width:760px){
    .rh-modern-page .rh-module-filter{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media screen and (max-width:520px){
    .rh-modern-page .rh-module-filter{grid-template-columns:1fr!important;}
}

/* Paginação: somente ícones, mantendo as classes e alinhamentos já existentes. */
.pagination-registros .pagination-icon-button{
    width:38px!important;
    min-width:38px!important;
    height:36px!important;
    min-height:36px!important;
    padding:0!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:0!important;
}
.pagination-registros .pagination-icon-button>i{font-size:16px!important;line-height:1!important;}
.pagination-double-icon{display:inline-flex;align-items:center;justify-content:center;gap:0;}
.pagination-double-icon i{font-size:14px!important;line-height:1!important;margin:0 -2px!important;}
.pagination-registros .pagination-current{
    min-width:72px!important;
    text-align:center!important;
    white-space:nowrap!important;
}

/* Central do Vínculo v019: botões no topo + uma única janela no mesmo lugar. */
.rh-profile-nav.rh-vinculo-window-nav{
    position:sticky!important;
    top:8px!important;
    z-index:12!important;
    display:flex!important;
    align-items:center!important;
    gap:7px!important;
    flex-wrap:wrap!important;
    padding:10px!important;
    margin:0 0 12px!important;
    background:#f8fafc!important;
    border:1px solid #dfe6ec!important;
    border-radius:12px!important;
    box-shadow:0 5px 16px rgba(15,23,42,.06)!important;
}
.rh-profile-nav.rh-vinculo-window-nav .rh-profile-nav-title{
    width:auto!important;
    margin-right:2px!important;
    text-align:left!important;
}
.rh-profile-nav.rh-vinculo-window-nav a[href^="#"]{
    min-height:36px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0 11px!important;
    border-radius:9px!important;
    background:#fff!important;
    border:1px solid #dce5ec!important;
    color:#334155!important;
    text-decoration:none!important;
    font-weight:700!important;
    font-size:.82rem!important;
    white-space:nowrap!important;
}
.rh-profile-nav.rh-vinculo-window-nav a[href^="#"].is-active{
    color:#fff!important;
    background:#0f7f82!important;
    border-color:#0f7f82!important;
    box-shadow:0 4px 12px rgba(15,127,130,.18)!important;
}
.rh-profile-nav.rh-vinculo-window-nav .rh-profile-back{
    margin-right:4px!important;
    min-height:36px!important;
}
.rh-vinculo-window{
    width:100%!important;
    margin:0 0 22px!important;
    border:1px solid #dce5ec!important;
    border-radius:16px!important;
    background:#f8fafc!important;
    box-shadow:0 8px 24px rgba(15,23,42,.06)!important;
    overflow:hidden!important;
}
.rh-vinculo-window-head{
    min-height:58px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    padding:12px 18px!important;
    background:#f2f7f8!important;
    border-bottom:1px solid #dce5ec!important;
    text-align:left!important;
}
.rh-vinculo-window-head>div{display:flex;flex-direction:column;gap:2px;align-items:flex-start;}
.rh-vinculo-window-eyebrow{
    color:#64748b!important;
    font-size:.7rem!important;
    font-weight:800!important;
    text-transform:uppercase!important;
    letter-spacing:.06em!important;
}
.rh-vinculo-window-title{color:#12366f!important;font-size:1.05rem!important;}
.rh-vinculo-window>.alert{margin:14px 16px 0!important;}
.rh-vinculo-window-body{padding:16px!important;min-width:0!important;}
.rh-vinculo-window-section{
    margin:0!important;
    box-shadow:none!important;
    border:1px solid #e1e8ee!important;
    border-radius:12px!important;
    background:#fff!important;
}
.rh-vinculo-window-section[hidden]{display:none!important;}
.rh-vinculo-window-section>.card-header{cursor:default!important;}
.rh-vinculo-window-section .rh-section-toggle{display:none!important;}
@media screen and (max-width:900px){
    .rh-profile-nav.rh-vinculo-window-nav{flex-wrap:nowrap!important;overflow-x:auto!important;scrollbar-width:thin;}
    .rh-profile-nav.rh-vinculo-window-nav .rh-profile-nav-title{display:none!important;}
    .rh-profile-nav.rh-vinculo-window-nav a{flex:0 0 auto!important;}
}
@media print{
    .rh-profile-nav.rh-vinculo-window-nav,.rh-vinculo-window-head{display:none!important;}
    .rh-vinculo-window{border:0!important;box-shadow:none!important;background:#fff!important;}
    .rh-vinculo-window-body{padding:0!important;}
    .rh-vinculo-window-section{display:block!important;border:0!important;}
}

/* Demais filtros RH novos: preserva a grade de cada página, mas normaliza altura/encaixe do botão. */
.rh-modern-page .rh-filter-card .rh-form-grid{align-items:end!important;column-gap:10px!important;row-gap:10px!important;margin-bottom:0!important;}
.rh-modern-page .rh-filter-card .rh-form-actions{height:44px!important;min-height:44px!important;align-items:stretch!important;margin:0!important;}
.rh-modern-page .rh-filter-card .rh-form-actions .mini-action{height:44px!important;min-height:44px!important;margin:0!important;}


/* ================================================================
   RH v021 — padrão único das telas de acesso.
   Login, recuperação/redefinição e primeiro acesso usam o mesmo
   tamanho de card (570 px), card branco e fundo institucional.
   ================================================================ */
.login-page.login-page-v424,
.recovery-page-v426.recovery-page-v014,
.first-access-page-v444{
    background:linear-gradient(145deg,#e3f3f4 0%,#f8fbfc 48%,#dff2f1 100%)!important;
}

/* Login: remove a antiga área colorida/transparente do card e volta ao card branco. */
.login-page.login-page-v424 .login-shell-single{
    width:100%!important;
    max-width:none!important;
    min-height:calc(100vh - 28px)!important;
    height:auto!important;
    max-height:none!important;
    padding:14px 18px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    grid-template-columns:minmax(0,570px)!important;
    background:transparent!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:visible!important;
}
.login-page.login-page-v424 .login-shell-single .login-panel{
    width:min(570px,100%)!important;
    max-width:570px!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
}
.login-page.login-page-v424 .login-card-wide{
    width:min(570px,100%)!important;
    max-width:570px!important;
    box-sizing:border-box!important;
    margin:0 auto!important;
    padding:28px 30px 22px!important;
    border:1px solid rgba(255,255,255,.94)!important;
    border-radius:28px!important;
    background:#fff!important;
    box-shadow:0 24px 58px rgba(18,54,111,.13),0 2px 8px rgba(15,159,154,.06)!important;
}
.login-page.login-page-v424 .login-card-top{
    gap:10px!important;
    margin-bottom:12px!important;
}
.login-page.login-page-v424 .login-brand-integrated{
    margin:0 auto 9px!important;
    gap:11px!important;
}
.login-page.login-page-v424 .login-brand-integrated img{
    width:76px!important;
    height:76px!important;
    flex:0 0 76px!important;
}
.login-page.login-page-v424 .login-title-wrap h2{
    font-size:1.35rem!important;
    margin:0 0 3px!important;
}
.login-page.login-page-v424 .login-title-wrap p{display:none!important;}
.login-page.login-page-v424 .login-form{gap:8px!important;}
.login-page.login-page-v424 .login-form label{margin:7px 0 5px!important;}
.login-page.login-page-v424 .input-with-icon{min-height:44px!important;}
.login-page.login-page-v424 .login-links{margin:7px 2px 2px!important;}
.login-page.login-page-v424 .login-submit-v422{min-height:44px!important;margin-top:8px!important;}
.login-page.login-page-v424 .login-security-v422{margin-top:14px!important;padding-top:11px!important;}

/* Recuperação e redefinição: mesmo tamanho e mesma superfície branca do primeiro acesso. */
.recovery-page-v426.recovery-page-v014 .recovery-shell-v014{
    min-height:100vh!important;
    padding:18px!important;
    box-sizing:border-box!important;
}
.recovery-page-v426.recovery-page-v014 .recovery-card-v014{
    width:min(570px,calc(100vw - 36px))!important;
    max-width:570px!important;
    box-sizing:border-box!important;
    padding:28px 30px 22px!important;
    border:1px solid rgba(255,255,255,.94)!important;
    border-radius:28px!important;
    background:#fff!important;
    box-shadow:0 24px 58px rgba(18,54,111,.13),0 2px 8px rgba(15,159,154,.06)!important;
}
.first-access-page-v444 .first-access-card-v444{
    max-width:570px!important;
    box-sizing:border-box!important;
    background:#fff!important;
}

@media screen and (max-width:640px){
    .login-page.login-page-v424 .login-shell-single{
        min-height:100vh!important;
        padding:10px!important;
    }
    .login-page.login-page-v424 .login-card-wide,
    .recovery-page-v426.recovery-page-v014 .recovery-card-v014{
        width:calc(100vw - 20px)!important;
        padding:22px 16px 18px!important;
        border-radius:22px!important;
    }
    .login-page.login-page-v424 .login-brand-integrated img{
        width:68px!important;
        height:68px!important;
        flex-basis:68px!important;
    }
}

/* ================================================================
   RH v022 — tamanho externo realmente padronizado nas telas de acesso.
   A referência visual é o card "Criar nova senha". Na v021 somente a
   largura havia sido igualada; Login e Esqueci minha senha continuavam
   visivelmente mais baixos. A partir daqui, os cards principais usam a
   mesma caixa externa em desktop: 570 x 628 px.
   ================================================================ */
:root{
    --rh-auth-card-width-v022:570px;
    --rh-auth-card-height-v022:628px;
}

/* Login */
.login-page.login-page-v424 .login-card-wide{
    width:min(var(--rh-auth-card-width-v022),100%)!important;
    max-width:var(--rh-auth-card-width-v022)!important;
    height:var(--rh-auth-card-height-v022)!important;
    min-height:var(--rh-auth-card-height-v022)!important;
    box-sizing:border-box!important;
}

/* Esqueci minha senha + Criar nova senha */
.recovery-page-v426.recovery-page-v014 .recovery-card-v014{
    width:min(var(--rh-auth-card-width-v022),calc(100vw - 36px))!important;
    max-width:var(--rh-auth-card-width-v022)!important;
    height:var(--rh-auth-card-height-v022)!important;
    min-height:var(--rh-auth-card-height-v022)!important;
    box-sizing:border-box!important;
}

/* Primeiro acesso: mantém o mesmo padrão dimensional para não voltar a
   divergir do restante do fluxo de autenticação. */
.first-access-page-v444 .first-access-card-v444{
    width:min(var(--rh-auth-card-width-v022),100%)!important;
    max-width:var(--rh-auth-card-width-v022)!important;
    height:var(--rh-auth-card-height-v022)!important;
    min-height:var(--rh-auth-card-height-v022)!important;
    box-sizing:border-box!important;
}

@media screen and (max-width:640px){
    .login-page.login-page-v424 .login-card-wide,
    .recovery-page-v426.recovery-page-v014 .recovery-card-v014,
    .first-access-page-v444 .first-access-card-v444{
        width:calc(100vw - 20px)!important;
        max-width:calc(100vw - 20px)!important;
        height:var(--rh-auth-card-height-v022)!important;
        min-height:var(--rh-auth-card-height-v022)!important;
    }
}

/* v022 — mesma centralização vertical do padrão de acesso, removendo a
   dupla compensação antiga da recuperação. */
.recovery-page-v426.recovery-page-v014 .recovery-shell-v014{
    width:100%!important;
    min-height:calc(100vh - 36px)!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    box-sizing:border-box!important;
}
@media screen and (max-width:640px){
    .recovery-page-v426.recovery-page-v014 .recovery-shell-v014{
        min-height:calc(100vh - 20px)!important;
        align-items:center!important;
    }
}

/* ================================================================
   RH v023 — refinamento visual das telas de acesso e do filtro de
   Funcionários.
   - mantém largura padrão de 570 px nas telas de acesso;
   - remove a altura fixa da v022 para eliminar espaço branco sobrando;
   - preserva card branco, fundo institucional e espaçamentos padronizados;
   - aproxima o botão Filtrar do campo Situação no módulo Funcionários.
   ================================================================ */
:root{
    --rh-auth-card-width-v023:570px;
    --rh-auth-card-bottom-space-v023:26px;
}

/* Telas de acesso: mesma largura, altura natural conforme conteúdo. */
.login-page.login-page-v424 .login-card-wide,
.recovery-page-v426.recovery-page-v014 .recovery-card-v014,
.first-access-page-v444 .first-access-card-v444{
    width:min(var(--rh-auth-card-width-v023),100%)!important;
    max-width:var(--rh-auth-card-width-v023)!important;
    height:auto!important;
    min-height:0!important;
    box-sizing:border-box!important;
}

.login-page.login-page-v424 .login-card-wide{
    padding:28px 30px var(--rh-auth-card-bottom-space-v023)!important;
}
.login-page.login-page-v424 .login-security-v422{
    margin-top:16px!important;
    padding-top:12px!important;
}

.recovery-page-v426.recovery-page-v014 .recovery-card-v014{
    padding:28px 30px var(--rh-auth-card-bottom-space-v023)!important;
}
.recovery-page-v426.recovery-page-v014 .recovery-actions-v014{
    margin-top:10px!important;
}
.recovery-page-v426.recovery-page-v014 .recovery-submit-v014{
    margin-top:12px!important;
}

.first-access-page-v444 .first-access-card-v444{
    padding-bottom:var(--rh-auth-card-bottom-space-v023)!important;
}
.first-access-page-v444 .first-access-footer-v444{
    margin-top:16px!important;
}

@media screen and (max-width:640px){
    .login-page.login-page-v424 .login-card-wide,
    .recovery-page-v426.recovery-page-v014 .recovery-card-v014,
    .first-access-page-v444 .first-access-card-v444{
        width:calc(100vw - 20px)!important;
        max-width:calc(100vw - 20px)!important;
        height:auto!important;
        min-height:0!important;
    }
    .login-page.login-page-v424 .login-card-wide,
    .recovery-page-v426.recovery-page-v014 .recovery-card-v014{
        padding:22px 16px 20px!important;
    }
}

/* Funcionários: botão Filtrar encostado visualmente ao campo Situação. */
.rh-modern-page .rh-filter-card .rh-form-actions.rh-filter-actions-near{
    justify-content:flex-start!important;
    align-items:flex-end!important;
    width:auto!important;
    min-width:0!important;
}
.rh-modern-page .rh-filter-card .rh-form-actions.rh-filter-actions-near .mini-action{
    align-self:flex-end!important;
    margin-left:0!important;
}

/* ================================================================
   RH v026 — Convocação de Férias.
   Formulário dedicado para deixar a função fácil de localizar e
   separar claramente o efeito com devolução ou sem alteração do saldo.
   ================================================================ */
.rh-modern-page .rh-ferias-convocacao-v026{
    margin-top:16px;
    border-color:#d8e7e9;
}
.rh-modern-page .rh-ferias-convocacao-v026>h4{
    margin:0 0 6px;
}
.rh-modern-page .rh-ferias-convocacao-v026>.rh-help{
    margin:0 0 14px;
}
.rh-modern-page .rh-ferias-convocacao-v026 .rh-form-grid{
    margin-bottom:0!important;
}
@media screen and (max-width:1000px){
    .rh-modern-page .rh-ferias-convocacao-v026 .rh-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media screen and (max-width:650px){
    .rh-modern-page .rh-ferias-convocacao-v026 .rh-form-grid{grid-template-columns:1fr;}
}

/* ================================================================
   RH v029 — alinhamento dos campos do Banco de Horas na ficha do vínculo.
   Organiza Convocação de Horas e Utilização de Horas com estrutura fixa,
   preservando o visual geral do sistema e melhorando o alinhamento.
   ================================================================ */
.rh-banco-horas-form{
    align-items:start!important;
    grid-template-columns:minmax(260px,2fr) minmax(180px,1fr) minmax(180px,1fr)!important;
    column-gap:14px!important;
    row-gap:12px!important;
    margin-top:12px!important;
    padding-top:12px!important;
    border-top:1px solid #e8eef3;
}
.rh-banco-horas-form + .rh-banco-horas-form{
    margin-top:18px!important;
}
.rh-banco-horas-form .rh-bh-intro{
    grid-column:1 / 2!important;
    align-self:start!important;
}
.rh-banco-horas-form .rh-bh-intro h4{
    margin:0 0 6px!important;
}
.rh-banco-horas-form .rh-bh-intro small{
    display:block;
    line-height:1.45;
}
.rh-banco-horas-form .rh-bh-data{
    grid-column:2 / 3!important;
}
.rh-banco-horas-form .rh-bh-quantidade{
    grid-column:3 / 4!important;
}
.rh-banco-horas-form .rh-bh-observacao{
    grid-column:1 / 2!important;
}
.rh-banco-horas-form .rh-bh-observacao textarea{
    min-height:82px!important;
    resize:vertical;
}
.rh-banco-horas-form .rh-bh-actions{
    grid-column:2 / 4!important;
    justify-content:flex-start!important;
    align-items:flex-end!important;
    padding-top:18px!important;
}
.rh-banco-horas-form .rh-bh-actions .mini-action{
    min-width:194px;
}
@media screen and (max-width:1000px){
    .rh-banco-horas-form{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
    .rh-banco-horas-form .rh-bh-intro,
    .rh-banco-horas-form .rh-bh-observacao{
        grid-column:1 / -1!important;
    }
    .rh-banco-horas-form .rh-bh-data{
        grid-column:1 / 2!important;
    }
    .rh-banco-horas-form .rh-bh-quantidade{
        grid-column:2 / 3!important;
    }
    .rh-banco-horas-form .rh-bh-actions{
        grid-column:1 / -1!important;
        padding-top:4px!important;
    }
}
@media screen and (max-width:650px){
    .rh-banco-horas-form{
        grid-template-columns:1fr!important;
    }
    .rh-banco-horas-form .rh-bh-intro,
    .rh-banco-horas-form .rh-bh-data,
    .rh-banco-horas-form .rh-bh-quantidade,
    .rh-banco-horas-form .rh-bh-observacao,
    .rh-banco-horas-form .rh-bh-actions{
        grid-column:1 / -1!important;
    }
    .rh-banco-horas-form .rh-bh-actions{
        padding-top:0!important;
    }
    .rh-banco-horas-form .rh-bh-actions .mini-action{
        width:100%;
    }
}

/* ================================================================
   RH v030 — revisão profunda de alinhamento dos módulos recentes.
   Escopo restrito aos formulários, filtros, botões, grupos de ações,
   blocos de estorno e controles auxiliares dos módulos de RH.
   Não altera cards nem estrutura visual das tabelas já aprovadas.
   ================================================================ */

/* Base comum dos formulários dos módulos novos. */
.rh-modern-page .rh-form-grid,
.rh-modern-page .rh-form-inline,
.rh-modern-page .rh-mini-form,
.rh-modern-page .rh-access-form{
    row-gap:12px!important;
    column-gap:12px!important;
}
.rh-modern-page .rh-form-grid > div,
.rh-modern-page .rh-form-inline > div,
.rh-modern-page .rh-mini-form > div,
.rh-modern-page .rh-access-form > div,
.rh-modern-page .rh-form-grid > label,
.rh-modern-page .rh-form-inline > label{
    min-width:0!important;
}
.rh-modern-page .rh-form-grid label,
.rh-modern-page .rh-form-inline label,
.rh-modern-page .rh-mini-form label,
.rh-modern-page .rh-access-form > div > label{
    margin-bottom:6px!important;
    line-height:1.35!important;
}
.rh-modern-page .rh-form-grid small,
.rh-modern-page .rh-form-inline small,
.rh-modern-page .rh-mini-form small,
.rh-modern-page .rh-access-form small,
.rh-modern-page .rh-form-grid .hint,
.rh-modern-page .rh-form-inline .hint{
    display:block;
    margin-top:6px!important;
    line-height:1.42!important;
}
.rh-modern-page .rh-form-grid input,
.rh-modern-page .rh-form-grid select,
.rh-modern-page .rh-form-grid textarea,
.rh-modern-page .rh-form-inline input,
.rh-modern-page .rh-form-inline select,
.rh-modern-page .rh-form-inline textarea,
.rh-modern-page .rh-mini-form input,
.rh-modern-page .rh-mini-form select,
.rh-modern-page .rh-mini-form textarea,
.rh-modern-page .rh-access-form input,
.rh-modern-page .rh-access-form select,
.rh-modern-page .rh-access-form textarea{
    min-height:44px!important;
}
.rh-modern-page .rh-form-grid textarea,
.rh-modern-page .rh-form-inline textarea,
.rh-modern-page .rh-mini-form textarea,
.rh-modern-page .rh-access-form textarea{
    min-height:88px!important;
}

/* Botões: ritmo visual uniforme e grupos com respiro adequado. */
.rh-modern-page .rh-actions,
.rh-modern-page .rh-inline-actions{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    gap:10px!important;
}
.rh-modern-page .rh-inline-actions .mini-action,
.rh-modern-page .rh-inline-actions a.mini-action,
.rh-modern-page .rh-inline-actions button.mini-action{
    margin:0!important;
}

/* Formulários inline compactos e bem alinhados. */
.rh-modern-page .rh-form-inline{
    gap:12px!important;
    align-items:flex-end!important;
}
.rh-modern-page .rh-form-inline > .mini-action,
.rh-modern-page .rh-form-inline > button.mini-action{
    align-self:flex-end!important;
}

/* Controle 'Registros por página' no tamanho compatível com o sistema-base. */
.rh-modern-page .rh-per-page-form{
    display:inline-flex!important;
    align-items:flex-end!important;
    gap:10px!important;
    width:auto!important;
    padding-top:0!important;
    border-top:0!important;
}
.rh-modern-page .rh-per-page-form label{
    display:flex!important;
    flex-direction:column!important;
    min-width:0!important;
    width:auto!important;
    margin:0!important;
}
.rh-modern-page .rh-per-page-form select{
    width:88px!important;
    min-width:88px!important;
    max-width:88px!important;
    text-align:center!important;
    text-align-last:center!important;
}

/* Ações em células de tabela dos módulos novos. */
.rh-modern-page .rh-table-wrap td .rh-inline-actions{
    justify-content:flex-start!important;
}

/* Estorno: campo + botão alinhados, com quebra limpa em áreas estreitas. */
.rh-modern-page .rh-estorno-form{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:flex-end!important;
    gap:8px!important;
    margin:0!important;
    min-width:0!important;
}
.rh-modern-page .rh-estorno-form input[name="motivo_estorno"]{
    flex:1 1 180px!important;
    min-width:140px!important;
    margin:0!important;
}
.rh-modern-page .rh-estorno-form .mini-action{
    flex:0 0 auto!important;
    min-width:92px!important;
    margin:0!important;
}

/* Filtros e blocos de ação dos módulos recentes. */
.rh-modern-page .rh-filter-card .rh-form-grid,
.rh-modern-page .rh-module-filter{
    align-items:end!important;
}
.rh-modern-page .rh-filter-card .rh-form-actions,
.rh-modern-page .rh-module-filter .rh-form-actions,
.rh-modern-page .rh-bh-actions{
    justify-content:flex-start!important;
}

/* Ajuste fino do módulo Banco de Horas na ficha do vínculo. */
.rh-modern-page .rh-banco-horas-form{
    margin-bottom:4px!important;
}
.rh-modern-page .rh-banco-horas-form .rh-bh-intro small,
.rh-modern-page .rh-banco-horas-form .rh-bh-quantidade small{
    max-width:100%;
}

/* Responsividade segura sem empilhar controles de forma desigual. */
@media screen and (max-width:900px){
    .rh-modern-page .rh-estorno-form{
        align-items:stretch!important;
    }
    .rh-modern-page .rh-estorno-form .mini-action{
        width:100%!important;
    }
}
@media screen and (max-width:650px){
    .rh-modern-page .rh-form-inline{
        align-items:stretch!important;
    }
    .rh-modern-page .rh-per-page-form{
        display:flex!important;
        width:100%!important;
    }
    .rh-modern-page .rh-per-page-form label,
    .rh-modern-page .rh-per-page-form select{
        width:100%!important;
        max-width:none!important;
    }
    .rh-modern-page .rh-inline-actions{
        flex-direction:column!important;
        align-items:stretch!important;
    }
    .rh-modern-page .rh-inline-actions .mini-action{
        width:100%!important;
    }
}

/* ================================================================
   RH v031 — Meu Painel do funcionário.
   Melhora exclusivamente a leitura dos atalhos internos da ficha própria.
   Cards e tabelas mantêm sua estrutura aprovada.
   ================================================================ */
.rh-modern-page .rh-employee-tabs{
    gap:9px!important;
    padding:10px!important;
    border:1px solid #d7e5e9!important;
    background:#f6fafb!important;
    box-shadow:0 2px 8px rgba(15,23,42,.04)!important;
}
.rh-modern-page .rh-employee-tabs a{
    min-height:38px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:8px 14px!important;
    border:1px solid #b9d8dc!important;
    border-bottom-width:2px!important;
    border-radius:9px!important;
    background:linear-gradient(180deg,#ffffff 0%,#f4fafa 100%)!important;
    color:#174f63!important;
    box-shadow:0 2px 5px rgba(15,23,42,.07)!important;
    font-weight:700!important;
    cursor:pointer!important;
    transition:background .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease!important;
}
.rh-modern-page .rh-employee-tabs a:hover,
.rh-modern-page .rh-employee-tabs a:focus-visible{
    background:#0f9894!important;
    color:#fff!important;
    border-color:#0b8582!important;
    box-shadow:0 5px 12px rgba(15,152,148,.20)!important;
    transform:translateY(-1px)!important;
    outline:none!important;
}
.rh-modern-page .rh-employee-tabs a:active{
    transform:translateY(0)!important;
    box-shadow:0 2px 5px rgba(15,23,42,.08)!important;
}
@media screen and (max-width:650px){
    .rh-modern-page .rh-employee-tabs a{
        flex:1 1 calc(50% - 9px)!important;
    }
}

/* ================================================================
   RH v032 — ajustes pontuais solicitados.
   1) Centraliza a coluna Mês apenas no Banco de Horas — Controle Anual.
   2) Dá respiro entre CPF e E-mail cadastrado na recuperação de senha.
   ================================================================ */
.rh-modern-page .rh-controle-anual-table thead th:first-child,
.rh-modern-page .rh-controle-anual-table tbody td:first-child{
    text-align:center!important;
    vertical-align:middle!important;
}

.recovery-page-v014 #form-recuperacao-funcionario label[for="email-recuperacao"]{
    margin-top:10px!important;
}

/* ================================================================
   RH v033 — alinhamento estrutural de campos com textos auxiliares.
   Regra para os módulos recentes de RH: textos de ajuda ficam abaixo
   do controle e não podem empurrar o próprio campo para cima em relação
   aos campos vizinhos da mesma linha. Cards e tabelas não são alterados.
   ================================================================ */

/* Em formulários em grid, todos os blocos da linha começam pelo topo. */
.rh-modern-page .rh-form-grid{
    align-items:start!important;
}
.rh-modern-page .rh-form-grid > div,
.rh-modern-page .rh-form-grid > label{
    align-self:start!important;
}

/* Label e controle mantêm sempre o mesmo fluxo; ajuda vem depois. */
.rh-modern-page .rh-form-grid > div:not(.rh-form-actions){
    display:flex;
    flex-direction:column;
}
.rh-modern-page .rh-form-grid > div:not(.rh-form-actions) > label{
    flex:0 0 auto;
}
.rh-modern-page .rh-form-grid > div:not(.rh-form-actions) > input,
.rh-modern-page .rh-form-grid > div:not(.rh-form-actions) > select,
.rh-modern-page .rh-form-grid > div:not(.rh-form-actions) > textarea{
    flex:0 0 auto;
}
.rh-modern-page .rh-form-grid > div:not(.rh-form-actions) > small,
.rh-modern-page .rh-form-grid > div:not(.rh-form-actions) > .hint,
.rh-modern-page .rh-form-grid > div:not(.rh-form-actions) > .rh-help{
    flex:0 0 auto;
    margin-top:6px!important;
}

/* Filtros são a exceção: botão e controles continuam alinhados pela base. */
.rh-modern-page .rh-filter-card .rh-form-grid,
.rh-modern-page .rh-module-filter{
    align-items:end!important;
}
.rh-modern-page .rh-filter-card .rh-form-grid > div,
.rh-modern-page .rh-module-filter > div{
    align-self:end!important;
}

/* Formulários com ação em linha própria permanecem centralizados/organizados. */
.rh-modern-page .rh-form-grid > .rh-form-actions{
    align-self:start!important;
}
.rh-modern-page .rh-form-grid > .rh-submit-full,
.rh-modern-page .rh-form-grid > .rh-bh-actions{
    align-self:start!important;
}

/* Em telas pequenas, mantém a mesma lógica sem compensações artificiais. */
@media screen and (max-width:650px){
    .rh-modern-page .rh-form-grid,
    .rh-modern-page .rh-form-grid > div,
    .rh-modern-page .rh-form-grid > label{
        align-items:stretch;
        align-self:stretch!important;
    }
}

/* ================================================================
   RH v034 — cor institucional nos ícones nativos de calendário.
   Escopo somente das telas RH; não interfere nos módulos herdados.
   ================================================================ */
.rh-modern-page input[type="date"]{
    accent-color:#0f8f8a;
}
.rh-modern-page input[type="date"]::-webkit-calendar-picker-indicator{
    opacity:.9;
    cursor:pointer;
    filter:invert(45%) sepia(62%) saturate(647%) hue-rotate(128deg) brightness(87%) contrast(91%);
    transition:filter .16s ease, opacity .16s ease, transform .16s ease;
}
.rh-modern-page input[type="date"]:hover::-webkit-calendar-picker-indicator,
.rh-modern-page input[type="date"]:focus::-webkit-calendar-picker-indicator{
    opacity:1;
    filter:invert(34%) sepia(68%) saturate(827%) hue-rotate(130deg) brightness(82%) contrast(94%);
}

/* ================================================================
   RH v037 — padrão de ações principais + ajuste de descrições longas.
   Escopo exclusivo das páginas RH novas (.rh-modern-page).
   Não altera cards, tabelas ou demais módulos fora deste escopo.
   ================================================================ */

/* Botão principal no fim dos formulários RH: linha própria e centralizado. */
.rh-modern-page form.rh-form-grid:not(.rh-module-filter) > .rh-form-actions:last-child:not(.rh-filter-actions-near):not(.rh-bh-actions){
    grid-column:1 / -1!important;
    width:100%!important;
    min-width:0!important;
    display:flex!important;
    justify-content:center!important;
    align-items:center!important;
    margin-top:4px!important;
}
.rh-modern-page form.rh-form-grid:not(.rh-module-filter) > .rh-form-actions:last-child:not(.rh-filter-actions-near):not(.rh-bh-actions) > .mini-action{
    margin-left:auto!important;
    margin-right:auto!important;
}

/* Filtros mantêm o comportamento compacto e ligado ao respectivo campo. */
.rh-modern-page .rh-filter-card form.rh-form-grid > .rh-form-actions:last-child,
.rh-modern-page form.rh-module-filter > .rh-form-actions:last-child{
    grid-column:auto!important;
    width:auto!important;
    justify-content:flex-start!important;
    margin-top:0!important;
}
.rh-modern-page .rh-filter-card form.rh-form-grid > .rh-form-actions:last-child > .mini-action,
.rh-modern-page form.rh-module-filter > .rh-form-actions:last-child > .mini-action{
    margin-left:0!important;
    margin-right:0!important;
}

/* Classe aplicada somente quando um texto descritivo ocupa 3 linhas ou mais. */
.rh-modern-page .rh-description-adjusted{
    text-align:justify!important;
    text-justify:inter-word;
    hyphens:auto;
    -webkit-hyphens:auto;
}

/* ================================================================
   RH v038 — padrão de botão secundário para ações de retorno nos
   módulos novos de RH. Mantém hierarquia: salvar/cadastrar = ação
   principal preenchida; voltar/navegar = ação secundária contornada.
   ================================================================ */
.rh-modern-page a.rh-profile-back,
.rh-modern-page .rh-profile-nav a.rh-profile-back{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    min-height:38px!important;
    padding:0 13px!important;
    border:1px solid #0f8f8a!important;
    border-radius:9px!important;
    background:#ffffff!important;
    color:#0b6f70!important;
    font-weight:800!important;
    text-decoration:none!important;
    box-shadow:0 2px 7px rgba(15,127,130,.10)!important;
    transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease!important;
}
.rh-modern-page a.rh-profile-back i,
.rh-modern-page .rh-profile-nav a.rh-profile-back i{
    color:#0f8f8a!important;
    font-size:.95rem!important;
}
.rh-modern-page a.rh-profile-back:hover,
.rh-modern-page .rh-profile-nav a.rh-profile-back:hover{
    background:#e9f6f5!important;
    border-color:#0b7776!important;
    color:#085f60!important;
    box-shadow:0 4px 11px rgba(15,127,130,.16)!important;
    transform:translateY(-1px)!important;
}
.rh-modern-page a.rh-profile-back:hover i,
.rh-modern-page .rh-profile-nav a.rh-profile-back:hover i{
    color:#0b7776!important;
}
.rh-modern-page a.rh-profile-back:focus-visible,
.rh-modern-page .rh-profile-nav a.rh-profile-back:focus-visible{
    outline:3px solid rgba(15,143,138,.22)!important;
    outline-offset:2px!important;
}
.rh-modern-page a.rh-profile-back:active,
.rh-modern-page .rh-profile-nav a.rh-profile-back:active{
    transform:translateY(0)!important;
    box-shadow:0 2px 6px rgba(15,127,130,.12)!important;
}

/* Garante que o retorno permaneça secundário também nas duas variantes
   da Central do Vínculo já existentes no projeto. */
.rh-vinculo-workspace .rh-profile-nav .rh-profile-back,
.rh-profile-nav.rh-vinculo-window-nav .rh-profile-back{
    background:#fff!important;
    border-color:#0f8f8a!important;
    color:#0b6f70!important;
    font-weight:800!important;
}

/* ================================================================
   RH v039 — centralização interna de datas e horas nos módulos novos.
   Altera somente o conteúdo dos controles; labels, ícones e estrutura
   dos formulários permanecem como já aprovados.
   ================================================================ */
.rh-modern-page input[type="date"],
.rh-modern-page input[type="time"],
.rh-modern-page input[name*="hora"]{
    text-align:center!important;
    text-align-last:center!important;
}

/* Chromium/Edge: centraliza também a área editável nativa da data/hora
   sem deslocar o botão/ícone de calendário do lado direito. */
.rh-modern-page input[type="date"]::-webkit-datetime-edit,
.rh-modern-page input[type="time"]::-webkit-datetime-edit{
    text-align:center!important;
    justify-content:center!important;
}
.rh-modern-page input[type="date"]::-webkit-datetime-edit-fields-wrapper,
.rh-modern-page input[type="time"]::-webkit-datetime-edit-fields-wrapper{
    margin-left:auto!important;
    margin-right:auto!important;
}

/* ================================================================
   RH v040 — Banco de Horas: coluna Data centralizada.
   Exceção restrita à tabela do Banco de Horas, preservando as demais
   tabelas e o padrão já aprovado no restante do sistema.
   ================================================================ */
.rh-modern-page #banco-horas .rh-banco-horas-table thead th:first-child,
.rh-modern-page #banco-horas .rh-banco-horas-table tbody td:first-child{
    text-align:center!important;
    vertical-align:middle!important;
}

/* ================================================================
   RH v041 — ausência legal personalizada + centralização da coluna
   Início no Histórico de lotação. Escopo apenas dos módulos de RH.
   ================================================================ */
.rh-modern-page .rh-lotacao-history-table thead th:first-child,
.rh-modern-page .rh-lotacao-history-table tbody td:first-child{
    text-align:center!important;
    vertical-align:middle!important;
}
.rh-modern-page .rh-ausencia-legal-form [hidden]{
    display:none!important;
}

/* ================================================================
   RH v042 — proporção e alinhamento dos formulários de Férias,
   Licença-prêmio, Abonadas e Saldos anteriores.
   Não altera cards nem tabelas já aprovadas.
   ================================================================ */

/* Férias e licença-prêmio: formulário interno em duas colunas, com
   campos de data e quantidade proporcionais ao conteúdo. */
.rh-modern-page .rh-compact-rh-form{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    align-content:start!important;
    align-items:start!important;
    column-gap:16px!important;
    row-gap:12px!important;
}
.rh-modern-page .rh-compact-rh-form > h4,
.rh-modern-page .rh-compact-rh-form > .rh-compact-wide,
.rh-modern-page .rh-compact-rh-form > .rh-submit-full{
    grid-column:1 / -1!important;
}
.rh-modern-page .rh-compact-rh-form > h4{
    margin:0 0 2px!important;
}
.rh-modern-page .rh-compact-rh-form label{
    min-width:0!important;
}
.rh-modern-page .rh-compact-rh-form .rh-compact-date input[type="date"]{
    width:178px!important;
    max-width:100%!important;
}
.rh-modern-page .rh-compact-rh-form .rh-compact-number input[type="number"]{
    width:128px!important;
    max-width:100%!important;
    text-align:center!important;
}
.rh-modern-page .rh-compact-rh-form .rh-compact-wide input,
.rh-modern-page .rh-compact-rh-form .rh-compact-wide select,
.rh-modern-page .rh-compact-rh-form .rh-compact-wide textarea{
    width:100%!important;
}
.rh-modern-page .rh-compact-rh-form .rh-compact-wide textarea{
    min-height:88px!important;
}
.rh-modern-page .rh-compact-rh-form .rh-submit-full{
    display:flex!important;
    justify-content:center!important;
    align-items:center!important;
    margin-top:2px!important;
}

/* Abonadas: cada controle ganha uma função clara no grid; a regra deixa
   de empurrar o campo Dias e a Observação ganha área real de escrita. */
.rh-modern-page .rh-abonadas-form{
    display:grid!important;
    grid-template-columns:180px 100px minmax(260px,1fr) minmax(250px,.9fr)!important;
    grid-template-areas:
        "data dias observacao documento"
        "regra regra regra regra"
        "acoes acoes acoes acoes"!important;
    column-gap:14px!important;
    row-gap:12px!important;
    align-items:start!important;
    margin-top:12px!important;
    padding-top:10px!important;
    border-top:1px solid #eef2f7;
}
.rh-modern-page .rh-abonadas-form label{
    display:block!important;
    margin:0!important;
    min-width:0!important;
}
.rh-modern-page .rh-abonadas-form label > input,
.rh-modern-page .rh-abonadas-form label > textarea,
.rh-modern-page .rh-abonadas-form .rh-abonada-dias input{
    margin-top:6px!important;
}
.rh-modern-page .rh-abonada-data{grid-area:data!important;}
.rh-modern-page .rh-abonada-dias{grid-area:dias!important;min-width:0!important;}
.rh-modern-page .rh-abonada-observacao{grid-area:observacao!important;}
.rh-modern-page .rh-abonada-documento{grid-area:documento!important;}
.rh-modern-page .rh-abonada-regra{grid-area:regra!important;margin:0!important;}
.rh-modern-page .rh-abonada-actions{
    grid-area:acoes!important;
    display:flex!important;
    justify-content:center!important;
    align-items:center!important;
    margin:0!important;
}
.rh-modern-page .rh-abonada-data input[type="date"]{
    width:178px!important;
    max-width:100%!important;
}
.rh-modern-page .rh-abonada-dias input[type="number"]{
    width:88px!important;
    max-width:100%!important;
    min-height:44px!important;
    text-align:center!important;
}
.rh-modern-page .rh-abonada-observacao textarea{
    width:100%!important;
    min-height:92px!important;
    box-sizing:border-box!important;
    resize:vertical;
}
.rh-modern-page .rh-abonada-documento input[type="file"]{
    width:100%!important;
}

/* Saldos anteriores: botão ocupa a linha toda do grid e centraliza nela. */
.rh-modern-page #acervo-anterior .rh-submit-full{
    grid-column:1 / -1!important;
    width:100%!important;
    justify-content:center!important;
}

@media screen and (max-width:1100px){
    .rh-modern-page .rh-abonadas-form{
        grid-template-columns:180px 100px minmax(260px,1fr)!important;
        grid-template-areas:
            "data dias observacao"
            "documento documento documento"
            "regra regra regra"
            "acoes acoes acoes"!important;
    }
}
@media screen and (max-width:760px){
    .rh-modern-page .rh-compact-rh-form{
        grid-template-columns:1fr!important;
    }
    .rh-modern-page .rh-compact-rh-form > h4,
    .rh-modern-page .rh-compact-rh-form > .rh-compact-wide,
    .rh-modern-page .rh-compact-rh-form > .rh-submit-full{
        grid-column:1!important;
    }
    .rh-modern-page .rh-abonadas-form{
        grid-template-columns:1fr 1fr!important;
        grid-template-areas:
            "data dias"
            "observacao observacao"
            "documento documento"
            "regra regra"
            "acoes acoes"!important;
    }
}
@media screen and (max-width:520px){
    .rh-modern-page .rh-abonadas-form{
        grid-template-columns:1fr!important;
        grid-template-areas:
            "data"
            "dias"
            "observacao"
            "documento"
            "regra"
            "acoes"!important;
    }
}

/* ================================================================
   RH v043 — primeira coluna centralizada + alinhamento do Filtrar.
   Escopo exclusivo dos módulos novos de RH (.rh-modern-page).
   Não altera módulos fora deste escopo nem a estrutura das tabelas.
   ================================================================ */

/* Todas as tabelas dos módulos novos de RH: primeira coluna centralizada. */
.rh-modern-page table thead th:first-child,
.rh-modern-page table tbody td:first-child{
    text-align:center!important;
    vertical-align:middle!important;
}

/* Filtros dos relatórios/listagens operacionais (Banco de Horas,
   Atestados e equivalentes): o botão deve alinhar pela base com o
   controle Registros por página, e não pelo topo da linha. */
.rh-modern-page form.rh-module-filter > .rh-form-actions:last-child{
    align-self:end!important;
    height:44px!important;
    min-height:44px!important;
    margin:0!important;
    padding:0!important;
    display:flex!important;
    align-items:stretch!important;
    justify-content:stretch!important;
}
.rh-modern-page form.rh-module-filter > .rh-form-actions:last-child > .mini-action{
    height:44px!important;
    min-height:44px!important;
    width:100%!important;
    margin:0!important;
}


/* ================================================================
   RH v044 — conteúdo dos seletores e quantidades centralizado +
   respiro entre rótulos e campos compactos de Férias/Licença-prêmio.
   Escopo exclusivo dos módulos novos de RH (.rh-modern-page).
   Não altera módulos fora deste escopo, cards ou tabelas aprovadas.
   ================================================================ */

/* Todos os seletores dos módulos novos exibem o valor centralizado.
   O script de lista centralizada já existente acompanha este alinhamento
   também quando a lista de opções é aberta. */
.rh-modern-page select{
    text-align:center!important;
    text-align-last:center!important;
}
.rh-modern-page select option,
.rh-modern-page select optgroup{
    text-align:center!important;
}

/* Quantidades numéricas dos módulos novos ficam centralizadas no campo. */
.rh-modern-page input[type="number"]{
    text-align:center!important;
    text-align-last:center!important;
}

/* Férias e licença-prêmio: separa visualmente o rótulo do controle,
   preservando exatamente as larguras compactas aprovadas na v042. */
.rh-modern-page .rh-compact-rh-form label > input,
.rh-modern-page .rh-compact-rh-form label > select,
.rh-modern-page .rh-compact-rh-form label > textarea{
    margin-top:7px!important;
}


/* ================================================================
   RH v046 — padrão único de paginação e seleção em massa.
   Escopo exclusivo dos módulos novos de RH (.rh-modern-page).
   Topo: quantidade + ícones alinhados à direita.
   Rodapé: paginação centralizada.
   ================================================================ */
.rh-modern-page .rh-pagination-top{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-end!important;
    justify-content:flex-start!important;
    width:100%!important;
    gap:8px!important;
    margin:10px 0 16px!important;
    clear:both!important;
}
.rh-modern-page .rh-pagination-top .rh-per-page-form{
    display:flex!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    justify-content:flex-end!important;
    align-items:flex-end!important;
}
.rh-modern-page .rh-pagination-top .rh-per-page-form label{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    width:auto!important;
    min-width:0!important;
    margin:0!important;
    text-align:left!important;
}
.rh-modern-page .rh-pagination-top .rh-per-page-form select,
.rh-modern-page .rh-per-page-form select[name="spp"],
.rh-modern-page .rh-per-page-form select[name="mpp"]{
    width:88px!important;
    min-width:88px!important;
    max-width:88px!important;
    height:44px!important;
    min-height:44px!important;
    box-sizing:border-box!important;
    text-align:center!important;
    text-align-last:center!important;
    padding-left:20px!important;
    padding-right:20px!important;
}
.rh-modern-page .rh-pagination-top > .pagination-registros-topo{
    width:auto!important;
    margin:0!important;
    padding:0!important;
    justify-content:flex-end!important;
}
.rh-modern-page .pagination-registros-rodape{
    width:100%!important;
    justify-content:center!important;
}
.rh-modern-page .rh-mass-toolbar{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    flex-wrap:wrap!important;
    margin:8px 0 12px!important;
    padding:9px 11px!important;
    border:1px solid #e2e8f0!important;
    border-radius:10px!important;
    background:#f8fafc!important;
}
.rh-modern-page .rh-mass-actions{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:8px!important;
    flex-wrap:wrap!important;
}
.rh-modern-page .rh-select-all{
    display:inline-flex!important;
    align-items:center!important;
    gap:7px!important;
    margin:0!important;
    font-weight:700!important;
    color:#475569!important;
}
.rh-modern-page .rh-select-all input,
.rh-modern-page .rh-row-select{
    width:18px!important;
    height:18px!important;
    min-width:18px!important;
    margin:0!important;
    padding:0!important;
    accent-color:auto;
}
.rh-modern-page th.rh-select-col,
.rh-modern-page td.rh-select-col{
    width:54px!important;
    min-width:54px!important;
    max-width:54px!important;
    text-align:center!important;
    vertical-align:middle!important;
}
.rh-modern-page td.rh-select-col .rh-row-select{
    display:block!important;
    margin-left:auto!important;
    margin-right:auto!important;
}
@media screen and (max-width:760px){
    .rh-modern-page .rh-pagination-top{align-items:flex-end!important;}
    .rh-modern-page .rh-pagination-top > .pagination-registros-topo{justify-content:flex-end!important;}
    .rh-modern-page .rh-mass-toolbar{align-items:stretch!important;}
    .rh-modern-page .rh-mass-actions{width:100%!important;justify-content:flex-start!important;}
}

/* Mantém a primeira coluna de dados centralizada mesmo quando a coluna de seleção é inserida antes dela. */
.rh-modern-page table.rh-selection-table thead th:nth-child(2),
.rh-modern-page table.rh-selection-table tbody td:nth-child(2){
    text-align:center!important;
    vertical-align:middle!important;
}


/* ===== RH v4.7 / v047 — Usuários, identificação visual e rodapé =====
   - Novo usuário em grade de 5 colunas no desktop para Status e Criar usuário
     permanecerem na mesma linha e com o mesmo alinhamento vertical dos controles.
   - O campo de responsável por conta administrativa foi removido; somente Admin
     pode existir sem vínculo funcional.
   - Recuperação de senha centralizada no login.
   - Rodapé encostado ao fim da área útil, à direita, mesmo em páginas curtas.
   - Marca lateral em duas linhas: Sistema de Gestão / Recursos Humanos. */
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline{
    grid-template-columns:repeat(5,minmax(155px,1fr)) !important;
    align-items:start !important;
    gap:14px !important;
}
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .campo-novo-usuario{
    justify-content:flex-start !important;
    align-self:start !important;
}
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .campo-novo-usuario > label{
    min-height:20px !important;
    margin-bottom:6px !important;
}
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario{
    align-self:start !important;
    justify-self:start !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    height:auto !important;
    min-height:0 !important;
    padding-top:26px !important;
    margin:0 !important;
}
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario > .botao-criar-usuario{
    height:44px !important;
    min-height:44px !important;
    margin:0 !important;
}
@media screen and (max-width:1320px){
    html body.app-layout .card-novo-usuario form.form-novo-usuario-inline{grid-template-columns:repeat(3,minmax(180px,1fr)) !important;}
}
@media screen and (max-width:820px){
    html body.app-layout .card-novo-usuario form.form-novo-usuario-inline{grid-template-columns:repeat(2,minmax(160px,1fr)) !important;}
}
@media screen and (max-width:560px){
    html body.app-layout .card-novo-usuario form.form-novo-usuario-inline{grid-template-columns:1fr !important;}
    html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario{
        width:100% !important;
        justify-self:stretch !important;
        justify-content:center !important;
        padding-top:0 !important;
    }
}

.login-page.login-page-v424 .login-links{
    justify-content:center !important;
    text-align:center !important;
}

body.app-layout .main-shell{
    display:flex !important;
    flex-direction:column !important;
    min-height:100vh !important;
}
body.app-layout .main-shell > .container{
    width:100% !important;
    flex:1 0 auto !important;
}
body.app-layout .main-shell > .page-footer{
    width:100% !important;
    margin-top:auto !important;
    text-align:right !important;
    padding:14px 22px 18px !important;
}
.sidebar-brand h1{line-height:1.16 !important;}
.sidebar-brand span{margin-top:4px !important;}

/* v047 — o link de recuperação ocupa o centro real da largura do formulário,
   mesmo quando o link de suporte também estiver configurado. */
.login-page.login-page-v424 .login-links{
    display:grid !important;
    grid-template-columns:1fr !important;
    justify-items:center !important;
    align-items:center !important;
    gap:7px !important;
}


/* ================================================================
   RH v048 / v4.8 — recuperação de senha: avisos orientativos restaurados.
   Remove o título redundante “Recuperar acesso” e preserva a regra
   de segurança já existente no backend.
   ================================================================ */
.recovery-page-v014 .recovery-intro-v048{
    margin:6px 0 0!important;
    font-size:.9rem!important;
    line-height:1.45!important;
    color:#536273!important;
    font-weight:600!important;
}
.recovery-page-v014 .recovery-email-warning-v048{
    display:flex!important;
    align-items:flex-start!important;
    gap:8px!important;
    margin:8px 0 2px!important;
    padding:10px 11px!important;
    font-size:.82rem!important;
    line-height:1.42!important;
    text-align:left!important;
}
.recovery-page-v014 .recovery-email-warning-v048 i{
    flex:0 0 auto!important;
    margin-top:2px!important;
    color:#087f82!important;
}


/* ================================================================
   RH v049 / v4.9 — ajustes pontuais solicitados
   - recuperação: título e aviso introdutório centralizados;
   - login: "Esqueci minha senha" novamente no canto direito;
   - usuários: Criar usuário alinhado exatamente ao seletor Status.
   ================================================================ */
.recovery-page-v014 .recovery-title-v014{
    text-align:center!important;
}
.recovery-page-v014 .recovery-title-v014 .login-kicker,
.recovery-page-v014 .recovery-intro-v048{
    display:block!important;
    width:100%!important;
    text-align:center!important;
}

.login-page.login-page-v424 .login-links{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-end!important;
    justify-content:flex-start!important;
    text-align:right!important;
    gap:7px!important;
}
.login-page.login-page-v424 .login-links > a{
    align-self:flex-end!important;
    text-align:right!important;
}

html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario{
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-start!important;
    align-items:flex-start!important;
    align-self:start!important;
    padding-top:0!important;
    margin:0!important;
    height:auto!important;
    min-height:0!important;
}
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario > .botao-criar-usuario-rotulo-espaco{
    display:block!important;
    width:100%!important;
    min-height:20px!important;
    height:20px!important;
    margin:0 0 6px!important;
    padding:0!important;
    visibility:hidden!important;
    line-height:20px!important;
}
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario > .botao-criar-usuario{
    height:42px!important;
    min-height:42px!important;
    max-height:42px!important;
    margin:0!important;
}
@media screen and (max-width:560px){
    html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario{
        width:100%!important;
        align-items:center!important;
    }
    html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario > .botao-criar-usuario-rotulo-espaco{
        display:none!important;
    }
}


/* ================================================================
   RH v050 / v5.0 — paginação superior conforme padrão do Histórico.
   Escopo exclusivo dos módulos novos de RH (.rh-modern-page):
   paginação por ícones no alto à direita; abaixo, Registros por página
   e seletor na mesma linha, com alinhamento vertical centralizado.
   O rodapé continua centralizado.
   ================================================================ */
.rh-modern-page .rh-pagination-top{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-end!important;
    justify-content:flex-start!important;
    width:100%!important;
    gap:9px!important;
    margin:10px 0 16px!important;
    clear:both!important;
}
.rh-modern-page .rh-pagination-top > .pagination-registros-topo{
    order:1!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
    justify-content:flex-end!important;
    align-self:flex-end!important;
}
.rh-modern-page .rh-pagination-top .rh-per-page-form{
    order:2!important;
    display:flex!important;
    flex-direction:row!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    justify-content:flex-end!important;
    align-items:center!important;
    align-self:flex-end!important;
    gap:9px!important;
    flex-wrap:nowrap!important;
}
.rh-modern-page .rh-pagination-top .rh-per-page-form > label{
    display:block!important;
    width:auto!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    color:#566575!important;
    font-weight:800!important;
    line-height:1.2!important;
    text-align:center!important;
    white-space:nowrap!important;
}
.rh-modern-page .rh-pagination-top .rh-per-page-form > select{
    width:88px!important;
    min-width:88px!important;
    max-width:88px!important;
    height:44px!important;
    min-height:44px!important;
    margin:0!important;
    box-sizing:border-box!important;
    text-align:center!important;
    text-align-last:center!important;
    padding-left:20px!important;
    padding-right:20px!important;
}
.rh-modern-page .pagination-registros-rodape{
    width:100%!important;
    justify-content:center!important;
}
@media screen and (max-width:760px){
    .rh-modern-page .rh-pagination-top{align-items:flex-end!important;}
    .rh-modern-page .rh-pagination-top > .pagination-registros-topo,
    .rh-modern-page .rh-pagination-top .rh-per-page-form{align-self:flex-end!important;}
}


/* ================================================================
   RH v051 / v5.1 — refinamentos dos módulos novos.
   - Recursos Humanos levemente maior na marca lateral;
   - formulários inline: botão alinhado exatamente ao campo vizinho;
   - Acessos RH: Salvar escopo centralizado.
   Escopo dos alinhamentos restrito aos módulos novos (.rh-modern-page).
   ================================================================ */
.sidebar-brand span{
    font-size:13px!important;
}

/* Em formulários inline, o rótulo envolve o próprio campo. A margem inferior
   antiga entrava no cálculo do flex e empurrava o botão para baixo. O espaço
   entre texto e campo passa a ser interno (gap), mantendo as bases alinhadas. */
.rh-modern-page .rh-form-inline:not(.rh-per-page-form) > label{
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-start!important;
    gap:6px!important;
    margin-bottom:0!important;
    line-height:1.35!important;
}
.rh-modern-page .rh-form-inline:not(.rh-per-page-form) > label > input,
.rh-modern-page .rh-form-inline:not(.rh-per-page-form) > label > select,
.rh-modern-page .rh-form-inline:not(.rh-per-page-form) > label > textarea{
    margin:0!important;
}
.rh-modern-page .rh-form-inline:not(.rh-per-page-form) > .mini-action,
.rh-modern-page .rh-form-inline:not(.rh-per-page-form) > button.mini-action{
    height:44px!important;
    min-height:44px!important;
    align-self:flex-end!important;
    margin:0!important;
}

/* Filtros em grid dos módulos novos seguem a mesma linha-base dos controles. */
.rh-modern-page .rh-filter-card form.rh-form-grid > .rh-form-actions:last-child{
    align-self:end!important;
    min-height:44px!important;
    height:44px!important;
    padding:0!important;
    margin:0!important;
    display:flex!important;
    align-items:stretch!important;
}
.rh-modern-page .rh-filter-card form.rh-form-grid > .rh-form-actions:last-child > .mini-action{
    height:44px!important;
    min-height:44px!important;
    margin:0!important;
}

/* A ação do cartão de escopo é uma ação final do formulário e fica centralizada. */
.rh-modern-page .rh-access-form > .rh-form-actions:last-child{
    grid-column:1 / -1!important;
    width:100%!important;
    display:flex!important;
    justify-content:center!important;
    align-items:center!important;
    margin-top:2px!important;
}
.rh-modern-page .rh-access-form > .rh-form-actions:last-child > .mini-action{
    margin-left:auto!important;
    margin-right:auto!important;
}

@media screen and (max-width:650px){
    .rh-modern-page .rh-form-inline:not(.rh-per-page-form) > .mini-action,
    .rh-modern-page .rh-form-inline:not(.rh-per-page-form) > button.mini-action{
        align-self:stretch!important;
        width:100%!important;
    }
}


/* ================================================================
   RH v057 / v5.7 — ajuste fino do novo logo e do cabeçalho da recuperação
   - menu: logo um pouco mais largo e mais próximo do texto;
   - login: logo maior e mais encorpado;
   - recuperação: logo maior e kicker com fundo só no corpo do texto.
   ================================================================ */
.sidebar-brand{
    gap:10px !important;
    padding:14px 18px 14px !important;
}
.sidebar-brand img{
    width:92px !important;
    height:92px !important;
    object-fit:contain !important;
}
.sidebar-brand > div{
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
}
.sidebar-brand h1{line-height:1.08 !important; margin:0 !important;}
.sidebar-brand span{margin-top:2px !important;}
@media screen and (max-width:980px){
    .sidebar-brand{gap:9px !important; padding:13px 16px 13px !important;}
    .sidebar-brand img{width:84px !important; height:84px !important;}
}

.login-page.login-page-v424 .login-brand-integrated{
    gap:10px !important;
}
.login-page.login-page-v424 .login-brand-integrated img{
    width:172px !important;
    height:172px !important;
    flex:0 0 172px !important;
    object-fit:contain !important;
}
.login-page.login-page-v424 .login-brand-text strong{
    font-size:1rem !important;
}
.login-page.login-page-v424 .login-brand-text .login-brand-highlight{
    font-size:1.12rem !important;
}
@media screen and (max-width:430px){
    .login-page.login-page-v424 .login-brand-integrated img{
        width:132px !important;
        height:132px !important;
        flex-basis:132px !important;
    }
}

.recovery-page-v014 .recovery-brand-v014{
    gap:10px !important;
}
.recovery-page-v014 .recovery-brand-v014 img{
    width:70px !important;
    height:70px !important;
    flex:0 0 70px !important;
    object-fit:contain !important;
}
.recovery-page-v014 .recovery-brand-text-v014 strong{
    font-size:1rem !important;
}
.recovery-page-v014 .recovery-brand-highlight-v014{
    font-size:1.14rem !important;
}
.recovery-page-v014 .recovery-title-v014{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    text-align:center !important;
}
.recovery-page-v014 .recovery-title-v014 .login-kicker{
    display:inline-flex !important;
    width:auto !important;
    max-width:100% !important;
    align-self:center !important;
    text-align:center !important;
}
.recovery-page-v014 .recovery-intro-v048{
    width:auto !important;
    max-width:100% !important;
    text-align:center !important;
}
@media screen and (max-width:640px){
    .recovery-page-v014 .recovery-brand-v014 img{
        width:62px !important;
        height:62px !important;
        flex-basis:62px !important;
    }
}


/* ================================================================
   RH v057 / v5.7 — ajuste fino do logo da tela de login
   - mantém a largura do logo;
   - reduz um pouco a altura;
   - aumenta levemente a tipografia da marca.
   ================================================================ */
.login-page.login-page-v424 .login-brand-integrated{
    gap:10px !important;
    align-items:center !important;
}
.login-page.login-page-v424 .login-brand-integrated img{
    width:172px !important;
    height:154px !important;
    flex:0 0 172px !important;
    object-fit:contain !important;
}
.login-page.login-page-v424 .login-brand-text strong{
    font-size:1.08rem !important;
    line-height:1.04 !important;
}
.login-page.login-page-v424 .login-brand-text .login-brand-highlight{
    font-size:1.2rem !important;
}
@media screen and (max-width:430px){
    .login-page.login-page-v424 .login-brand-integrated img{
        width:132px !important;
        height:118px !important;
        flex-basis:132px !important;
    }
    .login-page.login-page-v424 .login-brand-text strong{
        font-size:.92rem !important;
    }
    .login-page.login-page-v424 .login-brand-text .login-brand-highlight{
        font-size:1.04rem !important;
    }
}


/* ================================================================
   RH v057 / v5.7 — login: logo mais baixo e texto mais próximo
   ================================================================ */
.login-page.login-page-v424 .login-brand-integrated{
    gap:2px !important;
    align-items:center !important;
    justify-content:center !important;
}
.login-page.login-page-v424 .login-brand-integrated img{
    width:172px !important;
    height:132px !important;
    flex:0 0 172px !important;
    object-fit:fill !important;
    margin-right:-10px !important;
}
.login-page.login-page-v424 .login-brand-text{
    margin-left:0 !important;
}
.login-page.login-page-v424 .login-brand-text strong{
    font-size:1.08rem !important;
    line-height:1.03 !important;
}
.login-page.login-page-v424 .login-brand-text .login-brand-highlight{
    font-size:1.20rem !important;
}
@media screen and (max-width:430px){
    .login-page.login-page-v424 .login-brand-integrated{
        gap:1px !important;
    }
    .login-page.login-page-v424 .login-brand-integrated img{
        width:132px !important;
        height:102px !important;
        flex-basis:132px !important;
        margin-right:-7px !important;
        object-fit:fill !important;
    }
}


/* ================================================================
   RH v062 / v6.2 — logo sem SRPQ e proporção natural no login
   - nova arte sem o texto SRPQ;
   - login com largura levemente menor;
   - altura automática para não deformar o emblema.
   ================================================================ */
.login-page.login-page-v424 .login-brand-integrated{
    gap:2px !important;
    align-items:center !important;
    justify-content:center !important;
}
.login-page.login-page-v424 .login-brand-integrated img{
    width:150px !important;
    height:auto !important;
    flex:0 0 150px !important;
    object-fit:contain !important;
    margin-right:-7px !important;
}
.login-page.login-page-v424 .login-brand-text{
    margin-left:0 !important;
}
@media screen and (max-width:430px){
    .login-page.login-page-v424 .login-brand-integrated img{
        width:118px !important;
        height:auto !important;
        flex-basis:118px !important;
        margin-right:-5px !important;
        object-fit:contain !important;
    }
}


/* ================================================================
   RH v062 / v6.2 — refinamento da marca no menu e recuperação
   - menu: mantém o tamanho aprovado do logo e aproxima o texto;
   - recuperação: amplia o logo para cerca do dobro do tamanho anterior;
   - login: nenhuma alteração visual em relação à v062.
   ================================================================ */
.sidebar-brand{
    gap:0 !important;
}
.sidebar-brand > div{
    margin-left:-8px !important;
}
@media screen and (max-width:980px){
    .sidebar-brand{
        gap:0 !important;
    }
    .sidebar-brand > div{
        margin-left:-7px !important;
    }
}

.recovery-page-v014 .recovery-brand-v014{
    gap:8px !important;
    align-items:center !important;
    justify-content:center !important;
}
.recovery-page-v014 .recovery-brand-v014 img{
    width:140px !important;
    height:140px !important;
    flex:0 0 140px !important;
    object-fit:contain !important;
}
@media screen and (max-width:640px){
    .recovery-page-v014 .recovery-brand-v014 img{
        width:124px !important;
        height:124px !important;
        flex-basis:124px !important;
    }
}


/* ================================================================
   RH v062 / v6.2 — recuperação alinhada à esquerda e favicon ampliado
   - mantém o tamanho aprovado do logo na recuperação;
   - aproxima o texto e alinha o conjunto à esquerda;
   - favicon reprocessado sem margens transparentes excessivas.
   ================================================================ */
.recovery-page-v014 .recovery-brand-v014{
    width:100% !important;
    justify-content:flex-start !important;
    text-align:left !important;
    gap:0 !important;
}
.recovery-page-v014 .recovery-brand-v014 img{
    margin-right:-12px !important;
}
.recovery-page-v014 .recovery-brand-text-v014{
    margin-left:0 !important;
    align-items:flex-start !important;
    text-align:left !important;
}
@media screen and (max-width:640px){
    .recovery-page-v014 .recovery-brand-v014 img{
        margin-right:-10px !important;
    }
}


/* ================================================================
   RH v062 / v6.2 — recuperação: marca alinhada corretamente e textos centrais
   - marca (logo + Sistema de Gestão / Recursos Humanos) alinhada à esquerda;
   - texto da marca mais próximo do logo, com espaçamento como no login;
   - mantém centralizados: “Recuperação de senha” e o aviso do código.
   ================================================================ */
.recovery-page-v014 .recovery-top-v014{
    justify-items:start !important;
    text-align:initial !important;
}
.recovery-page-v014 .recovery-brand-v014{
    width:auto !important;
    max-width:100% !important;
    align-self:start !important;
    justify-content:flex-start !important;
    align-items:center !important;
    text-align:left !important;
    gap:2px !important;
    margin:0 0 8px 0 !important;
}
.recovery-page-v014 .recovery-brand-v014 img{
    width:140px !important;
    height:140px !important;
    flex:0 0 140px !important;
    object-fit:contain !important;
    margin-right:-10px !important;
}
.recovery-page-v014 .recovery-brand-text-v014{
    margin-left:0 !important;
    align-items:flex-start !important;
    justify-content:center !important;
    text-align:left !important;
    line-height:1.02 !important;
}
.recovery-page-v014 .recovery-title-v014{
    width:100% !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:flex-start !important;
    text-align:center !important;
}
.recovery-page-v014 .recovery-title-v014 .login-kicker{
    display:inline-flex !important;
    width:auto !important;
    max-width:100% !important;
    align-self:center !important;
    text-align:center !important;
}
.recovery-page-v014 .recovery-intro-v048{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    text-align:center !important;
}
@media screen and (max-width:640px){
    .recovery-page-v014 .recovery-brand-v014{
        gap:1px !important;
    }
    .recovery-page-v014 .recovery-brand-v014 img{
        width:124px !important;
        height:124px !important;
        flex-basis:124px !important;
        margin-right:-8px !important;
    }
}


/* ================================================================
   RH v062 / v6.2 — recuperação com disposição consolidada no padrão do RH
   - marca pequena no cabeçalho branco, alinhada ao canto esquerdo;
   - texto da marca próximo ao logo;
   - selo/título e aviso centralizados logo abaixo, com menos espaço em branco.
   ================================================================ */
.recovery-page-v014 .recovery-card-v014{
    padding-top:22px !important;
}
.recovery-page-v014 .recovery-top-v014{
    display:grid !important;
    grid-template-columns:1fr !important;
    justify-items:start !important;
    align-items:start !important;
    gap:4px !important;
    margin-bottom:10px !important;
    text-align:initial !important;
}
.recovery-page-v014 .recovery-brand-v014{
    width:auto !important;
    max-width:100% !important;
    align-self:start !important;
    justify-content:flex-start !important;
    align-items:center !important;
    text-align:left !important;
    gap:4px !important;
    margin:0 !important;
}
.recovery-page-v014 .recovery-brand-v014 img{
    width:74px !important;
    height:74px !important;
    flex:0 0 74px !important;
    object-fit:contain !important;
    margin-right:-4px !important;
}
.recovery-page-v014 .recovery-brand-text-v014{
    margin-left:0 !important;
    align-items:flex-start !important;
    justify-content:center !important;
    text-align:left !important;
    line-height:1.01 !important;
    white-space:nowrap !important;
}
.recovery-page-v014 .recovery-brand-text-v014 strong{
    font-size:1rem !important;
}
.recovery-page-v014 .recovery-brand-highlight-v014{
    font-size:1.12rem !important;
}
.recovery-page-v014 .recovery-title-v014{
    width:100% !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:flex-start !important;
    text-align:center !important;
    margin-top:0 !important;
}
.recovery-page-v014 .recovery-title-v014 .login-kicker{
    display:inline-flex !important;
    width:auto !important;
    max-width:100% !important;
    align-self:center !important;
    text-align:center !important;
    margin:0 0 6px !important;
}
.recovery-page-v014 .recovery-intro-v048{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    text-align:center !important;
    margin:2px 0 0 !important;
}
@media screen and (max-width:640px){
    .recovery-page-v014 .recovery-top-v014{
        gap:3px !important;
        margin-bottom:8px !important;
    }
    .recovery-page-v014 .recovery-brand-v014 img{
        width:66px !important;
        height:66px !important;
        flex-basis:66px !important;
        margin-right:-3px !important;
    }
    .recovery-page-v014 .recovery-brand-text-v014 strong{
        font-size:.94rem !important;
    }
    .recovery-page-v014 .recovery-brand-highlight-v014{
        font-size:1.04rem !important;
    }
}


/* ================================================================
   RH v064 / v6.4 — correção restrita da marca no menu lateral
   - reduz o logo do menu;
   - devolve espaço visual entre o logo e os textos;
   - não altera login, recuperação, favicon, brasão interno ou relatórios.
   ================================================================ */
.sidebar-brand{
    gap:12px !important;
}
.sidebar-brand img{
    width:72px !important;
    height:72px !important;
    object-fit:contain !important;
}
.sidebar-brand > div{
    margin-left:0 !important;
}
@media screen and (max-width:980px){
    .sidebar-brand{
        gap:10px !important;
    }
    .sidebar-brand img{
        width:68px !important;
        height:68px !important;
    }
    .sidebar-brand > div{
        margin-left:0 !important;
    }
}


/* ================================================================
   RH v065 / v6.5 — Usuários: limpeza de descrições e alinhamento
   Correção restrita ao módulo Usuários.
   - o botão Criar usuário usa a mesma linha-base do seletor Status;
   - mantém 20px de área equivalente ao rótulo + 6px de intervalo;
   - não altera campos, regras, permissões ou outros módulos.
   ================================================================ */
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario{
    display:grid !important;
    grid-template-rows:20px 42px !important;
    row-gap:6px !important;
    align-self:start !important;
    align-items:stretch !important;
    justify-content:stretch !important;
    width:100% !important;
    height:auto !important;
    min-height:68px !important;
    max-height:none !important;
    padding:0 !important;
    margin:0 !important;
}
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario > .botao-criar-usuario-rotulo-espaco{
    display:block !important;
    width:100% !important;
    height:20px !important;
    min-height:20px !important;
    max-height:20px !important;
    margin:0 !important;
    padding:0 !important;
    visibility:hidden !important;
    line-height:20px !important;
}
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario > .botao-criar-usuario{
    width:100% !important;
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    margin:0 !important;
    align-self:stretch !important;
}
@media screen and (max-width:560px){
    html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario{
        display:flex !important;
        min-height:42px !important;
        height:42px !important;
        align-items:stretch !important;
        justify-content:center !important;
    }
    html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario > .botao-criar-usuario-rotulo-espaco{
        display:none !important;
    }
}


/* ================================================================
   RH v066 / v6.6 — Configuração de E-mail
   - remove texto auxiliar do e-mail de suporte;
   - sobe os controles TLS após a retirada do texto;
   - centraliza Salvar configurações na largura útil do formulário;
   - não altera lógica SMTP/TLS nem outras telas.
   ================================================================ */
html body.app-layout .card-config-email form.form-grid > .config-email-seguranca-row{
    grid-column:1 / -1 !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    gap:18px !important;
    align-items:end !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
}
html body.app-layout .card-config-email .config-email-seguranca-row > .config-email-campo-tls,
html body.app-layout .card-config-email .config-email-seguranca-row > .config-email-campo-certificado{
    grid-column:auto !important;
    width:100% !important;
    min-width:0 !important;
}
html body.app-layout .card-config-email .config-email-seguranca-row label{
    min-height:18px !important;
    margin-bottom:6px !important;
}
html body.app-layout .card-config-email .config-email-seguranca-row select{
    width:100% !important;
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    margin:0 !important;
}
html body.app-layout .card-config-email form.form-grid > .config-email-salvar-central{
    grid-column:1 / -1 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    margin:2px 0 0 !important;
    padding:0 !important;
}
html body.app-layout .card-config-email .config-email-salvar-central > button.botao-salvar-config{
    width:auto !important;
    min-width:220px !important;
    max-width:100% !important;
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    margin:0 auto !important;
}
@media screen and (max-width:640px){
    html body.app-layout .card-config-email form.form-grid > .config-email-seguranca-row{
        grid-template-columns:1fr !important;
        gap:14px !important;
    }
    html body.app-layout .card-config-email .config-email-salvar-central > button.botao-salvar-config{
        width:100% !important;
        min-width:0 !important;
    }
}


/* ================================================================
   RH v068 / v6.8 — Configuração de E-mail: linha compacta
   - E-mail de suporte, Usar TLS e Verificar certificado TLS ficam
     como campos normais da mesma grade de seis colunas;
   - elimina a linha de segurança em duas colunas largas da v066;
   - mantém Salvar configurações centralizado.
   ================================================================ */
html body.app-layout .card-config-email form.form-grid > .config-email-campo-tls,
html body.app-layout .card-config-email form.form-grid > .config-email-campo-certificado{
    grid-column:auto !important;
    width:auto !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
}
html body.app-layout .card-config-email form.form-grid > .config-email-campo-tls select,
html body.app-layout .card-config-email form.form-grid > .config-email-campo-certificado select{
    width:100% !important;
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    margin:0 !important;
}
html body.app-layout .card-config-email form.form-grid > .config-email-campo-tls label,
html body.app-layout .card-config-email form.form-grid > .config-email-campo-certificado label{
    min-height:18px !important;
    margin-bottom:6px !important;
}


/* ================================================================
   RH v069 / v6.9 — Usuários: alinhamento definitivo do Criar usuário
   - elimina o espaçador artificial usado nas versões anteriores;
   - o bloco do botão é alinhado ao fundo da mesma linha da grade;
   - como botão e selects têm 44px, o topo do botão coincide com o
     topo do campo Status do usuário.
   ================================================================ */
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario{
    display:flex !important;
    flex-direction:row !important;
    align-items:flex-end !important;
    justify-content:stretch !important;
    align-self:end !important;
    justify-self:stretch !important;
    width:100% !important;
    height:44px !important;
    min-height:44px !important;
    max-height:44px !important;
    padding:0 !important;
    margin:0 !important;
}
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario > .botao-criar-usuario{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    height:44px !important;
    min-height:44px !important;
    max-height:44px !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    margin:0 !important;
    box-sizing:border-box !important;
}
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline > .ajuste-botao-criar-usuario > .botao-criar-usuario-rotulo-espaco{
    display:none !important;
}


/* ================================================================
   RH v072 / v7.2 — ajustes pontuais solicitados
   ================================================================ */

/* Usuários: mantém o alinhamento vertical aprovado da v069, mas reduz
   apenas a distância horizontal entre Status do usuário e Criar usuário. */
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline >
.ajuste-botao-criar-usuario{
    margin-left:-6px !important;
    width:calc(100% + 6px) !important;
}

/* Férias e licença-prêmio: rótulo e controle passam a ter um respiro
   real e uniforme. O gap é aplicado ao conteúdo interno do label,
   evitando que Início, Fim, Dias, Abono etc. fiquem colados ao campo. */
.rh-modern-page .rh-ferias-periodo-form > label:not(.rh-upload-field),
.rh-modern-page .rh-ferias-movimento-form > label:not(.rh-upload-field),
.rh-modern-page .rh-lp-periodo-form > label:not(.rh-upload-field),
.rh-modern-page .rh-lp-movimento-form > label:not(.rh-upload-field){
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:10px !important;
    margin-bottom:0 !important;
    line-height:1.35 !important;
}
.rh-modern-page .rh-ferias-periodo-form > label:not(.rh-upload-field) > input,
.rh-modern-page .rh-ferias-periodo-form > label:not(.rh-upload-field) > select,
.rh-modern-page .rh-ferias-periodo-form > label:not(.rh-upload-field) > textarea,
.rh-modern-page .rh-ferias-movimento-form > label:not(.rh-upload-field) > input,
.rh-modern-page .rh-ferias-movimento-form > label:not(.rh-upload-field) > select,
.rh-modern-page .rh-ferias-movimento-form > label:not(.rh-upload-field) > textarea,
.rh-modern-page .rh-lp-periodo-form > label:not(.rh-upload-field) > input,
.rh-modern-page .rh-lp-periodo-form > label:not(.rh-upload-field) > select,
.rh-modern-page .rh-lp-periodo-form > label:not(.rh-upload-field) > textarea,
.rh-modern-page .rh-lp-movimento-form > label:not(.rh-upload-field) > input,
.rh-modern-page .rh-lp-movimento-form > label:not(.rh-upload-field) > select,
.rh-modern-page .rh-lp-movimento-form > label:not(.rh-upload-field) > textarea{
    margin-top:0 !important;
}

@media screen and (max-width:560px){
    html body.app-layout .card-novo-usuario form.form-novo-usuario-inline >
    .ajuste-botao-criar-usuario{
        margin-left:0 !important;
        width:100% !important;
    }
}


/* ================================================================
   RH v073 / v7.3 — primeiro acesso e ações de tabelas RH
   1) Primeiro acesso usa a mesma escala visual da marca da
      recuperação/redefinição e fica alinhado à esquerda.
   2) Ações em tabelas dos módulos novos RH ficam alinhadas entre si.
   Escopo restrito às telas/módulos RH; módulos herdados não são afetados.
   ================================================================ */

/* Primeiro acesso — mesma marca da recuperação/redefinição aprovada. */
.first-access-page-v444 .first-access-brand-v444{
    width:auto !important;
    max-width:100% !important;
    min-height:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    align-self:flex-start !important;
    gap:4px !important;
    margin:0 0 11px 0 !important;
    padding:0 !important;
    text-align:left !important;
}
.first-access-page-v444 .first-access-brand-v444 img{
    display:block !important;
    width:74px !important;
    height:74px !important;
    flex:0 0 74px !important;
    margin:0 -4px 0 0 !important;
    padding:0 !important;
    object-fit:contain !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
}
.first-access-page-v444 .first-access-brand-v444 .recovery-brand-text-v427{
    display:flex !important;
    min-width:0 !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:center !important;
    gap:1px !important;
    margin:0 !important;
    color:var(--brand-navy,#12366f) !important;
    line-height:1.01 !important;
    text-align:left !important;
    white-space:nowrap !important;
}
.first-access-page-v444 .first-access-brand-v444 .recovery-brand-text-v427 strong{
    display:block !important;
    font-size:1rem !important;
    white-space:nowrap !important;
}
.first-access-page-v444 .first-access-brand-v444 .recovery-brand-highlight-v427{
    font-size:1.12rem !important;
    color:var(--brand-teal,#0f9f9a) !important;
}

@media screen and (max-width:640px){
    .first-access-page-v444 .first-access-brand-v444{
        gap:3px !important;
    }
    .first-access-page-v444 .first-access-brand-v444 img{
        width:66px !important;
        height:66px !important;
        flex-basis:66px !important;
        margin-right:-3px !important;
    }
    .first-access-page-v444 .first-access-brand-v444 .recovery-brand-text-v427 strong{
        font-size:.94rem !important;
    }
    .first-access-page-v444 .first-access-brand-v444 .recovery-brand-highlight-v427{
        font-size:1.04rem !important;
    }
}

/* Tabelas dos módulos novos RH: ações sempre na mesma linha/base,
   com a mesma altura e sem formulário empurrando um botão para cima/baixo. */
.rh-modern-page .rh-table-wrap td .rh-inline-actions,
.rh-modern-page .rh-table-wrap td .rh-actions{
    display:flex !important;
    flex-wrap:nowrap !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    gap:8px !important;
    margin:0 !important;
    white-space:nowrap !important;
}
.rh-modern-page .rh-table-wrap td .rh-inline-actions > form,
.rh-modern-page .rh-table-wrap td .rh-actions > form{
    display:flex !important;
    align-items:stretch !important;
    margin:0 !important;
    padding:0 !important;
}
.rh-modern-page .rh-table-wrap td .rh-inline-actions > .mini-action,
.rh-modern-page .rh-table-wrap td .rh-inline-actions > a.mini-action,
.rh-modern-page .rh-table-wrap td .rh-inline-actions > button,
.rh-modern-page .rh-table-wrap td .rh-inline-actions > form > button,
.rh-modern-page .rh-table-wrap td .rh-actions > .mini-action,
.rh-modern-page .rh-table-wrap td .rh-actions > a.mini-action,
.rh-modern-page .rh-table-wrap td .rh-actions > button,
.rh-modern-page .rh-table-wrap td .rh-actions > form > button{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    height:38px !important;
    min-height:38px !important;
    max-height:38px !important;
    margin:0 !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    box-sizing:border-box !important;
    white-space:nowrap !important;
    line-height:1 !important;
}

/* Quando a célula de ação possui formulário diretamente, sem grupo,
   também elimina margens verticais que quebravam a linha da tabela. */
.rh-modern-page .rh-table-wrap td > form{
    margin:0 !important;
    padding:0 !important;
}
.rh-modern-page .rh-table-wrap td > form > button.mini-action,
.rh-modern-page .rh-table-wrap td > form > button.mini-danger,
.rh-modern-page .rh-table-wrap td > form > button.danger{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    height:38px !important;
    min-height:38px !important;
    max-height:38px !important;
    margin:0 !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    box-sizing:border-box !important;
}

/* A tabela pode rolar horizontalmente quando houver várias ações,
   em vez de empilhar os botões e perder o alinhamento. */
.rh-modern-page .rh-table-wrap{
    overflow-x:auto !important;
}


/* ================================================================
   RH v074 / v7.4 — Usuários: botão Criar usuário no padrão visual do RH
   - remove a expansão da coluna introduzida nas versões RH;
   - usa a lógica compacta consolidada: 148–190 px;
   - restaura o gap normal de 14 px entre Status e o botão;
   - mantém altura de 42 px, igual ao select Status do usuário.
   ================================================================ */
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline >
.ajuste-botao-criar-usuario{
    width:auto !important;
    min-width:0 !important;
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    margin:0 !important;
    margin-left:0 !important;
    padding:0 !important;
    align-self:end !important;
    justify-self:start !important;
    align-items:flex-end !important;
    justify-content:flex-start !important;
}
html body.app-layout .card-novo-usuario form.form-novo-usuario-inline >
.ajuste-botao-criar-usuario > .botao-criar-usuario{
    width:auto !important;
    min-width:148px !important;
    max-width:190px !important;
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    margin:0 !important;
    padding:0 22px !important;
}
@media screen and (max-width:560px){
    html body.app-layout .card-novo-usuario form.form-novo-usuario-inline >
    .ajuste-botao-criar-usuario{
        width:100% !important;
        justify-self:stretch !important;
        justify-content:center !important;
    }
    html body.app-layout .card-novo-usuario form.form-novo-usuario-inline >
    .ajuste-botao-criar-usuario > .botao-criar-usuario{
        width:auto !important;
        max-width:190px !important;
    }
}

/* Recuperação: o bloco dinâmico ocupa exatamente a mesma largura
   dos demais campos quando alterna CPF ↔ Usuário/Login. */
.recovery-form-v014 #identificador-cpf-recuperacao,
.recovery-form-v014 #identificador-usuario-recuperacao{
    width:100%;
    margin:0;
    padding:0;
}
.recovery-form-v014 #identificador-cpf-recuperacao[hidden],
.recovery-form-v014 #identificador-usuario-recuperacao[hidden]{
    display:none !important;
}


/* ================================================================
   RH v077 / v7.7 — Recuperação: Reenviar código como link puro
   ================================================================ */
.recovery-page-v014 .recovery-actions-v014 button.link-button,
.recovery-page-v014 .recovery-actions-v014 button.link-button:hover,
.recovery-page-v014 .recovery-actions-v014 button.link-button:active,
.recovery-page-v014 .recovery-actions-v014 button.link-button:focus{
    -webkit-appearance:none !important;
    appearance:none !important;
    width:auto !important;
    min-width:0 !important;
    min-height:0 !important;
    height:auto !important;
    margin:0 !important;
    padding:2px 0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    background-image:none !important;
    box-shadow:none !important;
    filter:none !important;
    transform:none !important;
    color:#087f82 !important;
    font-size:13px !important;
    font-weight:800 !important;
    line-height:1.3 !important;
    cursor:pointer !important;
}
.recovery-page-v014 .recovery-actions-v014 button.link-button:hover{
    color:#22516a !important;
    text-decoration:underline !important;
}
.recovery-page-v014 .recovery-actions-v014 button.link-button:focus-visible{
    outline:2px solid rgba(8,127,130,.45) !important;
    outline-offset:3px !important;
    text-decoration:underline !important;
}
.recovery-page-v014 .recovery-actions-v014 button.link-button:disabled{
    background:transparent !important;
    box-shadow:none !important;
    filter:none !important;
    transform:none !important;
    opacity:.58 !important;
    cursor:default !important;
    text-decoration:none !important;
}


/* ================================================================
   RH v079 / v7.9 — Redefinição: olhos de senha perfeitamente centrados
   - reutiliza o controle de visualização já estável do sistema;
   - centraliza vertical e horizontalmente o glyph;
   - não altera tamanho/altura dos campos Nova senha e Confirmar nova senha.
   ================================================================ */
.recovery-page-v426.recovery-reset-v014 .recovery-password-v014{
    position:relative !important;
}
.recovery-page-v426.recovery-reset-v014 .recovery-password-v014 >
.recovery-password-toggle-v426{
    position:absolute !important;
    top:50% !important;
    right:4px !important;
    bottom:auto !important;
    left:auto !important;
    transform:translateY(-50%) !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:38px !important;
    min-width:38px !important;
    max-width:38px !important;
    height:38px !important;
    min-height:38px !important;
    max-height:38px !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:8px !important;
    background:transparent !important;
    box-shadow:none !important;
    filter:none !important;
    line-height:1 !important;
}
.recovery-page-v426.recovery-reset-v014 .recovery-password-v014 >
.recovery-password-toggle-v426 i{
    display:block !important;
    width:auto !important;
    height:auto !important;
    margin:0 !important;
    padding:0 !important;
    font-size:17px !important;
    line-height:1 !important;
    vertical-align:middle !important;
    transform:none !important;
}
.recovery-page-v426.recovery-reset-v014 .recovery-password-v014 input{
    padding-right:48px !important;
}


/* ================================================================
   RH v082 / v8.2 — Coluna Ação/Ações centralizada nos módulos novos RH
   Escopo explícito pela classe .rh-action-column adicionada apenas
   aos templates novos de RH. Módulos herdados permanecem intocados.
   ================================================================ */
th.rh-action-column,
td.rh-action-column{
    text-align:center !important;
    vertical-align:middle !important;
}

td.rh-action-column > .rh-actions,
td.rh-action-column > .rh-inline-actions{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    margin-left:auto !important;
    margin-right:auto !important;
}

td.rh-action-column > .rh-actions > form,
td.rh-action-column > .rh-inline-actions > form{
    margin-top:0 !important;
    margin-bottom:0 !important;
}

td.rh-action-column > form{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    margin:0 !important;
}

td.rh-action-column > a,
td.rh-action-column > button{
    margin-left:auto !important;
    margin-right:auto !important;
}


/* ================================================================
   RH v083 / v8.3 — seletores dos módulos novos + Licença-prêmio
   ================================================================ */

/* O menu aberto já era centralizado pelo componente v552.
   Aqui o campo fechado recebe padding simétrico para o valor selecionado
   ficar visualmente no centro mesmo com o ícone de seta à direita. */
html body.app-layout.rh-modern-page select{
    text-align:center !important;
    text-align-last:center !important;
    padding-left:32px !important;
    padding-right:32px !important;
}
html body.app-layout.rh-modern-page select option,
html body.app-layout.rh-modern-page select optgroup{
    text-align:center !important;
}

/* Aviso local do novo movimento de licença-prêmio. */
.rh-modern-page .rh-lp-movimento-form .rh-lp-movimento-aviso{
    grid-column:1 / -1 !important;
    width:100% !important;
    box-sizing:border-box !important;
    margin:0 0 2px 0 !important;
    text-align:center !important;
}
.rh-modern-page .rh-lp-movimento-form .rh-lp-movimento-aviso[hidden]{
    display:none !important;
}
.rh-modern-page .rh-lp-movimento-form #rh-lp-dias[readonly]{
    background:#f7faf9 !important;
    color:#12366f !important;
    font-weight:800 !important;
    cursor:default !important;
}
.rh-modern-page .rh-lp-movimento-form #rh-lp-dias-ajuda{
    display:block !important;
    margin-top:6px !important;
    text-align:center !important;
}


/* ================================================================
   RH v084 / v8.4 — Férias e Licença-prêmio: validações de período
   ================================================================ */
.rh-modern-page .rh-ferias-periodo-form .rh-ferias-periodo-aviso,
.rh-modern-page .rh-ferias-movimento-form .rh-ferias-movimento-aviso{
    grid-column:1 / -1 !important;
    width:100% !important;
    box-sizing:border-box !important;
    margin:0 0 2px 0 !important;
    text-align:center !important;
}
.rh-modern-page .rh-ferias-periodo-form .rh-ferias-periodo-aviso[hidden],
.rh-modern-page .rh-ferias-movimento-form .rh-ferias-movimento-aviso[hidden]{
    display:none !important;
}
.rh-modern-page .rh-ferias-periodo-form #rh-ferias-periodo-fim[readonly]{
    background:#f7faf9 !important;
    color:#12366f !important;
    font-weight:700 !important;
    cursor:default !important;
}
.rh-modern-page .rh-ferias-movimento-form #rh-ferias-dias-ajuda,
.rh-modern-page .rh-ferias-periodo-form small{
    display:block !important;
    margin-top:6px !important;
    text-align:center !important;
}


/* ================================================================
   RH v085 / v8.5 — Saldos anteriores: Unidade e horas decimais
   ================================================================ */

/* O select nativo reserva espaço desigual para a seta à direita.
   Neste campo específico, removemos a seta nativa e desenhamos uma seta
   própria no mesmo lado, deixando padding realmente simétrico para o texto. */
html body.app-layout.rh-modern-page #acervo-unidade.rh-select-central-exato{
    -webkit-appearance:none !important;
    appearance:none !important;
    text-align:center !important;
    text-align-last:center !important;
    padding-left:38px !important;
    padding-right:38px !important;
    background-image:
        linear-gradient(45deg, transparent 50%, currentColor 50%),
        linear-gradient(135deg, currentColor 50%, transparent 50%) !important;
    background-position:
        calc(100% - 17px) 50%,
        calc(100% - 12px) 50% !important;
    background-size:5px 5px,5px 5px !important;
    background-repeat:no-repeat !important;
}
html body.app-layout.rh-modern-page #acervo-unidade.rh-select-central-exato option{
    text-align:center !important;
}

.rh-modern-page #rh-acervo-anterior-form #acervo-quantidade{
    text-align:center !important;
}


/* ================================================================
   RH v088 / v8.8 — refinamentos Saldos anteriores / Férias / LP
   ================================================================ */

/* Quantidade: centralização efetiva do placeholder, cursor e texto digitado.
   Padding simétrico evita deslocamento visual do conteúdo. */
html body.app-layout.rh-modern-page #rh-acervo-anterior-form #acervo-quantidade{
    display:block !important;
    width:100% !important;
    box-sizing:border-box !important;
    text-align:center !important;
    text-align-last:center !important;
    direction:ltr !important;
    padding-left:14px !important;
    padding-right:14px !important;
    text-indent:0 !important;
    font-variant-numeric:tabular-nums !important;
}
html body.app-layout.rh-modern-page #rh-acervo-anterior-form #acervo-quantidade::placeholder{
    text-align:center !important;
    opacity:.72 !important;
}

/* Licença-prêmio: a orientação curta abaixo de Dias permanece,
   mas alinhada à esquerda conforme o restante das ajudas de campo. */
.rh-modern-page .rh-lp-movimento-form #rh-lp-dias-ajuda{
    text-align:left !important;
}

/* Férias: a descrição de cálculo automático foi removida do template.
   Regra mantida apenas por segurança caso exista HTML em cache. */
.rh-modern-page .rh-ferias-movimento-form #rh-ferias-dias-ajuda{
    display:none !important;
}


/* ================================================================
   RH v089 / v8.9 — Férias e Encerramento formal
   ================================================================ */

/* Férias — a orientação "Calculado automaticamente..." pertence ao campo
   Fim e deve seguir o alinhamento natural do próprio campo. */
.rh-modern-page .rh-ferias-periodo-form small{
    text-align:left !important;
}

/* Encerramento — anexo na mesma linha visual da justificativa,
   com espaço suficiente para o seletor de arquivo não ficar comprimido. */
.rh-modern-page #encerramento .rh-encerramento-form .rh-encerramento-anexo{
    grid-column:span 2 !important;
    align-self:stretch !important;
    width:100% !important;
    box-sizing:border-box !important;
}
.rh-modern-page #encerramento .rh-encerramento-form .rh-encerramento-anexo input[type="file"]{
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
}

@media screen and (max-width:650px){
    .rh-modern-page #encerramento .rh-encerramento-form .rh-encerramento-anexo{
        grid-column:span 1 !important;
    }
}


/* ================================================================
   RH v091 / v9.1 — Convocação de Férias
   ================================================================ */
.rh-modern-page .rh-ferias-convocacao-v033 .rh-ferias-convocacao-aviso{
    grid-column:1 / -1 !important;
    width:100% !important;
    box-sizing:border-box !important;
    margin:0 0 2px 0 !important;
    text-align:center !important;
}
.rh-modern-page .rh-ferias-convocacao-v033 .rh-ferias-convocacao-aviso[hidden]{
    display:none !important;
}
.rh-modern-page .rh-ferias-convocacao-v033 #rh-ferias-convocacao-dias{
    text-align:center !important;
}


/* ================================================================
   RH v101 / v10.1 — Ações de Férias/LP + período de 5 anos LP
   Escopo somente nos módulos novos de RH.
   ================================================================ */
.rh-modern-page td.rh-action-column > .rh-record-actions{display:flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;flex-wrap:wrap!important;width:100%!important;margin:0!important;}
.rh-modern-page td.rh-action-column > .rh-record-actions > form{display:flex!important;align-items:center!important;justify-content:center!important;margin:0!important;width:auto!important;}
.rh-modern-page td.rh-action-column > .rh-record-actions > .mini-action,
.rh-modern-page td.rh-action-column > .rh-record-actions > .mini-danger,
.rh-modern-page td.rh-action-column > .rh-record-actions > form > .mini-action,
.rh-modern-page td.rh-action-column > .rh-record-actions > form > .mini-danger{min-width:104px!important;width:104px!important;height:38px!important;min-height:38px!important;padding:0 12px!important;margin:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;box-sizing:border-box!important;white-space:nowrap!important;}
.rh-modern-page td.rh-action-column > .rh-record-actions-movement{min-width:220px!important;flex-direction:column!important;align-items:stretch!important;}
.rh-modern-page td.rh-action-column > .rh-record-actions-movement > .mini-action{width:100%!important;min-width:100%!important;}
.rh-modern-page td.rh-action-column > .rh-record-actions-movement > .rh-estorno-form{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;width:100%!important;margin:0!important;}
.rh-modern-page td.rh-action-column > .rh-record-actions-movement > .rh-estorno-form input[name="motivo_estorno"]{width:100%!important;min-width:0!important;margin:0!important;}
.rh-modern-page td.rh-action-column > .rh-record-actions-movement > .rh-estorno-form .mini-action{width:100%!important;min-width:100%!important;height:38px!important;min-height:38px!important;margin:0!important;}
.rh-modern-page form[data-rh-lp-periodo-form] [data-rh-lp-periodo-fim][readonly]{background:#f7faf9!important;color:#12366f!important;font-weight:700!important;cursor:default!important;}
.rh-modern-page form[data-rh-lp-periodo-form] .rh-lp-periodo-aviso{grid-column:1 / -1!important;width:100%!important;box-sizing:border-box!important;margin:0 0 2px 0!important;text-align:center!important;}
.rh-modern-page form[data-rh-lp-periodo-form] .rh-lp-periodo-aviso[hidden]{display:none!important;}
.rh-modern-page form[data-rh-lp-periodo-form] small{display:block!important;margin-top:6px!important;text-align:left!important;}
@media screen and (max-width:650px){
  .rh-modern-page td.rh-action-column > .rh-record-actions{flex-direction:column!important;align-items:stretch!important;}
  .rh-modern-page td.rh-action-column > .rh-record-actions > .mini-action,
  .rh-modern-page td.rh-action-column > .rh-record-actions > .mini-danger,
  .rh-modern-page td.rh-action-column > .rh-record-actions > form,
  .rh-modern-page td.rh-action-column > .rh-record-actions > form > .mini-action,
  .rh-modern-page td.rh-action-column > .rh-record-actions > form > .mini-danger{width:100%!important;min-width:100%!important;}
}


/* ================================================================
   RH v102 / v10.2 — edição compacta + alinhamento Abonadas
   Escopo somente nos módulos novos de RH.
   ================================================================ */
.rh-modern-page .rh-edit-compact-form{
    width:min(100%,920px)!important;
    max-width:920px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    justify-content:center!important;
}
.rh-modern-page .rh-edit-period-form{
    grid-template-columns:178px 178px 132px 150px!important;
}
.rh-modern-page .rh-edit-lp-period-form{
    grid-template-columns:178px 122px 178px 132px!important;
}
.rh-modern-page .rh-edit-movement-form{
    grid-template-columns:minmax(240px,320px) 178px 178px 112px!important;
}
.rh-modern-page .rh-edit-compact-form .rh-edit-period-select select{
    width:100%!important;
    max-width:320px!important;
}
.rh-modern-page .rh-edit-compact-form .rh-compact-date input[type="date"]{
    width:178px!important;
    min-width:178px!important;
    max-width:178px!important;
}
.rh-modern-page .rh-edit-compact-form .rh-compact-number input[type="number"],
.rh-modern-page .rh-edit-compact-form .rh-compact-number select{
    width:112px!important;
    min-width:112px!important;
    max-width:132px!important;
}
@media(min-width:1101px){
    .rh-modern-page .rh-abonadas-form .rh-abonada-documento{
        margin-top:22px!important;
    }
}
@media screen and (max-width:760px){
    .rh-modern-page .rh-edit-period-form,
    .rh-modern-page .rh-edit-lp-period-form,
    .rh-modern-page .rh-edit-movement-form{
        grid-template-columns:1fr!important;
        width:100%!important;
        max-width:100%!important;
    }
    .rh-modern-page .rh-edit-compact-form .rh-compact-date input[type="date"],
    .rh-modern-page .rh-edit-compact-form .rh-compact-number input[type="number"],
    .rh-modern-page .rh-edit-compact-form .rh-compact-number select,
    .rh-modern-page .rh-edit-compact-form .rh-edit-period-select select{
        width:100%!important;
        min-width:0!important;
        max-width:100%!important;
    }
}


/* ================================================================
   RH v103 / v10.3 — ações compactas + ícone Editar
   Escopo somente nas segundas tabelas (movimentos) de Férias e LP.
   ================================================================ */
.rh-modern-page td.rh-action-column > .rh-record-actions.rh-record-actions-movement{
    min-width:0!important;
    width:auto!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:center!important;
    gap:10px!important;
    flex-wrap:wrap!important;
}
.rh-modern-page td.rh-action-column > .rh-record-actions.rh-record-actions-movement > .mini-action{
    width:104px!important;
    min-width:104px!important;
    height:38px!important;
    min-height:38px!important;
}
.rh-modern-page td.rh-action-column > .rh-record-actions.rh-record-actions-movement > .rh-estorno-form{
    display:flex!important;
    grid-template-columns:none!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    width:auto!important;
    min-width:0!important;
    margin:0!important;
}
.rh-modern-page td.rh-action-column > .rh-record-actions.rh-record-actions-movement > .rh-estorno-form input[name="motivo_estorno"]{
    width:180px!important;
    min-width:140px!important;
    max-width:180px!important;
    margin:0!important;
}
.rh-modern-page td.rh-action-column > .rh-record-actions.rh-record-actions-movement > .rh-estorno-form .mini-action{
    width:104px!important;
    min-width:104px!important;
    height:38px!important;
    min-height:38px!important;
    margin:0!important;
}
@media screen and (max-width:650px){
    .rh-modern-page td.rh-action-column > .rh-record-actions.rh-record-actions-movement{
        width:100%!important;
        flex-direction:column!important;
        align-items:stretch!important;
    }
    .rh-modern-page td.rh-action-column > .rh-record-actions.rh-record-actions-movement > .mini-action,
    .rh-modern-page td.rh-action-column > .rh-record-actions.rh-record-actions-movement > .rh-estorno-form,
    .rh-modern-page td.rh-action-column > .rh-record-actions.rh-record-actions-movement > .rh-estorno-form input[name="motivo_estorno"],
    .rh-modern-page td.rh-action-column > .rh-record-actions.rh-record-actions-movement > .rh-estorno-form .mini-action{
        width:100%!important;
        min-width:100%!important;
        max-width:100%!important;
    }
    .rh-modern-page td.rh-action-column > .rh-record-actions.rh-record-actions-movement > .rh-estorno-form{
        flex-direction:column!important;
    }
}

/* ================================================================
   RH v104 / v10.4 — filiação, datas padronizadas no RH e refinamentos visuais
   ================================================================ */
/* Filiação: campos longos ocupam meia linha cada no grid de 4 colunas. */
.rh-modern-page .rh-parent-field{min-width:0!important;}
.rh-modern-page .rh-parent-field input{width:100%!important;max-width:none!important;}
.rh-modern-page .rh-person-parentage{margin-top:12px!important;}

/* Data manual visível dd/mm/aaaa; fonte ISO nativa permanece no formulário. */
.rh-modern-page .rh-date-manual-wrap{position:relative!important;display:block!important;width:100%!important;min-width:0!important;}
.rh-modern-page .rh-date-manual-wrap > .rh-date-br-visible{width:100%!important;min-width:0!important;max-width:100%!important;padding-left:38px!important;padding-right:38px!important;text-align:center!important;text-align-last:center!important;font-variant-numeric:tabular-nums!important;box-sizing:border-box!important;}
.rh-modern-page .rh-date-manual-wrap > .rh-date-native-source{position:absolute!important;left:auto!important;right:8px!important;top:50%!important;width:1px!important;min-width:1px!important;max-width:1px!important;height:1px!important;min-height:1px!important;padding:0!important;margin:0!important;border:0!important;opacity:0!important;pointer-events:none!important;transform:translateY(-50%)!important;}
.rh-modern-page .rh-date-calendar-button{position:absolute!important;right:5px!important;top:50%!important;transform:translateY(-50%)!important;width:30px!important;min-width:30px!important;height:30px!important;min-height:30px!important;padding:0!important;margin:0!important;border:0!important;background:transparent!important;color:#0f8f8a!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:7px!important;cursor:pointer!important;z-index:3!important;box-shadow:none!important;}
.rh-modern-page .rh-date-calendar-button i{width:17px!important;height:17px!important;color:#0f8f8a!important;background-color:currentColor!important;}
.rh-modern-page .rh-date-calendar-button:hover,.rh-modern-page .rh-date-calendar-button:focus-visible{background:#eef7f8!important;color:#0b7776!important;box-shadow:none!important;}
.rh-modern-page .rh-date-calendar-button:hover i,.rh-modern-page .rh-date-calendar-button:focus-visible i{color:#0b7776!important;}
.rh-modern-page .rh-date-calendar-button[hidden]{display:none!important;}
.rh-modern-page .rh-date-br-visible[readonly]{background:#f7faf9!important;color:#12366f!important;font-weight:700!important;cursor:default!important;padding-left:12px!important;padding-right:12px!important;text-align:center!important;text-align-last:center!important;}
.rh-modern-page .rh-edit-compact-form .rh-compact-date .rh-date-manual-wrap{width:178px!important;min-width:178px!important;max-width:178px!important;}

/* Segunda tabela de Férias/LP: Editar acima de Estornar, ambos compactos e alinhados. */
.rh-modern-page td.rh-action-column > .rh-record-actions.rh-record-actions-movement{width:104px!important;min-width:104px!important;max-width:104px!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:8px!important;flex-wrap:nowrap!important;margin:0 auto!important;}
.rh-modern-page td.rh-action-column > .rh-record-actions.rh-record-actions-movement > .mini-action,
.rh-modern-page td.rh-action-column > .rh-record-actions.rh-record-actions-movement > .rh-estorno-dialog-form,
.rh-modern-page td.rh-action-column > .rh-record-actions.rh-record-actions-movement > .rh-estorno-dialog-form > .mini-action{width:104px!important;min-width:104px!important;max-width:104px!important;margin:0!important;}
.rh-modern-page td.rh-action-column > .rh-record-actions.rh-record-actions-movement > .rh-estorno-dialog-form{display:block!important;}

/* Justificativa de estorno: somente depois do clique. */
.rh-modern-page dialog.rh-estorno-dialog{border:0!important;border-radius:14px!important;padding:0!important;width:min(92vw,520px)!important;max-width:520px!important;box-shadow:0 24px 70px rgba(18,54,111,.24)!important;color:inherit!important;}
.rh-modern-page dialog.rh-estorno-dialog::backdrop{background:rgba(20,35,55,.38)!important;}
.rh-modern-page .rh-estorno-dialog-card{padding:20px!important;display:flex!important;flex-direction:column!important;gap:12px!important;background:#fff!important;}
.rh-modern-page .rh-estorno-dialog-card h4{margin:0!important;line-height:1.35!important;color:#12366f!important;}
.rh-modern-page .rh-estorno-dialog-card .rh-help{margin:0!important;}
.rh-modern-page .rh-estorno-dialog-card label{display:flex!important;flex-direction:column!important;gap:7px!important;margin:0!important;}
.rh-modern-page .rh-estorno-dialog-card textarea{width:100%!important;min-height:96px!important;resize:vertical!important;box-sizing:border-box!important;}
.rh-modern-page .rh-estorno-dialog-card .rh-form-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;margin:0!important;padding-top:2px!important;}
.rh-modern-page .rh-estorno-dialog-card .rh-form-actions .mini-action{width:auto!important;min-width:112px!important;}

/* Edição inline: título e rodapé respiram dentro da área, sem encostar nas bordas. */
.rh-modern-page .rh-edit-compact-form{padding:16px 14px 14px!important;row-gap:10px!important;align-items:start!important;box-sizing:border-box!important;}
.rh-modern-page .rh-edit-compact-form > h4{grid-column:1 / -1!important;display:flex!important;align-items:center!important;min-height:30px!important;line-height:1.3!important;margin:0 0 3px!important;padding:3px 0 5px!important;}
.rh-modern-page .rh-edit-compact-form > .rh-form-actions.rh-submit-full{grid-column:1 / -1!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;min-height:44px!important;margin:0!important;padding:5px 0 1px!important;align-self:center!important;}
.rh-modern-page .rh-edit-compact-form > .rh-form-actions.rh-submit-full .mini-action{height:38px!important;min-height:38px!important;margin:0!important;}
.rh-modern-page .rh-edit-period-form{grid-template-columns:178px 178px 132px 190px!important;}
.rh-modern-page .rh-edit-period-form .rh-edit-abono-label{white-space:nowrap!important;}
.rh-modern-page .rh-edit-period-form .rh-edit-abono-label input{display:block!important;white-space:normal!important;}

/* Unidades e Setores: proporção conforme conteúdo, labels afastados e botões padrão. */
.rh-modern-page .rh-unidades-cadastro-grid .rh-mini-form{align-items:start!important;row-gap:12px!important;}
.rh-modern-page .rh-unidades-cadastro-grid .rh-mini-form label{display:flex!important;flex-direction:column!important;gap:7px!important;margin:0!important;min-width:0!important;}
.rh-modern-page .rh-unidade-cadastro-form{grid-template-columns:minmax(220px,1fr) 112px!important;}
.rh-modern-page .rh-unidade-nome{grid-column:1!important;}
.rh-modern-page .rh-unidade-sigla{grid-column:2!important;}
.rh-modern-page .rh-unidade-actions{grid-column:1 / -1!important;display:flex!important;justify-content:center!important;margin-top:2px!important;}
.rh-modern-page .rh-setor-cadastro-form{grid-template-columns:minmax(220px,1fr) 112px!important;}
.rh-modern-page .rh-setor-unidade{grid-column:1 / -1!important;}
.rh-modern-page .rh-setor-nome{grid-column:1!important;}
.rh-modern-page .rh-setor-sigla{grid-column:2!important;}
.rh-modern-page .rh-setor-actions{grid-column:1 / -1!important;display:flex!important;justify-content:center!important;margin-top:2px!important;}
.rh-modern-page .rh-unidade-actions .mini-action,
.rh-modern-page .rh-setor-actions .mini-action{width:auto!important;min-width:148px!important;max-width:190px!important;height:40px!important;min-height:40px!important;padding:0 16px!important;margin:0!important;}
.rh-modern-page .rh-planejamento-prioridade{width:100%!important;max-width:180px!important;justify-self:center!important;}
.rh-modern-page .rh-planejamento-prioridade select{width:100%!important;max-width:180px!important;}

@media screen and (max-width:760px){
  .rh-modern-page .rh-edit-period-form{grid-template-columns:1fr!important;}
  .rh-modern-page .rh-edit-compact-form .rh-compact-date .rh-date-manual-wrap{width:100%!important;min-width:0!important;max-width:100%!important;}
  .rh-modern-page .rh-unidade-cadastro-form,
  .rh-modern-page .rh-setor-cadastro-form{grid-template-columns:1fr!important;}
  .rh-modern-page .rh-unidade-nome,.rh-modern-page .rh-unidade-sigla,
  .rh-modern-page .rh-setor-unidade,.rh-modern-page .rh-setor-nome,.rh-modern-page .rh-setor-sigla,
  .rh-modern-page .rh-unidade-actions,.rh-modern-page .rh-setor-actions{grid-column:1!important;}
  .rh-modern-page .rh-planejamento-prioridade{max-width:100%!important;justify-self:stretch!important;}
  .rh-modern-page td.rh-action-column > .rh-record-actions.rh-record-actions-movement{width:104px!important;min-width:104px!important;max-width:104px!important;align-items:center!important;}
}


/* ================================================================
   RH v105 / v10.5 — restauração visual dos campos de data e cor do estorno
   Mantém integralmente a digitação/apagamento dd/mm/aaaa da v104.
   ================================================================ */
.rh-modern-page .rh-date-br-visible::placeholder{
    text-align:center!important;
    color:#7b8794!important;
    opacity:1!important;
}
.rh-modern-page .rh-date-calendar-button{
    appearance:none!important;
    -webkit-appearance:none!important;
}
.rh-modern-page .rh-estornar-button{
    background:#f59e0b!important;
    border-color:#d97706!important;
    color:#ffffff!important;
    box-shadow:0 3px 8px rgba(217,119,6,.18)!important;
}
.rh-modern-page .rh-estornar-button i{color:#ffffff!important;}
.rh-modern-page .rh-estornar-button:hover,
.rh-modern-page .rh-estornar-button:focus-visible{
    background:#d97706!important;
    border-color:#b45309!important;
    color:#ffffff!important;
    box-shadow:0 4px 10px rgba(180,83,9,.24)!important;
}


/* ================================================================
   RH v123 / v12.3 — Meu RH por seção e respiro no Controle Anual.
   ================================================================ */
.rh-modern-page .rh-employee-tabs a.is-active{
    background:#0f9894!important;
    color:#fff!important;
    border-color:#0b8582!important;
    box-shadow:0 4px 10px rgba(15,152,148,.18)!important;
}
.rh-modern-page .rh-controle-anual-filter{
    margin-bottom:18px!important;
}


/* ===== v14.2 — foco do campo de senha sem quadrado separado no botão do olho ===== */
.login-page-v424 .input-password-v422 .password-toggle-v422,
.login-page-v424 .input-password-v422 .password-toggle-v422:hover,
.login-page-v424 .input-password-v422 .password-toggle-v422:focus,
.login-page-v424 .input-password-v422 .password-toggle-v422:focus-visible,
.login-page-v424 .input-password-v422 .password-toggle-v422:active{
    background:transparent !important;
    border:0 !important;
    border-left:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    outline:none !important;
}
.login-page-v424 .input-password-v422:focus-within .password-toggle-v422{
    color:var(--brand-teal-dark) !important;
}

/* v14.2 — nota leve do último teste HTTPS, sem reexecutar diagnóstico pesado. */
.https-status-ultimo-teste{
    margin:8px 2px 14px;
    color:var(--muted,#66757f);
    font-size:.78rem;
    line-height:1.4;
}


/* ===== v15.2 — login: senha e olho como uma única superfície visual =====
   Preserva o realce externo de :focus-within já aprovado e elimina qualquer
   caixa/borda/sombra própria do input e do botão do olho. */
.login-page-v424 .input-password-v422{
    overflow:hidden !important;
}
.login-page-v424 .input-password-v422 input#campo-senha,
.login-page-v424 .input-password-v422 input#campo-senha:focus,
.login-page-v424 .input-password-v422 input#campo-senha:active{
    border:0 !important;
    border-radius:0 !important;
    outline:0 !important;
    box-shadow:none !important;
    background:transparent !important;
    -webkit-appearance:none !important;
    appearance:none !important;
}
.login-page-v424 .input-password-v422 .password-toggle-v422,
.login-page-v424 .input-password-v422 .password-toggle-v422:hover,
.login-page-v424 .input-password-v422 .password-toggle-v422:focus,
.login-page-v424 .input-password-v422 .password-toggle-v422:focus-visible,
.login-page-v424 .input-password-v422 .password-toggle-v422:active{
    align-self:stretch !important;
    height:100% !important;
    min-height:0 !important;
    border:0 !important;
    border-left:0 !important;
    border-radius:0 !important;
    outline:0 !important;
    box-shadow:none !important;
    background:transparent !important;
    -webkit-appearance:none !important;
    appearance:none !important;
}
/* Autofill: input e área do olho usam a mesma superfície, sem divisão visual. */
.login-page-v424 .input-password-v422:has(input#campo-senha:-webkit-autofill){
    background:#eaf7f6 !important;
}
.login-page-v424 .input-password-v422 input#campo-senha:-webkit-autofill,
.login-page-v424 .input-password-v422 input#campo-senha:-webkit-autofill:hover,
.login-page-v424 .input-password-v422 input#campo-senha:-webkit-autofill:focus{
    -webkit-box-shadow:0 0 0 1000px #eaf7f6 inset !important;
}
.login-page-v424 .input-password-v422:has(input#campo-senha:-webkit-autofill) .password-toggle-v422{
    background:#eaf7f6 !important;
}

/* ===== v15.2 — HTTPS/Caddy: centraliza o conjunto de ações ===== */
.https-caddy-card .https-caddy-acoes{
    width:100% !important;
    justify-content:center !important;
}

/* ===== v155: Dashboard RH — somente os três atalhos inferiores centralizados ===== */
.rh-modern-page .rh-dashboard-actions-center-v155{justify-content:center}


/* ===== v156 — botões de retorno ao SQLite proporcionais ao texto ===== */
.retorno-sqlite-card .retorno-sqlite-button{
    width:auto !important;
    max-width:100% !important;
    align-self:flex-start !important;
    flex:0 0 auto !important;
}


/* ===== v1.5.8 — Centralização visual: Manutenção do Banco e Diagnóstico =====
   Somente alinhamento dos textos descritivos e do botão Abrir diagnóstico. */


/* ===== v1.6.2 — ajustes visuais solicitados ===== */
.retorno-sqlite-card.retorno-sqlite-preservado .retorno-sqlite-button{
    align-self:center !important;
}

.https-orientacoes-recolhivel{
    margin-top:12px;
    border:1px solid var(--border,#dce4e8);
    border-radius:10px;
    background:rgba(255,255,255,.72);
    overflow:hidden;
}
.https-orientacoes-recolhivel > summary{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:12px 15px;
    cursor:pointer;
    color:#30475e;
    font-weight:800;
    text-align:center;
    list-style:none;
}
.https-orientacoes-recolhivel > summary::-webkit-details-marker{display:none;}
.https-orientacoes-recolhivel[open] > summary{
    border-bottom:1px solid var(--border,#dce4e8);
}
.https-orientacoes-recolhivel .https-orientacoes{
    margin:0;
    border:0;
    border-radius:0;
    background:transparent;
}


/* ===== v175 - login: autofill neutro e igual ao campo de senha =====
   Chrome/Edge podem aplicar uma cor propria ao campo username salvo.
   Mantemos o fundo branco no campo e no container, preservando o foco atual. */
.login-page-v424 .login-form .input-with-icon:has(input:-webkit-autofill){
    background:#fff !important;
}

.login-page-v424 .login-form .input-with-icon:has(input:-webkit-autofill) span{
    background:#edf8f7 !important;
    border-right-color:#d7ebe9 !important;
    color:var(--brand-teal-dark) !important;
}

.login-page-v424 .login-form .input-with-icon input:-webkit-autofill,
.login-page-v424 .login-form .input-with-icon input:-webkit-autofill:hover,
.login-page-v424 .login-form .input-with-icon input:-webkit-autofill:focus,
.login-page-v424 .login-form .input-with-icon input:-webkit-autofill:active{
    background:#fff !important;
    -webkit-box-shadow:0 0 0 1000px #fff inset !important;
    -webkit-text-fill-color:#2f3742 !important;
    caret-color:#2f3742 !important;
}

.login-page-v424 .login-form .input-with-icon input:autofill{
    background:#fff !important;
    box-shadow:0 0 0 1000px #fff inset !important;
    color:#2f3742 !important;
}


/* ===== v179 - login: Usuario com a mesma base visual do campo Senha =====
   Ajuste somente visual. O autocomplete/autofill do navegador permanece habilitado.
   Container, area do icone e area digitavel usam as mesmas cores neutras do campo Senha. */
.login-page-v424 .login-form .input-with-icon,
.login-page-v424 .login-form .input-with-icon:has(input:-webkit-autofill),
.login-page-v424 .login-form .input-with-icon:has(input:autofill){
    background:#fff !important;
}

.login-page-v424 .login-form .input-with-icon > span,
.login-page-v424 .login-form .input-with-icon:has(input:-webkit-autofill) > span,
.login-page-v424 .login-form .input-with-icon:has(input:autofill) > span{
    background:#f2f7fb !important;
    border-right-color:#dce6ef !important;
    color:#6b7280 !important;
}

.login-page-v424 .login-form .input-with-icon > input,
.login-page-v424 .login-form .input-with-icon > input:focus,
.login-page-v424 .login-form .input-with-icon > input:active,
.login-page-v424 .login-form .input-with-icon > input:-webkit-autofill,
.login-page-v424 .login-form .input-with-icon > input:-webkit-autofill:hover,
.login-page-v424 .login-form .input-with-icon > input:-webkit-autofill:focus,
.login-page-v424 .login-form .input-with-icon > input:-webkit-autofill:active,
.login-page-v424 .login-form .input-with-icon > input:autofill{
    background-color:#fff !important;
    background-image:none !important;
    -webkit-box-shadow:0 0 0 1000px #fff inset !important;
    box-shadow:0 0 0 1000px #fff inset !important;
    -webkit-text-fill-color:#2f3742 !important;
    caret-color:#2f3742 !important;
}

/* ===== v180 - login: restaura a cor suave somente no autofill real =====
   Correcao pontual sobre a v179: campos vazios/digitados continuam neutros/brancos.
   Quando Edge/Chrome usam credenciais salvas, Usuario e Senha voltam a exibir
   o verde suave oficial (#eaf7f6). O autocomplete permanece habilitado. */
.login-page-v424 .login-form .input-with-icon:has(input:-webkit-autofill),
.login-page-v424 .login-form .input-with-icon:has(input:autofill){
    background:#eaf7f6 !important;
}

/* A area do icone continua neutra; somente a area de credencial salva recebe o autofill. */
.login-page-v424 .login-form .input-with-icon:has(input:-webkit-autofill) > span,
.login-page-v424 .login-form .input-with-icon:has(input:autofill) > span{
    background:#f2f7fb !important;
    border-right-color:#dce6ef !important;
    color:#6b7280 !important;
}

.login-page-v424 .login-form .input-with-icon > input:-webkit-autofill,
.login-page-v424 .login-form .input-with-icon > input:-webkit-autofill:hover,
.login-page-v424 .login-form .input-with-icon > input:-webkit-autofill:focus,
.login-page-v424 .login-form .input-with-icon > input:-webkit-autofill:active,
.login-page-v424 .login-form .input-with-icon > input:autofill{
    background-color:#eaf7f6 !important;
    background-image:none !important;
    -webkit-box-shadow:0 0 0 1000px #eaf7f6 inset !important;
    box-shadow:0 0 0 1000px #eaf7f6 inset !important;
    -webkit-text-fill-color:#2f3742 !important;
    caret-color:#2f3742 !important;
}

/* Na Senha, a area do botao de visualizar acompanha a superficie autofill. */
.login-page-v424 .login-form .input-password-v422:has(input#campo-senha:-webkit-autofill) .password-toggle-v422,
.login-page-v424 .login-form .input-password-v422:has(input#campo-senha:autofill) .password-toggle-v422{
    background:#eaf7f6 !important;
}



/* ===== v2.2.4 — correção de especificidade dos seletores pesquisáveis =====
   O botão interno do combobox é excluído dos seletores globais de botões principais.
   Assim a seta permanece neutra em repouso e recebe cor institucional apenas no hover,
   conforme ajustes_v223.css, sem afetar os demais botões do sistema. ===== */


/* ===== v2.2.5 — listagem dos seletores pesquisáveis neutra em repouso =====
   As opções internas do combobox também são excluídas das regras globais de botões
   principais. Assim a lista permanece branca/neutra e recebe somente um realce verde
   suave no hover, conforme ajustes_v223.css. A opção selecionada também não fica
   preenchida de verde permanentemente. ===== */

/* ===== v241: Backup automático — rótulos centralizados sobre os campos =====
   O label ocupa toda a largura da célula do grid, evitando variação quando o
   menu lateral é aberto ou recolhido. Restrito aos cinco campos solicitados. */
.card-backup-agendamento .form-grid > .backup-agendamento-campo > label{
    display:block !important;
    width:100% !important;
    box-sizing:border-box !important;
    text-align:center !important;
    text-align-last:center !important;
}
