/*
BVMS Design System centralizado — beta controlado 2026-06-15.
Este arquivo consolida os estilos globais e por ambiente para reduzir cache quebrado e múltiplos CSS por layout.
Ordem preservada: base app, design system, interações, ERP moderno, responsivo, serviços e agendamento público.
*/

/* ===== app.css ===== */
: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:var(--bvms-surface, #ffffff);
    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: var(--button-primary-bg, #2563eb) !important; color: var(--button-primary-text, #ffffff) !important; -webkit-text-fill-color: var(--button-primary-text, #ffffff) !important;
}

.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: var(--button-primary-bg, #2563eb) !important; color: var(--button-primary-text, #ffffff) !important; -webkit-text-fill-color: var(--button-primary-text, #ffffff) !important;
    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:var(--bvms-surface, #ffffff);
    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: var(--button-primary-bg, #2563eb) !important; color: var(--button-primary-text, #ffffff) !important; -webkit-text-fill-color: var(--button-primary-text, #ffffff) !important;
}

.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: var(--button-primary-bg, #2563eb) !important; color: var(--button-primary-text, #ffffff) !important; -webkit-text-fill-color: var(--button-primary-text, #ffffff) !important;
    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: var(--bvms-accent-soft, #eaf1ff);
    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: var(--button-primary-bg, #2563eb) !important; color: var(--button-primary-text, #ffffff) !important; -webkit-text-fill-color: var(--button-primary-text, #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:var(--bvms-surface, #ffffff);
  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: var(--button-primary-bg, #2563eb) !important; color: var(--button-primary-text, #ffffff) !important; -webkit-text-fill-color: var(--button-primary-text, #ffffff) !important; 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:var(--bvms-surface, #ffffff); color: #052e16 !important; }
body.app-body .dash-big-card.negative { background:var(--bvms-surface, #ffffff); 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:var(--bvms-surface, #ffffff); 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:var(--bvms-surface, #ffffff); }

/* ---------- 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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
    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: var(--bvms-accent-soft, #eaf1ff);
    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:var(--bvms-surface, #ffffff);
    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: var(--bvms-accent-soft, #eaf1ff);
    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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
    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: var(--primary-color, #2563eb) !important;
    color: #ffffff !important;
    border-color: var(--primary-color, #2563eb) !important;
    box-shadow: none !important;
}
body.app-body .btn-secondary-soft {
    background: var(--surface-card, #ffffff) !important;
    color: var(--text-primary, #0f172a) !important;
    border-color: var(--border-color, #dbe4ef) !important;
    box-shadow: none !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:var(--bvms-surface, #ffffff);
  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: var(--button-primary-bg, #2563eb) !important; color: var(--button-primary-text, #ffffff) !important; -webkit-text-fill-color: var(--button-primary-text, #ffffff) !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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
}

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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
}

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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
}

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:var(--bvms-surface, #ffffff);
}

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:var(--bvms-surface, #ffffff);
}

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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
    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 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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff); 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:var(--bvms-surface, #ffffff); border-color: rgba(16,185,129,.22); }
.bvms-metric-card.warning,
.bvms-info-card.warning-soft { background:var(--bvms-surface, #ffffff); border-color: rgba(245,158,11,.25); }
.bvms-info-card.danger-soft { background:var(--bvms-surface, #ffffff); 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: var(--button-primary-bg, #2563eb) !important; color: var(--button-primary-text, #ffffff) !important; -webkit-text-fill-color: var(--button-primary-text, #ffffff) !important; 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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
  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:var(--bvms-surface, #ffffff);
  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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
}
.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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff); }
.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:var(--bvms-surface, #ffffff);
}
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:var(--bvms-surface, #ffffff);
}
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: var(--bvms-surface, #ffffff);
  --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: var(--bvms-surface, #ffffff);
  --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:var(--bvms-surface, #ffffff);
  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:var(--bvms-surface, #ffffff);
  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: var(--button-primary-bg, #2563eb) !important; color: var(--button-primary-text, #ffffff) !important; -webkit-text-fill-color: var(--button-primary-text, #ffffff) !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: var(--button-primary-bg, #2563eb) !important; color: var(--button-primary-text, #ffffff) !important; -webkit-text-fill-color: var(--button-primary-text, #ffffff) !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: var(--button-primary-bg, #2563eb) !important; color: var(--button-primary-text, #ffffff) !important; -webkit-text-fill-color: var(--button-primary-text, #ffffff) !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:var(--bvms-surface, #ffffff);
  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: var(--button-primary-bg, #2563eb) !important; color: var(--button-primary-text, #ffffff) !important; -webkit-text-fill-color: var(--button-primary-text, #ffffff) !important;
}
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:var(--bvms-surface, #ffffff);
    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:var(--bvms-surface, #ffffff);
    }

    .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: var(--button-primary-bg, #2563eb) !important; color: var(--button-primary-text, #ffffff) !important; -webkit-text-fill-color: var(--button-primary-text, #ffffff) !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;
    }
}


/* BVMS correção definitiva: botões ERP visíveis no tema claro/escuro */
body.app-body .btn-primary-soft,
body.app-body a.btn-primary-soft,
body.app-body button.btn-primary-soft{
    background:var(--primary-color,#2563eb)!important;
    border:1px solid var(--primary-color,#2563eb)!important;
    color:#ffffff!important;
    box-shadow:none!important;
    opacity:1!important;
    text-shadow:none!important;
}
body.app-body .btn-primary-soft:hover,
body.app-body a.btn-primary-soft:hover,
body.app-body button.btn-primary-soft:hover{
    background:var(--primary-hover,#1d4ed8)!important;
    border-color:var(--primary-hover,#1d4ed8)!important;
    color:#ffffff!important;
}
body.app-body .btn-secondary-soft,
body.app-body a.btn-secondary-soft,
body.app-body button.btn-secondary-soft{
    background:var(--surface-card,#ffffff)!important;
    border:1px solid var(--border-color,#dbe4ef)!important;
    color:var(--text-primary,#0f172a)!important;
    box-shadow:none!important;
    opacity:1!important;
    text-shadow:none!important;
}
body.app-body .btn-secondary-soft:hover,
body.app-body a.btn-secondary-soft:hover,
body.app-body button.btn-secondary-soft:hover{
    background:var(--surface-muted,#f8fafc)!important;
    border-color:var(--primary-color,#2563eb)!important;
    color:var(--primary-color,#2563eb)!important;
}
html.theme-dark body.app-body .btn-secondary-soft,
html.theme-dark body.app-body a.btn-secondary-soft,
html.theme-dark body.app-body button.btn-secondary-soft{
    background:#132033!important;
    border-color:#26364f!important;
    color:#f8fafc!important;
}
html.theme-dark body.app-body .btn-secondary-soft:hover,
html.theme-dark body.app-body a.btn-secondary-soft:hover,
html.theme-dark body.app-body button.btn-secondary-soft:hover{
    background:#17243a!important;
    border-color:#3b82f6!important;
    color:#93c5fd!important;
}


/* =========================================================
   BVMS BUTTON SYSTEM - correção raiz de contraste
   Evita fundo branco com texto branco e fundo escuro com texto escuro.
========================================================= */
:root,
html[data-theme="light"],
html.theme-light,
body.theme-light {
    --color-primary: #2563eb;
    --color-primary-hover: #1d4ed8;
    --color-primary-contrast: #ffffff;
    --color-surface: #ffffff;
    --color-surface-soft: #f8fafc;
    --color-text: #0f172a;
    --color-text-muted: #64748b;
    --color-border: #dbe4ef;
    --button-primary-bg: var(--color-primary);
    --button-primary-hover: var(--color-primary-hover);
    --button-primary-text: var(--color-primary-contrast);
    --button-secondary-bg: var(--color-surface);
    --button-secondary-text: var(--color-text);
    --button-secondary-border: var(--color-border);
    --button-outline-text: var(--color-primary);
    --button-outline-border: #b7c7e8;
    --button-disabled-bg: #e2e8f0;
    --button-disabled-text: #64748b;
}
html[data-theme="dark"],
html.theme-dark,
body.theme-dark,
body.app-body.theme-dark,
body.app-body.dark,
.dark {
    --color-primary: #3b82f6;
    --color-primary-hover: #60a5fa;
    --color-primary-contrast: #ffffff;
    --color-surface: #101827;
    --color-surface-soft: #132033;
    --color-text: #f8fafc;
    --color-text-muted: #9aa8bd;
    --color-border: #26364f;
    --button-primary-bg: #3b82f6;
    --button-primary-hover: #60a5fa;
    --button-primary-text: #ffffff;
    --button-secondary-bg: #132033;
    --button-secondary-text: #f8fafc;
    --button-secondary-border: #26364f;
    --button-outline-text: #93c5fd;
    --button-outline-border: #3b82f6;
    --button-disabled-bg: #26364f;
    --button-disabled-text: #9aa8bd;
}

/* Botões primários gerais */
.btn-primary,
.btn-primary-soft,
.btn-submit,
.form-submit,
.auth-submit,
.login-submit,
.register-submit,
.hero-cta,
.cta-primary,
.action-button.primary,
.category-btn-primary,
.legal-btn.primary,
.lp-btn-primary,
.btn-upload,
.btn-confirm-import,
.settings-top-nav a.active,
.mini-period-tabs button.active,
.mini-btn.primary,
button[type="submit"].btn-primary,
body.app-body button[type="submit"]:not(.btn-secondary):not(.btn-secondary-soft):not(.ghost-btn):not(.btn-link):not(.expenses-modal-close) {
    background: var(--button-primary-bg, #2563eb) !important;
    border: 1px solid var(--button-primary-bg, #2563eb) !important;
    color: var(--button-primary-text, #ffffff) !important;
    -webkit-text-fill-color: var(--button-primary-text, #ffffff) !important;
    box-shadow: none !important;
    text-shadow: none !important;
    opacity: 1 !important;
}

/* Botões primários hover */
.btn-primary:hover,
.btn-primary-soft:hover,
.btn-submit:hover,
.form-submit:hover,
.auth-submit:hover,
.login-submit:hover,
.register-submit:hover,
.hero-cta:hover,
.cta-primary:hover,
.action-button.primary:hover,
.category-btn-primary:hover,
.legal-btn.primary:hover,
.lp-btn-primary:hover,
.btn-upload:hover,
.btn-confirm-import:hover,
.settings-top-nav a.active:hover,
.mini-period-tabs button.active:hover,
.mini-btn.primary:hover,
button[type="submit"].btn-primary:hover,
body.app-body button[type="submit"]:not(.btn-secondary):not(.btn-secondary-soft):not(.ghost-btn):not(.btn-link):not(.expenses-modal-close):hover {
    background: var(--button-primary-hover, #1d4ed8) !important;
    border-color: var(--button-primary-hover, #1d4ed8) !important;
    color: var(--button-primary-text, #ffffff) !important;
    -webkit-text-fill-color: var(--button-primary-text, #ffffff) !important;
}

/* Botões secundários, outline e ícones */
.btn-secondary,
.btn-secondary-soft,
.btn-cancel,
.ghost-btn,
.btn-outline,
.btn-outline-primary,
.theme-toggle,
.theme-toggle-clean,
.topbar-icon-btn,
.sidebar-clean-toggle,
.topbar-mobile-menu,
button[data-theme-toggle],
button[class*="close"]:not(.expenses-modal-close),
a.btn-secondary,
a.btn-secondary-soft {
    background: var(--button-secondary-bg, #ffffff) !important;
    border: 1px solid var(--button-secondary-border, #dbe4ef) !important;
    color: var(--button-secondary-text, #0f172a) !important;
    -webkit-text-fill-color: var(--button-secondary-text, #0f172a) !important;
    box-shadow: none !important;
    text-shadow: none !important;
    opacity: 1 !important;
}

.btn-outline,
.btn-outline-primary {
    background: transparent !important;
    color: var(--button-outline-text, #2563eb) !important;
    -webkit-text-fill-color: var(--button-outline-text, #2563eb) !important;
    border-color: var(--button-outline-border, #b7c7e8) !important;
}

.btn:disabled,
button:disabled,
.btn.disabled,
button.is-loading {
    background: var(--button-disabled-bg, #e2e8f0) !important;
    border-color: var(--button-disabled-bg, #e2e8f0) !important;
    color: var(--button-disabled-text, #64748b) !important;
    -webkit-text-fill-color: var(--button-disabled-text, #64748b) !important;
    opacity: .75 !important;
    cursor: not-allowed !important;
}

/* Módulos */
body.pdv-body .btn-primary,
body.pdv-body .save-btn,
body.pdv-body .menu-primary,
body.pdv-body .pdv-btn-primary,
body.pdv-body .pdv-submit,
body.pdv-body button[type="submit"]:not(.btn-secondary):not(.ghost-btn) {
    background: #16a34a !important;
    border-color: #16a34a !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    box-shadow: none !important;
}
body.stock-body .btn-primary,
body.stock-body .stock-submit,
body.stock-body button[type="submit"]:not(.btn-secondary):not(.ghost-btn) {
    background: #fb923c !important;
    border-color: #fb923c !important;
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
    box-shadow: none !important;
}

/* Barras mobile */
.mobile-bottom-nav a,
.bottom-nav-clean a,
.bvms-bottom-nav a,
.mobile-bottom-nav button,
.bottom-nav-clean button,
.bvms-bottom-nav button {
    background: transparent !important;
    color: var(--color-text-muted, #64748b) !important;
    -webkit-text-fill-color: var(--color-text-muted, #64748b) !important;
    box-shadow: none !important;
}
.mobile-bottom-nav a.active,
.bottom-nav-clean a.active,
.bvms-bottom-nav a.active,
.mobile-bottom-nav button.active,
.bottom-nav-clean button.active,
.bvms-bottom-nav button.active {
    background: color-mix(in srgb, var(--color-primary, #2563eb) 11%, transparent) !important;
    color: var(--color-primary, #2563eb) !important;
    -webkit-text-fill-color: var(--color-primary, #2563eb) !important;
}

/* Google e WhatsApp preservam ícones */
.google-login-icon svg,
.google-login-icon svg path,
.lp-whats-icon svg,
.lp-whats-icon svg path {
    -webkit-text-fill-color: initial !important;
}


/* BVMS v39 - offcanvas de perfil mobile corrigido */
.profile-offcanvas-clean{
    --bs-offcanvas-width:min(360px, calc(100vw - 16px));
    width:var(--bs-offcanvas-width)!important;
    max-width:calc(100vw - 8px)!important;
    border-left:0!important;
    background:transparent!important;
}
.profile-offcanvas-clean.offcanvas-end{right:8px!important;left:auto!important;}
.profile-offcanvas-clean .offcanvas-body{padding:16px!important;}
.profile-side-card{max-width:100%;overflow:hidden;}
.profile-side-menu a span{min-width:0;overflow-wrap:anywhere;word-break:break-word;}
@media (max-width: 480px){
  .profile-offcanvas-clean{--bs-offcanvas-width:calc(100vw - 12px);max-width:calc(100vw - 12px)!important;}
  .profile-offcanvas-clean.offcanvas-end{right:6px!important;}
  .profile-offcanvas-clean .offcanvas-body{padding:10px!important;}
  .profile-side-card{padding:18px!important;border-radius:24px!important;}
  .profile-side-menu a{min-height:46px!important;padding:0 10px!important;gap:10px!important;}
}

/* ===== bvms-design-system.css ===== */
/* BVMS Design System — padrão visual unificado inspirado no Google
   Camada global: ERP, PDV, Estoque, Admin e áreas futuras.
   Sem degradês. Sem emojis. Tokens de cor, espaçamento, raio, contraste e responsividade. */

:root{
  color-scheme: light;
  --bvms-font: Inter, "Google Sans", Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;

  --bvms-bg:#f6f8fc;
  --bvms-surface:#ffffff;
  --bvms-surface-2:#f8fafc;
  --bvms-surface-3:#eef2f7;
  --bvms-text:#0f172a;
  --bvms-muted:#5f6b7a;
  --bvms-border:#dbe3ee;
  --bvms-border-strong:#c8d3e1;

  --bvms-accent:#2563eb;
  --bvms-accent-dark:#1d4ed8;
  --bvms-accent-soft:#eaf1ff;

  --bvms-success:#16a34a;
  --bvms-success-soft:#e9f8ef;
  --bvms-warning:#f97316;
  --bvms-warning-soft:#fff4ea;
  --bvms-danger:#dc2626;
  --bvms-danger-soft:#fff1f2;

  --bvms-radius-sm:10px;
  --bvms-radius:14px;
  --bvms-radius-lg:20px;
  --bvms-radius-xl:24px;

  --bvms-shadow:none;
  --bvms-focus:0 0 0 3px rgba(37,99,235,.14);

  --bvms-space-1:4px;
  --bvms-space-2:8px;
  --bvms-space-3:12px;
  --bvms-space-4:16px;
  --bvms-space-5:20px;
  --bvms-space-6:24px;
}

html.theme-dark,
html[data-theme="dark"]{
  color-scheme: dark;
  --bvms-bg:#07111f;
  --bvms-surface:#101827;
  --bvms-surface-2:#132033;
  --bvms-surface-3:#1b2a42;
  --bvms-text:#f8fafc;
  --bvms-muted:#9aa8bd;
  --bvms-border:#26364f;
  --bvms-border-strong:#334766;

  --bvms-accent:#7aa7ff;
  --bvms-accent-dark:#a9c6ff;
  --bvms-accent-soft:#13233f;

  --bvms-success:#22c55e;
  --bvms-success-soft:#0e2a22;
  --bvms-warning:#fb923c;
  --bvms-warning-soft:#2b1b10;
  --bvms-danger:#f87171;
  --bvms-danger-soft:#30151a;
  --bvms-focus:0 0 0 3px rgba(122,167,255,.22);
}

/* Contextos por módulo */
body.app-body{--bvms-accent:#2563eb;--bvms-accent-dark:#1d4ed8;--bvms-accent-soft:#eaf1ff}
body.pdv-body,
body.pdv-operacao-only,
body.pdv-context{--bvms-accent:#16a34a;--bvms-accent-dark:#12803a;--bvms-accent-soft:#e9f8ef}
body.stock-body,
body.stock-context{--bvms-accent:#f97316;--bvms-accent-dark:#c2410c;--bvms-accent-soft:#fff4ea}
body.admin-body,
body.admin-context{--bvms-accent:#475569;--bvms-accent-dark:#334155;--bvms-accent-soft:#f1f5f9}

html.theme-dark body.pdv-body,
html.theme-dark body.pdv-operacao-only,
html.theme-dark body.pdv-context{--bvms-accent:#22c55e;--bvms-accent-dark:#86efac;--bvms-accent-soft:#0e2a22}
html.theme-dark body.stock-body,
html.theme-dark body.stock-context{--bvms-accent:#fb923c;--bvms-accent-dark:#fed7aa;--bvms-accent-soft:#2b1b10}
html.theme-dark body.admin-body,
html.theme-dark body.admin-context{--bvms-accent:#cbd5e1;--bvms-accent-dark:#f8fafc;--bvms-accent-soft:#1e293b}

html,body{font-family:var(--bvms-font);background:var(--bvms-bg);color:var(--bvms-text);overflow-x:hidden}
body{min-height:100vh}
*,*::before,*::after{box-sizing:border-box}

a{color:var(--bvms-accent);text-decoration:none}
a:hover{color:var(--bvms-accent-dark)}

:focus-visible{outline:0;box-shadow:var(--bvms-focus)}

h1,h2,h3,h4,h5,h6{color:var(--bvms-text);letter-spacing:-.035em}
p,small,.text-secondary,.text-muted{color:var(--bvms-muted)}

/* Layout containers */
.app-main,
.main-content,
.content-clean,
.pdv-main,
.pdv-content,
.stock-main,
.stock-content,
.admin-main{
  background:var(--bvms-bg);
  color:var(--bvms-text);
}

/* Sidebars, topbars e barras mobile */
.sidebar-clean,
.sidebar-clean-card,
.topbar-clean,
.pdv-sidebar,
.pdv-topbar,
.pdv-bottom-nav,
.stock-sidebar,
.stock-topbar,
.stock-bottom-nav,
.op-topbar,
.op-bottom-nav,
.mobile-bottom-nav,
.mobile-nav,
.pdv-system-switch,
.stock-system-switch{
  background:var(--bvms-surface);
  border-color:var(--bvms-border);
  color:var(--bvms-text);
  box-shadow:none;
}

.sidebar-clean-link,
.sidebar-clean-sublink,
.pdv-nav a,
.stock-nav a,
.pdv-bottom-nav a,
.stock-bottom-nav a,
.op-bottom-nav a{
  color:var(--bvms-muted);
  border-radius:var(--bvms-radius);
  transition:background .15s ease,color .15s ease,border-color .15s ease;
}

.sidebar-clean-link:hover,
.sidebar-clean-link.active,
.sidebar-clean-sublink:hover,
.sidebar-clean-sublink.active,
.pdv-nav a:hover,
.pdv-nav a.active,
.stock-nav a:hover,
.stock-nav a.active,
.pdv-bottom-nav a:hover,
.pdv-bottom-nav a.active,
.stock-bottom-nav a:hover,
.stock-bottom-nav a.active,
.op-bottom-nav a:hover,
.op-bottom-nav a.active{
  background:var(--bvms-accent-soft);
  color:var(--bvms-accent);
  border-color:var(--bvms-border);
  transform:none;
}

/* Cards e painéis */
.card,
.modal-content,
.dashboard-card,
.metric-card,
.kpi-card,
.stat-card,
.summary-card,
.table-card,
.filter-card,
.sales-card,
.product-card,
.category-card,
.goal-card-clean,
.import-card,
.bvms-info-card,
.bvms-table-card,
.home-card,
.kpi,
.live,
.flow-card,
.action,
.panel,
.category-block,
.mesa-card,
.po-card,
.po-col,
.report-card,
.admin-card,
.admin-panel,
.pdv-i-card,
.pdv-smart-card,
.stock-card,
.stock-panel,
.stock-insight-card,
.stock-insight-row,
.stock-mini-kpis .stock-insight-row{
  background:var(--bvms-surface);
  border:1px solid var(--bvms-border);
  border-radius:var(--bvms-radius-xl);
  color:var(--bvms-text);
  box-shadow:none;
}

.card-header,
.card-footer,
.modal-header,
.modal-footer,
.table-light,
.table thead th,
.bvms-table-head{
  background:var(--bvms-surface-2);
  color:var(--bvms-text);
  border-color:var(--bvms-border);
}

.card:hover,
.dashboard-card:hover,
.metric-card:hover,
.kpi-card:hover,
.stat-card:hover,
.summary-card:hover,
.table-card:hover,
.filter-card:hover,
.sales-card:hover,
.product-card:hover,
.category-card:hover,
.goal-card-clean:hover,
.import-card:hover,
.home-card:hover,
.kpi:hover,
.live:hover,
.flow-card:hover,
.action:hover,
.panel:hover,
.category-block:hover,
.mesa-card:hover,
.po-card:hover,
.report-card:hover,
.admin-card:hover{
  transform:none;
  box-shadow:none;
  border-color:var(--bvms-border-strong);
}

/* Heros / cabeçalhos */
.bvms-clean-hero,
.home-hero,
.pdv-page-head,
.pdv-head,
.menu-top,
.po-head,
.report-head,
.admin-head,
.pdv-clients-head,
.stock-hero,
.stock-head,
.page-hero,
.page-header{
  background:var(--bvms-surface);
  border:1px solid var(--bvms-border);
  border-radius:var(--bvms-radius-xl);
  box-shadow:none;
  color:var(--bvms-text);
}

/* Botões */
.btn,
button,
a.btn,
.btn-primary,
.btn-success,
.btn-secondary,
.btn-outline-primary,
.btn-outline-secondary,
.btn-primary-soft,
.btn-secondary-soft,
.btn-save,
.btn-cancel,
.save-btn,
.menu-primary,
.pdv-btn,
.pdv-btn-primary,
.stock-submit,
.pdv-submit,
.ghost-btn{
  border-radius:999px;
  font-weight:700;
  box-shadow:none;
  transform:none;
  min-height:40px;
}

.btn-primary,
.btn-success,
.btn-save,
.btn-primary-soft,
.save-btn,
.menu-primary,
.pdv-btn-primary,
.stock-submit,
.pdv-submit,
button[type="submit"]:not(.btn-link){
  background:var(--bvms-accent);
  border-color:var(--bvms-accent);
  color:#fff;
}

.btn-primary:hover,
.btn-success:hover,
.btn-save:hover,
.btn-primary-soft:hover,
.save-btn:hover,
.menu-primary:hover,
.pdv-btn-primary:hover,
.stock-submit:hover,
.pdv-submit:hover,
button[type="submit"]:not(.btn-link):hover{
  background:var(--bvms-accent-dark);
  border-color:var(--bvms-accent-dark);
  color:#fff;
  transform:none;
  box-shadow:none;
}

.btn-secondary,
.btn-secondary-soft,
.btn-outline-secondary,
.btn-outline-primary,
.btn-cancel,
.ghost-btn,
.pdv-btn,
.menu-btn{
  background:var(--bvms-surface);
  border:1px solid var(--bvms-border);
  color:var(--bvms-text);
}

.btn-danger,
.btn-delete,
.danger-soft button,
button.danger{
  background:var(--bvms-danger);
  border-color:var(--bvms-danger);
  color:#fff;
}

/* Badges, chips e status */
.badge,
.bvms-clean-pill,
.kicker,
.tag,
.pdv-badge,
.stock-chip,
.stock-pill-green,
.category-status,
.status-pill,
.mesa-pill,
.hint-chip{
  border-radius:999px;
  background:var(--bvms-accent-soft);
  border:1px solid color-mix(in srgb,var(--bvms-accent) 24%, var(--bvms-border));
  color:var(--bvms-accent);
  font-weight:800;
  letter-spacing:.04em;
}

/* Formulários */
input,
select,
textarea,
.form-control,
.form-select,
.input-group-text{
  background:var(--bvms-surface-2);
  color:var(--bvms-text);
  border:1px solid var(--bvms-border);
  border-radius:var(--bvms-radius);
  box-shadow:none;
}

input::placeholder,
textarea::placeholder{color:color-mix(in srgb,var(--bvms-muted) 70%, transparent)}

input:focus,
select:focus,
textarea:focus,
.form-control:focus,
.form-select:focus{
  background:var(--bvms-surface);
  color:var(--bvms-text);
  border-color:var(--bvms-accent);
  box-shadow:var(--bvms-focus);
}

label{
  color:var(--bvms-text);
  font-weight:700;
}

/* Tabelas */
.table,
table{
  color:var(--bvms-text);
  border-color:var(--bvms-border);
}

.table > :not(caption) > * > *,
table td,
table th{
  background:transparent;
  color:var(--bvms-text);
  border-color:var(--bvms-border);
}

.table-responsive,
.bvms-table-scroll,
.category-table-wrap{
  border-radius:var(--bvms-radius-lg);
  overflow:auto;
}

/* Modais */
.modal-backdrop,
.category-modal,
.item-modal-backdrop{
  background:rgba(15,23,42,.42);
  backdrop-filter:none;
}

.modal-content,
.category-modal-card,
.item-modal,
.modal-mesa{
  background:var(--bvms-surface);
  color:var(--bvms-text);
  border:1px solid var(--bvms-border);
  border-radius:var(--bvms-radius-xl);
  box-shadow:none;
}

.modal-header,
.category-modal-head,
.item-modal-head,
.modal-mesa-head{
  background:var(--bvms-surface);
  border-color:var(--bvms-border);
}

.modal-footer,
.category-modal-actions,
.modal-actions,
.modal-mesa-actions{
  background:var(--bvms-surface);
  border-color:var(--bvms-border);
}

/* Módulos */
body.pdv-body .action.primary,
body.pdv-body .mesa-card[data-status="livre"],
body.pdv-body .mode-card:has(input:checked),
body.pdv-operacao-only .op-nav a.active{
  background:var(--bvms-accent-soft);
  border-color:color-mix(in srgb,var(--bvms-accent) 30%, var(--bvms-border));
}

body.stock-body .stock-chip,
body.stock-context .stock-chip,
body.stock-body .stock-pill-green,
body.stock-context .stock-pill-green{
  background:var(--bvms-accent-soft);
  color:var(--bvms-accent);
  border-color:color-mix(in srgb,var(--bvms-accent) 26%, var(--bvms-border));
}

/* Modo escuro: impedir fundos brancos isolados */
html.theme-dark .card,
html.theme-dark .modal-content,
html.theme-dark .dashboard-card,
html.theme-dark .metric-card,
html.theme-dark .kpi-card,
html.theme-dark .stat-card,
html.theme-dark .summary-card,
html.theme-dark .table-card,
html.theme-dark .filter-card,
html.theme-dark .sales-card,
html.theme-dark .product-card,
html.theme-dark .category-card,
html.theme-dark .goal-card-clean,
html.theme-dark .import-card,
html.theme-dark .bvms-info-card,
html.theme-dark .bvms-table-card,
html.theme-dark .home-card,
html.theme-dark .kpi,
html.theme-dark .live,
html.theme-dark .flow-card,
html.theme-dark .action,
html.theme-dark .panel,
html.theme-dark .category-block,
html.theme-dark .mesa-card,
html.theme-dark .po-card,
html.theme-dark .po-col,
html.theme-dark .report-card,
html.theme-dark .admin-card,
html.theme-dark .admin-panel,
html.theme-dark .pdv-i-card,
html.theme-dark .pdv-smart-card,
html.theme-dark .stock-card,
html.theme-dark .stock-panel,
html.theme-dark .stock-insight-card,
html.theme-dark .stock-insight-row,
html.theme-dark .stock-mini-kpis .stock-insight-row{
  background:var(--bvms-surface);
  color:var(--bvms-text);
  border-color:var(--bvms-border);
}

html.theme-dark input,
html.theme-dark select,
html.theme-dark textarea,
html.theme-dark .form-control,
html.theme-dark .form-select,
html.theme-dark .input-group-text{
  background:var(--bvms-surface-2);
  color:var(--bvms-text);
  border-color:var(--bvms-border);
}

/* Responsividade */
@media(max-width:1024px){
  .card,
  .dashboard-card,
  .metric-card,
  .kpi-card,
  .summary-card,
  .table-card,
  .home-card,
  .panel,
  .stock-insight-card{
    border-radius:var(--bvms-radius-lg);
  }
}

@media(max-width:768px){
  body{font-size:14px}
  .app-main,
  .pdv-content,
  .stock-content,
  .main-content,
  .content-clean{
    padding-left:12px;
    padding-right:12px;
  }

  .card,
  .dashboard-card,
  .metric-card,
  .kpi-card,
  .summary-card,
  .table-card,
  .home-card,
  .panel,
  .stock-insight-card{
    padding:14px;
  }

  .btn,
  a.btn,
  button,
  .btn-primary-soft,
  .btn-secondary-soft,
  .save-btn{
    min-height:44px;
  }

  .modal-dialog{
    margin:8px;
  }

  .modal-content,
  .category-modal-card,
  .item-modal,
  .modal-mesa{
    width:100%;
    max-height:94vh;
    overflow:auto;
    border-radius:var(--bvms-radius-lg);
  }

  .table-responsive,
  .bvms-table-scroll,
  .category-table-wrap{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
}

@media(max-width:430px){
  h1{font-size:28px}
  h2{font-size:20px}
  .btn,
  a.btn,
  button,
  .save-btn{
    width:auto;
  }
}

/* ===== bvms-interactions.css ===== */
/* BVMS Interactions — camada global de microinterações ERP + PDV */
:root{
  --bvms-hover-accent:#2563eb;
  --bvms-hover-soft:rgba(37,99,235,.10);
  --bvms-hover-border:rgba(37,99,235,.32);
  --bvms-hover-shadow:none;
}
html.theme-dark,
html[data-theme="dark"]{
  --bvms-hover-accent:#22c55e;
  --bvms-hover-soft:rgba(34,197,94,.12);
  --bvms-hover-border:rgba(34,197,94,.36);
  --bvms-hover-shadow:none;
}
body.pdv-body{
  --bvms-hover-accent:var(--pdv-accent,#22c55e);
  --bvms-hover-soft:var(--pdv-soft,rgba(34,197,94,.12));
  --bvms-hover-border:rgba(34,197,94,.40);
}
@media (hover:hover){
  .bvms-hover-card,
  .metric-card,
  .summary-card,
  .dashboard-card,
  .kpi-card,
  .stat-card,
  .sales-card,
  .product-card,
  .category-card,
  .goal-card-clean,
  .import-card,
  .table-card,
  .filter-card,
  .card:not(.modal-content),
  .pdv-content .card,
  .pdv-content .home-card,
  .pdv-content .kpi,
  .pdv-content .flow-card,
  .pdv-content .action,
  .pdv-content .live,
  .pdv-content .mesa-card,
  .pdv-content .pedido-card,
  .pdv-content .produto-card,
  .pdv-content .menu-product-card,
  .pdv-content .pdv-card{
    transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease,color .16s ease;
  }
  .bvms-hover-card:hover,
  .metric-card:hover,
  .summary-card:hover,
  .dashboard-card:hover,
  .kpi-card:hover,
  .stat-card:hover,
  .sales-card:hover,
  .product-card:hover,
  .category-card:hover,
  .goal-card-clean:hover,
  .import-card:hover,
  .table-card:hover,
  .filter-card:hover,
  .card:not(.modal-content):hover,
  .pdv-content .card:hover,
  .pdv-content .home-card:hover,
  .pdv-content .kpi:hover,
  .pdv-content .flow-card:hover,
  .pdv-content .action:hover,
  .pdv-content .live:hover,
  .pdv-content .mesa-card:hover,
  .pdv-content .pedido-card:hover,
  .pdv-content .produto-card:hover,
  .pdv-content .menu-product-card:hover,
  .pdv-content .pdv-card:hover{
    transform:none;
    border-color:var(--bvms-hover-border)!important;
    box-shadow:none;
  }
  .sidebar-clean-link,
  .sidebar-clean-sublink,
  .pdv-nav a,
  .pdv-bottom-nav a,
  .topbar-clean-icon,
  .pdv-icon-btn,
  .btn,
  a.btn{
    transition:transform .15s ease,background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease;
  }
  .sidebar-clean-link:hover,
  .sidebar-clean-sublink:hover,
  .pdv-nav a:hover,
  .pdv-bottom-nav a:hover,
  .topbar-clean-icon:hover,
  .pdv-icon-btn:hover,
  .btn:hover,
  a.btn:hover{
    transform:none;
  }
}
.bvms-floating-theme-toggle,
.pdv-floating-theme-toggle{
  width:42px;
  height:42px;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.28);
  background:rgba(255,255,255,.92);
  color:#0f172a;
  display:none;
  place-items:center;
  box-shadow:none;
  
  cursor:pointer;
}
html.theme-dark .bvms-floating-theme-toggle,
html[data-theme="dark"] .bvms-floating-theme-toggle,
html.theme-dark .pdv-floating-theme-toggle,
html[data-theme="dark"] .pdv-floating-theme-toggle{
  background:rgba(15,23,42,.92);
  color:#f8fafc;
  border-color:rgba(148,163,184,.22);
}
.bvms-floating-theme-toggle:hover,
.pdv-floating-theme-toggle:hover{
  background:var(--bvms-hover-soft);
  color:var(--bvms-hover-accent);
  border-color:var(--bvms-hover-border);
  transform:none;
}
@media (max-width:992px){
  .bvms-floating-theme-toggle{
    display:grid;
    position:fixed;
    right:16px;
    bottom:calc(88px + env(safe-area-inset-bottom));
    z-index:1060;
  }
  .pdv-floating-theme-toggle{
    display:grid;
    position:fixed;
    right:16px;
    bottom:calc(92px + env(safe-area-inset-bottom));
    z-index:1060;
  }
}
@media (prefers-reduced-motion:reduce){
  .bvms-hover-card,
  .metric-card,
  .summary-card,
  .dashboard-card,
  .kpi-card,
  .stat-card,
  .sales-card,
  .product-card,
  .category-card,
  .goal-card-clean,
  .import-card,
  .table-card,
  .filter-card,
  .card,
  .pdv-content .card,
  .pdv-content .home-card,
  .pdv-content .kpi,
  .pdv-content .flow-card,
  .pdv-content .action,
  .pdv-content .live,
  .pdv-content .mesa-card,
  .pdv-content .pedido-card,
  .pdv-content .produto-card,
  .pdv-content .menu-product-card,
  .pdv-content .pdv-card,
  .bvms-floating-theme-toggle,
  .pdv-floating-theme-toggle{
    transition:none!important;
  }
  .bvms-hover-card:hover,
  .metric-card:hover,
  .summary-card:hover,
  .dashboard-card:hover,
  .kpi-card:hover,
  .stat-card:hover,
  .sales-card:hover,
  .product-card:hover,
  .category-card:hover,
  .goal-card-clean:hover,
  .import-card:hover,
  .table-card:hover,
  .filter-card:hover,
  .card:hover,
  .pdv-content .card:hover,
  .pdv-content .home-card:hover,
  .pdv-content .kpi:hover,
  .pdv-content .flow-card:hover,
  .pdv-content .action:hover,
  .pdv-content .live:hover,
  .pdv-content .mesa-card:hover,
  .pdv-content .pedido-card:hover,
  .pdv-content .produto-card:hover,
  .pdv-content .menu-product-card:hover,
  .pdv-content .pdv-card:hover{
    transform:none!important;
  }
}

/* ===== bvms-modern-v3.css ===== */
:root{
    --bvms-v3-bg:#f6f8fb;
    --bvms-v3-panel:#ffffff;
    --bvms-v3-panel-2:#f8fafc;
    --bvms-v3-text:#0f172a;
    --bvms-v3-muted:#64748b;
    --bvms-v3-line:#e5ebf3;
    --bvms-v3-blue:#2563eb;
    --bvms-v3-green:#16a34a;
    --bvms-v3-green-2:#059669;
    --bvms-v3-orange:#f97316;
    --bvms-v3-shadow:0 2px 8px rgba(15,23,42,.05);
    --bvms-v3-shadow-lg:0 18px 50px rgba(15,23,42,.08);
    --bvms-v3-radius:22px;
}
html.theme-dark{
    --bvms-v3-bg:#0b1220;
    --bvms-v3-panel:#111827;
    --bvms-v3-panel-2:#162033;
    --bvms-v3-text:#f8fafc;
    --bvms-v3-muted:#94a3b8;
    --bvms-v3-line:#26364f;
    --bvms-v3-shadow:0 2px 10px rgba(0,0,0,.18);
    --bvms-v3-shadow-lg:0 18px 50px rgba(0,0,0,.32);
}
html,body{background:var(--bvms-v3-bg)!important;color:var(--bvms-v3-text)!important}
body.app-body{background:var(--bvms-v3-bg)!important;overflow-x:hidden!important}
.bvms-layout-shell{background:var(--bvms-v3-bg)!important}
.bvms-main-shell{background:var(--bvms-v3-bg)!important;min-width:0!important}
.page-content{padding:20px!important;max-width:1440px!important;width:100%!important;margin:0 auto!important}

/* ERP SIDEBAR V3 - compacto, moderno, sem descrições dentro dos links */
#appSidebar.bvms-sidebar-clean{
    width:264px!important;
    padding:18px 14px!important;
    background:var(--bvms-v3-panel)!important;
    border-right:1px solid var(--bvms-v3-line)!important;
    box-shadow:none!important;
}
#appSidebar .sidebar-clean-header{
    height:54px!important;
    min-height:54px!important;
    margin:0 0 14px 0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
}
#appSidebar .sidebar-clean-brand{padding:0!important;gap:12px!important;text-decoration:none!important;min-width:0!important}
#appSidebar .sidebar-clean-logo{
    width:42px!important;height:42px!important;min-width:42px!important;
    border-radius:16px!important;background:#eef4ff!important;color:var(--bvms-v3-blue)!important;
    box-shadow:none!important;
}
html.theme-dark #appSidebar .sidebar-clean-logo{background:rgba(37,99,235,.16)!important;color:#93c5fd!important}
#appSidebar .sidebar-clean-brand-copy strong{display:block;color:var(--bvms-v3-text)!important;font-size:15px!important;font-weight:900!important;letter-spacing:-.02em!important;line-height:1.1!important}
#appSidebar .sidebar-clean-brand-copy small{display:block;color:var(--bvms-v3-muted)!important;font-size:12px!important;font-weight:750!important;line-height:1.1!important;margin-top:3px!important}
#appSidebar .sidebar-clean-toggle{
    width:40px!important;height:40px!important;min-width:40px!important;border-radius:14px!important;
    background:var(--bvms-v3-panel-2)!important;border:1px solid var(--bvms-v3-line)!important;
    color:var(--bvms-v3-muted)!important;box-shadow:none!important;display:grid!important;place-items:center!important;
}
#appSidebar .sidebar-clean-toggle:hover{color:var(--bvms-v3-blue)!important;border-color:rgba(37,99,235,.24)!important;background:rgba(37,99,235,.08)!important}
#appSidebar .bvms-system-switch{
    height:46px!important;min-height:46px!important;margin:0 0 14px 0!important;padding:5px!important;
    display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;
    border-radius:17px!important;background:var(--bvms-v3-panel-2)!important;border:1px solid var(--bvms-v3-line)!important;box-shadow:none!important;
}
#appSidebar .bvms-system-switch a{
    height:34px!important;min-height:34px!important;padding:0 4px!important;border-radius:13px!important;
    display:flex!important;align-items:center!important;justify-content:center!important;
    color:var(--bvms-v3-muted)!important;text-decoration:none!important;font-size:12px!important;font-weight:900!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
#appSidebar .bvms-system-switch a.active{background:var(--bvms-v3-panel)!important;color:var(--bvms-v3-blue)!important;box-shadow:var(--bvms-v3-shadow)!important}
#appSidebar .sidebar-clean-nav{display:flex!important;flex-direction:column!important;gap:5px!important;overflow:auto!important;padding:2px 2px 8px 0!important;scrollbar-width:none!important}
#appSidebar .sidebar-clean-nav::-webkit-scrollbar{display:none!important}
#appSidebar .sidebar-clean-link,
#appSidebar .sidebar-clean-sublink,
#appSidebar .sidebar-more-button{
    min-height:44px!important;width:100%!important;padding:0 12px!important;border-radius:15px!important;
    display:flex!important;align-items:center!important;gap:11px!important;
    background:transparent!important;border:1px solid transparent!important;color:var(--bvms-v3-text)!important;
    text-decoration:none!important;font-size:13px!important;font-weight:850!important;line-height:1.1!important;box-shadow:none!important;transition:.16s ease!important;
}
#appSidebar .sidebar-clean-link i,
#appSidebar .sidebar-clean-sublink i,
#appSidebar .sidebar-more-button i:first-child{
    width:19px!important;min-width:19px!important;text-align:center!important;font-size:16px!important;color:#7b8798!important;margin:0!important;
}
#appSidebar .sidebar-clean-link span,
#appSidebar .sidebar-clean-sublink span,
#appSidebar .sidebar-more-button span{display:block!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:inherit!important}
#appSidebar .sidebar-clean-link:hover,
#appSidebar .sidebar-clean-sublink:hover,
#appSidebar .sidebar-more-button:hover{background:var(--bvms-v3-panel-2)!important;border-color:var(--bvms-v3-line)!important;transform:none!important;color:var(--bvms-v3-text)!important}
#appSidebar .sidebar-clean-link.active,
#appSidebar .sidebar-clean-sublink.active,
#appSidebar .sidebar-more-button.active,
#appSidebar .sidebar-more-button.is-open{
    background:#eaf2ff!important;border-color:#d9e7ff!important;color:var(--bvms-v3-blue)!important;box-shadow:none!important;
}
html.theme-dark #appSidebar .sidebar-clean-link.active,
html.theme-dark #appSidebar .sidebar-clean-sublink.active,
html.theme-dark #appSidebar .sidebar-more-button.active,
html.theme-dark #appSidebar .sidebar-more-button.is-open{background:rgba(37,99,235,.16)!important;border-color:rgba(37,99,235,.24)!important;color:#93c5fd!important}
#appSidebar .sidebar-clean-link.active i,
#appSidebar .sidebar-clean-sublink.active i,
#appSidebar .sidebar-more-button.active i:first-child,
#appSidebar .sidebar-more-button.is-open i:first-child{color:inherit!important}
#appSidebar .sidebar-more-chevron{margin-left:auto!important;width:auto!important;min-width:0!important;font-size:12px!important;color:var(--bvms-v3-muted)!important}
#appSidebar .sidebar-more-content{display:none!important;flex-direction:column!important;gap:5px!important;margin:4px 0 0 0!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important}
#appSidebar .sidebar-more-content.show{display:flex!important}
#appSidebar .sidebar-clean-sublink{padding-left:14px!important;min-height:42px!important;font-size:12.5px!important}
#appSidebar .sidebar-plan-card{
    margin-top:auto!important;border:1px solid var(--bvms-v3-line)!important;border-radius:18px!important;padding:14px!important;
    background:var(--bvms-v3-panel-2)!important;text-decoration:none!important;box-shadow:none!important;color:var(--bvms-v3-text)!important;
}
#appSidebar .sidebar-plan-card small{display:block;color:var(--bvms-v3-muted)!important;font-size:11px!important;font-weight:800!important;margin-bottom:6px!important}
#appSidebar .sidebar-plan-card strong{display:block;color:var(--bvms-v3-text)!important;font-size:13px!important;font-weight:900!important;margin-bottom:3px!important}
#appSidebar .sidebar-plan-card span{display:block;color:var(--bvms-v3-muted)!important;font-size:11px!important;font-weight:700!important}

/* ERP topbar */
.bvms-topbar-clean{height:64px!important;background:rgba(255,255,255,.86)!important;backdrop-filter:blur(18px)!important;border-bottom:1px solid var(--bvms-v3-line)!important;box-shadow:none!important;padding:0 18px!important}
html.theme-dark .bvms-topbar-clean{background:rgba(17,24,39,.82)!important}
.topbar-company-clean strong{color:var(--bvms-v3-text)!important;font-size:15px!important;font-weight:900!important}.topbar-company-clean small{color:var(--bvms-v3-muted)!important;font-size:12px!important;font-weight:750!important}.topbar-clean-icon,.topbar-profile-clean{border-radius:15px!important;background:var(--bvms-v3-panel)!important;border:1px solid var(--bvms-v3-line)!important;color:var(--bvms-v3-text)!important;box-shadow:none!important}.topbar-clean-icon:hover,.topbar-profile-clean:hover{background:var(--bvms-v3-panel-2)!important;border-color:rgba(37,99,235,.20)!important;color:var(--bvms-v3-blue)!important;transform:none!important}

@media(min-width:993px){
    body.sidebar-collapsed #appSidebar.bvms-sidebar-clean,
    body.erp-sidebar-is-collapsed #appSidebar.bvms-sidebar-clean{width:76px!important;padding:14px 10px!important}
    body.sidebar-collapsed #appSidebar .sidebar-clean-brand-copy,
    body.sidebar-collapsed #appSidebar .bvms-system-switch,
    body.sidebar-collapsed #appSidebar .sidebar-clean-link span,
    body.sidebar-collapsed #appSidebar .sidebar-clean-sublink span,
    body.sidebar-collapsed #appSidebar .sidebar-more-button span,
    body.sidebar-collapsed #appSidebar .sidebar-more-chevron,
    body.sidebar-collapsed #appSidebar .sidebar-plan-card,
    body.erp-sidebar-is-collapsed #appSidebar .sidebar-clean-brand-copy,
    body.erp-sidebar-is-collapsed #appSidebar .bvms-system-switch,
    body.erp-sidebar-is-collapsed #appSidebar .sidebar-clean-link span,
    body.erp-sidebar-is-collapsed #appSidebar .sidebar-clean-sublink span,
    body.erp-sidebar-is-collapsed #appSidebar .sidebar-more-button span,
    body.erp-sidebar-is-collapsed #appSidebar .sidebar-more-chevron,
    body.erp-sidebar-is-collapsed #appSidebar .sidebar-plan-card{display:none!important}
    body.sidebar-collapsed #appSidebar .sidebar-clean-header,
    body.erp-sidebar-is-collapsed #appSidebar .sidebar-clean-header{height:auto!important;min-height:0!important;flex-direction:column!important;gap:12px!important;justify-content:flex-start!important}
    body.sidebar-collapsed #appSidebar .sidebar-clean-link,
    body.sidebar-collapsed #appSidebar .sidebar-clean-sublink,
    body.sidebar-collapsed #appSidebar .sidebar-more-button,
    body.erp-sidebar-is-collapsed #appSidebar .sidebar-clean-link,
    body.erp-sidebar-is-collapsed #appSidebar .sidebar-clean-sublink,
    body.erp-sidebar-is-collapsed #appSidebar .sidebar-more-button{width:48px!important;height:48px!important;min-height:48px!important;padding:0!important;justify-content:center!important;margin:0 auto!important;border-radius:16px!important}
    body.sidebar-collapsed #appSidebar .sidebar-clean-link i,
    body.sidebar-collapsed #appSidebar .sidebar-clean-sublink i,
    body.sidebar-collapsed #appSidebar .sidebar-more-button i:first-child,
    body.erp-sidebar-is-collapsed #appSidebar .sidebar-clean-link i,
    body.erp-sidebar-is-collapsed #appSidebar .sidebar-clean-sublink i,
    body.erp-sidebar-is-collapsed #appSidebar .sidebar-more-button i:first-child{width:auto!important;min-width:0!important;margin:0!important}
}
@media(max-width:992px){
    .page-content{padding:14px 12px calc(96px + env(safe-area-inset-bottom))!important}
    #appSidebar.bvms-sidebar-clean{width:min(310px,86vw)!important;padding:16px!important;z-index:1080!important}
    .bvms-topbar-clean{height:58px!important;padding:0 12px!important}
    #appSidebar .sidebar-clean-link,#appSidebar .sidebar-clean-sublink,#appSidebar .sidebar-more-button{min-height:48px!important;font-size:13px!important}
    .topbar-profile-copy{display:none!important}
}

/* Cards gerais mais modernos, sem excesso de caixas */
.page-hero-clean,.kpi-clean,.filter-card-clean,.catalog-card-clean,.smart-cost-form-card,.history-card,.simple-modal-card,.bvms-card,.services-card,.services-hero,.stock-card,.stock-hero{background:var(--bvms-v3-panel)!important;border:1px solid var(--bvms-v3-line)!important;border-radius:22px!important;box-shadow:var(--bvms-v3-shadow)!important}.page-hero-clean h1,.bvms-card h3,.services-hero h1,.services-card h2,.services-card h3{color:var(--bvms-v3-text)!important;font-weight:950!important;letter-spacing:-.04em!important}.page-hero-clean p,.bvms-card p,.services-hero p,.services-card p,.services-card small{color:var(--bvms-v3-muted)!important}.form-control,.form-select,.services-input,.services-select,.services-textarea{background:var(--bvms-v3-panel)!important;color:var(--bvms-v3-text)!important;border:1px solid var(--bvms-v3-line)!important;border-radius:16px!important;box-shadow:none!important}.form-control:focus,.form-select:focus,.services-input:focus,.services-select:focus,.services-textarea:focus{border-color:rgba(37,99,235,.34)!important;box-shadow:0 0 0 4px rgba(37,99,235,.08)!important}.btn,.services-btn{border-radius:16px!important;font-weight:900!important;box-shadow:none!important}.table,.services-table{--bs-table-bg:transparent!important;--bs-table-color:var(--bvms-v3-text)!important;--bs-table-border-color:var(--bvms-v3-line)!important}

/* ===== bvms-responsive-hotfix.css ===== */

/*
 * BVMS Responsividade V4
 * Corrige largura útil das telas ERP/Serviços/Estoque/PDV sem alterar regras de negócio.
 */

:root {
    --bvms-responsive-page-x: clamp(16px, 2vw, 32px);
    --bvms-responsive-page-y: 22px;
}

/* Base: impede estouro horizontal e aproveita a largura real da tela */
html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

.bvms-layout-shell,
.services-shell,
.stock-shell,
.pdv-shell {
    width: 100%;
    max-width: 100vw;
    overflow-x: hidden;
}

.bvms-main-shell,
.services-main,
.stock-main,
.pdv-main {
    min-width: 0;
    width: 100%;
    overflow-x: hidden;
}

/* ERP: conteúdo não deve ficar espremido no centro nem deixar vazio lateral exagerado */
.page-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: var(--bvms-responsive-page-y) var(--bvms-responsive-page-x) calc(32px + env(safe-area-inset-bottom)) !important;
    box-sizing: border-box !important;
}

.bvms-dashboard-minimal,
.dre-app-shell,
.products-cost-page,
.bvms-page,
.statement-page,
.sales-page,
.expenses-page,
.reports-page,
.settings-page,
.planning-page,
.goals-page,
.projections-page {
    width: 100% !important;
    max-width: 1520px !important;
    margin-left: 0 !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

/* DRE e dashboard: melhora distribuição em telas largas */
.dre-top-card {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 360px) !important;
}

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

.dre-main-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1.65fr) minmax(280px, .75fr) !important;
    gap: 16px !important;
    align-items: start !important;
}

.dre-card,
.dre-summary-strip article,
.dre-top-card {
    min-width: 0 !important;
}

.mini-dash-header,
.mini-alerts-under-title,
.mini-kpi-grid,
.mini-dashboard-grid,
.mini-dash-footer {
    width: 100% !important;
    max-width: 100% !important;
}

.mini-kpi-grid {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(150px, 1fr)) !important;
    gap: 14px !important;
}

.mini-dashboard-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(360px, .95fr) !important;
    gap: 16px !important;
    align-items: start !important;
}

.mini-panel,
.mini-kpi-card,
.mini-alert-item,
.mini-alerts-summary {
    min-width: 0 !important;
}

/* Serviços: corrige tela jogada para direita e usa a largura inteira do ambiente */
.services-shell {
    display: grid !important;
    grid-template-columns: 292px minmax(0, 1fr) !important;
}

.services-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 22px var(--bvms-responsive-page-x) calc(32px + env(safe-area-inset-bottom)) !important;
    box-sizing: border-box !important;
}

.services-content .bvms-services,
.bvms-services,
.services-page {
    width: 100% !important;
    max-width: 1520px !important;
    margin-left: 0 !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

.services-hero {
    width: 100% !important;
    min-width: 0 !important;
}

.services-tabs {
    width: 100% !important;
    max-width: 100% !important;
}

.quick-actions {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(140px, 1fr)) !important;
    gap: 12px !important;
}

.services-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(150px, 1fr)) !important;
    gap: 14px !important;
}

.services-main,
.services-panel-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, .75fr) !important;
    gap: 16px !important;
    align-items: start !important;
}

.services-card,
.services-card *,
.calendar,
.calendar *,
.services-table,
.services-form-grid,
.services-form-grid-3 {
    min-width: 0;
}

.services-table-wrap,
.services-table-responsive {
    width: 100%;
    overflow-x: auto;
}

.services-table {
    width: 100% !important;
}

/* Estoque e PDV: mantém padrão, mas evita tela cortada */
.stock-content,
.pdv-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: var(--bvms-responsive-page-y) var(--bvms-responsive-page-x) calc(32px + env(safe-area-inset-bottom)) !important;
    box-sizing: border-box !important;
}

.stock-page,
.pdv-page,
.stock-content > *,
.pdv-content > * {
    max-width: 1520px !important;
    margin-left: 0 !important;
    margin-right: auto !important;
}

.stock-grid,
.stock-insight-grid {
    grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr) !important;
}

/* Tablet */
@media (max-width: 1280px) {
    .mini-kpi-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .mini-dashboard-grid,
    .dre-main-grid,
    .services-main,
    .services-panel-grid,
    .stock-grid,
    .stock-insight-grid {
        grid-template-columns: 1fr !important;
    }

    .quick-actions {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .services-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* Mobile e telas menores */
@media (max-width: 992px) {
    :root {
        --bvms-responsive-page-x: 12px;
        --bvms-responsive-page-y: 14px;
    }

    .bvms-layout-shell,
    .services-shell,
    .stock-shell,
    .pdv-shell {
        display: block !important;
    }

    .page-content,
    .services-content,
    .stock-content,
    .pdv-content {
        padding: 14px 12px calc(96px + env(safe-area-inset-bottom)) !important;
        max-width: 100% !important;
    }

    .dre-app-shell,
    .bvms-dashboard-minimal,
    .products-cost-page,
    .bvms-page,
    .bvms-services,
    .services-page,
    .stock-page {
        max-width: 100% !important;
        margin: 0 !important;
    }

    .dre-top-card {
        grid-template-columns: 1fr !important;
    }

    .dre-summary-strip,
    .mini-kpi-grid,
    .services-grid,
    .stock-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .quick-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .mini-dash-header,
    .services-hero,
    .stock-hero,
    .page-hero-clean,
    .dre-top-card {
        border-radius: 22px !important;
        padding: 18px !important;
    }

    .mini-dash-header,
    .stock-hero {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .mini-module-tabs,
    .hero-actions-clean,
    .services-toolbar {
        width: 100% !important;
        justify-content: flex-start !important;
    }

    .mini-module-tabs a,
    .hero-actions-clean a,
    .hero-actions-clean button {
        flex: 1 1 calc(50% - 8px) !important;
        justify-content: center !important;
        text-align: center !important;
    }

    .services-sidebar,
    .stock-sidebar,
    .pdv-sidebar,
    #appSidebar {
        max-width: 86vw !important;
    }
}

/* Celular pequeno */
@media (max-width: 640px) {
    .dre-summary-strip,
    .mini-kpi-grid,
    .services-grid,
    .quick-actions,
    .stock-kpis,
    .stock-mini-kpis,
    .products-sku-grid {
        grid-template-columns: 1fr !important;
    }

    .services-main,
    .services-panel-grid,
    .dre-main-grid,
    .mini-dashboard-grid {
        gap: 12px !important;
    }

    .services-hero h1,
    .mini-dash-title h1,
    .dre-top-card h1,
    .page-hero-clean h1,
    .stock-hero h1 {
        font-size: clamp(1.65rem, 9vw, 2.25rem) !important;
        line-height: 1.02 !important;
    }

    .services-hero p,
    .dre-top-card p,
    .page-hero-clean p,
    .stock-hero p {
        font-size: .92rem !important;
        line-height: 1.45 !important;
    }

    .calendar-toolbar {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    .calendar-views {
        overflow-x: auto !important;
        flex-wrap: nowrap !important;
        padding-bottom: 4px !important;
    }

    .calendar-row {
        grid-template-columns: 58px 1fr !important;
    }

    .appointment-chip {
        min-width: 100% !important;
    }

    .services-table,
    .erp-table,
    .table {
        display: block !important;
        width: 100% !important;
        overflow-x: auto !important;
        white-space: nowrap !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .services-form-grid,
    .services-form-grid-3,
    .modal-form-grid {
        grid-template-columns: 1fr !important;
    }

    .topbar-profile-copy,
    .services-profile strong,
    .stock-profile strong,
    .pdv-profile strong {
        display: none !important;
    }
}

/* Evita que gráficos/canvas forcem largura horizontal */
canvas,
.chart-container,
.mini-chart,
.mini-spark {
    max-width: 100% !important;
}


/* Correção crítica: o layout de Serviços usa .services-main no shell
   e a view da agenda também usa .services-main. O shell precisa ser flex,
   e somente o conteúdo interno deve virar grid. */
.services-shell > .services-main {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    width: 100% !important;
    min-width: 0 !important;
}

.services-content .services-main,
.bvms-services > .services-main,
.services-page > .services-main {
    display: grid !important;
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, .75fr) !important;
    gap: 16px !important;
    align-items: start !important;
}

@media (max-width: 1280px) {
    .services-content .services-main,
    .bvms-services > .services-main,
    .services-page > .services-main {
        grid-template-columns: 1fr !important;
    }
}

/* ===== services.css ===== */
/*
 * BVMS Serviços Safe V11
 * Hotfix contra tela vazia: substitui o shell problemático por classes próprias svc-*.
 * Mantém visual SaaS, sidebar, topbar, agenda, calendário lateral e mobile.
 */

:root {
    --svc-bg: #F7F8FA;
    --svc-panel: #FFFFFF;
    --svc-panel-2: #F9FAFB;
    --svc-panel-3: #EEF7F0;
    --svc-text: #111827;
    --svc-muted: #667085;
    --svc-line: #E5EAF0;
    --svc-green: #16A34A;
    --svc-green-dark: #0F8A3B;
    --svc-green-soft: rgba(22, 163, 74, .10);
    --svc-blue: #2563EB;
    --svc-orange: #F59E0B;
    --svc-red: #EF4444;
    --svc-shadow: 0 2px 10px rgba(15, 23, 42, .05);
    --svc-shadow-lg: 0 20px 60px rgba(15, 23, 42, .10);
}

html.theme-dark {
    --svc-bg: #0B1220;
    --svc-panel: #111827;
    --svc-panel-2: #162133;
    --svc-panel-3: #0F2418;
    --svc-text: #F8FAFC;
    --svc-muted: #9AA8BD;
    --svc-line: #26364F;
    --svc-green-soft: rgba(34, 197, 94, .13);
    --svc-shadow: 0 2px 12px rgba(0, 0, 0, .24);
    --svc-shadow-lg: 0 20px 70px rgba(0, 0, 0, .36);
}

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

.svc-app-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    background: var(--svc-bg);
}

/* Sidebar */
.svc-sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    background: var(--svc-panel);
    border-right: 1px solid var(--svc-line);
    padding: 18px 14px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    z-index: 1080;
    min-width: 0;
}

.svc-sidebar-brand-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.svc-brand {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 11px;
    color: var(--svc-text);
    text-decoration: none;
}

.svc-brand-logo {
    width: 44px;
    height: 44px;
    min-width: 44px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: var(--svc-green);
    color: #fff;
    font-weight: 950;
    letter-spacing: -.04em;
}

.svc-brand-copy {
    min-width: 0;
}

.svc-brand-copy strong,
.svc-brand-copy small {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.svc-brand-copy strong {
    font-size: 15px;
    font-weight: 950;
    color: var(--svc-text);
    line-height: 1.1;
}

.svc-brand-copy small {
    margin-top: 3px;
    font-size: 12px;
    font-weight: 750;
    color: var(--svc-muted);
}

.svc-icon-button {
    width: 42px;
    height: 42px;
    min-width: 42px;
    display: grid;
    place-items: center;
    border: 1px solid var(--svc-line);
    border-radius: 14px;
    background: var(--svc-panel);
    color: var(--svc-text);
    text-decoration: none;
    box-shadow: var(--svc-shadow);
    cursor: pointer;
}

.svc-icon-button:hover {
    color: var(--svc-green);
    background: var(--svc-green-soft);
}

.svc-env-switch {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
    padding: 5px;
    border: 1px solid var(--svc-line);
    border-radius: 18px;
    background: var(--svc-panel-2);
}

.svc-env-switch a {
    min-height: 34px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    color: var(--svc-muted);
    text-decoration: none;
    font-size: 12px;
    font-weight: 900;
}

.svc-env-switch a.active {
    color: var(--svc-green);
    background: var(--svc-panel);
    box-shadow: var(--svc-shadow);
}

.svc-nav-scroll {
    min-height: 0;
    overflow: auto;
    scrollbar-width: none;
}

.svc-nav-scroll::-webkit-scrollbar {
    display: none;
}

.svc-nav-group {
    display: grid;
    gap: 7px;
    margin-bottom: 18px;
}

.svc-nav-heading {
    padding: 0 12px 4px;
    color: var(--svc-muted);
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: 11px;
    font-weight: 950;
}

.svc-nav-group a {
    min-height: 46px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 12px;
    border-radius: 14px;
    color: var(--svc-text);
    text-decoration: none;
    font-size: 13px;
    font-weight: 900;
    border: 1px solid transparent;
}

.svc-nav-group a i {
    width: 18px;
    min-width: 18px;
    color: #7C8A83;
    text-align: center;
}

.svc-nav-group a.active,
.svc-nav-group a:hover {
    color: var(--svc-green);
    background: var(--svc-green-soft);
    border-color: rgba(22, 163, 74, .18);
}

.svc-nav-group a.active i,
.svc-nav-group a:hover i {
    color: var(--svc-green);
}

.svc-sidebar-card {
    margin-top: auto;
    padding: 16px;
    border: 1px solid var(--svc-line);
    border-radius: 18px;
    background: var(--svc-panel-2);
}

.svc-sidebar-card strong,
.svc-sidebar-card span {
    display: block;
}

.svc-sidebar-card strong {
    color: var(--svc-text);
    font-size: 13px;
    font-weight: 950;
}

.svc-sidebar-card span {
    margin-top: 6px;
    color: var(--svc-muted);
    font-size: 12px;
    line-height: 1.45;
    font-weight: 720;
}

.svc-sidebar-card a {
    display: inline-flex;
    margin-top: 12px;
    padding: 10px 13px;
    border-radius: 13px;
    background: var(--svc-green);
    color: #fff;
    text-decoration: none;
    font-size: 12px;
    font-weight: 950;
}

.svc-sidebar-profile {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--svc-line);
    border-radius: 18px;
    background: var(--svc-panel);
    color: var(--svc-text);
    text-decoration: none;
    box-shadow: var(--svc-shadow);
}

.svc-sidebar-profile > span {
    width: 36px;
    height: 36px;
    min-width: 36px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background: var(--svc-green);
    color: #fff;
    font-size: 12px;
    font-weight: 950;
}

.svc-sidebar-profile div {
    min-width: 0;
    flex: 1;
}

.svc-sidebar-profile strong,
.svc-sidebar-profile small {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.svc-sidebar-profile strong {
    color: var(--svc-text);
    font-size: 13px;
    font-weight: 950;
}

.svc-sidebar-profile small {
    margin-top: 3px;
    color: var(--svc-muted);
    font-size: 11px;
    font-weight: 720;
}

/* Collapsed sidebar */
@media (min-width: 993px) {
    body.svc-sidebar-collapsed .svc-app-shell {
        grid-template-columns: 78px minmax(0, 1fr);
    }

    body.svc-sidebar-collapsed .svc-sidebar {
        padding: 16px 10px;
        align-items: center;
    }

    body.svc-sidebar-collapsed .svc-brand-copy,
    body.svc-sidebar-collapsed .svc-env-switch,
    body.svc-sidebar-collapsed .svc-nav-heading,
    body.svc-sidebar-collapsed .svc-nav-group a span,
    body.svc-sidebar-collapsed .svc-sidebar-card,
    body.svc-sidebar-collapsed .svc-sidebar-profile div,
    body.svc-sidebar-collapsed .svc-sidebar-profile i {
        display: none !important;
    }

    body.svc-sidebar-collapsed .svc-brand-logo,
    body.svc-sidebar-collapsed .svc-sidebar-profile > span {
        width: 46px;
        height: 46px;
        min-width: 46px;
    }

    body.svc-sidebar-collapsed .svc-nav-group a {
        width: 48px;
        height: 48px;
        min-height: 48px;
        padding: 0;
        justify-content: center;
    }
}

/* Main shell */
.svc-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.svc-topbar {
    min-height: 82px;
    position: sticky;
    top: 0;
    z-index: 1030;
    display: grid;
    grid-template-columns: auto minmax(220px, 1fr) minmax(280px, 440px) auto;
    align-items: center;
    gap: 18px;
    padding: 0 28px;
    border-bottom: 1px solid var(--svc-line);
    background: rgba(247, 248, 250, .88);
    backdrop-filter: blur(18px);
}

html.theme-dark .svc-topbar {
    background: rgba(11, 18, 32, .86);
}

.svc-mobile-menu {
    display: none;
}

.svc-top-title {
    min-width: 0;
}

.svc-top-title strong,
.svc-top-title span {
    display: block;
}

.svc-top-title strong {
    color: var(--svc-text);
    font-size: 26px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: -.04em;
}

.svc-top-title span {
    margin-top: 8px;
    color: var(--svc-muted);
    font-size: 13px;
    font-weight: 760;
}

.svc-search {
    min-height: 46px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 12px;
    border: 1px solid var(--svc-line);
    border-radius: 18px;
    background: var(--svc-panel);
    box-shadow: var(--svc-shadow);
}

.svc-search input {
    min-width: 0;
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--svc-text);
    font-size: 13px;
    font-weight: 720;
}

.svc-search i,
.svc-search kbd {
    color: var(--svc-muted);
}

.svc-search kbd {
    border: 1px solid var(--svc-line);
    background: var(--svc-panel-2);
    border-radius: 8px;
    padding: 3px 7px;
    font-size: 11px;
}

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

.svc-profile-pill {
    min-height: 42px;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 5px 12px 5px 5px;
    border: 1px solid var(--svc-line);
    border-radius: 18px;
    background: var(--svc-panel);
    color: var(--svc-text);
    text-decoration: none;
    box-shadow: var(--svc-shadow);
}

.svc-profile-pill span {
    width: 32px;
    height: 32px;
    border-radius: 13px;
    display: grid;
    place-items: center;
    background: var(--svc-green);
    color: #fff;
    font-size: 12px;
    font-weight: 950;
}

.svc-profile-pill strong {
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--svc-text);
    font-size: 13px;
    font-weight: 950;
}

.svc-content {
    flex: 1;
    min-width: 0;
    width: 100%;
    padding: 28px;
}

.svc-page {
    display: grid;
    gap: 22px;
    width: 100%;
    max-width: 1540px;
    margin: 0;
}

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

.svc-alert.success {
    border: 1px solid rgba(22, 163, 74, .25);
    background: rgba(22, 163, 74, .10);
    color: var(--svc-green-dark);
}

.svc-alert.danger {
    border: 1px solid rgba(239, 68, 68, .22);
    background: rgba(239, 68, 68, .12);
    color: #991B1B;
}

/* Components */
.svc-card,
.svc-calendar-card,
.svc-kpi,
.svc-client-card {
    background: var(--svc-panel);
    border: 1px solid var(--svc-line);
    border-radius: 20px;
    box-shadow: var(--svc-shadow);
    color: var(--svc-text);
}

.svc-card,
.svc-calendar-card {
    padding: 20px;
}

.svc-card h2,
.svc-calendar-card h2 {
    margin: 0 0 16px;
    color: var(--svc-text);
    font-size: 18px;
    line-height: 1.15;
    font-weight: 950;
    letter-spacing: -.03em;
}

.svc-card p {
    color: var(--svc-muted);
    font-weight: 720;
    line-height: 1.55;
}

.svc-kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(160px, 1fr));
    gap: 14px;
}

.svc-kpi {
    min-height: 128px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.svc-kpi span,
.svc-mini-metric small {
    color: var(--svc-muted);
    font-size: 11px;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-weight: 950;
}

.svc-kpi strong {
    color: var(--svc-text);
    font-size: 30px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: -.05em;
}

.svc-kpi small {
    color: var(--svc-muted);
    font-size: 12px;
    font-weight: 740;
}

.svc-grid-2 {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
    gap: 18px;
    align-items: start;
}

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

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

.svc-mini-metric {
    padding: 12px;
    border: 1px solid var(--svc-line);
    border-radius: 16px;
    background: var(--svc-panel-2);
}

.svc-mini-metric strong {
    display: block;
    margin-top: 6px;
    color: var(--svc-text);
    font-size: 18px;
    font-weight: 950;
}

/* Agenda */
.svc-agenda-page {
    display: grid;
    gap: 20px;
}

.svc-agenda-board {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 20px;
    align-items: start;
}

.svc-calendar-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 18px;
}

.svc-current-date,
.svc-calendar-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.svc-current-date strong {
    margin-left: 6px;
    color: var(--svc-text);
    font-size: 18px;
    font-weight: 950;
}

.svc-current-date span {
    padding: 6px 10px;
    border-radius: 999px;
    color: var(--svc-green);
    background: var(--svc-green-soft);
    font-size: 12px;
    font-weight: 950;
    text-transform: uppercase;
}

.svc-view-toggle {
    display: flex;
    gap: 4px;
    padding: 5px;
    border: 1px solid var(--svc-line);
    border-radius: 18px;
    background: var(--svc-panel-2);
}

.svc-view-toggle a {
    min-height: 34px;
    min-width: 70px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    color: var(--svc-muted);
    text-decoration: none;
    font-size: 13px;
    font-weight: 900;
}

.svc-view-toggle a.active {
    color: var(--svc-green);
    background: var(--svc-green-soft);
}

.svc-btn {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 0;
    border-radius: 14px;
    padding: 0 16px;
    background: var(--svc-green);
    color: #fff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 950;
    cursor: pointer;
}

.svc-btn.secondary,
.svc-btn.neutral {
    color: var(--svc-text);
    background: var(--svc-panel);
    border: 1px solid var(--svc-line);
}

.svc-btn.secondary:hover,
.svc-btn.neutral:hover {
    color: var(--svc-green);
    background: var(--svc-green-soft);
}

.svc-btn.icon {
    width: 42px;
    padding: 0;
}

.svc-prof-row {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 14px;
    margin-bottom: 14px;
}

.svc-prof-chip {
    min-width: 160px;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--svc-line);
    border-radius: 17px;
    padding: 10px 12px;
    background: var(--svc-panel);
    color: var(--svc-text);
    text-decoration: none;
    box-shadow: var(--svc-shadow);
}

.svc-prof-chip.active,
.svc-prof-chip:hover {
    background: var(--svc-green-soft);
    color: var(--svc-green);
    border-color: rgba(22, 163, 74, .22);
}

.svc-avatar {
    width: 34px;
    height: 34px;
    min-width: 34px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: var(--svc-green-soft);
    color: var(--svc-green);
    font-size: 12px;
    font-weight: 950;
}

.svc-prof-chip strong,
.svc-prof-chip small {
    display: block;
}

.svc-prof-chip strong {
    color: inherit;
    font-size: 12px;
    font-weight: 950;
}

.svc-prof-chip small {
    margin-top: 2px;
    color: var(--svc-muted);
    font-size: 11px;
    font-weight: 720;
}

.svc-timeline {
    border: 1px solid var(--svc-line);
    border-radius: 18px;
    overflow: hidden;
    background: var(--svc-panel);
}

.svc-time-row {
    display: grid;
    grid-template-columns: 78px minmax(0, 1fr);
    min-height: 72px;
    border-bottom: 1px solid var(--svc-line);
}

.svc-time-row:last-child {
    border-bottom: 0;
}

.svc-time {
    padding: 12px;
    border-right: 1px solid var(--svc-line);
    background: var(--svc-panel-2);
    color: var(--svc-muted);
    font-size: 12px;
    font-weight: 950;
}

.svc-time-content {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 10px;
    min-width: 0;
}

.svc-free-slot {
    color: var(--svc-muted);
    font-size: 13px;
    font-weight: 720;
}

.svc-event-card {
    min-width: 260px;
    max-width: 100%;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 12px;
    border-radius: 15px;
    border: 1px solid var(--event-line, rgba(22, 163, 74, .20));
    background: var(--event-bg, rgba(22, 163, 74, .08));
    color: var(--svc-text);
}

.svc-event-card > i {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    color: var(--event-color, var(--svc-green));
    background: rgba(255, 255, 255, .48);
}

.svc-event-card strong,
.svc-event-card span {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.svc-event-card strong {
    color: var(--svc-text);
    font-size: 13px;
    font-weight: 950;
}

.svc-event-card span {
    margin-top: 3px;
    color: var(--svc-muted);
    font-size: 12px;
    font-weight: 720;
}

.svc-event-card em {
    color: var(--event-color, var(--svc-green));
    font-style: normal;
    font-size: 12px;
    font-weight: 950;
}

/* Service colors */
.svc-color-1 { --event-color:#16A34A; --event-bg:rgba(22,163,74,.10); --event-line:rgba(22,163,74,.28); }
.svc-color-2 { --event-color:#059669; --event-bg:rgba(5,150,105,.10); --event-line:rgba(5,150,105,.28); }
.svc-color-3 { --event-color:#DB2777; --event-bg:rgba(219,39,119,.10); --event-line:rgba(219,39,119,.24); }
.svc-color-4 { --event-color:#F59E0B; --event-bg:rgba(245,158,11,.12); --event-line:rgba(245,158,11,.28); }
.svc-color-5 { --event-color:#2563EB; --event-bg:rgba(37,99,235,.10); --event-line:rgba(37,99,235,.24); }
.svc-color-6 { --event-color:#7C3AED; --event-bg:rgba(124,58,237,.10); --event-line:rgba(124,58,237,.24); }
.svc-color-7 { --event-color:#EA580C; --event-bg:rgba(234,88,12,.10); --event-line:rgba(234,88,12,.24); }
.svc-color-8 { --event-color:#0891B2; --event-bg:rgba(8,145,178,.10); --event-line:rgba(8,145,178,.24); }

.svc-week-board,
.svc-month-board {
    display: grid;
    gap: 10px;
}

.svc-week-board {
    grid-template-columns: repeat(7, minmax(130px, 1fr));
    overflow-x: auto;
}

.svc-week-day,
.svc-month-day,
.svc-month-empty {
    min-height: 128px;
    padding: 12px;
    border: 1px solid var(--svc-line);
    border-radius: 16px;
    background: var(--svc-panel-2);
    color: var(--svc-text);
    text-decoration: none;
}

.svc-week-day.active,
.svc-month-day.active {
    border-color: rgba(22, 163, 74, .28);
    background: var(--svc-green-soft);
}

.svc-week-day strong,
.svc-week-day small,
.svc-month-day span,
.svc-month-day small {
    display: block;
}

.svc-mini-event {
    display: block;
    margin-top: 8px;
    padding: 7px 8px;
    border-radius: 10px;
    color: var(--event-color, var(--svc-green));
    background: var(--event-bg, var(--svc-green-soft));
    text-decoration: none;
    font-size: 11px;
    font-weight: 850;
}

.svc-month-board {
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.svc-month-board > b {
    text-align: center;
    color: var(--svc-muted);
    font-size: 11px;
    text-transform: uppercase;
}

.svc-month-day {
    min-height: 86px;
}

.svc-side-stack {
    display: grid;
    gap: 16px;
}

.svc-side-calendar-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.svc-side-calendar-head strong {
    color: var(--svc-text);
    font-size: 15px;
    font-weight: 950;
}

.svc-mini-calendar {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 8px;
    text-align: center;
}

.svc-mini-calendar b {
    color: var(--svc-muted);
    font-size: 11px;
    font-weight: 900;
}

.svc-mini-calendar a,
.svc-mini-calendar span {
    min-height: 32px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    color: var(--svc-text);
    text-decoration: none;
    font-size: 12px;
    font-weight: 800;
}

.svc-mini-calendar a.active,
.svc-mini-calendar a:hover {
    background: var(--svc-green);
    color: #fff;
}

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

.svc-card-head h2 {
    margin: 0;
}

.svc-card-head a {
    color: var(--svc-green);
    text-decoration: none;
    font-size: 12px;
    font-weight: 950;
}

.svc-filter-form {
    display: grid;
    gap: 10px;
}

.svc-legend {
    display: grid;
    gap: 8px;
}

.svc-legend span {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--svc-text);
    font-size: 12px;
    font-weight: 850;
}

.svc-dot {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: var(--event-color, var(--svc-green));
}

/* Lists, clients, forms */
.svc-list {
    display: grid;
    gap: 10px;
}

.svc-list-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    padding: 13px 14px;
    border: 1px solid var(--svc-line);
    border-radius: 16px;
    background: var(--svc-panel-2);
}

.svc-list-card strong,
.svc-list-card span {
    display: block;
}

.svc-list-card strong {
    color: var(--svc-text);
    font-size: 13px;
    font-weight: 950;
}

.svc-list-card span {
    margin-top: 4px;
    color: var(--svc-muted);
    font-size: 12px;
    font-weight: 720;
}

.svc-inline-form {
    display: flex;
    gap: 8px;
    align-items: center;
}

.status-pill {
    display: inline-flex;
    width: max-content;
    border-radius: 999px;
    padding: 6px 10px;
    background: var(--svc-green-soft);
    color: var(--svc-green);
    font-size: 11px;
    line-height: 1;
    font-weight: 950;
}

.status-confirmado { background: rgba(37,99,235,.10); color: #2563EB; }
.status-em_atendimento { background: rgba(245,158,11,.12); color: #B45309; }
.status-cancelado,
.status-faltou { background: rgba(239,68,68,.10); color: #DC2626; }

.svc-client-card {
    padding: 16px;
}

.svc-client-top {
    display: flex;
    gap: 12px;
    align-items: center;
    min-width: 0;
}

.svc-client-top strong,
.svc-client-top small {
    display: block;
}

.svc-client-top strong {
    color: var(--svc-text);
    font-size: 14px;
    font-weight: 950;
}

.svc-client-top small {
    margin-top: 3px;
    color: var(--svc-muted);
    font-size: 12px;
    font-weight: 720;
}

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

.svc-input {
    width: 100%;
    min-height: 44px;
    border: 1px solid var(--svc-line);
    border-radius: 14px;
    background: var(--svc-panel);
    color: var(--svc-text);
    padding: 10px 12px;
    outline: 0;
    font-weight: 760;
}

textarea.svc-input {
    min-height: 94px;
    resize: vertical;
}

.svc-input:focus {
    border-color: rgba(22, 163, 74, .45);
    box-shadow: 0 0 0 4px rgba(22, 163, 74, .10);
}

.svc-card label {
    display: grid;
    gap: 7px;
    margin-bottom: 12px;
    color: var(--svc-muted);
    font-size: 11px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .06em;
}

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

.svc-form-grid .wide {
    grid-column: 1 / -1;
}

.svc-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 8px;
}

.svc-table th {
    padding: 0 10px;
    color: var(--svc-muted);
    font-size: 11px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.svc-table td {
    padding: 12px 10px;
    border-top: 1px solid var(--svc-line);
    border-bottom: 1px solid var(--svc-line);
    background: var(--svc-panel-2);
}

.svc-table td:first-child {
    border-left: 1px solid var(--svc-line);
    border-radius: 14px 0 0 14px;
}

.svc-table td:last-child {
    border-right: 1px solid var(--svc-line);
    border-radius: 0 14px 14px 0;
}

.svc-hours-row {
    display: grid;
    grid-template-columns: 90px 1fr 1fr 120px;
    gap: 10px;
    align-items: center;
    margin-bottom: 10px;
}

.svc-chip {
    display: inline-flex;
    width: max-content;
    border-radius: 999px;
    padding: 7px 10px;
    background: var(--svc-green-soft);
    color: var(--svc-green);
    font-size: 11px;
    font-weight: 950;
    text-transform: uppercase;
}

.empty-state {
    padding: 18px;
    border: 1px dashed var(--svc-line);
    border-radius: 16px;
    background: var(--svc-panel-2);
    color: var(--svc-muted);
    text-align: center;
    font-weight: 800;
}

.muted {
    color: var(--svc-muted) !important;
}

/* Modal */
.svc-modal {
    border: 1px solid var(--svc-line);
    border-radius: 20px;
    background: var(--svc-panel);
    color: var(--svc-text);
}

.svc-modal .modal-header,
.svc-modal .modal-footer {
    border-color: var(--svc-line);
}

/* Mobile */
.svc-backdrop,
.svc-bottom-nav {
    display: none;
}

@media (max-width: 1280px) {
    .svc-agenda-board,
    .svc-grid-2 {
        grid-template-columns: 1fr;
    }

    .svc-kpi-grid,
    .svc-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .svc-week-board {
        grid-template-columns: repeat(7, minmax(160px, 1fr));
    }
}

@media (max-width: 992px) {
    body.services-body {
        padding-bottom: 88px;
    }

    .svc-app-shell {
        display: block;
    }

    .svc-sidebar {
        position: fixed;
        inset: 0 auto 0 0;
        width: min(304px, 88vw);
        max-width: 88vw;
        height: 100dvh;
        transform: translateX(-106%);
        transition: transform .22s ease;
        box-shadow: 24px 0 72px rgba(0, 0, 0, .24);
    }

    .svc-sidebar.show {
        transform: translateX(0);
    }

    .svc-backdrop.show {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 1070;
        background: rgba(2, 6, 23, .56);
    }

    .svc-topbar {
        min-height: 60px;
        grid-template-columns: auto minmax(0, 1fr) auto;
        gap: 10px;
        padding: 0 12px;
    }

    .svc-mobile-menu {
        display: grid;
    }

    .svc-search {
        display: none;
    }

    .svc-top-title strong {
        font-size: 18px;
    }

    .svc-top-title span {
        display: none;
    }

    .svc-profile-pill strong,
    .svc-profile-pill i,
    .svc-top-actions .svc-icon-button:nth-child(1) {
        display: none;
    }

    .svc-content {
        padding: 14px 12px calc(96px + env(safe-area-inset-bottom));
    }

    .svc-bottom-nav {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        position: fixed;
        left: 10px;
        right: 10px;
        bottom: calc(10px + env(safe-area-inset-bottom));
        z-index: 1050;
        padding: 8px;
        border: 1px solid var(--svc-line);
        border-radius: 24px;
        background: var(--svc-panel);
        box-shadow: var(--svc-shadow-lg);
    }

    .svc-bottom-nav a {
        min-width: 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 3px;
        border-radius: 16px;
        padding: 7px 2px;
        color: var(--svc-muted);
        text-decoration: none;
        font-size: 9px;
        line-height: 1.1;
        font-weight: 900;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .svc-bottom-nav a.active {
        color: var(--svc-green);
        background: var(--svc-green-soft);
    }
}

@media (max-width: 640px) {
    .svc-kpi-grid,
    .svc-card-grid,
    .svc-mini-grid,
    .svc-form-grid {
        grid-template-columns: 1fr;
    }

    .svc-calendar-head,
    .svc-current-date,
    .svc-calendar-actions {
        align-items: stretch;
    }

    .svc-calendar-head {
        display: grid;
    }

    .svc-view-toggle {
        width: 100%;
    }

    .svc-view-toggle a {
        min-width: 0;
        flex: 1;
    }

    .svc-event-card {
        width: 100%;
        min-width: 0;
        grid-template-columns: 34px minmax(0, 1fr);
    }

    .svc-event-card em {
        grid-column: 2;
    }

    .svc-time-row {
        grid-template-columns: 58px minmax(0, 1fr);
    }

    .svc-month-board {
        grid-template-columns: repeat(7, minmax(38px, 1fr));
    }

    .svc-month-board > b,
    .svc-month-empty {
        display: none;
    }

    .svc-month-day {
        min-height: 54px;
    }

    .svc-inline-form,
    .svc-list-card,
    .svc-hours-row {
        display: grid;
        grid-template-columns: 1fr;
    }

    .svc-btn {
        width: 100%;
    }

    .svc-table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }
}

/* V12 - blindagem de arquitetura: evita conteúdo invisível/estouro depois das correções de Serviços. */
.svc-content > .svc-page,
.svc-content > .svc-card,
.svc-card,
.svc-calendar-card,
.svc-kpi,
.svc-client-card,
.svc-list-card,
.svc-time-content {
    min-width: 0;
}

.svc-content > .svc-page {
    min-height: calc(100vh - 140px);
}

.svc-card-grid > .empty-state {
    grid-column: 1 / -1;
}

/* BVMS Services v14 consolidation helpers */
.svc-empty-state{display:grid;place-items:center;gap:10px;padding:28px;border:1px dashed var(--svc-line);border-radius:18px;background:var(--svc-panel-2);text-align:center;color:var(--svc-muted)}
.svc-empty-state strong{display:block;color:var(--svc-text);font-size:16px;font-weight:950}.svc-empty-state p{margin:0;max-width:420px;color:var(--svc-muted);font-size:13px;line-height:1.5;font-weight:720}.svc-empty-state .svc-btn{margin-top:4px;width:auto}.svc-required-alert{border:1px solid rgba(245,158,11,.25);background:rgba(245,158,11,.10);color:#a16207;border-radius:16px;padding:14px 16px;font-weight:820}.svc-data-warning{border:1px solid rgba(37,99,235,.18);background:rgba(37,99,235,.08);color:#1d4ed8;border-radius:16px;padding:14px 16px;font-weight:800}.svc-tabless-card{overflow:hidden}.svc-table-wrap{width:100%;overflow-x:auto}.svc-app-shell *{box-sizing:border-box}.svc-actions a,.svc-actions button{white-space:nowrap}.svc-card h3{font-size:16px;font-weight:950;letter-spacing:-.03em;margin:0 0 10px;color:var(--svc-text)}.svc-meta-line{display:flex;gap:10px;flex-wrap:wrap;color:var(--svc-muted);font-size:12px;font-weight:780}.svc-meta-line span{display:inline-flex;gap:6px;align-items:center}.svc-modal label{display:grid;gap:7px;margin-bottom:12px;color:var(--svc-muted);font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}.svc-modal .btn-close{filter:none}.theme-dark .svc-alert.danger{color:#fecaca}.theme-dark .svc-alert.success{color:#bbf7d0}.theme-dark .svc-required-alert{color:#fde68a}.theme-dark .svc-data-warning{color:#bfdbfe}
@media(max-width:640px){.svc-empty-state{padding:22px 14px}.svc-empty-state .svc-btn{width:100%}.svc-actions a,.svc-actions button{width:100%}.svc-current-date strong{width:100%;margin-left:0}.svc-calendar-actions{width:100%}.svc-prof-row{padding-bottom:8px}}


/* Serviços Beta Operacional V16 */
.svc-alert-card {
    border: 1px solid rgba(245, 158, 11, .28);
    border-radius: 20px;
    padding: 18px 20px;
    background: rgba(245, 158, 11, .10);
    color: #92400E;
    box-shadow: var(--svc-shadow);
}
.svc-alert-card strong { display:block; font-size:15px; font-weight:950; margin-bottom:6px; }
.svc-alert-card p { margin:0; font-size:13px; font-weight:760; line-height:1.5; }

.svc-onboarding {
    display:grid;
    grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);
    gap:18px;
    align-items:start;
    padding:22px;
    border:1px solid rgba(22,163,74,.20);
    border-radius:24px;
    background:var(--svc-panel);
    box-shadow:var(--svc-shadow);
}
.svc-onboarding h2 {
    margin:12px 0 8px;
    color:var(--svc-text);
    font-size:24px;
    line-height:1.1;
    font-weight:950;
    letter-spacing:-.04em;
}
.svc-onboarding p {
    margin:0;
    color:var(--svc-muted);
    font-size:13px;
    line-height:1.55;
    font-weight:760;
}
.svc-onboarding-steps {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:10px;
}
.svc-onboarding-steps a {
    display:flex;
    align-items:flex-start;
    gap:10px;
    min-height:92px;
    padding:13px;
    border:1px solid var(--svc-line);
    border-radius:18px;
    background:var(--svc-panel-2);
    color:var(--svc-text);
    text-decoration:none;
}
.svc-onboarding-steps a b {
    width:24px;
    height:24px;
    min-width:24px;
    display:grid;
    place-items:center;
    border-radius:999px;
    background:rgba(100,116,139,.12);
    color:var(--svc-muted);
    font-weight:950;
}
.svc-onboarding-steps a.done {
    border-color:rgba(22,163,74,.25);
    background:var(--svc-green-soft);
}
.svc-onboarding-steps a.done b {
    background:var(--svc-green);
    color:#fff;
}
.svc-onboarding-steps strong,
.svc-onboarding-steps small {
    display:block;
}
.svc-onboarding-steps strong {
    font-size:12px;
    font-weight:950;
}
.svc-onboarding-steps small {
    margin-top:4px;
    color:var(--svc-muted);
    font-size:11px;
    line-height:1.35;
    font-weight:720;
}

.svc-inline-warning {
    margin-bottom:14px;
    padding:13px 14px;
    border-radius:16px;
    border:1px solid rgba(245,158,11,.24);
    background:rgba(245,158,11,.10);
    color:#92400E;
    font-size:13px;
    font-weight:850;
}
.svc-event-actions {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px;
    margin-top:10px;
}
.svc-action-form { margin:0; display:inline-flex; }
.svc-link-button {
    min-height:28px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--svc-line);
    border-radius:999px;
    background:var(--svc-panel);
    color:var(--svc-text);
    padding:0 10px;
    text-decoration:none;
    font-size:11px;
    line-height:1;
    font-weight:900;
    cursor:pointer;
}
.svc-link-button:hover {
    color:var(--svc-green);
    border-color:rgba(22,163,74,.25);
    background:var(--svc-green-soft);
}
.svc-list-actions {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    flex-wrap:wrap;
}
.svc-edit-details {
    margin-top:12px;
    border-top:1px solid var(--svc-line);
    padding-top:12px;
}
.svc-edit-details summary {
    cursor:pointer;
    color:var(--svc-green);
    font-size:12px;
    font-weight:950;
}
.svc-edit-details form {
    display:grid;
    gap:10px;
    margin-top:12px;
}
.svc-edit-details label {
    margin-bottom:0;
}
.svc-inline-form {
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}
.svc-inline-form .svc-input {
    min-width:150px;
    max-width:190px;
}
.svc-empty-state {
    grid-column:1/-1;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
    padding:18px;
    border:1px dashed var(--svc-line);
    border-radius:18px;
    background:var(--svc-panel-2);
    color:var(--svc-muted);
}
.svc-empty-state strong {
    color:var(--svc-text);
    font-size:15px;
    font-weight:950;
}
.svc-empty-state p {
    margin:0;
    color:var(--svc-muted);
    font-size:13px;
    line-height:1.5;
    font-weight:720;
}
.svc-empty-state small {
    display:block;
    padding:8px 10px;
    border-radius:12px;
    background:var(--svc-panel);
    color:var(--svc-muted);
    font-size:12px;
    font-weight:760;
}
.svc-client-card h3 {
    margin:10px 0 6px;
    color:var(--svc-text);
    font-size:16px;
    font-weight:950;
}
.svc-client-card p {
    margin:0 0 12px;
    color:var(--svc-muted);
    font-size:13px;
    font-weight:740;
}
.svc-list-card small {
    display:block;
    margin-top:4px;
    color:var(--svc-muted);
    font-size:12px;
    font-weight:720;
}
.svc-modal .svc-input[disabled] {
    opacity:.8;
    background:var(--svc-panel-2);
}
html.theme-dark .svc-alert-card,
html.theme-dark .svc-inline-warning {
    color:#FCD34D;
}
html.theme-dark .svc-link-button,
html.theme-dark .svc-empty-state small {
    background:var(--svc-panel);
}

@media (max-width:1280px) {
    .svc-onboarding { grid-template-columns:1fr; }
    .svc-onboarding-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
    .svc-onboarding { padding:16px; border-radius:20px; }
    .svc-onboarding-steps { grid-template-columns:1fr; }
    .svc-list-actions,
    .svc-inline-form {
        justify-content:flex-start;
        width:100%;
    }
    .svc-inline-form .svc-input,
    .svc-inline-form .svc-btn {
        max-width:none;
        width:100%;
    }
    .svc-event-actions {
        align-items:flex-start;
    }
}

/* Dashboard Serviços V19 - painel operacional em tempo real */
.svc-dashboard-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 22px;
    border: 1px solid var(--svc-line);
    border-radius: 22px;
    background: var(--svc-panel);
    box-shadow: var(--svc-shadow);
}

.svc-dashboard-hero h2 {
    margin: 10px 0 8px;
    color: var(--svc-text);
    font-size: clamp(25px, 3vw, 38px);
    line-height: 1;
    font-weight: 950;
    letter-spacing: -.055em;
}

.svc-dashboard-hero p {
    max-width: 820px;
    margin: 0;
    color: var(--svc-muted);
    font-size: 14px;
    line-height: 1.6;
    font-weight: 760;
}

.svc-dashboard-hero p strong {
    color: var(--svc-green);
    font-weight: 950;
}

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

.svc-dashboard-section {
    display: grid;
    gap: 12px;
}

.svc-section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 34px;
}

.svc-section-title span {
    display: inline-flex;
    align-items: center;
    width: max-content;
    border-radius: 999px;
    padding: 7px 11px;
    background: var(--svc-green-soft);
    color: var(--svc-green);
    font-size: 11px;
    line-height: 1;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .07em;
}

.svc-section-title h2 {
    margin: 0 auto 0 0;
    color: var(--svc-text);
    font-size: 18px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: -.035em;
}

.svc-kpi-grid-compact {
    grid-template-columns: repeat(4, minmax(190px, 1fr));
}

.svc-kpi-rich {
    min-height: 168px;
    gap: 10px;
}

.svc-kpi-rich strong {
    margin-top: 2px;
}

.svc-kpi-details {
    display: grid;
    gap: 6px;
    margin-top: 4px;
}

.svc-kpi-details b,
.svc-progress-label {
    color: var(--svc-muted);
    font-size: 11px;
    line-height: 1.2;
    font-weight: 850;
}

.svc-progress {
    height: 9px;
    border-radius: 999px;
    overflow: hidden;
    background: var(--svc-panel-2);
    border: 1px solid var(--svc-line);
}

.svc-progress i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--svc-green);
}

.svc-dashboard-grid-main {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(270px, .65fr);
    gap: 18px;
    align-items: stretch;
}

.svc-dashboard-grid-3 {
    display: grid;
    grid-template-columns: .85fr 1.15fr .85fr;
    gap: 18px;
    align-items: stretch;
}

.svc-dashboard-grid-2-even {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    align-items: start;
}

.svc-next-card {
    position: relative;
    overflow: hidden;
}

.svc-next-card::after {
    content: "";
    position: absolute;
    right: -52px;
    top: -62px;
    width: 170px;
    height: 170px;
    border-radius: 999px;
    background: var(--svc-green-soft);
    pointer-events: none;
}

.svc-next-card > * {
    position: relative;
    z-index: 1;
}

.svc-next-time {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 96px;
    min-height: 58px;
    border-radius: 18px;
    background: var(--svc-green);
    color: #fff;
    font-size: 26px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: -.055em;
    box-shadow: 0 14px 30px rgba(22, 163, 74, .18);
}

.svc-next-card h3 {
    margin: 16px 0 4px;
    color: var(--svc-text);
    font-size: 24px;
    line-height: 1.1;
    font-weight: 950;
    letter-spacing: -.04em;
}

.svc-next-card p {
    margin: 0 0 12px;
    color: var(--svc-muted);
    font-weight: 800;
}

.svc-next-card dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 0 0 14px;
}

.svc-next-card dl div {
    padding: 11px;
    border: 1px solid var(--svc-line);
    border-radius: 15px;
    background: var(--svc-panel-2);
}

.svc-next-card dt {
    color: var(--svc-muted);
    font-size: 10px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.svc-next-card dd {
    margin: 5px 0 0;
    color: var(--svc-text);
    font-size: 13px;
    font-weight: 950;
}

.svc-occupation-card {
    display: grid;
    align-content: start;
    gap: 16px;
}

.svc-occupation-ring {
    --value: 0;
    width: 156px;
    height: 156px;
    margin: 4px auto;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: conic-gradient(var(--svc-green) calc(var(--value) * 1%), var(--svc-panel-2) 0);
    position: relative;
}

.svc-occupation-ring::after {
    content: "";
    position: absolute;
    inset: 15px;
    border-radius: 50%;
    background: var(--svc-panel);
    border: 1px solid var(--svc-line);
}

.svc-occupation-ring strong,
.svc-occupation-ring span {
    position: relative;
    z-index: 1;
    display: block;
    text-align: center;
}

.svc-occupation-ring strong {
    color: var(--svc-text);
    font-size: 30px;
    line-height: 1;
    font-weight: 950;
}

.svc-occupation-ring span {
    margin-top: 4px;
    color: var(--svc-muted);
    font-size: 11px;
    font-weight: 850;
}

.svc-free-slots {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}

.svc-free-slots span {
    width: 100%;
    color: var(--svc-muted);
    font-size: 11px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.svc-free-slots b {
    padding: 7px 9px;
    border-radius: 999px;
    background: var(--svc-green-soft);
    color: var(--svc-green);
    font-size: 11px;
    font-weight: 950;
}

.svc-finance-card,
.svc-receipts-card,
.svc-chart-card {
    min-height: 260px;
}

.svc-money-stack {
    padding: 15px;
    border-radius: 18px;
    background: var(--svc-green-soft);
    border: 1px solid rgba(22, 163, 74, .18);
    margin-bottom: 12px;
}

.svc-money-stack span,
.svc-money-row span,
.svc-muted-label {
    color: var(--svc-muted);
    font-size: 11px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.svc-money-stack strong {
    display: block;
    margin-top: 8px;
    color: var(--svc-green);
    font-size: 30px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: -.05em;
}

.svc-money-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--svc-line);
}

.svc-money-row strong {
    color: var(--svc-text);
    font-size: 14px;
    font-weight: 950;
}

.svc-finance-card .svc-btn {
    margin-top: 14px;
}

.svc-week-chart {
    height: 180px;
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 10px;
    align-items: end;
    padding-top: 14px;
}

.svc-week-col {
    height: 100%;
    min-width: 0;
    display: grid;
    grid-template-rows: 28px minmax(20px, 1fr) 18px 14px;
    align-items: end;
    text-align: center;
    gap: 5px;
}

.svc-week-col span {
    color: var(--svc-muted);
    font-size: 10px;
    font-weight: 850;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.svc-week-col i {
    display: block;
    width: 100%;
    min-height: 8px;
    border-radius: 999px 999px 6px 6px;
    background: var(--svc-green);
}

.svc-week-col b,
.svc-week-col small {
    color: var(--svc-text);
    font-size: 11px;
    font-weight: 950;
}

.svc-week-col small {
    color: var(--svc-muted);
}

.svc-list-compact {
    gap: 8px;
}

.svc-list-compact .svc-list-card {
    padding: 11px 12px;
}

.svc-ranking-list {
    display: grid;
    gap: 10px;
}

.svc-ranking-item {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 13px;
    border: 1px solid var(--svc-line);
    border-radius: 16px;
    background: var(--svc-panel-2);
}

.svc-ranking-item > b {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: var(--svc-green-soft);
    color: var(--svc-green);
    font-size: 12px;
    font-weight: 950;
}

.svc-ranking-item strong,
.svc-ranking-item span,
.svc-ranking-item em {
    display: block;
}

.svc-ranking-item strong {
    color: var(--svc-text);
    font-size: 13px;
    font-weight: 950;
}

.svc-ranking-item span {
    margin-top: 3px;
    color: var(--svc-muted);
    font-size: 11px;
    font-weight: 760;
}

.svc-ranking-item em {
    color: var(--svc-text);
    font-style: normal;
    font-size: 13px;
    font-weight: 950;
}

.svc-day-agenda-card {
    padding-bottom: 10px;
}

.svc-day-agenda-list {
    display: grid;
    border: 1px solid var(--svc-line);
    border-radius: 18px;
    overflow: hidden;
}

.svc-day-row {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    min-height: 58px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--svc-line);
    background: var(--svc-panel);
}

.svc-day-row:last-child {
    border-bottom: 0;
}

.svc-day-row.active {
    background: var(--svc-green-soft);
}

.svc-day-row time {
    color: var(--svc-muted);
    font-size: 12px;
    font-weight: 950;
}

.svc-day-row strong,
.svc-day-row span {
    display: block;
}

.svc-day-row strong {
    color: var(--svc-text);
    font-size: 13px;
    font-weight: 950;
}

.svc-day-row span {
    margin-top: 3px;
    color: var(--svc-muted);
    font-size: 12px;
    font-weight: 760;
}

.svc-day-row.free a {
    color: var(--svc-green);
    text-decoration: none;
    font-size: 12px;
    font-weight: 950;
}

.svc-alert-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(180px, 1fr));
    gap: 12px;
}

.svc-alert-item {
    min-height: 88px;
    padding: 14px;
    border: 1px solid var(--svc-line);
    border-radius: 16px;
    background: var(--svc-panel-2);
}

.svc-alert-item strong,
.svc-alert-item span {
    display: block;
}

.svc-alert-item strong {
    color: var(--svc-text);
    font-size: 13px;
    font-weight: 950;
    line-height: 1.25;
}

.svc-alert-item span {
    margin-top: 7px;
    color: var(--svc-muted);
    font-size: 12px;
    font-weight: 760;
    line-height: 1.35;
}

.svc-alert-item.stock { border-color: rgba(249, 115, 22, .25); background: rgba(249, 115, 22, .08); }
.svc-alert-item.agenda { border-color: rgba(37, 99, 235, .22); background: rgba(37, 99, 235, .08); }
.svc-alert-item.commission { border-color: rgba(124, 58, 237, .22); background: rgba(124, 58, 237, .08); }
.svc-alert-item.client { border-color: rgba(236, 72, 153, .20); background: rgba(236, 72, 153, .07); }
.svc-alert-item.ok { border-color: rgba(22, 163, 74, .22); background: var(--svc-green-soft); }

@media (max-width: 1280px) {
    .svc-kpi-grid-compact,
    .svc-dashboard-grid-3,
    .svc-alert-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .svc-dashboard-grid-main,
    .svc-dashboard-grid-2-even {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .svc-dashboard-hero {
        display: grid;
        gap: 14px;
        padding: 18px;
    }

    .svc-hero-actions,
    .svc-next-card dl,
    .svc-kpi-grid-compact,
    .svc-dashboard-grid-3,
    .svc-alert-grid {
        grid-template-columns: 1fr;
    }

    .svc-hero-actions .svc-btn,
    .svc-actions .svc-btn,
    .svc-actions .svc-link-button {
        width: 100%;
    }

    .svc-dashboard-section.svc-dashboard-operation { order: 1; }
    .svc-dashboard-section:first-of-type { order: 2; }
    .svc-dashboard-finance { order: 4; }
    .svc-dashboard-team { order: 5; }
    .svc-dashboard-agenda { order: 3; }
    .svc-dashboard-alerts { order: 6; }

    .svc-day-row {
        grid-template-columns: 58px minmax(0, 1fr);
        gap: 10px;
        align-items: start;
    }

    .svc-day-row > .status-pill,
    .svc-day-row.free a {
        grid-column: 2;
        width: max-content;
    }

    .svc-week-chart {
        height: 150px;
        gap: 6px;
    }

    .svc-next-time {
        width: 100%;
    }
}

/* Serviços V20 - Responsividade e sidebar padronizada no estilo Estoque */
:root{
    --bvms-sidebar-width:276px;
    --bvms-sidebar-collapsed-width:76px;
    --bvms-sidebar-header-h:58px;
    --bvms-sidebar-logo-size:40px;
    --bvms-sidebar-toggle-size:42px;
    --bvms-env-switch-h:48px;
    --bvms-env-switch-item-h:36px;
    --bvms-content-max:1440px;
}

html.theme-dark{
    --svc-bg:#0b111c;
    --svc-panel:#111827;
    --svc-panel-2:#151f31;
    --svc-panel-3:#0f2418;
    --svc-text:#f8fafc;
    --svc-muted:#9aa7bb;
    --svc-line:#273244;
    --svc-shadow:0 16px 40px rgba(0,0,0,.28);
    --svc-shadow-lg:0 18px 44px rgba(0,0,0,.35);
}

body.services-body{
    font-size:14px;
    background:var(--svc-bg)!important;
}

.svc-app-shell{
    grid-template-columns:var(--bvms-sidebar-width) minmax(0,1fr)!important;
    min-width:0!important;
}

.svc-sidebar{
    width:var(--bvms-sidebar-width)!important;
    min-width:var(--bvms-sidebar-width)!important;
    padding:.85rem!important;
    gap:.85rem!important;
    background:var(--svc-panel)!important;
    box-shadow:none!important;
    overflow:hidden!important;
}

.svc-sidebar-brand-row{
    height:var(--bvms-sidebar-header-h)!important;
    min-height:var(--bvms-sidebar-header-h)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    margin:0 0 14px 0!important;
}

.svc-brand{
    height:48px!important;
    min-height:48px!important;
    display:flex!important;
    align-items:center!important;
    gap:12px!important;
    padding:0 4px!important;
    min-width:0!important;
    flex:1 1 auto!important;
    border-radius:16px!important;
}

.svc-brand-logo{
    width:var(--bvms-sidebar-logo-size)!important;
    height:var(--bvms-sidebar-logo-size)!important;
    min-width:var(--bvms-sidebar-logo-size)!important;
    flex:0 0 var(--bvms-sidebar-logo-size)!important;
    border-radius:14px!important;
}

.svc-brand-copy{
    min-width:0!important;
    overflow:hidden!important;
}

.svc-brand-copy strong,
.svc-brand-copy small{
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
}

.svc-sidebar-collapse,
.svc-mobile-menu,
.svc-icon-button{
    width:var(--bvms-sidebar-toggle-size)!important;
    height:var(--bvms-sidebar-toggle-size)!important;
    min-width:var(--bvms-sidebar-toggle-size)!important;
    flex:0 0 var(--bvms-sidebar-toggle-size)!important;
    border-radius:14px!important;
    display:grid!important;
    place-items:center!important;
    padding:0!important;
}

.svc-env-switch{
    width:100%!important;
    height:var(--bvms-env-switch-h)!important;
    min-height:var(--bvms-env-switch-h)!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    align-items:center!important;
    gap:6px!important;
    padding:5px!important;
    margin:0 0 16px 0!important;
    border-radius:16px!important;
}

.svc-env-switch a{
    width:100%!important;
    min-width:0!important;
    height:var(--bvms-env-switch-item-h)!important;
    min-height:var(--bvms-env-switch-item-h)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    border-radius:13px!important;
    font-size:.78rem!important;
    padding:.48rem .22rem!important;
    font-weight:850!important;
}

.svc-nav-scroll{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow:auto!important;
    padding-right:.12rem!important;
}

.svc-nav-group{
    gap:.18rem!important;
    margin-bottom:.9rem!important;
}

.svc-nav-heading{
    padding:0 12px 4px!important;
    font-size:.68rem!important;
    letter-spacing:.08em!important;
}

.svc-nav-group a{
    min-height:44px!important;
    padding:.58rem .66rem!important;
    border-radius:14px!important;
    gap:.62rem!important;
    font-size:.9rem!important;
    font-weight:790!important;
    color:var(--svc-muted)!important;
}

.svc-nav-group a i{
    width:18px!important;
    min-width:18px!important;
    font-size:1.02rem!important;
}

.svc-nav-group a:hover,
.svc-nav-group a.active{
    background:var(--svc-green-soft)!important;
    color:var(--svc-green)!important;
    transform:translateX(2px);
}

.svc-sidebar-card{
    margin-top:auto!important;
    border-radius:16px!important;
    padding:.72rem!important;
    font-size:.78rem!important;
    background:var(--svc-panel-2)!important;
}

.svc-sidebar-profile{
    border-radius:16px!important;
    padding:.72rem!important;
    background:var(--svc-panel)!important;
}

/* Sidebar recolhida no mesmo padrão do Estoque */
@media(min-width:993px){
    body.svc-sidebar-collapsed .svc-app-shell{
        grid-template-columns:var(--bvms-sidebar-collapsed-width) minmax(0,1fr)!important;
    }
    body.svc-sidebar-collapsed .svc-sidebar{
        width:var(--bvms-sidebar-collapsed-width)!important;
        min-width:var(--bvms-sidebar-collapsed-width)!important;
        padding:14px 10px!important;
        align-items:center!important;
    }
    body.svc-sidebar-collapsed .svc-brand,
    body.svc-sidebar-collapsed .svc-env-switch,
    body.svc-sidebar-collapsed .svc-nav-heading,
    body.svc-sidebar-collapsed .svc-nav-group a span,
    body.svc-sidebar-collapsed .svc-sidebar-card,
    body.svc-sidebar-collapsed .svc-sidebar-profile{
        display:none!important;
    }
    body.svc-sidebar-collapsed .svc-sidebar-brand-row{
        justify-content:center!important;
        width:100%!important;
        margin:0 0 8px 0!important;
    }
    body.svc-sidebar-collapsed .svc-sidebar-collapse{
        display:grid!important;
        margin:0 auto!important;
    }
    body.svc-sidebar-collapsed .svc-nav-scroll{
        width:100%!important;
    }
    body.svc-sidebar-collapsed .svc-nav-group{
        width:100%!important;
        align-items:center!important;
        gap:10px!important;
        margin-bottom:10px!important;
    }
    body.svc-sidebar-collapsed .svc-nav-group a{
        width:48px!important;
        height:48px!important;
        min-height:48px!important;
        padding:0!important;
        justify-content:center!important;
        border-radius:16px!important;
        transform:none!important;
    }
    body.svc-sidebar-collapsed .svc-nav-group a i{
        width:auto!important;
        min-width:0!important;
        margin:0!important;
        font-size:18px!important;
    }
}

/* Conteúdo e topbar padronizados para evitar estouro lateral */
.svc-main{
    min-width:0!important;
    overflow-x:hidden!important;
}

.svc-topbar{
    min-height:64px!important;
    height:64px!important;
    grid-template-columns:auto minmax(180px,1fr) minmax(260px,520px) auto!important;
    padding:0 1.05rem!important;
    gap:.8rem!important;
    background:rgba(247,248,250,.96)!important;
}

html.theme-dark .svc-topbar{
    background:rgba(11,17,28,.96)!important;
}

.svc-top-title strong{
    font-size:1.22rem!important;
}

.svc-top-title span{
    margin-top:4px!important;
    font-size:.78rem!important;
}

.svc-search{
    min-height:42px!important;
    border-radius:16px!important;
}

.svc-content{
    width:100%!important;
    max-width:var(--bvms-content-max)!important;
    margin:0 auto!important;
    padding:1rem!important;
    overflow-x:hidden!important;
}

.svc-page{
    width:100%!important;
    max-width:var(--bvms-content-max)!important;
    gap:.9rem!important;
    min-width:0!important;
}

.svc-card,
.svc-calendar-card,
.svc-kpi,
.svc-client-card,
.svc-list-card,
.svc-dashboard-hero{
    border-radius:18px!important;
}

.svc-kpi{
    min-height:112px!important;
    padding:.9rem!important;
}

.svc-kpi strong{
    font-size:1.65rem!important;
}

.svc-kpi-rich{
    min-height:142px!important;
}

.svc-dashboard-hero{
    padding:1rem!important;
}

.svc-dashboard-hero h2{
    font-size:clamp(1.35rem,2.4vw,2rem)!important;
}

.svc-dashboard-grid-main,
.svc-dashboard-grid-2-even,
.svc-grid-2{
    gap:.9rem!important;
}

.svc-dashboard-grid-3{
    gap:.9rem!important;
}

.svc-card,
.svc-calendar-card{
    padding:.95rem!important;
}

/* Breakpoints mais agressivos para não cortar cards quando a sidebar estiver aberta */
@media(max-width:1500px){
    .svc-dashboard-grid-3{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
    .svc-dashboard-grid-main,
    .svc-dashboard-grid-2-even,
    .svc-agenda-board,
    .svc-grid-2{
        grid-template-columns:1fr!important;
    }
}

@media(max-width:1240px){
    .svc-kpi-grid,
    .svc-kpi-grid-compact,
    .svc-card-grid,
    .svc-alert-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
    .svc-dashboard-grid-3{
        grid-template-columns:1fr!important;
    }
    .svc-next-card dl{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
}

/* Mobile igual ao Estoque: sidebar drawer, conteúdo compacto e bottom nav */
@media(max-width:992px){
    body.services-body{
        padding-bottom:88px!important;
    }
    .svc-app-shell{
        display:block!important;
    }
    .svc-sidebar{
        position:fixed!important;
        left:-292px!important;
        top:0!important;
        bottom:0!important;
        width:var(--bvms-sidebar-width)!important;
        min-width:var(--bvms-sidebar-width)!important;
        max-width:88vw!important;
        height:100dvh!important;
        padding:.85rem!important;
        transform:none!important;
        transition:left .2s ease!important;
        box-shadow:24px 0 72px rgba(0,0,0,.24)!important;
        align-items:stretch!important;
    }
    .svc-sidebar.show{
        left:0!important;
        transform:none!important;
    }
    .svc-sidebar-brand-row{
        width:100%!important;
        justify-content:space-between!important;
    }
    .svc-brand,
    .svc-env-switch,
    .svc-nav-group a span,
    .svc-sidebar-card,
    .svc-sidebar-profile{
        display:flex!important;
    }
    .svc-env-switch{
        display:grid!important;
    }
    .svc-nav-heading{
        display:block!important;
    }
    .svc-nav-group a{
        width:auto!important;
        height:auto!important;
        justify-content:flex-start!important;
        padding:.58rem .66rem!important;
    }
    .svc-backdrop.show{
        display:block!important;
        position:fixed!important;
        inset:0!important;
        background:rgba(15,23,42,.45)!important;
        z-index:1035!important;
    }
    .svc-topbar{
        height:58px!important;
        min-height:58px!important;
        grid-template-columns:auto minmax(0,1fr) auto!important;
        padding:0 .72rem!important;
        gap:.55rem!important;
    }
    .svc-mobile-menu{
        display:grid!important;
    }
    .svc-search{
        display:none!important;
    }
    .svc-top-title strong{
        font-size:1.05rem!important;
    }
    .svc-top-title span{
        display:none!important;
    }
    .svc-top-actions .svc-icon-button:first-child{
        display:none!important;
    }
    .svc-profile-pill strong,
    .svc-profile-pill i{
        display:none!important;
    }
    .svc-content{
        max-width:100%!important;
        padding:.72rem!important;
        padding-bottom:5.2rem!important;
    }
    .svc-dashboard-hero{
        display:grid!important;
        gap:.8rem!important;
        padding:.85rem!important;
    }
    .svc-hero-actions{
        justify-content:flex-start!important;
    }
    .svc-kpi-grid,
    .svc-kpi-grid-compact,
    .svc-card-grid,
    .svc-dashboard-grid-3,
    .svc-alert-grid,
    .svc-mini-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:.55rem!important;
    }
    .svc-card,
    .svc-calendar-card{
        padding:.78rem!important;
        border-radius:17px!important;
    }
    .svc-kpi{
        min-height:92px!important;
        padding:.68rem!important;
        border-radius:16px!important;
    }
    .svc-kpi small,
    .svc-kpi span,
    .svc-kpi-details b,
    .svc-progress-label{
        font-size:.62rem!important;
    }
    .svc-kpi strong{
        font-size:1.1rem!important;
    }
    .svc-kpi-details{
        gap:4px!important;
    }
    .svc-bottom-nav{
        display:grid!important;
        position:fixed!important;
        left:50%!important;
        right:auto!important;
        transform:translateX(-50%)!important;
        bottom:10px!important;
        width:min(560px,calc(100vw - 18px))!important;
        grid-template-columns:repeat(5,1fr)!important;
        gap:.22rem!important;
        background:var(--svc-panel)!important;
        border:1px solid var(--svc-line)!important;
        border-radius:20px!important;
        padding:.38rem!important;
        z-index:1050!important;
        box-shadow:0 18px 44px rgba(0,0,0,.20)!important;
    }
    .svc-bottom-nav a{
        text-decoration:none!important;
        color:var(--svc-muted)!important;
        font-size:.68rem!important;
        font-weight:850!important;
        text-align:center!important;
        border-radius:14px!important;
        padding:.36rem .15rem!important;
    }
    .svc-bottom-nav a.active{
        background:var(--svc-green-soft)!important;
        color:var(--svc-green)!important;
    }
    .svc-bottom-nav i{
        display:block!important;
        font-size:.98rem!important;
        margin-bottom:.04rem!important;
    }
}

@media(max-width:700px){
    body.services-body{
        font-size:13px!important;
    }
    .svc-content{
        padding:.58rem!important;
        padding-bottom:5.1rem!important;
    }
    .svc-kpi-grid,
    .svc-kpi-grid-compact,
    .svc-card-grid,
    .svc-dashboard-grid-3,
    .svc-dashboard-grid-main,
    .svc-dashboard-grid-2-even,
    .svc-alert-grid,
    .svc-mini-grid,
    .svc-next-card dl,
    .svc-form-grid{
        grid-template-columns:1fr!important;
    }
    .svc-dashboard-section.svc-dashboard-operation{order:1!important;}
    .svc-dashboard-section:first-of-type{order:2!important;}
    .svc-dashboard-agenda{order:3!important;}
    .svc-dashboard-finance{order:4!important;}
    .svc-dashboard-team{order:5!important;}
    .svc-dashboard-alerts{order:6!important;}
    .svc-top-actions .svc-icon-button:nth-child(2){
        display:none!important;
    }
    .svc-profile-pill{
        padding:4px!important;
    }
    .svc-icon-button{
        width:38px!important;
        height:38px!important;
        min-width:38px!important;
    }
    .svc-day-row,
    .svc-list-card,
    .svc-ranking-item,
    .svc-money-row,
    .svc-inline-form,
    .svc-hours-row{
        display:grid!important;
        grid-template-columns:1fr!important;
        align-items:start!important;
    }
    .svc-day-row time{
        font-size:.72rem!important;
    }
    .svc-day-row > .status-pill,
    .svc-day-row.free a{
        grid-column:auto!important;
        width:max-content!important;
    }
    .svc-week-chart{
        height:150px!important;
        gap:6px!important;
    }
    .svc-week-col span,
    .svc-week-col small{
        font-size:.58rem!important;
    }
    .svc-actions .svc-btn,
    .svc-actions .svc-link-button,
    .svc-hero-actions .svc-btn,
    .svc-btn{
        width:100%;
    }
    .svc-table{
        display:block!important;
        width:100%!important;
        overflow-x:auto!important;
        white-space:nowrap!important;
    }
}

@media(max-width:420px){
    .svc-kpi{
        min-height:78px!important;
    }
    .svc-kpi small{
        letter-spacing:.04em!important;
    }
    .svc-dashboard-hero h2{
        font-size:1.25rem!important;
    }
    .svc-section-title{
        display:grid!important;
        justify-content:start!important;
    }
    .svc-section-title h2{
        margin:0!important;
    }
    .svc-bottom-nav a span{
        max-width:100%;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
    }
}

/* V22 - agenda semanal estilo Google + popups compactos para clientes/serviços/profissionais */
.svc-google-week{
    display:grid;
    gap:14px;
}
.svc-google-week-head{
    display:grid;
    grid-template-columns:120px repeat(7,minmax(110px,1fr));
    gap:10px;
    align-items:stretch;
}
.svc-google-week-corner,
.svc-google-week-day,
.svc-summary-item,
.svc-entity-card,
.svc-sheet-item{
    border:1px solid var(--svc-line);
    background:var(--svc-panel-2);
    border-radius:18px;
}
.svc-google-week-corner{
    padding:14px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:4px;
}
.svc-google-week-corner strong{
    font-size:13px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--svc-muted);
}
.svc-google-week-corner span{
    font-size:12px;
    color:var(--svc-text);
    font-weight:800;
}
.svc-google-week-day{
    padding:12px 10px;
    text-decoration:none;
    color:var(--svc-text);
    text-align:center;
    display:grid;
    gap:4px;
}
.svc-google-week-day span{
    font-size:11px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--svc-muted);
    font-weight:900;
}
.svc-google-week-day strong{
    width:42px;
    height:42px;
    margin:0 auto;
    display:grid;
    place-items:center;
    border-radius:999px;
    font-size:18px;
    font-weight:950;
}
.svc-google-week-day small{
    font-size:11px;
    color:var(--svc-muted);
    font-weight:760;
}
.svc-google-week-day.active{
    border-color:rgba(37,99,235,.22);
    background:rgba(37,99,235,.10);
}
.svc-google-week-day.active strong{
    background:#2563EB;
    color:#fff;
}
.svc-google-week-grid{
    display:grid;
    grid-template-columns:120px repeat(7,minmax(110px,1fr));
    gap:10px;
    align-items:start;
}
.svc-google-week-hours{
    display:grid;
    gap:0;
}
.svc-google-week-hours span,
.svc-google-week-cell{
    min-height:76px;
}
.svc-google-week-hours span{
    display:flex;
    align-items:flex-start;
    justify-content:flex-end;
    padding:8px 10px 0 0;
    color:var(--svc-muted);
    font-size:12px;
    font-weight:900;
    border-top:1px solid transparent;
}
.svc-google-week-column{
    display:grid;
    gap:0;
    border-left:1px solid var(--svc-line);
}
.svc-google-week-column.active{
    background:rgba(37,99,235,.03);
    border-radius:18px;
}
.svc-google-week-cell{
    padding:6px;
    border-top:1px solid var(--svc-line);
    display:flex;
    flex-direction:column;
    gap:6px;
}
.svc-google-event{
    display:grid;
    gap:4px;
    padding:10px;
    border-radius:14px;
    text-decoration:none;
    color:var(--svc-text);
    border:1px solid var(--event-line, rgba(22,163,74,.24));
    background:var(--event-bg, rgba(22,163,74,.08));
    box-shadow:var(--svc-shadow);
}
.svc-google-event strong,
.svc-google-event span,
.svc-google-event em{
    display:block;
}
.svc-google-event strong{
    font-size:12px;
    line-height:1.3;
    font-weight:900;
}
.svc-google-event span{
    font-size:11px;
    color:var(--svc-muted);
    line-height:1.35;
    font-weight:760;
}
.svc-google-event em{
    font-style:normal;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:var(--event-color, var(--svc-green));
    font-weight:900;
}
.svc-google-week-empty{
    display:block;
    width:100%;
    min-height:1px;
}
.svc-module-shell{
    display:grid;
    gap:18px;
}
.svc-module-toolbar{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:16px;
    margin-bottom:18px;
}
.svc-module-toolbar h2{
    margin:4px 0 6px;
}
.svc-module-toolbar p{
    margin:0;
    max-width:680px;
}
.svc-eyebrow{
    display:inline-flex;
    color:var(--svc-green);
    background:var(--svc-green-soft);
    padding:6px 10px;
    border-radius:999px;
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.08em;
}
.svc-summary-strip{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin-bottom:18px;
}
.svc-summary-item{
    padding:14px 16px;
}
.svc-summary-item small,
.svc-entity-metric small,
.svc-sheet-item small{
    display:block;
    color:var(--svc-muted);
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.svc-summary-item strong,
.svc-entity-metric strong,
.svc-sheet-item strong{
    display:block;
    margin-top:6px;
    color:var(--svc-text);
    font-size:18px;
    font-weight:950;
    line-height:1.3;
}
.svc-entity-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}
.svc-entity-card{
    padding:16px;
    display:grid;
    gap:14px;
    box-shadow:var(--svc-shadow);
}
.svc-entity-top{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
}
.svc-avatar.large{
    width:46px;
    height:46px;
    min-width:46px;
    border-radius:16px;
    font-size:14px;
}
.svc-entity-meta{
    min-width:0;
}
.svc-entity-meta.solo strong{
    margin-top:0;
}
.svc-entity-meta strong,
.svc-entity-meta small{
    display:block;
}
.svc-entity-meta strong{
    font-size:15px;
    font-weight:950;
}
.svc-entity-meta small{
    margin-top:3px;
    color:var(--svc-muted);
    font-size:12px;
    font-weight:760;
}
.svc-entity-chips{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.svc-entity-chips.top-only{
    justify-content:space-between;
}
.svc-entity-chip{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:0 10px;
    border-radius:999px;
    background:var(--svc-green-soft);
    color:var(--svc-green);
    font-size:11px;
    font-weight:900;
}
.svc-entity-chip.soft{
    background:var(--svc-panel);
    color:var(--svc-muted);
    border:1px solid var(--svc-line);
}
.svc-entity-metrics{
    display:grid;
    gap:10px;
}
.svc-entity-metrics.compact-2{
    grid-template-columns:repeat(2,minmax(0,1fr));
}
.svc-entity-metrics.compact-3{
    grid-template-columns:repeat(3,minmax(0,1fr));
}
.svc-entity-metric{
    padding:12px;
    border-radius:16px;
    border:1px solid var(--svc-line);
    background:var(--svc-panel);
}
.svc-entity-footer{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}
.svc-entity-footer .svc-btn{
    flex:1 1 0;
}
.svc-sheet-modal{
    border-radius:24px;
    overflow:hidden;
}
.svc-sheet-header{
    align-items:flex-start;
}
.svc-sheet-header .modal-title{
    margin-top:6px;
    font-size:24px;
    font-weight:950;
    letter-spacing:-.04em;
}
.svc-sheet-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.svc-sheet-item{
    padding:14px 16px;
}
.svc-sheet-item.full{
    grid-column:1 / -1;
}
@media(max-width:1280px){
    .svc-google-week-head,
    .svc-google-week-grid{
        grid-template-columns:90px repeat(7,minmax(140px,1fr));
        overflow-x:auto;
    }
    .svc-entity-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:992px){
    .svc-module-toolbar{
        flex-direction:column;
    }
    .svc-summary-strip{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .svc-google-week-head,
    .svc-google-week-grid{
        min-width:1100px;
    }
}
@media(max-width:640px){
    .svc-summary-strip,
    .svc-entity-grid,
    .svc-entity-metrics.compact-2,
    .svc-entity-metrics.compact-3,
    .svc-sheet-grid{
        grid-template-columns:1fr;
    }
    .svc-entity-card{
        padding:14px;
        gap:12px;
    }
    .svc-google-week{
        overflow-x:auto;
        padding-bottom:4px;
    }
    .svc-google-week-head,
    .svc-google-week-grid{
        min-width:980px;
    }
    .svc-google-week-day strong{
        width:36px;
        height:36px;
        font-size:16px;
    }
    .svc-google-week-hours span,
    .svc-google-week-cell{
        min-height:64px;
    }
    .svc-sheet-header .modal-title{
        font-size:20px;
    }
}

/* V23 - melhorias individuais por aba: atendimentos, caixa, comissões, estoque, relatórios e configurações */
.svc-filter-bar{
    display:grid;
    grid-template-columns:repeat(4,minmax(150px,1fr)) auto auto;
    gap:12px;
    align-items:end;
    margin:0 0 18px;
    padding:14px;
    border:1px solid var(--svc-line);
    border-radius:20px;
    background:var(--svc-panel-2);
}
.svc-filter-bar label,
.svc-form-stack label{
    display:grid;
    gap:7px;
    margin:0;
    color:var(--svc-muted);
    font-size:11px;
    font-weight:950;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.svc-attendance-list,
.svc-receipt-list,
.svc-commission-list{
    display:grid;
    gap:12px;
}
.svc-attendance-card{
    display:grid;
    grid-template-columns:92px minmax(0,1fr) 150px minmax(260px,auto);
    gap:14px;
    align-items:center;
    padding:14px;
    border:1px solid var(--svc-line);
    border-radius:20px;
    background:var(--svc-panel-2);
    box-shadow:var(--svc-shadow);
}
.svc-attendance-time,
.svc-attendance-money{
    display:grid;
    gap:4px;
}
.svc-attendance-time strong{
    color:var(--svc-green);
    font-size:22px;
    font-weight:950;
    letter-spacing:-.04em;
}
.svc-attendance-time small,
.svc-attendance-money small,
.svc-attendance-money span,
.svc-muted-label{
    color:var(--svc-muted);
    font-size:12px;
    font-weight:800;
}
.svc-attendance-main{
    min-width:0;
    display:grid;
    gap:8px;
}
.svc-attendance-main strong{
    font-size:15px;
    font-weight:950;
    color:var(--svc-text);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.svc-attendance-main span{
    color:var(--svc-muted);
    font-size:13px;
    font-weight:780;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.svc-attendance-money strong{
    color:var(--svc-text);
    font-size:20px;
    font-weight:950;
}
.svc-attendance-actions{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}
.svc-summary-five{grid-template-columns:repeat(5,minmax(0,1fr));}
.svc-summary-six{grid-template-columns:repeat(6,minmax(0,1fr));}
.svc-form-stack{display:grid;gap:14px;}
.svc-payment-methods{display:grid;gap:12px;}
.svc-payment-method{
    display:grid;
    gap:10px;
    padding:14px;
    border:1px solid var(--svc-line);
    border-radius:18px;
    background:var(--svc-panel-2);
}
.svc-payment-method div{
    display:flex;
    justify-content:space-between;
    gap:12px;
    align-items:center;
}
.svc-payment-method strong{font-size:14px;font-weight:950;color:var(--svc-text);}
.svc-payment-method span{font-size:12px;font-weight:850;color:var(--svc-muted);}
.svc-payment-method i{
    display:block;
    height:7px;
    min-width:7px;
    border-radius:999px;
    background:var(--svc-green);
}
.svc-receipt-card{
    display:grid;
    grid-template-columns:90px minmax(0,1fr) 120px auto;
    gap:14px;
    align-items:center;
    padding:13px 14px;
    border:1px solid var(--svc-line);
    border-radius:18px;
    background:var(--svc-panel-2);
}
.svc-receipt-card strong,
.svc-receipt-card small{display:block;}
.svc-receipt-card strong{font-weight:950;color:var(--svc-text);}
.svc-receipt-card small{margin-top:3px;color:var(--svc-muted);font-size:12px;font-weight:760;}
.svc-commission-row{
    display:grid;
    grid-template-columns:44px minmax(0,1fr) 120px 130px auto;
    align-items:center;
    gap:14px;
    padding:14px;
    border:1px solid var(--svc-line);
    border-radius:18px;
    background:var(--svc-panel-2);
}
.svc-commission-row strong,
.svc-commission-row span,
.svc-commission-row small{display:block;}
.svc-commission-row strong{font-weight:950;color:var(--svc-text);}
.svc-commission-row span{margin-top:3px;color:var(--svc-muted);font-size:12px;font-weight:760;}
.svc-commission-row small{color:var(--svc-muted);font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.06em;}
.svc-education-card{
    margin-top:16px;
    padding:18px;
    border-radius:20px;
    border:1px solid rgba(22,163,74,.20);
    background:var(--svc-green-soft);
}
.svc-education-card strong{display:block;margin-bottom:6px;color:var(--svc-green);font-weight:950;}
.svc-education-card p{margin:0;color:var(--svc-text);font-weight:760;line-height:1.5;}
.svc-stock-locations,
.svc-stock-grid,
.svc-settings-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.svc-stock-location,
.svc-stock-card{
    padding:16px;
    border:1px solid var(--svc-line);
    border-radius:18px;
    background:var(--svc-panel-2);
}
.svc-stock-location{display:flex;align-items:center;gap:10px;}
.svc-stock-location i{color:var(--svc-green);font-size:18px;}
.svc-stock-location strong{color:var(--svc-text);font-weight:950;}
.svc-stock-card{display:grid;gap:12px;}
.svc-stock-card strong{color:var(--svc-text);font-weight:950;}
.svc-stock-card span{color:var(--svc-muted);font-size:12px;font-weight:760;}
.svc-report-bars{display:grid;gap:12px;}
.svc-report-bar{
    display:grid;
    gap:10px;
    padding:14px;
    border:1px solid var(--svc-line);
    border-radius:18px;
    background:var(--svc-panel-2);
}
.svc-report-bar div{display:flex;justify-content:space-between;gap:12px;}
.svc-report-bar strong{color:var(--svc-text);font-weight:950;}
.svc-report-bar span{color:var(--svc-muted);font-size:12px;font-weight:760;}
.svc-report-bar i{display:block;height:8px;border-radius:999px;background:var(--svc-green);min-width:8px;}
.svc-settings-tabs{
    display:flex;
    gap:8px;
    overflow-x:auto;
    padding-top:12px;
}
.svc-settings-tabs a{
    white-space:nowrap;
    min-height:36px;
    display:inline-flex;
    align-items:center;
    border:1px solid var(--svc-line);
    border-radius:999px;
    padding:0 13px;
    color:var(--svc-muted);
    background:var(--svc-panel-2);
    text-decoration:none;
    font-size:12px;
    font-weight:900;
}
.svc-settings-tabs a.active,
.svc-settings-tabs a:hover{color:var(--svc-green);background:var(--svc-green-soft);border-color:rgba(22,163,74,.22);}
.svc-hours-list{display:grid;gap:10px;}
.svc-hours-card{
    display:grid;
    grid-template-columns:140px 150px 1fr 1fr;
    gap:12px;
    align-items:center;
    padding:14px;
    border:1px solid var(--svc-line);
    border-radius:18px;
    background:var(--svc-panel-2);
}
.svc-hours-card > div strong,
.svc-hours-card > div span{display:block;}
.svc-hours-card > div strong{font-size:15px;color:var(--svc-text);font-weight:950;}
.svc-hours-card > div span{margin-top:3px;color:var(--svc-muted);font-size:12px;font-weight:760;}
.svc-switch{
    display:flex!important;
    align-items:center;
    gap:8px!important;
    margin:0!important;
    color:var(--svc-muted)!important;
    text-transform:none!important;
    letter-spacing:0!important;
    font-size:12px!important;
}
.svc-switch input{position:absolute;opacity:0;pointer-events:none;}
.svc-switch span{
    width:42px;
    height:24px;
    border-radius:999px;
    background:var(--svc-green);
    position:relative;
    border:1px solid var(--svc-line);
}
.svc-switch span:before{
    content:'';
    position:absolute;
    width:18px;
    height:18px;
    top:2px;
    left:2px;
    border-radius:50%;
    background:#fff;
    transition:.18s ease;
    box-shadow:0 1px 3px rgba(0,0,0,.2);
}
.svc-switch input:checked + span{background:#94A3B8;}
.svc-switch input:checked + span:before{transform:translateX(18px);}
.status-pendente{background:rgba(245,158,11,.12);color:#B45309;}
.status-pago{background:var(--svc-green-soft);color:var(--svc-green);}
@media(max-width:1280px){
    .svc-attendance-card{grid-template-columns:80px minmax(0,1fr) 130px;}
    .svc-attendance-actions{grid-column:1 / -1;justify-content:flex-start;}
    .svc-summary-five,.svc-summary-six{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:992px){
    .svc-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr));}
    .svc-summary-five,.svc-summary-six{grid-template-columns:repeat(2,minmax(0,1fr));}
    .svc-receipt-card,.svc-commission-row{grid-template-columns:1fr;align-items:start;}
    .svc-hours-card{grid-template-columns:1fr 1fr;}
}
@media(max-width:640px){
    .svc-filter-bar,.svc-summary-five,.svc-summary-six,.svc-stock-locations,.svc-stock-grid,.svc-settings-grid,.svc-hours-card{grid-template-columns:1fr;}
    .svc-attendance-card{grid-template-columns:1fr;align-items:start;}
    .svc-attendance-time{display:flex;align-items:center;justify-content:space-between;}
    .svc-attendance-actions,.svc-attendance-actions .svc-inline-form{width:100%;display:grid;grid-template-columns:1fr;}
    .svc-receipt-card{gap:8px;}
    .svc-payment-method div{align-items:flex-start;flex-direction:column;gap:4px;}
}

/* V24 - correção do botão Nova cobrança no Caixa */
.svc-module-toolbar .svc-actions button.svc-btn {
    border: 0;
    cursor: pointer;
}
.svc-cash-empty-modal {
    margin: 0;
    min-height: 160px;
    display: grid;
    align-content: center;
    gap: 10px;
}
.svc-cash-empty-modal strong {
    color: var(--svc-text);
    font-size: 17px;
    font-weight: 950;
}
.svc-cash-empty-modal p {
    margin: 0;
    color: var(--svc-muted);
    font-weight: 750;
}
.svc-cash-empty-modal span {
    width: max-content;
    max-width: 100%;
    padding: 8px 12px;
    border-radius: 999px;
    background: var(--svc-panel);
    color: var(--svc-muted);
    border: 1px solid var(--svc-line);
    font-size: 12px;
    font-weight: 850;
}
@media (max-width: 640px) {
    .svc-cash-empty-modal span {
        width: 100%;
        border-radius: 14px;
    }
}

/* V26 - Caixa de Serviços: cards consideram pagamentos anteriores/recentes */
.svc-summary-item > span{
    display:block;
    margin-top:6px;
    color:var(--svc-muted);
    font-size:12px;
    font-weight:800;
    line-height:1.3;
}
.svc-summary-five .svc-summary-item{
    min-height:112px;
    display:flex;
    flex-direction:column;
    justify-content:center;
}


/* V27 - Agenda: cards semanais mais legíveis e compactos */
.svc-google-week-grid{
    grid-template-columns:88px repeat(7,minmax(132px,1fr));
}
.svc-google-week-head{
    grid-template-columns:88px repeat(7,minmax(132px,1fr));
}
.svc-google-week-hours span,
.svc-google-week-cell{
    min-height:72px;
}
.svc-google-week-cell{
    padding:5px;
    align-content:flex-start;
}
.svc-google-event{
    width:100%;
    min-width:0;
    display:grid;
    grid-template-columns:1fr;
    gap:6px;
    padding:8px 9px;
    border-radius:14px;
    overflow:hidden;
    border-left:4px solid var(--event-color, var(--svc-green));
}
.svc-google-event-time{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:6px;
    min-width:0;
}
.svc-google-event-time strong{
    display:block;
    color:var(--event-color, var(--svc-green));
    font-size:12px;
    line-height:1;
    font-weight:950;
    white-space:nowrap;
}
.svc-google-event-time em{
    max-width:82px;
    height:20px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 7px;
    border-radius:999px;
    background:rgba(255,255,255,.14);
    color:var(--event-color, var(--svc-green));
    border:1px solid var(--event-line, rgba(22,163,74,.25));
    font-size:9px;
    line-height:1;
    font-style:normal;
    text-transform:uppercase;
    letter-spacing:.04em;
    font-weight:950;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.svc-google-event-body{
    display:grid;
    gap:4px;
    min-width:0;
}
.svc-google-event-service{
    display:block;
    color:var(--svc-text);
    font-size:12px;
    line-height:1.18;
    font-weight:950;
    text-transform:none;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.svc-google-event-client,
.svc-google-event-pro{
    display:flex;
    align-items:center;
    gap:5px;
    min-width:0;
    color:var(--svc-muted);
    font-size:10.5px;
    line-height:1.15;
    font-weight:760;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.svc-google-event-client b{
    width:20px;
    height:20px;
    min-width:20px;
    display:inline-grid;
    place-items:center;
    border-radius:7px;
    background:rgba(255,255,255,.16);
    color:var(--event-color, var(--svc-green));
    font-size:8px;
    font-weight:950;
}
.svc-google-event-pro::before{
    content:"Prof.";
    color:var(--svc-muted);
    opacity:.75;
    font-weight:900;
}
.svc-google-event:hover{
    transform:translateY(-1px);
    box-shadow:0 10px 24px rgba(15,23,42,.12);
}
html.theme-dark .svc-google-event{
    background:color-mix(in srgb, var(--event-color, var(--svc-green)) 15%, #111827);
}
html.theme-dark .svc-google-event-time em,
html.theme-dark .svc-google-event-client b{
    background:rgba(15,23,42,.55);
}
@media(max-width:1280px){
    .svc-google-week-head,
    .svc-google-week-grid{
        grid-template-columns:76px repeat(7,minmax(150px,1fr));
    }
}
@media(max-width:640px){
    .svc-google-week-head,
    .svc-google-week-grid{
        min-width:1040px;
        grid-template-columns:62px repeat(7,minmax(138px,1fr));
    }
    .svc-google-week-hours span,
    .svc-google-week-cell{
        min-height:68px;
    }
    .svc-google-event{
        padding:7px;
    }
    .svc-google-event-service{
        font-size:11.5px;
    }
    .svc-google-event-client,
    .svc-google-event-pro{
        font-size:10px;
    }
}


/* V28 - Google Agenda: mostrar só o serviço no calendário e abrir detalhes no hover/click */
.svc-google-event.svc-calendar-service-only{
    appearance:none;
    border:1px solid var(--event-line, rgba(22,163,74,.24));
    border-left:4px solid var(--event-color, var(--svc-green));
    background:var(--event-bg, rgba(22,163,74,.10));
    color:var(--svc-text);
    width:100%;
    min-width:0;
    min-height:34px;
    padding:7px 9px;
    border-radius:11px;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    cursor:pointer;
    position:relative;
    text-align:left;
    box-shadow:none;
    transition:transform .16s ease, box-shadow .16s ease, filter .16s ease;
}
.svc-google-event.svc-calendar-service-only:hover,
.svc-google-event.svc-calendar-service-only:focus-visible{
    transform:translateY(-1px);
    box-shadow:0 12px 28px rgba(15,23,42,.14);
    filter:saturate(1.05);
    z-index:30;
}
.svc-calendar-service-title{
    display:block;
    width:100%;
    color:var(--svc-text);
    font-size:12px;
    line-height:1.15;
    font-weight:950;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.svc-event-hover-card{
    display:none;
    position:absolute;
    left:8px;
    top:calc(100% + 8px);
    width:260px;
    max-width:min(260px, calc(100vw - 40px));
    z-index:60;
    padding:14px;
    border:1px solid var(--svc-line);
    border-radius:18px;
    background:var(--svc-panel);
    color:var(--svc-text);
    box-shadow:0 22px 54px rgba(15,23,42,.22);
    text-align:left;
}
.svc-event-hover-card::before{
    content:"";
    position:absolute;
    left:18px;
    top:-7px;
    width:14px;
    height:14px;
    transform:rotate(45deg);
    border-left:1px solid var(--svc-line);
    border-top:1px solid var(--svc-line);
    background:var(--svc-panel);
}
.svc-google-event:hover .svc-event-hover-card,
.svc-google-event:focus-visible .svc-event-hover-card{
    display:grid;
    gap:6px;
}
.svc-event-hover-card strong{
    color:var(--svc-text);
    font-size:15px;
    line-height:1.2;
    font-weight:950;
}
.svc-event-hover-card small,
.svc-event-hover-card span{
    color:var(--svc-muted);
    font-size:12px;
    line-height:1.35;
    font-weight:760;
}
.svc-event-hover-card em{
    width:max-content;
    max-width:100%;
    margin-top:2px;
    padding:6px 9px;
    border-radius:999px;
    background:var(--svc-green-soft);
    color:var(--event-color, var(--svc-green));
    font-size:11px;
    line-height:1;
    font-style:normal;
    font-weight:950;
}
.svc-event-detail-modal{
    border-radius:24px;
    overflow:hidden;
}
.svc-event-detail-header{
    align-items:flex-start;
}
.svc-event-detail-title{
    display:flex;
    align-items:flex-start;
    gap:12px;
    min-width:0;
}
.svc-event-detail-title .modal-title{
    margin-top:6px;
    font-size:24px;
    line-height:1.15;
    font-weight:950;
    letter-spacing:-.04em;
}
.svc-event-color-dot{
    width:16px;
    height:16px;
    min-width:16px;
    margin-top:8px;
    border-radius:5px;
    background:var(--event-color, var(--svc-green));
}
.svc-event-detail-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
html.theme-dark .svc-google-event.svc-calendar-service-only{
    background:color-mix(in srgb, var(--event-color, var(--svc-green)) 15%, #111827);
}
html.theme-dark .svc-event-hover-card{
    box-shadow:0 22px 54px rgba(0,0,0,.44);
}
@media(max-width:640px){
    .svc-google-event.svc-calendar-service-only{
        min-height:30px;
        padding:6px 7px;
        border-radius:10px;
    }
    .svc-calendar-service-title{
        font-size:11.5px;
    }
    .svc-event-hover-card{
        display:none !important;
    }
    .svc-event-detail-title .modal-title{
        font-size:20px;
    }
    .svc-event-detail-grid{
        grid-template-columns:1fr;
    }
}


/* V29 - Agenda semanal estilo Google: altura por duração, título único e mini popover */
.svc-google-week-cell{
    position:relative;
    overflow:visible;
    padding:0;
}
.svc-google-week-empty{
    display:block;
    min-height:72px;
}
.svc-google-week-cell > .svc-google-event,
.svc-google-week-cell > .svc-event-popover{
    position:absolute;
    left:4px;
    right:4px;
}
.svc-google-event.svc-calendar-service-only{
    display:flex;
    align-items:flex-start;
    justify-content:flex-start;
    min-height:28px;
    padding:6px 8px;
    border-radius:10px;
    overflow:hidden;
    white-space:nowrap;
    z-index:2;
}
.svc-calendar-service-title{
    font-size:12px;
    line-height:1.2;
    font-weight:900;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.svc-event-popover{
    top:calc(100% + 10px);
    display:none;
    z-index:45;
    width:min(300px, calc(100vw - 32px));
    padding:14px;
    border:1px solid var(--svc-line);
    border-radius:18px;
    background:var(--svc-panel);
    box-shadow:0 20px 48px rgba(15,23,42,.22);
}
.svc-event-popover::before{
    content:"";
    position:absolute;
    left:18px;
    top:-7px;
    width:14px;
    height:14px;
    transform:rotate(45deg);
    border-left:1px solid var(--svc-line);
    border-top:1px solid var(--svc-line);
    background:var(--svc-panel);
}
.svc-event-popover.is-open,
.svc-google-week-cell:hover > .svc-event-popover{
    display:block;
}
.svc-event-popover-head{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin-bottom:12px;
}
.svc-event-popover-head strong{
    display:block;
    color:var(--svc-text);
    font-size:16px;
    line-height:1.2;
    font-weight:950;
}
.svc-event-popover-head small{
    display:block;
    margin-top:4px;
    color:var(--svc-muted);
    font-size:12px;
    line-height:1.35;
    font-weight:760;
}
.svc-event-popover-body{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px 12px;
}
.svc-event-popover-body small{
    display:block;
    margin-bottom:3px;
    color:var(--svc-muted);
    font-size:11px;
    line-height:1;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.svc-event-popover-body span{
    display:block;
    color:var(--svc-text);
    font-size:13px;
    line-height:1.35;
    font-weight:800;
}
.svc-event-popover-actions{
    display:flex;
    gap:8px;
    justify-content:flex-end;
    margin-top:14px;
}
html.theme-dark .svc-event-popover{
    box-shadow:0 22px 56px rgba(0,0,0,.42);
}
@media(max-width:640px){
    .svc-google-week-cell > .svc-google-event,
    .svc-google-week-cell > .svc-event-popover{
        left:3px;
        right:3px;
    }
    .svc-google-event.svc-calendar-service-only{
        padding:5px 7px;
        border-radius:9px;
    }
    .svc-calendar-service-title{
        font-size:11px;
    }
    .svc-google-week-cell:hover > .svc-event-popover{
        display:none;
    }
    .svc-event-popover{
        width:min(260px, calc(100vw - 24px));
        padding:12px;
    }
    .svc-event-popover-body{
        grid-template-columns:1fr;
    }
}


/* V30 - calendário limpo: só serviço no bloco, popover externo estilo Google */
.svc-google-week-cell{
    overflow:visible;
}
.svc-google-event.svc-calendar-service-only{
    align-items:flex-start;
    justify-content:flex-start;
    padding:6px 8px;
    white-space:nowrap;
}
.svc-google-event.svc-calendar-service-only .svc-calendar-service-title{
    display:block;
    width:100%;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    font-size:12px;
    line-height:1.2;
    font-weight:900;
    pointer-events:none;
}
.svc-event-popover{
    position:fixed !important;
    display:none;
    inset:auto auto auto auto;
    width:min(320px, calc(100vw - 24px));
    max-width:320px;
    padding:14px;
    border:1px solid var(--svc-line);
    border-radius:18px;
    background:var(--svc-panel);
    box-shadow:0 18px 46px rgba(15,23,42,.28);
    z-index:1055;
}
.svc-event-popover::before{
    display:none;
}
.svc-event-popover.is-open{
    display:block;
}
.svc-event-popover-head{
    display:flex;
    gap:10px;
    align-items:flex-start;
    margin-bottom:12px;
}
.svc-event-popover-head strong{
    display:block;
    font-size:16px;
    line-height:1.2;
    color:var(--svc-text);
    font-weight:950;
}
.svc-event-popover-head small{
    display:block;
    margin-top:4px;
    font-size:12px;
    line-height:1.35;
    color:var(--svc-muted);
    font-weight:760;
}
.svc-event-popover-body{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:10px 12px;
}
.svc-event-popover-actions{
    display:flex;
    gap:8px;
    justify-content:flex-end;
    margin-top:14px;
}
html.theme-dark .svc-event-popover{
    box-shadow:0 22px 58px rgba(0,0,0,.5);
}
@media (max-width: 768px){
    .svc-google-event.svc-calendar-service-only{
        padding:5px 7px;
    }
    .svc-google-event.svc-calendar-service-only .svc-calendar-service-title{
        font-size:11px;
    }
    .svc-event-popover{
        width:min(280px, calc(100vw - 20px));
        max-width:280px;
        padding:12px;
    }
    .svc-event-popover-body{
        grid-template-columns:1fr;
    }
    .svc-event-popover-actions{
        flex-direction:column;
    }
    .svc-event-popover-actions .svc-btn,
    .svc-event-popover-actions .svc-btn.secondary{
        width:100%;
        justify-content:center;
    }
}

.svc-google-week-cell:hover > .svc-event-popover{display:none;}
.svc-google-week-cell:hover > .svc-event-popover.is-open{display:block;}


/* V31 - HOTFIX FINAL: Google Agenda limpo
   Dentro da grade aparece só o tipo/nome do serviço.
   Detalhes completos ficam fora do fluxo visual, em mini pop-up por hover/click.
*/
.svc-google-week-cell{
    position:relative;
    overflow:visible !important;
    padding:0 !important;
}

.svc-google-week-cell > .svc-google-event.svc-calendar-service-only{
    position:absolute !important;
    left:6px !important;
    right:6px !important;
    z-index:3;
    width:auto !important;
    min-width:0 !important;
    min-height:24px !important;
    display:flex !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    padding:6px 8px !important;
    border-radius:10px !important;
    overflow:hidden !important;
    white-space:normal !important;
    text-align:left !important;
    box-sizing:border-box !important;
}

.svc-google-week-cell > .svc-google-event.svc-calendar-service-only .svc-calendar-service-title{
    display:-webkit-box !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    color:var(--svc-text) !important;
    font-size:12px !important;
    line-height:1.18 !important;
    font-weight:950 !important;
    text-transform:none !important;
    white-space:normal !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    -webkit-line-clamp:2 !important;
    -webkit-box-orient:vertical !important;
    word-break:normal !important;
}

.svc-google-week-cell > .svc-event-popover{
    position:fixed !important;
    inset:auto auto auto auto !important;
    left:0;
    top:0;
    display:none !important;
    width:min(320px, calc(100vw - 24px)) !important;
    max-width:320px !important;
    height:auto !important;
    min-height:0 !important;
    padding:14px !important;
    border:1px solid var(--svc-line) !important;
    border-radius:18px !important;
    background:var(--svc-panel) !important;
    color:var(--svc-text) !important;
    box-shadow:0 22px 56px rgba(15,23,42,.30) !important;
    z-index:9999 !important;
    overflow:visible !important;
    transform:none !important;
}

.svc-google-week-cell:hover > .svc-event-popover{
    display:none !important;
}

.svc-google-week-cell > .svc-event-popover.is-open{
    display:block !important;
}

.svc-google-week-cell > .svc-event-popover::before{
    display:none !important;
}

.svc-event-popover-head{
    display:flex !important;
    align-items:flex-start !important;
    gap:10px !important;
    margin-bottom:12px !important;
}

.svc-event-popover-head strong{
    display:block !important;
    color:var(--svc-text) !important;
    font-size:16px !important;
    line-height:1.2 !important;
    font-weight:950 !important;
}

.svc-event-popover-head small{
    display:block !important;
    margin-top:4px !important;
    color:var(--svc-muted) !important;
    font-size:12px !important;
    line-height:1.35 !important;
    font-weight:760 !important;
}

.svc-event-popover-body{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px 12px !important;
}

.svc-event-popover-body small{
    display:block !important;
    margin-bottom:3px !important;
    color:var(--svc-muted) !important;
    font-size:10px !important;
    line-height:1 !important;
    font-weight:900 !important;
    text-transform:uppercase !important;
    letter-spacing:.05em !important;
}

.svc-event-popover-body span{
    display:block !important;
    color:var(--svc-text) !important;
    font-size:13px !important;
    line-height:1.35 !important;
    font-weight:800 !important;
    word-break:break-word !important;
}

.svc-event-popover-actions{
    display:flex !important;
    justify-content:flex-end !important;
    gap:8px !important;
    margin-top:14px !important;
}

html.theme-dark .svc-google-week-cell > .svc-event-popover{
    box-shadow:0 24px 64px rgba(0,0,0,.55) !important;
}

@media(max-width:768px){
    .svc-google-week-cell > .svc-google-event.svc-calendar-service-only{
        left:4px !important;
        right:4px !important;
        padding:5px 7px !important;
        border-radius:9px !important;
    }

    .svc-google-week-cell > .svc-google-event.svc-calendar-service-only .svc-calendar-service-title{
        font-size:11px !important;
        line-height:1.15 !important;
        -webkit-line-clamp:2 !important;
    }

    .svc-google-week-cell > .svc-event-popover{
        width:min(286px, calc(100vw - 20px)) !important;
        max-width:286px !important;
        padding:12px !important;
    }

    .svc-event-popover-body{
        grid-template-columns:1fr !important;
    }

    .svc-event-popover-actions{
        flex-direction:column !important;
    }

    .svc-event-popover-actions .svc-btn,
    .svc-event-popover-actions .svc-btn.secondary{
        width:100% !important;
        justify-content:center !important;
    }
}


/* V32 - agenda: pop-up apenas por clique, nunca por hover */
.svc-google-week-cell:hover > .svc-event-popover,
.svc-google-event:hover .svc-event-hover-card,
.svc-google-event:focus-visible .svc-event-hover-card{
    display:none !important;
}

.svc-google-week-cell > .svc-event-popover{
    display:none !important;
    pointer-events:auto !important;
}

.svc-google-week-cell > .svc-event-popover.is-open{
    display:block !important;
}

.svc-calendar-service-only{
    cursor:pointer !important;
}

.svc-calendar-service-only:hover,
.svc-calendar-service-only:focus-visible{
    transform:translateY(-1px);
    box-shadow:0 10px 24px rgba(15,23,42,.15);
    outline:none;
}

.svc-calendar-service-only:focus-visible{
    box-shadow:0 0 0 3px rgba(34,197,94,.22), 0 10px 24px rgba(15,23,42,.15);
}

@media(max-width:768px){
    .svc-google-week-cell > .svc-event-popover{
        border-radius:20px !important;
        max-height:calc(100vh - 32px);
        overflow:auto !important;
    }
}


/* V33 - correção definitiva: detalhes ocultos no carregamento e abertos só por clique */
.svc-event-popover[hidden]{
    display:none !important;
    visibility:hidden !important;
}

.svc-google-week-cell > .svc-event-popover:not(.is-open){
    display:none !important;
    visibility:hidden !important;
}

.svc-google-week-cell > .svc-event-popover.is-open{
    display:block !important;
    visibility:visible !important;
}

/* Mesmo com CSS antigo em cache, o bloco da agenda mostra só o serviço */
.svc-calendar-service-only > *:not(.svc-calendar-service-title){
    display:none !important;
}

.svc-calendar-service-only .svc-calendar-service-title{
    display:-webkit-box !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    -webkit-line-clamp:2 !important;
    -webkit-box-orient:vertical !important;
    white-space:normal !important;
}

/* V34 - Agendamento online: configurações e solicitações */
.svc-online-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.svc-check{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--svc-line);background:var(--svc-panel-2);border-radius:16px;color:var(--svc-text);font-weight:850}.svc-check input{width:18px;height:18px;accent-color:var(--svc-green)}.svc-copy-row{display:flex;gap:10px;margin-top:14px}.svc-copy-row .svc-input{flex:1}.booking-request-card{align-items:center}.booking-request-actions{flex-wrap:wrap;justify-content:flex-end}.booking-request-actions form{display:inline-flex;margin:0}.svc-status-badge.pending_approval,.svc-status-badge.rescheduled{background:rgba(245,158,11,.15);color:#d97706}.svc-status-badge.confirmed{background:var(--svc-green-soft);color:var(--svc-green)}.svc-status-badge.canceled,.svc-status-badge.rejected{background:rgba(239,68,68,.15);color:#ef4444}@media(max-width:760px){.svc-online-options{grid-template-columns:1fr}.svc-copy-row{flex-direction:column}.booking-request-card{align-items:stretch}.booking-request-actions{justify-content:flex-start}.booking-request-actions .svc-btn{width:100%;justify-content:center}.booking-request-actions form{width:100%}}

/* ===== public-booking.css ===== */
:root{--booking-green:#16a34a;--booking-green-dark:#0f7a35;--booking-soft:#eaf8ef;--booking-bg:#f6f8fb;--booking-card:#fff;--booking-text:#0f172a;--booking-muted:#64748b;--booking-line:#dfe7ef;--booking-shadow:0 18px 50px rgba(15,23,42,.08);}
*{box-sizing:border-box}body.booking-public-body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:linear-gradient(180deg,#f8fbf9,#f4f7fb);color:var(--booking-text)}.booking-public-shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:32px 0 48px}.booking-public-shell.compact{min-height:100vh;display:grid;place-items:center}.booking-hero{display:grid;grid-template-columns:minmax(280px,420px) 1fr;gap:20px;margin-bottom:20px}.booking-company-card,.booking-hero-copy,.booking-card,.booking-steps-card,.booking-flow-card{background:var(--booking-card);border:1px solid var(--booking-line);border-radius:28px;box-shadow:var(--booking-shadow)}.booking-company-card{display:flex;gap:16px;align-items:center;padding:24px}.booking-logo{width:56px;height:56px;border-radius:18px;background:var(--booking-green);color:#fff;display:grid;place-items:center;font-weight:900}.booking-eyebrow{display:inline-flex;padding:6px 10px;border-radius:999px;background:var(--booking-soft);color:var(--booking-green-dark);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.booking-company-card h1,.booking-hero-copy h2{margin:8px 0 4px;font-size:28px;letter-spacing:-.04em}.booking-company-card p,.booking-hero-copy p{margin:0;color:var(--booking-muted);font-weight:650;line-height:1.5}.booking-company-card small{display:block;margin-top:6px;color:var(--booking-muted)}.booking-hero-copy{padding:28px;display:grid;align-content:center}.booking-rule{width:max-content;margin-top:16px;padding:10px 14px;border-radius:999px;background:#ecfdf5;color:#166534;font-weight:900}.booking-alert{padding:14px 16px;border-radius:18px;margin-bottom:16px;border:1px solid var(--booking-line);background:#fff}.booking-alert.success{background:#ecfdf5;color:#166534;border-color:#bbf7d0}.booking-grid{display:grid;grid-template-columns:280px 1fr;gap:20px}.booking-steps-card{padding:22px;height:max-content;position:sticky;top:18px}.booking-steps-card h2{margin:0 0 14px;font-size:18px}.booking-steps{padding:0;margin:0;list-style:none;display:grid;gap:10px;counter-reset:step}.booking-steps li{counter-increment:step;padding:12px 12px 12px 42px;border:1px solid var(--booking-line);border-radius:16px;color:var(--booking-muted);font-weight:850;position:relative}.booking-steps li:before{content:counter(step);position:absolute;left:12px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:8px;display:grid;place-items:center;background:#f1f5f9;color:#64748b;font-size:12px}.booking-steps li.active{background:var(--booking-soft);border-color:#bbf7d0;color:#166534}.booking-steps li.active:before{background:var(--booking-green);color:#fff}.booking-flow-card{padding:24px;min-height:620px}.booking-step-panel{display:none}.booking-step-panel.active{display:block}.booking-section-head span{color:var(--booking-green);font-weight:950;text-transform:uppercase;letter-spacing:.08em;font-size:11px}.booking-section-head h2{margin:6px 0 5px;font-size:26px;letter-spacing:-.04em}.booking-section-head p{margin:0 0 18px;color:var(--booking-muted);font-weight:650}.booking-service-grid,.booking-professional-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.booking-service-card,.booking-pro-card,.booking-slot{appearance:none;border:1px solid var(--booking-line);background:#fff;border-radius:20px;padding:16px;text-align:left;cursor:pointer;transition:.18s ease;box-shadow:0 2px 8px rgba(15,23,42,.04)}.booking-service-card:hover,.booking-pro-card:hover,.booking-slot:hover,.booking-service-card.selected,.booking-pro-card.selected,.booking-slot.selected{border-color:#22c55e;background:#f0fdf4;transform:translateY(-1px)}.booking-service-card span{display:inline-flex;color:var(--booking-green-dark);background:var(--booking-soft);border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900}.booking-service-card strong,.booking-pro-card strong{display:block;margin:12px 0 5px;font-size:17px}.booking-service-card small,.booking-pro-card small,.booking-service-card em{display:block;color:var(--booking-muted);font-size:13px;font-style:normal;font-weight:650}.booking-pro-card{display:flex;align-items:center;gap:12px}.booking-pro-card span{width:42px;height:42px;border-radius:14px;background:var(--booking-green);color:#fff;display:grid;place-items:center;font-weight:900}.booking-date-row{display:flex;gap:12px;align-items:end;margin-bottom:16px}.booking-date-row label,.booking-fields-grid label{display:grid;gap:7px;font-size:12px;font-weight:900;color:var(--booking-muted);text-transform:uppercase;letter-spacing:.05em}.booking-date-row input,.booking-fields-grid input,.booking-fields-grid textarea{border:1px solid var(--booking-line);border-radius:15px;padding:13px 14px;font:inherit;background:#fff;color:var(--booking-text)}.booking-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.booking-slot strong,.booking-slot span{display:block}.booking-slot strong{font-size:16px}.booking-slot span{color:var(--booking-muted);font-size:12px;margin-top:4px}.booking-fields-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.booking-fields-grid .wide{grid-column:1/-1}.booking-code-box{margin-top:16px;border:1px dashed var(--booking-line);border-radius:20px;padding:16px;display:grid;gap:12px;background:#f8fafc}.booking-code-inputs{display:flex;gap:10px}.booking-code-inputs input{flex:1;border:1px solid var(--booking-line);border-radius:15px;padding:13px 14px;font:inherit}.booking-code-box small.ok{color:#16a34a;font-weight:900}.booking-review{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.booking-review div{border:1px solid var(--booking-line);border-radius:18px;padding:14px;background:#fff}.booking-review small{display:block;color:var(--booking-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:900}.booking-review strong{display:block;margin-top:5px}.booking-bottom-actions{position:sticky;bottom:0;margin:24px -24px -24px;padding:16px 24px;background:rgba(255,255,255,.9);backdrop-filter:blur(12px);border-top:1px solid var(--booking-line);display:flex;justify-content:space-between;gap:10px}.booking-btn{border:0;border-radius:15px;background:var(--booking-green);color:#fff;text-decoration:none;padding:12px 16px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.booking-btn.secondary{background:#fff;color:var(--booking-text);border:1px solid var(--booking-line)}.booking-btn:disabled{opacity:.6;cursor:not-allowed}.booking-empty,.booking-loading{grid-column:1/-1;border:1px dashed var(--booking-line);border-radius:20px;padding:18px;background:#f8fafc;color:var(--booking-muted)}.booking-empty strong{display:block;color:var(--booking-text);margin-bottom:4px}.booking-result{margin-top:16px;padding:14px;border-radius:16px;background:#f8fafc;color:var(--booking-muted)}.booking-result.success{background:#ecfdf5;color:#166534}.booking-result.danger{background:#fef2f2;color:#991b1b}.booking-unavailable{text-align:center;padding:34px;max-width:520px}.booking-unavailable h1{margin:18px 0 8px}@media(max-width:920px){.booking-public-shell{width:min(100% - 20px,760px);padding:18px 0 34px}.booking-hero,.booking-grid{grid-template-columns:1fr}.booking-steps-card{position:static}.booking-steps{grid-template-columns:repeat(5,minmax(0,1fr));overflow-x:auto}.booking-steps li{min-width:145px}.booking-service-grid,.booking-professional-grid,.booking-slots,.booking-fields-grid,.booking-review{grid-template-columns:1fr}.booking-date-row,.booking-code-inputs{flex-direction:column;align-items:stretch}.booking-company-card,.booking-hero-copy,.booking-flow-card{border-radius:22px;padding:18px}.booking-company-card h1,.booking-hero-copy h2{font-size:24px}.booking-bottom-actions{margin-left:-18px;margin-right:-18px;margin-bottom:-18px;padding:14px 18px}.booking-bottom-actions .booking-btn{flex:1}.booking-bottom-actions{flex-wrap:wrap}}@media(prefers-color-scheme:dark){:root{--booking-bg:#0b1220;--booking-card:#111827;--booking-text:#f8fafc;--booking-muted:#9aa8bd;--booking-line:#26344a;--booking-soft:#0f2e23}.booking-public-body{background:#0b1220}.booking-service-card,.booking-pro-card,.booking-slot,.booking-review div,.booking-date-row input,.booking-fields-grid input,.booking-fields-grid textarea,.booking-code-inputs input,.booking-bottom-actions{background:#111827;color:var(--booking-text)}.booking-empty,.booking-loading,.booking-code-box{background:#0f172a}.booking-btn.secondary{background:#111827;color:var(--booking-text)}}


/* V35 - agendamento público: tema, calendário, multi-serviço e mobile */
:root{
    --booking-green:#16a34a;
    --booking-green-dark:#0f7a35;
    --booking-soft:#eaf8ef;
    --booking-bg:#f6f8fb;
    --booking-card:#ffffff;
    --booking-card-2:#f8fafc;
    --booking-text:#0f172a;
    --booking-muted:#64748b;
    --booking-line:#dfe7ef;
    --booking-shadow:0 18px 50px rgba(15,23,42,.08);
}
html[data-booking-theme="dark"]{
    --booking-bg:#07111f;
    --booking-card:#111827;
    --booking-card-2:#0f172a;
    --booking-text:#ffffff;
    --booking-muted:#bdd2ee;
    --booking-line:#29384d;
    --booking-soft:rgba(22,163,74,.16);
    --booking-shadow:0 22px 60px rgba(0,0,0,.38);
}
html[data-booking-theme="light"]{
    --booking-bg:#f6f8fb;
    --booking-card:#ffffff;
    --booking-card-2:#f8fafc;
    --booking-text:#0f172a;
    --booking-muted:#64748b;
    --booking-line:#dfe7ef;
    --booking-shadow:0 18px 50px rgba(15,23,42,.08);
}
body.booking-public-body{
    background:var(--booking-bg) !important;
    color:var(--booking-text);
}
html[data-booking-theme="light"] body.booking-public-body{
    background:linear-gradient(180deg,#f8fbf9,#f4f7fb) !important;
}
.booking-theme-toggle{
    position:fixed;
    right:18px;
    top:18px;
    z-index:30;
    min-height:42px;
    padding:0 14px;
    border:1px solid var(--booking-line);
    border-radius:999px;
    background:var(--booking-card);
    color:var(--booking-text);
    font-weight:900;
    box-shadow:var(--booking-shadow);
    cursor:pointer;
}
.booking-theme-toggle:hover{border-color:rgba(22,163,74,.45)}
.booking-company-card,.booking-hero-copy,.booking-card,.booking-steps-card,.booking-flow-card{
    background:var(--booking-card) !important;
    border-color:var(--booking-line) !important;
}
.booking-service-card,.booking-pro-card,.booking-slot,.booking-review>div,.booking-fields-grid label,.booking-date-row label,.booking-code-box,.booking-empty,.booking-calendar-card,.booking-times-card{
    background:var(--booking-card-2);
    border:1px solid var(--booking-line);
    color:var(--booking-text);
}
.booking-company-card h1,.booking-hero-copy h2,.booking-section-head h2,.booking-steps-card h2,.booking-service-card strong,.booking-pro-card strong,.booking-slot strong,.booking-review strong,.booking-calendar-head strong,.booking-times-head strong{
    color:var(--booking-text) !important;
}
.booking-company-card p,.booking-hero-copy p,.booking-section-head p,.booking-service-card small,.booking-pro-card small,.booking-slot span,.booking-review small,.booking-calendar-head small,.booking-times-head small{
    color:var(--booking-muted) !important;
}
.booking-fields-grid input,.booking-fields-grid textarea,.booking-code-inputs input{
    background:var(--booking-card);
    border:1px solid var(--booking-line);
    color:var(--booking-text);
}
.booking-fields-grid input::placeholder,.booking-fields-grid textarea::placeholder,.booking-code-inputs input::placeholder{
    color:var(--booking-muted);
}
.booking-service-card{
    position:relative;
    text-align:left;
    transition:transform .16s ease, border-color .16s ease, background .16s ease;
}
.booking-service-card.selected{
    border-color:rgba(22,163,74,.65);
    background:linear-gradient(0deg, rgba(22,163,74,.12), rgba(22,163,74,.12)), var(--booking-card-2);
}
.booking-service-card.selected::after{
    content:"";
    position:absolute;
    right:14px;
    top:14px;
    width:20px;
    height:20px;
    border-radius:999px;
    background:var(--booking-green);
    box-shadow:0 0 0 4px rgba(22,163,74,.14);
}
.booking-select-state{
    display:inline-flex;
    width:max-content;
    margin-top:10px;
    padding:7px 10px;
    border-radius:999px;
    background:var(--booking-soft);
    color:var(--booking-green);
    font-size:11px;
    line-height:1;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.05em;
}
.booking-service-card.selected .booking-select-state{
    background:var(--booking-green);
    color:#fff;
}
.booking-calendar-layout{
    display:grid;
    grid-template-columns:minmax(280px,360px) 1fr;
    gap:18px;
    align-items:start;
}
.booking-calendar-card,.booking-times-card{
    border-radius:24px;
    padding:18px;
    box-shadow:var(--booking-shadow);
}
.booking-calendar-head,.booking-times-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin-bottom:14px;
}
.booking-calendar-head div,.booking-times-head div{
    display:grid;
    gap:3px;
}
.booking-icon-btn{
    width:40px;
    height:40px;
    border:1px solid var(--booking-line);
    border-radius:14px;
    background:var(--booking-card);
    color:var(--booking-text);
    font-size:22px;
    font-weight:900;
    cursor:pointer;
}
.booking-icon-btn:hover{
    border-color:rgba(22,163,74,.45);
    color:var(--booking-green);
}
.booking-weekdays,.booking-calendar-days{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:6px;
}
.booking-weekdays{
    margin-bottom:8px;
}
.booking-weekdays span{
    text-align:center;
    color:var(--booking-muted);
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.05em;
}
.booking-calendar-day{
    min-height:42px;
    border:1px solid transparent;
    border-radius:14px;
    background:transparent;
    color:var(--booking-text);
    cursor:pointer;
    font-weight:900;
}
.booking-calendar-day strong{
    display:grid;
    place-items:center;
    width:32px;
    height:32px;
    margin:0 auto;
    border-radius:999px;
}
.booking-calendar-day:hover{
    background:var(--booking-soft);
    border-color:rgba(22,163,74,.20);
}
.booking-calendar-day.selected strong{
    background:var(--booking-green);
    color:#fff;
}
.booking-calendar-day.muted{
    color:var(--booking-muted);
    opacity:.55;
}
.booking-calendar-day.disabled{
    opacity:.28;
    cursor:not-allowed;
}
.booking-times-card{
    min-height:320px;
}
.booking-bottom-actions{
    position:sticky;
    bottom:0;
    background:var(--booking-card);
    z-index:10;
    border-top:1px solid var(--booking-line);
}
.booking-bottom-actions [hidden],
[hidden]{
    display:none !important;
}
.booking-btn{
    white-space:nowrap;
}
.booking-btn.secondary{
    background:var(--booking-card);
    color:var(--booking-text);
    border:1px solid var(--booking-line);
}
.booking-btn.secondary:hover{
    border-color:rgba(22,163,74,.45);
}
.booking-review{
    gap:12px;
}
.booking-review>div{
    border-radius:18px;
}
@media(max-width:900px){
    .booking-public-shell{
        width:min(100% - 20px, 1180px);
        padding:72px 0 28px;
    }
    .booking-theme-toggle{
        top:12px;
        right:12px;
        min-height:38px;
    }
    .booking-hero{
        grid-template-columns:1fr;
    }
    .booking-grid{
        grid-template-columns:1fr;
    }
    .booking-steps-card{
        position:static;
        padding:14px;
        border-radius:22px;
    }
    .booking-steps{
        display:flex;
        overflow:auto;
        gap:8px;
        padding-bottom:2px;
        scroll-snap-type:x proximity;
    }
    .booking-steps li{
        min-width:max-content;
        padding:10px 12px 10px 38px;
        scroll-snap-align:start;
    }
    .booking-flow-card{
        padding:18px;
        border-radius:24px;
    }
    .booking-calendar-layout{
        grid-template-columns:1fr;
    }
    .booking-service-grid,.booking-professional-grid,.booking-slots,.booking-fields-grid,.booking-review{
        grid-template-columns:1fr !important;
    }
    .booking-bottom-actions{
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:10px;
        padding:12px 0 0;
    }
    .booking-bottom-actions .booking-btn{
        width:100%;
        justify-content:center;
    }
    .booking-bottom-actions #bookingSubmit{
        grid-column:1 / -1;
    }
}
@media(max-width:520px){
    .booking-company-card,.booking-hero-copy{
        padding:18px;
        border-radius:22px;
    }
    .booking-company-card{
        align-items:flex-start;
    }
    .booking-logo{
        width:48px;
        height:48px;
        border-radius:16px;
    }
    .booking-company-card h1,.booking-hero-copy h2,.booking-section-head h2{
        font-size:22px;
    }
    .booking-calendar-card,.booking-times-card{
        padding:14px;
        border-radius:20px;
    }
    .booking-calendar-day{
        min-height:38px;
        border-radius:12px;
    }
    .booking-calendar-day strong{
        width:30px;
        height:30px;
    }
}


/* V36 - Hotfix mobile público: compactação, tema minimalista e experiência tipo Calendly/Google Agenda */
.booking-theme-toggle{
    width:42px;
    height:42px;
    min-height:42px;
    padding:0;
    display:grid;
    place-items:center;
    border-radius:16px;
}
.booking-theme-icon{
    width:20px;
    height:20px;
}
html[data-booking-theme="light"] .booking-theme-icon-sun{display:none}
html[data-booking-theme="dark"] .booking-theme-icon-moon{display:none}
.booking-copy-mobile{display:none}
.booking-success-summary{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px 14px;
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid var(--booking-line);
}
.booking-success-summary small{
    display:block;
    color:var(--booking-muted);
    font-size:10px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.05em;
}
.booking-success-summary b{
    display:block;
    color:var(--booking-text);
    font-size:13px;
    line-height:1.35;
    margin-top:3px;
}
.booking-result.success{
    display:block;
    padding:16px;
    border-radius:20px;
    background:var(--booking-soft);
    border:1px solid rgba(22,163,74,.28);
}
.booking-result.success strong,
.booking-result.success span{
    display:block;
}
.booking-result.success strong{
    color:var(--booking-green);
    font-size:18px;
    line-height:1.25;
}
.booking-result.success span{
    color:var(--booking-text);
    margin-top:5px;
    font-weight:700;
}
.booking-code-inputs input{
    text-align:center;
    font-size:20px;
    letter-spacing:.18em;
    font-weight:900;
}
.booking-slot{
    min-height:56px;
}
.booking-slot.selected{
    background:var(--booking-green) !important;
    color:#fff !important;
    border-color:var(--booking-green) !important;
}
.booking-slot.selected strong,
.booking-slot.selected span{
    color:#fff !important;
}
.booking-calendar-day:focus-visible,
.booking-slot:focus-visible,
.booking-service-card:focus-visible,
.booking-pro-card:focus-visible,
.booking-btn:focus-visible,
.booking-theme-toggle:focus-visible{
    outline:3px solid rgba(22,163,74,.28);
    outline-offset:2px;
}

@media(max-width:768px){
    body.booking-public-body{
        overflow-x:hidden;
    }
    .booking-public-shell{
        width:100%;
        padding:62px 12px calc(96px + env(safe-area-inset-bottom));
    }
    .booking-theme-toggle{
        top:12px;
        right:14px;
        width:40px;
        height:40px;
        min-height:40px;
        border-radius:14px;
        box-shadow:0 10px 30px rgba(15,23,42,.10);
    }
    .booking-theme-icon{
        width:19px;
        height:19px;
    }
    .booking-hero{
        display:grid;
        grid-template-columns:1fr;
        gap:10px;
        margin-bottom:12px;
    }
    .booking-company-card{
        padding:14px;
        gap:12px;
        border-radius:20px;
        min-height:0;
    }
    .booking-logo{
        width:44px;
        height:44px;
        min-width:44px;
        border-radius:14px;
        font-size:14px;
    }
    .booking-eyebrow{
        padding:5px 9px;
        font-size:9px;
        letter-spacing:.10em;
        line-height:1;
        margin-bottom:4px;
    }
    .booking-company-card h1{
        margin:4px 0 1px;
        font-size:22px;
        line-height:1.08;
        letter-spacing:-.04em;
    }
    .booking-company-card p,
    .booking-company-card small{
        display:inline;
        font-size:13px;
        line-height:1.25;
    }
    .booking-company-card p::after{
        content:" · ";
    }
    .booking-hero-copy{
        padding:16px;
        border-radius:20px;
        gap:8px;
    }
    .booking-hero-copy h2{
        font-size:23px;
        line-height:1.12;
        margin:0 0 6px;
    }
    .booking-hero-copy p{
        font-size:14px;
        line-height:1.42;
        margin:0;
    }
    .booking-copy-full{display:none}
    .booking-copy-mobile{display:inline}
    .booking-rule{
        width:max-content;
        max-width:100%;
        margin-top:8px;
        padding:7px 10px;
        font-size:13px;
        line-height:1;
        border-radius:999px;
    }
    .booking-alert{
        margin:0 0 10px;
        padding:10px 12px;
        border-radius:16px;
        font-size:13px;
        line-height:1.35;
    }
    .booking-grid{
        display:grid;
        grid-template-columns:1fr;
        gap:10px;
    }
    .booking-steps-card{
        padding:12px;
        border-radius:18px;
        overflow:hidden;
    }
    .booking-steps-card h2{
        font-size:16px;
        margin:0 0 9px;
    }
    .booking-steps{
        display:flex;
        gap:8px;
        overflow-x:auto;
        padding-bottom:4px;
        scrollbar-width:none;
    }
    .booking-steps::-webkit-scrollbar{display:none}
    .booking-steps li{
        flex:0 0 auto;
        padding:9px 10px 9px 35px;
        border-radius:14px;
        font-size:13px;
        line-height:1;
        min-height:38px;
    }
    .booking-steps li::before{
        left:9px;
        width:20px;
        height:20px;
        border-radius:7px;
        font-size:11px;
    }
    .booking-flow-card{
        padding:0;
        border-radius:22px;
        overflow:hidden;
        min-height:0;
    }
    .booking-form{
        min-height:0;
    }
    .booking-step-panel{
        padding:18px;
    }
    .booking-section-head{
        margin-bottom:14px;
    }
    .booking-section-head span{
        font-size:10px;
        letter-spacing:.12em;
    }
    .booking-section-head h2{
        font-size:24px;
        line-height:1.1;
        margin:7px 0 6px;
    }
    .booking-section-head p{
        font-size:14px;
        line-height:1.42;
        margin:0;
    }
    .booking-service-grid,
    .booking-professional-grid,
    .booking-fields-grid,
    .booking-review{
        gap:10px;
    }
    .booking-service-card,
    .booking-pro-card{
        padding:14px;
        border-radius:18px;
        min-height:0;
    }
    .booking-service-card span{
        padding:5px 9px;
        font-size:10px;
        line-height:1;
    }
    .booking-service-card strong,
    .booking-pro-card strong{
        font-size:17px;
        line-height:1.25;
        margin-top:8px;
    }
    .booking-service-card small,
    .booking-pro-card small{
        font-size:13px;
        line-height:1.25;
        margin-top:5px;
    }
    .booking-service-card.selected::after{
        width:16px;
        height:16px;
        right:12px;
        top:12px;
        box-shadow:0 0 0 4px rgba(22,163,74,.14);
    }
    .booking-select-state{
        margin-top:9px;
        padding:7px 10px;
        font-size:10px;
        letter-spacing:.08em;
    }
    .booking-calendar-layout{
        gap:10px;
    }
    .booking-calendar-card,
    .booking-times-card{
        padding:12px;
        border-radius:18px;
        min-height:0;
        box-shadow:0 10px 28px rgba(15,23,42,.06);
    }
    .booking-calendar-head,
    .booking-times-head{
        margin-bottom:10px;
        gap:8px;
    }
    .booking-calendar-head strong,
    .booking-times-head strong{
        font-size:15px;
        line-height:1.15;
    }
    .booking-calendar-head small,
    .booking-times-head small{
        font-size:11px;
    }
    .booking-icon-btn{
        width:36px;
        height:36px;
        border-radius:12px;
        font-size:20px;
    }
    .booking-weekdays{
        gap:4px;
        margin-bottom:5px;
    }
    .booking-weekdays span{
        font-size:9px;
    }
    .booking-calendar-days{
        gap:4px;
    }
    .booking-calendar-day{
        min-height:34px;
        border-radius:10px;
        font-size:12px;
    }
    .booking-calendar-day strong{
        width:28px;
        height:28px;
    }
    .booking-slots{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:8px;
    }
    .booking-slot{
        min-height:48px;
        padding:10px;
        border-radius:14px;
    }
    .booking-slot strong{
        font-size:16px;
        line-height:1;
    }
    .booking-slot span{
        display:none;
    }
    .booking-empty{
        grid-column:1 / -1;
        padding:14px;
        border-radius:16px;
        font-size:13px;
    }
    .booking-fields-grid label{
        padding:12px;
        border-radius:16px;
        font-size:11px;
    }
    .booking-fields-grid input,
    .booking-fields-grid textarea,
    .booking-code-inputs input{
        min-height:42px;
        border-radius:13px;
        padding:0 12px;
    }
    .booking-code-box{
        padding:12px;
        border-radius:16px;
        gap:10px;
    }
    .booking-code-inputs{
        display:grid;
        grid-template-columns:1fr;
        gap:8px;
    }
    .booking-code-inputs input{
        font-size:20px;
        height:46px;
    }
    .booking-review{
        grid-template-columns:1fr !important;
    }
    .booking-review>div{
        padding:12px;
        border-radius:16px;
    }
    .booking-review small{
        font-size:10px;
    }
    .booking-review strong{
        font-size:14px;
        line-height:1.25;
    }
    .booking-bottom-actions{
        position:fixed;
        left:0;
        right:0;
        bottom:0;
        z-index:50;
        display:grid;
        grid-template-columns:auto 1fr;
        gap:10px;
        padding:10px 12px calc(10px + env(safe-area-inset-bottom));
        background:color-mix(in srgb, var(--booking-card) 92%, transparent);
        backdrop-filter:blur(16px);
        border-top:1px solid var(--booking-line);
        box-shadow:0 -12px 36px rgba(15,23,42,.12);
    }
    .booking-bottom-actions .booking-btn{
        min-height:50px;
        border-radius:16px;
        width:100%;
        justify-content:center;
        font-size:14px;
    }
    .booking-bottom-actions #bookingBack{
        width:82px;
    }
    .booking-bottom-actions #bookingNext{
        grid-column:auto;
    }
    .booking-bottom-actions #bookingSubmit{
        grid-column:1 / -1;
    }
    .booking-result{
        margin-bottom:10px;
    }
    .booking-success-summary{
        grid-template-columns:1fr;
    }
}
@media(max-width:480px){
    .booking-public-shell{
        padding-left:10px;
        padding-right:10px;
    }
    .booking-company-card,
    .booking-hero-copy,
    .booking-steps-card,
    .booking-flow-card{
        border-radius:18px;
    }
    .booking-company-card h1,
    .booking-hero-copy h2,
    .booking-section-head h2{
        font-size:21px;
    }
    .booking-service-card strong,
    .booking-pro-card strong{
        font-size:16px;
    }
    .booking-slots{
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    }
    .booking-slot{
        min-height:44px;
        padding:9px 6px;
        text-align:center;
    }
    .booking-slot strong{
        font-size:14px;
    }
    .booking-calendar-day{
        min-height:32px;
    }
    .booking-calendar-day strong{
        width:26px;
        height:26px;
    }
}


/* V37 - Mobile: etapas em cima, conteúdo abaixo e botões Voltar/Continuar otimizados */
@media(max-width:768px){
    .booking-grid{
        display:flex !important;
        flex-direction:column !important;
        gap:10px !important;
    }

    .booking-steps-card{
        order:1 !important;
        position:sticky !important;
        top:8px !important;
        z-index:25 !important;
        margin:0 !important;
        background:color-mix(in srgb, var(--booking-card) 94%, transparent) !important;
        backdrop-filter:blur(14px);
        box-shadow:0 10px 30px rgba(15,23,42,.08) !important;
    }

    .booking-flow-card{
        order:2 !important;
        margin:0 !important;
    }

    .booking-step-panel.active{
        display:block !important;
    }

    .booking-step-panel{
        min-height:auto !important;
    }

    .booking-steps-card h2{
        display:none !important;
    }

    .booking-steps{
        margin:0 !important;
        padding:0 0 3px !important;
        gap:7px !important;
        scroll-padding-left:2px;
    }

    .booking-steps li{
        min-height:34px !important;
        padding:8px 10px 8px 32px !important;
        border-radius:999px !important;
        font-size:12px !important;
        font-weight:900 !important;
        white-space:nowrap !important;
    }

    .booking-steps li::before{
        left:8px !important;
        width:18px !important;
        height:18px !important;
        border-radius:999px !important;
        font-size:10px !important;
    }

    .booking-section-head{
        margin-bottom:12px !important;
    }

    .booking-section-head h2{
        font-size:22px !important;
    }

    .booking-section-head p{
        font-size:13px !important;
    }

    .booking-bottom-actions{
        grid-template-columns:92px 1fr !important;
        align-items:center !important;
        gap:10px !important;
        padding:10px 12px calc(10px + env(safe-area-inset-bottom)) !important;
    }

    .booking-bottom-actions.no-back{
        grid-template-columns:1fr !important;
    }

    .booking-bottom-actions.no-back #bookingBack{
        display:none !important;
    }

    .booking-bottom-actions.no-back #bookingNext{
        grid-column:1 / -1 !important;
    }

    .booking-bottom-actions.review-step{
        grid-template-columns:92px 1fr !important;
    }

    .booking-bottom-actions.review-step #bookingSubmit{
        grid-column:2 !important;
    }

    .booking-bottom-actions.review-step #bookingBack{
        display:flex !important;
        visibility:visible !important;
    }

    .booking-bottom-actions .booking-btn{
        min-height:48px !important;
        padding:0 14px !important;
        border-radius:16px !important;
        font-size:14px !important;
        font-weight:950 !important;
    }

    .booking-bottom-actions #bookingBack{
        width:92px !important;
        min-width:92px !important;
    }

    .booking-bottom-actions #bookingNext,
    .booking-bottom-actions #bookingSubmit{
        width:100% !important;
    }

    .booking-flow-card{
        padding-bottom:0 !important;
    }

    .booking-public-shell{
        padding-bottom:calc(92px + env(safe-area-inset-bottom)) !important;
    }
}

@media(max-width:480px){
    .booking-steps{
        gap:6px !important;
    }

    .booking-steps li{
        padding:7px 9px 7px 30px !important;
        font-size:11px !important;
        min-height:32px !important;
    }

    .booking-steps li::before{
        width:17px !important;
        height:17px !important;
        font-size:9px !important;
    }

    .booking-bottom-actions{
        grid-template-columns:84px 1fr !important;
        padding-left:10px !important;
        padding-right:10px !important;
    }

    .booking-bottom-actions.review-step{
        grid-template-columns:84px 1fr !important;
    }

    .booking-bottom-actions #bookingBack{
        width:84px !important;
        min-width:84px !important;
    }

    .booking-bottom-actions .booking-btn{
        min-height:46px !important;
        font-size:13px !important;
    }
}


/* V38 - Fluxo visual público: card informativo no final e ação próxima da etapa */
.booking-hero{
    grid-template-columns:minmax(260px, 420px) !important;
    justify-content:start;
}

.booking-info-footer{
    display:grid;
    gap:12px;
    margin-top:18px;
}

.booking-hero-copy-footer{
    max-width:100%;
}

.booking-bottom-actions{
    position:static !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:12px !important;
    margin-top:18px !important;
    padding:16px 0 0 !important;
    border-top:1px solid var(--booking-line) !important;
    background:transparent !important;
    box-shadow:none !important;
    backdrop-filter:none !important;
}

.booking-bottom-actions .booking-btn:disabled{
    opacity:.45;
    cursor:not-allowed;
    filter:grayscale(.25);
}

.booking-bottom-actions.no-back{
    justify-content:flex-end !important;
}

.booking-bottom-actions.no-back #bookingBack{
    display:none !important;
}

.booking-bottom-actions.no-back #bookingNext{
    width:min(100%, 320px) !important;
}

.booking-bottom-actions.review-step{
    justify-content:space-between !important;
}

.booking-bottom-actions.review-step #bookingSubmit{
    width:min(100%, 320px) !important;
}

@media(max-width:768px){
    .booking-public-shell{
        padding-bottom:24px !important;
    }

    .booking-hero{
        grid-template-columns:1fr !important;
        gap:10px !important;
        margin-bottom:10px !important;
    }

    .booking-info-footer{
        margin-top:12px !important;
        gap:10px !important;
    }

    .booking-hero-copy-footer{
        padding:14px !important;
        border-radius:18px !important;
    }

    .booking-hero-copy-footer h2{
        font-size:20px !important;
        line-height:1.15 !important;
        margin:0 0 6px !important;
    }

    .booking-hero-copy-footer p{
        font-size:13px !important;
        line-height:1.35 !important;
    }

    .booking-hero-copy-footer .booking-rule{
        margin-top:8px !important;
        padding:7px 10px !important;
        font-size:12px !important;
    }

    .booking-flow-card{
        padding-bottom:0 !important;
    }

    .booking-bottom-actions{
        position:static !important;
        display:grid !important;
        grid-template-columns:92px 1fr !important;
        padding:12px 18px 18px !important;
        margin-top:0 !important;
        border-top:1px solid var(--booking-line) !important;
        background:var(--booking-card) !important;
        box-shadow:none !important;
    }

    .booking-bottom-actions.no-back{
        grid-template-columns:1fr !important;
    }

    .booking-bottom-actions.no-back #bookingNext{
        width:100% !important;
    }

    .booking-bottom-actions.review-step{
        grid-template-columns:92px 1fr !important;
    }

    .booking-bottom-actions.review-step #bookingSubmit{
        width:100% !important;
        grid-column:2 !important;
    }

    .booking-bottom-actions .booking-btn{
        width:100% !important;
        min-height:48px !important;
        border-radius:16px !important;
        justify-content:center !important;
    }

    .booking-bottom-actions #bookingBack{
        width:92px !important;
        min-width:92px !important;
    }

    .booking-step-panel{
        padding-bottom:12px !important;
    }

    .booking-alert.success{
        margin:0 !important;
        padding:10px 12px !important;
        border-radius:16px !important;
        font-size:13px !important;
    }
}

@media(max-width:480px){
    .booking-bottom-actions{
        grid-template-columns:82px 1fr !important;
        padding:10px 14px 16px !important;
    }

    .booking-bottom-actions.review-step{
        grid-template-columns:82px 1fr !important;
    }

    .booking-bottom-actions #bookingBack{
        width:82px !important;
        min-width:82px !important;
    }

    .booking-bottom-actions .booking-btn{
        min-height:46px !important;
        font-size:13px !important;
    }

    .booking-hero-copy-footer h2{
        font-size:19px !important;
    }
}

/* ===== BVMS Beta / Onboarding / Status ===== */
:root{--bvms-radius-lg:20px;--bvms-shadow-soft:0 2px 10px rgba(15,23,42,.05);--bvms-green:#16a34a;--bvms-blue:#2563eb;--bvms-orange:#f59e0b;--bvms-purple:#7c3aed}
.bvms-beta-onboarding{border:1px solid var(--border-color,#e5e7eb);background:var(--surface-card,#fff);border-radius:22px;padding:18px;box-shadow:var(--bvms-shadow-soft);margin:16px 0;display:grid;gap:14px}
.bvms-beta-onboarding__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.bvms-beta-onboarding__head h3{margin:0;font-size:18px;font-weight:900}.bvms-beta-onboarding__head p{margin:4px 0 0;color:var(--text-muted,#64748b);font-size:14px}.bvms-beta-progress{min-width:92px;text-align:right;font-weight:900;color:var(--primary-color,#2563eb)}.bvms-beta-progress span{display:block;height:8px;border-radius:999px;background:var(--surface-muted,#f1f5f9);margin-top:8px;overflow:hidden}.bvms-beta-progress i{display:block;height:100%;background:var(--primary-color,#2563eb);border-radius:999px}.bvms-beta-checklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.bvms-beta-checklist a{border:1px solid var(--border-color,#e5e7eb);border-radius:16px;padding:12px;text-decoration:none;color:var(--text-color,#0f172a);display:flex;gap:10px;align-items:center;background:var(--surface-muted,#f8fafc);font-weight:800}.bvms-beta-checklist a.done{border-color:rgba(22,163,74,.32);background:rgba(22,163,74,.08);color:#15803d}.bvms-beta-checklist a span:first-child{width:22px;height:22px;border-radius:999px;display:grid;place-items:center;background:#fff;border:1px solid var(--border-color,#e5e7eb);font-size:12px}.bvms-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.bvms-status-card{border:1px solid var(--border-color,#e5e7eb);background:var(--surface-card,#fff);border-radius:20px;padding:18px;box-shadow:var(--bvms-shadow-soft)}.bvms-status-card small{display:block;color:var(--text-muted,#64748b);font-weight:800;text-transform:uppercase;letter-spacing:.06em}.bvms-status-card strong{display:block;margin-top:8px;font-size:22px}.bvms-status-card.ok strong{color:#16a34a}.bvms-status-card.warn strong{color:#f59e0b}.bvms-status-card.fail strong{color:#dc2626}.bvms-status-table{width:100%;border-collapse:separate;border-spacing:0 8px}.bvms-status-table td,.bvms-status-table th{padding:12px;background:var(--surface-card,#fff);border-top:1px solid var(--border-color,#e5e7eb);border-bottom:1px solid var(--border-color,#e5e7eb)}.bvms-status-table td:first-child,.bvms-status-table th:first-child{border-left:1px solid var(--border-color,#e5e7eb);border-radius:14px 0 0 14px}.bvms-status-table td:last-child,.bvms-status-table th:last-child{border-right:1px solid var(--border-color,#e5e7eb);border-radius:0 14px 14px 0}@media(max-width:768px){.bvms-beta-onboarding__head{display:grid}.bvms-status-table{display:block;overflow:auto}.bvms-beta-checklist{grid-template-columns:1fr}}
html.theme-dark .bvms-beta-onboarding,html.theme-dark .bvms-status-card,html.theme-dark .bvms-status-table td,html.theme-dark .bvms-status-table th{background:#111827;border-color:#29384d;color:#e5e7eb}html.theme-dark .bvms-beta-checklist a{background:#0f172a;border-color:#29384d;color:#e5e7eb}html.theme-dark .bvms-beta-checklist a span:first-child{background:#111827;border-color:#29384d}


/* V41 - Hotfix beta: correção de concatenação + checklist compacto + preservação visual dos módulos */
:root{
    --bvms-radius-card:18px;
    --bvms-radius-control:14px;
    --bvms-beta-surface:#ffffff;
    --bvms-beta-surface-soft:#f8fafc;
    --bvms-beta-border:#e2e8f0;
    --bvms-beta-text:#0f172a;
    --bvms-beta-muted:#64748b;
    --bvms-beta-shadow:0 10px 30px rgba(15,23,42,.06);
}

html.theme-dark{
    --bvms-beta-surface:#111827;
    --bvms-beta-surface-soft:#0f172a;
    --bvms-beta-border:#29384d;
    --bvms-beta-text:#f8fafc;
    --bvms-beta-muted:#9aa7bb;
    --bvms-beta-shadow:0 16px 38px rgba(0,0,0,.28);
}

/* Corrige checklist que ficou grande demais no topo das páginas */
.bvms-beta-onboarding,
.bvms-beta-onboarding.bvms-beta-onboarding--compact{
    border:1px solid var(--bvms-beta-border) !important;
    background:var(--bvms-beta-surface) !important;
    color:var(--bvms-beta-text) !important;
    border-radius:18px !important;
    padding:12px 14px !important;
    box-shadow:var(--bvms-beta-shadow) !important;
    margin:0 0 14px !important;
    display:grid !important;
    gap:10px !important;
}

.bvms-beta-onboarding__head{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:12px !important;
}

.bvms-beta-onboarding__head h3{
    margin:0 !important;
    color:var(--bvms-beta-text) !important;
    font-size:15px !important;
    line-height:1.15 !important;
    font-weight:950 !important;
    letter-spacing:-.03em !important;
}

.bvms-beta-onboarding__head p{
    margin:3px 0 0 !important;
    color:var(--bvms-beta-muted) !important;
    font-size:12px !important;
    line-height:1.35 !important;
    font-weight:700 !important;
}

.bvms-beta-progress{
    min-width:76px !important;
    text-align:right !important;
    color:var(--svc-green, var(--primary-color, #16a34a)) !important;
    font-size:12px !important;
    line-height:1 !important;
    font-weight:950 !important;
}

.bvms-beta-progress span{
    display:block !important;
    width:72px !important;
    height:6px !important;
    margin-top:7px !important;
    overflow:hidden !important;
    border-radius:999px !important;
    background:var(--bvms-beta-surface-soft) !important;
}

.bvms-beta-progress i{
    display:block !important;
    height:100% !important;
    border-radius:999px !important;
    background:var(--svc-green, var(--primary-color, #16a34a)) !important;
}

.bvms-beta-checklist{
    display:flex !important;
    flex-wrap:nowrap !important;
    gap:8px !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    padding:1px 2px 4px !important;
    scrollbar-width:thin !important;
}

.bvms-beta-checklist a{
    min-height:40px !important;
    flex:0 0 auto !important;
    width:auto !important;
    max-width:230px !important;
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
    padding:8px 11px !important;
    border:1px solid var(--bvms-beta-border) !important;
    border-radius:14px !important;
    background:var(--bvms-beta-surface-soft) !important;
    color:var(--bvms-beta-text) !important;
    text-decoration:none !important;
    font-size:12px !important;
    line-height:1.18 !important;
    font-weight:850 !important;
    box-shadow:none !important;
}

.bvms-beta-checklist a strong{
    min-width:0 !important;
    display:block !important;
    overflow:hidden !important;
    white-space:nowrap !important;
    text-overflow:ellipsis !important;
    color:inherit !important;
    font-size:12px !important;
    line-height:1.18 !important;
    font-weight:900 !important;
}

.bvms-beta-checklist a span:first-child{
    width:20px !important;
    height:20px !important;
    min-width:20px !important;
    display:grid !important;
    place-items:center !important;
    border-radius:999px !important;
    border:1px solid var(--bvms-beta-border) !important;
    background:var(--bvms-beta-surface) !important;
    color:var(--bvms-beta-muted) !important;
    font-size:11px !important;
    line-height:1 !important;
    font-weight:950 !important;
}

.bvms-beta-checklist a.done{
    border-color:rgba(22,163,74,.28) !important;
    background:rgba(22,163,74,.08) !important;
    color:var(--svc-green, #16a34a) !important;
}

.bvms-beta-details{
    margin-top:-4px !important;
}

.bvms-beta-details summary{
    width:max-content !important;
    max-width:100% !important;
    cursor:pointer !important;
    padding:7px 10px !important;
    border-radius:999px !important;
    background:var(--bvms-beta-surface-soft) !important;
    color:var(--bvms-beta-muted) !important;
    font-size:11px !important;
    line-height:1 !important;
    font-weight:900 !important;
    list-style:none !important;
}

.bvms-beta-details summary::-webkit-details-marker{
    display:none !important;
}

.bvms-beta-details[open] summary{
    color:var(--svc-green, #16a34a) !important;
}

.bvms-beta-checklist-full{
    margin-top:8px !important;
}

/* Preservação visual após centralização: garante cards e KPIs com superfície, borda e contraste */
body.services-body .svc-card,
body.services-body .svc-calendar-card,
body.services-body .svc-kpi,
body.services-body .svc-kpi-rich,
body.services-body .svc-client-card,
body.services-body .svc-list-card,
body.services-body .svc-dashboard-hero,
body.services-body .svc-dashboard-section,
body.app-body .card,
body.app-body .panel,
body.app-body .metric-card{
    background:var(--svc-panel, var(--v2-surface, #ffffff)) !important;
    border:1px solid var(--svc-line, var(--v2-border, #e2e8f0)) !important;
    border-radius:18px !important;
    box-shadow:var(--svc-shadow, 0 2px 10px rgba(15,23,42,.05)) !important;
    color:var(--svc-text, var(--v2-text, #0f172a)) !important;
}

body.services-body .svc-dashboard-section{
    padding:16px !important;
}

body.services-body .svc-dashboard-section > .svc-section-title:first-child,
body.services-body .svc-section-title{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:12px !important;
    margin:0 0 12px !important;
}

body.services-body .svc-section-title h2,
body.services-body .svc-card h2,
body.services-body .svc-dashboard-hero h2{
    color:var(--svc-text, #0f172a) !important;
}

body.services-body .svc-section-title small,
body.services-body .svc-card p,
body.services-body .svc-dashboard-hero p{
    color:var(--svc-muted, #64748b) !important;
}

/* Reduz exagero de títulos/linhas depois do merge */
body.services-body .svc-dashboard-hero{
    padding:16px !important;
    display:grid !important;
    gap:12px !important;
}

body.services-body .svc-dashboard-hero h2{
    font-size:clamp(1.45rem, 2.4vw, 2.15rem) !important;
    line-height:1.05 !important;
    margin:0 !important;
}

body.services-body .svc-dashboard-hero p{
    max-width:860px !important;
    margin:0 !important;
    font-size:14px !important;
    line-height:1.45 !important;
}

body.services-body .svc-kpi,
body.services-body .svc-kpi-rich{
    padding:14px !important;
    min-height:118px !important;
}

body.services-body .svc-kpi strong,
body.services-body .svc-kpi-rich strong{
    color:var(--svc-text, #0f172a) !important;
}

@media(max-width:992px){
    .bvms-beta-onboarding{
        margin:0 0 10px !important;
        padding:10px !important;
        border-radius:16px !important;
    }

    .bvms-beta-onboarding__head{
        align-items:flex-start !important;
    }

    .bvms-beta-onboarding__head p{
        display:none !important;
    }

    .bvms-beta-checklist a{
        min-height:36px !important;
        max-width:190px !important;
        padding:7px 9px !important;
        border-radius:13px !important;
        font-size:11px !important;
    }

    .bvms-beta-checklist a strong{
        font-size:11px !important;
    }

    .bvms-beta-progress span{
        width:58px !important;
    }

    body.services-body .svc-dashboard-section{
        padding:12px !important;
    }
}

@media(max-width:540px){
    .bvms-beta-onboarding__head h3{
        font-size:13px !important;
    }

    .bvms-beta-progress{
        min-width:60px !important;
        font-size:11px !important;
    }

    .bvms-beta-checklist a{
        max-width:165px !important;
    }
}


/* V43 - Tema escuro robusto e compatível após centralização */
html.theme-dark,
html[data-theme="dark"]{
    color-scheme:dark;
}

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

html.theme-dark body.app-body,
html[data-theme="dark"] body.app-body{
    --v2-bg:#07111f;
    --v2-surface:#111827;
    --v2-text:#f8fafc;
    --v2-muted:#94a3b8;
    --v2-border:#26364f;
    --v2-soft:#0f172a;
    --bvms-bg:#07111f;
    --bvms-sidebar-bg:#0f172a;
    --bvms-border:#26364f;
    --bvms-text:#f8fafc;
    --bvms-muted:#94a3b8;
    --surface-card:#111827;
    --text-primary:#f8fafc;
    --text-muted:#94a3b8;
    --border-color:#26364f;
    background:#07111f !important;
    color:#f8fafc !important;
}

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

html.theme-dark body.app-body .sidebar-clean,
html.theme-dark body.app-body .erp-sidebar,
html.theme-dark body.app-body .app-sidebar,
html.theme-dark body.app-body .topbar-clean,
html.theme-dark body.app-body .topbar,
html[data-theme="dark"] body.app-body .sidebar-clean,
html[data-theme="dark"] body.app-body .erp-sidebar,
html[data-theme="dark"] body.app-body .app-sidebar,
html[data-theme="dark"] body.app-body .topbar-clean,
html[data-theme="dark"] body.app-body .topbar{
    background:#0f172a !important;
    border-color:#26364f !important;
    color:#f8fafc !important;
}

html.theme-dark body.app-body .card,
html.theme-dark body.app-body .panel,
html.theme-dark body.app-body .metric-card,
html.theme-dark body.app-body .kpi-clean,
html.theme-dark body.app-body .filter-card-clean,
html.theme-dark body.app-body .catalog-card-clean,
html.theme-dark body.app-body .page-hero-clean,
html.theme-dark body.app-body .dashboard-card,
html.theme-dark body.app-body .bvms-beta-onboarding,
html[data-theme="dark"] body.app-body .card,
html[data-theme="dark"] body.app-body .panel,
html[data-theme="dark"] body.app-body .metric-card,
html[data-theme="dark"] body.app-body .kpi-clean,
html[data-theme="dark"] body.app-body .filter-card-clean,
html[data-theme="dark"] body.app-body .catalog-card-clean,
html[data-theme="dark"] body.app-body .page-hero-clean,
html[data-theme="dark"] body.app-body .dashboard-card,
html[data-theme="dark"] body.app-body .bvms-beta-onboarding{
    background:#111827 !important;
    color:#f8fafc !important;
    border-color:#26364f !important;
    box-shadow:0 16px 38px rgba(0,0,0,.28) !important;
}

html.theme-dark body.app-body input,
html.theme-dark body.app-body select,
html.theme-dark body.app-body textarea,
html[data-theme="dark"] body.app-body input,
html[data-theme="dark"] body.app-body select,
html[data-theme="dark"] body.app-body textarea{
    background:#0f172a !important;
    color:#f8fafc !important;
    border-color:#26364f !important;
}

html.theme-dark body.app-body .topbar-clean-icon,
html.theme-dark body.app-body [data-theme-toggle],
html.theme-dark body.app-body .theme-toggle-clean,
html[data-theme="dark"] body.app-body .topbar-clean-icon,
html[data-theme="dark"] body.app-body [data-theme-toggle],
html[data-theme="dark"] body.app-body .theme-toggle-clean{
    background:#111827 !important;
    color:#f8fafc !important;
    border-color:#26364f !important;
}

html.theme-dark .moon-icon,
html[data-theme="dark"] .moon-icon{ display:none !important; }
html.theme-dark .sun-icon,
html[data-theme="dark"] .sun-icon{ display:inline-flex !important; }

html.theme-light .sun-icon,
html[data-theme="light"] .sun-icon{ display:none !important; }
html.theme-light .moon-icon,
html[data-theme="light"] .moon-icon{ display:inline-flex !important; }

/* Landing: evita tela 500 por estilo quebrado e preserva claro/escuro */
body.landing-body{
    background:#f6f8fb;
    color:#0f172a;
}

html.theme-dark body.landing-body,
html[data-theme="dark"] body.landing-body{
    background:#07111f !important;
    color:#f8fafc !important;
}

html.theme-dark body.landing-body .lp-card,
html.theme-dark body.landing-body .lp-section,
html.theme-dark body.landing-body .lp-header,
html[data-theme="dark"] body.landing-body .lp-card,
html[data-theme="dark"] body.landing-body .lp-section,
html[data-theme="dark"] body.landing-body .lp-header{
    background:#111827 !important;
    color:#f8fafc !important;
    border-color:#26364f !important;
}


/* V44 - Página pública de agendamento desktop profissional: duas colunas + resumo lateral */
.booking-public-body{
    min-height:100vh;
}

.booking-hero{
    grid-template-columns:minmax(260px, 420px) !important;
    justify-content:start !important;
    margin-bottom:18px !important;
}

.booking-company-card{
    padding:18px !important;
    border-radius:22px !important;
}

.booking-logo.small{
    width:44px !important;
    height:44px !important;
    min-width:44px !important;
    border-radius:14px !important;
    font-size:13px !important;
}

.booking-grid-with-summary{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) minmax(320px, 380px) !important;
    gap:20px !important;
    align-items:start !important;
}

.booking-main-column{
    min-width:0 !important;
    display:grid !important;
    gap:14px !important;
}

.booking-grid-with-summary .booking-steps-card{
    position:static !important;
    padding:14px !important;
    border-radius:20px !important;
}

.booking-grid-with-summary .booking-steps-card h2{
    display:none !important;
}

.booking-grid-with-summary .booking-steps{
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
    overflow-x:auto !important;
    padding:2px 2px 4px !important;
    margin:0 !important;
    scrollbar-width:thin !important;
}

.booking-grid-with-summary .booking-steps li{
    flex:1 0 max-content !important;
    min-height:38px !important;
    padding:10px 13px 10px 40px !important;
    border-radius:999px !important;
    font-size:13px !important;
    line-height:1 !important;
    white-space:nowrap !important;
}

.booking-grid-with-summary .booking-steps li::before{
    left:12px !important;
    width:20px !important;
    height:20px !important;
    border-radius:999px !important;
    font-size:11px !important;
}

.booking-grid-with-summary .booking-flow-card{
    padding:0 !important;
    border-radius:24px !important;
    min-height:0 !important;
    overflow:hidden !important;
}

.booking-grid-with-summary .booking-step-panel{
    padding:24px !important;
}

.booking-grid-with-summary .booking-bottom-actions{
    padding:16px 24px 22px !important;
    margin:0 !important;
    background:var(--booking-card) !important;
    border-top:1px solid var(--booking-line) !important;
}

.booking-service-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
}

.booking-professional-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
}

.booking-calendar-layout{
    grid-template-columns:minmax(280px, 340px) minmax(0, 1fr) !important;
}

.booking-summary-card{
    position:sticky !important;
    top:20px !important;
    display:grid !important;
    gap:16px !important;
    padding:18px !important;
    border:1px solid var(--booking-line) !important;
    border-radius:24px !important;
    background:var(--booking-card) !important;
    color:var(--booking-text) !important;
    box-shadow:var(--booking-shadow) !important;
}

.booking-summary-company{
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
    padding-bottom:14px !important;
    border-bottom:1px solid var(--booking-line) !important;
}

.booking-summary-company small,
.booking-summary-company em{
    display:block !important;
    color:var(--booking-muted) !important;
    font-size:12px !important;
    line-height:1.25 !important;
    font-style:normal !important;
    font-weight:750 !important;
}

.booking-summary-company strong{
    display:block !important;
    color:var(--booking-text) !important;
    font-size:16px !important;
    line-height:1.2 !important;
    font-weight:950 !important;
}

.booking-summary-head span{
    display:inline-flex !important;
    width:max-content !important;
    padding:6px 10px !important;
    border-radius:999px !important;
    background:var(--booking-soft) !important;
    color:var(--booking-green-dark) !important;
    font-size:10px !important;
    line-height:1 !important;
    font-weight:950 !important;
    letter-spacing:.08em !important;
    text-transform:uppercase !important;
}

.booking-summary-head h2{
    margin:8px 0 5px !important;
    color:var(--booking-text) !important;
    font-size:23px !important;
    line-height:1.05 !important;
    letter-spacing:-.04em !important;
}

.booking-summary-head p{
    margin:0 !important;
    color:var(--booking-muted) !important;
    font-size:13px !important;
    line-height:1.45 !important;
    font-weight:700 !important;
}

.booking-summary-list{
    display:grid !important;
    gap:9px !important;
}

.booking-summary-list div{
    display:grid !important;
    gap:3px !important;
    padding:11px 12px !important;
    border:1px solid var(--booking-line) !important;
    border-radius:16px !important;
    background:var(--booking-card-2, rgba(148,163,184,.08)) !important;
}

.booking-summary-list small{
    color:var(--booking-muted) !important;
    font-size:10px !important;
    line-height:1 !important;
    font-weight:950 !important;
    text-transform:uppercase !important;
    letter-spacing:.07em !important;
}

.booking-summary-list strong{
    color:var(--booking-text) !important;
    font-size:13px !important;
    line-height:1.28 !important;
    font-weight:900 !important;
    word-break:break-word !important;
}

.booking-summary-list strong.empty{
    color:var(--booking-muted) !important;
}

.booking-summary-secure{
    display:grid !important;
    gap:5px !important;
    padding:13px !important;
    border-radius:18px !important;
    background:var(--booking-soft) !important;
    border:1px solid rgba(22,163,74,.18) !important;
}

.booking-summary-secure strong{
    color:var(--booking-green-dark) !important;
    font-size:13px !important;
    font-weight:950 !important;
}

.booking-summary-secure span{
    color:var(--booking-muted) !important;
    font-size:12px !important;
    line-height:1.4 !important;
    font-weight:750 !important;
}

html[data-booking-theme="dark"] .booking-summary-secure span{
    color:var(--booking-text) !important;
    opacity:.82;
}

@media(max-width:1080px){
    .booking-grid-with-summary{
        grid-template-columns:minmax(0, 1fr) 320px !important;
        gap:16px !important;
    }

    .booking-calendar-layout{
        grid-template-columns:1fr !important;
    }
}

@media(max-width:900px){
    .booking-grid-with-summary{
        display:flex !important;
        flex-direction:column !important;
        gap:10px !important;
    }

    .booking-main-column{
        width:100% !important;
        order:1 !important;
    }

    .booking-summary-card{
        display:none !important;
    }

    .booking-grid-with-summary .booking-steps-card{
        order:1 !important;
        position:sticky !important;
        top:8px !important;
        z-index:25 !important;
        padding:12px !important;
        border-radius:18px !important;
        background:color-mix(in srgb, var(--booking-card) 94%, transparent) !important;
        backdrop-filter:blur(14px) !important;
    }

    .booking-grid-with-summary .booking-flow-card{
        order:2 !important;
    }

    .booking-grid-with-summary .booking-step-panel{
        padding:18px !important;
    }

    .booking-grid-with-summary .booking-bottom-actions{
        padding:12px 18px 18px !important;
    }

    .booking-service-grid,
    .booking-professional-grid{
        grid-template-columns:1fr !important;
    }
}

@media(min-width:901px){
    .booking-info-footer{
        max-width:calc(100% - 400px) !important;
    }
}

/* ==========================================================
   BVMS V50 - Sidebars dos ambientes com rolagem interna segura
   Corrige corte de itens ao rolar e mantém cartões inferiores visíveis.
   ========================================================== */
@media (min-width: 993px){
  body.app-body #appSidebar.bvms-sidebar-clean,
  body.services-body .svc-sidebar,
  body.stock-body .stock-sidebar{
    height:100dvh!important;
    max-height:100dvh!important;
    min-height:0!important;
    overflow:hidden!important;
    display:flex!important;
    flex-direction:column!important;
    align-self:start!important;
    overscroll-behavior:contain!important;
  }

  body.app-body #appSidebar.bvms-sidebar-clean{
    position:sticky!important;
    top:0!important;
  }

  body.stock-body .stock-sidebar,
  body.services-body .svc-sidebar{
    position:sticky!important;
    top:0!important;
  }

  body.app-body #appSidebar .sidebar-clean-header,
  body.app-body #appSidebar .bvms-system-switch,
  body.services-body .svc-sidebar .svc-sidebar-brand-row,
  body.services-body .svc-sidebar .svc-env-switch,
  body.stock-body .stock-sidebar .stock-brand,
  body.stock-body .stock-sidebar .stock-system-switch{
    flex:0 0 auto!important;
  }

  body.app-body #appSidebar .sidebar-clean-nav,
  body.services-body .svc-sidebar .svc-nav-scroll,
  body.stock-body .stock-sidebar .stock-nav{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding-bottom:18px!important;
    scrollbar-gutter:stable!important;
    overscroll-behavior:contain!important;
  }

  body.app-body #appSidebar .sidebar-plan-card,
  body.services-body .svc-sidebar .svc-sidebar-card,
  body.services-body .svc-sidebar .svc-sidebar-profile,
  body.stock-body .stock-sidebar .stock-sidebar-footer,
  body.stock-body .stock-sidebar .stock-profile,
  body.stock-body .stock-sidebar .stock-user-card{
    flex:0 0 auto!important;
    margin-top:12px!important;
  }

  body.app-body #appSidebar .sidebar-clean-nav::-webkit-scrollbar,
  body.services-body .svc-sidebar .svc-nav-scroll::-webkit-scrollbar,
  body.stock-body .stock-sidebar .stock-nav::-webkit-scrollbar{
    width:8px!important;
  }

  body.app-body #appSidebar .sidebar-clean-nav::-webkit-scrollbar-thumb,
  body.services-body .svc-sidebar .svc-nav-scroll::-webkit-scrollbar-thumb,
  body.stock-body .stock-sidebar .stock-nav::-webkit-scrollbar-thumb{
    background:rgba(148,163,184,.45)!important;
    border-radius:999px!important;
  }
}

@media (max-width: 992px){
  body.services-body .svc-sidebar,
  body.stock-body .stock-sidebar,
  body.app-body #appSidebar.bvms-sidebar-clean{
    height:100dvh!important;
    max-height:100dvh!important;
    overflow:hidden!important;
  }
  body.services-body .svc-sidebar .svc-nav-scroll,
  body.stock-body .stock-sidebar .stock-nav,
  body.app-body #appSidebar .sidebar-clean-nav{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    padding-bottom:18px!important;
  }
}

/* BVMS V50 - Extrato com tabela legível e sem linhas aparentemente vazias */
body.app-body .statement-page-clean .statement-table td,
body.app-body .statement-page-clean .statement-table th{
  vertical-align:middle!important;
}
body.app-body .statement-page-clean .statement-description{
  font-weight:850!important;
  color:var(--ux-text, var(--bvms-text, #0f172a))!important;
  max-width:520px!important;
  white-space:normal!important;
}
body.app-body .statement-page-clean .statement-value-entry,
body.app-body .statement-page-clean .statement-value-exit{
  font-weight:950!important;
}

/* V51 - Hotfix sidebar, checklist, extrato, agenda e agendamento público */
/* Sidebars com rolagem própria para não cortar rodapé/itens ao rolar a página */
.bvms-layout-shell,
.stock-shell,
.svc-app-shell{
    align-items:stretch !important;
    min-height:100dvh !important;
}

#appSidebar.bvms-sidebar-clean,
.bvms-sidebar-clean,
.stock-sidebar,
.svc-sidebar{
    position:sticky !important;
    top:0 !important;
    height:100dvh !important;
    max-height:100dvh !important;
    min-height:100dvh !important;
    overflow:hidden !important;
    display:flex !important;
    flex-direction:column !important;
    align-self:start !important;
}

.sidebar-clean-header,
.stock-sidebar-head,
.svc-sidebar-brand-row,
.stock-system-switch,
.svc-env-switch,
.sidebar-plan-card,
.stock-sidebar-footer,
.svc-sidebar-card,
.svc-sidebar-profile{
    flex:0 0 auto !important;
}

.sidebar-clean-nav,
.stock-nav,
.svc-nav-scroll{
    flex:1 1 auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    overscroll-behavior:contain !important;
    scrollbar-gutter:stable !important;
    padding-bottom:12px !important;
}

.bvms-main-shell,
.stock-main,
.svc-main{
    min-width:0 !important;
    overflow-x:hidden !important;
}

@media(max-width:992px){
    #appSidebar.bvms-sidebar-clean,
    .bvms-sidebar-clean,
    .stock-sidebar,
    .svc-sidebar{
        position:fixed !important;
        top:0 !important;
        height:100dvh !important;
        max-height:100dvh !important;
    }
}

/* Checklist minimalista: não ocupa faixa grande no topo */
.bvms-checklist-mini{
    width:min(100%, 420px);
    margin:0 0 14px auto;
    position:relative;
    z-index:20;
}

.bvms-checklist-mini > summary{
    list-style:none;
    min-height:48px;
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:8px 12px;
    border:1px solid var(--v2-border, var(--svc-line, #dbe4ef));
    border-radius:16px;
    background:var(--v2-surface, var(--svc-panel, var(--st-panel, #fff)));
    color:var(--v2-text, var(--svc-text, var(--st-text, #0f172a)));
    box-shadow:0 8px 22px rgba(15,23,42,.05);
    cursor:pointer;
    font-weight:900;
}

.bvms-checklist-mini > summary::-webkit-details-marker{display:none;}

.bvms-checklist-mini-icon{
    width:34px;
    height:34px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:
        radial-gradient(circle at center, var(--v2-surface, var(--svc-panel, var(--st-panel, #fff))) 55%, transparent 56%),
        conic-gradient(var(--button-primary-bg, var(--svc-green, var(--st-accent, #2563eb))) calc(var(--progress) * 1%), rgba(148,163,184,.25) 0);
    color:var(--v2-text, var(--svc-text, var(--st-text, #0f172a)));
}

.bvms-checklist-mini-icon b{font-size:9px;line-height:1;font-weight:950;}
.bvms-checklist-mini-copy{display:grid;gap:1px;min-width:0;}
.bvms-checklist-mini-copy strong{font-size:13px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bvms-checklist-mini-copy small{font-size:11px;color:var(--v2-muted, var(--svc-muted, var(--st-muted, #64748b)));font-weight:800;}

.bvms-checklist-mini-panel{
    position:absolute;
    right:0;
    top:calc(100% + 8px);
    width:min(420px, calc(100vw - 28px));
    padding:14px;
    border:1px solid var(--v2-border, var(--svc-line, var(--st-line, #dbe4ef)));
    border-radius:18px;
    background:var(--v2-surface, var(--svc-panel, var(--st-panel, #fff)));
    color:var(--v2-text, var(--svc-text, var(--st-text, #0f172a)));
    box-shadow:0 22px 58px rgba(15,23,42,.18);
}

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

.bvms-checklist-mini-head strong{display:block;font-size:15px;font-weight:950;}
.bvms-checklist-mini-head span{display:block;margin-top:3px;color:var(--v2-muted, var(--svc-muted, var(--st-muted, #64748b)));font-size:12px;font-weight:750;}
.bvms-checklist-mini-head a{
    min-height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 12px;
    border-radius:12px;
    background:var(--button-primary-bg, var(--svc-green, var(--st-accent, #2563eb)));
    color:var(--button-primary-text, #fff);
    text-decoration:none;
    font-weight:900;
    font-size:12px;
}

.bvms-checklist-mini-panel p{margin:0 0 10px;color:var(--v2-muted, var(--svc-muted, var(--st-muted, #64748b)));font-size:13px;font-weight:750;}
.bvms-checklist-mini-panel p b{color:var(--v2-text, var(--svc-text, var(--st-text, #0f172a)));}
.bvms-checklist-mini-list{display:grid;gap:7px;max-height:260px;overflow:auto;padding-right:2px;}
.bvms-checklist-mini-list a{
    min-height:38px;
    display:flex;
    align-items:center;
    gap:9px;
    padding:8px 10px;
    border:1px solid var(--v2-border, var(--svc-line, var(--st-line, #dbe4ef)));
    border-radius:13px;
    background:var(--v2-soft, var(--svc-panel-2, var(--st-panel-2, #f8fafc)));
    color:var(--v2-text, var(--svc-text, var(--st-text, #0f172a)));
    text-decoration:none;
    font-size:13px;
    font-weight:850;
}
.bvms-checklist-mini-list a.done{opacity:.65;}
.bvms-checklist-mini-list a span{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:rgba(34,197,94,.12);color:#16a34a;font-size:12px;font-weight:950;}

body.theme-dark .bvms-checklist-mini-panel,
html.theme-dark .bvms-checklist-mini-panel,
body.theme-dark .bvms-checklist-mini > summary,
html.theme-dark .bvms-checklist-mini > summary{
    box-shadow:0 24px 64px rgba(0,0,0,.5);
}

@media(max-width:768px){
    .bvms-checklist-mini{width:100%;margin:0 0 10px;}
    .bvms-checklist-mini > summary{width:100%;justify-content:flex-start;}
    .bvms-checklist-mini-panel{position:fixed;left:12px;right:12px;top:auto;bottom:12px;width:auto;max-height:min(72dvh, 520px);overflow:auto;}
}

/* Extrato: tabela legível, sem campos comprimidos e mobile em card */
.statement-page-clean{
    max-width:min(100%, 1680px) !important;
    width:100% !important;
}
.statement-table-card{overflow:hidden !important;}
.statement-table-wrap{overflow:auto !important;}
.statement-table{min-width:1080px !important;}
.statement-table th,
.statement-table td{white-space:nowrap !important;}
.statement-table .statement-description{white-space:normal !important;min-width:280px !important;max-width:520px !important;line-height:1.35 !important;}
.statement-table td[data-label="Data"]{font-weight:900 !important;}
.statement-pill{white-space:nowrap !important;}

@media(max-width:900px){
    .statement-table{min-width:0 !important;}
    .statement-table th,
    .statement-table td{white-space:normal !important;}
}

/* Agenda semanal: bloco mostra só serviço; popover só por clique */
.svc-calendar-service-only > *:not(.svc-calendar-service-title){display:none !important;}
.svc-google-week-cell > .svc-event-popover,
.svc-google-week-cell:hover > .svc-event-popover,
.svc-google-event:hover .svc-event-hover-card,
.svc-google-event:focus-visible .svc-event-hover-card{
    display:none !important;
    visibility:hidden !important;
}
.svc-google-week-cell > .svc-event-popover.is-open{
    display:block !important;
    visibility:visible !important;
}
.svc-google-week-cell > .svc-google-event.svc-calendar-service-only{
    display:flex !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    overflow:hidden !important;
}
.svc-google-week-cell > .svc-google-event.svc-calendar-service-only .svc-calendar-service-title{
    display:-webkit-box !important;
    -webkit-box-orient:vertical !important;
    -webkit-line-clamp:2 !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:normal !important;
    line-height:1.16 !important;
}

/* Página pública de agendamento: inputs claros no tema claro e horários compactos */
html[data-booking-theme="light"] .booking-fields-grid input,
html[data-booking-theme="light"] .booking-fields-grid textarea,
html[data-booking-theme="light"] .booking-code-inputs input,
html[data-booking-theme="light"] .booking-code-box,
html[data-booking-theme="light"] .booking-slot,
html[data-booking-theme="light"] .booking-calendar-card,
html[data-booking-theme="light"] .booking-times-card{
    background:#ffffff !important;
    color:#0f172a !important;
    -webkit-text-fill-color:#0f172a !important;
    border-color:#dbe4ef !important;
}
html[data-booking-theme="light"] .booking-fields-grid input::placeholder,
html[data-booking-theme="light"] .booking-fields-grid textarea::placeholder,
html[data-booking-theme="light"] .booking-code-inputs input::placeholder{
    color:#64748b !important;
    -webkit-text-fill-color:#64748b !important;
}
html[data-booking-theme="dark"] .booking-fields-grid input,
html[data-booking-theme="dark"] .booking-fields-grid textarea,
html[data-booking-theme="dark"] .booking-code-inputs input{
    background:#0b1220 !important;
    color:#f8fafc !important;
    -webkit-text-fill-color:#f8fafc !important;
    border-color:#26344a !important;
}
.booking-slots{
    grid-template-columns:repeat(auto-fit, minmax(104px, 1fr)) !important;
    gap:10px !important;
}
.booking-slot{
    min-height:74px !important;
    padding:12px !important;
    text-align:center !important;
    display:grid !important;
    align-content:center !important;
    gap:4px !important;
}
.booking-slot strong{font-size:18px !important;line-height:1 !important;}
.booking-slot span{
    display:block !important;
    font-size:11px !important;
    line-height:1.2 !important;
    max-width:100% !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
    margin:0 !important;
}
@media(max-width:520px){
    .booking-slots{grid-template-columns:repeat(3, minmax(0, 1fr)) !important;}
    .booking-slot{min-height:66px !important;padding:10px 7px !important;border-radius:16px !important;}
    .booking-slot strong{font-size:16px !important;}
    .booking-slot span{font-size:10px !important;}
    .booking-fields-grid input,
    .booking-fields-grid textarea,
    .booking-code-inputs input{min-height:46px !important;border-radius:14px !important;}
}


/* V52 - Dimensão dos ambientes, sidebars e estoque */
.bvms-main-shell,
.svc-main,
.stock-main,
.pdv-main{
    min-width:0!important;
    width:100%!important;
}

.svc-content,
.pdv-content,
.stock-content{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    box-sizing:border-box!important;
}

/* Sidebars: apenas o menu rola, o rodapé não fica cortado */
.bvms-sidebar-clean,
.svc-sidebar,
.stock-sidebar,
.pdv-sidebar{
    height:100dvh!important;
    max-height:100dvh!important;
    overflow:hidden!important;
    display:flex!important;
    flex-direction:column!important;
}

.sidebar-clean-nav,
.svc-nav,
.stock-nav,
.pdv-nav{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding-bottom:12px!important;
    scrollbar-width:thin!important;
}

.sidebar-plan-card,
.svc-sidebar-footer,
.stock-sidebar-footer,
.pdv-sidebar-footer{
    flex:0 0 auto!important;
    margin-top:10px!important;
}

/* Estoque: usar área útil inteira e evitar cards/tabelas esmagados */
.stock-shell{
    grid-template-columns:260px minmax(0,1fr)!important;
}

.stock-content{
    padding:clamp(14px,1.4vw,24px)!important;
}

.stock-page{
    width:100%!important;
    max-width:none!important;
}

.stock-page > .stock-hero,
.stock-page > .stock-insight-grid,
.stock-page > .stock-kpis,
.stock-page > .stock-grid,
.stock-page > .stock-card,
.stock-tab-page{
    width:100%!important;
    max-width:none!important;
}

.stock-insight-grid,
.stock-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1.45fr) minmax(340px,.55fr)!important;
    gap:16px!important;
    align-items:start!important;
}

.stock-insight-card,
.stock-card,
.stock-kpi{
    min-width:0!important;
    box-sizing:border-box!important;
}

.stock-content .table-responsive{
    width:100%!important;
    max-width:100%!important;
    overflow:auto!important;
}

.stock-content table{
    width:100%!important;
}

.stock-content .stock-grid table,
.stock-content .stock-insight-grid table{
    min-width:720px!important;
}

/* As ações laranja do estoque não devem virar uma barra gigante sem contexto */
.stock-page > .stock-actions,
.stock-page .stock-actions{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:10px!important;
    align-items:center!important;
}

.stock-page > .stock-actions .btn,
.stock-page .stock-actions .btn{
    width:auto!important;
    min-width:150px!important;
}

/* Topbar checklist */
[data-bvms-checklist-trigger] i{
    font-size:1.08rem;
}

/* Serviços e ERP: conteúdo alinhado ao início, sem "ilha" no canto direito */
.svc-content > *,
.pdv-content > *,
.stock-content > *,
body.app-body main.page-content > *{
    max-width:100%;
}

/* Desktop menor/notebook */
@media(max-width:1280px){
    .stock-insight-grid,
    .stock-grid{
        grid-template-columns:1fr!important;
    }
}

/* Mobile/drawer */
@media(max-width:992px){
    .stock-shell,
    .pdv-shell,
    .svc-app-shell{
        grid-template-columns:1fr!important;
    }

    .stock-sidebar,
    .pdv-sidebar,
    .svc-sidebar,
    .bvms-sidebar-clean{
        position:fixed!important;
        height:100dvh!important;
        max-height:100dvh!important;
    }

    .stock-content,
    .svc-content,
    .pdv-content{
        padding:14px 12px 96px!important;
    }
}

@media(max-width:680px){
    .stock-content .stock-grid table,
    .stock-content .stock-insight-grid table{
        min-width:0!important;
    }
}

.bvms-checklist-mini--pulse{
    animation:bvmsChecklistPulse .9s ease;
}
@keyframes bvmsChecklistPulse{
    0%{box-shadow:0 0 0 0 rgba(37,99,235,.35)}
    100%{box-shadow:0 0 0 18px rgba(37,99,235,0)}
}


/* V53 - Checklist na topbar e sidebars fixas até o fim da tela */
.bvms-checklist-topbar{
    position:relative!important;
    display:inline-flex!important;
    align-items:center!important;
    flex:0 0 auto!important;
    z-index:3000!important;
}
.bvms-checklist-topbar > summary{
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    list-style:none!important;
    display:grid!important;
    place-items:center!important;
    border:1px solid var(--bvms-border, var(--svc-line, var(--st-line, rgba(148,163,184,.28))))!important;
    border-radius:14px!important;
    background:var(--bvms-sidebar-bg, var(--svc-panel, var(--st-panel, #fff)))!important;
    color:var(--bvms-text, var(--svc-text, var(--st-text, #0f172a)))!important;
    cursor:pointer!important;
    box-shadow:0 8px 22px rgba(15,23,42,.06)!important;
}
.bvms-checklist-topbar > summary::-webkit-details-marker{display:none!important;}
.bvms-checklist-topbar > summary i{font-size:1.08rem!important;line-height:1!important;}
.bvms-checklist-topbar > summary span{
    position:absolute!important;
    top:-7px!important;
    right:-7px!important;
    min-width:22px!important;
    height:18px!important;
    padding:0 5px!important;
    display:grid!important;
    place-items:center!important;
    border-radius:999px!important;
    background:#16a34a!important;
    color:#fff!important;
    font-size:9px!important;
    font-weight:950!important;
    border:2px solid var(--bvms-sidebar-bg, var(--svc-panel, var(--st-panel, #fff)))!important;
}
.bvms-checklist-topbar-panel{
    position:absolute!important;
    right:0!important;
    top:calc(100% + 10px)!important;
    width:min(390px, calc(100vw - 24px))!important;
    padding:14px!important;
    border:1px solid var(--bvms-border, var(--svc-line, var(--st-line, rgba(148,163,184,.28))))!important;
    border-radius:18px!important;
    background:var(--bvms-sidebar-bg, var(--svc-panel, var(--st-panel, #fff)))!important;
    color:var(--bvms-text, var(--svc-text, var(--st-text, #0f172a)))!important;
    box-shadow:0 24px 70px rgba(0,0,0,.22)!important;
}
.bvms-checklist-topbar-head{display:flex!important;gap:12px!important;justify-content:space-between!important;align-items:flex-start!important;}
.bvms-checklist-topbar-head small{display:block!important;color:var(--bvms-muted, var(--svc-muted, var(--st-muted, #64748b)))!important;font-size:11px!important;font-weight:850!important;text-transform:uppercase!important;letter-spacing:.04em!important;}
.bvms-checklist-topbar-head strong{display:block!important;margin-top:2px!important;font-size:15px!important;font-weight:950!important;line-height:1.12!important;}
.bvms-checklist-topbar-head p{margin:5px 0 0!important;color:var(--bvms-muted, var(--svc-muted, var(--st-muted, #64748b)))!important;font-size:12px!important;font-weight:750!important;line-height:1.35!important;}
.bvms-checklist-topbar-head a{min-height:34px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:12px!important;padding:0 12px!important;background:var(--button-primary-bg, var(--svc-green, var(--st-accent, #2563eb)))!important;color:var(--button-primary-text,#fff)!important;text-decoration:none!important;font-size:12px!important;font-weight:950!important;white-space:nowrap!important;}
.bvms-checklist-topbar-progress{height:7px!important;border-radius:999px!important;background:rgba(148,163,184,.18)!important;overflow:hidden!important;margin:12px 0!important;}
.bvms-checklist-topbar-progress span{display:block!important;height:100%!important;border-radius:inherit!important;background:var(--button-primary-bg, var(--svc-green, var(--st-accent, #2563eb)))!important;}
.bvms-checklist-topbar-list{display:grid!important;gap:7px!important;max-height:260px!important;overflow:auto!important;padding-right:2px!important;}
.bvms-checklist-topbar-list a{display:flex!important;align-items:center!important;gap:9px!important;min-height:38px!important;padding:8px 10px!important;border:1px solid var(--bvms-border, var(--svc-line, var(--st-line, rgba(148,163,184,.24))))!important;border-radius:13px!important;text-decoration:none!important;color:var(--bvms-text, var(--svc-text, var(--st-text, #0f172a)))!important;background:rgba(148,163,184,.06)!important;}
.bvms-checklist-topbar-list a span{width:20px!important;height:20px!important;border-radius:50%!important;display:grid!important;place-items:center!important;background:rgba(148,163,184,.14)!important;color:var(--button-primary-bg, var(--svc-green, var(--st-accent, #2563eb)))!important;font-weight:950!important;}
.bvms-checklist-topbar-list a strong{font-size:12px!important;font-weight:900!important;line-height:1.2!important;}
.bvms-checklist-topbar-list a.done{opacity:.68!important;}
.theme-dark .bvms-checklist-topbar > summary,
html.theme-dark .bvms-checklist-topbar > summary,
.theme-dark .bvms-checklist-topbar-panel,
html.theme-dark .bvms-checklist-topbar-panel{
    background:#111827!important;
    color:#f8fafc!important;
    border-color:#273244!important;
}
.theme-dark .bvms-checklist-topbar-list a,
html.theme-dark .bvms-checklist-topbar-list a{background:#162033!important;border-color:#273244!important;color:#f8fafc!important;}

/* Esconde o checklist grande caso algum layout antigo ainda carregue dentro do conteúdo. */
.stock-content > .bvms-beta-onboarding,
.svc-content > .bvms-beta-onboarding,
.pdv-content > .bvms-beta-onboarding,
main.page-content > .bvms-beta-onboarding{
    display:none!important;
}

@media(min-width:993px){
    :root{
        --bvms-env-sidebar-w:260px;
        --bvms-env-sidebar-collapsed-w:76px;
    }

    .bvms-layout-shell,
    .svc-app-shell,
    .stock-shell,
    .pdv-shell{
        display:block!important;
        min-height:100dvh!important;
        width:100%!important;
    }

    #appSidebar.bvms-sidebar-clean,
    .svc-sidebar,
    .stock-sidebar,
    .pdv-sidebar{
        position:fixed!important;
        top:0!important;
        left:0!important;
        bottom:0!important;
        height:100dvh!important;
        max-height:100dvh!important;
        width:var(--bvms-env-sidebar-w)!important;
        min-width:var(--bvms-env-sidebar-w)!important;
        max-width:var(--bvms-env-sidebar-w)!important;
        overflow:hidden!important;
        z-index:1040!important;
    }

    .bvms-main-shell,
    .svc-main,
    .stock-main,
    .pdv-main{
        margin-left:var(--bvms-env-sidebar-w)!important;
        width:calc(100% - var(--bvms-env-sidebar-w))!important;
        min-width:0!important;
        min-height:100dvh!important;
    }

    body.sidebar-collapsed #appSidebar.bvms-sidebar-clean,
    body.erp-sidebar-is-collapsed #appSidebar.bvms-sidebar-clean,
    body.svc-sidebar-collapsed .svc-sidebar,
    body.stock-sidebar-collapsed .stock-sidebar,
    body.pdv-sidebar-collapsed .pdv-sidebar{
        width:var(--bvms-env-sidebar-collapsed-w)!important;
        min-width:var(--bvms-env-sidebar-collapsed-w)!important;
        max-width:var(--bvms-env-sidebar-collapsed-w)!important;
    }

    body.sidebar-collapsed .bvms-main-shell,
    body.erp-sidebar-is-collapsed .bvms-main-shell,
    body.svc-sidebar-collapsed .svc-main,
    body.stock-sidebar-collapsed .stock-main,
    body.pdv-sidebar-collapsed .pdv-main{
        margin-left:var(--bvms-env-sidebar-collapsed-w)!important;
        width:calc(100% - var(--bvms-env-sidebar-collapsed-w))!important;
    }

    .sidebar-clean-nav,
    .svc-nav,
    .svc-nav-scroll,
    .stock-nav,
    .pdv-nav{
        flex:1 1 auto!important;
        min-height:0!important;
        overflow-y:auto!important;
        overflow-x:hidden!important;
        padding-bottom:14px!important;
        scrollbar-width:thin!important;
    }

    .sidebar-plan-card,
    .svc-sidebar-card,
    .svc-sidebar-profile,
    .stock-sidebar-footer,
    .pdv-sidebar-footer{
        flex:0 0 auto!important;
    }

    .stock-content,
    .svc-content,
    .pdv-content,
    body.app-body main.page-content{
        width:100%!important;
        max-width:none!important;
        margin:0!important;
    }
}

@media(max-width:992px){
    .bvms-checklist-topbar-panel{
        position:fixed!important;
        top:64px!important;
        right:12px!important;
        left:12px!important;
        width:auto!important;
    }
}


/* ============================================================
   V55 - Correção definitiva: sidebar fixa + conteúdo visível/rolável
   Problema corrigido: V54 colocou scroll no container errado e deixou
   conteúdo deslocado/branco. Agora o body rola e a sidebar fica fixa.
   ============================================================ */

:root{
    --bvms-erp-sidebar-open:260px;
    --bvms-erp-sidebar-closed:76px;
    --bvms-services-sidebar-open:260px;
    --bvms-services-sidebar-closed:76px;
    --bvms-stock-sidebar-open:276px;
    --bvms-stock-sidebar-closed:76px;
    --bvms-pdv-sidebar-open:268px;
    --bvms-pdv-sidebar-closed:76px;
}

/* A página volta a mostrar conteúdo normalmente. */
html{
    min-height:100%!important;
    height:auto!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
}

body.app-body,
body.services-body,
body.stock-body,
body.pdv-body{
    min-height:100vh!important;
    height:auto!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    padding-bottom:0!important;
}

/* Shell sem scroll próprio: quem rola é a página/conteúdo. */
.bvms-layout-shell,
.svc-app-shell,
.stock-shell,
.pdv-shell{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-height:100vh!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
}

/* Sidebar fixa na viewport. Não acompanha o scroll do conteúdo. */
#appSidebar.bvms-sidebar-clean,
.svc-sidebar,
.stock-sidebar,
.pdv-sidebar{
    position:fixed!important;
    inset:0 auto 0 0!important;
    height:100vh!important;
    height:100dvh!important;
    min-height:100vh!important;
    max-height:100vh!important;
    max-height:100dvh!important;
    z-index:1050!important;
    overflow:hidden!important;
    display:flex!important;
    flex-direction:column!important;
    box-sizing:border-box!important;
}

/* Largura fixa por ambiente. */
#appSidebar.bvms-sidebar-clean{
    width:var(--bvms-erp-sidebar-open)!important;
    min-width:var(--bvms-erp-sidebar-open)!important;
    max-width:var(--bvms-erp-sidebar-open)!important;
}

.svc-sidebar{
    width:var(--bvms-services-sidebar-open)!important;
    min-width:var(--bvms-services-sidebar-open)!important;
    max-width:var(--bvms-services-sidebar-open)!important;
}

.stock-sidebar{
    width:var(--bvms-stock-sidebar-open)!important;
    min-width:var(--bvms-stock-sidebar-open)!important;
    max-width:var(--bvms-stock-sidebar-open)!important;
}

.pdv-sidebar{
    width:var(--bvms-pdv-sidebar-open)!important;
    min-width:var(--bvms-pdv-sidebar-open)!important;
    max-width:var(--bvms-pdv-sidebar-open)!important;
}

/* Quando recolher, a área principal acompanha a largura menor. */
body.sidebar-collapsed #appSidebar.bvms-sidebar-clean,
body.sidebar-is-collapsed #appSidebar.bvms-sidebar-clean,
body.erp-sidebar-is-collapsed #appSidebar.bvms-sidebar-clean{
    width:var(--bvms-erp-sidebar-closed)!important;
    min-width:var(--bvms-erp-sidebar-closed)!important;
    max-width:var(--bvms-erp-sidebar-closed)!important;
}

body.svc-sidebar-collapsed .svc-sidebar{
    width:var(--bvms-services-sidebar-closed)!important;
    min-width:var(--bvms-services-sidebar-closed)!important;
    max-width:var(--bvms-services-sidebar-closed)!important;
}

body.stock-sidebar-collapsed .stock-sidebar{
    width:var(--bvms-stock-sidebar-closed)!important;
    min-width:var(--bvms-stock-sidebar-closed)!important;
    max-width:var(--bvms-stock-sidebar-closed)!important;
}

body.pdv-sidebar-collapsed .pdv-sidebar{
    width:var(--bvms-pdv-sidebar-closed)!important;
    min-width:var(--bvms-pdv-sidebar-closed)!important;
    max-width:var(--bvms-pdv-sidebar-closed)!important;
}

/* Só o menu interno da sidebar rola. O rodapé da sidebar não corta. */
#appSidebar .sidebar-clean-nav,
.svc-nav-scroll,
.stock-nav,
.pdv-nav{
    flex:1 1 auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding-bottom:14px!important;
    scrollbar-width:thin!important;
}

#appSidebar .sidebar-clean-header,
#appSidebar .bvms-system-switch,
#appSidebar .sidebar-plan-card,
.svc-sidebar-brand-row,
.svc-env-switch,
.svc-sidebar-card,
.svc-sidebar-profile,
.stock-sidebar-head,
.stock-system-switch,
.stock-sidebar-footer,
.pdv-sidebar-head,
.pdv-system-switch,
.pdv-sidebar-footer{
    flex:0 0 auto!important;
}

/* Área principal começa depois da sidebar fixa. */
.bvms-main-shell{
    min-width:0!important;
    width:calc(100% - var(--bvms-erp-sidebar-open))!important;
    max-width:none!important;
    margin-left:var(--bvms-erp-sidebar-open)!important;
    min-height:100vh!important;
    height:auto!important;
    overflow:visible!important;
    display:block!important;
}

.svc-main{
    min-width:0!important;
    width:calc(100% - var(--bvms-services-sidebar-open))!important;
    max-width:none!important;
    margin-left:var(--bvms-services-sidebar-open)!important;
    min-height:100vh!important;
    height:auto!important;
    overflow:visible!important;
    display:block!important;
}

.stock-main{
    min-width:0!important;
    width:calc(100% - var(--bvms-stock-sidebar-open))!important;
    max-width:none!important;
    margin-left:var(--bvms-stock-sidebar-open)!important;
    min-height:100vh!important;
    height:auto!important;
    overflow:visible!important;
    display:block!important;
}

.pdv-main{
    min-width:0!important;
    width:calc(100% - var(--bvms-pdv-sidebar-open))!important;
    max-width:none!important;
    margin-left:var(--bvms-pdv-sidebar-open)!important;
    min-height:100vh!important;
    height:auto!important;
    overflow:visible!important;
    display:block!important;
}

body.sidebar-collapsed .bvms-main-shell,
body.sidebar-is-collapsed .bvms-main-shell,
body.erp-sidebar-is-collapsed .bvms-main-shell{
    width:calc(100% - var(--bvms-erp-sidebar-closed))!important;
    margin-left:var(--bvms-erp-sidebar-closed)!important;
}

body.svc-sidebar-collapsed .svc-main{
    width:calc(100% - var(--bvms-services-sidebar-closed))!important;
    margin-left:var(--bvms-services-sidebar-closed)!important;
}

body.stock-sidebar-collapsed .stock-main{
    width:calc(100% - var(--bvms-stock-sidebar-closed))!important;
    margin-left:var(--bvms-stock-sidebar-closed)!important;
}

body.pdv-sidebar-collapsed .pdv-main{
    width:calc(100% - var(--bvms-pdv-sidebar-closed))!important;
    margin-left:var(--bvms-pdv-sidebar-closed)!important;
}

/* Topbar fica fixa dentro da área principal enquanto o conteúdo rola. */
.bvms-topbar-clean,
.svc-topbar,
.stock-topbar,
.pdv-topbar{
    position:sticky!important;
    top:0!important;
    z-index:1040!important;
}

/* Conteúdo aparece no topo e rola pelo body, sem container escondido. */
body.app-body main.page-content,
.svc-content,
.stock-content,
.pdv-content{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    min-height:auto!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    margin:0!important;
    box-sizing:border-box!important;
    padding:clamp(14px,1.35vw,24px)!important;
}

/* Evita centralização exagerada e laterais vazias. */
.stock-page,
.svc-page,
.pdv-page,
body.app-body main.page-content > .alert,
body.app-body main.page-content > .bvms-beta-onboarding,
body.app-body main.page-content > .statement-page-clean,
body.app-body main.page-content > .sales-page-clean,
body.app-body main.page-content > .dre-app-shell,
body.app-body main.page-content > .planningx-shell,
body.app-body main.page-content > .goalsx-shell,
body.app-body main.page-content > .projection-page,
body.app-body main.page-content > .bvms-dashboard-minimal{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
}

/* Estoque: grids e cards com dimensão correta. */
.stock-insight-grid,
.stock-grid{
    width:100%!important;
    display:grid!important;
    grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr)!important;
    gap:16px!important;
    align-items:start!important;
}

.stock-kpis{
    width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:14px!important;
}

.stock-card,
.stock-kpi,
.stock-hero,
.stock-content .card,
.stock-content .table-responsive{
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
}

.stock-content .table-responsive,
.stock-content .stock-table-wrap,
.statement-table-wrap,
.erp-table-shell{
    width:100%!important;
    max-width:100%!important;
    overflow:auto!important;
}

/* Evita botões de ação gigantes no estoque. */
.stock-content .stock-actions,
.stock-content > .stock-actions{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:10px!important;
    align-items:center!important;
}

.stock-content .stock-actions .btn,
.stock-content > .stock-actions .btn{
    width:auto!important;
    min-width:150px!important;
    max-width:100%!important;
}

/* Checklist permanece na topbar, não no corpo. */
.bvms-checklist-mini.is-topbar,
.bvms-checklist-mini[data-variant="topbar"]{
    display:inline-flex!important;
    align-items:center!important;
}

/* Mobile/tablet: sidebar vira drawer e a área principal ocupa 100%. */
@media(max-width:992px){
    #appSidebar.bvms-sidebar-clean,
    .svc-sidebar,
    .stock-sidebar,
    .pdv-sidebar{
        transform:translateX(-105%)!important;
        transition:transform .22s ease!important;
        width:min(86vw, 300px)!important;
        min-width:0!important;
        max-width:min(86vw, 300px)!important;
    }

    body.mobile-sidebar-open #appSidebar.bvms-sidebar-clean,
    #appSidebar.bvms-sidebar-clean.is-open,
    .svc-sidebar.show,
    .stock-sidebar.show,
    .pdv-sidebar.show{
        transform:translateX(0)!important;
    }

    .bvms-main-shell,
    .svc-main,
    .stock-main,
    .pdv-main{
        margin-left:0!important;
        width:100%!important;
        min-height:100vh!important;
    }

    body.app-body main.page-content,
    .svc-content,
    .stock-content,
    .pdv-content{
        padding:14px 12px 96px!important;
    }

    .stock-insight-grid,
    .stock-grid{
        grid-template-columns:1fr!important;
    }

    .stock-kpis{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
}

@media(max-width:640px){
    .stock-kpis{
        grid-template-columns:1fr!important;
    }
}



/* ============================================================
   V56 - App Shell final: sidebar fixa/lateral e scroll só no conteúdo
   Base do hotfix do Markdown: ERP, Serviços, Estoque e PDV.
   ============================================================ */

:root{
    --bvms-sidebar-erp: 260px;
    --bvms-sidebar-services: 260px;
    --bvms-sidebar-stock: 276px;
    --bvms-sidebar-pdv: 268px;
    --bvms-sidebar-collapsed: 76px;
    --bvms-page-padding-final: clamp(14px, 1.45vw, 24px);
}

/* Desktop: body não rola; cada área de conteúdo rola sozinha. */
@media (min-width: 993px){
    html,
    body.app-body,
    body.services-body,
    body.stock-body,
    body.pdv-body{
        width:100%!important;
        height:100vh!important;
        height:100dvh!important;
        min-height:0!important;
        max-height:100vh!important;
        max-height:100dvh!important;
        overflow:hidden!important;
    }

    .bvms-layout-shell{
        display:grid!important;
        grid-template-columns:var(--bvms-sidebar-erp) minmax(0, 1fr)!important;
        width:100%!important;
        height:100vh!important;
        height:100dvh!important;
        min-height:0!important;
        max-height:100vh!important;
        max-height:100dvh!important;
        overflow:hidden!important;
        align-items:stretch!important;
    }

    .svc-app-shell{
        display:grid!important;
        grid-template-columns:var(--bvms-sidebar-services) minmax(0, 1fr)!important;
        width:100%!important;
        height:100vh!important;
        height:100dvh!important;
        min-height:0!important;
        max-height:100vh!important;
        max-height:100dvh!important;
        overflow:hidden!important;
        align-items:stretch!important;
    }

    .stock-shell{
        display:grid!important;
        grid-template-columns:var(--bvms-sidebar-stock) minmax(0, 1fr)!important;
        width:100%!important;
        height:100vh!important;
        height:100dvh!important;
        min-height:0!important;
        max-height:100vh!important;
        max-height:100dvh!important;
        overflow:hidden!important;
        align-items:stretch!important;
    }

    .pdv-shell{
        display:grid!important;
        grid-template-columns:var(--bvms-sidebar-pdv) minmax(0, 1fr)!important;
        width:100%!important;
        height:100vh!important;
        height:100dvh!important;
        min-height:0!important;
        max-height:100vh!important;
        max-height:100dvh!important;
        overflow:hidden!important;
        align-items:stretch!important;
    }

    body.erp-sidebar-is-collapsed .bvms-layout-shell,
    body.sidebar-collapsed .bvms-layout-shell,
    body.sidebar-is-collapsed .bvms-layout-shell{
        grid-template-columns:var(--bvms-sidebar-collapsed) minmax(0, 1fr)!important;
    }

    body.svc-sidebar-collapsed .svc-app-shell,
    body.stock-sidebar-collapsed .stock-shell,
    body.pdv-sidebar-collapsed .pdv-shell{
        grid-template-columns:var(--bvms-sidebar-collapsed) minmax(0, 1fr)!important;
    }

    #appSidebar.bvms-sidebar-clean,
    .svc-sidebar,
    .stock-sidebar,
    .pdv-sidebar{
        position:sticky!important;
        top:0!important;
        left:auto!important;
        right:auto!important;
        bottom:auto!important;
        inset:auto!important;
        align-self:stretch!important;
        width:auto!important;
        min-width:0!important;
        max-width:none!important;
        height:100vh!important;
        height:100dvh!important;
        min-height:0!important;
        max-height:100vh!important;
        max-height:100dvh!important;
        overflow:hidden!important;
        display:flex!important;
        flex-direction:column!important;
        box-sizing:border-box!important;
        transform:none!important;
        z-index:50!important;
    }

    #appSidebar .sidebar-clean-nav,
    .svc-nav-scroll,
    .stock-nav,
    .pdv-nav{
        flex:1 1 auto!important;
        min-height:0!important;
        overflow-y:auto!important;
        overflow-x:hidden!important;
        padding-bottom:14px!important;
        scrollbar-width:thin!important;
    }

    #appSidebar .sidebar-clean-header,
    #appSidebar .bvms-system-switch,
    #appSidebar .sidebar-plan-card,
    .svc-sidebar-brand-row,
    .svc-env-switch,
    .svc-sidebar-card,
    .svc-sidebar-profile,
    .stock-sidebar-head,
    .stock-system-switch,
    .stock-sidebar-footer,
    .pdv-sidebar-head,
    .pdv-system-switch,
    .pdv-sidebar-footer{
        flex:0 0 auto!important;
    }

    .bvms-main-shell,
    .svc-main,
    .stock-main,
    .pdv-main{
        grid-column:2!important;
        min-width:0!important;
        width:100%!important;
        max-width:none!important;
        height:100vh!important;
        height:100dvh!important;
        min-height:0!important;
        max-height:100vh!important;
        max-height:100dvh!important;
        overflow:hidden!important;
        display:flex!important;
        flex-direction:column!important;
        margin:0!important;
    }

    .bvms-topbar-clean,
    .svc-topbar,
    .stock-topbar,
    .pdv-topbar{
        position:relative!important;
        top:auto!important;
        flex:0 0 auto!important;
        z-index:40!important;
    }

    body.app-body main.page-content,
    .svc-content,
    .stock-content,
    .pdv-content{
        flex:1 1 auto!important;
        min-height:0!important;
        height:auto!important;
        max-height:none!important;
        overflow-y:auto!important;
        overflow-x:hidden!important;
        -webkit-overflow-scrolling:touch!important;
        width:100%!important;
        max-width:none!important;
        margin:0!important;
        padding:var(--bvms-page-padding-final)!important;
        box-sizing:border-box!important;
        display:block!important;
    }
}

/* Mobile/tablet: drawer lateral e body pode rolar naturalmente. */
@media (max-width: 992px){
    html,
    body.app-body,
    body.services-body,
    body.stock-body,
    body.pdv-body{
        height:auto!important;
        min-height:100dvh!important;
        max-height:none!important;
        overflow-x:hidden!important;
        overflow-y:auto!important;
    }

    .bvms-layout-shell,
    .svc-app-shell,
    .stock-shell,
    .pdv-shell{
        display:block!important;
        min-height:100dvh!important;
        height:auto!important;
        max-height:none!important;
        overflow:visible!important;
    }

    .bvms-main-shell,
    .svc-main,
    .stock-main,
    .pdv-main{
        width:100%!important;
        min-height:100dvh!important;
        height:auto!important;
        max-height:none!important;
        overflow:visible!important;
        margin:0!important;
        display:block!important;
    }

    body.app-body main.page-content,
    .svc-content,
    .stock-content,
    .pdv-content{
        height:auto!important;
        overflow:visible!important;
        padding:14px 12px 96px!important;
    }

    #appSidebar.bvms-sidebar-clean,
    .svc-sidebar,
    .stock-sidebar,
    .pdv-sidebar{
        position:fixed!important;
        inset:0 auto 0 0!important;
        width:min(86vw, 300px)!important;
        max-width:min(86vw, 300px)!important;
        height:100dvh!important;
        max-height:100dvh!important;
        transform:translateX(-105%)!important;
        transition:transform .22s ease!important;
        overflow:hidden!important;
        z-index:1050!important;
    }

    body.mobile-sidebar-open #appSidebar.bvms-sidebar-clean,
    #appSidebar.bvms-sidebar-clean.is-open,
    .svc-sidebar.show,
    .stock-sidebar.show,
    .pdv-sidebar.show{
        transform:translateX(0)!important;
    }
}

/* Conteúdo sempre inicia no começo da área útil. */
.stock-page,
.svc-page,
.pdv-page,
body.app-body main.page-content > .statement-page-clean,
body.app-body main.page-content > .sales-page-clean,
body.app-body main.page-content > .dre-app-shell,
body.app-body main.page-content > .planningx-shell,
body.app-body main.page-content > .goalsx-shell,
body.app-body main.page-content > .projection-page,
body.app-body main.page-content > .bvms-dashboard-minimal,
body.app-body main.page-content > .bvms-page{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
}

/* Estoque: largura correta das abas/cards/tabelas. */
.stock-content{
    max-width:none!important;
}

.stock-content .stock-page,
.stock-content .stock-tab-page,
.stock-content .stock-hero,
.stock-content .stock-card,
.stock-content .stock-kpis,
.stock-content .stock-grid,
.stock-content .stock-insight-grid{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
}

.stock-grid,
.stock-insight-grid{
    display:grid!important;
    grid-template-columns:minmax(0, 1.35fr) minmax(320px, .65fr)!important;
    gap:16px!important;
    align-items:start!important;
}

.stock-kpis{
    display:grid!important;
    grid-template-columns:repeat(4, minmax(0, 1fr))!important;
    gap:14px!important;
}

.stock-content .table-responsive,
.stock-content .stock-table-wrap,
.statement-table-wrap,
.erp-table-shell{
    width:100%!important;
    max-width:100%!important;
    overflow:auto!important;
}

.stock-content table,
.statement-table{
    width:100%!important;
}

.stock-content .stock-actions,
.stock-content > .stock-actions{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:10px!important;
    align-items:center!important;
}

.stock-content .stock-actions .btn,
.stock-content > .stock-actions .btn{
    width:auto!important;
    min-width:150px!important;
    max-width:100%!important;
}

@media(max-width:1280px){
    .stock-grid,
    .stock-insight-grid{
        grid-template-columns:1fr!important;
    }

    .stock-kpis{
        grid-template-columns:repeat(2, minmax(0, 1fr))!important;
    }
}

@media(max-width:640px){
    .stock-kpis{
        grid-template-columns:1fr!important;
    }
}

/* Checklist minimalista na topbar: não pode virar faixa grande. */
.bvms-checklist-topbar{
    position:relative!important;
    display:inline-flex!important;
    align-items:center!important;
    width:auto!important;
    margin:0!important;
}

.bvms-checklist-topbar > summary{
    list-style:none!important;
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    padding:0!important;
    border:1px solid var(--v2-border, rgba(148,163,184,.28))!important;
    border-radius:14px!important;
    background:var(--v2-surface, var(--svc-panel, var(--st-panel, #fff)))!important;
    color:var(--v2-text, var(--svc-text, var(--st-text, #0f172a)))!important;
    display:grid!important;
    place-items:center!important;
    cursor:pointer!important;
    box-shadow:none!important;
}

.bvms-checklist-topbar > summary::-webkit-details-marker{
    display:none!important;
}

.bvms-checklist-topbar > summary i{
    font-size:1.15rem!important;
    line-height:1!important;
}

.bvms-checklist-topbar > summary span{
    position:absolute!important;
    top:-6px!important;
    right:-6px!important;
    min-width:20px!important;
    height:20px!important;
    padding:0 5px!important;
    border-radius:999px!important;
    display:grid!important;
    place-items:center!important;
    background:#16a34a!important;
    color:#fff!important;
    font-size:10px!important;
    font-weight:900!important;
    line-height:1!important;
}

.bvms-checklist-topbar-panel{
    position:fixed!important;
    z-index:2000!important;
    top:70px!important;
    right:18px!important;
    width:min(380px, calc(100vw - 24px))!important;
    max-height:min(70vh, 540px)!important;
    overflow:auto!important;
    border:1px solid var(--v2-border, rgba(148,163,184,.24))!important;
    border-radius:20px!important;
    background:var(--v2-surface, #fff)!important;
    color:var(--v2-text, #0f172a)!important;
    box-shadow:0 22px 55px rgba(2, 6, 23, .22)!important;
}

/* Caso ainda exista checklist de corpo, deixa compacto e abaixo do conteúdo, nunca uma faixa gigante. */
.bvms-beta-onboarding{
    padding:14px 16px!important;
    border-radius:18px!important;
    min-height:0!important;
}

.bvms-beta-onboarding__steps{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:8px!important;
}

.bvms-beta-onboarding__steps a,
.bvms-beta-step{
    min-height:42px!important;
    padding:8px 12px!important;
}

/* Solicitações compactas. */
.booking-request-card,
.svc-list-card.booking-request-card{
    display:grid!important;
    grid-template-columns:minmax(0, 1fr) auto!important;
    gap:12px!important;
    align-items:center!important;
    padding:14px!important;
    border-radius:18px!important;
}

.booking-request-actions{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:8px!important;
    justify-content:flex-end!important;
}

.booking-request-actions .svc-btn,
.booking-request-actions button{
    min-height:36px!important;
    padding:8px 12px!important;
}

/* Agenda: bloco limpo; detalhes escondidos até abrir. */
.svc-calendar-event,
.svc-week-event,
.svc-agenda-event,
.svc-event-card,
button[data-event-popover],
button[data-svc-event-popover],
button[aria-controls^="svcEventPopover"]{
    overflow:hidden!important;
}

.svc-calendar-service-title{
    display:-webkit-box!important;
    -webkit-line-clamp:2!important;
    -webkit-box-orient:vertical!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    line-height:1.15!important;
}

.svc-event-popover[hidden],
.svc-event-popover[aria-hidden="true"]{
    display:none!important;
}

.svc-event-popover{
    z-index:2100!important;
    max-width:min(360px, calc(100vw - 24px))!important;
    box-shadow:0 20px 55px rgba(0,0,0,.25)!important;
}

/* Popovers/dropdowns profissionais. */
.bvms-popover,
.bvms-compact-filter-panel,
.svc-calendar-popover,
.svc-event-popover{
    z-index:2000!important;
    max-width:min(420px, calc(100vw - 24px))!important;
}

/* Agendamento público: inputs claros no tema claro e horários compactos. */
.booking-public-shell input,
.booking-public-shell textarea,
.booking-public-shell select{
    background:#fff!important;
    color:#0f172a!important;
    border-color:#dbe3ef!important;
    -webkit-text-fill-color:#0f172a!important;
}

.booking-public-shell input::placeholder,
.booking-public-shell textarea::placeholder{
    color:#64748b!important;
    -webkit-text-fill-color:#64748b!important;
}

html[data-theme="dark"] .booking-public-shell input,
html[data-theme="dark"] .booking-public-shell textarea,
html[data-theme="dark"] .booking-public-shell select,
.theme-dark .booking-public-shell input,
.theme-dark .booking-public-shell textarea,
.theme-dark .booking-public-shell select{
    background:#0b1220!important;
    color:#f8fafc!important;
    border-color:rgba(148,163,184,.28)!important;
    -webkit-text-fill-color:#f8fafc!important;
}

.booking-slots{
    display:grid!important;
    grid-template-columns:repeat(auto-fit, minmax(108px, 1fr))!important;
    gap:10px!important;
}

.booking-slot,
.booking-time-slot,
button[data-booking-slot]{
    min-height:46px!important;
    padding:10px 12px!important;
    border-radius:14px!important;
    text-align:center!important;
    line-height:1.15!important;
    overflow:hidden!important;
}

.booking-slot small,
.booking-time-slot small,
button[data-booking-slot] small{
    display:block!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    max-width:100%!important;
}

@media(max-width:680px){
    .booking-request-card,
    .svc-list-card.booking-request-card{
        grid-template-columns:1fr!important;
    }

    .booking-request-actions{
        justify-content:flex-start!important;
    }

    .booking-slots{
        grid-template-columns:repeat(2, minmax(0, 1fr))!important;
    }
}


/* ============================================================
   V57 - Estoque e Serviços: layouts de abas, sidebar limpa e mobile compacto
   ============================================================ */

/* Sidebars: mantém scroll interno, mas remove visual da barra de arrastar. */
#appSidebar .sidebar-clean-nav,
.svc-nav-scroll,
.stock-nav,
.pdv-nav{
    scrollbar-width:none!important;
    -ms-overflow-style:none!important;
}
#appSidebar .sidebar-clean-nav::-webkit-scrollbar,
.svc-nav-scroll::-webkit-scrollbar,
.stock-nav::-webkit-scrollbar,
.pdv-nav::-webkit-scrollbar{
    width:0!important;
    height:0!important;
    display:none!important;
}

/* Remove visualmente cartões promocionais/explicativos que ocupavam a base da sidebar. */
.stock-sidebar-footer,
.svc-sidebar-card{
    display:none!important;
}

/* Estoque: base de abas internas */
.stock-tab-page,
.stock-page{
    width:100%!important;
    max-width:none!important;
    display:flex!important;
    flex-direction:column!important;
    gap:16px!important;
    margin:0!important;
}

.stock-page-hero,
.stock-hero{
    width:100%!important;
    max-width:none!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:16px!important;
    padding:18px 20px!important;
    border:1px solid var(--st-line, #dbe3ef)!important;
    border-radius:22px!important;
    background:var(--st-panel, #fff)!important;
    color:var(--st-text, #0f172a)!important;
    box-shadow:none!important;
}
.stock-page-hero h1,
.stock-hero h1{
    margin:4px 0 6px!important;
    font-size:clamp(24px, 2.4vw, 38px)!important;
    line-height:1.05!important;
    letter-spacing:-.045em!important;
}
.stock-page-hero p,
.stock-hero p{
    margin:0!important;
    color:var(--st-muted, #667085)!important;
    font-size:clamp(13px, .95vw, 16px)!important;
    line-height:1.45!important;
    max-width:860px!important;
}
.stock-hero-actions,
.stock-actions{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    flex-wrap:wrap!important;
    gap:10px!important;
}

.stock-btn,
a.stock-btn,
button.stock-btn{
    min-height:42px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    padding:0 16px!important;
    border-radius:999px!important;
    border:1px solid var(--st-line, #dbe3ef)!important;
    background:var(--st-panel, #fff)!important;
    color:var(--st-text, #0f172a)!important;
    -webkit-text-fill-color:currentColor!important;
    text-decoration:none!important;
    font-weight:900!important;
    font-size:14px!important;
    line-height:1!important;
    white-space:nowrap!important;
    box-shadow:none!important;
}
.stock-btn--primary,
button.stock-btn--primary,
a.stock-btn--primary{
    background:var(--st-accent, #fb923c)!important;
    border-color:var(--st-accent, #fb923c)!important;
    color:#111827!important;
    -webkit-text-fill-color:#111827!important;
}
.stock-btn--soft,
.stock-btn--ghost{
    background:var(--st-panel-2, #f3f5f8)!important;
    border-color:var(--st-line, #dbe3ef)!important;
    color:var(--st-text, #0f172a)!important;
}
.stock-btn--full{width:100%!important;}
.stock-btn--sm{min-height:34px!important;padding:0 12px!important;font-size:12px!important;}

.stock-mini-kpis{
    width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:12px!important;
}
.stock-mini-kpis > article,
.stock-kpi{
    min-width:0!important;
    min-height:96px!important;
    padding:16px!important;
    border:1px solid var(--st-line, #dbe3ef)!important;
    border-radius:20px!important;
    background:var(--st-panel, #fff)!important;
    color:var(--st-text, #0f172a)!important;
    box-shadow:none!important;
}
.stock-mini-kpis small,
.stock-kpi small{
    display:block!important;
    margin-bottom:6px!important;
    color:var(--st-muted, #667085)!important;
    text-transform:uppercase!important;
    letter-spacing:.08em!important;
    font-size:11px!important;
    font-weight:950!important;
}
.stock-mini-kpis strong,
.stock-kpi strong{
    display:block!important;
    color:var(--st-text, #0f172a)!important;
    font-size:28px!important;
    line-height:1.05!important;
    font-weight:950!important;
    white-space:normal!important;
}
.stock-mini-kpis span,
.stock-kpi span{
    display:block!important;
    margin-top:6px!important;
    color:var(--st-muted, #667085)!important;
    font-size:13px!important;
}

.stock-import-layout,
.stock-alert-layout,
.stock-settings-layout,
.stock-grid,
.stock-insight-grid{
    width:100%!important;
    display:grid!important;
    grid-template-columns:minmax(0, 1fr) minmax(320px, .55fr)!important;
    gap:16px!important;
    align-items:start!important;
}
.stock-settings-layout{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
.stock-panel,
.stock-card,
.stock-insight-card{
    min-width:0!important;
    padding:18px!important;
    border:1px solid var(--st-line, #dbe3ef)!important;
    border-radius:22px!important;
    background:var(--st-panel, #fff)!important;
    color:var(--st-text, #0f172a)!important;
    box-shadow:none!important;
}
.stock-panel-head{
    display:flex!important;
    flex-direction:column!important;
    gap:6px!important;
    margin-bottom:14px!important;
}
.stock-panel-head--row{
    flex-direction:row!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:14px!important;
}
.stock-panel-head h2,
.stock-card h2{
    margin:0!important;
    font-size:20px!important;
    line-height:1.15!important;
    letter-spacing:-.035em!important;
}
.stock-panel-head p,
.stock-card p{
    margin:0!important;
    color:var(--st-muted, #667085)!important;
}

.stock-modern-form,
.stock-form-grid-2,
.stock-settings-actions{
    display:grid!important;
    gap:12px!important;
}
.stock-form-grid-2{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
.stock-settings-actions{
    grid-column:1 / -1!important;
    display:flex!important;
    justify-content:flex-end!important;
    flex-wrap:wrap!important;
}
.stock-modern-form label{
    display:grid!important;
    gap:7px!important;
    font-weight:900!important;
    color:var(--st-text, #0f172a)!important;
}
.stock-modern-form label > span{
    color:var(--st-muted, #667085)!important;
    text-transform:uppercase!important;
    letter-spacing:.06em!important;
    font-size:11px!important;
}
.stock-modern-form input,
.stock-modern-form select,
.stock-modern-form textarea,
.stock-content input,
.stock-content select,
.stock-content textarea{
    width:100%!important;
    min-height:44px!important;
    border-radius:14px!important;
    border:1px solid var(--st-line, #dbe3ef)!important;
    background:var(--st-panel-2, #f3f5f8)!important;
    color:var(--st-text, #0f172a)!important;
    -webkit-text-fill-color:var(--st-text, #0f172a)!important;
    padding:10px 12px!important;
}
.stock-upload-box{
    min-height:126px!important;
    padding:18px!important;
    border:1px dashed color-mix(in srgb,var(--st-accent, #fb923c) 45%, var(--st-line, #dbe3ef))!important;
    border-radius:20px!important;
    background:var(--st-accent-soft, rgba(251,146,60,.12))!important;
    cursor:pointer!important;
}
.stock-upload-box input{margin-top:12px!important;background:var(--st-panel, #fff)!important;}
.stock-help-list,
.stock-empty-state,
.stock-empty-inline{
    padding:16px!important;
    border:1px dashed var(--st-line, #dbe3ef)!important;
    border-radius:18px!important;
    background:var(--st-panel-2, #f3f5f8)!important;
    color:var(--st-muted, #667085)!important;
}
.stock-help-list strong,
.stock-empty-state strong,
.stock-empty-inline strong{display:block!important;color:var(--st-text,#0f172a)!important;margin-bottom:4px!important;}

.stock-table-wrap{
    width:100%!important;
    max-width:100%!important;
    overflow:auto!important;
    border-radius:18px!important;
    border:1px solid var(--st-line, #dbe3ef)!important;
}
.stock-modern-table{
    width:100%!important;
    min-width:860px!important;
    border-collapse:separate!important;
    border-spacing:0!important;
    color:var(--st-text, #0f172a)!important;
}
.stock-modern-table th,
.stock-modern-table td{
    padding:14px 16px!important;
    border-bottom:1px solid var(--st-line, #dbe3ef)!important;
    background:transparent!important;
    color:var(--st-text, #0f172a)!important;
}
.stock-modern-table th{
    background:var(--st-panel-2, #f3f5f8)!important;
    color:var(--st-muted, #667085)!important;
    text-transform:uppercase!important;
    letter-spacing:.07em!important;
    font-size:11px!important;
    font-weight:950!important;
}
.stock-modern-table td small{display:block!important;color:var(--st-muted, #667085)!important;}
.stock-count-pill,
.stock-import-status,
.stock-chip{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:6px!important;
    min-height:28px!important;
    padding:0 10px!important;
    border-radius:999px!important;
    font-size:12px!important;
    font-weight:950!important;
    white-space:nowrap!important;
}
.stock-import-status.ok{background:rgba(22,163,74,.12)!important;color:#16a34a!important;border:1px solid rgba(22,163,74,.24)!important;}
.stock-import-status.warn{background:rgba(245,158,11,.14)!important;color:#d97706!important;border:1px solid rgba(245,158,11,.28)!important;}
.stock-import-status.danger{background:rgba(239,68,68,.12)!important;color:#ef4444!important;border:1px solid rgba(239,68,68,.28)!important;}

.stock-supplier-grid,
.stock-alert-list,
.stock-toggle-list,
.stock-integration-grid,
.stock-alert-guide{
    display:grid!important;
    gap:12px!important;
}
.stock-supplier-grid{
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr))!important;
}
.stock-supplier-card,
.stock-alert-card,
.stock-toggle-list label,
.stock-integration-grid > div,
.stock-alert-guide > div{
    min-width:0!important;
    padding:14px!important;
    border:1px solid var(--st-line, #dbe3ef)!important;
    border-radius:18px!important;
    background:var(--st-panel-2, #f3f5f8)!important;
    color:var(--st-text, #0f172a)!important;
}
.stock-supplier-top{
    display:flex!important;
    align-items:center!important;
    gap:10px!important;
    margin-bottom:12px!important;
}
.stock-avatar{
    width:42px!important;
    height:42px!important;
    border-radius:14px!important;
    display:grid!important;
    place-items:center!important;
    flex:0 0 42px!important;
    background:var(--st-accent-soft, rgba(251,146,60,.12))!important;
    color:var(--st-accent, #fb923c)!important;
    font-weight:950!important;
}
.stock-supplier-contact{
    display:grid!important;
    gap:2px!important;
    padding:10px 0!important;
    border-top:1px solid var(--st-line, #dbe3ef)!important;
}
.stock-supplier-contact span,
.stock-alert-card small,
.stock-integration-grid span,
.stock-alert-guide span{
    color:var(--st-muted, #667085)!important;
}
.stock-alert-card{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
}
.stock-alert-main strong{display:block!important;margin:8px 0 4px!important;}
.stock-alert-actions{display:flex!important;flex-wrap:wrap!important;gap:8px!important;}
.stock-toggle-list label{
    display:flex!important;
    align-items:flex-start!important;
    gap:10px!important;
    cursor:pointer!important;
}
.stock-toggle-list input{width:18px!important;height:18px!important;min-height:18px!important;margin-top:2px!important;}
.stock-toggle-list strong{display:block!important;}
.stock-toggle-list small{display:block!important;color:var(--st-muted,#667085)!important;}
.stock-integration-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
.stock-alert-guide{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

/* Dashboard estoque: cards menos esticados e tabela com dimensão correta. */
.stock-page .stock-insight-grid,
.stock-page .stock-grid{
    grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr)!important;
}
.stock-page .stock-card:has(.stock-modern-table),
.stock-page .stock-card:has(table){
    overflow:hidden!important;
}

/* Serviços: solicitações como aviso minimalista e cards mobile compactos. */
.svc-request-mini-alert{
    display:flex!important;
    align-items:center!important;
    gap:12px!important;
    padding:12px 14px!important;
    border:1px solid var(--svc-line, #dbe3ef)!important;
    border-radius:18px!important;
    background:var(--svc-panel, #fff)!important;
    color:var(--svc-text, #0f172a)!important;
    box-shadow:none!important;
}
.svc-request-mini-alert > span{
    width:38px!important;
    height:38px!important;
    border-radius:14px!important;
    display:grid!important;
    place-items:center!important;
    background:rgba(22,163,74,.12)!important;
    color:var(--svc-green, #16a34a)!important;
    flex:0 0 38px!important;
}
.svc-request-mini-alert div{min-width:0!important;flex:1!important;}
.svc-request-mini-alert strong,
.svc-request-mini-alert small{display:block!important;}
.svc-request-mini-alert small{color:var(--svc-muted,#64748b)!important;margin-top:2px!important;}
.svc-request-mini-alert a{
    min-height:36px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    border-radius:999px!important;
    padding:0 12px!important;
    border:1px solid var(--svc-line,#dbe3ef)!important;
    color:var(--svc-green,#16a34a)!important;
    text-decoration:none!important;
    font-weight:900!important;
    white-space:nowrap!important;
}

.svc-sheet-modal{
    border-radius:24px!important;
    overflow:hidden!important;
}
.svc-sheet-header{
    padding:16px 18px!important;
}
.svc-sheet-modal .modal-body{
    padding:18px!important;
}
.svc-sheet-modal .modal-footer{
    padding:14px 18px!important;
}
.svc-form-grid--compact{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:12px!important;
}
.svc-form-grid--compact .wide{grid-column:1 / -1!important;}

/* Escuro consistente */
html.theme-dark .stock-page-hero,
html.theme-dark .stock-hero,
html.theme-dark .stock-panel,
html.theme-dark .stock-card,
html.theme-dark .stock-mini-kpis > article,
html.theme-dark .stock-supplier-card,
html.theme-dark .stock-alert-card,
html.theme-dark .stock-toggle-list label,
html.theme-dark .stock-integration-grid > div,
html.theme-dark .stock-alert-guide > div,
html.theme-dark .svc-request-mini-alert{
    background:#111827!important;
    color:#f8fafc!important;
    border-color:#273244!important;
}
html.theme-dark .stock-modern-form input,
html.theme-dark .stock-modern-form select,
html.theme-dark .stock-modern-form textarea,
html.theme-dark .stock-content input,
html.theme-dark .stock-content select,
html.theme-dark .stock-content textarea,
html.theme-dark .stock-upload-box input{
    background:#151f31!important;
    color:#f8fafc!important;
    -webkit-text-fill-color:#f8fafc!important;
    border-color:#273244!important;
}
html.theme-dark .stock-modern-table th,
html.theme-dark .stock-help-list,
html.theme-dark .stock-empty-state,
html.theme-dark .stock-empty-inline,
html.theme-dark .stock-supplier-card,
html.theme-dark .stock-alert-card,
html.theme-dark .stock-toggle-list label,
html.theme-dark .stock-integration-grid > div,
html.theme-dark .stock-alert-guide > div{
    background:#151f31!important;
    border-color:#273244!important;
}
html.theme-dark .stock-modern-table td,
html.theme-dark .stock-modern-table th{
    color:#f8fafc!important;
    border-color:#273244!important;
}

@media(max-width:1280px){
    .stock-import-layout,
    .stock-alert-layout,
    .stock-settings-layout,
    .stock-grid,
    .stock-insight-grid,
    .stock-page .stock-insight-grid,
    .stock-page .stock-grid{
        grid-template-columns:1fr!important;
    }
}
@media(max-width:760px){
    .stock-page-hero,
    .stock-hero,
    .stock-panel-head--row,
    .stock-alert-card,
    .svc-request-mini-alert{
        flex-direction:column!important;
        align-items:flex-start!important;
    }
    .stock-hero-actions,
    .stock-actions,
    .stock-alert-actions,
    .svc-request-mini-alert a{
        width:100%!important;
    }
    .stock-btn,
    a.stock-btn,
    button.stock-btn{
        width:100%!important;
    }
    .stock-mini-kpis{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
    .stock-form-grid-2,
    .stock-integration-grid,
    .stock-alert-guide,
    .svc-form-grid--compact{
        grid-template-columns:1fr!important;
    }
    .stock-modern-table{
        min-width:720px!important;
    }
    .svc-module-shell,
    .svc-grid-2,
    .svc-summary-strip,
    .svc-entity-grid{
        gap:10px!important;
    }
    .svc-card,
    .svc-entity-card,
    .svc-list-card{
        padding:12px!important;
        border-radius:18px!important;
    }
    .svc-module-toolbar{
        gap:10px!important;
    }
    .svc-actions,
    .svc-entity-footer,
    .modal-footer{
        display:flex!important;
        flex-wrap:wrap!important;
        gap:8px!important;
    }
    .svc-actions .svc-btn,
    .svc-entity-footer .svc-btn,
    .modal-footer .svc-btn{
        flex:1 1 auto!important;
        min-width:0!important;
    }
    .svc-sheet-modal .modal-body{padding:14px!important;}
    .svc-sheet-header{padding:14px!important;}
}
@media(max-width:520px){
    .stock-mini-kpis{grid-template-columns:1fr!important;}
    .stock-page-hero h1,.stock-hero h1{font-size:26px!important;}
    .stock-content,.svc-content{padding:12px 10px 90px!important;}
}

/* ============================================================
   V58 - Ajustes Estoque + Serviços solicitados
   ============================================================ */

/* Ocultar visualmente barras de arraste/scroll das sidebars e do conteúdo estoque, mantendo rolagem funcional. */
#appSidebar .sidebar-clean-nav,
.svc-nav-scroll,
.stock-nav,
.pdv-nav,
.stock-content{
    scrollbar-width:none!important;
    -ms-overflow-style:none!important;
}
#appSidebar .sidebar-clean-nav::-webkit-scrollbar,
.svc-nav-scroll::-webkit-scrollbar,
.stock-nav::-webkit-scrollbar,
.pdv-nav::-webkit-scrollbar,
.stock-content::-webkit-scrollbar{
    width:0!important;
    height:0!important;
    display:none!important;
}

/* Estoque: dashboard e abas internas com apresentação consistente. */
.stock-page,
.stock-tab-page,
.stock-dashboard,
.stock-content > *{
    max-width:none!important;
    width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
}
.stock-page-hero,
.stock-hero,
.stock-card,
.stock-panel,
.stock-kpi,
.stock-mini-kpis article,
.stock-feedback{
    border-radius:22px!important;
    border:1px solid var(--st-line, var(--v2-border, rgba(148,163,184,.22)))!important;
    background:var(--st-panel, var(--v2-surface, #fff))!important;
    color:var(--st-text, var(--v2-text, #0f172a))!important;
    box-shadow:0 12px 34px rgba(15,23,42,.05)!important;
}
.stock-page-hero,
.stock-hero{
    padding:20px 22px!important;
    display:flex!important;
    align-items:flex-end!important;
    justify-content:space-between!important;
    gap:16px!important;
    min-height:0!important;
}
.stock-page-hero h1,
.stock-hero h1{
    margin:6px 0 8px!important;
    font-size:clamp(1.75rem, 3vw, 3rem)!important;
    line-height:1!important;
    letter-spacing:-.055em!important;
}
.stock-hero-actions,
.stock-actions,
.stock-content .d-flex.gap-2.flex-wrap.justify-content-end{
    display:flex!important;
    flex-wrap:wrap!important;
    justify-content:flex-end!important;
    gap:10px!important;
}
.stock-mini-kpis,
.stock-kpis{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:14px!important;
    margin:14px 0!important;
    width:100%!important;
}
.stock-mini-kpis article,
.stock-kpi{
    padding:16px!important;
    min-height:108px!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    gap:4px!important;
}
.stock-mini-kpis small,
.stock-kpi small{
    display:block!important;
    color:var(--st-muted, #64748b)!important;
    font-weight:900!important;
    text-transform:uppercase!important;
    letter-spacing:.08em!important;
}
.stock-mini-kpis strong,
.stock-kpi strong{
    display:block!important;
    font-size:clamp(1.35rem,2vw,2rem)!important;
    line-height:1.05!important;
}
.stock-grid,
.stock-import-layout,
.stock-settings-grid,
.stock-alert-layout,
.stock-supplier-layout,
.stock-content .row{
    width:100%!important;
    max-width:none!important;
}
.stock-import-layout,
.stock-settings-grid,
.stock-alert-layout,
.stock-supplier-layout{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(320px,.55fr)!important;
    gap:16px!important;
    align-items:start!important;
}
.stock-modern-form,
.stock-panel,
.stock-card{
    min-width:0!important;
    max-width:100%!important;
}
.stock-upload-box{
    display:grid!important;
    gap:4px!important;
    padding:18px!important;
    border:1px dashed var(--st-line, rgba(148,163,184,.28))!important;
    border-radius:18px!important;
    background:var(--st-panel-2, rgba(148,163,184,.08))!important;
    min-height:0!important;
}
.stock-upload-box input[type=file]{
    width:100%!important;
    max-width:100%!important;
    color:var(--st-text, #0f172a)!important;
}
.stock-help-list,
.stock-panel-head,
.stock-modern-form label,
.stock-table-wrap,
.stock-empty-state{
    min-width:0!important;
    max-width:100%!important;
}
.stock-content .table-responsive,
.stock-table-wrap{
    overflow:auto!important;
    border-radius:18px!important;
}
.stock-content table{
    table-layout:auto!important;
    min-width:760px!important;
}
.stock-content .btn,
.stock-btn{
    min-height:40px!important;
    border-radius:999px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    white-space:nowrap!important;
}
.stock-content .stock-flow-actions,
.stock-content .d-flex.gap-2.flex-wrap.justify-content-end{
    position:relative!important;
    padding:0!important;
    margin:14px 0!important;
}
.stock-content .stock-flow-actions .btn,
.stock-content .d-flex.gap-2.flex-wrap.justify-content-end .btn{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:132px!important;
}

/* Serviços: remover App Mobile visual já removido no layout, mas garantir que classes antigas não voltem. */
.svc-sidebar-card,
.svc-sidebar .app-mobile-card,
.svc-sidebar [class*="app-mobile"]{
    display:none!important;
}

/* Serviços: badge de solicitações pendentes no menu e topbar. */
.svc-sidebar a{
    position:relative!important;
}
.svc-nav-badge{
    margin-left:auto!important;
    min-width:22px!important;
    height:22px!important;
    padding:0 7px!important;
    border-radius:999px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    background:#16a34a!important;
    color:#fff!important;
    font-style:normal!important;
    font-size:.72rem!important;
    font-weight:950!important;
    line-height:1!important;
}
.svc-request-bell{
    position:relative!important;
}
.svc-request-bell span{
    position:absolute!important;
    top:-5px!important;
    right:-5px!important;
    min-width:19px!important;
    height:19px!important;
    padding:0 5px!important;
    border-radius:999px!important;
    display:grid!important;
    place-items:center!important;
    background:#16a34a!important;
    color:#fff!important;
    font-size:10px!important;
    font-weight:950!important;
    line-height:1!important;
    border:2px solid var(--svc-bg, #f7f8fa)!important;
}
html.theme-dark .svc-request-bell span,
html[data-theme="dark"] .svc-request-bell span{
    border-color:#0b1220!important;
}
.svc-alert-item.request{
    border-color:rgba(34,197,94,.35)!important;
    background:rgba(34,197,94,.10)!important;
}
.svc-alert-item.request strong{
    color:#16a34a!important;
}
.svc-request-mini-alert{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr) auto!important;
    gap:12px!important;
    align-items:center!important;
    padding:14px 16px!important;
    border-radius:18px!important;
    border:1px solid rgba(34,197,94,.22)!important;
    background:rgba(34,197,94,.08)!important;
    color:var(--svc-text, #0f172a)!important;
    margin-bottom:14px!important;
}
.svc-request-mini-alert > span{
    width:38px!important;
    height:38px!important;
    border-radius:13px!important;
    display:grid!important;
    place-items:center!important;
    background:rgba(34,197,94,.14)!important;
    color:#16a34a!important;
}
.svc-request-mini-alert strong,
.svc-request-mini-alert small{
    display:block!important;
}
.svc-request-mini-alert small{
    color:var(--svc-muted, #64748b)!important;
}
.svc-request-mini-alert a{
    color:#16a34a!important;
    font-weight:900!important;
    text-decoration:none!important;
}

/* Serviços mobile: calendário e pop-up como bottom sheet, sem ficar cortado. */
@media(max-width:768px){
    .svc-content{
        padding:10px 10px 92px!important;
    }
    .svc-page,
    .svc-module-shell{
        gap:10px!important;
    }
    .svc-kpi-grid,
    .svc-kpi-grid-compact,
    .svc-summary-strip{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:8px!important;
    }
    .svc-card,
    .svc-kpi,
    .svc-list-card,
    .svc-summary-item{
        border-radius:16px!important;
        padding:12px!important;
    }
    .svc-google-week-event,
    .svc-calendar-event,
    .svc-week-event,
    .svc-agenda-event,
    .svc-event-card{
        min-height:36px!important;
        padding:7px 9px!important;
        border-radius:12px!important;
    }
    .svc-calendar-service-title{
        font-size:.74rem!important;
        line-height:1.15!important;
        -webkit-line-clamp:2!important;
    }
    .svc-event-popover{
        position:fixed!important;
        left:10px!important;
        right:10px!important;
        top:auto!important;
        bottom:calc(76px + env(safe-area-inset-bottom, 0px))!important;
        width:auto!important;
        max-width:none!important;
        max-height:min(62vh, 520px)!important;
        overflow:auto!important;
        border-radius:22px 22px 18px 18px!important;
        box-shadow:0 -18px 45px rgba(2,6,23,.25)!important;
        transform:none!important;
        z-index:2200!important;
    }
    .svc-event-popover-body{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:8px!important;
    }
    .svc-event-popover-actions{
        display:grid!important;
        grid-template-columns:1fr 1fr!important;
        gap:8px!important;
        position:sticky!important;
        bottom:0!important;
        background:inherit!important;
        padding-top:8px!important;
    }
    .svc-event-popover-actions .svc-btn{
        width:100%!important;
        min-height:42px!important;
    }
    .svc-request-mini-alert{
        grid-template-columns:auto 1fr!important;
        padding:12px!important;
    }
    .svc-request-mini-alert a{
        grid-column:2!important;
    }
}

@media(max-width:992px){
    .stock-page-hero,
    .stock-hero{
        align-items:flex-start!important;
        flex-direction:column!important;
        padding:16px!important;
    }
    .stock-hero-actions,
    .stock-actions,
    .stock-content .d-flex.gap-2.flex-wrap.justify-content-end{
        justify-content:flex-start!important;
        width:100%!important;
    }
    .stock-import-layout,
    .stock-settings-grid,
    .stock-alert-layout,
    .stock-supplier-layout,
    .stock-grid{
        grid-template-columns:1fr!important;
    }
    .stock-mini-kpis,
    .stock-kpis{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
}
@media(max-width:560px){
    .stock-mini-kpis,
    .stock-kpis{
        grid-template-columns:1fr!important;
    }
    .stock-content table{
        min-width:680px!important;
    }
    .stock-content .btn,
    .stock-btn{
        width:100%!important;
    }
}


/* ============================================================
   V59 - Estoque dashboard, scrollbars ocultas e avisos numéricos
   ============================================================ */

/* Oculta visualmente barras de arrastar, mantendo scroll funcional. */
#appSidebar,
#appSidebar .sidebar-clean-nav,
#appSidebar .bvms-nav-clean,
.svc-sidebar,
.svc-nav-scroll,
.stock-sidebar,
.stock-nav,
.pdv-sidebar,
.pdv-nav,
.stock-content,
.svc-content,
.pdv-content,
body.app-body main.page-content{
    scrollbar-width:none!important;
    -ms-overflow-style:none!important;
}

#appSidebar::-webkit-scrollbar,
#appSidebar .sidebar-clean-nav::-webkit-scrollbar,
#appSidebar .bvms-nav-clean::-webkit-scrollbar,
.svc-sidebar::-webkit-scrollbar,
.svc-nav-scroll::-webkit-scrollbar,
.stock-sidebar::-webkit-scrollbar,
.stock-nav::-webkit-scrollbar,
.pdv-sidebar::-webkit-scrollbar,
.pdv-nav::-webkit-scrollbar,
.stock-content::-webkit-scrollbar,
.svc-content::-webkit-scrollbar,
.pdv-content::-webkit-scrollbar,
body.app-body main.page-content::-webkit-scrollbar{
    width:0!important;
    height:0!important;
    display:none!important;
}

/* Badge numérico de solicitações no menu e topbar. */
.svc-nav-scroll a{
    position:relative!important;
}

.svc-nav-badge{
    margin-left:auto!important;
    min-width:22px!important;
    height:22px!important;
    padding:0 6px!important;
    border-radius:999px!important;
    background:#ef4444!important;
    color:#fff!important;
    display:inline-grid!important;
    place-items:center!important;
    font-size:11px!important;
    font-weight:950!important;
    line-height:1!important;
    box-shadow:0 6px 16px rgba(239,68,68,.28)!important;
    font-style:normal!important;
}

.svc-request-bell{
    position:relative!important;
}

.svc-request-bell span{
    position:absolute!important;
    top:-7px!important;
    right:-7px!important;
    min-width:22px!important;
    height:22px!important;
    padding:0 6px!important;
    border-radius:999px!important;
    background:#ef4444!important;
    color:#fff!important;
    display:grid!important;
    place-items:center!important;
    font-size:11px!important;
    font-weight:950!important;
    line-height:1!important;
    box-shadow:0 6px 16px rgba(239,68,68,.28)!important;
}

.svc-alert-item.request{
    border-color:rgba(239,68,68,.28)!important;
    background:rgba(239,68,68,.08)!important;
}

.svc-alert-item.request strong{
    color:#ef4444!important;
}

/* Dashboard Estoque reformulado. */
.stock-dashboard-v59{
    display:flex!important;
    flex-direction:column!important;
    gap:16px!important;
}

.stock-dashboard-hero{
    display:flex!important;
    align-items:flex-end!important;
    justify-content:space-between!important;
    gap:16px!important;
    padding:22px!important;
    border:1px solid var(--stock-line,#e2e8f0)!important;
    border-radius:24px!important;
    background:var(--stock-card,#fff)!important;
    color:var(--stock-text,#111827)!important;
    box-shadow:0 2px 10px rgba(15,23,42,.04)!important;
}

.stock-dashboard-hero h1{
    margin:8px 0 6px!important;
    font-size:clamp(26px,3vw,44px)!important;
    line-height:.98!important;
    letter-spacing:-.045em!important;
    font-weight:950!important;
    color:var(--stock-text,#111827)!important;
}

.stock-dashboard-hero p{
    margin:0!important;
    max-width:820px!important;
    color:var(--stock-muted,#64748b)!important;
}

.stock-dashboard-actions{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:8px!important;
    justify-content:flex-end!important;
}

.stock-dashboard-actions .btn{
    border-radius:999px!important;
    font-weight:850!important;
    min-height:42px!important;
    display:inline-flex!important;
    align-items:center!important;
    gap:7px!important;
}

.stock-dashboard-kpis{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:14px!important;
}

.stock-dashboard-kpis .stock-kpi{
    min-height:116px!important;
    padding:18px!important;
    border-radius:20px!important;
    background:var(--stock-card,#fff)!important;
    border:1px solid var(--stock-line,#e2e8f0)!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    gap:6px!important;
}

.stock-dashboard-kpis .stock-kpi small,
.stock-card .stock-section-head p,
.stock-card .stock-dashboard-row small,
.stock-card .stock-list-card small,
.stock-card .stock-empty-inline{
    color:var(--stock-muted,#64748b)!important;
}

.stock-dashboard-kpis .stock-kpi strong{
    font-size:clamp(24px,2vw,34px)!important;
    letter-spacing:-.04em!important;
    line-height:1!important;
}

.stock-dashboard-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr)!important;
    gap:16px!important;
    align-items:start!important;
}

.stock-dashboard-grid.lower{
    grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr)!important;
}

.stock-section-head{
    display:flex!important;
    align-items:flex-start!important;
    justify-content:space-between!important;
    gap:12px!important;
    margin-bottom:14px!important;
}

.stock-section-head.compact{
    margin-bottom:10px!important;
}

.stock-section-head h2{
    margin:6px 0 3px!important;
    font-size:18px!important;
    line-height:1.1!important;
    font-weight:950!important;
    color:var(--stock-text,#111827)!important;
}

.stock-section-head p{
    margin:0!important;
    font-size:13px!important;
}

.stock-list-stack{
    display:flex!important;
    flex-direction:column!important;
    gap:10px!important;
}

.stock-dashboard-row,
.stock-empty-inline{
    display:flex!important;
    justify-content:space-between!important;
    gap:12px!important;
    align-items:flex-start!important;
    padding:12px!important;
    border:1px solid var(--stock-line,#e2e8f0)!important;
    border-radius:16px!important;
    background:var(--stock-card-2,#f8fafc)!important;
    color:var(--stock-text,#111827)!important;
}

.stock-empty-inline{
    display:block!important;
    color:var(--stock-muted,#64748b)!important;
}

.stock-dashboard-row strong{
    display:block!important;
    color:var(--stock-text,#111827)!important;
    line-height:1.2!important;
}

.stock-dashboard-row small{
    display:block!important;
    margin-top:3px!important;
    line-height:1.35!important;
}

.stock-dashboard-v59 .stock-mini-kpis{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:10px!important;
    margin-bottom:12px!important;
}

.stock-dashboard-v59 .stock-mini-stat{
    padding:12px!important;
    border:1px solid var(--stock-line,#e2e8f0)!important;
    border-radius:16px!important;
    background:var(--stock-card-2,#f8fafc)!important;
    min-width:0!important;
}

.stock-dashboard-v59 .stock-mini-stat small{
    display:block!important;
    color:var(--stock-muted,#64748b)!important;
    text-transform:uppercase!important;
    font-weight:850!important;
    letter-spacing:.05em!important;
    font-size:11px!important;
}

.stock-dashboard-v59 .stock-mini-stat strong{
    display:block!important;
    margin-top:4px!important;
    color:var(--stock-text,#111827)!important;
    font-size:18px!important;
}

.stock-dashboard-v59 .stock-table thead th{
    background:var(--stock-card-2,#f8fafc)!important;
    color:var(--stock-text,#111827)!important;
    border-bottom:1px solid var(--stock-line,#e2e8f0)!important;
}

.stock-dashboard-v59 .stock-table td,
.stock-dashboard-v59 .stock-table th{
    padding:14px 16px!important;
    vertical-align:middle!important;
}

.stock-dashboard-v59 .stock-table td{
    border-color:var(--stock-line,#e2e8f0)!important;
}

html.theme-dark .stock-dashboard-v59,
.theme-dark .stock-dashboard-v59{
    --stock-card:#101827;
    --stock-card-2:#132033;
    --stock-line:#26364f;
    --stock-text:#f8fafc;
    --stock-muted:#9aa8bd;
}

html.theme-dark .stock-dashboard-v59 .stock-dashboard-hero,
html.theme-dark .stock-dashboard-v59 .stock-kpi,
html.theme-dark .stock-dashboard-v59 .stock-card,
html.theme-dark .stock-dashboard-v59 .stock-dashboard-row,
html.theme-dark .stock-dashboard-v59 .stock-empty-inline,
html.theme-dark .stock-dashboard-v59 .stock-mini-stat,
.theme-dark .stock-dashboard-v59 .stock-dashboard-hero,
.theme-dark .stock-dashboard-v59 .stock-kpi,
.theme-dark .stock-dashboard-v59 .stock-card,
.theme-dark .stock-dashboard-v59 .stock-dashboard-row,
.theme-dark .stock-dashboard-v59 .stock-empty-inline,
.theme-dark .stock-dashboard-v59 .stock-mini-stat{
    background:var(--stock-card)!important;
    border-color:var(--stock-line)!important;
    color:var(--stock-text)!important;
}

html.theme-dark .stock-dashboard-v59 .stock-dashboard-row,
html.theme-dark .stock-dashboard-v59 .stock-empty-inline,
html.theme-dark .stock-dashboard-v59 .stock-mini-stat,
.theme-dark .stock-dashboard-v59 .stock-dashboard-row,
.theme-dark .stock-dashboard-v59 .stock-empty-inline,
.theme-dark .stock-dashboard-v59 .stock-mini-stat{
    background:var(--stock-card-2)!important;
}

html.theme-dark .stock-dashboard-v59 h1,
html.theme-dark .stock-dashboard-v59 h2,
html.theme-dark .stock-dashboard-v59 strong,
.theme-dark .stock-dashboard-v59 h1,
.theme-dark .stock-dashboard-v59 h2,
.theme-dark .stock-dashboard-v59 strong{
    color:var(--stock-text)!important;
}

@media(max-width:1280px){
    .stock-dashboard-grid,
    .stock-dashboard-grid.lower{
        grid-template-columns:1fr!important;
    }
}

@media(max-width:900px){
    .stock-dashboard-hero{
        display:block!important;
        padding:16px!important;
    }

    .stock-dashboard-actions{
        justify-content:flex-start!important;
        margin-top:14px!important;
    }

    .stock-dashboard-kpis{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
}

@media(max-width:560px){
    .stock-dashboard-kpis,
    .stock-dashboard-v59 .stock-mini-kpis{
        grid-template-columns:1fr!important;
    }

    .stock-section-head{
        display:block!important;
    }

    .stock-section-head .btn{
        margin-top:10px!important;
    }

    .stock-dashboard-row{
        display:block!important;
    }

    .stock-dashboard-row .stock-pill-green{
        margin-top:8px!important;
    }

    .stock-dashboard-actions .btn{
        width:100%!important;
        justify-content:center!important;
    }
}


/* ============================================================
   V60 - Solicitações com badge numérico igual Notificações
   ============================================================ */
.svc-nav-group a{
    position:relative!important;
}

.svc-nav-badge,
.svc-nav-badge--alert{
    margin-left:auto!important;
    min-width:22px!important;
    height:22px!important;
    padding:0 7px!important;
    border-radius:999px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    background:#ef4444!important;
    color:#fff!important;
    font-style:normal!important;
    font-size:.72rem!important;
    font-weight:950!important;
    line-height:1!important;
    box-shadow:0 8px 18px rgba(239,68,68,.28)!important;
    border:2px solid var(--svc-bg, #f7f8fa)!important;
}

html.theme-dark .svc-nav-badge,
html[data-theme="dark"] .svc-nav-badge,
html.theme-dark .svc-nav-badge--alert,
html[data-theme="dark"] .svc-nav-badge--alert{
    border-color:#0b1220!important;
}

.svc-nav-group a.active .svc-nav-badge,
.svc-nav-group a:hover .svc-nav-badge{
    color:#fff!important;
    background:#ef4444!important;
}

.svc-request-bell span{
    background:#ef4444!important;
    box-shadow:0 8px 18px rgba(239,68,68,.28)!important;
}

/* Quando Solicitações estiver ativa, mantém o pill verde do item e o contador vermelho à direita. */
.svc-nav-group a[href="/servicos/solicitacoes"].active,
.svc-nav-group a[href="/servicos/solicitacoes"]:hover{
    background:var(--svc-green-soft)!important;
    color:var(--svc-green)!important;
    border-color:rgba(22,163,74,.22)!important;
}


/* ============================================================
   V61 - Sidebar limpa + Solicitações com efeito Notificações + ERP sem Extrato
   ============================================================ */

/* Oculta a barra visual de rolagem das sidebars, mantendo scroll por mouse/touchpad/toque. */
#appSidebar,
#appSidebar *,
.bvms-sidebar-clean,
.bvms-sidebar-clean *,
.sidebar-clean-nav,
.bvms-nav-clean,
.svc-sidebar,
.svc-sidebar *,
.svc-nav-scroll,
.stock-sidebar,
.stock-sidebar *,
.stock-nav,
.pdv-sidebar,
.pdv-sidebar *,
.pdv-nav,
.admin-sidebar,
.admin-sidebar *,
.admin-nav{
    -ms-overflow-style:none!important;
    scrollbar-width:none!important;
}

#appSidebar::-webkit-scrollbar,
#appSidebar *::-webkit-scrollbar,
.bvms-sidebar-clean::-webkit-scrollbar,
.bvms-sidebar-clean *::-webkit-scrollbar,
.sidebar-clean-nav::-webkit-scrollbar,
.bvms-nav-clean::-webkit-scrollbar,
.svc-sidebar::-webkit-scrollbar,
.svc-sidebar *::-webkit-scrollbar,
.svc-nav-scroll::-webkit-scrollbar,
.stock-sidebar::-webkit-scrollbar,
.stock-sidebar *::-webkit-scrollbar,
.stock-nav::-webkit-scrollbar,
.pdv-sidebar::-webkit-scrollbar,
.pdv-sidebar *::-webkit-scrollbar,
.pdv-nav::-webkit-scrollbar,
.admin-sidebar::-webkit-scrollbar,
.admin-sidebar *::-webkit-scrollbar,
.admin-nav::-webkit-scrollbar{
    width:0!important;
    height:0!important;
    display:none!important;
    background:transparent!important;
}

/* Evita barra horizontal nas sidebars. */
#appSidebar,
.bvms-sidebar-clean,
.sidebar-clean-nav,
.bvms-nav-clean,
.svc-sidebar,
.svc-nav-scroll,
.stock-sidebar,
.stock-nav,
.pdv-sidebar,
.pdv-nav,
.admin-sidebar,
.admin-nav{
    overflow-x:hidden!important;
}

/* Solicitações com o mesmo comportamento visual de Notificações: texto + badge numérico à direita. */
.svc-nav-link--requests{
    position:relative!important;
    transition:background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease!important;
}

.svc-nav-link--requests:hover,
.svc-nav-link--requests.active{
    background:var(--svc-green-soft, rgba(22,163,74,.12))!important;
    color:var(--svc-green, #16a34a)!important;
    border-color:rgba(22,163,74,.22)!important;
}

.svc-nav-link--requests:hover i,
.svc-nav-link--requests.active i{
    color:var(--svc-green, #16a34a)!important;
}

.svc-nav-link--requests .svc-nav-badge,
.svc-nav-badge--alert{
    margin-left:auto!important;
    min-width:22px!important;
    height:22px!important;
    padding:0 7px!important;
    border-radius:999px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    background:#ef4444!important;
    color:#fff!important;
    font-size:11px!important;
    font-weight:950!important;
    line-height:1!important;
    font-style:normal!important;
    border:2px solid var(--svc-bg, #f7f8fa)!important;
    box-shadow:0 8px 18px rgba(239,68,68,.28)!important;
}

html.theme-dark .svc-nav-link--requests .svc-nav-badge,
html[data-theme="dark"] .svc-nav-link--requests .svc-nav-badge,
html.theme-dark .svc-nav-badge--alert,
html[data-theme="dark"] .svc-nav-badge--alert{
    border-color:#0b1220!important;
}

.svc-request-bell span{
    background:#ef4444!important;
    color:#fff!important;
    box-shadow:0 8px 18px rgba(239,68,68,.28)!important;
}

/* Garante que Extrato não reapareça visualmente no ERP mesmo com cache parcial ou menu legado. */
#appSidebar a[href="/extrato"],
.bvms-sidebar-clean a[href="/extrato"],
.sidebar-clean-nav a[href="/extrato"],
.bvms-nav-clean a[href="/extrato"]{
    display:none!important;
}


/* ============================================================
   V62 - Solicitações, tema e pop-up centralizado da Agenda
   ============================================================ */

/* Garante badge visível no item Solicitações, incluindo quando ativo. */
.svc-nav-link--requests.has-badge{
    display:flex!important;
    align-items:center!important;
    gap:10px!important;
}
.svc-nav-link--requests.has-badge .svc-nav-badge{
    flex:0 0 auto!important;
    margin-left:auto!important;
    opacity:1!important;
    visibility:visible!important;
}

/* Aba Solicitações: dimensionamento mais profissional no desktop e mobile. */
.svc-module-shell{
    width:100%!important;
    max-width:1360px!important;
    margin:0 auto!important;
    display:grid!important;
    gap:16px!important;
}
.svc-request-mini-alert{
    display:grid!important;
    grid-template-columns:auto minmax(0, 1fr) auto!important;
    align-items:center!important;
    gap:14px!important;
    padding:14px 16px!important;
    border-radius:18px!important;
    border:1px solid rgba(22,163,74,.22)!important;
    background:rgba(22,163,74,.08)!important;
}
.svc-request-mini-alert > span{
    width:42px!important;
    height:42px!important;
    border-radius:14px!important;
    display:grid!important;
    place-items:center!important;
    background:rgba(22,163,74,.14)!important;
    color:#16a34a!important;
}
.svc-request-mini-alert strong{
    display:block!important;
    font-size:1rem!important;
    line-height:1.2!important;
}
.svc-request-mini-alert small{
    display:block!important;
    margin-top:3px!important;
    color:var(--svc-muted)!important;
    line-height:1.35!important;
}
.svc-request-mini-alert a{
    white-space:nowrap!important;
}
.svc-summary-strip{
    display:grid!important;
    grid-template-columns:repeat(4, minmax(0, 1fr))!important;
    gap:12px!important;
}
.svc-summary-item{
    min-height:90px!important;
    border-radius:18px!important;
    background:var(--svc-panel-2)!important;
    border:1px solid var(--svc-line)!important;
    padding:16px!important;
}
.booking-request-card{
    grid-template-columns:minmax(0, 1fr) auto!important;
    align-items:center!important;
    gap:14px!important;
}
.booking-request-card > div:first-child{
    min-width:0!important;
}
.booking-request-card > div:first-child span,
.booking-request-card > div:first-child small{
    overflow-wrap:anywhere!important;
}
.booking-request-actions{
    justify-content:flex-end!important;
    align-items:center!important;
}

/* Tema claro/escuro consistente na aba Solicitações e link público do cliente. */
.svc-module-shell .svc-card,
.svc-module-shell .svc-list-card,
.svc-module-shell .modal-content,
.svc-module-shell input,
.svc-module-shell select,
.svc-module-shell textarea{
    color:var(--svc-text)!important;
}
html[data-theme="dark"] .svc-request-mini-alert,
html.theme-dark .svc-request-mini-alert{
    background:rgba(22,163,74,.10)!important;
    border-color:rgba(34,197,94,.22)!important;
}
html[data-theme="dark"] .svc-module-shell .modal-content,
html.theme-dark .svc-module-shell .modal-content{
    background:#111827!important;
    color:#f8fafc!important;
    border-color:rgba(148,163,184,.24)!important;
}
html[data-theme="dark"] .svc-module-shell input,
html[data-theme="dark"] .svc-module-shell select,
html[data-theme="dark"] .svc-module-shell textarea,
html.theme-dark .svc-module-shell input,
html.theme-dark .svc-module-shell select,
html.theme-dark .svc-module-shell textarea{
    background:#0b1220!important;
    color:#f8fafc!important;
    -webkit-text-fill-color:#f8fafc!important;
    border-color:rgba(148,163,184,.28)!important;
}

/* Página pública de agendamento: corrige tema claro/escuro e evita textos invisíveis. */
body.booking-public-body,
.booking-public-shell{
    color:var(--booking-text)!important;
}
.booking-public-shell .booking-card,
.booking-public-shell .booking-panel,
.booking-public-shell .booking-step-panel,
.booking-public-shell .booking-company-card,
.booking-public-shell .booking-info-card{
    background:var(--booking-card)!important;
    color:var(--booking-text)!important;
    border-color:var(--booking-line)!important;
}
html[data-theme="dark"] body.booking-public-body,
html.theme-dark body.booking-public-body{
    background:#0b1220!important;
    color:#f8fafc!important;
}
html[data-theme="dark"] .booking-public-shell,
html.theme-dark .booking-public-shell{
    --booking-bg:#0b1220;
    --booking-card:#111827;
    --booking-text:#f8fafc;
    --booking-muted:#b6c3d6;
    --booking-line:rgba(148,163,184,.28);
    color:#f8fafc!important;
}
html[data-theme="dark"] .booking-public-shell .booking-card,
html[data-theme="dark"] .booking-public-shell .booking-panel,
html[data-theme="dark"] .booking-public-shell .booking-step-panel,
html[data-theme="dark"] .booking-public-shell .booking-company-card,
html[data-theme="dark"] .booking-public-shell .booking-info-card,
html.theme-dark .booking-public-shell .booking-card,
html.theme-dark .booking-public-shell .booking-panel,
html.theme-dark .booking-public-shell .booking-step-panel,
html.theme-dark .booking-public-shell .booking-company-card,
html.theme-dark .booking-public-shell .booking-info-card{
    background:#111827!important;
    color:#f8fafc!important;
    border-color:rgba(148,163,184,.28)!important;
}
html[data-theme="dark"] .booking-public-shell p,
html[data-theme="dark"] .booking-public-shell small,
html[data-theme="dark"] .booking-public-shell span,
html.theme-dark .booking-public-shell p,
html.theme-dark .booking-public-shell small,
html.theme-dark .booking-public-shell span{
    color:inherit;
}

/* Agenda: pop-up de detalhes centralizado, estilo modal compacto. */
.svc-event-popover.svc-event-popover--centered,
.svc-event-popover.is-open{
    position:fixed!important;
    left:50%!important;
    top:50%!important;
    right:auto!important;
    bottom:auto!important;
    transform:translate(-50%, -50%)!important;
    width:min(420px, calc(100vw - 28px))!important;
    max-width:min(420px, calc(100vw - 28px))!important;
    max-height:min(78vh, 620px)!important;
    overflow:auto!important;
    z-index:3500!important;
    border-radius:22px!important;
    box-shadow:0 30px 80px rgba(2,6,23,.38)!important;
}
body.svc-event-popover-open::after{
    content:""!important;
    position:fixed!important;
    inset:0!important;
    background:rgba(2,6,23,.36)!important;
    z-index:3400!important;
    pointer-events:none!important;
}
.svc-event-popover.is-open{
    pointer-events:auto!important;
}
@media(max-width:760px){
    .svc-module-shell{
        max-width:none!important;
        gap:12px!important;
    }
    .svc-request-mini-alert{
        grid-template-columns:auto minmax(0,1fr)!important;
        padding:12px!important;
    }
    .svc-request-mini-alert a{
        grid-column:1 / -1!important;
        width:100%!important;
        justify-content:center!important;
        text-align:center!important;
    }
    .svc-summary-strip{
        grid-template-columns:repeat(2, minmax(0, 1fr))!important;
        gap:10px!important;
    }
    .svc-summary-item{
        min-height:74px!important;
        padding:12px!important;
    }
    .booking-request-card{
        grid-template-columns:1fr!important;
    }
    .booking-request-actions{
        justify-content:flex-start!important;
    }
    .booking-request-actions .svc-btn,
    .booking-request-actions form{
        width:100%!important;
    }
    .booking-request-actions .svc-btn{
        justify-content:center!important;
    }
    .svc-event-popover.svc-event-popover--centered,
    .svc-event-popover.is-open{
        width:calc(100vw - 24px)!important;
        max-height:calc(100dvh - 96px)!important;
        border-radius:20px!important;
    }
}


/* ============================================================
   V63 - Tema público corrigido + linha do horário atual na agenda
   ============================================================ */

/* Página pública: usa data-booking-theme, não data-theme, e remove cards brancos no tema escuro. */
html[data-booking-theme="dark"]{
    --booking-bg:#07111f!important;
    --booking-card:#111827!important;
    --booking-card-2:#0f172a!important;
    --booking-text:#f8fafc!important;
    --booking-muted:#bdd2ee!important;
    --booking-line:rgba(148,163,184,.30)!important;
    --booking-soft:rgba(22,163,74,.16)!important;
}
html[data-booking-theme="light"]{
    --booking-bg:#f6f8fb!important;
    --booking-card:#ffffff!important;
    --booking-card-2:#f8fafc!important;
    --booking-text:#0f172a!important;
    --booking-muted:#64748b!important;
    --booking-line:#dfe7ef!important;
    --booking-soft:#eaf8ef!important;
}

html[data-booking-theme="dark"] body.booking-public-body{
    background:#07111f!important;
    color:#f8fafc!important;
}
html[data-booking-theme="light"] body.booking-public-body{
    background:linear-gradient(180deg,#f8fbf9,#f4f7fb)!important;
    color:#0f172a!important;
}

html[data-booking-theme="dark"] .booking-public-shell,
html[data-booking-theme="dark"] .booking-public-shell *{
    color:inherit;
}
html[data-booking-theme="dark"] .booking-company-card,
html[data-booking-theme="dark"] .booking-hero-copy,
html[data-booking-theme="dark"] .booking-card,
html[data-booking-theme="dark"] .booking-steps-card,
html[data-booking-theme="dark"] .booking-flow-card,
html[data-booking-theme="dark"] .booking-summary-card,
html[data-booking-theme="dark"] .booking-info-card,
html[data-booking-theme="dark"] .booking-calendar-card,
html[data-booking-theme="dark"] .booking-times-card{
    background:#111827!important;
    color:#f8fafc!important;
    border-color:rgba(148,163,184,.30)!important;
}

html[data-booking-theme="dark"] .booking-service-card,
html[data-booking-theme="dark"] .booking-pro-card,
html[data-booking-theme="dark"] .booking-slot,
html[data-booking-theme="dark"] .booking-review>div,
html[data-booking-theme="dark"] .booking-fields-grid label,
html[data-booking-theme="dark"] .booking-date-row label,
html[data-booking-theme="dark"] .booking-code-box,
html[data-booking-theme="dark"] .booking-empty,
html[data-booking-theme="dark"] .booking-summary-item{
    background:#0f172a!important;
    color:#f8fafc!important;
    border-color:rgba(148,163,184,.30)!important;
}
html[data-booking-theme="dark"] .booking-service-card:hover,
html[data-booking-theme="dark"] .booking-pro-card:hover,
html[data-booking-theme="dark"] .booking-slot:hover,
html[data-booking-theme="dark"] .booking-service-card.selected,
html[data-booking-theme="dark"] .booking-pro-card.selected,
html[data-booking-theme="dark"] .booking-slot.selected{
    background:rgba(22,163,74,.18)!important;
    border-color:#22c55e!important;
}

html[data-booking-theme="dark"] .booking-service-card strong,
html[data-booking-theme="dark"] .booking-pro-card strong,
html[data-booking-theme="dark"] .booking-slot strong,
html[data-booking-theme="dark"] .booking-section-head h2,
html[data-booking-theme="dark"] .booking-summary-card h2,
html[data-booking-theme="dark"] .booking-info-card h2{
    color:#f8fafc!important;
}
html[data-booking-theme="dark"] .booking-service-card small,
html[data-booking-theme="dark"] .booking-service-card em,
html[data-booking-theme="dark"] .booking-pro-card small,
html[data-booking-theme="dark"] .booking-slot span,
html[data-booking-theme="dark"] .booking-section-head p,
html[data-booking-theme="dark"] .booking-summary-card p,
html[data-booking-theme="dark"] .booking-info-card p{
    color:#bdd2ee!important;
}

html[data-booking-theme="light"] .booking-service-card,
html[data-booking-theme="light"] .booking-pro-card,
html[data-booking-theme="light"] .booking-slot,
html[data-booking-theme="light"] .booking-review>div,
html[data-booking-theme="light"] .booking-fields-grid label,
html[data-booking-theme="light"] .booking-date-row label,
html[data-booking-theme="light"] .booking-code-box,
html[data-booking-theme="light"] .booking-empty,
html[data-booking-theme="light"] .booking-calendar-card,
html[data-booking-theme="light"] .booking-times-card{
    background:#fff!important;
    color:#0f172a!important;
    border-color:#dfe7ef!important;
}
html[data-booking-theme="light"] .booking-service-card.selected,
html[data-booking-theme="light"] .booking-pro-card.selected,
html[data-booking-theme="light"] .booking-slot.selected{
    background:#f0fdf4!important;
    border-color:#22c55e!important;
}
html[data-booking-theme="light"] .booking-service-card strong,
html[data-booking-theme="light"] .booking-pro-card strong,
html[data-booking-theme="light"] .booking-slot strong{
    color:#0f172a!important;
}
html[data-booking-theme="light"] .booking-service-card small,
html[data-booking-theme="light"] .booking-service-card em,
html[data-booking-theme="light"] .booking-pro-card small,
html[data-booking-theme="light"] .booking-slot span{
    color:#64748b!important;
}

.booking-theme-toggle{
    color:var(--booking-text)!important;
    background:var(--booking-card)!important;
    border-color:var(--booking-line)!important;
}
html[data-booking-theme="dark"] .booking-theme-icon-moon{display:none!important;}
html[data-booking-theme="light"] .booking-theme-icon-sun{display:none!important;}

/* Inputs da página pública. */
html[data-booking-theme] .booking-public-shell input,
html[data-booking-theme] .booking-public-shell textarea,
html[data-booking-theme] .booking-public-shell select{
    background:var(--booking-card-2)!important;
    color:var(--booking-text)!important;
    -webkit-text-fill-color:var(--booking-text)!important;
    border-color:var(--booking-line)!important;
}
html[data-booking-theme] .booking-public-shell input::placeholder,
html[data-booking-theme] .booking-public-shell textarea::placeholder{
    color:var(--booking-muted)!important;
    -webkit-text-fill-color:var(--booking-muted)!important;
}

/* Agenda de Serviços: linha vermelha do horário atual, estilo Google Agenda. */
.svc-time-content,
.svc-google-week-cell{
    position:relative!important;
}

.svc-current-time-line{
    position:absolute!important;
    left:0!important;
    right:0!important;
    height:2px!important;
    background:#ef4444!important;
    z-index:20!important;
    pointer-events:none!important;
    box-shadow:0 0 0 1px rgba(239,68,68,.12)!important;
}
.svc-current-time-line::before{
    content:""!important;
    position:absolute!important;
    left:-5px!important;
    top:50%!important;
    width:10px!important;
    height:10px!important;
    border-radius:999px!important;
    background:#ef4444!important;
    transform:translateY(-50%)!important;
    box-shadow:0 0 0 3px rgba(239,68,68,.12)!important;
}
.svc-current-time-line i{
    position:absolute!important;
    right:8px!important;
    top:-11px!important;
    padding:2px 6px!important;
    border-radius:999px!important;
    background:#ef4444!important;
    color:#fff!important;
    font-size:10px!important;
    font-weight:900!important;
    font-style:normal!important;
    line-height:1!important;
}
.svc-current-time-line--day{
    left:-1px!important;
    right:8px!important;
}
.svc-current-time-line--week{
    left:0!important;
    right:0!important;
}

/* Pop-up da agenda só aparece quando o JS abrir; não mostra sozinho no hover quebrando mobile/desktop. */
.svc-google-week-cell:hover > .svc-event-popover:not(.is-open):not(.svc-event-popover--centered){
    display:none!important;
}
.svc-event-popover.svc-event-popover--centered,
.svc-event-popover.is-open{
    background:var(--svc-panel)!important;
    color:var(--svc-text)!important;
    border:1px solid var(--svc-line)!important;
}
html[data-theme="dark"] .svc-event-popover.svc-event-popover--centered,
html[data-theme="dark"] .svc-event-popover.is-open,
html.theme-dark .svc-event-popover.svc-event-popover--centered,
html.theme-dark .svc-event-popover.is-open{
    background:#111827!important;
    color:#f8fafc!important;
    border-color:rgba(148,163,184,.30)!important;
}
@media(max-width:760px){
    .svc-current-time-line i{
        display:none!important;
    }
    .svc-current-time-line::before{
        left:-3px!important;
        width:8px!important;
        height:8px!important;
    }
}


/* ============================================================
   V64 - Configurações de horário e antecedência da agenda
   ============================================================ */
.svc-form-grid label small{
    display:block!important;
    margin-top:6px!important;
    color:var(--svc-muted, #64748b)!important;
    font-size:.78rem!important;
    line-height:1.35!important;
    font-weight:700!important;
}
html[data-theme="dark"] .svc-form-grid label small,
html.theme-dark .svc-form-grid label small{
    color:#b6c3d6!important;
}
.booking-public-shell [data-min-notice],
.booking-public-shell .booking-min-notice{
    white-space:normal!important;
}


/* ============================================================
   V65 - Serviços refinamento mobile/operacional
   ============================================================ */
.svc-mobile-priority{display:none}
.svc-mobile-action-grid{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.svc-mobile-action-grid .svc-action-form{display:inline-flex;margin:0}
.svc-mobile-action-grid .svc-link-button,
.svc-mobile-action-grid .svc-btn{min-height:38px;padding:9px 12px;border-radius:14px}
.svc-mobile-day-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.svc-mobile-day-summary article{background:var(--svc-surface,#fff);border:1px solid var(--svc-border,#e2e8f0);border-radius:16px;padding:12px}
.svc-mobile-day-summary small{display:block;color:var(--svc-muted,#64748b);font-weight:800;text-transform:uppercase;font-size:.68rem;letter-spacing:.06em}
.svc-mobile-day-summary strong{display:block;font-size:1.1rem}
.svc-mobile-requests-card{display:flex;align-items:center;justify-content:space-between;gap:12px}
.svc-mobile-requests-card div{display:grid;gap:2px}
.svc-mobile-requests-card span{color:var(--svc-muted,#64748b)}
.svc-quick-cash-box{border:1px solid var(--svc-border,#e2e8f0);border-radius:18px;padding:14px;background:var(--svc-soft,#f8fafc);display:grid;gap:10px}
.svc-quick-cash-box h3{margin:0;font-size:1.05rem}
.svc-quick-cash-box p{margin:0;color:var(--svc-muted,#64748b)}
.svc-soft-separator{border:0;border-top:1px solid var(--svc-border,#e2e8f0);margin:16px 0}
.svc-request-list{display:grid;gap:12px}
.svc-request-card{display:grid;grid-template-columns:84px minmax(0,1fr) auto auto;align-items:center;gap:12px;border:1px solid var(--svc-border,#e2e8f0);border-radius:18px;background:var(--svc-surface,#fff);padding:14px}
.svc-request-card.is-pending{border-color:rgba(22,163,74,.35);box-shadow:0 10px 28px rgba(22,163,74,.08)}
.svc-request-time strong{display:block;font-size:1.2rem;color:var(--svc-green,#16a34a)}
.svc-request-time small,.svc-request-main small{color:var(--svc-muted,#64748b);font-weight:700}
.svc-request-main{min-width:0}
.svc-request-main strong,.svc-request-main span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.svc-request-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.svc-request-actions form{margin:0}
.svc-request-reschedule{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;background:var(--svc-soft,#f8fafc);border-radius:16px;padding:12px}
.svc-whatsapp-confirmation{display:grid;gap:12px;border-color:rgba(22,163,74,.45)!important}
.svc-whatsapp-confirmation textarea{min-height:108px}
.services-drawer-open .svc-bottom-nav{opacity:0;pointer-events:none}
.svc-backdrop.is-open{display:block!important;opacity:1!important;pointer-events:auto!important;background:rgba(15,23,42,.48)!important;backdrop-filter:blur(4px);position:fixed;inset:0;z-index:80}
.svc-sidebar.is-open{z-index:90}
.svc-content{padding-bottom:calc(92px + env(safe-area-inset-bottom))}
.svc-attender-panel .svc-attendance-card{transition:transform .18s ease, box-shadow .18s ease}
.svc-attender-panel .svc-attendance-card:active{transform:scale(.99)}
.svc-event-popover{max-width:min(420px,calc(100vw - 32px))}
.svc-google-week-empty{opacity:.32}
.svc-form-grid .wide{grid-column:1/-1}

html[data-theme="dark"] .svc-mobile-day-summary article,
html[data-theme="dark"] .svc-request-card,
html[data-theme="dark"] .svc-quick-cash-box,
html[data-theme="dark"] .svc-request-reschedule{
    background:#111827!important;border-color:#26364d!important;color:#f8fafc!important
}
html[data-theme="dark"] .svc-mobile-day-summary small,
html[data-theme="dark"] .svc-quick-cash-box p,
html[data-theme="dark"] .svc-request-time small,
html[data-theme="dark"] .svc-request-main small,
html[data-theme="dark"] .svc-mobile-requests-card span{color:#b7c4d7!important}

@media (max-width: 768px){
    .svc-content{padding:14px 14px calc(96px + env(safe-area-inset-bottom))!important}
    .svc-mobile-priority{display:grid;gap:12px;margin-bottom:14px}
    .svc-dashboard-hero{display:none!important}
    .svc-dashboard-operation{order:-5}
    .svc-dashboard-section{margin-top:12px!important}
    .svc-section-title{align-items:flex-start!important;gap:8px!important}
    .svc-section-title h2{font-size:1.35rem!important}
    .svc-kpi-grid,.svc-kpi-grid-compact{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
    .svc-kpi,.svc-card{border-radius:22px!important}
    .svc-kpi{padding:16px!important;min-height:auto!important}
    .svc-kpi strong{font-size:1.55rem!important}
    .svc-kpi-details b{font-size:.8rem!important;line-height:1.2!important}
    .svc-mobile-next-row{display:grid;grid-template-columns:86px minmax(0,1fr);gap:14px;align-items:center}
    .svc-mobile-next-row>strong{display:flex;align-items:center;justify-content:center;background:#16a34a;color:#fff;border-radius:20px;font-size:1.55rem;min-height:70px}
    .svc-mobile-next h2{margin:0;font-size:1.35rem}
    .svc-mobile-next p{margin:2px 0;color:var(--svc-muted,#64748b);font-weight:800}
    .svc-mobile-day-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
    .svc-dashboard-grid-main,.svc-dashboard-grid-3,.svc-dashboard-grid-2-even{grid-template-columns:1fr!important;gap:12px!important}
    .svc-week-chart{min-height:190px!important}
    .svc-week-col span{font-size:.72rem!important;max-width:52px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .svc-bottom-nav{left:14px!important;right:14px!important;bottom:calc(10px + env(safe-area-inset-bottom))!important;border-radius:24px!important;z-index:70!important}
    .svc-sidebar{height:100dvh!important;max-height:100dvh!important}
    .svc-nav-scroll{scrollbar-width:none!important;-ms-overflow-style:none!important}
    .svc-nav-scroll::-webkit-scrollbar{width:0!important;height:0!important}
    .svc-sheet-modal,.svc-modal{border-radius:24px 24px 0 0!important;max-height:calc(100dvh - 28px)!important;overflow:hidden!important}
    .modal-dialog{margin:14px!important;align-items:flex-end!important;min-height:calc(100dvh - 28px)!important}
    .modal-body{max-height:calc(100dvh - 180px)!important;overflow:auto!important;padding:16px!important}
    .modal-footer{position:sticky;bottom:0;background:inherit;z-index:2;padding:12px 16px calc(12px + env(safe-area-inset-bottom))!important}
    .svc-form-grid{grid-template-columns:1fr!important;gap:12px!important}
    .svc-form-grid label{gap:6px!important}
    .svc-input{min-height:42px!important;border-radius:14px!important}
    textarea.svc-input{min-height:92px!important}
    .svc-attendance-card{grid-template-columns:1fr!important;gap:12px!important;padding:16px!important}
    .svc-attendance-time{display:flex;justify-content:space-between;align-items:center}
    .svc-attendance-actions,.svc-attendance-actions form{width:100%}
    .svc-attendance-actions{display:grid!important;grid-template-columns:1fr!important}
    .svc-request-card{grid-template-columns:1fr!important;align-items:start}
    .svc-request-actions{justify-content:stretch}
    .svc-request-actions .svc-btn,.svc-request-actions form,.svc-request-actions button,.svc-request-actions a{width:100%;text-align:center}
    .svc-request-reschedule{grid-template-columns:1fr}
    .svc-google-week,.svc-timeline{font-size:.85rem}
    .svc-time-row{min-height:64px!important}
    .svc-event-card{padding:10px!important;border-radius:16px!important}
    .svc-event-card span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
    .svc-event-popover.is-open{position:fixed!important;left:14px!important;right:14px!important;top:auto!important;bottom:calc(80px + env(safe-area-inset-bottom))!important;width:auto!important;max-width:none!important;max-height:55dvh!important;overflow:auto!important}
}

@media (max-width: 430px){
    .svc-top-title strong{font-size:1.2rem!important}
    .svc-topbar{min-height:74px!important;padding:10px 14px!important}
    .svc-icon-button{width:44px!important;height:44px!important}
    .svc-mobile-day-summary article{padding:10px!important;border-radius:14px!important}
    .svc-card{padding:14px!important}
    .svc-section-title span{font-size:.68rem!important}
    .svc-section-title h2{font-size:1.2rem!important}
    .svc-week-chart{gap:6px!important}
    .svc-week-col i{border-radius:12px 12px 4px 4px!important}
}


/* ============================================================
   V66 - Correções finas mobile: bottom nav, popover e gráfico semanal
   ============================================================ */

/* Bottom nav: não cortar ícones/textos e não ficar parcialmente escondido */
@media (max-width: 768px) {
    .svc-content {
        padding-bottom: calc(116px + env(safe-area-inset-bottom)) !important;
    }

    .svc-bottom-nav {
        min-height: 72px !important;
        height: auto !important;
        padding: 8px 10px calc(8px + env(safe-area-inset-bottom)) !important;
        bottom: calc(8px + env(safe-area-inset-bottom)) !important;
        display: grid !important;
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
        align-items: center !important;
        overflow: visible !important;
        box-shadow: 0 18px 42px rgba(15, 23, 42, .22) !important;
    }

    .svc-bottom-nav a {
        min-width: 0 !important;
        min-height: 54px !important;
        height: 54px !important;
        padding: 7px 5px !important;
        border-radius: 18px !important;
        display: inline-flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 4px !important;
        line-height: 1 !important;
        overflow: visible !important;
    }

    .svc-bottom-nav a i {
        font-size: 1.08rem !important;
        line-height: 1 !important;
    }

    .svc-bottom-nav a span {
        display: block !important;
        max-width: 100% !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
        font-size: .68rem !important;
        line-height: 1.05 !important;
    }

    .svc-bottom-nav .svc-nav-badge {
        position: absolute !important;
        top: -6px !important;
        right: 8px !important;
    }
}

/* Popover/detalhes da agenda: virar bottom sheet real no celular */
@media (max-width: 768px) {
    .svc-event-popover,
    .svc-event-popover.is-open {
        position: fixed !important;
        left: 12px !important;
        right: 12px !important;
        top: auto !important;
        bottom: calc(92px + env(safe-area-inset-bottom)) !important;
        width: auto !important;
        max-width: none !important;
        max-height: min(52dvh, 430px) !important;
        overflow: auto !important;
        z-index: 120 !important;
        border-radius: 22px !important;
        padding: 14px !important;
        box-shadow: 0 24px 70px rgba(0, 0, 0, .38) !important;
    }

    .svc-event-popover-head {
        gap: 10px !important;
        align-items: flex-start !important;
    }

    .svc-event-popover-head strong {
        font-size: 1rem !important;
        line-height: 1.15 !important;
    }

    .svc-event-popover-body {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    .svc-event-popover-body span {
        overflow-wrap: anywhere !important;
        word-break: normal !important;
        font-size: .88rem !important;
        line-height: 1.25 !important;
    }

    .svc-event-popover-actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 8px !important;
        position: sticky !important;
        bottom: 0 !important;
        background: inherit !important;
        padding-top: 8px !important;
    }

    .svc-event-popover-actions .svc-btn {
        width: 100% !important;
        justify-content: center !important;
    }
}

/* Gráfico semanal: remover truncamento de valores e melhorar encaixe */
.svc-week-chart {
    align-items: end !important;
}

.svc-week-col {
    min-width: 0 !important;
    overflow: visible !important;
}

.svc-week-col span {
    max-width: none !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    line-height: 1.05 !important;
    text-align: center !important;
    min-height: 24px !important;
}

@media (max-width: 768px) {
    .svc-chart-card {
        padding: 16px !important;
    }

    .svc-chart-card .svc-card-head {
        align-items: flex-start !important;
        gap: 6px !important;
    }

    .svc-chart-card .svc-card-head h2 {
        font-size: 1.22rem !important;
        line-height: 1.05 !important;
    }

    .svc-chart-card .svc-muted-label {
        font-size: .72rem !important;
        line-height: 1.1 !important;
        letter-spacing: .08em !important;
    }

    .svc-week-chart {
        min-height: 170px !important;
        height: 170px !important;
        gap: 8px !important;
        padding-top: 8px !important;
    }

    .svc-week-col {
        gap: 5px !important;
        min-width: 0 !important;
    }

    .svc-week-col span {
        font-size: .66rem !important;
        min-height: 22px !important;
        max-width: 44px !important;
        margin: 0 auto !important;
        overflow: hidden !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
        text-overflow: ellipsis !important;
    }

    .svc-week-col b {
        font-size: .72rem !important;
        line-height: 1 !important;
    }

    .svc-week-col small {
        font-size: .68rem !important;
        line-height: 1 !important;
    }

    .svc-week-col i {
        width: 100% !important;
        min-height: 8px !important;
    }
}

@media (max-width: 430px) {
    .svc-week-chart {
        gap: 6px !important;
    }

    .svc-week-col span {
        font-size: .62rem !important;
        max-width: 38px !important;
    }
}

/* Evita que cards internos fiquem cortados por overflow no mobile */
@media (max-width: 768px) {
    .svc-card,
    .svc-dashboard-section,
    .svc-dashboard-grid-main,
    .svc-dashboard-grid-3,
    .svc-dashboard-grid-2-even {
        overflow: visible !important;
    }

    .svc-calendar-card,
    .svc-agenda-board,
    .svc-google-week,
    .svc-timeline {
        overflow: visible !important;
    }
}


/* ============================================================
   V67 - Downbar mobile Serviços abaixo de 760px + Solicitações
   ============================================================ */
@media (max-width: 760px) {
    body.services-body {
        padding-bottom: calc(112px + env(safe-area-inset-bottom)) !important;
        overflow-x: hidden !important;
    }

    .svc-main,
    .svc-content,
    .services-content,
    .services-mobile-page,
    .bvms-main-content {
        padding-bottom: calc(118px + env(safe-area-inset-bottom)) !important;
    }

    .svc-bottom-nav {
        display: flex !important;
        position: fixed !important;
        left: max(12px, env(safe-area-inset-left)) !important;
        right: max(12px, env(safe-area-inset-right)) !important;
        bottom: calc(10px + env(safe-area-inset-bottom)) !important;
        width: auto !important;
        max-width: none !important;
        min-width: 0 !important;
        min-height: 74px !important;
        height: auto !important;
        margin: 0 !important;
        padding: 9px 10px calc(9px + env(safe-area-inset-bottom)) !important;
        border-radius: 24px !important;
        transform: none !important;
        translate: none !important;
        grid-template-columns: none !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 6px !important;
        overflow: visible !important;
        z-index: 2147483000 !important;
        border: 1px solid var(--svc-line) !important;
        background: color-mix(in srgb, var(--svc-panel) 94%, transparent) !important;
        box-shadow: 0 18px 46px rgba(15, 23, 42, .28) !important;
        backdrop-filter: blur(14px) !important;
        -webkit-backdrop-filter: blur(14px) !important;
    }

    .svc-bottom-nav a {
        position: relative !important;
        flex: 1 1 0 !important;
        min-width: 0 !important;
        width: auto !important;
        max-width: none !important;
        min-height: 54px !important;
        height: 54px !important;
        padding: 7px 4px !important;
        border-radius: 18px !important;
        display: inline-flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 4px !important;
        color: var(--svc-muted) !important;
        text-decoration: none !important;
        line-height: 1 !important;
        overflow: visible !important;
        white-space: nowrap !important;
        transition: background .18s ease, color .18s ease, transform .18s ease !important;
    }

    .svc-bottom-nav a:active {
        transform: scale(.98) !important;
    }

    .svc-bottom-nav a.active {
        background: var(--svc-green-soft) !important;
        color: var(--svc-green) !important;
    }

    .svc-bottom-nav a i {
        display: block !important;
        flex: 0 0 auto !important;
        font-size: 1.06rem !important;
        line-height: 1 !important;
        margin: 0 !important;
    }

    .svc-bottom-nav a span {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
        font-size: .68rem !important;
        line-height: 1.05 !important;
        font-weight: 900 !important;
        text-align: center !important;
    }

    .svc-bottom-nav .svc-nav-badge,
    .svc-bottom-nav .svc-nav-badge--alert {
        position: absolute !important;
        top: -7px !important;
        right: 6px !important;
        min-width: 19px !important;
        height: 19px !important;
        padding: 0 5px !important;
        border-radius: 999px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 10px !important;
        font-weight: 950 !important;
        line-height: 1 !important;
        color: #fff !important;
        background: #ef4444 !important;
        border: 2px solid var(--svc-panel) !important;
        box-shadow: 0 8px 18px rgba(239, 68, 68, .32) !important;
        z-index: 2 !important;
        font-style: normal !important;
    }

    .svc-bottom-nav a.active .svc-nav-badge,
    .svc-bottom-nav a.active .svc-nav-badge--alert {
        border-color: color-mix(in srgb, var(--svc-green-soft) 78%, var(--svc-panel)) !important;
    }
}

@media (max-width: 380px) {
    .svc-bottom-nav {
        left: 8px !important;
        right: 8px !important;
        gap: 3px !important;
        padding-left: 7px !important;
        padding-right: 7px !important;
    }

    .svc-bottom-nav a span {
        font-size: .62rem !important;
    }

    .svc-bottom-nav a i {
        font-size: .98rem !important;
    }
}

html[data-theme="dark"] .svc-bottom-nav,
html.theme-dark .svc-bottom-nav {
    background: rgba(17, 24, 39, .94) !important;
    border-color: rgba(148, 163, 184, .22) !important;
    box-shadow: 0 18px 46px rgba(0, 0, 0, .46) !important;
}


/* ============================================================
   V68 - Correção da planilha /sales ao dar zoom
   ============================================================ */
body.app-body .sales-table-hint {
    align-self: flex-end !important;
    color: var(--v2-muted, #64748b) !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    white-space: nowrap !important;
}

body.app-body .sales-table-scroll {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    overscroll-behavior-x: contain !important;
    -webkit-overflow-scrolling: touch !important;
    border-radius: 18px !important;
    border: 1px solid var(--v2-border, rgba(148, 163, 184, .22)) !important;
    scrollbar-gutter: stable both-edges !important;
}

body.app-body .sales-table-scroll:focus {
    outline: 2px solid color-mix(in srgb, var(--v2-primary, #2563eb) 45%, transparent) !important;
    outline-offset: 3px !important;
}

body.app-body .sales-table-scroll::-webkit-scrollbar {
    height: 10px !important;
}

body.app-body .sales-table-scroll::-webkit-scrollbar-track {
    background: color-mix(in srgb, var(--v2-soft, #f1f5f9) 80%, transparent) !important;
    border-radius: 999px !important;
}

body.app-body .sales-table-scroll::-webkit-scrollbar-thumb {
    background: color-mix(in srgb, var(--v2-muted, #64748b) 50%, transparent) !important;
    border-radius: 999px !important;
}

body.app-body .sales-cost-table {
    width: max(100%, 1320px) !important;
    min-width: 1320px !important;
    table-layout: fixed !important;
}

body.app-body .sales-cost-table .sales-col-date { width: 96px !important; }
body.app-body .sales-cost-table .sales-col-product { width: 340px !important; }
body.app-body .sales-cost-table .sales-col-category { width: 124px !important; }
body.app-body .sales-cost-table .sales-col-origin { width: 110px !important; }
body.app-body .sales-cost-table .sales-col-qty { width: 70px !important; }
body.app-body .sales-cost-table .sales-col-money { width: 112px !important; }
body.app-body .sales-cost-table .sales-col-cost { width: 118px !important; }
body.app-body .sales-cost-table .sales-col-cost-origin { width: 142px !important; }
body.app-body .sales-cost-table .sales-col-profit { width: 108px !important; }
body.app-body .sales-cost-table .sales-col-actions { width: 100px !important; }

body.app-body .sales-cost-table th,
body.app-body .sales-cost-table td {
    padding: 12px 10px !important;
    line-height: 1.25 !important;
}

body.app-body .sales-cost-table th {
    white-space: nowrap !important;
}

body.app-body .sales-cost-table td {
    white-space: nowrap !important;
}

body.app-body .sales-cost-table td:nth-child(2),
body.app-body .sales-cost-table td:nth-child(3),
body.app-body .sales-cost-table td:nth-child(9) {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}

body.app-body .sales-cost-table td:nth-child(2) strong {
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.25 !important;
}

body.app-body .sales-cost-table td:nth-child(2) small,
body.app-body .sales-cost-table td:nth-child(8) small,
body.app-body .sales-cost-table td:nth-child(9) small,
body.app-body .sales-actions-cell small,
body.app-body .sales-actions-cell .muted-small {
    display: block !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

body.app-body .sales-cost-table th:last-child,
body.app-body .sales-cost-table td:last-child {
    position: sticky !important;
    right: 0 !important;
    z-index: 3 !important;
    background: var(--v2-surface, #ffffff) !important;
    box-shadow: -10px 0 18px rgba(15, 23, 42, .08) !important;
}

body.app-body .sales-cost-table th:last-child {
    z-index: 4 !important;
    background: var(--v2-soft, #f8fafc) !important;
}

body.app-body.theme-dark .sales-cost-table th:last-child,
body.app-body.dark .sales-cost-table th:last-child {
    background: var(--v2-soft, #0f172a) !important;
}

body.app-body.theme-dark .sales-cost-table td:last-child,
body.app-body.dark .sales-cost-table td:last-child {
    background: var(--v2-surface, #111827) !important;
    box-shadow: -10px 0 18px rgba(0, 0, 0, .28) !important;
}

body.app-body .sales-actions-cell {
    min-width: 0 !important;
}

body.app-body .sales-actions-cell .btn-table,
body.app-body .sales-actions-cell form {
    width: 100% !important;
}

body.app-body .sales-actions-cell form {
    margin: 6px 0 0 !important;
}

body.app-body .sales-actions-cell .btn-table {
    justify-content: center !important;
    text-align: center !important;
    padding-inline: 8px !important;
}

@media (max-width: 1440px) {
    body.app-body .sales-cost-table {
        width: max(100%, 1260px) !important;
        min-width: 1260px !important;
    }

    body.app-body .sales-cost-table .sales-col-product { width: 300px !important; }
    body.app-body .sales-cost-table th,
    body.app-body .sales-cost-table td {
        padding: 11px 9px !important;
        font-size: 13px !important;
    }
}

@media (max-width: 1024px) {
    body.app-body .table-card-head {
        flex-direction: column !important;
        align-items: flex-start !important;
    }

    body.app-body .sales-table-hint {
        white-space: normal !important;
    }

    body.app-body .sales-cost-table {
        min-width: 1180px !important;
        width: 1180px !important;
    }
}


/* ============================================================
   V69 - Sales: tabela compacta + filtro calendário dia/semana/mês
   ============================================================ */
body.app-body .sales-calendar-filter {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 12px !important;
    align-items: center !important;
    margin: 14px 0 !important;
    padding: 12px !important;
    border: 1px solid var(--ux-border, rgba(148,163,184,.24)) !important;
    border-radius: 20px !important;
    background: var(--ux-card, #fff) !important;
}
body.app-body .sales-calendar-left {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    min-width: 0 !important;
}
body.app-body .sales-calendar-left strong {
    font-size: clamp(16px, 2vw, 23px) !important;
    color: var(--ux-text, #0f172a) !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}
body.app-body .sales-calendar-arrow,
body.app-body .sales-calendar-today,
body.app-body .sales-calendar-tabs a {
    min-height: 38px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid var(--ux-border, rgba(148,163,184,.24)) !important;
    border-radius: 14px !important;
    background: var(--ux-card-2, #f8fafc) !important;
    color: var(--ux-text, #0f172a) !important;
    font-weight: 900 !important;
    text-decoration: none !important;
}
body.app-body .sales-calendar-arrow {
    width: 38px !important;
    font-size: 22px !important;
}
body.app-body .sales-calendar-today {
    padding: 0 14px !important;
}
body.app-body .sales-calendar-tabs {
    display: inline-flex !important;
    padding: 4px !important;
    border: 1px solid var(--ux-border, rgba(148,163,184,.24)) !important;
    background: var(--ux-card-2, #f8fafc) !important;
    border-radius: 16px !important;
    gap: 4px !important;
}
body.app-body .sales-calendar-tabs a {
    min-height: 32px !important;
    min-width: 74px !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--ux-muted, #64748b) !important;
}
body.app-body .sales-calendar-tabs a.active {
    background: color-mix(in srgb, var(--ux-blue, #2563eb) 18%, transparent) !important;
    color: var(--ux-blue, #2563eb) !important;
}
body.app-body .sales-calendar-search {
    grid-column: 1 / -1 !important;
    display: grid !important;
    grid-template-columns: minmax(220px, 1fr) 96px auto !important;
    gap: 8px !important;
    align-items: center !important;
}
body.app-body .sales-calendar-search input,
body.app-body .sales-calendar-search select {
    min-height: 40px !important;
    border-radius: 14px !important;
    border: 1px solid var(--ux-border, rgba(148,163,184,.24)) !important;
    background: var(--ux-card-2, #f8fafc) !important;
    color: var(--ux-text, #0f172a) !important;
    padding: 0 12px !important;
    font-weight: 800 !important;
}

/* Tabela nova: cabe em desktop com zoom sem cortar */
body.app-body .sales-table-scroll {
    overflow-x: visible !important;
    border: 1px solid var(--ux-border, rgba(148,163,184,.24)) !important;
}
body.app-body .sales-cost-table-v69 {
    width: 100% !important;
    min-width: 0 !important;
    table-layout: fixed !important;
}
body.app-body .sales-cost-table-v69 .sales-col-date { width: 94px !important; }
body.app-body .sales-cost-table-v69 .sales-col-product { width: auto !important; }
body.app-body .sales-cost-table-v69 .sales-col-origin { width: 108px !important; }
body.app-body .sales-cost-table-v69 .sales-col-qty { width: 62px !important; }
body.app-body .sales-cost-table-v69 .sales-col-revenue { width: 118px !important; }
body.app-body .sales-cost-table-v69 .sales-col-result { width: 210px !important; }
body.app-body .sales-cost-table-v69 .sales-col-actions { width: 104px !important; }

body.app-body .sales-cost-table-v69 th,
body.app-body .sales-cost-table-v69 td {
    padding: 12px 10px !important;
    white-space: normal !important;
    overflow: hidden !important;
    vertical-align: middle !important;
}
body.app-body .sales-cost-table-v69 th {
    white-space: nowrap !important;
    font-size: 10.5px !important;
}
body.app-body .sales-cost-table-v69 .sales-product-cell strong {
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    line-height: 1.25 !important;
}
body.app-body .sales-cost-table-v69 .sales-product-cell small,
body.app-body .sales-cost-table-v69 .sales-result-cell small {
    display: block !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}
body.app-body .sales-cost-table-v69 th:last-child,
body.app-body .sales-cost-table-v69 td:last-child {
    position: static !important;
    right: auto !important;
    box-shadow: none !important;
}
body.app-body .sales-cost-table-v69 .sales-actions-cell {
    display: grid !important;
    gap: 6px !important;
    align-items: center !important;
}
body.app-body .sales-cost-table-v69 .sales-actions-cell .btn-table,
body.app-body .sales-cost-table-v69 .sales-actions-cell form {
    width: 100% !important;
}
body.app-body .sales-cost-table-v69 .sales-actions-cell .muted-small {
    max-width: 100% !important;
    font-size: 10px !important;
    text-align: center !important;
}

/* Tema escuro */
body.app-body.theme-dark .sales-calendar-filter,
body.app-body.dark .sales-calendar-filter {
    background: var(--ux-card, #111827) !important;
}
body.app-body.theme-dark .sales-calendar-arrow,
body.app-body.theme-dark .sales-calendar-today,
body.app-body.theme-dark .sales-calendar-tabs,
body.app-body.theme-dark .sales-calendar-search input,
body.app-body.theme-dark .sales-calendar-search select,
body.app-body.dark .sales-calendar-arrow,
body.app-body.dark .sales-calendar-today,
body.app-body.dark .sales-calendar-tabs,
body.app-body.dark .sales-calendar-search input,
body.app-body.dark .sales-calendar-search select {
    background: var(--ux-card-2, #172235) !important;
    color: var(--ux-text, #f8fafc) !important;
}

/* Até 900px vira card, porque tabela em 762px/zoom não deve cortar */
@media (max-width: 900px) {
    body.app-body .sales-calendar-filter {
        grid-template-columns: 1fr !important;
    }
    body.app-body .sales-calendar-left {
        flex-wrap: wrap !important;
    }
    body.app-body .sales-calendar-left strong {
        flex-basis: 100% !important;
        order: 3 !important;
        margin-top: 4px !important;
    }
    body.app-body .sales-calendar-tabs {
        width: 100% !important;
    }
    body.app-body .sales-calendar-tabs a {
        flex: 1 !important;
        min-width: 0 !important;
    }
    body.app-body .sales-calendar-search {
        grid-template-columns: 1fr !important;
    }
    body.app-body .sales-table-scroll {
        overflow: visible !important;
        border: 0 !important;
    }
    body.app-body .sales-cost-table-v69,
    body.app-body .sales-cost-table-v69 thead,
    body.app-body .sales-cost-table-v69 tbody,
    body.app-body .sales-cost-table-v69 tr,
    body.app-body .sales-cost-table-v69 td {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
    }
    body.app-body .sales-cost-table-v69 colgroup,
    body.app-body .sales-cost-table-v69 thead {
        display: none !important;
    }
    body.app-body .sales-cost-table-v69 tr {
        margin: 10px 0 !important;
        padding: 12px !important;
        border: 1px solid var(--ux-border, rgba(148,163,184,.24)) !important;
        border-radius: 18px !important;
        background: var(--ux-card-2, #f8fafc) !important;
    }
    body.app-body .sales-cost-table-v69 td {
        display: flex !important;
        justify-content: space-between !important;
        gap: 12px !important;
        border: 0 !important;
        padding: 8px 0 !important;
        text-align: right !important;
        overflow: visible !important;
    }
    body.app-body .sales-cost-table-v69 td::before {
        content: attr(data-label) !important;
        flex: 0 0 120px !important;
        color: var(--ux-muted, #64748b) !important;
        text-align: left !important;
        text-transform: uppercase !important;
        font-size: 10px !important;
        letter-spacing: .08em !important;
        font-weight: 900 !important;
    }
    body.app-body .sales-cost-table-v69 td > * {
        min-width: 0 !important;
        max-width: calc(100% - 132px) !important;
    }
    body.app-body .sales-cost-table-v69 .sales-actions-cell {
        grid-template-columns: 1fr !important;
    }
    body.app-body.theme-dark .sales-cost-table-v69 tr,
    body.app-body.dark .sales-cost-table-v69 tr {
        background: var(--ux-card-2, #172235) !important;
    }
}


/* ============================================================
   V70 - Agenda desktop: pop-up de detalhes estável por clique
   ============================================================ */

/* O hover antigo abria pop-up escondido e quebrava a interação no PC.
   Agora o detalhe só abre com clique e fica clicável até fechar fora/Esc. */
.svc-google-week-cell:hover > .svc-event-popover {
    display: none !important;
}

.svc-event-popover[hidden] {
    display: none !important;
}

.svc-event-popover.is-open {
    display: block !important;
    position: fixed !important;
    width: min(420px, calc(100vw - 32px)) !important;
    max-width: min(420px, calc(100vw - 32px)) !important;
    max-height: calc(100dvh - 36px) !important;
    overflow: auto !important;
    z-index: 220 !important;
    padding: 18px !important;
    border-radius: 24px !important;
    box-shadow: 0 28px 80px rgba(0, 0, 0, .34) !important;
    pointer-events: auto !important;
}

.svc-event-popover.is-open::before {
    display: none !important;
}

.svc-event-popover-head {
    align-items: flex-start !important;
}

.svc-event-popover-head strong {
    text-transform: none !important;
    letter-spacing: 0 !important;
}

.svc-event-popover-body {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
}

.svc-event-popover-body span {
    overflow-wrap: anywhere !important;
}

.svc-event-popover-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    margin-top: 16px !important;
}

.svc-event-popover-actions .svc-btn {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
}

/* Backdrop discreto apenas quando JS adiciona no body */
body.svc-calendar-popover-open::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 210;
    background: rgba(15, 23, 42, .18);
    backdrop-filter: blur(1px);
    pointer-events: none;
}

body.svc-calendar-popover-open .svc-event-popover.is-open {
    z-index: 221 !important;
}

html.theme-dark .svc-event-popover.is-open,
body.theme-dark .svc-event-popover.is-open,
body.dark .svc-event-popover.is-open {
    background: #111827 !important;
    border-color: rgba(148, 163, 184, .26) !important;
    box-shadow: 0 30px 90px rgba(0, 0, 0, .54) !important;
}

@media (min-width: 769px) {
    .svc-event-popover.is-open {
        min-width: 360px !important;
    }
}

@media (max-width: 768px) {
    body.svc-calendar-popover-open::after {
        display: none !important;
    }

    .svc-event-popover.is-open {
        left: 12px !important;
        right: 12px !important;
        top: auto !important;
        bottom: calc(92px + env(safe-area-inset-bottom)) !important;
        width: auto !important;
        max-width: none !important;
        max-height: min(52dvh, 430px) !important;
        border-radius: 22px !important;
    }

    .svc-event-popover-body {
        grid-template-columns: 1fr !important;
    }

    .svc-event-popover-actions {
        grid-template-columns: 1fr !important;
    }
}

/* =========================================================
   BVMS HOTFIX v72 — Reset de efeito do pop-up
   Modal simples, sem scale, sem blur, sem hover animado.
   Escopo limitado ao .simple-modal para não afetar outros pop-ups do sistema.
========================================================= */
html.bvms-modal-lock,
body.app-body.bvms-modal-open {
  overflow: hidden !important;
}

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

body.app-body .simple-modal {
  --ux-card: var(--bvms-v3-panel, var(--v2-surface, #ffffff));
  --ux-card-2: var(--bvms-v3-panel-2, var(--v2-soft, #f8fafc));
  --ux-border: var(--bvms-v3-line, var(--v2-border, #e2e8f0));
  --ux-text: var(--bvms-v3-text, var(--v2-text, #0f172a));
  --ux-muted: var(--bvms-v3-muted, var(--v2-muted, #64748b));
  --ux-blue: var(--bvms-v3-blue, var(--v2-primary, #2563eb));

  position: fixed !important;
  inset: 0 !important;
  z-index: 10050 !important;
  display: grid !important;
  place-items: center !important;
  padding: 24px !important;
  overflow-y: auto !important;
  background: rgba(15, 23, 42, .42) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  animation: none !important;
  transition: none !important;
}

body.app-body .simple-modal,
body.app-body .simple-modal * {
  animation: none !important;
  transition: none !important;
  transform: none !important;
  filter: none !important;
  will-change: auto !important;
}

body.app-body .simple-modal-card,
body.app-body .simple-modal-card.wide,
body.app-body .sales-edit-modal-card {
  position: relative !important;
  width: min(720px, calc(100vw - 48px)) !important;
  max-width: calc(100vw - 48px) !important;
  max-height: calc(100dvh - 48px) !important;
  margin: 0 auto !important;
  overflow: auto !important;
  padding: 22px !important;
  border-radius: 20px !important;
  background: var(--ux-card) !important;
  color: var(--ux-text) !important;
  border: 1px solid var(--ux-border) !important;
  box-shadow: 0 16px 44px rgba(15, 23, 42, .14) !important;
  opacity: 1 !important;
}

body.app-body .simple-modal-card.wide,
body.app-body .sales-edit-modal-card {
  width: min(860px, calc(100vw - 48px)) !important;
}

body.app-body .simple-modal-card:hover,
body.app-body .simple-modal-card.wide:hover,
body.app-body .sales-edit-modal-card:hover {
  border-color: var(--ux-border) !important;
  box-shadow: 0 16px 44px rgba(15, 23, 42, .14) !important;
  opacity: 1 !important;
}

body.app-body .simple-modal-close,
body.app-body .simple-modal [data-close-modal] {
  cursor: pointer !important;
}

body.app-body .simple-modal-close {
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  width: 36px !important;
  height: 36px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 12px !important;
  border: 1px solid var(--ux-border) !important;
  background: var(--ux-card-2) !important;
  color: var(--ux-text) !important;
  font-size: 22px !important;
  line-height: 1 !important;
  box-shadow: none !important;
}

body.app-body .simple-modal-close:hover,
body.app-body .simple-modal-close:focus-visible {
  background: var(--ux-card-2) !important;
  color: var(--ux-blue) !important;
  border-color: var(--ux-border) !important;
  outline: none !important;
}

body.app-body .simple-modal .btn-primary-soft:hover,
body.app-body .simple-modal .btn-secondary-soft:hover,
body.app-body .simple-modal .btn-table:hover,
body.app-body .simple-modal button:hover,
body.app-body .simple-modal a:hover {
  transform: none !important;
  box-shadow: none !important;
  filter: none !important;
}

body.app-body .simple-modal .modal-form-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
}

body.app-body .simple-modal .sales-edit-form {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

body.app-body .simple-modal .modal-form-grid label {
  min-width: 0 !important;
}

body.app-body .simple-modal .modal-actions {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 10px !important;
  margin-top: 14px !important;
}

html.theme-dark body.app-body .simple-modal,
body.app-body.theme-dark .simple-modal,
body.app-body.dark .simple-modal,
html[data-theme="dark"] body.app-body .simple-modal {
  --ux-card: #101827;
  --ux-card-2: #111c2f;
  --ux-border: #26364f;
  --ux-text: #f8fafc;
  --ux-muted: #9fb0c7;
  --ux-blue: #60a5fa;
}

@media (max-width: 900px) {
  body.app-body .simple-modal {
    place-items: end center !important;
    padding: 10px !important;
  }

  body.app-body .simple-modal-card,
  body.app-body .simple-modal-card.wide,
  body.app-body .sales-edit-modal-card {
    width: 100% !important;
    max-width: 100% !important;
    max-height: 92dvh !important;
    border-radius: 22px 22px 16px 16px !important;
  }
}

@media (max-width: 640px) {
  body.app-body .simple-modal .modal-form-grid,
  body.app-body .simple-modal .sales-edit-form {
    grid-template-columns: 1fr !important;
  }

  body.app-body .simple-modal .modal-form-grid label,
  body.app-body .simple-modal .sales-edit-check,
  body.app-body .simple-modal .sales-edit-preview,
  body.app-body .simple-modal .modal-actions {
    grid-column: 1 / -1 !important;
  }

  body.app-body .simple-modal .modal-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }
}



/* =========================================================
   BVMS HOTFIX v73 — Pop-up somente via clique
   Remove hover/tooltip fantasma da agenda e deixa o detalhe abrir só no clique.
========================================================= */
.svc-google-week-cell:hover > .svc-event-popover:not(.is-open),
.svc-google-event:hover .svc-event-hover-card,
.svc-google-event:focus-visible .svc-event-hover-card {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.svc-event-popover[hidden],
.svc-event-popover[aria-hidden="true"] {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.svc-event-popover.is-open,
.svc-event-popover[aria-hidden="false"] {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

.svc-calendar-service-only,
.svc-google-event.svc-calendar-service-only {
  cursor: pointer !important;
}

.svc-calendar-service-only:hover,
.svc-calendar-service-only:focus,
.svc-calendar-service-only:focus-visible,
.svc-google-event.svc-calendar-service-only:hover,
.svc-google-event.svc-calendar-service-only:focus,
.svc-google-event.svc-calendar-service-only:focus-visible {
  transform: none !important;
  filter: none !important;
  box-shadow: none !important;
  outline: none !important;
}

body.svc-calendar-popover-open .svc-event-popover.is-open {
  z-index: 12000 !important;
}

.svc-event-popover.is-open .svc-btn:hover,
.svc-event-popover.is-open button:hover,
.svc-event-popover.is-open a:hover {
  transform: none !important;
  filter: none !important;
}


/* =========================================================
   V76 - Serviços mobile: popover centralizado e menor + bottom nav compacta
   ========================================================= */
@media (max-width: 768px) {
  .svc-event-popover,
  .svc-event-popover.svc-event-popover--centered,
  .svc-event-popover.is-open,
  .svc-event-popover[aria-hidden="false"] {
    position: fixed !important;
    left: 50% !important;
    right: auto !important;
    top: 50% !important;
    bottom: auto !important;
    transform: translate(-50%, -50%) !important;
    width: min(360px, calc(100vw - 32px)) !important;
    max-width: min(360px, calc(100vw - 32px)) !important;
    max-height: min(58dvh, 420px) !important;
    padding: 12px !important;
    border-radius: 18px !important;
    overflow: auto !important;
    overscroll-behavior: contain !important;
    z-index: 12050 !important;
    box-shadow: 0 18px 48px rgba(2, 6, 23, .42) !important;
  }

  .svc-event-popover::before,
  .svc-event-popover.svc-event-popover--centered::before,
  .svc-event-popover.is-open::before {
    display: none !important;
  }

  .svc-event-popover-head {
    gap: 8px !important;
    align-items: flex-start !important;
  }

  .svc-event-popover-head strong {
    font-size: .96rem !important;
    line-height: 1.15 !important;
    overflow-wrap: anywhere !important;
  }

  .svc-event-popover-head small,
  .svc-event-popover-body small,
  .svc-event-popover-body span {
    font-size: .82rem !important;
    line-height: 1.25 !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }

  .svc-event-popover-body {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .svc-event-popover-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    position: static !important;
    padding-top: 6px !important;
  }

  .svc-event-popover-actions .svc-btn,
  .svc-event-popover-actions a,
  .svc-event-popover-actions button {
    width: 100% !important;
    min-height: 40px !important;
    justify-content: center !important;
    text-align: center !important;
    font-size: .86rem !important;
  }

  .svc-content {
    padding-bottom: calc(96px + env(safe-area-inset-bottom)) !important;
  }

  .svc-bottom-nav {
    left: 10px !important;
    right: 10px !important;
    bottom: calc(8px + env(safe-area-inset-bottom)) !important;
    min-height: 64px !important;
    height: auto !important;
    padding: 7px 8px calc(7px + env(safe-area-inset-bottom)) !important;
    border-radius: 22px !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 6px !important;
    z-index: 90 !important;
  }

  .svc-bottom-nav a {
    min-height: 48px !important;
    height: 48px !important;
    padding: 6px 4px !important;
    border-radius: 16px !important;
    gap: 3px !important;
  }

  .svc-bottom-nav a i {
    font-size: 1rem !important;
    line-height: 1 !important;
  }

  .svc-bottom-nav a span {
    font-size: .64rem !important;
    line-height: 1 !important;
  }

  .svc-bottom-nav .svc-nav-badge,
  .svc-bottom-nav .svc-nav-badge--alert {
    top: -5px !important;
    right: 4px !important;
    min-width: 18px !important;
    height: 18px !important;
    padding: 0 5px !important;
    font-size: .66rem !important;
  }
}

@media (max-width: 420px) {
  .svc-event-popover,
  .svc-event-popover.svc-event-popover--centered,
  .svc-event-popover.is-open,
  .svc-event-popover[aria-hidden="false"] {
    width: calc(100vw - 24px) !important;
    max-width: calc(100vw - 24px) !important;
    max-height: min(56dvh, 390px) !important;
    padding: 11px !important;
    border-radius: 16px !important;
  }

  .svc-bottom-nav {
    left: 8px !important;
    right: 8px !important;
    min-height: 60px !important;
    padding: 6px 6px calc(6px + env(safe-area-inset-bottom)) !important;
  }

  .svc-bottom-nav a {
    min-height: 44px !important;
    height: 44px !important;
    padding: 5px 3px !important;
  }

  .svc-bottom-nav a span {
    font-size: .61rem !important;
  }
}


/* =========================================================
   V77 - Agenda semanal mobile: arrastar horizontal + scrollbar fina
   ========================================================= */
@media (max-width: 768px) {
  .svc-google-week {
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-x pan-y !important;
    overscroll-behavior-x: contain !important;
    overscroll-behavior-y: auto !important;
    scrollbar-width: thin !important;
    scrollbar-color: rgba(148, 163, 184, .42) transparent !important;
    padding-bottom: 6px !important;
    cursor: grab;
  }

  .svc-google-week.dragging {
    cursor: grabbing !important;
    user-select: none !important;
    -webkit-user-select: none !important;
  }

  .svc-google-week-head,
  .svc-google-week-grid {
    min-width: 1020px !important;
    width: max-content !important;
  }

  .svc-google-week::-webkit-scrollbar {
    height: 6px !important;
    background: transparent !important;
  }

  .svc-google-week::-webkit-scrollbar-track {
    background: transparent !important;
  }

  .svc-google-week::-webkit-scrollbar-thumb {
    background: rgba(148, 163, 184, .38) !important;
    border-radius: 999px !important;
  }

  .svc-google-week::-webkit-scrollbar-thumb:hover {
    background: rgba(148, 163, 184, .52) !important;
  }
}


/* =========================================================
   V85 - Hotfix login/cadastro: liberar rolagem vertical
   Corrige telas públicas de autenticação quando conteúdo passa da viewport.
========================================================= */
html.bvms-clean,
html.bvms-clean.theme-light,
html.bvms-clean.theme-dark,
body.guest-body,
body.public-auth-body {
    min-height: 100% !important;
    height: auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
}

html.bvms-clean.bvms-modal-lock:has(body.public-auth-body),
html.bvms-clean.bvms-modal-lock:has(body.guest-body) {
    overflow-y: auto !important;
}

body.guest-body.modal-open,
body.guest-body.bvms-modal-open,
body.public-auth-body.modal-open,
body.public-auth-body.bvms-modal-open {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-right: 0 !important;
}

body.guest-body .login-page,
body.guest-body .register-wizard-page,
body.public-auth-body .login-page,
body.public-auth-body .register-wizard-page {
    min-height: 100dvh !important;
    height: auto !important;
    overflow: visible !important;
    padding-bottom: max(72px, calc(72px + env(safe-area-inset-bottom))) !important;
}

body.guest-body .login-wrap,
body.guest-body .register-wizard-wrap,
body.public-auth-body .login-wrap,
body.public-auth-body .register-wizard-wrap {
    min-height: auto !important;
    height: auto !important;
    overflow: visible !important;
}

body.guest-body .login-content,
body.public-auth-body .login-content {
    min-height: auto !important;
    align-items: flex-start !important;
    padding-top: 18px !important;
    padding-bottom: 32px !important;
    overflow: visible !important;
}

body.guest-body .login-card,
body.guest-body .wizard-card,
body.public-auth-body .login-card,
body.public-auth-body .wizard-card {
    max-height: none !important;
    overflow: visible !important;
}

body.guest-body .login-submit,
body.guest-body .register-wizard-page .btn-primary,
body.guest-body .register-wizard-page button.btn-primary,
body.public-auth-body .login-submit,
body.public-auth-body .register-wizard-page .btn-primary,
body.public-auth-body .register-wizard-page button.btn-primary {
    background: #2563eb !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

@media (max-width: 760px) {
    body.guest-body .login-page,
    body.public-auth-body .login-page {
        padding-top: 14px !important;
        padding-left: 14px !important;
        padding-right: 14px !important;
    }

    body.guest-body .register-wizard-page,
    body.public-auth-body .register-wizard-page {
        padding-top: 14px !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    body.guest-body .login-topbar,
    body.guest-body .wizard-topbar,
    body.public-auth-body .login-topbar,
    body.public-auth-body .wizard-topbar {
        position: static !important;
        margin-bottom: 18px !important;
    }

    body.guest-body .login-card,
    body.guest-body .wizard-card,
    body.public-auth-body .login-card,
    body.public-auth-body .wizard-card {
        width: 100% !important;
        padding: 22px 18px !important;
        border-radius: 22px !important;
    }
}


/* V95 - horários de funcionamento com intervalo */
.svc-muted-note{margin:0 0 14px;color:var(--svc-muted);font-size:13px;font-weight:760;line-height:1.45;}
.svc-hours-card{grid-template-columns:120px 130px repeat(4,minmax(118px,1fr))!important;align-items:end!important;}
.svc-time-field{display:grid!important;gap:6px!important;margin:0!important;color:var(--svc-text)!important;text-transform:none!important;letter-spacing:0!important;font-size:12px!important;font-weight:850!important;}
.svc-time-field small{color:var(--svc-muted);font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.04em;}
.svc-time-field .svc-input{width:100%;min-height:44px;}
@media(max-width:1200px){.svc-hours-card{grid-template-columns:120px 130px repeat(2,minmax(150px,1fr))!important;}.svc-time-field:nth-of-type(4),.svc-time-field:nth-of-type(5){grid-column:auto;}}
@media(max-width:760px){.svc-hours-card{grid-template-columns:1fr!important;align-items:stretch!important;}.svc-time-field .svc-input{min-height:42px;}}

/* V101 - padronização do agendamento público em tema claro/escuro */
.booking-public-body .booking-btn,
.booking-public-body button.booking-btn,
.booking-public-body .booking-bottom-actions .booking-btn {
    background: var(--booking-brand-color, #0f766e) !important;
    border-color: var(--booking-brand-color, #0f766e) !important;
    color: #ffffff !important;
}

.booking-public-body .booking-btn.secondary,
.booking-public-body button.booking-btn.secondary,
.booking-public-body #bookingBack {
    background: #ffffff !important;
    border-color: #dbe3ef !important;
    color: #0f172a !important;
}

.booking-public-body .booking-btn:disabled,
.booking-public-body button.booking-btn:disabled {
    background: #e2e8f0 !important;
    border-color: #e2e8f0 !important;
    color: #64748b !important;
    opacity: 1 !important;
}

.booking-public-body input,
.booking-public-body textarea,
.booking-public-body select {
    background: #f8fafc !important;
    color: #0f172a !important;
    border-color: #dbe3ef !important;
}

.booking-public-body input::placeholder,
.booking-public-body textarea::placeholder {
    color: #64748b !important;
}

html[data-booking-theme="dark"] .booking-public-body .booking-btn,
html.theme-dark .booking-public-body .booking-btn,
html[data-booking-theme="dark"] .booking-public-body button.booking-btn,
html.theme-dark .booking-public-body button.booking-btn {
    background: var(--booking-brand-color, #0f766e) !important;
    border-color: var(--booking-brand-color, #0f766e) !important;
    color: #ffffff !important;
}

html[data-booking-theme="dark"] .booking-public-body .booking-btn.secondary,
html.theme-dark .booking-public-body .booking-btn.secondary,
html[data-booking-theme="dark"] .booking-public-body #bookingBack,
html.theme-dark .booking-public-body #bookingBack {
    background: #0f172a !important;
    border-color: #334155 !important;
    color: #f8fafc !important;
}

html[data-booking-theme="dark"] .booking-public-body .booking-btn:disabled,
html.theme-dark .booking-public-body .booking-btn:disabled {
    background: #1e293b !important;
    border-color: #334155 !important;
    color: #94a3b8 !important;
}

html[data-booking-theme="dark"] .booking-public-body input,
html[data-booking-theme="dark"] .booking-public-body textarea,
html[data-booking-theme="dark"] .booking-public-body select,
html.theme-dark .booking-public-body input,
html.theme-dark .booking-public-body textarea,
html.theme-dark .booking-public-body select {
    background: #0b1220 !important;
    color: #f8fafc !important;
    border-color: #334155 !important;
}


/* BVMS V102 - booking public DS final: tema claro/escuro, revisão e UX */
html[data-booking-theme="light"]{--booking-bg:#f6f8fb;--booking-surface:#ffffff;--booking-surface-soft:#f8fafc;--booking-border:#dbe3ef;--booking-text:#0f172a;--booking-muted:#64748b;--booking-muted-strong:#475569;--booking-primary:#16a34a;--booking-primary-soft:#dcfce7;--booking-primary-border:#86efac;--booking-danger:#dc2626;--booking-warning:#f59e0b}
html[data-booking-theme="dark"]{--booking-bg:#020817;--booking-surface:#0f172a;--booking-surface-soft:#111c2f;--booking-border:#23324a;--booking-text:#f8fafc;--booking-muted:#9fb0c7;--booking-muted-strong:#cbd5e1;--booking-primary:#22c55e;--booking-primary-soft:rgba(34,197,94,.14);--booking-primary-border:rgba(34,197,94,.35);--booking-danger:#f87171;--booking-warning:#fbbf24}
body.booking-public-body{min-height:100vh!important;height:auto!important;overflow-x:hidden!important;overflow-y:auto!important;background:var(--booking-bg)!important;color:var(--booking-text)!important}
.booking-public-shell{max-width:1180px!important;margin:0 auto!important;padding:24px 22px 72px!important;color:var(--booking-text)!important}.booking-company-card,.booking-hero-copy,.booking-hero-copy-footer,.booking-card,.booking-steps-card,.booking-flow-card,.booking-summary-card,.booking-calendar-card,.booking-times-card,.booking-info-card,.booking-service-card,.booking-pro-card,.booking-slot,.booking-empty,.booking-code-box,.booking-result,.booking-alert,.booking-success-summary,.booking-review-item{background:var(--booking-surface)!important;color:var(--booking-text)!important;border-color:var(--booking-border)!important;box-shadow:0 14px 34px rgba(15,23,42,.06)!important}html[data-booking-theme="dark"] .booking-company-card,html[data-booking-theme="dark"] .booking-hero-copy,html[data-booking-theme="dark"] .booking-hero-copy-footer,html[data-booking-theme="dark"] .booking-card,html[data-booking-theme="dark"] .booking-steps-card,html[data-booking-theme="dark"] .booking-flow-card,html[data-booking-theme="dark"] .booking-summary-card,html[data-booking-theme="dark"] .booking-calendar-card,html[data-booking-theme="dark"] .booking-times-card,html[data-booking-theme="dark"] .booking-info-card,html[data-booking-theme="dark"] .booking-service-card,html[data-booking-theme="dark"] .booking-pro-card,html[data-booking-theme="dark"] .booking-slot,html[data-booking-theme="dark"] .booking-empty,html[data-booking-theme="dark"] .booking-code-box,html[data-booking-theme="dark"] .booking-result,html[data-booking-theme="dark"] .booking-alert,html[data-booking-theme="dark"] .booking-success-summary,html[data-booking-theme="dark"] .booking-review-item{box-shadow:none!important}.booking-section-head h2,.booking-summary-card h2,.booking-hero-copy h2,.booking-review strong,.booking-review-item strong,.booking-service-card strong,.booking-pro-card strong,.booking-slot strong,.booking-summary-list strong,.booking-success-summary b{color:var(--booking-text)!important}.booking-section-head p,.booking-hero-copy p,.booking-summary-card p,.booking-summary-list small,.booking-review small,.booking-review-item small,.booking-service-card small,.booking-service-card em,.booking-pro-card small,.booking-slot span,.booking-success-summary small{color:var(--booking-muted-strong)!important}.booking-grid-with-summary{gap:18px!important;align-items:start!important}.booking-main-column{min-width:0!important}.booking-info-footer{margin:12px 0 18px!important;max-width:760px!important}.booking-hero-copy-footer{padding:16px 18px!important;border-radius:20px!important}.booking-hero-copy-footer h2{font-size:22px!important;line-height:1.15!important}.booking-hero-copy-footer p{font-size:13px!important;line-height:1.45!important}.booking-rule{background:var(--booking-primary-soft)!important;color:#166534!important;border:1px solid var(--booking-primary-border)!important;border-radius:999px!important;padding:8px 12px!important;width:max-content!important;max-width:100%!important}html[data-booking-theme="dark"] .booking-rule{color:#bbf7d0!important}.booking-steps-card{padding:12px 14px!important;border-radius:18px!important}.booking-steps{gap:8px!important}.booking-steps li{min-height:36px!important;border-radius:999px!important;background:var(--booking-surface-soft)!important;color:var(--booking-muted-strong)!important;border:1px solid var(--booking-border)!important}.booking-steps li.active,.booking-steps li.done{background:var(--booking-primary-soft)!important;color:#166534!important;border-color:var(--booking-primary-border)!important}html[data-booking-theme="dark"] .booking-steps li.active,html[data-booking-theme="dark"] .booking-steps li.done{color:#bbf7d0!important}.booking-flow-card{border-radius:20px!important}.booking-step-panel{padding:18px 20px!important}.booking-section-head{margin-bottom:16px!important}.booking-service-grid,.booking-pro-grid{gap:12px!important}.booking-service-card,.booking-pro-card{padding:14px 15px!important;border-radius:16px!important}.booking-service-card.selected,.booking-pro-card.selected,.booking-slot.selected,.booking-calendar-day.selected{border-color:var(--booking-primary)!important;background:var(--booking-primary-soft)!important;color:#166534!important}html[data-booking-theme="dark"] .booking-service-card.selected,html[data-booking-theme="dark"] .booking-pro-card.selected,html[data-booking-theme="dark"] .booking-slot.selected,html[data-booking-theme="dark"] .booking-calendar-day.selected{color:#bbf7d0!important}.booking-calendar-layout{display:grid!important;grid-template-columns:minmax(260px,320px) minmax(0,1fr)!important;gap:16px!important;align-items:stretch!important}.booking-calendar-card,.booking-times-card{border-radius:18px!important;padding:16px!important}.booking-calendar-days{gap:7px!important}.booking-calendar-day{min-height:38px!important;border-radius:12px!important;border:1px solid var(--booking-border)!important;background:var(--booking-surface-soft)!important;color:var(--booking-text)!important}.booking-calendar-day.muted{opacity:.58}.booking-calendar-day.disabled{opacity:.38!important}.booking-slots{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(92px,1fr))!important;gap:9px!important}.booking-slot{min-height:48px!important;padding:8px 10px!important;border-radius:14px!important;text-align:left!important}.booking-slot strong{font-size:15px!important;line-height:1!important}.booking-slot span{display:block!important;font-size:11px!important;line-height:1.2!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.booking-fields-grid{gap:12px!important}.booking-fields-grid label,.booking-date-row label{padding:12px 13px!important;border-radius:16px!important;background:var(--booking-surface)!important;border:1px solid var(--booking-border)!important;color:var(--booking-text)!important}.booking-fields-grid span,.booking-date-row span{color:var(--booking-muted-strong)!important}.booking-public-shell input,.booking-public-shell textarea,.booking-public-shell select{min-height:44px!important;background:var(--booking-surface-soft)!important;color:var(--booking-text)!important;border:1px solid var(--booking-border)!important;border-radius:14px!important}.booking-public-shell textarea{min-height:86px!important}.booking-public-shell input::placeholder,.booking-public-shell textarea::placeholder{color:var(--booking-muted)!important;opacity:1!important}.booking-code-inputs input{font-size:26px!important;letter-spacing:7px!important;text-align:center!important}.booking-code-status{color:var(--booking-muted-strong)!important}.booking-code-status.ok{color:var(--booking-primary)!important}.booking-review{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.booking-review>div,.booking-review-item{min-height:auto!important;padding:12px 14px!important;border-radius:16px!important;border:1px solid var(--booking-border)!important;background:var(--booking-surface)!important}.booking-review-item small{display:block!important;margin-bottom:4px!important;font-size:11px!important;text-transform:uppercase!important;letter-spacing:.08em!important;font-weight:900!important}.booking-review-item strong{display:block!important;font-size:14px!important;line-height:1.35!important;word-break:break-word!important}.booking-result.success,.booking-alert.success{background:var(--booking-primary-soft)!important;border-color:var(--booking-primary-border)!important;color:#166534!important}html[data-booking-theme="dark"] .booking-result.success,html[data-booking-theme="dark"] .booking-alert.success{color:#bbf7d0!important}.booking-result.danger{background:rgba(220,38,38,.08)!important;border-color:rgba(220,38,38,.25)!important;color:var(--booking-danger)!important}.booking-summary-card{border-radius:20px!important;padding:16px!important}.booking-summary-actions{margin:12px 0!important;gap:8px!important}.booking-whatsapp-btn{min-height:42px!important;border-radius:14px!important;background:var(--booking-primary)!important;color:#fff!important;border:1px solid var(--booking-primary)!important;box-shadow:none!important}.booking-whatsapp-btn.secondary{background:var(--booking-primary-soft)!important;color:#166534!important;border-color:var(--booking-primary-border)!important}html[data-booking-theme="dark"] .booking-whatsapp-btn.secondary{color:#bbf7d0!important}.booking-summary-list{gap:8px!important}.booking-summary-list div{display:grid!important;grid-template-columns:92px minmax(0,1fr)!important;align-items:center!important;gap:8px!important;min-height:38px!important;padding:9px 11px!important;border-radius:13px!important;background:var(--booking-surface-soft)!important;border:1px solid var(--booking-border)!important}.booking-summary-list small{font-size:10px!important;letter-spacing:.08em!important}.booking-summary-list strong{font-size:12px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.booking-summary-secure{background:var(--booking-primary-soft)!important;border-color:var(--booking-primary-border)!important;color:#166534!important}html[data-booking-theme="dark"] .booking-summary-secure{color:#bbf7d0!important}.booking-theme-toggle{background:var(--booking-surface)!important;color:var(--booking-text)!important;border:1px solid var(--booking-border)!important;box-shadow:0 10px 26px rgba(15,23,42,.1)!important}.booking-bottom-actions{position:sticky!important;bottom:0!important;background:var(--booking-surface)!important;border-color:var(--booking-border)!important}.booking-public-body .booking-btn{background:var(--booking-primary)!important;border-color:var(--booking-primary)!important;color:#fff!important}.booking-public-body .booking-btn.secondary,.booking-public-body #bookingBack{background:var(--booking-surface-soft)!important;border-color:var(--booking-border)!important;color:var(--booking-text)!important}.booking-public-body .booking-btn:disabled{background:#e2e8f0!important;border-color:#e2e8f0!important;color:#64748b!important;opacity:1!important}html[data-booking-theme="dark"] .booking-public-body .booking-btn:disabled{background:#1e293b!important;border-color:#334155!important;color:#94a3b8!important}@media(min-width:1024px){.booking-grid-with-summary{grid-template-columns:minmax(0,1fr) 320px!important}.booking-summary-card{position:sticky!important;top:18px!important;max-height:calc(100vh - 36px)!important;overflow:auto!important}.booking-info-footer{grid-column:1/-1!important}.booking-steps-card h2{display:none!important}}@media(max-width:900px){.booking-public-shell{padding:16px 12px 92px!important}.booking-grid-with-summary{display:block!important}.booking-summary-card{margin-top:14px!important}.booking-calendar-layout{grid-template-columns:1fr!important}.booking-review{grid-template-columns:1fr!important}.booking-steps{overflow:auto!important;scrollbar-width:none!important}.booking-steps li{min-width:max-content!important;padding:0 14px!important}.booking-step-panel{padding:15px!important}.booking-summary-list div{grid-template-columns:86px minmax(0,1fr)!important}.booking-bottom-actions{gap:10px!important;padding:12px!important}.booking-info-footer{max-width:none!important}.booking-hero-copy-footer h2{font-size:20px!important}}@media(max-width:430px){.booking-public-shell{padding:12px 10px 88px!important}.booking-company-card{padding:14px!important}.booking-service-grid,.booking-pro-grid{grid-template-columns:1fr!important}.booking-step-panel{padding:13px!important}.booking-review-item{padding:11px 12px!important}.booking-summary-list div{grid-template-columns:1fr!important;gap:2px!important}.booking-public-shell input,.booking-public-shell textarea,.booking-public-shell select{font-size:15px!important}.booking-code-inputs input{font-size:24px!important}.booking-bottom-actions .booking-btn{min-height:48px!important}}
:root{--topbar-text:#0f172a;--topbar-button-bg:#ffffff;--topbar-button-hover:#f1f5f9;--topbar-border:#dbe3ef;--focus-ring:#2563eb}.theme-dark,:root[data-theme="dark"],html[data-theme="dark"]{--topbar-text:#f8fafc;--topbar-button-bg:#0f172a;--topbar-button-hover:#17233a;--topbar-border:#26344d;--focus-ring:#22c55e}.bvms-topbar-more,.topbar-more-button,.svc-bottom-more,.stock-icon-btn,.stock-mobile-menu,.pdv-mobile-menu,.topbar-mobile-menu{min-width:40px;min-height:40px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;color:var(--topbar-text);background:var(--topbar-button-bg);border:1px solid var(--topbar-border)}.bvms-topbar-more:hover,.topbar-more-button:hover,.svc-bottom-more:hover,.stock-icon-btn:hover{background:var(--topbar-button-hover)}.bvms-topbar-more:focus-visible,.topbar-more-button:focus-visible,.svc-bottom-more:focus-visible,.stock-icon-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}


/* V103 - Agendamento público: landing PC profissional e tema consistente */
html[data-booking-theme="light"],
html:not([data-booking-theme="dark"]) {
    --booking-bg: #f6f8fb;
    --booking-surface: #ffffff;
    --booking-surface-soft: #f8fafc;
    --booking-border: #dbe3ef;
    --booking-text: #0f172a;
    --booking-muted: #64748b;
    --booking-muted-strong: #475569;
    --booking-primary: #16a34a;
    --booking-primary-soft: #dcfce7;
    --booking-primary-border: #86efac;
}
html[data-booking-theme="dark"] {
    --booking-bg: #020817;
    --booking-surface: #0f172a;
    --booking-surface-soft: #111827;
    --booking-border: #23324a;
    --booking-text: #f8fafc;
    --booking-muted: #9fb0c7;
    --booking-muted-strong: #cbd5e1;
    --booking-primary: #22c55e;
    --booking-primary-soft: rgba(34,197,94,.14);
    --booking-primary-border: rgba(34,197,94,.35);
}
body.booking-public-body {
    background: var(--booking-bg) !important;
    color: var(--booking-text) !important;
}
.booking-public-shell {
    width: min(1180px, calc(100% - 32px)) !important;
    max-width: 1180px !important;
    margin: 0 auto !important;
    padding: 24px 0 72px !important;
}
.booking-client-landing {
    display: grid !important;
    gap: 16px !important;
    margin: 0 0 22px !important;
}
.booking-hero,
.booking-info-footer {
    margin: 0 !important;
}
.booking-company-card,
.booking-hero-copy-footer,
.booking-steps-card,
.booking-flow-card,
.booking-summary-card,
.booking-calendar-card,
.booking-times-card,
.booking-step-panel,
.booking-review-item,
.booking-service-card,
.booking-pro-card {
    background: var(--booking-surface) !important;
    color: var(--booking-text) !important;
    border-color: var(--booking-border) !important;
    box-shadow: 0 16px 38px rgba(15,23,42,.07) !important;
}
.booking-company-card h1,
.booking-hero-copy-footer h2,
.booking-section-head h2,
.booking-summary-card h2,
.booking-times-head strong,
.booking-calendar-head strong,
.booking-review-item strong {
    color: var(--booking-text) !important;
}
.booking-company-card p,
.booking-company-card small,
.booking-hero-copy-footer p,
.booking-section-head p,
.booking-summary-card p,
.booking-summary-item span,
.booking-summary-item b.empty,
.booking-review-item span,
.booking-calendar-head small,
.booking-times-head small {
    color: var(--booking-muted-strong) !important;
}
.booking-alert.success,
.booking-rule {
    background: var(--booking-primary-soft) !important;
    color: var(--booking-primary) !important;
    border: 1px solid var(--booking-primary-border) !important;
}
.booking-steps-card {
    padding: 14px !important;
}
.booking-steps-card h2 {
    display: none !important;
}
.booking-steps {
    gap: 8px !important;
}
.booking-steps li {
    background: var(--booking-surface-soft) !important;
    color: var(--booking-muted-strong) !important;
    border-color: var(--booking-border) !important;
    min-height: 38px !important;
}
.booking-steps li.active,
.booking-steps li.done {
    background: var(--booking-primary-soft) !important;
    color: #166534 !important;
    border-color: var(--booking-primary-border) !important;
}
html[data-booking-theme="dark"] .booking-steps li.active,
html[data-booking-theme="dark"] .booking-steps li.done {
    color: #bbf7d0 !important;
}
.booking-flow-card {
    overflow: hidden !important;
}
.booking-section-head {
    padding-bottom: 12px !important;
}
.booking-review-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
}
.booking-review-item {
    min-height: auto !important;
    padding: 13px 14px !important;
    border-radius: 16px !important;
}
.booking-review-item span {
    display: block !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    letter-spacing: .05em !important;
    text-transform: uppercase !important;
    margin-bottom: 5px !important;
}
.booking-review-item strong {
    display: block !important;
    font-size: 14px !important;
    font-weight: 850 !important;
    line-height: 1.35 !important;
    opacity: 1 !important;
}
.booking-summary-list {
    display: grid !important;
    gap: 8px !important;
}
.booking-summary-item {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    padding: 10px 12px !important;
    min-height: 42px !important;
    border-radius: 14px !important;
    background: var(--booking-surface-soft) !important;
    border: 1px solid var(--booking-border) !important;
}
.booking-summary-item span {
    font-size: 10px !important;
    letter-spacing: .05em !important;
    text-transform: uppercase !important;
    font-weight: 900 !important;
}
.booking-summary-item b {
    color: var(--booking-text) !important;
    font-size: 13px !important;
    font-weight: 850 !important;
    max-width: 58% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}
.booking-whatsapp-btn {
    background: var(--booking-primary) !important;
    color: #fff !important;
    border-color: var(--booking-primary) !important;
}
.booking-whatsapp-btn.secondary {
    background: var(--booking-primary-soft) !important;
    color: var(--booking-primary) !important;
    border-color: var(--booking-primary-border) !important;
}
.booking-btn,
.booking-bottom-actions .booking-btn {
    background: var(--booking-primary) !important;
    border-color: var(--booking-primary) !important;
    color: #fff !important;
}
.booking-btn.secondary,
#bookingBack {
    background: var(--booking-surface) !important;
    border-color: var(--booking-border) !important;
    color: var(--booking-text) !important;
}
.booking-btn:disabled {
    background: var(--booking-surface-soft) !important;
    color: var(--booking-muted) !important;
    border-color: var(--booking-border) !important;
    opacity: 1 !important;
}
.booking-public-body input,
.booking-public-body textarea,
.booking-public-body select {
    background: var(--booking-surface-soft) !important;
    color: var(--booking-text) !important;
    border-color: var(--booking-border) !important;
}
.booking-public-body input::placeholder,
.booking-public-body textarea::placeholder {
    color: var(--booking-muted) !important;
}
.booking-calendar-day,
.booking-slot-btn {
    background: var(--booking-surface-soft) !important;
    color: var(--booking-text) !important;
    border-color: var(--booking-border) !important;
}
.booking-calendar-day.active,
.booking-calendar-day.selected,
.booking-slot-btn.selected {
    background: var(--booking-primary) !important;
    color: #fff !important;
    border-color: var(--booking-primary) !important;
}
@media (min-width: 1024px) {
    .booking-client-landing {
        grid-template-columns: 420px minmax(0, 1fr) !important;
        align-items: stretch !important;
    }
    .booking-company-card,
    .booking-hero-copy-footer {
        height: 100% !important;
        border-radius: 24px !important;
    }
    .booking-hero-copy-footer {
        padding: 24px 28px !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
    }
    .booking-hero-copy-footer h2 {
        font-size: 28px !important;
        line-height: 1.14 !important;
        max-width: 620px !important;
    }
    .booking-grid-with-summary {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 330px !important;
        gap: 22px !important;
        align-items: start !important;
    }
    .booking-summary-card {
        position: sticky !important;
        top: 22px !important;
        border-radius: 24px !important;
    }
    .booking-calendar-layout {
        display: grid !important;
        grid-template-columns: 300px minmax(0, 1fr) !important;
        gap: 16px !important;
    }
}
@media (max-width: 760px) {
    .booking-public-shell {
        width: min(100% - 20px, 520px) !important;
        padding: 14px 0 92px !important;
    }
    .booking-client-landing {
        gap: 10px !important;
    }
    .booking-review-grid {
        grid-template-columns: 1fr !important;
    }
    .booking-summary-item {
        align-items: flex-start !important;
        flex-direction: column !important;
        gap: 4px !important;
    }
    .booking-summary-item b {
        max-width: 100% !important;
        white-space: normal !important;
    }
}


/* V105 - Correção real: sidebar Estoque sem fosco e Mais Serviços/Estoque no padrão */
@media (max-width: 992px) {
    body.stock-body.stock-sidebar-mobile-open {
        overflow: hidden !important;
    }

    body.stock-body .stock-shell,
    body.stock-body .stock-main,
    body.stock-body .stock-content {
        filter: none !important;
        opacity: 1 !important;
    }

    body.stock-body .stock-sidebar,
    body.stock-body .stock-sidebar.show {
        opacity: 1 !important;
        filter: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        background: var(--st-panel, #111827) !important;
        color: var(--st-text, #f8fafc) !important;
        z-index: 1090 !important;
        box-shadow: 24px 0 64px rgba(2, 6, 23, .38) !important;
        transform: translateX(-106%) !important;
    }

    body.stock-body .stock-sidebar.show {
        transform: translateX(0) !important;
    }

    body.stock-body .stock-backdrop.show {
        display: block !important;
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        left: min(276px, 88vw) !important;
        width: auto !important;
        height: auto !important;
        z-index: 1080 !important;
        background: rgba(2, 6, 23, .52) !important;
        opacity: 1 !important;
        filter: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    body.stock-body .stock-sidebar *,
    body.stock-body .stock-sidebar.show * {
        opacity: 1 !important;
        filter: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    body.stock-body .stock-bottom,
    body.services-body .svc-bottom-nav {
        display: grid !important;
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
        gap: 4px !important;
        left: 10px !important;
        right: 10px !important;
        bottom: calc(10px + env(safe-area-inset-bottom)) !important;
        width: auto !important;
        height: 66px !important;
        min-height: 66px !important;
        max-height: 66px !important;
        padding: 6px !important;
        border-radius: 22px !important;
        overflow: visible !important;
        box-sizing: border-box !important;
    }

    body.stock-body .stock-bottom {
        position: fixed !important;
        transform: none !important;
        background: var(--st-panel, #ffffff) !important;
        border: 1px solid var(--st-line, #dbe3ef) !important;
        z-index: 1050 !important;
        box-shadow: 0 16px 38px rgba(15, 23, 42, .18) !important;
    }

    body.stock-body .stock-bottom a,
    body.stock-body .stock-bottom .stock-bottom-more,
    body.services-body .svc-bottom-nav a,
    body.services-body .svc-bottom-nav .svc-bottom-more {
        position: relative !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 3px !important;
        width: 100% !important;
        min-width: 0 !important;
        height: 54px !important;
        min-height: 54px !important;
        max-height: 54px !important;
        margin: 0 !important;
        padding: 5px 2px !important;
        border: 0 !important;
        border-radius: 16px !important;
        background: transparent !important;
        box-shadow: none !important;
        text-decoration: none !important;
        appearance: none !important;
        font-size: 9px !important;
        line-height: 1.05 !important;
        font-weight: 900 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    body.stock-body .stock-bottom a,
    body.stock-body .stock-bottom .stock-bottom-more {
        color: var(--st-muted, #64748b) !important;
    }

    body.services-body .svc-bottom-nav a,
    body.services-body .svc-bottom-nav .svc-bottom-more {
        color: var(--svc-muted, #64748b) !important;
    }

    body.stock-body .stock-bottom a.active {
        background: var(--st-accent-soft, rgba(251,146,60,.14)) !important;
        color: var(--st-accent, #fb923c) !important;
    }

    body.services-body .svc-bottom-nav a.active {
        background: var(--svc-green-soft, rgba(22,163,74,.10)) !important;
        color: var(--svc-green, #16a34a) !important;
    }

    body.stock-body .stock-bottom i,
    body.stock-body .stock-bottom .stock-bottom-more i,
    body.services-body .svc-bottom-nav i,
    body.services-body .svc-bottom-nav .svc-bottom-more i {
        display: block !important;
        font-size: 18px !important;
        line-height: 1 !important;
        margin: 0 !important;
    }

    body.stock-body .stock-bottom span,
    body.stock-body .stock-bottom .stock-bottom-more span,
    body.services-body .svc-bottom-nav span,
    body.services-body .svc-bottom-nav .svc-bottom-more span {
        display: block !important;
        max-width: 100% !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    body.services-body .svc-nav-badge,
    body.services-body .svc-bottom-nav .svc-nav-badge {
        top: -5px !important;
        right: 8px !important;
        z-index: 2 !important;
    }
}


/* V108 - Guard rail de tema para páginas públicas e suporte */
html.theme-dark .bvms-support-page,
html[data-theme="dark"] .bvms-support-page,
html.theme-dark .bvms-public-request,
html[data-theme="dark"] .bvms-public-request{
    background:#0b1220 !important;
    color:#f8fafc !important;
}
html.theme-dark .bvms-support-hero,
html.theme-dark .bvms-support-card,
html.theme-dark .bvms-request-card,
html[data-theme="dark"] .bvms-support-hero,
html[data-theme="dark"] .bvms-support-card,
html[data-theme="dark"] .bvms-request-card{
    background:#111827 !important;
    border-color:#26364f !important;
    color:#f8fafc !important;
}
html.theme-dark .bvms-support-hero h1,
html.theme-dark .bvms-support-card h2,
html.theme-dark .bvms-request-card h1,
html[data-theme="dark"] .bvms-support-hero h1,
html[data-theme="dark"] .bvms-support-card h2,
html[data-theme="dark"] .bvms-request-card h1{
    color:#f8fafc !important;
    -webkit-text-fill-color:#f8fafc !important;
}
html.theme-dark .bvms-support-hero p,
html.theme-dark .bvms-support-card li,
html.theme-dark .bvms-request-card p,
html[data-theme="dark"] .bvms-support-hero p,
html[data-theme="dark"] .bvms-support-card li,
html[data-theme="dark"] .bvms-request-card p{
    color:#cbd5e1 !important;
}
html.theme-dark .bvms-support-form label,
html.theme-dark .bvms-request-form label,
html[data-theme="dark"] .bvms-support-form label,
html[data-theme="dark"] .bvms-request-form label{
    color:#cbd5e1 !important;
}
html.theme-dark .bvms-support-form input,
html.theme-dark .bvms-support-form select,
html.theme-dark .bvms-support-form textarea,
html.theme-dark .bvms-request-form input,
html.theme-dark .bvms-request-form select,
html.theme-dark .bvms-request-form textarea,
html[data-theme="dark"] .bvms-support-form input,
html[data-theme="dark"] .bvms-support-form select,
html[data-theme="dark"] .bvms-support-form textarea,
html[data-theme="dark"] .bvms-request-form input,
html[data-theme="dark"] .bvms-request-form select,
html[data-theme="dark"] .bvms-request-form textarea{
    background:#0b1220 !important;
    border-color:#334155 !important;
    color:#f8fafc !important;
    -webkit-text-fill-color:#f8fafc !important;
}
html.theme-dark .bvms-support-form input::placeholder,
html.theme-dark .bvms-support-form textarea::placeholder,
html.theme-dark .bvms-request-form input::placeholder,
html.theme-dark .bvms-request-form textarea::placeholder,
html[data-theme="dark"] .bvms-support-form input::placeholder,
html[data-theme="dark"] .bvms-support-form textarea::placeholder,
html[data-theme="dark"] .bvms-request-form input::placeholder,
html[data-theme="dark"] .bvms-request-form textarea::placeholder{
    color:#94a3b8 !important;
    -webkit-text-fill-color:#94a3b8 !important;
}
