:root {
    --app-primary: #5b35f2;
    --app-primary-2: #7c4dff;
    --app-cyan: #00b8d9;
    --app-green: #00a86b;
    --app-orange: #ff8a00;
    --app-red: #ef3e5b;
    --app-dark: #17233b;
    --app-muted: #6d7890;
    --app-bg: #f3f6fc;
    --app-card: #ffffff;
    --app-line: #e4e9f2;
    --app-sidebar: 274px;
    --app-topbar: 68px;
    --app-radius: 16px;
    --app-shadow: 0 12px 35px rgba(31, 43, 79, .10);
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--app-bg); }
body {
    min-height: 100vh;
    margin: 0;
    background:
        radial-gradient(circle at 92% 4%, rgba(91, 53, 242, .13), transparent 28rem),
        linear-gradient(180deg, #f8faff 0, var(--app-bg) 100%);
    color: var(--app-dark);
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    font-size: 15px;
    -webkit-font-smoothing: antialiased;
}
a { color: var(--app-primary); transition: .2s ease; }
a:hover { color: #3f21bf; text-decoration: none; }

/* Barra superior */
.header-navbar {
    z-index: 1040;
    height: var(--app-topbar);
    padding: 0 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #fff;
    background: linear-gradient(115deg, #3d1fc4 0%, var(--app-primary) 46%, #00a8d4 100%);
    box-shadow: 0 7px 24px rgba(54, 30, 166, .28);
}
.topbar-left { display: flex; align-items: center; min-width: 260px; }
.topbar-menu {
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 12px;
    background: rgba(255,255,255,.14);
    color: #fff;
    font-size: 22px;
    cursor: pointer;
    margin-right: 10px;
}
.topbar-menu:hover { background: rgba(255,255,255,.24); }
.navbar-brand { display: inline-flex; align-items: center; gap: 10px; color: #fff !important; padding: 0; margin: 0; }
.navbar-brand img { width: 40px; height: 40px; object-fit: contain; filter: drop-shadow(0 5px 8px rgba(0,0,0,.18)); }
.navbar-brand span { font-size: 20px; font-weight: 800; letter-spacing: -.35px; }
.topbar-company {
    max-width: 46%;
    min-width: 180px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 9px;
    padding: 9px 15px;
    border-radius: 999px;
    background: rgba(255,255,255,.13);
    border: 1px solid rgba(255,255,255,.17);
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.topbar-company span { overflow: hidden; text-overflow: ellipsis; }
.user-chip {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #fff !important;
    padding: 6px 10px;
    border-radius: 14px;
    font-weight: 700;
}
.user-chip:hover { background: rgba(255,255,255,.13); }
.user-chip img { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; border: 2px solid rgba(255,255,255,.8); }
.user-dropdown .dropdown-menu { border: 0; border-radius: 14px; box-shadow: var(--app-shadow); padding: 8px; min-width: 220px; }
.user-dropdown .dropdown-item { border-radius: 9px; padding: 10px 12px; }
.user-dropdown .dropdown-item i { width: 22px; }

/* Menu lateral */
.main-menu {
    position: fixed;
    z-index: 1035;
    left: 0;
    top: var(--app-topbar);
    bottom: 0;
    width: var(--app-sidebar);
    overflow: hidden;
    background: linear-gradient(180deg, #17233b 0%, #101a2c 100%);
    box-shadow: 10px 0 32px rgba(23,35,59,.13);
    transition: transform .25s ease;
}
.main-menu-content { height: 100%; overflow-y: auto; padding: 15px 12px 30px; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.22) transparent; }
.menu-brand-mobile { display: none; }
.navigation, .navigation ul { list-style: none; padding: 0; margin: 0; }
.navigation-main > li { margin-bottom: 4px; }
.navigation-header { padding: 20px 13px 7px; color: #8491aa; font-size: 10px; font-weight: 800; letter-spacing: 1.5px; text-transform: uppercase; }
.navigation .nav-item > a {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 46px;
    padding: 10px 13px;
    border-radius: 12px;
    color: #cbd5e8;
    font-weight: 650;
}
.navigation .nav-item > a > i:first-child { width: 22px; text-align: center; font-size: 18px; color: #93a5c7; }
.navigation .nav-item > a:hover { color: #fff; background: rgba(255,255,255,.075); transform: translateX(2px); }
.navigation .nav-item.active > a,
.navigation .nav-item.open > a {
    color: #fff;
    background: linear-gradient(105deg, rgba(91,53,242,.95), rgba(0,184,217,.78));
    box-shadow: 0 8px 22px rgba(68,42,203,.28);
}
.navigation .nav-item.active > a > i,
.navigation .nav-item.open > a > i { color: #fff; }
.menu-arrow { margin-left: auto; transition: transform .2s ease; }
.nav-item.open > a .menu-arrow { transform: rotate(180deg); }
.menu-content { display: none; padding: 5px 0 6px 36px !important; }
.nav-item.open > .menu-content { display: block; }
.menu-content li { position: relative; }
.menu-content li::before { content: ""; position: absolute; left: -18px; top: 21px; width: 6px; height: 6px; border-radius: 50%; background: #56657f; }
.menu-content li.active::before { background: #2ee6ca; box-shadow: 0 0 0 4px rgba(46,230,202,.13); }
.menu-content a { display: block; padding: 9px 10px; border-radius: 9px; color: #aebbd2; font-size: 13px; font-weight: 600; }
.menu-content a:hover, .menu-content li.active a { color: #fff; background: rgba(255,255,255,.07); }
.nav-logout { margin-top: 10px; }
.nav-logout > a { background: rgba(239,62,91,.11); color: #ff9aac !important; }
.menu-backdrop { display: none; position: fixed; z-index: 1030; inset: 0; background: rgba(12,20,36,.58); backdrop-filter: blur(2px); }

/* Área principal */
.app-content.content {
    min-height: calc(100vh - var(--app-topbar));
    margin-left: var(--app-sidebar);
    padding: calc(var(--app-topbar) + 24px) 24px 24px;
    transition: margin-left .25s ease;
}
.content-wrapper { width: 100%; max-width: 1680px; margin: 0 auto; padding: 0 !important; background: transparent !important; color: var(--app-dark) !important; }
.content-header { margin-bottom: 14px; }
.content-header-title, .content-wrapper h3, .content-wrapper h4 { color: var(--app-dark); font-weight: 800; letter-spacing: -.25px; }
.content-header-title { font-size: 25px; }
.content-body { min-width: 0; }

/* Cartões e indicadores */
.card {
    border: 1px solid rgba(221,227,239,.8);
    border-radius: var(--app-radius);
    background: var(--app-card);
    box-shadow: var(--app-shadow);
    overflow: visible;
    margin-bottom: 20px;
}
.card-header { background: transparent; border-bottom: 1px solid var(--app-line); padding: 17px 20px; border-radius: var(--app-radius) var(--app-radius) 0 0 !important; }
.card-body, .card-content { padding: 18px 20px; }
.card-content .card-body { padding: 18px 20px; }
.card-header.bg-dark, .card-header.bg-secondary, .card.bg-secondary,
.bg-grad, .bg-gradient-x-primary, .bg-gradient-x-danger, .bg-gradient-x-success, .bg-gradient-x-info {
    color: #fff !important;
    border: 0 !important;
    background: linear-gradient(115deg, var(--app-primary), #00a8d4) !important;
}
.card.bg-secondary { border-radius: var(--app-radius); }
.card.bg-secondary .card-body, .card.bg-secondary label, .card.bg-secondary h4 { color: #fff !important; }
.card .media { align-items: center; }
.card a { text-decoration: none; }
.card-header.bg-grad { border-radius: var(--app-radius) !important; min-height: 96px; display: flex; align-items: center; }
.card-header.bg-grad h4 { color: #fff !important; font-size: 18px; }
.card-header.bg-grad i { color: rgba(255,255,255,.92) !important; }

/* Formulários */
.form-group { margin-bottom: 15px; }
label, .form-group { font-weight: 650; }
.form-control, .custom-select, select.form-control {
    min-height: 42px;
    border: 1px solid #ccd5e4;
    border-radius: 10px;
    background-color: #fff;
    color: #26344d;
    font-size: 15px !important;
    font-weight: 600 !important;
    box-shadow: inset 0 1px 2px rgba(23,35,59,.025);
    transition: border-color .18s, box-shadow .18s;
}
.form-control:focus, select.form-control:focus {
    border-color: var(--app-primary-2);
    box-shadow: 0 0 0 3px rgba(91,53,242,.13);
}
textarea.form-control { min-height: 95px; }
input[readonly], input:disabled, select:disabled { background: #eef2f8 !important; }

/* Botões */
.btn {
    border: 0;
    border-radius: 10px;
    min-height: 40px;
    padding: 9px 15px;
    font-weight: 750;
    letter-spacing: .1px;
    box-shadow: 0 5px 13px rgba(31,43,79,.12);
    transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}
.btn:hover { transform: translateY(-1px); box-shadow: 0 8px 18px rgba(31,43,79,.17); filter: brightness(1.03); }
.btn-sm { min-height: 33px; padding: 6px 10px; border-radius: 8px; }
.btn-lg { min-height: 48px; padding: 12px 20px; }
.btn-primary { background: linear-gradient(110deg, #4f2ed2, #7b50ff); }
.btn-success { background: linear-gradient(110deg, #009b68, #15c58a); }
.btn-info { background: linear-gradient(110deg, #008dbf, #00bdd9); }
.btn-danger { background: linear-gradient(110deg, #da2b4a, #ff5571); }
.btn-warning { color: #2b2108; background: linear-gradient(110deg, #ffb000, #ffd148); }
.btn-secondary, .bg-secondary { background-color: #33435f !important; }
.btn-light { background: #fff; color: var(--app-dark); }
.btn.disabled, .btn:disabled { opacity: .55; transform: none; box-shadow: none; }

/* Tabelas e DataTables */
.table-responsive { border-radius: 12px; }
.table { margin-bottom: 0; color: #2a3850; background: #fff; }
.table thead th, .table th {
    border-top: 0;
    border-bottom: 1px solid #dbe2ee !important;
    background: #edf2f9;
    color: #3a4860;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .35px;
    vertical-align: middle;
    white-space: nowrap;
}
.table td { border-top: 1px solid #edf0f5; vertical-align: middle; }
.table-striped tbody tr:nth-of-type(odd) { background-color: #fafbfe; }
.table tbody tr:hover { background: #f1efff; }
.table-bordered { border: 1px solid #e0e6ef; }
.dataTables_wrapper { width: 100%; }
.dataTables_wrapper .row { align-items: center; margin-bottom: 8px; }
.dataTables_filter input, .dataTables_length select { min-height: 37px; border: 1px solid #ccd5e4; border-radius: 9px; padding: 6px 10px; }
.dataTables_filter input { min-width: 220px; }
.page-link { color: var(--app-primary); border: 0; margin: 0 2px; border-radius: 8px !important; }
.page-item.active .page-link { background: linear-gradient(110deg, var(--app-primary), var(--app-cyan)); }
.dataTables_info { color: var(--app-muted); font-size: 13px; }

/* Mensagens, modal e utilitários */
.alert { border: 0; border-radius: 12px; box-shadow: 0 5px 18px rgba(31,43,79,.08); }
.modal-content { border: 0; border-radius: 18px; box-shadow: 0 25px 75px rgba(18,28,48,.26); overflow: hidden; }
.modal-header { border-bottom: 1px solid var(--app-line); }
.modal-footer { border-top: 1px solid var(--app-line); }
.dropdown-menu { border-radius: 12px; border-color: var(--app-line); box-shadow: var(--app-shadow); }
.badge { padding: 7px 9px; border-radius: 8px; }
.text-white, .white { color: #fff !important; }
.black, .dark { color: var(--app-dark) !important; }
.text-cinza, .cinza { color: #8793a8 !important; }
.font-medium-5, .font-large-1 { font-size: 2rem !important; }
.heading-elements { float: right; }
.form-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.footer {
    margin-left: var(--app-sidebar);
    padding: 16px 25px;
    color: #71809a;
    background: transparent;
    font-size: 13px;
    transition: margin-left .25s ease;
}
.footer p { margin: 0; }

/* Loading e atualização sem F5 */
.app-loading { display: none; position: fixed; z-index: 2000; inset: 0; align-items: center; justify-content: center; background: rgba(244,247,252,.68); backdrop-filter: blur(3px); }
.app-loading.show { display: flex; }
.app-loading-card { display: flex; align-items: center; gap: 12px; padding: 15px 20px; border-radius: 14px; background: #fff; box-shadow: var(--app-shadow); color: var(--app-dark); }
.app-spinner { width: 25px; height: 25px; border: 3px solid #dcd7ff; border-top-color: var(--app-primary); border-radius: 50%; animation: appSpin .72s linear infinite; }
@keyframes appSpin { to { transform: rotate(360deg); } }

/* Login */
.login-page {
    position: relative;
    min-height: 100vh;
    display: grid;
    grid-template-columns: minmax(360px, 1.04fr) minmax(390px, .96fr);
    overflow: hidden;
    background:
        radial-gradient(circle at 8% 12%, rgba(91, 53, 242, .10), transparent 25rem),
        radial-gradient(circle at 90% 88%, rgba(0, 184, 217, .10), transparent 28rem),
        linear-gradient(145deg, #ffffff 0%, #f8faff 48%, #f2f7ff 100%);
}
.login-page::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .35;
    background-image: linear-gradient(rgba(91,53,242,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(91,53,242,.045) 1px, transparent 1px);
    background-size: 34px 34px;
    mask-image: linear-gradient(to right, #000, transparent 72%);
}
.login-showcase {
    position: relative;
    z-index: 1;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: clamp(34px, 5.5vw, 76px);
    color: var(--app-dark);
    background: rgba(255,255,255,.44);
    border-right: 1px solid rgba(91,53,242,.10);
}
.login-showcase::before,
.login-showcase::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    filter: blur(2px);
}
.login-showcase::before {
    width: 440px;
    height: 440px;
    right: -190px;
    top: -180px;
    background: radial-gradient(circle at 35% 35%, rgba(124,77,255,.21), rgba(0,184,217,.05) 58%, transparent 72%);
}
.login-showcase::after {
    width: 330px;
    height: 330px;
    left: -150px;
    bottom: -160px;
    background: radial-gradient(circle, rgba(0,184,217,.17), transparent 68%);
}
.login-brand, .login-copy, .login-features { position: relative; z-index: 2; }
.login-brand {
    display: flex;
    align-items: center;
    gap: 13px;
    color: #263553;
    font-size: 22px;
    font-weight: 900;
}
.login-brand img {
    width: 58px;
    height: 58px;
    object-fit: contain;
    filter: drop-shadow(0 10px 13px rgba(55,37,154,.22));
}
.login-brand span {
    letter-spacing: -.5px;
    text-shadow: 0 1px 0 #fff, 0 3px 0 rgba(91,53,242,.12), 0 7px 14px rgba(38,53,83,.12);
}
.login-brand small {
    margin-left: 2px;
    padding: 5px 9px;
    border-radius: 999px;
    color: #6343d8;
    background: #eeeaff;
    border: 1px solid #ddd4ff;
    font-size: 10px;
    font-weight: 850;
}
.login-copy { max-width: 660px; padding: 42px 0; }
.login-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 18px;
    color: #6b4de2;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 2.3px;
}
.login-eyebrow::before { content: ""; width: 34px; height: 3px; border-radius: 99px; background: linear-gradient(90deg, var(--app-primary), var(--app-cyan)); }
.login-title-3d {
    margin: 0 0 22px;
    color: #5334d1;
    font-size: clamp(52px, 7vw, 88px);
    line-height: .92;
    font-weight: 950;
    letter-spacing: -4px;
    text-shadow:
        0 1px 0 #cfc5ff,
        0 2px 0 #b9aaff,
        0 3px 0 #a391f3,
        0 4px 0 #8f79e2,
        0 5px 0 #7862ca,
        0 8px 18px rgba(59,39,151,.26),
        0 16px 36px rgba(59,39,151,.14);
}
.login-description-3d {
    max-width: 610px;
    color: #1c2d4b;
    font-size: clamp(24px, 3vw, 38px);
    line-height: 1.18;
    font-weight: 900;
    letter-spacing: -.8px;
    text-shadow: 0 1px 0 #fff, 0 2px 0 #dfe6f3, 0 5px 12px rgba(26,42,72,.14);
}
.login-more {
    margin-top: 18px;
    color: #697893;
    font-size: 16px;
    line-height: 1.55;
}
.login-more a {
    display: inline-flex;
    margin-top: 7px;
    padding: 7px 12px;
    border-radius: 10px;
    color: #5938d5;
    background: #f0ecff;
    font-weight: 800;
}
.login-more a:hover { color: #fff; background: var(--app-primary); transform: translateY(-1px); }
.login-features { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.login-feature {
    min-height: 118px;
    padding: 17px;
    border: 1px solid rgba(91,53,242,.10);
    border-radius: 18px;
    background: rgba(255,255,255,.78);
    box-shadow: 0 13px 32px rgba(39,50,84,.08), inset 0 1px 0 #fff;
    backdrop-filter: blur(9px);
}
.login-feature i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    margin-bottom: 10px;
    border-radius: 12px;
    color: #fff;
    background: linear-gradient(135deg, var(--app-primary), var(--app-cyan));
    box-shadow: 0 8px 16px rgba(91,53,242,.20);
    font-size: 17px;
}
.login-feature strong { display: block; color: #263553; font-size: 14px; }
.login-feature span { display: block; margin-top: 3px; color: #7a879d; font-size: 11px; }
.login-form-area {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px;
}
.login-form-area::before {
    content: "";
    position: absolute;
    width: min(80%, 510px);
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(91,53,242,.11), transparent 68%);
    filter: blur(8px);
}
.login-card {
    position: relative;
    width: 100%;
    max-width: 470px;
    border: 1px solid rgba(255,255,255,.94);
    border-radius: 28px;
    padding: 36px;
    background: rgba(255,255,255,.90);
    box-shadow: 0 30px 80px rgba(33,45,78,.14), 0 3px 12px rgba(91,53,242,.06);
    backdrop-filter: blur(16px);
}
.login-card::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1px;
    pointer-events: none;
    background: linear-gradient(145deg, rgba(124,77,255,.30), transparent 34%, rgba(0,184,217,.22));
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
}
.login-card h2 {
    margin: 0 0 7px;
    color: #273552;
    font-size: 32px;
    font-weight: 900;
    letter-spacing: -1px;
    text-shadow: 0 1px 0 #fff, 0 3px 8px rgba(40,53,82,.10);
}
.login-card .lead { color: var(--app-muted); font-size: 15px; margin-bottom: 27px; }
.login-field { position: relative; margin-bottom: 16px; }
.login-field > i { position: absolute; left: 16px; bottom: 16px; color: #7562c7; z-index: 2; }
.login-field .form-control {
    min-height: 54px;
    padding-left: 46px;
    border: 1px solid #dde4f0;
    border-radius: 14px;
    background: #fbfcff;
    box-shadow: inset 0 1px 2px rgba(31,43,79,.025);
}
.login-field .form-control:focus {
    border-color: #8f78ef;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(91,53,242,.10), 0 8px 20px rgba(52,36,143,.06);
}
.login-field label { display: block; margin: 0 0 7px; color: #3a4860; font-weight: 750; }
.login-field select.form-control { padding-left: 44px; }
.login-submit {
    min-height: 55px;
    width: 100%;
    margin-top: 6px;
    border: 0;
    border-radius: 14px;
    background: linear-gradient(125deg, #5130d5, #7652ef 54%, #00a9ca);
    box-shadow: 0 12px 25px rgba(75,47,195,.27), inset 0 1px 0 rgba(255,255,255,.25);
    font-size: 16px;
    font-weight: 850;
}
.login-submit:hover { transform: translateY(-2px); box-shadow: 0 16px 32px rgba(75,47,195,.32); }
.login-message { margin-top: 18px; border-radius: 13px; font-size: 13px; }
.login-footer { margin-top: 24px; text-align: center; color: #8793a8; font-size: 12px; }

@media (min-width: 992px) {
    body.menu-collapsed .main-menu { transform: translateX(calc(-1 * var(--app-sidebar))); }
    body.menu-collapsed .app-content.content,
    body.menu-collapsed .footer { margin-left: 0; }
}

@media (max-width: 991.98px) {
    :root { --app-topbar: 62px; }
    .header-navbar { height: var(--app-topbar); padding: 0 12px; }
    .topbar-left { min-width: 0; }
    .navbar-brand span { font-size: 17px; }
    .navbar-brand img { width: 36px; height: 36px; }
    .topbar-company { display: none; }
    .user-chip span { display: none; }
    .user-chip { padding: 4px; }
    .main-menu { top: 0; width: min(88vw, 310px); transform: translateX(-105%); z-index: 1060; }
    body.menu-mobile-open { overflow: hidden; }
    body.menu-mobile-open .main-menu { transform: translateX(0); }
    body.menu-mobile-open .menu-backdrop { display: block; }
    .menu-brand-mobile { height: 70px; display: flex; align-items: center; gap: 10px; padding: 12px 15px; border-bottom: 1px solid rgba(255,255,255,.09); color: #fff; }
    .menu-brand-mobile img { width: 42px; height: 42px; }
    .menu-brand-mobile div { display: flex; flex-direction: column; }
    .menu-brand-mobile small { color: #94a4bf; }
    .menu-close { margin-left: auto; border: 0; background: rgba(255,255,255,.1); color: #fff; width: 38px; height: 38px; border-radius: 10px; }
    .main-menu-content { height: calc(100% - 70px); }
    .app-content.content { margin-left: 0; padding: calc(var(--app-topbar) + 16px) 12px 15px; }
    .footer { margin-left: 0; padding: 14px 15px 22px; text-align: center; }
    .content-header-title, .content-wrapper h3 { font-size: 21px; }
    .card { border-radius: 13px; margin-bottom: 14px; }
    .card-header, .card-body, .card-content, .card-content .card-body { padding: 14px; }
    .heading-elements { float: none; margin-top: 10px; }
    .form-actions { width: 100%; }
    .form-actions .btn { flex: 1 1 auto; }
    .table-responsive, .dataTables_wrapper { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .table { min-width: 680px; font-size: 13px !important; }
    .dataTables_filter { text-align: left !important; margin-top: 8px; }
    .dataTables_filter input { min-width: 0; width: calc(100% - 70px); }
    .dataTables_paginate { overflow-x: auto; }
    .btn { min-height: 38px; }
    .login-page { grid-template-columns: 1fr; }
    .login-showcase { min-height: 360px; padding: 25px 24px 54px; border-right: 0; border-bottom: 1px solid rgba(91,53,242,.10); }
    .login-copy { padding: 42px 0 12px; }
    .login-title-3d { margin-top: 0; font-size: 50px; letter-spacing: -2.5px; }
    .login-description-3d { font-size: 26px; }
    .login-more { font-size: 14px; }
    .login-features { display: none; }
    .login-form-area { margin-top: -32px; position: relative; z-index: 2; padding: 0 14px 25px; }
    .login-card { padding: 25px 20px; border-radius: 21px; }
}

@media (max-width: 575.98px) {
    body { font-size: 14px; }
    .topbar-menu { width: 38px; height: 38px; margin-right: 7px; }
    .navbar-brand span { max-width: 125px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .content-wrapper .row > [class*="col-"] { margin-bottom: 7px; }
    .content-wrapper .row > [class*="col-"]:last-child { margin-bottom: 0; }
    .form-control, select.form-control { min-height: 41px; font-size: 14px !important; }
    .card-header.bg-grad { min-height: 76px; }
    .font-medium-5, .font-large-1 { font-size: 1.55rem !important; }
}

/* Mostrar e ocultar senha no login */
.login-field .password-input {
    padding-right: 54px;
}
.password-toggle {
    position: absolute;
    right: 11px;
    bottom: 8px;
    z-index: 3;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 11px;
    color: #654bd1;
    background: transparent;
    box-shadow: none;
    cursor: pointer;
    transition: background .18s ease, color .18s ease, transform .18s ease;
}
.password-toggle:hover,
.password-toggle:focus {
    color: #fff;
    background: linear-gradient(135deg, #654bd1, #00a9ca);
    outline: none;
    transform: translateY(-1px);
}
.password-toggle i {
    font-size: 17px;
}

/* =========================================================
   PLUS7WEBNET FINANCEIRO — PAINEL PREMIUM 2026
   Branco, ouro queimado, azul profundo e componentes compactos
   ========================================================= */
:root {
    --app-primary: #b07a16;
    --app-primary-2: #d6a33b;
    --app-cyan: #176b87;
    --app-green: #1a9c6f;
    --app-orange: #d88720;
    --app-red: #d34956;
    --app-dark: #172235;
    --app-muted: #717987;
    --app-bg: #f4f5f3;
    --app-card: #ffffff;
    --app-line: #e8e4da;
    --app-sidebar: 248px;
    --app-topbar: 66px;
    --app-radius: 15px;
    --app-shadow: 0 12px 32px rgba(39, 36, 29, .075);
    --app-shadow-hover: 0 20px 46px rgba(48, 42, 30, .13);
    --gold-soft: #f8f1df;
    --gold-line: #ead8aa;
    --navy-soft: #eef2f5;
}

html { background: var(--app-bg); }
body.app-shell {
    background:
        radial-gradient(circle at 100% 0, rgba(214, 163, 59, .10), transparent 34rem),
        radial-gradient(circle at 0 100%, rgba(23, 107, 135, .055), transparent 30rem),
        linear-gradient(180deg, #fbfbfa 0%, #f3f4f2 100%);
    color: var(--app-dark);
}
body.app-shell::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    opacity: .24;
    background-image: linear-gradient(rgba(68, 61, 47, .025) 1px, transparent 1px), linear-gradient(90deg, rgba(68, 61, 47, .025) 1px, transparent 1px);
    background-size: 32px 32px;
}

a { color: #98650b; }
a:hover { color: #724904; }

/* Topo profissional claro */
.header-navbar {
    height: var(--app-topbar);
    padding: 0 18px;
    color: var(--app-dark);
    background: rgba(255, 255, 255, .94);
    border-bottom: 1px solid rgba(208, 197, 171, .72);
    box-shadow: 0 5px 22px rgba(34, 31, 25, .065);
    backdrop-filter: blur(14px);
}
.topbar-left { min-width: 230px; }
.topbar-menu {
    width: 40px;
    height: 40px;
    border: 1px solid var(--gold-line);
    border-radius: 11px;
    color: #80560d;
    background: linear-gradient(145deg, #fff, var(--gold-soft));
    box-shadow: 0 5px 13px rgba(130, 93, 22, .10);
}
.topbar-menu:hover { color: #fff; background: linear-gradient(135deg, #c49028, #9f6b0e); }
.navbar-brand { color: var(--app-dark) !important; }
.navbar-brand img { width: 38px; height: 38px; filter: drop-shadow(0 6px 8px rgba(116, 80, 14, .18)); }
.navbar-brand span { font-size: 19px; font-weight: 900; letter-spacing: -.55px; text-shadow: 0 1px 0 #fff, 0 3px 7px rgba(130, 93, 22, .10); }
.topbar-company {
    color: #554c3a;
    background: #fbf8f0;
    border: 1px solid #eee2c5;
    font-size: 12px;
    font-weight: 750;
}
.topbar-company i { color: #ad7716; }
.user-chip { color: var(--app-dark) !important; padding: 5px 8px; }
.user-chip:hover { background: var(--gold-soft); }
.user-chip img { width: 36px; height: 36px; border: 2px solid #e4cb8d; }
.user-dropdown .dropdown-menu { border: 1px solid var(--app-line); }

/* Sidebar clara com destaque ouro */
.main-menu {
    top: var(--app-topbar);
    width: var(--app-sidebar);
    background: rgba(255, 255, 255, .97);
    border-right: 1px solid #e9e5dc;
    box-shadow: 10px 0 30px rgba(38, 35, 29, .055);
}
.main-menu-content { padding: 13px 10px 28px; scrollbar-color: #d2c4a4 transparent; }
.navigation-header { padding: 18px 12px 6px; color: #a19272; font-size: 9px; letter-spacing: 1.6px; }
.navigation .nav-item > a {
    min-height: 43px;
    gap: 10px;
    padding: 9px 11px;
    border-radius: 11px;
    color: #586173;
    font-size: 13px;
    font-weight: 720;
}
.navigation .nav-item > a > i:first-child { color: #a57a26; font-size: 17px; }
.navigation .nav-item > a:hover { color: #6f4804; background: #faf5e9; transform: translateX(2px); }
.navigation .nav-item.active > a,
.navigation .nav-item.open > a {
    color: #fff;
    background: linear-gradient(115deg, #c18a22, #9b670c);
    box-shadow: 0 8px 20px rgba(156, 106, 15, .22), inset 0 1px 0 rgba(255,255,255,.22);
}
.menu-content { padding-left: 31px !important; }
.menu-content li::before { background: #c9b786; }
.menu-content li.active::before { background: #bb8219; box-shadow: 0 0 0 4px rgba(187,130,25,.12); }
.menu-content a { color: #737b89; font-size: 12px; }
.menu-content a:hover, .menu-content li.active a { color: #79520b; background: #faf4e5; }
.nav-logout > a { color: #bf3542 !important; background: #fff1f1; }
.menu-brand-mobile { color: var(--app-dark); background: #fff; border-bottom-color: #e9e5dc; }
.menu-brand-mobile small { color: #8a826f; }
.menu-close { color: #8b5d0a; background: #f8efd9; }

/* Área, títulos e painéis */
.app-content.content {
    margin-left: var(--app-sidebar);
    padding: calc(var(--app-topbar) + 18px) 20px 20px;
}
.content-wrapper { max-width: 1600px; }
.content-header {
    align-items: center;
    margin: 0 0 13px;
    padding: 10px 12px;
    border: 1px solid #ebe6da;
    border-radius: 14px;
    background: rgba(255,255,255,.78);
    box-shadow: 0 8px 20px rgba(44,40,32,.045);
}
.content-header-title, .content-wrapper h3, .content-wrapper h4 { color: var(--app-dark); font-weight: 850; }
.content-header .btn-block { height: 40px; display: inline-flex; align-items: center; justify-content: center; }
.content-header [class*="col-"] { padding-left: 5px; padding-right: 5px; }

.card {
    margin-bottom: 15px;
    border: 1px solid #ebe7de;
    border-radius: var(--app-radius);
    background: rgba(255,255,255,.96);
    box-shadow: var(--app-shadow);
}
.card:hover { border-color: #e3d5b4; }
.card-header { padding: 13px 16px; border-bottom-color: #eeeae2; }
.card-body, .card-content, .card-content .card-body { padding: 15px 16px; }
.card-header.bg-dark, .card-header.bg-secondary, .card.bg-secondary,
.bg-grad, .bg-gradient-x-primary, .bg-gradient-x-danger, .bg-gradient-x-success, .bg-gradient-x-info {
    color: #fff !important;
    background: linear-gradient(120deg, #26344a, #172235 58%, #9a680f 160%) !important;
}
.card.bg-secondary { overflow: hidden; }
.card-header.bg-grad { min-height: 72px; }
.card-header.bg-grad h4 { font-size: 16px; }

/* Formulários mais compactos */
.form-group { margin-bottom: 11px; }
label, .form-group { color: #4f5663; font-weight: 720; }
.form-control, .custom-select, select.form-control {
    min-height: 39px;
    height: auto;
    padding: 7px 10px;
    border: 1px solid #dcd9d1;
    border-radius: 9px;
    color: #273244;
    background: #fff;
    font-size: 13px !important;
    font-weight: 620 !important;
    box-shadow: inset 0 1px 2px rgba(35, 31, 24, .025);
}
.form-control:focus, select.form-control:focus {
    border-color: #c89a3b;
    box-shadow: 0 0 0 3px rgba(176,122,22,.11);
}
textarea.form-control { min-height: 82px; }
input[readonly], input:disabled, select:disabled { background: #f0f0ed !important; }

/* Botões alinhados, premium e consistentes */
.btn {
    min-height: 38px;
    padding: 8px 14px;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 790;
    box-shadow: 0 5px 12px rgba(41, 37, 29, .10);
}
.btn:hover { transform: translateY(-1px); box-shadow: 0 9px 19px rgba(41, 37, 29, .15); }
.btn i:first-child { margin-right: 5px; }
.btn-sm { min-height: 31px; padding: 5px 9px; font-size: 12px; }
.btn-block { display: flex; align-items: center; justify-content: center; width: 100%; }
.btn-primary { color: #fff; background: linear-gradient(120deg, #bd8720, #966109); }
.btn-primary:hover, .btn-primary:focus { background: linear-gradient(120deg, #ca952b, #825204); }
.btn-success { background: linear-gradient(120deg, #278c69, #146d50); }
.btn-info { background: linear-gradient(120deg, #24728d, #15576e); }
.btn-danger { background: linear-gradient(120deg, #d6535f, #ad2f3b); }
.btn-warning { color: #3f2c09; background: linear-gradient(120deg, #e0b351, #c68b1d); }
.btn-secondary, .bg-secondary { background-color: #26344a !important; }
.btn-outline-primary { color: #92610a; border: 1px solid #d9bd80 !important; background: #fffaf0; box-shadow: none; }
.btn-outline-primary:hover { color: #fff; background: #aa7414; }
.btn-outline-dark { color: #344052; border: 1px solid #d9dde2 !important; background: #fff; box-shadow: none; }
.btn-outline-dark:hover { color: #fff; background: #26344a; }
.btn-outline-danger { border: 1px solid #efc5c9 !important; background: #fff7f7; box-shadow: none; }
.form-actions, .button-group, .btn-toolbar { justify-content: flex-end; align-items: center; gap: 7px; }
.form-actions .btn { min-width: 112px; }

/* Tabelas e DataTables compactos */
.table-responsive { border: 1px solid #ece8df; border-radius: 11px; background: #fff; }
.table {
    width: 100% !important;
    min-width: 0;
    color: #343c49;
    background: #fff;
    font-family: Inter, "Segoe UI", Arial, sans-serif !important;
    font-size: 12px !important;
}
.table thead th, .table th {
    padding: 8px 8px !important;
    border-bottom: 1px solid #ddd7c9 !important;
    background: #f5f1e8 !important;
    color: #665c48 !important;
    font-size: 10px !important;
    font-weight: 850;
    letter-spacing: .5px;
    line-height: 1.25;
}
.table td {
    padding: 7px 8px !important;
    border-top: 1px solid #f0ede7;
    line-height: 1.3;
}
.table-striped tbody tr:nth-of-type(odd) { background-color: #fcfcfb; }
.table tbody tr:hover { background: #fff9ec; }
.table .btn { min-height: 28px; padding: 4px 7px; }
.dataTables_wrapper { padding: 10px 10px 4px; border: 1px solid #ebe7de; border-radius: 12px; background: #fff; box-shadow: 0 8px 22px rgba(43,39,31,.045); }
.dataTables_wrapper .row { margin-left: -5px; margin-right: -5px; }
.dataTables_filter input, .dataTables_length select {
    min-height: 34px;
    border-color: #ddd8cc;
    border-radius: 8px;
    font-size: 12px;
}
.dataTables_filter input { min-width: 210px; }
.dataTables_info, .dataTables_length, .dataTables_filter { color: #777e88; font-size: 11px; }
.page-link { padding: 6px 9px; color: #94630c; background: #faf8f3; }
.page-item.active .page-link { background: linear-gradient(120deg, #bd8720, #966109); }

.footer { margin-left: var(--app-sidebar); color: #8b887f; }

/* Dashboard 7WebNet Financeiro */
.dashboard-page .content-wrapper { max-width: 1580px; }
.dashboard-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}
.dashboard-kicker {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #a36d0d;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 1.55px;
    text-transform: uppercase;
}
.dashboard-kicker i { font-size: 7px; animation: dashboardPulse 1.8s ease-in-out infinite; }
.dashboard-heading h1 { margin: 4px 0 1px; font-size: 28px; font-weight: 930; letter-spacing: -1px; }
.dashboard-heading p { margin: 0; color: var(--app-muted); font-size: 12px; }
.dashboard-filters { display: flex; gap: 8px; align-items: flex-end; }
.dashboard-filters label { margin: 0; }
.dashboard-filters label span { display: block; margin-bottom: 4px; color: #8b826f; font-size: 9px; font-weight: 850; letter-spacing: .8px; text-transform: uppercase; }
.dashboard-filters .form-control { min-width: 142px; background-color: #fff; }
.dashboard-filters label:last-child .form-control { min-width: 88px; }

.finance-hero {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: center;
    min-height: 188px;
    margin-bottom: 14px;
    padding: 25px 28px;
    border: 1px solid #d8c89f;
    border-radius: 19px;
    color: #fff;
    background:
        radial-gradient(circle at 84% 42%, rgba(221,172,70,.38), transparent 15rem),
        linear-gradient(122deg, #172235 0%, #24344d 55%, #704b09 145%);
    box-shadow: 0 18px 42px rgba(28,35,48,.16);
}
.finance-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .18;
    pointer-events: none;
    background-image: linear-gradient(rgba(255,255,255,.11) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.11) 1px, transparent 1px);
    background-size: 29px 29px;
    mask-image: linear-gradient(90deg, #000, transparent 80%);
}
.finance-hero-copy, .finance-hero-mark { position: relative; z-index: 1; }
.finance-hero-badge { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 11px; color: #f3d48f; font-size: 10px; font-weight: 850; letter-spacing: 1.2px; text-transform: uppercase; }
.finance-hero h2 { max-width: 690px; margin: 0 0 7px; color: #fff; font-size: clamp(25px, 3vw, 38px); font-weight: 930; letter-spacing: -1.35px; }
.finance-hero p { max-width: 700px; margin: 0; color: #d7dfeb; font-size: 13px; line-height: 1.55; }
.finance-hero-actions { display: flex; gap: 8px; margin-top: 17px; }
.finance-hero .btn-light { color: #26344a; background: #fff; }
.finance-hero-mark { display: flex; flex-direction: column; align-items: center; min-width: 155px; padding: 16px; border: 1px solid rgba(255,255,255,.17); border-radius: 17px; background: rgba(255,255,255,.075); backdrop-filter: blur(8px); }
.finance-hero-mark img { width: 76px; height: 76px; object-fit: contain; filter: drop-shadow(0 10px 14px rgba(0,0,0,.28)); }
.finance-hero-mark strong { margin-top: 8px; font-size: 15px; }
.finance-hero-mark span { color: #e7cf99; font-size: 10px; }

.kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; margin-bottom: 14px; }
.kpi-card {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 105px;
    padding: 15px;
    border: 1px solid #e8e3d9;
    border-radius: 15px;
    background: rgba(255,255,255,.97);
    box-shadow: var(--app-shadow);
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.kpi-card::after { content: ""; position: absolute; right: -35px; bottom: -47px; width: 100px; height: 100px; border-radius: 50%; background: currentColor; opacity: .035; }
.kpi-card:hover { transform: translateY(-4px); border-color: #dbc794; box-shadow: var(--app-shadow-hover); }
.kpi-icon { flex: 0 0 43px; width: 43px; height: 43px; display: grid; place-items: center; border-radius: 13px; font-size: 17px; box-shadow: inset 0 1px 0 rgba(255,255,255,.65); }
.kpi-copy { min-width: 0; display: flex; flex-direction: column; }
.kpi-copy span { color: #777c84; font-size: 10px; font-weight: 820; letter-spacing: .45px; text-transform: uppercase; }
.kpi-copy strong { margin: 2px 0 1px; color: #202b3d; font-size: clamp(18px, 2vw, 24px); font-weight: 920; letter-spacing: -.7px; white-space: nowrap; }
.kpi-copy small { color: #92969d; font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kpi-entry .kpi-icon { color: #167b59; background: #e4f5ee; }
.kpi-exit .kpi-icon { color: #b73946; background: #fdebed; }
.kpi-balance .kpi-icon { color: #94610a; background: #fbf0d5; }
.kpi-negative .kpi-icon { color: #b73946; background: #fdebed; }
.kpi-moves .kpi-icon { color: #285d7a; background: #e8f1f5; }

.dashboard-chart-grid { display: grid; grid-template-columns: minmax(0, 2.1fr) minmax(270px, .9fr); gap: 12px; margin-bottom: 14px; }
.dashboard-panel { border: 1px solid #e9e5dc; border-radius: 16px; background: rgba(255,255,255,.97); box-shadow: var(--app-shadow); }
.dashboard-panel-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-bottom: 1px solid #eeeae2; }
.dashboard-panel-header span, .dashboard-section-title span { display: block; color: #a06d11; font-size: 9px; font-weight: 880; letter-spacing: 1.1px; text-transform: uppercase; }
.dashboard-panel-header h3 { margin: 2px 0 0; font-size: 16px; letter-spacing: -.35px; }
.chart-canvas-wrap { height: 325px; padding: 14px 16px 10px; }
.summary-chart-wrap { height: 255px; padding: 14px 18px 2px; }
.panel-legend { display: flex; gap: 13px; align-items: center; }
.panel-legend span { position: relative; padding-left: 13px; color: #767c85; font-size: 9px; letter-spacing: 0; text-transform: none; }
.panel-legend span::before { content: ""; position: absolute; left: 0; top: 4px; width: 8px; height: 8px; border-radius: 50%; }
.legend-entry::before { background: #1a9c6f; }
.legend-exit::before { background: #d34956; }
.legend-balance::before { background: #b07a16; }
.summary-values { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 0 15px 15px; }
.summary-values div { padding: 10px; border: 1px solid #eee9df; border-radius: 11px; background: #faf9f6; }
.summary-values span { display: block; color: #8b8f96; font-size: 9px; text-transform: uppercase; }
.summary-values strong { display: block; margin-top: 2px; color: #263244; font-size: 13px; }

.dashboard-section { margin-bottom: 14px; }
.dashboard-section-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin: 0 2px 9px; }
.dashboard-section-title h2 { margin: 1px 0 0; font-size: 19px; font-weight: 900; letter-spacing: -.55px; }
.dashboard-section-title small { color: #91949a; font-size: 10px; }
.quick-action-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.quick-action-card {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) 18px;
    align-items: center;
    gap: 11px;
    min-height: 83px;
    padding: 12px 12px;
    border: 1px solid #e9e4da;
    border-radius: 14px;
    color: #2b3443;
    background: #fff;
    box-shadow: 0 9px 22px rgba(43,39,31,.055);
    animation: actionFloatIn .52s ease both;
    animation-delay: var(--action-delay, 0ms);
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.quick-action-card:hover { color: #202a39; transform: translateY(-4px); border-color: #d9c38d; box-shadow: var(--app-shadow-hover); }
.quick-action-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 13px; font-size: 18px; background: var(--tone-bg, #f7eedb); color: var(--tone, #99670d); box-shadow: inset 0 1px 0 rgba(255,255,255,.8); }
.quick-action-copy { min-width: 0; display: flex; flex-direction: column; }
.quick-action-copy strong { font-size: 13px; font-weight: 880; }
.quick-action-copy small { margin-top: 2px; color: #858a92; font-size: 10px; line-height: 1.25; }
.quick-action-arrow { color: #c8c0af; transition: transform .2s ease, color .2s ease; }
.quick-action-card:hover .quick-action-arrow { color: var(--tone, #99670d); transform: translateX(3px); }
.tone-gold { --tone: #99670d; --tone-bg: #f8efd9; }
.tone-blue { --tone: #285d7a; --tone-bg: #e8f1f5; }
.tone-green { --tone: #167b59; --tone-bg: #e4f5ee; }
.tone-red { --tone: #b73946; --tone-bg: #fdebed; }
.tone-violet { --tone: #67528b; --tone-bg: #f0ebf8; }
.tone-cyan { --tone: #1d7383; --tone-bg: #e5f4f6; }
.tone-orange { --tone: #a86110; --tone-bg: #fff0dd; }
.tone-navy { --tone: #33445e; --tone-bg: #e9edf2; }

.recent-panel { overflow: hidden; }
.dashboard-table { font-size: 11px !important; }
.dashboard-table thead th { background: #f7f4ed !important; }
.dashboard-table td { padding: 8px 10px !important; }
.origin-badge, .movement-badge { display: inline-flex; align-items: center; justify-content: center; padding: 4px 7px; border-radius: 999px; font-size: 9px; font-weight: 820; white-space: nowrap; }
.origin-badge { color: #536174; background: #edf0f4; }
.movement-entry { color: #167b59; background: #e3f4ed; }
.movement-exit { color: #b73946; background: #fdebed; }
.movement-value { font-weight: 880; white-space: nowrap; }
.value-entry { color: #167b59; }
.value-exit { color: #b73946; }
.dashboard-empty { padding: 35px !important; text-align: center; color: #9a9da2; }
.dashboard-empty i { margin-right: 6px; }

/* Login também acompanha o padrão clean */
.login-page {
    background:
        radial-gradient(circle at 8% 12%, rgba(190, 137, 33, .12), transparent 25rem),
        radial-gradient(circle at 90% 88%, rgba(23, 107, 135, .07), transparent 28rem),
        linear-gradient(145deg, #ffffff 0%, #faf9f5 48%, #f2f3f1 100%);
}
.login-page::before { background-image: linear-gradient(rgba(176,122,22,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(176,122,22,.035) 1px, transparent 1px); }
.login-showcase { border-right-color: rgba(176,122,22,.13); }
.login-eyebrow { color: #9b680d; }
.login-eyebrow::before { background: linear-gradient(90deg, #b07a16, #d6a33b); }
.login-title-3d {
    color: #a8700e;
    text-shadow: 0 1px 0 #f4deb0, 0 2px 0 #e5c47d, 0 3px 0 #d4aa52, 0 4px 0 #bf9032, 0 5px 0 #a9781b, 0 9px 20px rgba(126,87,15,.24), 0 17px 36px rgba(69,50,18,.12);
}
.login-brand small { color: #91600a; background: #faf1dc; border-color: #e9d39d; }
.login-card { border-color: #e6dcc5; box-shadow: 0 24px 65px rgba(49,42,27,.14); }
.login-field > i { color: #a47319; }
.login-field .form-control:focus { border-color: #c99a3d; box-shadow: 0 0 0 4px rgba(176,122,22,.10), 0 8px 20px rgba(99,72,20,.06); }
.login-submit { background: linear-gradient(125deg, #be8820, #9c680d 58%, #26344a); box-shadow: 0 12px 25px rgba(124,87,17,.25), inset 0 1px 0 rgba(255,255,255,.25); }
.password-toggle { color: #9b680d; }
.password-toggle:hover, .password-toggle:focus { background: linear-gradient(135deg, #b47b15, #26344a); }

@keyframes dashboardPulse { 0%, 100% { opacity: .45; transform: scale(.82); } 50% { opacity: 1; transform: scale(1.1); } }
@keyframes actionFloatIn { from { opacity: 0; transform: translateY(11px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 1199.98px) {
    .kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .quick-action-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 991.98px) {
    .main-menu { top: 0; background: #fff; }
    .app-content.content { margin-left: 0; padding: calc(var(--app-topbar) + 13px) 11px 14px; }
    .footer { margin-left: 0; }
    .dashboard-heading { align-items: stretch; flex-direction: column; }
    .dashboard-filters { width: 100%; }
    .dashboard-filters label { flex: 1; }
    .dashboard-filters .form-control { width: 100%; min-width: 0 !important; }
    .finance-hero { min-height: 0; padding: 22px; }
    .dashboard-chart-grid { grid-template-columns: 1fr; }
    .quick-action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .summary-chart-wrap { height: 235px; }
    .table { min-width: 650px; }
    .form-actions .btn { flex: 1 1 120px; }
}

@media (max-width: 575.98px) {
    .header-navbar { padding: 0 9px; }
    .navbar-brand span { max-width: 140px; }
    .dashboard-heading h1 { font-size: 24px; }
    .finance-hero { grid-template-columns: 1fr; padding: 19px; }
    .finance-hero h2 { font-size: 26px; }
    .finance-hero-mark { display: none; }
    .finance-hero-actions { flex-direction: column; }
    .kpi-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
    .kpi-card { min-height: 118px; align-items: flex-start; flex-direction: column; gap: 7px; padding: 12px; }
    .kpi-icon { width: 37px; height: 37px; flex-basis: 37px; border-radius: 11px; }
    .kpi-copy strong { font-size: 17px; }
    .kpi-copy small { white-space: normal; }
    .quick-action-grid { grid-template-columns: 1fr; }
    .quick-action-card { min-height: 76px; }
    .dashboard-section-title { align-items: flex-start; flex-direction: column; }
    .dashboard-section-title small { display: none; }
    .dashboard-panel-header { align-items: flex-start; flex-direction: column; }
    .panel-legend { flex-wrap: wrap; }
    .chart-canvas-wrap { height: 285px; padding: 10px 8px; }
    .content-header { padding: 8px; }
    .content-header [class*="col-"] { margin-bottom: 5px !important; }
    .dataTables_filter input { width: 100%; min-width: 0; margin-left: 0 !important; }
}

@media (prefers-reduced-motion: reduce) {
    .quick-action-card, .dashboard-kicker i, .app-spinner { animation: none !important; }
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Barra de status inferior inspirada no 7WebNet Financeiro */
.footer { padding: 5px 20px 13px; }
.footer-status {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 7px 9px;
    border: 1px solid #e8e3d9;
    border-radius: 11px;
    color: #7d7e7b;
    background: rgba(255,255,255,.86);
    box-shadow: 0 7px 18px rgba(43,39,31,.045);
    font-size: 10px;
}
.footer-status span { display: inline-flex; align-items: center; gap: 5px; padding: 4px 8px; border-right: 1px solid #eee9df; }
.footer-status span:last-child { border-right: 0; }
.footer-status i { color: #a87312; }
.footer-status strong { color: #414957; }
.footer-author { margin-left: auto; color: #9b6a12; font-weight: 800; }
@media (max-width: 767.98px) {
    .footer-status { flex-wrap: wrap; justify-content: center; }
    .footer-status span { border-right: 0; }
    .footer-author { margin-left: 0; }
}


/* =========================================================
   AJUSTES RESPONSIVOS — FORMULÁRIOS, CAIXA E FONTES COMPACTAS
   ========================================================= */
body.app-shell {
    font-size: 13px;
}
.content-header-title { font-size: 21px; }
.content-wrapper h3 { font-size: 20px; }
.content-wrapper h4 { font-size: 15px; }
.content-wrapper p, .content-wrapper li { font-size: 12px; }

/* Formulários escuros: textos claros e campos legíveis */
.card-header.bg-dark,
.card-header.bg-secondary,
.card.bg-secondary,
.card.bg-dark {
    color: #fff !important;
}
.card-header.bg-dark .form-group,
.card-header.bg-dark .form-group > [class*="col-"],
.card-header.bg-dark label,
.card-header.bg-dark h1,
.card-header.bg-dark h2,
.card-header.bg-dark h3,
.card-header.bg-dark h4,
.card-header.bg-dark h5,
.card-header.bg-dark h6,
.card-header.bg-dark p,
.card-header.bg-dark small,
.card-header.bg-dark strong,
.card-header.bg-secondary .form-group,
.card-header.bg-secondary .form-group > [class*="col-"],
.card-header.bg-secondary label,
.card.bg-secondary .form-group,
.card.bg-secondary .form-group > [class*="col-"],
.card.bg-secondary label,
.card.bg-secondary .panel,
.card.bg-secondary .panel-body,
.card.bg-secondary p,
.card.bg-secondary small,
.card.bg-secondary strong,
.card.bg-dark .form-group,
.card.bg-dark .form-group > [class*="col-"],
.card.bg-dark label {
    color: #fff !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .26);
}
.card-header.bg-dark hr,
.card-header.bg-secondary hr,
.card.bg-secondary hr,
.card.bg-dark hr { border-color: rgba(255,255,255,.18); }
.card-header.bg-dark a:not(.btn),
.card-header.bg-secondary a:not(.btn),
.card.bg-secondary a:not(.btn),
.card.bg-dark a:not(.btn) { color: #ffe2a0; }

/* Os campos continuam claros sobre o painel escuro */
.card-header.bg-dark .form-control,
.card-header.bg-dark select.form-control,
.card-header.bg-dark textarea.form-control,
.card-header.bg-secondary .form-control,
.card.bg-secondary .form-control,
.card.bg-dark .form-control {
    color: #202a39 !important;
    background-color: rgba(255,255,255,.98) !important;
    text-shadow: none !important;
}
.card-header.bg-dark .form-control::placeholder,
.card.bg-secondary .form-control::placeholder,
.card.bg-dark .form-control::placeholder { color: #8b9098; }

/* Redução uniforme das fontes e alturas dos formulários antigos */
.content-wrapper form,
.content-wrapper form .form-group,
.content-wrapper form .form-group > [class*="col-"],
.content-wrapper form label {
    font-size: 12px !important;
}
.content-wrapper form .form-control,
.content-wrapper form select.form-control,
.content-wrapper form textarea.form-control {
    min-height: 35px;
    padding: 6px 9px;
    font-size: 12px !important;
    line-height: 1.25;
}
.content-wrapper form textarea.form-control { min-height: 72px; }
.content-wrapper form .btn { min-height: 34px; padding: 6px 11px; font-size: 12px; }
.form-group { margin-bottom: 9px; }
.card-header, .card-body, .card-content, .card-content .card-body { padding: 12px 14px; }

/* Resumo superior do Livro Caixa em cards, nunca em botões */
.cash-total-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
    margin-top: 7px;
}
.cash-total-card {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
    min-height: 68px;
    padding: 10px 11px;
    border: 1px solid #e7e2d7;
    border-radius: 12px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 7px 18px rgba(38,34,27,.07);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.cash-total-card::after {
    content: "";
    position: absolute;
    right: -25px;
    bottom: -31px;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: currentColor;
    opacity: .045;
}
.cash-total-card:hover {
    transform: translateY(-2px);
    border-color: #dcc999;
    box-shadow: 0 11px 24px rgba(38,34,27,.11);
}
.cash-total-icon {
    flex: 0 0 35px;
    width: 35px;
    height: 35px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    font-size: 14px;
    background: currentColor;
}
.cash-total-icon i { color: #fff; }
.cash-total-card > div { min-width: 0; }
.cash-total-card small {
    display: block;
    margin-bottom: 1px;
    color: #858990;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .55px;
    line-height: 1.15;
    text-transform: uppercase;
}
.cash-total-card strong {
    display: block;
    overflow: hidden;
    color: #263244;
    font-size: clamp(12px, 1.25vw, 16px);
    font-weight: 920;
    line-height: 1.2;
    letter-spacing: -.3px;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.cash-total-previous { color: #6f5a2c; }
.cash-total-entry { color: #19805d; }
.cash-total-exit, .cash-total-negative { color: #b63c49; }
.cash-total-balance { color: #a36c0d; }
.cash-total-previous .cash-total-icon { background: linear-gradient(135deg, #8b7443, #655126); }
.cash-total-entry .cash-total-icon { background: linear-gradient(135deg, #2ca77d, #146a4d); }
.cash-total-exit .cash-total-icon,
.cash-total-negative .cash-total-icon { background: linear-gradient(135deg, #dc5965, #a92d39); }
.cash-total-balance .cash-total-icon { background: linear-gradient(135deg, #d2a13c, #946009); }

/* DataTables ainda mais compactos e utilizáveis em telas estreitas */
.table { font-size: 11px !important; }
.table thead th, .table th { padding: 6px 6px !important; font-size: 9px !important; }
.table td { padding: 6px !important; font-size: 11px !important; }
.table .btn { min-height: 25px; padding: 3px 6px; font-size: 10px; }
.dataTables_wrapper { padding: 8px 8px 3px; }
.dataTables_filter input, .dataTables_length select { min-height: 31px; font-size: 11px; }
.dataTables_info, .dataTables_length, .dataTables_filter, .pagination { font-size: 10px; }

@media (max-width: 991.98px) {
    body.app-shell { font-size: 12px; }
    .app-content.content { padding-left: 8px; padding-right: 8px; }
    .content-header-title { font-size: 18px; }
    .content-wrapper h3 { font-size: 18px; }
    .content-wrapper h4 { font-size: 14px; }
    .card { border-radius: 11px; margin-bottom: 10px; }
    .card-header, .card-body, .card-content, .card-content .card-body { padding: 10px; }
    .form-control, .custom-select, select.form-control { min-height: 34px; padding: 6px 8px; font-size: 12px !important; }
    .btn { min-height: 34px; padding: 6px 10px; font-size: 11px; }
    .content-header .btn-block { height: 34px; }
    .table { min-width: 570px; }
}

@media (max-width: 575.98px) {
    .content-header { margin-bottom: 9px; border-radius: 11px; }
    .content-header [class*="col-"] { padding-left: 3px; padding-right: 3px; }
    .cash-total-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
    .cash-total-card { min-height: 61px; gap: 7px; padding: 8px; border-radius: 10px; }
    .cash-total-icon { flex-basis: 30px; width: 30px; height: 30px; border-radius: 9px; font-size: 12px; }
    .cash-total-card small { font-size: 8px; letter-spacing: .35px; }
    .cash-total-card strong { font-size: 12px; }
    .content-wrapper form .form-group > [class*="col-"] { margin-bottom: 6px; }
    .content-wrapper form .form-group > [class*="col-"]:last-child { margin-bottom: 0; }
    .content-wrapper form .text-right { text-align: left !important; }
    .form-actions, .button-group, .btn-toolbar { width: 100%; justify-content: stretch; }
    .form-actions .btn, .button-group .btn, .btn-toolbar .btn { flex: 1 1 auto; min-width: 0; }
    .table { min-width: 520px; font-size: 10px !important; }
    .table td { font-size: 10px !important; }
    .dataTables_wrapper { border-radius: 9px; padding: 6px 5px 2px; }
    .dataTables_length, .dataTables_filter { width: 100%; text-align: left !important; }
    .dataTables_filter { margin-top: 5px; }
    .dataTables_filter label { display: flex; width: 100%; align-items: center; }
    .dataTables_filter input { flex: 1; width: 100%; }
}

/* =========================================================
   POPUPS PÚBLICOS, SOBRE E SELETOR DE TEMA
   ========================================================= */
body.popup-open { overflow: hidden !important; }
.app-popup {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: grid;
    place-items: center;
    padding: 18px;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease, visibility .2s ease;
}
.app-popup.is-open { visibility: visible; opacity: 1; pointer-events: auto; }
.app-popup-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 24, 39, .62);
    backdrop-filter: blur(6px);
}
.app-popup-dialog {
    position: relative;
    z-index: 1;
    width: min(720px, 100%);
    max-height: calc(100vh - 36px);
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.65);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 30px 90px rgba(12, 20, 36, .32);
    transform: translateY(14px) scale(.985);
    transition: transform .24s ease;
}
.app-popup.is-open .app-popup-dialog { transform: translateY(0) scale(1); }
.app-popup-dialog-about { width: min(920px, 100%); height: min(720px, calc(100vh - 36px)); }
.app-popup-dialog-theme { width: min(760px, 100%); }
.app-popup-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 16px 18px;
    color: #fff;
    background: linear-gradient(120deg, #26344a, #172235 58%, #9a680f 160%);
}
.app-popup-header h3 { display: flex; align-items: center; gap: 8px; margin: 2px 0 0; color: #fff !important; font-size: 17px; font-weight: 900; }
.app-popup-header p { margin: 5px 0 0; color: rgba(255,255,255,.76); font-size: 11px; font-weight: 600; }
.app-popup-kicker { color: #f1ce83; font-size: 8px; font-weight: 900; letter-spacing: 1.7px; }
.app-popup-close {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 10px;
    color: #fff;
    background: rgba(255,255,255,.10);
    cursor: pointer;
    transition: .18s ease;
}
.app-popup-close:hover { transform: rotate(4deg); background: rgba(255,255,255,.20); }
.app-popup-body { max-height: calc(100vh - 125px); overflow: auto; padding: 18px; background: #f8f9fa; }
.app-popup-body-frame { height: calc(100% - 74px); max-height: none; padding: 0; overflow: hidden; }
.app-popup-body-frame iframe { width: 100%; height: 100%; border: 0; background: #f7f8fa; }

.theme-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.theme-choice {
    position: relative;
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr) 28px;
    align-items: center;
    gap: 12px;
    min-width: 0;
    padding: 12px;
    border: 2px solid #e6e9ee;
    border-radius: 15px;
    color: #263244;
    text-align: left;
    background: #fff;
    box-shadow: 0 8px 22px rgba(26, 39, 60, .06);
    cursor: pointer;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.theme-choice:hover { transform: translateY(-2px); border-color: #c9b27d; box-shadow: 0 15px 30px rgba(26,39,60,.11); }
.theme-choice.is-active { border-color: #b78019; box-shadow: 0 0 0 4px rgba(183,128,25,.11), 0 15px 32px rgba(26,39,60,.10); }
.theme-choice[data-theme-option="sky"].is-active { border-color: #249ed6; box-shadow: 0 0 0 4px rgba(36,158,214,.12), 0 15px 32px rgba(26,39,60,.10); }
.theme-choice-confirmed { animation: themeConfirm .45s ease; }
@keyframes themeConfirm { 50% { transform: scale(.98); } }
.theme-choice-copy { min-width: 0; }
.theme-choice-copy strong { display: block; margin-bottom: 3px; font-size: 13px; font-weight: 900; }
.theme-choice-copy small { display: block; color: #7c8491; font-size: 10px; line-height: 1.35; }
.theme-choice-check {
    width: 25px;
    height: 25px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: transparent;
    background: #eef1f4;
    font-size: 11px;
}
.theme-choice.is-active .theme-choice-check { color: #fff; background: linear-gradient(135deg, #c28d28, #956008); }
.theme-choice[data-theme-option="sky"].is-active .theme-choice-check { background: linear-gradient(135deg, #54c8f4, #168fc9); }
.theme-preview {
    position: relative;
    display: block;
    width: 120px;
    height: 78px;
    overflow: hidden;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 10px;
    background: #f5f6f7;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.85);
}
.theme-preview-top { position: absolute; top: 0; left: 0; right: 0; height: 15px; background: #fff; box-shadow: 0 2px 5px rgba(0,0,0,.06); }
.theme-preview-side { position: absolute; top: 15px; bottom: 0; left: 0; width: 28px; background: #fff; border-right: 1px solid rgba(0,0,0,.05); }
.theme-preview-content { position: absolute; top: 25px; left: 38px; right: 9px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; }
.theme-preview-content i { height: 20px; border-radius: 5px; background: #fff; box-shadow: 0 3px 8px rgba(0,0,0,.07); }
.theme-preview-gold { background: linear-gradient(145deg, #faf9f6, #f1f1ee); }
.theme-preview-gold .theme-preview-top { background: linear-gradient(90deg, #fff, #faf5e9); }
.theme-preview-gold .theme-preview-side { background: linear-gradient(180deg, #fff, #f8f1df); }
.theme-preview-gold .theme-preview-content i:first-child { background: linear-gradient(135deg, #d6a33b, #a66d0c); }
.theme-preview-gold .theme-preview-content i:nth-child(2) { background: #eaf2f4; }
.theme-preview-gold .theme-preview-content i:nth-child(3) { background: #e9f4ee; }
.theme-preview-sky { background: linear-gradient(145deg, #f5fbff, #eaf6fc); }
.theme-preview-sky .theme-preview-top { background: linear-gradient(90deg, #fff, #dff4ff); }
.theme-preview-sky .theme-preview-side { background: linear-gradient(180deg, #168fc9, #61caf4); }
.theme-preview-sky .theme-preview-content i:first-child { background: linear-gradient(135deg, #61cef7, #138bc5); }
.theme-preview-sky .theme-preview-content i:nth-child(2) { background: #dff4ff; }
.theme-preview-sky .theme-preview-content i:nth-child(3) { background: #dff7f1; }

/* Página pública Sobre */
.about-public-page {
    min-height: 100vh;
    margin: 0;
    padding: 22px;
    color: #253145;
    background:
        radial-gradient(circle at 100% 0, rgba(214,163,59,.14), transparent 31rem),
        radial-gradient(circle at 0 100%, rgba(23,107,135,.08), transparent 28rem),
        linear-gradient(180deg, #fafbf9, #f1f3f2);
    font-family: Inter, "Segoe UI", Arial, sans-serif;
}
.about-public-page.is-popup { padding: 0; background: #f5f7f8; }
.about-public-shell { width: min(1080px, 100%); margin: 0 auto; }
.about-public-page.is-popup .about-public-shell { width: 100%; }
.about-hero {
    position: relative;
    overflow: hidden;
    padding: 25px;
    border-radius: 21px;
    color: #fff;
    background: linear-gradient(125deg, #26344a 0%, #172235 55%, #9a680f 145%);
    box-shadow: 0 24px 55px rgba(24,35,52,.20);
}
.about-public-page.is-popup .about-hero { border-radius: 0; padding: 20px 22px; box-shadow: none; }
.about-hero::after { content: ""; position: absolute; width: 310px; height: 310px; right: -100px; top: -150px; border-radius: 50%; background: rgba(255,255,255,.07); }
.about-brand { position: relative; z-index: 1; display: flex; align-items: center; gap: 11px; }
.about-brand img { width: 44px; height: 44px; object-fit: contain; filter: drop-shadow(0 7px 10px rgba(0,0,0,.25)); }
.about-brand div { display: flex; flex-direction: column; }
.about-brand span { color: #f0cf8c; font-size: 8px; font-weight: 900; letter-spacing: 1.5px; }
.about-brand strong { font-size: 16px; font-weight: 900; }
.about-brand small { color: rgba(255,255,255,.65); font-size: 9px; }
.about-hero-copy { position: relative; z-index: 1; max-width: 720px; margin: 28px 0 23px; }
.about-kicker { display: inline-flex; align-items: center; gap: 7px; color: #f3cf82; font-size: 9px; font-weight: 900; letter-spacing: 1.55px; }
.about-kicker i { font-size: 5px; }
.about-hero h1 { margin: 8px 0 9px; color: #fff; font-size: clamp(25px, 4vw, 42px); font-weight: 950; line-height: 1.06; letter-spacing: -1.3px; text-shadow: 0 3px 0 rgba(0,0,0,.20), 0 12px 30px rgba(0,0,0,.23); }
.about-hero p { max-width: 700px; margin: 0; color: rgba(255,255,255,.78); font-size: 13px; line-height: 1.65; }
.about-feature-strip { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 9px; }
.about-feature-strip > div { display: flex; align-items: center; gap: 9px; padding: 10px; border: 1px solid rgba(255,255,255,.11); border-radius: 12px; background: rgba(255,255,255,.075); }
.about-feature-strip i { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; color: #172235; background: linear-gradient(135deg, #f0ce84, #c28b25); }
.about-feature-strip span { display: flex; flex-direction: column; }
.about-feature-strip strong { font-size: 11px; }
.about-feature-strip small { color: rgba(255,255,255,.60); font-size: 8px; }
.about-content-card { margin-top: 14px; padding: 21px; border: 1px solid #e8e5dd; border-radius: 19px; background: rgba(255,255,255,.96); box-shadow: 0 14px 35px rgba(34,43,58,.075); }
.about-public-page.is-popup .about-content-card { margin: 0; border: 0; border-radius: 0; box-shadow: none; }
.about-section-title span { color: #a56d0c; font-size: 8px; font-weight: 900; letter-spacing: 1.6px; }
.about-section-title h2 { margin: 3px 0 15px; color: #263244; font-size: 20px; font-weight: 920; }
.about-info-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.about-info-grid article { display: flex; align-items: flex-start; gap: 11px; padding: 13px; border: 1px solid #ebe8e0; border-radius: 13px; background: #fbfbfa; }
.about-info-grid article > i { flex: 0 0 35px; width: 35px; height: 35px; display: grid; place-items: center; border-radius: 10px; color: #99660c; background: #f8efd9; }
.about-info-grid h3 { margin: 0 0 4px; color: #2c3749; font-size: 12px; font-weight: 900; }
.about-info-grid p { margin: 0; color: #717986; font-size: 10px; line-height: 1.55; }
.about-public-footer { display: flex; justify-content: space-between; gap: 15px; padding: 15px 4px 0; color: #868b93; font-size: 9px; }
.about-public-page.is-popup .about-public-footer { padding: 13px 20px; background: #f5f6f7; }

/* =========================================================
   SEGUNDO TEMA — AZUL CELESTE EM DEGRADÊ
   ========================================================= */
html[data-theme="sky"] {
    --app-primary: #1497d2;
    --app-primary-2: #59c9f3;
    --app-cyan: #087db8;
    --app-green: #1b9b7c;
    --app-orange: #f19b35;
    --app-red: #dc4d62;
    --app-dark: #163047;
    --app-muted: #698397;
    --app-bg: #edf8fd;
    --app-card: #ffffff;
    --app-line: #d7eaf4;
    --app-shadow: 0 12px 32px rgba(35, 109, 145, .085);
    --app-shadow-hover: 0 20px 46px rgba(22, 126, 176, .15);
    --gold-soft: #e8f7fe;
    --gold-line: #bfe6f7;
    --navy-soft: #eaf5fa;
}
html[data-theme="sky"] body.app-shell {
    background:
        radial-gradient(circle at 100% 0, rgba(83,199,244,.17), transparent 34rem),
        radial-gradient(circle at 0 100%, rgba(18,151,210,.10), transparent 30rem),
        linear-gradient(180deg, #f7fcff 0%, #eaf6fc 100%);
}
html[data-theme="sky"] body.app-shell::before { opacity: .20; background-image: linear-gradient(rgba(16,139,195,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(16,139,195,.035) 1px, transparent 1px); }
html[data-theme="sky"] a { color: #0b83bd; }
html[data-theme="sky"] a:hover { color: #075f8c; }
html[data-theme="sky"] .header-navbar {
    background: linear-gradient(100deg, rgba(255,255,255,.97), rgba(229,247,255,.96));
    border-bottom-color: #cceaf7;
    box-shadow: 0 5px 22px rgba(21,112,153,.09);
}
html[data-theme="sky"] .topbar-menu { color: #087daf; border-color: #bde3f4; background: linear-gradient(145deg, #fff, #e3f6fe); box-shadow: 0 5px 13px rgba(13,128,180,.12); }
html[data-theme="sky"] .topbar-menu:hover { color: #fff; background: linear-gradient(135deg, #58c9f3, #0e8bc5); }
html[data-theme="sky"] .navbar-brand img { filter: drop-shadow(0 6px 8px rgba(13,126,178,.20)); }
html[data-theme="sky"] .navbar-brand span { text-shadow: 0 1px 0 #fff, 0 3px 7px rgba(13,126,178,.12); }
html[data-theme="sky"] .topbar-company { color: #315d73; background: #f2fbff; border-color: #d1ecf8; }
html[data-theme="sky"] .topbar-company i { color: #168ec6; }
html[data-theme="sky"] .user-chip:hover { background: #e6f7fe; }
html[data-theme="sky"] .user-chip img { border-color: #a8dcf1; }
html[data-theme="sky"] .main-menu { background: linear-gradient(180deg, rgba(255,255,255,.985), rgba(244,251,255,.98)); border-right-color: #d4ebf5; box-shadow: 10px 0 30px rgba(21,111,151,.07); }
html[data-theme="sky"] .navigation-header { color: #74a7bf; }
html[data-theme="sky"] .navigation .nav-item > a { color: #527286; }
html[data-theme="sky"] .navigation .nav-item > a > i:first-child { color: #168dc4; }
html[data-theme="sky"] .navigation .nav-item > a:hover { color: #0879ad; background: #e9f8fe; }
html[data-theme="sky"] .navigation .nav-item.active > a,
html[data-theme="sky"] .navigation .nav-item.open > a {
    color: #fff;
    background: linear-gradient(115deg, #61cef5, #1498d2 55%, #0879b1);
    box-shadow: 0 8px 20px rgba(20,152,210,.27), inset 0 1px 0 rgba(255,255,255,.28);
}
html[data-theme="sky"] .menu-content li::before { background: #9ed8ef; }
html[data-theme="sky"] .menu-content li.active::before { background: #1498d2; box-shadow: 0 0 0 4px rgba(20,152,210,.13); }
html[data-theme="sky"] .menu-content a:hover,
html[data-theme="sky"] .menu-content li.active a { color: #0a7faf; background: #e9f8fe; }
html[data-theme="sky"] .menu-brand-mobile { border-bottom-color: #d4ebf5; }
html[data-theme="sky"] .menu-close { color: #0a7ead; background: #e6f7fe; }
html[data-theme="sky"] .content-header { border-color: #dbeef6; background: rgba(255,255,255,.82); box-shadow: 0 8px 20px rgba(28,117,156,.055); }
html[data-theme="sky"] .card { border-color: #dcecf4; box-shadow: var(--app-shadow); }
html[data-theme="sky"] .card:hover { border-color: #bfe2f1; }
html[data-theme="sky"] .card-header { border-bottom-color: #dfedf4; }
html[data-theme="sky"] .card-header.bg-dark,
html[data-theme="sky"] .card-header.bg-secondary,
html[data-theme="sky"] .card.bg-secondary,
html[data-theme="sky"] .bg-grad,
html[data-theme="sky"] .bg-gradient-x-primary,
html[data-theme="sky"] .bg-gradient-x-danger,
html[data-theme="sky"] .bg-gradient-x-success,
html[data-theme="sky"] .bg-gradient-x-info {
    background: linear-gradient(120deg, #153b59, #0a668f 58%, #55c9f3 155%) !important;
}
html[data-theme="sky"] .form-control:focus,
html[data-theme="sky"] select.form-control:focus { border-color: #4ebfe9; box-shadow: 0 0 0 3px rgba(20,151,210,.12); }
html[data-theme="sky"] .btn-primary { background: linear-gradient(120deg, #4bc4f0, #158fc9 60%, #0876ad); }
html[data-theme="sky"] .btn-primary:hover,
html[data-theme="sky"] .btn-primary:focus { background: linear-gradient(120deg, #62d0f6, #0f84bd 65%, #066795); }
html[data-theme="sky"] .btn-info { background: linear-gradient(120deg, #35b9e8, #0b7fb8); }
html[data-theme="sky"] .btn-warning { color: #3b300e; background: linear-gradient(120deg, #ffd06a, #e8a631); }
html[data-theme="sky"] .btn-outline-primary { color: #0c81b8; border-color: #a9dcef !important; background: #f3fbff; }
html[data-theme="sky"] .btn-outline-primary:hover { color: #fff; background: #168fc8; }
html[data-theme="sky"] .table-responsive,
html[data-theme="sky"] .dataTables_wrapper { border-color: #dcecf4; }
html[data-theme="sky"] .table thead th,
html[data-theme="sky"] .table th { border-bottom-color: #cde4ef !important; background: linear-gradient(180deg, #eef9fe, #e2f3fb) !important; color: #3f7189 !important; }
html[data-theme="sky"] .table tbody tr:hover { background: #eefaff; }
html[data-theme="sky"] .page-link { color: #0d82ba; background: #f1faff; }
html[data-theme="sky"] .page-item.active .page-link { background: linear-gradient(120deg, #4fc6f2, #128dc7); }
html[data-theme="sky"] .dashboard-kicker { color: #118bc3; }
html[data-theme="sky"] .quick-action-card:hover { border-color: #aedceb; }
html[data-theme="sky"] .tone-gold { --tone: #148dc3; --tone-bg: #e4f6fd; }
html[data-theme="sky"] .kpi-card:hover { border-color: #b8dfef; }
html[data-theme="sky"] .cash-total-card:hover { border-color: #b7dfea; }
html[data-theme="sky"] .cash-total-balance { color: #0f88bf; }
html[data-theme="sky"] .cash-total-balance .cash-total-icon { background: linear-gradient(135deg, #55c9f3, #0b83bc); }
html[data-theme="sky"] .footer { color: #6f91a4; }
html[data-theme="sky"] .app-popup-header { background: linear-gradient(120deg, #153b59, #0b6e9b 58%, #58cdf5 155%); }
html[data-theme="sky"] .app-popup-kicker { color: #bcecff; }
html[data-theme="sky"] .login-page {
    background:
        radial-gradient(circle at 100% 0, rgba(74,197,242,.22), transparent 34rem),
        radial-gradient(circle at 0 100%, rgba(20,151,210,.12), transparent 31rem),
        linear-gradient(145deg, #f9fdff, #eaf7fd);
}
html[data-theme="sky"] .login-showcase::before { background: linear-gradient(135deg, rgba(83,202,246,.18), rgba(13,133,188,.04)); }
html[data-theme="sky"] .login-eyebrow::before { background: linear-gradient(90deg, #55caf4, #118bc5); }
html[data-theme="sky"] .login-more a { color: #087fb5; border-color: #addff1; background: #f1fbff; }
html[data-theme="sky"] .login-more a:hover { color: #fff; background: #128fc9; }
html[data-theme="sky"] .login-submit { background: linear-gradient(120deg, #57cdf5, #168fc9 60%, #0875aa); }
html[data-theme="sky"] .about-public-page {
    background:
        radial-gradient(circle at 100% 0, rgba(83,199,244,.20), transparent 31rem),
        radial-gradient(circle at 0 100%, rgba(18,151,210,.10), transparent 28rem),
        linear-gradient(180deg, #f8fdff, #eaf6fc);
}
html[data-theme="sky"] .about-hero { background: linear-gradient(125deg, #153b59 0%, #0a668f 55%, #55c9f3 145%); }
html[data-theme="sky"] .about-brand span,
html[data-theme="sky"] .about-kicker { color: #c6efff; }
html[data-theme="sky"] .about-feature-strip i { color: #0d4e70; background: linear-gradient(135deg, #c6efff, #55c9f3); }
html[data-theme="sky"] .about-section-title span { color: #0e86be; }
html[data-theme="sky"] .about-info-grid article > i { color: #0d83b9; background: #e4f6fd; }

@media (max-width: 767.98px) {
    .app-popup { padding: 8px; }
    .app-popup-dialog { max-height: calc(100vh - 16px); border-radius: 15px; }
    .app-popup-dialog-about { height: calc(100vh - 16px); }
    .app-popup-header { padding: 12px 13px; }
    .app-popup-header h3 { font-size: 14px; }
    .app-popup-header p { font-size: 9px; }
    .app-popup-body { padding: 11px; }
    .theme-choice-grid { grid-template-columns: 1fr; gap: 9px; }
    .theme-choice { grid-template-columns: 96px minmax(0,1fr) 25px; padding: 9px; }
    .theme-preview { width: 96px; height: 65px; }
    .theme-preview-content { left: 35px; }
    .about-public-page { padding: 10px; }
    .about-public-page.is-popup { padding: 0; }
    .about-hero { padding: 17px; border-radius: 15px; }
    .about-hero-copy { margin: 20px 0 17px; }
    .about-hero h1 { font-size: 26px; }
    .about-feature-strip { grid-template-columns: 1fr; gap: 6px; }
    .about-feature-strip > div { padding: 8px; }
    .about-content-card { padding: 14px; border-radius: 14px; }
    .about-info-grid { grid-template-columns: 1fr; gap: 7px; }
    .about-public-footer { flex-direction: column; gap: 3px; }
}

/* =========================================================
   ATALHOS PRINCIPAIS NO TOPO DO DASHBOARD
   ========================================================= */
.dashboard-heading {
    display: grid;
    grid-template-columns: minmax(205px, .62fr) minmax(540px, 2fr) auto;
    grid-template-areas: "title quick filters";
    align-items: stretch;
    gap: 13px;
    margin-bottom: 14px;
}
.dashboard-title-block {
    grid-area: title;
    align-self: center;
    padding: 12px 3px;
}
.dashboard-quick-highlight {
    grid-area: quick;
    position: relative;
    overflow: hidden;
    margin: 0;
    padding: 12px;
    border: 1px solid rgba(201, 154, 61, .44);
    border-radius: 17px;
    background:
        radial-gradient(circle at 8% 0, rgba(231, 181, 72, .19), transparent 12rem),
        linear-gradient(120deg, rgba(255,255,255,.99), rgba(251,247,237,.98));
    box-shadow: 0 13px 32px rgba(92, 66, 20, .12), inset 0 1px 0 rgba(255,255,255,.95);
}
.dashboard-quick-highlight::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: linear-gradient(180deg, #f1c25f, #a66c0b 58%, #24334a);
}
.dashboard-quick-highlight::after {
    content: "";
    position: absolute;
    top: -75px;
    right: -35px;
    width: 190px;
    height: 190px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(225,174,65,.16), transparent 68%);
    pointer-events: none;
}
.dashboard-quick-highlight .dashboard-section-title {
    position: relative;
    z-index: 1;
    align-items: center;
    margin: 0 2px 8px;
}
.dashboard-quick-highlight .dashboard-section-title h2 {
    font-size: 16px;
}
.dashboard-quick-highlight .dashboard-section-title small {
    max-width: 230px;
    text-align: right;
    line-height: 1.25;
}
.dashboard-quick-highlight .quick-action-grid {
    position: relative;
    z-index: 1;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}
.dashboard-quick-highlight .quick-action-card {
    min-height: 70px;
    grid-template-columns: 40px minmax(0, 1fr) 14px;
    gap: 8px;
    padding: 9px;
    border-color: rgba(221, 207, 175, .9);
    background: linear-gradient(145deg, rgba(255,255,255,.99), rgba(250,248,242,.98));
    box-shadow: 0 7px 18px rgba(44, 39, 29, .075), inset 0 1px 0 #fff;
}
.dashboard-quick-highlight .quick-action-card::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0;
    background: linear-gradient(110deg, transparent 10%, rgba(255,255,255,.68) 48%, transparent 76%);
    transform: translateX(-110%);
    transition: transform .55s ease, opacity .22s ease;
}
.dashboard-quick-highlight .quick-action-card:hover::before {
    opacity: 1;
    transform: translateX(110%);
}
.dashboard-quick-highlight .quick-action-icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    font-size: 16px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 6px 14px color-mix(in srgb, var(--tone, #99670d) 18%, transparent);
}
.dashboard-quick-highlight .quick-action-copy strong { font-size: 12px; }
.dashboard-quick-highlight .quick-action-copy small { font-size: 9px; }
.dashboard-heading .dashboard-filters {
    grid-area: filters;
    align-self: center;
    padding: 12px;
    border: 1px solid #e8e2d5;
    border-radius: 15px;
    background: rgba(255,255,255,.9);
    box-shadow: 0 9px 23px rgba(44,39,29,.065);
}

/* Formulários de relatórios: contraste sobre o fundo em degradê */
.report-card {
    overflow: hidden;
    color: #fff !important;
    border: 0 !important;
    background: linear-gradient(122deg, #26344a 0%, #172235 58%, #91600c 155%) !important;
    box-shadow: 0 18px 40px rgba(24,34,51,.19) !important;
}
.report-card > .card-header,
.report-card > .card-body,
.report-card .card-header,
.report-card .card-body {
    color: #fff !important;
    background: transparent !important;
    border-color: rgba(255,255,255,.12) !important;
}
.report-card .js-report-form,
.report-card .js-report-form .form-body,
.report-card .js-report-form .form-group,
.report-card .js-report-form label,
.report-card .js-report-form p,
.report-card h1,
.report-card h2,
.report-card h3,
.report-card h4,
.report-card h5,
.report-card h6 {
    color: #fff !important;
}
.report-card .js-report-form label,
.report-card .js-report-form p,
.report-card .js-report-form .form-group {
    text-shadow: 0 1px 2px rgba(0,0,0,.28);
}
.report-card .js-report-form .form-control,
.report-card .js-report-form select.form-control,
.report-card .js-report-form textarea.form-control {
    color: #26344d !important;
    background: rgba(255,255,255,.98) !important;
    border-color: rgba(255,255,255,.48) !important;
    text-shadow: none !important;
}
.report-card .js-report-form .form-control:focus,
.report-card .js-report-form select.form-control:focus {
    border-color: #efc873 !important;
    box-shadow: 0 0 0 3px rgba(239,200,115,.18) !important;
}
.report-card .text-primary,
.report-card .text-success,
.report-card .text-danger,
.report-card .text-muted { color: #fff !important; }
.report-card .card.report-card,
.report-card .card:not(.report-card) {
    color: #fff;
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.12);
    box-shadow: none;
}

html[data-theme="sky"] .dashboard-quick-highlight {
    border-color: rgba(62, 180, 229, .42);
    background:
        radial-gradient(circle at 8% 0, rgba(87,202,245,.20), transparent 12rem),
        linear-gradient(120deg, rgba(255,255,255,.99), rgba(236,249,255,.98));
    box-shadow: 0 13px 32px rgba(18, 124, 173, .12), inset 0 1px 0 rgba(255,255,255,.95);
}
html[data-theme="sky"] .dashboard-quick-highlight::before {
    background: linear-gradient(180deg, #73d6f8, #168fc9 58%, #153b59);
}
html[data-theme="sky"] .dashboard-quick-highlight .quick-action-card {
    border-color: #cde8f4;
    background: linear-gradient(145deg, #fff, #eefaff);
}
html[data-theme="sky"] .dashboard-heading .dashboard-filters { border-color: #d6ebf5; }
html[data-theme="sky"] .report-card {
    background: linear-gradient(122deg, #153b59 0%, #0a668f 58%, #43bce9 155%) !important;
}
html[data-theme="sky"] .report-card .js-report-form .form-control:focus,
html[data-theme="sky"] .report-card .js-report-form select.form-control:focus {
    border-color: #8edcf7 !important;
    box-shadow: 0 0 0 3px rgba(142,220,247,.20) !important;
}

@media (max-width: 1399.98px) {
    .dashboard-heading {
        grid-template-columns: minmax(190px, .52fr) minmax(450px, 1.8fr) auto;
        gap: 10px;
    }
    .dashboard-quick-highlight .dashboard-section-title small { display: none; }
    .dashboard-quick-highlight .quick-action-copy small { display: none; }
    .dashboard-quick-highlight .quick-action-card { min-height: 59px; }
}
@media (max-width: 1199.98px) {
    .dashboard-heading {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "title filters"
            "quick quick";
    }
    .dashboard-quick-highlight .quick-action-copy small { display: block; }
}
@media (max-width: 767.98px) {
    .dashboard-heading {
        grid-template-columns: 1fr;
        grid-template-areas: "title" "quick" "filters";
        gap: 9px;
    }
    .dashboard-title-block { padding: 4px 2px; }
    .dashboard-heading .dashboard-filters { width: 100%; padding: 9px; }
    .dashboard-quick-highlight { padding: 10px; border-radius: 14px; }
    .dashboard-quick-highlight .dashboard-section-title { align-items: flex-start; flex-direction: column; }
    .dashboard-quick-highlight .quick-action-grid { grid-template-columns: 1fr; gap: 7px; }
    .dashboard-quick-highlight .quick-action-card { min-height: 64px; }
    .report-card .card-body,
    .report-card .card-header { padding: 13px !important; }
    .report-card .js-report-form .form-group > [class*="col-"] { margin-bottom: 7px; }
}
