:root {
    --bg: #07111f;
    --panel: rgba(255, 255, 255, .06);
    --panel-border: rgba(255, 255, 255, .12);
    --text: #e7eefc;
    --muted: #64748b;
    --primary: #1ee6b6;
    --blue: #3b82f6;
    --danger: #ff5d6c;
    --radius: 18px;

    --bvms-bg: #f5f7fb;
    --bvms-sidebar-bg: #ffffff;
    --bvms-border: rgba(148, 163, 184, 0.22);
    --bvms-text: #0f172a;
    --bvms-muted: #64748b;
    --bvms-primary: #2563eb;
    --bvms-primary-soft: #e8eefc;
    --bvms-success: #22c55e;
    --bvms-shadow: 0 12px 35px rgba(15, 23, 42, 0.06);

    --v2-bg: #f6f8fb;
    --v2-surface: #ffffff;
    --v2-text: #0f172a;
    --v2-muted: #64748b;
    --v2-border: #e2e8f0;
    --v2-soft: #f1f5f9;
    --v2-primary: #5b3df5;
    --v2-primary-soft: rgba(91, 61, 245, 0.10);
    --v2-blue: #2563eb;
    --v2-green: #22c55e;
    --v2-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
}

* {
    box-sizing: border-box;
}

html,
body {
    min-height: 100%;
    margin: 0;
    padding: 0;
}

body {
    font-family: Inter, Arial, Helvetica, sans-serif;
}

/* ===============================
   LOGIN / CADASTRO
================================ */

.guest-body {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: radial-gradient(circle at top, #0d2a46, var(--bg));
    color: var(--text);
}

.auth-wrapper {
    width: 100%;
    max-width: 420px;
}

.auth-card,
.panel,
.metric-card {
    background: var(--panel);
    border: 1px solid var(--panel-border);
    border-radius: var(--radius);
    padding: 24px;
    backdrop-filter: blur(16px);
    box-shadow: 0 20px 80px rgba(0, 0, 0, .25);
}

.auth-card {
    padding: 32px;
}

.auth-card h1 {
    margin: 0 0 10px;
    font-size: 28px;
}

.auth-card p,
.page-header p,
.muted {
    color: var(--muted);
}

label {
    display: block;
    margin: 16px 0 8px;
    font-weight: 700;
    font-size: 14px;
}

input,
select,
textarea {
    width: 100%;
    padding: 13px 14px;
    border-radius: 12px;
    border: 1px solid var(--panel-border);
    background: rgba(255, 255, 255, .08);
    color: var(--text);
    outline: 0;
}

input::placeholder,
textarea::placeholder {
    color: #6f8097;
}

select option {
    color: #111;
}

.btn-primary,
.btn-small {
    border: 0;
    cursor: pointer;
    font-weight: 700;
    border-radius: 12px;
}

.btn-primary {
    width: 100%;
    margin-top: 22px;
    padding: 14px;
    background: linear-gradient(135deg, var(--blue), var(--bvms-success));
    color: #ffffff;
}

.btn-small {
    padding: 8px 12px;
    background: rgba(255, 255, 255, .12);
    color: var(--text);
}

.auth-link {
    text-align: center;
    margin-top: 20px;
}

.auth-link a {
    color: var(--primary);
    text-decoration: none;
}

.alert-error,
.alert-success {
    padding: 12px;
    border-radius: 12px;
    margin: 15px 0;
}

.alert-error {
    background: rgba(255, 93, 108, .14);
    color: #ffb7bf;
}

.alert-success {
    background: rgba(30, 230, 182, .14);
    color: #047857;
}

/* ===============================
   APP BASE
================================ */

body.app-body {
    margin: 0 !important;
    min-height: 100vh !important;
    background: var(--v2-bg) !important;
    color: var(--v2-text) !important;
    overflow-x: hidden !important;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif !important;
}

body.app-body.theme-dark,
body.app-body.dark {
    --v2-bg: #07111f;
    --v2-surface: #111827;
    --v2-text: #f8fafc;
    --v2-muted: #94a3b8;
    --v2-border: rgba(255, 255, 255, 0.12);
    --v2-soft: #0f172a;
    --v2-primary-soft: rgba(91, 61, 245, 0.18);
    background: var(--v2-bg) !important;
}

.bvms-layout-shell {
    min-height: 100vh;
    display: flex;
    background: var(--v2-bg);
}

.bvms-main-shell {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.page-content,
body.app-body main.page-content {
    display: block !important;
    flex: 1 !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 28px 32px !important;
    background: var(--v2-bg) !important;
}

.page-content > *:first-child {
    margin-top: 0 !important;
}

/* ===============================
   SIDEBAR CLEAN
================================ */

.bvms-sidebar-clean {
    width: 268px;
    min-width: 268px;
    height: 100vh;
    position: sticky;
    top: 0;
    background: var(--v2-surface);
    border-right: 1px solid var(--v2-border);
    padding: 18px 14px;
    display: flex;
    flex-direction: column;
    z-index: 50;
    transition: width .22s ease, min-width .22s ease;
    overflow: hidden;
}

.sidebar-clean-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 18px;
}

.sidebar-clean-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--v2-text);
    text-decoration: none;
    font-weight: 900;
    min-width: 0;
}

.sidebar-clean-logo,
.sidebar-user-avatar,
.topbar-profile-clean span:first-child,
.profile-side-avatar {
    background: linear-gradient(135deg, var(--v2-blue), var(--v2-green));
    color: #ffffff;
    display: grid;
    place-items: center;
    font-weight: 900;
}

.sidebar-clean-logo {
    width: 38px;
    min-width: 38px;
    height: 38px;
    border-radius: 13px;
}

.sidebar-clean-brand-text {
    white-space: nowrap;
    font-size: 17px;
    letter-spacing: -0.03em;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sidebar-clean-toggle {
    width: 38px;
    min-width: 38px;
    height: 38px;
    border: 1px solid var(--v2-border);
    border-radius: 14px;
    background: var(--v2-surface);
    color: var(--v2-text);
    display: grid;
    place-items: center;
    cursor: pointer;
}

.sidebar-clean-toggle:hover {
    background: var(--v2-soft);
}

.sidebar-user-card {
    width: 100%;
    border: 0;
    border-radius: 18px;
    background: var(--v2-soft);
    padding: 12px;
    display: grid;
    grid-template-columns: 42px 1fr 14px;
    gap: 10px;
    align-items: center;
    text-align: left;
    cursor: pointer;
    margin-bottom: 18px;
    transition: .18s ease;
    color: var(--v2-text);
}

.sidebar-user-card:hover {
    background: var(--v2-primary-soft);
}

.sidebar-user-avatar {
    width: 42px;
    min-width: 42px;
    height: 42px;
    border-radius: 14px;
    font-size: 13px;
}

.sidebar-user-copy {
    min-width: 0;
}

.sidebar-user-copy strong {
    display: block;
    color: var(--v2-text);
    font-size: 13px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sidebar-user-copy small {
    display: block;
    color: var(--v2-muted);
    font-size: 12px;
    margin-top: 2px;
}

.sidebar-user-chevron {
    color: var(--v2-muted);
    font-size: 12px;
}

.sidebar-clean-nav {
    display: grid;
    gap: 6px;
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 2px;
}

.sidebar-clean-link,
.sidebar-clean-sublink {
    min-height: 46px;
    border: 0;
    width: 100%;
    display: flex;
    align-items: center;
    gap: 13px;
    text-decoration: none;
    background: transparent;
    color: #334155;
    font-weight: 800;
    border-radius: 16px;
    padding: 0 13px;
    cursor: pointer;
    transition: .18s ease;
    font-size: 14px;
}

body.theme-dark .sidebar-clean-link,
body.theme-dark .sidebar-clean-sublink,
body.dark .sidebar-clean-link,
body.dark .sidebar-clean-sublink {
    color: #cbd5e1;
}

.sidebar-clean-link i,
.sidebar-clean-sublink i {
    width: 22px;
    min-width: 22px;
    text-align: center;
    font-size: 17px;
    color: var(--v2-muted);
}

.sidebar-clean-link:hover,
.sidebar-clean-sublink:hover {
    background: var(--v2-soft);
    color: var(--v2-primary);
}

.sidebar-clean-link:hover i,
.sidebar-clean-sublink:hover i {
    color: var(--v2-primary);
}

.sidebar-clean-link.active,
.sidebar-clean-sublink.active {
    background: var(--v2-primary-soft);
    color: var(--v2-primary);
}

.sidebar-clean-link.active i,
.sidebar-clean-sublink.active i {
    color: var(--v2-primary);
}

.sidebar-more-button .sidebar-more-chevron {
    margin-left: auto;
    font-size: 12px;
    transition: transform .18s ease;
}

.sidebar-more-button.is-open .sidebar-more-chevron {
    transform: rotate(180deg);
}

.sidebar-more-content {
    display: none;
    gap: 4px;
    padding-left: 6px;
    margin: 2px 0 8px;
}

.sidebar-more-content.show {
    display: grid;
}

.sidebar-clean-sublink {
    min-height: 40px;
    font-size: 13px;
    padding-left: 16px;
}

.sidebar-mini-badge {
    margin-left: auto;
    min-width: 20px;
    height: 20px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: #ef4444;
    color: #ffffff;
    font-size: 11px;
    font-weight: 900;
}

.sidebar-plan-card {
    margin-top: auto;
    display: grid;
    gap: 4px;
    text-decoration: none;
    background: linear-gradient(135deg, rgba(37, 99, 235, .10), rgba(34, 197, 94, .13));
    border: 1px solid rgba(34, 197, 94, .18);
    border-radius: 20px;
    padding: 16px;
}

.sidebar-plan-card small {
    color: var(--v2-muted);
    font-weight: 800;
    font-size: 12px;
}

.sidebar-plan-card strong {
    color: var(--v2-text);
    font-weight: 900;
}

.sidebar-plan-card span {
    color: var(--v2-muted);
    font-size: 12px;
}

/* SIDEBAR COLLAPSED */

body.sidebar-collapsed .bvms-sidebar-clean,
.bvms-sidebar-clean.sidebar-collapsed {
    width: 76px;
    min-width: 76px;
    padding-left: 10px;
    padding-right: 10px;
}

body.sidebar-collapsed .sidebar-clean-brand-text,
body.sidebar-collapsed .sidebar-user-copy,
body.sidebar-collapsed .sidebar-user-chevron,
body.sidebar-collapsed .sidebar-clean-link span,
body.sidebar-collapsed .sidebar-clean-sublink span,
body.sidebar-collapsed .sidebar-more-chevron,
body.sidebar-collapsed .sidebar-plan-card,
.bvms-sidebar-clean.sidebar-collapsed .sidebar-clean-brand-text,
.bvms-sidebar-clean.sidebar-collapsed .sidebar-user-copy,
.bvms-sidebar-clean.sidebar-collapsed .sidebar-user-chevron,
.bvms-sidebar-clean.sidebar-collapsed .sidebar-clean-link span,
.bvms-sidebar-clean.sidebar-collapsed .sidebar-clean-sublink span,
.bvms-sidebar-clean.sidebar-collapsed .sidebar-more-chevron,
.bvms-sidebar-clean.sidebar-collapsed .sidebar-plan-card {
    display: none !important;
}

body.sidebar-collapsed .sidebar-user-card,
.bvms-sidebar-clean.sidebar-collapsed .sidebar-user-card {
    display: flex;
    justify-content: center;
    padding: 10px;
}

body.sidebar-collapsed .sidebar-clean-link,
body.sidebar-collapsed .sidebar-clean-sublink,
.bvms-sidebar-clean.sidebar-collapsed .sidebar-clean-link,
.bvms-sidebar-clean.sidebar-collapsed .sidebar-clean-sublink {
    justify-content: center;
    padding: 0;
}

body.sidebar-collapsed .sidebar-more-content,
.bvms-sidebar-clean.sidebar-collapsed .sidebar-more-content {
    padding-left: 0;
}

/* ===============================
   TOPBAR CLEAN
================================ */

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

body.theme-dark .bvms-topbar-clean,
body.dark .bvms-topbar-clean {
    background: rgba(15, 23, 42, .88);
}

.topbar-company-clean {
    display: grid;
    gap: 2px;
}

.topbar-company-clean strong {
    color: var(--v2-text);
    font-weight: 900;
}

.topbar-company-clean small {
    color: var(--v2-muted);
    font-size: 12px;
}

.topbar-actions-clean {
    display: flex;
    align-items: center;
    gap: 10px;
}

.topbar-clean-icon {
    width: 42px;
    height: 42px;
    border: 1px solid var(--v2-border);
    border-radius: 15px;
    background: var(--v2-surface);
    color: var(--v2-text);
    display: grid;
    place-items: center;
    cursor: pointer;
    position: relative;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .05);
}

.topbar-clean-icon:hover {
    color: var(--v2-primary);
    background: var(--v2-soft);
}

.topbar-clean-icon.has-badge span {
    position: absolute;
    top: -5px;
    right: -5px;
    min-width: 18px;
    height: 18px;
    border-radius: 999px;
    background: #ef4444;
    color: #ffffff;
    font-size: 11px;
    font-weight: 900;
    display: grid;
    place-items: center;
}

.topbar-assistant-button {
    background: linear-gradient(135deg, var(--v2-blue), var(--v2-green));
    color: #ffffff;
}

.topbar-profile-clean {
    border: 1px solid var(--v2-border);
    background: var(--v2-surface);
    border-radius: 999px;
    padding: 6px 10px 6px 6px;
    display: flex;
    align-items: center;
    gap: 9px;
    cursor: pointer;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .06);
    color: var(--v2-text);
}

.topbar-profile-clean span:first-child {
    width: 34px;
    height: 34px;
    border-radius: 12px;
}

.topbar-profile-copy {
    display: grid;
    text-align: left;
    line-height: 1.1;
}

.topbar-profile-copy strong {
    color: var(--v2-text);
    font-size: 13px;
    font-weight: 900;
}

.topbar-profile-copy small {
    color: var(--v2-muted);
    font-size: 11px;
}

/* ===============================
   FLOATING PANELS
================================ */

.bvms-panel-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .15);
    backdrop-filter: blur(2px);
    z-index: 80;
    opacity: 0;
    visibility: hidden;
    transition: .18s ease;
}

.bvms-panel-backdrop.show {
    opacity: 1;
    visibility: visible;
}

.floating-panel {
    position: fixed;
    top: 84px;
    right: 24px;
    width: min(440px, calc(100vw - 40px));
    background: var(--v2-surface);
    border: 1px solid var(--v2-border);
    border-radius: 24px;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .18);
    padding: 18px;
    z-index: 90;
    display: none;
    color: var(--v2-text);
}

.floating-panel.show {
    display: block;
}

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

.floating-panel-head strong {
    font-weight: 900;
}

.floating-panel-head button {
    border: 0;
    background: transparent;
    cursor: pointer;
    color: var(--v2-muted);
}

.floating-panel-head a {
    text-decoration: none;
    color: var(--v2-primary);
    font-weight: 900;
}

.search-floating-panel {
    left: 50%;
    right: auto;
    width: min(760px, calc(100vw - 48px));
    transform: translateX(-50%);
}

.smart-search-box {
    height: 48px;
    border-radius: 16px;
    background: var(--v2-soft);
    border: 1px solid var(--v2-border);
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 14px;
    margin-bottom: 14px;
}

.smart-search-box input {
    border: 0 !important;
    background: transparent !important;
    outline: none !important;
    flex: 1 !important;
    color: var(--v2-text) !important;
    box-shadow: none !important;
    padding: 0 !important;
}

.smart-search-results {
    display: grid;
    gap: 8px;
    max-height: 340px;
    overflow-y: auto;
}

.smart-search-results a {
    display: flex;
    gap: 12px;
    align-items: center;
    text-decoration: none;
    padding: 12px;
    border-radius: 16px;
    color: var(--v2-text);
}

.smart-search-results a:hover {
    background: var(--v2-soft);
}

.smart-search-results i {
    color: var(--v2-primary);
}

.smart-search-results strong {
    display: block;
    font-weight: 900;
}

.smart-search-results small {
    color: var(--v2-muted);
}

.empty-panel-state {
    padding: 18px;
    border-radius: 16px;
    background: var(--v2-soft);
    color: var(--v2-muted);
    text-align: center;
    font-weight: 800;
}

.mini-notification-list {
    display: grid;
    gap: 8px;
}

.mini-notification {
    display: grid;
    grid-template-columns: 10px 1fr;
    gap: 12px;
    text-decoration: none;
    color: var(--v2-text);
    padding: 12px;
    border-radius: 16px;
}

.mini-notification:hover,
.mini-notification.unread {
    background: var(--v2-soft);
}

.mini-notification strong {
    display: block;
    font-weight: 900;
}

.mini-notification small {
    color: var(--v2-muted);
    display: block;
}

.mini-dot {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    margin-top: 6px;
    background: #38bdf8;
}

.mini-dot.success {
    background: #22c55e;
}

.mini-dot.warning {
    background: #f59e0b;
}

.mini-dot.danger {
    background: #ef4444;
}

.settings-shortcuts-clean {
    display: grid;
    gap: 8px;
}

.settings-shortcuts-clean a,
.settings-shortcuts-clean button {
    border: 0;
    width: 100%;
    background: transparent;
    display: grid;
    grid-template-columns: 38px 1fr;
    gap: 12px;
    align-items: center;
    text-align: left;
    text-decoration: none;
    padding: 12px;
    border-radius: 16px;
    color: var(--v2-text);
    cursor: pointer;
}

.settings-shortcuts-clean a:hover,
.settings-shortcuts-clean button:hover {
    background: var(--v2-soft);
}

.settings-shortcuts-clean i {
    width: 38px;
    height: 38px;
    border-radius: 14px;
    background: var(--v2-primary-soft);
    color: var(--v2-primary);
    display: grid;
    place-items: center;
}

.settings-shortcuts-clean strong {
    display: block;
    font-weight: 900;
}

.settings-shortcuts-clean small {
    color: var(--v2-muted);
}

/* ===============================
   ASSISTANT DRAWER
================================ */

.assistant-clean-drawer {
    position: fixed;
    top: 0;
    right: 0;
    width: min(420px, 100vw);
    height: 100vh;
    background: var(--v2-surface);
    border-left: 1px solid var(--v2-border);
    box-shadow: -24px 0 70px rgba(15, 23, 42, .18);
    z-index: 100;
    transform: translateX(105%);
    transition: transform .22s ease;
    color: var(--v2-text);
}

.assistant-clean-drawer.show {
    transform: translateX(0);
}

.assistant-clean-head {
    height: 76px;
    border-bottom: 1px solid var(--v2-border);
    padding: 0 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.assistant-clean-head span {
    display: block;
    color: var(--v2-primary);
    font-weight: 900;
}

.assistant-clean-head strong {
    display: block;
    font-size: 20px;
}

.assistant-clean-head button {
    border: 0;
    background: transparent;
    cursor: pointer;
    color: var(--v2-text);
}

.assistant-clean-body {
    padding: 20px;
    display: grid;
    gap: 12px;
}

.assistant-clean-body p {
    color: var(--v2-muted);
}

.assistant-clean-body a {
    display: block;
    text-decoration: none;
    padding: 14px;
    border-radius: 16px;
    background: var(--v2-soft);
    color: var(--v2-text);
    font-weight: 900;
}

.assistant-clean-body a:hover {
    background: var(--v2-primary-soft);
    color: var(--v2-primary);
}

.assistant-clean-note {
    margin-top: 8px;
    padding: 14px;
    border-radius: 16px;
    background: var(--v2-soft);
    color: var(--v2-muted);
}

/* ===============================
   PROFILE OFFCANVAS
================================ */

.profile-offcanvas-clean {
    width: 360px !important;
    border: 0;
    background: transparent;
}

.profile-offcanvas-clean .offcanvas-body {
    padding: 22px;
    display: flex;
    align-items: flex-start;
}

.profile-side-card {
    width: 100%;
    background: var(--v2-surface);
    border: 1px solid var(--v2-border);
    border-radius: 28px;
    padding: 24px;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .18);
}

.profile-side-avatar {
    width: 68px;
    height: 68px;
    border-radius: 22px;
    margin: 0 auto 16px;
    font-size: 22px;
}

.profile-side-card h5 {
    text-align: center;
    margin: 0;
    font-weight: 900;
    color: var(--v2-text);
}

.profile-side-card p {
    text-align: center;
    color: var(--v2-muted);
    margin: 6px 0 22px;
    font-size: 13px;
}

.profile-side-menu {
    display: grid;
    gap: 8px;
}

.profile-side-menu a {
    min-height: 48px;
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--v2-text);
    text-decoration: none;
    font-weight: 900;
    border-radius: 16px;
    padding: 0 12px;
}

.profile-side-menu a:hover {
    background: var(--v2-soft);
    color: var(--v2-primary);
}

.profile-side-menu i {
    width: 20px;
    color: var(--v2-muted);
}

.profile-side-logout {
    width: 100%;
    height: 48px;
    border: 0;
    border-radius: 16px;
    background: linear-gradient(135deg, var(--v2-blue), var(--v2-green));
    color: #ffffff;
    font-weight: 900;
    cursor: pointer;
}

/* ===============================
   COMPONENTES PADRÃO
================================ */

.page-header {
    margin-bottom: 24px;
}

.page-header h1 {
    margin: 0 0 8px;
    letter-spacing: -0.04em !important;
}

.cards-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    margin-bottom: 24px;
}

.metric-card {
    background: var(--v2-surface) !important;
    color: var(--v2-text) !important;
}

.metric-card span {
    display: block;
    color: var(--v2-muted);
    margin-bottom: 12px;
}

.metric-card strong {
    font-size: 26px;
}

.metric-card.highlight {
    border-color: rgba(34, 197, 94, .35) !important;
}

body.app-body .card,
body.app-body .panel,
body.app-body .metric-card {
    border-radius: 22px !important;
    border: 1px solid var(--v2-border) !important;
    box-shadow: var(--v2-shadow) !important;
}

.panel {
    background: var(--v2-surface) !important;
    color: var(--v2-text) !important;
}

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

.form-grid .btn-primary {
    grid-column: 1/-1;
}

.table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 18px;
}

.table th,
.table td {
    padding: 14px;
    border-bottom: 1px solid var(--v2-border);
    text-align: left;
}

.table th {
    color: var(--v2-muted);
    background: var(--v2-soft);
}

.table td:last-child {
    text-align: right;
}

.subtotal {
    background: var(--v2-soft);
    font-weight: 700;
}

.total {
    background: rgba(34, 197, 94, .12);
    color: #15803d;
    font-weight: 700;
}

body.app-body .btn,
body.app-body .btn-primary,
body.app-body .btn-outline-primary {
    border-radius: 14px !important;
}

/* =========================
   GOALS / OBJETIVOS CLEAN
========================= */

.goal-summary-card,
.goal-card-clean {
    background: var(--v2-surface);
    border: 1px solid var(--v2-border);
    color: var(--v2-text);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);
}

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

.goal-summary-card span {
    display: block;
    color: var(--v2-muted);
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 8px;
}

.goal-summary-card strong {
    font-size: 18px;
    color: var(--v2-text);
    font-weight: 800;
}

.goal-tabs {
    display: flex;
    gap: 28px;
    align-items: center;
    border-bottom: 1px solid var(--v2-border);
    padding-bottom: 10px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}

.goal-tabs a {
    text-decoration: none;
    color: var(--v2-muted);
    font-weight: 700;
    font-size: 14px;
    padding-bottom: 8px;
    border-bottom: 2px solid transparent;
}

.goal-tabs a.active {
    color: #0f766e;
    border-bottom-color: #0f766e;
}

.goal-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(310px, 1fr));
    gap: 20px;
}

.goal-card-clean {
    border-radius: 22px;
    padding: 18px;
}

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

.goal-card-head h5 {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--v2-text);
}

.goal-card-head small {
    color: var(--v2-muted);
    font-size: 12px;
    font-weight: 700;
}

.goal-card-main {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: 18px;
}

.goal-ring {
    --progress: 0;
    width: 90px;
    height: 90px;
    border-radius: 50%;
    background: conic-gradient(#d1d5db calc((100 - var(--progress)) * 1%), #34d399 0);
    display: flex;
    align-items: center;
    justify-content: center;
    transform: rotate(-90deg);
    flex-shrink: 0;
}

.goal-ring-inner {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--v2-surface);
    display: flex;
    align-items: center;
    justify-content: center;
    transform: rotate(90deg);
    box-shadow: inset 0 0 0 1px var(--v2-border);
}

.goal-ring-inner strong {
    font-size: 20px;
    font-weight: 800;
    color: var(--v2-text);
}

.goal-card-info {
    flex: 1;
}

.goal-info-line {
    margin-bottom: 10px;
}

.goal-info-line span {
    display: block;
    font-size: 12px;
    color: var(--v2-muted);
    font-weight: 700;
}

.goal-info-line strong {
    font-size: 14px;
    color: var(--v2-text);
    font-weight: 800;
}

.goal-legend {
    display: grid;
    gap: 10px;
    margin-bottom: 14px;
}

.goal-legend-item {
    display: grid;
    grid-template-columns: 14px 1fr auto;
    gap: 8px;
    align-items: center;
}

.goal-legend-item small {
    color: var(--v2-muted);
    font-weight: 600;
}

.goal-legend-item strong {
    color: var(--v2-text);
    font-weight: 700;
    font-size: 13px;
}

.dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
}

.dot-teal {
    background: #2dd4bf;
}

.dot-gray {
    background: #cbd5e1;
}

.goal-card-footer {
    margin-bottom: 12px;
    font-size: 13px;
    font-weight: 700;
}

/* ===============================
   DASHBOARD MODULAR
================================ */

body.app-body .bvms-widget-toolbar {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-bottom: 14px;
}

body.app-body .bvms-widget-toolbar button {
    border: 1px solid var(--v2-border);
    background: var(--v2-surface);
    color: var(--v2-text);
    border-radius: 14px;
    height: 40px;
    padding: 0 14px;
    font-weight: 850;
}

body.app-body .bvms-widget-editing [data-bvms-widget]:not([data-widget-fixed="1"]) {
    outline: 2px dashed rgba(91, 61, 245, .35);
    outline-offset: 4px;
    position: relative;
}

body.app-body .bvms-widget-remove {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 10px;
    background: rgba(15, 23, 42, .82);
    color: #fff;
    display: none;
    z-index: 3;
}

body.app-body .bvms-widget-editing [data-bvms-widget]:not([data-widget-fixed="1"]) .bvms-widget-remove {
    display: grid;
    place-items: center;
}

body.app-body [data-bvms-widget].is-hidden-widget {
    display: none !important;
}

body.app-body .widget-picker-list {
    display: grid;
    gap: 8px;
}

body.app-body .widget-picker-list button {
    border: 1px solid var(--v2-border);
    border-radius: 14px;
    background: var(--v2-surface);
    color: var(--v2-text);
    padding: 12px;
    text-align: left;
    font-weight: 800;
}

/* =========================================================
   BVMS - Correção global de tema escuro para telas novas
   Escopada ao modo escuro. Antes esta seção afetava também o modo claro.
========================================================= */

html[data-theme="dark"],
html.theme-dark,
html[data-theme="dark"] body,
html.theme-dark body,
body.theme-dark,
body.dark,
html[data-theme="dark"] .app-shell,
html[data-theme="dark"] .app-main,
html[data-theme="dark"] .main-content,
html[data-theme="dark"] .page-content,
html.theme-dark .app-shell,
html.theme-dark .app-main,
html.theme-dark .main-content,
html.theme-dark .page-content {
    background: #06111f !important;
    color: #f8fafc !important;
}

html[data-theme="dark"] .bvms-page,
html[data-theme="dark"] .bvms-section,
html[data-theme="dark"] .bvms-card,
html[data-theme="dark"] .card,
html[data-theme="dark"] .card-body,
html[data-theme="dark"] .panel,
html[data-theme="dark"] .box,
html[data-theme="dark"] .summary-card,
html[data-theme="dark"] .metric-card,
html[data-theme="dark"] .filter-card,
html[data-theme="dark"] .table-card,
html[data-theme="dark"] .import-card,
html[data-theme="dark"] .sales-card,
html[data-theme="dark"] .product-card,
html[data-theme="dark"] .category-card,
html.theme-dark .bvms-page,
html.theme-dark .bvms-section,
html.theme-dark .bvms-card,
html.theme-dark .card,
html.theme-dark .card-body,
html.theme-dark .panel,
html.theme-dark .box,
html.theme-dark .summary-card,
html.theme-dark .metric-card,
html.theme-dark .filter-card,
html.theme-dark .table-card,
html.theme-dark .import-card,
html.theme-dark .sales-card,
html.theme-dark .product-card,
html.theme-dark .category-card {
    background: #111827 !important;
    color: #f8fafc !important;
    border-color: rgba(148, 163, 184, 0.22) !important;
}

html[data-theme="dark"] .bg-white,
html[data-theme="dark"] .bg-light,
html[data-theme="dark"] .bg-body,
html[data-theme="dark"] .bg-body-tertiary,
html[data-theme="dark"] .text-bg-light,
html.theme-dark .bg-white,
html.theme-dark .bg-light,
html.theme-dark .bg-body,
html.theme-dark .bg-body-tertiary,
html.theme-dark .text-bg-light {
    background: #111827 !important;
    color: #f8fafc !important;
}

html[data-theme="dark"] .text-dark,
html[data-theme="dark"] .text-body,
html[data-theme="dark"] .text-muted,
html.theme-dark .text-dark,
html.theme-dark .text-body,
html.theme-dark .text-muted {
    color: #cbd5e1 !important;
}

html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] h4,
html[data-theme="dark"] h5,
html[data-theme="dark"] h6,
html[data-theme="dark"] label,
html[data-theme="dark"] th,
html[data-theme="dark"] td,
html[data-theme="dark"] p,
html[data-theme="dark"] span,
html.theme-dark h1,
html.theme-dark h2,
html.theme-dark h3,
html.theme-dark h4,
html.theme-dark h5,
html.theme-dark h6,
html.theme-dark label,
html.theme-dark th,
html.theme-dark td,
html.theme-dark p,
html.theme-dark span {
    color: inherit;
}

html[data-theme="dark"] .sales-summary-card,
html[data-theme="dark"] .dashboard-card,
html[data-theme="dark"] .kpi-card,
html[data-theme="dark"] .stat-card,
html.theme-dark .sales-summary-card,
html.theme-dark .dashboard-card,
html.theme-dark .kpi-card,
html.theme-dark .stat-card {
    background: #111827 !important;
    color: #f8fafc !important;
    border: 1px solid rgba(148, 163, 184, 0.22) !important;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.22);
}

html[data-theme="dark"] .sales-summary-card strong,
html[data-theme="dark"] .dashboard-card strong,
html[data-theme="dark"] .kpi-card strong,
html[data-theme="dark"] .stat-card strong,
html.theme-dark .sales-summary-card strong,
html.theme-dark .dashboard-card strong,
html.theme-dark .kpi-card strong,
html.theme-dark .stat-card strong {
    color: #f8fafc !important;
}

html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea,
html[data-theme="dark"] .form-control,
html[data-theme="dark"] .form-select,
html.theme-dark input,
html.theme-dark select,
html.theme-dark textarea,
html.theme-dark .form-control,
html.theme-dark .form-select {
    background: #020617 !important;
    color: #f8fafc !important;
    border-color: rgba(148, 163, 184, 0.28) !important;
}

html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder,
html.theme-dark input::placeholder,
html.theme-dark textarea::placeholder {
    color: #94a3b8 !important;
}

html[data-theme="dark"] input:focus,
html[data-theme="dark"] select:focus,
html[data-theme="dark"] textarea:focus,
html[data-theme="dark"] .form-control:focus,
html[data-theme="dark"] .form-select:focus,
html.theme-dark input:focus,
html.theme-dark select:focus,
html.theme-dark textarea:focus,
html.theme-dark .form-control:focus,
html.theme-dark .form-select:focus {
    background: #020617 !important;
    color: #f8fafc !important;
    border-color: #38bdf8 !important;
    box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.18) !important;
}

html[data-theme="dark"] .table,
html[data-theme="dark"] table,
html.theme-dark .table,
html.theme-dark table {
    color: #f8fafc !important;
    background: transparent !important;
}

html[data-theme="dark"] .table thead,
html[data-theme="dark"] table thead,
html[data-theme="dark"] .table th,
html[data-theme="dark"] table th,
html.theme-dark .table thead,
html.theme-dark table thead,
html.theme-dark .table th,
html.theme-dark table th {
    background: #1e293b !important;
    color: #f8fafc !important;
    border-color: rgba(148, 163, 184, 0.22) !important;
}

html[data-theme="dark"] .table tbody,
html[data-theme="dark"] table tbody,
html[data-theme="dark"] .table td,
html[data-theme="dark"] table td,
html.theme-dark .table tbody,
html.theme-dark table tbody,
html.theme-dark .table td,
html.theme-dark table td {
    background: #111827 !important;
    color: #f8fafc !important;
    border-color: rgba(148, 163, 184, 0.16) !important;
}

html[data-theme="dark"] .table tbody tr:hover,
html[data-theme="dark"] table tbody tr:hover,
html.theme-dark .table tbody tr:hover,
html.theme-dark table tbody tr:hover {
    background: #1e293b !important;
}

html[data-theme="dark"] .sales-period-box,
html[data-theme="dark"] .period-box,
html[data-theme="dark"] .period-filter,
html[data-theme="dark"] .sales-filter,
html[data-theme="dark"] .sales-metrics,
html[data-theme="dark"] .sales-list,
html[data-theme="dark"] .sales-panel,
html.theme-dark .sales-period-box,
html.theme-dark .period-box,
html.theme-dark .period-filter,
html.theme-dark .sales-filter,
html.theme-dark .sales-metrics,
html.theme-dark .sales-list,
html.theme-dark .sales-panel {
    background: #111827 !important;
    color: #f8fafc !important;
    border: 1px solid rgba(148, 163, 184, 0.22) !important;
}

html[data-theme="dark"] .btn-secondary,
html[data-theme="dark"] .btn-light,
html[data-theme="dark"] .btn-outline-secondary,
html.theme-dark .btn-secondary,
html.theme-dark .btn-light,
html.theme-dark .btn-outline-secondary {
    background: #1e293b !important;
    color: #f8fafc !important;
    border-color: rgba(148, 163, 184, 0.28) !important;
}

html[data-theme="dark"] .btn-secondary:hover,
html[data-theme="dark"] .btn-light:hover,
html[data-theme="dark"] .btn-outline-secondary:hover,
html.theme-dark .btn-secondary:hover,
html.theme-dark .btn-light:hover,
html.theme-dark .btn-outline-secondary:hover {
    background: #334155 !important;
    color: #ffffff !important;
}

html[data-theme="dark"] .modal-content,
html.theme-dark .modal-content {
    background: #111827 !important;
    color: #f8fafc !important;
    border-color: rgba(148, 163, 184, 0.22) !important;
}

html[data-theme="dark"] .modal-header,
html[data-theme="dark"] .modal-footer,
html.theme-dark .modal-header,
html.theme-dark .modal-footer {
    border-color: rgba(148, 163, 184, 0.18) !important;
}

html[data-theme="dark"] .badge,
html[data-theme="dark"] .chip,
html[data-theme="dark"] .pill,
html.theme-dark .badge,
html.theme-dark .chip,
html.theme-dark .pill {
    color: #f8fafc !important;
}

html[data-theme="dark"] small,
html[data-theme="dark"] .form-text,
html[data-theme="dark"] .helper-text,
html.theme-dark small,
html.theme-dark .form-text,
html.theme-dark .helper-text {
    color: #94a3b8 !important;
}

/* ===============================
   RESPONSIVO
================================ */

@media (max-width: 900px) {
    .bvms-sidebar-clean {
        width: 76px;
        min-width: 76px;
        padding-left: 10px;
        padding-right: 10px;
    }

    .sidebar-clean-brand-text,
    .sidebar-user-copy,
    .sidebar-user-chevron,
    .sidebar-clean-link span,
    .sidebar-clean-sublink span,
    .sidebar-more-chevron,
    .sidebar-plan-card {
        display: none !important;
    }

    .sidebar-user-card,
    .sidebar-clean-link,
    .sidebar-clean-sublink {
        justify-content: center;
        padding-left: 0;
        padding-right: 0;
    }

    .topbar-profile-copy,
    .topbar-company-clean {
        display: none;
    }

    .bvms-topbar-clean {
        padding: 0 14px;
    }

    .page-content {
        padding: 18px !important;
    }

    .cards-grid,
    .form-grid {
        grid-template-columns: 1fr;
    }

    .topbar-actions-clean {
        gap: 6px;
    }

    .topbar-clean-icon {
        width: 38px;
        height: 38px;
    }
}

/* =========================================================
   BVMS ERP - FIX FINAL DE LAYOUT GLOBAL
   Objetivo: corrigir telas quebradas, padronizar cards, filtros,
   tabelas e reorganizar a parte inferior do dashboard.
   Cole/mande este bloco no FINAL de public/assets/css/app.css
========================================================= */

/* ---------- Tema base ---------- */
html[data-theme="light"],
html.theme-light {
  --bvms-page-bg: #f4f7fb;
  --bvms-sidebar-bg: #ffffff;
  --bvms-topbar-bg: rgba(255,255,255,.92);
  --bvms-surface: #ffffff;
  --bvms-surface-2: #f8fafc;
  --bvms-surface-3: #eef4fb;
  --bvms-text: #0f172a;
  --bvms-text-soft: #334155;
  --bvms-muted: #64748b;
  --bvms-border: #dbe3ef;
  --bvms-border-2: #cbd5e1;
  --bvms-primary: #2563eb;
  --bvms-primary-soft: #dbeafe;
  --bvms-success: #16a34a;
  --bvms-success-soft: #dcfce7;
  --bvms-warning: #d97706;
  --bvms-warning-soft: #fff7ed;
  --bvms-danger: #dc2626;
  --bvms-danger-soft: #fef2f2;
  --bvms-info: #0891b2;
  --bvms-info-soft: #ecfeff;
  --bvms-shadow: 0 12px 30px rgba(15, 23, 42, .075);
}

html[data-theme="dark"],
html.theme-dark,
body.theme-dark,
body.dark {
  --bvms-page-bg: #07111f;
  --bvms-sidebar-bg: #0f172a;
  --bvms-topbar-bg: rgba(15,23,42,.92);
  --bvms-surface: #111827;
  --bvms-surface-2: #162033;
  --bvms-surface-3: #1e293b;
  --bvms-text: #f8fafc;
  --bvms-text-soft: #e2e8f0;
  --bvms-muted: #94a3b8;
  --bvms-border: rgba(148, 163, 184, .22);
  --bvms-border-2: rgba(148, 163, 184, .34);
  --bvms-primary: #60a5fa;
  --bvms-primary-soft: rgba(37,99,235,.22);
  --bvms-success: #22c55e;
  --bvms-success-soft: rgba(34,197,94,.14);
  --bvms-warning: #f59e0b;
  --bvms-warning-soft: rgba(245,158,11,.14);
  --bvms-danger: #fb7185;
  --bvms-danger-soft: rgba(239,68,68,.15);
  --bvms-info: #22d3ee;
  --bvms-info-soft: rgba(34,211,238,.13);
  --bvms-shadow: 0 18px 45px rgba(0,0,0,.30);
}

body.app-body {
  background: var(--bvms-page-bg) !important;
  color: var(--bvms-text) !important;
  font-family: Inter, "Segoe UI", Arial, sans-serif !important;
  font-weight: 500 !important;
  letter-spacing: -.01em;
}

body.app-body .page-content,
body.app-body main.page-content,
body.app-body .main-content,
body.app-body .bvms-main-shell {
  background: var(--bvms-page-bg) !important;
  color: var(--bvms-text) !important;
}

body.app-body h1,
body.app-body h2,
body.app-body h3,
body.app-body h4,
body.app-body h5,
body.app-body h6 {
  color: var(--bvms-text) !important;
  font-weight: 760 !important;
  letter-spacing: -.045em !important;
}

body.app-body p,
body.app-body span,
body.app-body small,
body.app-body label,
body.app-body li,
body.app-body td,
body.app-body th {
  color: inherit;
}

body.app-body .text-muted,
body.app-body .muted,
body.app-body small,
body.app-body .stat-note,
body.app-body .stat-label,
body.app-body .section-description,
body.app-body .helper-text {
  color: var(--bvms-muted) !important;
}

/* ---------- Mini Bootstrap necessário para views que usam classes bootstrap ---------- */
body.app-body .row { display: flex !important; flex-wrap: wrap !important; margin-left: -.75rem !important; margin-right: -.75rem !important; }
body.app-body .row > * { box-sizing: border-box; padding-left: .75rem !important; padding-right: .75rem !important; max-width: 100%; }
body.app-body .col-12 { flex: 0 0 100% !important; max-width: 100% !important; }
body.app-body .col-md-2, body.app-body .col-md-3, body.app-body .col-md-4, body.app-body .col-md-6, body.app-body .col-lg-6, body.app-body .col-xl-4, body.app-body .col-xl-5, body.app-body .col-xl-7 { flex: 0 0 100%; max-width: 100%; }
@media (min-width: 768px) { body.app-body .col-md-2{flex:0 0 16.666%;max-width:16.666%;} body.app-body .col-md-3{flex:0 0 25%;max-width:25%;} body.app-body .col-md-4{flex:0 0 33.333%;max-width:33.333%;} body.app-body .col-md-6{flex:0 0 50%;max-width:50%;} }
@media (min-width: 992px) { body.app-body .col-lg-6{flex:0 0 50%;max-width:50%;} }
@media (min-width: 1200px) { body.app-body .col-xl-4{flex:0 0 33.333%;max-width:33.333%;} body.app-body .col-xl-5{flex:0 0 41.666%;max-width:41.666%;} body.app-body .col-xl-7{flex:0 0 58.333%;max-width:58.333%;} }
body.app-body .g-3 { row-gap: 1rem !important; } body.app-body .g-3 > * { margin-bottom: 1rem !important; }
body.app-body .g-4 { row-gap: 1.25rem !important; } body.app-body .g-4 > * { margin-bottom: 1.25rem !important; }
body.app-body .d-flex { display: flex !important; } body.app-body .d-block { display: block !important; } body.app-body .d-none { display: none !important; }
body.app-body .d-inline-flex { display: inline-flex !important; }
body.app-body .align-items-center { align-items: center !important; } body.app-body .align-items-start { align-items: flex-start !important; } body.app-body .align-items-end { align-items: flex-end !important; }
body.app-body .justify-content-between { justify-content: space-between !important; } body.app-body .justify-content-end { justify-content: flex-end !important; } body.app-body .justify-content-center { justify-content: center !important; }
body.app-body .flex-wrap { flex-wrap: wrap !important; }
body.app-body .gap-2 { gap: .5rem !important; } body.app-body .gap-3 { gap: 1rem !important; } body.app-body .gap-4 { gap: 1.25rem !important; }
body.app-body .mb-0 { margin-bottom: 0 !important; } body.app-body .mb-1 { margin-bottom: .25rem !important; } body.app-body .mb-2 { margin-bottom: .5rem !important; } body.app-body .mb-3 { margin-bottom: 1rem !important; } body.app-body .mb-4 { margin-bottom: 1.5rem !important; }
body.app-body .mt-1 { margin-top: .25rem !important; } body.app-body .mt-3 { margin-top: 1rem !important; } body.app-body .mt-4 { margin-top: 1.5rem !important; } body.app-body .my-4 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; }
body.app-body .p-3 { padding: 1rem !important; } body.app-body .p-4 { padding: 1.5rem !important; } body.app-body .px-3 { padding-left: 1rem !important; padding-right: 1rem !important; } body.app-body .px-4 { padding-left: 1.5rem !important; padding-right: 1.5rem !important; } body.app-body .py-2 { padding-top: .5rem !important; padding-bottom: .5rem !important; }
body.app-body .h-100 { height: 100% !important; }
body.app-body .w-100 { width: 100% !important; }
body.app-body .text-center { text-align: center !important; } body.app-body .text-end, body.app-body .text-right { text-align: right !important; }
body.app-body .fw-bold { font-weight: 760 !important; } body.app-body .fw-semibold { font-weight: 660 !important; }
body.app-body .rounded-4 { border-radius: 18px !important; } body.app-body .rounded-pill { border-radius: 999px !important; }
body.app-body .shadow-sm { box-shadow: var(--bvms-shadow) !important; }
body.app-body .border-0 { border: 0 !important; }
body.app-body .border-bottom { border-bottom: 1px solid var(--bvms-border) !important; }

/* ---------- Componentes base ---------- */
body.app-body .card,
body.app-body .card-body,
body.app-body .panel,
body.app-body .box,
body.app-body .metric-card,
body.app-body .stat-card,
body.app-body .dash-panel,
body.app-body .dash-card,
body.app-body .table-card,
body.app-body .filter-card,
body.app-body .products-card,
body.app-body .cost-panel,
body.app-body .sales-table-card,
body.app-body .sales-filter-card,
body.app-body .sales-summary-card,
body.app-body .expenses-filter-card,
body.app-body .expenses-table-card,
body.app-body .expenses-summary-card,
body.app-body .expense-form-card,
body.app-body .expense-help-card,
body.app-body .dre-panel,
body.app-body .dre-table-panel,
body.app-body .dre-kpi-card,
body.app-body .imports-history-card,
body.app-body .preview-card,
body.app-body .preview-table-card,
body.app-body .smart-upload-card,
body.app-body .upload-card,
body.app-body .info-card,
body.app-body .history-item,
body.app-body .page-card,
body.app-body .goal-card-clean,
body.app-body .goal-summary-card {
  background: var(--bvms-surface) !important;
  color: var(--bvms-text) !important;
  border: 1px solid var(--bvms-border) !important;
  border-radius: 18px !important;
  box-shadow: var(--bvms-shadow) !important;
}

body.app-body .card-body { padding: 1.25rem !important; }

body.app-body input,
body.app-body select,
body.app-body textarea,
body.app-body .form-control,
body.app-body .form-select {
  width: 100%;
  min-height: 42px;
  border-radius: 12px !important;
  border: 1px solid var(--bvms-border-2) !important;
  background: var(--bvms-surface) !important;
  color: var(--bvms-text) !important;
  padding: 10px 12px !important;
  outline: 0 !important;
}

body.app-body input::placeholder,
body.app-body textarea::placeholder { color: color-mix(in srgb, var(--bvms-muted) 75%, transparent) !important; }
body.app-body select option { background: var(--bvms-surface) !important; color: var(--bvms-text) !important; }
body.app-body input:focus,
body.app-body select:focus,
body.app-body textarea:focus,
body.app-body .form-control:focus,
body.app-body .form-select:focus {
  border-color: var(--bvms-primary) !important;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--bvms-primary) 14%, transparent) !important;
}

body.app-body .form-label,
body.app-body label {
  color: var(--bvms-text-soft) !important;
  font-weight: 700 !important;
  font-size: .82rem !important;
  margin-bottom: 7px !important;
}

body.app-body .btn,
body.app-body button,
body.app-body .btn-primary,
body.app-body .btn-outline-primary,
body.app-body .btn-soft,
body.app-body .btn-sales-primary,
body.app-body .btn-sales-secondary,
body.app-body .btn-expense-primary,
body.app-body .btn-expense-secondary,
body.app-body .dash-action-primary,
body.app-body .dash-action-secondary,
body.app-body .btn-confirm-import,
body.app-body .btn-secondary-import,
body.app-body .btn-upload,
body.app-body .btn-template-header,
body.app-body .btn-view-import,
body.app-body .btn-delete-import {
  min-height: 40px;
  border-radius: 12px !important;
  font-weight: 720 !important;
  text-decoration: none !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
}

body.app-body .btn-primary,
body.app-body button[type="submit"],
body.app-body .btn-sales-primary,
body.app-body .btn-expense-primary,
body.app-body .dash-action-primary,
body.app-body .btn-confirm-import,
body.app-body .btn-upload {
  background: linear-gradient(135deg, #2563eb, #14b8a6) !important;
  color: #ffffff !important;
  border: 0 !important;
}
body.app-body .btn-success { background: #16a34a !important; color: #fff !important; border: 0 !important; }
body.app-body .btn-danger, body.app-body .btn-outline-danger, body.app-body .btn-delete-import, body.app-body .btn-small-danger { background: var(--bvms-danger-soft) !important; color: var(--bvms-danger) !important; border: 1px solid color-mix(in srgb, var(--bvms-danger) 28%, transparent) !important; }
body.app-body .btn-outline-primary,
body.app-body .btn-soft,
body.app-body .btn-sales-secondary,
body.app-body .btn-expense-secondary,
body.app-body .dash-action-secondary,
body.app-body .btn-secondary-import,
body.app-body .btn-view-import {
  background: var(--bvms-surface) !important;
  color: var(--bvms-primary) !important;
  border: 1px solid var(--bvms-border) !important;
}
body.app-body button:disabled,
body.app-body .btn:disabled { opacity: .48 !important; cursor: not-allowed !important; }

body.app-body .badge,
body.app-body .dash-pill,
body.app-body .sales-badge,
body.app-body .expenses-badge,
body.app-body .imports-badge,
body.app-body .bvms-chip,
body.app-body .status-pill,
body.app-body .type-pill,
body.app-body .origin-pill,
body.app-body .category-pill,
body.app-body .sku-code {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: 999px;
  padding: 6px 10px;
  background: var(--bvms-primary-soft) !important;
  color: var(--bvms-primary) !important;
  border: 1px solid color-mix(in srgb, var(--bvms-primary) 20%, transparent) !important;
  font-size: .78rem;
  font-weight: 720;
}
body.app-body .text-bg-primary { background: var(--bvms-primary-soft) !important; color: var(--bvms-primary) !important; }
body.app-body .text-bg-success, body.app-body .bg-success { background: var(--bvms-success-soft) !important; color: var(--bvms-success) !important; }
body.app-body .text-bg-danger { background: var(--bvms-danger-soft) !important; color: var(--bvms-danger) !important; }
body.app-body .bg-light { background: var(--bvms-surface-2) !important; color: var(--bvms-text) !important; }
body.app-body .bg-warning { background: var(--bvms-warning-soft) !important; color: var(--bvms-warning) !important; }

body.app-body .table-responsive { overflow-x: auto !important; width: 100%; }
body.app-body table,
body.app-body .table,
body.app-body .sales-table,
body.app-body .expenses-table,
body.app-body .dre-table,
body.app-body .preview-table,
body.app-body .product-table {
  width: 100%;
  border-collapse: collapse !important;
  color: var(--bvms-text) !important;
  background: transparent !important;
}
body.app-body th,
body.app-body .table th,
body.app-body .sales-table th,
body.app-body .expenses-table th,
body.app-body .dre-table th,
body.app-body .preview-table th,
body.app-body .product-table th {
  background: var(--bvms-surface-3) !important;
  color: var(--bvms-text-soft) !important;
  border-bottom: 1px solid var(--bvms-border) !important;
  padding: 12px 14px !important;
  font-size: .78rem !important;
  font-weight: 760 !important;
  text-transform: uppercase;
  letter-spacing: .035em;
  text-align: left;
}
body.app-body td,
body.app-body .table td,
body.app-body .sales-table td,
body.app-body .expenses-table td,
body.app-body .dre-table td,
body.app-body .preview-table td,
body.app-body .product-table td {
  background: transparent !important;
  color: var(--bvms-text) !important;
  border-bottom: 1px solid var(--bvms-border) !important;
  padding: 12px 14px !important;
  vertical-align: middle;
}
body.app-body tbody tr:hover td { background: color-mix(in srgb, var(--bvms-primary) 5%, transparent) !important; }
body.app-body .table-highlight, body.app-body .subtotal { background: var(--bvms-surface-2) !important; font-weight: 760 !important; }
body.app-body .table-total, body.app-body .total { background: var(--bvms-success-soft) !important; color: var(--bvms-success) !important; font-weight: 760 !important; }

/* ---------- Sidebar e topbar consistentes ---------- */
body.app-body .bvms-sidebar-clean {
  background: var(--bvms-sidebar-bg) !important;
  color: var(--bvms-text) !important;
  border-right: 1px solid var(--bvms-border) !important;
}
body.app-body .sidebar-clean-brand,
body.app-body .sidebar-clean-brand-text,
body.app-body .sidebar-user-copy strong,
body.app-body .sidebar-plan-card strong { color: var(--bvms-text) !important; }
body.app-body .sidebar-user-card,
body.app-body .sidebar-plan-card { background: var(--bvms-surface-2) !important; color: var(--bvms-text) !important; border: 1px solid var(--bvms-border) !important; }
body.app-body .sidebar-clean-link,
body.app-body .sidebar-clean-sublink { color: var(--bvms-text-soft) !important; background: transparent !important; }
body.app-body .sidebar-clean-link:hover,
body.app-body .sidebar-clean-sublink:hover,
body.app-body .sidebar-clean-link.active,
body.app-body .sidebar-clean-sublink.active { background: var(--bvms-primary-soft) !important; color: var(--bvms-primary) !important; }
body.app-body .sidebar-clean-link i,
body.app-body .sidebar-clean-sublink i { color: var(--bvms-muted) !important; }
body.app-body .sidebar-clean-link.active i,
body.app-body .sidebar-clean-sublink.active i { color: var(--bvms-primary) !important; }
body.app-body .bvms-topbar-clean { background: var(--bvms-topbar-bg) !important; color: var(--bvms-text) !important; border-bottom: 1px solid var(--bvms-border) !important; }
body.app-body .topbar-clean-icon,
body.app-body .topbar-profile-clean { background: var(--bvms-surface) !important; color: var(--bvms-text) !important; border: 1px solid var(--bvms-border) !important; }

/* ---------- Headers de páginas ---------- */
body.app-body .page-header,
body.app-body .sales-header-row,
body.app-body .expenses-header,
body.app-body .imports-header,
body.app-body .dre-hero-card,
body.app-body .page-hero {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 18px;
  padding: 22px !important;
  border-radius: 20px !important;
  background: var(--bvms-surface) !important;
  border: 1px solid var(--bvms-border) !important;
  box-shadow: var(--bvms-shadow) !important;
}
body.app-body .page-header h1,
body.app-body .sales-title-block h1,
body.app-body .expenses-header h1,
body.app-body .imports-header h1,
body.app-body .dre-hero-copy h1,
body.app-body .page-hero h1 {
  margin: 8px 0 6px !important;
  font-size: clamp(28px, 2.8vw, 38px) !important;
  line-height: 1.05 !important;
}
body.app-body .page-header p,
body.app-body .sales-title-block p,
body.app-body .expenses-header p,
body.app-body .imports-header p,
body.app-body .dre-hero-copy p,
body.app-body .page-hero p { color: var(--bvms-muted) !important; margin: 0 !important; }

/* ---------- Dashboard: reorganização inferior ---------- */
body.app-body .dashboard-exec,
body.app-body .dashboard-exec-clean,
body.app-body .ux-page,
body.app-body .sales-page,
body.app-body .expenses-page,
body.app-body .imports-page,
body.app-body .dre-page-clean,
body.app-body .bvms-products-page { display: grid !important; gap: 18px !important; }

body.app-body .dashboard-top-row,
body.app-body .dashboard-brief {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 220px !important;
  gap: 14px !important;
  align-items: stretch !important;
  padding: 16px !important;
  border-radius: 20px !important;
  background: var(--bvms-surface) !important;
  border: 1px solid var(--bvms-border) !important;
  box-shadow: var(--bvms-shadow) !important;
}
body.app-body .dashboard-top-row > div:first-child,
body.app-body .dashboard-brief-main {
  border-radius: 18px !important;
  padding: 22px !important;
  background: linear-gradient(135deg, color-mix(in srgb, var(--bvms-primary) 7%, var(--bvms-surface)), color-mix(in srgb, var(--bvms-success) 4%, var(--bvms-surface))) !important;
  border: 1px solid var(--bvms-border) !important;
}
body.app-body .dashboard-top-row h1 { margin: 8px 0 5px !important; font-size: clamp(30px, 3vw, 42px) !important; }
body.app-body .dashboard-actions { display: flex !important; gap: 10px !important; margin-top: 14px !important; flex-wrap: wrap !important; }

body.app-body .bvms-period-widget-dashboard,
body.app-body .dashboard-period-pill { min-width: 0 !important; }
body.app-body .bvms-period-summary,
body.app-body .dashboard-period-pill {
  width: 100% !important;
  min-height: 110px !important;
  padding: 16px !important;
  border-radius: 16px !important;
  border: 1px solid var(--bvms-border) !important;
  background: var(--bvms-surface) !important;
  color: var(--bvms-text) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  box-shadow: none !important;
}
body.app-body .bvms-period-summary i,
body.app-body .dashboard-period-pill i { width: 40px; height: 40px; border-radius: 13px; display: grid; place-items: center; background: linear-gradient(135deg, #2563eb, #14b8a6); color: #fff; font-style: normal; }

body.app-body .erp-data-flow { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 12px !important; }
body.app-body .erp-flow-card {
  padding: 16px !important;
  border-radius: 16px !important;
  background: var(--bvms-surface) !important;
  border: 1px solid var(--bvms-border) !important;
  box-shadow: var(--bvms-shadow) !important;
}
body.app-body .erp-flow-card small { color: var(--bvms-muted) !important; }
body.app-body .erp-flow-card strong { display: inline; color: var(--bvms-text) !important; font-size: 1rem !important; }
body.app-body .erp-flow-card span { color: var(--bvms-text-soft) !important; }

body.app-body .dashboard-alert-strip,
body.app-body .dashboard-alert-strip-clean {
  padding: 14px !important;
  border-radius: 18px !important;
  background: var(--bvms-surface) !important;
  color: var(--bvms-text) !important;
  border: 1px solid var(--bvms-border) !important;
  box-shadow: var(--bvms-shadow) !important;
}
body.app-body .dashboard-alert-inline-list { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 10px !important; }
body.app-body .dashboard-alert-inline { display: grid !important; grid-template-columns: 36px 1fr auto !important; gap: 10px !important; align-items: start !important; padding: 12px !important; border-radius: 14px !important; background: var(--bvms-surface-2) !important; border: 1px solid var(--bvms-border) !important; }
body.app-body .dashboard-alert-inline > span { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 12px; background: var(--bvms-primary-soft); }
body.app-body .dashboard-alert-inline small, body.app-body .dashboard-alert-inline em { display: block; color: var(--bvms-muted) !important; font-size: .82rem; }
body.app-body .dashboard-alert-inline b { align-self: start; padding: 4px 8px; border-radius: 999px; background: var(--bvms-primary-soft); color: var(--bvms-primary); font-size: .72rem; }
body.app-body .dashboard-alert-inline-danger { background: var(--bvms-danger-soft) !important; border-color: color-mix(in srgb, var(--bvms-danger) 26%, transparent) !important; }
body.app-body .dashboard-alert-inline-warning { background: var(--bvms-warning-soft) !important; border-color: color-mix(in srgb, var(--bvms-warning) 26%, transparent) !important; }

body.app-body .dash-main-grid { display: grid !important; grid-template-columns: minmax(0, 2.2fr) minmax(280px, .8fr) !important; gap: 18px !important; }
body.app-body .dash-big-card,
body.app-body .dash-progress-card {
  min-height: 220px !important;
  border-radius: 20px !important;
  padding: 24px !important;
  position: relative !important;
  overflow: hidden !important;
  border: 1px solid var(--bvms-border) !important;
  box-shadow: var(--bvms-shadow) !important;
}
body.app-body .dash-big-card { background: linear-gradient(135deg, rgba(34,197,94,.92), rgba(20,184,166,.90)) !important; color: #052e16 !important; }
body.app-body .dash-big-card.negative { background: linear-gradient(135deg, #fecaca, #f87171) !important; color: #450a0a !important; }
body.app-body .dash-big-card h2 { color: inherit !important; font-size: clamp(42px, 5vw, 68px) !important; margin: 18px 0 !important; }
body.app-body .dash-big-card span, body.app-body .dash-big-card p { color: inherit !important; }
body.app-body .dash-progress-card { background: var(--bvms-surface) !important; color: var(--bvms-text) !important; display: grid; place-items: center; text-align: center; }

body.app-body .dash-metrics-grid,
body.app-body .dash-fixed-metrics { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 14px !important; }
body.app-body .dash-metric,
body.app-body .dash-mini {
  padding: 17px !important;
  border-radius: 18px !important;
  background: var(--bvms-surface) !important;
  border: 1px solid var(--bvms-border) !important;
  box-shadow: var(--bvms-shadow) !important;
}
body.app-body .dash-metric span,
body.app-body .dash-mini span { display:block; color: var(--bvms-muted) !important; font-weight: 700; font-size: .82rem; }
body.app-body .dash-metric strong,
body.app-body .dash-mini strong { display:block; margin-top:8px; color: var(--bvms-text) !important; font-size: 1.45rem; }

/* Parte inferior do dashboard: evita seis colunas espremidas */
body.app-body .dashboard-sortable-area {
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  gap: 14px !important;
  align-items: stretch !important;
}
body.app-body .dashboard-sortable-area .dash-panel,
body.app-body .dashboard-sortable-area .dash-mini {
  grid-column: span 4 !important;
  min-height: 210px !important;
}
body.app-body .dashboard-sortable-area .dashboard-wide,
body.app-body .dashboard-sortable-area .dash-panel-large {
  grid-column: span 8 !important;
}
body.app-body .dash-panel-header { display: flex !important; align-items: flex-start !important; justify-content: space-between !important; gap: 12px !important; margin-bottom: 12px !important; }
body.app-body .dash-panel-header span { display: inline-flex; padding: 5px 10px; border-radius: 999px; background: var(--bvms-primary-soft); color: var(--bvms-primary) !important; font-size: .74rem; font-weight: 760; }
body.app-body .dash-panel-header h2 { margin: 7px 0 0 !important; font-size: 1.1rem !important; }
body.app-body .dash-chart-box { min-height: 230px !important; border-radius: 16px !important; background: linear-gradient(180deg, color-mix(in srgb, var(--bvms-primary) 5%, transparent), transparent) !important; border: 1px dashed var(--bvms-border) !important; padding: 10px !important; }
body.app-body .dash-empty { display: grid; place-items: center; min-height: 130px; border: 1px dashed var(--bvms-border-2); border-radius: 16px; color: var(--bvms-muted); text-align: center; padding: 18px; font-weight: 700; }

/* ---------- Sales ---------- */
body.app-body .sales-header-actions { display:flex; gap:10px; flex-wrap:wrap; }
body.app-body .ux-guide-grid { display:grid !important; grid-template-columns: repeat(4, minmax(0,1fr)) !important; gap:12px !important; }
body.app-body .ux-guide-card { display:flex; gap:12px; align-items:flex-start; padding:14px !important; border-radius:16px !important; background:var(--bvms-surface) !important; border:1px solid var(--bvms-border) !important; box-shadow:var(--bvms-shadow) !important; }
body.app-body .ux-guide-icon { width:36px; height:36px; flex:0 0 36px; display:grid; place-items:center; border-radius:12px; background:var(--bvms-primary-soft); color:var(--bvms-primary); }
body.app-body .ux-guide-card strong { display:block; margin-bottom:4px; }
body.app-body .ux-guide-card span { color:var(--bvms-muted) !important; font-size:.86rem; }
body.app-body .sales-summary-grid,
body.app-body .expenses-summary-grid,
body.app-body .dre-kpi-grid,
body.app-body .stat-grid { display:grid !important; grid-template-columns: repeat(4, minmax(0,1fr)) !important; gap:14px !important; }
body.app-body .sales-summary-grid { grid-template-columns: repeat(6, minmax(0,1fr)) !important; }
body.app-body .sales-period-strip { display:grid !important; grid-template-columns: repeat(4, minmax(0,1fr)) !important; gap:14px !important; }
body.app-body .sales-period-strip > div { padding:17px; border-radius:16px; background:var(--bvms-surface); border:1px solid var(--bvms-border); box-shadow:var(--bvms-shadow); }
body.app-body .sales-summary-card span,
body.app-body .expenses-summary-card span { display:block; color:var(--bvms-muted) !important; font-weight:700; margin-bottom:8px; }
body.app-body .sales-summary-card strong,
body.app-body .expenses-summary-card strong { color:var(--bvms-text) !important; font-size:1.25rem; }
body.app-body .sales-table { min-width: 1100px; }
body.app-body .profit-positive { color: var(--bvms-success) !important; font-weight:760; }
body.app-body .profit-negative { color: var(--bvms-danger) !important; font-weight:760; }

/* ---------- Products ---------- */
body.app-body .bvms-products-page .stat-grid { grid-template-columns: repeat(4, minmax(0,1fr)) !important; }
body.app-body .bvms-products-page .filter-grid { display:grid !important; grid-template-columns: 1.3fr 1fr 1fr 1fr 1fr 1fr auto !important; gap:12px !important; align-items:end !important; }
body.app-body .bvms-products-page .cost-filter-grid { display:grid !important; grid-template-columns: 1fr 1fr 1.3fr auto auto !important; gap:12px !important; align-items:end !important; }
body.app-body .bvms-products-page .cost-mini-grid { display:grid !important; grid-template-columns: repeat(5, minmax(0,1fr)) !important; gap:12px !important; }
body.app-body .bvms-products-page .cost-mini-card { padding:14px; border-radius:16px; background:var(--bvms-surface-2); border:1px solid var(--bvms-border); }
body.app-body .bvms-products-page .product-table { min-width: 1180px; }
body.app-body .product-name-main { color:var(--bvms-text) !important; font-weight:760; }
body.app-body .product-name-sub { color:var(--bvms-muted) !important; font-size:.82rem; }
body.app-body .bar-row { display:grid; grid-template-columns:90px 1fr 100px; gap:10px; align-items:center; margin:8px 0; }
body.app-body .bar-track { height:9px; background:var(--bvms-surface-3); border-radius:999px; overflow:hidden; }
body.app-body .bar-fill { height:100%; border-radius:999px; background:linear-gradient(90deg,#2563eb,#14b8a6); }

/* ---------- Imports ---------- */
body.app-body .smart-steps { display:grid !important; grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap:12px !important; }
body.app-body .step-card { padding:14px 16px; border-radius:16px; background:var(--bvms-surface); border:1px solid var(--bvms-border); display:flex; align-items:center; gap:10px; color:var(--bvms-text); }
body.app-body .step-card span { width:32px; height:32px; border-radius:999px; display:grid; place-items:center; background:var(--bvms-surface-3); color:var(--bvms-text); font-weight:760; }
body.app-body .step-card.active { border-color:color-mix(in srgb,var(--bvms-primary) 45%,transparent); }
body.app-body .step-card.active span { background:var(--bvms-primary); color:#fff; }
body.app-body .smart-upload-card { display:grid !important; grid-template-columns: minmax(280px,.8fr) minmax(0,1.2fr) !important; gap:22px !important; padding:26px !important; }
body.app-body .smart-file-drop,
body.app-body .file-drop { min-height:120px; display:grid; place-items:center; text-align:center; border:2px dashed var(--bvms-border-2) !important; border-radius:18px; background:var(--bvms-surface-2) !important; color:var(--bvms-text) !important; padding:18px; cursor:pointer; }
body.app-body .upload-form { display:grid; gap:12px; }
body.app-body .imports-info-grid,
body.app-body .preview-metrics { display:grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap:14px !important; }
body.app-body .preview-metrics { grid-template-columns: repeat(5,minmax(0,1fr)) !important; }
body.app-body .preview-metrics > div { padding:13px; border-radius:14px; background:var(--bvms-surface-2); border:1px solid var(--bvms-border); }
body.app-body .history-list { display:grid; gap:10px; }
body.app-body .history-item { display:grid !important; grid-template-columns: minmax(0,1fr) auto auto !important; gap:14px !important; align-items:center !important; padding:14px !important; }
body.app-body .history-main { display:flex; gap:12px; align-items:center; min-width:0; }
body.app-body .history-icon { width:46px; height:46px; display:grid; place-items:center; border-radius:14px; background:var(--bvms-info-soft); color:var(--bvms-info); font-weight:760; font-size:.75rem; }
body.app-body .history-stats { display:flex; gap:8px; flex-wrap:wrap; }
body.app-body .history-stats span { padding:6px 9px; border-radius:999px; background:var(--bvms-surface-2); border:1px solid var(--bvms-border); color:var(--bvms-text-soft); font-size:.78rem; }
body.app-body .history-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
body.app-body .preview-table-wrap { overflow:auto; max-height:460px; border-radius:16px; border:1px solid var(--bvms-border); }
body.app-body .column-map-button { width:100%; min-width:120px; display:grid !important; gap:4px; background:transparent !important; border:0 !important; padding:0 !important; color:inherit !important; }
body.app-body .column-map-button small { color:var(--bvms-muted) !important; }

/* ---------- Expenses / DRE / Statement / Planning ---------- */
body.app-body .expenses-grid,
body.app-body .dre-content-grid { display:grid !important; grid-template-columns: minmax(0,1.25fr) minmax(300px,.75fr) !important; gap:18px !important; align-items:start !important; }
body.app-body .expenses-grid { grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr) !important; }
body.app-body .expenses-filter-form,
body.app-body .expense-form,
body.app-body .dre-filter-fields { display:grid !important; grid-template-columns: repeat(4,minmax(0,1fr)) !important; gap:12px !important; align-items:end !important; }
body.app-body .expense-form { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
body.app-body .expense-type-options { display:flex; gap:10px; flex-wrap:wrap; }
body.app-body .erp-dre-formula { display:grid; gap:8px; margin:16px 0; }
body.app-body .erp-dre-step { padding:12px; border-radius:14px; background:var(--bvms-surface-2); border:1px solid var(--bvms-border); }
body.app-body .dre-side-stack { display:grid; gap:18px; }
body.app-body .dre-table { min-width:720px; }
body.app-body .dre-ranking-list,
body.app-body .dre-ratio-list { display:grid; gap:10px; }
body.app-body .dre-ranking-item { padding:12px; border-radius:14px; background:var(--bvms-surface-2); border:1px solid var(--bvms-border); display:flex; justify-content:space-between; gap:12px; }
body.app-body .page-header + .card,
body.app-body .page-header + .row { margin-top: 0 !important; }
body.app-body .alert { padding:14px 16px; border-radius:14px; border:1px solid var(--bvms-border); background:var(--bvms-info-soft); color:var(--bvms-text); }
body.app-body .alert-info { background:var(--bvms-info-soft) !important; color:var(--bvms-info) !important; }
body.app-body .alert-warning { background:var(--bvms-warning-soft) !important; color:var(--bvms-warning) !important; }
body.app-body .alert-danger { background:var(--bvms-danger-soft) !important; color:var(--bvms-danger) !important; }
body.app-body .alert-success { background:var(--bvms-success-soft) !important; color:var(--bvms-success) !important; }

/* ---------- Modais ---------- */
body.app-body .bvms-modal,
body.app-body .import-modal,
body.app-body .bvms-modal-backdrop,
body.app-body .import-modal-backdrop { z-index: 3000; }
body.app-body .bvms-modal-backdrop,
body.app-body .import-modal { display:none; }
body.app-body .bvms-modal-backdrop.is-open,
body.app-body .import-modal.is-open { display:flex !important; position:fixed; inset:0; align-items:center; justify-content:center; background:rgba(15,23,42,.58); backdrop-filter:blur(4px); padding:18px; }
body.app-body .bvms-edit-modal,
body.app-body .import-modal-card,
body.app-body .bvms-modal-card { width:min(820px,100%); max-height:92vh; overflow:auto; border-radius:20px; background:var(--bvms-surface); color:var(--bvms-text); border:1px solid var(--bvms-border); box-shadow:0 28px 80px rgba(0,0,0,.25); }
body.app-body .modal-head,
body.app-body .modal-body,
body.app-body .modal-foot,
body.app-body .import-modal-header,
body.app-body .column-map-body,
body.app-body .column-map-actions { padding:18px 20px; }
body.app-body .modal-foot,
body.app-body .column-map-actions { display:flex; justify-content:flex-end; gap:10px; flex-wrap:wrap; border-top:1px solid var(--bvms-border); }
body.app-body .modal-grid { display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:12px; }

/* ---------- Responsivo ---------- */
@media (max-width: 1280px) {
  body.app-body .sales-summary-grid { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
  body.app-body .erp-data-flow { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
  body.app-body .dashboard-alert-inline-list { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  body.app-body .dashboard-sortable-area .dash-panel,
  body.app-body .dashboard-sortable-area .dash-mini { grid-column: span 6 !important; }
  body.app-body .dashboard-sortable-area .dashboard-wide,
  body.app-body .dashboard-sortable-area .dash-panel-large { grid-column: span 12 !important; }
  body.app-body .bvms-products-page .filter-grid { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
}
@media (max-width: 980px) {
  body.app-body .dashboard-top-row,
  body.app-body .dashboard-brief,
  body.app-body .smart-upload-card,
  body.app-body .expenses-grid,
  body.app-body .dre-content-grid { grid-template-columns: 1fr !important; }
  body.app-body .dash-main-grid,
  body.app-body .dash-metrics-grid,
  body.app-body .dash-fixed-metrics,
  body.app-body .sales-period-strip,
  body.app-body .sales-summary-grid,
  body.app-body .expenses-summary-grid,
  body.app-body .dre-kpi-grid,
  body.app-body .stat-grid,
  body.app-body .ux-guide-grid,
  body.app-body .imports-info-grid,
  body.app-body .preview-metrics,
  body.app-body .bvms-products-page .stat-grid,
  body.app-body .bvms-products-page .cost-mini-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.app-body .history-item { grid-template-columns: 1fr !important; }
}
@media (max-width: 700px) {
  body.app-body .page-content, body.app-body main.page-content { padding: 16px !important; }
  body.app-body .dashboard-top-row,
  body.app-body .sales-header-row,
  body.app-body .expenses-header,
  body.app-body .imports-header,
  body.app-body .page-hero { padding: 16px !important; }
  body.app-body .erp-data-flow,
  body.app-body .dashboard-alert-inline-list,
  body.app-body .dashboard-sortable-area,
  body.app-body .dash-main-grid,
  body.app-body .dash-metrics-grid,
  body.app-body .sales-summary-grid,
  body.app-body .sales-period-strip,
  body.app-body .ux-guide-grid,
  body.app-body .smart-steps,
  body.app-body .bvms-products-page .filter-grid,
  body.app-body .bvms-products-page .cost-filter-grid,
  body.app-body .bvms-products-page .cost-mini-grid,
  body.app-body .expenses-filter-form,
  body.app-body .expense-form,
  body.app-body .dre-filter-fields,
  body.app-body .modal-grid { grid-template-columns: 1fr !important; }
  body.app-body .dashboard-sortable-area .dash-panel,
  body.app-body .dashboard-sortable-area .dash-mini,
  body.app-body .dashboard-sortable-area .dashboard-wide,
  body.app-body .dashboard-sortable-area .dash-panel-large { grid-column: span 1 !important; }
}
html[data-theme="light"],
html.theme-light,
body.theme-light,
body.app-body:not(.theme-dark):not(.dark) {
    --mini-bg: #f4f7fb;
    --mini-surface: #ffffff;
    --mini-surface-2: #f8fbff;
    --mini-surface-3: #eef4fb;
    --mini-text: #0f172a;
    --mini-muted: #64748b;
    --mini-border: rgba(148, 163, 184, .22);
    --mini-shadow: 0 18px 48px rgba(15, 23, 42, .08);
    --mini-blue: #2563eb;
    --mini-cyan: #14b8a6;
    --mini-teal: #0ea5a4;
    --mini-purple: #7c3aed;
    --mini-green: #10b981;
    --mini-orange: #f59e0b;
    --mini-red: #ef4444;
    --mini-glow-blue: rgba(31, 131, 255, .20);
    --mini-glow-cyan: rgba(0, 199, 232, .18);
}

html[data-theme="dark"],
html.theme-dark,
body.theme-dark,
body.dark {
    --mini-bg: #06101e;
    --mini-surface: #0d1a2f;
    --mini-surface-2: #111f36;
    --mini-surface-3: #162942;
    --mini-text: #edf6ff;
    --mini-muted: #92a3bf;
    --mini-border: rgba(135, 176, 230, .17);
    --mini-shadow: 0 22px 60px rgba(0, 0, 0, .30);
    --mini-blue: #23a4ff;
    --mini-cyan: #14f1d9;
    --mini-teal: #0ee6c4;
    --mini-purple: #9b5cff;
    --mini-green: #16d69b;
    --mini-orange: #ffb14a;
    --mini-red: #ff5675;
    --mini-glow-blue: rgba(35, 164, 255, .23);
    --mini-glow-cyan: rgba(20, 241, 217, .18);
}

body.app-body .page-content:has(.bvms-dashboard-minimal),
body.app-body main.page-content:has(.bvms-dashboard-minimal) {
    background:
        radial-gradient(circle at 16% 0%, rgba(35, 164, 255, .12), transparent 28%),
        radial-gradient(circle at 78% 8%, rgba(20, 241, 217, .09), transparent 26%),
        var(--mini-bg) !important;
    color: var(--mini-text) !important;
    padding: 22px 24px 30px !important;
}

.bvms-dashboard-minimal,
.bvms-dashboard-minimal * {
    box-sizing: border-box;
}

.bvms-dashboard-minimal {
    color: var(--mini-text);
    display: grid;
    gap: 14px;
    font-family: Inter, "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, Arial, sans-serif;
    font-size: 14px;
}

.bvms-dashboard-minimal h1,
.bvms-dashboard-minimal h2,
.bvms-dashboard-minimal h3,
.bvms-dashboard-minimal p,
.bvms-dashboard-minimal span,
.bvms-dashboard-minimal small,
.bvms-dashboard-minimal strong,
.bvms-dashboard-minimal a,
.bvms-dashboard-minimal button {
    color: inherit;
}

.mini-dash-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
    align-items: end;
    padding: 18px;
    border: 1px solid var(--mini-border);
    border-radius: 24px;
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--mini-surface) 92%, transparent), color-mix(in srgb, var(--mini-surface-2) 90%, transparent));
    box-shadow: var(--mini-shadow);
}

.mini-eyebrow,
.mini-panel-head span {
    display: inline-flex;
    align-items: center;
    width: max-content;
    min-height: 24px;
    padding: 0 10px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--mini-blue) 13%, transparent);
    color: var(--mini-blue) !important;
    font-size: 12px;
    font-weight: 700;
}

.mini-title-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 8px;
}

.mini-dash-title h1 {
    margin: 0 !important;
    color: var(--mini-text) !important;
    font-size: clamp(28px, 3vw, 42px) !important;
    letter-spacing: -0.055em !important;
    line-height: 1.03 !important;
    font-weight: 760 !important;
}

.mini-dash-title p {
    margin: 8px 0 0 !important;
    color: var(--mini-muted) !important;
    max-width: 820px;
    font-size: 14px;
}

.mini-period-trigger {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 0 12px;
    border-radius: 14px;
    border: 1px solid var(--mini-border);
    background: var(--mini-surface-2);
    color: var(--mini-text);
    cursor: pointer;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .05);
}

.mini-period-trigger span {
    color: var(--mini-muted);
    font-size: 11px;
    font-weight: 650;
}

.mini-period-trigger strong {
    font-size: 13px;
    font-weight: 720;
}

.mini-period-trigger i {
    color: var(--mini-cyan);
}

.mini-module-tabs {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.mini-module-tabs a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 38px;
    padding: 0 12px;
    border-radius: 13px;
    border: 1px solid var(--mini-border);
    background: var(--mini-surface-2);
    text-decoration: none;
    color: var(--mini-text) !important;
    font-weight: 650;
    font-size: 13px;
}

.mini-module-tabs a:hover,
.mini-period-trigger:hover {
    border-color: color-mix(in srgb, var(--mini-blue) 45%, var(--mini-border));
    box-shadow: 0 0 0 3px var(--mini-glow-blue);
}

.mini-module-tabs a:nth-child(1) i { color: var(--mini-blue); }
.mini-module-tabs a:nth-child(2) i { color: var(--mini-purple); }
.mini-module-tabs a:nth-child(3) i { color: var(--mini-cyan); }
.mini-module-tabs a:nth-child(4) i { color: var(--mini-green); }
.mini-module-tabs a:nth-child(5) i { color: var(--mini-orange); }

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

.mini-kpi-card,
.mini-panel {
    border: 1px solid var(--mini-border);
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--mini-surface) 98%, transparent), color-mix(in srgb, var(--mini-surface-2) 96%, transparent));
    border-radius: 20px;
    box-shadow: var(--mini-shadow);
}

.mini-kpi-card {
    position: relative;
    overflow: hidden;
    min-height: 130px;
    padding: 15px;
}

.mini-kpi-card::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(circle at 18% 0%, var(--card-glow, var(--mini-glow-blue)), transparent 48%);
    opacity: .85;
}

.mini-kpi-card > * {
    position: relative;
    z-index: 1;
}

.mini-kpi-card span {
    display: block;
    color: var(--mini-muted) !important;
    font-size: 12px;
    font-weight: 680;
}

.mini-kpi-card strong {
    display: block;
    margin-top: 8px;
    color: var(--mini-text) !important;
    font-size: clamp(19px, 1.55vw, 25px);
    line-height: 1;
    font-weight: 780;
    letter-spacing: -0.04em;
}

.mini-kpi-card small {
    display: block;
    margin-top: 7px;
    color: var(--mini-muted) !important;
    font-size: 11px;
}

.mini-spark {
    height: 34px;
    margin-top: 10px;
}

.mini-spark canvas {
    width: 100% !important;
    height: 34px !important;
}

.accent-blue { --card-glow: rgba(35, 164, 255, .18); }
.accent-cyan { --card-glow: rgba(20, 241, 217, .16); }
.accent-purple { --card-glow: rgba(155, 92, 255, .16); }
.accent-orange { --card-glow: rgba(255, 177, 74, .16); }
.accent-green { --card-glow: rgba(22, 214, 155, .16); }
.accent-red { --card-glow: rgba(255, 86, 117, .16); }

.accent-ring {
    display: grid;
    grid-template-columns: 1fr 70px;
    gap: 10px;
    align-items: center;
}

.mini-ring {
    --p: 0;
    width: 66px;
    height: 66px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: conic-gradient(var(--mini-cyan) calc(var(--p) * 1%), color-mix(in srgb, var(--mini-muted) 18%, transparent) 0);
    box-shadow: 0 0 22px var(--mini-glow-cyan);
}

.mini-ring b {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--mini-surface);
    color: var(--mini-text);
    font-size: 13px;
}

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

.mini-panel {
    min-height: 220px;
    padding: 15px;
    color: var(--mini-text);
    overflow: hidden;
}

.mini-dre-flow { grid-column: span 4; }
.mini-evolution-panel { grid-column: span 5; }
.mini-cost-panel { grid-column: span 3; }
.mini-product-panel,
.mini-plan-panel,
.mini-alert-panel,
.mini-import-panel,
.mini-cash-panel,
.mini-goal-panel { grid-column: span 2; }

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

.mini-panel-head h2 {
    margin: 7px 0 0 !important;
    color: var(--mini-text) !important;
    font-size: 17px !important;
    letter-spacing: -0.035em !important;
    font-weight: 740 !important;
}

.mini-panel-head a,
.mini-panel-head small,
.mini-panel-head b {
    min-height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 10px;
    border-radius: 999px;
    background: var(--mini-surface-3);
    color: var(--mini-blue) !important;
    text-decoration: none;
    font-weight: 700;
    font-size: 12px;
    white-space: nowrap;
}

.mini-panel-head b {
    min-width: 28px;
    padding: 0;
    background: color-mix(in srgb, var(--mini-red) 18%, transparent);
    color: var(--mini-red) !important;
}

.mini-chart {
    min-height: 180px;
    width: 100%;
}

.mini-chart.tall {
    height: 230px;
}

.mini-chart.donut {
    height: 190px;
    width: 190px;
    max-width: 100%;
}

.mini-chart canvas {
    width: 100% !important;
    height: 100% !important;
}

.mini-dre-badges {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--mini-border);
}

.mini-dre-badges span {
    color: var(--mini-muted) !important;
    font-size: 11px;
    text-align: center;
}

.mini-dre-badges strong {
    display: block;
    color: var(--mini-text) !important;
    margin-top: 3px;
    font-size: 13px;
}

.mini-donut-layout {
    display: grid;
    grid-template-columns: 190px 1fr;
    gap: 12px;
    align-items: center;
}

.mini-cost-list {
    display: grid;
    gap: 10px;
}

.mini-cost-list span {
    display: grid;
    grid-template-columns: 10px 1fr;
    gap: 8px;
    color: var(--mini-muted) !important;
    font-size: 12px;
}

.mini-cost-list i {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    margin-top: 5px;
}

.mini-cost-list strong {
    display: block;
    color: var(--mini-text) !important;
    margin-top: 2px;
    font-size: 13px;
}

.c-purple { background: var(--mini-purple); }
.c-cyan { background: var(--mini-cyan); }
.c-orange { background: var(--mini-orange); }

.mini-product-bars,
.mini-alert-list,
.mini-progress-stack {
    display: grid;
    gap: 10px;
}

.mini-product-line div,
.mini-goal-line,
.mini-progress-stack div {
    display: grid;
    gap: 4px;
}

.mini-product-line div {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
}

.mini-product-line span,
.mini-progress-stack span,
.mini-goal-line span,
.mini-alert-item span,
.mini-two-cols span,
.mini-plan-table span {
    color: var(--mini-muted) !important;
    font-size: 12px;
    font-weight: 620;
}

.mini-product-line strong,
.mini-progress-stack strong,
.mini-goal-line strong,
.mini-two-cols strong,
.mini-plan-table strong {
    color: var(--mini-text) !important;
    font-size: 13px;
    font-weight: 720;
}

.mini-product-line em,
.mini-progress-stack em,
.mini-goal-line em {
    position: relative;
    display: block;
    width: 100%;
    height: 7px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--mini-muted) 16%, transparent);
    overflow: hidden;
}

.mini-product-line em i,
.mini-progress-stack em i,
.mini-goal-line em i {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--mini-blue), var(--mini-cyan));
    box-shadow: 0 0 16px var(--mini-glow-cyan);
}

.mini-plan-table {
    display: grid;
    gap: 8px;
}

.mini-plan-table div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 8px;
    align-items: center;
    padding: 10px;
    border-radius: 14px;
    background: var(--mini-surface-2);
}

.mini-plan-table em {
    color: var(--mini-green);
    font-style: normal;
    font-size: 12px;
    font-weight: 720;
}

.mini-alert-item {
    display: grid;
    grid-template-columns: 30px 1fr auto;
    gap: 10px;
    align-items: start;
    padding: 10px;
    border-radius: 14px;
    background: var(--mini-surface-2);
    border: 1px solid var(--mini-border);
}

.mini-alert-item i {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    font-style: normal;
    font-weight: 800;
}

.mini-alert-item strong {
    display: block;
    color: var(--mini-text) !important;
    font-size: 13px;
    font-weight: 720;
}

.mini-alert-item em {
    align-self: start;
    padding: 4px 7px;
    border-radius: 999px;
    font-style: normal;
    font-size: 10px;
    font-weight: 740;
}

.mini-alert-item.danger i,
.mini-alert-item.danger em { background: color-mix(in srgb, var(--mini-red) 18%, transparent); color: var(--mini-red); }
.mini-alert-item.warning i,
.mini-alert-item.warning em { background: color-mix(in srgb, var(--mini-orange) 18%, transparent); color: var(--mini-orange); }
.mini-alert-item.info i,
.mini-alert-item.info em { background: color-mix(in srgb, var(--mini-blue) 16%, transparent); color: var(--mini-blue); }
.mini-alert-item.success i,
.mini-alert-item.success em { background: color-mix(in srgb, var(--mini-green) 16%, transparent); color: var(--mini-green); }

.mini-empty-state {
    display: grid;
    place-items: center;
    min-height: 130px;
    padding: 18px;
    border-radius: 16px;
    background: var(--mini-surface-2);
    border: 1px dashed var(--mini-border);
    color: var(--mini-muted);
    text-align: center;
    font-weight: 650;
}

.mini-gauge {
    --p: 0;
    width: 138px;
    height: 74px;
    margin: 4px auto 16px;
    border-radius: 999px 999px 18px 18px;
    display: grid;
    place-items: end center;
    padding-bottom: 10px;
    background: conic-gradient(from 270deg, var(--mini-red) 0 25%, var(--mini-orange) 25% 48%, var(--mini-green) 48% calc(var(--p) * 1%), color-mix(in srgb, var(--mini-muted) 17%, transparent) 0 100%);
    box-shadow: 0 0 28px color-mix(in srgb, var(--mini-green) 22%, transparent);
}

.mini-gauge div {
    width: 88px;
    height: 52px;
    border-radius: 999px 999px 16px 16px;
    display: grid;
    place-items: center;
    background: var(--mini-surface);
}

.mini-gauge strong {
    color: var(--mini-text) !important;
    font-size: 20px;
    line-height: 1;
}

.mini-gauge span {
    color: var(--mini-muted) !important;
    font-size: 11px;
}

.mini-two-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.mini-two-cols span {
    padding: 10px;
    border-radius: 14px;
    background: var(--mini-surface-2);
}

.mini-panel-head small.good { color: var(--mini-green) !important; }
.mini-panel-head small.warn { color: var(--mini-orange) !important; }
.mini-panel-head small.bad { color: var(--mini-red) !important; }

.mini-goal-line small {
    color: var(--mini-muted) !important;
    font-size: 12px;
}

.mini-dash-footer {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    padding: 4px 6px 0;
    color: var(--mini-muted);
    font-size: 12px;
}

.mini-dash-footer button {
    border: 0;
    background: transparent;
    color: var(--mini-blue);
    cursor: pointer;
    font-weight: 700;
}

.mini-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: grid;
    place-items: center;
    padding: 22px;
    background: rgba(5, 12, 23, .52);
    backdrop-filter: blur(4px);
}

.mini-modal-overlay[hidden] {
    display: none !important;
}

.mini-period-modal {
    width: min(520px, 100%);
    border: 1px solid var(--mini-border);
    border-radius: 24px;
    background: var(--mini-surface);
    color: var(--mini-text);
    box-shadow: 0 32px 100px rgba(0, 0, 0, .28);
    overflow: hidden;
}

.mini-period-modal header {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    border-bottom: 1px solid var(--mini-border);
}

.mini-period-modal header span,
.mini-period-modal header small {
    display: block;
    color: var(--mini-muted);
    font-size: 12px;
    font-weight: 650;
}

.mini-period-modal header strong {
    display: block;
    margin: 4px 0;
    font-size: 21px;
    color: var(--mini-text);
}

.mini-period-modal header button {
    width: 36px;
    height: 36px;
    border-radius: 13px;
    border: 1px solid var(--mini-border);
    background: var(--mini-surface-2);
    color: var(--mini-text);
    cursor: pointer;
    font-size: 24px;
    line-height: 1;
}

.mini-period-form {
    display: grid;
    gap: 14px;
    padding: 18px 20px;
}

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

 .mini-period-tabs button,
.mini-btn {
    min-height: 42px;
    border-radius: 13px;
    border: 1px solid var(--mini-border);
    background: var(--mini-surface-2);
    color: var(--mini-text);
    cursor: pointer;
    font-weight: 800;
}

.mini-period-tabs button.active,
.mini-btn.primary {
    background: linear-gradient(135deg, var(--mini-blue), var(--mini-cyan));
    border-color: transparent;
    color: #ffffff !important;
    box-shadow: 0 12px 28px var(--mini-glow-blue);
}

.mini-btn.ghost {
    background: transparent;
    color: var(--mini-muted) !important;
}

.mini-period-fields {
    display: grid;
    gap: 8px;
}

.mini-period-fields.two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.mini-period-fields[hidden] {
    display: none !important;
}

.mini-period-fields label {
    color: var(--mini-muted) !important;
    font-size: 12px;
    font-weight: 800;
}

.mini-period-fields input,
.mini-period-fields select {
    width: 100%;
    min-height: 44px;
    border-radius: 13px;
    border: 1px solid var(--mini-border);
    background: var(--mini-surface-2);
    color: var(--mini-text);
    padding: 0 12px;
    outline: none;
}

.mini-period-fields input:focus,
.mini-period-fields select:focus {
    border-color: color-mix(in srgb, var(--mini-blue) 60%, var(--mini-border));
    box-shadow: 0 0 0 3px var(--mini-glow-blue);
}

.mini-period-form footer {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding-top: 4px;
}

/* =========================================================
   BVMS - Ajuste específico da parte inferior do Dashboard minimalista
========================================================= */
body.app-body .bvms-dashboard-minimal .mini-dashboard-grid {
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  gap: 14px !important;
  align-items: stretch !important;
}
body.app-body .bvms-dashboard-minimal .mini-panel {
  min-height: 215px !important;
}
body.app-body .bvms-dashboard-minimal .mini-evolution-panel,
body.app-body .bvms-dashboard-minimal .mini-dre-panel,
body.app-body .bvms-dashboard-minimal .mini-cost-panel {
  grid-column: span 4 !important;
}
body.app-body .bvms-dashboard-minimal .mini-product-panel,
body.app-body .bvms-dashboard-minimal .mini-plan-panel,
body.app-body .bvms-dashboard-minimal .mini-alert-panel,
body.app-body .bvms-dashboard-minimal .mini-import-panel,
body.app-body .bvms-dashboard-minimal .mini-cash-panel,
body.app-body .bvms-dashboard-minimal .mini-goal-panel {
  grid-column: span 4 !important;
}
@media (max-width: 1280px) {
  body.app-body .bvms-dashboard-minimal .mini-evolution-panel,
  body.app-body .bvms-dashboard-minimal .mini-dre-panel,
  body.app-body .bvms-dashboard-minimal .mini-cost-panel,
  body.app-body .bvms-dashboard-minimal .mini-product-panel,
  body.app-body .bvms-dashboard-minimal .mini-plan-panel,
  body.app-body .bvms-dashboard-minimal .mini-alert-panel,
  body.app-body .bvms-dashboard-minimal .mini-import-panel,
  body.app-body .bvms-dashboard-minimal .mini-cash-panel,
  body.app-body .bvms-dashboard-minimal .mini-goal-panel { grid-column: span 6 !important; }
}
@media (max-width: 760px) {
  body.app-body .bvms-dashboard-minimal .mini-dashboard-grid { grid-template-columns: 1fr !important; }
  body.app-body .bvms-dashboard-minimal .mini-panel { grid-column: span 1 !important; }
}

/* =========================================================
   BVMS - Ajustes produtos: seleção e exclusão
========================================================= */
.bulk-actions-clean {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 14px;
    padding: 10px 12px;
    border: 1px solid var(--v2-border, rgba(148,163,184,.22));
    border-radius: 14px;
    background: rgba(148, 163, 184, 0.06);
}
.actions-cell {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    white-space: nowrap;
}
.btn-danger-soft,
.btn-table-danger {
    border: 1px solid rgba(239, 68, 68, .35);
    color: #fecaca;
    background: rgba(239, 68, 68, .10);
    border-radius: 12px;
    font-weight: 800;
    cursor: pointer;
}
.btn-danger-soft {
    min-height: 38px;
    padding: 0 14px;
}
.btn-table-danger {
    min-height: 34px;
    padding: 0 10px;
}
html[data-theme="light"] .btn-danger-soft,
html[data-theme="light"] .btn-table-danger,
body.theme-light .btn-danger-soft,
body.theme-light .btn-table-danger {
    color: #b91c1c;
    background: #fff1f2;
    border-color: #fecaca;
}
.btn-danger-soft:hover,
.btn-table-danger:hover {
    background: #dc2626;
    border-color: #dc2626;
    color: #fff;
}
.product-checkbox,
#selectAllProducts {
    width: 18px !important;
    height: 18px !important;
    accent-color: var(--v2-primary, #2563eb);
}

/* =========================================================
   BVMS - Correção visual das telas clean (Vendas/ERP)
   Evita página sem CSS quando a view usa classes *-clean.
========================================================= */
body.app-body .sales-page-clean,
body.app-body .clean-page,
body.app-body .module-page-clean {
    display: grid !important;
    gap: 18px !important;
    width: 100% !important;
    max-width: 100% !important;
    color: var(--v2-text) !important;
}

body.app-body .page-hero-clean {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 18px !important;
    padding: 24px !important;
    border-radius: 24px !important;
    background: linear-gradient(135deg, color-mix(in srgb, var(--v2-primary) 7%, var(--v2-surface)), var(--v2-surface)) !important;
    border: 1px solid var(--v2-border) !important;
    box-shadow: var(--v2-shadow) !important;
}
body.app-body .page-hero-clean h1 {
    margin: 8px 0 8px !important;
    font-size: clamp(30px, 3vw, 44px) !important;
    line-height: 1.04 !important;
    letter-spacing: -0.04em !important;
    color: var(--v2-text) !important;
}
body.app-body .page-hero-clean p {
    margin: 0 !important;
    max-width: 820px !important;
    color: var(--v2-muted) !important;
    font-weight: 600 !important;
}
body.app-body .page-chip {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 28px !important;
    padding: 5px 10px !important;
    border-radius: 999px !important;
    background: var(--v2-primary-soft) !important;
    color: var(--v2-primary) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: .05em !important;
}
body.app-body .hero-actions-clean,
body.app-body .filter-actions-clean,
body.app-body .modal-actions {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
}

body.app-body .btn-primary-soft,
body.app-body .btn-secondary-soft,
body.app-body .btn-table {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    min-height: 40px !important;
    padding: 0 14px !important;
    border-radius: 13px !important;
    border: 1px solid transparent !important;
    font-weight: 900 !important;
    font-size: 14px !important;
    text-decoration: none !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease !important;
}
body.app-body .btn-primary-soft {
    background: linear-gradient(135deg, var(--v2-primary), #14b8a6) !important;
    color: #fff !important;
    box-shadow: 0 12px 24px rgba(37, 99, 235, .18) !important;
}
body.app-body .btn-secondary-soft {
    background: var(--v2-surface) !important;
    color: var(--v2-text) !important;
    border-color: var(--v2-border) !important;
}
body.app-body .btn-primary-soft:hover,
body.app-body .btn-secondary-soft:hover,
body.app-body .btn-table:hover {
    transform: translateY(-1px) !important;
}
body.app-body .btn-table {
    min-height: 34px !important;
    padding: 0 10px !important;
    background: var(--v2-soft) !important;
    color: var(--v2-text) !important;
    border-color: var(--v2-border) !important;
}
body.app-body .btn-table.danger {
    background: #fff1f2 !important;
    color: #be123c !important;
    border-color: #fecdd3 !important;
}
body.app-body.theme-dark .btn-table.danger,
body.app-body.dark .btn-table.danger {
    background: rgba(239,68,68,.12) !important;
    color: #fecaca !important;
    border-color: rgba(239,68,68,.28) !important;
}

body.app-body .filter-card-clean,
body.app-body .cost-alert-card,
body.app-body .table-card-clean {
    padding: 16px !important;
    border-radius: 22px !important;
    background: var(--v2-surface) !important;
    border: 1px solid var(--v2-border) !important;
    box-shadow: var(--v2-shadow) !important;
}
body.app-body .cost-alert-card {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 14px !important;
    background: #fff7ed !important;
    border-color: #fed7aa !important;
    color: #7c2d12 !important;
}
body.app-body.theme-dark .cost-alert-card,
body.app-body.dark .cost-alert-card {
    background: rgba(251,146,60,.12) !important;
    border-color: rgba(251,146,60,.28) !important;
    color: #fed7aa !important;
}
body.app-body .cost-alert-card p { margin: 4px 0 0 !important; }

body.app-body .bvms-period-summary {
    appearance: none !important;
    cursor: pointer !important;
    text-align: left !important;
}
body.app-body .bvms-period-summary small {
    display: block !important;
    margin-bottom: 5px !important;
    color: var(--v2-muted) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
}
body.app-body .bvms-period-summary strong {
    display: block !important;
    color: var(--v2-text) !important;
    font-size: 20px !important;
    line-height: 1.1 !important;
}
body.app-body .bvms-dynamic-filter-panel[hidden],
body.app-body [hidden] { display: none !important; }
body.app-body .bvms-dynamic-filter-panel {
    margin-top: 14px !important;
    animation: bvmsFilterOpen .16s ease both !important;
}
@keyframes bvmsFilterOpen {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

body.app-body .sales-period-tabs {
    display: flex !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
    margin: 0 0 14px !important;
}
body.app-body .sales-period-tab {
    min-height: 38px !important;
    padding: 0 13px !important;
    border: 1px solid var(--v2-border) !important;
    border-radius: 12px !important;
    background: var(--v2-soft) !important;
    color: var(--v2-text) !important;
    font-weight: 900 !important;
    cursor: pointer !important;
}
body.app-body .sales-period-tab.active {
    background: var(--v2-primary) !important;
    border-color: var(--v2-primary) !important;
    color: #fff !important;
}
body.app-body .filter-grid-clean,
body.app-body .modal-form-grid {
    display: grid !important;
    grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
    gap: 12px !important;
    align-items: end !important;
}
body.app-body .filter-grid-clean label,
body.app-body .modal-form-grid label {
    grid-column: span 3 !important;
    margin: 0 !important;
    color: var(--v2-text) !important;
    font-weight: 900 !important;
    font-size: 13px !important;
}
body.app-body .filter-grid-clean label:has(input[name="search"]) { grid-column: span 6 !important; }
body.app-body .filter-actions-clean { grid-column: span 3 !important; justify-content: flex-start !important; }
body.app-body .filter-grid-clean input,
body.app-body .filter-grid-clean select,
body.app-body .modal-form-grid input,
body.app-body .modal-form-grid select,
body.app-body .modal-form-grid textarea {
    width: 100% !important;
    min-height: 42px !important;
    margin-top: 7px !important;
    padding: 10px 12px !important;
    border-radius: 12px !important;
    border: 1px solid var(--v2-border) !important;
    background: var(--v2-surface) !important;
    color: var(--v2-text) !important;
    box-shadow: none !important;
}
body.app-body .filter-grid-clean input::placeholder { color: var(--v2-muted) !important; }

body.app-body .kpi-grid-clean {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 12px !important;
}
body.app-body .kpi-clean {
    min-height: 108px !important;
    padding: 16px !important;
    border-radius: 20px !important;
    background: var(--v2-surface) !important;
    border: 1px solid var(--v2-border) !important;
    box-shadow: var(--v2-shadow) !important;
}
body.app-body .kpi-clean span {
    display: block !important;
    color: var(--v2-muted) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
}
body.app-body .kpi-clean strong {
    display: block !important;
    margin-top: 10px !important;
    color: var(--v2-text) !important;
    font-size: clamp(20px, 2vw, 28px) !important;
    line-height: 1.1 !important;
}
body.app-body .kpi-clean.warning { border-color: #f59e0b !important; background: #fffbeb !important; }
body.app-body.theme-dark .kpi-clean.warning,
body.app-body.dark .kpi-clean.warning { background: rgba(245,158,11,.12) !important; }

body.app-body .table-card-head {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 12px !important;
    margin-bottom: 12px !important;
}
body.app-body .table-card-head h2 {
    margin: 0 0 4px !important;
    color: var(--v2-text) !important;
    font-size: 24px !important;
    letter-spacing: -.03em !important;
}
body.app-body .table-card-head p {
    margin: 0 !important;
    color: var(--v2-muted) !important;
    font-weight: 700 !important;
}
body.app-body .table-responsive {
    width: 100% !important;
    overflow-x: auto !important;
    border-radius: 18px !important;
    border: 1px solid var(--v2-border) !important;
}
body.app-body .erp-table {
    width: 100% !important;
    min-width: 1180px !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    margin: 0 !important;
    background: var(--v2-surface) !important;
    color: var(--v2-text) !important;
}
body.app-body .erp-table th,
body.app-body .erp-table td {
    padding: 14px 14px !important;
    border-bottom: 1px solid var(--v2-border) !important;
    vertical-align: middle !important;
    white-space: nowrap !important;
}
body.app-body .erp-table th {
    background: var(--v2-soft) !important;
    color: var(--v2-muted) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
    letter-spacing: .05em !important;
}
body.app-body .erp-table td strong { color: var(--v2-text) !important; }
body.app-body .erp-table td small {
    display: block !important;
    margin-top: 3px !important;
    color: var(--v2-muted) !important;
    font-size: 12px !important;
}
body.app-body .table-chip,
body.app-body .status-ok,
body.app-body .status-warning {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 26px !important;
    padding: 3px 9px !important;
    border-radius: 999px !important;
    font-weight: 900 !important;
    font-size: 12px !important;
}
body.app-body .table-chip { background: var(--v2-primary-soft) !important; color: var(--v2-primary) !important; }
body.app-body .status-ok { background: #dcfce7 !important; color: #166534 !important; }
body.app-body .status-warning { background: #fef3c7 !important; color: #92400e !important; }
body.app-body .text-profit { color: #16a34a !important; }
body.app-body .text-loss { color: #dc2626 !important; }
body.app-body .muted-small { color: var(--v2-muted) !important; font-size: 12px !important; font-weight: 700 !important; }

body.app-body .pagination-clean {
    display: flex !important;
    gap: 8px !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex-wrap: wrap !important;
    margin-top: 14px !important;
}
body.app-body .pagination-clean a {
    display: inline-flex !important;
    min-width: 38px !important;
    min-height: 38px !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 12px !important;
    border-radius: 12px !important;
    border: 1px solid var(--v2-border) !important;
    background: var(--v2-surface) !important;
    color: var(--v2-text) !important;
    text-decoration: none !important;
    font-weight: 900 !important;
}
body.app-body .pagination-clean a.active {
    background: var(--v2-primary) !important;
    border-color: var(--v2-primary) !important;
    color: #fff !important;
}

body.app-body .simple-modal[hidden] { display: none !important; }
body.app-body .simple-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2000 !important;
    display: grid !important;
    place-items: center !important;
    padding: 20px !important;
    background: rgba(15,23,42,.58) !important;
    backdrop-filter: blur(6px) !important;
}
body.app-body .simple-modal-card {
    width: min(560px, 100%) !important;
    max-height: 90vh !important;
    overflow: auto !important;
    position: relative !important;
    padding: 22px !important;
    border-radius: 22px !important;
    background: var(--v2-surface) !important;
    color: var(--v2-text) !important;
    border: 1px solid var(--v2-border) !important;
    box-shadow: 0 24px 80px rgba(15,23,42,.28) !important;
}
body.app-body .simple-modal-card.wide { width: min(980px, 100%) !important; }
body.app-body .simple-modal-card h3 { margin: 0 0 6px !important; color: var(--v2-text) !important; }
body.app-body .simple-modal-card p { margin: 0 0 16px !important; color: var(--v2-muted) !important; }
body.app-body .simple-modal-close {
    position: absolute !important;
    top: 12px !important;
    right: 12px !important;
    width: 38px !important;
    height: 38px !important;
    border: 1px solid var(--v2-border) !important;
    border-radius: 12px !important;
    background: var(--v2-soft) !important;
    color: var(--v2-text) !important;
    font-size: 24px !important;
    cursor: pointer !important;
}
body.app-body .manual-sale-form .check-line {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}
body.app-body .manual-sale-form .check-line input {
    width: 18px !important;
    min-height: 18px !important;
    margin: 0 !important;
}

@media (max-width: 1200px) {
    body.app-body .kpi-grid-clean { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
    body.app-body .filter-grid-clean label,
    body.app-body .modal-form-grid label { grid-column: span 4 !important; }
    body.app-body .filter-grid-clean label:has(input[name="search"]) { grid-column: span 8 !important; }
}
@media (max-width: 900px) {
    body.app-body .page-hero-clean { flex-direction: column !important; }
    body.app-body .hero-actions-clean { justify-content: flex-start !important; }
    body.app-body .kpi-grid-clean { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    body.app-body .filter-grid-clean label,
    body.app-body .filter-grid-clean label:has(input[name="search"]),
    body.app-body .modal-form-grid label,
    body.app-body .filter-actions-clean { grid-column: 1 / -1 !important; }
}
@media (max-width: 640px) {
    body.app-body main.page-content { padding: 18px 14px !important; }
    body.app-body .kpi-grid-clean { grid-template-columns: 1fr !important; }
    body.app-body .page-hero-clean,
    body.app-body .filter-card-clean,
    body.app-body .table-card-clean { padding: 16px !important; border-radius: 18px !important; }
}


/* =========================================================
   BVMS ERP - HOTFIX UI Produtos / Margem / Categorias
   Corrige telas que ficaram cruas ou com tabela escura fora do tema.
   Mantém o visual limpo sem alterar regra de negócio.
========================================================= */
body.app-body .products-cost-page,
body.app-body .product-margin-page,
body.app-body .category-management-page {
  width: 100% !important;
  max-width: 100% !important;
  color: var(--bvms-text, #0f172a) !important;
}

body.app-body .products-cost-page > *,
body.app-body .product-margin-page > *,
body.app-body .category-management-page > * {
  max-width: 100% !important;
}

body.app-body .products-cost-page .page-hero-clean,
body.app-body .category-management-page .page-header,
body.app-body .product-margin-page .page-header {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 18px !important;
  margin: 0 0 22px !important;
  padding: 24px !important;
  overflow: hidden !important;
  border-radius: 24px !important;
  border: 1px solid var(--bvms-border, #dbe3ef) !important;
  background: linear-gradient(135deg, color-mix(in srgb, var(--bvms-primary, #2563eb) 8%, var(--bvms-surface, #fff)), var(--bvms-surface, #fff)) !important;
  color: var(--bvms-text, #0f172a) !important;
  box-shadow: var(--bvms-shadow, 0 12px 30px rgba(15,23,42,.075)) !important;
}

body.app-body .products-cost-page h1,
body.app-body .category-management-page h1,
body.app-body .product-margin-page h1 {
  margin: 8px 0 8px !important;
  color: var(--bvms-text, #0f172a) !important;
  font-size: clamp(28px, 3vw, 42px) !important;
  line-height: 1.05 !important;
  letter-spacing: -.055em !important;
}

body.app-body .products-cost-page h2,
body.app-body .category-management-page h2,
body.app-body .product-margin-page h2,
body.app-body .products-cost-page h4,
body.app-body .category-management-page h4,
body.app-body .product-margin-page h4 {
  color: var(--bvms-text, #0f172a) !important;
  letter-spacing: -.035em !important;
}

body.app-body .products-cost-page p,
body.app-body .category-management-page p,
body.app-body .product-margin-page p {
  color: var(--bvms-muted, #64748b) !important;
  line-height: 1.55 !important;
}

body.app-body .products-cost-page .filter-card-clean,
body.app-body .products-cost-page .table-card-clean,
body.app-body .products-cost-page .cost-flow-card,
body.app-body .products-cost-page .cost-alert-card,
body.app-body .category-management-page .card,
body.app-body .product-margin-page .panel {
  margin-bottom: 22px !important;
  padding: 22px !important;
  border-radius: 22px !important;
  border: 1px solid var(--bvms-border, #dbe3ef) !important;
  background: var(--bvms-surface, #ffffff) !important;
  color: var(--bvms-text, #0f172a) !important;
  box-shadow: var(--bvms-shadow, 0 12px 30px rgba(15,23,42,.075)) !important;
}

body.app-body .products-cost-page .cost-flow-card {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 12px !important;
}
body.app-body .products-cost-page .cost-flow-card > div {
  padding: 14px !important;
  border-radius: 16px !important;
  background: var(--bvms-surface-2, #f8fafc) !important;
  border: 1px solid var(--bvms-border, #dbe3ef) !important;
}
body.app-body .products-cost-page .cost-flow-card strong,
body.app-body .products-cost-page .cost-flow-card span {
  display: block !important;
}
body.app-body .products-cost-page .cost-flow-card span {
  margin-top: 4px !important;
  color: var(--bvms-muted, #64748b) !important;
  font-size: .85rem !important;
}

body.app-body .products-cost-page .filter-grid-clean,
body.app-body .product-margin-page .filter-form {
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  gap: 14px !important;
  align-items: end !important;
}
body.app-body .products-cost-page .filter-grid-clean label {
  grid-column: span 3 !important;
  margin: 0 !important;
}
body.app-body .products-cost-page .filter-grid-clean label:first-of-type {
  grid-column: span 6 !important;
}
body.app-body .products-cost-page .filter-actions-clean,
body.app-body .product-margin-page .filter-form button {
  grid-column: span 3 !important;
}
body.app-body .product-margin-page .filter-form label,
body.app-body .product-margin-page .filter-form input {
  grid-column: span 4 !important;
}

body.app-body .products-cost-page input,
body.app-body .products-cost-page select,
body.app-body .products-cost-page textarea,
body.app-body .category-management-page input,
body.app-body .category-management-page select,
body.app-body .category-management-page textarea,
body.app-body .product-margin-page input,
body.app-body .product-margin-page select,
body.app-body .product-margin-page textarea {
  width: 100% !important;
  min-height: 44px !important;
  border-radius: 14px !important;
  border: 1px solid var(--bvms-border-2, #cbd5e1) !important;
  background: var(--bvms-surface, #fff) !important;
  color: var(--bvms-text, #0f172a) !important;
  padding: 10px 13px !important;
  box-shadow: none !important;
}

body.app-body .products-cost-page input[type="checkbox"],
body.app-body .category-management-page input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  min-height: 18px !important;
  padding: 0 !important;
  display: inline-block !important;
  vertical-align: middle !important;
  accent-color: var(--bvms-primary, #2563eb) !important;
}

body.app-body .products-cost-page .check-line,
body.app-body .category-management-page .form-check {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  min-height: 32px !important;
  margin: 0 !important;
}

body.app-body .products-cost-page .btn-primary-soft,
body.app-body .products-cost-page .btn-secondary-soft,
body.app-body .products-cost-page .btn-danger-soft,
body.app-body .category-management-page .btn,
body.app-body .product-margin-page .btn-primary,
body.app-body .product-margin-page button[type="submit"] {
  min-height: 40px !important;
  width: auto !important;
  margin: 0 !important;
  padding: 10px 14px !important;
  border-radius: 14px !important;
  border: 1px solid transparent !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  font-weight: 800 !important;
}
body.app-body .products-cost-page .btn-primary-soft,
body.app-body .category-management-page .btn-primary,
body.app-body .product-margin-page .btn-primary,
body.app-body .product-margin-page button[type="submit"] {
  background: linear-gradient(135deg, #2563eb, #14b8a6) !important;
  color: #fff !important;
  border-color: transparent !important;
}
body.app-body .products-cost-page .btn-secondary-soft,
body.app-body .category-management-page .btn-outline-primary,
body.app-body .category-management-page .btn-outline-secondary {
  background: var(--bvms-surface-2, #f8fafc) !important;
  color: var(--bvms-primary, #2563eb) !important;
  border-color: var(--bvms-border, #dbe3ef) !important;
}
body.app-body .products-cost-page .btn-danger-soft,
body.app-body .category-management-page .btn-outline-danger,
body.app-body .category-management-page .btn-danger {
  background: var(--bvms-danger-soft, #fef2f2) !important;
  color: var(--bvms-danger, #dc2626) !important;
  border-color: color-mix(in srgb, var(--bvms-danger, #dc2626) 28%, transparent) !important;
}

body.app-body .products-cost-page .bulk-actions-clean,
body.app-body .category-management-page .d-flex.flex-wrap.align-items-center.justify-content-between {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
  margin-bottom: 14px !important;
}

body.app-body .products-cost-page .table-responsive,
body.app-body .category-management-page .table-responsive,
body.app-body .product-margin-page .table-responsive {
  width: 100% !important;
  overflow-x: auto !important;
  border: 1px solid var(--bvms-border, #dbe3ef) !important;
  border-radius: 18px !important;
  background: var(--bvms-surface, #fff) !important;
}
body.app-body .product-margin-page .panel > table.table {
  display: table !important;
  overflow: hidden !important;
  border: 1px solid var(--bvms-border, #dbe3ef) !important;
  border-radius: 18px !important;
}

body.app-body .products-cost-page table,
body.app-body .products-cost-page .erp-table,
body.app-body .category-management-page table,
body.app-body .category-management-page .table,
body.app-body .product-margin-page table,
body.app-body .product-margin-page .table {
  width: 100% !important;
  margin: 0 !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  background: var(--bvms-surface, #fff) !important;
  color: var(--bvms-text, #0f172a) !important;
}
body.app-body .products-cost-page .erp-table { min-width: 1180px !important; }
body.app-body .category-management-page .table { min-width: 760px !important; }
body.app-body .product-margin-page .table { min-width: 860px !important; margin-top: 12px !important; }

body.app-body .products-cost-page table thead,
body.app-body .products-cost-page table th,
body.app-body .category-management-page table thead,
body.app-body .category-management-page table th,
body.app-body .product-margin-page table thead,
body.app-body .product-margin-page table th {
  background: var(--bvms-surface-3, #eef4fb) !important;
  color: var(--bvms-text-soft, #334155) !important;
  border-bottom: 1px solid var(--bvms-border, #dbe3ef) !important;
  padding: 13px 14px !important;
  font-size: .77rem !important;
  line-height: 1.25 !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: .055em !important;
  white-space: nowrap !important;
}
body.app-body .products-cost-page table td,
body.app-body .category-management-page table td,
body.app-body .product-margin-page table td {
  background: var(--bvms-surface, #fff) !important;
  color: var(--bvms-text, #0f172a) !important;
  border-bottom: 1px solid var(--bvms-border, #dbe3ef) !important;
  padding: 14px !important;
  vertical-align: middle !important;
  white-space: nowrap !important;
}
body.app-body .products-cost-page table tbody tr:hover td,
body.app-body .category-management-page table tbody tr:hover td,
body.app-body .product-margin-page table tbody tr:hover td {
  background: color-mix(in srgb, var(--bvms-primary, #2563eb) 5%, var(--bvms-surface, #fff)) !important;
}

body.app-body .products-cost-page table td strong,
body.app-body .category-management-page table td strong,
body.app-body .product-margin-page table td strong {
  color: var(--bvms-text, #0f172a) !important;
}
body.app-body .products-cost-page table td small,
body.app-body .category-management-page table td small,
body.app-body .product-margin-page table td small {
  color: var(--bvms-muted, #64748b) !important;
}

body.app-body .products-cost-page .kpi-grid-clean {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 14px !important;
  margin-bottom: 22px !important;
}
body.app-body .products-cost-page .kpi-clean {
  padding: 18px !important;
  border-radius: 20px !important;
  background: var(--bvms-surface, #fff) !important;
  border: 1px solid var(--bvms-border, #dbe3ef) !important;
  box-shadow: var(--bvms-shadow, 0 12px 30px rgba(15,23,42,.075)) !important;
}
body.app-body .products-cost-page .kpi-clean span {
  color: var(--bvms-muted, #64748b) !important;
}
body.app-body .products-cost-page .kpi-clean strong {
  color: var(--bvms-text, #0f172a) !important;
}

body.app-body .products-cost-page .erp-tabs {
  display: flex !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
  margin: 0 0 16px !important;
}
body.app-body .products-cost-page .erp-tabs a {
  padding: 10px 14px !important;
  border-radius: 999px !important;
  border: 1px solid var(--bvms-border, #dbe3ef) !important;
  color: var(--bvms-text-soft, #334155) !important;
  background: var(--bvms-surface, #fff) !important;
  text-decoration: none !important;
  font-weight: 800 !important;
}
body.app-body .products-cost-page .erp-tabs a.active {
  color: #fff !important;
  background: var(--bvms-primary, #2563eb) !important;
  border-color: var(--bvms-primary, #2563eb) !important;
}

body.app-body .category-management-page .alert,
body.app-body .products-cost-page .bvms-alert,
body.app-body .products-cost-page .cost-alert-card {
  border-radius: 18px !important;
  padding: 15px 17px !important;
  border: 1px solid var(--bvms-border, #dbe3ef) !important;
}
body.app-body .category-management-page .alert-warning,
body.app-body .products-cost-page .cost-alert-card {
  background: var(--bvms-warning-soft, #fff7ed) !important;
  color: var(--bvms-warning, #d97706) !important;
}
body.app-body .category-management-page .alert-success,
body.app-body .products-cost-page .bvms-alert.success {
  background: var(--bvms-success-soft, #dcfce7) !important;
  color: var(--bvms-success, #16a34a) !important;
}
body.app-body .category-management-page .alert-danger,
body.app-body .products-cost-page .bvms-alert.danger {
  background: var(--bvms-danger-soft, #fef2f2) !important;
  color: var(--bvms-danger, #dc2626) !important;
}
body.app-body .category-management-page .alert-info {
  background: var(--bvms-info-soft, #ecfeff) !important;
  color: var(--bvms-info, #0891b2) !important;
}

body.app-body .category-management-page .modal-content {
  background: var(--bvms-surface, #fff) !important;
  color: var(--bvms-text, #0f172a) !important;
  border: 1px solid var(--bvms-border, #dbe3ef) !important;
  border-radius: 22px !important;
}
body.app-body .category-management-page .modal-header,
body.app-body .category-management-page .modal-footer {
  border-color: var(--bvms-border, #dbe3ef) !important;
}

@media (max-width: 1200px) {
  body.app-body .products-cost-page .kpi-grid-clean,
  body.app-body .products-cost-page .cost-flow-card { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  body.app-body .products-cost-page .filter-grid-clean label,
  body.app-body .products-cost-page .filter-grid-clean label:first-of-type,
  body.app-body .products-cost-page .filter-actions-clean { grid-column: span 6 !important; }
}
@media (max-width: 760px) {
  body.app-body .products-cost-page .page-hero-clean,
  body.app-body .category-management-page .page-header,
  body.app-body .product-margin-page .page-header { flex-direction: column !important; padding: 18px !important; border-radius: 18px !important; }
  body.app-body .products-cost-page .kpi-grid-clean,
  body.app-body .products-cost-page .cost-flow-card { grid-template-columns: 1fr !important; }
  body.app-body .products-cost-page .filter-grid-clean,
  body.app-body .product-margin-page .filter-form { grid-template-columns: 1fr !important; }
  body.app-body .products-cost-page .filter-grid-clean label,
  body.app-body .products-cost-page .filter-grid-clean label:first-of-type,
  body.app-body .products-cost-page .filter-actions-clean,
  body.app-body .product-margin-page .filter-form label,
  body.app-body .product-margin-page .filter-form input,
  body.app-body .product-margin-page .filter-form button { grid-column: 1 / -1 !important; }
  body.app-body .products-cost-page .table-card-clean,
  body.app-body .products-cost-page .filter-card-clean,
  body.app-body .category-management-page .card,
  body.app-body .product-margin-page .panel { padding: 16px !important; border-radius: 18px !important; }
}


/* =========================================================
   BVMS - Dashboard v4: filtro funcional, alertas no topo e DRE em planilha
========================================================= */
body.app-body .bvms-dashboard-minimal .mini-alerts-under-title {
    display: grid !important;
    gap: 10px !important;
    padding: 14px !important;
    border-radius: 20px !important;
    border: 1px solid var(--mini-border) !important;
    background: linear-gradient(135deg, color-mix(in srgb, var(--mini-surface) 96%, transparent), color-mix(in srgb, var(--mini-surface-2) 94%, transparent)) !important;
    box-shadow: var(--mini-shadow) !important;
}
body.app-body .bvms-dashboard-minimal .mini-alerts-summary {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 12px !important;
}
body.app-body .bvms-dashboard-minimal .mini-alerts-summary span {
    display: block !important;
    color: var(--mini-muted) !important;
    font-size: 12px !important;
    font-weight: 800 !important;
}
body.app-body .bvms-dashboard-minimal .mini-alerts-summary strong {
    display: block !important;
    margin-top: 3px !important;
    color: var(--mini-text) !important;
    font-size: 14px !important;
}
body.app-body .bvms-dashboard-minimal .mini-alerts-summary b {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 30px !important;
    padding: 0 10px !important;
    border-radius: 999px !important;
    font-size: 12px !important;
}
body.app-body .bvms-dashboard-minimal .mini-alerts-summary b.danger {
    background: color-mix(in srgb, var(--mini-red) 18%, transparent) !important;
    color: var(--mini-red) !important;
}
body.app-body .bvms-dashboard-minimal .mini-alerts-summary b.success {
    background: color-mix(in srgb, var(--mini-green) 16%, transparent) !important;
    color: var(--mini-green) !important;
}
body.app-body .bvms-dashboard-minimal .mini-alerts-inline-list {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 10px !important;
}
body.app-body .bvms-dashboard-minimal .mini-dre-statement-panel {
    grid-column: span 4 !important;
}
body.app-body .bvms-dashboard-minimal .mini-dre-sheet {
    display: grid !important;
    gap: 0 !important;
    overflow: hidden !important;
    border: 1px solid var(--mini-border) !important;
    border-radius: 16px !important;
    background: var(--mini-surface-2) !important;
}
body.app-body .bvms-dashboard-minimal .mini-dre-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 12px !important;
    align-items: center !important;
    min-height: 39px !important;
    padding: 9px 11px !important;
    border-bottom: 1px solid var(--mini-border) !important;
}
body.app-body .bvms-dashboard-minimal .mini-dre-row:last-child {
    border-bottom: 0 !important;
}
body.app-body .bvms-dashboard-minimal .mini-dre-row span {
    color: var(--mini-muted) !important;
    font-size: 12px !important;
    font-weight: 720 !important;
}
body.app-body .bvms-dashboard-minimal .mini-dre-row strong {
    color: var(--mini-text) !important;
    font-size: 13px !important;
    font-weight: 820 !important;
    text-align: right !important;
}
body.app-body .bvms-dashboard-minimal .mini-dre-row.subtotal {
    background: color-mix(in srgb, var(--mini-blue) 10%, transparent) !important;
}
body.app-body .bvms-dashboard-minimal .mini-dre-row.result {
    min-height: 44px !important;
    background: color-mix(in srgb, var(--mini-cyan) 12%, transparent) !important;
}
body.app-body .bvms-dashboard-minimal .mini-dre-row.negative strong {
    color: var(--mini-orange) !important;
}
body.app-body .bvms-dashboard-minimal .mini-dre-row.result.positive strong,
body.app-body .bvms-dashboard-minimal .mini-dre-row.positive strong {
    color: var(--mini-green) !important;
}
body.app-body .bvms-dashboard-minimal .mini-dre-row.result.negative strong {
    color: var(--mini-red) !important;
}
body.app-body .bvms-dashboard-minimal .mini-period-trigger,
body.app-body .bvms-dashboard-minimal [data-mini-period],
body.app-body .bvms-dashboard-minimal .mini-btn {
    pointer-events: auto !important;
    user-select: none !important;
}
@media (max-width: 1280px) {
    body.app-body .bvms-dashboard-minimal .mini-alerts-inline-list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 760px) {
    body.app-body .bvms-dashboard-minimal .mini-alerts-inline-list { grid-template-columns: 1fr !important; }
    .mini-period-fields.two { grid-template-columns: 1fr !important; }
}

/* =========================================================
   BVMS - Dashboard v5: modal sólido + alertas por nível
   Corrige variáveis fora do container do dashboard e melhora contraste.
========================================================= */
body.bvms-modal-open {
    overflow: hidden !important;
}

.mini-modal-overlay,
.mini-period-modal {
    --mini-bg: #07111f;
    --mini-surface: #0d1a2f;
    --mini-surface-2: #111f36;
    --mini-surface-3: #162942;
    --mini-text: #edf6ff;
    --mini-muted: #92a3bf;
    --mini-border: rgba(135, 176, 230, .22);
    --mini-blue: #23a4ff;
    --mini-cyan: #14f1d9;
    --mini-green: #16d69b;
    --mini-orange: #ffb14a;
    --mini-red: #ff5675;
    --mini-glow-blue: rgba(35, 164, 255, .26);
}

.mini-modal-overlay {
    background: rgba(3, 9, 18, .74) !important;
    backdrop-filter: blur(10px) saturate(125%) !important;
    -webkit-backdrop-filter: blur(10px) saturate(125%) !important;
}

.mini-period-modal {
    background:
        radial-gradient(circle at 20% 0%, rgba(35, 164, 255, .12), transparent 34%),
        linear-gradient(180deg, #0d1a2f 0%, #091426 100%) !important;
    border: 1px solid rgba(135, 176, 230, .26) !important;
    box-shadow: 0 34px 110px rgba(0, 0, 0, .62), 0 0 0 1px rgba(255,255,255,.03) inset !important;
}

.mini-period-form [hidden],
.mini-period-fields[hidden],
body.app-body .mini-period-form [hidden] {
    display: none !important;
    visibility: hidden !important;
}

.mini-period-tabs button {
    transition: border-color .18s ease, background .18s ease, transform .18s ease, box-shadow .18s ease !important;
}

.mini-period-tabs button:not(.active):hover {
    border-color: rgba(35, 164, 255, .38) !important;
    box-shadow: 0 0 0 3px rgba(35, 164, 255, .12) !important;
}

body.app-body .bvms-dashboard-minimal .mini-alerts-under-title {
    padding: 14px !important;
    border-radius: 22px !important;
    background:
        radial-gradient(circle at 0% 0%, rgba(35, 164, 255, .12), transparent 36%),
        linear-gradient(135deg, rgba(13, 26, 47, .98), rgba(10, 22, 40, .98)) !important;
}

body.app-body .bvms-dashboard-minimal .mini-alerts-inline-list {
    align-items: stretch !important;
}

body.app-body .bvms-dashboard-minimal .mini-alert-item {
    position: relative !important;
    min-height: 96px !important;
    padding: 12px 12px 12px 14px !important;
    overflow: hidden !important;
    background: rgba(17, 31, 54, .82) !important;
    border: 1px solid rgba(135, 176, 230, .16) !important;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .18) !important;
}

body.app-body .bvms-dashboard-minimal .mini-alert-item::before {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    width: 4px !important;
    background: var(--alert-color, var(--mini-blue)) !important;
    box-shadow: 0 0 18px var(--alert-glow, rgba(35, 164, 255, .24)) !important;
}

body.app-body .bvms-dashboard-minimal .mini-alert-item::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background: radial-gradient(circle at 0% 0%, var(--alert-soft, rgba(35, 164, 255, .09)), transparent 58%) !important;
    pointer-events: none !important;
}

body.app-body .bvms-dashboard-minimal .mini-alert-item > * {
    position: relative !important;
    z-index: 1 !important;
}

body.app-body .bvms-dashboard-minimal .mini-alert-item i {
    background: var(--alert-soft-strong, rgba(35, 164, 255, .16)) !important;
    color: var(--alert-color, var(--mini-blue)) !important;
    box-shadow: 0 0 0 1px var(--alert-border, rgba(35, 164, 255, .22)) inset !important;
}

body.app-body .bvms-dashboard-minimal .mini-alert-item em {
    background: var(--alert-soft-strong, rgba(35, 164, 255, .16)) !important;
    color: var(--alert-color, var(--mini-blue)) !important;
    border: 1px solid var(--alert-border, rgba(35, 164, 255, .22)) !important;
    white-space: nowrap !important;
}

body.app-body .bvms-dashboard-minimal .mini-alert-item strong {
    color: #f7fbff !important;
}

body.app-body .bvms-dashboard-minimal .mini-alert-item span {
    color: #aebdd3 !important;
    line-height: 1.35 !important;
}

body.app-body .bvms-dashboard-minimal .mini-alert-item.danger {
    --alert-color: var(--mini-red);
    --alert-soft: rgba(255, 86, 117, .10);
    --alert-soft-strong: rgba(255, 86, 117, .17);
    --alert-border: rgba(255, 86, 117, .28);
    --alert-glow: rgba(255, 86, 117, .26);
    border-color: rgba(255, 86, 117, .24) !important;
}

body.app-body .bvms-dashboard-minimal .mini-alert-item.warning {
    --alert-color: var(--mini-orange);
    --alert-soft: rgba(255, 177, 74, .10);
    --alert-soft-strong: rgba(255, 177, 74, .17);
    --alert-border: rgba(255, 177, 74, .30);
    --alert-glow: rgba(255, 177, 74, .25);
    border-color: rgba(255, 177, 74, .23) !important;
}

body.app-body .bvms-dashboard-minimal .mini-alert-item.info {
    --alert-color: var(--mini-blue);
    --alert-soft: rgba(35, 164, 255, .10);
    --alert-soft-strong: rgba(35, 164, 255, .16);
    --alert-border: rgba(35, 164, 255, .27);
    --alert-glow: rgba(35, 164, 255, .24);
}

body.app-body .bvms-dashboard-minimal .mini-alert-item.success {
    --alert-color: var(--mini-green);
    --alert-soft: rgba(22, 214, 155, .10);
    --alert-soft-strong: rgba(22, 214, 155, .16);
    --alert-border: rgba(22, 214, 155, .26);
    --alert-glow: rgba(22, 214, 155, .22);
}

@media (max-width: 760px) {
    .mini-period-modal { border-radius: 20px !important; }
    .mini-period-tabs { grid-template-columns: 1fr !important; }
    body.app-body .bvms-dashboard-minimal .mini-alerts-summary { align-items: flex-start !important; flex-direction: column !important; }
}

/* =========================================================
   BVMS - Dashboard v6: visualização dos alertas mais limpa
   Mantém o estilo do layout, mas remove o bloco pesado e aplica
   cores por nível de aviso com melhor leitura.
========================================================= */
body.app-body .bvms-dashboard-minimal .mini-alerts-under-title {
    margin-top: 18px !important;
    padding: 14px !important;
    border-radius: 24px !important;
    background:
        radial-gradient(circle at 0 0, rgba(35, 164, 255, .10), transparent 32%),
        linear-gradient(135deg, rgba(248, 251, 255, .78), rgba(237, 246, 255, .64)) !important;
    border: 1px solid rgba(135, 176, 230, .34) !important;
    box-shadow: 0 18px 48px rgba(15, 38, 77, .10) !important;
    color: #07111f !important;
}

body.app-body.dark .bvms-dashboard-minimal .mini-alerts-under-title,
body.app-body.theme-dark .bvms-dashboard-minimal .mini-alerts-under-title,
html.dark body.app-body .bvms-dashboard-minimal .mini-alerts-under-title,
[data-theme="dark"] body.app-body .bvms-dashboard-minimal .mini-alerts-under-title {
    background:
        radial-gradient(circle at 0 0, rgba(35, 164, 255, .13), transparent 34%),
        linear-gradient(135deg, rgba(13, 26, 47, .96), rgba(9, 20, 38, .96)) !important;
    border-color: rgba(135, 176, 230, .24) !important;
    box-shadow: 0 22px 56px rgba(0, 0, 0, .22) !important;
    color: var(--mini-text) !important;
}

body.app-body .bvms-dashboard-minimal .mini-alerts-summary {
    min-height: 34px !important;
    padding: 0 4px 2px !important;
}

body.app-body .bvms-dashboard-minimal .mini-alerts-summary span {
    color: #45617f !important;
    letter-spacing: .01em !important;
}

body.app-body .bvms-dashboard-minimal .mini-alerts-summary strong {
    color: #07111f !important;
    font-size: 15px !important;
}

body.app-body.dark .bvms-dashboard-minimal .mini-alerts-summary span,
body.app-body.theme-dark .bvms-dashboard-minimal .mini-alerts-summary span,
html.dark body.app-body .bvms-dashboard-minimal .mini-alerts-summary span,
[data-theme="dark"] body.app-body .bvms-dashboard-minimal .mini-alerts-summary span {
    color: #9fb1cb !important;
}

body.app-body.dark .bvms-dashboard-minimal .mini-alerts-summary strong,
body.app-body.theme-dark .bvms-dashboard-minimal .mini-alerts-summary strong,
html.dark body.app-body .bvms-dashboard-minimal .mini-alerts-summary strong,
[data-theme="dark"] body.app-body .bvms-dashboard-minimal .mini-alerts-summary strong {
    color: #f4f9ff !important;
}

body.app-body .bvms-dashboard-minimal .mini-alerts-inline-list {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(220px, 1fr)) !important;
    gap: 12px !important;
}

body.app-body .bvms-dashboard-minimal .mini-alert-item {
    display: grid !important;
    grid-template-columns: 36px minmax(0, 1fr) auto !important;
    align-items: start !important;
    gap: 12px !important;
    min-height: 88px !important;
    padding: 13px 13px 13px 16px !important;
    border-radius: 18px !important;
    background:
        linear-gradient(135deg, rgba(255,255,255,.86), rgba(247,250,255,.70)) !important;
    border: 1px solid var(--alert-border, rgba(35, 164, 255, .20)) !important;
    box-shadow: 0 14px 34px rgba(17, 37, 68, .08) !important;
}

body.app-body.dark .bvms-dashboard-minimal .mini-alert-item,
body.app-body.theme-dark .bvms-dashboard-minimal .mini-alert-item,
html.dark body.app-body .bvms-dashboard-minimal .mini-alert-item,
[data-theme="dark"] body.app-body .bvms-dashboard-minimal .mini-alert-item {
    background:
        radial-gradient(circle at 0 0, var(--alert-soft, rgba(35, 164, 255, .09)), transparent 62%),
        linear-gradient(135deg, rgba(17, 31, 54, .86), rgba(12, 24, 43, .86)) !important;
    box-shadow: 0 16px 38px rgba(0, 0, 0, .20) !important;
}

body.app-body .bvms-dashboard-minimal .mini-alert-item::before {
    width: 5px !important;
    border-radius: 999px !important;
    top: 14px !important;
    bottom: 14px !important;
    left: 0 !important;
}

body.app-body .bvms-dashboard-minimal .mini-alert-item::after {
    background: linear-gradient(135deg, var(--alert-soft, rgba(35, 164, 255, .08)), transparent 70%) !important;
}

body.app-body .bvms-dashboard-minimal .mini-alert-item i {
    width: 34px !important;
    height: 34px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 12px !important;
    font-style: normal !important;
    font-weight: 900 !important;
    color: var(--alert-color, var(--mini-blue)) !important;
    background: var(--alert-soft-strong, rgba(35, 164, 255, .13)) !important;
}

body.app-body .bvms-dashboard-minimal .mini-alert-item div {
    min-width: 0 !important;
}

body.app-body .bvms-dashboard-minimal .mini-alert-item strong {
    display: block !important;
    color: #07111f !important;
    font-size: 13px !important;
    font-weight: 880 !important;
    line-height: 1.2 !important;
}

body.app-body .bvms-dashboard-minimal .mini-alert-item span {
    display: block !important;
    margin-top: 5px !important;
    color: #526b8a !important;
    font-size: 12px !important;
    line-height: 1.38 !important;
}

body.app-body.dark .bvms-dashboard-minimal .mini-alert-item strong,
body.app-body.theme-dark .bvms-dashboard-minimal .mini-alert-item strong,
html.dark body.app-body .bvms-dashboard-minimal .mini-alert-item strong,
[data-theme="dark"] body.app-body .bvms-dashboard-minimal .mini-alert-item strong {
    color: #f8fbff !important;
}

body.app-body.dark .bvms-dashboard-minimal .mini-alert-item span,
body.app-body.theme-dark .bvms-dashboard-minimal .mini-alert-item span,
html.dark body.app-body .bvms-dashboard-minimal .mini-alert-item span,
[data-theme="dark"] body.app-body .bvms-dashboard-minimal .mini-alert-item span {
    color: #b7c6dc !important;
}

body.app-body .bvms-dashboard-minimal .mini-alert-item em {
    align-self: start !important;
    padding: 5px 9px !important;
    border-radius: 999px !important;
    font-size: 10px !important;
    font-style: normal !important;
    font-weight: 900 !important;
    letter-spacing: -.01em !important;
    background: var(--alert-soft-strong, rgba(35, 164, 255, .13)) !important;
    color: var(--alert-color, var(--mini-blue)) !important;
    border: 1px solid var(--alert-border, rgba(35, 164, 255, .22)) !important;
}

body.app-body .bvms-dashboard-minimal .mini-alert-item.danger,
body.app-body .bvms-dashboard-minimal .mini-alert-item.critical {
    --alert-color: #ef365f;
    --alert-soft: rgba(239, 54, 95, .11);
    --alert-soft-strong: rgba(239, 54, 95, .16);
    --alert-border: rgba(239, 54, 95, .34);
    --alert-glow: rgba(239, 54, 95, .24);
}

body.app-body .bvms-dashboard-minimal .mini-alert-item.warning {
    --alert-color: #e68112;
    --alert-soft: rgba(230, 129, 18, .12);
    --alert-soft-strong: rgba(230, 129, 18, .16);
    --alert-border: rgba(230, 129, 18, .34);
    --alert-glow: rgba(230, 129, 18, .22);
}

body.app-body .bvms-dashboard-minimal .mini-alert-item.info,
body.app-body .bvms-dashboard-minimal .mini-alert-item.observation {
    --alert-color: #178fe8;
    --alert-soft: rgba(23, 143, 232, .11);
    --alert-soft-strong: rgba(23, 143, 232, .15);
    --alert-border: rgba(23, 143, 232, .32);
    --alert-glow: rgba(23, 143, 232, .22);
}

body.app-body .bvms-dashboard-minimal .mini-alert-item.success,
body.app-body .bvms-dashboard-minimal .mini-alert-item.ok {
    --alert-color: #0ba775;
    --alert-soft: rgba(11, 167, 117, .11);
    --alert-soft-strong: rgba(11, 167, 117, .15);
    --alert-border: rgba(11, 167, 117, .31);
    --alert-glow: rgba(11, 167, 117, .20);
}

body.app-body .bvms-dashboard-minimal .mini-alerts-summary b.danger {
    background: rgba(239, 54, 95, .13) !important;
    color: #ef365f !important;
    border: 1px solid rgba(239, 54, 95, .25) !important;
}

body.app-body .bvms-dashboard-minimal .mini-alerts-summary b.success {
    background: rgba(11, 167, 117, .13) !important;
    color: #0ba775 !important;
    border: 1px solid rgba(11, 167, 117, .24) !important;
}

@media (max-width: 1400px) {
    body.app-body .bvms-dashboard-minimal .mini-alerts-inline-list {
        grid-template-columns: repeat(2, minmax(260px, 1fr)) !important;
    }
}

@media (max-width: 760px) {
    body.app-body .bvms-dashboard-minimal .mini-alerts-under-title {
        padding: 12px !important;
        border-radius: 20px !important;
    }
    body.app-body .bvms-dashboard-minimal .mini-alerts-inline-list {
        grid-template-columns: 1fr !important;
    }
    body.app-body .bvms-dashboard-minimal .mini-alert-item {
        grid-template-columns: 34px minmax(0, 1fr) !important;
    }
    body.app-body .bvms-dashboard-minimal .mini-alert-item em {
        grid-column: 2 !important;
        width: max-content !important;
    }
}


/* =========================================================
   BVMS - Dashboard v7: filtro corrigido + gráficos/cards melhores
   Mantém o layout BVMS, corrige contraste do modal e redefine a
   área analítica para parecer mais profissional e legível.
========================================================= */
body.app-body .bvms-dashboard-minimal {
    --mini-card-radius: 24px;
}

body.app-body .bvms-dashboard-minimal .mini-dashboard-grid {
    display: grid !important;
    grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
    gap: 16px !important;
    align-items: stretch !important;
}

body.app-body .bvms-dashboard-minimal .mini-panel,
body.app-body .bvms-dashboard-minimal .mini-kpi-card {
    border-radius: var(--mini-card-radius) !important;
    border: 1px solid rgba(135, 176, 230, .22) !important;
    background:
        radial-gradient(circle at 0 0, rgba(35, 164, 255, .055), transparent 38%),
        linear-gradient(180deg, rgba(255,255,255,.84), rgba(245,249,255,.66)) !important;
    box-shadow: 0 18px 44px rgba(15, 38, 77, .08) !important;
}

body.app-body.dark .bvms-dashboard-minimal .mini-panel,
body.app-body.theme-dark .bvms-dashboard-minimal .mini-panel,
html.dark body.app-body .bvms-dashboard-minimal .mini-panel,
[data-theme="dark"] body.app-body .bvms-dashboard-minimal .mini-panel,
body.app-body.dark .bvms-dashboard-minimal .mini-kpi-card,
body.app-body.theme-dark .bvms-dashboard-minimal .mini-kpi-card,
html.dark body.app-body .bvms-dashboard-minimal .mini-kpi-card,
[data-theme="dark"] body.app-body .bvms-dashboard-minimal .mini-kpi-card {
    background:
        radial-gradient(circle at 0 0, rgba(35, 164, 255, .10), transparent 40%),
        linear-gradient(180deg, rgba(13, 26, 47, .96), rgba(9, 20, 38, .94)) !important;
    border-color: rgba(135, 176, 230, .20) !important;
    box-shadow: 0 22px 54px rgba(0,0,0,.22) !important;
}

body.app-body .bvms-dashboard-minimal .mini-dre-statement-panel { grid-column: span 4 !important; }
body.app-body .bvms-dashboard-minimal .mini-evolution-panel { grid-column: span 5 !important; }
body.app-body .bvms-dashboard-minimal .mini-cost-panel { grid-column: span 3 !important; }
body.app-body .bvms-dashboard-minimal .mini-product-panel,
body.app-body .bvms-dashboard-minimal .mini-plan-panel,
body.app-body .bvms-dashboard-minimal .mini-import-panel { grid-column: span 4 !important; }
body.app-body .bvms-dashboard-minimal .mini-cash-panel,
body.app-body .bvms-dashboard-minimal .mini-goal-panel { grid-column: span 3 !important; }

body.app-body .bvms-dashboard-minimal .mini-panel-head {
    padding-bottom: 10px !important;
    margin-bottom: 14px !important;
    border-bottom: 1px solid rgba(135, 176, 230, .16) !important;
}

body.app-body .bvms-dashboard-minimal .mini-panel-head span {
    background: rgba(35, 164, 255, .10) !important;
    color: #178fe8 !important;
}

body.app-body .bvms-dashboard-minimal .mini-panel-head h2 {
    font-size: 18px !important;
    letter-spacing: -.045em !important;
}

body.app-body .bvms-dashboard-minimal .mini-chart.tall {
    height: 280px !important;
    padding: 8px 6px 0 !important;
    border-radius: 18px !important;
    background: linear-gradient(180deg, rgba(35,164,255,.045), rgba(20,241,217,.025)) !important;
}

body.app-body .bvms-dashboard-minimal .mini-cost-panel .mini-panel-head {
    margin-bottom: 6px !important;
}

body.app-body .bvms-dashboard-minimal .mini-donut-layout {
    display: grid !important;
    grid-template-columns: minmax(170px, 210px) minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 18px !important;
    min-height: 250px !important;
}

body.app-body .bvms-dashboard-minimal .mini-chart.donut {
    width: min(210px, 100%) !important;
    height: 210px !important;
    margin: 0 auto !important;
    padding: 8px !important;
    border-radius: 999px !important;
    background: radial-gradient(circle, rgba(255,255,255,.72), rgba(236,244,255,.28)) !important;
}

body.app-body.dark .bvms-dashboard-minimal .mini-chart.donut,
body.app-body.theme-dark .bvms-dashboard-minimal .mini-chart.donut,
html.dark body.app-body .bvms-dashboard-minimal .mini-chart.donut,
[data-theme="dark"] body.app-body .bvms-dashboard-minimal .mini-chart.donut {
    background: radial-gradient(circle, rgba(17,31,54,.88), rgba(9,20,38,.32)) !important;
}

body.app-body .bvms-dashboard-minimal .mini-donut-legend {
    display: grid !important;
    gap: 10px !important;
}

body.app-body .bvms-dashboard-minimal .mini-donut-legend span {
    display: grid !important;
    grid-template-columns: 10px minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 10px !important;
    border-radius: 14px !important;
    background: rgba(255,255,255,.55) !important;
    border: 1px solid rgba(135,176,230,.16) !important;
    color: #4b6382 !important;
    font-weight: 760 !important;
}

body.app-body .bvms-dashboard-minimal .mini-donut-legend span::before {
    content: "" !important;
    width: 10px !important;
    height: 10px !important;
    border-radius: 999px !important;
    background: #14f1d9 !important;
    box-shadow: 0 0 0 4px rgba(20,241,217,.12) !important;
}
body.app-body .bvms-dashboard-minimal .mini-donut-legend span:nth-child(1)::before { background: #8b5cf6 !important; box-shadow: 0 0 0 4px rgba(139,92,246,.13) !important; }
body.app-body .bvms-dashboard-minimal .mini-donut-legend span:nth-child(2)::before { background: #14f1d9 !important; box-shadow: 0 0 0 4px rgba(20,241,217,.13) !important; }
body.app-body .bvms-dashboard-minimal .mini-donut-legend span:nth-child(3)::before { background: #ff9c39 !important; box-shadow: 0 0 0 4px rgba(255,156,57,.13) !important; }

body.app-body .bvms-dashboard-minimal .mini-donut-legend strong {
    font-size: 13px !important;
    color: #07111f !important;
    text-align: right !important;
}

body.app-body.dark .bvms-dashboard-minimal .mini-donut-legend span,
body.app-body.theme-dark .bvms-dashboard-minimal .mini-donut-legend span,
html.dark body.app-body .bvms-dashboard-minimal .mini-donut-legend span,
[data-theme="dark"] body.app-body .bvms-dashboard-minimal .mini-donut-legend span {
    background: rgba(17,31,54,.72) !important;
    color: #aebdd3 !important;
}
body.app-body.dark .bvms-dashboard-minimal .mini-donut-legend strong,
body.app-body.theme-dark .bvms-dashboard-minimal .mini-donut-legend strong,
html.dark body.app-body .bvms-dashboard-minimal .mini-donut-legend strong,
[data-theme="dark"] body.app-body .bvms-dashboard-minimal .mini-donut-legend strong {
    color: #f8fbff !important;
}

body.app-body .bvms-dashboard-minimal .mini-dre-sheet {
    border-radius: 18px !important;
    background: transparent !important;
    border: 0 !important;
    gap: 8px !important;
}

body.app-body .bvms-dashboard-minimal .mini-dre-row {
    min-height: 42px !important;
    border: 1px solid rgba(135,176,230,.14) !important;
    border-radius: 13px !important;
    background: rgba(255,255,255,.50) !important;
}

body.app-body.dark .bvms-dashboard-minimal .mini-dre-row,
body.app-body.theme-dark .bvms-dashboard-minimal .mini-dre-row,
html.dark body.app-body .bvms-dashboard-minimal .mini-dre-row,
[data-theme="dark"] body.app-body .bvms-dashboard-minimal .mini-dre-row {
    background: rgba(17,31,54,.62) !important;
}

/* Modal do filtro: menos borrado, contraste correto e campos escuros no tema escuro */
.mini-modal-overlay {
    background: rgba(3, 9, 18, .58) !important;
    backdrop-filter: blur(6px) saturate(115%) !important;
    -webkit-backdrop-filter: blur(6px) saturate(115%) !important;
}

.mini-period-modal {
    width: min(620px, calc(100vw - 32px)) !important;
    border-radius: 26px !important;
}

.mini-period-modal header {
    padding: 20px 22px 16px !important;
}

.mini-period-form {
    padding: 18px 22px 22px !important;
    gap: 16px !important;
}

.mini-period-tabs {
    padding: 5px !important;
    border-radius: 16px !important;
    background: rgba(255,255,255,.05) !important;
    border: 1px solid rgba(135,176,230,.16) !important;
}

.mini-period-tabs button {
    border: 0 !important;
    min-height: 44px !important;
    background: transparent !important;
}

.mini-period-tabs button.active {
    color: #fff !important;
    background: linear-gradient(135deg, #238dff, #14f1d9) !important;
    box-shadow: 0 12px 24px rgba(35,164,255,.24) !important;
}

.mini-period-fields input,
.mini-period-fields select {
    min-height: 48px !important;
    font-weight: 720 !important;
    background: #ffffff !important;
    color: #0f172a !important;
    border-color: rgba(135,176,230,.34) !important;
}

body.app-body.dark .mini-period-fields input,
body.app-body.theme-dark .mini-period-fields input,
html.dark body.app-body .mini-period-fields input,
[data-theme="dark"] body.app-body .mini-period-fields input,
body.app-body.dark .mini-period-fields select,
body.app-body.theme-dark .mini-period-fields select,
html.dark body.app-body .mini-period-fields select,
[data-theme="dark"] body.app-body .mini-period-fields select {
    background: #111f36 !important;
    color: #f8fbff !important;
    border-color: rgba(135,176,230,.30) !important;
}

.mini-period-fields label {
    margin-bottom: 2px !important;
    letter-spacing: .01em !important;
}

.mini-period-fields.two {
    gap: 12px !important;
}

.mini-period-form footer {
    margin-top: 4px !important;
}

@media (max-width: 1320px) {
    body.app-body .bvms-dashboard-minimal .mini-dre-statement-panel,
    body.app-body .bvms-dashboard-minimal .mini-evolution-panel,
    body.app-body .bvms-dashboard-minimal .mini-cost-panel,
    body.app-body .bvms-dashboard-minimal .mini-product-panel,
    body.app-body .bvms-dashboard-minimal .mini-plan-panel,
    body.app-body .bvms-dashboard-minimal .mini-import-panel,
    body.app-body .bvms-dashboard-minimal .mini-cash-panel,
    body.app-body .bvms-dashboard-minimal .mini-goal-panel { grid-column: span 6 !important; }
}

@media (max-width: 840px) {
    body.app-body .bvms-dashboard-minimal .mini-dashboard-grid { grid-template-columns: 1fr !important; }
    body.app-body .bvms-dashboard-minimal .mini-panel { grid-column: span 1 !important; }
    body.app-body .bvms-dashboard-minimal .mini-donut-layout { grid-template-columns: 1fr !important; }
    body.app-body .bvms-dashboard-minimal .mini-chart.tall { height: 240px !important; }
    .mini-period-fields.two { grid-template-columns: 1fr !important; }
}

/* =========================================================
   BVMS UI HOTFIX V8 - consistência visual de tabelas/forms
   Corrige DRE, Vendas, Categorias e Auditoria sem alterar backend.
   ========================================================= */
:root {
    --bvms-table-bg: rgba(255,255,255,.92);
    --bvms-table-head-bg: #eaf2fb;
    --bvms-table-border: rgba(123, 151, 185, .22);
    --bvms-table-text: #07111f;
    --bvms-table-muted: #5d708c;
    --bvms-table-hover: rgba(35, 164, 255, .055);
}

/* Tabelas operacionais no tema claro: evita linhas pretas com texto invisível */
body.app-body:not(.dark):not(.theme-dark) .sales-page-clean table,
body.app-body:not(.dark):not(.theme-dark) .category-management-page table,
body.app-body:not(.dark):not(.theme-dark) .dre-page-clean table,
body.app-body:not(.dark):not(.theme-dark) table.audit-table {
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    overflow: hidden !important;
    color: var(--bvms-table-text) !important;
    background: transparent !important;
}

body.app-body:not(.dark):not(.theme-dark) .sales-page-clean table thead th,
body.app-body:not(.dark):not(.theme-dark) .category-management-page table thead th,
body.app-body:not(.dark):not(.theme-dark) .dre-page-clean table thead th,
body.app-body:not(.dark):not(.theme-dark) table.audit-table thead th {
    background: var(--bvms-table-head-bg) !important;
    color: #182840 !important;
    border-bottom: 1px solid var(--bvms-table-border) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    letter-spacing: .045em !important;
    text-transform: uppercase !important;
    padding: 14px 16px !important;
    white-space: nowrap !important;
}

body.app-body:not(.dark):not(.theme-dark) .sales-page-clean table tbody tr,
body.app-body:not(.dark):not(.theme-dark) .category-management-page table tbody tr,
body.app-body:not(.dark):not(.theme-dark) .dre-page-clean table tbody tr,
body.app-body:not(.dark):not(.theme-dark) table.audit-table tbody tr {
    background: var(--bvms-table-bg) !important;
    color: var(--bvms-table-text) !important;
}

body.app-body:not(.dark):not(.theme-dark) .sales-page-clean table tbody td,
body.app-body:not(.dark):not(.theme-dark) .category-management-page table tbody td,
body.app-body:not(.dark):not(.theme-dark) .dre-page-clean table tbody td,
body.app-body:not(.dark):not(.theme-dark) table.audit-table tbody td {
    background: var(--bvms-table-bg) !important;
    color: var(--bvms-table-text) !important;
    border-bottom: 1px solid var(--bvms-table-border) !important;
    padding: 14px 16px !important;
    vertical-align: middle !important;
    font-weight: 700 !important;
}

body.app-body:not(.dark):not(.theme-dark) .sales-page-clean table tbody tr:hover td,
body.app-body:not(.dark):not(.theme-dark) .category-management-page table tbody tr:hover td,
body.app-body:not(.dark):not(.theme-dark) .dre-page-clean table tbody tr:hover td,
body.app-body:not(.dark):not(.theme-dark) table.audit-table tbody tr:hover td {
    background: var(--bvms-table-hover) !important;
}

body.app-body:not(.dark):not(.theme-dark) .sales-page-clean table .text-muted,
body.app-body:not(.dark):not(.theme-dark) .category-management-page table .text-muted,
body.app-body:not(.dark):not(.theme-dark) .dre-page-clean table .text-muted,
body.app-body:not(.dark):not(.theme-dark) table.audit-table .text-muted {
    color: var(--bvms-table-muted) !important;
}

/* DRE: planilha realmente parecida com demonstrativo, sem faixas escuras vazias */
body.app-body:not(.dark):not(.theme-dark) .dre-page-clean .dre-table tbody tr.table-highlight td {
    background: #f2f8ff !important;
    color: #07111f !important;
    border-top: 1px solid rgba(35, 164, 255, .18) !important;
    border-bottom: 1px solid rgba(35, 164, 255, .18) !important;
}

body.app-body:not(.dark):not(.theme-dark) .dre-page-clean .dre-table tbody tr.table-total td {
    background: linear-gradient(90deg, rgba(219, 255, 232, .95), rgba(232, 255, 248, .95)) !important;
    color: #042416 !important;
    border-top: 1px solid rgba(16, 185, 129, .28) !important;
    border-bottom: 1px solid rgba(16, 185, 129, .28) !important;
}

body.app-body:not(.dark):not(.theme-dark) .dre-page-clean .dre-table td:first-child {
    min-width: 270px !important;
}

body.app-body:not(.dark):not(.theme-dark) .dre-page-clean .dre-table .text-right {
    text-align: right !important;
    font-variant-numeric: tabular-nums !important;
}

/* Vendas: quando não houver registros, não exibir um bloco preto vazio */
body.app-body:not(.dark):not(.theme-dark) .sales-page-clean .table-card-clean,
body.app-body:not(.dark):not(.theme-dark) .sales-page-clean .sales-table-wrapper,
body.app-body:not(.dark):not(.theme-dark) .sales-page-clean .table-responsive,
body.app-body:not(.dark):not(.theme-dark) .category-management-page .table-responsive,
body.app-body:not(.dark):not(.theme-dark) .dre-page-clean .table-responsive,
body.app-body:not(.dark):not(.theme-dark) .card .table-responsive {
    border-radius: 20px !important;
    overflow: auto !important;
    border: 1px solid var(--bvms-table-border) !important;
    background: #ffffff !important;
}

body.app-body:not(.dark):not(.theme-dark) .sales-page-clean table tbody:empty::after {
    content: 'Nenhum registro encontrado para este filtro.';
    display: block;
    padding: 18px;
    color: var(--bvms-table-muted);
    background: #fff;
    font-weight: 800;
}

/* Categorias: checkboxes e ações normalizados */
.category-management-page input[type="checkbox"],
.sales-page-clean input[type="checkbox"],
table.audit-table input[type="checkbox"] {
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
    max-width: 18px !important;
    max-height: 18px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 6px !important;
    appearance: auto !important;
    -webkit-appearance: auto !important;
    display: inline-block !important;
    vertical-align: middle !important;
}

.category-management-page th:first-child,
.category-management-page td:first-child,
.sales-page-clean th:first-child,
.sales-page-clean td:first-child {
    width: 52px !important;
    min-width: 52px !important;
    text-align: center !important;
}

body.app-body:not(.dark):not(.theme-dark) .category-management-page .card,
body.app-body:not(.dark):not(.theme-dark) .sales-page-clean .card,
body.app-body:not(.dark):not(.theme-dark) .dre-page-clean .dre-panel,
body.app-body:not(.dark):not(.theme-dark) .card.border-0.shadow-sm.rounded-4 {
    background: rgba(255,255,255,.88) !important;
    border: 1px solid rgba(123, 151, 185, .22) !important;
    box-shadow: 0 18px 44px rgba(15, 38, 77, .08) !important;
}

/* Auditoria: tabela legível e badges sem perder o padrão */
body.app-body:not(.dark):not(.theme-dark) table.audit-table .badge {
    box-shadow: none !important;
    font-weight: 900 !important;
}

body.app-body:not(.dark):not(.theme-dark) table.audit-table td:nth-child(5) {
    min-width: 280px !important;
    color: #22324a !important;
}

body.app-body:not(.dark):not(.theme-dark) .audit-details-row td {
    background: #f7fbff !important;
    color: #07111f !important;
}

/* Botões gradiente com espaçamento consistente */
.category-management-page .btn,
.sales-page-clean .btn,
.dre-page-clean .btn,
.card .btn-primary,
.card .btn-outline-primary {
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

/* Dark mode preservado, porém com contraste correto */
body.app-body.dark .sales-page-clean table tbody td,
body.app-body.theme-dark .sales-page-clean table tbody td,
html.dark body.app-body .sales-page-clean table tbody td,
[data-theme="dark"] body.app-body .sales-page-clean table tbody td,
body.app-body.dark .category-management-page table tbody td,
body.app-body.theme-dark .category-management-page table tbody td,
html.dark body.app-body .category-management-page table tbody td,
[data-theme="dark"] body.app-body .category-management-page table tbody td,
body.app-body.dark .dre-page-clean table tbody td,
body.app-body.theme-dark .dre-page-clean table tbody td,
html.dark body.app-body .dre-page-clean table tbody td,
[data-theme="dark"] body.app-body .dre-page-clean table tbody td,
body.app-body.dark table.audit-table tbody td,
body.app-body.theme-dark table.audit-table tbody td,
html.dark body.app-body table.audit-table tbody td,
[data-theme="dark"] body.app-body table.audit-table tbody td {
    background: rgba(10, 20, 38, .92) !important;
    color: #eef6ff !important;
    border-bottom-color: rgba(135,176,230,.16) !important;
}

body.app-body.dark .sales-page-clean table thead th,
body.app-body.theme-dark .sales-page-clean table thead th,
html.dark body.app-body .sales-page-clean table thead th,
[data-theme="dark"] body.app-body .sales-page-clean table thead th,
body.app-body.dark .category-management-page table thead th,
body.app-body.theme-dark .category-management-page table thead th,
html.dark body.app-body .category-management-page table thead th,
[data-theme="dark"] body.app-body .category-management-page table thead th,
body.app-body.dark .dre-page-clean table thead th,
body.app-body.theme-dark .dre-page-clean table thead th,
html.dark body.app-body .dre-page-clean table thead th,
[data-theme="dark"] body.app-body .dre-page-clean table thead th,
body.app-body.dark table.audit-table thead th,
body.app-body.theme-dark table.audit-table thead th,
html.dark body.app-body table.audit-table thead th,
[data-theme="dark"] body.app-body table.audit-table thead th {
    background: rgba(18, 34, 61, .98) !important;
    color: #dcecff !important;
    border-bottom-color: rgba(135,176,230,.18) !important;
}

body.app-body.dark .category-management-page table .text-muted,
body.app-body.theme-dark .category-management-page table .text-muted,
html.dark body.app-body .category-management-page table .text-muted,
[data-theme="dark"] body.app-body .category-management-page table .text-muted,
body.app-body.dark table.audit-table .text-muted,
body.app-body.theme-dark table.audit-table .text-muted,
html.dark body.app-body table.audit-table .text-muted,
[data-theme="dark"] body.app-body table.audit-table .text-muted {
    color: #9fb2ce !important;
}

/* Evita estouro horizontal nas telas de ERP */
.sales-page-clean,
.category-management-page,
.dre-page-clean,
.audit-table {
    max-width: 100%;
}

.sales-page-clean .table-responsive,
.category-management-page .table-responsive,
.dre-page-clean .table-responsive,
.audit-table {
    scrollbar-width: thin;
}

/* =========================================================
   BVMS v9 - Extrato compacto com filtro em popup
   ========================================================= */
body.app-body.statement-filter-is-open {
    overflow: hidden;
}

.statement-page-clean {
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 0 2px 28px;
}

.statement-hero-clean {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 28px 32px;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 24px;
    background:
        radial-gradient(circle at top left, rgba(99, 102, 241, 0.09), transparent 30%),
        linear-gradient(135deg, rgba(255,255,255,0.96), rgba(248,250,252,0.86));
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
}

body.theme-dark .statement-hero-clean,
body.dark .statement-hero-clean,
html[data-theme="dark"] .statement-hero-clean {
    background:
        radial-gradient(circle at top left, rgba(37, 99, 235, 0.18), transparent 30%),
        linear-gradient(135deg, rgba(15, 23, 42, 0.95), rgba(2, 10, 24, 0.92));
    border-color: rgba(148, 163, 184, 0.18);
    box-shadow: 0 22px 55px rgba(0, 0, 0, 0.28);
}

.statement-eyebrow {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    min-height: 24px;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(99, 102, 241, 0.12);
    color: #4f46e5;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

body.theme-dark .statement-eyebrow,
body.dark .statement-eyebrow,
html[data-theme="dark"] .statement-eyebrow {
    background: rgba(56, 189, 248, 0.12);
    color: #7dd3fc;
}

.statement-hero-clean h1 {
    margin: 10px 0 6px;
    font-size: clamp(2rem, 3vw, 3.2rem);
    line-height: 1;
    font-weight: 950;
    letter-spacing: -0.055em;
    color: #020617;
}

.statement-hero-clean p,
.statement-table-head p,
.statement-filter-modal-head p {
    margin: 0;
    color: #64748b;
    font-weight: 700;
}

body.theme-dark .statement-hero-clean h1,
body.dark .statement-hero-clean h1,
html[data-theme="dark"] .statement-hero-clean h1,
body.theme-dark .statement-table-head h2,
body.dark .statement-table-head h2,
html[data-theme="dark"] .statement-table-head h2,
body.theme-dark .statement-filter-modal h2,
body.dark .statement-filter-modal h2,
html[data-theme="dark"] .statement-filter-modal h2 {
    color: #f8fafc;
}

body.theme-dark .statement-hero-clean p,
body.dark .statement-hero-clean p,
html[data-theme="dark"] .statement-hero-clean p,
body.theme-dark .statement-table-head p,
body.dark .statement-table-head p,
html[data-theme="dark"] .statement-table-head p,
body.theme-dark .statement-filter-modal-head p,
body.dark .statement-filter-modal-head p,
html[data-theme="dark"] .statement-filter-modal-head p {
    color: #9fb5d0;
}

.statement-filter-trigger,
.statement-filter-secondary,
.statement-btn-submit {
    border: 0;
    color: #ffffff;
    background: linear-gradient(135deg, #2563eb, #14b8a6);
    box-shadow: 0 16px 32px rgba(37, 99, 235, 0.22);
}

.statement-filter-trigger {
    min-width: 260px;
    display: inline-grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 2px 12px;
    padding: 14px 16px;
    border-radius: 18px;
    text-align: left;
    cursor: pointer;
}

.statement-filter-trigger span {
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    opacity: 0.85;
}

.statement-filter-trigger strong {
    font-size: 0.98rem;
    line-height: 1.1;
}

.statement-filter-trigger i {
    grid-row: span 2;
    font-size: 1.05rem;
}

.statement-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.statement-summary-card {
    min-height: 124px;
    padding: 20px 22px;
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.86);
    box-shadow: 0 18px 38px rgba(15, 23, 42, 0.07);
    overflow: hidden;
    position: relative;
}

.statement-summary-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    opacity: 0.8;
}

.statement-summary-entry::before { background: #22c55e; }
.statement-summary-exit::before { background: #f97316; }
.statement-summary-balance.is-positive::before { background: #14b8a6; }
.statement-summary-balance.is-negative::before { background: #ef4444; }
.statement-summary-count::before { background: #3b82f6; }

body.theme-dark .statement-summary-card,
body.dark .statement-summary-card,
html[data-theme="dark"] .statement-summary-card {
    background: rgba(15, 23, 42, 0.88);
    border-color: rgba(148, 163, 184, 0.2);
    box-shadow: 0 20px 42px rgba(0, 0, 0, 0.24);
}

.statement-summary-card span {
    display: block;
    margin-bottom: 10px;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.statement-summary-card strong {
    display: block;
    color: #020617;
    font-size: clamp(1.6rem, 2vw, 2.2rem);
    line-height: 1;
    font-weight: 950;
    letter-spacing: -0.035em;
}

.statement-summary-card small {
    display: block;
    margin-top: 10px;
    color: #64748b;
    font-weight: 700;
}

body.theme-dark .statement-summary-card span,
body.dark .statement-summary-card span,
html[data-theme="dark"] .statement-summary-card span,
body.theme-dark .statement-summary-card small,
body.dark .statement-summary-card small,
html[data-theme="dark"] .statement-summary-card small {
    color: #9fb5d0;
}

body.theme-dark .statement-summary-card strong,
body.dark .statement-summary-card strong,
html[data-theme="dark"] .statement-summary-card strong {
    color: #ffffff;
}

.statement-table-card {
    padding: 22px;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.07);
}

body.theme-dark .statement-table-card,
body.dark .statement-table-card,
html[data-theme="dark"] .statement-table-card {
    background: rgba(15, 23, 42, 0.9);
    border-color: rgba(148, 163, 184, 0.2);
    box-shadow: 0 20px 48px rgba(0, 0, 0, 0.25);
}

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

.statement-table-head h2 {
    margin: 8px 0 4px;
    color: #020617;
    font-size: 1.5rem;
    font-weight: 950;
    letter-spacing: -0.04em;
}

.statement-filter-secondary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 0 16px;
    border-radius: 14px;
    font-weight: 900;
    cursor: pointer;
}

.statement-table-wrap {
    overflow-x: auto;
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 18px;
}

.statement-table {
    width: 100%;
    min-width: 920px;
    border-collapse: separate;
    border-spacing: 0;
    margin: 0;
}

.statement-table thead th {
    padding: 15px 16px;
    background: #eef4fb;
    color: #334155;
    font-size: 0.76rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-bottom: 1px solid rgba(148, 163, 184, 0.24);
}

.statement-table tbody td {
    padding: 15px 16px;
    color: #0f172a;
    font-weight: 750;
    border-bottom: 1px solid rgba(148, 163, 184, 0.16);
    background: rgba(255, 255, 255, 0.78);
}

.statement-table tbody tr:last-child td {
    border-bottom: 0;
}

.statement-table tbody tr:hover td {
    background: rgba(59, 130, 246, 0.06);
}

body.theme-dark .statement-table-wrap,
body.dark .statement-table-wrap,
html[data-theme="dark"] .statement-table-wrap {
    border-color: rgba(148, 163, 184, 0.18);
}

body.theme-dark .statement-table thead th,
body.dark .statement-table thead th,
html[data-theme="dark"] .statement-table thead th {
    background: rgba(30, 41, 59, 0.98);
    color: #cbd5e1;
    border-bottom-color: rgba(148, 163, 184, 0.18);
}

body.theme-dark .statement-table tbody td,
body.dark .statement-table tbody td,
html[data-theme="dark"] .statement-table tbody td {
    background: rgba(15, 23, 42, 0.84);
    color: #e5edf8;
    border-bottom-color: rgba(148, 163, 184, 0.15);
}

body.theme-dark .statement-table tbody tr:hover td,
body.dark .statement-table tbody tr:hover td,
html[data-theme="dark"] .statement-table tbody tr:hover td {
    background: rgba(30, 41, 59, 0.95);
}

.statement-description {
    max-width: 380px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.statement-pill {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 950;
}

.statement-pill-entry,
.statement-pill-success {
    color: #047857;
    background: rgba(34, 197, 94, 0.14);
    border: 1px solid rgba(34, 197, 94, 0.25);
}

.statement-pill-exit {
    color: #b45309;
    background: rgba(249, 115, 22, 0.14);
    border: 1px solid rgba(249, 115, 22, 0.25);
}

.statement-pill-warning {
    color: #b45309;
    background: rgba(245, 158, 11, 0.15);
    border: 1px solid rgba(245, 158, 11, 0.25);
}

.statement-pill-secondary {
    color: #475569;
    background: rgba(100, 116, 139, 0.14);
    border: 1px solid rgba(100, 116, 139, 0.22);
}

body.theme-dark .statement-pill-entry,
body.dark .statement-pill-entry,
html[data-theme="dark"] .statement-pill-entry,
body.theme-dark .statement-pill-success,
body.dark .statement-pill-success,
html[data-theme="dark"] .statement-pill-success {
    color: #86efac;
}

body.theme-dark .statement-pill-exit,
body.dark .statement-pill-exit,
html[data-theme="dark"] .statement-pill-exit,
body.theme-dark .statement-pill-warning,
body.dark .statement-pill-warning,
html[data-theme="dark"] .statement-pill-warning {
    color: #fdba74;
}

.statement-value-entry { color: #16a34a !important; font-weight: 950 !important; }
.statement-value-exit { color: #dc2626 !important; font-weight: 950 !important; }

body.theme-dark .statement-value-entry,
body.dark .statement-value-entry,
html[data-theme="dark"] .statement-value-entry { color: #86efac !important; }
body.theme-dark .statement-value-exit,
body.dark .statement-value-exit,
html[data-theme="dark"] .statement-value-exit { color: #fca5a5 !important; }

.statement-empty-state {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 22px;
    border: 1px dashed rgba(59, 130, 246, 0.35);
    border-radius: 18px;
    background: rgba(59, 130, 246, 0.08);
    color: #1e3a8a;
}

.statement-empty-state strong {
    font-size: 1rem;
    font-weight: 950;
}

.statement-empty-state span {
    color: #64748b;
    font-weight: 700;
}

body.theme-dark .statement-empty-state,
body.dark .statement-empty-state,
html[data-theme="dark"] .statement-empty-state {
    background: rgba(37, 99, 235, 0.12);
    color: #bfdbfe;
}

.statement-filter-overlay[hidden] {
    display: none !important;
}

.statement-filter-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(2, 6, 23, 0.56);
    backdrop-filter: blur(10px);
}

.statement-filter-modal {
    width: min(560px, calc(100vw - 32px));
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 26px;
    background: #ffffff;
    color: #0f172a;
    box-shadow: 0 30px 90px rgba(2, 6, 23, 0.35);
    overflow: hidden;
}

body.theme-dark .statement-filter-modal,
body.dark .statement-filter-modal,
html[data-theme="dark"] .statement-filter-modal {
    background: #081527;
    color: #e5edf8;
    border-color: rgba(96, 165, 250, 0.28);
    box-shadow: 0 32px 95px rgba(0, 0, 0, 0.55);
}

.statement-filter-modal-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    padding: 24px 26px 18px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.18);
}

.statement-filter-modal-head h2 {
    margin: 8px 0 4px;
    font-size: 1.35rem;
    font-weight: 950;
    letter-spacing: -0.035em;
}

.statement-filter-close {
    width: 40px;
    height: 40px;
    border: 1px solid rgba(148, 163, 184, 0.3);
    border-radius: 14px;
    background: transparent;
    color: inherit;
    display: grid;
    place-items: center;
    cursor: pointer;
}

.statement-filter-form {
    padding: 18px 26px 24px;
}

.statement-filter-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    padding: 6px;
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 18px;
    background: rgba(148, 163, 184, 0.08);
}

.statement-filter-tab {
    min-height: 42px;
    border: 0;
    border-radius: 14px;
    background: transparent;
    color: #475569;
    font-weight: 950;
    cursor: pointer;
}

.statement-filter-tab.is-active {
    color: #ffffff;
    background: linear-gradient(135deg, #2563eb, #14b8a6);
    box-shadow: 0 12px 24px rgba(37, 99, 235, 0.22);
}

body.theme-dark .statement-filter-tab,
body.dark .statement-filter-tab,
html[data-theme="dark"] .statement-filter-tab {
    color: #cbd5e1;
}

.statement-filter-fields {
    margin-top: 18px;
}

.statement-filter-field,
.statement-filter-period {
    display: none;
}

.statement-filter-field.is-visible,
.statement-filter-period.is-visible {
    display: block;
}

.statement-filter-period.is-visible {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.statement-filter-field span {
    display: block;
    margin-bottom: 8px;
    color: #64748b;
    font-size: 0.82rem;
    font-weight: 900;
}

body.theme-dark .statement-filter-field span,
body.dark .statement-filter-field span,
html[data-theme="dark"] .statement-filter-field span {
    color: #9fb5d0;
}

.statement-filter-field input {
    width: 100%;
    min-height: 48px;
    padding: 0 14px;
    border: 1px solid rgba(148, 163, 184, 0.35);
    border-radius: 14px;
    background: #ffffff;
    color: #0f172a;
    font-weight: 850;
    outline: none;
}

.statement-filter-field input:focus {
    border-color: rgba(37, 99, 235, 0.7);
    box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12);
}

body.theme-dark .statement-filter-field input,
body.dark .statement-filter-field input,
html[data-theme="dark"] .statement-filter-field input {
    background: #ffffff;
    color: #0f172a;
}

.statement-filter-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 18px;
}

.statement-btn-cancel,
.statement-btn-submit {
    min-height: 42px;
    padding: 0 16px;
    border-radius: 14px;
    font-weight: 950;
    cursor: pointer;
}

.statement-btn-cancel {
    border: 1px solid rgba(148, 163, 184, 0.28);
    background: transparent;
    color: #475569;
}

body.theme-dark .statement-btn-cancel,
body.dark .statement-btn-cancel,
html[data-theme="dark"] .statement-btn-cancel {
    color: #cbd5e1;
}

.statement-btn-submit {
    border: 0;
}

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

@media (max-width: 760px) {
    .statement-hero-clean,
    .statement-table-head {
        align-items: stretch;
        flex-direction: column;
    }

    .statement-filter-trigger,
    .statement-filter-secondary {
        width: 100%;
    }

    .statement-summary-grid,
    .statement-filter-period.is-visible {
        grid-template-columns: 1fr;
    }

    .statement-hero-clean,
    .statement-table-card {
        padding: 20px;
        border-radius: 20px;
    }
}

/* =========================================================
   BVMS v11 - páginas compactas: Despesas, Backup e Auditoria
========================================================= */
.bvms-clean-page {
    display: grid;
    gap: 18px;
    padding: 22px 28px 34px;
}
.bvms-clean-hero {
    border: 1px solid var(--border, #dbe4f0);
    background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(248,250,252,.88));
    border-radius: 24px;
    padding: 24px 26px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    box-shadow: 0 18px 50px rgba(15,23,42,.06);
}
.bvms-clean-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: max-content;
    border-radius: 999px;
    padding: 7px 13px;
    margin-bottom: 12px;
    color: #2563eb;
    background: rgba(37,99,235,.12);
    border: 1px solid rgba(37,99,235,.22);
    font-size: 12px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.bvms-clean-pill.warning { color: #b45309; background: rgba(245,158,11,.15); border-color: rgba(245,158,11,.25); }
.bvms-clean-hero h1 {
    margin: 0;
    color: var(--text, #071126);
    font-size: clamp(30px, 3.4vw, 48px);
    line-height: .98;
    letter-spacing: -.04em;
    font-weight: 950;
}
.bvms-clean-hero p,
.bvms-table-head p,
.bvms-info-card small,
.bvms-metric-card small {
    color: var(--muted, #5b6b82);
}
.bvms-clean-hero p { margin: 12px 0 0; max-width: 780px; font-weight: 650; }
.bvms-clean-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.btn-primary-soft,
.btn-secondary-soft,
.btn-danger-soft {
    border: 0;
    border-radius: 14px;
    padding: 12px 18px;
    font-weight: 950;
    line-height: 1;
    text-decoration: none !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    cursor: pointer;
    transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
    white-space: nowrap;
}
.btn-primary-soft { color: #fff !important; background: linear-gradient(135deg,#4f46e5,#06b6d4); box-shadow: 0 16px 32px rgba(37,99,235,.20); }
.btn-secondary-soft { color: #2563eb !important; background: rgba(37,99,235,.08); border: 1px solid rgba(37,99,235,.18); }
.btn-danger-soft { color: #dc2626 !important; background: rgba(239,68,68,.10); border: 1px solid rgba(239,68,68,.18); }
.btn-primary-soft:hover,
.btn-secondary-soft:hover,
.btn-danger-soft:hover { transform: translateY(-1px); }
.btn-primary-soft.compact,
.btn-secondary-soft.compact,
.btn-danger-soft.compact { padding: 9px 12px; min-height: 34px; border-radius: 11px; font-size: 13px; }
.btn-primary-soft:disabled,
.btn-secondary-soft:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.bvms-period-strip {
    border: 1px solid var(--border, #dbe4f0);
    background: var(--surface, #fff);
    border-radius: 20px;
    padding: 16px 18px;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    box-shadow: 0 14px 32px rgba(15,23,42,.05);
}
.bvms-period-strip span { color: var(--muted, #64748b); font-size: 12px; font-weight: 950; text-transform: uppercase; letter-spacing: .05em; }
.bvms-period-strip strong { color: var(--text, #071126); font-size: 18px; }
.bvms-period-strip small { color: var(--muted, #64748b); margin-left: auto; font-weight: 800; }
.bvms-metric-grid,
.bvms-clean-grid { display: grid; gap: 14px; }
.bvms-metric-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.bvms-clean-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bvms-clean-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bvms-metric-card,
.bvms-info-card,
.bvms-table-card {
    border: 1px solid var(--border, #dbe4f0);
    background: rgba(255,255,255,.92);
    border-radius: 22px;
    box-shadow: 0 16px 44px rgba(15,23,42,.06);
}
.bvms-metric-card,
.bvms-info-card { padding: 18px; min-height: 110px; }
.bvms-metric-card span,
.bvms-info-card span {
    display: block;
    color: var(--muted, #64748b);
    font-size: 12px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: 8px;
}
.bvms-metric-card strong { display: block; color: var(--text, #071126); font-size: clamp(20px, 2vw, 29px); line-height: 1; margin-bottom: 10px; }
.bvms-info-card strong { display: block; color: var(--text, #071126); font-size: 17px; line-height: 1.2; margin-bottom: 6px; }
.bvms-metric-card.success,
.bvms-info-card.success-soft { background: linear-gradient(135deg, rgba(236,253,245,.95), rgba(255,255,255,.95)); border-color: rgba(16,185,129,.22); }
.bvms-metric-card.warning,
.bvms-info-card.warning-soft { background: linear-gradient(135deg, rgba(255,251,235,.96), rgba(255,255,255,.95)); border-color: rgba(245,158,11,.25); }
.bvms-info-card.danger-soft { background: linear-gradient(135deg, rgba(254,242,242,.96), rgba(255,255,255,.95)); border-color: rgba(239,68,68,.22); }
.bvms-table-card { padding: 18px; overflow: hidden; }
.bvms-table-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}
.bvms-table-head h2 { margin: 0 0 6px; color: var(--text,#071126); font-size: 22px; letter-spacing: -.02em; }
.bvms-table-head p { margin: 0; font-weight: 650; }
.bvms-clean-table { width: 100%; border-collapse: separate; border-spacing: 0; overflow: hidden; border-radius: 18px; }
.bvms-clean-table thead th {
    background: #eaf1f8;
    color: #0f1b33;
    padding: 14px 16px;
    font-size: 12px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .06em;
    border: 0;
}
.bvms-clean-table tbody td {
    background: #fff;
    color: #0f172a;
    padding: 15px 16px;
    border-top: 1px solid rgba(203,213,225,.9);
    vertical-align: middle;
}
.bvms-clean-table tbody td small { color: #64748b; font-weight: 700; }
.bvms-empty-row,
.bvms-empty-state {
    padding: 24px !important;
    text-align: center;
    color: var(--muted, #64748b) !important;
    font-weight: 850;
    background: rgba(248,250,252,.85) !important;
    border-radius: 16px;
}
.bvms-empty-state.compact { padding: 14px !important; text-align: left; }
.bvms-status-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 950;
    border: 1px solid transparent;
    white-space: nowrap;
}
.bvms-status-pill.success { color: #047857; background: rgba(16,185,129,.13); border-color: rgba(16,185,129,.22); }
.bvms-status-pill.warning { color: #b45309; background: rgba(245,158,11,.14); border-color: rgba(245,158,11,.26); }
.bvms-status-pill.info { color: #0369a1; background: rgba(14,165,233,.13); border-color: rgba(14,165,233,.24); }
.bvms-status-pill.neutral { color: #475569; background: rgba(100,116,139,.12); border-color: rgba(100,116,139,.20); }
.bvms-inline-form { margin: 0; display: inline-flex; }
.bvms-clean-modal-card { max-width: 640px; width: min(94vw, 640px); background: #071426 !important; border: 1px solid rgba(148,163,184,.24) !important; color: #f8fafc; }
.bvms-clean-modal-card .mini-modal-head { border-bottom: 1px solid rgba(148,163,184,.20); margin: -24px -24px 18px; padding: 22px 24px 16px; display: flex; justify-content: space-between; gap: 14px; }
.bvms-clean-modal-card .mini-modal-head span { color: #94a3b8; font-size: 12px; font-weight: 950; text-transform: uppercase; letter-spacing: .04em; }
.bvms-clean-modal-card .mini-modal-head h2 { color: #fff; margin: 4px 0 0; font-size: 22px; }
.bvms-clean-modal-card .mini-modal-head p { color: #94a3b8; margin: 6px 0 0; font-weight: 800; }
.bvms-clean-form { display: grid; gap: 14px; }
.bvms-clean-form label { color: #94a3b8; display: grid; gap: 8px; font-size: 13px; font-weight: 900; }
.bvms-clean-form input,
.bvms-clean-form select {
    width: 100%;
    min-height: 46px;
    border-radius: 13px;
    border: 1px solid rgba(148,163,184,.28);
    background: #fff;
    color: #0f172a;
    padding: 0 14px;
    font-weight: 750;
}
.bvms-form-grid.two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.bvms-radio-box,
.bvms-checkbox-box {
    border: 1px solid rgba(148,163,184,.24);
    border-radius: 16px;
    padding: 12px 14px;
    min-height: 84px;
    display: grid;
    gap: 8px;
    align-content: center;
}
.bvms-radio-box legend { color: #94a3b8; font-size: 13px; font-weight: 900; margin-bottom: 4px; }
.bvms-radio-box label,
.bvms-checkbox-box { color: #e2e8f0; font-size: 14px; display: flex; align-items: center; gap: 8px; }
.bvms-radio-box input,
.bvms-checkbox-box input { width: 16px !important; min-height: 16px !important; height: 16px !important; padding: 0; }
.bvms-period-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.bvms-period-tabs .period-tab {
    border: 1px solid rgba(148,163,184,.24);
    border-radius: 13px;
    background: rgba(15,23,42,.72);
    color: #e5e7eb;
    padding: 12px 10px;
    font-weight: 950;
}
.bvms-period-tabs .period-tab.active { border-color: transparent; background: linear-gradient(135deg,#38bdf8,#2dd4bf); color: #fff; box-shadow: 0 12px 26px rgba(45,212,191,.18); }
.bvms-modal-actions { display: flex; justify-content: flex-end; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 4px; }
.bvms-modal-actions.left { justify-content: flex-start; margin-top: 18px; }
.backup-export-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.backup-export-card {
    border: 1px solid var(--border, #dbe4f0);
    background: rgba(248,250,252,.86);
    border-radius: 20px;
    padding: 16px;
    display: grid;
    gap: 12px;
    min-height: 190px;
}
.backup-export-icon {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    color: #fff;
    background: linear-gradient(135deg,#4f46e5,#06b6d4);
    font-weight: 950;
}
.backup-export-card h3 { color: var(--text,#071126); margin: 0 0 6px; font-size: 18px; }
.backup-export-card p { color: var(--muted,#64748b); margin: 0; font-weight: 650; }
.backup-confirm-card .bvms-clean-grid { margin: 12px 0; }
.audit-details-row td { padding: 0 !important; background: rgba(241,245,249,.65) !important; }
.audit-details-box { margin: 10px; padding: 18px; border: 1px solid var(--border,#dbe4f0); border-radius: 18px; background: rgba(255,255,255,.94); }
.audit-details-grid,
.audit-metadata-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.audit-details-grid article,
.audit-description-box,
.audit-metadata-item { border: 1px solid rgba(203,213,225,.78); border-radius: 16px; padding: 13px; background: rgba(248,250,252,.85); }
.audit-details-grid span,
.audit-description-box span,
.audit-metadata-item span { display: block; color: var(--muted,#64748b); font-size: 12px; font-weight: 950; margin-bottom: 5px; text-transform: uppercase; letter-spacing: .04em; }
.audit-details-grid strong,
.audit-description-box strong,
.audit-metadata-item strong { display: block; color: var(--text,#071126); word-break: break-word; }
.audit-description-box { margin: 12px 0; }
body.theme-dark .bvms-clean-page { background: transparent; }
body.theme-dark .bvms-clean-hero,
body.theme-dark .bvms-period-strip,
body.theme-dark .bvms-metric-card,
body.theme-dark .bvms-info-card,
body.theme-dark .bvms-table-card {
    background: rgba(15,23,42,.88);
    border-color: rgba(148,163,184,.18);
    box-shadow: none;
}
body.theme-dark .bvms-clean-hero h1,
body.theme-dark .bvms-period-strip strong,
body.theme-dark .bvms-metric-card strong,
body.theme-dark .bvms-info-card strong,
body.theme-dark .bvms-table-head h2 { color: #f8fafc; }
body.theme-dark .bvms-clean-table thead th { background: rgba(226,232,240,.09); color: #e2e8f0; }
body.theme-dark .bvms-clean-table tbody td { background: #0f172a; color: #f8fafc; border-color: rgba(148,163,184,.18); }
body.theme-dark .bvms-clean-table tbody td small { color: #93a4bb; }
body.theme-dark .bvms-empty-row,
body.theme-dark .bvms-empty-state { background: rgba(15,23,42,.75) !important; color: #cbd5e1 !important; }
body.theme-dark .backup-export-card,
body.theme-dark .audit-details-box,
body.theme-dark .audit-details-grid article,
body.theme-dark .audit-description-box,
body.theme-dark .audit-metadata-item { background: rgba(15,23,42,.72); border-color: rgba(148,163,184,.18); }
body.theme-dark .backup-export-card h3,
body.theme-dark .audit-details-grid strong,
body.theme-dark .audit-description-box strong,
body.theme-dark .audit-metadata-item strong { color: #f8fafc; }
body.theme-dark .audit-details-row td { background: rgba(2,6,23,.85) !important; }
body.theme-dark .bvms-status-pill.neutral { color: #cbd5e1; background: rgba(148,163,184,.12); }
@media (max-width: 1180px) {
    .bvms-metric-grid-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .bvms-clean-grid-4,
    .backup-export-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .audit-details-grid,
    .audit-metadata-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .bvms-clean-page { padding: 16px; }
    .bvms-clean-hero { flex-direction: column; padding: 20px; }
    .bvms-clean-actions { width: 100%; justify-content: stretch; }
    .bvms-clean-actions > * { flex: 1 1 auto; }
    .bvms-metric-grid-5,
    .bvms-clean-grid-4,
    .bvms-clean-grid-3,
    .backup-export-grid,
    .audit-details-grid,
    .audit-metadata-grid,
    .bvms-form-grid.two { grid-template-columns: 1fr; }
    .bvms-period-strip small { margin-left: 0; width: 100%; }
    .bvms-period-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* =========================================================
   BVMS ERP - Produtos v12: abas no topo e Aplicar Custos limpo
========================================================= */
body.app-body .products-cost-page .products-hero-clean {
  align-items: flex-start !important;
  gap: 18px !important;
}

body.app-body .products-cost-page .products-hero-main {
  min-width: 0 !important;
  flex: 1 1 auto !important;
}

body.app-body .products-cost-page .products-tabs-inline {
  margin: 18px 0 0 !important;
  padding: 6px !important;
  width: fit-content !important;
  max-width: 100% !important;
  border-radius: 18px !important;
  background: color-mix(in srgb, var(--bvms-surface-2, #f8fafc) 78%, transparent) !important;
  border: 1px solid var(--bvms-border, #dbe3ef) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.45) !important;
}

body.app-body .products-cost-page .products-tabs-inline a {
  min-height: 38px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 9px 14px !important;
  border-radius: 14px !important;
  font-size: .9rem !important;
}

body.app-body .products-cost-page .products-tabs-inline a.active {
  background: linear-gradient(135deg, #2563eb, #14b8a6) !important;
  box-shadow: 0 10px 22px rgba(37, 99, 235, .18) !important;
}

body.app-body .products-cost-page .apply-costs-head {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px !important;
  margin: 0 0 16px !important;
  padding: 18px 20px !important;
  border-radius: 22px !important;
  border: 1px solid var(--bvms-border, #dbe3ef) !important;
  background: linear-gradient(135deg, color-mix(in srgb, #2563eb 6%, var(--bvms-surface, #fff)), var(--bvms-surface, #fff)) !important;
  box-shadow: var(--bvms-shadow, 0 12px 30px rgba(15,23,42,.075)) !important;
}

body.app-body .products-cost-page .apply-costs-head h2 {
  margin: 0 0 4px !important;
  font-size: 1.35rem !important;
}

body.app-body .products-cost-page .apply-costs-head p {
  margin: 0 !important;
  max-width: 760px !important;
}

body.app-body .products-cost-page .smart-cost-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, .55fr) !important;
  gap: 18px !important;
  align-items: start !important;
  margin-bottom: 22px !important;
}

body.app-body .products-cost-page .smart-cost-form-card,
body.app-body .products-cost-page .smart-cost-side-card {
  min-width: 0 !important;
  padding: 22px !important;
  border-radius: 22px !important;
  border: 1px solid var(--bvms-border, #dbe3ef) !important;
  background: var(--bvms-surface, #ffffff) !important;
  color: var(--bvms-text, #0f172a) !important;
  box-shadow: var(--bvms-shadow, 0 12px 30px rgba(15,23,42,.075)) !important;
}

body.app-body .products-cost-page .smart-cost-form-card h2,
body.app-body .products-cost-page .smart-cost-side-card h3 {
  margin: 0 0 6px !important;
}

body.app-body .products-cost-page .smart-cost-form {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
  margin-top: 18px !important;
}

body.app-body .products-cost-page .smart-cost-form > label,
body.app-body .products-cost-page .smart-cost-form > .cost-preview-box,
body.app-body .products-cost-page .smart-cost-form > button {
  grid-column: 1 / -1 !important;
}

body.app-body .products-cost-page .smart-cost-row {
  grid-column: 1 / -1 !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
}

body.app-body .products-cost-page .smart-cost-form label,
body.app-body .products-cost-page .modal-form-grid label {
  display: grid !important;
  gap: 7px !important;
  color: var(--bvms-text-soft, #334155) !important;
  font-size: .82rem !important;
  font-weight: 850 !important;
}

body.app-body .products-cost-page .smart-cost-form .check-line {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  padding: 12px 14px !important;
  border-radius: 16px !important;
  border: 1px solid var(--bvms-border, #dbe3ef) !important;
  background: var(--bvms-surface-2, #f8fafc) !important;
  color: var(--bvms-text-soft, #334155) !important;
}

body.app-body .products-cost-page .cost-preview-box {
  padding: 16px !important;
  border-radius: 18px !important;
  border: 1px dashed color-mix(in srgb, var(--bvms-primary, #2563eb) 38%, var(--bvms-border, #dbe3ef)) !important;
  background: color-mix(in srgb, var(--bvms-primary, #2563eb) 5%, var(--bvms-surface-2, #f8fafc)) !important;
  color: var(--bvms-text, #0f172a) !important;
}

body.app-body .products-cost-page .cost-preview-box strong {
  display: block !important;
  margin-bottom: 6px !important;
  color: var(--bvms-text, #0f172a) !important;
}

body.app-body .products-cost-page .cost-preview-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 10px !important;
  margin-top: 10px !important;
}

body.app-body .products-cost-page .cost-preview-grid span {
  padding: 12px !important;
  border-radius: 14px !important;
  border: 1px solid var(--bvms-border, #dbe3ef) !important;
  background: var(--bvms-surface, #fff) !important;
  color: var(--bvms-muted, #64748b) !important;
  font-size: .82rem !important;
}

body.app-body .products-cost-page .cost-preview-grid b {
  display: block !important;
  margin-top: 3px !important;
  color: var(--bvms-text, #0f172a) !important;
  font-size: .95rem !important;
}

body.app-body .products-cost-page .missing-cost-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 16px 0 !important;
  display: grid !important;
  gap: 10px !important;
}

body.app-body .products-cost-page .missing-cost-list li {
  padding: 13px !important;
  border-radius: 16px !important;
  border: 1px solid var(--bvms-border, #dbe3ef) !important;
  background: var(--bvms-surface-2, #f8fafc) !important;
}

body.app-body .products-cost-page .missing-cost-list strong,
body.app-body .products-cost-page .missing-cost-list span {
  display: block !important;
}

body.app-body .products-cost-page .missing-cost-list span {
  margin-top: 3px !important;
  color: var(--bvms-muted, #64748b) !important;
  font-size: .84rem !important;
}

body.app-body .products-cost-page .help-note-clean {
  padding: 14px !important;
  border-radius: 16px !important;
  background: color-mix(in srgb, var(--bvms-info, #0891b2) 8%, var(--bvms-surface, #fff)) !important;
  border: 1px solid color-mix(in srgb, var(--bvms-info, #0891b2) 20%, var(--bvms-border, #dbe3ef)) !important;
  color: var(--bvms-text-soft, #334155) !important;
  line-height: 1.5 !important;
}

body.app-body .products-cost-page .simple-modal[hidden] {
  display: none !important;
}

body.app-body .products-cost-page .simple-modal {
  position: fixed !important;
  inset: 0 !important;
  z-index: 9990 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 24px !important;
  background: rgba(15, 23, 42, .62) !important;
  backdrop-filter: blur(8px) !important;
}

body.app-body .products-cost-page .simple-modal-card {
  width: min(720px, 100%) !important;
  max-height: calc(100vh - 48px) !important;
  overflow: auto !important;
  position: relative !important;
  padding: 24px !important;
  border-radius: 24px !important;
  border: 1px solid var(--bvms-border, #dbe3ef) !important;
  background: var(--bvms-surface, #fff) !important;
  color: var(--bvms-text, #0f172a) !important;
  box-shadow: 0 24px 80px rgba(15, 23, 42, .28) !important;
}

body.app-body .products-cost-page .simple-modal-close {
  position: absolute !important;
  top: 14px !important;
  right: 14px !important;
  width: 38px !important;
  height: 38px !important;
  border-radius: 14px !important;
  border: 1px solid var(--bvms-border, #dbe3ef) !important;
  background: var(--bvms-surface-2, #f8fafc) !important;
  color: var(--bvms-text, #0f172a) !important;
  font-size: 1.2rem !important;
}

body.app-body .products-cost-page .modal-form-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
  margin-top: 16px !important;
}

body.app-body .products-cost-page .modal-form-grid .check-line,
body.app-body .products-cost-page .modal-form-grid .modal-actions {
  grid-column: 1 / -1 !important;
}

@media (prefers-color-scheme: dark) {
  body.app-body .products-cost-page .products-tabs-inline {
    background: rgba(15, 23, 42, .42) !important;
  }
}

body.app-body.theme-dark .products-cost-page .products-tabs-inline,
body.app-body.dark .products-cost-page .products-tabs-inline,
html.dark body.app-body .products-cost-page .products-tabs-inline {
  background: rgba(15, 23, 42, .42) !important;
}

@media (max-width: 1100px) {
  body.app-body .products-cost-page .smart-cost-layout {
    grid-template-columns: 1fr !important;
  }
  body.app-body .products-cost-page .cost-preview-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  body.app-body .products-cost-page .products-tabs-inline {
    width: 100% !important;
  }
  body.app-body .products-cost-page .products-tabs-inline a {
    flex: 1 1 100% !important;
  }
  body.app-body .products-cost-page .apply-costs-head {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  body.app-body .products-cost-page .smart-cost-form,
  body.app-body .products-cost-page .smart-cost-row,
  body.app-body .products-cost-page .modal-form-grid,
  body.app-body .products-cost-page .cost-preview-grid {
    grid-template-columns: 1fr !important;
  }
}

/* =========================================================
   BVMS ERP - v15 Categorias + Margem por produto
   Corrige checkboxes/seleção em categorias e deixa margem mais limpa.
========================================================= */
body.app-body .category-management-page {
  padding-bottom: 28px !important;
}

body.app-body .category-management-page .row.g-4.mb-4,
body.app-body .category-management-page .row.g-4 {
  row-gap: 18px !important;
}

body.app-body .category-management-page .card {
  overflow: hidden !important;
  margin-bottom: 18px !important;
}

body.app-body .category-management-page .card .card-body {
  padding: 20px !important;
}

body.app-body .category-management-page .d-flex.flex-wrap.align-items-center.justify-content-between.gap-2.mb-3 {
  min-height: 46px !important;
  padding: 10px 12px !important;
  border-radius: 16px !important;
  background: color-mix(in srgb, var(--bvms-surface-2, #f8fafc) 88%, transparent) !important;
  border: 1px solid var(--bvms-border, #dbe3ef) !important;
}

body.app-body .category-management-page label.form-check,
body.app-body .category-management-page .form-check {
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 0 !important;
  margin: 0 !important;
  color: var(--bvms-text, #0f172a) !important;
  line-height: 1.2 !important;
}

body.app-body .category-management-page .form-check .form-check-label,
body.app-body .category-management-page .form-check-label,
body.app-body .category-management-page label.form-check span {
  display: inline-block !important;
  width: auto !important;
  max-width: none !important;
  white-space: nowrap !important;
  overflow: visible !important;
  color: var(--bvms-text, #0f172a) !important;
  font-size: .86rem !important;
  font-weight: 800 !important;
}

body.app-body .category-management-page input.form-check-input,
body.app-body .category-management-page input[type="checkbox"].form-check-input,
body.app-body .category-management-page input[type="checkbox"] {
  width: 18px !important;
  min-width: 18px !important;
  max-width: 18px !important;
  height: 18px !important;
  min-height: 18px !important;
  max-height: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  flex: 0 0 18px !important;
  border-radius: 6px !important;
  border: 1px solid var(--bvms-border-2, #cbd5e1) !important;
  background-color: var(--bvms-surface, #fff) !important;
  box-shadow: none !important;
  cursor: pointer !important;
}

body.app-body .category-management-page table td:first-child,
body.app-body .category-management-page table th:first-child {
  width: 54px !important;
  min-width: 54px !important;
  text-align: center !important;
}

body.app-body .category-management-page table td:first-child input.form-check-input {
  display: inline-block !important;
}

body.app-body .category-management-page .btn.js-bulk-delete-button {
  opacity: 1 !important;
  min-height: 38px !important;
}

body.app-body .category-management-page .btn.js-bulk-delete-button:disabled {
  opacity: .45 !important;
  cursor: not-allowed !important;
}

body.app-body .category-management-page .table-responsive {
  max-height: none !important;
}

body.app-body .category-management-page .table td,
body.app-body .category-management-page .table th {
  padding-top: 12px !important;
  padding-bottom: 12px !important;
}

body.app-body .category-management-page .badge {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 24px !important;
  padding: 5px 9px !important;
  border-radius: 999px !important;
  font-weight: 800 !important;
}

body.app-body .product-margin-page.bvms-margin-clean {
  display: grid !important;
  gap: 18px !important;
  padding-bottom: 28px !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-hero-clean {
  align-items: center !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-hero-clean .badge {
  display: inline-flex !important;
  padding: 7px 12px !important;
  border: 1px solid color-mix(in srgb, var(--bvms-primary, #2563eb) 22%, transparent) !important;
  background: color-mix(in srgb, var(--bvms-primary, #2563eb) 12%, transparent) !important;
  color: var(--bvms-primary, #2563eb) !important;
  font-weight: 900 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-filter-inline {
  min-width: min(360px, 100%) !important;
  padding: 14px !important;
  border-radius: 18px !important;
  border: 1px solid var(--bvms-border, #dbe3ef) !important;
  background: color-mix(in srgb, var(--bvms-surface, #fff) 78%, transparent) !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-filter-inline label {
  display: block !important;
  margin: 0 0 8px !important;
  color: var(--bvms-muted, #64748b) !important;
  font-size: .78rem !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: .055em !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-filter-row {
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  gap: 10px !important;
  align-items: center !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-filter-row input {
  min-height: 42px !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-filter-row button {
  min-height: 42px !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-kpi-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 14px !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-kpi-card {
  padding: 18px !important;
  border-radius: 20px !important;
  border: 1px solid var(--bvms-border, #dbe3ef) !important;
  background: var(--bvms-surface, #fff) !important;
  box-shadow: var(--bvms-shadow, 0 12px 30px rgba(15,23,42,.075)) !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-kpi-card span,
body.app-body .product-margin-page.bvms-margin-clean .margin-kpi-card small {
  display: block !important;
  color: var(--bvms-muted, #64748b) !important;
  font-weight: 800 !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-kpi-card span {
  font-size: .76rem !important;
  text-transform: uppercase !important;
  letter-spacing: .055em !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-kpi-card strong {
  display: block !important;
  margin: 8px 0 4px !important;
  color: var(--bvms-text, #0f172a) !important;
  font-size: clamp(1.25rem, 2vw, 1.75rem) !important;
  letter-spacing: -.04em !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-kpi-card.is-negative strong { color: var(--bvms-danger, #dc2626) !important; }
body.app-body .product-margin-page.bvms-margin-clean .margin-kpi-card.is-positive strong { color: var(--bvms-success, #16a34a) !important; }

body.app-body .product-margin-page.bvms-margin-clean .margin-ranking-panel {
  overflow: hidden !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-panel-title {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin-bottom: 14px !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-panel-title span {
  display: block !important;
  margin-bottom: 4px !important;
  color: var(--bvms-muted, #64748b) !important;
  font-size: .76rem !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: .055em !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-panel-title h2 {
  margin: 0 !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-panel-title > strong {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 32px !important;
  padding: 0 12px !important;
  border-radius: 999px !important;
  background: var(--bvms-surface-2, #f8fafc) !important;
  border: 1px solid var(--bvms-border, #dbe3ef) !important;
  color: var(--bvms-muted, #64748b) !important;
  white-space: nowrap !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-empty-state {
  padding: 26px !important;
  border-radius: 18px !important;
  border: 1px dashed var(--bvms-border-2, #cbd5e1) !important;
  background: var(--bvms-surface-2, #f8fafc) !important;
  text-align: center !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-empty-state strong {
  display: block !important;
  color: var(--bvms-text, #0f172a) !important;
  margin-bottom: 6px !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-empty-state p {
  margin: 0 !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-table-wrap {
  border-radius: 18px !important;
  overflow: auto !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-ranking-table td:first-child strong {
  display: block !important;
  min-width: 210px !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-pill {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 76px !important;
  min-height: 28px !important;
  padding: 4px 9px !important;
  border-radius: 999px !important;
  font-weight: 900 !important;
  border: 1px solid transparent !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-pill.success {
  color: var(--bvms-success, #16a34a) !important;
  background: var(--bvms-success-soft, #dcfce7) !important;
  border-color: color-mix(in srgb, var(--bvms-success, #16a34a) 25%, transparent) !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-pill.warning {
  color: var(--bvms-warning, #d97706) !important;
  background: var(--bvms-warning-soft, #fff7ed) !important;
  border-color: color-mix(in srgb, var(--bvms-warning, #d97706) 25%, transparent) !important;
}

body.app-body .product-margin-page.bvms-margin-clean .margin-pill.danger {
  color: var(--bvms-danger, #dc2626) !important;
  background: var(--bvms-danger-soft, #fef2f2) !important;
  border-color: color-mix(in srgb, var(--bvms-danger, #dc2626) 25%, transparent) !important;
}

@media (max-width: 1100px) {
  body.app-body .product-margin-page.bvms-margin-clean .margin-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  body.app-body .product-margin-page.bvms-margin-clean .margin-kpi-grid,
  body.app-body .product-margin-page.bvms-margin-clean .margin-filter-row {
    grid-template-columns: 1fr !important;
  }
  body.app-body .category-management-page .d-flex.flex-wrap.align-items-center.justify-content-between.gap-2.mb-3,
  body.app-body .product-margin-page.bvms-margin-clean .margin-panel-title {
    align-items: stretch !important;
    flex-direction: column !important;
  }
}


/* =========================================================
   V16 - Correção modo noturno landing/cadastro
   Mantém textos legíveis em páginas públicas e remove conflito
   de inputs globais escuros dentro do cadastro.
========================================================= */
body.guest-body.theme-dark,
body.guest-body.dark {
    background: #07111f !important;
    color: #f8fafc !important;
}

html[data-theme="dark"] .register-wizard-page,
html.theme-dark .register-wizard-page {
    background:
        radial-gradient(circle at top left, rgba(56, 189, 248, .12), transparent 30%),
        radial-gradient(circle at top right, rgba(34, 197, 94, .10), transparent 28%),
        linear-gradient(180deg, #07111f 0%, #0b1628 100%) !important;
    color: #f8fafc !important;
}

html[data-theme="dark"] .register-wizard-page .wizard-card,
html.theme-dark .register-wizard-page .wizard-card,
html[data-theme="dark"] .register-wizard-page .plan-option,
html.theme-dark .register-wizard-page .plan-option {
    background: #111827 !important;
    border-color: rgba(148, 163, 184, .24) !important;
    color: #f8fafc !important;
}

html[data-theme="dark"] .register-wizard-page .field-group input,
html.theme-dark .register-wizard-page .field-group input,
html[data-theme="dark"] .register-wizard-page .field-group select,
html.theme-dark .register-wizard-page .field-group select {
    background: #0b1220 !important;
    color: #f8fafc !important;
    border-color: rgba(148, 163, 184, .34) !important;
}

html[data-theme="dark"] .register-wizard-page .wizard-brand,
html.theme-dark .register-wizard-page .wizard-brand,
html[data-theme="dark"] .register-wizard-page .wizard-card h1,
html.theme-dark .register-wizard-page .wizard-card h1,
html[data-theme="dark"] .register-wizard-page label,
html.theme-dark .register-wizard-page label,
html[data-theme="dark"] .register-wizard-page .plan-option li,
html.theme-dark .register-wizard-page .plan-option li {
    color: #f8fafc !important;
}

/* =========================================================
   V17 - Correção final do cadastro público
   Corrige inputs escuros no modo claro e botão de tema sem estilo.
========================================================= */
html[data-theme="light"] body.guest-body,
html.theme-light body.guest-body {
    background: #f4f7fb !important;
    color: #0f172a !important;
}

html[data-theme="light"] body.guest-body .register-wizard-page,
html.theme-light body.guest-body .register-wizard-page {
    --bvms-bg: #f8fafc !important;
    --bvms-bg-soft: #eef4fb !important;
    --bvms-surface: #ffffff !important;
    --bvms-surface-soft: #f1f5f9 !important;
    --bvms-text: #0f172a !important;
    --bvms-muted: #64748b !important;
    --bvms-border: #dbe3ef !important;
    --bvms-input-bg: #ffffff !important;
    --bvms-input-text: #0f172a !important;
    --bvms-input-border: #cbd5e1 !important;
    background:
        radial-gradient(circle at top left, rgba(37, 99, 235, .10), transparent 30%),
        radial-gradient(circle at top right, rgba(34, 197, 94, .09), transparent 28%),
        linear-gradient(180deg, #f8fafc 0%, #eef4fb 100%) !important;
    color: #0f172a !important;
}

html[data-theme="light"] body.guest-body .register-wizard-page .wizard-card,
html.theme-light body.guest-body .register-wizard-page .wizard-card,
html[data-theme="light"] body.guest-body .register-wizard-page .plan-option,
html.theme-light body.guest-body .register-wizard-page .plan-option {
    background: #ffffff !important;
    color: #0f172a !important;
    border-color: #dbe3ef !important;
}

html[data-theme="light"] body.guest-body .register-wizard-page .field-group input,
html.theme-light body.guest-body .register-wizard-page .field-group input,
html[data-theme="light"] body.guest-body .register-wizard-page .field-group select,
html.theme-light body.guest-body .register-wizard-page .field-group select {
    background: #ffffff !important;
    color: #0f172a !important;
    border-color: #cbd5e1 !important;
    -webkit-text-fill-color: #0f172a !important;
    caret-color: #2563eb !important;
}

html[data-theme="light"] body.guest-body .register-wizard-page .field-group input[readonly],
html.theme-light body.guest-body .register-wizard-page .field-group input[readonly] {
    background: #eaf2ff !important;
    color: #0f172a !important;
    -webkit-text-fill-color: #0f172a !important;
}

html[data-theme="light"] body.guest-body .register-wizard-page .field-group input::placeholder,
html.theme-light body.guest-body .register-wizard-page .field-group input::placeholder {
    color: #64748b !important;
    opacity: 1 !important;
}

body.guest-body .theme-toggle,
.register-wizard-page .theme-toggle,
.landing-page .theme-toggle {
    width: 54px !important;
    height: 36px !important;
    min-width: 54px !important;
    padding: 0 5px !important;
    border: 1px solid rgba(148, 163, 184, .34) !important;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3px !important;
    background: rgba(255, 255, 255, .78) !important;
    color: #0f172a !important;
    box-shadow: 0 10px 26px rgba(15, 23, 42, .08) !important;
    cursor: pointer !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    line-height: 1 !important;
}

html[data-theme="dark"] body.guest-body .theme-toggle,
html.theme-dark body.guest-body .theme-toggle {
    background: #0f172a !important;
    color: #f8fafc !important;
    border-color: rgba(148, 163, 184, .28) !important;
}

body.guest-body .theme-toggle span,
.register-wizard-page .theme-toggle span,
.landing-page .theme-toggle span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 20px !important;
    height: 20px !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 13px !important;
    line-height: 1 !important;
}

html[data-theme="light"] body.guest-body .register-wizard-page label,
html.theme-light body.guest-body .register-wizard-page label,
html[data-theme="light"] body.guest-body .register-wizard-page .wizard-card h1,
html.theme-light body.guest-body .register-wizard-page .wizard-card h1,
html[data-theme="light"] body.guest-body .register-wizard-page .wizard-brand,
html.theme-light body.guest-body .register-wizard-page .wizard-brand {
    color: #0f172a !important;
}


/* V18 backup - cadastro público: regra sem depender de data-theme */
body.guest-body .register-wizard-page .field-group input:not([type=checkbox]):not([type=radio]),
body.guest-body .register-wizard-page .field-group select {
  background: #ffffff !important;
  color: #0f172a !important;
  -webkit-text-fill-color: #0f172a !important;
  border-color: #cbd5e1 !important;
}
html[data-theme=dark] body.guest-body .register-wizard-page .field-group input:not([type=checkbox]):not([type=radio]),
html[data-theme=dark] body.guest-body .register-wizard-page .field-group select,
html.theme-dark body.guest-body .register-wizard-page .field-group input:not([type=checkbox]):not([type=radio]),
html.theme-dark body.guest-body .register-wizard-page .field-group select {
  background: #0b1220 !important;
  color: #f8fafc !important;
  -webkit-text-fill-color: #f8fafc !important;
  border-color: rgba(148, 163, 184, .34) !important;
}

/* =========================================================
   BVMS ERP v19 - ajustes de consistência + configurações pro
========================================================= */
body.app-body:not(.dark):not(.theme-dark) .bvms-clean-page .bvms-metric-card strong,
body.app-body:not(.dark):not(.theme-dark) .bvms-clean-page .bvms-info-card strong,
body.app-body:not(.dark):not(.theme-dark) .bvms-clean-page .bvms-period-strip strong,
body.app-body:not(.dark):not(.theme-dark) .bvms-clean-page .bvms-table-head h2 {
    color: #071126 !important;
    opacity: 1 !important;
}
body.app-body:not(.dark):not(.theme-dark) .bvms-clean-page .bvms-metric-card span,
body.app-body:not(.dark):not(.theme-dark) .bvms-clean-page .bvms-info-card span,
body.app-body:not(.dark):not(.theme-dark) .bvms-clean-page .bvms-metric-card small,
body.app-body:not(.dark):not(.theme-dark) .bvms-clean-page .bvms-info-card small,
body.app-body:not(.dark):not(.theme-dark) .bvms-clean-page .bvms-table-head p {
    color: #52637a !important;
    opacity: 1 !important;
}
body.app-body:not(.dark):not(.theme-dark) .bvms-clean-page .bvms-clean-table thead th,
body.app-body:not(.dark):not(.theme-dark) .statement-page-clean .statement-table thead th {
    background: #eaf1f8 !important;
    color: #0f1b33 !important;
}
body.app-body:not(.dark):not(.theme-dark) .bvms-clean-page .bvms-clean-table tbody td,
body.app-body:not(.dark):not(.theme-dark) .statement-page-clean .statement-table tbody td {
    background: #ffffff !important;
    color: #0f172a !important;
    border-top-color: rgba(203,213,225,.95) !important;
    opacity: 1 !important;
}
body.app-body:not(.dark):not(.theme-dark) .bvms-clean-page .bvms-clean-table tbody tr:hover td,
body.app-body:not(.dark):not(.theme-dark) .statement-page-clean .statement-table tbody tr:hover td {
    background: #f8fbff !important;
}
body.app-body:not(.dark):not(.theme-dark) .bvms-clean-page .bvms-clean-table small,
body.app-body:not(.dark):not(.theme-dark) .statement-page-clean .statement-table small {
    color: #64748b !important;
    opacity: 1 !important;
}
body.app-body:not(.dark):not(.theme-dark) .bvms-status-pill.success,
body.app-body:not(.dark):not(.theme-dark) .settings-chip.success {
    color: #047857 !important;
    background: #dcfce7 !important;
    border-color: #bbf7d0 !important;
}
body.app-body:not(.dark):not(.theme-dark) .bvms-status-pill.info {
    color: #0369a1 !important;
    background: #e0f2fe !important;
    border-color: #bae6fd !important;
}
body.app-body:not(.dark):not(.theme-dark) .bvms-status-pill.neutral {
    color: #475569 !important;
    background: #f1f5f9 !important;
    border-color: #e2e8f0 !important;
}

.settings-pro-page {
    display: grid;
    gap: 16px;
    padding: 18px 8px 36px;
    color: var(--text, #071126);
}
.settings-pro-hero,
.settings-pro-card,
.settings-pro-summary article,
.settings-pro-tabs {
    border: 1px solid var(--border, #dbe4f0);
    background: rgba(255,255,255,.92);
    box-shadow: 0 16px 42px rgba(15,23,42,.06);
}
.settings-pro-hero {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
    padding: 24px 26px;
    border-radius: 24px;
    background:
        radial-gradient(circle at left top, rgba(99,102,241,.08), transparent 34%),
        linear-gradient(135deg, rgba(255,255,255,.98), rgba(248,250,252,.9));
}
.settings-pro-pill,
.settings-card-head span {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    border-radius: 999px;
    padding: 6px 10px;
    background: rgba(37,99,235,.10);
    color: #2563eb;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .07em;
    text-transform: uppercase;
}
.settings-pro-hero h1 {
    margin: 12px 0 8px;
    color: #071126;
    font-size: clamp(30px, 3.1vw, 48px);
    line-height: .98;
    letter-spacing: -.045em;
    font-weight: 950;
}
.settings-pro-hero p,
.settings-card-head p,
.settings-pro-summary small,
.settings-muted {
    color: #5b6b82;
    font-weight: 700;
}
.settings-pro-actions,
.settings-card-head.with-switch,
.settings-modal-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}
.settings-btn,
.settings-save-bar,
.settings-inline-form button {
    border: 0;
    min-height: 40px;
    border-radius: 14px;
    padding: 0 16px;
    font-weight: 950;
    text-decoration: none !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
.settings-btn.primary,
.settings-save-bar {
    color: #fff !important;
    background: linear-gradient(135deg,#4f46e5,#06b6d4,#22c55e);
    box-shadow: 0 16px 32px rgba(37,99,235,.18);
}
.settings-btn.secondary,
.settings-inline-form button.ghost {
    color: #2563eb !important;
    background: rgba(37,99,235,.08);
    border: 1px solid rgba(37,99,235,.18);
}
.settings-pro-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}
.settings-pro-summary article {
    border-radius: 20px;
    padding: 16px 18px;
}
.settings-pro-summary span {
    display: block;
    color: #64748b;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .07em;
    text-transform: uppercase;
    margin-bottom: 7px;
}
.settings-pro-summary strong {
    display: block;
    color: #071126;
    font-size: 18px;
    line-height: 1.2;
    margin-bottom: 5px;
}
.settings-pro-tabs {
    position: sticky;
    top: 76px;
    z-index: 5;
    display: flex;
    gap: 8px;
    align-items: center;
    padding: 8px;
    border-radius: 18px;
    width: fit-content;
    max-width: 100%;
}
.settings-pro-tabs a {
    min-height: 34px;
    padding: 0 14px;
    border-radius: 12px;
    color: #475569;
    font-weight: 950;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
}
.settings-pro-tabs a:hover {
    background: rgba(37,99,235,.08);
    color: #2563eb;
}
.settings-pro-form,
.settings-pro-grid {
    display: grid;
    gap: 16px;
}
.settings-pro-grid {
    grid-template-columns: minmax(0, 1.42fr) minmax(320px, .58fr);
    align-items: stretch;
}
.settings-pro-card {
    border-radius: 24px;
    padding: 20px;
}
.settings-card-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 16px;
}
.settings-card-head.compact { margin-bottom: 12px; }
.settings-card-head h2 {
    margin: 8px 0 5px;
    color: #071126;
    font-size: 22px;
    font-weight: 950;
    letter-spacing: -.035em;
}
.settings-card-head p { margin: 0; }
.settings-form-grid {
    display: grid;
    gap: 12px;
}
.settings-form-grid.one { grid-template-columns: 1fr; }
.settings-form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.settings-form-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.settings-form-grid .span-2 { grid-column: span 2; }
.settings-form-grid label {
    display: grid;
    gap: 7px;
    color: #0f172a;
    font-size: 13px;
    font-weight: 950;
}
.settings-form-grid input,
.settings-form-grid select,
.settings-inline-form select {
    width: 100%;
    min-height: 44px;
    border: 1px solid #cbd8ea;
    border-radius: 14px;
    background: #fff;
    color: #0f172a;
    padding: 0 13px;
    font-weight: 750;
    outline: none;
}
.settings-form-grid input:focus,
.settings-form-grid select:focus,
.settings-inline-form select:focus {
    border-color: #38bdf8;
    box-shadow: 0 0 0 4px rgba(56,189,248,.16);
}
.settings-switch {
    display: inline-grid;
    grid-template-columns: auto 50px;
    gap: 10px;
    align-items: center;
    color: #475569;
    font-weight: 950;
}
.settings-switch input { position: absolute; opacity: 0; pointer-events: none; }
.settings-switch i {
    position: relative;
    width: 50px;
    height: 28px;
    border-radius: 999px;
    background: #cbd5e1;
    box-shadow: inset 0 1px 3px rgba(15,23,42,.18);
}
.settings-switch i::after {
    content: "";
    position: absolute;
    top: 4px;
    left: 4px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    transition: transform .18s ease;
}
.settings-switch input:checked + i { background: linear-gradient(135deg,#2563eb,#14b8a6); }
.settings-switch input:checked + i::after { transform: translateX(22px); }
.settings-note,
.settings-empty {
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: 16px;
    background: rgba(14,165,233,.08);
    border: 1px solid rgba(14,165,233,.18);
    color: #075985;
    font-weight: 800;
}
.settings-save-bar {
    width: 100%;
    min-height: 50px;
    font-size: 15px;
}
.settings-table-wrap {
    overflow-x: auto;
    border: 1px solid #dbe4f0;
    border-radius: 18px;
}
.settings-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}
.settings-table thead th {
    background: #eaf1f8;
    color: #0f1b33;
    padding: 13px 14px;
    font-size: 12px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .06em;
    white-space: nowrap;
}
.settings-table tbody td {
    background: #fff;
    color: #0f172a;
    padding: 13px 14px;
    border-top: 1px solid #e2e8f0;
    vertical-align: middle;
}
.settings-inline-form {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
}
.settings-inline-form.right { justify-content: flex-end; }
.settings-inline-form select { min-width: 160px; min-height: 36px; border-radius: 12px; }
.settings-inline-form button { min-height: 34px; padding: 0 12px; border-radius: 11px; color: #fff; background: #2563eb; }
.settings-chip {
    display: inline-flex;
    align-items: center;
    padding: 5px 9px;
    border-radius: 999px;
    margin-left: 7px;
    font-size: 12px;
    font-weight: 950;
    border: 1px solid transparent;
}
.settings-chip.primary { color: #2563eb; background: rgba(37,99,235,.10); border-color: rgba(37,99,235,.18); }
.settings-chip.neutral { color: #475569; background: #f1f5f9; border-color: #e2e8f0; }
.settings-chip.warning { color: #b45309; background: #fef3c7; border-color: #fde68a; }
.settings-modal[hidden] { display: none !important; }
.settings-modal {
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: grid;
    place-items: center;
    padding: 18px;
}
.settings-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(2,6,23,.58);
    backdrop-filter: blur(10px);
}
.settings-modal-card {
    position: relative;
    width: min(720px, 94vw);
    border: 1px solid rgba(148,163,184,.24);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(2,6,23,.28);
    padding: 20px;
}
.settings-modal-head {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 16px;
}
.settings-modal-head span {
    color: #2563eb;
    font-size: 12px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.settings-modal-head h2 { margin: 5px 0; color: #071126; font-size: 24px; }
.settings-modal-head p { margin: 0; color: #64748b; font-weight: 700; }
.settings-modal-head button {
    width: 38px;
    height: 38px;
    border-radius: 14px;
    border: 1px solid #dbe4f0;
    background: #f8fafc;
    color: #0f172a;
    font-size: 24px;
    font-weight: 900;
    cursor: pointer;
}
.settings-modal-actions { margin-top: 2px; }

body.theme-dark .settings-pro-page,
body.dark .settings-pro-page { color: #f8fafc; }
body.theme-dark .settings-pro-hero,
body.theme-dark .settings-pro-card,
body.theme-dark .settings-pro-summary article,
body.theme-dark .settings-pro-tabs,
body.dark .settings-pro-hero,
body.dark .settings-pro-card,
body.dark .settings-pro-summary article,
body.dark .settings-pro-tabs {
    background: rgba(15,23,42,.88);
    border-color: rgba(148,163,184,.18);
    box-shadow: none;
}
body.theme-dark .settings-pro-hero,
body.dark .settings-pro-hero {
    background:
        radial-gradient(circle at left top, rgba(56,189,248,.12), transparent 34%),
        linear-gradient(135deg, rgba(15,23,42,.94), rgba(2,6,23,.88));
}
body.theme-dark .settings-pro-hero h1,
body.theme-dark .settings-card-head h2,
body.theme-dark .settings-pro-summary strong,
body.theme-dark .settings-form-grid label,
body.theme-dark .settings-table tbody td,
body.dark .settings-pro-hero h1,
body.dark .settings-card-head h2,
body.dark .settings-pro-summary strong,
body.dark .settings-form-grid label,
body.dark .settings-table tbody td { color: #f8fafc; }
body.theme-dark .settings-pro-hero p,
body.theme-dark .settings-card-head p,
body.theme-dark .settings-pro-summary small,
body.theme-dark .settings-pro-summary span,
body.theme-dark .settings-muted,
body.dark .settings-pro-hero p,
body.dark .settings-card-head p,
body.dark .settings-pro-summary small,
body.dark .settings-pro-summary span,
body.dark .settings-muted { color: #9fb5d0; }
body.theme-dark .settings-pro-tabs a,
body.dark .settings-pro-tabs a { color: #cbd5e1; }
body.theme-dark .settings-form-grid input,
body.theme-dark .settings-form-grid select,
body.theme-dark .settings-inline-form select,
body.dark .settings-form-grid input,
body.dark .settings-form-grid select,
body.dark .settings-inline-form select {
    background: rgba(2,6,23,.58);
    color: #f8fafc;
    border-color: rgba(148,163,184,.24);
}
body.theme-dark .settings-table-wrap,
body.dark .settings-table-wrap { border-color: rgba(148,163,184,.18); }
body.theme-dark .settings-table thead th,
body.dark .settings-table thead th { background: rgba(226,232,240,.08); color: #e2e8f0; }
body.theme-dark .settings-table tbody td,
body.dark .settings-table tbody td { background: rgba(15,23,42,.66); border-color: rgba(148,163,184,.16); }
body.theme-dark .settings-modal-card,
body.dark .settings-modal-card { background: #071426; border-color: rgba(148,163,184,.22); }
body.theme-dark .settings-modal-head h2,
body.dark .settings-modal-head h2 { color: #fff; }
body.theme-dark .settings-modal-head p,
body.dark .settings-modal-head p { color: #9fb5d0; }
body.theme-dark .settings-modal-head button,
body.dark .settings-modal-head button { background: rgba(15,23,42,.9); color: #fff; border-color: rgba(148,163,184,.24); }

@media (max-width: 1120px) {
    .settings-pro-grid,
    .settings-pro-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .settings-form-grid.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .settings-pro-page { padding: 14px 0 28px; }
    .settings-pro-hero,
    .settings-card-head.with-switch { flex-direction: column; }
    .settings-pro-actions,
    .settings-card-head.with-switch { align-items: stretch; }
    .settings-pro-actions > *, .settings-card-head.with-switch > button { width: 100%; }
    .settings-pro-grid,
    .settings-pro-summary,
    .settings-form-grid.two,
    .settings-form-grid.four { grid-template-columns: 1fr; }
    .settings-form-grid .span-2 { grid-column: auto; }
    .settings-pro-tabs { position: static; width: 100%; overflow-x: auto; }
    .settings-table tbody td { white-space: nowrap; }
}


/* BVMS v21 - correção definitiva da tela de Configurações
   Mantém o novo padrão, mas remove conflitos globais que deslocavam títulos,
   apagavam textos e deixavam tabelas escuras no modo claro. */
.settings-pro-page {
    width: 100% !important;
    max-width: 100% !important;
    padding: 18px 18px 42px !important;
    gap: 14px !important;
    box-sizing: border-box !important;
}
.settings-pro-page *,
.settings-pro-page *::before,
.settings-pro-page *::after {
    box-sizing: border-box;
}
.settings-pro-hero,
.settings-pro-card,
.settings-pro-summary article,
.settings-pro-tabs {
    position: relative;
    overflow: visible !important;
    text-align: left !important;
}
.settings-pro-hero {
    align-items: center !important;
    min-height: 132px;
}
.settings-pro-hero > div:first-child,
.settings-card-head > div,
.settings-card-head.with-switch > div,
.settings-modal-head > div {
    margin: 0 !important;
    text-align: left !important;
}
.settings-card-head,
.settings-card-head.with-switch,
.settings-modal-head {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    text-align: left !important;
    width: 100% !important;
}
.settings-card-head.with-switch > div,
.settings-card-head > div:first-child {
    flex: 1 1 auto !important;
    max-width: 780px !important;
}
.settings-card-head.with-switch .settings-switch,
.settings-card-head.with-switch .settings-btn {
    flex: 0 0 auto !important;
    margin-left: auto !important;
}
.settings-card-head h2,
.settings-modal-head h2,
.settings-pro-hero h1 {
    opacity: 1 !important;
    text-align: left !important;
}
.settings-card-head p,
.settings-pro-hero p,
.settings-pro-summary small,
.settings-form-grid label,
.settings-note,
.settings-table,
.settings-table * {
    opacity: 1 !important;
}
.settings-pro-tabs {
    width: max-content !important;
    max-width: 100% !important;
    margin: 0 !important;
    align-self: flex-start !important;
}
.settings-pro-grid {
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr) !important;
    align-items: stretch !important;
}
.settings-pro-card {
    padding: 18px 20px !important;
}
.settings-pro-form {
    gap: 14px !important;
}
.settings-form-grid.four {
    grid-template-columns: minmax(190px, .9fr) minmax(260px, 1.45fr) minmax(190px, .8fr) minmax(160px, .7fr) !important;
}
.settings-form-grid.two {
    grid-template-columns: repeat(2, minmax(220px, 1fr)) !important;
}
.settings-form-grid .span-2 {
    grid-column: span 2 !important;
}
.settings-form-grid label {
    min-width: 0 !important;
}
.settings-save-bar {
    margin-top: 2px !important;
}
.settings-table-wrap {
    width: 100% !important;
    overflow-x: auto !important;
}
.settings-table {
    min-width: 880px !important;
}
.settings-table th,
.settings-table td {
    text-align: left !important;
}
.settings-table .text-end,
.settings-table th.text-end,
.settings-table td.text-end {
    text-align: right !important;
}
.settings-inline-form {
    max-width: 100% !important;
}
.settings-inline-form select {
    width: auto !important;
    max-width: 190px !important;
}

body.app-body:not(.dark):not(.theme-dark) .settings-pro-page {
    color: #071126 !important;
}
body.app-body:not(.dark):not(.theme-dark) .settings-pro-hero,
body.app-body:not(.dark):not(.theme-dark) .settings-pro-card,
body.app-body:not(.dark):not(.theme-dark) .settings-pro-summary article,
body.app-body:not(.dark):not(.theme-dark) .settings-pro-tabs,
body:not(.dark):not(.theme-dark) .settings-pro-hero,
body:not(.dark):not(.theme-dark) .settings-pro-card,
body:not(.dark):not(.theme-dark) .settings-pro-summary article,
body:not(.dark):not(.theme-dark) .settings-pro-tabs {
    background: rgba(255,255,255,.96) !important;
    border-color: #d7e2ef !important;
    box-shadow: 0 16px 38px rgba(15,23,42,.06) !important;
}
body.app-body:not(.dark):not(.theme-dark) .settings-pro-hero,
body:not(.dark):not(.theme-dark) .settings-pro-hero {
    background: radial-gradient(circle at left top, rgba(99,102,241,.08), transparent 34%), linear-gradient(135deg,#fff,#f8fbff) !important;
}
body.app-body:not(.dark):not(.theme-dark) .settings-pro-hero h1,
body.app-body:not(.dark):not(.theme-dark) .settings-card-head h2,
body.app-body:not(.dark):not(.theme-dark) .settings-pro-summary strong,
body.app-body:not(.dark):not(.theme-dark) .settings-form-grid label,
body.app-body:not(.dark):not(.theme-dark) .settings-table tbody td,
body:not(.dark):not(.theme-dark) .settings-pro-hero h1,
body:not(.dark):not(.theme-dark) .settings-card-head h2,
body:not(.dark):not(.theme-dark) .settings-pro-summary strong,
body:not(.dark):not(.theme-dark) .settings-form-grid label,
body:not(.dark):not(.theme-dark) .settings-table tbody td {
    color: #071126 !important;
}
body.app-body:not(.dark):not(.theme-dark) .settings-pro-hero p,
body.app-body:not(.dark):not(.theme-dark) .settings-card-head p,
body.app-body:not(.dark):not(.theme-dark) .settings-pro-summary small,
body.app-body:not(.dark):not(.theme-dark) .settings-pro-summary span,
body.app-body:not(.dark):not(.theme-dark) .settings-muted,
body:not(.dark):not(.theme-dark) .settings-pro-hero p,
body:not(.dark):not(.theme-dark) .settings-card-head p,
body:not(.dark):not(.theme-dark) .settings-pro-summary small,
body:not(.dark):not(.theme-dark) .settings-pro-summary span,
body:not(.dark):not(.theme-dark) .settings-muted {
    color: #50627a !important;
}
body.app-body:not(.dark):not(.theme-dark) .settings-form-grid input,
body.app-body:not(.dark):not(.theme-dark) .settings-form-grid select,
body.app-body:not(.dark):not(.theme-dark) .settings-inline-form select,
body:not(.dark):not(.theme-dark) .settings-form-grid input,
body:not(.dark):not(.theme-dark) .settings-form-grid select,
body:not(.dark):not(.theme-dark) .settings-inline-form select {
    background: #fff !important;
    color: #0f172a !important;
    border-color: #cbd8ea !important;
}
body.app-body:not(.dark):not(.theme-dark) .settings-table-wrap,
body:not(.dark):not(.theme-dark) .settings-table-wrap {
    border-color: #d7e2ef !important;
    background: #fff !important;
}
body.app-body:not(.dark):not(.theme-dark) .settings-table thead th,
body:not(.dark):not(.theme-dark) .settings-table thead th {
    background: #eaf1f8 !important;
    color: #0f1b33 !important;
    border-color: #d7e2ef !important;
}
body.app-body:not(.dark):not(.theme-dark) .settings-table tbody td,
body:not(.dark):not(.theme-dark) .settings-table tbody td {
    background: #fff !important;
    color: #0f172a !important;
    border-top-color: #e2e8f0 !important;
}
body.app-body:not(.dark):not(.theme-dark) .settings-table tbody tr:hover td,
body:not(.dark):not(.theme-dark) .settings-table tbody tr:hover td {
    background: #f8fbff !important;
}
body.app-body:not(.dark):not(.theme-dark) .settings-chip.success,
body:not(.dark):not(.theme-dark) .settings-chip.success {
    color: #047857 !important;
    background: #dcfce7 !important;
    border-color: #bbf7d0 !important;
}
body.app-body:not(.dark):not(.theme-dark) .settings-chip.primary,
body:not(.dark):not(.theme-dark) .settings-chip.primary {
    color: #2563eb !important;
    background: #dbeafe !important;
    border-color: #bfdbfe !important;
}
body.app-body:not(.dark):not(.theme-dark) .settings-note,
body:not(.dark):not(.theme-dark) .settings-note {
    color: #075985 !important;
    background: #e0f2fe !important;
    border-color: #bae6fd !important;
}

@media (max-width: 1180px) {
    .settings-pro-grid,
    .settings-pro-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .settings-form-grid.four {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 760px) {
    .settings-pro-page { padding: 14px 10px 30px !important; }
    .settings-pro-hero,
    .settings-card-head,
    .settings-card-head.with-switch,
    .settings-modal-head {
        flex-direction: column !important;
        align-items: stretch !important;
    }
    .settings-pro-actions,
    .settings-card-head.with-switch .settings-btn,
    .settings-card-head.with-switch .settings-switch {
        width: 100% !important;
        margin-left: 0 !important;
    }
    .settings-pro-grid,
    .settings-pro-summary,
    .settings-form-grid.two,
    .settings-form-grid.four {
        grid-template-columns: 1fr !important;
    }
    .settings-form-grid .span-2 { grid-column: auto !important; }
    .settings-pro-tabs { width: 100% !important; overflow-x: auto !important; }
}


/* =========================================================
   BVMS ERP - Responsive + tema automático + dashboard compacto
========================================================= */

html[data-theme="light"],
html.theme-light,
body.theme-light,
body.app-body:not(.theme-dark):not(.dark) {
  --v2-bg: #f4f7fb;
  --v2-surface: #ffffff;
  --v2-card: #ffffff;
  --v2-input: #ffffff;
  --v2-text: #0f172a;
  --v2-muted: #64748b;
  --v2-border: #dbe3ef;
  --v2-soft: #f1f5f9;
  --v2-primary: #2563eb;
  --v2-primary-soft: rgba(37, 99, 235, 0.10);
  --v2-blue: #2563eb;
  --v2-green: #14b8a6;
  --v2-shadow: 0 16px 44px rgba(15, 23, 42, 0.08);
  --surface: #ffffff;
  --surface-soft: #f8fafc;
  --text: #0f172a;
  --muted: #64748b;
  --border: #dbe3ef;
  --primary: #2563eb;
  --secondary: #14b8a6;
  --bg-soft: #f8fafc;
  --input-bg: #ffffff;
  --input-border: #dbe3ef;
  --card-shadow: 0 18px 48px rgba(15, 23, 42, 0.08);
  --card-shadow-soft: 0 12px 32px rgba(15, 23, 42, 0.07);
  --progress: linear-gradient(90deg, #2563eb, #14b8a6);
  --mini-bg: #f4f7fb;
  --mini-surface: #ffffff;
  --mini-surface-2: #f8fbff;
  --mini-surface-3: #eef4fb;
  --mini-text: #0f172a;
  --mini-muted: #64748b;
  --mini-border: rgba(148, 163, 184, .22);
  --mini-shadow: 0 18px 48px rgba(15, 23, 42, .08);
  --mini-blue: #2563eb;
  --mini-cyan: #14b8a6;
  --mini-teal: #0ea5a4;
  --mini-purple: #7c3aed;
  --mini-green: #16a34a;
  --mini-orange: #d97706;
  --mini-red: #dc2626;
  --mini-glow-blue: rgba(37, 99, 235, .16);
  --mini-glow-cyan: rgba(20, 184, 166, .16);
}

html[data-theme="dark"],
html.theme-dark,
body.theme-dark,
body.dark {
  --v2-bg: #07111f;
  --v2-surface: #0f172a;
  --v2-card: #0f172a;
  --v2-input: #0f172a;
  --v2-text: #edf6ff;
  --v2-muted: #92a3bf;
  --v2-border: rgba(135, 176, 230, .17);
  --v2-soft: #111f36;
  --v2-primary: #23a4ff;
  --v2-primary-soft: rgba(35, 164, 255, .14);
  --v2-blue: #23a4ff;
  --v2-green: #14f1d9;
  --v2-shadow: 0 22px 60px rgba(0, 0, 0, .30);
  --surface: #0f172a;
  --surface-soft: #111f36;
  --text: #edf6ff;
  --muted: #92a3bf;
  --border: rgba(135, 176, 230, .17);
  --primary: #23a4ff;
  --secondary: #14f1d9;
  --bg-soft: #111f36;
  --input-bg: #0f172a;
  --input-border: rgba(135, 176, 230, .17);
  --card-shadow: 0 24px 64px rgba(0, 0, 0, .30);
  --card-shadow-soft: 0 18px 50px rgba(0, 0, 0, .24);
  --progress: linear-gradient(90deg, #23a4ff, #14f1d9);
  --mini-bg: #06101e;
  --mini-surface: #0d1a2f;
  --mini-surface-2: #111f36;
  --mini-surface-3: #162942;
  --mini-text: #edf6ff;
  --mini-muted: #92a3bf;
  --mini-border: rgba(135, 176, 230, .17);
  --mini-shadow: 0 22px 60px rgba(0, 0, 0, .30);
  --mini-blue: #23a4ff;
  --mini-cyan: #14f1d9;
  --mini-teal: #0ee6c4;
  --mini-purple: #9b5cff;
  --mini-green: #16d69b;
  --mini-orange: #ffb14a;
  --mini-red: #ff5675;
  --mini-glow-blue: rgba(35, 164, 255, .23);
  --mini-glow-cyan: rgba(20, 241, 217, .18);
}

body.app-body,
.bvms-layout-shell,
.page-content,
body.app-body main.page-content {
  background: var(--v2-bg) !important;
  color: var(--v2-text) !important;
}

.sidebar-clean-nav {
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding-right: 0 !important;
}

.sidebar-clean-nav::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

body.app-body .table-responsive,
body.app-body .preview-table-wrap,
body.app-body .statement-table-wrap,
body.app-body .category-table-wrap,
body.app-body .settings-pro-tabs,
body.app-body .settings-top-nav,
body.app-body .product-filters-chip-row {
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

body.app-body .table-responsive > table,
body.app-body .preview-table,
body.app-body .statement-table,
body.app-body .category-table,
body.app-body .erp-table,
body.app-body .bvms-clean-table,
body.app-body .table {
  color: inherit;
}

body.app-body .page-content:has(.bvms-dashboard-minimal),
body.app-body main.page-content:has(.bvms-dashboard-minimal) {
  background:
    radial-gradient(circle at 12% 0%, color-mix(in srgb, var(--mini-blue) 11%, transparent), transparent 30%),
    radial-gradient(circle at 88% 12%, color-mix(in srgb, var(--mini-cyan) 9%, transparent), transparent 28%),
    var(--mini-bg) !important;
  color: var(--mini-text) !important;
  padding: 20px 24px 28px !important;
}

.mini-dash-header {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: start;
  padding: 16px !important;
  border-radius: 22px !important;
}

.mini-title-row {
  gap: 10px !important;
  align-items: flex-start !important;
}

.mini-dash-title h1 {
  font-size: clamp(26px, 2.6vw, 38px) !important;
}

.mini-period-trigger {
  min-height: 40px;
  gap: 8px;
  padding: 0 10px;
  border-radius: 13px;
  box-shadow: none;
  white-space: nowrap;
}

.mini-period-trigger > i:first-child {
  width: 26px;
  height: 26px;
  display: inline-grid;
  place-items: center;
  border-radius: 9px;
  background: color-mix(in srgb, var(--mini-blue) 12%, transparent);
  color: var(--mini-blue);
  font-size: 12px;
}

.mini-period-trigger span {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.mini-period-trigger strong {
  font-size: 14px;
}

.mini-period-trigger small {
  width: 24px;
  height: 24px;
  display: inline-grid;
  place-items: center;
  color: var(--mini-cyan);
  font-size: 12px;
}

.mini-period-trigger small i { margin: 0; }

.mini-module-tabs {
  justify-content: flex-start !important;
  align-content: start;
}

.mini-module-tabs a {
  min-height: 34px !important;
  padding: 0 10px !important;
  gap: 6px !important;
  border-radius: 12px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}

.mini-module-tabs a i {
  font-size: 13px;
}

.mini-alerts-under-title {
  margin-top: -2px;
}

.mini-alerts-summary {
  padding: 14px 16px !important;
}

/* garante tema correto em cards comuns de páginas com CSS inline */
body.app-body .card,
body.app-body .simple-card,
body.app-body .bvms-table-card,
body.app-body .table-card-clean,
body.app-body .bvms-panel,
body.app-body .settings-section-card,
body.app-body .settings-users-card,
body.app-body .category-modal-card,
body.app-body .simple-modal-card,
body.app-body .bvms-modal-card,
body.app-body .statement-table-card,
body.app-body .mini-period-modal {
  background: var(--surface) !important;
  color: var(--text) !important;
  border-color: var(--border) !important;
}

body.app-body input,
body.app-body select,
body.app-body textarea,
body.app-body .form-control,
body.app-body .form-select {
  background: var(--input-bg) !important;
  color: var(--text) !important;
  border-color: var(--input-border) !important;
}

body.app-body input::placeholder,
body.app-body textarea::placeholder {
  color: var(--muted) !important;
}

body.app-body .table,
body.app-body .table > :not(caption) > * > * {
  background-color: transparent !important;
  color: inherit !important;
  border-color: var(--border) !important;
}

body.app-body .table-light,
body.app-body .table > thead,
body.app-body .table thead th {
  background: color-mix(in srgb, var(--surface) 82%, var(--v2-soft)) !important;
  color: var(--text) !important;
}

body.app-body .badge.bg-light,
body.app-body .badge.text-bg-light,
body.app-body .text-bg-light {
  background: var(--v2-soft) !important;
  color: var(--text) !important;
}

@media (max-width: 1199px) {
  body.app-body .settings-page-shell,
  body.app-body .settings-grid,
  body.app-body .backup-export-grid,
  body.app-body .audit-metadata-grid,
  body.app-body .bvms-metric-grid-5,
  body.app-body .bvms-clean-grid-4,
  body.app-body .settings-form-grid.four,
  body.app-body .settings-form-grid,
  body.app-body .settings-pro-grid,
  body.app-body .statement-summary-grid,
  body.app-body .statement-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 980px) {
  .mini-dash-header {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .mini-title-row {
    justify-content: space-between;
  }

  .mini-module-tabs {
    justify-content: flex-start !important;
  }

  body.app-body .page-content,
  body.app-body main.page-content {
    padding: 18px !important;
  }

  body.app-body .settings-page-shell,
  body.app-body .settings-grid,
  body.app-body .settings-form-grid,
  body.app-body .settings-form-grid.four,
  body.app-body .backup-export-grid,
  body.app-body .audit-metadata-grid,
  body.app-body .bvms-metric-grid-5,
  body.app-body .bvms-clean-grid-4,
  body.app-body .statement-summary-grid,
  body.app-body .statement-filter-grid,
  body.app-body .top-products-grid,
  body.app-body .report-kpi-grid,
  body.app-body .report-filter-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 700px) {
  .mini-dash-header {
    padding: 14px !important;
    border-radius: 18px !important;
  }

  .mini-eyebrow {
    font-size: 11px;
    min-height: 22px;
  }

  .mini-title-row {
    flex-direction: column;
    align-items: stretch !important;
  }

  .mini-period-trigger {
    width: 100%;
    justify-content: flex-start;
  }

  .mini-module-tabs {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px !important;
  }

  .mini-module-tabs a {
    width: 100%;
    justify-content: flex-start !important;
  }

  body.app-body .topbar-actions-clean {
    gap: 6px !important;
    flex-wrap: nowrap;
  }

  body.app-body .topbar-clean-icon {
    width: 36px !important;
    height: 36px !important;
    border-radius: 12px !important;
  }

  body.app-body .topbar-profile-clean {
    padding-right: 8px;
  }

  body.app-body .topbar-profile-clean span:first-child {
    width: 32px;
    height: 32px;
  }

  body.app-body .table-responsive,
  body.app-body .preview-table-wrap,
  body.app-body .statement-table-wrap,
  body.app-body .category-table-wrap {
    margin: 0 -2px;
  }
}


/* =========================================================
   BVMS - Filtros compactos unificados
========================================================= */

.bvms-compact-filter-shell {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  width: auto;
  min-width: 0;
}

.bvms-compact-filter-trigger,
.bvms-period-summary,
.statement-filter-trigger {
  min-height: 48px !important;
  border-radius: 16px !important;
  border: 1px solid var(--v2-border, #dbe3ef) !important;
  background: var(--v2-surface, #fff) !important;
  color: var(--v2-text, #0f172a) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 8px 12px !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .06) !important;
  width: min(100%, 280px);
  text-align: left;
}

.bvms-compact-filter-trigger::-webkit-details-marker,
details.bvms-compact-filter-shell summary::-webkit-details-marker { display:none; }

.bvms-compact-filter-icon,
.bvms-period-summary > i,
.bvms-compact-filter-action {
  width: 28px;
  height: 28px;
  border-radius: 10px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 28px;
}

.bvms-compact-filter-icon,
.bvms-period-summary > i {
  background: linear-gradient(135deg, rgba(37,99,235,.12), rgba(20,184,166,.18)) !important;
  color: var(--v2-primary, #2563eb) !important;
}

.bvms-compact-filter-action {
  background: transparent !important;
  color: #11bba0 !important;
  margin-left: auto;
}

.bvms-compact-filter-copy,
.bvms-period-summary > span {
  display: grid;
  gap: 2px;
  min-width: 0;
  flex: 1;
}

.bvms-compact-filter-copy small,
.bvms-period-summary small {
  color: var(--v2-muted, #64748b) !important;
  font-size: 10px !important;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin: 0 !important;
}

.bvms-compact-filter-copy strong,
.bvms-period-summary strong {
  color: var(--v2-text, #0f172a) !important;
  font-size: 14px !important;
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.bvms-compact-filter-shell > .bvms-compact-filter-panel,
.bvms-compact-filter-shell > .bvms-dynamic-filter-panel,
details.bvms-compact-filter-shell > form {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  z-index: 40;
  width: min(720px, calc(100vw - 32px));
  background: var(--v2-surface, #fff) !important;
  color: var(--v2-text, #0f172a) !important;
  border: 1px solid var(--v2-border, #dbe3ef) !important;
  border-radius: 22px !important;
  box-shadow: 0 24px 60px rgba(15, 23, 42, .14) !important;
  padding: 16px !important;
}

[data-filter-direction="side"] > .bvms-compact-filter-panel,
[data-filter-direction="side"] > .bvms-dynamic-filter-panel {
  left: calc(100% + 12px);
  top: 0;
}

details.bvms-compact-filter-shell > form { display:none; }
details.bvms-compact-filter-shell[open] > form { display:block; }

.bvms-compact-filter-form,
.bvms-compact-filter-panel form {
  display: grid;
  gap: 14px;
}

.bvms-compact-filter-grid,
.bvms-compact-filter-form .bvms-form-grid,
.bvms-compact-filter-panel .bvms-form-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bvms-compact-filter-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bvms-compact-filter-field { display: grid; gap: 6px; font-weight: 800; color: var(--v2-text, #0f172a); }
.bvms-compact-filter-field input,
.bvms-compact-filter-field select,
.bvms-compact-filter-form input,
.bvms-compact-filter-form select { width: 100%; }
.bvms-compact-filter-actions { display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-start; }
.bvms-clean-actions .bvms-compact-filter-shell,
.hero-actions-clean .bvms-compact-filter-shell,
.statement-hero-clean .bvms-compact-filter-shell { flex: 0 0 auto; }

.products-filter-details, .filter-card-clean { overflow: visible !important; }
.products-filter-details > summary { list-style:none; }
.products-filter-summary i::before, .bvms-period-summary i::before { content: '\2630'; font-style: normal; font-weight: 900; }

.statement-hero-clean .bvms-compact-filter-trigger,
.margin-hero-clean .bvms-compact-filter-trigger,
.page-header .bvms-compact-filter-trigger { width: min(100%, 260px); }

@media (max-width: 980px) {
  .bvms-compact-filter-shell { width: 100%; }
  .bvms-compact-filter-trigger, .bvms-period-summary { width: 100% !important; max-width: none; }
  .bvms-compact-filter-shell > .bvms-compact-filter-panel,
  .bvms-compact-filter-shell > .bvms-dynamic-filter-panel,
  details.bvms-compact-filter-shell > form,
  [data-filter-direction="side"] > .bvms-compact-filter-panel,
  [data-filter-direction="side"] > .bvms-dynamic-filter-panel {
    left: 0 !important;
    top: calc(100% + 10px) !important;
    width: min(calc(100vw - 32px), 100%) !important;
  }
  .bvms-compact-filter-grid,
  .bvms-compact-filter-grid.two,
  .bvms-compact-filter-form .bvms-form-grid,
  .bvms-compact-filter-panel .bvms-form-grid { grid-template-columns: 1fr !important; }
}

/* =========================================================
   BVMS - Mobile layout v5: sidebar drawer, topbar auto-hide,
   DRE/Vendas/Planejamento responsivos
========================================================= */

.topbar-mobile-menu {
    display: none !important;
}

.bvms-mobile-sidebar-backdrop {
    display: none;
}

body.app-body .bvms-topbar-clean {
    transition: transform .22s ease, box-shadow .22s ease, background .22s ease !important;
    will-change: transform;
}

/* Evita botão automático do planejamento fora do container, caso exista cache antigo do JS. */
body.app-body .page-header .bvms-page-actions .bvms-auto-modal-open,
body.app-body .page-header > .bvms-page-actions:empty {
    display: none !important;
}

/* Planejamento mais contido e responsivo */
body.app-body .page-header + .erp-data-flow + .row,
body.app-body .page-header + .erp-data-flow,
body.app-body .page-header + .erp-data-flow + .row .card {
    max-width: 100% !important;
}

body.app-body .page-header + .erp-data-flow + .row .card {
    overflow: hidden !important;
}

body.app-body .page-header + .erp-data-flow + .row .table-responsive,
body.app-body .page-header + .erp-data-flow + .row .table {
    max-width: 100% !important;
}

/* Tabelas não empurram a página para fora: rolagem fica dentro do card. */
body.app-body .table-responsive,
body.app-body .statement-table-wrap,
body.app-body .preview-table-wrap,
body.app-body .category-table-wrap,
body.app-body .margin-table-wrap {
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

body.app-body .sales-page-clean .erp-table,
body.app-body .dre-page-clean .dre-table,
body.app-body .dre-page-clean table,
body.app-body .product-margin-page .margin-ranking-table,
body.app-body .page-header + .erp-data-flow + .row table {
    width: 100% !important;
}

@media (max-width: 900px) {
    html,
    body.app-body {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: hidden !important;
    }

    .topbar-mobile-menu {
        display: grid !important;
        flex: 0 0 38px !important;
    }

    body.app-body .bvms-layout-shell {
        display: block !important;
        min-height: 100vh !important;
        width: 100% !important;
        overflow-x: hidden !important;
    }

    body.app-body .bvms-main-shell {
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
    }

    body.app-body .bvms-sidebar-clean {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        bottom: 0 !important;
        width: min(84vw, 320px) !important;
        min-width: 0 !important;
        max-width: 320px !important;
        height: 100dvh !important;
        z-index: 1200 !important;
        transform: translateX(-108%) !important;
        transition: transform .24s ease !important;
        border-right: 1px solid var(--v2-border, #dbe3ef) !important;
        box-shadow: 22px 0 70px rgba(15, 23, 42, .22) !important;
        padding: 16px 12px !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        background: var(--v2-surface, #ffffff) !important;
    }

    body.app-body.mobile-sidebar-open .bvms-sidebar-clean {
        transform: translateX(0) !important;
    }

    body.app-body.mobile-sidebar-open {
        overflow: hidden !important;
    }

    .bvms-mobile-sidebar-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 1190;
        background: rgba(2, 6, 23, .48);
        opacity: 0;
        pointer-events: none;
        transition: opacity .2s ease;
        backdrop-filter: blur(2px);
    }

    .bvms-mobile-sidebar-backdrop.is-open {
        opacity: 1;
        pointer-events: auto;
    }

    body.app-body .bvms-sidebar-clean .sidebar-clean-brand-text,
    body.app-body .bvms-sidebar-clean .sidebar-user-copy,
    body.app-body .bvms-sidebar-clean .sidebar-user-chevron,
    body.app-body .bvms-sidebar-clean .sidebar-clean-link span,
    body.app-body .bvms-sidebar-clean .sidebar-clean-sublink span,
    body.app-body .bvms-sidebar-clean .sidebar-more-chevron,
    body.app-body .bvms-sidebar-clean .sidebar-plan-card {
        display: initial !important;
    }

    body.app-body .bvms-sidebar-clean .sidebar-clean-link,
    body.app-body .bvms-sidebar-clean .sidebar-clean-sublink {
        justify-content: flex-start !important;
        padding: 0 13px !important;
    }

    body.app-body .bvms-sidebar-clean .sidebar-user-card {
        display: grid !important;
        grid-template-columns: 42px 1fr 14px !important;
        justify-content: initial !important;
        padding: 12px !important;
    }

    body.app-body .sidebar-clean-nav {
        max-height: calc(100dvh - 190px) !important;
        overflow-y: auto !important;
        scrollbar-width: none !important;
    }

    body.app-body .bvms-topbar-clean {
        min-height: 64px !important;
        height: 64px !important;
        padding: 0 12px !important;
        position: sticky !important;
        top: 0 !important;
        z-index: 900 !important;
        gap: 8px !important;
    }

    body.app-body.topbar-mobile-hidden .bvms-topbar-clean {
        transform: translateY(-110%) !important;
    }

    body.app-body .topbar-company-clean,
    body.app-body .topbar-profile-copy,
    body.app-body .topbar-assistant-button {
        display: none !important;
    }

    body.app-body .topbar-actions-clean {
        margin-left: auto !important;
        gap: 6px !important;
        min-width: 0 !important;
        flex-wrap: nowrap !important;
    }

    body.app-body .topbar-clean-icon {
        width: 38px !important;
        height: 38px !important;
        min-width: 38px !important;
        border-radius: 13px !important;
    }

    body.app-body .topbar-profile-clean {
        min-width: 38px !important;
        height: 38px !important;
        padding: 2px !important;
        border-radius: 13px !important;
    }

    body.app-body .topbar-profile-clean span:first-child {
        width: 32px !important;
        height: 32px !important;
        border-radius: 11px !important;
    }

    body.app-body .page-content,
    body.app-body main.page-content {
        width: 100% !important;
        max-width: 100% !important;
        padding: 14px !important;
        overflow-x: hidden !important;
    }
}

@media (max-width: 760px) {
    body.app-body .sales-page-clean,
    body.app-body .dre-page-clean,
    body.app-body .product-margin-page,
    body.app-body .expenses-clean-page,
    body.app-body .statement-page-clean,
    body.app-body .bvms-clean-page,
    body.app-body .dashboard-exec,
    body.app-body .bvms-dashboard-minimal,
    body.app-body .page-header,
    body.app-body .page-hero-clean,
    body.app-body .dre-hero-card,
    body.app-body .statement-hero-clean,
    body.app-body .margin-hero-clean {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow-x: hidden !important;
        box-sizing: border-box !important;
    }

    body.app-body .page-hero-clean,
    body.app-body .dre-hero-card,
    body.app-body .statement-hero-clean,
    body.app-body .margin-hero-clean,
    body.app-body .bvms-clean-hero,
    body.app-body .page-header .d-flex,
    body.app-body .page-header {
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 12px !important;
    }

    body.app-body .hero-actions-clean,
    body.app-body .bvms-clean-actions,
    body.app-body .filter-actions-clean,
    body.app-body .statement-filter-secondary,
    body.app-body .dre-filter-submit {
        width: 100% !important;
        justify-content: stretch !important;
    }

    body.app-body .hero-actions-clean > *,
    body.app-body .bvms-clean-actions > *,
    body.app-body .filter-actions-clean > *,
    body.app-body .statement-filter-secondary,
    body.app-body .dre-filter-submit,
    body.app-body .btn-primary-soft,
    body.app-body .btn-secondary-soft {
        max-width: 100%;
    }

    body.app-body .sales-kpis,
    body.app-body .kpi-grid-clean,
    body.app-body .dre-kpi-grid,
    body.app-body .margin-kpi-grid,
    body.app-body .statement-summary-grid,
    body.app-body .bvms-metric-grid,
    body.app-body .bvms-metric-grid-5,
    body.app-body .bvms-clean-grid,
    body.app-body .bvms-clean-grid-4,
    body.app-body .erp-data-flow,
    body.app-body .mini-kpi-grid,
    body.app-body .mini-dashboard-grid,
    body.app-body .sales-summary-grid,
    body.app-body .expenses-summary-grid,
    body.app-body .dash-metrics-grid,
    body.app-body .dash-fixed-metrics,
    body.app-body .filter-grid-clean,
    body.app-body .dre-filter-fields,
    body.app-body .expenses-filter-form,
    body.app-body .expense-form,
    body.app-body .modal-grid {
        grid-template-columns: 1fr !important;
    }

    body.app-body .card,
    body.app-body .table-card-clean,
    body.app-body .bvms-table-card,
    body.app-body .dre-panel,
    body.app-body .dre-hero-card,
    body.app-body .page-hero-clean,
    body.app-body .bvms-clean-hero,
    body.app-body .statement-table-card,
    body.app-body .margin-ranking-panel,
    body.app-body .mini-panel,
    body.app-body .mini-kpi-card {
        border-radius: 18px !important;
        max-width: 100% !important;
        overflow: hidden !important;
    }

    body.app-body .card-body,
    body.app-body .table-card-clean,
    body.app-body .bvms-table-card,
    body.app-body .dre-panel,
    body.app-body .dre-hero-card,
    body.app-body .page-hero-clean,
    body.app-body .bvms-clean-hero,
    body.app-body .statement-table-card,
    body.app-body .margin-ranking-panel {
        padding: 16px !important;
    }

    body.app-body h1,
    body.app-body .dre-hero-copy h1,
    body.app-body .sales-title-block h1,
    body.app-body .page-hero-clean h1,
    body.app-body .bvms-clean-hero h1,
    body.app-body .statement-hero-clean h1,
    body.app-body .margin-hero-clean h1 {
        font-size: clamp(26px, 9vw, 34px) !important;
        line-height: 1.04 !important;
        letter-spacing: -0.045em !important;
    }

    body.app-body .sales-page-clean .erp-table,
    body.app-body .dre-page-clean .dre-table,
    body.app-body .dre-page-clean table,
    body.app-body .product-margin-page .margin-ranking-table,
    body.app-body .statement-table,
    body.app-body .page-header + .erp-data-flow + .row table {
        min-width: 720px !important;
    }

    body.app-body .sales-actions-cell,
    body.app-body .actions-cell {
        display: flex !important;
        gap: 8px !important;
        flex-wrap: wrap !important;
        align-items: center !important;
    }

    body.app-body .page-header + .erp-data-flow + .row {
        margin-left: 0 !important;
        margin-right: 0 !important;
        --bs-gutter-x: 0 !important;
    }

    body.app-body .page-header + .erp-data-flow + .row > [class*="col-"] {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    body.app-body .page-header + .erp-data-flow + .row .card {
        margin-bottom: 14px !important;
    }

    body.app-body .page-header + .erp-data-flow + .row .row.g-3 {
        --bs-gutter-x: .75rem !important;
        --bs-gutter-y: .75rem !important;
    }

    body.app-body .bvms-compact-filter-shell,
    body.app-body .bvms-compact-filter-trigger,
    body.app-body .bvms-period-summary,
    body.app-body .mini-period-trigger {
        width: 100% !important;
        max-width: 100% !important;
    }
}

@media (max-width: 420px) {
    body.app-body .topbar-clean-icon:nth-of-type(4) {
        display: none !important;
    }

    body.app-body .topbar-actions-clean {
        gap: 5px !important;
    }

    body.app-body .topbar-clean-icon,
    body.app-body .topbar-profile-clean {
        width: 36px !important;
        min-width: 36px !important;
        height: 36px !important;
    }
}


/* =========================================================
   BVMS - Mobile/filter v6: DRE funcional, filtro padrão dashboard,
   sidebar realmente oculta e topbar volta ao puxar para cima
========================================================= */

/* Botão/filtro no mesmo padrão do dashboard */
body.app-body .bvms-compact-filter-shell .mini-period-trigger,
body.app-body .bvms-period-widget-dre .mini-period-trigger,
body.app-body .mini-title-row .mini-period-trigger {
    width: auto !important;
    min-width: 190px !important;
    max-width: min(100%, 280px) !important;
    min-height: 48px !important;
    padding: 7px 10px !important;
    border-radius: 16px !important;
    border: 1px solid var(--mini-border, var(--v2-border, rgba(148,163,184,.22))) !important;
    background: var(--mini-surface-2, var(--v2-surface, #fff)) !important;
    color: var(--mini-text, var(--v2-text, #0f172a)) !important;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .06) !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 9px !important;
    white-space: nowrap !important;
}

body.app-body .bvms-compact-filter-shell .mini-period-trigger > i:first-child,
body.app-body .bvms-period-widget-dre .mini-period-trigger > i:first-child {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    border-radius: 10px !important;
    display: inline-grid !important;
    place-items: center !important;
    background: color-mix(in srgb, var(--mini-blue, #2563eb) 13%, transparent) !important;
    color: var(--mini-blue, #2563eb) !important;
    font-size: 13px !important;
}

body.app-body .bvms-compact-filter-shell .mini-period-trigger span,
body.app-body .bvms-period-widget-dre .mini-period-trigger span {
    font-size: 10px !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    color: var(--mini-muted, var(--v2-muted, #64748b)) !important;
    font-weight: 850 !important;
}

body.app-body .bvms-compact-filter-shell .mini-period-trigger strong,
body.app-body .bvms-period-widget-dre .mini-period-trigger strong {
    font-size: 14px !important;
    line-height: 1.1 !important;
    max-width: 150px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

body.app-body .bvms-compact-filter-shell .mini-period-trigger small,
body.app-body .bvms-period-widget-dre .mini-period-trigger small {
    margin-left: auto !important;
    width: 26px !important;
    min-width: 26px !important;
    height: 26px !important;
    display: inline-grid !important;
    place-items: center !important;
    color: var(--mini-cyan, #14b8a6) !important;
}

body.app-body .bvms-compact-filter-shell > .bvms-compact-filter-panel,
body.app-body .bvms-period-widget-dre > .bvms-compact-filter-panel {
    width: min(520px, calc(100vw - 32px)) !important;
    padding: 0 !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    background: var(--mini-surface, var(--v2-surface, #fff)) !important;
    color: var(--mini-text, var(--v2-text, #0f172a)) !important;
    border: 1px solid var(--mini-border, var(--v2-border, #dbe3ef)) !important;
    box-shadow: 0 28px 70px rgba(15, 23, 42, .18) !important;
}

body.app-body .bvms-compact-filter-panel .mini-period-form,
body.app-body .bvms-period-widget-dre .mini-period-form,
body.app-body .dre-filter-card.mini-period-form {
    padding: 16px !important;
    display: grid !important;
    gap: 14px !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

body.app-body .bvms-compact-filter-panel .mini-period-tabs,
body.app-body .bvms-period-widget-dre .mini-period-tabs {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
}

body.app-body .bvms-compact-filter-panel .mini-period-tabs button,
body.app-body .bvms-period-widget-dre .mini-period-tabs button {
    min-height: 42px !important;
    border-radius: 14px !important;
    border: 1px solid var(--mini-border, var(--v2-border, #dbe3ef)) !important;
    background: var(--mini-surface-2, var(--v2-soft, #f8fafc)) !important;
    color: var(--mini-text, var(--v2-text, #0f172a)) !important;
    font-weight: 900 !important;
}

body.app-body .bvms-compact-filter-panel .mini-period-tabs button.active,
body.app-body .bvms-compact-filter-panel .mini-period-tabs button.is-active,
body.app-body .bvms-period-widget-dre .mini-period-tabs button.active,
body.app-body .bvms-period-widget-dre .mini-period-tabs button.is-active {
    border-color: transparent !important;
    background: linear-gradient(135deg, var(--mini-blue, #2563eb), var(--mini-cyan, #14b8a6)) !important;
    color: #fff !important;
    box-shadow: 0 14px 30px color-mix(in srgb, var(--mini-cyan, #14b8a6) 20%, transparent) !important;
}

body.app-body .bvms-compact-filter-panel .mini-period-fields,
body.app-body .bvms-period-widget-dre .mini-period-fields {
    display: grid !important;
    gap: 8px !important;
}

body.app-body .bvms-compact-filter-panel .mini-period-fields[hidden],
body.app-body .bvms-period-widget-dre .mini-period-fields[hidden] {
    display: none !important;
}

body.app-body .bvms-compact-filter-panel .mini-period-fields.two,
body.app-body .bvms-period-widget-dre .mini-period-fields.two {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body.app-body .bvms-compact-filter-panel .mini-period-fields label,
body.app-body .bvms-period-widget-dre .mini-period-fields label {
    margin: 0 !important;
    color: var(--mini-muted, var(--v2-muted, #64748b)) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
}

body.app-body .bvms-compact-filter-panel .mini-period-fields input,
body.app-body .bvms-compact-filter-panel .mini-period-fields select,
body.app-body .bvms-period-widget-dre .mini-period-fields input,
body.app-body .bvms-period-widget-dre .mini-period-fields select {
    min-height: 44px !important;
    border-radius: 14px !important;
    border-color: var(--mini-border, var(--v2-border, #dbe3ef)) !important;
    background: var(--mini-surface-2, var(--v2-soft, #f8fafc)) !important;
    color: var(--mini-text, var(--v2-text, #0f172a)) !important;
}

body.app-body .bvms-compact-filter-panel .mini-period-form footer,
body.app-body .bvms-period-widget-dre .mini-period-form footer {
    display: flex !important;
    justify-content: flex-end !important;
    gap: 10px !important;
    padding-top: 2px !important;
}

body.app-body .bvms-compact-filter-panel .mini-btn,
body.app-body .bvms-period-widget-dre .mini-btn {
    min-height: 42px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 14px !important;
    text-decoration: none !important;
}

/* DRE e Vendas nunca empurram a tela para fora no celular */
body.app-body .dre-page-clean,
body.app-body .sales-page-clean,
body.app-body .page-content > .dre-page-clean,
body.app-body .page-content > .sales-page-clean {
    max-width: 100% !important;
    overflow-x: hidden !important;
}

body.app-body .dre-content-grid,
body.app-body .expenses-grid,
body.app-body .dash-main-grid {
    min-width: 0 !important;
}

/* Sidebar mobile sem barra fixa/rastro à esquerda */
@media (max-width: 900px) {
    body.app-body:not(.mobile-sidebar-open) .bvms-sidebar-clean {
        transform: translateX(-112%) !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    body.app-body.mobile-sidebar-open .bvms-sidebar-clean {
        transform: translateX(0) !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    body.app-body .bvms-main-shell,
    body.app-body .page-content,
    body.app-body main.page-content {
        margin-left: 0 !important;
        width: 100% !important;
    }

    body.app-body .bvms-topbar-clean {
        transform: translateY(0) !important;
    }

    body.app-body.topbar-mobile-hidden .bvms-topbar-clean {
        transform: translateY(-116%) !important;
    }
}

@media (max-width: 760px) {
    body.app-body .bvms-period-widget-dre.bvms-compact-filter-shell,
    body.app-body .mini-title-row .bvms-compact-filter-shell,
    body.app-body .bvms-dashboard-minimal .bvms-compact-filter-shell {
        width: 100% !important;
    }

    body.app-body .bvms-compact-filter-shell .mini-period-trigger,
    body.app-body .bvms-period-widget-dre .mini-period-trigger {
        width: 100% !important;
        max-width: 100% !important;
    }

    body.app-body .bvms-compact-filter-shell > .bvms-compact-filter-panel,
    body.app-body .bvms-period-widget-dre > .bvms-compact-filter-panel,
    body.app-body [data-filter-direction="side"] > .bvms-compact-filter-panel,
    body.app-body [data-filter-direction="side"] > .bvms-dynamic-filter-panel {
        left: 0 !important;
        right: auto !important;
        top: calc(100% + 10px) !important;
        width: min(100%, calc(100vw - 28px)) !important;
        max-width: calc(100vw - 28px) !important;
    }

    body.app-body .bvms-compact-filter-panel .mini-period-fields.two,
    body.app-body .bvms-period-widget-dre .mini-period-fields.two {
        grid-template-columns: 1fr !important;
    }

    body.app-body .bvms-compact-filter-panel .mini-period-form footer,
    body.app-body .bvms-period-widget-dre .mini-period-form footer {
        justify-content: stretch !important;
    }

    body.app-body .bvms-compact-filter-panel .mini-period-form footer > *,
    body.app-body .bvms-period-widget-dre .mini-period-form footer > * {
        flex: 1 1 0 !important;
    }
}


/* =========================================================
   BVMS v7 - filtros pequenos iguais ao dashboard + painel sempre visível
========================================================= */

body.app-body .filter-card-clean.bvms-compact-filter-shell,
body.app-body .bvms-period-widget.bvms-compact-filter-shell,
body.app-body .bvms-clean-actions .bvms-compact-filter-shell,
body.app-body .hero-actions-clean .bvms-compact-filter-shell,
body.app-body .statement-hero-clean .bvms-compact-filter-shell,
body.app-body .margin-hero-clean .bvms-compact-filter-shell,
body.app-body .page-header .bvms-compact-filter-shell,
body.app-body .mini-title-row .bvms-compact-filter-shell {
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  display: inline-flex !important;
  align-items: flex-start !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  overflow: visible !important;
  position: relative !important;
  z-index: 50 !important;
}

body.app-body .bvms-compact-filter-shell.is-open,
body.app-body details.bvms-compact-filter-shell[open] {
  z-index: 9999 !important;
}

body.app-body .bvms-compact-filter-shell > .bvms-compact-filter-trigger,
body.app-body .bvms-compact-filter-shell > .bvms-period-summary,
body.app-body .bvms-compact-filter-shell > summary.bvms-period-summary,
body.app-body .bvms-compact-filter-shell > .mini-period-trigger,
body.app-body .bvms-period-widget-dre > .mini-period-trigger {
  width: auto !important;
  min-width: 178px !important;
  max-width: 230px !important;
  height: 48px !important;
  min-height: 48px !important;
  padding: 7px 10px !important;
  border-radius: 16px !important;
  border: 1px solid var(--mini-border, var(--v2-border, rgba(148,163,184,.22))) !important;
  background: var(--mini-surface-2, var(--v2-surface, #fff)) !important;
  color: var(--mini-text, var(--v2-text, #0f172a)) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  text-align: left !important;
  white-space: nowrap !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .06) !important;
  cursor: pointer !important;
}

body.app-body .bvms-compact-filter-shell > .bvms-period-summary > i,
body.app-body .bvms-compact-filter-shell .bvms-compact-filter-icon,
body.app-body .bvms-compact-filter-shell > .mini-period-trigger > i:first-child {
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  border-radius: 10px !important;
  display: inline-grid !important;
  place-items: center !important;
  background: color-mix(in srgb, var(--mini-blue, var(--v2-primary, #2563eb)) 13%, transparent) !important;
  color: var(--mini-blue, var(--v2-primary, #2563eb)) !important;
  font-size: 13px !important;
  font-style: normal !important;
}

body.app-body .bvms-compact-filter-shell > .bvms-period-summary > span,
body.app-body .bvms-compact-filter-shell .bvms-compact-filter-copy {
  min-width: 0 !important;
  flex: 1 1 auto !important;
  display: grid !important;
  gap: 2px !important;
}

body.app-body .bvms-compact-filter-shell small,
body.app-body .bvms-compact-filter-shell .bvms-compact-filter-copy small,
body.app-body .bvms-compact-filter-shell > .bvms-period-summary small,
body.app-body .bvms-compact-filter-shell > .mini-period-trigger span {
  color: var(--mini-muted, var(--v2-muted, #64748b)) !important;
  font-size: 9px !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  letter-spacing: .08em !important;
  font-weight: 900 !important;
  margin: 0 !important;
}

body.app-body .bvms-compact-filter-shell strong,
body.app-body .bvms-compact-filter-shell .bvms-compact-filter-copy strong,
body.app-body .bvms-compact-filter-shell > .bvms-period-summary strong,
body.app-body .bvms-compact-filter-shell > .mini-period-trigger strong {
  color: var(--mini-text, var(--v2-text, #0f172a)) !important;
  font-size: 13px !important;
  line-height: 1.1 !important;
  font-weight: 900 !important;
  max-width: 145px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.app-body .bvms-compact-filter-shell .bvms-compact-filter-action,
body.app-body .bvms-compact-filter-shell > .mini-period-trigger small {
  margin-left: auto !important;
  width: 24px !important;
  min-width: 24px !important;
  height: 24px !important;
  display: inline-grid !important;
  place-items: center !important;
  color: var(--mini-cyan, #14b8a6) !important;
  background: transparent !important;
  font-size: 12px !important;
}

body.app-body .bvms-compact-filter-shell > .bvms-compact-filter-panel,
body.app-body .bvms-compact-filter-shell > .bvms-dynamic-filter-panel,
body.app-body details.bvms-compact-filter-shell > form {
  border-radius: 22px !important;
  background: var(--mini-surface, var(--v2-surface, #fff)) !important;
  color: var(--mini-text, var(--v2-text, #0f172a)) !important;
  border: 1px solid var(--mini-border, var(--v2-border, #dbe3ef)) !important;
  box-shadow: 0 28px 80px rgba(15, 23, 42, .28) !important;
  padding: 14px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

body.app-body .bvms-compact-filter-shell > .bvms-compact-filter-panel[hidden],
body.app-body .bvms-compact-filter-shell > .bvms-dynamic-filter-panel[hidden] {
  display: none !important;
}

body.app-body details.bvms-compact-filter-shell:not([open]) > form {
  display: none !important;
}
body.app-body details.bvms-compact-filter-shell[open] > form {
  display: block !important;
}

body.app-body .bvms-compact-filter-panel .mini-period-form,
body.app-body .bvms-compact-filter-panel .bvms-compact-filter-form,
body.app-body .bvms-compact-filter-panel .sales-filter-form,
body.app-body .bvms-compact-filter-panel .filter-grid-clean,
body.app-body .bvms-compact-filter-panel form,
body.app-body .bvms-dynamic-filter-panel form {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.app-body .bvms-compact-filter-panel .mini-period-tabs,
body.app-body .bvms-compact-filter-panel .sales-period-tabs,
body.app-body .bvms-compact-filter-panel .bvms-period-tabs,
body.app-body .bvms-compact-filter-panel .statement-filter-tabs,
body.app-body details.bvms-compact-filter-shell .mini-period-tabs,
body.app-body details.bvms-compact-filter-shell .sales-period-tabs,
body.app-body details.bvms-compact-filter-shell .bvms-period-tabs {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 8px !important;
  margin-bottom: 12px !important;
}

body.app-body .bvms-compact-filter-panel .sales-period-tabs,
body.app-body .bvms-compact-filter-panel .bvms-period-tabs {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

body.app-body .bvms-compact-filter-panel .mini-period-tabs button,
body.app-body .bvms-compact-filter-panel .sales-period-tab,
body.app-body .bvms-compact-filter-panel .period-tab,
body.app-body .bvms-compact-filter-panel .statement-filter-tab,
body.app-body details.bvms-compact-filter-shell .sales-period-tab,
body.app-body details.bvms-compact-filter-shell .period-tab {
  min-height: 38px !important;
  border-radius: 13px !important;
  border: 1px solid var(--mini-border, var(--v2-border, #dbe3ef)) !important;
  background: var(--mini-surface-2, var(--v2-soft, #f8fafc)) !important;
  color: var(--mini-text, var(--v2-text, #0f172a)) !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  padding: 0 8px !important;
}

body.app-body .bvms-compact-filter-panel .mini-period-tabs button.active,
body.app-body .bvms-compact-filter-panel .mini-period-tabs button.is-active,
body.app-body .bvms-compact-filter-panel .sales-period-tab.active,
body.app-body .bvms-compact-filter-panel .period-tab.active,
body.app-body .bvms-compact-filter-panel .statement-filter-tab.is-active,
body.app-body details.bvms-compact-filter-shell .sales-period-tab.active,
body.app-body details.bvms-compact-filter-shell .period-tab.active {
  border-color: transparent !important;
  background: linear-gradient(135deg, var(--mini-blue, #2563eb), var(--mini-cyan, #14b8a6)) !important;
  color: #fff !important;
  box-shadow: 0 12px 28px color-mix(in srgb, var(--mini-cyan, #14b8a6) 20%, transparent) !important;
}

body.app-body .bvms-compact-filter-panel .filter-grid-clean,
body.app-body details.bvms-compact-filter-shell .filter-grid-clean,
body.app-body .bvms-compact-filter-panel .bvms-compact-filter-grid,
body.app-body .bvms-compact-filter-panel .statement-filter-fields {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 10px !important;
}

body.app-body .bvms-compact-filter-panel label,
body.app-body details.bvms-compact-filter-shell label,
body.app-body .bvms-compact-filter-field,
body.app-body .mini-period-fields label,
body.app-body .statement-filter-field span {
  margin: 0 !important;
  color: var(--mini-muted, var(--v2-muted, #64748b)) !important;
  font-size: 12px !important;
  font-weight: 900 !important;
}

body.app-body .bvms-compact-filter-panel input,
body.app-body .bvms-compact-filter-panel select,
body.app-body details.bvms-compact-filter-shell input,
body.app-body details.bvms-compact-filter-shell select {
  min-height: 42px !important;
  border-radius: 13px !important;
  background: var(--mini-surface-2, var(--v2-soft, #f8fafc)) !important;
  color: var(--mini-text, var(--v2-text, #0f172a)) !important;
  border-color: var(--mini-border, var(--v2-border, #dbe3ef)) !important;
  margin-top: 6px !important;
}

body.app-body .bvms-compact-filter-panel .filter-actions-clean,
body.app-body .bvms-compact-filter-panel .bvms-compact-filter-actions,
body.app-body .bvms-compact-filter-panel footer,
body.app-body details.bvms-compact-filter-shell .filter-actions-clean,
body.app-body details.bvms-compact-filter-shell .bvms-compact-filter-actions {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
  margin-top: 4px !important;
}

body.app-body .filter-card-clean.bvms-compact-filter-shell + .kpi-grid-clean,
body.app-body .filter-card-clean.bvms-compact-filter-shell + .table-card-clean {
  margin-top: 10px !important;
}

body.app-body .page-hero-clean,
body.app-body .dre-hero-card,
body.app-body .bvms-clean-hero,
body.app-body .statement-hero-clean,
body.app-body .margin-hero-clean,
body.app-body .filter-card-clean,
body.app-body .table-card-clean,
body.app-body .bvms-table-card,
body.app-body .page-content,
body.app-body main.page-content {
  overflow: visible !important;
}

@media (max-width: 700px) {
  body.app-body .filter-card-clean.bvms-compact-filter-shell,
  body.app-body .bvms-period-widget.bvms-compact-filter-shell,
  body.app-body .bvms-clean-actions .bvms-compact-filter-shell,
  body.app-body .hero-actions-clean .bvms-compact-filter-shell,
  body.app-body .statement-hero-clean .bvms-compact-filter-shell,
  body.app-body .margin-hero-clean .bvms-compact-filter-shell,
  body.app-body .page-header .bvms-compact-filter-shell,
  body.app-body .mini-title-row .bvms-compact-filter-shell {
    width: auto !important;
    max-width: 100% !important;
  }

  body.app-body .bvms-compact-filter-shell > .bvms-compact-filter-trigger,
  body.app-body .bvms-compact-filter-shell > .bvms-period-summary,
  body.app-body .bvms-compact-filter-shell > summary.bvms-period-summary,
  body.app-body .bvms-compact-filter-shell > .mini-period-trigger {
    width: auto !important;
    min-width: 174px !important;
    max-width: 210px !important;
  }

  body.app-body .bvms-compact-filter-panel .sales-period-tabs,
  body.app-body .bvms-compact-filter-panel .bvms-period-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}


/* =========================================================
   BVMS v8 - filtros dentro do container + período funcional
========================================================= */
body.app-body .filter-card-clean.bvms-compact-filter-shell,
body.app-body .bvms-period-widget.bvms-compact-filter-shell,
body.app-body .bvms-clean-actions .bvms-compact-filter-shell,
body.app-body .hero-actions-clean .bvms-compact-filter-shell,
body.app-body .statement-hero-clean .bvms-compact-filter-shell,
body.app-body .margin-hero-clean .bvms-compact-filter-shell,
body.app-body .page-header .bvms-compact-filter-shell,
body.app-body .mini-title-row .bvms-compact-filter-shell {
  position: relative !important;
  display: inline-flex !important;
  flex: 0 0 auto !important;
  width: max-content !important;
  max-width: 100% !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  z-index: 10 !important;
}

body.app-body .bvms-compact-filter-shell.is-open,
body.app-body details.bvms-compact-filter-shell[open] {
  z-index: 9998 !important;
}

body.app-body .bvms-compact-filter-shell > .bvms-compact-filter-trigger,
body.app-body .bvms-compact-filter-shell > .bvms-period-summary,
body.app-body .bvms-compact-filter-shell > summary.bvms-period-summary,
body.app-body .bvms-compact-filter-shell > .mini-period-trigger,
body.app-body .bvms-period-widget-dre > .mini-period-trigger {
  width: auto !important;
  min-width: 178px !important;
  max-width: 232px !important;
  height: 48px !important;
  min-height: 48px !important;
  padding: 7px 10px !important;
  border-radius: 16px !important;
  border: 1px solid var(--mini-border, var(--v2-border, rgba(148,163,184,.22))) !important;
  background: var(--mini-surface-2, var(--v2-surface, #fff)) !important;
  color: var(--mini-text, var(--v2-text, #0f172a)) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  text-align: left !important;
  white-space: nowrap !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .06) !important;
  cursor: pointer !important;
}

body.app-body .bvms-compact-filter-shell > .bvms-compact-filter-panel,
body.app-body .bvms-compact-filter-shell > .bvms-dynamic-filter-panel,
body.app-body details.bvms-compact-filter-shell > form {
  display: block !important;
  position: absolute !important;
  top: calc(100% + 10px) !important;
  right: auto !important;
  left: 0;
  width: min(520px, calc(100vw - 28px));
  max-width: calc(100vw - 28px) !important;
  border-radius: 22px !important;
  background: var(--mini-surface, var(--v2-surface, #fff)) !important;
  color: var(--mini-text, var(--v2-text, #0f172a)) !important;
  border: 1px solid var(--mini-border, var(--v2-border, #dbe3ef)) !important;
  box-shadow: 0 28px 80px rgba(15, 23, 42, .28) !important;
  padding: 14px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  z-index: 9999 !important;
}

body.app-body .bvms-compact-filter-shell > .bvms-compact-filter-panel[hidden],
body.app-body .bvms-compact-filter-shell > .bvms-dynamic-filter-panel[hidden],
body.app-body details.bvms-compact-filter-shell:not([open]) > form {
  display: none !important;
}

body.app-body .page-hero-clean,
body.app-body .dre-hero-card,
body.app-body .bvms-clean-hero,
body.app-body .statement-hero-clean,
body.app-body .margin-hero-clean,
body.app-body .page-header,
body.app-body .filter-card-clean,
body.app-body .table-card-clean,
body.app-body .bvms-table-card,
body.app-body main.page-content,
body.app-body .page-content {
  overflow: visible !important;
}

body.app-body .bvms-compact-filter-panel .mini-period-form,
body.app-body .bvms-compact-filter-panel .bvms-compact-filter-form,
body.app-body .bvms-compact-filter-panel .sales-filter-form,
body.app-body .bvms-compact-filter-panel .filter-grid-clean,
body.app-body .bvms-compact-filter-panel form,
body.app-body .bvms-dynamic-filter-panel form {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  display: grid !important;
  gap: 12px !important;
}

body.app-body .bvms-compact-filter-panel .mini-period-tabs,
body.app-body .bvms-compact-filter-panel .sales-period-tabs,
body.app-body .bvms-compact-filter-panel .bvms-period-tabs,
body.app-body .bvms-compact-filter-panel .statement-filter-tabs,
body.app-body details.bvms-compact-filter-shell .mini-period-tabs,
body.app-body details.bvms-compact-filter-shell .sales-period-tabs,
body.app-body details.bvms-compact-filter-shell .bvms-period-tabs {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 8px !important;
  margin-bottom: 12px !important;
}

body.app-body .bvms-compact-filter-panel .sales-period-tabs,
body.app-body .bvms-compact-filter-panel .bvms-period-tabs {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

body.app-body .bvms-compact-filter-panel .filter-grid-clean,
body.app-body details.bvms-compact-filter-shell .filter-grid-clean,
body.app-body .bvms-compact-filter-panel .bvms-compact-filter-grid,
body.app-body .bvms-compact-filter-panel .statement-filter-fields {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 10px !important;
}

body.app-body .bvms-compact-filter-panel [hidden],
body.app-body .bvms-compact-filter-panel .is-hidden,
body.app-body details.bvms-compact-filter-shell [hidden],
body.app-body details.bvms-compact-filter-shell .is-hidden {
  display: none !important;
}

body.app-body .bvms-compact-filter-panel .is-visible,
body.app-body details.bvms-compact-filter-shell .is-visible {
  display: grid !important;
}

body.app-body .bvms-compact-filter-panel .mini-period-fields.two.is-visible,
body.app-body .bvms-compact-filter-panel .statement-filter-period.is-visible,
body.app-body .bvms-compact-filter-panel .bvms-compact-filter-grid.two.is-visible,
body.app-body details.bvms-compact-filter-shell .mini-period-fields.two.is-visible {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

body.app-body .bvms-compact-filter-panel .mini-period-tabs button,
body.app-body .bvms-compact-filter-panel .sales-period-tab,
body.app-body .bvms-compact-filter-panel .period-tab,
body.app-body .bvms-compact-filter-panel .statement-filter-tab,
body.app-body details.bvms-compact-filter-shell .sales-period-tab,
body.app-body details.bvms-compact-filter-shell .period-tab {
  min-height: 38px !important;
  border-radius: 13px !important;
  border: 1px solid var(--mini-border, var(--v2-border, #dbe3ef)) !important;
  background: var(--mini-surface-2, var(--v2-soft, #f8fafc)) !important;
  color: var(--mini-text, var(--v2-text, #0f172a)) !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  padding: 0 8px !important;
}

body.app-body .bvms-compact-filter-panel .mini-period-tabs button.active,
body.app-body .bvms-compact-filter-panel .mini-period-tabs button.is-active,
body.app-body .bvms-compact-filter-panel .sales-period-tab.active,
body.app-body .bvms-compact-filter-panel .period-tab.active,
body.app-body .bvms-compact-filter-panel .statement-filter-tab.is-active,
body.app-body .bvms-compact-filter-panel .statement-filter-tab.active,
body.app-body details.bvms-compact-filter-shell .sales-period-tab.active,
body.app-body details.bvms-compact-filter-shell .period-tab.active {
  border-color: transparent !important;
  background: linear-gradient(135deg, var(--mini-blue, #2563eb), var(--mini-cyan, #14b8a6)) !important;
  color: #fff !important;
  box-shadow: 0 12px 28px color-mix(in srgb, var(--mini-cyan, #14b8a6) 20%, transparent) !important;
}

body.app-body .bvms-compact-filter-panel input,
body.app-body .bvms-compact-filter-panel select,
body.app-body details.bvms-compact-filter-shell input,
body.app-body details.bvms-compact-filter-shell select {
  min-height: 42px !important;
  border-radius: 13px !important;
  background: var(--mini-surface-2, var(--v2-soft, #f8fafc)) !important;
  color: var(--mini-text, var(--v2-text, #0f172a)) !important;
  border-color: var(--mini-border, var(--v2-border, #dbe3ef)) !important;
  margin-top: 6px !important;
}

body.app-body .bvms-compact-filter-panel .filter-actions-clean,
body.app-body .bvms-compact-filter-panel .bvms-compact-filter-actions,
body.app-body .bvms-compact-filter-panel footer,
body.app-body details.bvms-compact-filter-shell .filter-actions-clean,
body.app-body details.bvms-compact-filter-shell .bvms-compact-filter-actions {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
  margin-top: 4px !important;
}

body.app-body .dre-page-clean,
body.app-body .sales-page-clean,
body.app-body .expenses-clean-page,
body.app-body .statement-page-clean,
body.app-body .planning-page,
body.app-body .planning-page-clean {
  max-width: 100% !important;
  overflow-x: hidden !important;
}

@media (max-width: 700px) {
  body.app-body .filter-card-clean.bvms-compact-filter-shell,
  body.app-body .bvms-period-widget.bvms-compact-filter-shell,
  body.app-body .bvms-clean-actions .bvms-compact-filter-shell,
  body.app-body .hero-actions-clean .bvms-compact-filter-shell,
  body.app-body .statement-hero-clean .bvms-compact-filter-shell,
  body.app-body .margin-hero-clean .bvms-compact-filter-shell,
  body.app-body .page-header .bvms-compact-filter-shell,
  body.app-body .mini-title-row .bvms-compact-filter-shell {
    width: max-content !important;
    max-width: 100% !important;
  }

  body.app-body .bvms-compact-filter-shell > .bvms-compact-filter-trigger,
  body.app-body .bvms-compact-filter-shell > .bvms-period-summary,
  body.app-body .bvms-compact-filter-shell > summary.bvms-period-summary,
  body.app-body .bvms-compact-filter-shell > .mini-period-trigger {
    width: auto !important;
    min-width: 174px !important;
    max-width: 210px !important;
  }

  body.app-body .bvms-compact-filter-shell > .bvms-compact-filter-panel,
  body.app-body .bvms-compact-filter-shell > .bvms-dynamic-filter-panel,
  body.app-body details.bvms-compact-filter-shell > form {
    width: min(420px, calc(100vw - 20px)) !important;
    max-width: calc(100vw - 20px) !important;
  }

  body.app-body .bvms-compact-filter-panel .sales-period-tabs,
  body.app-body .bvms-compact-filter-panel .bvms-period-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.app-body .bvms-compact-filter-panel .mini-period-fields.two.is-visible,
  body.app-body .bvms-compact-filter-panel .statement-filter-period.is-visible,
  body.app-body .bvms-compact-filter-panel .bvms-compact-filter-grid.two.is-visible {
    grid-template-columns: 1fr !important;
  }
}


/* =========================================================
   BVMS v9 - ajuste fino dos filtros no celular
========================================================= */
@media (max-width: 700px) {
  body.app-body .mini-title-row,
  body.app-body .statement-hero-clean,
  body.app-body .bvms-clean-hero,
  body.app-body .dre-hero-card,
  body.app-body .page-header,
  body.app-body .hero-actions-clean {
    overflow: visible !important;
  }

  body.app-body .mini-title-row {
    width: 100% !important;
  }

  body.app-body .mini-title-row .bvms-compact-filter-shell,
  body.app-body .bvms-dashboard-minimal .bvms-compact-filter-shell,
  body.app-body .bvms-period-widget-dre.bvms-compact-filter-shell,
  body.app-body .statement-hero-clean .bvms-compact-filter-shell,
  body.app-body .bvms-clean-actions .bvms-compact-filter-shell,
  body.app-body .hero-actions-clean .bvms-compact-filter-shell,
  body.app-body .page-header .bvms-compact-filter-shell {
    display: flex !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.app-body .mini-title-row .bvms-compact-filter-shell > .mini-period-trigger,
  body.app-body .bvms-dashboard-minimal .bvms-compact-filter-shell > .mini-period-trigger,
  body.app-body .bvms-period-widget-dre.bvms-compact-filter-shell > .mini-period-trigger,
  body.app-body .statement-hero-clean .bvms-compact-filter-shell > .bvms-compact-filter-trigger,
  body.app-body .bvms-clean-actions .bvms-compact-filter-shell > .bvms-compact-filter-trigger,
  body.app-body .hero-actions-clean .bvms-compact-filter-shell > .bvms-compact-filter-trigger,
  body.app-body .page-header .bvms-compact-filter-shell > .bvms-compact-filter-trigger,
  body.app-body .page-header .bvms-compact-filter-shell > .bvms-period-summary {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.app-body .mini-title-row .bvms-compact-filter-shell > .bvms-compact-filter-panel,
  body.app-body .bvms-dashboard-minimal .bvms-compact-filter-shell > .bvms-compact-filter-panel,
  body.app-body .bvms-period-widget-dre.bvms-compact-filter-shell > .bvms-compact-filter-panel,
  body.app-body .statement-hero-clean .bvms-compact-filter-shell > .bvms-compact-filter-panel,
  body.app-body .bvms-clean-actions .bvms-compact-filter-shell > .bvms-compact-filter-panel,
  body.app-body .hero-actions-clean .bvms-compact-filter-shell > .bvms-compact-filter-panel,
  body.app-body .page-header .bvms-compact-filter-shell > .bvms-compact-filter-panel,
  body.app-body .mini-title-row .bvms-compact-filter-shell > .bvms-dynamic-filter-panel,
  body.app-body .bvms-clean-actions .bvms-compact-filter-shell > .bvms-dynamic-filter-panel,
  body.app-body .hero-actions-clean .bvms-compact-filter-shell > .bvms-dynamic-filter-panel,
  body.app-body .page-header .bvms-compact-filter-shell > .bvms-dynamic-filter-panel {
    left: 0 !important;
    right: 0 !important;
    top: calc(100% + 8px) !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 12px !important;
    border-radius: 18px !important;
  }

  body.app-body .bvms-compact-filter-panel .mini-period-tabs,
  body.app-body .bvms-compact-filter-panel .sales-period-tabs,
  body.app-body .bvms-compact-filter-panel .bvms-period-tabs,
  body.app-body .bvms-compact-filter-panel .statement-filter-tabs {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 6px !important;
  }

  body.app-body .bvms-compact-filter-panel .sales-period-tabs,
  body.app-body .bvms-compact-filter-panel .bvms-period-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.app-body .bvms-compact-filter-panel .mini-period-tabs button,
  body.app-body .bvms-compact-filter-panel .sales-period-tab,
  body.app-body .bvms-compact-filter-panel .period-tab,
  body.app-body .bvms-compact-filter-panel .statement-filter-tab {
    min-height: 36px !important;
    font-size: 11px !important;
    padding: 0 6px !important;
  }

  body.app-body .bvms-compact-filter-panel .mini-period-form,
  body.app-body .bvms-compact-filter-panel .bvms-compact-filter-form,
  body.app-body .bvms-compact-filter-panel .sales-filter-form,
  body.app-body .bvms-compact-filter-panel .filter-grid-clean,
  body.app-body .bvms-compact-filter-panel form {
    gap: 10px !important;
  }

  body.app-body .bvms-compact-filter-panel label,
  body.app-body .bvms-compact-filter-field,
  body.app-body .mini-period-fields label,
  body.app-body .statement-filter-field span {
    font-size: 11px !important;
  }

  body.app-body .bvms-compact-filter-panel input,
  body.app-body .bvms-compact-filter-panel select,
  body.app-body .bvms-compact-filter-panel textarea {
    min-height: 40px !important;
    margin-top: 5px !important;
    font-size: 14px !important;
  }

  body.app-body .bvms-compact-filter-panel .mini-period-fields.two.is-visible,
  body.app-body .bvms-compact-filter-panel .statement-filter-period.is-visible,
  body.app-body .bvms-compact-filter-panel .bvms-compact-filter-grid.two.is-visible {
    grid-template-columns: 1fr !important;
  }

  body.app-body .bvms-compact-filter-panel .filter-actions-clean,
  body.app-body .bvms-compact-filter-panel .bvms-compact-filter-actions,
  body.app-body .bvms-compact-filter-panel footer {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    width: 100% !important;
    justify-content: stretch !important;
  }

  body.app-body .bvms-compact-filter-panel .filter-actions-clean > *,
  body.app-body .bvms-compact-filter-panel .bvms-compact-filter-actions > *,
  body.app-body .bvms-compact-filter-panel footer > * {
    width: 100% !important;
    min-width: 0 !important;
    justify-content: center !important;
  }

  body.app-body .mini-dash-header,
  body.app-body .statement-hero-clean,
  body.app-body .bvms-clean-hero,
  body.app-body .dre-hero-card,
  body.app-body .page-header {
    position: relative !important;
    z-index: 3 !important;
  }
}


/* =========================================================
   BVMS v10 - Experiência mobile: Despesas, DRE, Vendas e Extrato
   Converte tabelas largas em cards no celular e evita cortes laterais.
========================================================= */
@media (max-width: 760px) {
  html,
  body,
  body.app-body,
  body.app-body .bvms-layout-shell,
  body.app-body .bvms-main-shell,
  body.app-body .page-content,
  body.app-body main.page-content {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  body.app-body .page-content,
  body.app-body main.page-content {
    padding: 14px !important;
  }

  body.app-body .sales-page-clean,
  body.app-body .dre-page-clean,
  body.app-body .expenses-clean-page,
  body.app-body .statement-page-clean,
  body.app-body .product-margin-page,
  body.app-body .bvms-products-page,
  body.app-body .bvms-clean-page,
  body.app-body .planning-page,
  body.app-body .planning-page-clean {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
  }

  body.app-body .page-hero-clean,
  body.app-body .dre-hero-card,
  body.app-body .bvms-clean-hero,
  body.app-body .statement-hero-clean,
  body.app-body .margin-hero-clean,
  body.app-body .page-header,
  body.app-body .cost-alert-card,
  body.app-body .bvms-period-strip,
  body.app-body .filter-card-clean,
  body.app-body .table-card-clean,
  body.app-body .bvms-table-card,
  body.app-body .statement-table-card,
  body.app-body .dre-panel,
  body.app-body .card,
  body.app-body .panel {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 16px !important;
    border-radius: 20px !important;
    overflow: visible !important;
  }

  body.app-body .page-hero-clean,
  body.app-body .dre-hero-card,
  body.app-body .bvms-clean-hero,
  body.app-body .statement-hero-clean,
  body.app-body .margin-hero-clean {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    align-items: start !important;
  }

  body.app-body .page-hero-clean h1,
  body.app-body .dre-hero-copy h1,
  body.app-body .bvms-clean-hero h1,
  body.app-body .statement-hero-clean h1,
  body.app-body .margin-hero-clean h1 {
    font-size: clamp(25px, 8vw, 34px) !important;
    line-height: 1.04 !important;
    letter-spacing: -.05em !important;
    margin: 8px 0 8px !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
  }

  body.app-body .page-hero-clean p,
  body.app-body .dre-hero-copy p,
  body.app-body .bvms-clean-hero p,
  body.app-body .statement-hero-clean p,
  body.app-body .margin-hero-clean p {
    max-width: 100% !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
    overflow-wrap: anywhere !important;
  }

  body.app-body .hero-actions-clean,
  body.app-body .bvms-clean-actions,
  body.app-body .statement-table-head,
  body.app-body .table-card-head,
  body.app-body .bvms-table-head,
  body.app-body .dre-panel-head {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    align-items: stretch !important;
  }

  body.app-body .hero-actions-clean > *,
  body.app-body .bvms-clean-actions > *,
  body.app-body .statement-table-head > *,
  body.app-body .table-card-head > *,
  body.app-body .bvms-table-head > * {
    max-width: 100% !important;
  }

  body.app-body .hero-actions-clean a,
  body.app-body .hero-actions-clean button,
  body.app-body .bvms-clean-actions > a,
  body.app-body .bvms-clean-actions > button,
  body.app-body .statement-filter-secondary,
  body.app-body .btn-primary-soft,
  body.app-body .btn-secondary-soft {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
  }

  body.app-body .kpi-grid-clean,
  body.app-body .dre-kpi-grid,
  body.app-body .bvms-metric-grid-5,
  body.app-body .bvms-clean-grid-4,
  body.app-body .statement-summary-grid,
  body.app-body .margin-kpi-grid,
  body.app-body .stat-grid,
  body.app-body .sales-summary-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  body.app-body .kpi-clean,
  body.app-body .dre-kpi-card,
  body.app-body .bvms-metric-card,
  body.app-body .bvms-info-card,
  body.app-body .statement-summary-card,
  body.app-body .margin-kpi-card {
    min-width: 0 !important;
    width: 100% !important;
    min-height: auto !important;
    padding: 15px !important;
  }

  /* Tabelas: remove largura fixa e vira card/lista no mobile */
  body.app-body .table-responsive,
  body.app-body .statement-table-wrap,
  body.app-body .dre-panel .table-responsive,
  body.app-body .margin-table-wrap,
  body.app-body .category-table-wrap,
  body.app-body .preview-table-wrap {
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
  }

  body.app-body .expenses-clean-page .bvms-clean-table,
  body.app-body .sales-page-clean .erp-table,
  body.app-body .statement-table,
  body.app-body .product-margin-page .margin-ranking-table,
  body.app-body .bvms-products-page .erp-table {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    border: 0 !important;
    background: transparent !important;
  }

  body.app-body .expenses-clean-page .bvms-clean-table thead,
  body.app-body .sales-page-clean .erp-table thead,
  body.app-body .statement-table thead,
  body.app-body .product-margin-page .margin-ranking-table thead,
  body.app-body .bvms-products-page .erp-table thead {
    display: none !important;
  }

  body.app-body .expenses-clean-page .bvms-clean-table tbody,
  body.app-body .sales-page-clean .erp-table tbody,
  body.app-body .statement-table tbody,
  body.app-body .product-margin-page .margin-ranking-table tbody,
  body.app-body .bvms-products-page .erp-table tbody {
    display: grid !important;
    gap: 12px !important;
    width: 100% !important;
  }

  body.app-body .expenses-clean-page .bvms-clean-table tr,
  body.app-body .sales-page-clean .erp-table tr,
  body.app-body .statement-table tr,
  body.app-body .product-margin-page .margin-ranking-table tr,
  body.app-body .bvms-products-page .erp-table tr {
    display: grid !important;
    width: 100% !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    border: 1px solid var(--v2-border, var(--bvms-border, #dbe3ef)) !important;
    border-radius: 16px !important;
    background: var(--v2-surface, var(--bvms-surface, #fff)) !important;
    overflow: hidden !important;
    box-shadow: 0 10px 26px rgba(15, 23, 42, .06) !important;
  }

  body.app-body .expenses-clean-page .bvms-clean-table td,
  body.app-body .sales-page-clean .erp-table td,
  body.app-body .statement-table td,
  body.app-body .product-margin-page .margin-ranking-table td,
  body.app-body .bvms-products-page .erp-table td {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 14px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 12px 14px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--v2-border, var(--bvms-border, #dbe3ef)) !important;
    background: transparent !important;
    color: var(--v2-text, var(--bvms-text, #0f172a)) !important;
    text-align: right !important;
    white-space: normal !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
  }

  body.app-body .expenses-clean-page .bvms-clean-table td:last-child,
  body.app-body .sales-page-clean .erp-table td:last-child,
  body.app-body .statement-table td:last-child,
  body.app-body .product-margin-page .margin-ranking-table td:last-child,
  body.app-body .bvms-products-page .erp-table td:last-child {
    border-bottom: 0 !important;
  }

  body.app-body .expenses-clean-page .bvms-clean-table td::before,
  body.app-body .sales-page-clean .erp-table td::before,
  body.app-body .statement-table td::before,
  body.app-body .product-margin-page .margin-ranking-table td::before,
  body.app-body .bvms-products-page .erp-table td::before {
    flex: 0 0 42% !important;
    max-width: 42% !important;
    color: var(--v2-muted, var(--bvms-muted, #64748b)) !important;
    font-size: 11px !important;
    line-height: 1.25 !important;
    font-weight: 900 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    content: "Campo";
  }

  body.app-body .expenses-clean-page .bvms-clean-table td > *,
  body.app-body .sales-page-clean .erp-table td > *,
  body.app-body .statement-table td > *,
  body.app-body .product-margin-page .margin-ranking-table td > *,
  body.app-body .bvms-products-page .erp-table td > * {
    max-width: 58% !important;
  }

  body.app-body .expenses-clean-page .bvms-clean-table td[colspan],
  body.app-body .sales-page-clean .erp-table td[colspan],
  body.app-body .statement-table td[colspan],
  body.app-body .product-margin-page .margin-ranking-table td[colspan],
  body.app-body .bvms-products-page .erp-table td[colspan] {
    display: block !important;
    text-align: center !important;
    padding: 18px !important;
  }
  body.app-body .expenses-clean-page .bvms-clean-table td[colspan]::before,
  body.app-body .sales-page-clean .erp-table td[colspan]::before,
  body.app-body .statement-table td[colspan]::before,
  body.app-body .product-margin-page .margin-ranking-table td[colspan]::before,
  body.app-body .bvms-products-page .erp-table td[colspan]::before {
    display: none !important;
    content: "" !important;
  }

  /* Labels por tabela */
  body.app-body .expenses-clean-page .bvms-clean-table td:nth-child(1)::before { content: "Data"; }
  body.app-body .expenses-clean-page .bvms-clean-table td:nth-child(2)::before { content: "Categoria"; }
  body.app-body .expenses-clean-page .bvms-clean-table td:nth-child(3)::before { content: "Descrição"; }
  body.app-body .expenses-clean-page .bvms-clean-table td:nth-child(4)::before { content: "Tipo"; }
  body.app-body .expenses-clean-page .bvms-clean-table td:nth-child(5)::before { content: "Status"; }
  body.app-body .expenses-clean-page .bvms-clean-table td:nth-child(6)::before { content: "Valor"; }
  body.app-body .expenses-clean-page .bvms-clean-table td:nth-child(7)::before { content: "Ação"; }

  body.app-body .sales-page-clean .erp-table td:nth-child(1)::before { content: "Data"; }
  body.app-body .sales-page-clean .erp-table td:nth-child(2)::before { content: "Produto"; }
  body.app-body .sales-page-clean .erp-table td:nth-child(3)::before { content: "Categoria"; }
  body.app-body .sales-page-clean .erp-table td:nth-child(4)::before { content: "Origem"; }
  body.app-body .sales-page-clean .erp-table td:nth-child(5)::before { content: "Qtd"; }
  body.app-body .sales-page-clean .erp-table td:nth-child(6)::before { content: "Preço"; }
  body.app-body .sales-page-clean .erp-table td:nth-child(7)::before { content: "Receita"; }
  body.app-body .sales-page-clean .erp-table td:nth-child(8)::before { content: "Custo"; }
  body.app-body .sales-page-clean .erp-table td:nth-child(9)::before { content: "Origem custo"; }
  body.app-body .sales-page-clean .erp-table td:nth-child(10)::before { content: "Lucro"; }
  body.app-body .sales-page-clean .erp-table td:nth-child(11)::before { content: "Ações"; }

  body.app-body .statement-table td:nth-child(1)::before { content: "Data"; }
  body.app-body .statement-table td:nth-child(2)::before { content: "Tipo"; }
  body.app-body .statement-table td:nth-child(3)::before { content: "Categoria"; }
  body.app-body .statement-table td:nth-child(4)::before { content: "Descrição"; }
  body.app-body .statement-table td:nth-child(5)::before { content: "Origem"; }
  body.app-body .statement-table td:nth-child(6)::before { content: "Status"; }
  body.app-body .statement-table td:nth-child(7)::before { content: "Entrada"; }
  body.app-body .statement-table td:nth-child(8)::before { content: "Saída"; }

  body.app-body .product-margin-page .margin-ranking-table td:nth-child(1)::before { content: "Produto"; }
  body.app-body .product-margin-page .margin-ranking-table td:nth-child(2)::before { content: "Qtd"; }
  body.app-body .product-margin-page .margin-ranking-table td:nth-child(3)::before { content: "Receita"; }
  body.app-body .product-margin-page .margin-ranking-table td:nth-child(4)::before { content: "Taxas"; }
  body.app-body .product-margin-page .margin-ranking-table td:nth-child(5)::before { content: "Custo"; }
  body.app-body .product-margin-page .margin-ranking-table td:nth-child(6)::before { content: "Lucro"; }
  body.app-body .product-margin-page .margin-ranking-table td:nth-child(7)::before { content: "Margem"; }

  /* DRE tem só duas colunas: fica como demonstrativo compacto */
  body.app-body .dre-page-clean .dre-table,
  body.app-body .dre-page-clean .dre-table tbody,
  body.app-body .dre-page-clean .dre-table tr,
  body.app-body .dre-page-clean .dre-table td,
  body.app-body .dre-page-clean .dre-table th {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  body.app-body .dre-page-clean .dre-table {
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    table-layout: fixed !important;
  }

  body.app-body .dre-page-clean .dre-table thead th {
    padding: 12px 14px !important;
    font-size: 11px !important;
    letter-spacing: .06em !important;
  }

  body.app-body .dre-page-clean .dre-table tbody td {
    padding: 13px 14px !important;
    white-space: normal !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
  }

  body.app-body .dre-page-clean .dre-table tbody td:first-child {
    width: 58% !important;
  }

  body.app-body .dre-page-clean .dre-table tbody td.text-right,
  body.app-body .dre-page-clean .dre-table .text-right {
    width: 42% !important;
    text-align: right !important;
    font-size: 12px !important;
  }

  body.app-body .dre-page-clean .dre-panel-head {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  body.app-body .dre-page-clean .dre-panel-head small {
    justify-self: start !important;
    margin-top: 4px !important;
  }

  body.app-body .actions-cell,
  body.app-body .sales-actions-cell,
  body.app-body .bvms-inline-form {
    justify-content: flex-end !important;
    width: 100% !important;
  }

  body.app-body .actions-cell form,
  body.app-body .sales-actions-cell form {
    margin: 0 !important;
  }

  body.app-body .btn-table,
  body.app-body .btn-table-danger,
  body.app-body .btn-danger-soft.compact {
    min-height: 34px !important;
    padding: 0 10px !important;
  }
}

@media (max-width: 420px) {
  body.app-body .page-content,
  body.app-body main.page-content {
    padding: 10px !important;
  }

  body.app-body .page-hero-clean,
  body.app-body .dre-hero-card,
  body.app-body .bvms-clean-hero,
  body.app-body .statement-hero-clean,
  body.app-body .margin-hero-clean,
  body.app-body .table-card-clean,
  body.app-body .bvms-table-card,
  body.app-body .statement-table-card,
  body.app-body .dre-panel {
    padding: 14px !important;
    border-radius: 18px !important;
  }

  body.app-body .expenses-clean-page .bvms-clean-table td::before,
  body.app-body .sales-page-clean .erp-table td::before,
  body.app-body .statement-table td::before,
  body.app-body .product-margin-page .margin-ranking-table td::before,
  body.app-body .bvms-products-page .erp-table td::before {
    flex-basis: 38% !important;
    max-width: 38% !important;
  }

  body.app-body .expenses-clean-page .bvms-clean-table td > *,
  body.app-body .sales-page-clean .erp-table td > *,
  body.app-body .statement-table td > *,
  body.app-body .product-margin-page .margin-ranking-table td > *,
  body.app-body .bvms-products-page .erp-table td > * {
    max-width: 62% !important;
  }
}


/* =========================================================
   BVMS v11 - topbar mobile e botão de tema visível
========================================================= */
@media (max-width: 900px) {
  body.app-body .bvms-topbar-clean {
    transform: translateY(0) !important;
    transition: transform .22s ease, box-shadow .22s ease, background .22s ease !important;
  }

  body.app-body.topbar-mobile-hidden .bvms-topbar-clean {
    transform: translateY(-118%) !important;
  }

  body.app-body.mobile-sidebar-open .bvms-topbar-clean,
  body.app-body.panel-open .bvms-topbar-clean,
  body.app-body.bvms-modal-open .bvms-topbar-clean {
    transform: translateY(0) !important;
  }

  body.app-body .topbar-actions-clean {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 6px !important;
    min-width: 0 !important;
  }

  body.app-body .topbar-clean-icon[data-theme-toggle] {
    display: grid !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 38px !important;
    min-width: 38px !important;
    height: 38px !important;
    flex: 0 0 38px !important;
  }

  body.app-body .topbar-clean-icon[data-theme-toggle] i {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
}

@media (max-width: 420px) {
  body.app-body .topbar-clean-icon[data-theme-toggle] {
    display: grid !important;
  }

  /* Prioriza o botão de tema no celular pequeno. */
  body.app-body .topbar-clean-icon[data-panel-toggle="settingsPanel"] {
    display: none !important;
  }

  body.app-body .topbar-actions-clean {
    gap: 5px !important;
  }
}


/* =========================================================
   BVMS v12 - filtros mobile como sobreposição, sem empurrar conteúdo
   Corrige Margem por Produto e aplica em todos os filtros compactos.
========================================================= */
@media (max-width: 700px) {
  body.app-body .bvms-compact-filter-shell,
  body.app-body .filter-card-clean.bvms-compact-filter-shell,
  body.app-body .bvms-period-widget.bvms-compact-filter-shell,
  body.app-body .bvms-clean-actions .bvms-compact-filter-shell,
  body.app-body .hero-actions-clean .bvms-compact-filter-shell,
  body.app-body .statement-hero-clean .bvms-compact-filter-shell,
  body.app-body .margin-hero-clean .bvms-compact-filter-shell,
  body.app-body .product-margin-page .bvms-compact-filter-shell,
  body.app-body .page-header .bvms-compact-filter-shell,
  body.app-body .mini-title-row .bvms-compact-filter-shell {
    position: relative !important;
    display: flex !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
    z-index: 40 !important;
  }

  body.app-body .bvms-compact-filter-shell > .bvms-compact-filter-trigger,
  body.app-body .bvms-compact-filter-shell > .bvms-period-summary,
  body.app-body .bvms-compact-filter-shell > summary.bvms-period-summary,
  body.app-body .bvms-compact-filter-shell > .mini-period-trigger,
  body.app-body .product-margin-page .bvms-compact-filter-trigger,
  body.app-body .margin-hero-clean .bvms-compact-filter-trigger {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    flex: 1 1 auto !important;
  }

  body.app-body .bvms-compact-filter-shell.is-open,
  body.app-body details.bvms-compact-filter-shell[open] {
    z-index: 20010 !important;
  }

  body.app-body .bvms-compact-filter-shell > .bvms-compact-filter-panel,
  body.app-body .bvms-compact-filter-shell > .bvms-dynamic-filter-panel,
  body.app-body details.bvms-compact-filter-shell > form,
  body.app-body .product-margin-page .bvms-compact-filter-panel,
  body.app-body .margin-hero-clean .bvms-compact-filter-panel {
    position: fixed !important;
    left: 12px !important;
    right: 12px !important;
    top: 86px !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    max-height: calc(100dvh - 110px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    z-index: 20020 !important;
    transform: none !important;
    margin: 0 !important;
    padding: 12px !important;
    border-radius: 18px !important;
    background: var(--mini-surface, var(--v2-surface, #ffffff)) !important;
    border: 1px solid var(--mini-border, var(--v2-border, #dbe3ef)) !important;
    box-shadow: 0 26px 80px rgba(2, 6, 23, .32) !important;
  }

  body.app-body.topbar-mobile-hidden .bvms-compact-filter-shell > .bvms-compact-filter-panel,
  body.app-body.topbar-mobile-hidden .bvms-compact-filter-shell > .bvms-dynamic-filter-panel,
  body.app-body.topbar-mobile-hidden details.bvms-compact-filter-shell > form {
    top: 14px !important;
    max-height: calc(100dvh - 28px) !important;
  }

  body.app-body .bvms-compact-filter-shell > .bvms-compact-filter-panel[hidden],
  body.app-body .bvms-compact-filter-shell > .bvms-dynamic-filter-panel[hidden],
  body.app-body details.bvms-compact-filter-shell:not([open]) > form {
    display: none !important;
  }

  body.app-body .bvms-compact-filter-shell > .bvms-compact-filter-panel:not([hidden]),
  body.app-body .bvms-compact-filter-shell > .bvms-dynamic-filter-panel:not([hidden]),
  body.app-body details.bvms-compact-filter-shell[open] > form {
    display: block !important;
  }

  body.app-body .bvms-compact-filter-panel .mini-period-form,
  body.app-body .bvms-compact-filter-panel .bvms-compact-filter-form,
  body.app-body .bvms-compact-filter-panel .sales-filter-form,
  body.app-body .bvms-compact-filter-panel .filter-grid-clean,
  body.app-body .bvms-compact-filter-panel form,
  body.app-body .bvms-dynamic-filter-panel form {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  body.app-body .bvms-compact-filter-panel .mini-period-tabs,
  body.app-body .bvms-compact-filter-panel .sales-period-tabs,
  body.app-body .bvms-compact-filter-panel .bvms-period-tabs,
  body.app-body .bvms-compact-filter-panel .statement-filter-tabs {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 6px !important;
    width: 100% !important;
    margin: 0 0 10px !important;
  }

  body.app-body .bvms-compact-filter-panel .sales-period-tabs,
  body.app-body .bvms-compact-filter-panel .bvms-period-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.app-body .bvms-compact-filter-panel .mini-period-tabs button,
  body.app-body .bvms-compact-filter-panel .sales-period-tab,
  body.app-body .bvms-compact-filter-panel .period-tab,
  body.app-body .bvms-compact-filter-panel .statement-filter-tab {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 36px !important;
    padding: 0 6px !important;
    font-size: 11px !important;
    white-space: nowrap !important;
  }

  body.app-body .bvms-compact-filter-panel .mini-period-fields,
  body.app-body .bvms-compact-filter-panel .mini-period-fields.two,
  body.app-body .bvms-compact-filter-panel .bvms-compact-filter-grid,
  body.app-body .bvms-compact-filter-panel .bvms-compact-filter-grid.two,
  body.app-body .bvms-compact-filter-panel .statement-filter-fields,
  body.app-body .bvms-compact-filter-panel .statement-filter-period,
  body.app-body .bvms-compact-filter-panel .filter-grid-clean {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: 100% !important;
  }

  body.app-body .bvms-compact-filter-panel [hidden],
  body.app-body .bvms-compact-filter-panel .is-hidden {
    display: none !important;
  }

  body.app-body .bvms-compact-filter-panel .is-visible,
  body.app-body .bvms-compact-filter-panel .active[data-sales-fields],
  body.app-body .bvms-compact-filter-panel .active[data-dre-period-field],
  body.app-body .bvms-compact-filter-panel .active[data-expense-period-field],
  body.app-body .bvms-compact-filter-panel .active[data-mini-period-panel] {
    display: grid !important;
  }

  body.app-body .bvms-compact-filter-panel input,
  body.app-body .bvms-compact-filter-panel select,
  body.app-body .bvms-compact-filter-panel textarea {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 40px !important;
    margin-top: 5px !important;
    font-size: 14px !important;
  }

  body.app-body .bvms-compact-filter-panel .filter-actions-clean,
  body.app-body .bvms-compact-filter-panel .bvms-compact-filter-actions,
  body.app-body .bvms-compact-filter-panel footer {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    width: 100% !important;
    justify-content: stretch !important;
    align-items: stretch !important;
  }

  body.app-body .bvms-compact-filter-panel .filter-actions-clean > *,
  body.app-body .bvms-compact-filter-panel .bvms-compact-filter-actions > *,
  body.app-body .bvms-compact-filter-panel footer > * {
    width: 100% !important;
    min-width: 0 !important;
    justify-content: center !important;
    text-align: center !important;
  }
}


/* =========================================================
   BVMS v13 - filtro mobile sempre visível ao abrir
   Move o painel para o body no celular e evita corte/hidden.
========================================================= */
@media (max-width: 700px) {
  body.app-body.bvms-filter-open {
    overflow-x: hidden !important;
  }

  body.app-body .bvms-mobile-filter-portal,
  body.app-body .bvms-compact-filter-panel.bvms-mobile-filter-portal,
  body.app-body .bvms-dynamic-filter-panel.bvms-mobile-filter-portal {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: fixed !important;
    left: 12px !important;
    right: 12px !important;
    top: 84px !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    max-height: calc(100dvh - 108px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    z-index: 30050 !important;
    transform: none !important;
    margin: 0 !important;
    padding: 12px !important;
    border-radius: 18px !important;
    background: var(--mini-surface, var(--v2-surface, #ffffff)) !important;
    color: var(--mini-text, var(--v2-text, #0f172a)) !important;
    border: 1px solid var(--mini-border, var(--v2-border, #dbe3ef)) !important;
    box-shadow: 0 26px 80px rgba(2, 6, 23, .36) !important;
  }

  body.app-body.topbar-mobile-hidden .bvms-mobile-filter-portal {
    top: 14px !important;
    max-height: calc(100dvh - 28px) !important;
  }

  body.app-body .bvms-mobile-filter-portal[hidden] {
    display: none !important;
  }

  body.app-body .bvms-mobile-filter-portal form,
  body.app-body .bvms-mobile-filter-portal .bvms-compact-filter-form,
  body.app-body .bvms-mobile-filter-portal .mini-period-form,
  body.app-body .bvms-mobile-filter-portal .filter-grid-clean,
  body.app-body .bvms-mobile-filter-portal .sales-filter-form {
    width: 100% !important;
    max-width: 100% !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  body.app-body .bvms-mobile-filter-portal .mini-period-tabs,
  body.app-body .bvms-mobile-filter-portal .sales-period-tabs,
  body.app-body .bvms-mobile-filter-portal .bvms-period-tabs,
  body.app-body .bvms-mobile-filter-portal .statement-filter-tabs {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 6px !important;
    width: 100% !important;
    margin: 0 0 10px !important;
  }

  body.app-body .bvms-mobile-filter-portal .sales-period-tabs,
  body.app-body .bvms-mobile-filter-portal .bvms-period-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.app-body .bvms-mobile-filter-portal .mini-period-tabs button,
  body.app-body .bvms-mobile-filter-portal .sales-period-tab,
  body.app-body .bvms-mobile-filter-portal .period-tab,
  body.app-body .bvms-mobile-filter-portal .statement-filter-tab {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 36px !important;
    padding: 0 6px !important;
    font-size: 11px !important;
    white-space: nowrap !important;
  }

  body.app-body .bvms-mobile-filter-portal .mini-period-fields,
  body.app-body .bvms-mobile-filter-portal .mini-period-fields.two,
  body.app-body .bvms-mobile-filter-portal .bvms-compact-filter-grid,
  body.app-body .bvms-mobile-filter-portal .bvms-compact-filter-grid.two,
  body.app-body .bvms-mobile-filter-portal .statement-filter-fields,
  body.app-body .bvms-mobile-filter-portal .statement-filter-period,
  body.app-body .bvms-mobile-filter-portal .filter-grid-clean {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: 100% !important;
  }

  body.app-body .bvms-mobile-filter-portal [hidden],
  body.app-body .bvms-mobile-filter-portal .is-hidden {
    display: none !important;
  }

  body.app-body .bvms-mobile-filter-portal .is-visible {
    display: grid !important;
  }

  body.app-body .bvms-mobile-filter-portal input,
  body.app-body .bvms-mobile-filter-portal select,
  body.app-body .bvms-mobile-filter-portal textarea {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 40px !important;
    margin-top: 5px !important;
    font-size: 14px !important;
  }

  body.app-body .bvms-mobile-filter-portal .filter-actions-clean,
  body.app-body .bvms-mobile-filter-portal .bvms-compact-filter-actions,
  body.app-body .bvms-mobile-filter-portal footer {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    width: 100% !important;
    justify-content: stretch !important;
    align-items: stretch !important;
  }

  body.app-body .bvms-mobile-filter-portal .filter-actions-clean > *,
  body.app-body .bvms-mobile-filter-portal .bvms-compact-filter-actions > *,
  body.app-body .bvms-mobile-filter-portal footer > * {
    width: 100% !important;
    min-width: 0 !important;
    justify-content: center !important;
    text-align: center !important;
  }
}

/* =========================================================
   BVMS - Painel administrativo interno seguro
========================================================= */
body.app-body .admin-bvms-page {
  display: grid;
  gap: 18px;
  color: var(--v2-text, #0f172a);
}
body.app-body .admin-hero,
body.app-body .admin-panel,
body.app-body .admin-metric-grid article {
  background: var(--v2-surface, #fff);
  border: 1px solid var(--v2-border, #dbe3ef);
  box-shadow: var(--v2-shadow, 0 18px 45px rgba(15,23,42,.08));
  border-radius: 24px;
}
body.app-body .admin-hero {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  gap: 18px;
  padding: 22px;
  overflow: hidden;
  position: relative;
}
body.app-body .admin-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 0 0, color-mix(in srgb, var(--v2-primary, #2563eb) 14%, transparent), transparent 34%);
  pointer-events: none;
}
body.app-body .admin-hero > * { position: relative; z-index: 1; }
body.app-body .admin-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 28px;
  padding: 0 12px;
  border-radius: 999px;
  background: var(--v2-primary-soft, rgba(37,99,235,.10));
  color: var(--v2-primary, #2563eb);
  font-weight: 900;
  font-size: 12px;
}
body.app-body .admin-hero h1 {
  margin: 12px 0 8px;
  font-size: clamp(28px, 4vw, 46px);
  line-height: 1;
  letter-spacing: -.06em;
  color: var(--v2-text, #0f172a);
}
body.app-body .admin-hero p {
  margin: 0;
  color: var(--v2-muted, #64748b);
  max-width: 760px;
  font-weight: 650;
}
body.app-body .admin-security-card {
  flex: 0 0 260px;
  display: grid;
  align-content: center;
  gap: 6px;
  padding: 18px;
  border-radius: 20px;
  background: linear-gradient(135deg, var(--v2-primary, #2563eb), var(--v2-green, #14b8a6));
  color: #fff;
}
body.app-body .admin-security-card strong { font-size: 18px; color: #fff; }
body.app-body .admin-security-card span { color: rgba(255,255,255,.82); font-weight: 700; font-size: 13px; }
body.app-body .admin-metric-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}
body.app-body .admin-metric-grid article {
  min-height: 120px;
  padding: 16px;
  display: grid;
  align-content: space-between;
}
body.app-body .admin-metric-grid span,
body.app-body .admin-panel header span {
  color: var(--v2-muted, #64748b);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .07em;
  font-weight: 950;
}
body.app-body .admin-metric-grid strong {
  color: var(--v2-text, #0f172a);
  font-size: 32px;
  line-height: 1;
  letter-spacing: -.04em;
}
body.app-body .admin-metric-grid small { color: var(--v2-muted, #64748b); font-weight: 750; }
body.app-body .admin-metric-grid article.warn { border-color: color-mix(in srgb, #f59e0b 35%, var(--v2-border)); }
body.app-body .admin-metric-grid article.bad { border-color: color-mix(in srgb, #ef4444 35%, var(--v2-border)); }
body.app-body .admin-grid-main {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(280px, .65fr);
  gap: 18px;
}
body.app-body .admin-grid-secondary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
body.app-body .admin-panel { padding: 18px; min-width: 0; }
body.app-body .admin-panel header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 14px;
}
body.app-body .admin-panel header h2 {
  margin: 6px 0 0;
  color: var(--v2-text, #0f172a);
  font-size: 20px;
  letter-spacing: -.04em;
}
body.app-body .admin-panel header small { color: var(--v2-muted, #64748b); font-weight: 800; }
body.app-body .admin-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--v2-border, #dbe3ef);
  border-radius: 18px;
}
body.app-body .admin-table {
  width: 100%;
  min-width: 980px;
  border-collapse: collapse;
  color: var(--v2-text, #0f172a);
}
body.app-body .admin-table th,
body.app-body .admin-table td {
  padding: 13px 14px;
  border-bottom: 1px solid var(--v2-border, #dbe3ef);
  vertical-align: top;
}
body.app-body .admin-table th {
  background: var(--v2-soft, #f1f5f9);
  color: var(--v2-muted, #64748b);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-weight: 950;
}
body.app-body .admin-table td strong { display: block; color: var(--v2-text, #0f172a); }
body.app-body .admin-table td small { display: block; margin-top: 3px; color: var(--v2-muted, #64748b); }
body.app-body .admin-status {
  display: inline-flex;
  align-items: center;
  width: max-content;
  min-height: 24px;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  background: var(--v2-soft, #f1f5f9);
  color: var(--v2-muted, #64748b);
}
body.app-body .admin-status.ok { background: #dcfce7; color: #166534; }
body.app-body .admin-status.warn { background: #fef3c7; color: #92400e; }
body.app-body .admin-status.bad { background: #fee2e2; color: #991b1b; }
body.app-body.theme-dark .admin-status.ok,
body.app-body.dark .admin-status.ok { background: rgba(34,197,94,.14); color: #86efac; }
body.app-body.theme-dark .admin-status.warn,
body.app-body.dark .admin-status.warn { background: rgba(245,158,11,.14); color: #fcd34d; }
body.app-body.theme-dark .admin-status.bad,
body.app-body.dark .admin-status.bad { background: rgba(239,68,68,.16); color: #fca5a5; }
body.app-body .admin-health-list,
body.app-body .admin-list { display: grid; gap: 10px; }
body.app-body .admin-health-list div,
body.app-body .admin-list-item {
  padding: 12px;
  border-radius: 16px;
  background: var(--v2-soft, #f1f5f9);
  border: 1px solid var(--v2-border, #dbe3ef);
}
body.app-body .admin-health-list div { display: flex; justify-content: space-between; gap: 10px; align-items: center; }
body.app-body .admin-health-list span { color: var(--v2-muted, #64748b); font-weight: 850; }
body.app-body .admin-list-item strong { display: block; color: var(--v2-text, #0f172a); font-size: 13px; }
body.app-body .admin-list-item span { display: block; margin-top: 4px; color: var(--v2-muted, #64748b); font-size: 12px; font-weight: 650; }
body.app-body .admin-list-item small { display: block; margin-top: 6px; color: var(--v2-muted, #64748b); font-size: 11px; font-weight: 800; }
body.app-body .admin-empty { color: var(--v2-muted, #64748b); margin: 0; font-weight: 800; }
@media (max-width: 1180px) {
  body.app-body .admin-metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.app-body .admin-grid-main,
  body.app-body .admin-grid-secondary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  body.app-body .admin-hero { flex-direction: column; padding: 16px; border-radius: 20px; }
  body.app-body .admin-security-card { flex-basis: auto; }
  body.app-body .admin-metric-grid,
  body.app-body .admin-grid-main,
  body.app-body .admin-grid-secondary { grid-template-columns: 1fr; }
  body.app-body .admin-metric-grid article { min-height: 98px; }
  body.app-body .admin-table-wrap { border: 0; overflow: visible; }
  body.app-body .admin-table { min-width: 0; display: block; }
  body.app-body .admin-table thead { display: none; }
  body.app-body .admin-table tbody,
  body.app-body .admin-table tr,
  body.app-body .admin-table td { display: block; width: 100%; }
  body.app-body .admin-table tr {
    margin-bottom: 10px;
    border: 1px solid var(--v2-border, #dbe3ef);
    border-radius: 18px;
    background: var(--v2-surface, #fff);
    overflow: hidden;
  }
  body.app-body .admin-table td {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 10px;
    padding: 10px 12px;
  }
  body.app-body .admin-table td::before {
    content: attr(data-label);
    color: var(--v2-muted, #64748b);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-weight: 950;
  }
}

/* =========================================================
   BVMS v19 - Ações administrativas: excluir/desativar conta
========================================================= */
body.app-body .admin-table {
  min-width: 1120px;
}
body.app-body .admin-delete-form {
  display: grid;
  gap: 6px;
  min-width: 132px;
}
body.app-body .admin-delete-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: max-content;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid rgba(239, 68, 68, .35);
  border-radius: 999px;
  background: rgba(239, 68, 68, .10);
  color: #ef4444;
  font-size: 12px;
  font-weight: 950;
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
body.app-body .admin-delete-btn:hover {
  transform: translateY(-1px);
  border-color: rgba(239, 68, 68, .65);
  background: rgba(239, 68, 68, .16);
}
body.app-body .admin-action-hint {
  display: block;
  max-width: 160px;
  color: var(--v2-muted, #64748b);
  font-size: 10px;
  line-height: 1.25;
  font-weight: 750;
}
body.app-body.theme-dark .admin-delete-btn,
body.app-body.dark .admin-delete-btn {
  background: rgba(239, 68, 68, .14);
  color: #fca5a5;
  border-color: rgba(248, 113, 113, .25);
}
@media (max-width: 760px) {
  body.app-body .admin-table { min-width: 0; }
  body.app-body .admin-delete-form {
    width: 100%;
    min-width: 0;
  }
  body.app-body .admin-delete-btn {
    width: 100%;
  }
  body.app-body .admin-action-hint {
    max-width: none;
    text-align: center;
  }
}


/* =========================================================
   BVMS v22 - Importações mobile responsiva
   Corrige cortes em containers, tabela de prévia, histórico e botões.
========================================================= */
body.app-body .imports-page,
body.app-body .imports-page * {
  box-sizing: border-box;
}
body.app-body .imports-page {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-x: hidden !important;
}
body.app-body .imports-page img,
body.app-body .imports-page svg,
body.app-body .imports-page canvas,
body.app-body .imports-page video {
  max-width: 100% !important;
  height: auto !important;
}
body.app-body .imports-page .preview-table-wrap {
  max-width: 100% !important;
  overflow-x: auto !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
}
body.app-body .imports-page .preview-table {
  table-layout: auto !important;
}
body.app-body .imports-page .history-main strong,
body.app-body .imports-page .preview-file-name,
body.app-body .imports-page .file-title,
body.app-body .imports-page .file-drop small,
body.app-body .imports-page p,
body.app-body .imports-page li {
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

@media (max-width: 900px) {
  body.app-body main.page-content:has(.imports-page),
  body.app-body .page-content:has(.imports-page) {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
  }

  body.app-body .imports-page {
    gap: 14px !important;
    padding-bottom: calc(28px + env(safe-area-inset-bottom, 0px)) !important;
  }

  body.app-body .imports-header,
  body.app-body .smart-upload-card,
  body.app-body .upload-card,
  body.app-body .preview-card,
  body.app-body .preview-table-card,
  body.app-body .auto-create-card,
  body.app-body .mapping-help-card,
  body.app-body .info-card,
  body.app-body .imports-history-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 16px !important;
    border-radius: 20px !important;
    overflow: hidden !important;
  }

  body.app-body .imports-header,
  body.app-body .preview-header,
  body.app-body .history-header {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    align-items: start !important;
  }

  body.app-body .imports-header h1 {
    font-size: clamp(26px, 8vw, 34px) !important;
    line-height: 1.05 !important;
    letter-spacing: -.055em !important;
    margin: 6px 0 8px !important;
    max-width: 100% !important;
  }

  body.app-body .imports-header p,
  body.app-body .upload-card p,
  body.app-body .preview-header p,
  body.app-body .preview-table-header p,
  body.app-body .history-header p {
    max-width: 100% !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
  }

  body.app-body .btn-template-header,
  body.app-body .btn-upload,
  body.app-body .btn-confirm-import,
  body.app-body .btn-secondary-import,
  body.app-body .btn-view-import,
  body.app-body .btn-delete-import {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    justify-content: center !important;
    text-align: center !important;
    white-space: normal !important;
  }

  body.app-body .smart-steps {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  body.app-body .smart-steps .import-step-card {
    width: 100% !important;
    min-width: 0 !important;
    min-height: auto !important;
    padding: 12px 14px !important;
    border-radius: 16px !important;
    overflow: visible !important;
  }

  body.app-body .smart-steps .import-step-card span {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  body.app-body .smart-upload-card {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    align-items: start !important;
  }

  body.app-body .upload-copy {
    display: grid !important;
    grid-template-columns: 44px minmax(0, 1fr) !important;
    gap: 12px !important;
    align-items: start !important;
    min-width: 0 !important;
    padding: 0 !important;
  }

  body.app-body .upload-icon {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    border-radius: 15px !important;
    font-size: 20px !important;
  }

  body.app-body .upload-copy h2 {
    font-size: 19px !important;
    line-height: 1.12 !important;
    margin: 0 0 6px !important;
  }

  body.app-body .upload-form,
  body.app-body .smart-upload-card form {
    width: 100% !important;
    min-width: 0 !important;
  }

  body.app-body .smart-file-drop,
  body.app-body .file-drop {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 112px !important;
    padding: 16px !important;
    border-radius: 18px !important;
    place-items: center !important;
    overflow: hidden !important;
  }

  body.app-body .file-title {
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
    line-height: 1.25 !important;
  }

  body.app-body .file-drop small {
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
  }

  body.app-body .preview-file-name {
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
    text-overflow: clip !important;
    overflow: visible !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
  }

  body.app-body .preview-metrics,
  body.app-body .imports-info-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  body.app-body .preview-metrics > div {
    min-width: 0 !important;
    padding: 12px !important;
    border-radius: 14px !important;
  }

  body.app-body .preview-metrics strong {
    display: block !important;
    min-width: 0 !important;
    font-size: 16px !important;
    overflow-wrap: anywhere !important;
  }

  body.app-body .preview-table-card {
    padding: 12px !important;
    overflow: hidden !important;
  }

  body.app-body .preview-table-header {
    display: grid !important;
    gap: 4px !important;
  }

  body.app-body .preview-table-wrap {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: 58vh !important;
    overflow-x: auto !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    border: 1px solid var(--bvms-border, var(--border, #dbe3ef)) !important;
    border-radius: 16px !important;
    background: var(--bvms-surface, var(--surface, #fff)) !important;
  }

  body.app-body .preview-table-wrap::before {
    content: "Arraste a tabela para o lado";
    position: sticky !important;
    left: 0 !important;
    top: 0 !important;
    z-index: 4 !important;
    display: block !important;
    width: max-content !important;
    margin: 8px !important;
    padding: 5px 9px !important;
    border-radius: 999px !important;
    background: color-mix(in srgb, var(--bvms-primary, #2563eb) 14%, var(--bvms-surface, #fff)) !important;
    color: var(--bvms-primary, #2563eb) !important;
    border: 1px solid color-mix(in srgb, var(--bvms-primary, #2563eb) 24%, transparent) !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    pointer-events: none !important;
  }

  body.app-body .preview-table {
    display: table !important;
    width: max-content !important;
    min-width: 760px !important;
    max-width: none !important;
    border-collapse: collapse !important;
  }

  body.app-body .preview-table thead,
  body.app-body .preview-table tbody,
  body.app-body .preview-table tr {
    display: table-row-group !important;
  }

  body.app-body .preview-table tr { display: table-row !important; }

  body.app-body .preview-table th,
  body.app-body .preview-table td {
    display: table-cell !important;
    width: auto !important;
    min-width: 120px !important;
    max-width: 230px !important;
    padding: 9px 10px !important;
    vertical-align: top !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    border-bottom: 1px solid var(--bvms-border, var(--border, #dbe3ef)) !important;
  }

  body.app-body .column-map-button {
    width: 100% !important;
    min-width: 118px !important;
    max-width: 210px !important;
    padding: 8px 9px !important;
    white-space: normal !important;
    text-align: left !important;
  }

  body.app-body .column-map-button span,
  body.app-body .column-map-button small {
    white-space: normal !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    overflow-wrap: anywhere !important;
  }

  body.app-body .auto-create-card ul,
  body.app-body .info-card ul {
    padding-left: 18px !important;
    margin: 8px 0 0 !important;
  }

  body.app-body .confirm-bar {
    position: static !important;
    bottom: auto !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 12px !important;
    border-radius: 18px !important;
    background: var(--bvms-surface, var(--surface, #fff)) !important;
    border: 1px solid var(--bvms-border, var(--border, #dbe3ef)) !important;
    backdrop-filter: none !important;
  }

  body.app-body .history-list {
    max-height: none !important;
    overflow: visible !important;
    padding-right: 0 !important;
  }

  body.app-body .history-item {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 14px !important;
    border-radius: 18px !important;
    overflow: hidden !important;
  }

  body.app-body .history-main {
    min-width: 0 !important;
    width: 100% !important;
  }

  body.app-body .history-main strong {
    max-width: 100% !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    line-height: 1.25 !important;
  }

  body.app-body .history-stats {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    width: 100% !important;
  }

  body.app-body .history-stats span {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 0 !important;
    text-align: center !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  body.app-body .history-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    width: 100% !important;
    justify-content: stretch !important;
  }

  body.app-body .history-actions form {
    width: 100% !important;
    min-width: 0 !important;
  }

  body.app-body .modal-details {
    grid-template-columns: 1fr !important;
  }

  body.app-body .import-modal.open,
  body.app-body .import-modal.is-open {
    position: fixed !important;
    inset: 0 !important;
    z-index: 3000 !important;
    display: block !important;
  }

  body.app-body .import-modal-backdrop {
    z-index: 3000 !important;
  }

  body.app-body .import-modal-card {
    position: fixed !important;
    z-index: 3001 !important;
    left: 12px !important;
    right: 12px !important;
    bottom: 12px !important;
    top: auto !important;
    transform: none !important;
    width: auto !important;
    max-width: none !important;
    max-height: calc(100dvh - 24px) !important;
    overflow-y: auto !important;
    padding: 16px !important;
    border-radius: 22px !important;
  }

  body.app-body .import-modal-header {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 42px !important;
    gap: 10px !important;
    align-items: start !important;
  }

  body.app-body .import-modal-header h2,
  body.app-body .import-modal-header p {
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
  }
}

@media (max-width: 430px) {
  body.app-body main.page-content:has(.imports-page),
  body.app-body .page-content:has(.imports-page) {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  body.app-body .imports-header,
  body.app-body .smart-upload-card,
  body.app-body .upload-card,
  body.app-body .preview-card,
  body.app-body .preview-table-card,
  body.app-body .auto-create-card,
  body.app-body .mapping-help-card,
  body.app-body .info-card,
  body.app-body .imports-history-card {
    padding: 14px !important;
    border-radius: 18px !important;
  }

  body.app-body .imports-header h1 {
    font-size: clamp(24px, 9vw, 30px) !important;
  }

  body.app-body .preview-metrics,
  body.app-body .imports-info-grid,
  body.app-body .history-stats {
    grid-template-columns: 1fr !important;
  }

  body.app-body .upload-copy {
    grid-template-columns: 40px minmax(0, 1fr) !important;
  }

  body.app-body .upload-icon {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
  }

  body.app-body .preview-table {
    min-width: 680px !important;
  }
}

/* =========================================================
   BVMS v23 - Importações mobile: correção final de cortes
   Ajusta prévia, textos, cards e barra de confirmação no celular.
========================================================= */
body.app-body .imports-page,
body.app-body .imports-page * {
  min-width: 0 !important;
  box-sizing: border-box !important;
}

@media (max-width: 900px) {
  html,
  body.app-body {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  body.app-body main.page-content:has(.imports-page),
  body.app-body .page-content:has(.imports-page) {
    width: 100% !important;
    max-width: 100dvw !important;
    min-width: 0 !important;
    overflow-x: clip !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  body.app-body .imports-page {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: clip !important;
    display: grid !important;
    gap: 14px !important;
  }

  body.app-body .imports-header,
  body.app-body .smart-upload-card,
  body.app-body .upload-card,
  body.app-body .preview-card,
  body.app-body .preview-table-card,
  body.app-body .auto-create-card,
  body.app-body .mapping-help-card,
  body.app-body .info-card,
  body.app-body .imports-history-card,
  body.app-body .history-item,
  body.app-body .confirm-bar {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Textos informativos não podem ser cortados no celular */
  body.app-body .auto-create-card,
  body.app-body .mapping-help-card,
  body.app-body .info-card,
  body.app-body .preview-table-card,
  body.app-body .preview-card {
    overflow: visible !important;
  }

  body.app-body .auto-create-card h3,
  body.app-body .info-card h3,
  body.app-body .preview-table-header h3 {
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    line-height: 1.12 !important;
  }

  body.app-body .auto-create-card h3 {
    font-size: clamp(22px, 7vw, 30px) !important;
    letter-spacing: -.04em !important;
  }

  body.app-body .auto-create-card ul,
  body.app-body .info-card ul {
    display: grid !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 20px !important;
    margin: 10px 0 0 !important;
  }

  body.app-body .auto-create-card li,
  body.app-body .info-card li,
  body.app-body .mapping-help-card,
  body.app-body .preview-table-header p,
  body.app-body .preview-header p,
  body.app-body .imports-header p,
  body.app-body .upload-card p,
  body.app-body .history-header p {
    max-width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    line-height: 1.45 !important;
  }

  /* Tabela de prévia: rola dentro do card, sem estourar a tela */
  body.app-body .preview-table-card {
    padding: 14px !important;
    overflow: hidden !important;
  }

  body.app-body .preview-table-wrap {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: auto !important;
    max-height: 46dvh !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    touch-action: pan-x pan-y !important;
    border-radius: 16px !important;
  }

  body.app-body .preview-table-wrap::before {
    content: "Arraste a prévia para o lado" !important;
    position: sticky !important;
    top: 8px !important;
    left: 8px !important;
    z-index: 5 !important;
    display: inline-flex !important;
    width: max-content !important;
    max-width: calc(100vw - 64px) !important;
    margin: 8px !important;
    padding: 6px 10px !important;
    border-radius: 999px !important;
    background: rgba(37, 99, 235, .16) !important;
    color: #93c5fd !important;
    border: 1px solid rgba(96, 165, 250, .25) !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
    font-weight: 900 !important;
    pointer-events: none !important;
  }

  body.app-body .preview-table {
    width: max-content !important;
    min-width: 640px !important;
    max-width: none !important;
    table-layout: auto !important;
    border-collapse: collapse !important;
  }

  body.app-body .preview-table th,
  body.app-body .preview-table td {
    min-width: 112px !important;
    max-width: 188px !important;
    padding: 10px 12px !important;
    font-size: 13px !important;
    line-height: 1.25 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.app-body .preview-table td {
    font-size: 14px !important;
  }

  body.app-body .column-map-button {
    min-width: 112px !important;
    max-width: 170px !important;
    padding: 8px 9px !important;
  }

  body.app-body .column-map-button span,
  body.app-body .column-map-button small {
    display: block !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    line-height: 1.25 !important;
  }

  /* Barra de confirmação: botões 100% e texto sempre visível */
  body.app-body .confirm-bar {
    position: static !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 12px !important;
    overflow: visible !important;
    background: var(--bvms-surface, var(--surface, #fff)) !important;
  }

  body.app-body .confirm-bar a,
  body.app-body .confirm-bar button,
  body.app-body .btn-confirm-import,
  body.app-body .btn-secondary-import,
  body.app-body .btn-upload,
  body.app-body .btn-template-header {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 50px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: anywhere !important;
    line-height: 1.2 !important;
    text-align: center !important;
  }

  body.app-body .preview-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.app-body .imports-info-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 430px) {
  body.app-body main.page-content:has(.imports-page),
  body.app-body .page-content:has(.imports-page) {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  body.app-body .imports-header,
  body.app-body .smart-upload-card,
  body.app-body .upload-card,
  body.app-body .preview-card,
  body.app-body .preview-table-card,
  body.app-body .auto-create-card,
  body.app-body .mapping-help-card,
  body.app-body .info-card,
  body.app-body .imports-history-card {
    padding: 14px !important;
    border-radius: 18px !important;
  }

  body.app-body .preview-table-wrap {
    max-height: 42dvh !important;
  }

  body.app-body .preview-table {
    min-width: 560px !important;
  }

  body.app-body .preview-table th,
  body.app-body .preview-table td {
    min-width: 104px !important;
    max-width: 160px !important;
    padding: 9px 10px !important;
    font-size: 12px !important;
  }

  body.app-body .preview-table td {
    font-size: 13px !important;
  }

  body.app-body .column-map-button {
    min-width: 104px !important;
    max-width: 152px !important;
  }

  body.app-body .preview-metrics {
    grid-template-columns: 1fr !important;
  }
}

/* =========================================================
   BVMS v24 - Mobile: Pagamentos, Assinaturas e Planos
   ========================================================= */
@media (max-width: 760px) {
  body.app-body main.page-content:has(.billing-subscription-page),
  body.app-body main.page-content:has(.plans-choice-page),
  body.app-body .page-content:has(.billing-subscription-page),
  body.app-body .page-content:has(.plans-choice-page) {
    width: 100% !important;
    max-width: 100dvw !important;
    min-width: 0 !important;
    overflow-x: clip !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  body.app-body .billing-subscription-page,
  body.app-body .plans-choice-page {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: clip !important;
    display: grid !important;
    gap: 14px !important;
  }

  body.app-body .billing-subscription-page .page-header,
  body.app-body .plans-choice-page .page-header {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 0 4px !important;
    padding: 16px !important;
    border-radius: 20px !important;
    background: linear-gradient(135deg, color-mix(in srgb, var(--bvms-primary) 10%, var(--bvms-surface)), color-mix(in srgb, var(--bvms-success) 7%, var(--bvms-surface))) !important;
    border: 1px solid var(--bvms-border) !important;
    box-shadow: var(--bvms-shadow) !important;
    overflow: hidden !important;
  }

  body.app-body .billing-subscription-page .page-header h1,
  body.app-body .plans-choice-page .page-header h1 {
    font-size: clamp(24px, 8vw, 34px) !important;
    line-height: 1.05 !important;
    letter-spacing: -.045em !important;
    margin: 0 0 8px !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  body.app-body .billing-subscription-page .page-header p,
  body.app-body .plans-choice-page .page-header p,
  body.app-body .billing-subscription-page p,
  body.app-body .plans-choice-page p,
  body.app-body .billing-subscription-page small,
  body.app-body .plans-choice-page small,
  body.app-body .billing-subscription-page span,
  body.app-body .plans-choice-page span,
  body.app-body .billing-subscription-page strong,
  body.app-body .plans-choice-page strong {
    max-width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }

  body.app-body .billing-subscription-page > .row,
  body.app-body .plans-choice-page > .row,
  body.app-body .billing-subscription-page .row,
  body.app-body .plans-choice-page .row {
    --bs-gutter-x: 0 !important;
    --bs-gutter-y: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body.app-body .billing-subscription-page [class*="col-"],
  body.app-body .plans-choice-page [class*="col-"] {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.app-body .billing-subscription-page .card,
  body.app-body .plans-choice-page .card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    border-radius: 20px !important;
    overflow: hidden !important;
    background: var(--bvms-surface) !important;
    border: 1px solid var(--bvms-border) !important;
    box-shadow: var(--bvms-shadow) !important;
  }

  body.app-body .billing-subscription-page .card-body,
  body.app-body .plans-choice-page .card-body {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 16px !important;
  }

  body.app-body .billing-subscription-page .card-body > .d-flex,
  body.app-body .plans-choice-page .card-body > .d-flex,
  body.app-body .billing-subscription-page .d-flex.justify-content-between,
  body.app-body .plans-choice-page .d-flex.justify-content-between {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    align-items: start !important;
    justify-content: stretch !important;
  }

  body.app-body .billing-subscription-page h2,
  body.app-body .billing-subscription-page h3,
  body.app-body .billing-subscription-page h4,
  body.app-body .plans-choice-page h2,
  body.app-body .plans-choice-page h3,
  body.app-body .plans-choice-page h4 {
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    line-height: 1.12 !important;
  }

  body.app-body .billing-subscription-page h2,
  body.app-body .plans-choice-page h2 {
    font-size: clamp(26px, 8vw, 34px) !important;
  }

  body.app-body .billing-subscription-page h3,
  body.app-body .plans-choice-page h3 {
    font-size: clamp(21px, 6.3vw, 28px) !important;
  }

  body.app-body .billing-subscription-page .badge,
  body.app-body .plans-choice-page .badge {
    width: max-content !important;
    max-width: 100% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 7px 10px !important;
    line-height: 1.15 !important;
    white-space: normal !important;
    text-align: center !important;
  }

  body.app-body .billing-subscription-page .bg-light,
  body.app-body .plans-choice-page .bg-light {
    border: 1px solid var(--bvms-border) !important;
    background: var(--bvms-surface-2) !important;
  }

  body.app-body .billing-subscription-page .alert,
  body.app-body .plans-choice-page .alert {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 13px 14px !important;
    line-height: 1.4 !important;
    overflow: visible !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  body.app-body .billing-subscription-page .btn,
  body.app-body .plans-choice-page .btn,
  body.app-body .billing-subscription-page button,
  body.app-body .plans-choice-page button {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 50px !important;
    padding: 12px 14px !important;
    border-radius: 16px !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    text-align: center !important;
    line-height: 1.2 !important;
  }

  body.app-body .billing-subscription-page .mt-4.d-flex,
  body.app-body .plans-choice-page .d-flex.flex-wrap.gap-2 {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  /* Pix: QR Code, copia e cola e botões sempre dentro do card */
  body.app-body .billing-subscription-page img[alt="QR Code Pix"] {
    display: block !important;
    width: min(210px, 82vw) !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 auto !important;
    border-radius: 18px !important;
  }

  body.app-body .billing-subscription-page textarea.form-control {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 112px !important;
    max-height: 160px !important;
    padding: 12px !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    overflow: auto !important;
    white-space: pre-wrap !important;
    overflow-wrap: anywhere !important;
    word-break: break-all !important;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace !important;
    border-radius: 16px !important;
  }

  /* Histórico de pagamentos vira cards no celular */
  body.app-body .billing-subscription-page .table-responsive {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
  }

  body.app-body .billing-subscription-page table.table {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.app-body .billing-subscription-page table.table thead {
    display: none !important;
  }

  body.app-body .billing-subscription-page table.table tbody {
    display: grid !important;
    gap: 12px !important;
    width: 100% !important;
  }

  body.app-body .billing-subscription-page table.table tr {
    display: grid !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 14px !important;
    border-radius: 18px !important;
    background: var(--bvms-surface-2) !important;
    border: 1px solid var(--bvms-border) !important;
  }

  body.app-body .billing-subscription-page table.table td {
    display: grid !important;
    grid-template-columns: minmax(92px, 36%) minmax(0, 1fr) !important;
    gap: 10px !important;
    align-items: start !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  body.app-body .billing-subscription-page table.table td::before {
    color: var(--bvms-muted) !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
  }

  body.app-body .billing-subscription-page table.table td:nth-child(1)::before { content: "Plano"; }
  body.app-body .billing-subscription-page table.table td:nth-child(2)::before { content: "Método"; }
  body.app-body .billing-subscription-page table.table td:nth-child(3)::before { content: "Status"; }
  body.app-body .billing-subscription-page table.table td:nth-child(4)::before { content: "Referência"; }
  body.app-body .billing-subscription-page table.table td:nth-child(5)::before { content: "Valor"; }
  body.app-body .billing-subscription-page table.table td:nth-child(6)::before { content: "Pago em"; }
  body.app-body .billing-subscription-page table.table td:nth-child(7)::before { content: "Criado em"; }

  body.app-body .billing-subscription-page .table-hover > tbody > tr:hover > * {
    background: transparent !important;
  }

  /* Escolha de planos: cards mais claros e comparáveis */
  body.app-body .plans-choice-page > .row > .col-12,
  body.app-body .plans-choice-page > .row > [class*="col-"] {
    display: block !important;
  }

  body.app-body .plans-choice-page .card.h-100 {
    min-height: auto !important;
  }

  body.app-body .plans-choice-page ul.list-unstyled {
    display: grid !important;
    gap: 8px !important;
    margin: 12px 0 18px !important;
  }

  body.app-body .plans-choice-page ul.list-unstyled li {
    display: flex !important;
    gap: 8px !important;
    align-items: flex-start !important;
    padding: 8px 10px !important;
    border-radius: 12px !important;
    background: var(--bvms-surface-2) !important;
    border: 1px solid var(--bvms-border) !important;
    line-height: 1.3 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  body.app-body .plans-choice-page form {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.app-body .plans-choice-page .ms-2 {
    display: block !important;
    margin-left: 0 !important;
    margin-top: 8px !important;
  }
}

@media (max-width: 430px) {
  body.app-body main.page-content:has(.billing-subscription-page),
  body.app-body main.page-content:has(.plans-choice-page),
  body.app-body .page-content:has(.billing-subscription-page),
  body.app-body .page-content:has(.plans-choice-page) {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  body.app-body .billing-subscription-page .page-header,
  body.app-body .plans-choice-page .page-header,
  body.app-body .billing-subscription-page .card-body,
  body.app-body .plans-choice-page .card-body {
    padding: 14px !important;
  }

  body.app-body .billing-subscription-page .card,
  body.app-body .plans-choice-page .card {
    border-radius: 18px !important;
  }

  body.app-body .billing-subscription-page table.table td {
    grid-template-columns: 88px minmax(0, 1fr) !important;
    gap: 8px !important;
    font-size: 13px !important;
  }

  body.app-body .billing-subscription-page img[alt="QR Code Pix"] {
    width: min(190px, 78vw) !important;
  }

  body.app-body .billing-subscription-page textarea.form-control {
    min-height: 104px !important;
    font-size: 11px !important;
  }
}


/* BVMS v25 - Notificações responsivas e compactas */
body.app-body .notifications-page {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: hidden;
}

body.app-body .notifications-page,
body.app-body .notifications-page * {
  box-sizing: border-box;
}

body.app-body .notifications-page .notifications-hero {
  overflow: hidden;
}

body.app-body .notifications-page .notifications-hero-inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  width: 100%;
  min-width: 0;
}

body.app-body .notifications-page .notifications-title-block {
  min-width: 0;
}

body.app-body .notifications-page .notifications-title-block h1 {
  margin: 0;
  overflow-wrap: anywhere;
}

body.app-body .notifications-page .notifications-title-block p {
  margin-bottom: 0;
  max-width: 720px;
  overflow-wrap: anywhere;
}

body.app-body .notifications-page .notifications-read-all-form {
  flex: 0 0 auto;
}

body.app-body .notifications-page .notifications-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  width: 100%;
}

body.app-body .notifications-page .notification-summary-card {
  min-width: 0;
  padding: 16px;
  border-radius: 18px;
  background: var(--bvms-surface, #ffffff);
  border: 1px solid var(--bvms-border, #e2e8f0);
  box-shadow: 0 12px 28px rgba(15, 23, 42, .05);
}

body.app-body .notifications-page .notification-summary-card span {
  display: block;
  color: var(--bvms-muted, #64748b);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .07em;
  line-height: 1.2;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

body.app-body .notifications-page .notification-summary-card strong {
  display: block;
  margin-top: 6px;
  color: var(--bvms-text, #0f172a);
  font-size: clamp(20px, 3vw, 30px);
  font-weight: 950;
  line-height: 1;
  overflow-wrap: anywhere;
}

body.app-body .notifications-page .notification-summary-card.is-unread {
  background: color-mix(in srgb, var(--bvms-primary, #2563eb) 8%, var(--bvms-surface, #fff));
  border-color: color-mix(in srgb, var(--bvms-primary, #2563eb) 36%, var(--bvms-border, #e2e8f0));
}

body.app-body .notifications-page .notification-tabs {
  display: flex;
  gap: 8px;
  width: 100%;
  max-width: 100%;
  padding: 6px;
  overflow-x: auto;
  scrollbar-width: none;
  border: 1px solid var(--bvms-border, #e2e8f0);
  border-radius: 18px;
  background: var(--bvms-surface, #ffffff);
}

body.app-body .notifications-page .notification-tabs::-webkit-scrollbar {
  display: none;
}

body.app-body .notifications-page .notification-tabs a {
  flex: 1 0 auto;
  min-width: max-content;
  padding: 10px 14px;
  border-radius: 14px;
  color: var(--bvms-muted, #64748b);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.1;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  border: 0;
}

body.app-body .notifications-page .notification-tabs a.active {
  color: var(--bvms-primary, #2563eb);
  background: color-mix(in srgb, var(--bvms-primary, #2563eb) 11%, transparent);
}

body.app-body .notifications-page .notifications-panel,
body.app-body .notifications-page .notifications-panel .card-body {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

body.app-body .notifications-page .notifications-list {
  display: grid;
  gap: 12px;
  width: 100%;
  min-width: 0;
}

body.app-body .notifications-page .notification-item {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 12px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--bvms-border, #e2e8f0);
  border-radius: 18px;
  background: var(--bvms-surface, #fff);
}

body.app-body .notifications-page .notification-item.is-unread {
  border-color: color-mix(in srgb, var(--bvms-primary, #2563eb) 58%, var(--bvms-border, #e2e8f0));
  box-shadow: 0 12px 26px color-mix(in srgb, var(--bvms-primary, #2563eb) 10%, transparent);
}

body.app-body .notifications-page .notification-item.is-read {
  opacity: .82;
}

body.app-body .notifications-page .notification-icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 16px;
  font-size: 18px;
  font-weight: 950;
  line-height: 1;
}

body.app-body .notifications-page .notification-content,
body.app-body .notifications-page .notification-text {
  width: 100%;
  min-width: 0;
}

body.app-body .notifications-page .notification-main-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
  width: 100%;
  min-width: 0;
}

body.app-body .notifications-page .notification-meta-line {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 7px;
}

body.app-body .notifications-page .notification-text h5 {
  max-width: 100%;
  font-size: 16px;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

body.app-body .notifications-page .notification-text p {
  max-width: 100%;
  font-size: 14px;
  line-height: 1.45;
  white-space: normal;
  overflow-wrap: anywhere;
}

body.app-body .notifications-page .notification-date {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  color: var(--bvms-muted, #64748b);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
  text-align: right;
  white-space: nowrap;
}

body.app-body .notifications-page .notification-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

body.app-body .notifications-page .notification-actions form {
  display: inline-flex;
  margin: 0;
}

body.app-body .notifications-page .notification-actions .btn {
  min-height: 36px;
  padding: 8px 12px;
  font-weight: 900;
  line-height: 1.15;
  white-space: normal;
}

body.app-body.theme-dark .notifications-page .notification-summary-card,
body.app-body.theme-dark .notifications-page .notification-tabs,
body.app-body.theme-dark .notifications-page .notification-item {
  background: var(--bvms-surface, #111827);
  border-color: var(--bvms-border, rgba(255,255,255,.12));
}

@media (max-width: 760px) {
  body.app-body main.page-content:has(.notifications-page),
  body.app-body .page-content:has(.notifications-page) {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  body.app-body .notifications-page .notifications-hero {
    padding: 15px !important;
    border-radius: 20px !important;
    margin-bottom: 12px !important;
  }

  body.app-body .notifications-page .notifications-hero-inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
  }

  body.app-body .notifications-page .notifications-title-block h1 {
    font-size: clamp(24px, 8vw, 34px) !important;
    line-height: .98 !important;
  }

  body.app-body .notifications-page .notifications-title-block p {
    margin-top: 8px;
    font-size: 14px;
    line-height: 1.38;
  }

  body.app-body .notifications-page .notifications-read-all-form,
  body.app-body .notifications-page .notifications-read-all-btn {
    width: 100% !important;
    max-width: 100% !important;
  }

  body.app-body .notifications-page .notifications-read-all-btn {
    min-height: 46px;
    padding: 11px 14px;
    border-radius: 15px !important;
  }

  body.app-body .notifications-page .notifications-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px !important;
  }

  body.app-body .notifications-page .notification-summary-card {
    min-height: 72px;
    padding: 11px 9px;
    border-radius: 16px;
  }

  body.app-body .notifications-page .notification-summary-card span {
    font-size: 9.5px;
    letter-spacing: .06em;
  }

  body.app-body .notifications-page .notification-summary-card strong {
    margin-top: 6px;
    font-size: 19px;
    line-height: 1.05;
  }

  body.app-body .notifications-page .notification-tabs {
    margin-bottom: 12px !important;
    padding: 5px;
    border-radius: 16px;
  }

  body.app-body .notifications-page .notification-tabs a {
    padding: 10px 12px;
    font-size: 12px;
    border-radius: 12px;
  }

  body.app-body .notifications-page .notifications-panel {
    border-radius: 20px !important;
  }

  body.app-body .notifications-page .notifications-panel .card-body {
    padding: 12px !important;
  }

  body.app-body .notifications-page .notifications-list {
    gap: 10px;
  }

  body.app-body .notifications-page .notification-item {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 10px;
    padding: 12px;
    border-radius: 17px;
  }

  body.app-body .notifications-page .notification-icon {
    width: 34px;
    height: 34px;
    border-radius: 12px;
    font-size: 15px;
  }

  body.app-body .notifications-page .notification-main-row {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  body.app-body .notifications-page .notification-date {
    justify-content: flex-start;
    text-align: left;
    white-space: normal;
  }

  body.app-body .notifications-page .notification-meta-line {
    gap: 5px;
    margin-bottom: 6px;
  }

  body.app-body .notifications-page .notification-meta-line .badge {
    max-width: 100%;
    font-size: 10px;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  body.app-body .notifications-page .notification-text h5 {
    margin-bottom: 5px !important;
    font-size: 14px;
    line-height: 1.22;
  }

  body.app-body .notifications-page .notification-text p {
    font-size: 12.5px;
    line-height: 1.38;
  }

  body.app-body .notifications-page .notification-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    margin-top: 9px;
  }

  body.app-body .notifications-page .notification-actions form,
  body.app-body .notifications-page .notification-actions .btn {
    width: 100% !important;
    max-width: 100% !important;
  }

  body.app-body .notifications-page .notification-actions .btn {
    min-height: 42px;
    padding: 10px 12px;
    border-radius: 14px !important;
  }
}

@media (max-width: 430px) {
  body.app-body main.page-content:has(.notifications-page),
  body.app-body .page-content:has(.notifications-page) {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  body.app-body .notifications-page .notifications-hero,
  body.app-body .notifications-page .notifications-panel .card-body {
    padding: 10px !important;
  }

  body.app-body .notifications-page .notifications-summary {
    gap: 6px;
  }

  body.app-body .notifications-page .notification-summary-card {
    padding: 9px 7px;
    min-height: 66px;
    border-radius: 14px;
  }

  body.app-body .notifications-page .notification-summary-card strong {
    font-size: 17px;
  }

  body.app-body .notifications-page .notification-tabs a {
    font-size: 11.5px;
    padding: 9px 10px;
  }

  body.app-body .notifications-page .notification-item {
    grid-template-columns: 30px minmax(0, 1fr);
    padding: 10px;
    gap: 8px;
  }

  body.app-body .notifications-page .notification-icon {
    width: 30px;
    height: 30px;
    border-radius: 10px;
    font-size: 13px;
  }
}


/* =========================================================
   BVMS v45 - logo sem fundo, botão de tema minimalista e sidebar
========================================================= */
:root {
  --bvms-logo-url: url('/assets/img/bvms-simbolo-colorido.svg');
}
html.theme-dark,
html[data-theme="dark"],
body.theme-dark,
body.dark {
  --bvms-logo-url: url('/assets/img/bvms-simbolo-branco_teal.svg');
}

.bvms-brand-symbol {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  background-image: var(--bvms-logo-url) !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
  background-color: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  filter: none !important;
}

.sidebar-clean-logo,
.login-brand-icon,
.wizard-brand-icon,
.lp-logo,
.password-logo,
.change-password-logo {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  overflow: visible !important;
  color: transparent !important;
  flex: 0 0 auto !important;
}

.sidebar-clean-logo { width: 38px !important; min-width: 38px !important; height: 38px !important; border-radius: 0 !important; }
.login-brand-icon, .wizard-brand-icon, .lp-logo { width: 42px !important; min-width: 42px !important; height: 42px !important; border-radius: 0 !important; }
.password-logo, .change-password-logo { width: 46px !important; min-width: 46px !important; height: 46px !important; border-radius: 0 !important; }

/* botão de tema: quadrado/pílula minimalista, sem cinza pesado */
button.theme-toggle,
.theme-toggle,
.password-theme-toggle,
.topbar-clean-icon[data-theme-toggle] {
  background: #ffffff !important;
  color: #0f172a !important;
  border: 1px solid rgba(203, 213, 225, .9) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

html.theme-dark button.theme-toggle,
html[data-theme="dark"] button.theme-toggle,
html.theme-dark .theme-toggle,
html[data-theme="dark"] .theme-toggle,
html.theme-dark .password-theme-toggle,
html[data-theme="dark"] .password-theme-toggle {
  background: #ffffff !important;
  color: #0f172a !important;
  border-color: rgba(255,255,255,.9) !important;
  box-shadow: none !important;
}

body.app-body.theme-dark .topbar-clean-icon[data-theme-toggle],
body.app-body.dark .topbar-clean-icon[data-theme-toggle],
html[data-theme="dark"] body.app-body .topbar-clean-icon[data-theme-toggle] {
  background: rgba(15, 23, 42, .78) !important;
  color: #f8fafc !important;
  border-color: rgba(148, 163, 184, .24) !important;
}

.theme-toggle span,
.password-theme-toggle span {
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Corrige regras antigas hardcoded da tela de cadastro */
.register-wizard-page .wizard-brand-icon,
.register-wizard-page button.theme-toggle,
body.guest-body .register-wizard-page button.theme-toggle {
  box-shadow: none !important;
}
.register-wizard-page .wizard-brand-icon {
  background: transparent !important;
  border-radius: 0 !important;
}
.register-wizard-page button.theme-toggle,
body.guest-body .register-wizard-page button.theme-toggle {
  background: #fff !important;
  color: #0f172a !important;
  border-color: rgba(203, 213, 225, .9) !important;
}

/* Sidebar recolhida: evita logo e hamburger sobrepostos */
body.sidebar-collapsed .sidebar-clean-header,
.bvms-sidebar-clean.sidebar-collapsed .sidebar-clean-header {
  justify-content: center !important;
  gap: 0 !important;
}
body.sidebar-collapsed .sidebar-clean-brand,
.bvms-sidebar-clean.sidebar-collapsed .sidebar-clean-brand {
  display: none !important;
}
body.sidebar-collapsed .sidebar-clean-toggle,
.bvms-sidebar-clean.sidebar-collapsed .sidebar-clean-toggle {
  margin: 0 auto !important;
  width: 38px !important;
  min-width: 38px !important;
  height: 38px !important;
  border-radius: 14px !important;
  background: var(--v2-surface, var(--bvms-surface, #fff)) !important;
  color: var(--v2-text, var(--bvms-text, #0f172a)) !important;
  border: 1px solid var(--v2-border, var(--bvms-border, #dbe3ef)) !important;
}
@media (max-width: 900px) {
  body.app-body .sidebar-clean-brand {
    display: inline-flex !important;
  }
  body.app-body .sidebar-clean-logo {
    width: 36px !important;
    min-width: 36px !important;
    height: 36px !important;
  }
}

/* =========================================================
   BVMS v46 - tema minimalista definitivo sem emoji e sem caixa
========================================================= */
html[data-theme="light"],
html.theme-light,
html[data-theme="light"] body.app-body,
html.theme-light body.app-body {
  background: var(--v2-bg, #f6f8fb) !important;
  color: var(--v2-text, #0f172a) !important;
}

button[data-theme-toggle],
.theme-toggle[data-theme-toggle],
.password-theme-toggle[data-theme-toggle],
.topbar-clean-icon[data-theme-toggle] {
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
  min-height: 40px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
  color: #0f172a !important;
  -webkit-text-fill-color: currentColor !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  cursor: pointer !important;
  overflow: visible !important;
}

html[data-theme="dark"] button[data-theme-toggle],
html.theme-dark button[data-theme-toggle],
body.theme-dark button[data-theme-toggle],
body.dark button[data-theme-toggle],
html[data-theme="dark"] .theme-toggle[data-theme-toggle],
html.theme-dark .theme-toggle[data-theme-toggle],
html[data-theme="dark"] .password-theme-toggle[data-theme-toggle],
html.theme-dark .password-theme-toggle[data-theme-toggle],
html[data-theme="dark"] .topbar-clean-icon[data-theme-toggle],
html.theme-dark .topbar-clean-icon[data-theme-toggle] {
  background: transparent !important;
  background-color: transparent !important;
  border-color: transparent !important;
  color: #f8fafc !important;
  -webkit-text-fill-color: currentColor !important;
  box-shadow: none !important;
}

button[data-theme-toggle]:hover,
button[data-theme-toggle]:focus-visible,
.theme-toggle[data-theme-toggle]:hover,
.theme-toggle[data-theme-toggle]:focus-visible,
.password-theme-toggle[data-theme-toggle]:hover,
.password-theme-toggle[data-theme-toggle]:focus-visible,
.topbar-clean-icon[data-theme-toggle]:hover,
.topbar-clean-icon[data-theme-toggle]:focus-visible {
  background: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  color: #14b8a6 !important;
  transform: translateY(-1px);
}

[data-theme-toggle] .theme-icon,
[data-theme-toggle] .moon-icon,
[data-theme-toggle] .sun-icon {
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  min-height: 22px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 0 !important;
  line-height: 0 !important;
  color: currentColor !important;
  -webkit-text-fill-color: currentColor !important;
}

[data-theme-toggle] svg {
  display: block !important;
  width: 22px !important;
  height: 22px !important;
  color: currentColor !important;
  stroke: currentColor !important;
  fill: none !important;
}

html[data-theme="dark"] [data-theme-toggle] .sun-icon,
html.theme-dark [data-theme-toggle] .sun-icon,
body.theme-dark [data-theme-toggle] .sun-icon,
body.dark [data-theme-toggle] .sun-icon {
  display: inline-flex !important;
}

html[data-theme="light"] [data-theme-toggle] .moon-icon,
html.theme-light [data-theme-toggle] .moon-icon,
html:not([data-theme="dark"]):not(.theme-dark) [data-theme-toggle] .moon-icon {
  display: inline-flex !important;
}

html[data-theme="dark"] [data-theme-toggle] .moon-icon,
html.theme-dark [data-theme-toggle] .moon-icon,
body.theme-dark [data-theme-toggle] .moon-icon,
body.dark [data-theme-toggle] .moon-icon,
html[data-theme="light"] [data-theme-toggle] .sun-icon,
html.theme-light [data-theme-toggle] .sun-icon {
  display: none !important;
}

body.app-body .topbar-clean-icon[data-theme-toggle] {
  flex: 0 0 40px !important;
}

@media (max-width: 900px) {
  body.app-body .topbar-clean-icon[data-theme-toggle] {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 38px !important;
    min-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    flex: 0 0 38px !important;
  }
  [data-theme-toggle] svg {
    width: 21px !important;
    height: 21px !important;
  }
}


/* =========================================================
   BVMS UX Mobile Minimalista - Dashboard + Bottom Navigation
   Objetivo: reduzir scroll inicial, preservar tema e melhorar ação rápida no celular.
========================================================= */
@media (max-width: 760px) {
    html,
    body.app-body {
        overflow-x: hidden !important;
    }

    body.app-body .bvms-main-shell {
        min-width: 0 !important;
    }

    body.app-body .page-content,
    body.app-body main.page-content {
        padding: 12px 12px calc(92px + env(safe-area-inset-bottom, 0px)) !important;
        max-width: 100vw !important;
        overflow-x: hidden !important;
    }

    body.app-body .page-content:has(.bvms-dashboard-minimal),
    body.app-body main.page-content:has(.bvms-dashboard-minimal) {
        padding: 10px 10px calc(94px + env(safe-area-inset-bottom, 0px)) !important;
        background:
            radial-gradient(circle at 18% -8%, rgba(35, 164, 255, .10), transparent 28%),
            var(--mini-bg) !important;
    }

    .bvms-dashboard-minimal {
        gap: 10px !important;
        font-size: 13px !important;
    }

    .mini-dash-header {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        align-items: stretch !important;
        padding: 12px !important;
        border-radius: 18px !important;
        box-shadow: none !important;
        background: color-mix(in srgb, var(--mini-surface) 94%, transparent) !important;
    }

    .mini-title-row {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        margin-top: 6px !important;
    }

    .mini-eyebrow {
        min-height: 20px !important;
        padding: 0 8px !important;
        font-size: 10px !important;
        letter-spacing: .05em !important;
    }

    .mini-dash-title h1 {
        font-size: 22px !important;
        letter-spacing: -0.045em !important;
        line-height: 1.05 !important;
        max-width: 11ch !important;
    }

    .mini-period-trigger {
        width: 100% !important;
        min-height: 40px !important;
        border-radius: 14px !important;
        justify-content: space-between !important;
        padding: 0 11px !important;
        box-shadow: none !important;
    }

    .mini-period-trigger span {
        display: none !important;
    }

    .mini-period-trigger strong {
        font-size: 12px !important;
    }

    .mini-module-tabs {
        display: grid !important;
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
        gap: 6px !important;
        justify-content: stretch !important;
        overflow: visible !important;
    }

    .mini-module-tabs a {
        min-height: 36px !important;
        border-radius: 13px !important;
        padding: 0 6px !important;
        justify-content: center !important;
        font-size: 0 !important;
        box-shadow: none !important;
    }

    .mini-module-tabs a i {
        font-size: 17px !important;
    }

    .mini-alerts-under-title {
        padding: 0 !important;
    }

    .mini-alerts-summary {
        min-height: 48px !important;
        padding: 10px 12px !important;
        border-radius: 16px !important;
        display: flex !important;
        align-items: center !important;
        gap: 10px !important;
        background: color-mix(in srgb, var(--mini-surface) 96%, transparent) !important;
        border: 1px solid var(--mini-border) !important;
        box-shadow: none !important;
    }

    .mini-alerts-summary span {
        display: none !important;
    }

    .mini-alerts-summary strong {
        font-size: 12px !important;
        line-height: 1.15 !important;
    }

    .mini-alerts-summary b {
        flex: 0 0 auto !important;
        min-height: 26px !important;
        padding: 0 9px !important;
        border-radius: 999px !important;
        font-size: 10px !important;
        display: inline-flex !important;
        align-items: center !important;
    }

    .mini-alerts-inline-list {
        display: none !important;
    }

    .mini-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    .mini-kpi-card {
        min-height: 86px !important;
        padding: 10px !important;
        border-radius: 16px !important;
        box-shadow: none !important;
    }

    .mini-kpi-card span {
        font-size: 10px !important;
        text-transform: uppercase !important;
        letter-spacing: .05em !important;
        line-height: 1.1 !important;
    }

    .mini-kpi-card strong {
        margin-top: 6px !important;
        font-size: clamp(17px, 5.4vw, 22px) !important;
        white-space: nowrap !important;
    }

    .mini-kpi-card small {
        margin-top: 4px !important;
        font-size: 10px !important;
        line-height: 1.15 !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 1 !important;
        -webkit-box-orient: vertical !important;
        overflow: hidden !important;
    }

    .mini-spark,
    .mini-spark canvas {
        display: none !important;
    }

    .accent-ring {
        grid-template-columns: 1fr 44px !important;
        gap: 6px !important;
    }

    .mini-ring {
        width: 42px !important;
        height: 42px !important;
        box-shadow: none !important;
    }

    .mini-ring b {
        font-size: 10px !important;
    }

    body.app-body .bvms-dashboard-minimal .mini-dashboard-grid {
        gap: 10px !important;
    }

    body.app-body .bvms-dashboard-minimal .mini-panel {
        min-height: 0 !important;
        border-radius: 18px !important;
        box-shadow: none !important;
        padding: 14px !important;
    }
}

@media (max-width: 420px) {
    .mini-kpi-card strong {
        font-size: clamp(15px, 4.9vw, 19px) !important;
        letter-spacing: -0.05em !important;
    }

    .mini-kpi-card {
        min-height: 80px !important;
    }

    .mini-module-tabs a {
        min-height: 34px !important;
    }
}

@media (max-width: 760px) {
    .bvms-mobile-bottom-nav {
        position: fixed !important;
        left: 10px !important;
        right: 10px !important;
        bottom: calc(10px + env(safe-area-inset-bottom, 0px)) !important;
        z-index: 1040 !important;
        min-height: 62px !important;
        padding: 7px !important;
        display: grid !important;
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
        gap: 6px !important;
        border: 1px solid rgba(148, 163, 184, .22) !important;
        border-radius: 22px !important;
        background: rgba(11, 22, 40, .88) !important;
        -webkit-backdrop-filter: blur(18px) !important;
        backdrop-filter: blur(18px) !important;
        box-shadow: 0 18px 40px rgba(2, 6, 23, .28) !important;
    }

    html[data-theme="light"] .bvms-mobile-bottom-nav,
    body.theme-light .bvms-mobile-bottom-nav {
        background: rgba(255, 255, 255, .92) !important;
        border-color: rgba(15, 23, 42, .10) !important;
        box-shadow: 0 16px 34px rgba(15, 23, 42, .14) !important;
    }

    .bvms-mobile-bottom-nav a,
    .bvms-mobile-bottom-nav button {
        min-width: 0 !important;
        min-height: 48px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 3px !important;
        border-radius: 16px !important;
        text-decoration: none !important;
        color: #94a3b8 !important;
        font-size: 10px !important;
        font-weight: 850 !important;
        line-height: 1 !important;
        transition: background .18s ease, color .18s ease, transform .18s ease !important;
    }

    .bvms-mobile-bottom-nav .bvms-mobile-bottom-more {
        border: 0 !important;
        background: transparent !important;
        appearance: none !important;
        -webkit-appearance: none !important;
        cursor: pointer !important;
        font-family: inherit !important;
        padding: 0 !important;
    }

    .bvms-mobile-bottom-nav a i,
    .bvms-mobile-bottom-nav button i {
        font-size: 18px !important;
        line-height: 1 !important;
    }

    .bvms-mobile-bottom-nav a.active,
    .bvms-mobile-bottom-nav button.active {
        background: linear-gradient(135deg, #2563eb, #14b8a6) !important;
        color: #fff !important;
        box-shadow: 0 10px 22px rgba(37, 99, 235, .22) !important;
    }

    .bvms-mobile-bottom-nav a:active,
    .bvms-mobile-bottom-nav button:active {
        transform: scale(.97) !important;
    }
}

@media (min-width: 761px) {
    .bvms-mobile-bottom-nav {
        display: none !important;
    }
}

/* BVMS PATCH 2026-06-05 - Integração ERP + PDV + Estoque */
body.app-body .bvms-dashboard-minimal .mini-module-tabs a.module-pdv {
    border-color: rgba(22, 163, 74, .22) !important;
    color: #16a34a !important;
}

body.app-body .bvms-dashboard-minimal .mini-module-tabs a.module-stock {
    border-color: rgba(245, 158, 11, .28) !important;
    color: #f59e0b !important;
}

body.app-body .bvms-dashboard-minimal .mini-integration-panel {
    min-height: 390px;
}

body.app-body .bvms-dashboard-minimal .mini-integration-panel.mini-pdv-panel {
    border-top: 3px solid #16a34a !important;
}

body.app-body .bvms-dashboard-minimal .mini-integration-panel.mini-stock-panel {
    border-top: 3px solid #f59e0b !important;
}

body.app-body .bvms-dashboard-minimal .mini-pdv-panel .mini-panel-head span,
body.app-body .bvms-dashboard-minimal .mini-pdv-panel .mini-panel-head a {
    color: #16a34a !important;
}

body.app-body .bvms-dashboard-minimal .mini-stock-panel .mini-panel-head span,
body.app-body .bvms-dashboard-minimal .mini-stock-panel .mini-panel-head a {
    color: #f59e0b !important;
}

body.app-body .bvms-dashboard-minimal .mini-integration-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 12px 0 14px;
}

body.app-body .bvms-dashboard-minimal .mini-integration-metrics span {
    min-width: 0;
    border: 1px solid rgba(148, 163, 184, .18);
    border-radius: 16px;
    padding: 10px 12px;
    background: rgba(255, 255, 255, .58);
    color: var(--mini-muted, #64748b);
    font-size: 12px;
    font-weight: 800;
}

body.app-body .bvms-dashboard-minimal .mini-integration-metrics strong {
    display: block;
    margin-top: 4px;
    color: var(--mini-text, #0f172a);
    font-size: 15px;
    font-weight: 950;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.app-body .bvms-dashboard-minimal .mini-integration-metrics.pdv span {
    border-color: rgba(22, 163, 74, .16);
    background: rgba(22, 163, 74, .055);
}

body.app-body .bvms-dashboard-minimal .mini-integration-metrics.stock span {
    border-color: rgba(245, 158, 11, .18);
    background: rgba(245, 158, 11, .065);
}

body.app-body .bvms-dashboard-minimal .mini-chart.integration {
    min-height: 205px;
    height: 205px;
}

[data-theme="dark"] body.app-body .bvms-dashboard-minimal .mini-integration-metrics span,
body.app-body.theme-dark .bvms-dashboard-minimal .mini-integration-metrics span,
body.app-body.dark .bvms-dashboard-minimal .mini-integration-metrics span {
    background: rgba(15, 23, 42, .38);
    border-color: rgba(148, 163, 184, .17);
}

[data-theme="dark"] body.app-body .bvms-dashboard-minimal .mini-integration-metrics strong,
body.app-body.theme-dark .bvms-dashboard-minimal .mini-integration-metrics strong,
body.app-body.dark .bvms-dashboard-minimal .mini-integration-metrics strong {
    color: #f8fafc;
}

@media (max-width: 768px) {
    body.app-body .bvms-dashboard-minimal .mini-integration-panel {
        min-height: auto;
    }

    body.app-body .bvms-dashboard-minimal .mini-integration-metrics {
        grid-template-columns: 1fr;
    }

    body.app-body .bvms-dashboard-minimal .mini-chart.integration {
        min-height: 190px;
        height: 190px;
    }
}

/* BVMS PATCH 2026-06-05 - Dashboard ERP: cards PDV/Estoque largos + visão diária/semanal/mensal */
body.app-body .bvms-dashboard-minimal .mini-dashboard-grid {
    grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
    align-items: stretch !important;
}

body.app-body .bvms-dashboard-minimal .mini-dre-flow {
    grid-column: span 5 !important;
}

body.app-body .bvms-dashboard-minimal .mini-evolution-panel {
    grid-column: span 7 !important;
}

body.app-body .bvms-dashboard-minimal .mini-integration-panel,
body.app-body .bvms-dashboard-minimal .mini-pdv-panel,
body.app-body .bvms-dashboard-minimal .mini-stock-panel {
    grid-column: span 6 !important;
    min-width: 0 !important;
    min-height: 440px !important;
    display: flex !important;
    flex-direction: column !important;
}

body.app-body .bvms-dashboard-minimal .mini-cost-panel,
body.app-body .bvms-dashboard-minimal .mini-product-panel,
body.app-body .bvms-dashboard-minimal .mini-plan-panel,
body.app-body .bvms-dashboard-minimal .mini-import-panel,
body.app-body .bvms-dashboard-minimal .mini-cash-panel,
body.app-body .bvms-dashboard-minimal .mini-goal-panel {
    grid-column: span 4 !important;
}

body.app-body .bvms-dashboard-minimal .mini-integration-panel .mini-panel-head {
    margin-bottom: 10px !important;
}

body.app-body .bvms-dashboard-minimal .mini-integration-panel .mini-panel-head h2 {
    font-size: clamp(18px, 1.7vw, 22px) !important;
    line-height: 1.12 !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
}

body.app-body .bvms-dashboard-minimal .mini-integration-tabs {
    display: inline-grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 6px !important;
    width: 100% !important;
    padding: 5px !important;
    margin: 2px 0 12px !important;
    border-radius: 999px !important;
    background: rgba(22, 163, 74, .08) !important;
    border: 1px solid rgba(22, 163, 74, .14) !important;
}

body.app-body .bvms-dashboard-minimal .mini-integration-tabs.stock {
    background: rgba(245, 158, 11, .10) !important;
    border-color: rgba(245, 158, 11, .18) !important;
}

body.app-body .bvms-dashboard-minimal .mini-integration-tabs button {
    appearance: none !important;
    -webkit-appearance: none !important;
    border: 0 !important;
    min-width: 0 !important;
    min-height: 34px !important;
    padding: 0 10px !important;
    border-radius: 999px !important;
    background: transparent !important;
    color: var(--mini-muted, #64748b) !important;
    cursor: pointer !important;
    font: inherit !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    transition: background .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease !important;
}

body.app-body .bvms-dashboard-minimal .mini-integration-tabs button.active,
body.app-body .bvms-dashboard-minimal .mini-integration-tabs button:hover {
    background: #16a34a !important;
    color: #fff !important;
    box-shadow: 0 10px 22px rgba(22, 163, 74, .20) !important;
}

body.app-body .bvms-dashboard-minimal .mini-integration-tabs.stock button.active,
body.app-body .bvms-dashboard-minimal .mini-integration-tabs.stock button:hover {
    background: #f59e0b !important;
    color: #111827 !important;
    box-shadow: 0 10px 22px rgba(245, 158, 11, .22) !important;
}

body.app-body .bvms-dashboard-minimal .mini-integration-metrics {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 10px !important;
}

body.app-body .bvms-dashboard-minimal .mini-integration-metrics span {
    min-width: 0 !important;
    overflow: hidden !important;
    font-size: 11px !important;
    line-height: 1.25 !important;
}

body.app-body .bvms-dashboard-minimal .mini-integration-metrics strong {
    max-width: 100% !important;
    font-size: clamp(13px, 1.35vw, 17px) !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

body.app-body .bvms-dashboard-minimal .mini-chart.integration {
    flex: 1 1 auto !important;
    min-height: 260px !important;
    height: 260px !important;
    margin-top: 8px !important;
}

body.app-body .bvms-dashboard-minimal .mini-chart.integration canvas {
    max-width: 100% !important;
}

@media (max-width: 1180px) {
    body.app-body .bvms-dashboard-minimal .mini-dre-flow,
    body.app-body .bvms-dashboard-minimal .mini-evolution-panel,
    body.app-body .bvms-dashboard-minimal .mini-integration-panel,
    body.app-body .bvms-dashboard-minimal .mini-pdv-panel,
    body.app-body .bvms-dashboard-minimal .mini-stock-panel {
        grid-column: span 12 !important;
    }

    body.app-body .bvms-dashboard-minimal .mini-cost-panel,
    body.app-body .bvms-dashboard-minimal .mini-product-panel,
    body.app-body .bvms-dashboard-minimal .mini-plan-panel,
    body.app-body .bvms-dashboard-minimal .mini-import-panel,
    body.app-body .bvms-dashboard-minimal .mini-cash-panel,
    body.app-body .bvms-dashboard-minimal .mini-goal-panel {
        grid-column: span 6 !important;
    }
}

@media (max-width: 760px) {
    body.app-body .bvms-dashboard-minimal .mini-dre-flow,
    body.app-body .bvms-dashboard-minimal .mini-evolution-panel,
    body.app-body .bvms-dashboard-minimal .mini-integration-panel,
    body.app-body .bvms-dashboard-minimal .mini-pdv-panel,
    body.app-body .bvms-dashboard-minimal .mini-stock-panel,
    body.app-body .bvms-dashboard-minimal .mini-cost-panel,
    body.app-body .bvms-dashboard-minimal .mini-product-panel,
    body.app-body .bvms-dashboard-minimal .mini-plan-panel,
    body.app-body .bvms-dashboard-minimal .mini-import-panel,
    body.app-body .bvms-dashboard-minimal .mini-cash-panel,
    body.app-body .bvms-dashboard-minimal .mini-goal-panel {
        grid-column: 1 / -1 !important;
    }

    body.app-body .bvms-dashboard-minimal .mini-integration-panel,
    body.app-body .bvms-dashboard-minimal .mini-pdv-panel,
    body.app-body .bvms-dashboard-minimal .mini-stock-panel {
        min-height: 0 !important;
    }

    body.app-body .bvms-dashboard-minimal .mini-integration-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    body.app-body .bvms-dashboard-minimal .mini-chart.integration {
        min-height: 230px !important;
        height: 230px !important;
    }
}

@media (max-width: 420px) {
    body.app-body .bvms-dashboard-minimal .mini-integration-metrics {
        grid-template-columns: 1fr !important;
    }

    body.app-body .bvms-dashboard-minimal .mini-integration-tabs button {
        font-size: 11px !important;
        padding-inline: 6px !important;
    }
}


/* BVMS FIX 2026-06-05 - ERP sidebar: clique no menu e no Mais mobile/tablet */
@media (max-width: 992px) {
    body.app-body .bvms-sidebar-clean,
    body.app-body #appSidebar.bvms-sidebar-clean {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        bottom: 0 !important;
        width: min(84vw, 320px) !important;
        min-width: 0 !important;
        max-width: 320px !important;
        height: 100dvh !important;
        z-index: 1200 !important;
        transform: translateX(-112%) !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transition: transform .24s ease, visibility .24s ease !important;
    }

    body.app-body.mobile-sidebar-open .bvms-sidebar-clean,
    body.app-body.mobile-sidebar-open #appSidebar.bvms-sidebar-clean,
    body.app-body #appSidebar.bvms-sidebar-clean.mobile-is-open,
    body.app-body #appSidebar.bvms-sidebar-clean.show {
        transform: translateX(0) !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    .bvms-mobile-sidebar-backdrop,
    .sidebar-backdrop-clean {
        position: fixed !important;
        inset: 0 !important;
        z-index: 1190 !important;
        background: rgba(2, 6, 23, .48) !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transition: opacity .2s ease, visibility .2s ease !important;
        -webkit-backdrop-filter: blur(2px) !important;
        backdrop-filter: blur(2px) !important;
    }

    .bvms-mobile-sidebar-backdrop.is-open,
    .bvms-mobile-sidebar-backdrop.show,
    .sidebar-backdrop-clean.is-open,
    .sidebar-backdrop-clean.show {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    .bvms-mobile-bottom-nav {
        position: fixed !important;
        left: 10px !important;
        right: 10px !important;
        bottom: calc(10px + env(safe-area-inset-bottom, 0px)) !important;
        z-index: 1040 !important;
        min-height: 62px !important;
        padding: 7px !important;
        display: grid !important;
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
        gap: 6px !important;
        border-radius: 22px !important;
    }

    .bvms-mobile-bottom-nav a,
    .bvms-mobile-bottom-nav button {
        min-width: 0 !important;
        min-height: 48px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 3px !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        cursor: pointer !important;
    }

    body.app-body.mobile-sidebar-open .bvms-mobile-bottom-nav {
        pointer-events: none !important;
    }
}

@media (min-width: 993px) {
    .bvms-mobile-bottom-nav {
        display: none !important;
    }
}

/* BVMS FIX 2026-06-05 - ERP mobile sidebar sem escurecer a tela
   Corrige o fundo muito escuro ao abrir a sidebar no celular/tablet. */
@media (max-width: 992px) {
    body.app-body.mobile-sidebar-open,
    body.app-body.mobile-sidebar-open .bvms-layout-shell,
    body.app-body.mobile-sidebar-open .bvms-main-shell,
    body.app-body.mobile-sidebar-open .bvms-content-clean,
    body.app-body.mobile-sidebar-open .bvms-topbar-clean {
        filter: none !important;
        opacity: 1 !important;
    }

    body.app-body .bvms-mobile-sidebar-backdrop,
    body.app-body .sidebar-backdrop-clean {
        background: rgba(15, 23, 42, .10) !important;
        -webkit-backdrop-filter: none !important;
        backdrop-filter: none !important;
    }

    body.app-body.theme-dark .bvms-mobile-sidebar-backdrop,
    body.app-body.theme-dark .sidebar-backdrop-clean,
    html[data-theme="dark"] body.app-body .bvms-mobile-sidebar-backdrop,
    html[data-theme="dark"] body.app-body .sidebar-backdrop-clean,
    body.app-body.dark-mode .bvms-mobile-sidebar-backdrop,
    body.app-body.dark-mode .sidebar-backdrop-clean {
        background: rgba(0, 0, 0, .08) !important;
        -webkit-backdrop-filter: none !important;
        backdrop-filter: none !important;
    }

    body.app-body .bvms-mobile-sidebar-backdrop.is-open,
    body.app-body .bvms-mobile-sidebar-backdrop.show,
    body.app-body .sidebar-backdrop-clean.is-open,
    body.app-body .sidebar-backdrop-clean.show {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    body.app-body .bvms-sidebar-clean,
    body.app-body #appSidebar.bvms-sidebar-clean,
    body.app-body.mobile-sidebar-open .bvms-sidebar-clean,
    body.app-body.mobile-sidebar-open #appSidebar.bvms-sidebar-clean {
        filter: none !important;
        opacity: 1 !important;
        isolation: isolate !important;
        z-index: 1400 !important;
        background: var(--v2-surface, #ffffff) !important;
    }

    body.app-body.theme-dark .bvms-sidebar-clean,
    body.app-body.theme-dark #appSidebar.bvms-sidebar-clean,
    html[data-theme="dark"] body.app-body .bvms-sidebar-clean,
    html[data-theme="dark"] body.app-body #appSidebar.bvms-sidebar-clean,
    body.app-body.dark-mode .bvms-sidebar-clean,
    body.app-body.dark-mode #appSidebar.bvms-sidebar-clean {
        background: var(--v2-surface, #071225) !important;
    }

    body.app-body.mobile-sidebar-open .bvms-mobile-bottom-nav {
        opacity: .98 !important;
        filter: none !important;
    }
}


/* BVMS FIX 2026-06-05 - ERP mobile sidebar funcional e sem tela escura
   - Remove overlay escuro/blur de vez.
   - Mantém backdrop transparente apenas para permitir fechar ao clicar fora.
   - Garante que clicar nas opções da sidebar não feche o menu antes da ação.
*/
@media (max-width: 992px) {
    body.app-body.mobile-sidebar-open {
        overflow: hidden !important;
        background: var(--v2-bg, #f6f8fb) !important;
    }

    body.app-body.mobile-sidebar-open .bvms-layout-shell,
    body.app-body.mobile-sidebar-open .bvms-main-shell,
    body.app-body.mobile-sidebar-open .bvms-content-clean,
    body.app-body.mobile-sidebar-open .bvms-topbar-clean,
    body.app-body.mobile-sidebar-open .dashboard-shell,
    body.app-body.mobile-sidebar-open .page-content,
    body.app-body.mobile-sidebar-open main {
        filter: none !important;
        opacity: 1 !important;
        transform: none !important;
        mix-blend-mode: normal !important;
    }

    body.app-body #mobileSidebarBackdrop.bvms-mobile-sidebar-backdrop,
    body.app-body .bvms-mobile-sidebar-backdrop,
    body.app-body .sidebar-backdrop-clean {
        display: block !important;
        position: fixed !important;
        inset: 0 !important;
        z-index: 1190 !important;
        background: transparent !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        -webkit-backdrop-filter: none !important;
        backdrop-filter: none !important;
        transition: none !important;
    }

    body.app-body #mobileSidebarBackdrop.bvms-mobile-sidebar-backdrop.is-open,
    body.app-body .bvms-mobile-sidebar-backdrop.is-open,
    body.app-body .bvms-mobile-sidebar-backdrop.show,
    body.app-body .sidebar-backdrop-clean.is-open,
    body.app-body .sidebar-backdrop-clean.show {
        background: transparent !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        -webkit-backdrop-filter: none !important;
        backdrop-filter: none !important;
    }

    body.app-body #appSidebar.bvms-sidebar-clean,
    body.app-body .bvms-sidebar-clean {
        z-index: 1400 !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        bottom: 0 !important;
        width: min(84vw, 320px) !important;
        max-width: 320px !important;
        height: 100dvh !important;
        transform: translateX(-112%) !important;
        visibility: hidden !important;
        pointer-events: none !important;
        opacity: 1 !important;
        filter: none !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        background: var(--v2-surface, #ffffff) !important;
        box-shadow: 18px 0 48px rgba(15, 23, 42, .16) !important;
    }

    body.app-body.mobile-sidebar-open #appSidebar.bvms-sidebar-clean,
    body.app-body.mobile-sidebar-open .bvms-sidebar-clean,
    body.app-body #appSidebar.bvms-sidebar-clean.mobile-is-open,
    body.app-body #appSidebar.bvms-sidebar-clean.show {
        transform: translateX(0) !important;
        visibility: visible !important;
        pointer-events: auto !important;
        opacity: 1 !important;
        filter: none !important;
    }

    body.app-body #appSidebar.bvms-sidebar-clean a,
    body.app-body #appSidebar.bvms-sidebar-clean button,
    body.app-body #appSidebar.bvms-sidebar-clean .sidebar-clean-link,
    body.app-body #appSidebar.bvms-sidebar-clean .sidebar-clean-sublink,
    body.app-body #appSidebar.bvms-sidebar-clean .sidebar-more-button {
        pointer-events: auto !important;
        touch-action: manipulation !important;
        cursor: pointer !important;
    }

    body.app-body.theme-dark #appSidebar.bvms-sidebar-clean,
    html[data-theme="dark"] body.app-body #appSidebar.bvms-sidebar-clean,
    body.app-body.dark-mode #appSidebar.bvms-sidebar-clean {
        background: var(--v2-surface, #071225) !important;
    }
}


/* =========================================================
   BVMS FIX DEFINITIVO 2026-06-05
   ERP mobile/sidebar: remove qualquer camada sobreposta escura.
   O fechamento ao tocar fora passa a ser controlado pelo JS do layout,
   sem backdrop visual cobrindo a tela.
========================================================= */
@media (max-width: 992px) {
    body.app-body.mobile-sidebar-open,
    body.app-body.mobile-sidebar-open .bvms-layout-shell,
    body.app-body.mobile-sidebar-open .bvms-main-shell,
    body.app-body.mobile-sidebar-open .bvms-content-clean,
    body.app-body.mobile-sidebar-open .bvms-topbar-clean,
    body.app-body.mobile-sidebar-open .page-content,
    body.app-body.mobile-sidebar-open main {
        opacity: 1 !important;
        filter: none !important;
        -webkit-filter: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        mix-blend-mode: normal !important;
    }

    body.app-body #mobileSidebarBackdrop,
    body.app-body .bvms-mobile-sidebar-backdrop,
    body.app-body .sidebar-backdrop-clean {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
        background: transparent !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    body.app-body #appSidebar.bvms-sidebar-clean,
    body.app-body .bvms-sidebar-clean {
        z-index: 5000 !important;
        opacity: 1 !important;
        filter: none !important;
        -webkit-filter: none !important;
        pointer-events: auto !important;
        touch-action: pan-y !important;
    }

    body.app-body.mobile-sidebar-open #appSidebar.bvms-sidebar-clean,
    body.app-body #appSidebar.bvms-sidebar-clean.mobile-is-open,
    body.app-body #appSidebar.bvms-sidebar-clean.show {
        transform: translateX(0) !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    body.app-body #appSidebar.bvms-sidebar-clean a,
    body.app-body #appSidebar.bvms-sidebar-clean button,
    body.app-body #appSidebar.bvms-sidebar-clean .sidebar-clean-link,
    body.app-body #appSidebar.bvms-sidebar-clean .sidebar-clean-sublink,
    body.app-body #appSidebar.bvms-sidebar-clean .sidebar-more-button {
        pointer-events: auto !important;
        touch-action: manipulation !important;
        cursor: pointer !important;
    }
}
