:root{
 --blue:#0d47a1;--blue2:#1261d8;--navy:#06285f;--navy2:#041b42;--green:#10a64a;--red:#ef3b3b;
 --orange:#f59e0b;--cyan:#1b88e5;--bg:#f3f6fb;--card:#fff;--text:#10244a;--muted:#71809d;--border:#e4eaf3;
 --shadow:0 10px 32px rgba(18,49,91,.07);--shadow-lg:0 20px 60px rgba(4,31,72,.16);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:linear-gradient(180deg,#f7f9fc 0,#f2f5fa 100%);font-family:Inter,system-ui,sans-serif;color:var(--text)}
a{text-decoration:none}
.app-shell{min-height:100vh}
.sidebar{position:fixed;inset:0 auto 0 0;width:252px;background:linear-gradient(180deg,#073679 0%,#06285f 42%,#041b42 100%);color:#fff;padding:20px 14px;display:flex;flex-direction:column;z-index:1040;box-shadow:14px 0 44px rgba(4,31,72,.10)}
.sidebar:before{content:"";position:absolute;left:0;top:0;width:5px;height:100%;background:linear-gradient(180deg,#15a950 0 33%,#fff 33% 66%,#ef3434 66%)}
.brand-panel{min-height:112px;display:flex;align-items:center;justify-content:center;padding:8px 10px 22px;border-bottom:1px solid rgba(255,255,255,.12)}
.brand-logo{width:190px;max-height:88px;object-fit:contain;background:white;border-radius:14px;padding:8px 10px;box-shadow:0 12px 24px rgba(0,0,0,.14)}
.sidebar-nav{padding-top:25px;display:grid;gap:8px}
.sidebar .nav-link{position:relative;color:#dbe8ff;border-radius:12px;padding:13px 14px;display:flex;align-items:center;gap:12px;font-weight:600;font-size:13px;transition:.2s}
.sidebar .nav-link:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:3px;background:#fff;opacity:0}
.sidebar .nav-link:hover{color:#fff;background:rgba(255,255,255,.07);transform:translateX(2px)}
.sidebar .nav-link.active{color:#fff;background:linear-gradient(90deg,#1261d8,#0d47a1);box-shadow:0 10px 24px rgba(18,97,216,.28)}
.sidebar .nav-link.active:before{opacity:1}
.sidebar .nav-link i{width:22px;text-align:center;font-size:14px}
.sidebar-user{margin-top:auto;padding:16px 8px 2px;border-top:1px solid rgba(255,255,255,.13);display:grid;grid-template-columns:40px 1fr 24px;align-items:center;gap:9px}
.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#fff,#dce8ff);color:var(--navy);font-weight:800}
.user-meta strong,.user-meta small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-meta strong{font-size:12px}.user-meta small{font-size:10px;opacity:.65}.sidebar-user a{color:white;opacity:.78}

.main-content{margin-left:252px;min-height:100vh}
.topbar{height:88px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 28px;gap:18px;position:sticky;top:0;z-index:1000}
.page-heading h1{font-size:22px;margin:0;font-weight:800;letter-spacing:-.4px}.page-heading p{margin:4px 0 0;color:var(--muted);font-size:12px}
.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:10px}
.topbar-date{background:#f8faff;border:1px solid var(--border);padding:10px 13px;border-radius:11px;font-size:12px;color:#40516f;gap:8px;align-items:center}
.icon-btn,.notification-btn{width:42px;height:42px;border-radius:12px;border:1px solid var(--border);background:#fff;color:var(--navy);display:grid;place-items:center;position:relative;transition:.2s}
.icon-btn:hover,.notification-btn:hover{background:#f3f7ff;border-color:#cbd9ef;color:var(--blue)}
.notification-badge{position:absolute;right:-5px;top:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--red);color:#fff;font-size:10px;font-weight:800;display:grid;place-items:center;border:2px solid #fff}
.notification-menu{width:390px;padding:0;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);overflow:hidden}
.notification-header{padding:16px 17px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#fff,#fbfcff)}
.notification-header strong{display:block;font-size:14px}.notification-header small{display:block;font-size:10px;color:var(--muted);margin-top:3px}
.notification-icon{width:38px;height:38px;border-radius:11px;background:#eaf1ff;color:var(--blue);display:grid;place-items:center}
.notification-list{max-height:390px;overflow:auto}
.notification-item{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid #eef2f7;color:var(--text);transition:.18s}
.notification-item:hover{background:#f8faff}
.notif-dot{width:8px;height:8px;border-radius:50%}.notif-danger{background:var(--red)}.notif-warning{background:var(--orange)}.notif-info{background:var(--cyan)}
.notif-content strong{display:block;font-size:11px;max-width:185px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-content small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.notif-value{font-size:10px;font-weight:800;color:var(--navy)}
.notification-empty{text-align:center;padding:32px 20px;color:var(--muted)}.notification-empty i{font-size:30px;color:var(--green);display:block;margin-bottom:10px}.notification-empty strong,.notification-empty small{display:block}.notification-empty strong{font-size:12px;color:var(--text)}.notification-empty small{font-size:10px;margin-top:4px}
.notification-footer{height:43px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:11px;font-weight:700;color:var(--blue);background:#f8faff}

.content-area{padding:26px}
.card-soft{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow)}
.metric{padding:18px;position:relative;overflow:hidden;transition:.2s}.metric:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(18,49,91,.10)}
.metric:after{content:"";position:absolute;right:-25px;bottom:-42px;width:105px;height:105px;border-radius:50%;background:rgba(13,71,161,.035)}
.metric-head{display:flex;justify-content:space-between;align-items:center}.metric-label{font-size:11px;font-weight:700;color:#60708d}
.metric-icon{width:39px;height:39px;border-radius:12px;display:grid;place-items:center;font-size:15px}.metric-value{font-size:23px;font-weight:800;margin-top:12px;letter-spacing:-.5px}.metric-sub{font-size:10px;color:var(--muted);margin-top:6px}
.bg-green-soft{background:#e8f8ef;color:#118a3a}.bg-red-soft{background:#ffeded;color:#c62828}.bg-blue-soft{background:#e9f1ff;color:#0d47a1}.bg-orange-soft{background:#fff2df;color:#dc7d00}.bg-cyan-soft{background:#e9f6ff;color:#1673bd}
.hero-strip{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;background:linear-gradient(100deg,#082b68,#0d47a1 58%,#1261d8);color:#fff;border-radius:16px;box-shadow:0 16px 34px rgba(13,71,161,.17);position:relative;overflow:hidden}
.hero-strip:after{content:"";position:absolute;right:-35px;top:-50px;width:180px;height:180px;border:34px solid rgba(255,255,255,.06);border-radius:50%}.hero-strip h2{font-size:16px;font-weight:800;margin:0}.hero-strip p{font-size:11px;margin:4px 0 0;opacity:.75}.hero-strip .hero-actions{z-index:1;display:flex;gap:8px}
.hero-strip .btn{border-radius:10px;font-size:11px;font-weight:700;padding:9px 13px}
.section-title{font-size:15px;font-weight:800;margin:0;letter-spacing:-.2px}.section-sub{font-size:11px;color:var(--muted);margin:4px 0 0}
.table-wrap{overflow:auto}.table{margin:0}.table thead th{font-size:10px;color:#6b7b98;border-bottom-color:var(--border);font-weight:700;white-space:nowrap;padding:13px;background:#fbfcfe;text-transform:uppercase;letter-spacing:.25px}.table tbody td{font-size:11px;vertical-align:middle;padding:12px 13px;border-bottom-color:#edf1f6}.table tbody tr:hover{background:#fbfdff}
.badge-status{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;font-size:9px;font-weight:800;white-space:nowrap}
.status-pendente,.status-aberto{background:#fff0c9;color:#996500}.status-vencido{background:#ffe4e4;color:#be2424}.status-pago,.status-recebido{background:#dcf6e5;color:#087d32}.status-cancelado{background:#eceff4;color:#67748b}
.due-chip{font-size:9px;font-weight:700;border-radius:999px;padding:4px 7px;display:inline-flex;align-items:center;gap:5px;margin-top:4px}.due-danger{background:#ffe8e8;color:#bd2626}.due-warning{background:#fff3d8;color:#a56a00}.due-ok{background:#e7f7ec;color:#15793b}.due-neutral{background:#edf2f8;color:#65758d}
.btn{border-radius:10px;font-weight:700;font-size:11px}.btn-primary{background:linear-gradient(180deg,var(--blue2),var(--blue));border-color:var(--blue)}.btn-success{background:var(--green);border-color:var(--green)}
.btn-quick{padding:6px 9px;font-size:9px;border-radius:8px}
.form-control,.form-select{border-color:#dce4ef;border-radius:10px;min-height:42px;font-size:12px}.form-control:focus,.form-select:focus{border-color:#8db4ed;box-shadow:0 0 0 .2rem rgba(13,71,161,.08)}
.form-label{font-size:11px;font-weight:700;color:#425371}.modal-content{border:0;border-radius:18px;box-shadow:0 24px 80px rgba(7,35,75,.22)}.modal-header{border-bottom-color:#edf1f6}.modal-footer{border-top-color:#edf1f6}
.filter-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.filter-bar .form-group{min-width:150px}.chart-box{height:285px;padding:18px}.chart-box-sm{height:245px;padding:14px}
.empty-state{padding:45px!important;text-align:center;color:var(--muted)!important}.empty-state i{font-size:38px;margin-bottom:12px;color:#b4c1d5}
.kpi-alert{border-left:4px solid var(--orange);padding:14px 15px}.service-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:7px;background:var(--blue)}
.action-cell{display:flex;align-items:center;gap:6px;white-space:nowrap}.action-cell form{display:inline-flex}
.summary-panel{height:100%;padding:18px}.summary-list{display:grid;gap:10px;margin-top:16px}.summary-row{display:flex;align-items:center;justify-content:space-between;padding:11px 12px;border-radius:11px;background:#f8faff;border:1px solid #edf1f7}.summary-row span{font-size:10px;color:var(--muted)}.summary-row strong{font-size:11px}
.progress-thin{height:6px;background:#edf2f7;border-radius:999px;overflow:hidden}.progress-thin>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#0d47a1,#1b88e5)}
.login-page{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:#fff}.login-brand{background:linear-gradient(135deg,#06265c 0%,#0d47a1 70%,#073778 100%);position:relative;overflow:hidden;color:#fff;padding:65px;display:flex;flex-direction:column;justify-content:center}.login-brand:after{content:"";position:absolute;width:360px;height:360px;border:70px solid rgba(255,255,255,.055);border-radius:50%;right:-110px;bottom:-100px}.login-brand img{width:260px;background:#fff;border-radius:14px;padding:10px;margin-bottom:32px}.login-brand h2{font-size:40px;max-width:520px;font-weight:800}.login-brand p{font-size:16px;opacity:.8;max-width:500px}.login-form-wrap{display:grid;place-items:center;padding:35px}.login-card{width:min(420px,100%)}.login-card h1{font-size:28px;font-weight:800}.login-card .subtitle{color:var(--muted);font-size:13px;margin-bottom:26px}
@media(max-width:1199px){.sidebar{width:230px}.main-content{margin-left:230px}.brand-logo{width:172px}}
@media(max-width:991px){.sidebar{transform:translateX(-100%);transition:.25s;width:252px}.sidebar.open{transform:translateX(0)}.main-content{margin-left:0}.content-area{padding:18px}.topbar{padding:0 16px}.notification-menu{width:min(380px,calc(100vw - 30px))}.login-page{grid-template-columns:1fr}.login-brand{display:none}}
@media(max-width:575px){.content-area{padding:13px}.topbar{height:78px}.page-heading h1{font-size:18px}.page-heading p{display:none}.hero-strip{align-items:flex-start;flex-direction:column}.notification-menu{width:calc(100vw - 20px)}}


/* =========================================================
   V3 — UX / ACESSIBILIDADE / LEGIBILIDADE
   ========================================================= */
html { font-size: 16px; }

body {
    font-size: 15px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.page-heading h1 {
    font-size: 26px;
    line-height: 1.2;
}
.page-heading p {
    font-size: 13px;
}

.sidebar .nav-link {
    font-size: 14px;
    padding: 15px 15px;
    min-height: 50px;
}
.sidebar .nav-link i {
    font-size: 16px;
}
.user-meta strong { font-size: 13px; }
.user-meta small { font-size: 11px; }

.topbar {
    min-height: 92px;
}
.topbar-date {
    font-size: 13px;
    min-height: 44px;
}

.icon-btn,
.notification-btn {
    width: 46px;
    height: 46px;
    font-size: 16px;
}

.notification-menu { width: 420px; }
.notification-header strong { font-size: 15px; }
.notification-header small { font-size: 12px; }
.notification-content strong {
    font-size: 13px;
    max-width: 220px;
}
.notification-content small { font-size: 11px; }
.notif-value { font-size: 12px; }
.notification-item { padding: 15px 17px; }
.notification-footer {
    min-height: 48px;
    font-size: 12px;
}

.hero-strip {
    padding: 22px 24px;
}
.hero-strip h2 { font-size: 19px; }
.hero-strip p { font-size: 13px; }

.metric {
    padding: 22px;
    min-height: 148px;
}
.metric-label { font-size: 12px; }
.metric-icon {
    width: 44px;
    height: 44px;
    font-size: 17px;
}
.metric-value {
    font-size: 27px;
    margin-top: 14px;
}
.metric-sub { font-size: 12px; }

.section-title { font-size: 18px; }
.section-sub { font-size: 12px; }

.form-label {
    font-size: 12px;
    margin-bottom: 7px;
}
.form-control,
.form-select {
    min-height: 46px;
    font-size: 14px;
    padding: 10px 13px;
}
.form-control::placeholder {
    color: #8a98af;
    opacity: 1;
}

.btn {
    min-height: 42px;
    padding: 9px 15px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease, border-color .16s ease;
}
.btn:hover {
    transform: translateY(-1px);
}
.btn:active {
    transform: translateY(0);
}
.btn-primary {
    box-shadow: 0 7px 16px rgba(13,71,161,.18);
}
.btn-primary:hover {
    box-shadow: 0 9px 20px rgba(13,71,161,.26);
}
.btn-outline-primary:hover,
.btn-outline-success:hover {
    box-shadow: 0 6px 14px rgba(13,71,161,.10);
}
.btn-quick {
    min-height: 36px;
    padding: 7px 11px;
    font-size: 11px;
    border-radius: 9px;
}
.dropdown-menu {
    border-radius: 12px;
    border-color: var(--border);
    box-shadow: 0 12px 35px rgba(18,49,91,.13);
}
.dropdown-item {
    padding: 10px 14px;
    font-size: 13px;
}

.table thead th {
    font-size: 11px;
    padding: 14px 14px;
}
.table tbody td {
    font-size: 13px;
    padding: 14px 14px;
}
.table tbody td strong {
    font-size: 13px;
}
.table .small {
    font-size: 11px !important;
}

.badge-status {
    font-size: 10px;
    padding: 6px 10px;
}
.due-chip {
    font-size: 10px;
    padding: 5px 8px;
}

.summary-row span { font-size: 11px; }
.summary-row strong { font-size: 12px; }

.modal-title {
    font-size: 20px;
    font-weight: 800;
}
.modal-header small {
    font-size: 12px;
}
.modal-body {
    padding: 22px;
}
.modal-footer {
    padding: 14px 22px;
}

.alert {
    font-size: 13px;
    border-radius: 12px;
}

.card-soft {
    box-shadow: 0 10px 30px rgba(18,49,91,.08);
}
.card-soft:hover {
    border-color: #d9e2ef;
}

/* Área de ações mais confortável */
.action-cell {
    gap: 8px;
}
.action-cell .dropdown > .btn {
    min-width: 38px;
    width: 38px;
    padding-left: 0;
    padding-right: 0;
}

/* Foco visível para teclado/acessibilidade */
.btn:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible,
.notification-btn:focus-visible,
.icon-btn:focus-visible,
.sidebar .nav-link:focus-visible {
    outline: 3px solid rgba(18,97,216,.24);
    outline-offset: 2px;
}

/* Melhora leitura em telas grandes */
@media (min-width: 1400px) {
    .content-area { padding: 30px 32px; }
    .table tbody td { font-size: 13.5px; }
}

/* Ajustes mobile */
@media (max-width: 575px) {
    body { font-size: 14px; }
    .page-heading h1 { font-size: 21px; }
    .metric-value { font-size: 23px; }
    .notification-menu { width: calc(100vw - 18px); }
    .btn { min-height: 44px; }
}


/* =========================================================
   V4 — MODAIS DE CONFIRMAÇÃO (sem alert/confirm do navegador)
   ========================================================= */
.confirm-modal-content {
    border: 0;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 28px 90px rgba(5, 31, 72, .25);
}

.confirm-modal-icon {
    width: 64px;
    height: 64px;
    border-radius: 18px;
    display: grid;
    place-items: center;
    font-size: 24px;
    transition: .2s ease;
}

.confirm-modal-icon.is-primary {
    background: #eaf2ff;
    color: var(--blue);
}

.confirm-modal-icon.is-danger {
    background: #ffebeb;
    color: #dc3545;
}

.confirm-modal-message {
    font-size: 13px;
    line-height: 1.6;
}

#confirmActionModal .modal-title {
    font-size: 19px;
    font-weight: 800;
    color: var(--navy);
}

#confirmActionModal .btn {
    min-height: 46px;
    font-size: 13px;
    border-radius: 11px;
}

#confirmActionModal .btn-danger {
    box-shadow: 0 8px 18px rgba(220, 53, 69, .18);
}

#confirmActionModal .btn-light {
    color: #50617d;
    background: #f8faff;
}

#confirmActionModal .btn-light:hover {
    background: #eef3f9;
}

/* V8 - espaço adicional para rótulos dos gráficos */
.chart-box { min-height: 320px; }
.chart-box canvas { max-width: 100%; }


/* =========================================================
   V10 — Dashboard: resultado por cor + filtros AJAX
   ========================================================= */
.result-positive {
    color: #0b8f3d !important;
}
.result-negative {
    color: #d92d2d !important;
}

.dashboard-filter-bar {
    align-items: end;
    position: relative;
}
.dashboard-filter-bar .form-group {
    min-width: 220px;
}
.filter-live-status {
    margin-left: auto;
    min-height: 42px;
    padding: 8px 12px;
    border: 1px solid #e0e7f1;
    background: #f8faff;
    color: #60708d;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}
.filter-live-status i {
    color: var(--blue);
}
.filter-live-status.is-loading {
    color: var(--blue);
}
.filter-live-status.is-success {
    background: #eaf8ef;
    border-color: #ccebd7;
    color: #0b8f3d;
}
.filter-live-status.is-success i {
    color: #0b8f3d;
}

.content-area {
    transition: opacity .18s ease, filter .18s ease;
}
.content-area.dashboard-loading {
    opacity: .58;
    filter: saturate(.85);
    pointer-events: none;
}

@media (max-width: 767px) {
    .dashboard-filter-bar .form-group {
        width: 100%;
        min-width: 100%;
    }
    .filter-live-status {
        width: 100%;
        justify-content: center;
        margin-left: 0;
    }
}


/* =========================================================
   V11 — Filtros AJAX: Lançamentos e Folha de Pagamento
   ========================================================= */
.ajax-page-area {
    transition: opacity .18s ease, filter .18s ease;
}
.ajax-page-area.ajax-area-loading {
    opacity: .58;
    filter: saturate(.85);
    pointer-events: none;
}
.ajax-filter-form {
    align-items: end;
}
.ajax-search-input {
    padding-left: 39px;
}
.ajax-search-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: #8a98af;
    font-size: 13px;
    z-index: 2;
    pointer-events: none;
}
.filter-live-status.is-error {
    background: #fff0f0;
    border-color: #ffd1d1;
    color: #c62828;
}
.filter-live-status.is-error i {
    color: #c62828;
}
#lancamentosFilters .form-group:first-child {
    min-width: 320px;
}
#folhaFilters .filter-live-status {
    margin-left: 0;
}

@media (max-width: 991px) {
    #lancamentosFilters .form-group:first-child {
        min-width: 100%;
        width: 100%;
    }
}




/* =========================================================
   V18 — Sidebar / Logo final (CSS limpo)
   ========================================================= */

/* Sidebar */
.sidebar{
    width: 272px !important;
    background: linear-gradient(180deg, #08397f 0%, #062d69 40%, #041f4e 100%) !important;
}
.main-content{
    margin-left: 272px !important;
}

/* Faixa lateral somente verde e vermelho */
.sidebar::before{
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    width: 6px !important;
    background: linear-gradient(180deg, #12A84A 0 50%, #EF3B3B 50% 100%) !important;
}

/* Bloco da logo */
.brand-panel{
    position: relative !important;
    min-height: 148px !important;
    padding: 14px 14px 18px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-bottom: 1px solid rgba(255,255,255,.10) !important;
    background: transparent !important;
    overflow: visible !important;
}

/* Card premium atrás da logo */
.brand-panel::before{
    content: "" !important;
    position: absolute !important;
    left: 14px !important;
    right: 14px !important;
    top: 10px !important;
    bottom: 14px !important;
    border-radius: 18px !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,.04) 100%),
        radial-gradient(circle at 50% 40%, rgba(255,255,255,.10) 0%, rgba(255,255,255,.03) 58%, rgba(255,255,255,0) 100%) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.05),
        0 10px 24px rgba(0,0,0,.12) !important;
}

/* Detalhe inferior clean */
.brand-panel::after{
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    bottom: 8px !important;
    transform: translateX(-50%) !important;
    width: 92px !important;
    height: 4px !important;
    border-radius: 999px !important;
    background: linear-gradient(90deg, #12A84A 0 48%, #EF3B3B 52% 100%) !important;
    box-shadow: 0 0 10px rgba(18,168,74,.15), 0 0 10px rgba(239,59,59,.10) !important;
    z-index: 2 !important;
}

/* Logo: como é horizontal, usamos proporção tipo banner */
.brand-logo{
    position: relative !important;
    z-index: 3 !important;
    display: block !important;
    width: 100% !important;
    max-width: 206px !important;
    max-height: 82px !important;
    object-fit: contain !important;
    object-position: center center !important;
    margin: 0 auto !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: scale(1.12) translateY(1px) !important;
    filter:
        brightness(1.18)
        contrast(1.10)
        saturate(1.04)
        drop-shadow(0 6px 16px rgba(0,0,0,.18)) !important;
}

/* Espaçamentos da sidebar */
.sidebar-nav{
    padding-top: 18px !important;
}
.sidebar-user{
    padding-top: 18px !important;
    border-top: 1px solid rgba(255,255,255,.10) !important;
}

/* Responsivo */
@media (max-width: 1199px){
    .sidebar{
        width: 252px !important;
    }
    .main-content{
        margin-left: 252px !important;
    }
    .brand-panel{
        min-height: 142px !important;
        padding: 12px 12px 16px !important;
    }
    .brand-panel::before{
        left: 12px !important;
        right: 12px !important;
        top: 10px !important;
        bottom: 12px !important;
    }
    .brand-logo{
        max-width: 192px !important;
        max-height: 76px !important;
        transform: scale(1.10) translateY(1px) !important;
    }
}

@media (max-width: 991px){
    .sidebar{
        width: 272px !important;
    }
    .main-content{
        margin-left: 0 !important;
    }
    .brand-panel{
        min-height: 148px !important;
    }
    .brand-logo{
        max-width: 206px !important;
        max-height: 82px !important;
    }
}


/* =========================================================
   V19 — Logo sem quadrado / contorno apenas na logo
   ========================================================= */

/* Remove o "quadrado/card" atrás da logo */
.brand-panel{
    min-height: 118px !important;
    padding: 14px 14px 12px !important;
    background: transparent !important;
}

.brand-panel::before{
    display: none !important;
    content: none !important;
}

/* Remove também a barrinha inferior do bloco */
.brand-panel::after{
    display: none !important;
    content: none !important;
}

/* Deixa somente a logo com um contorno/glow clean */
.brand-logo{
    max-width: 214px !important;
    max-height: 86px !important;
    transform: none !important;
    filter:
        brightness(1.14)
        contrast(1.10)
        saturate(1.04)
        drop-shadow(0 0 1px rgba(255,255,255,.50))
        drop-shadow(0 0 3px rgba(255,255,255,.30))
        drop-shadow(0 0 10px rgba(255,255,255,.08))
        drop-shadow(0 8px 18px rgba(0,0,0,.18)) !important;
}

/* Mantém a área mais clean no topo */
.sidebar-nav{
    padding-top: 14px !important;
}

@media (max-width: 1199px){
    .brand-panel{
        min-height: 110px !important;
        padding: 12px 12px 10px !important;
    }
    .brand-logo{
        max-width: 198px !important;
        max-height: 80px !important;
    }
}


/* =========================================================
   V20 — Cards com realizado/em aberto + modal de baixa
   ========================================================= */
.metric-breakdown{
    min-height: 172px;
}
.metric-breakdown-row{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:13px;
}
.metric-mini{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:6px 8px;
    border-radius:9px;
    font-size:10px;
    font-weight:700;
    line-height:1.25;
}
.metric-mini strong{
    font-size:10px;
    font-weight:800;
}
.metric-mini-success{
    background:#e8f8ef;
    color:#087d32;
}
.metric-mini-warning{
    background:#fff3d8;
    color:#946200;
}
.metric-mini-danger{
    background:#ffe7e7;
    color:#bd2626;
}

.baixa-info-box{
    display:flex;
    gap:12px;
    padding:13px 14px;
    border:1px solid #dbe7f7;
    border-radius:12px;
    background:#f5f9ff;
    color:#24446f;
}
.baixa-info-box > i{
    width:34px;
    height:34px;
    flex:0 0 34px;
    border-radius:10px;
    display:grid;
    place-items:center;
    background:#e5efff;
    color:var(--blue);
}
.baixa-info-box strong,
.baixa-info-box small{
    display:block;
}
.baixa-info-box strong{
    font-size:12px;
    line-height:1.45;
}
.baixa-info-box small{
    margin-top:3px;
    color:#71809d;
    font-size:11px;
    line-height:1.45;
}
.form-text{
    font-size:10px;
    color:#8190a8;
}


/* =========================================================
   V21 — Cards principais focados no REALIZADO
   ========================================================= */

.metric-premium{
    min-height: 188px;
    display:flex;
    flex-direction:column;
}

.metric-premium .metric-value{
    font-size:28px;
    margin-top:14px;
}

.metric-open-strip{
    margin-top:auto;
    padding:11px 12px;
    border-radius:12px;
    background:linear-gradient(180deg,#f8faff 0%,#f4f7fb 100%);
    border:1px solid #e7edf5;
    display:grid;
    grid-template-columns:34px 1fr auto;
    align-items:center;
    gap:10px;
}

.metric-open-icon{
    width:34px;
    height:34px;
    border-radius:10px;
    display:grid;
    place-items:center;
    font-size:13px;
}

.metric-open-danger{
    background:#fff0f0;
    color:#d92d2d;
}

.metric-open-success{
    background:#eaf8ef;
    color:#0b8f3d;
}

.metric-open-text span,
.metric-open-meta span{
    display:block;
    font-size:9px;
    color:#7c8aa2;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.35px;
}

.metric-open-text strong,
.metric-open-meta strong{
    display:block;
    margin-top:2px;
    font-size:12px;
    color:#10244a;
    font-weight:800;
}

.metric-open-meta{
    text-align:right;
    padding-left:12px;
    border-left:1px solid #e1e8f1;
}

.metric-result-strip{
    grid-template-columns:34px 1fr;
}

.dashboard-filter-bar{
    justify-content:flex-start;
}

.dashboard-filter-bar .filter-live-status{
    display:none !important;
}

/* mantém um feedback de atualização sem criar card/badge visual */
.content-area.dashboard-loading{
    opacity:.62;
    filter:saturate(.86);
    pointer-events:none;
}

@media(max-width:575px){
    .metric-open-strip{
        grid-template-columns:34px 1fr;
    }
    .metric-open-meta{
        grid-column:2;
        text-align:left;
        padding-left:0;
        border-left:0;
        padding-top:6px;
        border-top:1px solid #e1e8f1;
    }
}


/* =========================================================
   V22 — Dashboard KPI clean / Bootstrap 5
   ========================================================= */

.dashboard-kpi{
    border-radius:16px !important;
    background:#fff;
    transition:transform .18s ease, box-shadow .18s ease;
}

.dashboard-kpi:hover{
    transform:translateY(-2px);
    box-shadow:0 .75rem 1.5rem rgba(18,49,91,.08) !important;
}

.dashboard-kpi .card-body{
    min-height:138px;
}

.kpi-label{
    font-size:11px;
    font-weight:700;
    color:#65758f;
    margin-bottom:5px;
}

.kpi-value{
    font-size:22px;
    line-height:1.15;
    font-weight:800;
    letter-spacing:-.35px;
}

.kpi-caption{
    font-size:10px;
    line-height:1.35;
    color:#8996aa;
    max-width:210px;
}

.kpi-icon{
    width:38px;
    height:38px;
    border-radius:11px;
    display:grid;
    place-items:center;
    font-size:14px;
    flex:0 0 38px;
}

.kpi-footer{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
}

.kpi-footer-item{
    padding:7px 8px;
    border-radius:10px;
    background:#f8fafc;
    border:1px solid #edf1f6;
}

.kpi-footer-item span{
    display:block;
    font-size:9px;
    line-height:1.2;
    color:#8a97aa;
    margin-bottom:2px;
}

.kpi-footer-item strong{
    display:block;
    font-size:11px;
    line-height:1.2;
    color:#172b4d;
    font-weight:800;
}

.kpi-projection{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:6px 8px;
    border-radius:9px;
    background:#f8fafc;
    border:1px solid #edf1f6;
}

.kpi-projection span{
    font-size:9px;
    color:#8a97aa;
    font-weight:600;
}

.kpi-projection strong{
    font-size:10px;
    font-weight:800;
}

.dashboard-kpi-row{
    align-items:stretch;
}

@media (max-width:1199px){
    .dashboard-kpi .card-body{
        min-height:132px;
    }
}

@media (max-width:575px){
    .kpi-value{
        font-size:20px;
    }
    .kpi-footer{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   V23 — Dashboard premium
   ========================================================= */
.dashboard-kpi-card{
    border-radius:20px !important;
    background:#ffffff !important;
    box-shadow:0 10px 30px rgba(15,38,71,.06), 0 2px 8px rgba(15,38,71,.03) !important;
    border:1px solid #edf2f7 !important;
    overflow:hidden;
    position:relative;
    transition:transform .18s ease, box-shadow .18s ease;
}

.dashboard-kpi-card:hover{
    transform:translateY(-2px);
    box-shadow:0 14px 34px rgba(15,38,71,.08), 0 4px 10px rgba(15,38,71,.05) !important;
}

.dashboard-kpi-card .card-body{
    padding:18px 18px 16px !important;
    min-height:176px;
    display:flex;
    flex-direction:column;
    position:relative;
    z-index:2;
}

.dashboard-kpi-card::after{
    content:"";
    position:absolute;
    right:-18px;
    bottom:-18px;
    width:96px;
    height:96px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(16,60,132,.06) 0%, rgba(16,60,132,0) 72%);
    z-index:1;
    pointer-events:none;
}

.kpi-danger::before,
.kpi-success::before,
.kpi-neutral::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    width:100%;
    height:4px;
    z-index:2;
}

.kpi-danger::before{ background:linear-gradient(90deg,#ef4444 0%, #fca5a5 100%); }
.kpi-success::before{ background:linear-gradient(90deg,#16a34a 0%, #86efac 100%); }
.kpi-neutral::before{ background:linear-gradient(90deg,#2563eb 0%, #93c5fd 100%); }

.kpi-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
}

.kpi-eyebrow{
    font-size:10px;
    font-weight:700;
    letter-spacing:.4px;
    text-transform:uppercase;
    color:#8a97ac;
    margin-bottom:3px;
}

.kpi-title{
    font-size:15px;
    font-weight:700;
    color:#223654;
    line-height:1.2;
}

.kpi-main{
    margin-top:14px;
    font-size:20px;
    line-height:1.1;
    font-weight:800;
    letter-spacing:-.4px;
    color:#102a54;
}

.kpi-helper{
    margin-top:6px;
    font-size:11px;
    line-height:1.45;
    color:#8a97ac;
    max-width:240px;
}

.kpi-icon{
    width:40px;
    height:40px;
    border-radius:12px;
    display:grid;
    place-items:center;
    font-size:15px;
    flex:0 0 40px;
}

.kpi-chip-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-top:14px;
}

.kpi-chip{
    background:#f8fafc;
    border:1px solid #e9eef5;
    border-radius:12px;
    padding:10px 11px;
}

.kpi-chip span{
    display:block;
    font-size:10px;
    color:#8d98aa;
    margin-bottom:2px;
}

.kpi-chip strong{
    display:block;
    font-size:14px;
    line-height:1.15;
    color:#1b3154;
    font-weight:800;
}

.kpi-inline-note{
    margin-top:12px;
    padding:9px 10px;
    border-radius:12px;
    background:#f7f9fc;
    border:1px dashed #d9e1ec;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}

.note-badge{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:5px 8px;
    border-radius:999px;
    background:#eaf1ff;
    color:#1e4fbf;
    font-size:10px;
    font-weight:700;
    white-space:nowrap;
}

.note-text{
    font-size:11px;
    color:#51637f;
    text-align:right;
    line-height:1.35;
}

.note-text strong{
    color:#122b55;
    font-weight:800;
}
.note-text small{
    color:#8694ab;
}

.kpi-projection-card{
    margin-top:14px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:10px 12px;
    border-radius:12px;
    background:#f8fafc;
    border:1px solid #e9eef5;
}

.kpi-projection-card span{
    font-size:11px;
    color:#7f8da4;
    font-weight:600;
}

.kpi-projection-card strong{
    font-size:14px;
    font-weight:800;
}

.payroll-highlight{
    border:1px solid #e8edf5;
    border-radius:16px;
    background:linear-gradient(180deg,#fbfdff 0%, #f6f9fc 100%);
    padding:14px 16px;
}

.payroll-highlight-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:12px;
}

.payroll-highlight-eyebrow{
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.4px;
    color:#8a97ac;
    font-weight:700;
    margin-bottom:2px;
}

.payroll-highlight-head strong{
    display:block;
    font-size:15px;
    color:#193159;
}

.payroll-highlight-badge{
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:7px 10px;
    border-radius:999px;
    background:#eaf1ff;
    color:#2055c7;
    font-size:11px;
    font-weight:700;
    white-space:nowrap;
}

.payroll-highlight-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0,1fr));
    gap:10px;
}

.payroll-mini-card{
    padding:10px 12px;
    border-radius:12px;
    background:#fff;
    border:1px solid #e8edf5;
}

.payroll-mini-card span{
    display:block;
    font-size:10px;
    color:#8b97aa;
    margin-bottom:3px;
}

.payroll-mini-card strong{
    display:block;
    font-size:16px;
    line-height:1.1;
    color:#173156;
    font-weight:800;
}

@media (max-width: 1400px){
    .dashboard-kpi-card .card-body{ min-height:188px; }
}

@media (max-width: 767px){
    .kpi-chip-grid{
        grid-template-columns:1fr;
    }
    .kpi-inline-note{
        flex-direction:column;
        align-items:flex-start;
    }
    .note-text{
        text-align:left;
    }
    .payroll-highlight-head{
        flex-direction:column;
        align-items:flex-start;
    }
    .payroll-highlight-grid{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   V24 — Responsividade notebook + refinamento visual
   ========================================================= */

/* sidebar um pouco mais compacta para liberar área útil */
@media (min-width: 992px) and (max-width: 1499px){
    .sidebar{ width: 232px !important; padding: 18px 12px !important; }
    .main-content{ margin-left: 232px !important; }
    .brand-logo{ width: 198px !important; }
    .nav-link{ padding: 14px 16px !important; font-size: 15px !important; }
    .topbar-inner{ padding-left: 18px !important; padding-right: 18px !important; }
    .content-area{ padding: 18px !important; }
}

/* força um grid premium para os cards no notebook e desktop */
.dashboard-kpi-row{
    display:grid !important;
    grid-template-columns: repeat(12, minmax(0,1fr));
    gap:16px !important;
    margin-left:0 !important;
    margin-right:0 !important;
    align-items:stretch;
}
.dashboard-kpi-row > [class*="col-"]{
    grid-column: span 12;
    width:auto !important;
    max-width:none !important;
    padding-left:0 !important;
    padding-right:0 !important;
    margin:0 !important;
}

@media (min-width: 768px){
    .dashboard-kpi-row > [class*="col-"]{
        grid-column: span 6;
    }
}

@media (min-width: 1200px){
    .dashboard-kpi-row > [class*="col-"]{
        grid-column: span 4;
    }
    .dashboard-kpi-row > [class*="col-"]:nth-child(4),
    .dashboard-kpi-row > [class*="col-"]:nth-child(5){
        grid-column: span 6;
    }
}

@media (min-width: 1700px){
    .dashboard-kpi-row{
        grid-template-columns: repeat(15, minmax(0,1fr));
    }
    .dashboard-kpi-row > [class*="col-"]{
        grid-column: span 3;
    }
}

/* cards do KPI mais compactos e elegantes */
.dashboard-kpi-card{
    border-radius:18px !important;
}
.dashboard-kpi-card .card-body{
    min-height: 0 !important;
    padding: 16px !important;
}
.kpi-top{
    gap:10px;
}
.kpi-eyebrow{
    font-size:9px;
    letter-spacing:.45px;
    margin-bottom:4px;
}
.kpi-title{
    font-size:14px;
    line-height:1.18;
}
.kpi-main{
    margin-top:12px;
    font-size:18px;
    line-height:1.05;
}
.kpi-helper{
    margin-top:5px;
    font-size:10px;
    max-width:none;
}
.kpi-icon{
    width:42px;
    height:42px;
    border-radius:12px;
    font-size:15px;
}
.kpi-chip-grid{
    gap:8px;
    margin-top:12px;
}
.kpi-chip{
    padding:9px 10px;
    border-radius:11px;
}
.kpi-chip span{
    font-size:9px;
    margin-bottom:3px;
}
.kpi-chip strong{
    font-size:13px;
}
.kpi-projection-card{
    margin-top:12px;
    padding:9px 10px;
    border-radius:11px;
}
.kpi-projection-card span{
    font-size:10px;
}
.kpi-projection-card strong{
    font-size:13px;
}
.kpi-mini-badge{
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:4px 8px;
    border-radius:999px;
    background:#eef4ff;
    color:#1f57c8;
    font-size:10px;
    font-weight:700;
    line-height:1;
    white-space:nowrap;
}

/* bloco da folha mais harmonioso */
.payroll-highlight{
    border-radius:18px;
    padding:14px 15px;
}
.payroll-highlight-head{
    margin-bottom:10px;
}
.payroll-highlight-head strong{
    font-size:14px;
}
.payroll-highlight-badge{
    font-size:10px;
    padding:6px 9px;
}
.payroll-highlight-grid{
    gap:8px;
}
.payroll-mini-card{
    padding:10px 11px;
    border-radius:12px;
}
.payroll-mini-card span{
    font-size:9px;
}
.payroll-mini-card strong{
    font-size:15px;
}

/* charts e summaries com respiro melhor em notebook */
@media (min-width: 1200px) and (max-width: 1499px){
    .row.g-4.mb-4 > .col-xl-5{ width: 50% !important; }
    .row.g-4.mb-4 > .col-xl-4{ width: 50% !important; }
    .row.g-4.mb-4 > .col-xl-3{ width: 100% !important; }
    .summary-panel{
        min-height:auto !important;
    }
}

/* tipografia geral do dashboard mais confortável no notebook */
@media (min-width: 992px) and (max-width: 1499px){
    .page-title{ font-size: 22px !important; }
    .page-subtitle{ font-size: 13px !important; }
    .section-title{ font-size: 18px !important; }
    .section-sub{ font-size: 12px !important; }
}

/* mobile / small tablet */
@media (max-width: 767px){
    .dashboard-kpi-row{
        gap:14px !important;
    }
    .dashboard-kpi-card .card-body{
        padding:15px !important;
    }
    .kpi-main{
        font-size:20px;
    }
    .kpi-chip-grid{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   V25 — valor da folha dentro do card Contas a pagar
   ========================================================= */
.kpi-chip-grid-payable{
    grid-template-columns: repeat(2, minmax(0,1fr));
}

.kpi-chip-highlight{
    grid-column: 1 / -1;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    background:linear-gradient(180deg,#f9fbff 0%, #f4f8ff 100%);
    border-color:#dfe9fb;
    position:relative;
    overflow:hidden;
}

.kpi-chip-highlight::after{
    content:"";
    position:absolute;
    right:-10px;
    bottom:-14px;
    width:54px;
    height:54px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(37,99,235,.10) 0%, rgba(37,99,235,0) 72%);
    pointer-events:none;
}

.kpi-chip-highlight span{
    color:#4d6487;
    font-weight:700;
    margin-bottom:4px;
}

.kpi-chip-highlight strong{
    color:#163460;
    font-size:15px;
}

.kpi-chip-highlight small{
    display:block;
    margin-top:2px;
    font-size:10px;
    line-height:1.25;
    color:#7c8ea9;
}

@media (max-width: 767px){
    .kpi-chip-grid-payable{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   V26 — Status da folha de pagamento
   ========================================================= */
.folha-metric{
    min-height:142px;
}

.folha-metric .metric-value{
    font-size:24px;
}

#modalBaixaFolha .modal-content,
#modalReabrirFolha .modal-content{
    border:0;
    border-radius:18px;
    box-shadow:0 24px 70px rgba(7,35,75,.20);
}

#modalBaixaFolha .modal-header{
    padding:18px 20px;
}

#modalBaixaFolha .modal-body{
    padding:20px;
}

#modalBaixaFolha .modal-footer{
    padding:14px 20px;
}

.table .btn-quick{
    white-space:nowrap;
}

@media(max-width:1199px){
    .folha-metric{
        min-height:132px;
    }
}


/* =========================================================
   V28 — Folha em aberto mais clean no card
   ========================================================= */
.kpi-payroll-clean{
    grid-column:1 / -1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:9px 11px;
    border-radius:11px;
    background:#f8faff;
    border:1px solid #e6edf7;
}

.kpi-payroll-label{
    display:flex;
    align-items:center;
    gap:7px;
    min-width:0;
    color:#5c6f8f;
    font-size:10px;
    font-weight:700;
}

.kpi-payroll-label i{
    color:#2f66c9;
    font-size:11px;
}

.kpi-payroll-clean strong{
    font-size:13px;
    line-height:1;
    color:#17355f;
    font-weight:800;
    white-space:nowrap;
}

@media(max-width:575px){
    .kpi-payroll-clean{
        padding:9px 10px;
    }
}


/* =========================================================
   V29 — Modal da folha / valores / adiantamento
   ========================================================= */
#modalFolha .modal-dialog{
    max-width:920px;
}

#modalFolha .modal-content{
    border-radius:20px;
}

#modalFolha .input-group-text{
    min-width:42px;
    justify-content:center;
    background:#f7f9fc;
    border-color:#dce4ef;
    color:#5a6d89;
    font-size:12px;
    font-weight:700;
}

#modalFolha .moeda-folha::placeholder,
#modalFolha #valorTotal::placeholder{
    color:#a2aec0;
}

.folha-section-label{
    font-size:10px;
    font-weight:800;
    letter-spacing:.5px;
    text-transform:uppercase;
    color:#8795aa;
    padding-bottom:7px;
    border-bottom:1px solid #edf1f6;
}

.total-calculado-box,
.adiantamento-config-box{
    height:100%;
    padding:14px;
    border-radius:14px;
    border:1px solid #e4eaf3;
    background:#f9fbfd;
}

.total-calculado-box > div:first-child{
    margin-bottom:10px;
}

.total-calculado-box span:not(.input-group-text){
    display:block;
    font-size:12px;
    font-weight:800;
    color:#213b61;
}

.total-calculado-box small,
.adiantamento-config-box small{
    display:block;
    margin-top:2px;
    font-size:10px;
    color:#8795aa;
}

.total-readonly-group .form-control[readonly]{
    background:#eef3f8;
    color:#17345e;
    font-weight:800;
    cursor:not-allowed;
    box-shadow:none;
}

.total-lock{
    color:#7587a2 !important;
}

.adiantamento-config-box strong{
    display:block;
    color:#213b61;
    font-size:12px;
}

.adiantamento-config-box .badge{
    border:1px solid #dce7fb;
    font-size:10px;
}

@media(max-width:767px){
    #modalFolha .modal-dialog{
        margin:10px;
    }
}

/* V30 — Usuários / primeiro acesso */
.users-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.users-info-strip{display:flex;align-items:center;gap:12px;padding:14px 16px;background:linear-gradient(180deg,#f8fbff 0%,#f5f8fc 100%);border-bottom:1px solid #e8eef6}.users-info-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;flex:0 0 38px;background:#eaf2ff;color:#245cc7}.users-info-strip strong,.users-info-strip span{display:block}.users-info-strip strong{color:#173158;font-size:13px;margin-bottom:2px}.users-info-strip span{color:#7d8ba1;font-size:11px}.user-table-person{display:flex;align-items:center;gap:10px}.user-avatar-sm{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:0 0 34px;background:#edf3ff;color:#245cc7;font-size:12px;font-weight:800}.user-table-person strong,.user-table-person small{display:block}.user-table-person small{color:#8996aa;font-size:10px}.user-access-state{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:700}.user-access-state.pending{background:#fff3dc;color:#9a6800}.user-access-state.done{background:#eaf8ef;color:#087e34}.user-default-password{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:13px;background:#f7faff;border:1px solid #dfe8f6}.user-default-password-icon{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;flex:0 0 40px;background:#e8f0ff;color:#2157c1}.user-default-password span,.user-default-password strong,.user-default-password small{display:block}.user-default-password span{font-size:10px;color:#8391a7}.user-default-password strong{font-size:18px;color:#183a68}.user-default-password small{font-size:10px;color:#8290a5}.password-input-wrap{position:relative}.password-input-wrap .form-control{padding-right:46px}.password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;border-radius:9px;background:transparent;color:#72829c;display:grid;place-items:center}.password-toggle:hover{background:#f1f5fa;color:#1f55bd}.login-first-access{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;border-radius:11px;background:#f7f9fc;color:#77879e;font-size:10px}.first-access-page{min-height:100vh;margin:0;background:linear-gradient(135deg,#f6f9fd 0%,#edf3f9 100%);display:grid;place-items:center;padding:24px}.first-access-shell{width:min(100%,480px)}.first-access-brand{display:flex;justify-content:center;margin-bottom:18px}.first-access-brand img{width:220px;max-height:90px;object-fit:contain}.first-access-card{background:#fff;border:1px solid #e7edf5;border-radius:22px;box-shadow:0 24px 70px rgba(12,43,86,.12);padding:30px}.first-access-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#eaf2ff;color:#2058c4;font-size:18px;margin-bottom:15px}.first-access-eyebrow{display:block;font-size:10px;font-weight:800;letter-spacing:.55px;text-transform:uppercase;color:#7e8da4;margin-bottom:5px}.first-access-card h1{color:#132d53;font-size:25px;font-weight:800;margin-bottom:8px}.first-access-card>p{color:#74849c;font-size:12px;line-height:1.55;margin-bottom:22px}.password-rules{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:11px;background:#f8fafc;color:#728198;font-size:10px}.password-rules i{color:#159447;margin-right:5px}@media(max-width:767px){.users-toolbar{flex-direction:column;align-items:stretch}.first-access-card{padding:22px}}


/* =========================================================
   V31 — primeiro acesso dentro da própria tela de login
   ========================================================= */
.login-card-switch{
    min-height:430px;
}

.login-step-icon{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border-radius:13px;
    margin-bottom:15px;
    background:#eaf2ff;
    color:#245cc7;
    font-size:17px;
}

.login-step-icon.is-secure{
    background:#eaf8ef;
    color:#128b42;
}

.login-change-header .first-access-eyebrow{
    margin-bottom:5px;
}

.login-change-header h1{
    margin-bottom:7px;
}

.login-change-header .subtitle{
    line-height:1.55;
}

.first-access-inline-info{
    display:flex;
    align-items:flex-start;
    gap:11px;
    padding:12px 13px;
    border-radius:12px;
    background:#f7faff;
    border:1px solid #e1e9f6;
}

.first-access-inline-info > i{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    flex:0 0 34px;
    border-radius:10px;
    background:#e8f0ff;
    color:#245cc7;
}

.first-access-inline-info strong,
.first-access-inline-info span{
    display:block;
}

.first-access-inline-info strong{
    font-size:11px;
    color:#1b355d;
    margin-bottom:2px;
}

.first-access-inline-info span{
    color:#7c8aa0;
    font-size:10px;
    line-height:1.4;
}


/* =========================================================
   V32 — login por nome de usuário
   ========================================================= */
.user-login-name{
    display:inline-flex;
    align-items:center;
    padding:5px 8px;
    border-radius:8px;
    background:#f4f7fb;
    color:#31527d;
    font-size:11px;
    font-weight:700;
}

#modalUsuario .input-group-text,
.login-user-group .input-group-text{
    background:#f6f8fb;
    border-color:#dbe3ee;
    color:#647792;
    font-weight:700;
}

.login-user-group .form-control{
    border-left:0;
}

.login-user-group .input-group-text{
    min-width:42px;
    justify-content:center;
}


/* =========================================================
   V32.2 — Nome de usuário sem @
   ========================================================= */
.user-login-name{
    padding:5px 9px;
}

.login-user-group{
    display:none !important;
}


/* =========================================================
   V33 — edição de lançamentos
   ========================================================= */
.dropdown-item.js-edit-lancamento{
    color:#244a79;
    font-weight:600;
}

.dropdown-item.js-edit-lancamento:hover{
    background:#f2f6fc;
    color:#174b91;
}

#modalLancamento .modal-content{
    border:0;
    border-radius:18px;
    box-shadow:0 24px 70px rgba(8,35,75,.18);
}

#modalLancamento .modal-header{
    padding:18px 20px;
}

#modalLancamento .modal-body{
    padding:20px;
}

#modalLancamento .modal-footer{
    padding:14px 20px;
}


/* =========================================================
   V34 — visualização detalhada de lançamentos e folha
   ========================================================= */
.detail-modal .modal-content{
    border:0;
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 24px 70px rgba(9,36,74,.20);
}

.detail-modal-header{
    padding:18px 22px;
    background:#fff;
    border-bottom:1px solid #e9eef5;
}

.detail-eyebrow{
    color:#6d7f98;
    font-size:11px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    margin-bottom:3px;
}

.detail-modal .modal-body{
    padding:22px;
    background:#f8fafc;
}

.detail-hero{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    background:#fff;
    border:1px solid #e7edf5;
    border-radius:16px;
    padding:20px;
    margin-bottom:16px;
}

.detail-label,
.detail-field span,
.detail-value-box span,
.detail-footer-info span{
    display:block;
    color:#7b8ba1;
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.035em;
    margin-bottom:5px;
}

.detail-hero h4{
    color:#173a64;
    font-size:20px;
    margin:0 0 4px;
    font-weight:800;
}

.detail-subtitle{
    color:#74859b;
    font-size:13px;
}

.detail-value-box{
    min-width:190px;
    padding:13px 16px;
    border-radius:14px;
    background:#eef5ff;
    text-align:right;
}

.detail-value-box strong{
    display:block;
    color:#173f70;
    font-size:21px;
    font-weight:800;
}

.detail-section{
    background:#fff;
    border:1px solid #e7edf5;
    border-radius:16px;
    padding:18px;
    margin-top:14px;
}

.detail-section-title{
    display:flex;
    align-items:center;
    gap:8px;
    color:#29496f;
    font-weight:800;
    font-size:13px;
    margin-bottom:14px;
}

.detail-section-title i{
    color:#6c83a3;
}

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

.detail-grid-4{
    grid-template-columns:repeat(4,minmax(0,1fr));
}

.detail-grid-5{
    grid-template-columns:repeat(5,minmax(0,1fr));
}

.detail-field{
    min-height:74px;
    padding:12px 13px;
    border:1px solid #edf1f6;
    border-radius:12px;
    background:#fbfcfe;
}

.detail-field strong{
    display:block;
    color:#243d5c;
    font-size:13px;
    overflow-wrap:anywhere;
}

.detail-field.positive strong{color:#198754;}
.detail-field.negative strong{color:#dc3545;}

.detail-field.featured{
    background:#eef5ff;
    border-color:#d9e8fb;
}

.detail-field.featured strong{
    color:#174b91;
    font-size:15px;
}

.detail-note{
    min-height:62px;
    white-space:pre-wrap;
    color:#455c77;
    background:#fbfcfe;
    border:1px solid #edf1f6;
    border-radius:12px;
    padding:13px 14px;
    font-size:13px;
}

.detail-footer-info{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    margin-top:14px;
    padding:14px 16px;
    border-radius:14px;
    border:1px dashed #d9e2ed;
    background:#f4f7fa;
}

.detail-footer-info strong{
    color:#526981;
    font-size:12px;
}

.detail-modal .modal-footer{
    padding:13px 20px;
    background:#fff;
    border-top:1px solid #e9eef5;
}

.js-view-lancamento,
.js-view-folha{
    white-space:nowrap;
}

@media(max-width:991.98px){
    .detail-grid-5,
    .detail-grid-4{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:767.98px){
    .detail-hero{
        align-items:stretch;
        flex-direction:column;
    }

    .detail-value-box{
        min-width:0;
        width:100%;
        text-align:left;
    }

    .detail-grid,
    .detail-grid-4,
    .detail-grid-5,
    .detail-footer-info{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   V35 — Modal de detalhes premium Bootstrap
   ========================================================= */
.detail-modal .modal-dialog{
    max-width: 860px;
}

.detail-modal .modal-content{
    border: 1px solid rgba(18,61,110,.08);
    border-radius: 22px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 28px 80px rgba(15,42,77,.24);
}

.detail-modal-header{
    padding: 20px 24px 18px;
    background: linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
    position: sticky;
    top: 0;
    z-index: 5;
}

.detail-modal-header .modal-title{
    color:#203b5d;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -.015em;
}

.detail-modal-header .btn-close{
    width: 38px;
    height: 38px;
    padding: 0;
    margin: 0;
    border-radius: 10px;
    background-size: 12px;
    opacity: .65;
    transition: .18s ease;
}

.detail-modal-header .btn-close:hover{
    background-color:#f1f4f8;
    opacity:1;
}

.detail-eyebrow{
    color:#7d8da5;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .09em;
}

.detail-modal .modal-body{
    padding: 20px 22px 22px;
    background:#f6f8fb;
}

.detail-hero{
    border: 1px solid #e6edf5;
    border-radius: 18px;
    padding: 18px 20px;
    background:#fff;
    box-shadow: 0 3px 12px rgba(26,55,92,.04);
}

.detail-hero h4{
    font-size: 22px;
    line-height:1.2;
    color:#123d6e;
}

.detail-value-box{
    background:#eef5ff;
    border:1px solid #dce9fb;
    border-radius:16px;
    padding: 14px 18px;
    min-width: 200px;
}

.detail-value-box strong{
    font-size: 22px;
    color:#123f73;
}

.detail-section{
    border:1px solid #e6edf5;
    border-radius:18px;
    background:#fff;
    padding:17px 18px;
    box-shadow:0 3px 12px rgba(26,55,92,.035);
}

.detail-section-title{
    font-size:13px;
    color:#244b76;
    font-weight:800;
    margin-bottom:13px;
}

.detail-section-title i{
    width:18px;
    text-align:center;
    color:#6583a8;
}

.detail-grid{
    gap:10px;
}

.detail-field{
    min-height:72px;
    border:1px solid #e9eef5;
    border-radius:14px;
    background:#fbfcfe;
    padding:12px 13px;
}

.detail-field:hover{
    background:#f8fbff;
}

.detail-field span,
.detail-label,
.detail-value-box span,
.detail-footer-info span{
    color:#8290a5;
    font-size:10px;
    letter-spacing:.045em;
}

.detail-field strong{
    color:#233e60;
    font-size:13px;
    font-weight:750;
}

.detail-note{
    border:1px solid #e9eef5;
    border-radius:14px;
    background:#fbfcfe;
    padding:14px;
    color:#3c5877;
}

.detail-footer-info{
    border:0;
    background:#eef2f7;
    border-radius:14px;
    padding:13px 15px;
}

.detail-modal-footer{
    position: sticky;
    bottom: 0;
    z-index: 5;
    padding: 14px 22px 16px;
    background:#fff;
    box-shadow: 0 -8px 20px rgba(21,51,86,.04);
}

.detail-modal-footer .btn{
    min-width: 118px;
    height: 42px;
    border-radius: 10px;
    font-weight: 700;
    display:inline-flex;
    align-items:center;
    justify-content:center;
}

.detail-modal-footer .btn-outline-secondary{
    border-color:#d3dce7;
    color:#425b78;
    background:#fff;
}

.detail-modal-footer .btn-outline-secondary:hover{
    background:#f2f5f8;
    border-color:#c7d2df;
    color:#263f5d;
}

.detail-modal .badge-status{
    padding:8px 11px;
    border-radius:999px;
    font-size:10px;
    font-weight:800;
}

@media(max-width:767.98px){
    .detail-modal .modal-dialog{
        margin:.75rem;
    }
    .detail-modal .modal-content{
        border-radius:18px;
    }
    .detail-modal-header{
        padding:16px 18px;
    }
    .detail-modal .modal-body{
        padding:16px;
    }
    .detail-modal-footer{
        padding:12px 16px 14px;
    }
    .detail-modal-footer .btn{
        width:100%;
    }
}


/* =========================================================
   V35.1 — ajustes do cabeçalho e botão Fechar dos detalhes
   ========================================================= */
.detail-modal-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

.detail-header-title{
    flex:1 1 auto;
    min-width:0;
}

.detail-header-title .modal-title{
    margin:0;
    white-space:normal;
}

.detail-header-actions{
    flex:0 0 auto;
    margin-left:auto;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
}

.detail-header-divider{
    display:block;
    width:1px;
    height:26px;
    background:#e4eaf1;
}

.detail-modal-header .detail-close-btn{
    flex:0 0 38px;
    width:38px;
    height:38px;
    margin:0;
    padding:0;
    border-radius:50%;
    background-size:11px;
    background-color:#f6f8fb;
    opacity:.72;
}

.detail-modal-header .detail-close-btn:hover{
    background-color:#edf2f7;
    opacity:1;
}

.detail-modal .badge-status{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:30px;
    white-space:nowrap;
    line-height:1;
}

.detail-modal-footer{
    display:flex;
    align-items:center;
    justify-content:flex-end;
}

.detail-modal-footer .detail-footer-close{
    min-width:120px;
    height:42px;
    padding:0 20px;
    border-radius:10px;
    font-weight:700;
    box-shadow:0 6px 14px rgba(13,91,201,.14);
}

.detail-modal-footer .detail-footer-close:hover{
    transform:none;
}

@media(max-width:575.98px){
    .detail-modal-header{
        align-items:flex-start;
        gap:12px;
    }

    .detail-header-actions{
        gap:8px;
    }

    .detail-header-divider{
        display:none;
    }

    .detail-modal .badge-status{
        min-height:28px;
        padding:7px 9px;
    }

    .detail-modal-header .detail-close-btn{
        width:34px;
        height:34px;
        flex-basis:34px;
    }

    .detail-modal-footer .detail-footer-close{
        width:100%;
    }
}


/* =========================================================
   V37.1 — Adiantamentos e Fechamento de Caixa
   Baseado no CSS original validado pelo cliente
   ========================================================= */

/* Ações da folha */
.folha-icon-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
}

.folha-icon-actions .btn{
    width:36px;
    min-width:36px;
    height:36px;
    min-height:36px;
    padding:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:9px;
}

/* Modal / lista de adiantamentos */
.advance-create-box{
    padding:16px;
    border:1px solid #dfe7f2;
    border-radius:14px;
    background:#f8fbff;
}

.advance-paid-switch{
    padding:11px 13px 11px 44px;
    border:1px solid #e3eaf3;
    border-radius:11px;
    background:#fbfcfe;
}

.advance-list{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.advance-item{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:13px 14px;
    border:1px solid #e7edf5;
    border-radius:12px;
    background:#fff;
}

.advance-item-main{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:5px 14px;
    min-width:0;
}

.advance-item-main strong{
    color:#173f70;
    font-size:15px;
}

.advance-item-main small{
    flex:0 0 100%;
    color:#74859b;
    font-size:11px;
}

.advance-date{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:#6b7f99;
    font-size:12px;
    font-weight:700;
}

.advance-item-actions{
    display:flex;
    align-items:center;
    gap:6px;
    flex:0 0 auto;
}

/* Lista exibida dentro do modal Detalhes da folha */
.advance-detail-total{
    flex:0 0 auto;
    padding:7px 10px;
    border:1px solid #dce8f8;
    border-radius:9px;
    background:#eef5ff;
    color:#647a97;
    font-size:11px;
    font-weight:700;
}

.advance-detail-total strong{
    color:#174b91;
    font-weight:800;
}

.advance-detail-list{
    display:flex;
    flex-direction:column;
    gap:9px;
}

.advance-detail-row{
    display:flex;
    align-items:center;
    gap:14px;
    padding:12px 13px;
    border:1px solid #e6edf5;
    border-radius:12px;
    background:#fbfcfe;
}

.advance-detail-date{
    width:170px;
    flex:0 0 170px;
    display:flex;
    align-items:center;
    gap:9px;
    color:#6f829b;
}

.advance-detail-date > i{
    width:34px;
    height:34px;
    flex:0 0 34px;
    border-radius:9px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#edf4ff;
    color:#2361b3;
}

.advance-detail-date span{
    display:block;
    margin:0;
    font-size:9px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:#8190a5;
}

.advance-detail-date strong{
    display:block;
    margin-top:2px;
    color:#274767;
    font-size:12px;
}

.advance-detail-info{
    min-width:0;
    flex:1 1 auto;
}

.advance-detail-info strong{
    display:block;
    color:#173f70;
    font-size:15px;
    font-weight:800;
}

.advance-detail-info small{
    display:block;
    margin-top:2px;
    color:#8291a3;
    font-size:10px;
}

.advance-detail-status{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:76px;
    padding:6px 10px;
    border-radius:999px;
    font-size:10px;
    font-weight:800;
}

.advance-detail-status.is-paid{
    color:#167448;
    background:#e8f7ef;
}

.advance-detail-status.is-pending{
    color:#986400;
    background:#fff3d5;
}

.advance-detail-empty{
    min-height:72px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    border:1px dashed #d9e3ef;
    border-radius:12px;
    color:#8292a7;
    background:#fbfcfe;
    font-size:12px;
}

/* Fechamento de caixa */
.cash-close-card{
    position:relative;
    overflow:hidden;
    padding:20px !important;
    border:1px solid #dfe7f1 !important;
    border-radius:16px !important;
    background:#fff !important;
    box-shadow:0 10px 30px rgba(18,49,91,.08) !important;
}

.cash-close-card::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:4px;
    background:linear-gradient(180deg,#1261d8,#0d47a1);
}

.cash-close-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:18px;
}

.cash-close-icon{
    width:44px;
    height:44px;
    flex:0 0 44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    background:#eaf2ff;
    color:#175bb7;
    font-size:17px;
}

.cash-balance-eyebrow{
    display:block;
    margin-bottom:3px;
    color:#7c8ca3;
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em;
}

.cash-close-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
}

.cash-close-stat{
    min-width:0;
    min-height:92px;
    display:flex;
    align-items:center;
    gap:12px;
    padding:14px;
    border:1px solid #e7edf5;
    border-radius:13px;
    background:#fbfcfe;
}

.cash-close-stat-icon{
    width:38px;
    height:38px;
    flex:0 0 38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    background:#e8f8ef;
    color:#198754;
}

.cash-close-stat-icon.is-neutral{
    background:#edf2f8;
    color:#58708e;
}

.cash-close-stat.is-negative .cash-close-stat-icon{
    background:#ffeded;
    color:#d23e49;
}

.cash-close-stat.is-featured{
    border-color:#d4e4fa;
    background:#eef5ff;
}

.cash-close-stat.is-featured .cash-close-stat-icon{
    background:#dceaff;
    color:#0d5bc9;
}

.cash-close-stat small{
    display:block;
    margin-bottom:4px;
    color:#7b8ca2;
    font-size:10px;
    font-weight:700;
}

.cash-close-stat strong{
    display:block;
    color:#243f60;
    font-size:17px;
    font-weight:800;
    white-space:nowrap;
}

.cash-close-stat.is-positive strong{
    color:#198754;
}

.cash-close-stat.is-negative strong{
    color:#d23e49;
}

.cash-close-stat.is-featured strong{
    color:#0d5bc9;
    font-size:18px;
}

.cash-close-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-top:16px;
    padding-top:16px;
    border-top:1px solid #edf1f6;
}

.cash-close-meta{
    display:flex;
    align-items:center;
    gap:8px;
    color:#687d98;
    font-size:12px;
}

.cash-close-meta i{
    color:#3972b8;
}

.cash-close-meta strong{
    color:#294967;
}

.cash-close-confirm{
    padding:18px;
    border:1px solid #d7e6fa;
    border-radius:14px;
    background:#eef5ff;
    text-align:center;
}

.cash-close-confirm span,
.cash-close-confirm small{
    display:block;
    color:#71839a;
}

.cash-close-confirm strong{
    display:block;
    margin:4px 0;
    color:#0d4f9f;
    font-size:28px;
    font-weight:800;
}

/* Dashboard - saldo transportado */
.cash-balance-card{
    padding:20px;
    overflow:hidden;
}

.cash-balance-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:16px;
}

.cash-balance-head h2{
    margin:0 0 4px;
    color:#173a64;
    font-size:18px;
    font-weight:800;
}

.cash-balance-head p{
    margin:0;
    color:#74859b;
    font-size:12px;
}

.cash-balance-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
}

.cash-balance-item{
    padding:14px 15px;
    border:1px solid #e7edf5;
    background:#fbfcfe;
    border-radius:13px;
}

.cash-balance-item span{
    display:block;
    margin-bottom:6px;
    color:#7c8da4;
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.cash-balance-item strong{
    display:block;
    color:#213f65;
    font-size:17px;
}

.cash-balance-item small{
    display:block;
    margin-top:4px;
    color:#8998aa;
    font-size:10px;
}

.cash-balance-item.positive strong{
    color:#198754;
}

.cash-balance-item.negative strong{
    color:#dc3545;
}

.cash-balance-item.featured{
    background:#eef5ff;
    border-color:#d5e5fb;
}

.cash-balance-item.featured strong{
    color:#0d5bc9;
    font-size:19px;
}

@media(max-width:991.98px){
    .advance-detail-row{
        align-items:flex-start;
        flex-wrap:wrap;
    }

    .advance-detail-date{
        width:145px;
        flex-basis:145px;
    }

    .cash-close-grid,
    .cash-balance-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:575.98px){
    .advance-item,
    .cash-close-header,
    .cash-close-footer,
    .cash-balance-head{
        flex-direction:column;
        align-items:stretch;
    }

    .advance-detail-row{
        flex-direction:column;
        align-items:stretch;
    }

    .advance-detail-date{
        width:auto;
        flex-basis:auto;
    }

    .advance-detail-status{
        align-self:flex-start;
    }

    .cash-close-grid,
    .cash-balance-grid{
        grid-template-columns:1fr;
    }

    .cash-close-footer .btn{
        width:100%;
    }
}


/* =========================================================
   V37.2 — Folha sem rolagem horizontal / ações compactas
   ========================================================= */
#folhaAjaxArea .table-wrap{
    overflow-x:visible;
}

.folha-table{
    width:100%;
    table-layout:fixed;
}

.folha-table thead th,
.folha-table tbody td{
    white-space:normal;
    overflow-wrap:anywhere;
    vertical-align:middle;
}

.folha-table thead th{
    padding:12px 9px;
    font-size:10px;
    line-height:1.2;
}

.folha-table tbody td{
    padding:13px 9px;
    font-size:12px;
    line-height:1.35;
}

/* Distribuição das colunas para caber em notebook/desktop */
.folha-table th:nth-child(1),
.folha-table td:nth-child(1){width:9%;}

.folha-table th:nth-child(2),
.folha-table td:nth-child(2){width:9%;}

.folha-table th:nth-child(3),
.folha-table td:nth-child(3){width:9%;}

.folha-table th:nth-child(4),
.folha-table td:nth-child(4){width:8%;}

.folha-table th:nth-child(5),
.folha-table td:nth-child(5){width:8%;}

.folha-table th:nth-child(6),
.folha-table td:nth-child(6){width:10%;}

.folha-table th:nth-child(7),
.folha-table td:nth-child(7){width:9%;}

.folha-table th:nth-child(8),
.folha-table td:nth-child(8){width:9%;}

.folha-table th:nth-child(9),
.folha-table td:nth-child(9){width:8%;}

.folha-table th:nth-child(10),
.folha-table td:nth-child(10){width:7%;}

.folha-table th:nth-child(11),
.folha-table td:nth-child(11){width:14%;}

/* Evita nomes "espremidos" em uma palavra por linha */
.folha-table td:first-child strong{
    display:block;
    line-height:1.35;
    word-break:normal;
    overflow-wrap:break-word;
}

.folha-table .folha-icon-actions{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    flex-wrap:wrap;
    gap:5px;
}

.folha-table .folha-icon-actions .btn,
.folha-table .folha-action-main{
    width:34px;
    min-width:34px;
    height:34px;
    min-height:34px;
    padding:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:9px;
}

.folha-table .badge-status{
    padding:5px 8px;
    font-size:9px;
}

.folha-table .small{
    font-size:10px !important;
}

/* Mantém valores monetários legíveis */
.folha-table td:nth-child(3),
.folha-table td:nth-child(4),
.folha-table td:nth-child(5),
.folha-table td:nth-child(6),
.folha-table td:nth-child(7){
    white-space:nowrap;
}

/* Notebook: compacta sem criar barra horizontal */
@media (min-width:992px) and (max-width:1499px){
    .folha-table thead th{
        padding:10px 7px;
        font-size:9px;
    }

    .folha-table tbody td{
        padding:11px 7px;
        font-size:11px;
    }

    .folha-table td:first-child{
        font-size:11px;
    }

    .folha-table .folha-icon-actions .btn,
    .folha-table .folha-action-main{
        width:31px;
        min-width:31px;
        height:31px;
        min-height:31px;
        border-radius:8px;
    }

    .folha-table .folha-icon-actions{
        gap:4px;
    }
}

/* Em telas realmente pequenas, aí sim a tabela pode rolar para não destruir a leitura */
@media (max-width:991.98px){
    #folhaAjaxArea .table-wrap{
        overflow-x:auto;
    }

    .folha-table{
        min-width:980px;
        table-layout:auto;
    }
}


/* V39 — lançamentos parcelados e recorrentes */
.launch-sequence-badge{width:max-content;display:inline-flex;align-items:center;gap:5px;margin-top:4px;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:800}
.launch-sequence-badge.parcelado{background:#eaf2ff;color:#2058b8}
.launch-sequence-badge.recorrente{background:#eaf8ef;color:#137b42}
.launch-auto-info{display:flex;align-items:flex-start;gap:11px;padding:12px 13px;border:1px solid #dce7f5;border-radius:12px;background:#f7faff}
.launch-auto-info>i{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:10px;background:#e7f0ff;color:#1f5cc1}
.launch-auto-info strong,.launch-auto-info small{display:block}
.launch-auto-info strong{color:#203e64;font-size:11px;margin-bottom:2px}
.launch-auto-info small{color:#788aa2;font-size:10px;line-height:1.45}
#quantidadeLancamentoWrap .form-control{text-align:center;font-weight:700}
