/*
 * Tema corporativo J6 PRIME
 *
 * O projeto usa Tailwind CSS 3.4. Neste formato, as variaveis abaixo sao a
 * fonte unica da paleta tanto para o CSS tradicional quanto para as cores
 * semanticas declaradas em tailwind.config.js.
 */
:root {
    --color-base-dark: #0f172a;
    --color-card-dark: #1e293b;
    --color-card-light: #f8fafc;
    --color-brand-primary: #2563eb;
    --color-brand-primary-hover: #1d4ed8;
    --color-brand-deep: #1e3a5f;
    --color-brand-soft: #dbeafe;
    --color-retail-canvas: #dde3e8;
    --color-brand-success: #10b981;
    --color-brand-accent: #f59e0b;
    --color-brand-danger: #f43f5e;
    --color-brand-info: #0ea5e9;
    --color-text-main: #f8fafc;
    --color-text-muted: #94a3b8;
}

/* Estilos base da plataforma comercial J6 PRIME */

body {
    font-family:"Courier New",Courier,monospace;
    background-color: var(--color-base-dark);
}

/* Identificacao compacta do modo e do operador no terminal PDV/DAV. */
.pdv-mode-identity {
    min-height:2rem;
    padding:0 .9rem 0 .2rem;
    letter-spacing:.035em;
}
.pdv-mode-title {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:4.6rem;
    min-height:2.5rem;
    padding:.4rem .95rem;
    color:#172033;
    background:linear-gradient(180deg,#fde047 0%,#facc15 100%);
    border:1px solid #fef08a;
    border-radius:.68rem;
    font-size:1.25rem;
    line-height:1;
    font-weight:950;
    letter-spacing:.08em;
    text-shadow:0 1px 0 rgba(255,255,255,.35);
    box-shadow:0 0 0 1px rgba(245,158,11,.24),0 4px 13px rgba(0,0,0,.28);
}
.pdv-mode-separator { color:#64748b;font-size:.75rem; }
.pdv-operator-name {
    max-width:12rem;
    overflow:hidden;
    text-overflow:ellipsis;
    color:#b6c6cc;
    font-size:.72rem;
    line-height:1;
    font-weight:800;
}
.pdv-mode-actions {
    margin-left:.15rem;
    padding-left:.85rem;
    border-left:1px solid rgba(148,163,184,.32);
}
.pdv-mode-actions .pdv-layout-switch {
    background:rgba(15,23,42,.18) !important;
    border-color:rgba(148,163,184,.48) !important;
    color:#cbd5e1 !important;
    box-shadow:none !important;
}
.pdv-mode-actions .pdv-layout-switch:hover {
    background:rgba(250,204,21,.12) !important;
    border-color:#eab308 !important;
    color:#fde68a !important;
}

@media (max-width: 720px) {
    .pdv-operator-name { max-width:6.5rem; }
    .pdv-mode-identity { padding-right:.55rem; }
    .pdv-mode-actions { padding-left:.55rem; }
}

/* Barra compacta de filtros da listagem de produtos. */
.product-filter-bar {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(10rem, 18rem) auto auto;
    align-items: center;
    gap: .625rem;
}
.product-filter-bar .product-filter-search,
.product-filter-bar #filtroCategoria { width:100%;min-width:0; }
.product-filter-bar .product-filter-toggle,
.product-filter-bar .product-filter-submit { min-height:2.5rem;white-space:nowrap; }
.product-filter-bar .product-filter-submit { width:auto!important;min-width:0!important; }

@media (max-width: 759px) {
    .product-filter-bar { grid-template-columns:minmax(0,1fr) auto; }
    .product-filter-bar .product-filter-search { grid-column:1 / -1; }
}

/* Temas de conforto visual */
.theme-menu {
    position: fixed;
    z-index: 10000;
    width: 11.5rem;
    padding: .35rem;
    border: 1px solid #374151;
    border-radius: .7rem;
    background: #181d25;
    box-shadow: 0 14px 35px rgba(0, 0, 0, .4);
}
.theme-picker-corner { z-index:10000; }
.theme-picker-button { box-shadow:0 4px 12px rgba(0,0,0,.18); }
.theme-menu button { display:flex;align-items:center;gap:.6rem;width:100%;padding:.55rem .65rem;border-radius:.45rem;color:#d4d4d8;font-size:.72rem;font-weight:700;text-align:left; }
.theme-menu button:hover,.theme-menu button.active { background:rgba(245,158,11,.14);color:#fbbf24; }
.theme-menu button i { width:1rem;text-align:center; }
.theme-menu-separator { height:1px;margin:.3rem .45rem;background:#374151; }
.pdv-theme-quick { color:#27272a;white-space:nowrap; }
.pdv-theme-quick select { max-width:6.4rem;padding:.22rem 1.25rem .22rem .35rem;border:1px solid #a1a1aa;border-radius:.35rem;background:#f4f4f5;color:#18181b;font-size:.62rem;font-weight:800;text-transform:uppercase;cursor:pointer; }

/* Noturno — paleta grafite neutra da interface de referencia */
html[data-theme="dark"] {
    color-scheme: dark;
    --night-bg: #0b0f12;
    --night-surface: #14191d;
    --night-surface-raised: #181e22;
    --night-surface-hover: #1d2429;
    --night-border: #3f3f46;
    --night-border-strong: #52525b;
}
html[data-theme="dark"] body,
html[data-theme="dark"] main { background-color:var(--night-bg) !important; }
html[data-theme="dark"] aside,
html[data-theme="dark"] .app-topbar { background-color:var(--night-bg) !important;border-color:var(--night-border) !important; }
html[data-theme="dark"] aside {
    position:relative;
    border-right:1px solid var(--night-border-strong) !important;
    box-shadow:5px 0 16px rgba(0,0,0,.22);
}
html[data-theme="dark"] aside::before {
    content:"";
    position:absolute;
    z-index:2;
    pointer-events:none;
    inset:4px 8px 5.5rem 4px;
    border:2px solid #737b80;
    border-radius:.8rem;
    opacity:.9;
}
html[data-theme="dark"] .bg-\[\#0e1217\] { background-color:var(--night-bg) !important; }
html[data-theme="dark"] .bg-\[\#14181f\],
html[data-theme="dark"] .dashboard-card { background-color:var(--night-surface) !important; }
html[data-theme="dark"] .bg-\[\#181d25\],
html[data-theme="dark"] .bg-\[\#1c2229\],
html[data-theme="dark"] .bg-\[\#1e2229\],
html[data-theme="dark"] .bg-\[\#21252e\],
html[data-theme="dark"] .bg-\[\#272b33\] { background-color:var(--night-surface-raised) !important; }
html[data-theme="dark"] .border-\[\#1f2633\] { border-color:var(--night-border) !important; }
html[data-theme="dark"] [class*="border-zinc-6"],
html[data-theme="dark"] [class*="border-zinc-7"],
html[data-theme="dark"] [class*="border-zinc-8"],
html[data-theme="dark"] [class*="border-slate-6"],
html[data-theme="dark"] [class*="border-slate-7"],
html[data-theme="dark"] [class*="border-slate-8"] { border-color:var(--night-border) !important; }
html[data-theme="dark"] .dashboard-card,
html[data-theme="dark"] table,
html[data-theme="dark"] thead,
html[data-theme="dark"] tbody tr { border-color:var(--night-border) !important; }
html[data-theme="dark"] .theme-menu { background:var(--night-surface-raised);border-color:var(--night-border-strong); }
html[data-theme="dark"] .theme-menu-separator { background:var(--night-border); }
html[data-theme="dark"] .custom-scrollbar::-webkit-scrollbar-thumb { background:var(--night-border); }
html[data-theme="dark"] .custom-scrollbar::-webkit-scrollbar-thumb:hover { background:var(--night-border-strong); }

/* Remover setas de incremento dos inputs numéricos */
input[type=number]::-webkit-inner-spin-button, 
input[type=number]::-webkit-outer-spin-button { 
    -webkit-appearance: none; 
    margin: 0; 
}
input[type=number] {
    -moz-appearance: textfield;
    appearance: textfield;
}

/* Custom Scrollbar */
.custom-scrollbar::-webkit-scrollbar {
    width: 5px;
    height: 5px;
}
.custom-scrollbar::-webkit-scrollbar-track {
    background: transparent;
}
.custom-scrollbar::-webkit-scrollbar-thumb {
    background: #1f2633;
    border-radius: 4px;
}
.custom-scrollbar::-webkit-scrollbar-thumb:hover {
    background: #374151;
}

/* Sidebar Navigation Items */
.nav-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.55rem 0.75rem;
    border-radius: 0.5rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #94a3b8;
    transition: all 0.15s ease-in-out;
}

.nav-item:hover {
    color: #f8fafc;
    background-color: rgba(30, 41, 59, 0.4);
}

.nav-item.active {
    color: #facc15;
    background-color: rgba(234, 179, 8, 0.12);
    border-left: 3px solid #eab308;
    font-weight: 700;
}

.nav-group-toggle {
    cursor: pointer;
    border: none;
    background: transparent;
    width: 100%;
    font: inherit;
}

.nav-sub {
    margin: 0.1rem 0 0.35rem 0.5rem;
    padding-left: 0.55rem;
    border-left: 1px solid #27272a;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.nav-sub.hidden {
    display: none;
}

.nav-sub-item {
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
    font-size: 0.75rem;
    font-weight: 500;
    border-left: none !important;
}

.nav-chevron {
    transition: transform 0.15s ease;
}

.nav-chevron.rotate-90 {
    transform: rotate(90deg);
}

/* Dashboard Metric Cards */
.dashboard-card {
    background-color: #14181f;
    border: 1px solid #1f2633;
    border-radius: 0.875rem;
    padding: 1.125rem;
    position: relative;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
}

/* Linguagem visual compartilhada das telas operacionais. */
.daily-page{max-width:1450px;margin:0 auto}
.daily-hero{position:relative;overflow:hidden;border:1px solid #303845;border-radius:16px;background:linear-gradient(120deg,#171d25,#12171e 68%,#1c180e);padding:16px 18px;box-shadow:0 10px 28px rgba(0,0,0,.12)}
.daily-hero:after{content:"";position:absolute;width:190px;height:190px;right:-85px;top:-125px;border-radius:999px;background:rgba(245,158,11,.11);pointer-events:none}
.daily-hero>*{position:relative;z-index:1}
.daily-panel{border:1px solid #2a323d!important;border-radius:16px!important;background:linear-gradient(145deg,#161b22,#11151b)!important}
.daily-field{min-height:40px;border-radius:11px!important;transition:border-color .15s,box-shadow .15s}
.daily-field:focus{border-color:rgba(245,158,11,.7)!important;box-shadow:0 0 0 3px rgba(245,158,11,.09)!important;outline:none}

/* Cartões do painel usados como atalhos clicáveis. */
.dashboard-shortcut {
    display: block;
    cursor: pointer;
    color: inherit;
    text-decoration: none;
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

.dashboard-shortcut:hover,
.dashboard-shortcut:focus-visible {
    transform: translateY(-3px);
    border-color: #fbbf24 !important;
    background-color: rgba(245, 158, 11, 0.08) !important;
    box-shadow: 0 0 0 1px rgba(251, 191, 36, 0.25), 0 10px 24px rgba(245, 158, 11, 0.22) !important;
    outline: none;
}

/* Status Badges no Header */
.status-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.25rem 0.65rem;
    border-radius: 0.5rem;
    background-color: rgba(16, 185, 129, 0.08);
    border: 1px solid rgba(16, 185, 129, 0.2);
    color: #34d399;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.025em;
    text-transform: uppercase;
}

.status-dot {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 9999px;
    background-color: #10b981;
    box-shadow: 0 0 8px #10b981;
    display: inline-block;
}

/* PDV Payment Buttons */
.pay-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 0.25rem;
    border-radius: 0.5rem;
    background-color: #0e1217;
    border: 1px solid #1f2633;
    color: #94a3b8;
    font-size: 0.6875rem;
    font-weight: 700;
    transition: all 0.15s ease-in-out;
}

.pay-btn:hover {
    border-color: #eab308;
    color: #f8fafc;
}

.pay-btn.active {
    background-color: rgba(234, 179, 8, 0.15);
    border-color: #eab308;
    color: #facc15;
}

@keyframes fadeIn {
    from { opacity: 0; transform: scale(0.95); }
    to { opacity: 1; transform: scale(1); }
}

.animate-fade-in {
    animation: fadeIn 0.2s ease-out forwards;
}

/* Category Chips */
.category-chip {
    padding: 0.35rem 0.75rem;
    border-radius: 9999px;
    background-color: #0e1217;
    border: 1px solid #1f2633;
    color: #94a3b8;
    font-size: 0.6875rem;
    font-weight: 700;
    white-space: nowrap;
    transition: all 0.15s ease-in-out;
    cursor: pointer;
}

.category-chip:hover {
    border-color: #eab308;
    color: #f8fafc;
}

.category-chip.active {
    background-color: #eab308;
    border-color: #eab308;
    color: #000;
}

/* Shortcut Keys */
.shortcut-key {
    display: inline-block;
    padding: 0.1rem 0.35rem;
    border-radius: 0.25rem;
    background-color: #0e1217;
    border: 1px solid #334155;
    color: #facc15;
    font-family: monospace;
    font-size: 0.65rem;
    font-weight: 800;
    margin-right: 0.25rem;
}

/* Modal Pay Buttons */
.modal-pay-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 0.5rem;
    border-radius: 0.75rem;
    background-color: #0e1217;
    border: 1.5px solid #1f2633;
    color: #94a3b8;
    font-size: 0.75rem;
    font-weight: 700;
    transition: all 0.15s ease-in-out;
}

.modal-pay-btn:hover {
    border-color: #eab308;
    color: #f8fafc;
}

.modal-pay-btn.active {
    background-color: rgba(234, 179, 8, 0.15);
    border-color: #eab308;
    color: #facc15;
}

/* Quick Cash Buttons */
.quick-cash-btn {
    padding: clamp(0.3rem, 0.65vh, 0.5rem) 0.25rem;
    min-height: clamp(1.85rem, 3.6vh, 2.5rem);
    border-radius: 0.5rem;
    background-color: #1e293b;
    border: 1px solid #334155;
    color: #f8fafc;
    font-size: clamp(0.65rem, 1.2vh, 0.8rem);
    font-weight: 800;
    font-family: monospace;
    transition: all 0.15s ease;
    cursor: pointer;
}

.quick-cash-btn:hover {
    background-color: #eab308;
    color: #000;
    border-color: #eab308;
}

/* Kiosk / Focus Mode (F11) */
.sidebar-hidden {
    overflow: hidden !important;
    height: 100vh !important;
    width: 100vw !important;
    max-width: 100vw !important;
}

.sidebar-hidden .app-sidebar,
.sidebar-hidden .app-topbar,
.sidebar-hidden a.fixed.bottom-6.right-6 {
    display: none !important;
}

.sidebar-hidden > .flex-1.flex.flex-col,
.sidebar-hidden > div.flex-1 {
    width: 100% !important;
    max-width: 100% !important;
    height: 100vh !important;
    min-height: 100vh !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: 1 1 100% !important;
}

.sidebar-hidden main {
    padding: 0 !important;
    margin: 0 !important;
    height: 100vh !important;
    width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
}

body.sidebar-hidden .app-screen-frame:has(.pdv-viewport) {
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
}

/* Modo janela: ocupa a area livre do ERP, descontando topo, moldura e atalhos. */
body:not(.sidebar-hidden) .app-screen-frame:has(.pdv-viewport) {
    display: flex;
    flex-direction: column;
    padding: .25rem;
    overflow: hidden;
}

body:not(.sidebar-hidden) .pdv-viewport {
    width: 100%;
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    padding: 0 !important;
}

body:not(.sidebar-hidden) .pdv-scale-stage {
    margin: 0 auto;
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

body:not(.sidebar-hidden) .pdv-monitor-container {
    aspect-ratio: auto;
    width: 100%;
    max-width: none;
    height: auto;
    max-height: none;
    flex: 1 1 0;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 0;
}

body:not(.sidebar-hidden) .pdv-brand-header {
    flex-shrink: 0;
}

body:not(.sidebar-hidden) .pdv-workspace > * {
    min-width: 0;
    min-height: 0;
    height: 100%;
}

/* Em telas estreitas, as colunas empilhadas continuam acessiveis por rolagem. */
@media (max-width: 1023px) {
    body:not(.sidebar-hidden) .app-screen-frame:has(.pdv-viewport) { overflow-y: auto; }
    body:not(.sidebar-hidden) .pdv-viewport { flex: none; }
    body:not(.sidebar-hidden) .pdv-scale-stage { height: auto; }
    body:not(.sidebar-hidden) .pdv-monitor-container { flex: none; }
    body:not(.sidebar-hidden) .pdv-workspace > * { height: auto; }
}

.pdv-monitor-container {
    display: flex !important;
    flex-direction: column !important;
    width: 100%;
    min-height: 0;
}

.pdv-viewport {
    width: 100%;
    background-color: #5a6068;
}

/* Fundo externo do PDV (fora do monitor) em cinza, não preto */
body:has(.pdv-viewport),
body:has(.pdv-viewport) main {
    background-color: #5a6068 !important;
}

/*
 * PDV_F11_LAYOUT_CONTRACT
 * Não alterar sem solicitação explícita do usuário:
 * - a altura-base do monitor permanece em 787.5px para exibir todos os atalhos;
 * - a largura do stage é independente e cresce até as laterais da viewport;
 * - o zoom é uniforme para preservar nitidez e proporção dos controles.
 */
.sidebar-hidden .pdv-viewport {
    position: relative !important;
    padding:0 !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #11161d !important;
}

.sidebar-hidden:has(.pdv-viewport),
.sidebar-hidden:has(.pdv-viewport) main {
    background: #11161d !important;
}

.sidebar-hidden main > .pdv-viewport {
    flex: 1 1 auto !important;
    min-height: 0 !important;
}

.sidebar-hidden .pdv-scale-stage {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    width: var(--pdv-stage-width, 1400px) !important;
    max-width: none !important;
    flex-shrink:0;
    margin: 0 !important;
    transform: none !important;
    transform-origin: center center !important;
    zoom: var(--pdv-scale, 1);
}

@supports not (zoom: 1) {
    .sidebar-hidden .pdv-scale-stage {
        position: absolute !important;
        left: 50% !important;
        top: 50% !important;
        transform: translate(-50%, -50%) scale(var(--pdv-scale, 1)) !important;
    }
}

.sidebar-hidden .pdv-monitor-container {
    width: 100% !important;
    max-width: none !important;
    aspect-ratio: auto !important;
    height: 787.5px !important;
    max-height: none !important;
    min-height: 0 !important;
    margin: 0 0 0.5rem 0 !important;
    border: 8px solid #f59e0b !important;
    border-radius: 0.75rem !important;
    box-shadow: none !important;
    padding: 0.5rem !important;
    flex: none !important;
}

.sidebar-hidden .pdv-monitor-container > div {
    border-radius: 0.5rem !important;
}

.sidebar-hidden .pdv-monitor-container > .grid {
    flex: 1 1 auto !important;
    min-height: 0 !important;
}

.sidebar-hidden .pdv-shortcuts-bar {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 2.5rem !important;
    border-radius: 0.75rem !important;
    margin: 0 !important;
    flex: none !important;
    display: flex !important;
    align-items: center !important;
}

.sidebar-hidden .pdv-monitor-container .lg\:col-span-7,
.sidebar-hidden .pdv-monitor-container .lg\:col-span-5 {
    min-height: 0 !important;
    height: 100% !important;
}

body:not(.sidebar-hidden) .pdv-shortcuts-bar {
    width: 100%;
    max-width: none;
    flex-shrink: 0;
    margin-bottom: 0;
    margin-left: auto;
    margin-right: auto;
}

/* Menu lateral um pouco mais largo para melhorar a leitura e a área de clique. */
.app-sidebar {
    width: 18rem;
}

/* 3D Metallic Buttons do PDV Express */
.express-kiosk-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0.85rem 1rem;
    border-radius: 0.875rem;
    border-width: 2px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.25);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.7);
    transition: all 0.15s ease-in-out;
    cursor: pointer;
}

.express-kiosk-btn:hover {
    filter: brightness(1.1);
    transform: translateY(-1px);
    box-shadow: 0 6px 10px -1px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.express-kiosk-btn:active {
    transform: translateY(1px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
}

/* PDV Terminal - Botões de ação lateral */
.pdv-action-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1;
    padding: 0.75rem 0.5rem;
    border-radius: 0.625rem;
    border: 2px solid #0d0d0d;
    background: linear-gradient(to bottom, #4d4d4d 0%, #1a1a1a 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 4px 6px rgba(0, 0, 0, 0.3);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: all 0.15s ease;
    cursor: pointer;
}

.pdv-action-btn span:last-child {
    color: #fbbf24;
    margin-top: 0.15rem;
}

.pdv-action-btn:hover {
    background: linear-gradient(to bottom, #595959 0%, #262626 100%);
}

.pdv-action-btn:active {
    transform: translateY(1px);
}

/* Botões utilitários do cupom */
.pdv-receipt-btn {
    padding: 0.4rem 0.25rem;
    border-radius: 0.375rem;
    background: linear-gradient(to bottom, #6b7280 0%, #374151 100%);
    border: 1px solid #1f2937;
    color: #fff;
    font-size: 0.8125rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    transition: all 0.15s ease;
    cursor: pointer;
}

.pdv-receipt-btn:hover {
    background: linear-gradient(to bottom, #9ca3af 0%, #4b5563 100%);
}

/* Campos de pesquisa: sempre em caixa alta */
.search-uppercase,
input.search-uppercase,
.field-uppercase,
input.field-uppercase,
textarea.field-uppercase {
    text-transform: uppercase;
}

/* Combo município: seta visível + lista custom (datalist nativo esconde a seta no Chrome) */
.municipio-combo {
    position: relative;
}
.municipio-combo-btn {
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #a1a1aa;
    background: transparent;
    border: 0;
    cursor: pointer;
    z-index: 2;
}
.municipio-combo-btn:hover {
    color: #fbbf24;
}
.municipio-combo-menu {
    position: fixed;
    z-index: 90;
    max-height: 14rem;
    overflow-y: auto;
    background: #14181f;
    border: 1px solid #52525b;
    border-radius: 0.5rem;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45);
}
.municipio-combo-item {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    text-align: left;
    padding: 0.55rem 0.75rem;
    font-size: 0.8rem;
    color: #e4e4e7;
    background: transparent;
    border: 0;
    border-bottom: 1px solid rgba(39, 39, 42, 0.8);
    cursor: pointer;
}
.municipio-combo-item:hover,
.municipio-combo-item.is-active {
    background: rgba(245, 158, 11, 0.16);
    color: #fde68a;
}
.municipio-combo-nome {
    font-weight: 700;
    letter-spacing: 0.02em;
}
.municipio-combo-uf {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 0.7rem;
    color: #fbbf24;
    flex-shrink: 0;
}
.municipio-combo-empty {
    padding: 0.75rem;
    font-size: 0.75rem;
    color: #71717a;
    text-align: center;
}

.search-uppercase::placeholder,
.field-uppercase::placeholder {
    text-transform: uppercase;
    opacity: 0.55;
}

/* Modais com digitação: caixa alta padrão do sistema */
[id*="Modal"] input[type="text"],
[id*="Modal"] textarea,
#pdvDialogInput {
    text-transform: uppercase;
}

[id*="Modal"] input[type="text"]::placeholder,
[id*="Modal"] textarea::placeholder {
    text-transform: uppercase;
    opacity: 0.55;
}

/* Barra de pesquisa — escala com a altura da tela */
.pdv-search-bar {
    height: clamp(2.6rem, 5.2vh, 3.75rem);
    background: #14181f;
    border: 2px solid #3f4b5c;
    border-radius: 0.75rem;
    font-size: clamp(0.8rem, 1.5vh, 1rem);
    font-weight: 800;
    color: #fff;
    text-transform: uppercase;
}

.pdv-search-bar:focus {
    outline: none;
    border-color: #eab308;
}

.pdv-search-bar:hover {
    border-color: #eab308;
}

.pdv-search-icon {
    font-size: clamp(0.9rem, 1.6vh, 1.1rem);
}

#terminalSearchResultsPanel {
    max-height: min(22rem, 42vh);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    touch-action: pan-y;
}

/* Barra Total a Pagar — só o valor, centralizado e grande */
.pdv-total-bar {
    min-height: 4.25rem;
    padding-top: 0.55rem;
    padding-bottom: 0.55rem;
}

.pdv-total-value {
    font-size: 2.75rem;
    line-height: 1;
    letter-spacing: 0.02em;
    width: 100%;
}

.pdv-checkout-head {
    min-height: 2.15rem;
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
}

.pdv-checkout-title {
    font-size: 0.8rem;
    letter-spacing: 0.08em;
}

/* Fechamento: stack compacto (sem vãos); rodapé sempre no fluxo, sem cortar */
.pdv-checkout-panel {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.pdv-checkout-body {
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    gap: 0.4rem !important;
    padding: 0.5rem 0.55rem 0.2rem !important;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
}

.pdv-checkout-content {
    display: contents;
}

.pdv-pay-grid {
    flex: 0 0 auto;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}

.pdv-other-payments {
    flex: 0 0 auto;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.35rem;
    padding: 0.4rem;
    border: 1px solid #3f4652;
    border-radius: 0.65rem;
    background: #10151b;
}

.pdv-other-payments button {
    min-width: 0;
    padding: 0.45rem 0.3rem;
    border: 1px solid #3f4652;
    border-radius: 0.5rem;
    background: #1e252e;
    color: #d4d4d8;
    font-size: 0.62rem;
    font-weight: 800;
    text-transform: uppercase;
}

.pdv-other-payments button i { margin-right: 0.25rem; color: #fbbf24; }
.pdv-other-payments button:hover { border-color: #eab308; color: #fff; }
.pdv-other-payments button.active { border-color: #eab308; background: rgba(234, 179, 8, 0.12); color: #facc15; }

.pdv-cash-summary-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.35rem;
}

.pdv-cash-summary-row.installments-active {
    grid-template-columns: minmax(0, 0.84fr) minmax(0, 1.16fr);
}

.pdv-cash-summary-row .pdv-valor-recebido,
.pdv-cash-summary-row .pdv-troco-bar { min-width: 0; }

.pdv-cash-summary-row .pdv-field-wrap {
    width: 11rem;
    height: 2.75rem;
    flex: 0 0 11rem;
    box-sizing: border-box;
}

.pdv-cash-summary-row .pdv-field-wrap .pdv-money-input {
    width: auto !important;
    min-width: 0 !important;
    height: 100% !important;
    flex: 1 1 0 !important;
    box-sizing: border-box;
    line-height: 1 !important;
}

.pdv-cash-summary-row .pdv-troco-value {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.pdv-cash-summary-row .pdv-parcelas-block {
    min-width: 0;
    min-height: 3.35rem;
    justify-content: flex-start !important;
}

.pdv-cash-summary-row .pdv-entrada-block {
    min-width: 0;
    gap: 0.55rem !important;
}

.pdv-cash-summary-row .pdv-entrada-block:not(.hidden) {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
}

.pdv-entry-field {
    width: 100%;
    height: 2.75rem;
    flex: none;
    margin-left: 0;
    box-sizing: border-box;
    border: 2px solid #3f4b5c;
}

#terminalCheckoutPanel #inputValorEntrada {
    width: auto !important;
    min-width: 0 !important;
    height: 100% !important;
    flex: 1 1 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;
    background: transparent !important;
    appearance: textfield;
    -moz-appearance: textfield;
    font-size: 1.55rem !important;
    font-weight: 900 !important;
}

#terminalCheckoutPanel #inputValorEntrada::-webkit-inner-spin-button,
#terminalCheckoutPanel #inputValorEntrada::-webkit-outer-spin-button {
    margin: 0;
    appearance: none;
    -webkit-appearance: none;
}

.pdv-installment-field {
    width: 8.5rem;
    flex: 0 0 8.5rem;
    height: 2.75rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 1.7rem;
    overflow: hidden;
    border: 2px solid #3f4b5c;
    border-radius: 0.55rem;
    background: rgba(0, 0, 0, 0.6);
}

#terminalCheckoutPanel #inputParcelasCredito {
    width: 100% !important;
    min-width: 0 !important;
    height: 100% !important;
    padding: 0 0.55rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;
    background: transparent !important;
    appearance: textfield;
    -moz-appearance: textfield;
}

#terminalCheckoutPanel #inputParcelasCredito::-webkit-inner-spin-button,
#terminalCheckoutPanel #inputParcelasCredito::-webkit-outer-spin-button {
    margin: 0;
    appearance: none;
    -webkit-appearance: none;
}

.pdv-installment-stepper {
    display: grid;
    grid-template-rows: repeat(2, minmax(0, 1fr));
    border-left: 1px solid #3f4b5c;
}

.pdv-installment-stepper button {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: #242b35;
    color: #fbbf24;
    font-size: 0.8rem;
    font-weight: 900;
    line-height: 1;
}

.pdv-installment-stepper button + button { border-top: 1px solid #3f4b5c; }
.pdv-installment-stepper button:hover { background: #343d49; color: #fff; transform: none; }
.pdv-installment-summary {
    width: auto;
    min-width: 0;
    max-width: 7.5rem;
    flex: 0 1 auto;
    margin-left: 0.15rem;
    overflow: hidden;
    color: #fbbf24 !important;
    font-size: 0.68rem;
    text-align: left;
    text-overflow: ellipsis;
}

/* Valor recebido usa a mesma moldura única do Troco, sem borda/setas nativas internas. */
#terminalCheckoutPanel #inputValorRecebido {
    appearance: textfield;
    -moz-appearance: textfield;
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
    outline: 0 !important;
    font-size: 1.55rem !important;
    font-weight: 900 !important;
}

/* Valor recebido e troco compartilham o mesmo preenchimento azul. */
#pdvViewport #terminalCheckoutPanel .pdv-valor-recebido .pdv-field-wrap,
#pdvViewport #terminalCheckoutPanel .pdv-troco-bar .pdv-field-wrap,
#pdvViewport #terminalCheckoutPanel .pdv-entry-field,
#pdvViewport #terminalCheckoutPanel .pdv-installment-field {
    background:var(--pdv-header-blue, #0d4660) !important;
    color:#f0f9ff !important;
}
#pdvViewport #terminalCheckoutPanel #inputValorRecebido,
#pdvViewport #terminalCheckoutPanel #txtTrocoDisplay,
#pdvViewport #terminalCheckoutPanel #inputValorEntrada,
#pdvViewport #terminalCheckoutPanel #inputParcelasCredito {
    background:transparent !important;
    color:#f0f9ff !important;
}
#pdvViewport #terminalCheckoutPanel .pdv-valor-recebido .pdv-field-wrap > span:first-child,
#pdvViewport #terminalCheckoutPanel .pdv-troco-bar .pdv-field-wrap > span:first-child {
    color:#bae6fd !important;
}

/* Valores do fechamento em amarelo, em todos os temas e modos do PDV. */
#pdvViewport #terminalCheckoutPanel #terminalSubtotalDisplay,
#pdvViewport #terminalCheckoutPanel #inputValorRecebido,
#pdvViewport #terminalCheckoutPanel #txtTrocoDisplay,
#pdvViewport #terminalCheckoutPanel #inputValorEntrada,
#pdvViewport #terminalCheckoutPanel #inputParcelasCredito,
#pdvViewport #terminalCheckoutPanel #txtResumoParcelas,
#pdvViewport #terminalCheckoutPanel .pdv-valor-recebido .pdv-field-wrap > span:first-child,
#pdvViewport #terminalCheckoutPanel .pdv-troco-bar .pdv-field-wrap > span:first-child,
#pdvViewport #terminalCheckoutPanel .pdv-entry-field > span:first-child {
    color:#facc15 !important;
    caret-color:#facc15;
}

/* Cliente da venda a prazo acompanha o azul dos campos de pagamento. */
#pdvViewport #terminalCheckoutPanel #pdvClienteBusca {
    background:var(--pdv-navy, #082534) !important;
    border-color:var(--pdv-control-border, #328092) !important;
    color:#f0f9ff !important;
}
#pdvViewport #terminalCheckoutPanel #pdvClienteBusca::placeholder {
    color:#bae6fd !important;
}

#terminalCheckoutPanel #inputValorRecebido::-webkit-inner-spin-button,
#terminalCheckoutPanel #inputValorRecebido::-webkit-outer-spin-button {
    margin: 0;
    appearance: none;
    -webkit-appearance: none;
}

@media (max-width: 760px) {
    .pdv-cash-summary-row { grid-template-columns: 1fr; }
    .pdv-cash-summary-row.installments-active { grid-template-columns: 1fr; }
    .pdv-other-payments { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pdv-cash-summary-row .pdv-field-wrap {
        width: min(48%, 11rem);
        flex-basis: min(48%, 11rem);
    }
}

.pdv-troco-block {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    flex: 0 0 auto;
}

.pdv-valor-recebido,
.pdv-troco-bar {
    min-height: 3.35rem;
    padding-top: 0.65rem;
    padding-bottom: 0.65rem;
}

.pdv-field-label {
    font-size: 0.8rem;
}

.pdv-money-input {
    font-size: 1.55rem;
}

.pdv-troco-value {
    font-size: 1.55rem;
    line-height: 1.2;
    display: inline-block;
}

.pdv-extras-block {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 0.45rem;
    flex: 0 0 auto;
    margin: 0 !important;
}

.pdv-extra-input {
    padding: 0.45rem 0.65rem;
    font-size: 0.8125rem;
}

.pdv-contingencia-row {
    padding: 0.4rem 0.65rem;
}

.pdv-checkout-footer {
    flex: 0 0 auto;
    flex-shrink: 0;
    margin-top: 0;
    margin-bottom: 0;
    z-index: 5;
    padding: 0.3rem 0.55rem 0.4rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.pdv-field-wrap {
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
}

.pdv-obs-wrap {
    flex: 0 0 auto;
    margin-bottom: 0;
}

.pdv-observacoes-field {
    font-family: inherit;
    height: 2.25rem;
    padding: 0.35rem 0.65rem;
}

.pdv-checkout-actions {
    flex: 0 0 auto;
}

.pdv-checkout-actions .pdv-checkout-action {
    min-height: 2.55rem;
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
    font-size: 0.65rem;
    line-height: 1.15;
}

/* Botões Cancelar/Finalizar em linha */
.pdv-checkout-action.pdv-action-btn {
    flex-direction: row;
    gap: 0.35rem;
}

.pdv-checkout-action.pdv-action-btn span:last-child {
    color: inherit;
    margin-top: 0;
}

.pdv-checkout-action.pdv-action-btn-primary,
.pdv-monitor-container .pdv-checkout-action.pdv-action-btn-primary {
    background: linear-gradient(to right, #f59e0b, #facc15) !important;
    color: #000 !important;
    border-color: #eab308 !important;
    box-shadow: 0 8px 16px rgba(245, 158, 11, 0.25);
}

.pdv-checkout-action.pdv-action-btn-primary:hover,
.pdv-monitor-container .pdv-checkout-action.pdv-action-btn-primary:hover {
    background: linear-gradient(to right, #fbbf24, #fde047) !important;
    color: #000 !important;
    border-color: #facc15 !important;
    filter: brightness(1.05);
}

.pdv-checkout-action.pdv-action-btn-primary span:last-child {
    color: #000;
}

/* Botões de pagamento */
.checkout-pay-btn {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    min-height: 3.25rem;
    height: auto;
    padding: 0.78rem 0.25rem 0.45rem;
    border-radius: 0.625rem;
    background: #14181f;
    border: 2px solid #1f2633;
    color: #94a3b8;
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    transition: all 0.15s ease;
    cursor: pointer;
}

.payment-shortcut {
    position: absolute;
    top: 0.2rem;
    right: 0.28rem;
    border: 0;
    background: transparent;
    color: #fbbf24;
    font-family: inherit;
    font-size: 0.5rem;
    font-weight: 900;
    line-height: 1;
}

.checkout-pay-btn i {
    font-size: 1.15rem;
}

.checkout-pay-btn:hover {
    border-color: #eab308;
    color: #f8fafc;
}

.checkout-pay-btn.active {
    background: rgba(234, 179, 8, 0.12);
    border-color: #eab308;
    color: #facc15;
}

/* Papel de cupom: identidade constante em todos os temas do PDV. */
#pdvViewport .pdv-receipt-panel {
    background:#fefce8 !important;
    color:#1e293b !important;
    border:2px solid var(--pdv-accent-strong, #159a8c) !important;
    border-radius:.75rem !important;
}
#pdvViewport .pdv-receipt-panel .pdv-company-header {
    display:block;
    text-align:center !important;
    border:0 !important;
    border-bottom:1px solid #64748b !important;
}
#pdvViewport .pdv-receipt-panel .pdv-company-header > div {
    text-align:center !important;
    color:#1e293b !important;
    font-size:.75rem !important;
}
#pdvViewport .pdv-receipt-panel .pdv-company-header > div:first-child { font-size:1.125rem !important; }
#pdvViewport .pdv-receipt-panel .pdv-cart-surface {
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
}
#pdvViewport .pdv-receipt-panel .pdv-cart-grid {
    grid-template-columns:3.25rem minmax(8rem,1fr) 3.75rem 4.25rem 3.5rem 2.25rem 5.25rem 1.5rem;
    gap:.3rem;
    align-items:center;
    color:#1e293b !important;
    border-color:#94a3b8 !important;
    font-variant-numeric:tabular-nums;
}
#pdvViewport .pdv-cart-surface > .pdv-cart-grid,
#pdvViewport .pdv-cart-surface > #terminalReceiptTapeList {
    min-width:35rem;
}
#pdvViewport .pdv-cart-surface > .pdv-cart-grid { padding-left:5px; padding-right:5px; }
#pdvViewport .pdv-receipt-panel #terminalReceiptTapeList .pdv-cart-input,
#pdvViewport .pdv-receipt-panel #terminalReceiptTapeList .pdv-cart-name {
    height:1.85rem;
    min-width:0;
    font-size:.75rem;
    line-height:1.2;
    border:1px solid #94a3b8;
    border-radius:.375rem;
    padding:.25rem .3rem;
}
#pdvViewport .pdv-receipt-panel #terminalReceiptTapeList .pdv-cart-total { font-size:.75rem; }
#pdvViewport .pdv-receipt-panel #terminalReceiptTapeList .pdv-cart-quantity input { padding-right:1.2rem; }
#pdvViewport .pdv-cart-quantity input { appearance:textfield; }
#pdvViewport .pdv-cart-quantity input::-webkit-inner-spin-button,
#pdvViewport .pdv-cart-quantity input::-webkit-outer-spin-button { appearance:none; margin:0; }
#pdvViewport .pdv-receipt-panel #terminalReceiptTapeList,
#pdvViewport .pdv-receipt-panel #terminalReceiptTapeList :is(div,span,input,button),
#pdvViewport .pdv-receipt-panel .pdv-receipt-btn {
    background:transparent !important;
    color:#1e293b !important;
    box-shadow:none !important;
    border-color:#94a3b8 !important;
    font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace !important;
    font-variant-numeric:tabular-nums;
}
#pdvViewport .pdv-receipt-panel #terminalReceiptTapeList input:focus {
    outline:1px solid #475569 !important;
    outline-offset:1px;
}
#pdvViewport .pdv-receipt-panel .pdv-receipt-btn:hover,
#pdvViewport .pdv-receipt-panel #terminalReceiptTapeList button:hover { background:#fef3c7 !important; }

#pdvViewport .pdv-receipt-panel #terminalReceiptTapeList button.pdv-qty-btn {
    height:1.85rem;
    background:#d1fae5 !important;
    border-color:#6ee7b7 !important;
    color:#065f46 !important;
}
#pdvViewport .pdv-receipt-panel #terminalReceiptTapeList button.pdv-qty-btn:hover {
    background:#a7f3d0 !important;
}
#pdvViewport .pdv-receipt-panel #terminalReceiptTapeList button.pdv-cart-remove {
    background:#dc2626 !important;
    border-color:#b91c1c !important;
    color:#fff !important;
}
#pdvViewport .pdv-receipt-panel #terminalReceiptTapeList button.pdv-cart-remove:hover {
    background:#b91c1c !important;
}
#pdvViewport .pdv-receipt-panel #terminalReceiptTapeList .pdv-cart-quantity button {
    position:absolute;
    right:1px;
    width:1.1rem;
    height:calc(50% - 1px);
    padding:0;
    border:0;
    font-size:.8rem;
    line-height:1;
}
#pdvViewport .pdv-receipt-panel #terminalReceiptTapeList .pdv-cart-quantity .pdv-qty-plus { top:1px; border-radius:0 .3rem 0 0; }
#pdvViewport .pdv-receipt-panel #terminalReceiptTapeList .pdv-cart-quantity .pdv-qty-minus { bottom:1px; border-radius:0 0 .3rem 0; }

/* Linha de itens do cupom */
.pdv-cart-grid {
    display: grid;
    grid-template-columns: 1.4rem minmax(0, 1fr) 6.75rem 7.5rem 4.5rem 6.75rem;
    gap: 0.35rem;
    align-items: center;
}

.pdv-cart-name {
    font-size: 0.95rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    border-bottom: 1px solid transparent;
    transition: border-color 0.15s ease;
}

.pdv-cart-input {
    background: #14181f;
    border: 1px solid #3f4b5c;
    border-radius: 0.375rem;
    padding: 0.3rem 0.35rem;
    font-size: 0.8125rem;
    font-weight: 800;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    color: #fff;
    transition: border-color 0.15s ease;
}

.pdv-cart-input:focus {
    outline: none;
    border-color: #eab308;
}

.pdv-cart-input:hover {
    border-color: #eab308;
}

.pdv-cart-name:hover,
.pdv-cart-name:focus {
    border-bottom-color: #eab308;
    outline: none;
}

.pdv-cart-total {
    font-size: 0.875rem;
}

.pdv-qty-btn {
    width: 1.35rem;
    height: 1.7rem;
    border-radius: 0.3rem;
    background: #2a3340;
    border: 2px solid #4b5563;
    color: #facc15;
    font-size: 0.9rem;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    flex-shrink: 0;
    transition: all 0.15s ease;
}

.pdv-qty-btn:hover {
    background: rgba(234, 179, 8, 0.12);
    color: #facc15;
    border-color: #eab308;
}

/* PDV: borda amarela no hover (igual botão PIX) */
.pdv-monitor-container .pdv-interactive,
.pdv-monitor-container .pdv-field-wrap,
.pdv-monitor-container .pdv-action-btn {
    border: 2px solid #3f4b5c;
    transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}

.pdv-monitor-container .pdv-interactive:hover,
.pdv-monitor-container .pdv-field-wrap:hover,
.pdv-monitor-container .pdv-field-wrap:focus-within,
.pdv-monitor-container .pdv-action-btn:hover,
.pdv-monitor-container .pdv-receipt-btn:hover,
.pdv-monitor-container .pdv-observacoes-field:hover,
.pdv-monitor-container .pdv-observacoes-field:focus,
#terminalCheckoutPanel input:not([type="checkbox"]):not([type="hidden"]):hover,
#terminalCheckoutPanel input:not([type="checkbox"]):not([type="hidden"]):focus,
#terminalCheckoutPanel textarea:hover,
#terminalCheckoutPanel textarea:focus,
#modalConsultaProdutos input:hover,
#modalConsultaProdutos input:focus {
    border-color: #eab308 !important;
    outline: none;
}

.pdv-monitor-container .pdv-receipt-btn {
    border: 2px solid #1f2937;
}

.pdv-monitor-container .pdv-receipt-btn:hover {
    border-color: #eab308;
    color: #facc15;
}

.pdv-monitor-container .pdv-action-btn {
    background: #1e2229;
    color: #d4d4d8;
    border-radius: 0.75rem;
}

.pdv-monitor-container .pdv-action-btn:hover {
    color: #facc15;
    background: rgba(234, 179, 8, 0.08);
}

.pdv-monitor-container .pdv-action-btn-primary {
    border-color: #eab308;
}

.pdv-monitor-container .pdv-action-btn-primary:hover {
    border-color: #facc15;
    filter: brightness(1.05);
}

.quick-cash-btn {
    border: 2px solid #334155;
}

.quick-cash-btn:hover {
    background-color: rgba(234, 179, 8, 0.12) !important;
    color: #facc15 !important;
    border-color: #eab308 !important;
}

/* Temas inspirados nos terminais PDV de referência */
html[data-theme^="pdv-"] body { transition:background-color .2s ease,color .2s ease; }
html[data-theme^="pdv-"] .theme-menu button:hover,
html[data-theme^="pdv-"] .theme-menu button.active { background:color-mix(in srgb,var(--pdv-accent) 16%,transparent);color:var(--pdv-accent); }

html[data-theme="pdv-prussian"] { --pdv-accent:#d8edf5;--pdv-accent-strong:#12668a;--pdv-navy:#003153;--pdv-panel:#e7f3f7; }
html[data-theme="pdv-prussian"] body { background:#b8d9e6 !important;color:#00243d; }
html[data-theme="pdv-prussian"] aside,
html[data-theme="pdv-prussian"] .app-topbar { background:#003153 !important;border-color:#12668a !important;color:#fff !important; }
html[data-theme="pdv-prussian"] .dashboard-card { background:#d8edf5 !important;border-color:#6ea6bb !important; }

/* A moldura e os painéis abaixo mudam apenas quando existe uma tela de PDV. */
html[data-theme^="pdv-"] body:has(.pdv-viewport),
html[data-theme^="pdv-"] body:has(.pdv-viewport) main,
html[data-theme^="pdv-"] .pdv-viewport { background:var(--pdv-shell,#555b63) !important; }
html[data-theme^="pdv-"] .pdv-monitor-container {
    background:var(--pdv-frame,#596069) !important;
    border-color:var(--pdv-frame-edge,#818891) !important;
    box-shadow:0 18px 45px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.35) !important;
}
html[data-theme^="pdv-"] .pdv-monitor-container > div:first-child {
    background:var(--pdv-navy) !important;
    border-color:var(--pdv-accent-strong) !important;
}
html[data-theme^="pdv-"] .pdv-monitor-container > .grid { background:var(--pdv-workspace,#e6e9ee) !important; }
html[data-theme^="pdv-"] #terminalActiveItemBanner { color:var(--pdv-banner-text,#fff) !important;text-shadow:0 1px 2px rgba(0,0,0,.35); }
html[data-theme^="pdv-"] #terminalCheckoutPanel { background:var(--pdv-panel) !important;border-color:var(--pdv-accent-strong) !important; }
html[data-theme^="pdv-"] .pdv-checkout-head,
html[data-theme^="pdv-"] .pdv-total-bar { background:var(--pdv-navy) !important;border-color:var(--pdv-accent-strong) !important; }
html[data-theme^="pdv-"] .pdv-checkout-title,
html[data-theme^="pdv-"] .pdv-total-value { color:var(--pdv-accent) !important; }
html[data-theme^="pdv-"] .checkout-pay-btn,
html[data-theme^="pdv-"] .quick-cash-btn,
html[data-theme^="pdv-"] .pdv-qty-btn { background:var(--pdv-control,#eef1f5) !important;border-color:var(--pdv-control-border,#9199a5) !important;color:var(--pdv-control-text,#1d2735) !important; }
html[data-theme^="pdv-"] .checkout-pay-btn:hover,
html[data-theme^="pdv-"] .checkout-pay-btn.active,
html[data-theme^="pdv-"] .quick-cash-btn:hover,
html[data-theme^="pdv-"] .pdv-qty-btn:hover { background:var(--pdv-navy) !important;border-color:var(--pdv-accent) !important;color:var(--pdv-accent) !important; }
html[data-theme^="pdv-"] .pdv-checkout-body,
html[data-theme^="pdv-"] .pdv-checkout-footer { color:var(--pdv-control-text,#1d2735); }
html[data-theme^="pdv-"] .pdv-valor-recebido,
html[data-theme^="pdv-"] .pdv-troco-bar,
html[data-theme^="pdv-"] .pdv-entrada-block,
html[data-theme^="pdv-"] .pdv-parcelas-block,
html[data-theme^="pdv-"] .pdv-extras-block { background:var(--pdv-subpanel,#e4e8ee) !important;border-color:var(--pdv-control-border,#9199a5) !important; }
html[data-theme^="pdv-"] .pdv-field-label,
html[data-theme^="pdv-"] .pdv-extras-block label { color:var(--pdv-label,#354154) !important; }
html[data-theme^="pdv-"] .pdv-field-wrap,
html[data-theme^="pdv-"] .pdv-entry-field,
html[data-theme^="pdv-"] .pdv-installment-field,
html[data-theme^="pdv-"] .pdv-interactive,
html[data-theme^="pdv-"] .pdv-observacoes-field { background:#fff !important;color:#111827 !important;border-color:var(--pdv-control-border,#9199a5) !important; }
html[data-theme^="pdv-"] .pdv-money-input,
html[data-theme^="pdv-"] .pdv-extra-input { color:#111827 !important; }
html[data-theme^="pdv-"] .pdv-search-bar { background:#fff !important;color:#111827 !important;border-color:var(--pdv-accent-strong) !important; }
html[data-theme^="pdv-"] .pdv-action-btn-primary,
html[data-theme^="pdv-"] .pdv-monitor-container .pdv-action-btn-primary { background:linear-gradient(180deg,var(--pdv-accent),var(--pdv-accent-strong)) !important;border-color:var(--pdv-accent-strong) !important;color:var(--pdv-primary-text,#fff) !important; }
html[data-theme^="pdv-"] .pdv-action-btn-primary span:last-child { color:inherit !important; }
html[data-theme^="pdv-"] .pdv-shortcuts-bar { background:var(--pdv-navy) !important;border-color:var(--pdv-accent-strong) !important;color:#fff !important; }
html[data-theme^="pdv-"] .shortcut-key { background:rgba(0,0,0,.25);border-color:rgba(255,255,255,.35);color:var(--pdv-accent); }

html[data-theme="pdv-prussian"] { --pdv-shell:#8dbdce;--pdv-frame:#3e7891;--pdv-frame-edge:#00243d;--pdv-workspace:#d8edf5;--pdv-control:#edf7fa;--pdv-control-border:#4b8ba5;--pdv-control-text:#00243d;--pdv-subpanel:#c9e3ed;--pdv-label:#003153;--pdv-banner-text:#fff;--pdv-primary-text:#fff; }
html[data-theme="pdv-prussian"] .pdv-monitor-container > div:first-child,
html[data-theme="pdv-prussian"] .pdv-checkout-head,
html[data-theme="pdv-prussian"] .pdv-total-bar,
html[data-theme="pdv-prussian"] .pdv-shortcuts-bar { background:linear-gradient(180deg,#0a4a6e,#003153) !important; }
html[data-theme="pdv-prussian"] .pdv-checkout-title,
html[data-theme="pdv-prussian"] .pdv-total-value { color:#fff !important; }
html[data-theme="pdv-prussian"] .pdv-receipt-btn,
html[data-theme="pdv-prussian"] .pdv-action-btn { background:linear-gradient(180deg,#12668a,#003153) !important;border-color:#00243d !important;color:#fff !important; }

/* Prussian: menus, submenus e áreas internas usam somente variações de azul. */
html[data-theme="pdv-prussian"] .theme-menu { background:#d8edf5 !important;border-color:#12668a !important;color:#00243d !important; }
html[data-theme="pdv-prussian"] .theme-menu button { color:#003153; }
html[data-theme="pdv-prussian"] .theme-menu button:hover,
html[data-theme="pdv-prussian"] .theme-menu button.active { background:#8dbdce;color:#00243d; }
html[data-theme="pdv-prussian"] .theme-menu-separator { background:#4b8ba5; }
html[data-theme="pdv-prussian"] .bg-\[\#0e1217\],
html[data-theme="pdv-prussian"] .bg-\[\#14181f\],
html[data-theme="pdv-prussian"] .bg-\[\#181d25\],
html[data-theme="pdv-prussian"] .bg-\[\#1c2229\],
html[data-theme="pdv-prussian"] .bg-\[\#1e2229\],
html[data-theme="pdv-prussian"] .bg-\[\#21252e\],
html[data-theme="pdv-prussian"] .bg-\[\#272b33\] { background-color:#c9e3ed !important;color:#00243d !important; }
html[data-theme="pdv-prussian"] .nav-item { color:#d8edf5; }
html[data-theme="pdv-prussian"] .nav-item:hover,
html[data-theme="pdv-prussian"] .nav-item.active,
html[data-theme="pdv-prussian"] .nav-sub-item:hover,
html[data-theme="pdv-prussian"] .nav-sub-item.active { background:#12668a !important;color:#fff !important;border-color:#8dbdce !important; }
html[data-theme="pdv-prussian"] .nav-sub { border-color:#4b8ba5; }
html[data-theme="pdv-prussian"] #terminalSearchResultsPanel,
html[data-theme="pdv-prussian"] #pdvClienteResults,
html[data-theme="pdv-prussian"] #destClienteResults,
html[data-theme="pdv-prussian"] .municipio-combo-menu { background:#d8edf5 !important;border-color:#12668a !important;color:#00243d !important; }
html[data-theme="pdv-prussian"] #terminalReceiptTapeList { background:#0a4a6e;border-radius:.5rem; }
html[data-theme="pdv-prussian"] .pdv-monitor-container .bg-black,
html[data-theme="pdv-prussian"] .pdv-monitor-container .bg-black\/60 { background-color:#b8d9e6 !important;color:#00243d !important; }
html[data-theme="pdv-prussian"] .pdv-theme-quick { color:#003153; }
html[data-theme="pdv-prussian"] .pdv-theme-quick select { background:#d8edf5;border-color:#003153;color:#003153; }

/* Prussian completo: navegação profunda e conteúdo claro, limpo e nítido. */
html[data-theme="pdv-prussian"] body:not(:has(.pdv-viewport)),
html[data-theme="pdv-prussian"] body:not(:has(.pdv-viewport)) main { background:#eef6f9 !important;color:#163447; }
html[data-theme="pdv-prussian"] aside {
    background:linear-gradient(180deg,#003153 0%,#002b49 58%,#002238 100%) !important;
    border-color:#12668a !important;
    color:#d8edf5 !important;
    box-shadow:5px 0 20px rgba(0,36,61,.16);
}
html[data-theme="pdv-prussian"] aside > div:first-child { background:rgba(255,255,255,.035);border-color:#12668a !important; }
html[data-theme="pdv-prussian"] aside > div:first-child > div:first-child {
    background:#d8edf5 !important;color:#003153 !important;box-shadow:0 5px 14px rgba(0,0,0,.22) !important;
}
html[data-theme="pdv-prussian"] aside .text-white { color:#fff !important; }
html[data-theme="pdv-prussian"] aside .text-zinc-400 { color:#a9ccda !important; }
html[data-theme="pdv-prussian"] aside .text-zinc-500 { color:#82afc1 !important; }
html[data-theme="pdv-prussian"] aside .nav-item {
    color:#d8edf5 !important;border-left:3px solid transparent;border-radius:.55rem;
}
html[data-theme="pdv-prussian"] aside .nav-item:hover { background:#0a4a6e !important;color:#fff !important; }
html[data-theme="pdv-prussian"] aside .nav-item.active {
    background:#d8edf5 !important;color:#003153 !important;border-left-color:#38a3c8 !important;box-shadow:0 3px 10px rgba(0,0,0,.13);
}
html[data-theme="pdv-prussian"] aside .nav-group { margin:.12rem 0; }
html[data-theme="pdv-prussian"] aside .nav-sub {
    margin:.2rem 0 .4rem .65rem;padding:.3rem .25rem .3rem .6rem;
    background:#002b49;border:1px solid #0a4a6e;border-left:3px solid #4b8ba5;border-radius:.5rem;gap:.15rem;
}
html[data-theme="pdv-prussian"] aside .nav-sub-item { color:#b8d9e6 !important;padding:.45rem .65rem;border-left:0 !important; }
html[data-theme="pdv-prussian"] aside .nav-sub-item:hover { background:#0a4a6e !important;color:#fff !important; }
html[data-theme="pdv-prussian"] aside .nav-sub-item.active { background:#8dbdce !important;color:#00243d !important;box-shadow:none; }
html[data-theme="pdv-prussian"] aside > div:last-of-type { background:#00243d;border-color:#12668a !important; }
html[data-theme="pdv-prussian"] aside > div:last-of-type button { color:#b8d9e6 !important; }
html[data-theme="pdv-prussian"] aside > div:last-of-type button:hover { background:#0a4a6e !important;color:#fff !important; }

html[data-theme="pdv-prussian"] .app-topbar {
    background:#f7fbfc !important;border-color:#b2d1dc !important;color:#163447 !important;box-shadow:0 2px 12px rgba(0,49,83,.08);
}
html[data-theme="pdv-prussian"] .app-topbar .text-white { color:#003153 !important; }
html[data-theme="pdv-prussian"] .app-topbar .text-zinc-300,
html[data-theme="pdv-prussian"] .app-topbar .text-zinc-400 { color:#476779 !important; }
html[data-theme="pdv-prussian"] .app-topbar [class*="bg-zinc-8"] { background:#e4f0f4 !important;border-color:#9fc2d0 !important;color:#003153 !important; }
html[data-theme="pdv-prussian"] .app-topbar [class*="bg-zinc-8"]:hover { background:#c9e3ed !important;color:#00243d !important; }

html[data-theme="pdv-prussian"] main .dashboard-card,
html[data-theme="pdv-prussian"] main > div[class*="bg-\[\#14181f\]"] {
    background:#fff !important;border-color:#b8d3dd !important;color:#163447 !important;box-shadow:0 5px 18px rgba(0,49,83,.07);
}
html[data-theme="pdv-prussian"] main .bg-\[\#0e1217\],
html[data-theme="pdv-prussian"] main .bg-\[\#14181f\],
html[data-theme="pdv-prussian"] main .bg-\[\#181d25\],
html[data-theme="pdv-prussian"] main .bg-\[\#1d170e\],
html[data-theme="pdv-prussian"] main .bg-\[\#1a1414\] { background-color:#e7f2f6 !important;color:#163447 !important; }
html[data-theme="pdv-prussian"] main [class*="bg-zinc-9"],
html[data-theme="pdv-prussian"] main [class*="bg-zinc-8"],
html[data-theme="pdv-prussian"] main [class*="bg-zinc-7"] { background-color:#0a4a6e !important;color:#fff !important; }
html[data-theme="pdv-prussian"] main [class*="bg-zinc-9"]:hover,
html[data-theme="pdv-prussian"] main [class*="bg-zinc-8"]:hover,
html[data-theme="pdv-prussian"] main [class*="bg-zinc-7"]:hover { background-color:#12668a !important;color:#fff !important; }
html[data-theme="pdv-prussian"] main .border-zinc-600,
html[data-theme="pdv-prussian"] main .border-zinc-700,
html[data-theme="pdv-prussian"] main .border-zinc-800 { border-color:#a8c8d4 !important; }
html[data-theme="pdv-prussian"] main .text-white { color:#002f4f !important; }
html[data-theme="pdv-prussian"] main .text-zinc-200,
html[data-theme="pdv-prussian"] main .text-zinc-300 { color:#254b60 !important; }
html[data-theme="pdv-prussian"] main .text-zinc-400 { color:#496b7d !important; }
html[data-theme="pdv-prussian"] main .text-zinc-500,
html[data-theme="pdv-prussian"] main .text-zinc-600 { color:#668391 !important; }
html[data-theme="pdv-prussian"] main input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
html[data-theme="pdv-prussian"] main select,
html[data-theme="pdv-prussian"] main textarea {
    background:#fff !important;color:#102f41 !important;border-color:#8eb5c4 !important;box-shadow:inset 0 1px 2px rgba(0,49,83,.05);
}
html[data-theme="pdv-prussian"] main input:focus,
html[data-theme="pdv-prussian"] main select:focus,
html[data-theme="pdv-prussian"] main textarea:focus { border-color:#12668a !important;box-shadow:0 0 0 3px rgba(18,102,138,.14);outline:none; }
html[data-theme="pdv-prussian"] main table { color:#163447; }
html[data-theme="pdv-prussian"] main thead { background:#d8eaf1 !important;color:#003153 !important; }
html[data-theme="pdv-prussian"] main tbody tr { border-color:#c9dde5 !important; }
html[data-theme="pdv-prussian"] main tbody tr:hover { background:#e6f2f6 !important; }

/* Modais permanecem claramente separados, sem caixas pretas. */
html[data-theme="pdv-prussian"] [id*="modal"] > div:not([class*="absolute"]),
html[data-theme="pdv-prussian"] [id*="Modal"] > div:not([class*="absolute"]) { background:#f7fbfc !important;color:#163447;border-color:#4b8ba5 !important; }
html[data-theme="pdv-prussian"] [id*="modal"] .bg-\[\#0e1217\],
html[data-theme="pdv-prussian"] [id*="modal"] .bg-\[\#14181f\],
html[data-theme="pdv-prussian"] [id*="Modal"] .bg-\[\#0e1217\],
html[data-theme="pdv-prussian"] [id*="Modal"] .bg-\[\#14181f\] { background:#e3f0f5 !important;color:#163447 !important; }
html[data-theme="pdv-prussian"] [id*="modal"] input,
html[data-theme="pdv-prussian"] [id*="modal"] select,
html[data-theme="pdv-prussian"] [id*="modal"] textarea,
html[data-theme="pdv-prussian"] [id*="Modal"] input,
html[data-theme="pdv-prussian"] [id*="Modal"] select,
html[data-theme="pdv-prussian"] [id*="Modal"] textarea { background:#fff !important;color:#102f41 !important;border-color:#8eb5c4 !important; }
html[data-theme="pdv-prussian"] .custom-scrollbar::-webkit-scrollbar-thumb { background:#4b8ba5; }
html[data-theme="pdv-prussian"] .custom-scrollbar::-webkit-scrollbar-thumb:hover { background:#12668a; }

/* Contraste preservado nas superfícies azuis do terminal PDV. */
html[data-theme="pdv-prussian"] .pdv-monitor-container .bg-\[\#1c2229\] { background:#0a4a6e !important;color:#fff !important; }
html[data-theme="pdv-prussian"] .pdv-monitor-container .bg-\[\#2a3038\] { background:#12668a !important;border-color:#8dbdce !important; }
html[data-theme="pdv-prussian"] .pdv-monitor-container .bg-\[\#dbdbdb\] { background:#d8edf5 !important;color:#003153 !important; }
html[data-theme="pdv-prussian"] #terminalReceiptTapeList,
html[data-theme="pdv-prussian"] #terminalReceiptTapeList .text-white,
html[data-theme="pdv-prussian"] #terminalReceiptTapeList .pdv-cart-name { color:#fff !important; }
html[data-theme="pdv-prussian"] #terminalReceiptTapeList .pdv-cart-total { color:#d8edf5 !important; }
html[data-theme="pdv-prussian"] .pdv-monitor-container .pdv-checkout-head .text-white,
html[data-theme="pdv-prussian"] .pdv-shortcuts-bar .text-white { color:#fff !important; }

/* Campos dos temas disponíveis compartilham a borda cinza sutil do Noturno. */
html:is([data-theme="dark"],[data-theme="pdv-prussian"])
    input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),
html:is([data-theme="dark"],[data-theme="pdv-prussian"]) select,
html:is([data-theme="dark"],[data-theme="pdv-prussian"]) textarea {
    border-style: solid !important;
    border-width: 1px !important;
    border-color:#3f3f46 !important;
}

/* Todos os campos editáveis recebem a mesma moldura, mesmo sem classe de borda. */
body input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),
body select,
body textarea {
    border-style: solid !important;
    border-width: 1px !important;
    border-color: #52525b;
}
html:is([data-theme="dark"],[data-theme="pdv-prussian"])
    input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):focus,
html:is([data-theme="dark"],[data-theme="pdv-prussian"]) select:focus,
html:is([data-theme="dark"],[data-theme="pdv-prussian"]) textarea:focus {
    border-color:#52525b !important;
}
/* Padrão visual do sistema: todas as abas exibem textos em caixa alta.
   É somente apresentação; valores enviados e persistidos mantêm a grafia original. */
body,
body button,
body input,
body select,
body option,
body textarea,
body label,
body table,
body summary,
body [role="tab"],
body [role="menuitem"] {
    text-transform: uppercase;
}
body input::placeholder,
body textarea::placeholder {
    text-transform: uppercase;
}

/* Tipografia-base do sistema: leitura uniforme em telas, tabelas e formulários. */
body { font-size: 0.875rem; }
body input:not([type="checkbox"]):not([type="radio"]),
body select,
body textarea,
body button { font-size: 0.75rem; }
body label,
body table { font-size: 0.75rem; }
body small { font-size: 0.6875rem; }

/* Realce consistente para todos os botões, inclusive os criados dinamicamente. */
/* Moldura global das subtelas e janelas modais. */
[id*="modal" i].fixed > div:not([class*="absolute"]),
[role="dialog"].fixed > div:not([class*="absolute"]) {
    border-style: solid !important;
    border-width: 2px !important;
    border-color: #71717a !important;
    box-shadow: 0 24px 65px rgba(0, 0, 0, .58), 0 0 0 1px rgba(161, 161, 170, .16) !important;
}

html[data-theme="pdv-prussian"] [id*="modal" i].fixed > div:not([class*="absolute"]),
html[data-theme="pdv-prussian"] [role="dialog"].fixed > div:not([class*="absolute"]) {
    border-color: #64748b !important;
}

button:not(:disabled) {
    cursor: pointer;
    transition-property: color, background-color, border-color, box-shadow, filter, transform;
    transition-duration: 150ms;
    transition-timing-function: ease-in-out;
}
button:not(:disabled):hover {
    filter: brightness(1.16);
    box-shadow: 0 5px 14px rgba(0, 0, 0, .24);
    transform: translateY(-1px);
}
button:disabled {
    cursor: not-allowed;
}
@media (prefers-reduced-motion: reduce) {
    button:not(:disabled) {
        transition-duration: 0ms;
    }
    button:not(:disabled):hover {
        transform: none;
    }
}

/* ----------------------------------------------------------------
   DAV — catálogo de produtos em cristal marfim.
   A superfície quente separa produto de comando sem disputar atenção
   com os botões e melhora a leitura rápida de nome e preço.
   ---------------------------------------------------------------- */
html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport.pdv-commercial-mode .commercial-product-tile {
    min-height: 7.4rem;
    padding: .62rem;
    overflow: hidden;
    background:
        linear-gradient(155deg, rgba(255, 255, 255, .82) 0%, rgba(255, 255, 255, .22) 31%, transparent 31.5%),
        linear-gradient(145deg, #fffef7 0%, #fff8dc 58%, #f9efc8 100%) !important;
    border: 1px solid #c9c995 !important;
    border-radius: .72rem;
    color: #173243 !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .98),
        inset 0 -1px 0 rgba(180, 145, 60, .10),
        0 3px 8px rgba(8, 47, 58, .08) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport.pdv-commercial-mode .commercial-product-tile:hover {
    background:
        linear-gradient(155deg, rgba(255, 255, 255, .88) 0%, rgba(255, 255, 255, .20) 31%, transparent 31.5%),
        linear-gradient(145deg, #fffdf1 0%, #fff2bd 62%, #f8e6a4 100%) !important;
    border-color: #67b9c5 !important;
    color: #123b46 !important;
    filter: none;
    transform: translateY(-1px);
    box-shadow:
        inset 0 1px 0 #fff,
        0 0 0 1px rgba(103, 232, 249, .14),
        0 0 14px rgba(34, 211, 238, .12),
        0 6px 13px rgba(8, 47, 58, .12) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport.pdv-commercial-mode .commercial-product-name {
    display: -webkit-box;
    width: 100%;
    margin-top: .42rem;
    overflow: hidden;
    color: #173243 !important;
    font-size: clamp(.7rem, .76vw, .78rem) !important;
    font-weight: 750 !important;
    line-height: 1.22;
    letter-spacing: .005em !important;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport.pdv-commercial-mode .commercial-product-meta {
    margin-top: 0;
    padding-right: 4.35rem;
    color: #607682 !important;
    font-size: .51rem !important;
    font-weight: 750 !important;
    letter-spacing: .025em !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport.pdv-commercial-mode .commercial-product-stock {
    top: .62rem;
    right: .62rem;
    color: #39715a !important;
    font-size: .51rem !important;
    font-weight: 800;
    letter-spacing: .015em;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport.pdv-commercial-mode .commercial-product-tile strong {
    width: 100%;
    margin-top: auto;
    padding-top: .38rem;
    color: #155e75 !important;
    font-size: clamp(.76rem, .83vw, .88rem) !important;
    font-weight: 800 !important;
    line-height: 1;
    letter-spacing: .015em !important;
}

@media (max-width: 1250px) and (min-width: 1024px) {
    html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport.pdv-commercial-mode .commercial-product-tile {
        min-height: 5.8rem;
    }

    html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport.pdv-commercial-mode .commercial-product-name {
        -webkit-line-clamp: 2;
    }
}

/* ----------------------------------------------------------------
   PDV / DAV — campos monetários Crystal.
   Valor recebido e Troco passam a funcionar como componentes únicos,
   sem o contraste de "cartão claro + caixa azul" da aparência anterior.
   ---------------------------------------------------------------- */
html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel .pdv-cash-summary-row > .pdv-valor-recebido.hidden,
html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel .pdv-cash-summary-row > .pdv-troco-bar.hidden,
html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel .pdv-cash-summary-row > .pdv-entrada-block.hidden,
html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel .pdv-cash-summary-row > .pdv-parcelas-block.hidden,
html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel #pdvDestinatarioFiscalBlock.hidden {
    display: none !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel .pdv-cash-summary-row > :is(
    .pdv-valor-recebido,
    .pdv-troco-bar
):not(.hidden) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(8rem, 11rem);
    align-items: center;
    gap: .55rem !important;
    min-width: 0;
    min-height: 3.65rem;
    padding: .42rem .48rem !important;
    overflow: hidden;
    background:
        linear-gradient(155deg, rgba(255, 255, 255, .78) 0%, rgba(255, 255, 255, .24) 30%, transparent 30.5%),
        linear-gradient(135deg, #eaf6f7 0%, #d9ecef 58%, #d3e8ec 100%) !important;
    border: 1px solid #91c8d0 !important;
    border-radius: .72rem !important;
    color: #214956 !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .92),
        inset 0 -1px 0 rgba(73, 140, 151, .13),
        0 3px 8px rgba(8, 47, 58, .08) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel .pdv-cash-summary-row > :is(
    .pdv-valor-recebido,
    .pdv-troco-bar
) .pdv-field-label {
    min-width: 0;
    color: #315764 !important;
    font-size: .64rem;
    line-height: 1.15;
    letter-spacing: .045em;
    text-shadow: none;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel :is(
    .pdv-valor-recebido,
    .pdv-troco-bar
) .pdv-field-wrap {
    width: 100% !important;
    min-width: 0;
    height: 2.65rem;
    flex: none;
    padding: .35rem .58rem !important;
    background: linear-gradient(180deg, #ffffff 0%, #f0f8f9 100%) !important;
    border: 1px solid #9ccbd2 !important;
    border-radius: .58rem !important;
    color: #155e75 !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .96),
        0 1px 3px rgba(8, 47, 58, .07) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel :is(
    .pdv-valor-recebido,
    .pdv-troco-bar
) .pdv-field-wrap:focus-within {
    border-color: var(--ct-button-border-hover) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .96),
        0 0 0 3px rgba(34, 211, 238, .12),
        0 0 10px rgba(34, 211, 238, .10) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel :is(
    #inputValorRecebido,
    #txtTrocoDisplay
) {
    min-width: 0 !important;
    height: 100% !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    color: #155e75 !important;
    font-size: clamp(1.05rem, 1.35vw, 1.42rem) !important;
    line-height: 1 !important;
    letter-spacing: .025em;
    text-shadow: none;
    box-shadow: none !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel :is(
    .pdv-valor-recebido,
    .pdv-troco-bar
) .pdv-field-wrap > span:first-child {
    margin-right: .4rem;
    color: #287487 !important;
    font-size: .68rem;
}

/* Entrada e parcelas usam a mesma superficie clara dos campos monetarios Crystal. */
html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel .pdv-cash-summary-row > :is(
    .pdv-entrada-block,
    .pdv-parcelas-block
):not(.hidden) {
    min-width: 0;
    min-height: 3.65rem;
    padding: .42rem .48rem !important;
    background:
        linear-gradient(155deg, rgba(255,255,255,.78) 0%, rgba(255,255,255,.24) 30%, transparent 30.5%),
        linear-gradient(135deg, #eaf6f7 0%, #d9ecef 58%, #d3e8ec 100%) !important;
    border: 1px solid #91c8d0 !important;
    border-radius: .72rem !important;
    color: #214956 !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 3px 8px rgba(8,47,58,.08) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel .pdv-cash-summary-row > :is(
    .pdv-entrada-block,
    .pdv-parcelas-block
) .pdv-field-label {
    color: #315764 !important;
    text-shadow: none;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel :is(
    .pdv-entry-field,
    .pdv-installment-field
) {
    background: linear-gradient(180deg, #ffffff 0%, #f0f8f9 100%) !important;
    border-color: #9ccbd2 !important;
    color: #155e75 !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.96), 0 1px 3px rgba(8,47,58,.07) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel :is(
    #inputValorEntrada,
    #inputParcelasCredito,
    #txtResumoParcelas,
    .pdv-entry-field > span:first-child
) {
    color: #155e75 !important;
    text-shadow: none;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel .pdv-cash-summary-row.credit-installments-only {
    grid-template-columns: minmax(0, 1fr);
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel .pdv-cash-summary-row.credit-installments-only > .pdv-parcelas-block:not(.hidden) {
    width: 100%;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel #pdvClientePrazoBlock #pdvClienteBusca {
    background: linear-gradient(180deg, #ffffff 0%, #f0f8f9 100%) !important;
    border-color: #9ccbd2 !important;
    color: #155e75 !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.96), 0 1px 3px rgba(8,47,58,.07) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel #pdvClientePrazoBlock #pdvClienteBusca::placeholder {
    color: #5f8791 !important;
}

/* A coluna estreita do DAV mantém a mesma linguagem sem esmagar os valores. */
@media (min-width: 761px) and (max-width: 1280px) {
    html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport.pdv-commercial-mode #terminalCheckoutPanel .pdv-cash-summary-row > :is(
        .pdv-valor-recebido,
        .pdv-troco-bar
    ) {
        grid-template-columns: minmax(0, .82fr) minmax(6.9rem, 1.18fr);
        gap: .36rem !important;
    }
}

@media (max-width: 760px) {
    html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel .pdv-cash-summary-row > :is(
        .pdv-valor-recebido,
        .pdv-troco-bar
    ) {
        grid-template-columns: minmax(0, 1fr) minmax(8rem, 11rem);
    }
}

/* Paleta única das telas fiscais: NFC-e, NF-e, MDF-e e NFS-e. */
body.fiscal-module main { --fiscal-bg:#1c2f37;--fiscal-panel:#1c2f37;--fiscal-field:#14272f;--fiscal-border:#283e48;--fiscal-text:#f1f5f9;--fiscal-muted:#94a3b8;--fiscal-accent:#f59e0b; }
body.fiscal-module main { background-color:var(--fiscal-bg);color:var(--fiscal-text); }
body.fiscal-module main .bg-\[\#11161d\],
body.fiscal-module main .bg-\[\#14181f\],
body.fiscal-module main .bg-\[\#151a21\],
body.fiscal-module main .bg-\[\#181d25\] { background-color:var(--fiscal-panel)!important;border-color:var(--fiscal-border)!important; }
body.fiscal-module main .dashboard-card,
body.fiscal-module main .list-box,
body.fiscal-module main .toolbar,
body.fiscal-module main .standard-filter { background-color:var(--fiscal-panel)!important;border-color:var(--fiscal-border)!important; }
body.fiscal-module main input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),
body.fiscal-module main select,
body.fiscal-module main textarea { background-color:var(--fiscal-field)!important;border-color:var(--fiscal-border)!important;color:var(--fiscal-text)!important; }
body.fiscal-module main input:focus,
body.fiscal-module main select:focus,
body.fiscal-module main textarea:focus { border-color:var(--fiscal-accent)!important;box-shadow:0 0 0 2px rgba(245,158,11,.14)!important;outline:none; }
body.fiscal-module main table thead { background:#10151b!important;color:var(--fiscal-muted)!important; }
body.fiscal-module main table { color:var(--fiscal-text); }
body.fiscal-module main table tbody tr { border-color:var(--fiscal-border)!important; }
body.fiscal-module main label { color:var(--fiscal-muted); }

/* Moldura externa das telas e subtelas; não altera campos ou cards internos. */
body .app-screen-frame {
    margin: .45rem;
    border: 5px solid #66717f !important;
    border-radius: 1rem;
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.10),
        0 0 0 1px #202731,
        0 8px 22px rgba(0,0,0,.34);
}

/* Na listagem de NFC-e, a moldura acompanha o painel que efetivamente circula a tela. */
body:has(.fiscal-documents-screen) .app-screen-frame {
    margin: 0;
    border: 0 !important;
    border-radius: 0;
    box-shadow: none;
}

body.fiscal-module main .fiscal-documents-screen {
    border: 5px solid #66717f !important;
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.10),
        0 0 0 1px #202731,
        0 8px 22px rgba(0,0,0,.34) !important;
}

body [id*="Modal"] > div:not([class*="absolute"]) {
    border-width: 5px !important;
    border-color: #66717f !important;
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.10),
        0 0 0 1px #202731,
        0 12px 30px rgba(0,0,0,.42) !important;
}

/* Moldura amarela do PDV quando exibido no tamanho reduzido. */
html body:not(.sidebar-hidden) .pdv-monitor-container {
    border-color: #f59e0b !important;
}

/* Dados do emitente: endereço e identificação acima; fiscal em faixa abaixo. */
@media (min-width: 1024px) {
    .empresa-emitter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: start;
    }

    .empresa-identification-panel {
        grid-column: 1;
        grid-row: 1;
    }

    .empresa-address-panel {
        grid-column: 2;
        grid-row: 1;
    }

    .empresa-fiscal-panel:not(.hidden) {
        grid-column: 1 / -1;
        grid-row: 2;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        align-items: start;
    }
}

/* Tema Oceano Esmeralda — azul-marinho aberto, azul profundo e verde-petróleo. */
html[data-theme="pdv-emerald"] {
    --pdv-accent:#67e8d1;--pdv-accent-strong:#159a8c;--pdv-navy:#082534;--pdv-panel:#dcefed;
    --pdv-shell:#244c5e;--pdv-frame:#377489;--pdv-frame-edge:#082534;--pdv-workspace:#173b4a;
    --pdv-control:#e5f4f2;--pdv-control-border:#328092;--pdv-control-text:#082534;
    --pdv-subpanel:#c9e6e3;--pdv-label:#123d4a;--pdv-banner-text:#ecfeff;--pdv-primary-text:#06272a;
    --app-bg-start:#1c2f37;
    --app-bg-middle:#1e3532;
    --app-bg-end:#172a32;
    --app-background-gradient:linear-gradient(135deg,var(--app-bg-start) 0%,var(--app-bg-middle) 50%,var(--app-bg-end) 100%);
    --app-card-start:#1c2f37;
    --app-card-middle:#1c2f37;
    --app-card-end:#1c2f37;
    --app-card-gradient:linear-gradient(145deg,var(--app-card-start),var(--app-card-middle) 62%,var(--app-card-end));
    --app-surface:#1c2f37;
    --app-surface-raised:#223b44;
    --app-surface-inset:#14272f;
    --app-border:#283e48;
    --app-border-strong:#35505b;
    --app-text-primary:#f1f5f9;
    --app-text-secondary:#b6c6cc;
    --app-text-muted:#94a3b8;
}
html[data-theme="pdv-emerald"] body,
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main {
    background:var(--app-background-gradient) !important;color:var(--app-text-primary);
}
html[data-theme="pdv-emerald"] aside {
    background:linear-gradient(180deg,#172a32 0%,#14272f 100%) !important;
    border-color:var(--app-border-strong) !important;box-shadow:7px 0 28px rgba(2,18,27,.24);
}
html[data-theme="pdv-emerald"] .app-topbar {
    background:#172a32 !important;
    border-color:#354e58 !important;color:#f1f5f9 !important;
}
html[data-theme="pdv-emerald"] .app-topbar .text-white { color:#f1f5f9 !important; }
html[data-theme="pdv-emerald"] .app-topbar .text-zinc-300,
html[data-theme="pdv-emerald"] .app-topbar .text-zinc-400 { color:#b6c6cc !important; }
html[data-theme="pdv-emerald"] .nav-item { color:var(--app-text-secondary); }
html[data-theme="pdv-emerald"] .nav-item:hover { background:rgba(94,234,212,.14) !important;color:#fff !important; }
html[data-theme="pdv-emerald"] .nav-item.active,
html[data-theme="pdv-emerald"] .nav-sub-item.active { background:linear-gradient(90deg,#126985,#158a75) !important;color:#fff !important;border-color:#5eead4 !important; }
html[data-theme="pdv-emerald"] .nav-sub { border-color:#236275; }
html[data-theme="pdv-emerald"] .theme-menu { background:#1c2f37 !important;border-color:#35505b !important; }
html[data-theme="pdv-emerald"] .theme-menu button { color:#b6c6cc; }
html[data-theme="pdv-emerald"] .theme-menu button:hover,
html[data-theme="pdv-emerald"] .theme-menu button.active { background:rgba(94,234,212,.15);color:#67e8d1; }

html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main .dashboard-card,
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main .op-panel,
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main .daily-panel,
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main .scale-panel,
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main > div[class*="bg-[#14181f]"] {
    background:var(--app-card-gradient) !important;
    border-color:var(--app-border) !important;color:var(--app-text-primary) !important;box-shadow:0 10px 28px rgba(3,20,29,.16);
}
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main .op-hero,
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main .daily-hero,
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main .scale-hero,
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main .rp-hero {
    background:linear-gradient(112deg,rgba(59,130,246,.10),#0e1217 48%,rgba(139,92,246,.085)) !important;border-color:var(--app-border-strong) !important;
}
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main .bg-\[\#0e1217\],
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main .bg-\[\#14181f\],
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main .bg-\[\#181d25\],
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main .bg-\[\#1c2229\],
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main .bg-\[\#1e2229\] { background-color:var(--app-surface-inset) !important;color:var(--app-text-primary) !important; }
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main .text-white { color:var(--app-text-primary) !important; }
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main .text-zinc-200,
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main .text-zinc-300 { color:var(--app-text-secondary) !important; }
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main .text-zinc-400 { color:#b6c6cc !important; }
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main .text-zinc-500,
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main .text-zinc-600 { color:var(--app-text-muted) !important; }
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main select,
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main textarea { background:var(--app-surface-inset) !important;color:var(--app-text-primary) !important;border-color:var(--app-border-strong) !important; }
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main input::placeholder,
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main textarea::placeholder { color:#94a3b8 !important; }
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main input:focus,
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main select:focus,
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main textarea:focus { border-color:#f59e0b !important;box-shadow:0 0 0 3px rgba(245,158,11,.12) !important;outline:none; }
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main thead { background:#172a32 !important;color:#b6c6cc !important; }
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main tbody tr { border-color:var(--app-border) !important; }
html[data-theme="pdv-emerald"] body:not(:has(.pdv-viewport)) main tbody tr:hover { background:rgba(255,255,255,.04) !important; }

/* PDV: áreas operacionais claras e cabeçalhos profundos para leitura imediata. */
html[data-theme="pdv-emerald"] .pdv-monitor-container { background:#377489 !important;border-color:#123f50 !important; }
html[data-theme="pdv-emerald"] .pdv-monitor-container > div:first-child,
html[data-theme="pdv-emerald"] .pdv-checkout-head,
html[data-theme="pdv-emerald"] .pdv-total-bar,
html[data-theme="pdv-emerald"] .pdv-shortcuts-bar { background:linear-gradient(100deg,#082534,#0d4660 58%,#0b5848) !important;border-color:#3e9b94 !important; }
html[data-theme="pdv-emerald"] .pdv-monitor-container > .grid { background:linear-gradient(135deg,#1a4150,#1a4c4b) !important; }
html[data-theme="pdv-emerald"] #terminalCheckoutPanel { background:#dcefed !important;border-color:#159a8c !important;color:#082f3a !important; }
html[data-theme="pdv-emerald"] .pdv-checkout-body,
html[data-theme="pdv-emerald"] .pdv-checkout-footer { color:#082f3a !important; }
html[data-theme="pdv-emerald"] .pdv-valor-recebido,
html[data-theme="pdv-emerald"] .pdv-troco-bar,
html[data-theme="pdv-emerald"] .pdv-entrada-block,
html[data-theme="pdv-emerald"] .pdv-parcelas-block,
html[data-theme="pdv-emerald"] .pdv-extras-block { background:#c9e6e3 !important;border-color:#5c9699 !important; }
/* Fundos do fechamento acompanham os paineis de valor recebido e troco. */
html[data-theme="pdv-emerald"] #terminalCheckoutPanel .pdv-other-payments,
html[data-theme="pdv-emerald"] #terminalCheckoutPanel #destCpfCnpj,
html[data-theme="pdv-emerald"] #terminalCheckoutPanel #discountInput {
    background:#0d2a37 !important;
    color:#e8f5f5 !important;
}
html[data-theme="pdv-emerald"] #terminalCheckoutPanel #destCpfCnpj::placeholder {
    color:#a8c7cc !important;
    opacity:1;
}
html[data-theme="pdv-emerald"] .pdv-field-wrap,
html[data-theme="pdv-emerald"] .pdv-entry-field,
html[data-theme="pdv-emerald"] .pdv-installment-field,
html[data-theme="pdv-emerald"] .pdv-interactive,
html[data-theme="pdv-emerald"] .pdv-observacoes-field,
html[data-theme="pdv-emerald"] .pdv-search-bar { background:#f5fbfa !important;color:#072d38 !important;border-color:#328092 !important; }
html[data-theme="pdv-emerald"] .checkout-pay-btn,
html[data-theme="pdv-emerald"] .pdv-other-payments button,
html[data-theme="pdv-emerald"] .quick-cash-btn,
html[data-theme="pdv-emerald"] .pdv-qty-btn { background:#e5f4f2 !important;border-color:#5a9098 !important;color:#082f3a !important; }
html[data-theme="pdv-emerald"] .checkout-pay-btn:hover,
html[data-theme="pdv-emerald"] .checkout-pay-btn.active,
html[data-theme="pdv-emerald"] .pdv-other-payments button:hover,
html[data-theme="pdv-emerald"] .pdv-other-payments button.active,
html[data-theme="pdv-emerald"] .quick-cash-btn:hover,
html[data-theme="pdv-emerald"] .pdv-qty-btn:hover { background:linear-gradient(135deg,#126985,#158a75) !important;color:#fff !important;border-color:#5eead4 !important; }
html[data-theme="pdv-emerald"] .pdv-action-btn-primary { background:linear-gradient(135deg,#67e8d1,#20b99c) !important;color:#06272a !important;border-color:#159a8c !important; }
html[data-theme="pdv-emerald"] #terminalReceiptTapeList { background:linear-gradient(145deg,#092431,#0b3340) !important;border-radius:.5rem; }
html[data-theme="pdv-emerald"] #terminalReceiptTapeList,
html[data-theme="pdv-emerald"] #terminalReceiptTapeList .text-white,
html[data-theme="pdv-emerald"] #terminalReceiptTapeList .pdv-cart-name { color:#f1fbfb !important; }
html[data-theme="pdv-emerald"] .pdv-theme-quick { color:#0b3843; }
html[data-theme="pdv-emerald"] .pdv-theme-quick select { background:#e5f4f2;border-color:#2e7480;color:#082f3a;max-width:9.5rem; }
html[data-theme="pdv-emerald"] [id*="modal" i].fixed > div:not([class*="absolute"]) { background:#1c2f37 !important;color:#f1f5f9;border-color:#35505b !important; }

/* DAV — modo de venda comercial integrado ao sistema. */
.pdv-commercial-mode { background:#edf1f5 !important;padding:.65rem !important;color:#172033; }
.pdv-commercial-mode .pdv-scale-stage { margin:0 auto; }
.pdv-commercial-mode .pdv-monitor-container {
    background:#d9e0e8 !important;border:1px solid #b8c3d0 !important;border-radius:16px !important;
    padding:0 !important;box-shadow:0 18px 46px rgba(15,23,42,.13) !important;overflow:hidden;
}
.pdv-commercial-mode .pdv-monitor-container > div:first-child {
    min-height:58px;background:#172033 !important;border:0 !important;border-radius:0 !important;padding:.65rem .9rem !important;
}
.pdv-commercial-mode .pdv-monitor-container > div:first-child > h2 { font-size:.92rem !important;color:#fff !important;letter-spacing:.035em; }
.pdv-commercial-mode .pdv-monitor-container > .grid {
    background:#edf1f5 !important;gap:.75rem !important;padding:.75rem !important;border-radius:0 !important;
}
@media(min-width:1024px){
    .pdv-commercial-mode .pdv-monitor-container > .grid > .lg\:col-span-7 { grid-column:span 8/span 8 !important; }
    .pdv-commercial-mode .pdv-monitor-container > .grid > .lg\:col-span-5 { grid-column:span 4/span 4 !important; }
}
.pdv-commercial-mode .pdv-layout-switch { background:#24334b;border-color:#465873;color:#dbeafe; }
.pdv-commercial-mode .pdv-layout-switch:hover { background:#2f4260;color:#fff; }
.pdv-commercial-mode .pdv-monitor-container .bg-\[\#fcfca6\] {
    background:#fff !important;border:1px solid #d5dee8 !important;border-radius:12px !important;
    color:#172033 !important;box-shadow:0 3px 12px rgba(15,23,42,.055) !important;padding:.85rem !important;
}
.pdv-commercial-mode .pdv-company-header {
    display:grid;grid-template-columns:1fr auto;align-items:center;text-align:left !important;gap:.1rem 1rem;
    border-color:#e2e8f0 !important;margin-bottom:.55rem !important;padding-bottom:.55rem !important;color:#334155 !important;
}
.pdv-commercial-mode .pdv-company-header > div:first-child { grid-row:1/3;font-size:.9rem !important;color:#172033 !important; }
.pdv-commercial-mode .pdv-company-header > div:nth-child(2),
.pdv-commercial-mode .pdv-company-header > div:nth-child(3) { text-align:right;font-size:.58rem !important;color:#64748b !important; }
.pdv-commercial-mode .pdv-company-header > div:last-child { grid-column:1/-1;margin-top:.35rem !important;border-color:#e2e8f0 !important;color:#64748b !important; }
.pdv-commercial-mode .pdv-monitor-container .bg-\[\#1c2229\] {
    background:#fff !important;border:1px solid #e2e8f0;border-radius:9px !important;padding:.35rem .65rem !important;
}
.pdv-commercial-mode .pdv-cart-grid { color:#64748b !important;border-color:#e2e8f0 !important; }
.pdv-commercial-mode #terminalReceiptTapeList { background:#fff !important;color:#172033 !important; }
.pdv-commercial-mode #terminalReceiptTapeList > div { border-color:#e5eaf0 !important; }
.pdv-commercial-mode #terminalReceiptTapeList .text-white,
.pdv-commercial-mode #terminalReceiptTapeList .pdv-cart-name { color:#172033 !important; }
.pdv-commercial-mode #terminalReceiptTapeList .text-zinc-500 { color:#64748b !important; }
.pdv-commercial-mode #terminalReceiptTapeList .pdv-cart-total { color:#0369a1 !important; }
.pdv-commercial-mode .pdv-receipt-btn {
    background:#f8fafc !important;border:1px solid #d8e1eb !important;color:#475569 !important;border-radius:7px !important;box-shadow:none !important;
}
.pdv-commercial-mode .pdv-receipt-btn:hover { background:#eff6ff !important;border-color:#93b4e8 !important;color:#1d4ed8 !important; }
.pdv-commercial-mode .pdv-search-bar {
    min-height:48px;background:#fff !important;border:1px solid #bac7d6 !important;border-radius:11px !important;
    color:#172033 !important;font-size:.78rem !important;box-shadow:0 2px 8px rgba(15,23,42,.045);
}
.pdv-commercial-mode .pdv-search-bar:focus { border-color:#2563eb !important;box-shadow:0 0 0 3px rgba(37,99,235,.12) !important; }
.pdv-commercial-mode #pdvScaleControls { background:#fff !important;border-color:#d5dee8 !important;color:#475569 !important;border-radius:10px !important; }
.pdv-commercial-mode #terminalCheckoutPanel {
    background:#fff !important;border:1px solid #d5dee8 !important;border-radius:12px !important;color:#172033 !important;
    box-shadow:0 3px 12px rgba(15,23,42,.055) !important;
}
.pdv-commercial-mode .pdv-checkout-head { background:#f8fafc !important;border-color:#e2e8f0 !important; }
.pdv-commercial-mode .pdv-checkout-title { color:#475569 !important;font-size:.68rem !important; }
.pdv-commercial-mode .pdv-total-bar { background:#172033 !important;border:0 !important; }
.pdv-commercial-mode .pdv-total-value { color:#fff !important;letter-spacing:-.025em; }
.pdv-commercial-mode .pdv-checkout-body,
.pdv-commercial-mode .pdv-checkout-footer { background:#fff !important;color:#172033 !important; }
.pdv-commercial-mode .checkout-pay-btn,
.pdv-commercial-mode .quick-cash-btn,
.pdv-commercial-mode .pdv-qty-btn {
    background:#fff !important;border:1px solid #cbd5e1 !important;color:#334155 !important;box-shadow:none !important;
}

/* PDV_COMMERCIAL_NARROW_CHECKOUT
 * O fechamento comercial divide a largura com o catalogo e com a venda atual.
 * Por isso, pagamentos e valores precisam encolher dentro das suas colunas. */
.pdv-commercial-mode .pdv-pay-grid { gap:.3rem !important; }
.pdv-commercial-mode .checkout-pay-btn {
    min-width:0;
    overflow:hidden;
    padding-right:.12rem;
    padding-left:.12rem;
    font-size:.56rem;
    letter-spacing:0;
}
.pdv-commercial-mode .checkout-pay-btn span {
    display:block;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.pdv-commercial-mode .pdv-cash-summary-row > .pdv-valor-recebido,
.pdv-commercial-mode .pdv-cash-summary-row > .pdv-troco-bar,
.pdv-commercial-mode .pdv-cash-summary-row > .pdv-entrada-block {
    gap:.3rem !important;
    padding-right:.45rem !important;
    padding-left:.45rem !important;
}
.pdv-commercial-mode .pdv-cash-summary-row .pdv-field-label {
    min-width:0;
    flex:0 1 42%;
    font-size:.62rem;
    line-height:1.05;
}
.pdv-commercial-mode .pdv-cash-summary-row .pdv-field-wrap,
.pdv-commercial-mode .pdv-cash-summary-row .pdv-entry-field {
    width:auto;
    min-width:0;
    max-width:none;
    flex:1 1 0;
    padding-right:.42rem !important;
    padding-left:.42rem !important;
}
.pdv-commercial-mode .pdv-cash-summary-row .pdv-field-wrap > span:first-child,
.pdv-commercial-mode .pdv-cash-summary-row .pdv-entry-field > span:first-child {
    margin-right:.25rem;
    font-size:.65rem;
}
.pdv-commercial-mode #terminalCheckoutPanel #inputValorRecebido,
.pdv-commercial-mode #terminalCheckoutPanel #inputValorEntrada,
.pdv-commercial-mode #terminalCheckoutPanel #inputParcelasCredito,
.pdv-commercial-mode .pdv-cash-summary-row .pdv-troco-value {
    min-width:0 !important;
    font-size:1.08rem !important;
}
.pdv-commercial-mode #terminalCheckoutPanel #txtTrocoDisplay {
    height:100% !important;
    padding:0 !important;
    border:0 !important;
    outline:0 !important;
    background:transparent !important;
    box-shadow:none !important;
}
.pdv-commercial-mode .pdv-parcelas-block:not(.hidden) {
    display:grid;
    grid-template-columns:auto minmax(4.5rem,1fr);
    grid-template-areas:"label field" "summary summary";
    gap:.22rem .35rem !important;
    padding:.4rem .45rem !important;
}
.pdv-commercial-mode .pdv-parcelas-block > label { grid-area:label; }
.pdv-commercial-mode .pdv-installment-field {
    grid-area:field;
    width:100%;
    min-width:0;
    flex-basis:auto;
}
.pdv-commercial-mode .pdv-installment-summary {
    grid-area:summary;
    width:100%;
    max-width:none;
    margin-left:0;
    text-align:right;
}
.pdv-commercial-mode .checkout-pay-btn:hover,
.pdv-commercial-mode .checkout-pay-btn.active,
.pdv-commercial-mode .quick-cash-btn:hover,
.pdv-commercial-mode .pdv-qty-btn:hover { background:#eff6ff !important;border-color:#3b82f6 !important;color:#1d4ed8 !important; }
.pdv-commercial-mode .pdv-valor-recebido,
.pdv-commercial-mode .pdv-troco-bar,
.pdv-commercial-mode .pdv-parcelas-block,
.pdv-commercial-mode .pdv-extras-block { background:#f8fafc !important;border-color:#e2e8f0 !important; }
.pdv-commercial-mode .pdv-field-label,
.pdv-commercial-mode .pdv-extras-block label { color:#64748b !important; }
.pdv-commercial-mode .pdv-field-wrap,
.pdv-commercial-mode .pdv-interactive,
.pdv-commercial-mode .pdv-observacoes-field,
.pdv-commercial-mode .pdv-money-input,
.pdv-commercial-mode .pdv-extra-input { background:#fff !important;color:#172033 !important;border-color:#cbd5e1 !important; }
.pdv-commercial-mode .pdv-action-btn { background:#fff !important;border:1px solid #cbd5e1 !important;color:#475569 !important;box-shadow:none !important; }
.pdv-commercial-mode .pdv-action-btn-primary,
.pdv-commercial-mode .pdv-monitor-container .pdv-action-btn-primary {
    background:#16a34a !important;border:1px solid #15803d !important;color:#fff !important;border-radius:9px !important;
    box-shadow:0 6px 16px rgba(22,163,74,.2) !important;
}
.pdv-commercial-mode #btnConfirmarEmissao {
    border:1px solid #14532d !important;
    font-size:.72rem;
}
.pdv-commercial-mode .pdv-checkout-actions .app-cancel-button {
    font-size:.72rem;
}
.pdv-commercial-mode .pdv-action-btn-primary:hover { background:#15803d !important; }
.pdv-commercial-mode + .pdv-shortcuts-bar,
.pdv-commercial-mode .pdv-shortcuts-bar { background:#fff !important;border-color:#d5dee8 !important;color:#475569 !important; }
.pdv-commercial-mode .shortcut-key { background:#eff6ff !important;border-color:#bfdbfe !important;color:#1d4ed8 !important; }
.pdv-commercial-mode [id*="modal" i].fixed > div:not([class*="absolute"]) { background:#fff !important;color:#1e293b;border-color:#94a3b8 !important; }
@media(max-width:1100px){.pdv-commercial-mode{padding:.35rem!important}.pdv-commercial-mode .pdv-company-header{display:block}.pdv-commercial-mode .pdv-company-header>div{text-align:center!important}}

/* Arquitetura realmente alternativa: catálogo + venda atual + fechamento. */
.pdv-commercial-mode .commercial-product-browser {
    display:flex;min-width:0;min-height:0;flex-direction:column;gap:.55rem;border:1px solid #d5dee8;border-radius:12px;
    background:#fff;padding:.7rem;box-shadow:0 3px 12px rgba(15,23,42,.055);
}
.pdv-commercial-mode .commercial-browser-head { display:flex;align-items:center;justify-content:space-between;gap:.5rem; }
.pdv-commercial-mode .commercial-browser-head div { display:flex;min-width:0;flex-direction:column; }
.pdv-commercial-mode .commercial-browser-head span { color:#2563eb;font-size:.53rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase; }
.pdv-commercial-mode .commercial-browser-head strong { color:#172033;font-size:.76rem;font-weight:900;text-transform:uppercase; }
.pdv-commercial-mode .commercial-browser-head button { width:30px;height:30px;border:1px solid #d6e0ea;border-radius:8px;background:#f8fafc;color:#64748b; }
.pdv-commercial-mode #commercialSearchSlot .pdv-search-bar { min-height:43px; }
.pdv-commercial-mode .commercial-category-strip { display:flex;gap:.3rem;overflow-x:auto; }
.pdv-commercial-mode .commercial-category-strip button { flex:1;border:1px solid #dbe3ec;border-radius:7px;background:#f8fafc;padding:.38rem .35rem;color:#64748b;font-size:.6rem;font-weight:900;text-transform:uppercase;white-space:nowrap; }
.pdv-commercial-mode .commercial-category-strip button.active { border-color:#2563eb;background:#eff6ff;color:#1d4ed8; }
.pdv-commercial-mode .commercial-product-grid { display:grid;min-height:0;flex:1;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:.45rem;overflow-y:auto;padding-right:.15rem; }
.pdv-commercial-mode .commercial-product-tile { position:relative;display:flex;min-width:0;min-height:112px;flex-direction:column;align-items:flex-start;border:1px solid #dbe3ec;border-radius:10px;background:#fff;padding:.6rem;text-align:left;box-shadow:0 1px 3px rgba(15,23,42,.04); }
.pdv-commercial-mode .commercial-product-tile:hover { border-color:#60a5fa;background:#f8fbff;box-shadow:0 6px 15px rgba(37,99,235,.09);transform:translateY(-1px); }
.pdv-commercial-mode .commercial-product-name { display:-webkit-box;margin-top:.42rem;overflow:hidden;color:#1e293b;font-size:.6rem;font-weight:900;line-height:1.15;-webkit-box-orient:vertical;-webkit-line-clamp:2; }
.pdv-commercial-mode .commercial-product-meta { margin-top:.25rem;color:#94a3b8;font-size:.48rem;font-weight:700; }
.pdv-commercial-mode .commercial-product-tile strong { margin-top:auto;color:#2563eb;font-size:.68rem;font-weight:700; }
.pdv-commercial-mode #commercialScaleSlot #pdvScaleControls { padding:.4rem !important; }
.pdv-commercial-mode .pdv-monitor-container .bg-\[\#fcfca6\]::before { content:"Venda atual";display:block;margin-bottom:.45rem;color:#172033;font-size:.72rem;font-weight:900;text-transform:uppercase; }
@media(min-width:1024px){
    .pdv-commercial-mode .pdv-monitor-container > .grid > .commercial-product-browser { grid-column:span 3/span 3 !important; }
    .pdv-commercial-mode .pdv-monitor-container > .grid > .lg\:col-span-7 { grid-column:span 5/span 5 !important; }
    .pdv-commercial-mode .pdv-monitor-container > .grid > .lg\:col-span-5 { grid-column:span 4/span 4 !important; }
}
@media(max-width:1250px) and (min-width:1024px){.pdv-commercial-mode .commercial-product-grid{grid-template-columns:1fr}.pdv-commercial-mode .commercial-product-tile{min-height:78px}}

/* PDV_RETAIL_MARKET_THEME
 * Varejo profissional: azul-marinho, cinza aco e superficies de leitura. */
html[data-theme="pdv-corporate"] {
    --pdv-header-blue:#1e3a5f;
    --pdv-nfe-gradient:linear-gradient(125deg,#2f55bd 0%,#1e3a8a 46%,#0f1f46 100%);
    --pdv-shell-gradient:radial-gradient(circle at 18rem 5rem,#2f55bd 0%,#1e3a8a 36%,#0f1f46 82%);
    --pdv-accent:var(--color-brand-primary);
    --pdv-accent-strong:var(--color-brand-primary-hover);
    --pdv-navy:var(--color-brand-deep);
    --pdv-panel:#f8fafc;
    --pdv-shell:#263746;
    --pdv-frame:#6b7c8d;
    --pdv-frame-edge:var(--color-brand-primary-hover);
    --pdv-workspace:#c8d0d7;
    --pdv-control:#fff;
    --pdv-control-border:#cbd5e1;
    --pdv-control-text:#0f172a;
    --pdv-subpanel:#fff;
    --pdv-label:#475569;
    --pdv-banner-text:#f8fafc;
    --pdv-primary-text:#fff;
}

html[data-theme="pdv-corporate"] body:has(.pdv-viewport),
html[data-theme="pdv-corporate"] body:has(.pdv-viewport) main,
html[data-theme="pdv-corporate"] .pdv-viewport {
    background:linear-gradient(145deg,#202d38,#34495a) !important;
}
html[data-theme="pdv-corporate"] .pdv-monitor-container {
    background:linear-gradient(145deg,#81909c 0%,#617483 52%,#4b6170 100%) !important;
    border-color:var(--color-brand-primary-hover) !important;
    box-shadow:0 0 0 1px rgba(147,197,253,.65),0 0 20px rgba(37,99,235,.42),0 16px 38px rgba(15,23,42,.34) !important;
}
html[data-theme="pdv-corporate"] body:not(.sidebar-hidden) .pdv-monitor-container {
    border-color:var(--color-brand-primary-hover) !important;
}
html[data-theme="pdv-corporate"] .pdv-brand-header,
html[data-theme="pdv-corporate"] .pdv-monitor-container > div:first-child {
    background:var(--pdv-nfe-gradient) !important;
    border-color:var(--color-brand-primary-hover) !important;
}
html[data-theme="pdv-corporate"] .app-sidebar,
html[data-theme="pdv-corporate"] .app-topbar {
    background-image:var(--pdv-shell-gradient) !important;
    background-position:0 0 !important;
    background-size:100vw 100vh !important;
    background-repeat:no-repeat !important;
    background-attachment:fixed !important;
    border-color:transparent !important;
    color:#f8fafc !important;
}
html[data-theme="pdv-corporate"] .app-sidebar {
    border-right-width:0 !important;
    box-shadow:none !important;
}
html[data-theme="pdv-corporate"] .app-topbar {
    min-height:5rem !important;
    border-bottom-width:0 !important;
    box-shadow:none !important;
}
html[data-theme="pdv-corporate"] .app-sidebar > div:first-child {
    min-height:5rem !important;
    border-bottom-width:0 !important;
    border-color:transparent !important;
}
html[data-theme="pdv-corporate"] .app-sidebar .text-white,
html[data-theme="pdv-corporate"] .app-sidebar .text-slate-300,
html[data-theme="pdv-corporate"] .app-sidebar .text-zinc-300,
html[data-theme="pdv-corporate"] .app-sidebar .text-zinc-400 { color:#f8fafc !important; }
html[data-theme="pdv-corporate"] .app-sidebar .text-zinc-500,
html[data-theme="pdv-corporate"] .app-sidebar .text-zinc-600 { color:#cbd5e1 !important; }
html[data-theme="pdv-corporate"] .app-sidebar .nav-item,
html[data-theme="pdv-corporate"] .app-sidebar .nav-sub-item { color:#f8fafc !important; }
html[data-theme="pdv-corporate"] .app-sidebar,
html[data-theme="pdv-corporate"] .app-topbar,
html[data-theme="pdv-corporate"] #terminalActiveItemBanner,
html[data-theme="pdv-corporate"] .pdv-selection-panel .commercial-browser-head {
    text-shadow:0 1px 2px rgba(15,23,42,.45) !important;
}
html[data-theme="pdv-corporate"] .app-topbar h1,
html[data-theme="pdv-corporate"] .app-topbar span { color:#f8fafc !important; }
html[data-theme="pdv-corporate"] #terminalActiveItemBanner { color:#fff !important; }
html[data-theme="pdv-corporate"] .pdv-brand-header > div:first-child > span:first-child span { color:#fff !important; }
html[data-theme="pdv-corporate"] .pdv-workspace,
html[data-theme="pdv-corporate"] .pdv-monitor-container > .grid {
    background:linear-gradient(135deg,#d7dde2,#bec8cf) !important;
}

/* Tipografia de operacao: limpa em telas comuns e sem aparencia pixelada. */
html[data-theme="pdv-corporate"] .pdv-monitor-container,
html[data-theme="pdv-corporate"] .pdv-monitor-container button,
html[data-theme="pdv-corporate"] .pdv-monitor-container input,
html[data-theme="pdv-corporate"] .pdv-monitor-container select,
html[data-theme="pdv-corporate"] .pdv-monitor-container textarea,
html[data-theme="pdv-corporate"] .pdv-monitor-container .font-mono {
    font-family:"Courier New",Courier,monospace !important;
    font-variant-numeric:tabular-nums;
    text-rendering:optimizeLegibility;
    -webkit-font-smoothing:antialiased;
}
html[data-theme="pdv-corporate"] body:has(.pdv-viewport),
html[data-theme="pdv-corporate"] body:has(.pdv-viewport) button,
html[data-theme="pdv-corporate"] body:has(.pdv-viewport) input,
html[data-theme="pdv-corporate"] body:has(.pdv-viewport) select,
html[data-theme="pdv-corporate"] body:has(.pdv-viewport) textarea,
html[data-theme="pdv-corporate"] body:has(.pdv-viewport) .font-mono {
    font-family:"Courier New",Courier,monospace !important;
    font-variant-numeric:tabular-nums;
}
html[data-theme="pdv-corporate"] .pdv-monitor-container .font-black { font-weight:700 !important; }
html[data-theme="pdv-corporate"] .pdv-monitor-container .pdv-total-value { font-weight:800 !important; }
html[data-theme="pdv-corporate"] .commercial-browser-head span,
html[data-theme="pdv-corporate"] .commercial-browser-head strong,
html[data-theme="pdv-corporate"] .commercial-product-name,
html[data-theme="pdv-corporate"] .commercial-product-tile strong {
    font-weight:700 !important;
    letter-spacing:.01em !important;
}
html[data-theme="pdv-corporate"] #terminalActiveItemBanner,
html[data-theme="pdv-corporate"] .pdv-monitor-container button,
html[data-theme="pdv-corporate"] .pdv-monitor-container input,
html[data-theme="pdv-corporate"] .pdv-monitor-container select {
    letter-spacing:normal !important;
}
html[data-theme="pdv-corporate"] .pdv-brand-header > div:first-child > span:first-child {
    background:rgba(255,255,255,.12) !important;
    border-color:rgba(255,255,255,.32) !important;
}
html[data-theme="pdv-corporate"] .pdv-brand-header > div:last-child {
    background:#dce2e7 !important;
}
html[data-theme="pdv-corporate"] .pdv-layout-switch {
    background:rgba(255,255,255,.1) !important;
    border-color:rgba(255,255,255,.38) !important;
    color:#fff !important;
}
html[data-theme="pdv-corporate"] .pdv-layout-switch:hover { background:rgba(255,255,255,.2) !important; }
html[data-theme="pdv-corporate"] .pdv-search-icon { color:var(--color-brand-primary) !important; }

/* Selecao de produtos e cupom: branco, tipografia escura e divisorias finas. */
html[data-theme="pdv-corporate"] .pdv-selection-panel,
html[data-theme="pdv-corporate"] .pdv-receipt-panel {
    background:#eef1f3 !important;
    border:1px solid #cbd5e1 !important;
    color:#0f172a !important;
    box-shadow:0 2px 8px rgba(15,23,42,.055) !important;
}
html[data-theme="pdv-corporate"] .pdv-receipt-panel { background:#fffdf8 !important; }
html[data-theme="pdv-corporate"] .pdv-selection-panel {
    background:var(--pdv-nfe-gradient) !important;
    border-color:#365b7d !important;
}
html[data-theme="pdv-corporate"] .pdv-selection-panel .commercial-browser-head strong { color:#fff !important; }
html[data-theme="pdv-corporate"] .pdv-selection-panel .commercial-browser-head span { color:#dbeafe !important; }
html[data-theme="pdv-corporate"] .pdv-company-header,
html[data-theme="pdv-corporate"] .pdv-company-header > div,
html[data-theme="pdv-corporate"] .pdv-receipt-panel .text-zinc-950,
html[data-theme="pdv-corporate"] .pdv-receipt-panel .text-zinc-900,
html[data-theme="pdv-corporate"] .pdv-receipt-panel .text-zinc-800 {
    color:#0f172a !important;
    border-color:#cbd5e1 !important;
}
html[data-theme="pdv-corporate"] .pdv-cart-surface {
    background:#fff !important;
    border:1px solid #cbd5e1 !important;
    color:#0f172a !important;
    box-shadow:none !important;
}
html[data-theme="pdv-corporate"] .pdv-cart-grid {
    color:#475569 !important;
    border-color:#cbd5e1 !important;
}
html[data-theme="pdv-corporate"] #terminalReceiptTapeList,
html[data-theme="pdv-corporate"] #terminalReceiptTapeList .text-white,
html[data-theme="pdv-corporate"] #terminalReceiptTapeList .pdv-cart-name {
    background:#fff !important;
    color:#0f172a !important;
}
html[data-theme="pdv-corporate"] #terminalReceiptTapeList > div { border-color:#cbd5e1 !important; }
html[data-theme="pdv-corporate"] #terminalReceiptTapeList .text-zinc-500 { color:#64748b !important; }
html[data-theme="pdv-corporate"] #terminalReceiptTapeList .pdv-cart-total { color:#0369a1 !important; }
html[data-theme="pdv-corporate"] .pdv-receipt-btn {
    background:#fff !important;
    border:1px solid #cbd5e1 !important;
    color:#334155 !important;
    box-shadow:0 1px 2px rgba(15,23,42,.04) !important;
}
html[data-theme="pdv-corporate"] .pdv-receipt-btn:hover {
    background:#e2e8f0 !important;
    border-color:var(--color-brand-primary) !important;
    color:var(--color-brand-primary) !important;
}
html[data-theme="pdv-corporate"] .commercial-browser-head strong,
html[data-theme="pdv-corporate"] .commercial-product-name { color:#0f172a !important; }
html[data-theme="pdv-corporate"] .commercial-browser-head span,
html[data-theme="pdv-corporate"] .commercial-product-tile strong { color:var(--color-brand-primary) !important; }
html[data-theme="pdv-corporate"] .commercial-browser-head button,
html[data-theme="pdv-corporate"] .commercial-category-strip button,
html[data-theme="pdv-corporate"] .commercial-product-tile {
    background:#f8f9fa !important;
    border:1px solid #cbd5e1 !important;
    color:#334155 !important;
}
html[data-theme="pdv-corporate"] .commercial-category-strip button.active,
html[data-theme="pdv-corporate"] .commercial-product-tile:hover {
    background:#e2e8f0 !important;
    border-color:var(--color-brand-primary) !important;
    color:var(--color-brand-primary) !important;
}
/* Fechamento: painel gelo, total em teal suave e valores em grafite. */
html[data-theme="pdv-corporate"] #terminalCheckoutPanel {
    background:#e8ecef !important;
    border:1px solid #9aa8b3 !important;
    color:#0f172a !important;
    box-shadow:0 2px 8px rgba(15,23,42,.055) !important;
}
html[data-theme="pdv-corporate"] .pdv-checkout-head {
    background:var(--pdv-header-blue) !important;
    border-color:#365b7d !important;
}
html[data-theme="pdv-corporate"] .pdv-checkout-title { color:#fff !important; }
html[data-theme="pdv-corporate"] .pdv-total-bar {
    background:linear-gradient(180deg,#e3edf6,#c5d8e8) !important;
    border-color:#7da4c4 !important;
}
html[data-theme="pdv-corporate"] .pdv-total-value {
    color:var(--color-brand-deep) !important;
    font-weight:900 !important;
    text-shadow:none !important;
}
html[data-theme="pdv-corporate"] .pdv-checkout-body,
html[data-theme="pdv-corporate"] .pdv-checkout-footer {
    background:#e8ecef !important;
    border-color:#b6c0c8 !important;
    color:#0f172a !important;
}
html[data-theme="pdv-corporate"] .pdv-checkout-footer {
    background:var(--pdv-header-blue) !important;
    border-color:#365b7d !important;
}
html[data-theme="pdv-corporate"] .pdv-other-payments {
    background:#dce2e6 !important;
    border:1px solid #adb8c0 !important;
}
html[data-theme="pdv-corporate"] .checkout-pay-btn,
html[data-theme="pdv-corporate"] .pdv-other-payments button,
html[data-theme="pdv-corporate"] .quick-cash-btn,
html[data-theme="pdv-corporate"] .pdv-qty-btn,
html[data-theme="pdv-corporate"] .pdv-action-btn {
    background:#e1e6ea !important;
    border:1px solid #b1bbc3 !important;
    color:#1e293b !important;
    box-shadow:0 1px 2px rgba(15,23,42,.04) !important;
}
html[data-theme="pdv-corporate"] .checkout-pay-btn:hover,
html[data-theme="pdv-corporate"] .checkout-pay-btn.active,
html[data-theme="pdv-corporate"] .pdv-other-payments button:hover,
html[data-theme="pdv-corporate"] .pdv-other-payments button.active,
html[data-theme="pdv-corporate"] .quick-cash-btn:hover {
    background:var(--color-brand-soft) !important;
    border-color:var(--color-brand-primary) !important;
    color:var(--color-brand-primary) !important;
}
html[data-theme="pdv-corporate"] .pdv-other-payments button i { color:var(--color-brand-primary) !important; }
html[data-theme="pdv-corporate"] .checkout-pay-btn {
    position:relative;
    padding-top:.78rem;
}
html[data-theme="pdv-corporate"] .payment-shortcut {
    position:absolute;
    top:.2rem;
    right:.28rem;
    border:0;
    background:transparent;
    color:var(--color-brand-primary) !important;
    font-family:inherit;
    font-size:.5rem;
    font-weight:900;
    line-height:1;
}
html[data-theme="pdv-corporate"] .pdv-valor-recebido,
html[data-theme="pdv-corporate"] .pdv-troco-bar,
html[data-theme="pdv-corporate"] .pdv-entrada-block,
html[data-theme="pdv-corporate"] .pdv-parcelas-block,
html[data-theme="pdv-corporate"] .pdv-extras-block {
    background:#f5f7f8 !important;
    border:1px solid #b1bbc3 !important;
}
html[data-theme="pdv-corporate"] .pdv-valor-recebido,
html[data-theme="pdv-corporate"] .pdv-troco-bar,
html[data-theme="pdv-corporate"] .pdv-entrada-block,
html[data-theme="pdv-corporate"] .pdv-parcelas-block {
    background:var(--pdv-header-blue) !important;
    border-color:#365b7d !important;
}
html[data-theme="pdv-corporate"] .pdv-valor-recebido .pdv-field-label,
html[data-theme="pdv-corporate"] .pdv-troco-bar .pdv-field-label,
html[data-theme="pdv-corporate"] .pdv-entrada-block .pdv-field-label,
html[data-theme="pdv-corporate"] .pdv-parcelas-block .pdv-field-label { color:#dbeafe !important; }
html[data-theme="pdv-corporate"] .pdv-field-label,
html[data-theme="pdv-corporate"] .pdv-extras-block label { color:#475569 !important; }
html[data-theme="pdv-corporate"] .pdv-field-wrap,
html[data-theme="pdv-corporate"] .pdv-entry-field,
html[data-theme="pdv-corporate"] .pdv-installment-field,
html[data-theme="pdv-corporate"] .pdv-interactive,
html[data-theme="pdv-corporate"] .pdv-observacoes-field,
html[data-theme="pdv-corporate"] .pdv-search-bar,
html[data-theme="pdv-corporate"] #pdvScaleControls {
    background:#fff !important;
    border:1px solid #cbd5e1 !important;
    color:#0f172a !important;
    box-shadow:none !important;
}
html[data-theme="pdv-corporate"] .pdv-money-input,
html[data-theme="pdv-corporate"] .pdv-extra-input { color:#0f172a !important; }
html[data-theme="pdv-corporate"] #txtTrocoDisplay { color:#0369a1 !important; }
html[data-theme="pdv-corporate"] .pdv-search-bar:focus,
html[data-theme="pdv-corporate"] .pdv-interactive:focus,
html[data-theme="pdv-corporate"] .pdv-observacoes-field:focus {
    border-color:var(--color-brand-primary) !important;
    box-shadow:0 0 0 3px rgba(37,99,235,.16) !important;
}
html[data-theme="pdv-corporate"] #inputConsultaModal:focus {
    border-color:var(--color-brand-primary) !important;
    box-shadow:0 0 0 3px rgba(37,99,235,.16) !important;
}

/* Somente a acao final recebe preenchimento forte. */
html[data-theme="pdv-corporate"] .pdv-action-btn-primary,
html[data-theme="pdv-corporate"] .pdv-monitor-container .pdv-action-btn-primary {
    background:var(--color-brand-primary) !important;
    border:1px solid var(--color-brand-primary) !important;
    color:#fff !important;
    box-shadow:0 6px 18px rgba(37,99,235,.28) !important;
}
html[data-theme="pdv-corporate"] .pdv-action-btn-primary span:last-child { color:#fff !important; }
html[data-theme="pdv-corporate"] .pdv-action-btn-primary:hover,
html[data-theme="pdv-corporate"] .pdv-monitor-container .pdv-action-btn-primary:hover {
    background:var(--color-brand-primary-hover) !important;
    border-color:var(--color-brand-primary-hover) !important;
    color:#fff !important;
}
html[data-theme="pdv-corporate"] .pdv-shortcuts-bar {
    background:linear-gradient(180deg,#293d4c,#20323f) !important;
    border-color:#172631 !important;
    color:#f8fafc !important;
}
html[data-theme="pdv-corporate"] .shortcut-key {
    background:#eef2f5 !important;
    border-color:#a8b6c0 !important;
    color:#1e3a5f !important;
    font-weight:900;
}
html[data-theme="pdv-corporate"] .pdv-theme-quick { color:#334155; }
html[data-theme="pdv-corporate"] .pdv-theme-quick select {
    max-width:10.5rem;
    background:#fff;
    border-color:#cbd5e1;
    color:#0f172a;
}

/* Campos claros no tema de varejo; controles monetarios internos preservam o fundo do contêiner. */
html[data-theme="pdv-corporate"] input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not(.pdv-money-input),
html[data-theme="pdv-corporate"] select,
html[data-theme="pdv-corporate"] textarea {
    background:#f8fafc !important;
    border-color:#9aa9b7 !important;
    color:#172033 !important;
    box-shadow:inset 0 1px 2px rgba(15,23,42,.06) !important;
}
html[data-theme="pdv-corporate"] input::placeholder,
html[data-theme="pdv-corporate"] textarea::placeholder {
    color:#64748b !important;
    opacity:1;
}
html[data-theme="pdv-corporate"] input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):focus,
html[data-theme="pdv-corporate"] select:focus,
html[data-theme="pdv-corporate"] textarea:focus {
    border-color:#60a5fa !important;
    box-shadow:0 0 0 3px rgba(37,99,235,.15) !important;
    outline:none !important;
}

/* Padrão visual dos botões Cancelar, baseado na barra de ações da NF-e.
   Esta regra altera somente a aparência e preserva as dimensões de cada tela. */
.app-cancel-button,
html[data-theme] body .app-cancel-button {
    color:#fca5a5 !important;
    border-color:#ef444488 !important;
    background:#ef444416 !important;
    transition:color .14s ease,border-color .14s ease,background-color .14s ease;
}
.app-cancel-button:hover:not(:disabled),
.app-cancel-button:focus-visible:not(:disabled),
html[data-theme] body .app-cancel-button:hover:not(:disabled),
html[data-theme] body .app-cancel-button:focus-visible:not(:disabled) {
    color:#fee2e2 !important;
    border-color:#ef4444cc !important;
    background:#ef44443d !important;
}
.app-cancel-button:focus-visible {
    outline:2px solid #ef444466;
    outline-offset:2px;
}
.app-cancel-button:disabled {
    opacity:.38;
    cursor:not-allowed;
}

/* Botao de retorno ao sistema acompanha o azul usado no campo Troco. */
.pdv-system-button,
html[data-theme] body .pdv-system-button {
    color:#fca5a5 !important;
    border-color:#ef444488 !important;
    background:var(--pdv-header-blue, #0d4660) !important;
}
.pdv-system-button:hover:not(:disabled),
.pdv-system-button:focus-visible:not(:disabled),
html[data-theme] body .pdv-system-button:hover:not(:disabled),
html[data-theme] body .pdv-system-button:focus-visible:not(:disabled) {
    color:#fee2e2 !important;
    border-color:#ef4444cc !important;
    background:#155e75 !important;
}

/* Mantem as acoes principais do PDV e do DAV com o mesmo padrao visual. */
.pdv-checkout-actions .pdv-checkout-action {
    min-height:2.55rem;
    font-size:.72rem;
    line-height:1.15;
    border-width:1px !important;
    border-style:solid !important;
    border-radius:9px !important;
}
.pdv-checkout-actions .pdv-checkout-action.app-cancel-button {
    color:#fca5a5 !important;
    border-color:#ef444488 !important;
    background:#ef444416 !important;
    box-shadow:none !important;
}
.pdv-checkout-actions .pdv-checkout-action.app-cancel-button:hover:not(:disabled) {
    color:#fee2e2 !important;
    border-color:#ef4444cc !important;
    background:#ef44443d !important;
}
.pdv-checkout-actions .pdv-checkout-action.pdv-action-btn-primary,
html[data-theme] body .pdv-checkout-actions .pdv-checkout-action.pdv-action-btn-primary {
    color:#fff !important;
    border-color:#14532d !important;
    background:#16a34a !important;
    box-shadow:0 6px 16px rgba(22,163,74,.2) !important;
}
.pdv-checkout-actions .pdv-checkout-action.pdv-action-btn-primary span:last-child {
    color:#fff !important;
}
.pdv-checkout-actions .pdv-checkout-action.pdv-action-btn-primary:hover:not(:disabled),
html[data-theme] body .pdv-checkout-actions .pdv-checkout-action.pdv-action-btn-primary:hover:not(:disabled) {
    color:#111827 !important;
    border-color:#eab308 !important;
    background:#facc15 !important;
}
.pdv-checkout-actions .pdv-checkout-action.pdv-action-btn-primary:hover:not(:disabled) span:last-child,
html[data-theme] body .pdv-checkout-actions .pdv-checkout-action.pdv-action-btn-primary:hover:not(:disabled) span:last-child {
    color:#111827 !important;
}

/* Cartões do catálogo de produtos compartilhado pelo PDV/DAV. */
.pdv-commercial-mode .commercial-product-tile {
    background:#fef08a !important;
    border-color:#eab308 !important;
    color:#000 !important;
}
.pdv-commercial-mode .commercial-product-tile.hidden {
    display:none !important;
}
.pdv-commercial-mode .commercial-product-tile:hover {
    background:#fde047 !important;
    border-color:#ca8a04 !important;
}
.pdv-commercial-mode .commercial-product-name {
    display:block;
    width:100%;
    margin-top:.32rem;
    overflow:visible;
    color:#000 !important;
    font-weight:900 !important;
    line-height:1.22;
    white-space:normal;
    overflow-wrap:anywhere;
    -webkit-line-clamp:unset;
    -webkit-box-orient:initial;
}
.pdv-commercial-mode .commercial-product-meta {
    margin-top:0;
    color:#111827 !important;
    font-weight:900 !important;
}
.pdv-commercial-mode .commercial-product-stock {
    position:absolute;
    top:.6rem;
    right:.6rem;
    color:#166534 !important;
    font-size:.5rem;
    font-weight:900;
    line-height:1;
    white-space:nowrap;
}
.pdv-commercial-mode .commercial-product-tile strong {
    color:#15803d !important;
    font-weight:900 !important;
}

/* Título do catálogo centralizado sobre a barra de pesquisa. */
.pdv-commercial-mode .commercial-browser-head {
    position:relative;
    justify-content:center;
}
.pdv-commercial-mode .commercial-browser-head div {
    width:100%;
    align-items:center;
    padding:0 2.4rem;
    text-align:center;
}
.pdv-commercial-mode .commercial-browser-head span {
    color:#fef08a !important;
    font-size:.68rem !important;
    font-weight:900 !important;
}
.pdv-commercial-mode .commercial-browser-head button {
    position:absolute;
    right:0;
}

/* ================================================================
   Identidade visual oficial das telas internas do ERP
   O terminal de vendas PDV/DAV preserva seu layout operacional.
   ================================================================ */
:root {
    --erp-page-gradient: linear-gradient(135deg, #1c2f37 0%, #1e3532 100%);
    --erp-products-hero: linear-gradient(112deg, rgba(59, 130, 246, .10), #0e1217 48%, rgba(139, 92, 246, .085));
    --erp-card-background: #1c2f37;
    --erp-card-border: #283e48;
    --erp-navigation-background: #172a32;
    --erp-navigation-border: #354e58;
    --erp-field-background: #14272f;
    --erp-field-border: #35505b;
    --erp-field-radius: .5rem;
    --erp-text-primary: #f1f5f9;
    --erp-text-secondary: #b6c6cc;
    --erp-text-muted: #94a3b8;
}

/* Fundo contínuo das páginas internas. */
html body:not(:has(.pdv-viewport)),
html body:not(:has(.pdv-viewport)) .app-screen-frame {
    background: var(--erp-page-gradient) !important;
    color: var(--erp-text-secondary);
}

html body:not(:has(.pdv-viewport)) .app-screen-frame {
    background-attachment: fixed !important;
}

/* Cards, caixas e blocos que antes utilizavam fundos quase pretos. */
html body:not(:has(.pdv-viewport)) main :is(
    .dashboard-card,
    .op-kpi,
    .op-panel,
    .op-alert,
    .op-fiscal,
    .daily-panel,
    .scale-panel,
    .finance-panel,
    .int-panel,
    .product-tax-panel,
    .rp-panel,
    .list-box,
    .toolbar,
    .standard-filter,
    .document-toolbar,
    .carrier-workspace,
    .mdfe-workspace,
    .mdfe-workspace-column,
    .mdfe-treatment-toolbar,
    .nfse-treatment-toolbar
) {
    background-color: var(--erp-card-background) !important;
    background-image: none !important;
    border-color: var(--erp-card-border) !important;
}

/* Documentos NFC-e: neutraliza o header claro legado do tema e replica Produtos. */
html body:not(:has(.pdv-viewport)) main .fiscal-documents-screen {
    background: var(--erp-page-gradient) !important;
    border-color: var(--erp-navigation-border) !important;
    color: var(--erp-text-secondary) !important;
}

html body:not(:has(.pdv-viewport)) main .module-page-hero {
    padding: .75rem 1rem;
    border: 1px solid var(--erp-navigation-border) !important;
    border-radius: .65rem;
    background: var(--erp-products-hero) !important;
    color: var(--erp-text-primary) !important;
}

html body:not(:has(.pdv-viewport)) main .fiscal-documents-screen .documents-hero {
    padding: .75rem 1rem;
    border: 1px solid var(--erp-navigation-border) !important;
    border-radius: .65rem;
    background: var(--erp-products-hero) !important;
    color: var(--erp-text-primary) !important;
}

html body:not(:has(.pdv-viewport)) main .fiscal-documents-screen :is(
    .documents-tabs,
    .documents-filter-panel,
    .documents-list-panel,
    .document-toolbar
) {
    background: var(--erp-card-background) !important;
    border-color: var(--erp-card-border) !important;
    color: var(--erp-text-secondary) !important;
}

html body:not(:has(.pdv-viewport)) main .fiscal-documents-screen table thead {
    background: var(--erp-navigation-background) !important;
    color: var(--erp-text-secondary) !important;
}

/* Componentes particulares dos modulos, igualados aos cards de Produtos. */
html body:not(:has(.pdv-viewport)) main :is(
    .finance-kpi,
    .rp-kpi,
    .rp-filter,
    .rp-action,
    .int-service,
    .empresa-identification-panel,
    .empresa-address-panel,
    .empresa-fiscal-panel,
    .carrier-editor > div,
    .carrier-editor section,
    .mdfe-vehicle-editor > div
) {
    background: var(--erp-card-background) !important;
    border-color: var(--erp-card-border) !important;
}

/* Abrange caixas escuras criadas diretamente com classes utilitárias. */
html body:not(:has(.pdv-viewport)) main :is(section, article, div, form, table, nav):is(
    [class*="bg-[#0e1217]"],
    [class*="bg-[#0b0f14]"],
    [class*="bg-[#0c1015]"],
    [class*="bg-[#0d1117]"],
    [class*="bg-[#0d1218]"],
    [class*="bg-[#0e1319]"],
    [class*="bg-[#101319]"],
    [class*="bg-[#10151b]"],
    [class*="bg-[#11161d]"],
    [class*="bg-[#12161c]"],
    [class*="bg-[#12171c]"],
    [class*="bg-[#14181f]"],
    [class*="bg-[#151a21]"],
    [class*="bg-[#161b22]"],
    [class*="bg-[#171b22]"],
    [class*="bg-[#171c23]"],
    [class*="bg-[#17202a]"],
    [class*="bg-[#181d25]"],
    [class*="bg-[#1c2229]"],
    [class*="bg-[#1e2229]"],
    [class*="bg-[#21252e]"],
    [class*="bg-[#252b34]"],
    [class*="bg-[#272b33]"]
) {
    background-color: var(--erp-card-background) !important;
    background-image: none !important;
    border-color: var(--erp-card-border) !important;
}

/* Cabeçalhos de seção mantêm o degradê, agora alinhado à nova paleta. */
html body:not(:has(.pdv-viewport)) main :is(
    .products-hero,
    .op-hero,
    .daily-hero,
    .cash-hero,
    .scale-hero,
    .finance-hero,
    .rp-hero,
    .int-hero,
    .mdfe-registry-head
) {
    background: var(--erp-products-hero) !important;
    border-color: var(--erp-navigation-border) !important;
}

/* Navegação e elementos flutuantes com recorte nítido sobre o fundo. */
html body:not(:has(.pdv-viewport)) .app-sidebar {
    background: linear-gradient(180deg, #172a32 0%, #14272f 100%) !important;
    border-color: var(--erp-navigation-border) !important;
}

html body:not(:has(.pdv-viewport)) .app-topbar {
    background-color: var(--erp-navigation-background) !important;
    background-image: none !important;
    border-color: var(--erp-navigation-border) !important;
}

html body:not(:has(.pdv-viewport)) :is(.theme-menu, #pdvDialogCard) {
    background-color: var(--erp-card-background) !important;
    background-image: none !important;
    border-color: var(--erp-navigation-border) !important;
}

html body:not(:has(.pdv-viewport)) :is(.app-sidebar, .app-topbar, .theme-menu) {
    color: var(--erp-text-primary) !important;
}

html body:not(:has(.pdv-viewport)) .app-sidebar :is(.nav-item, .nav-sub-item),
html body:not(:has(.pdv-viewport)) .app-topbar :is(h1, .text-white),
html body:not(:has(.pdv-viewport)) .theme-menu button {
    color: var(--erp-text-primary) !important;
}

html body:not(:has(.pdv-viewport)) .app-sidebar :is(.nav-item, .nav-sub-item):hover,
html body:not(:has(.pdv-viewport)) .theme-menu button:hover {
    background-color: rgba(255, 255, 255, 0.07) !important;
}

/* Contraste tipográfico dos conteúdos internos. */
html body:not(:has(.pdv-viewport)) main :is(h1, h2, h3, h4, h5, h6, .text-white, .text-zinc-100, .text-slate-100) {
    color: var(--erp-text-primary) !important;
}

html body:not(:has(.pdv-viewport)) main :is(.text-zinc-200, .text-zinc-300, .text-slate-200, .text-slate-300) {
    color: var(--erp-text-secondary) !important;
}

html body:not(:has(.pdv-viewport)) main :is(.text-zinc-400, .text-zinc-500, .text-zinc-600, .text-slate-400, .text-slate-500, .text-slate-600) {
    color: var(--erp-text-muted) !important;
}

/* Campos permanecem visualmente separados dos cards. */
html body:not(:has(.pdv-viewport)) main :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="submit"]):not([type="button"]) {
    background-color: var(--erp-field-background) !important;
    border-color: var(--erp-field-border) !important;
    border-radius: var(--erp-field-radius) !important;
    color: var(--erp-text-primary) !important;
}

/* Campos com regras locais nas telas fiscais e administrativas antigas. */
html body:not(:has(.pdv-viewport)) main :is(
    .nfe-input,
    .nfe-filter,
    .finance-input,
    .scale-field,
    .rp-date,
    .carrier-editor .nfe-input
) {
    background: var(--erp-field-background) !important;
    border-color: var(--erp-field-border) !important;
    border-radius: var(--erp-field-radius) !important;
    color: var(--erp-text-primary) !important;
}

/* Dimensoes e raio do MDF-e tambem valem para formularios embutidos/iframes. */
html body.nfe-embedded :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),
html body .erp-form-rhythm :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="submit"]):not([type="button"]) {
    width: 100% !important;
    max-width: 100% !important;
    min-height: var(--erp-field-height, 2.5rem) !important;
    padding: var(--erp-field-padding-y, .55rem) var(--erp-field-padding-x, .72rem) !important;
    border-radius: var(--erp-field-radius) !important;
    box-sizing: border-box !important;
}

html body.nfe-embedded :is(input, select):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),
html body .erp-form-rhythm :is(input, select):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="submit"]):not([type="button"]) {
    height: var(--erp-field-height, 2.5rem) !important;
}

/* Tabelas e grades seguem o mesmo recorte cromatico da listagem de Produtos. */
html body:not(:has(.pdv-viewport)) main table {
    background-color: transparent !important;
    color: var(--erp-text-secondary) !important;
    border-color: var(--erp-card-border) !important;
}

html body:not(:has(.pdv-viewport)) main table thead {
    background: var(--erp-navigation-background) !important;
    color: var(--erp-text-secondary) !important;
}

html body:not(:has(.pdv-viewport)) main table :is(th, td),
html body:not(:has(.pdv-viewport)) main :is(.list-box, .dashboard-card, .finance-panel, .rp-panel) :is(header, footer) {
    border-color: var(--erp-card-border) !important;
}

/* Acao principal da emissao NF-e, alinhada ao verde oficial de emitir/transmitir. */
html body.nfe-embedded #nfeForm #nfeFiscalActions button[type="submit"] {
    background: #16a34a !important;
    border: 1px solid #22c55e !important;
    color: #ffffff !important;
    box-shadow: 0 6px 16px rgba(22, 163, 74, .24) !important;
}

html body.nfe-embedded #nfeForm #nfeFiscalActions button[type="submit"]:hover {
    background: #15803d !important;
    border-color: #4ade80 !important;
}

html body:not(:has(.pdv-viewport)) main :is(input, textarea)::placeholder {
    color: var(--erp-text-muted) !important;
    opacity: .9;
}

html body:not(:has(.pdv-viewport)) main .dashboard-shortcut:hover,
html body:not(:has(.pdv-viewport)) main .dashboard-shortcut:focus-visible {
    background-color: #223b44 !important;
    border-color: #3e5b66 !important;
}

/* ================================================================
   Ritmo de formularios e botoes oficiais
   Replica o padrao da tela "Emitir nova NF-e (modelo 55)".
   As classes sao aplicadas semanticamente pelo app.js.
   ================================================================ */
:root {
    --erp-form-gap: .55rem;
    --erp-action-gap: .75rem;
    --erp-action-height: 3rem;
    --erp-action-radius: .5rem;
    --erp-action-padding-x: 1.5rem;
    --erp-button-height: 3rem;
    --erp-button-padding-x: 1.5rem;
    --erp-button-min-width: 9rem;
    --erp-field-height: 2.5rem;
    --erp-field-padding-y: .55rem;
    --erp-field-padding-x: .72rem;
}

/* Dimensoes unificadas dos botoes textuais comuns em todas as telas. */
html body button.erp-standard-button.erp-standard-button,
html body input.erp-standard-button.erp-standard-button[type="submit"] {
    min-height: var(--erp-button-height) !important;
    height: var(--erp-button-height) !important;
    width: auto !important;
    min-width: var(--erp-button-min-width) !important;
    padding-top: .625rem !important;
    padding-right: var(--erp-button-padding-x) !important;
    padding-bottom: .625rem !important;
    padding-left: var(--erp-button-padding-x) !important;
    border-radius: var(--erp-action-radius) !important;
    font-size: .875rem !important;
    line-height: 1.15 !important;
    box-sizing: border-box;
    white-space: nowrap;
}

html body .erp-standard-button.w-full {
    width: 100% !important;
}

/* Acoes das linhas permanecem compactas para a tabela caber sem rolagem lateral. */
html body .product-list-actions > button,
html body .product-list-actions > form > button {
    width: auto !important;
    min-width: 0 !important;
    height: 2rem !important;
    min-height: 2rem !important;
    padding: .375rem .625rem !important;
    border-radius: .5rem !important;
    font-size: .625rem !important;
    line-height: 1 !important;
    white-space: nowrap;
}

/* Sair/Fechar continua compacto e igual em todos os modais do sistema. */
html body :is(button, a).erp-exit-button.erp-exit-button {
    width: auto !important;
    min-width: 0 !important;
    height: 2.25rem !important;
    min-height: 2.25rem !important;
    padding: .45rem .75rem !important;
    border: 1px solid #52525b !important;
    border-radius: .5rem !important;
    background: #27272a !important;
    color: #e4e4e7 !important;
    font-size: .75rem !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    box-shadow: none !important;
    white-space: nowrap;
}

html body :is(button, a).erp-exit-button.erp-exit-button:hover {
    border-color: #71717a !important;
    background: #3f3f46 !important;
    color: #ffffff !important;
}

.erp-form-rhythm:is(.flex, .grid) {
    gap: var(--erp-form-gap) !important;
}

.erp-form-rhythm .erp-field-grid {
    gap: var(--erp-form-gap) !important;
}

.erp-form-rhythm .erp-form-card {
    padding: .65rem .75rem !important;
    border-radius: .6rem !important;
}

.erp-form-rhythm .erp-form-card > :is(.grid, .flex) {
    row-gap: var(--erp-form-gap) !important;
}

/* Barra compartilhada pelos formularios Novo Produto e Cliente/Destinatario. */
html body .product-modal-actions {
    position: static;
    z-index: 5;
    width: 100%;
    min-height: auto;
    align-items: center;
    justify-content: flex-end;
    margin-top: .1rem !important;
    padding: .75rem 0 0 !important;
    border-top: 1px solid #283e48;
    background: transparent !important;
}

html body .product-modal-actions > button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-width: 1px !important;
    border-style: solid !important;
    font-weight: 900 !important;
    text-transform: uppercase;
}

html body .product-modal-actions .product-cancel-button {
    min-width: 9rem;
    color: #fca5a5 !important;
    border-color: #ef444488 !important;
    background: #ef444416 !important;
    box-shadow: none !important;
}

html body .product-modal-actions .product-cancel-button:hover:not(:disabled) {
    color: #fee2e2 !important;
    border-color: #ef4444cc !important;
    background: #ef44443d !important;
}

html body .product-modal-actions .product-save-button {
    min-width: 12.5rem;
    color: #ffffff !important;
    border-color: #14532d !important;
    background: #16a34a !important;
    box-shadow: 0 6px 16px rgba(22, 163, 74, .2) !important;
}

html body .product-modal-actions .product-save-button:hover:not(:disabled) {
    color: #111827 !important;
    border-color: #eab308 !important;
    background: #facc15 !important;
}

.erp-form-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: var(--erp-action-gap) !important;
    margin-top: .35rem;
    padding-top: .25rem;
}

.erp-form-actions > :is(button, a, input[type="submit"]),
.erp-primary-action {
    min-height: var(--erp-action-height) !important;
    height: var(--erp-action-height) !important;
    padding-left: var(--erp-action-padding-x) !important;
    padding-right: var(--erp-action-padding-x) !important;
    border-radius: var(--erp-action-radius) !important;
    font-size: .875rem !important;
    line-height: 1.15 !important;
    font-weight: 800 !important;
    white-space: nowrap;
}

/*
 * Algumas telas possuem CSS local carregado depois do tema global.
 * Esta camada garante que o tamanho oficial do MDF-e (48 px) prevaleca
 * em toda barra de acoes, sem atingir filtros e controles compactos.
 */
html body .erp-form-actions.erp-form-actions > :is(button, a, input[type="submit"]),
html body .product-modal-actions.erp-form-actions > button,
html body #nfeFiscalActions.erp-form-actions > button,
html body #nfseActions.erp-form-actions > button,
html body #mdfeActions.erp-form-actions > button {
    min-height: var(--erp-action-height) !important;
    height: var(--erp-action-height) !important;
    width: auto !important;
    min-width: var(--erp-button-min-width) !important;
    padding-left: var(--erp-action-padding-x) !important;
    padding-right: var(--erp-action-padding-x) !important;
    border-radius: var(--erp-action-radius) !important;
    font-size: .875rem !important;
    line-height: 1.15 !important;
    letter-spacing: 0 !important;
}

html body .erp-primary-action,
html body.nfe-embedded .erp-primary-action {
    color: #ffffff !important;
    border: 1px solid #22c55e !important;
    background: #16a34a !important;
    box-shadow: 0 6px 16px rgba(22, 163, 74, .24) !important;
}

html body .erp-primary-action:hover:not(:disabled),
html body .erp-primary-action:focus-visible:not(:disabled) {
    color: #ffffff !important;
    border-color: #4ade80 !important;
    background: #15803d !important;
    box-shadow: 0 8px 20px rgba(22, 163, 74, .30) !important;
}

.erp-form-actions > .app-cancel-button {
    color: #fca5a5 !important;
    border-color: #ef444488 !important;
    background: #ef444416 !important;
    box-shadow: none !important;
}

@media (max-width: 639px) {
    .erp-form-actions {
        align-items: stretch !important;
    }

    .erp-form-actions > :is(button, a, input[type="submit"]) {
        width: 100%;
        min-width: 0 !important;
    }

    html body .erp-standard-button {
        max-width: 100%;
    }
}

/* Atenção reutilizável para o botão principal de formulários modais. */
@keyframes chamaAtencaoSalvar {
    0%, 100% {
        transform: translateX(0) scale(1);
        filter: brightness(1);
        box-shadow: 0 6px 16px rgba(22, 163, 74, .2);
    }
    22% {
        transform: translateX(-2px) scale(1.055);
        filter: brightness(1.3);
        box-shadow: 0 0 0 5px rgba(250, 204, 21, .28), 0 12px 30px rgba(22, 163, 74, .48);
    }
    44% {
        transform: translateX(2px) scale(1.04);
        filter: brightness(1.2);
    }
    66% {
        transform: translateX(-1px) scale(1.055);
        filter: brightness(1.3);
        box-shadow: 0 0 0 5px rgba(250, 204, 21, .24), 0 12px 30px rgba(22, 163, 74, .42);
    }
    84% {
        transform: translateX(1px) scale(1.02);
        filter: brightness(1.1);
    }
}

.chama-atencao {
    position: relative;
    z-index: 2;
    transform-origin: center;
    outline: 3px solid rgba(250, 204, 21, .9) !important;
    outline-offset: 3px;
    animation: chamaAtencaoSalvar 500ms ease-in-out !important;
}

@media (prefers-reduced-motion: reduce) {
    .chama-atencao {
        animation: none !important;
        filter: brightness(1.25);
    }
}

/* Moldura e largura unificadas do terminal (PDV e DAV). */
html body:has(.pdv-viewport) .pdv-monitor-container {
    box-sizing: border-box;
    border: 2px solid rgba(245, 158, 11, .88) !important;
}

/* No modo sistema, a linha amarela encosta na moldura lateral cinza. */
html body:not(.sidebar-hidden) .app-screen-frame:has(.pdv-viewport) {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

html body:not(.sidebar-hidden) .pdv-viewport,
html body:not(.sidebar-hidden) .pdv-scale-stage,
html body:not(.sidebar-hidden) .pdv-monitor-container {
    width: 100% !important;
    max-width: none !important;
}

html body:not(.sidebar-hidden) .pdv-viewport {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

html body:not(.sidebar-hidden) .pdv-scale-stage,
html body:not(.sidebar-hidden) .pdv-monitor-container {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* ================================================================
   VAREJO PROFISSIONAL — IDENTIDADE CLARA COMPLETA
   Paleta aplicada somente ao tema pdv-corporate. A estrutura, dimensões
   e comportamento operacional do PDV/DAV permanecem inalterados.
   ================================================================ */
html[data-theme="pdv-corporate"] {
    color-scheme: light;
    --varejo-bg-light: #eef3f8;
    --varejo-surface: #ffffff;
    --varejo-surface-soft: #f8fafc;
    --varejo-dark: #0f2742;
    --varejo-panel: #1e3a5f;
    --varejo-panel-hover: #294d78;
    --varejo-light-blue: #3b82f6;
    --varejo-accent: #f59e0b;
    --varejo-success: #16a34a;
    --varejo-danger: #e11d48;
    --varejo-text-dark: #172033;
    --varejo-text: #334155;
    --varejo-muted: #64748b;
    --varejo-border: #d5dee8;
    --varejo-border-strong: #aebed1;

    /* As telas internas existentes já consomem estas variáveis ERP. */
    --erp-page-gradient: linear-gradient(135deg, #edf3f8 0%, #f8fafc 52%, #e7eff7 100%);
    --erp-products-hero: linear-gradient(112deg, #173553 0%, #1e3a5f 50%, #234d70 100%);
    --erp-card-background: var(--varejo-surface);
    --erp-card-border: var(--varejo-border);
    --erp-navigation-background: var(--varejo-panel);
    --erp-navigation-border: #315477;
    --erp-field-background: var(--varejo-surface);
    --erp-field-border: var(--varejo-border-strong);
    --erp-text-primary: var(--varejo-text-dark);
    --erp-text-secondary: var(--varejo-text);
    --erp-text-muted: var(--varejo-muted);
}

/* Área clara das páginas administrativas. */
html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)),
html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) .app-screen-frame,
html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) main {
    background: var(--erp-page-gradient) !important;
    color: var(--varejo-text) !important;
}

/* Sidebar e topo seguem a identidade azul-escura do PDV. */
html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) .app-sidebar {
    background: linear-gradient(180deg, #0f2742 0%, #142f4d 58%, #0b2037 100%) !important;
    border-color: #315477 !important;
    color: #ffffff !important;
    text-shadow: none !important;
    box-shadow: 5px 0 22px rgba(15, 39, 66, .18) !important;
}

html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) .app-topbar {
    background: linear-gradient(100deg, #173553, #1e3a5f) !important;
    border-color: #315477 !important;
    color: #ffffff !important;
    text-shadow: none !important;
    box-shadow: 0 4px 16px rgba(15, 39, 66, .18) !important;
}

html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) .app-sidebar :is(.nav-item, .nav-sub-item),
html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) .app-sidebar :is(.text-white, .text-slate-300, .text-zinc-300, .text-zinc-400),
html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) .app-topbar :is(h1, span, .text-white, .text-zinc-300, .text-zinc-400) {
    color: #f8fafc !important;
    text-shadow: none !important;
}

html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) .app-sidebar :is(.text-zinc-500, .text-zinc-600) {
    color: #aebfd0 !important;
}

html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) .app-sidebar .nav-sub {
    background: rgba(8, 28, 48, .46) !important;
    border-color: #315477 !important;
}

html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) .app-sidebar :is(.nav-item, .nav-sub-item):hover {
    background: var(--varejo-panel-hover) !important;
    color: #ffffff !important;
}

html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) .app-sidebar :is(.nav-item, .nav-sub-item).active {
    background: #244d74 !important;
    border-color: var(--varejo-accent) !important;
    color: #fbbf24 !important;
    box-shadow: inset 3px 0 0 var(--varejo-accent) !important;
}

/* Cards e painéis claros em todos os módulos administrativos. */
html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) main :is(
    .dashboard-card,
    .erp-form-card,
    .op-kpi,
    .op-panel,
    .op-alert,
    .op-fiscal,
    .daily-panel,
    .scale-panel,
    .finance-panel,
    .finance-kpi,
    .int-panel,
    .int-service,
    .rp-panel,
    .rp-kpi,
    .rp-filter,
    .product-tax-panel,
    .list-box,
    .toolbar,
    .standard-filter,
    .documents-filter-panel,
    .documents-list-panel,
    .document-toolbar,
    .carrier-workspace,
    .mdfe-workspace,
    .mdfe-workspace-column
) {
    background: var(--varejo-surface) !important;
    border-color: var(--varejo-border) !important;
    color: var(--varejo-text) !important;
    box-shadow: 0 7px 22px rgba(30, 58, 95, .07) !important;
}

/* Neutraliza fundos escuros legados sem atingir botões coloridos. */
html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) main :is(section, article, div, form, table, nav):is(
    [class*="bg-[#0e1217]"],
    [class*="bg-[#0b0f14]"],
    [class*="bg-[#0c1015]"],
    [class*="bg-[#0d1117]"],
    [class*="bg-[#0d1218]"],
    [class*="bg-[#101319]"],
    [class*="bg-[#11161d]"],
    [class*="bg-[#12161c]"],
    [class*="bg-[#14181f]"],
    [class*="bg-[#151a21]"],
    [class*="bg-[#161b22]"],
    [class*="bg-[#171b22]"],
    [class*="bg-[#17202a]"],
    [class*="bg-[#181d25]"],
    [class*="bg-[#1c2229]"],
    [class*="bg-[#1e2229]"],
    [class*="bg-[#21252e]"],
    [class*="bg-[#252b34]"],
    [class*="bg-[#272b33]"]
) {
    background-color: var(--varejo-surface) !important;
    background-image: none !important;
    border-color: var(--varejo-border) !important;
    color: var(--varejo-text) !important;
}

html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) main :is(
    h1, h2, h3, h4, h5, h6,
    .text-white, .text-zinc-100, .text-slate-100
) {
    color: var(--varejo-text-dark) !important;
}

html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) main :is(
    .text-zinc-200, .text-zinc-300, .text-slate-200, .text-slate-300
) {
    color: var(--varejo-text) !important;
}

html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) main :is(
    .text-zinc-400, .text-zinc-500, .text-zinc-600,
    .text-slate-400, .text-slate-500, .text-slate-600
) {
    color: var(--varejo-muted) !important;
}

/* Formulários claros e foco azul uniforme. */
html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) main :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="submit"]):not([type="button"]) {
    background: var(--varejo-surface) !important;
    border-color: var(--varejo-border-strong) !important;
    color: var(--varejo-text-dark) !important;
    box-shadow: inset 0 1px 2px rgba(30, 58, 95, .05) !important;
}

html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) main :is(input, select, textarea):focus {
    border-color: var(--varejo-light-blue) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, .16) !important;
}

html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) main :is(input, textarea)::placeholder {
    color: #8795a8 !important;
    opacity: 1;
}

html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) main label {
    color: #475569 !important;
}

/* Tabelas com cabeçalho azul-claro e leitura escura. */
html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) main table {
    background: var(--varejo-surface) !important;
    color: var(--varejo-text-dark) !important;
}

html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) main thead {
    background: #e7f0fa !important;
    color: var(--varejo-panel) !important;
}

html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) main tbody tr {
    border-color: #dde5ee !important;
}

html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) main tbody tr:hover {
    background: #edf6ff !important;
}

/* Modais e menus acompanham os cards brancos. */
html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) :is(.theme-menu, #pdvDialogCard),
html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) [id*="modal" i].fixed > div:not([class*="absolute"]),
html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) [role="dialog"].fixed > div:not([class*="absolute"]) {
    background: var(--varejo-surface) !important;
    border-color: var(--varejo-border-strong) !important;
    color: var(--varejo-text-dark) !important;
    box-shadow: 0 20px 55px rgba(15, 39, 66, .22) !important;
}

html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) .theme-menu button {
    color: var(--varejo-text-dark) !important;
}

html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) .theme-menu button:hover,
html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) .theme-menu button.active {
    background: #e7f0fa !important;
    color: var(--varejo-panel) !important;
}

/* PDV e DAV: mesma paleta, sem qualquer mudança estrutural. */
html[data-theme="pdv-corporate"] body:has(.pdv-viewport),
html[data-theme="pdv-corporate"] body:has(.pdv-viewport) main,
html[data-theme="pdv-corporate"] .pdv-viewport {
    background: var(--varejo-bg-light) !important;
}

html[data-theme="pdv-corporate"] body:has(.pdv-viewport) :is(.app-sidebar, .app-topbar) {
    background-image: linear-gradient(135deg, #0f2742, #1e3a5f) !important;
    border-color: #315477 !important;
    color: #ffffff !important;
    text-shadow: none !important;
}

html[data-theme="pdv-corporate"] .pdv-monitor-container {
    background: linear-gradient(145deg, #8d9cab, #66798a) !important;
    border-color: #315477 !important;
    box-shadow: 0 0 0 1px rgba(59, 130, 246, .38), 0 16px 38px rgba(15, 39, 66, .22) !important;
}

html[data-theme="pdv-corporate"] .pdv-monitor-container > .grid,
html[data-theme="pdv-corporate"] .pdv-workspace {
    background: linear-gradient(135deg, #edf3f8, #dce5ed) !important;
}

html[data-theme="pdv-corporate"] :is(.pdv-selection-panel, .pdv-receipt-panel, #terminalCheckoutPanel) {
    background-color: var(--varejo-surface) !important;
    border-color: var(--varejo-border-strong) !important;
}

html[data-theme="pdv-corporate"] :is(.pdv-brand-header, .pdv-checkout-head, .pdv-total-bar, .pdv-shortcuts-bar) {
    background: linear-gradient(105deg, #173553, #1e3a5f) !important;
    border-color: #315477 !important;
}

html[data-theme="pdv-corporate"] :is(.pdv-action-btn-primary, .pdv-monitor-container .pdv-action-btn-primary) {
    background: linear-gradient(180deg, #22c55e, var(--varejo-success)) !important;
    border-color: #15803d !important;
    color: #ffffff !important;
}

/* Cabeçalhos de módulo permanecem escuros, com contraste branco. */
html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) main :is(
    .module-page-hero,
    .products-hero,
    .documents-hero,
    .op-hero,
    .daily-hero,
    .cash-hero,
    .scale-hero,
    .finance-hero,
    .rp-hero,
    .int-hero,
    .mdfe-registry-head
) {
    background: var(--erp-products-hero) !important;
    border-color: #315477 !important;
    color: #ffffff !important;
}

html[data-theme="pdv-corporate"] body:not(:has(.pdv-viewport)) main :is(
    .module-page-hero,
    .products-hero,
    .documents-hero,
    .op-hero,
    .daily-hero,
    .cash-hero,
    .scale-hero,
    .finance-hero,
    .rp-hero,
    .int-hero,
    .mdfe-registry-head
) :is(h1, h2, h3, h4, h5, h6, .text-white, .text-zinc-100, .text-zinc-200, .text-zinc-300, .text-zinc-400) {
    color: #f8fafc !important;
}

/* ================================================================
   Campos editáveis — padrão branco azulado em todo o sistema.
   A grade de produtos do PDV/DAV é uma área operacional protegida.
   ================================================================ */
html body :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="range"]):not([type="color"]):not(.commercial-product-grid *) {
    background-color: #f5fbfa !important;
    background-image: none !important;
    border-color: #328092 !important;
    color: #123b46 !important;
    caret-color: #123b46;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8), 0 1px 3px rgba(8, 47, 58, .08) !important;
}

html body :is(input, textarea):not(.commercial-product-grid *)::placeholder {
    color: #527783 !important;
    opacity: 1;
}

html body select:not(.commercial-product-grid *) option {
    background-color: #f5fbfa;
    color: #123b46;
}

html body :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="range"]):not([type="color"]):not(.commercial-product-grid *):focus {
    border-color: #159a8c !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(21, 154, 140, .16), inset 0 1px 0 rgba(255, 255, 255, .85) !important;
}

/* ================================================================
   Fundo azul-claro unificado em todas as telas interativas.
   Os componentes internos mantêm seus próprios fundos e contraste.
   ================================================================ */
:root {
    --system-screen-background: #dcefed;
    --system-container-background: #174d58;
    --system-container-border: #3e7f89;
}

html,
html body,
html body .app-screen-frame,
html body .pdv-viewport,
html body main .fiscal-documents-screen {
    background-color: var(--system-screen-background) !important;
    background-image: none !important;
}

body.system-auth-screen > div > .text-center :is(h1, p) {
    color: #123b46 !important;
}

/* ================================================================
   Superfície única dos containers — azul-petróleo claro do dashboard.
   ================================================================ */
html[data-theme] {
    --system-container-background: #174d58;
    --system-container-border: #3e7f89;
    --erp-card-background: var(--system-container-background);
    --app-card-start: var(--system-container-background);
    --app-card-middle: var(--system-container-background);
    --app-card-end: var(--system-container-background);
    --app-card-gradient: linear-gradient(145deg, var(--system-container-background), var(--system-container-background));
    --app-surface: var(--system-container-background);
    --fiscal-bg: var(--system-container-background);
    --fiscal-panel: var(--system-container-background);
}

html body :is(
    .dashboard-card,
    .op-kpi,
    .op-panel,
    .op-alert,
    .op-fiscal,
    .daily-panel,
    .scale-panel,
    .finance-panel,
    .finance-kpi,
    .int-panel,
    .int-service,
    .product-tax-panel,
    .rp-panel,
    .rp-kpi,
    .rp-filter,
    .rp-action,
    .list-box,
    .toolbar,
    .standard-filter,
    .document-toolbar,
    .documents-tabs,
    .documents-filter-panel,
    .documents-list-panel,
    .carrier-workspace,
    .mdfe-workspace,
    .mdfe-workspace-column,
    .mdfe-treatment-toolbar,
    .nfse-treatment-toolbar,
    .empresa-identification-panel,
    .empresa-address-panel,
    .empresa-fiscal-panel
),
html body :is(section, article, div, form, table, nav, main):is(
    [class*="bg-[#0e1217]"],
    [class*="bg-[#0b0f14]"],
    [class*="bg-[#0c1015]"],
    [class*="bg-[#0d1117]"],
    [class*="bg-[#0d1218]"],
    [class*="bg-[#0e1319]"],
    [class*="bg-[#101319]"],
    [class*="bg-[#10151b]"],
    [class*="bg-[#11161d]"],
    [class*="bg-[#12161c]"],
    [class*="bg-[#12171c]"],
    [class*="bg-[#14181f]"],
    [class*="bg-[#151a21]"],
    [class*="bg-[#161b22]"],
    [class*="bg-[#171b22]"],
    [class*="bg-[#171c23]"],
    [class*="bg-[#17202a]"],
    [class*="bg-[#181d25]"],
    [class*="bg-[#1c2229]"],
    [class*="bg-[#1e2229]"],
    [class*="bg-[#21252e]"],
    [class*="bg-[#252b34]"],
    [class*="bg-[#272b33]"]
),
html body [id*="modal" i].fixed > div:not([class*="absolute"]),
html body [role="dialog"].fixed > div:not([class*="absolute"]) {
    background-color: var(--system-container-background) !important;
    background-image: none !important;
    border-color: var(--system-container-border) !important;
    color: #f1f5f9 !important;
}

html body :is(
    .dashboard-card,
    .op-kpi,
    .op-panel,
    .daily-panel,
    .scale-panel,
    .finance-panel,
    .int-panel,
    .rp-panel,
    .list-box,
    .documents-tabs,
    .documents-filter-panel,
    .documents-list-panel,
    .carrier-workspace,
    .mdfe-workspace,
    .empresa-identification-panel,
    .empresa-address-panel,
    .empresa-fiscal-panel
) :is(h1, h2, h3, h4, h5, h6, strong, .text-white, .text-zinc-100, .text-zinc-200, .text-zinc-300, .text-zinc-400) {
    color: #f1f5f9 !important;
}

html body :is(
    .dashboard-card,
    .op-kpi,
    .op-panel,
    .daily-panel,
    .scale-panel,
    .finance-panel,
    .int-panel,
    .rp-panel,
    .list-box,
    .documents-tabs,
    .documents-filter-panel,
    .documents-list-panel,
    .carrier-workspace,
    .mdfe-workspace,
    .empresa-identification-panel,
    .empresa-address-panel,
    .empresa-fiscal-panel
) :is(.text-zinc-500, .text-zinc-600) {
    color: #a9c8cc !important;
}

/* Administração: supera as superfícies brancas específicas do tema varejo. */
html[data-theme] body.administration-module:not(:has(.pdv-viewport)) main.app-screen-frame :is(
    .dashboard-card,
    .erp-form-card,
    .daily-panel,
    .daily-hero,
    .scale-panel,
    .scale-hero,
    .int-panel,
    .int-service,
    .int-hero,
    .module-page-hero,
    .list-box,
    .toolbar,
    .standard-filter,
    #empresaPanelDados,
    #empresaPanelParametros
),
html[data-theme] body.administration-module:not(:has(.pdv-viewport)) main.app-screen-frame :is(section, article, div, form, table, nav, aside):is(
    [class*="bg-[#0e1217]"],
    [class*="bg-[#0b0f14]"],
    [class*="bg-[#0c1015]"],
    [class*="bg-[#0d1117]"],
    [class*="bg-[#0d1218]"],
    [class*="bg-[#0e1319]"],
    [class*="bg-[#101319]"],
    [class*="bg-[#10151b]"],
    [class*="bg-[#11161d]"],
    [class*="bg-[#12161c]"],
    [class*="bg-[#12171c]"],
    [class*="bg-[#14181f]"],
    [class*="bg-[#151a21]"],
    [class*="bg-[#161b22]"],
    [class*="bg-[#171b22]"],
    [class*="bg-[#17202a]"],
    [class*="bg-[#181d25]"],
    [class*="bg-[#1c2229]"],
    [class*="bg-[#1e2229]"],
    [class*="bg-[#21252e]"],
    [class*="bg-[#252b34]"],
    [class*="bg-[#272b33]"],
    [class*="bg-zinc-900"]
) {
    background-color: var(--system-container-background) !important;
    background-image: none !important;
    border-color: var(--system-container-border) !important;
    color: #f1f5f9 !important;
    box-shadow: 0 8px 22px rgba(8, 47, 58, .12) !important;
}

html[data-theme] body.administration-module:not(:has(.pdv-viewport)) main.app-screen-frame table {
    background: var(--system-container-background) !important;
    color: #e7f3f4 !important;
}

html[data-theme] body.administration-module:not(:has(.pdv-viewport)) main.app-screen-frame thead {
    background: #123b46 !important;
    color: #c6dde0 !important;
}

html[data-theme] body.administration-module:not(:has(.pdv-viewport)) main.app-screen-frame tbody tr {
    border-color: #2d6872 !important;
}

html[data-theme] body.administration-module:not(:has(.pdv-viewport)) main.app-screen-frame tbody tr:hover {
    background: #1d5b66 !important;
}

html[data-theme] body.administration-module:not(:has(.pdv-viewport)) :is(.theme-menu, #pdvDialogCard),
html[data-theme] body.administration-module:not(:has(.pdv-viewport)) [id*="modal" i].fixed > div:not([class*="absolute"]),
html[data-theme] body.administration-module:not(:has(.pdv-viewport)) [role$="dialog"].fixed > div:not([class*="absolute"]) {
    background-color: var(--system-container-background) !important;
    background-image: none !important;
    color: #f1f5f9 !important;
}

html[data-theme] body.administration-module:not(:has(.pdv-viewport)) main.app-screen-frame :is(h1, h2, h3, h4, h5, h6, strong, label, th, td, dt, dd, p, span):is(
    .text-white,
    .text-zinc-100,
    .text-zinc-200,
    .text-zinc-300,
    .text-zinc-400,
    .text-slate-100,
    .text-slate-200,
    .text-slate-300,
    .text-slate-400
) {
    color: #e7f3f4 !important;
}

html[data-theme] body.administration-module:not(:has(.pdv-viewport)) main.app-screen-frame :is(p, span, small, label, td, th, dt, dd):is(
    .text-zinc-500,
    .text-zinc-600,
    .text-slate-500,
    .text-slate-600
) {
    color: #a9c8cc !important;
}

/* Botões neutros escuros seguem o mesmo azul-marinho do cabeçalho principal. */
html[data-theme] body :is(button, a, input[type="button"], input[type="reset"], input[type="submit"]):is(
    .erp-exit-button,
    [class~="bg-black"],
    [class*="bg-black/"],
    [class~="bg-zinc-900"],
    [class*="bg-zinc-900/"],
    [class~="bg-zinc-800"],
    [class*="bg-zinc-800/"],
    [class*="bg-[#0e1217]"],
    [class*="bg-[#0b0f14]"],
    [class*="bg-[#0c1015]"],
    [class*="bg-[#0d1117]"],
    [class*="bg-[#0d1218]"],
    [class*="bg-[#0e1319]"],
    [class*="bg-[#101319]"],
    [class*="bg-[#10151b]"],
    [class*="bg-[#11161d]"],
    [class*="bg-[#12161c]"],
    [class*="bg-[#12171c]"],
    [class*="bg-[#14181f]"],
    [class*="bg-[#151a21]"],
    [class*="bg-[#161b22]"],
    [class*="bg-[#171b22]"],
    [class*="bg-[#171c23]"],
    [class*="bg-[#17202a]"],
    [class*="bg-[#181d25]"],
    [class*="bg-[#1b2129]"],
    [class*="bg-[#1c2229]"],
    [class*="bg-[#1e2229]"],
    [class*="bg-[#20252d]"],
    [class*="bg-[#21252e]"],
    [class*="bg-[#252b34]"],
    [class*="bg-[#27272a]"],
    [class*="bg-[#2a3038]"]
):not(.app-cancel-button) {
    background: linear-gradient(100deg, #173553 0%, #1e3a5f 100%) !important;
    border-color: #315477 !important;
    color: #f8fafc !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 4px 12px rgba(15, 39, 66, .16) !important;
}

html[data-theme] body :is(button, a, input[type="button"], input[type="reset"], input[type="submit"]):is(
    .erp-exit-button,
    [class~="bg-black"],
    [class*="bg-black/"],
    [class~="bg-zinc-900"],
    [class*="bg-zinc-900/"],
    [class~="bg-zinc-800"],
    [class*="bg-zinc-800/"],
    [class*="bg-[#0e1217]"],
    [class*="bg-[#0b0f14]"],
    [class*="bg-[#14181f]"],
    [class*="bg-[#1b2129]"],
    [class*="bg-[#20252d]"],
    [class*="bg-[#27272a]"],
    [class*="bg-[#2a3038]"]
):not(.app-cancel-button):hover:not(:disabled),
html[data-theme] body :is(button, a, input[type="button"], input[type="reset"], input[type="submit"]):is(
    .erp-exit-button,
    [class~="bg-black"],
    [class*="bg-black/"],
    [class~="bg-zinc-900"],
    [class*="bg-zinc-900/"],
    [class~="bg-zinc-800"],
    [class*="bg-zinc-800/"],
    [class*="bg-[#0e1217]"],
    [class*="bg-[#0b0f14]"],
    [class*="bg-[#14181f]"],
    [class*="bg-[#1b2129]"],
    [class*="bg-[#20252d]"],
    [class*="bg-[#27272a]"],
    [class*="bg-[#2a3038]"]
):not(.app-cancel-button):focus-visible:not(:disabled) {
    background: linear-gradient(100deg, #1e4165 0%, #28577d 100%) !important;
    border-color: #4b7297 !important;
}

html[data-theme] body .pdv-other-payments button:not(.active),
html[data-theme] body .pdv-installment-stepper button {
    background: linear-gradient(100deg, #173553 0%, #1e3a5f 100%) !important;
    border-color: #315477 !important;
    color: #f8fafc !important;
}

html[data-theme] body .pdv-other-payments button:not(.active):hover,
html[data-theme] body .pdv-installment-stepper button:hover {
    background: linear-gradient(100deg, #1e4165 0%, #28577d 100%) !important;
    border-color: #4b7297 !important;
}
/* Clientes: cabeçalho alinhado à paleta azul-petróleo do sistema. */
html[data-theme] body:not(:has(.pdv-viewport)) main.app-screen-frame .customer-page-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: linear-gradient(110deg, #123b46 0%, #174d58 55%, #155e75 100%) !important;
    border-color: #3e9b94 !important;
    border-radius: .8rem;
    box-shadow:
        0 0 0 1px rgba(94, 234, 212, .10),
        0 0 18px rgba(45, 212, 191, .18),
        0 8px 22px rgba(8, 47, 58, .18),
        inset 0 1px 0 rgba(153, 246, 228, .30) !important;
}

html[data-theme] body:not(:has(.pdv-viewport)) main.app-screen-frame .customer-page-hero::after {
    content: "";
    position: absolute;
    z-index: 0;
    width: 220px;
    height: 220px;
    top: -145px;
    right: -80px;
    border-radius: 999px;
    background: rgba(94, 234, 212, .10);
    pointer-events: none;
}

html[data-theme] body:not(:has(.pdv-viewport)) main.app-screen-frame .customer-page-hero > * {
    position: relative;
    z-index: 1;
}

html[data-theme] body:not(:has(.pdv-viewport)) main.app-screen-frame .customer-page-hero h2 {
    color: #f8fafc !important;
}

html[data-theme] body:not(:has(.pdv-viewport)) main.app-screen-frame .customer-page-hero p:not(.text-rose-400) {
    color: #b7d4d8 !important;
}

/* ================================================================
   CRYSTAL TECH — identidade visual oficial do sistema.
   Profundidade serena, reflexos controlados e leitura confortável.
   ================================================================ */
:root {
    --crystal-surface: linear-gradient(135deg, #174d58 0%, #1a5662 62%, #175b6b 100%);
    --crystal-header: linear-gradient(112deg, #103d4a 0%, #176277 58%, #1789a5 100%);
    --crystal-border: rgba(165, 243, 252, .48);
    --crystal-copy: #c4e8ec;
    --crystal-shadow: 0 9px 22px rgba(8, 47, 58, .16);
}

html body {
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
}

html[data-theme] body:not(:has(.pdv-viewport)) main.app-screen-frame :is(
    .dashboard-card,
    .op-kpi,
    .op-panel,
    .op-alert,
    .op-fiscal,
    .daily-panel,
    .scale-panel,
    .finance-panel,
    .finance-kpi,
    .int-panel,
    .int-service,
    .product-tax-panel,
    .rp-panel,
    .rp-kpi,
    .rp-filter,
    .rp-action,
    .list-box,
    .toolbar,
    .standard-filter,
    .document-toolbar,
    .documents-tabs,
    .documents-filter-panel,
    .documents-list-panel,
    .carrier-workspace,
    .mdfe-workspace,
    .mdfe-workspace-column,
    .mdfe-treatment-toolbar,
    .nfse-treatment-toolbar,
    .empresa-identification-panel,
    .empresa-address-panel,
    .empresa-fiscal-panel,
    .erp-form-card,
    #empresaPanelDados,
    #empresaPanelParametros
) {
    background: var(--crystal-surface) !important;
    border-color: rgba(94, 234, 212, .30) !important;
    box-shadow:
        inset 0 1px 0 rgba(204, 251, 241, .17),
        var(--crystal-shadow) !important;
}

html[data-theme] body:not(:has(.pdv-viewport)) main.app-screen-frame .module-page-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: var(--crystal-header) !important;
    border-color: var(--crystal-border) !important;
    border-radius: .9rem;
    box-shadow:
        inset 0 1px 0 rgba(236, 254, 255, .62),
        inset 0 -2px 0 rgba(7, 48, 60, .38),
        0 0 0 1px rgba(34, 211, 238, .08),
        0 9px 22px rgba(8, 47, 58, .19) !important;
}

html[data-theme] body:not(:has(.pdv-viewport)) main.app-screen-frame .module-page-hero::before {
    content: "";
    position: absolute;
    z-index: 0;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(158deg, rgba(255, 255, 255, .24) 0%, rgba(255, 255, 255, .08) 29%, transparent 29.5%);
    pointer-events: none;
}

html[data-theme] body:not(:has(.pdv-viewport)) main.app-screen-frame .module-page-hero > * {
    position: relative;
    z-index: 1;
}

html[data-theme] body:not(:has(.pdv-viewport)) main.app-screen-frame .module-page-hero :is(h1, h2, h3, h4) {
    color: #f4feff !important;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
    letter-spacing: .015em;
    text-shadow: 0 1px 2px rgba(4, 31, 40, .42);
}

html[data-theme] body:not(:has(.pdv-viewport)) main.app-screen-frame .module-page-hero p:not(.text-rose-400) {
    color: var(--crystal-copy) !important;
}

/* Botões neutros recebem a versão compacta do acabamento cristalino. */
html[data-theme] body :is(button, a, input[type="button"], input[type="reset"], input[type="submit"]):is(
    .erp-exit-button,
    [class~="bg-black"],
    [class*="bg-black/"],
    [class~="bg-zinc-900"],
    [class*="bg-zinc-900/"],
    [class~="bg-zinc-800"],
    [class*="bg-zinc-800/"],
    [class~="bg-zinc-700"],
    [class*="bg-zinc-700/"],
    [class*="bg-[#0e1217]"],
    [class*="bg-[#0b0f14]"],
    [class*="bg-[#14181f]"],
    [class*="bg-[#1b2129]"],
    [class*="bg-[#20252d]"],
    [class*="bg-[#27272a]"],
    [class*="bg-[#2a3038]"]
):not(.app-cancel-button) {
    background:
        linear-gradient(158deg, rgba(255, 255, 255, .20) 0%, rgba(255, 255, 255, .055) 29%, transparent 29.5%),
        linear-gradient(112deg, #103d4a 0%, #176277 62%, #177d94 100%) !important;
    border-color: rgba(165, 243, 252, .52) !important;
    color: #f4feff !important;
    box-shadow:
        inset 0 1px 0 rgba(236, 254, 255, .48),
        inset 0 -1px 0 rgba(7, 48, 60, .5),
        0 5px 13px rgba(8, 47, 58, .18) !important;
    text-shadow: 0 1px 2px rgba(4, 31, 40, .36);
    transition: border-color .18s ease, box-shadow .18s ease, filter .18s ease, transform .14s ease;
}

html[data-theme] body :is(button, a, input[type="button"], input[type="reset"], input[type="submit"]):is(
    .erp-exit-button,
    [class~="bg-black"],
    [class*="bg-black/"],
    [class~="bg-zinc-900"],
    [class*="bg-zinc-900/"],
    [class~="bg-zinc-800"],
    [class*="bg-zinc-800/"],
    [class~="bg-zinc-700"],
    [class*="bg-zinc-700/"]
):not(.app-cancel-button):hover:not(:disabled) {
    border-color: #d1ffff !important;
    filter: brightness(1.09) saturate(1.04);
    box-shadow:
        inset 0 1px 0 rgba(240, 253, 250, .72),
        0 0 17px rgba(34, 211, 238, .22),
        0 7px 16px rgba(8, 47, 58, .21) !important;
    transform: translateY(-1px);
}

/* Ações principais preservam o amarelo funcional com acabamento liso. */
html[data-theme] body :is(button, a, input[type="button"], input[type="submit"]):is(
    [class~="bg-amber-500"],
    [class*="bg-amber-500/"],
    .product-save-button,
    .filter-btn
):not(:disabled) {
    background:
        linear-gradient(158deg, rgba(255, 255, 255, .34) 0%, rgba(255, 255, 255, .08) 30%, transparent 30.5%),
        linear-gradient(112deg, #fbbf24 0%, #f59e0b 62%, #eab308 100%) !important;
    border-color: #fde68a !important;
    color: #17212b !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 251, 235, .82),
        inset 0 -1px 0 rgba(146, 64, 14, .28),
        0 6px 15px rgba(217, 119, 6, .20) !important;
}

html[data-theme] body :is(button, a, input[type="button"], input[type="submit"]):is(
    [class~="bg-amber-500"],
    [class*="bg-amber-500/"],
    .product-save-button,
    .filter-btn
):hover:not(:disabled) {
    filter: brightness(1.06) saturate(1.03);
    box-shadow:
        inset 0 1px 0 rgba(255, 251, 235, .92),
        0 0 16px rgba(251, 191, 36, .24),
        0 8px 18px rgba(217, 119, 6, .22) !important;
}

@media (prefers-reduced-motion: reduce) {
    html[data-theme] body :is(button, a, input[type="button"], input[type="reset"], input[type="submit"]) {
        transition-duration: 0s !important;
    }
}

/* ----------------------------------------------------------------
   Crystal Tech — shell, navegação e componentes estruturais.
   data-ui separa a identidade visual dos modos funcionais do PDV.
   ---------------------------------------------------------------- */
html[data-ui="crystal-tech"] {
    --crystal-deep: #092f3a;
    --crystal-deep-soft: #103d4a;
    --crystal-cyan: #22d3ee;
    --crystal-cyan-soft: #a5f3fc;
    --crystal-teal: #2dd4bf;
    --crystal-purple: #a78bfa;
    --crystal-platinum: #d7e6e8;
    --crystal-white: #f4feff;
    --crystal-muted: #a9ced3;
    --crystal-focus: #67e8f9;
    --font-interface: "Segoe UI Variable", "Segoe UI", Inter, ui-sans-serif, system-ui, sans-serif;
}

html[data-ui="crystal-tech"] body {
    font-family: var(--font-interface);
}

html[data-ui="crystal-tech"] ::selection {
    background: rgba(34, 211, 238, .28);
    color: #083344;
}

html[data-ui="crystal-tech"] :is(button, a, input, select, textarea):focus-visible {
    outline: 2px solid var(--crystal-focus);
    outline-offset: 2px;
}

html[data-ui="crystal-tech"][data-theme] body .app-sidebar {
    background:
        radial-gradient(circle at 18% 3%, rgba(34, 211, 238, .15), transparent 26%),
        linear-gradient(180deg, #092f3a 0%, #123b46 56%, #102f3a 100%) !important;
    border-color: rgba(165, 243, 252, .26) !important;
    border-right-width: 1px !important;
    box-shadow:
        inset -1px 0 0 rgba(207, 250, 254, .10),
        10px 0 28px rgba(5, 35, 44, .16) !important;
}

html[data-ui="crystal-tech"][data-theme] body .app-sidebar > div:first-child {
    border-color: rgba(165, 243, 252, .18) !important;
    background: linear-gradient(105deg, rgba(255, 255, 255, .07), transparent 58%);
}

html[data-ui="crystal-tech"][data-theme] body .app-topbar {
    background:
        radial-gradient(circle at 88% -45%, rgba(167, 139, 250, .18), transparent 31%),
        linear-gradient(105deg, #103d4a 0%, #176277 62%, #155e75 100%) !important;
    border-color: rgba(165, 243, 252, .28) !important;
    border-bottom-width: 1px !important;
    box-shadow:
        inset 0 1px 0 rgba(236, 254, 255, .20),
        0 8px 24px rgba(8, 47, 58, .15) !important;
}

html[data-ui="crystal-tech"][data-theme] body .app-topbar :is(h1, .text-white) {
    color: var(--crystal-white) !important;
    text-shadow: 0 1px 2px rgba(4, 31, 40, .42);
}

html[data-ui="crystal-tech"][data-theme] body .app-topbar :is(.text-zinc-300, .text-zinc-400) {
    color: #c4e8ec !important;
}

html[data-ui="crystal-tech"][data-theme] body .app-sidebar .nav-item {
    border: 1px solid transparent;
    border-radius: .7rem;
    color: #c5dde0 !important;
    transition: color .16s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease, transform .14s ease;
}

html[data-ui="crystal-tech"][data-theme] body .app-sidebar .nav-item:hover {
    background: linear-gradient(105deg, rgba(34, 211, 238, .12), rgba(167, 139, 250, .07)) !important;
    border-color: rgba(165, 243, 252, .20) !important;
    color: #f4feff !important;
    transform: translateX(2px);
}

html[data-ui="crystal-tech"][data-theme] body .app-sidebar .nav-item.active,
html[data-ui="crystal-tech"][data-theme] body .app-sidebar .nav-sub-item.active {
    background:
        linear-gradient(155deg, rgba(255, 255, 255, .17) 0%, transparent 31%),
        linear-gradient(100deg, #126985 0%, #158a75 100%) !important;
    border: 1px solid rgba(165, 243, 252, .62) !important;
    color: #ffffff !important;
    box-shadow:
        inset 0 1px 0 rgba(236, 254, 255, .46),
        0 0 15px rgba(34, 211, 238, .13),
        0 5px 12px rgba(5, 35, 44, .18) !important;
    text-shadow: 0 1px 2px rgba(4, 31, 40, .42);
}

html[data-ui="crystal-tech"][data-theme] body .app-sidebar .nav-sub {
    border-color: rgba(94, 234, 212, .30) !important;
}

html[data-ui="crystal-tech"][data-theme] body .app-sidebar :is(.text-zinc-500, .text-zinc-600) {
    color: #78b3bc !important;
}

html[data-ui="crystal-tech"][data-theme] body :is(.theme-menu, #pdvDialogCard),
html[data-ui="crystal-tech"][data-theme] body [id*="modal" i].fixed > div:not([class*="absolute"]),
html[data-ui="crystal-tech"][data-theme] body [role="dialog"].fixed > div:not([class*="absolute"]) {
    background:
        linear-gradient(155deg, rgba(255, 255, 255, .10) 0%, transparent 28%),
        linear-gradient(135deg, rgba(16, 61, 74, .98), rgba(23, 98, 119, .97)) !important;
    border-color: rgba(165, 243, 252, .50) !important;
    box-shadow:
        inset 0 1px 0 rgba(236, 254, 255, .34),
        0 0 0 1px rgba(34, 211, 238, .07),
        0 22px 52px rgba(4, 31, 40, .34) !important;
    backdrop-filter: blur(16px) saturate(1.08);
}

html[data-ui="crystal-tech"][data-theme] body .theme-menu button:hover,
html[data-ui="crystal-tech"][data-theme] body .theme-menu button.active {
    background: linear-gradient(100deg, rgba(34, 211, 238, .18), rgba(167, 139, 250, .10)) !important;
    color: #d8ffff !important;
}

html[data-ui="crystal-tech"][data-theme] body .status-badge {
    border-color: rgba(165, 243, 252, .30);
    background: linear-gradient(145deg, rgba(255, 255, 255, .12), rgba(255, 255, 255, .045));
    color: #d7f6f7;
    box-shadow: inset 0 1px 0 rgba(236, 254, 255, .18), 0 4px 11px rgba(5, 35, 44, .12);
}

html[data-ui="crystal-tech"] body:not(:has(.pdv-viewport)) main.app-screen-frame :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="range"]):not([type="color"]):not(.commercial-product-grid *) {
    border-radius: .7rem;
    background: linear-gradient(180deg, #ffffff 0%, #f2fbfb 100%) !important;
    border-color: #58a5b2 !important;
    color: #123b46 !important;
    box-shadow: inset 0 1px 0 #ffffff, 0 3px 9px rgba(8, 47, 58, .08) !important;
}

html[data-ui="crystal-tech"] body:not(:has(.pdv-viewport)) main.app-screen-frame :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="range"]):not([type="color"]):not(.commercial-product-grid *):focus {
    border-color: #22b8c7 !important;
    box-shadow: 0 0 0 3px rgba(34, 211, 238, .16), inset 0 1px 0 #ffffff !important;
}

html[data-ui="crystal-tech"] body:not(:has(.pdv-viewport)) main.app-screen-frame label {
    font-family: var(--font-interface);
    letter-spacing: .025em;
}

html[data-ui="crystal-tech"] body:not(:has(.pdv-viewport)) main.app-screen-frame table thead {
    background:
        linear-gradient(155deg, rgba(255, 255, 255, .09) 0%, transparent 30%),
        linear-gradient(100deg, #103d4a, #155e75) !important;
    color: #d8eef0 !important;
    box-shadow: inset 0 1px 0 rgba(236, 254, 255, .15);
}

html[data-ui="crystal-tech"] body:not(:has(.pdv-viewport)) main.app-screen-frame table th {
    font-family: var(--font-interface);
    font-weight: 700;
    letter-spacing: .035em;
}

html[data-ui="crystal-tech"] body:not(:has(.pdv-viewport)) main.app-screen-frame table tbody tr {
    border-color: rgba(94, 234, 212, .18) !important;
    transition: background-color .15s ease;
}

html[data-ui="crystal-tech"] body:not(:has(.pdv-viewport)) main.app-screen-frame table tbody tr:hover {
    background-color: rgba(34, 211, 238, .075) !important;
}

html[data-ui="crystal-tech"] .custom-scrollbar::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #2dd4bf, #1688a1);
    border-radius: 999px;
}

html[data-ui="crystal-tech"] .crystal-brand-mark {
    border: 1px solid rgba(255, 251, 235, .82);
    background:
        linear-gradient(155deg, rgba(255, 255, 255, .46) 0%, transparent 34%),
        linear-gradient(135deg, #fde047, #f59e0b) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .72),
        inset 0 -2px 3px rgba(146, 64, 14, .20),
        0 0 18px rgba(251, 191, 36, .20),
        0 7px 16px rgba(5, 35, 44, .20) !important;
}

html[data-ui="crystal-tech"] body.system-auth-screen {
    background:
        radial-gradient(circle at 18% 18%, rgba(34, 211, 238, .20), transparent 28%),
        radial-gradient(circle at 88% 12%, rgba(167, 139, 250, .13), transparent 25%),
        linear-gradient(135deg, #071f2a 0%, #0d3a47 56%, #172554 100%) !important;
}

html[data-ui="crystal-tech"] body.system-auth-screen .crystal-auth-card {
    background:
        linear-gradient(155deg, rgba(255, 255, 255, .12) 0%, transparent 29%),
        linear-gradient(135deg, rgba(16, 61, 74, .94), rgba(23, 98, 119, .90)) !important;
    border-color: rgba(165, 243, 252, .54) !important;
    box-shadow:
        inset 0 1px 0 rgba(236, 254, 255, .34),
        0 0 30px rgba(34, 211, 238, .12),
        0 24px 60px rgba(2, 20, 28, .38) !important;
    backdrop-filter: blur(18px) saturate(1.08);
}

html[data-ui="crystal-tech"] body.system-auth-screen :is(h1, h2, .text-white) {
    color: #f4feff !important;
}

html[data-ui="crystal-tech"] body.system-auth-screen :is(p, label, .text-zinc-400, .text-zinc-500, .text-zinc-600) {
    color: #b9dce0 !important;
}

/* O núcleo do PDV mantém densidade e hierarquia, recebendo apenas a pele do tema. */
html[data-ui="crystal-tech"] body:has(.pdv-viewport) :is(.pdv-brand-header, .pdv-checkout-head, .pdv-total-bar, .pdv-shortcuts-bar) {
    background:
        linear-gradient(155deg, rgba(255, 255, 255, .14) 0%, transparent 29%),
        var(--crystal-header) !important;
    border-color: rgba(165, 243, 252, .48) !important;
    box-shadow: inset 0 1px 0 rgba(236, 254, 255, .28), 0 8px 19px rgba(8, 47, 58, .16) !important;
}

/* API reutilizável para componentes novos. */
html[data-ui="crystal-tech"] .crystal-surface {
    background: var(--crystal-surface) !important;
    border: 1px solid rgba(165, 243, 252, .36) !important;
    border-radius: 1rem;
    box-shadow: inset 0 1px 0 rgba(236, 254, 255, .18), var(--crystal-shadow) !important;
}

html[data-ui="crystal-tech"] .crystal-button {
    border: 1px solid rgba(165, 243, 252, .58);
    border-radius: .75rem;
    background:
        linear-gradient(158deg, rgba(255, 255, 255, .22) 0%, transparent 31%),
        linear-gradient(112deg, #103d4a, #176277 62%, #1789a5);
    color: #f4feff;
    box-shadow: inset 0 1px 0 rgba(236, 254, 255, .52), 0 6px 15px rgba(8, 47, 58, .20);
}

html[data-ui="crystal-tech"] .crystal-button:hover:not(:disabled) {
    border-color: #d1ffff;
    filter: brightness(1.08);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .72), 0 0 18px rgba(34, 211, 238, .22), 0 8px 18px rgba(8, 47, 58, .22);
}

/* ================================================================
   CRYSTAL FAMILY — três paletas, uma única linguagem de componentes.
   ================================================================ */
html[data-ui="crystal-tech"][data-crystal-theme="tech"] {
    --ct-canvas: #dcefed;
    --ct-page-text: #123b46;
    --ct-container-solid: #174d58;
    --ct-surface: linear-gradient(135deg, #174d58 0%, #1a5662 62%, #175b6b 100%);
    --ct-header: linear-gradient(112deg, #103d4a 0%, #176277 58%, #1789a5 100%);
    --ct-sidebar: radial-gradient(circle at 18% 3%, rgba(34,211,238,.15), transparent 26%), linear-gradient(180deg, #092f3a 0%, #123b46 56%, #102f3a 100%);
    --ct-topbar: radial-gradient(circle at 88% -45%, rgba(167,139,250,.18), transparent 31%), linear-gradient(105deg, #103d4a 0%, #176277 62%, #155e75 100%);
    --ct-modal: linear-gradient(155deg, rgba(255,255,255,.10) 0%, transparent 28%), linear-gradient(135deg, rgba(16,61,74,.98), rgba(23,98,119,.97));
    --ct-nav-hover: linear-gradient(105deg, rgba(34,211,238,.12), rgba(167,139,250,.07));
    --ct-nav-active: linear-gradient(155deg, rgba(255,255,255,.17) 0%, transparent 31%), linear-gradient(100deg, #126985 0%, #158a75 100%);
    --ct-table-head: linear-gradient(155deg, rgba(255,255,255,.09) 0%, transparent 30%), linear-gradient(100deg, #103d4a, #155e75);
    --ct-field: linear-gradient(180deg, #e3eff0 0%, #d3e4e5 100%);
    --ct-field-solid: #d9e8e8;
    --ct-field-text: #123b46;
    --ct-field-border: #58a5b2;
    --ct-button-hero: linear-gradient(112deg, #103d4a 0%, #176277 58%, #1789a5 100%);
    --ct-button-hero-hover: linear-gradient(112deg, #164c59 0%, #1b7185 58%, #1aa0bc 100%);
    --ct-neutral-button: linear-gradient(158deg, rgba(255,255,255,.20) 0%, rgba(255,255,255,.055) 29%, transparent 29.5%), linear-gradient(112deg, #103d4a 0%, #176277 62%, #177d94 100%);
    --ct-button-border: rgba(165,243,252,.72);
    --ct-button-border-hover: #d1ffff;
    --ct-on-surface: #f4feff;
    --ct-copy: #c4e8ec;
    --ct-muted: #a9ced3;
    --ct-section-heading: #155e75;
    --ct-divider: rgba(21,94,117,.35);
    --ct-auth-background: radial-gradient(circle at 18% 18%, rgba(34,211,238,.20), transparent 28%), radial-gradient(circle at 88% 12%, rgba(167,139,250,.13), transparent 25%), linear-gradient(135deg, #071f2a 0%, #0d3a47 56%, #172554 100%);
    --ct-auth-card: linear-gradient(155deg, rgba(255,255,255,.12) 0%, transparent 29%), linear-gradient(135deg, rgba(16,61,74,.94), rgba(23,98,119,.90));
    --ct-pdv-workspace: linear-gradient(135deg, #dcebed 0%, #cfe1e5 100%);
    --ct-pdv-control: linear-gradient(180deg, #ffffff 0%, #f1f8f9 100%);
    --ct-pdv-control-solid: #f7fbfc;
    --ct-pdv-control-soft: #e7f2f4;
    --ct-pdv-control-text: #173243;
    --ct-pdv-border: #73b8c2;
    --system-screen-background: var(--ct-canvas);
    --system-container-background: var(--ct-container-solid);
    --crystal-surface: var(--ct-surface);
    --crystal-header: var(--ct-header);
    --crystal-copy: var(--ct-copy);
}

html[data-ui="crystal-tech"][data-crystal-theme="obsidian"] {
    --ct-canvas: #080f1a;
    --ct-page-text: #e6f2ff;
    --ct-container-solid: #111c2b;
    --ct-surface: linear-gradient(135deg, #101b2a 0%, #17243a 62%, #1b2b45 100%);
    --ct-header: linear-gradient(112deg, #101827 0%, #172b46 58%, #312950 100%);
    --ct-sidebar: radial-gradient(circle at 16% 2%, rgba(56,189,248,.13), transparent 27%), linear-gradient(180deg, #070e18 0%, #101a29 58%, #151326 100%);
    --ct-topbar: radial-gradient(circle at 86% -38%, rgba(139,92,246,.24), transparent 33%), linear-gradient(105deg, #0d1725 0%, #172942 60%, #292348 100%);
    --ct-modal: linear-gradient(155deg, rgba(255,255,255,.075) 0%, transparent 28%), linear-gradient(135deg, rgba(15,25,40,.985), rgba(32,35,65,.975));
    --ct-nav-hover: linear-gradient(105deg, rgba(56,189,248,.12), rgba(139,92,246,.11));
    --ct-nav-active: linear-gradient(155deg, rgba(255,255,255,.13) 0%, transparent 31%), linear-gradient(100deg, #17375a 0%, #4c3270 100%);
    --ct-table-head: linear-gradient(155deg, rgba(255,255,255,.065) 0%, transparent 30%), linear-gradient(100deg, #0d1725, #292348);
    --ct-field: linear-gradient(180deg, #162235 0%, #111c2b 100%);
    --ct-field-solid: #111c2b;
    --ct-field-text: #e6f2ff;
    --ct-field-border: #536c8a;
    --ct-button-hero: linear-gradient(112deg, #111c2d 0%, #1c3554 58%, #453568 100%);
    --ct-button-hero-hover: linear-gradient(112deg, #17263a 0%, #25476d 58%, #5a4385 100%);
    --ct-neutral-button: linear-gradient(158deg, rgba(255,255,255,.14) 0%, rgba(255,255,255,.035) 29%, transparent 29.5%), linear-gradient(112deg, #111c2d 0%, #1c3554 62%, #3d315e 100%);
    --ct-button-border: rgba(125,211,252,.50);
    --ct-button-border-hover: #a5e8ff;
    --ct-on-surface: #edf6ff;
    --ct-copy: #bfd4ec;
    --ct-muted: #8fa9c4;
    --ct-section-heading: #7dd3fc;
    --ct-divider: rgba(125,211,252,.26);
    --ct-auth-background: radial-gradient(circle at 18% 18%, rgba(56,189,248,.13), transparent 28%), radial-gradient(circle at 88% 12%, rgba(139,92,246,.18), transparent 26%), linear-gradient(135deg, #050a12 0%, #0d1725 56%, #1d1834 100%);
    --ct-auth-card: linear-gradient(155deg, rgba(255,255,255,.08) 0%, transparent 29%), linear-gradient(135deg, rgba(15,25,40,.96), rgba(38,32,67,.93));
    --ct-pdv-workspace: linear-gradient(135deg, #080f1a 0%, #101827 100%);
    --ct-pdv-control: linear-gradient(180deg, #18263a 0%, #111c2b 100%);
    --ct-pdv-control-solid: #17243a;
    --ct-pdv-control-soft: #111c2b;
    --ct-pdv-control-text: #e6f2ff;
    --ct-pdv-border: #536c8a;
    --system-screen-background: var(--ct-canvas);
    --system-container-background: var(--ct-container-solid);
    --system-container-border: #3d5875;
    --crystal-surface: var(--ct-surface);
    --crystal-header: var(--ct-header);
    --crystal-copy: var(--ct-copy);
}

html[data-ui="crystal-tech"][data-crystal-theme="sapphire"] {
    --ct-canvas: #a9cfea;
    --ct-page-text: #08264d;
    --ct-container-solid: #0c4d91;
    --ct-surface: linear-gradient(135deg, #093b7d 0%, #0d63ad 57%, #0b85bd 100%);
    --ct-header: linear-gradient(112deg, #062c70 0%, #0d5fc0 55%, #08a7dd 100%);
    --ct-sidebar: radial-gradient(circle at 16% 2%, rgba(34,211,238,.25), transparent 27%), linear-gradient(180deg, #041a49 0%, #073779 57%, #084f91 100%);
    --ct-topbar: radial-gradient(circle at 86% -36%, rgba(103,232,249,.36), transparent 34%), linear-gradient(105deg, #073679 0%, #0c61bb 57%, #078fc8 100%);
    --ct-modal: linear-gradient(155deg, rgba(255,255,255,.18) 0%, transparent 29%), linear-gradient(135deg, rgba(7,52,116,.985), rgba(10,105,166,.975));
    --ct-nav-hover: linear-gradient(105deg, rgba(34,211,238,.20), rgba(96,165,250,.19));
    --ct-nav-active: linear-gradient(155deg, rgba(255,255,255,.22) 0%, transparent 31%), linear-gradient(100deg, #0c58ad 0%, #078fca 100%);
    --ct-table-head: linear-gradient(155deg, rgba(255,255,255,.16) 0%, transparent 30%), linear-gradient(100deg, #073779, #0b5db2, #087fae);
    --ct-field: linear-gradient(180deg, #e0eef7 0%, #ccdfec 100%);
    --ct-field-solid: #d6e6f1;
    --ct-field-text: #0b315b;
    --ct-field-border: #4d96c4;
    --ct-button-hero: linear-gradient(112deg, #073b82 0%, #0d67c2 56%, #0b96ce 100%);
    --ct-button-hero-hover: linear-gradient(112deg, #094b9f 0%, #0e7ade 56%, #0cb1e7 100%);
    --ct-neutral-button: linear-gradient(158deg, rgba(255,255,255,.25) 0%, rgba(255,255,255,.07) 29%, transparent 29.5%), linear-gradient(112deg, #073775 0%, #0b5cab 58%, #087fac 100%);
    --ct-button-border: rgba(125,211,252,.82);
    --ct-button-border-hover: #d9f8ff;
    --ct-on-surface: #f5fbff;
    --ct-copy: #d2edff;
    --ct-muted: #a8d3ef;
    --ct-section-heading: #0a4c94;
    --ct-divider: rgba(10,76,148,.40);
    --ct-auth-background: radial-gradient(circle at 16% 16%, rgba(34,211,238,.28), transparent 29%), radial-gradient(circle at 87% 13%, rgba(59,130,246,.30), transparent 28%), linear-gradient(135deg, #05265f 0%, #0b5bb1 53%, #078fca 100%);
    --ct-auth-card: linear-gradient(155deg, rgba(255,255,255,.19) 0%, transparent 30%), linear-gradient(135deg, rgba(7,55,121,.95), rgba(10,104,163,.93));
    --ct-pdv-workspace: linear-gradient(135deg, #8ebcdc 0%, #a9cce4 58%, #b6d8eb 100%);
    --ct-pdv-control: linear-gradient(180deg, #f8fcff 0%, #e4f2fb 100%);
    --ct-pdv-control-solid: #edf8fe;
    --ct-pdv-control-soft: #d4eaf7;
    --ct-pdv-control-text: #0b315b;
    --ct-pdv-border: #559ac5;
    --system-screen-background: var(--ct-canvas);
    --system-container-background: var(--ct-container-solid);
    --system-container-border: #3188ba;
    --crystal-surface: var(--ct-surface);
    --crystal-header: var(--ct-header);
    --crystal-copy: var(--ct-copy);
}

/* Aplicação dos tokens da paleta selecionada. */
html[data-ui="crystal-tech"][data-crystal-theme] body,
html[data-ui="crystal-tech"][data-crystal-theme] body .app-screen-frame,
html[data-ui="crystal-tech"][data-crystal-theme] body .pdv-viewport,
html[data-ui="crystal-tech"][data-crystal-theme] body main .fiscal-documents-screen {
    background-color: var(--ct-canvas) !important;
    background-image: none !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body {
    color: var(--ct-page-text);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .app-sidebar {
    background: var(--ct-sidebar) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .app-topbar {
    background: var(--ct-topbar) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .app-sidebar .nav-item:hover {
    background: var(--ct-nav-hover) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .app-sidebar .nav-item.active,
html[data-ui="crystal-tech"][data-crystal-theme] body .app-sidebar .nav-sub-item.active {
    background: var(--ct-nav-active) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body :is(.theme-menu, #pdvDialogCard),
html[data-ui="crystal-tech"][data-crystal-theme] body [id*="modal" i].fixed > div:not([class*="absolute"]),
html[data-ui="crystal-tech"][data-crystal-theme] body [role="dialog"].fixed > div:not([class*="absolute"]) {
    background: var(--ct-modal) !important;
}

/* Modal Crystal global: a mesma leitura visual em todos os módulos. */
html[data-ui="crystal-tech"][data-crystal-theme] body .crystal-modal-overlay,
html[data-ui="crystal-tech"][data-crystal-theme] body [id*="modal" i].fixed,
html[data-ui="crystal-tech"][data-crystal-theme] body [role="dialog"].fixed,
html[data-ui="crystal-tech"][data-crystal-theme] body [role="alertdialog"].fixed {
    background: rgba(3, 18, 27, .76) !important;
    -webkit-backdrop-filter: blur(7px) saturate(1.08);
    backdrop-filter: blur(7px) saturate(1.08);
}

html[data-ui="crystal-tech"][data-crystal-theme] body [id*="modal" i].fixed > :is(div, form, section):not([class*="absolute"]),
html[data-ui="crystal-tech"][data-crystal-theme] body [role="dialog"].fixed > :is(div, form, section):not([class*="absolute"]),
html[data-ui="crystal-tech"][data-crystal-theme] body [role="alertdialog"].fixed > :is(div, form, section):not([class*="absolute"]) {
    background: var(--ct-modal) !important;
    border: 1px solid rgba(165, 243, 252, .58) !important;
    box-shadow: inset 0 1px 0 rgba(236, 254, 255, .35), 0 0 0 1px rgba(34, 211, 238, .08), 0 24px 70px rgba(2, 22, 31, .48) !important;
    backdrop-filter: blur(18px) saturate(1.1);
}

html[data-ui="crystal-tech"][data-crystal-theme] body [id*="modal" i].fixed :is(h2, h3),
html[data-ui="crystal-tech"][data-crystal-theme] body [role="dialog"].fixed :is(h2, h3),
html[data-ui="crystal-tech"][data-crystal-theme] body [role="alertdialog"].fixed :is(h2, h3) {
    color: var(--ct-on-surface) !important;
    text-shadow: 0 1px 2px rgba(2, 22, 31, .5);
}

body.crystal-modal-open {
    overflow: hidden !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:not(:has(.pdv-viewport)) main.app-screen-frame :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="range"]):not([type="color"]):not(.commercial-product-grid *) {
    background: var(--ct-field) !important;
    border-color: var(--ct-field-border) !important;
    color: var(--ct-field-text) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:not(:has(.pdv-viewport)) main.app-screen-frame :is(input, textarea):not(.commercial-product-grid *)::placeholder {
    color: color-mix(in srgb, var(--ct-field-text) 58%, transparent) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body select option {
    background: var(--ct-field-solid);
    color: var(--ct-field-text);
}

html[data-ui="crystal-tech"][data-crystal-theme] body:not(:has(.pdv-viewport)) main.app-screen-frame table thead {
    background: var(--ct-table-head) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body.system-auth-screen {
    background: var(--ct-auth-background) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body.system-auth-screen .crystal-auth-card {
    background: var(--ct-auth-card) !important;
}

/* Login Crystal Tech: console responsivo inspirado em terminais de acesso. */
html[data-ui="crystal-tech"][data-crystal-theme] body.crystal-login-screen {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow-x: hidden;
    overflow-y: auto;
    padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
    background:
        linear-gradient(rgba(22, 196, 238, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(22, 196, 238, .035) 1px, transparent 1px),
        radial-gradient(circle at 17% 20%, rgba(14, 165, 233, .20), transparent 28%),
        radial-gradient(circle at 84% 76%, rgba(20, 184, 166, .13), transparent 30%),
        linear-gradient(135deg, #06162f 0%, #08264a 48%, #061a36 100%) !important;
    background-size: 32px 32px, 32px 32px, auto, auto, auto !important;
    color: #d9f7fb;
}

.crystal-login-stage {
    display: flex;
    width: min(100%, 40rem);
    min-height: 0;
    flex-direction: column;
    margin: auto;
    opacity: 1;
    transform: translateY(0) scale(1);
    transition: opacity .18s ease, transform .18s ease, filter .18s ease;
}

.crystal-login-stage.is-closing {
    pointer-events: none;
    opacity: 0;
    filter: blur(5px);
    transform: translateY(-.75rem) scale(.975);
}

.crystal-login-brand {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-block: .275rem;
    padding-inline: .55rem;
}

.crystal-login-brand-identity {
    min-height: 2.75rem;
}

.crystal-login-brand-identity .crystal-brand-mark {
    width: 2.75rem;
    height: 2.75rem;
    flex: 0 0 2.75rem;
}

html[data-ui="crystal-tech"][data-crystal-theme] body.crystal-login-screen :is(.crystal-new-company-link, .crystal-login-exit) {
    display: inline-flex;
    width: auto;
    min-width: 5.5rem;
    height: 2.75rem;
    min-height: 2.75rem;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .65rem .95rem;
    border: 1px solid rgba(103, 232, 249, .50);
    border-radius: .65rem;
    background: linear-gradient(145deg, rgba(15, 83, 119, .88), rgba(10, 54, 91, .94)) !important;
    color: #dffbff !important;
    box-shadow: inset 0 1px 0 rgba(207, 250, 254, .24), 0 0 16px rgba(34, 211, 238, .10);
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

html[data-ui="crystal-tech"][data-crystal-theme] body.crystal-login-screen .crystal-login-exit:hover,
html[data-ui="crystal-tech"][data-crystal-theme] body.crystal-login-screen .crystal-login-exit:focus-visible {
    border-color: rgba(251, 113, 133, .78);
    background: linear-gradient(145deg, rgba(159, 18, 57, .82), rgba(76, 5, 25, .94)) !important;
    color: #ffe4e6 !important;
    box-shadow: inset 0 1px 0 rgba(255, 228, 230, .25), 0 0 18px rgba(244, 63, 94, .18);
}

.crystal-login-console {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 10.5rem;
    min-height: min(21.5rem, calc(100dvh - 8rem));
    flex: 0 1 auto;
    overflow: hidden;
    border: 2px solid rgba(34, 211, 238, .76);
    border-radius: .35rem;
    background: linear-gradient(135deg, rgba(9, 42, 78, .98), rgba(7, 26, 58, .99)) !important;
    box-shadow:
        inset 0 0 0 1px rgba(125, 211, 252, .13),
        inset 0 0 45px rgba(14, 165, 233, .08),
        0 0 0 1px rgba(8, 145, 178, .20),
        0 24px 70px rgba(1, 11, 29, .52),
        0 0 34px rgba(14, 165, 233, .15);
}

.crystal-login-console::before,
.crystal-login-console::after {
    content: "";
    position: absolute;
    z-index: 4;
    width: 2rem;
    height: 2rem;
    pointer-events: none;
}

.crystal-login-console::before {
    inset: .45rem auto auto .45rem;
    border-top: 2px solid #38bdf8;
    border-left: 2px solid #38bdf8;
}

.crystal-login-console::after {
    inset: auto .45rem .45rem auto;
    border-right: 2px solid #38bdf8;
    border-bottom: 2px solid #38bdf8;
}

.crystal-login-main {
    position: relative;
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: center;
    padding: 2.35rem clamp(1rem, 2.5vw, 1.65rem) 1rem;
    background:
        linear-gradient(90deg, rgba(14, 165, 233, .07), transparent 26%, transparent 74%, rgba(14, 165, 233, .05)),
        linear-gradient(150deg, rgba(255, 255, 255, .035), transparent 30%) !important;
}

.crystal-console-cap {
    position: absolute;
    top: 0;
    left: 50%;
    width: 6.5rem;
    height: 1.45rem;
    border-right: 2px solid #22d3ee;
    border-bottom: 2px solid #22d3ee;
    border-left: 2px solid #22d3ee;
    background: linear-gradient(180deg, #1cb4df, #0e7490) !important;
    clip-path: polygon(0 0, 100% 0, 84% 100%, 64% 100%, 57% 82%, 43% 82%, 36% 100%, 16% 100%);
    transform: translateX(-50%);
    box-shadow: 0 0 18px rgba(34, 211, 238, .35);
}

.crystal-login-heading {
    margin-bottom: .5rem;
    text-align: center;
}

.crystal-login-kicker {
    display: inline-block;
    margin-bottom: .3rem;
    color: #7dd3fc;
    font-size: .58rem;
    font-weight: 900;
    letter-spacing: .22em;
    text-transform: uppercase;
}

html[data-ui="crystal-tech"][data-crystal-theme] body.crystal-login-screen .crystal-login-heading h1 {
    color: #38bdf8 !important;
    font-size: clamp(1.15rem, 2.5vw, 1.45rem);
    font-weight: 950;
    letter-spacing: .14em;
    line-height: 1;
    text-transform: uppercase;
    text-shadow: 0 0 18px rgba(56, 189, 248, .40);
}

html[data-ui="crystal-tech"][data-crystal-theme] body.crystal-login-screen .crystal-login-heading p {
    margin-top: .4rem;
    color: #91c8d4 !important;
    font-size: .7rem;
}

.crystal-login-form-panel {
    position: relative;
    width: min(100%, 27rem);
    margin-inline: auto;
    padding: .7rem .8rem;
    border: 1px solid rgba(34, 211, 238, .58);
    border-radius: .7rem;
    background: linear-gradient(145deg, rgba(16, 77, 111, .58), rgba(10, 50, 86, .72)) !important;
    box-shadow: inset 0 1px 0 rgba(186, 230, 253, .15), 0 0 22px rgba(8, 145, 178, .09);
}

.crystal-login-label {
    display: block;
    margin: 0 0 .35rem .15rem;
    color: #bdeaf0 !important;
    font-size: .6rem;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.crystal-login-field {
    position: relative;
    display: flex;
    min-height: 2.45rem;
    align-items: center;
    overflow: hidden;
    border: 1px solid rgba(34, 211, 238, .62);
    border-radius: .42rem;
    background: linear-gradient(180deg, rgba(16, 87, 126, .78), rgba(11, 65, 105, .92)) !important;
    box-shadow: inset 0 1px 0 rgba(186, 230, 253, .13), inset 0 0 14px rgba(14, 165, 233, .07);
    clip-path: polygon(0 0, calc(100% - .7rem) 0, 100% .7rem, 100% 100%, .7rem 100%, 0 calc(100% - .7rem));
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.crystal-login-field:focus-within {
    border-color: #67e8f9;
    background: linear-gradient(180deg, rgba(18, 105, 145, .88), rgba(10, 70, 112, .96)) !important;
    box-shadow: inset 0 1px 0 rgba(207, 250, 254, .22), 0 0 0 2px rgba(34, 211, 238, .11), 0 0 20px rgba(34, 211, 238, .18);
}

.crystal-login-field > i {
    width: 2.4rem;
    flex: 0 0 2.4rem;
    color: #22d3ee;
    font-size: 1rem;
    text-align: center;
    text-shadow: 0 0 12px rgba(34, 211, 238, .55);
}

html[data-ui="crystal-tech"][data-crystal-theme] body.crystal-login-screen .crystal-login-field input {
    width: 100%;
    min-width: 0;
    height: 2.3rem;
    padding: 0 .9rem 0 0;
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    color: #e9fcff !important;
    -webkit-text-fill-color: #e9fcff !important;
    box-shadow: none !important;
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .035em;
}

html[data-ui="crystal-tech"][data-crystal-theme] body.crystal-login-screen .crystal-login-field input::placeholder {
    color: rgba(186, 230, 253, .50) !important;
    -webkit-text-fill-color: rgba(186, 230, 253, .50) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body.crystal-login-screen .crystal-password-toggle {
    display: flex;
    width: 2.8rem;
    height: 2.25rem;
    flex: 0 0 2.8rem;
    align-items: center;
    justify-content: center;
    border: 0 !important;
    background: transparent !important;
    color: #8ddce8 !important;
    box-shadow: none !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body.crystal-login-screen .crystal-login-submit {
    display: flex;
    width: 100%;
    min-height: 2.45rem;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    border: 1px solid #67e8f9 !important;
    border-radius: .5rem;
    background:
        linear-gradient(155deg, rgba(255, 255, 255, .30), transparent 32%),
        linear-gradient(100deg, #0891b2, #0ea5e9) !important;
    color: #ecfeff !important;
    box-shadow: inset 0 1px 0 rgba(207, 250, 254, .55), 0 0 18px rgba(34, 211, 238, .20), 0 7px 16px rgba(2, 27, 56, .28) !important;
    font-size: .72rem;
    font-weight: 950;
    letter-spacing: .09em;
    text-transform: uppercase;
}

html[data-ui="crystal-tech"][data-crystal-theme] body.crystal-login-screen .crystal-login-submit:hover,
html[data-ui="crystal-tech"][data-crystal-theme] body.crystal-login-screen .crystal-login-submit:focus-visible {
    filter: brightness(1.12);
    transform: translateY(-1px);
    box-shadow: inset 0 1px 0 rgba(236, 254, 255, .72), 0 0 26px rgba(34, 211, 238, .32), 0 9px 19px rgba(2, 27, 56, .32) !important;
}

.crystal-company-register {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .3rem .55rem;
    margin-top: .55rem;
    color: #93bfc9;
    font-size: .66rem;
    text-align: center;
}

html[data-ui="crystal-tech"][data-crystal-theme] body.crystal-login-screen .crystal-company-register a {
    color: #67e8f9 !important;
    font-weight: 900;
    text-decoration: underline;
    text-decoration-color: rgba(103, 232, 249, .35);
    text-underline-offset: .2rem;
}

.crystal-install-note {
    margin-top: .4rem;
    color: #719ca7 !important;
    font-size: .56rem;
    line-height: 1.45;
    text-align: center;
}

.crystal-login-alert {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    margin-bottom: 1rem;
    padding: .65rem .75rem;
    border: 1px solid;
    border-radius: .5rem;
    font-size: .66rem;
    font-weight: 800;
}

.crystal-login-alert-error { border-color: rgba(251, 113, 133, .58); background: rgba(159, 18, 57, .25); color: #fecdd3; }
.crystal-login-alert-warning { border-color: rgba(250, 204, 21, .50); background: rgba(133, 77, 14, .22); color: #fef08a; }

.crystal-login-access {
    position: relative;
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: center;
    gap: .65rem;
    padding: .85rem .65rem;
    border-left: 2px solid rgba(34, 211, 238, .65);
    background: linear-gradient(180deg, rgba(5, 28, 62, .97), rgba(4, 20, 47, .99)) !important;
    box-shadow: inset 12px 0 28px rgba(14, 165, 233, .035);
}

.crystal-keypad {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .3rem;
    padding: .45rem;
    border: 1px solid rgba(34, 211, 238, .42);
    border-radius: .55rem;
    background: rgba(6, 35, 72, .62);
}

html[data-ui="crystal-tech"][data-crystal-theme] body.crystal-login-screen .crystal-keypad button {
    aspect-ratio: 1;
    min-width: 0;
    border: 1px solid rgba(56, 189, 248, .75) !important;
    border-radius: .38rem;
    background: linear-gradient(145deg, #155795, #173c7e) !important;
    color: #67e8f9 !important;
    box-shadow: inset 0 1px 0 rgba(186, 230, 253, .28), 0 0 9px rgba(14, 165, 233, .14) !important;
    font-size: .82rem;
    font-weight: 900;
}

html[data-ui="crystal-tech"][data-crystal-theme] body.crystal-login-screen .crystal-keypad button:hover,
html[data-ui="crystal-tech"][data-crystal-theme] body.crystal-login-screen .crystal-keypad button:focus-visible {
    border-color: #67e8f9 !important;
    background: linear-gradient(145deg, #1974b7, #18519a) !important;
    box-shadow: inset 0 1px 0 rgba(224, 242, 254, .38), 0 0 15px rgba(34, 211, 238, .28) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body.crystal-login-screen .crystal-biometric-button {
    position: relative;
    display: flex;
    min-height: 6.25rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 1px solid rgba(34, 211, 238, .64) !important;
    border-radius: .65rem;
    background: linear-gradient(145deg, rgba(13, 77, 119, .80), rgba(8, 41, 83, .92)) !important;
    color: #dffbff !important;
    box-shadow: inset 0 1px 0 rgba(186, 230, 253, .18), inset 0 0 30px rgba(14, 165, 233, .06), 0 0 18px rgba(34, 211, 238, .10) !important;
}

.crystal-biometric-button > i {
    position: relative;
    z-index: 1;
    color: #22d3ee;
    font-size: 2.8rem;
    filter: drop-shadow(0 0 10px rgba(34, 211, 238, .52));
}

.crystal-biometric-button strong,
.crystal-biometric-button small {
    position: relative;
    z-index: 1;
}

.crystal-biometric-button strong {
    margin-top: .8rem;
    font-size: .68rem;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.crystal-biometric-button small {
    margin-top: .25rem;
    color: #86c4cf;
    font-size: .52rem;
}

.crystal-biometric-scan {
    position: absolute;
    z-index: 0;
    left: 8%;
    right: 8%;
    top: 50%;
    height: 2px;
    background: #22d3ee;
    box-shadow: 0 0 10px #22d3ee, 0 0 20px rgba(34, 211, 238, .55);
    animation: crystal-biometric-scan 2.5s ease-in-out infinite;
}

.crystal-biometric-status {
    min-height: 2.5rem;
    margin: -.65rem .2rem 0;
    color: #85b9c4 !important;
    font-size: .55rem;
    line-height: 1.45;
    text-align: center;
}

.crystal-login-footer {
    margin-top: .45rem;
    color: rgba(165, 243, 252, .48) !important;
    font-size: .58rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-align: center;
    text-transform: uppercase;
}

.crystal-login-footer span { padding-inline: .35rem; color: #22d3ee; }

@keyframes crystal-biometric-scan {
    0%, 100% { transform: translateY(-2.6rem); opacity: .35; }
    50% { transform: translateY(2.6rem); opacity: 1; }
}

@media (max-width: 720px) {
    html[data-ui="crystal-tech"][data-crystal-theme] body.crystal-login-screen {
        align-items: center;
        padding: max(.7rem, env(safe-area-inset-top)) max(.7rem, env(safe-area-inset-right)) max(.7rem, env(safe-area-inset-bottom)) max(.7rem, env(safe-area-inset-left));
    }

    .crystal-login-stage {
        width: min(100%, 25rem);
        min-height: 0;
    }
    .crystal-login-brand { margin-bottom: .6rem; padding-inline: .1rem; }
    :is(.crystal-new-company-link, .crystal-login-exit) span { display: none; }
    html[data-ui="crystal-tech"][data-crystal-theme] body.crystal-login-screen :is(.crystal-new-company-link, .crystal-login-exit) { width: 2.75rem; min-width: 2.75rem; padding-inline: 0; }

    .crystal-login-console {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .crystal-login-main { padding: 3rem .8rem 1rem; }
    .crystal-login-heading { margin-bottom: .9rem; }
    .crystal-login-form-panel { padding: 1rem; }

    .crystal-login-access {
        display: block;
        padding: .75rem 1rem 1rem;
        border-top: 1px solid rgba(34, 211, 238, .48);
        border-left: 0;
    }

    .crystal-keypad { display: none; }

    html[data-ui="crystal-tech"][data-crystal-theme] body.crystal-login-screen .crystal-biometric-button {
        min-height: 6.25rem;
    }

    .crystal-biometric-button > i { font-size: 3.4rem; }
    .crystal-biometric-button strong { margin-top: .45rem; }
    .crystal-biometric-status { min-height: 0; margin: .55rem .25rem 0; }
}

@media (max-height: 760px) and (min-width: 721px) {
    .crystal-login-console { min-height: 20.5rem; }
    .crystal-login-main { padding-block: 2.15rem .9rem; }
    html[data-ui="crystal-tech"][data-crystal-theme] body.crystal-login-screen .crystal-biometric-button { min-height: 5.75rem; }
    .crystal-biometric-button > i { font-size: 2.6rem; }
}

@media (prefers-reduced-motion: reduce) {
    .crystal-biometric-scan { animation: none; }
}

html[data-ui="crystal-tech"][data-crystal-theme] body :is(button, a, input[type="button"], input[type="reset"], input[type="submit"]):is(
    .crystal-button,
    .erp-exit-button,
    [class*="bg-black"],
    [class*="bg-zinc-700"],
    [class*="bg-zinc-800"],
    [class*="bg-zinc-900"]
):not(.app-cancel-button) {
    background: var(--ct-neutral-button) !important;
    border-color: var(--ct-button-border) !important;
    color: var(--ct-on-surface) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body :is(
    .dashboard-card,
    .op-kpi,
    .op-panel,
    .op-alert,
    .op-fiscal,
    .daily-panel,
    .scale-panel,
    .finance-panel,
    .finance-kpi,
    .int-panel,
    .int-service,
    .product-tax-panel,
    .rp-panel,
    .rp-kpi,
    .rp-filter,
    .rp-action,
    .list-box,
    .toolbar,
    .standard-filter,
    .document-toolbar,
    .documents-tabs,
    .documents-filter-panel,
    .documents-list-panel,
    .carrier-workspace,
    .mdfe-workspace,
    .mdfe-workspace-column,
    .empresa-identification-panel,
    .empresa-address-panel,
    .empresa-fiscal-panel,
    .erp-form-card,
    .crystal-surface
) {
    background: var(--ct-surface) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body :is(
    .dashboard-card,
    .op-kpi,
    .op-panel,
    .op-alert,
    .op-fiscal,
    .daily-panel,
    .scale-panel,
    .finance-panel,
    .finance-kpi,
    .int-panel,
    .int-service,
    .product-tax-panel,
    .rp-panel,
    .rp-kpi,
    .rp-filter,
    .rp-action,
    .list-box,
    .toolbar,
    .standard-filter,
    .document-toolbar,
    .documents-tabs,
    .documents-filter-panel,
    .documents-list-panel,
    .carrier-workspace,
    .mdfe-workspace,
    .mdfe-workspace-column,
    .empresa-identification-panel,
    .empresa-address-panel,
    .empresa-fiscal-panel,
    .erp-form-card,
    .crystal-surface
) :is(h1, h2, h3, h4, h5, h6, strong, th, .text-white, .text-zinc-100, .text-zinc-200, .text-zinc-300, .text-slate-100, .text-slate-200, .text-slate-300) {
    color: var(--ct-on-surface) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body :is(
    .dashboard-card,
    .op-kpi,
    .op-panel,
    .op-alert,
    .op-fiscal,
    .daily-panel,
    .scale-panel,
    .finance-panel,
    .finance-kpi,
    .int-panel,
    .int-service,
    .product-tax-panel,
    .rp-panel,
    .rp-kpi,
    .rp-filter,
    .rp-action,
    .list-box,
    .toolbar,
    .standard-filter,
    .document-toolbar,
    .documents-tabs,
    .documents-filter-panel,
    .documents-list-panel,
    .carrier-workspace,
    .mdfe-workspace,
    .mdfe-workspace-column,
    .empresa-identification-panel,
    .empresa-address-panel,
    .empresa-fiscal-panel,
    .erp-form-card,
    .crystal-surface
) :is(p, small, td, label, .text-zinc-400, .text-zinc-500, .text-zinc-600, .text-slate-400, .text-slate-500, .text-slate-600) {
    color: var(--ct-copy) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body :is(.theme-menu, #pdvDialogCard, [role="dialog"]) :is(h1, h2, h3, h4, strong, .text-white, .text-zinc-100, .text-zinc-200, .text-zinc-300) {
    color: var(--ct-on-surface) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body :is(.theme-menu, #pdvDialogCard, [role="dialog"]) :is(p, small, label, .text-zinc-400, .text-zinc-500, .text-zinc-600) {
    color: var(--ct-copy) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) :is(.pdv-brand-header, .pdv-checkout-head, .pdv-total-bar, .pdv-shortcuts-bar) {
    background: linear-gradient(155deg, rgba(255,255,255,.14) 0%, transparent 29%), var(--ct-header) !important;
}

/* ================================================================
   PDV / DAV — implementação Crystal completa, preservando o cupom.
   ================================================================ */
html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-viewport,
html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-commercial-mode {
    background: var(--ct-canvas) !important;
    color: var(--ct-page-text);
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-monitor-container {
    background: var(--ct-surface) !important;
    border: 2px solid var(--ct-button-border) !important;
    border-radius: 18px !important;
    box-shadow:
        inset 0 1px 0 rgba(236,254,255,.30),
        0 0 0 1px rgba(34,211,238,.08),
        0 17px 38px rgba(8,47,58,.22) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) :is(.pdv-workspace, .pdv-monitor-container > .grid) {
    background: var(--ct-pdv-workspace) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) :is(.pdv-selection-panel, .commercial-product-browser) {
    background: var(--ct-surface) !important;
    border-color: var(--ct-button-border) !important;
    box-shadow:
        inset 0 1px 0 rgba(236,254,255,.22),
        0 8px 19px rgba(8,47,58,.16) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .commercial-browser-head :is(strong, span) {
    color: var(--ct-on-surface) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .commercial-browser-head span {
    color: var(--ct-copy) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .commercial-browser-head button,
html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .commercial-category-strip button,
html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .commercial-product-tile {
    background: var(--ct-pdv-control) !important;
    border-color: color-mix(in srgb, var(--ct-pdv-border) 76%, transparent) !important;
    color: var(--ct-pdv-control-text) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.52), 0 4px 10px rgba(8,47,58,.09) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .commercial-product-tile:hover,
html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .commercial-category-strip button:hover,
html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .commercial-category-strip button.active {
    border-color: var(--ct-button-border-hover) !important;
    background: linear-gradient(155deg, rgba(255,255,255,.24) 0%, transparent 31%), var(--ct-pdv-control) !important;
    color: var(--ct-pdv-control-text) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.64), 0 0 14px rgba(34,211,238,.14), 0 6px 13px rgba(8,47,58,.11) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .commercial-product-tile :is(.commercial-product-name, strong) {
    color: var(--ct-pdv-control-text) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .commercial-product-tile strong {
    color: color-mix(in srgb, var(--crystal-cyan) 76%, var(--ct-pdv-control-text)) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) :is(.pdv-search-bar, #pdvScaleControls) {
    background: var(--ct-pdv-control) !important;
    border-color: var(--ct-pdv-border) !important;
    color: var(--ct-pdv-control-text) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.58), 0 5px 13px rgba(8,47,58,.10) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-search-bar:focus {
    border-color: var(--ct-button-border-hover) !important;
    box-shadow: 0 0 0 3px rgba(34,211,238,.16), inset 0 1px 0 rgba(255,255,255,.62) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) #terminalCheckoutPanel {
    background: var(--ct-pdv-control) !important;
    border-color: var(--ct-pdv-border) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.52), 0 8px 19px rgba(8,47,58,.15) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) #terminalCheckoutPanel :is(.pdv-checkout-body, .pdv-checkout-footer) {
    background: var(--ct-pdv-control) !important;
    color: var(--ct-pdv-control-text) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) #terminalCheckoutPanel :is(.pdv-valor-recebido, .pdv-troco-bar, .pdv-entrada-block, .pdv-parcelas-block, .pdv-extras-block, .pdv-contingencia-row) {
    background: var(--ct-pdv-control-soft) !important;
    border-color: color-mix(in srgb, var(--ct-pdv-border) 72%, transparent) !important;
    color: var(--ct-pdv-control-text) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.42) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) #terminalCheckoutPanel :is(.pdv-field-wrap, .pdv-entry-field, .pdv-interactive, .pdv-observacoes-field, .pdv-money-input, .pdv-extra-input) {
    background: var(--ct-pdv-control-solid) !important;
    border-color: var(--ct-pdv-border) !important;
    color: var(--ct-pdv-control-text) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) #terminalCheckoutPanel :is(.pdv-field-label, .pdv-extras-block label) {
    color: color-mix(in srgb, var(--ct-pdv-control-text) 72%, transparent) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) :is(.checkout-pay-btn, .quick-cash-btn, .pdv-qty-btn) {
    background: var(--ct-pdv-control) !important;
    border-color: color-mix(in srgb, var(--ct-pdv-border) 75%, transparent) !important;
    color: var(--ct-pdv-control-text) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.50), 0 3px 8px rgba(8,47,58,.07) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) :is(.checkout-pay-btn, .quick-cash-btn, .pdv-qty-btn):hover,
html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .checkout-pay-btn.active {
    background: var(--ct-button-hero) !important;
    border-color: var(--ct-button-border-hover) !important;
    color: var(--ct-on-surface) !important;
    box-shadow: inset 0 1px 0 rgba(236,254,255,.52), 0 0 15px rgba(34,211,238,.16), 0 5px 11px rgba(8,47,58,.12) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .checkout-pay-btn.active :is(i, span, kbd) {
    color: var(--ct-on-surface) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-customer-toggle {
    background: var(--ct-button-hero) !important;
    border: 1px solid color-mix(in srgb, var(--ct-pdv-border) 72%, transparent);
    color: var(--ct-on-surface) !important;
    box-shadow: inset 0 1px 0 rgba(236,254,255,.30), 0 3px 8px rgba(8,47,58,.12) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-customer-toggle:hover,
html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-customer-toggle[aria-expanded="true"] {
    border-color: var(--ct-button-border-hover);
    filter: brightness(1.10);
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-customer-toggle i {
    transition: transform .18s ease;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-customer-results {
    overflow: hidden auto;
    background: var(--ct-modal) !important;
    border-color: var(--ct-button-border) !important;
    color: var(--ct-on-surface) !important;
    box-shadow: inset 0 1px 0 rgba(236,254,255,.26), 0 13px 28px rgba(4,31,40,.28) !important;
    backdrop-filter: blur(14px) saturate(1.08);
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-customer-results > button {
    background: transparent !important;
    border-color: rgba(165,243,252,.14) !important;
    color: var(--ct-on-surface) !important;
    box-shadow: none !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-customer-results > button:hover {
    background: var(--ct-nav-hover) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-customer-results > button :is(.text-white, .text-zinc-500) {
    color: var(--ct-on-surface) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-customer-results > button .text-zinc-500 {
    color: var(--ct-copy) !important;
}

/* ----------------------------------------------------------------
   PDV / DAV — botões operacionais unificados no padrão Crystal Tech.
   Esta camada substitui os azuis chapados e neutraliza os ajustes que
   deixavam os controles do DAV mais baixos e visualmente alongados.
   ---------------------------------------------------------------- */
html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) :is(
    .checkout-pay-btn,
    .pdv-other-payments button,
    .quick-cash-btn,
    .pdv-receipt-btn,
    .commercial-browser-head button,
    .commercial-category-strip button,
    .pdv-layout-switch,
    #pdvScaleConnectButton,
    #pdvScaleApplyButton
) {
    position: relative;
    overflow: hidden;
    background: var(--ct-neutral-button) !important;
    border: 1px solid var(--ct-button-border) !important;
    color: var(--ct-on-surface) !important;
    box-shadow:
        inset 0 1px 0 rgba(236, 254, 255, .48),
        inset 0 -1px 0 rgba(7, 48, 60, .34),
        0 4px 11px rgba(8, 47, 58, .15) !important;
    text-shadow: 0 1px 2px rgba(4, 31, 40, .38);
    transition: transform .14s ease, filter .18s ease, border-color .18s ease, box-shadow .18s ease;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) :is(
    .checkout-pay-btn,
    .pdv-other-payments button,
    .quick-cash-btn,
    .pdv-receipt-btn,
    .commercial-browser-head button,
    .commercial-category-strip button,
    .pdv-layout-switch,
    #pdvScaleConnectButton,
    #pdvScaleApplyButton
):hover:not(:disabled) {
    background: var(--ct-button-hero-hover) !important;
    border-color: var(--ct-button-border-hover) !important;
    color: var(--ct-on-surface) !important;
    filter: brightness(1.06) saturate(1.04);
    transform: translateY(-1px);
    box-shadow:
        inset 0 1px 0 rgba(240, 253, 250, .68),
        0 0 15px rgba(34, 211, 238, .18),
        0 6px 14px rgba(8, 47, 58, .18) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) :is(
    .checkout-pay-btn.active,
    .pdv-other-payments button.active,
    .commercial-category-strip button.active
) {
    background: var(--ct-button-hero) !important;
    border-color: var(--ct-button-border-hover) !important;
    color: var(--ct-on-surface) !important;
    box-shadow:
        inset 0 1px 0 rgba(236, 254, 255, .62),
        inset 0 -1px 0 rgba(7, 48, 60, .38),
        0 0 16px rgba(34, 211, 238, .20),
        0 5px 12px rgba(8, 47, 58, .16) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) :is(
    .checkout-pay-btn,
    .pdv-other-payments button,
    .pdv-receipt-btn
) :is(i, span, kbd) {
    color: inherit !important;
}

/* Proporção operacional única: DAV e PDV usam a mesma altura, tipografia e respiro. */
html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .checkout-pay-btn,
html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-commercial-mode .checkout-pay-btn {
    min-width: 0;
    min-height: 3.25rem;
    height: auto;
    padding: .78rem .25rem .45rem;
    border-radius: .625rem;
    font-size: .7rem;
    line-height: 1;
    letter-spacing: .03em;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-pay-grid,
html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-commercial-mode .pdv-pay-grid {
    gap: .375rem !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-other-payments button,
html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-commercial-mode .pdv-other-payments button {
    min-height: 2.75rem;
    padding: .45rem .3rem;
    border-radius: .55rem;
    font-size: .62rem;
    line-height: 1.12;
    letter-spacing: .015em;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .quick-cash-btn,
html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-commercial-mode .quick-cash-btn {
    min-height: 2.35rem;
    padding: .38rem .25rem;
    border-radius: .55rem;
    font-size: .66rem;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-receipt-btn,
html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-commercial-mode .pdv-receipt-btn {
    min-height: 2.4rem;
    padding: .45rem .3rem;
    border-radius: .55rem !important;
    font-size: .68rem;
    line-height: 1;
}

/* O seletor com ID vence a regra histórica que mantinha estes botões transparentes no papel. */
html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport .pdv-receipt-panel .pdv-receipt-btn {
    background: var(--ct-neutral-button) !important;
    border: 1px solid var(--ct-button-border) !important;
    color: var(--ct-on-surface) !important;
    box-shadow:
        inset 0 1px 0 rgba(236, 254, 255, .48),
        inset 0 -1px 0 rgba(7, 48, 60, .34),
        0 4px 11px rgba(8, 47, 58, .15) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport .pdv-receipt-panel .pdv-receipt-btn:hover:not(:disabled) {
    background: var(--ct-button-hero-hover) !important;
    border-color: var(--ct-button-border-hover) !important;
    color: var(--ct-on-surface) !important;
}

/* O recipiente também acompanha a paleta, sem manter o bloco azul legado. */
html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) .pdv-other-payments {
    background: color-mix(in srgb, var(--ct-pdv-control-soft) 88%, transparent) !important;
    border-color: color-mix(in srgb, var(--ct-pdv-border) 76%, transparent) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .32) !important;
}

/* O pagamento misto ocupa a 4ª célula tanto no PDV quanto no DAV. */
html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport .pdv-other-payments {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #pdvPagamentoMistoButton {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: .24rem;
    min-width: 0;
    grid-column: auto !important;
    visibility: visible !important;
    opacity: 1 !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #pdvPagamentoMistoButton span {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
    html[data-ui="crystal-tech"][data-crystal-theme] body:has(.pdv-viewport) :is(
        .checkout-pay-btn,
        .pdv-other-payments button,
        .quick-cash-btn,
        .pdv-receipt-btn
    ) {
        transition-duration: 0s !important;
        transform: none !important;
    }
}

/* ----------------------------------------------------------------
   PDV / DAV — papel digital em marfim suave.
   Mais neutro que os cards de produto para preservar a hierarquia.
   ---------------------------------------------------------------- */
html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport .pdv-receipt-panel {
    background:
        linear-gradient(158deg, rgba(255, 255, 255, .72) 0%, rgba(255, 255, 255, .18) 27%, transparent 27.5%),
        linear-gradient(145deg, #fffefa 0%, #fffbea 58%, #f8f3df 100%) !important;
    border: 1px solid #9ecbd0 !important;
    color: #263744 !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .98),
        inset 0 -1px 0 rgba(180, 145, 60, .08),
        0 5px 13px rgba(8, 47, 58, .09) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport .pdv-receipt-panel :is(
    .pdv-cart-surface,
    #terminalReceiptTapeList
) {
    background: transparent !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport .pdv-receipt-panel .pdv-company-header {
    border-color: rgba(79, 126, 139, .55) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport .pdv-receipt-panel :is(
    .pdv-cart-grid,
    #terminalReceiptTapeList > div
) {
    border-color: rgba(79, 126, 139, .34) !important;
}

/* ----------------------------------------------------------------
   J6 PRIME — seletor visual de paletas e polimento de interação.
   ---------------------------------------------------------------- */
html[data-ui="crystal-tech"][data-crystal-theme] body .theme-menu {
    width: 16rem;
    padding: .48rem;
    border: 1px solid var(--ct-button-border) !important;
    border-radius: .9rem;
    background: var(--ct-modal) !important;
    box-shadow:
        inset 0 1px 0 rgba(236, 254, 255, .28),
        0 18px 42px rgba(4, 31, 40, .30) !important;
    backdrop-filter: blur(18px) saturate(1.1);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .theme-menu-heading {
    display: flex;
    flex-direction: column;
    gap: .12rem;
    padding: .35rem .45rem .5rem;
    border-bottom: 1px solid color-mix(in srgb, var(--ct-button-border) 32%, transparent);
    margin-bottom: .28rem;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .theme-menu-heading strong {
    color: var(--ct-on-surface) !important;
    font-size: .72rem;
    letter-spacing: .045em;
    text-transform: uppercase;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .theme-menu-heading span {
    color: var(--ct-copy) !important;
    font-size: .62rem;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .theme-menu button {
    position: relative;
    display: grid;
    grid-template-columns: 2.65rem minmax(0, 1fr) 1rem;
    align-items: center;
    gap: .62rem;
    min-height: 3.25rem;
    padding: .42rem .5rem;
    border: 1px solid transparent;
    border-radius: .68rem;
    color: var(--ct-on-surface) !important;
    text-align: left;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .theme-menu button::after {
    content: "";
    grid-column: 3;
    color: var(--ct-on-surface);
    font-size: .72rem;
    font-weight: 900;
    text-align: center;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .theme-menu button.active::after {
    content: "✓";
}

html[data-ui="crystal-tech"][data-crystal-theme] body .theme-menu button:hover,
html[data-ui="crystal-tech"][data-crystal-theme] body .theme-menu button.active {
    background: var(--ct-nav-hover) !important;
    border-color: color-mix(in srgb, var(--ct-button-border) 58%, transparent) !important;
    color: var(--ct-on-surface) !important;
}

.theme-swatch {
    display: block;
    width: 2.65rem;
    height: 2rem;
    border: 1px solid rgba(255, 255, 255, .58);
    border-radius: .52rem;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .52), 0 3px 8px rgba(4, 31, 40, .18);
}

.theme-swatch-tech {
    background: linear-gradient(135deg, #103d4a 0%, #176277 58%, #2dd4bf 100%);
}

.theme-swatch-obsidian {
    background: linear-gradient(135deg, #080f1a 0%, #17243a 58%, #4c3270 100%);
}

.theme-swatch-sapphire {
    background: linear-gradient(135deg, #062c70 0%, #0d5fc0 56%, #08a7dd 100%);
}

.theme-option-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: .08rem;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .theme-option-copy strong {
    color: var(--ct-on-surface) !important;
    font-size: .7rem;
    line-height: 1.1;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .theme-option-copy small {
    overflow: hidden;
    color: var(--ct-copy) !important;
    font-size: .58rem;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
}

html[data-ui="crystal-tech"] body :is(button, a, [role="button"]):not(:disabled):active {
    transform: translateY(0) scale(.985);
}

html[data-ui="crystal-tech"] body :is(button, a, input, select, textarea) {
    -webkit-tap-highlight-color: transparent;
}

html[data-ui="crystal-tech"] body :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="range"]):focus {
    transition: border-color .16s ease, box-shadow .18s ease, background-color .18s ease;
}

/* Configurações fiscais: superfícies Crystal e campos em azul-gelo. */
html[data-ui="crystal-tech"][data-crystal-theme] body .fiscal-settings-screen .fiscal-settings-card {
    background: var(--ct-surface) !important;
    border-color: rgba(94, 234, 212, .30) !important;
    box-shadow: inset 0 1px 0 rgba(204, 251, 241, .15), var(--crystal-shadow);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .fiscal-settings-screen .fiscal-certificate-file::file-selector-button {
    min-width: 9.25rem;
    height: 100%;
    margin: 0 .75rem 0 0;
    padding: 0 1rem;
    background: var(--ct-neutral-button) !important;
    border: 1px solid var(--ct-button-border) !important;
    color: var(--ct-on-surface) !important;
    font-size: .65rem;
    font-weight: 800;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
    vertical-align: middle;
    box-shadow: inset 0 1px 0 rgba(236, 254, 255, .38);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .fiscal-settings-screen .fiscal-certificate-submit {
    background: var(--ct-neutral-button) !important;
    border: 1px solid var(--ct-button-border) !important;
    color: var(--ct-on-surface) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .fiscal-settings-screen :is(input, select, textarea):not([type="file"]) {
    background: var(--ct-field) !important;
    border-color: var(--ct-field-border) !important;
    color: var(--ct-field-text) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .fiscal-settings-screen #formFiscalConfig .bg-zinc-900\/40 {
    background: var(--ct-field) !important;
    border-color: var(--ct-field-border) !important;
    color: var(--ct-field-text) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .68);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .fiscal-settings-screen #formFiscalConfig .bg-zinc-900\/40 :is(div, span, label) {
    color: var(--ct-field-text) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .fiscal-settings-screen .fiscal-settings-ibs {
    background: linear-gradient(180deg, #fff2bd 0%, #f4d98b 100%) !important;
    border-color: #d79b17 !important;
    color: #3f3109 !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .78), 0 6px 16px rgba(91, 63, 5, .13);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .fiscal-settings-screen .fiscal-settings-ibs :is(h3, p) {
    color: #374151 !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body main.app-screen-frame .fiscal-settings-screen .fiscal-settings-ibs p.text-zinc-400 {
    color: #374151 !important;
    -webkit-text-fill-color: #374151 !important;
    opacity: 1 !important;
    font-weight: 600;
    text-shadow: none !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .fiscal-settings-screen .fiscal-settings-ibs a {
    background: var(--ct-neutral-button) !important;
    border-color: var(--ct-button-border) !important;
    color: #f4feff !important;
}

/* Usuários: área de registros no mesmo azul-gelo das demais listas. */
html[data-ui="crystal-tech"][data-crystal-theme] body .users-screen .users-data-table tbody tr {
    background: color-mix(in srgb, var(--ct-field-solid) 86%, var(--ct-container-solid)) !important;
    border-color: color-mix(in srgb, var(--ct-field-border) 58%, transparent) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .48);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .users-screen .users-data-table tbody tr:nth-child(even) {
    background: color-mix(in srgb, var(--ct-field-solid) 80%, var(--ct-container-solid)) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .users-screen .users-data-table tbody tr:hover {
    background: var(--ct-field-solid) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .users-screen .users-data-table tbody td {
    color: var(--ct-field-text) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .users-screen .users-data-table tbody :is(.text-white, .text-zinc-100, .text-zinc-200, .text-zinc-300):not(button):not(a) {
    color: var(--ct-field-text) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .users-screen .users-data-table tbody :is(.text-zinc-400, .text-zinc-500, .text-zinc-600):not(button):not(a) {
    color: color-mix(in srgb, var(--ct-field-text) 72%, transparent) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .users-screen .users-access-help,
html[data-ui="crystal-tech"][data-crystal-theme] body .users-screen .users-access-help :is(p, strong) {
    color: var(--ct-field-text) !important;
    opacity: 1 !important;
    text-shadow: none !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .users-screen .user-profile-badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.35rem;
    background: linear-gradient(180deg, #facc15 0%, #f59e0b 100%) !important;
    border: 1px solid #d98b08;
    color: #342500 !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .58), 0 2px 5px rgba(120, 76, 4, .16);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .users-screen .user-status-active,
html[data-ui="crystal-tech"][data-crystal-theme] body .users-screen .user-status-inactive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 4rem;
    min-height: 1.35rem;
    padding: .12rem .48rem;
    border-radius: .38rem;
    color: #ffffff !important;
    font-size: .625rem;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .users-screen .user-status-active {
    background: linear-gradient(180deg, #10b981 0%, #047857 100%) !important;
    border: 1px solid #047857;
    box-shadow: inset 0 1px 0 rgba(209, 250, 229, .42), 0 2px 5px rgba(4, 120, 87, .18);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .users-screen .user-status-inactive {
    background: linear-gradient(180deg, #64748b 0%, #475569 100%) !important;
    border: 1px solid #475569;
}

/* Terminais de caixa e garçom: réplica da leitura visual de Usuários. */
html[data-ui="crystal-tech"][data-crystal-theme] body .terminal-admin-screen .terminal-data-table tbody tr {
    background: color-mix(in srgb, var(--ct-field-solid) 86%, var(--ct-container-solid)) !important;
    border-color: color-mix(in srgb, var(--ct-field-border) 58%, transparent) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .48);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .terminal-admin-screen .terminal-data-table tbody tr:nth-child(even) {
    background: color-mix(in srgb, var(--ct-field-solid) 80%, var(--ct-container-solid)) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .terminal-admin-screen .terminal-data-table tbody tr:hover {
    background: var(--ct-field-solid) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .terminal-admin-screen .terminal-data-table tbody td,
html[data-ui="crystal-tech"][data-crystal-theme] body .terminal-admin-screen .terminal-data-table tbody td.text-white {
    color: var(--ct-field-text) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .terminal-admin-screen :is(.terminal-status-active, .terminal-status-revoked) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 4.4rem;
    min-height: 1.35rem;
    padding: .12rem .5rem;
    border-radius: .38rem;
    color: #ffffff !important;
    font-size: .625rem;
    font-weight: 900;
    line-height: 1;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .terminal-admin-screen .terminal-status-active {
    background: linear-gradient(180deg, #10b981 0%, #047857 100%) !important;
    border: 1px solid #047857;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .terminal-admin-screen .terminal-status-revoked {
    background: linear-gradient(180deg, #ef4444 0%, #b91c1c 100%) !important;
    border: 1px solid #b91c1c;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .terminal-admin-screen .terminal-code-button {
    background: linear-gradient(180deg, #facc15 0%, #f59e0b 100%) !important;
    border-color: #d98b08 !important;
    color: #342500 !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .58), 0 3px 8px rgba(120, 76, 4, .18);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .terminal-admin-screen .terminal-action-success {
    background: linear-gradient(180deg, #10b981 0%, #047857 100%) !important;
    border: 1px solid #047857 !important;
    color: #ffffff !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .terminal-admin-screen .terminal-action-danger {
    background: linear-gradient(180deg, #ef4444 0%, #b91c1c 100%) !important;
    border: 1px solid #b91c1c !important;
    color: #ffffff !important;
}

/* Balanças: composição completa no padrão Crystal Tech. */
html[data-ui="crystal-tech"][data-crystal-theme] body .balance-screen .scale-panel {
    background: var(--ct-surface) !important;
    border-color: rgba(94, 234, 212, .30) !important;
    box-shadow: inset 0 1px 0 rgba(204, 251, 241, .15), var(--crystal-shadow);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .balance-screen .scale-field {
    background: var(--ct-field) !important;
    border-color: var(--ct-field-border) !important;
    color: var(--ct-field-text) !important;
    -webkit-text-fill-color: var(--ct-field-text) !important;
    text-shadow: none !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .balance-screen :is(.balance-terminal-row, .balance-config-card, .scale-preview, .balance-empty) {
    background: color-mix(in srgb, var(--ct-field-solid) 86%, var(--ct-container-solid)) !important;
    border-color: color-mix(in srgb, var(--ct-field-border) 64%, transparent) !important;
    color: var(--ct-field-text) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .52);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .balance-screen .balance-terminal-row:hover,
html[data-ui="crystal-tech"][data-crystal-theme] body .balance-screen .balance-terminal-row.is-active {
    background: var(--ct-field-solid) !important;
    border-color: var(--ct-field-border) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .62), 0 0 0 2px color-mix(in srgb, var(--ct-field-border) 22%, transparent);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .balance-screen :is(.balance-terminal-row, .balance-config-card, .scale-preview, .balance-empty) :is(strong, h4, p, label, .text-white, .text-zinc-200, .text-zinc-300, .text-zinc-400, .text-zinc-500) {
    color: var(--ct-field-text) !important;
    text-shadow: none !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .balance-screen :is(.balance-status-active, .balance-status-revoked) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 4.4rem;
    color: #ffffff !important;
    border-radius: .38rem;
    line-height: 1;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .32);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .balance-screen .balance-status-active {
    background: linear-gradient(180deg, #10b981 0%, #047857 100%) !important;
    border: 1px solid #047857;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .balance-screen .balance-status-revoked {
    background: linear-gradient(180deg, #64748b 0%, #475569 100%) !important;
    border: 1px solid #475569;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .balance-screen .scale-hero > a,
html[data-ui="crystal-tech"][data-crystal-theme] body .balance-screen .balance-save-button {
    background: var(--ct-neutral-button) !important;
    border: 1px solid var(--ct-button-border) !important;
    color: var(--ct-on-surface) !important;
    box-shadow: inset 0 1px 0 rgba(236, 254, 255, .42), 0 4px 11px rgba(8, 47, 58, .15);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .balance-screen .balance-save-button:hover:not(:disabled),
html[data-ui="crystal-tech"][data-crystal-theme] body .balance-screen .scale-hero > a:hover {
    background: var(--ct-button-hero-hover) !important;
    border-color: var(--ct-button-border-hover) !important;
}

html[data-ui="crystal-tech"] body .crystal-brand-mark {
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .74),
        0 0 16px rgba(251, 191, 36, .18),
        0 6px 14px rgba(8, 47, 58, .16) !important;
}

@media (prefers-reduced-motion: reduce) {
    html[data-ui="crystal-tech"] body :is(button, a, [role="button"]):not(:disabled):active {
        transform: none;
    }
}

/* ----------------------------------------------------------------
   J6 PRIME — legibilidade universal dos campos de dados.
   Mantém PDV/DAV sob suas regras operacionais especializadas.
   ---------------------------------------------------------------- */
html[data-ui="crystal-tech"][data-crystal-theme] body:not(:has(.pdv-viewport)) :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="range"]):not([type="color"]) {
    background: var(--ct-field) !important;
    border-color: var(--ct-field-border) !important;
    color: var(--ct-field-text) !important;
    -webkit-text-fill-color: var(--ct-field-text) !important;
    caret-color: var(--ct-field-text) !important;
    font-weight: 600;
    text-shadow: none !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:not(:has(.pdv-viewport)) :is(input, textarea)::placeholder {
    color: color-mix(in srgb, var(--ct-field-text) 62%, transparent) !important;
    -webkit-text-fill-color: color-mix(in srgb, var(--ct-field-text) 62%, transparent) !important;
    opacity: 1;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:not(:has(.pdv-viewport)) select option {
    background: var(--ct-field-solid) !important;
    color: var(--ct-field-text) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:not(:has(.pdv-viewport)) :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="range"]):not([type="color"]):disabled {
    color: color-mix(in srgb, var(--ct-field-text) 82%, transparent) !important;
    -webkit-text-fill-color: color-mix(in srgb, var(--ct-field-text) 82%, transparent) !important;
    opacity: .84;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:not(:has(.pdv-viewport)) :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="range"]):not([type="color"]):focus {
    border-color: var(--ct-button-border-hover) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--ct-button-border) 25%, transparent), inset 0 1px 0 rgba(255,255,255,.52) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:not(:has(.pdv-viewport)) input:-webkit-autofill,
html[data-ui="crystal-tech"][data-crystal-theme] body:not(:has(.pdv-viewport)) input:-webkit-autofill:hover,
html[data-ui="crystal-tech"][data-crystal-theme] body:not(:has(.pdv-viewport)) input:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--ct-field-text) !important;
    caret-color: var(--ct-field-text) !important;
    box-shadow: 0 0 0 1000px var(--ct-field-solid) inset !important;
}

/* ----------------------------------------------------------------
   Cabeçalho Crystal Tech oficial.
   Unifica módulos novos e telas legadas no padrão da Transportadora.
   ---------------------------------------------------------------- */
html[data-ui="crystal-tech"][data-crystal-theme] body:not(:has(.pdv-viewport)) main.app-screen-frame :is(
    .module-page-hero,
    .customer-page-hero,
    .products-hero,
    .documents-hero,
    .op-hero,
    .daily-hero,
    .cash-hero,
    .scale-hero,
    .finance-hero,
    .rp-hero,
    .int-hero,
    .mdfe-registry-head
) {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    color: var(--ct-on-surface) !important;
    background: var(--ct-header) !important;
    border: 1px solid var(--ct-button-border) !important;
    border-radius: .9rem !important;
    box-shadow:
        inset 0 1px 0 rgba(236, 254, 255, .58),
        inset 0 -2px 0 rgba(7, 48, 60, .30),
        0 0 0 1px color-mix(in srgb, var(--ct-button-border) 12%, transparent),
        0 8px 20px rgba(8, 47, 58, .18) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:not(:has(.pdv-viewport)) main.app-screen-frame :is(
    .module-page-hero,
    .customer-page-hero,
    .products-hero,
    .documents-hero,
    .op-hero,
    .daily-hero,
    .cash-hero,
    .scale-hero,
    .finance-hero,
    .rp-hero,
    .int-hero,
    .mdfe-registry-head
)::before {
    content: "";
    position: absolute;
    z-index: 0;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(158deg, rgba(255, 255, 255, .24) 0%, rgba(255, 255, 255, .075) 29%, transparent 29.5%);
    pointer-events: none;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:not(:has(.pdv-viewport)) main.app-screen-frame :is(
    .module-page-hero,
    .customer-page-hero,
    .products-hero,
    .documents-hero,
    .op-hero,
    .daily-hero,
    .cash-hero,
    .scale-hero,
    .finance-hero,
    .rp-hero,
    .int-hero,
    .mdfe-registry-head
) > * {
    position: relative;
    z-index: 1;
}

html[data-ui="crystal-tech"][data-crystal-theme] body:not(:has(.pdv-viewport)) main.app-screen-frame :is(
    .module-page-hero,
    .customer-page-hero,
    .products-hero,
    .documents-hero,
    .op-hero,
    .daily-hero,
    .cash-hero,
    .scale-hero,
    .finance-hero,
    .rp-hero,
    .int-hero,
    .mdfe-registry-head
) :is(h1, h2, h3, h4, h5, h6, .text-white, .text-zinc-100, .text-zinc-200, .text-zinc-300) {
    color: var(--ct-on-surface) !important;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
    letter-spacing: .015em;
    text-shadow: 0 1px 2px rgba(4, 31, 40, .42);
}

html[data-ui="crystal-tech"][data-crystal-theme] body:not(:has(.pdv-viewport)) main.app-screen-frame :is(
    .module-page-hero,
    .customer-page-hero,
    .products-hero,
    .documents-hero,
    .op-hero,
    .daily-hero,
    .cash-hero,
    .scale-hero,
    .finance-hero,
    .rp-hero,
    .int-hero,
    .mdfe-registry-head
) :is(p, small, .text-zinc-400, .text-zinc-500, .text-zinc-600) {
    color: var(--ct-copy) !important;
}

/* Ações fiscais principais: réplica do botão FINALIZAR VENDA do PDV. */
html body.nfe-create-screen #nfeForm #nfeFiscalActions button.pdv-finalize-action[type="submit"],
html body #modalNfse #nfseSubmitButton.pdv-finalize-action,
html body #modalMdfe #mdfeActions button.pdv-finalize-action[type="submit"][data-primary-save] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .35rem !important;
    height: 2.55rem !important;
    min-height: 2.55rem !important;
    padding: .45rem .5rem !important;
    border: 1px solid #14532d !important;
    border-radius: 9px !important;
    background: #16a34a !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    font-size: .72rem !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;
    letter-spacing: .05em !important;
    text-transform: uppercase !important;
    box-shadow: 0 6px 16px rgba(22, 163, 74, .2) !important;
    filter: none !important;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease, filter .15s ease, transform .15s ease !important;
}

html body.nfe-create-screen #nfeForm #nfeFiscalActions button.pdv-finalize-action[type="submit"] :is(i, span),
html body #modalNfse #nfseSubmitButton.pdv-finalize-action :is(i, span),
html body #modalMdfe #mdfeActions button.pdv-finalize-action[type="submit"][data-primary-save] :is(i, span) {
    color: inherit !important;
    -webkit-text-fill-color: currentColor !important;
}

html body.nfe-create-screen #nfeForm #nfeFiscalActions button.pdv-finalize-action[type="submit"] > i,
html body #modalNfse #nfseSubmitButton.pdv-finalize-action > i,
html body #modalMdfe #mdfeActions button.pdv-finalize-action[type="submit"][data-primary-save] > i {
    margin-right: 0 !important;
}

html body.nfe-create-screen #nfeForm #nfeFiscalActions button.pdv-finalize-action[type="submit"]:hover:not(:disabled),
html body.nfe-create-screen #nfeForm #nfeFiscalActions button.pdv-finalize-action[type="submit"]:focus-visible:not(:disabled),
html body #modalNfse #nfseSubmitButton.pdv-finalize-action:hover:not(:disabled),
html body #modalNfse #nfseSubmitButton.pdv-finalize-action:focus-visible:not(:disabled),
html body #modalMdfe #mdfeActions button.pdv-finalize-action[type="submit"][data-primary-save]:hover:not(:disabled),
html body #modalMdfe #mdfeActions button.pdv-finalize-action[type="submit"][data-primary-save]:focus-visible:not(:disabled) {
    border-color: #eab308 !important;
    background: #facc15 !important;
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
    box-shadow: 0 8px 16px rgba(245, 158, 11, .25) !important;
    filter: brightness(1.05) !important;
    transform: translateY(-1px) !important;
}

html body.nfe-create-screen #nfeForm #nfeFiscalActions button.pdv-finalize-action[type="submit"]:active:not(:disabled),
html body #modalNfse #nfseSubmitButton.pdv-finalize-action:active:not(:disabled),
html body #modalMdfe #mdfeActions button.pdv-finalize-action[type="submit"][data-primary-save]:active:not(:disabled) {
    transform: translateY(1px) !important;
}

/* Nas emissões NFS-e e MDF-e, iguala a altura da ação aos botões Gravar e Prévia. */
html body #modalNfse #nfseActions #nfseSubmitButton.pdv-finalize-action,
html body #modalMdfe #mdfeActions button.pdv-finalize-action[type="submit"][data-primary-save] {
    height: 3rem !important;
    min-height: 3rem !important;
}
/* Detalhes do DAV: documento comercial no padrão Crystal Tech. */
html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen {
    width: 100%;
    max-width: none;
    min-height: 100%;
    margin: 0;
    padding: clamp(.85rem, 1.4vw, 1.35rem) !important;
    border: 1px solid color-mix(in srgb, var(--ct-field-border) 55%, transparent);
    border-radius: 1rem;
    background:
        linear-gradient(rgba(34, 211, 238, .025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(34, 211, 238, .025) 1px, transparent 1px),
        color-mix(in srgb, var(--ct-canvas) 88%, var(--ct-container-solid));
    background-size: 30px 30px;
    box-shadow: inset 0 1px 0 rgba(236, 254, 255, .30), 0 14px 35px rgba(8, 47, 58, .12);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen > div:first-child {
    padding: .9rem 1rem;
    border: 1px solid color-mix(in srgb, var(--ct-button-border) 65%, transparent);
    border-radius: .9rem;
    background: var(--ct-header) !important;
    box-shadow: inset 0 1px 0 rgba(236, 254, 255, .28), 0 8px 20px rgba(8, 47, 58, .16);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen > div:first-child :is(h1, p, a) {
    color: var(--ct-on-surface) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen > div:first-child p,
html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen > div:first-child > div:first-child > a {
    color: var(--ct-copy) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen > div:first-child > div:last-child a {
    display: inline-flex;
    min-height: 2.45rem;
    align-items: center;
    justify-content: center;
    border-color: var(--ct-button-border) !important;
    background: var(--ct-neutral-button) !important;
    color: var(--ct-on-surface) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), 0 5px 13px rgba(8, 47, 58, .17);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen > div:first-child > div:last-child a:hover {
    border-color: var(--ct-button-border-hover) !important;
    filter: brightness(1.08);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen > .grid.md\:grid-cols-4 > div,
html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen > .grid.md\:grid-cols-2 > div,
html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen > .rounded-xl {
    border-color: color-mix(in srgb, var(--ct-button-border) 48%, transparent) !important;
    background: var(--ct-surface) !important;
    color: var(--ct-on-surface) !important;
    box-shadow: inset 0 1px 0 rgba(236, 254, 255, .22), 0 8px 20px rgba(8, 47, 58, .13);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen > .grid.md\:grid-cols-4 > div {
    position: relative;
    overflow: hidden;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen > .grid.md\:grid-cols-4 > div::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: linear-gradient(180deg, var(--crystal-cyan), var(--crystal-teal));
}

html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen :is(.text-white, .text-zinc-300):not(tbody *) {
    color: var(--ct-on-surface) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen :is(.text-zinc-400, .text-zinc-500, .text-zinc-600):not(tbody *) {
    color: var(--ct-copy) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen table thead {
    background: var(--ct-table-head) !important;
    color: var(--ct-on-surface) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen table thead th {
    color: var(--ct-on-surface) !important;
    border-color: color-mix(in srgb, var(--ct-button-border) 38%, transparent) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen table tbody tr {
    border-color: color-mix(in srgb, var(--ct-field-border) 35%, transparent) !important;
    background: var(--ct-field-solid) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen table tbody tr:nth-child(even) {
    background: color-mix(in srgb, var(--ct-field-solid) 88%, var(--ct-field-border)) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen table tbody td {
    color: var(--ct-field-text) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen table + div {
    border-color: color-mix(in srgb, var(--ct-button-border) 45%, transparent) !important;
    background: color-mix(in srgb, var(--ct-container-solid) 78%, transparent);
    color: var(--ct-copy) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen table + div strong {
    color: #fbbf24 !important;
    text-shadow: 0 1px 8px rgba(245, 158, 11, .18);
}

html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen > .grid.md\:grid-cols-2 p,
html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen > .grid.md\:grid-cols-2 p strong {
    color: var(--ct-copy) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen > .grid.md\:grid-cols-2 p strong {
    color: var(--ct-on-surface) !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen > .rounded-xl:last-child > div > div {
    border-color: color-mix(in srgb, var(--ct-button-border) 30%, transparent) !important;
    color: var(--ct-copy) !important;
}

@media (max-width: 767px) {
    html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen {
        padding: .7rem !important;
    }
    html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen table {
        min-width: 42rem;
    }
    html[data-ui="crystal-tech"][data-crystal-theme] body .dav-details-screen > .rounded-xl.overflow-hidden {
        overflow-x: auto;
    }
}

/* PDV_INSTALLMENTS_UNIFIED: o mesmo componente de parcelas atende PDV e DAV. */
html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel .pdv-parcelas-block:not(.hidden) {
    display: grid !important;
    align-items: center;
    min-width: 0;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel .pdv-cash-summary-row.credit-installments-only > .pdv-parcelas-block:not(.hidden) {
    grid-template-columns: auto minmax(7rem, 8.5rem) minmax(7.5rem, 1fr) !important;
    grid-template-areas: "label field summary" !important;
    gap: .35rem .55rem !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel .pdv-cash-summary-row.installments-active:not(.credit-installments-only) > .pdv-parcelas-block:not(.hidden) {
    grid-template-columns: auto minmax(4.5rem, 1fr) !important;
    grid-template-areas: "label field" "summary summary" !important;
    gap: .22rem .35rem !important;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel .pdv-parcelas-block > label {
    grid-area: label;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel .pdv-parcelas-block .pdv-installment-field {
    grid-area: field;
    width: 100%;
    min-width: 0;
    max-width: none;
    flex-basis: auto;
}

html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel .pdv-parcelas-block .pdv-installment-summary {
    grid-area: summary;
    width: 100%;
    min-width: 0;
    max-width: none;
    margin-left: 0;
    text-align: right;
}

/* Dados do emitente: buscas de CNPJ e CEP compactas e com a mesma estrutura. */
.empresa-lookup-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 5.25rem;
    align-items: stretch;
    gap: .375rem;
    min-width: 0;
}

html body button.empresa-lookup-button.erp-standard-button.erp-standard-button,
html body .empresa-lookup-button {
    width: 5.25rem !important;
    min-width: 5.25rem !important;
    height: 2.5rem !important;
    min-height: 2.5rem !important;
    padding: .5rem .75rem !important;
    font-size: .75rem !important;
    line-height: 1 !important;
}

html body #emp_cnpj.empresa-cnpj-field {
    font-size: 1rem !important;
    font-weight: 800 !important;
    letter-spacing: .035em;
}

.empresa-address-primary-row {
    display: grid;
    grid-template-columns: minmax(8.5rem, 1fr) 5.25rem minmax(0, 2fr);
    gap: .5rem;
    align-items: end;
}

.empresa-address-search-action {
    display: flex;
    align-items: flex-end;
}

.empresa-address-search-action .empresa-lookup-button {
    flex: 0 0 5.25rem;
}

@media (max-width: 639px) {
    .empresa-address-primary-row {
        grid-template-columns: minmax(0, 1fr) 5.25rem;
    }

    .empresa-address-street {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    html[data-ui="crystal-tech"][data-crystal-theme] body #pdvViewport #terminalCheckoutPanel .pdv-cash-summary-row.credit-installments-only > .pdv-parcelas-block:not(.hidden) {
        grid-template-columns: auto minmax(4.5rem, 1fr) !important;
        grid-template-areas: "label field" "summary summary" !important;
    }
}
