/* ================================================================
   OXDS-LIGHT — Pacote de Design System do Backoffice, escopado
   ================================================================
   Gerado a partir de:
     - frontend/backoffice/assets/css/tokens.css      (copiado literalmente)
     - frontend/backoffice/assets/css/base.css        (sem o reset global; resto escopado)
     - frontend/backoffice/assets/css/components.css  (tudo escopado)

   Objetivo: permitir que o PDV (tema escuro, variáveis --pdv-*) carregue
   os componentes reais do backoffice SEM adaptar cores, usando o wrapper
   ".oxds-scope" para não vazar estilos para o resto do PDV.

   Regras de geração:
     - Todo seletor de components.css e da parte não-reset de base.css foi
       prefixado com ".oxds-scope " (inclusive dentro de @media/@supports).
     - @keyframes/@font-face NÃO foram escopados (identificam animações/
       fontes, não selecionam elementos).
     - :root e [data-theme="dark"] de tokens.css foram preservados como
       variáveis globais (confirmado que --color-*/--ox-* não colidem com
       --pdv-* do PDV).
     - Para usar: envolva a tela/componentes que usam o design system do
       backoffice com um elemento class="oxds-scope".

   Gerado em: 2026-10-11
   ================================================================ */

/* ================================================================
   TOKENS (copiado literalmente de tokens.css — variáveis globais)
   ================================================================ */
/* ================================================================
   TOKENS — Sistema de Design OX Automação
   Todas as variáveis globais do sistema.
   Trocar tema = trocar só estas variáveis.
   Nunca use cores, tamanhos ou espaçamentos hardcoded nos
   componentes — use sempre os tokens abaixo.
   ================================================================ */

:root {
    /* ----------------------------------------------------------
       OX DESIGN SYSTEM v1.0 — Paleta Oficial da Marca
       Documentação completa: DocsDesenvolvimento/ox_design_system.md
       ---------------------------------------------------------- */
    --ox-primary:       #D71920;   /* OX Red — cor principal da marca */
    --ox-primary-dark:  #A90F17;   /* OX Red Dark — hover, topbar, menu selecionado */
    --ox-white:         #F8FAFC;   /* OX White — textos sobre fundo escuro */
    --ox-bg:            #18181B;   /* OX Graphite — fundo escuro / sidebar */
    --ox-surface:       #27272A;   /* OX Surface — cards escuros / menu lateral */
    --ox-border:        #D4D4D8;   /* OX Silver — bordas e divisores */
    --ox-success:       #22C55E;
    --ox-info:          #2563EB;
    --ox-warning:       #F59E0B;
    --ox-danger:        #DC2626;
    --ox-text:          #18181B;
    --ox-text-light:    #52625B;
    --ox-text-inverse:  #F8FAFC;

    /* ----------------------------------------------------------
       CORES — Tema Light (padrão)
       ---------------------------------------------------------- */

    /* Superfícies */
    --color-bg:              #f0f2f5;   /* fundo geral da página */
    --color-surface:         #ffffff;   /* cards, modais, painéis */
    --color-surface-raised:  #ffffff;   /* superfície elevada (dropdown, tooltip) */
    --color-surface-sunken:  #e8eaed;   /* área recuada (input, código) */

    /* Bordas */
    --color-border:          #d9dde3;
    --color-border-strong:   #b0b8c1;
    --color-border-focus:    var(--color-primary);

    /* Texto */
    --color-text:            #1a1d23;   /* texto principal */
    --color-text-secondary:  #5a6270;   /* labels, metadados */
    --color-text-disabled:   #a0a8b4;
    --color-text-inverse:    #ffffff;   /* texto sobre fundo escuro/primário */

    /* Primária — OX Red */
    --color-primary:         #D71920;   /* OX Red */
    --color-primary-hover:   #A90F17;   /* OX Red Dark */
    --color-primary-active:  #8B0D13;
    --color-primary-subtle:  #fff5f5;
    --color-primary-text:    #A90F17;

    /* Semânticas */
    --color-success:         #16a34a;
    --color-success-subtle:  #f0fdf4;
    --color-success-border:  #86efac;

    --color-warning:         #d97706;
    --color-warning-subtle:  #fffbeb;
    --color-warning-border:  #fcd34d;

    --color-danger:          #dc2626;
    --color-danger-subtle:   #fef2f2;
    --color-danger-border:   #fca5a5;
    --color-danger-hover:    #b91c1c;

    --color-info:            #0891b2;
    --color-info-subtle:     #ecfeff;
    --color-info-border:     #67e8f9;

    /* Sidebar — OX Design System */
    --color-sidebar-bg:           #18181B;   /* OX Graphite */
    --color-sidebar-text:         #a8b0be;
    --color-sidebar-text-active:  #ffffff;
    --color-sidebar-item-hover:   #27272A;   /* OX Surface */
    --color-sidebar-item-active:  #A90F17;   /* OX Red Dark */
    --color-sidebar-border:       rgba(255,255,255,0.08);

    /* Topbar — OX Design System */
    --color-topbar-bg:       #A90F17;   /* OX Red Dark */
    --color-topbar-border:   #8B0D13;

    /* ----------------------------------------------------------
       TIPOGRAFIA
       ---------------------------------------------------------- */
    --font-family:           -apple-system, BlinkMacSystemFont, 'Segoe UI',
                              Roboto, 'Helvetica Neue', Arial, sans-serif;
    --font-family-mono:      'JetBrains Mono', 'Fira Code', 'Courier New', monospace;

    --font-size-xs:          13px;
    --font-size-sm:          14px;
    --font-size-base:        15px;
    --font-size-md:          16px;
    --font-size-lg:          18px;
    --font-size-xl:          20px;
    --font-size-2xl:         24px;
    --font-size-3xl:         30px;

    --font-weight-normal:    400;
    --font-weight-medium:    500;
    --font-weight-semibold:  600;
    --font-weight-bold:      700;

    --line-height-tight:     1.25;
    --line-height-base:      1.5;
    --line-height-relaxed:   1.75;

    /* ----------------------------------------------------------
       ESPAÇAMENTOS
       ---------------------------------------------------------- */
    --spacing-1:   4px;
    --spacing-2:   8px;
    --spacing-3:   12px;
    --spacing-4:   16px;
    --spacing-5:   20px;
    --spacing-6:   24px;
    --spacing-8:   32px;
    --spacing-10:  40px;
    --spacing-12:  48px;
    --spacing-16:  64px;

    /* ----------------------------------------------------------
       BORDAS E RAIOS
       ---------------------------------------------------------- */
    --radius-sm:    4px;
    --radius-md:    6px;
    --radius-lg:    10px;
    --radius-xl:    14px;
    --radius-full:  9999px;

    /* ----------------------------------------------------------
       SOMBRAS
       ---------------------------------------------------------- */
    --shadow-xs:    0 1px 2px rgba(0,0,0,0.05);
    --shadow-sm:    0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.05);
    --shadow-md:    0 4px 6px rgba(0,0,0,0.07), 0 2px 4px rgba(0,0,0,0.05);
    --shadow-lg:    0 10px 15px rgba(0,0,0,0.08), 0 4px 6px rgba(0,0,0,0.04);
    --shadow-xl:    0 20px 25px rgba(0,0,0,0.10), 0 10px 10px rgba(0,0,0,0.04);
    --shadow-focus: 0 0 0 3px rgba(215,25,32,0.2);

    /* ----------------------------------------------------------
       LAYOUT
       ---------------------------------------------------------- */
    --sidebar-width:           272px;
    --sidebar-width-collapsed: 56px;
    --topbar-height:           54px;
    --content-max-width:       1400px;

    /* Shell tokens — controlados por tema/template */
    --nav-item-height:         34px;
    --nav-section-gap:         4px;
    --nav-item-radius:         var(--radius-md);
    --nav-item-padding:        0 var(--spacing-3);
    --nav-icon-size:           17px;
    --sidebar-logo-height:     56px;
    --topbar-shadow:           var(--shadow-xs);
    --shell-page-padding:      var(--spacing-6);

    /* ----------------------------------------------------------
       TRANSIÇÕES
       ---------------------------------------------------------- */
    --transition-fast:   0.12s ease;
    --transition-base:   0.2s ease;
    --transition-slow:   0.35s ease;

    /* ----------------------------------------------------------
       Z-INDEX
       ---------------------------------------------------------- */
    --z-dropdown:         100;
    --z-sticky:           200;
    --z-overlay:          300;
    --z-modal:            400;
    --z-modal-backdrop:   400;
    --z-toast:            500;
    --z-tooltip:          600;
}

/* ================================================================
   TEMA DARK
   Sobrescreve apenas as variáveis que mudam.
   A estrutura, tamanhos e espaçamentos permanecem iguais.
   ================================================================ */
[data-theme="dark"] {
    /* ── Fundos ─────────────────────────────────────────────── */
    --color-bg:              #111113;   /* fundo da página — quase preto neutro */
    --color-surface:         #1C1C1F;   /* cards, painéis, modais */
    --color-surface-raised:  #222226;   /* dropdown, tooltip */
    --color-surface-sunken:  #16161A;   /* thead de tabelas, inputs */
    --color-surface-hover:   rgba(255,255,255,0.04);

    /* ── Bordas ─────────────────────────────────────────────── */
    --color-border:          #2A2A2D;   /* bordas padrão */
    --color-border-strong:   #3A3A3E;   /* bordas de destaque */
    --color-border-subtle:   #222226;   /* bordas internas muito suaves */

    /* ── Texto ──────────────────────────────────────────────── */
    --color-text:            #F4F4F5;   /* texto principal — branco levemente quente */
    --color-text-secondary:  #A0A0AB;   /* labels, subtítulos */
    --color-text-disabled:   #56565E;   /* desabilitado */
    --color-text-inverse:    #111113;

    /* ── Primária (OX Red) ──────────────────────────────────── */
    --color-primary:         #D71920;
    --color-primary-hover:   #A90F17;
    --color-primary-active:  #8B0D13;
    --color-primary-subtle:  rgba(215,25,32,0.14);
    --color-primary-border:  rgba(215,25,32,0.30);
    --color-primary-text:    #f87171;

    /* ── Sucesso ────────────────────────────────────────────── */
    --color-success:         #22c55e;
    --color-success-subtle:  rgba(34,197,94,0.12);
    --color-success-border:  rgba(34,197,94,0.28);

    /* ── Alerta ─────────────────────────────────────────────── */
    --color-warning:         #f59e0b;
    --color-warning-subtle:  rgba(245,158,11,0.12);
    --color-warning-border:  rgba(245,158,11,0.28);

    /* ── Perigo ─────────────────────────────────────────────── */
    --color-danger:          #ef4444;
    --color-danger-subtle:   rgba(239,68,68,0.12);
    --color-danger-border:   rgba(239,68,68,0.28);
    --color-danger-hover:    #dc2626;
    --color-danger-dark:     #A90F17;

    /* ── Info ───────────────────────────────────────────────── */
    --color-info:            #06b6d4;
    --color-info-subtle:     rgba(6,182,212,0.12);
    --color-info-border:     rgba(6,182,212,0.28);

    /* ── Sidebar ────────────────────────────────────────────── */
    --color-sidebar-bg:            #18181B;   /* Graphite OX */
    --color-sidebar-text:          #A0A0AB;
    --color-sidebar-text-active:   #F4F4F5;
    --color-sidebar-item-hover:    rgba(255,255,255,0.06);
    --color-sidebar-item-active:   #A90F17;
    --color-sidebar-border:        rgba(255,255,255,0.05);

    /* ── Topbar ─────────────────────────────────────────────── */
    --color-topbar-bg:       #A90F17;
    --color-topbar-border:   #8B0D13;

    /* ── Sombras (mais pronunciadas no dark) ────────────────── */
    --shadow-xs:    0 1px 2px rgba(0,0,0,0.40);
    --shadow-sm:    0 1px 3px rgba(0,0,0,0.50), 0 1px 2px rgba(0,0,0,0.35);
    --shadow-md:    0 4px 6px rgba(0,0,0,0.50), 0 2px 4px rgba(0,0,0,0.35);
    --shadow-lg:    0 10px 15px rgba(0,0,0,0.60), 0 4px 6px rgba(0,0,0,0.35);
    --shadow-xl:    0 20px 25px rgba(0,0,0,0.70), 0 10px 10px rgba(0,0,0,0.35);
    --shadow-focus: 0 0 0 3px rgba(215,25,32,0.35);
}


/* ================================================================
   BASE (escopado — sem o reset global *, html, body, #app)
   ================================================================ */
.oxds-scope .app-shell {
    display: flex;
    min-height: 100vh;
}

/* Sidebar */
.oxds-scope .app-sidebar {
    width: var(--sidebar-width);
    min-height: 100vh;
    background: var(--color-sidebar-bg);
    border-right: 1px solid var(--color-sidebar-border);
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    transition: width var(--transition-slow), transform var(--transition-slow);
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: var(--z-sticky);
    overflow: hidden;
}

.oxds-scope .app-sidebar.collapsed {
    width: var(--sidebar-width-collapsed);
}

/* Área principal */
.oxds-scope .app-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    margin-left: var(--sidebar-width);
    transition: margin-left var(--transition-slow);
}

.oxds-scope .app-main.sidebar-collapsed {
    margin-left: var(--sidebar-width-collapsed);
}

/* Topbar */
.oxds-scope .app-topbar {
    height: var(--topbar-height);
    background: var(--color-topbar-bg);
    border-bottom: 1px solid var(--color-topbar-border);
    display: flex;
    align-items: center;
    padding: 0 var(--spacing-5);
    gap: var(--spacing-3);
    flex-shrink: 0;
    position: sticky;
    top: 0;
    z-index: var(--z-sticky);
    box-shadow: 0 1px 0 var(--color-topbar-border), 0 1px 8px rgba(0,0,0,0.04);
}

/* Esquerda: hamburger + logo */
.oxds-scope .topbar-left {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    flex-shrink: 0;
}
.oxds-scope .topbar-hamburger {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: var(--radius-md);
    background: transparent;
    color: rgba(255,255,255,0.85);
    font-size: var(--font-size-base);
    cursor: pointer;
    transition: background var(--transition-fast), color var(--transition-fast);
}
.oxds-scope .topbar-hamburger:hover {
    background: rgba(0,0,0,0.15);
    color: #fff;
}
/* Em desktop o collapse é controlado pelo botão dentro do próprio sidebar */
@media (min-width: 769px) {
    .oxds-scope .topbar-hamburger { display: none; }
}
.oxds-scope .topbar-logo {
    display: flex;
    align-items: center;
}
.oxds-scope .topbar-logo-img {
    height: 32px;
    width: auto;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

/* Centro: busca global */
.oxds-scope .topbar-search-center {
    flex: 1;
    display: flex;
    justify-content: center;
    padding: 0 var(--spacing-5);
}
.oxds-scope .topbar-search-center .topbar-search-trigger {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-3);
    height: 36px;
    padding: 0 var(--spacing-4);
    border: 1px solid rgba(255,255,255,0.25);
    border-radius: var(--radius-full);
    background: rgba(0,0,0,0.18);
    color: rgba(255,255,255,0.8);
    font-size: var(--font-size-sm);
    cursor: pointer;
    transition: border-color var(--transition-fast), background var(--transition-fast);
    white-space: nowrap;
    width: 100%;
    max-width: 420px;
}
.oxds-scope .topbar-search-center .topbar-search-trigger:hover {
    border-color: rgba(255,255,255,0.5);
    background: rgba(0,0,0,0.25);
    color: #fff;
}
.oxds-scope .topbar-search-ico-center {
    font-size: var(--font-size-sm);
    opacity: 0.7;
    flex-shrink: 0;
}
.oxds-scope .topbar-search-hint-center {
    flex: 1;
    text-align: left;
}
.oxds-scope .topbar-kbd-center {
    font-size: 11px;
    font-family: var(--font-family-mono);
    color: rgba(255,255,255,0.55);
    background: rgba(0,0,0,0.2);
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 4px;
    padding: 1px 6px;
    line-height: 1.5;
    flex-shrink: 0;
}

/* Direita: ações + perfil */
.oxds-scope .topbar-right {
    display: flex;
    align-items: center;
    gap: var(--spacing-1);
    flex-shrink: 0;
}

/* Separador flex (legado) */
.oxds-scope .topbar-spacer { flex: 1; }
.oxds-scope .topbar-search-field {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    height: 32px;
    padding: 0 var(--spacing-3);
    border: 1px solid var(--color-primary);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    box-shadow: 0 0 0 3px var(--color-primary-subtle);
    min-width: 260px;
    transition: all var(--transition-fast);
}
.oxds-scope .topbar-search-ico {
    color: var(--color-primary);
    font-size: var(--font-size-sm);
    flex-shrink: 0;
}
.oxds-scope .topbar-search-input {
    flex: 1;
    border: none;
    background: transparent;
    color: var(--color-text);
    font-size: var(--font-size-sm);
    font-family: var(--font-family);
    outline: none;
}
.oxds-scope .topbar-search-input::placeholder { color: var(--color-text-secondary); }
.oxds-scope .topbar-search-clear {
    border: none;
    background: transparent;
    color: var(--color-text-secondary);
    cursor: pointer;
    padding: 2px;
    border-radius: var(--radius-sm);
    line-height: 1;
    transition: color var(--transition-fast);
}
.oxds-scope .topbar-search-clear:hover { color: var(--color-text); }

/* Ações direita */
.oxds-scope .topbar-actions {
    display: flex;
    align-items: center;
    gap: var(--spacing-1);
    flex-shrink: 0;
}

/* Botão de ação genérico */
.oxds-scope .topbar-action-btn {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: var(--radius-md);
    background: transparent;
    color: rgba(255,255,255,0.85);
    font-size: var(--font-size-base);
    cursor: pointer;
    transition: background var(--transition-fast), color var(--transition-fast);
    position: relative;
}
.oxds-scope .topbar-action-btn:hover {
    background: rgba(0,0,0,0.15);
    color: #fff;
}

/* Badge do sino */
.oxds-scope .topbar-notif-btn { position: relative; }
.oxds-scope .topbar-badge {
    position: absolute;
    top: 2px;
    right: 2px;
    background: #fff;
    color: var(--color-danger);
    border-radius: var(--radius-full);
    min-width: 16px;
    height: 16px;
    font-size: 9px;
    font-weight: var(--font-weight-bold);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 3px;
    line-height: 1;
    pointer-events: none;
    border: 2px solid var(--color-topbar-bg);
}

/* Divisor vertical */
.oxds-scope .topbar-divider {
    width: 1px;
    height: 20px;
    background: rgba(255,255,255,0.25);
    margin: 0 var(--spacing-1);
    flex-shrink: 0;
}

/* Botão usuário */
.oxds-scope .topbar-user-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: 4px 6px 4px 4px;
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    background: transparent;
    cursor: pointer;
    transition: all var(--transition-fast);
}
.oxds-scope .topbar-user-btn:hover {
    background: rgba(0,0,0,0.15);
    border-color: rgba(255,255,255,0.2);
}

/* Avatar na topbar */
.oxds-scope .topbar-avatar {
    width: 28px;
    height: 28px;
    border-radius: var(--radius-full);
    background: var(--color-primary);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.02em;
    flex-shrink: 0;
    box-shadow: 0 0 0 2px var(--color-topbar-bg), 0 0 0 3px var(--color-border);
}
.oxds-scope .topbar-user-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
}
.oxds-scope .topbar-user-name {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: #fff;
    white-space: nowrap;
    max-width: 100px;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.2;
}
.oxds-scope .topbar-user-role {
    font-size: 12px;
    color: rgba(255,255,255,0.75);
    white-space: nowrap;
    line-height: 1.2;
}
.oxds-scope .topbar-user-chevron {
    font-size: 9px;
    color: rgba(255,255,255,0.75);
    transition: transform var(--transition-fast);
    flex-shrink: 0;
}

/* Dropdown do usuário */
.oxds-scope .topbar-user-menu {
    min-width: 220px;
}
.oxds-scope .topbar-user-menu .dropdown-header {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    padding: var(--spacing-3) var(--spacing-4);
    background: var(--color-surface-sunken);
    border-bottom: 1px solid var(--color-border);
    text-transform: none;
    letter-spacing: 0;
    color: var(--color-text);
}
.oxds-scope .topbar-menu-avatar {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-full);
    background: var(--color-primary);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    font-weight: var(--font-weight-bold);
    flex-shrink: 0;
}
.oxds-scope .topbar-menu-info { min-width: 0; }
.oxds-scope .topbar-menu-nome {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.oxds-scope .topbar-menu-empresa {
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Mobile toggle */
.oxds-scope .topbar-toggle {
    width: 32px;
    height: 32px;
    display: none;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: var(--radius-md);
    background: transparent;
    color: var(--color-text-secondary);
    font-size: var(--font-size-base);
    cursor: pointer;
}
@media (max-width: 768px) {
    .oxds-scope .topbar-toggle { display: inline-flex; }
}

/* Conteúdo da página */
.oxds-scope .app-content {
    flex: 1;
    padding: var(--spacing-6);
    width: 100%;
    min-width: 0;
}

/* ----------------------------------------------------------
   PAGE HEADER — Cabeçalho padrão de cada página
   ---------------------------------------------------------- */
.oxds-scope .page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--spacing-4);
    margin-bottom: var(--spacing-7);
    padding-bottom: var(--spacing-5);
    border-bottom: 1px solid var(--color-border);
}

.oxds-scope .page-header-info {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-3);
    min-width: 0;
}

.oxds-scope .page-header-icon {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-lg);
    background: var(--color-primary-subtle);
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
    flex-shrink: 0;
}

.oxds-scope .page-header-texts { min-width: 0; }

.oxds-scope .page-title {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    line-height: var(--line-height-tight);
}

.oxds-scope .page-subtitle {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin-top: 2px;
    line-height: var(--line-height-base);
}

.oxds-scope .page-actions {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    flex-shrink: 0;
    padding-top: 2px;
}

/* ----------------------------------------------------------
   SCROLLBAR GLOBAL
   ---------------------------------------------------------- */
.oxds-scope ::-webkit-scrollbar { width: 6px; height: 6px; }
.oxds-scope ::-webkit-scrollbar-track { background: transparent; }
.oxds-scope ::-webkit-scrollbar-thumb {
    background: var(--color-border-strong);
    border-radius: var(--radius-full);
}
.oxds-scope ::-webkit-scrollbar-thumb:hover {
    background: var(--color-text-disabled);
}

/* ----------------------------------------------------------
   UTILITÁRIOS DE TEXTO
   ---------------------------------------------------------- */
.oxds-scope .text-xs { font-size: var(--font-size-xs); }
.oxds-scope .text-sm { font-size: var(--font-size-sm); }
.oxds-scope .text-base { font-size: var(--font-size-base); }
.oxds-scope .text-md { font-size: var(--font-size-md); }
.oxds-scope .text-lg { font-size: var(--font-size-lg); }
.oxds-scope .text-muted { color: var(--color-text-secondary); }
.oxds-scope .text-disabled { color: var(--color-text-disabled); }
.oxds-scope .text-primary { color: var(--color-primary-text); }
.oxds-scope .text-success { color: var(--color-success); }
.oxds-scope .text-warning { color: var(--color-warning); }
.oxds-scope .text-danger { color: var(--color-danger); }
.oxds-scope .text-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.oxds-scope .font-medium { font-weight: var(--font-weight-medium); }
.oxds-scope .font-semibold { font-weight: var(--font-weight-semibold); }
.oxds-scope .font-bold { font-weight: var(--font-weight-bold); }
.oxds-scope .text-right { text-align: right; }
.oxds-scope .text-center { text-align: center; }

/* ----------------------------------------------------------
   UTILITÁRIOS DE LAYOUT
   ---------------------------------------------------------- */
.oxds-scope .flex { display: flex; }
.oxds-scope .flex-col { display: flex; flex-direction: column; }
.oxds-scope .flex-1 { flex: 1; }
.oxds-scope .items-center { align-items: center; }
.oxds-scope .items-start { align-items: flex-start; }
.oxds-scope .justify-between { justify-content: space-between; }
.oxds-scope .justify-end { justify-content: flex-end; }
.oxds-scope .gap-1 { gap: var(--spacing-1); }
.oxds-scope .gap-2 { gap: var(--spacing-2); }
.oxds-scope .gap-3 { gap: var(--spacing-3); }
.oxds-scope .gap-4 { gap: var(--spacing-4); }
.oxds-scope .w-full { width: 100%; }
.oxds-scope .min-w-0 { min-width: 0; }

/* ----------------------------------------------------------
   UTILITÁRIOS DE ESPAÇAMENTO
   ---------------------------------------------------------- */
.oxds-scope .mt-1 { margin-top: var(--spacing-1); }
.oxds-scope .mt-2 { margin-top: var(--spacing-2); }
.oxds-scope .mt-4 { margin-top: var(--spacing-4); }
.oxds-scope .mb-2 { margin-bottom: var(--spacing-2); }
.oxds-scope .mb-4 { margin-bottom: var(--spacing-4); }
.oxds-scope .mb-6 { margin-bottom: var(--spacing-6); }
.oxds-scope .p-4 { padding: var(--spacing-4); }
.oxds-scope .p-6 { padding: var(--spacing-6); }

/* ================================================================
   SHELL WORKSPACE — data-shell="workspace"
   Menu ultra-compacto. Sem labels de seção visíveis. Itens menores.
   Indicador ativo como barra cheia à esquerda. Topbar elevada.
   ================================================================ */

/* Sidebar mais estreita no workspace */
.oxds-scope [data-shell="workspace"] .app-sidebar {
    width: 220px;
    border-right: none;
    box-shadow: 2px 0 12px rgba(0,0,0,0.15);
}
.oxds-scope [data-shell="workspace"] .app-sidebar.collapsed {
    width: var(--sidebar-width-collapsed);
}
.oxds-scope [data-shell="workspace"] .app-main {
    margin-left: 220px;
}
.oxds-scope [data-shell="workspace"] .app-main.sidebar-collapsed {
    margin-left: var(--sidebar-width-collapsed);
}

/* Logo workspace — mais compacto, sem border-bottom */
.oxds-scope [data-shell="workspace"] .sidebar-logo {
    height: 52px;
    padding: 0 var(--spacing-3);
    border-bottom: none;
    position: relative;
}
.oxds-scope [data-shell="workspace"] .sidebar-logo::after {
    content: '';
    position: absolute;
    bottom: 0; left: var(--spacing-3); right: var(--spacing-3);
    height: 1px;
    background: var(--color-sidebar-border);
}
.oxds-scope [data-shell="workspace"] .sidebar-logo-icon {
    width: 26px; height: 26px;
    border-radius: var(--radius-sm);
    font-size: 14px;
}
.oxds-scope [data-shell="workspace"] .sidebar-logo-text {
    font-size: var(--font-size-base);
    letter-spacing: 0.01em;
}
.oxds-scope [data-shell="workspace"] .sidebar-logo-sub {
    font-size: 12px;
    opacity: 0.6;
}

/* Nav workspace — padding reduzido, sem gap entre seções */
.oxds-scope [data-shell="workspace"] .sidebar-nav {
    padding: var(--spacing-2) var(--spacing-2);
    gap: 1px;
}

/* Oculta labels de seção — workspace não tem títulos visíveis */
.oxds-scope [data-shell="workspace"] .sidebar-section-label {
    height: 0;
    padding: 0;
    overflow: hidden;
    opacity: 0;
    margin: 0;
}

/* Separador visual entre seções em workspace */
.oxds-scope [data-shell="workspace"] .sidebar-section {
    margin-bottom: 0;
    padding-bottom: 1px;
    border-bottom: 1px solid var(--color-sidebar-border);
    padding-top: var(--spacing-1);
}
.oxds-scope [data-shell="workspace"] .sidebar-section:last-child {
    border-bottom: none;
}
.oxds-scope [data-shell="workspace"] .sidebar-section:first-child {
    padding-top: var(--spacing-1);
}

/* Items menores e mais densos */
.oxds-scope [data-shell="workspace"] .nav-item {
    padding: 6px var(--spacing-2);
    font-size: var(--font-size-sm);
    border-radius: var(--radius-sm);
    gap: var(--spacing-2);
    height: 30px;
}
.oxds-scope [data-shell="workspace"] .nav-submenu .nav-item {
    padding: 5px var(--spacing-2);
    font-size: var(--font-size-xs);
    height: 28px;
}

/* Ícone workspace — menor e mais contido */
.oxds-scope [data-shell="workspace"] .nav-item-icon {
    width: 16px;
    font-size: 15px;
}

/* Indicador ativo workspace — barra cheia left, sem ::before fraco */
.oxds-scope [data-shell="workspace"] .nav-item.active {
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    padding-left: calc(var(--spacing-2) + 2px);
}
.oxds-scope [data-shell="workspace"] .nav-item.active::before {
    width: 3px;
    top: 0; bottom: 0;
    border-radius: 0 2px 2px 0;
}

/* Topbar workspace — mais alta, sombra pronunciada */
.oxds-scope [data-shell="workspace"] .app-topbar {
    height: 52px;
    box-shadow: 0 1px 0 var(--color-topbar-border), 0 2px 8px rgba(0,0,0,0.06);
}

/* Conteúdo workspace — padding equilibrado */
.oxds-scope [data-shell="workspace"] .app-content {
    padding: var(--spacing-5) var(--spacing-6);
}

/* Submenu workspace — transição mais rápida */
.oxds-scope [data-shell="workspace"] .nav-submenu {
    transition: max-height 0.18s ease;
}
.oxds-scope [data-shell="workspace"] .nav-submenu.open {
    max-height: 600px;
}

/* Footer workspace */
.oxds-scope [data-shell="workspace"] .sidebar-footer {
    padding: var(--spacing-2) var(--spacing-2);
    border-top: 1px solid var(--color-sidebar-border);
}

/* Collapsed workspace — comportamento padrão mantido */
.oxds-scope [data-shell="workspace"] .app-sidebar.collapsed .sidebar-section-label {
    opacity: 0;
}

/* ================================================================
   RESPONSIVO
   ================================================================ */
@media (max-width: 768px) {
    .oxds-scope .app-sidebar {
        transform: translateX(-100%);
        width: var(--sidebar-width);
        z-index: 300;
    }
    .oxds-scope .app-sidebar.mobile-open {
        transform: translateX(0);
    }
    .oxds-scope .app-main {
        margin-left: 0 !important;
    }
    .oxds-scope .app-content {
        padding: var(--spacing-3);
    }
    .oxds-scope .page-header {
        flex-direction: column;
        align-items: stretch;
        gap: var(--spacing-2);
    }
    /* Tabelas: scroll horizontal dentro do container */
    .oxds-scope .table-responsive, .oxds-scope .table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .oxds-scope table {
        min-width: 500px;
    }
    /* Topbar: ocultar elementos extras no mobile */
    .oxds-scope .topbar-search-center { display: none; }
    .oxds-scope .topbar-action-btn:not(.topbar-theme-btn):not(.topbar-notif-btn) { display: none; }
    /* KPI cards: 2 colunas no mobile */
    .oxds-scope .kpi-grid { grid-template-columns: 1fr 1fr !important; }
    /* Painéis laterais: empilhar abaixo no mobile */
    .oxds-scope .page-layout-2col { flex-direction: column !important; }
    .oxds-scope .page-right-panel { width: 100% !important; position: static !important; }
}


/* ================================================================
   COMPONENTS (escopado)
   ================================================================ */
/* ================================================================
   COMPONENTS — Sistema de Design OX Automação
   ================================================================ */

/* BOTÕES */
.oxds-scope .btn {
    display: inline-flex; align-items: center; justify-content: center;
    gap: var(--spacing-2); padding: 0 var(--spacing-4); height: 34px;
    font-size: var(--font-size-sm); font-weight: var(--font-weight-medium);
    font-family: inherit; line-height: 1; border: 1px solid transparent;
    border-radius: var(--radius-md); cursor: pointer; transition: all 0.15s ease;
    white-space: nowrap; text-decoration: none; vertical-align: middle; user-select: none;
}
.oxds-scope .btn:disabled { opacity: 0.5; cursor: not-allowed; pointer-events: none; }
.oxds-scope .btn i { font-size: 14px; }
.oxds-scope .btn-primary { background: var(--color-primary); color: var(--color-text-inverse); border-color: var(--color-primary); }
.oxds-scope .btn-primary:hover { background: var(--color-primary-hover); border-color: var(--color-primary-hover); box-shadow: 0 1px 4px rgba(37,99,235,0.35); }
.oxds-scope .btn-primary:active { background: var(--color-primary-active); }
.oxds-scope .btn-secondary { background: var(--color-surface); color: var(--color-text); border-color: var(--color-border); }
.oxds-scope .btn-secondary:hover { background: var(--color-surface-sunken); border-color: var(--color-border-strong); }
.oxds-scope .btn-danger { background: var(--color-danger); color: #fff; border-color: var(--color-danger); }
.oxds-scope .btn-danger:hover { background: var(--color-danger-hover); border-color: var(--color-danger-hover); }
.oxds-scope .btn-ghost { background: transparent; color: var(--color-text-secondary); border-color: transparent; }
.oxds-scope .btn-ghost:hover { background: var(--color-surface-sunken); color: var(--color-text); }
.oxds-scope .btn-success { background: var(--color-success); color: #fff; border-color: var(--color-success); }
.oxds-scope .btn-success:hover { filter: brightness(0.93); }
.oxds-scope .btn-info { background: var(--color-info); color: #fff; border-color: var(--color-info); }
.oxds-scope .btn-info:hover { filter: brightness(0.93); }
.oxds-scope .btn-info:disabled { opacity: .45; cursor: not-allowed; filter: none; }
.oxds-scope .btn-warning { background: var(--color-warning); color: #fff; border-color: var(--color-warning); }
.oxds-scope .btn-warning:hover { filter: brightness(0.93); }
.oxds-scope .btn-sm { height: 28px; padding: 0 var(--spacing-3); font-size: var(--font-size-xs); }
.oxds-scope .btn-lg { height: 42px; padding: 0 var(--spacing-6); font-size: var(--font-size-md); }
.oxds-scope .btn-icon { width: 34px; height: 34px; padding: 0; }
.oxds-scope .btn-icon.btn-sm { width: 28px; height: 28px; }

/* BOTÃO GERENCIAR — select + cadastro/edição rápida (ex: Seção/Grupo/Subgrupo, Cidade) */
.oxds-scope .btn-gerenciar {
    width: 36px; height: 36px; flex-shrink: 0; padding: 0;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid var(--color-primary); border-radius: var(--radius-md);
    background: var(--color-primary-subtle); color: var(--color-primary);
    cursor: pointer; transition: background .15s, transform .1s; font-size: 13px;
}
.oxds-scope .btn-gerenciar:hover:not(:disabled) { background: var(--color-primary); color: var(--color-text-inverse); }
.oxds-scope .btn-gerenciar:active:not(:disabled) { transform: scale(0.94); }
.oxds-scope .btn-gerenciar:disabled { opacity: .4; cursor: not-allowed; border-color: var(--color-border); background: var(--color-surface-sunken); color: var(--color-text-muted); }

/* FOTO DO PRODUTO — card lateral do FormItem, único ponto de upload */
.oxds-scope .foto-produto-upload:hover .foto-produto-hover { opacity: 1; }

/* BADGES */
.oxds-scope .badge {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 2px 8px; font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold); border-radius: var(--radius-full);
    line-height: 1.4; white-space: nowrap; letter-spacing: 0.02em;
}
.oxds-scope .badge-success { background: var(--color-success-subtle); color: var(--color-success); border: 1px solid var(--color-success-border); }
.oxds-scope .badge-danger { background: var(--color-danger-subtle);  color: var(--color-danger);  border: 1px solid var(--color-danger-border); }
.oxds-scope .badge-warning { background: var(--color-warning-subtle); color: var(--color-warning); border: 1px solid var(--color-warning-border); }
.oxds-scope .badge-info { background: var(--color-info-subtle);    color: var(--color-info);    border: 1px solid var(--color-info-border); }
.oxds-scope .badge-neutral { background: var(--color-surface-sunken); color: var(--color-text-secondary); border: 1px solid var(--color-border); }
.oxds-scope .badge-primary { background: var(--color-primary-subtle); color: var(--color-primary); border: 1px solid rgba(37,99,235,0.25); }

/* LISTA LATERAL SELECIONÁVEL (ex: grupos em Observações por Grupo) */
.oxds-scope .obs-grupo-item {
    display: flex; align-items: center; gap: 8px; width: 100%;
    border: none; background: transparent; color: var(--color-text);
    cursor: pointer; padding: 10px var(--spacing-4); font-size: var(--font-size-sm);
    text-align: left; transition: background .1s;
}
.oxds-scope .obs-grupo-item:hover { background: var(--color-surface-sunken); }
.oxds-scope .obs-grupo-item.active { background: var(--color-primary); color: var(--color-text-inverse); }

/* CAMPO "APLICAR" (ex: painel de edição em massa) — checkbox + label + input */
.oxds-scope .campo-aplicavel { display: flex; flex-direction: column; gap: 4px; }

/* CARDS */
.oxds-scope .card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-xl); overflow: hidden; }
.oxds-scope .card-header { display: flex; align-items: center; justify-content: space-between; padding: var(--spacing-4) var(--spacing-5); border-bottom: 1px solid var(--color-border); gap: var(--spacing-3); }
.oxds-scope .card-title { font-size: var(--font-size-md); font-weight: var(--font-weight-semibold); color: var(--color-text); margin: 0; }
.oxds-scope .card-body { padding: var(--spacing-5); }
.oxds-scope .card-footer { padding: var(--spacing-4) var(--spacing-5); border-top: 1px solid var(--color-border); background: var(--color-surface-sunken); }

/* STAT CARDS */
.oxds-scope .stat-card {
    background: var(--color-surface); border: 1px solid var(--color-border);
    border-radius: var(--radius-lg); padding: var(--spacing-4) var(--spacing-5);
    display: flex; flex-direction: column; gap: var(--spacing-1);
}
.oxds-scope .stat-label { font-size: var(--font-size-xs); font-weight: var(--font-weight-medium); color: var(--color-text-secondary); text-transform: uppercase; letter-spacing: 0.05em; display: flex; align-items: center; gap: 4px; }
.oxds-scope .stat-value { font-size: var(--font-size-2xl); font-weight: var(--font-weight-bold); color: var(--color-text); line-height: 1.2; }
.oxds-scope .stat-meta { font-size: var(--font-size-xs); color: var(--color-text-secondary); }

/* TABELA */
.oxds-scope .table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.oxds-scope .table { width: 100%; border-collapse: collapse; font-size: var(--font-size-sm); }
.oxds-scope .table th {
    padding: var(--spacing-2) var(--spacing-3); text-align: left;
    font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary); letter-spacing: 0.04em; text-transform: uppercase;
    background: var(--color-surface-sunken); border-bottom: 1px solid var(--color-border); white-space: nowrap;
}
.oxds-scope .table td { padding: var(--spacing-2) var(--spacing-3); border-bottom: 1px solid var(--color-border); vertical-align: middle; color: var(--color-text); line-height: 1.3; }
.oxds-scope .table tbody tr:last-child td { border-bottom: none; }
.oxds-scope .table tbody tr:hover td { background: var(--color-primary-subtle); }

/* Variante compacta — linhas mais baixas para grids com muita informação por
   linha (ex: lista de vendas com coluna Fiscal). */
.oxds-scope .table-compact th { padding: 4px var(--spacing-3); }
.oxds-scope .table-compact td { padding: 3px var(--spacing-3); }

/* Número do documento fiscal (NFCe/NFe/NFSe) nas colunas dedicadas da lista
   de vendas — negrito forte para se destacar do resto da linha. */
.oxds-scope .fiscal-doc-numero { font-weight: 800; font-size: 13px; color: var(--color-text); font-family: var(--font-family-mono); }

/* Linha expandida (histórico/XML) — marcador lateral para deixar claro que é
   uma extensão da linha acima, não confundir com uma linha normal da tabela. */
.oxds-scope .fiscal-linha-expandida td { background: var(--color-surface-sunken); border-top: 2px solid var(--color-primary); }
.oxds-scope .fiscal-linha-expandida-marcador {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 4px; width: 32px; flex-shrink: 0;
    background: var(--color-primary); color: #fff;
    font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
    writing-mode: vertical-rl; padding: 12px 0;
}
.oxds-scope .fiscal-linha-expandida-marcador i { writing-mode: horizontal-tb; font-size: 12px; }
.oxds-scope .table tbody tr.table-row-selected td { background: var(--color-primary-subtle); }
.oxds-scope .table tbody tr.table-row-clicked td { background: var(--color-primary-subtle); }
.oxds-scope .table .text-right, .oxds-scope .table th.text-right { text-align: right; }
.oxds-scope .table .text-center, .oxds-scope .table th.text-center { text-align: center; }
.oxds-scope .table th.sortable { cursor: pointer; user-select: none; }
.oxds-scope .table th.sortable:hover { color: var(--color-text); background: var(--color-surface-hover, rgba(0,0,0,.04)); }
.oxds-scope .table .col-actions { width: 72px; text-align: right; padding-right: var(--spacing-2); white-space: nowrap; }
.oxds-scope .table .col-actions .btn { display: inline-flex; vertical-align: middle; }

/* Tabelas de linhas editáveis (inputs dentro de células) */
.oxds-scope .tarifa-tabela-valores td { padding: var(--spacing-1) var(--spacing-1); }
.oxds-scope .form-input-sm { height: 30px; padding: 0 6px; font-size: var(--font-size-xs); min-width: 0; }
.oxds-scope .form-input-sm::-webkit-inner-spin-button, .oxds-scope .form-input-sm::-webkit-outer-spin-button { margin: 0; }

/* Seletor de dias da semana (chips) */
.oxds-scope .dia-semana-chip {
    min-width: 44px; height: 32px; padding: 0 var(--spacing-2);
    font-size: var(--font-size-xs); font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary); background: var(--color-surface);
    border: 1px solid var(--color-border); border-radius: var(--radius-full);
    cursor: pointer; transition: all 0.15s ease;
}
.oxds-scope .dia-semana-chip:hover { border-color: var(--color-primary); color: var(--color-primary); }
.oxds-scope .dia-semana-chip.ativo { background: var(--color-primary); border-color: var(--color-primary); color: #fff; }

/* WIZARD DE RESERVA (hotelaria) */
.oxds-scope .wr-stepper {
    display: flex; align-items: flex-start; padding: var(--spacing-5) var(--spacing-6) var(--spacing-4);
    gap: 0;
}
.oxds-scope .wr-step { display: flex; flex-direction: column; align-items: center; gap: var(--spacing-2); min-width: 84px; }
.oxds-scope .wr-step-circulo {
    width: 40px; height: 40px; border-radius: var(--radius-full);
    display: flex; align-items: center; justify-content: center;
    background: var(--color-surface-sunken); color: var(--color-text-disabled);
    border: 2px solid var(--color-border); font-size: 15px;
    transition: all 0.2s ease;
}
.oxds-scope .wr-step.ativo .wr-step-circulo {
    background: var(--color-primary); border-color: var(--color-primary); color: #fff;
    box-shadow: 0 0 0 4px var(--color-primary-subtle);
}
.oxds-scope .wr-step.concluido .wr-step-circulo { background: var(--color-success); border-color: var(--color-success); color: #fff; }
.oxds-scope .wr-step-label { font-size: var(--font-size-xs); color: var(--color-text-secondary); text-align: center; white-space: nowrap; }
.oxds-scope .wr-step.ativo .wr-step-label { color: var(--color-primary); font-weight: var(--font-weight-semibold); }
.oxds-scope .wr-step.concluido .wr-step-label { color: var(--color-success); }
.oxds-scope .wr-step-linha { flex: 1; height: 2px; background: var(--color-border); margin: 20px -12px 0; }
.oxds-scope .wr-step-linha.concluido { background: var(--color-success); }

.oxds-scope .wr-aviso {
    display: flex; align-items: center; gap: var(--spacing-2);
    border-radius: var(--radius-md); padding: var(--spacing-3) var(--spacing-4);
    font-size: var(--font-size-sm); margin-bottom: var(--spacing-3);
}
.oxds-scope .wr-aviso-danger { background: var(--color-danger-subtle); border: 1px solid var(--color-danger-border); color: var(--color-danger); }

.oxds-scope .wr-apto-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: var(--spacing-3); }
.oxds-scope .wr-apto-card {
    position: relative; display: flex; flex-direction: column; align-items: center; gap: var(--spacing-1);
    padding: var(--spacing-3) var(--spacing-2); border-radius: var(--radius-lg);
    background: var(--color-success-subtle); border: 2px solid var(--color-success-border);
    cursor: pointer; transition: all 0.15s ease;
}
.oxds-scope .wr-apto-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.oxds-scope .wr-apto-icone { font-size: 22px; color: var(--color-success); }
.oxds-scope .wr-apto-numero { font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--color-text); }
.oxds-scope .wr-apto-check { position: absolute; top: -6px; right: -6px; color: var(--color-primary); background: var(--color-surface); border-radius: var(--radius-full); font-size: 16px; }
.oxds-scope .wr-apto-card.selecionado { background: var(--color-primary-subtle); border-color: var(--color-primary); }
.oxds-scope .wr-apto-card.selecionado .wr-apto-icone { color: var(--color-primary); }

.oxds-scope .wr-modo-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-3); margin-bottom: var(--spacing-5); }
.oxds-scope .wr-modo-card {
    display: flex; flex-direction: column; align-items: center; gap: var(--spacing-2);
    padding: var(--spacing-4); border-radius: var(--radius-lg);
    background: var(--color-surface); border: 2px solid var(--color-border);
    cursor: pointer; transition: all 0.15s ease; font-size: var(--font-size-sm); color: var(--color-text-secondary);
}
.oxds-scope .wr-modo-card i { font-size: 22px; color: var(--color-text-secondary); }
.oxds-scope .wr-modo-card:hover { border-color: var(--color-primary); color: var(--color-primary); }
.oxds-scope .wr-modo-card:hover i { color: var(--color-primary); }
.oxds-scope .wr-modo-card.ativo { background: var(--color-primary-subtle); border-color: var(--color-primary); color: var(--color-primary-text); }
.oxds-scope .wr-modo-card.ativo i { color: var(--color-primary); }
.oxds-scope .wr-modo-card-disabled { cursor: not-allowed; opacity: 0.6; }
.oxds-scope .wr-modo-card-disabled:hover { border-color: var(--color-border); color: var(--color-text-secondary); }
.oxds-scope .wr-modo-card-disabled:hover i { color: var(--color-text-secondary); }

.oxds-scope .wr-resumo-card {
    display: flex; gap: var(--spacing-3); align-items: flex-start;
    background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg);
    padding: var(--spacing-4); margin-bottom: var(--spacing-3);
}
.oxds-scope .wr-resumo-icone {
    width: 40px; height: 40px; border-radius: var(--radius-md); flex-shrink: 0;
    display: flex; align-items: center; justify-content: center; font-size: 16px;
}
.oxds-scope .wr-icone-info { background: var(--color-info-subtle);    color: var(--color-info); }
.oxds-scope .wr-icone-success { background: var(--color-success-subtle); color: var(--color-success); }
.oxds-scope .wr-icone-warning { background: var(--color-warning-subtle); color: var(--color-warning); }
.oxds-scope .wr-resumo-titulo { font-size: var(--font-size-xs); text-transform: uppercase; letter-spacing: 0.03em; color: var(--color-text-secondary); margin-bottom: var(--spacing-1); font-weight: var(--font-weight-semibold); }
.oxds-scope .wr-resumo-linha { font-size: var(--font-size-sm); color: var(--color-text-secondary); margin-top: 2px; }
.oxds-scope .wr-resumo-total {
    display: flex; align-items: center; gap: var(--spacing-3);
    background: var(--color-primary-subtle); border: 1px solid var(--color-primary); border-radius: var(--radius-lg);
    padding: var(--spacing-4) var(--spacing-5); font-size: var(--font-size-md); color: var(--color-primary-text);
}
.oxds-scope .wr-resumo-total i { font-size: 22px; color: var(--color-primary); }
.oxds-scope .wr-resumo-total strong { margin-left: auto; font-size: 1.3rem; }

/* LISTA DE RESERVAS (hotelaria) */
.oxds-scope .rl-resumo-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: var(--spacing-3); margin-bottom: var(--spacing-5); }
.oxds-scope .rl-resumo-card {
    display: flex; align-items: center; gap: var(--spacing-3);
    background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg);
    padding: var(--spacing-4); cursor: pointer; transition: all 0.15s ease;
}
.oxds-scope .rl-resumo-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.oxds-scope .rl-resumo-card.rl-resumo-ativo { border-color: var(--color-primary); box-shadow: 0 0 0 1px var(--color-primary); }
.oxds-scope .rl-resumo-icone { width: 42px; height: 42px; border-radius: var(--radius-md); display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; }
.oxds-scope .rl-resumo-total { font-size: 1.4rem; font-weight: var(--font-weight-semibold); color: var(--color-text); line-height: 1.1; }
.oxds-scope .rl-resumo-label { font-size: var(--font-size-xs); color: var(--color-text-secondary); margin-top: 2px; }
.oxds-scope .rl-resumo-warning .rl-resumo-icone { background: var(--color-warning-subtle); color: var(--color-warning); }
.oxds-scope .rl-resumo-info    .rl-resumo-icone { background: var(--color-info-subtle);    color: var(--color-info); }
.oxds-scope .rl-resumo-success .rl-resumo-icone { background: var(--color-success-subtle); color: var(--color-success); }
.oxds-scope .rl-resumo-danger  .rl-resumo-icone { background: var(--color-danger-subtle);  color: var(--color-danger); }
.oxds-scope .rl-resumo-neutral .rl-resumo-icone { background: var(--color-neutral-subtle, #f1f5f9); color: var(--color-text-secondary); }
.oxds-scope .rl-codigo { font-weight: var(--font-weight-semibold); color: var(--color-primary); }

@media (max-width: 1200px) {
    .oxds-scope .rl-resumo-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 700px) {
    .oxds-scope .rl-resumo-grid { grid-template-columns: repeat(2, 1fr); }
}

/* FORMULÁRIOS */
.oxds-scope .form-group { margin-bottom: var(--spacing-2); }
.oxds-scope .form-label { display: block; font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); color: var(--color-text); margin-bottom: var(--spacing-1); line-height: 1.4; }
.oxds-scope .form-input, .oxds-scope .form-select, .oxds-scope .form-textarea {
    display: block; width: 100%; height: 36px; padding: 0 var(--spacing-3);
    font-size: var(--font-size-sm); font-family: inherit; color: var(--color-text);
    background: var(--color-surface); border: 1px solid var(--color-border);
    border-radius: var(--radius-md); transition: border-color 0.15s ease, box-shadow 0.15s ease; appearance: none;
}
.oxds-scope .form-textarea { height: auto; padding: var(--spacing-2) var(--spacing-3); resize: vertical; }
.oxds-scope .form-input:focus, .oxds-scope .form-select:focus, .oxds-scope .form-textarea:focus { outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(37,99,235,0.12); }
.oxds-scope .form-input::placeholder, .oxds-scope .form-textarea::placeholder { color: var(--color-text-disabled); }
.oxds-scope .form-input:read-only, .oxds-scope .form-input[readonly] { background: var(--color-surface-sunken); color: var(--color-text-secondary); cursor: default; }
.oxds-scope .form-select {
    padding-right: 28px !important;   /* garante espaço para a seta SVG mesmo com padding inline */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%235a6270' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 10px center; cursor: pointer;
}
.oxds-scope .form-hint { margin-top: var(--spacing-1); font-size: var(--font-size-xs); color: var(--color-text-secondary); line-height: 1.4; }
.oxds-scope .form-hint code { background: var(--color-surface-sunken); padding: 1px 4px; border-radius: 3px; font-size: 11px; }
.oxds-scope .form-error { margin-top: var(--spacing-1); font-size: var(--font-size-xs); color: var(--color-danger); }
.oxds-scope .form-input.is-invalid, .oxds-scope .form-select.is-invalid { border-color: var(--color-danger); box-shadow: 0 0 0 3px rgba(220,38,38,0.1); }

/* PREFIX/SUFFIX */
.oxds-scope .input-prefix-wrap { position: relative; display: flex; align-items: stretch; }
.oxds-scope .input-prefix-wrap .form-input { flex: 1; }
.oxds-scope .input-prefix, .oxds-scope .input-suffix {
    display: flex; align-items: center; padding: 0 var(--spacing-3);
    font-size: var(--font-size-sm); font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary); background: var(--color-surface-sunken);
    border: 1px solid var(--color-border); white-space: nowrap; flex-shrink: 0;
}
.oxds-scope .input-prefix { border-right: none; border-radius: var(--radius-md) 0 0 var(--radius-md); }
.oxds-scope .input-suffix { border-left: none; border-radius: 0 var(--radius-md) var(--radius-md) 0; }
.oxds-scope .form-input.has-prefix { border-radius: 0 var(--radius-md) var(--radius-md) 0; }
.oxds-scope .form-input.has-suffix { border-radius: var(--radius-md) 0 0 var(--radius-md); }

.oxds-scope .form-row { display: flex; gap: var(--spacing-4); flex-wrap: wrap; align-items: flex-start; }
.oxds-scope .form-row .form-group { flex: 1; min-width: 160px; }
.oxds-scope .form-row-2 { grid-template-columns: 1fr 1fr; }
.oxds-scope .form-row-3 { grid-template-columns: 1fr 1fr 1fr; }
.oxds-scope .form-row-4 { grid-template-columns: 1fr 1fr 1fr 1fr; }
.oxds-scope .form-group-sm { flex: 0 0 120px !important; min-width: 100px !important; }
.oxds-scope .form-group-md { flex: 0 0 180px !important; min-width: 140px !important; }
.oxds-scope .form-group-lg { flex: 2 !important; min-width: 200px !important; }
.oxds-scope .form-actions { display: flex; justify-content: flex-end; gap: var(--spacing-3); padding-top: var(--spacing-5); margin-top: var(--spacing-4); border-top: 1px solid var(--color-border); }

.oxds-scope .catalogo-cadastro-grid {
    display: grid;
    grid-template-columns: 90px minmax(0, 1fr);
    gap: var(--spacing-4);
    align-items: start;
}

.oxds-scope .catalogo-cadastro-campos {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 140px;
    gap: var(--spacing-3);
}

.oxds-scope .catalogo-cadastro-campos-compacto {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--spacing-3);
}

.oxds-scope .catalogo-cadastro-imagem {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-2);
}

@media (max-width: 640px) {
    .oxds-scope .catalogo-cadastro-card {
        max-width: 100%;
        overflow-x: hidden;
    }

    .oxds-scope .catalogo-cadastro-body {
        padding: var(--spacing-4) !important;
        max-width: 100%;
        min-width: 0;
    }

    .oxds-scope .catalogo-cadastro-grid, .oxds-scope .catalogo-cadastro-campos, .oxds-scope .catalogo-cadastro-campos-compacto {
        grid-template-columns: 1fr;
        min-width: 0;
    }

    .oxds-scope .catalogo-cadastro-imagem {
        align-items: flex-start;
    }

    .oxds-scope .catalogo-cadastro-actions {
        flex-direction: column-reverse;
    }

    .oxds-scope .catalogo-cadastro-actions .btn {
        width: 100%;
        justify-content: center;
    }

    .oxds-scope .catalogo-cadastro-body .form-input, .oxds-scope .catalogo-cadastro-body .form-select {
        width: 100%;
        min-width: 0;
    }
}
/* ABAS — browser-tab clássico (aba ativa elevada, funde com conteúdo) */
.oxds-scope .form-tabs {
    display: flex;
    gap: 0;
    overflow-x: auto;
    flex-shrink: 0;
    padding: 0 var(--spacing-1);
    background: transparent;
    border-bottom: 2px solid var(--color-border);
    margin-bottom: 0;
    align-items: flex-end;
}
.oxds-scope .form-tabs::-webkit-scrollbar { display: none; }
.oxds-scope .form-tab-btn {
    display: inline-flex; align-items: center; gap: var(--spacing-2);
    padding: 8px var(--spacing-4);
    font-size: var(--font-size-sm); font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary); background: var(--color-surface-sunken);
    border: 1px solid var(--color-border); border-bottom: none;
    border-radius: var(--radius-md) var(--radius-md) 0 0;
    cursor: pointer; transition: all 0.15s ease; white-space: nowrap;
    line-height: 1; margin-right: 2px; position: relative; bottom: -2px;
}
.oxds-scope .form-tab-btn i { font-size: 11px; opacity: 0.55; transition: opacity 0.13s ease; }
.oxds-scope .form-tab-btn:hover {
    color: var(--color-text);
    background: var(--color-surface-sunken); filter: brightness(1.03);
}
.oxds-scope .form-tab-btn:hover i { opacity: 0.85; }
.oxds-scope .form-tab-btn.active {
    color: var(--color-primary);
    font-weight: var(--font-weight-semibold);
    background: var(--color-surface);
    border-color: var(--color-border);
    border-bottom-color: var(--color-surface);
    box-shadow: 0 -2px 0 0 var(--color-primary) inset;
    z-index: 1;
}
.oxds-scope .form-tab-btn.active i { opacity: 1; }
.oxds-scope .form-tab-badge {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 18px; height: 18px; padding: 0 5px;
    background: var(--color-surface-sunken); border: 1px solid var(--color-border);
    color: var(--color-text-secondary); border-radius: var(--radius-full);
    font-size: 10px; font-weight: var(--font-weight-semibold); line-height: 1;
}
.oxds-scope .form-tab-btn.active .form-tab-badge { background: var(--color-primary-subtle); color: var(--color-primary); border-color: rgba(37,99,235,0.2); }
.oxds-scope .form-tab-content {
    min-height: 200px; padding: var(--spacing-3) 0 0;
    background: transparent; border-top: none;
}

/* ── FormItem: layout duas colunas com responsivo mobile ── */
.oxds-scope .form-item-layout {
    display: flex;
    gap: 20px;
    align-items: flex-start;
}
.oxds-scope .form-item-main {
    flex: 1;
    min-width: 0;
}
.oxds-scope .form-item-sidebar {
    width: 220px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
    position: sticky;
    top: 0;
}

/* Botão câmera nativa na foto do produto — oculto no desktop */
.oxds-scope .foto-produto-btn-camera {
    display: none;
    position: absolute;
    bottom: 8px;
    right: 8px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: none;
    background: rgba(0,0,0,.6);
    color: #fff;
    font-size: 15px;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    z-index: 2;
}
.oxds-scope .foto-produto-btn-camera:active {
    background: rgba(0,0,0,.85);
}

/* Celular vertical e horizontal (até 768px) */
@media (max-width: 768px) {
    .oxds-scope .form-item-layout {
        flex-direction: column;
    }
    .oxds-scope .form-item-sidebar {
        width: 100%;
        position: static;
        order: -1;
    }

    /* Sidebar mobile: mostra só o card de foto, oculta dados/preços/estoque */
    .oxds-scope .form-item-sidebar-dados, .oxds-scope .form-item-sidebar-extra {
        display: none !important;
    }

    /* Botão câmera — visível só no mobile */
    .oxds-scope .foto-produto-btn-camera {
        display: flex !important;
    }

    /* Toggle Ativo/Código: não corta à direita, quebra abaixo do título */
    .oxds-scope .form-identificacao-acoes {
        flex-shrink: 0;
        max-width: calc(100% - 40px);
        flex-wrap: wrap;
        gap: 6px;
        row-gap: 6px;
    }

    /* Descrição + Descrição Curta: uma por linha */
    .oxds-scope .form-identificacao-campos {
        flex-direction: column;
    }
    .oxds-scope .form-identificacao-campos .form-group {
        flex: none !important;
        min-width: 0 !important;
        width: 100%;
    }

    /* Classificação: 5 colunas → 2 colunas */
    .oxds-scope .form-grid-classificacao {
        grid-template-columns: 1fr 1fr !important;
    }

    /* Informações Comerciais: coluna + barras → empilhado */
    .oxds-scope .form-grid-comercial {
        grid-template-columns: 1fr !important;
    }

    /* Toggles de Comportamento: um por linha */
    .oxds-scope .form-toggles-comportamento {
        flex-direction: column;
    }
    .oxds-scope .form-toggles-comportamento > div {
        min-width: 0 !important;
        width: 100%;
    }

    /* Aba Preços: grids 3-4 colunas → 2 colunas */
    .oxds-scope .form-grid-precos {
        grid-template-columns: 1fr 1fr !important;
    }

    /* Aba Fiscal: grid 3 colunas → 2 colunas */
    .oxds-scope .form-grid-fiscal {
        grid-template-columns: 1fr 1fr !important;
    }
}

/* FORM BLOCKS E SEÇÕES */
.oxds-scope .form-block {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--spacing-3) var(--spacing-4);
    margin-bottom: var(--spacing-2);
    box-shadow: var(--shadow-xs);
}
.oxds-scope .form-block + .form-block { margin-top: 0; }
.oxds-scope .form-block .form-group { margin-bottom: var(--spacing-2); }
.oxds-scope .form-block .form-group:last-child { margin-bottom: 0; }

.oxds-scope .btn-camera-codigo-barras {
    border: none;
    border-left: 1px solid var(--color-border);
    background: var(--color-surface-sunken);
    color: var(--color-primary);
    width: 38px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background .15s ease, color .15s ease;
}
.oxds-scope .btn-camera-codigo-barras:hover:not(:disabled) {
    background: rgba(37, 99, 235, .10);
    color: var(--color-primary-dark, #1d4ed8);
}
.oxds-scope .btn-camera-codigo-barras:disabled {
    opacity: .55;
    cursor: not-allowed;
}

.oxds-scope .scanner-codigo-modal {
    max-width: 460px;
}
.oxds-scope .scanner-codigo-video-wrap {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: var(--radius-lg);
    background: #020617;
}
.oxds-scope .scanner-codigo-video-wrap video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.oxds-scope .scanner-codigo-frame {
    position: absolute;
    left: 10%;
    right: 10%;
    top: 38%;
    height: 24%;
    border: 2px solid var(--color-primary);
    border-radius: var(--radius-md);
    box-shadow: 0 0 0 999px rgba(0,0,0,.24);
}
.oxds-scope .scanner-codigo-help {
    margin-top: var(--spacing-3);
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
    text-align: center;
    line-height: 1.4;
}
.oxds-scope .form-section { margin-bottom: var(--spacing-5); }
.oxds-scope .form-section:last-child { margin-bottom: 0; }
.oxds-scope .form-section-header { display: flex; align-items: center; gap: var(--spacing-2); margin-bottom: var(--spacing-2); padding-bottom: var(--spacing-1); border-bottom: 1px solid var(--color-border); }
.oxds-scope .form-section-icon {
    width: 20px; height: 20px; border-radius: var(--radius-sm);
    background: var(--color-primary-subtle); color: var(--color-primary);
    display: flex; align-items: center; justify-content: center; font-size: 10px; flex-shrink: 0;
}
.oxds-scope .form-section-title { font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--color-text); letter-spacing: 0; margin: 0 0 var(--spacing-3) 0; line-height: 1; }
.oxds-scope .form-section-desc { font-size: var(--font-size-sm); color: var(--color-text-secondary); margin-bottom: var(--spacing-4); line-height: 1.5; }

/* Botão de ajuda em linha nos labels de formulário */
.oxds-scope .btn-field-help { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; padding: 0; background: transparent; border: none; border-radius: 50%; cursor: pointer; color: var(--color-text-disabled); transition: color 0.15s ease; vertical-align: middle; }
.oxds-scope .btn-field-help:hover, .oxds-scope .btn-field-help.active { color: var(--color-primary); }
.oxds-scope .btn-field-help i { font-size: 13px; }
/* Caixa de dica expansível abaixo do label */
.oxds-scope .field-help-box { margin: var(--spacing-1) 0 var(--spacing-2); padding: var(--spacing-3); background: var(--color-primary-subtle, #eff6ff); border: 1px solid rgba(37,99,235,0.2); border-radius: var(--radius-md); font-size: var(--font-size-xs); color: var(--color-text-secondary); line-height: 1.55; }

/* WIZARD / OPERACOES EM LOTE */
.oxds-scope .link-primary {
    color: var(--color-primary);
    font-weight: var(--font-weight-medium);
    text-decoration: none;
}
.oxds-scope .link-primary:hover {
    color: var(--color-primary-hover);
    text-decoration: underline;
}

.oxds-scope .batch-stepper {
    display: flex;
    align-items: center;
    gap: 0;
    max-width: 560px;
    margin-bottom: var(--spacing-5);
}
.oxds-scope .batch-step {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    flex: 1;
    color: var(--color-text-muted);
}
.oxds-scope .batch-step-marker {
    width: 28px;
    height: 28px;
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: var(--color-surface-sunken);
    color: var(--color-text-muted);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    transition: background .2s ease, color .2s ease, box-shadow .2s ease;
}
.oxds-scope .batch-step-label {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
}
.oxds-scope .batch-step.is-active {
    color: var(--color-primary);
}
.oxds-scope .batch-step.is-active .batch-step-marker {
    background: var(--color-primary);
    color: var(--color-text-inverse);
    box-shadow: 0 0 0 4px var(--color-primary-subtle);
}
.oxds-scope .batch-step.is-complete {
    color: var(--color-success);
}
.oxds-scope .batch-step.is-complete .batch-step-marker {
    background: var(--color-success);
    color: var(--color-text-inverse);
}
.oxds-scope .batch-step-line {
    flex: 1;
    height: 2px;
    max-width: 40px;
    margin: 0 var(--spacing-2);
    background: var(--color-border);
}
.oxds-scope .batch-panel {
    max-width: 700px;
}
.oxds-scope .batch-intro {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin: 0 0 var(--spacing-4);
    line-height: 1.5;
}
.oxds-scope .batch-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing-4);
}
.oxds-scope .batch-alert {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    border-radius: var(--radius-md);
    padding: var(--spacing-3) var(--spacing-4);
    font-size: var(--font-size-sm);
    margin-top: var(--spacing-2);
}
.oxds-scope .batch-alert-info {
    background: var(--color-primary-subtle);
    border: 1px solid var(--color-primary);
    color: var(--color-text-secondary);
}
.oxds-scope .batch-alert-info i, .oxds-scope .batch-alert-info strong {
    color: var(--color-primary);
}
.oxds-scope .batch-alert-danger {
    background: var(--color-danger-subtle);
    border: 1px solid var(--color-danger-border);
    color: var(--color-danger);
}
.oxds-scope .batch-check {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-2);
    width: 100%;
    padding: var(--spacing-3) var(--spacing-4);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
    user-select: none;
}
.oxds-scope .batch-check:hover {
    border-color: var(--color-primary);
}
.oxds-scope .batch-check.is-active {
    background: var(--color-primary-subtle);
    border-color: var(--color-primary);
    color: var(--color-primary);
}
.oxds-scope .batch-check-label {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-2);
    color: var(--color-text);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    line-height: 1.3;
}
.oxds-scope .batch-check.is-active .batch-check-label {
    color: var(--color-primary);
}
.oxds-scope .batch-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(120px, 1fr));
    gap: var(--spacing-3);
    margin-bottom: var(--spacing-4);
}
.oxds-scope .batch-summary-item {
    background: var(--color-surface-sunken);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--spacing-3);
    text-align: center;
}
.oxds-scope .batch-summary-value {
    color: var(--color-text);
    font-size: var(--font-size-md);
    font-weight: var(--font-weight-semibold);
    line-height: 1.25;
}
.oxds-scope .batch-summary-value.is-highlight {
    color: var(--color-primary);
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
}
.oxds-scope .batch-summary-label {
    margin-top: var(--spacing-1);
    color: var(--color-text-muted);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: .04em;
}
.oxds-scope .batch-preview-grid {
    max-height: 220px;
    overflow-y: auto;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(60px, 1fr));
    gap: var(--spacing-2);
    margin-bottom: var(--spacing-4);
    padding: 2px;
}
.oxds-scope .batch-preview-item {
    background: var(--color-surface-sunken);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--spacing-2) var(--spacing-1);
    text-align: center;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
}
.oxds-scope .batch-progress {
    margin-bottom: var(--spacing-4);
}
.oxds-scope .batch-progress-header {
    display: flex;
    justify-content: space-between;
    margin-bottom: var(--spacing-2);
    color: var(--color-text-muted);
    font-size: var(--font-size-xs);
}
.oxds-scope .batch-progress-track {
    height: 6px;
    background: var(--color-border);
    border-radius: var(--radius-full);
    overflow: hidden;
}
.oxds-scope .batch-progress-bar {
    height: 100%;
    background: var(--color-primary);
    border-radius: var(--radius-full);
    transition: width .3s ease;
}
.oxds-scope .batch-actions {
    display: flex;
    justify-content: space-between;
    gap: var(--spacing-3);
    padding-top: var(--spacing-5);
    border-top: 1px solid var(--color-border);
    margin-top: var(--spacing-5);
}

@media (max-width: 640px) {
    .oxds-scope .batch-stepper {
        align-items: flex-start;
    }
    .oxds-scope .batch-step {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    .oxds-scope .batch-step-line {
        margin-top: 14px;
    }
    .oxds-scope .batch-form-grid, .oxds-scope .batch-summary {
        grid-template-columns: 1fr;
    }
    .oxds-scope .batch-actions {
        flex-direction: column-reverse;
    }
    .oxds-scope .batch-actions .btn {
        width: 100%;
    }
}
.oxds-scope .form-divider { border: none; border-top: 1px solid var(--color-border); margin: var(--spacing-4) 0; }
.oxds-scope .form-footer { display: flex; align-items: center; justify-content: flex-end; gap: var(--spacing-3); padding-top: var(--spacing-4); margin-top: var(--spacing-2); border-top: 1px solid var(--color-border); }

/* SPINNER */
.oxds-scope .spinner { display: inline-block; width: 20px; height: 20px; border: 2px solid var(--color-border); border-top-color: var(--color-primary); border-radius: 50%; animation: spin 0.65s linear infinite; flex-shrink: 0; }
.oxds-scope .spinner-sm { width: 14px; height: 14px; border-width: 2px; }
.oxds-scope .spinner-lg { width: 32px; height: 32px; border-width: 3px; }
.oxds-scope .spinner-white { border-color: rgba(255,255,255,0.3); border-top-color: #fff; }
@keyframes spin { to { transform: rotate(360deg); } }
.oxds-scope .loading-overlay { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--spacing-3); padding: var(--spacing-16); color: var(--color-text-secondary); font-size: var(--font-size-sm); }

/* EMPTY STATE */
.oxds-scope .empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: var(--spacing-16) var(--spacing-8); gap: var(--spacing-4); }
.oxds-scope .empty-state-icon { width: 56px; height: 56px; border-radius: var(--radius-xl); background: var(--color-surface-sunken); border: 1px solid var(--color-border); display: flex; align-items: center; justify-content: center; color: var(--color-text-disabled); font-size: 22px; flex-shrink: 0; }
.oxds-scope .empty-state-title { font-size: var(--font-size-md); font-weight: var(--font-weight-semibold); color: var(--color-text); margin: 0; }
.oxds-scope .empty-state-message { font-size: var(--font-size-sm); color: var(--color-text-secondary); max-width: 360px; margin: 0; line-height: 1.6; }

/* MODAL */
.oxds-scope .modal-backdrop, .oxds-scope .modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.45); backdrop-filter: blur(2px); z-index: var(--z-modal-backdrop); display: flex; align-items: center; justify-content: center; padding: var(--spacing-4); animation: fadeIn 0.15s ease; }
.oxds-scope .modal { background: var(--color-surface); border-radius: var(--radius-xl); box-shadow: 0 20px 60px rgba(0,0,0,0.2), 0 0 0 1px var(--color-border); width: 100%; max-width: 480px; max-height: calc(100vh - 48px); overflow-y: auto; animation: slideUp 0.18s ease; }
.oxds-scope .modal-sm { max-width: 360px; }
.oxds-scope .modal-lg { max-width: 640px; }
.oxds-scope .modal-xl { max-width: 800px; }
.oxds-scope .modal-full { max-width: calc(100vw - 48px); }
.oxds-scope .modal-header { display: flex; align-items: center; justify-content: space-between; padding: var(--spacing-5) var(--spacing-6); border-bottom: 1px solid var(--color-border); gap: var(--spacing-3); }
.oxds-scope .modal-title { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); color: var(--color-text); margin: 0; }
.oxds-scope .modal-body { padding: var(--spacing-6); }
.oxds-scope .modal-footer { display: flex; align-items: center; justify-content: flex-end; gap: var(--spacing-3); padding: var(--spacing-4) var(--spacing-6); border-top: 1px solid var(--color-border); background: var(--color-surface-sunken); border-radius: 0 0 var(--radius-xl) var(--radius-xl); }
.oxds-scope .modal-close { width: 32px; height: 32px; border-radius: var(--radius-md); background: var(--color-danger); border: none; color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 16px; transition: all 0.15s ease; flex-shrink: 0; }
.oxds-scope .modal-close:hover { background: var(--color-danger-dark, #a90f17); color: #fff; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes slideUp { from { transform: translateY(12px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }

/* DROPDOWN */
.oxds-scope .dropdown { position: relative; }
.oxds-scope .dropdown-menu { position: absolute; top: calc(100% + 4px); right: 0; min-width: 180px; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); z-index: var(--z-dropdown); padding: var(--spacing-1) 0; animation: fadeIn 0.1s ease; }
.oxds-scope .dropdown-item { display: flex; align-items: center; gap: var(--spacing-2); width: 100%; padding: var(--spacing-2) var(--spacing-3); font-size: var(--font-size-sm); color: var(--color-text); background: transparent; border: none; cursor: pointer; text-align: left; transition: background 0.1s ease; font-family: inherit; }
.oxds-scope .dropdown-item:hover { background: var(--color-primary-subtle); }
.oxds-scope .dropdown-item.danger { color: var(--color-danger); }
.oxds-scope .dropdown-item.danger:hover { background: var(--color-danger-subtle); }
.oxds-scope .dropdown-divider { height: 1px; background: var(--color-border); margin: var(--spacing-1) 0; }
.oxds-scope .dropdown-header { display: flex; align-items: center; gap: var(--spacing-3); padding: var(--spacing-3) var(--spacing-3); }

/* PAGINAÇÃO */
.oxds-scope .pagination { display: flex; align-items: center; gap: 2px; }
.oxds-scope .pagination-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 30px; padding: 0 var(--spacing-2); font-size: var(--font-size-sm); font-family: inherit; color: var(--color-text-secondary); background: transparent; border: 1px solid transparent; border-radius: var(--radius-md); cursor: pointer; transition: all 0.15s ease; }
.oxds-scope .pagination-btn:hover:not(:disabled) { background: var(--color-surface-sunken); border-color: var(--color-border); color: var(--color-text); }
.oxds-scope .pagination-btn.active { background: var(--color-primary); color: #fff; border-color: var(--color-primary); font-weight: var(--font-weight-semibold); }
.oxds-scope .pagination-btn:disabled { opacity: 0.35; cursor: not-allowed; }
.oxds-scope .pagination-info { font-size: var(--font-size-xs); color: var(--color-text-secondary); }

/* TOAST */
.oxds-scope .toast-container { position: fixed; bottom: var(--spacing-5); right: var(--spacing-5); z-index: var(--z-toast); display: flex; flex-direction: column; gap: var(--spacing-2); pointer-events: none; }
.oxds-scope .toast { display: flex; align-items: flex-start; gap: var(--spacing-3); padding: var(--spacing-4); background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); min-width: 280px; max-width: 380px; pointer-events: all; animation: slideUp 0.2s ease; }
.oxds-scope .toast-icon { width: 20px; height: 20px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; border-radius: 50%; font-size: 11px; }
.oxds-scope .toast-success .toast-icon { color: var(--color-success); }
.oxds-scope .toast-error   .toast-icon { color: var(--color-danger); }
.oxds-scope .toast-warning .toast-icon { color: var(--color-warning); }
.oxds-scope .toast-info    .toast-icon { color: var(--color-info); }
.oxds-scope .toast-title { font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--color-text); line-height: 1.3; }
.oxds-scope .toast-message { font-size: var(--font-size-xs); color: var(--color-text-secondary); margin-top: 2px; line-height: 1.4; }

/* TOOLBAR */
.oxds-scope .toolbar { display: flex; align-items: center; gap: var(--spacing-3); margin-bottom: var(--spacing-4); flex-wrap: wrap; }
.oxds-scope .toolbar-search { position: relative; flex: 1; min-width: 180px; max-width: 360px; }
.oxds-scope .toolbar-search-icon { position: absolute; left: var(--spacing-3); top: 50%; transform: translateY(-50%); color: var(--color-text-disabled); font-size: 12px; pointer-events: none; }
.oxds-scope .toolbar-search .form-input { padding-left: calc(var(--spacing-3) + 16px + var(--spacing-2)); }
.oxds-scope .toolbar-filters { display: flex; align-items: center; gap: var(--spacing-2); flex-wrap: wrap; }
.oxds-scope .toolbar-actions { display: flex; align-items: center; gap: var(--spacing-2); margin-left: auto; flex-shrink: 0; }
/* SIDEBAR */
/* ── Cabeçalho: logo + nome + botão collapse ── */
.oxds-scope .sidebar-header { display: flex; align-items: center; justify-content: space-between; gap: var(--spacing-2); padding: 0 var(--spacing-2); border-bottom: 1px solid var(--color-sidebar-border); flex-shrink: 0; height: var(--topbar-height); }
.oxds-scope .sidebar-brand { display: flex; align-items: center; justify-content: center; flex: 1; overflow: hidden; }
.oxds-scope .sidebar-logo-img { height: 34px; width: auto; object-fit: contain; flex-shrink: 0; }
.oxds-scope .sidebar-logo-img.logo-collapsed { height: 26px; }
.oxds-scope .sidebar-logo-texts { display: flex; flex-direction: column; gap: 1px; min-width: 0; overflow: hidden; }
.oxds-scope .sidebar-logo-name { font-size: var(--font-size-xs); font-weight: var(--font-weight-bold); color: var(--color-sidebar-text-active); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.oxds-scope .sidebar-logo-subtitle { font-size: 12px; color: var(--color-sidebar-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: 0.6; }
/* Botão collapse no header */
.oxds-scope .sidebar-collapse-btn { display: flex; align-items: center; justify-content: center; width: 26px; height: 26px; flex-shrink: 0; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.10); border-radius: var(--radius-sm); color: var(--color-sidebar-text); cursor: pointer; transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease; font-size: 10px; }
.oxds-scope .sidebar-collapse-btn:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.22); color: var(--color-sidebar-text-active); }
/* Busca */
.oxds-scope .sidebar-search-wrap { padding: var(--spacing-2) var(--spacing-3); flex-shrink: 0; }
.oxds-scope .sidebar-search-field { display: flex; align-items: center; gap: var(--spacing-2); padding: 0 var(--spacing-3); height: 30px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.10); border-radius: var(--radius-md); transition: border-color 0.15s, background 0.15s; }
.oxds-scope .sidebar-search-field:focus-within { background: rgba(255,255,255,0.10); border-color: rgba(255,255,255,0.24); }
.oxds-scope .sidebar-search-ico { font-size: 10px; color: var(--color-sidebar-text); opacity: 0.55; flex-shrink: 0; }
.oxds-scope .sidebar-search-input { flex: 1; border: none; background: transparent; font-size: var(--font-size-xs); color: var(--color-sidebar-text-active); outline: none; font-family: inherit; }
.oxds-scope .sidebar-search-input::placeholder { color: var(--color-sidebar-text); opacity: 0.45; }
.oxds-scope .sidebar-search-clear { background: none; border: none; cursor: pointer; color: var(--color-sidebar-text); opacity: 0.5; padding: 0; font-size: 10px; display: flex; align-items: center; }
.oxds-scope .sidebar-search-clear:hover { opacity: 1; }
.oxds-scope .sidebar-search-empty { padding: var(--spacing-4) var(--spacing-3); font-size: var(--font-size-xs); color: var(--color-sidebar-text); opacity: 0.55; text-align: center; }
/* Conteúdo */
.oxds-scope .sidebar-content { flex: 1; overflow-y: auto; overflow-x: hidden; padding: var(--spacing-2) var(--spacing-2); scrollbar-width: thin; scrollbar-color: rgba(255,255,255,0.08) transparent; }
.oxds-scope .sidebar-content::-webkit-scrollbar { width: 3px; }
.oxds-scope .sidebar-content::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.08); border-radius: 2px; }
.oxds-scope .sidebar-section { margin-bottom: 2px; }
.oxds-scope .sidebar-section-label { padding: var(--spacing-3) var(--spacing-3) var(--spacing-1); font-size: 12px; font-weight: var(--font-weight-bold); letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-sidebar-text); opacity: 0.55; white-space: nowrap; overflow: hidden; }
.oxds-scope .sidebar-section--footer { margin-top: auto; border-top: 1px solid var(--color-sidebar-border); padding-top: var(--spacing-2); }
/* Grupos */
.oxds-scope .sidebar-group-header { display: flex; align-items: center; gap: var(--spacing-2); padding: 6px var(--spacing-3); color: var(--color-sidebar-text); font-size: 14px; font-weight: 700; cursor: pointer; border-radius: var(--radius-md); transition: background 0.15s ease, color 0.15s ease; user-select: none; letter-spacing: 0.01em; }
.oxds-scope .sidebar-group-header:hover { background: var(--color-sidebar-item-hover); color: var(--color-sidebar-text-active); }
.oxds-scope .sidebar-group-header.flyout-ativo { background: var(--color-sidebar-item-active); color: var(--color-sidebar-text-active); }
.oxds-scope .sidebar-group-icon { width: 20px; height: 20px; display: flex; align-items: center; justify-content: center; font-size: 14px; flex-shrink: 0; opacity: 0.8; }
.oxds-scope .sidebar-group-header:hover .sidebar-group-icon, .oxds-scope .sidebar-group-header.aberto .sidebar-group-icon, .oxds-scope .sidebar-group-header.flyout-ativo .sidebar-group-icon { opacity: 1; color: var(--color-sidebar-text-active); }
.oxds-scope .sidebar-section--ativa .sidebar-group-icon { opacity: 1; color: var(--color-sidebar-text-active); }
.oxds-scope .sidebar-group-label { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.oxds-scope .sidebar-group-chevron { font-size: 8px; opacity: 0.45; transition: transform 0.2s ease; }
.oxds-scope .sidebar-group-header.aberto .sidebar-group-chevron { transform: rotate(90deg); opacity: 0.7; }
.oxds-scope .sidebar-section--ativa > .sidebar-group-header .sidebar-group-label { color: var(--color-sidebar-text-active); }
/* ── Submenu expandido ─────────────────────────────────────────── */
/* Container externo: overflow:visible para bolinhas escaparem à esquerda — sem fundo próprio */
.oxds-scope .nav-submenu { overflow: visible; padding: 0 4px; margin: 2px 0 4px; }
/* Wrapper interno: faz animação + exibe o quadro só quando aberto */
.oxds-scope .nav-submenu-inner { overflow: hidden; max-height: 0; transition: max-height 0.25s cubic-bezier(0.4, 0, 0.2, 1); border-radius: 14px; }
.oxds-scope .nav-submenu-inner.aberto { max-height: 1200px; background: linear-gradient(180deg,#161a20 0%,#12161b 100%); border: 1px solid rgba(255,255,255,.08); padding: 8px 6px 6px; }

/* Grupo de subseção (Cadastro, Preços…) */
.oxds-scope .nav-subgrupo { margin-bottom: 10px; }

/* Título do subgrupo — bolinha vazada pequena à esquerda */
.oxds-scope .nav-subgrupo-label {
    position: relative;
    font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
    color: #c8d0db; margin: 0 0 4px 6px; padding-left: 16px;
    display: flex; align-items: center; justify-content: space-between;
    cursor: pointer; user-select: none;
}
.oxds-scope .nav-subgrupo-label::before {
    content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
    width: 6px; height: 6px; border-radius: 50%;
    border: 1.5px solid #bfc7d2; background: transparent;
}

/* Trilho vertical + lista de itens */
.oxds-scope .nav-item-list {
    position: relative; margin-left: 10px; padding-left: 20px;
}
.oxds-scope .nav-item-list::before {
    content: ''; position: absolute; left: 2px; top: 1px; bottom: 8px;
    width: 1px; background: #6a7481; opacity: .7;
}

/* Cada item do submenu */
.oxds-scope .nav-item {
    position: relative; display: flex; align-items: center; gap: 10px;
    min-height: 34px; padding: 0 10px 0 18px; margin: 1px 0;
    border-radius: 8px; text-decoration: none;
    color: #e6eaf2; font-size: 13px; font-weight: 500;
    cursor: pointer; user-select: none;
    transition: background 0.16s ease, color 0.16s ease;
}
.oxds-scope .nav-item:hover { background: rgba(255,255,255,.04); color: #fff; }
.oxds-scope .nav-item.ativo { background: linear-gradient(90deg,#8f1116 0%,#bf1c24 100%); color: #fff; font-weight: 600; }

/* Bolinha do item — vazada, posicionada sobre o trilho */
.oxds-scope .nav-item::before {
    content: ''; position: absolute; left: -21px; top: 50%; transform: translateY(-50%);
    width: 5px; height: 5px; border-radius: 50%;
    border: 1.5px solid #b9c2ce; background: #161a20;
    z-index: 2; transition: border-color 0.15s, background 0.15s;
}
.oxds-scope .nav-item:hover::before { border-color: rgba(255,255,255,.6); }
.oxds-scope .nav-item.ativo::before { border-color: #ff7b84; background: #ff7b84; }

/* Ícone do item */
.oxds-scope .nav-item-icon { width: 16px; flex: 0 0 16px; text-align: center; font-size: 13px; opacity: 0.8; }
.oxds-scope .nav-item:hover .nav-item-icon, .oxds-scope .nav-item.ativo .nav-item-icon { opacity: 1; }
.oxds-scope .nav-item-label { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.oxds-scope .nav-item-badge { background: rgba(255,255,255,0.1); color: var(--color-sidebar-text); font-size: 9px; font-weight: var(--font-weight-bold); padding: 1px 5px; border-radius: var(--radius-full); min-width: 16px; text-align: center; line-height: 1.6; border: 1px solid rgba(255,255,255,0.08); }

/* Separador entre subgrupos */
.oxds-scope .nav-subgrupo-divider { height: 1px; background: linear-gradient(90deg,rgba(255,255,255,.10),rgba(255,255,255,.03)); margin: 6px 4px 0 24px; border: 0; }

/* Chevron do subgrupo (recolhível) */
.oxds-scope .nav-sg-chevron { font-size: 9px; transition: transform 0.2s; flex-shrink: 0; margin-right: 2px; opacity: .5; }
.oxds-scope .nav-subgrupo-label.aberto .nav-sg-chevron { transform: rotate(90deg); opacity: .8; }
/* Flyout (modo colapsado) */
.oxds-scope .sidebar-flyout { position: fixed; left: 57px; z-index: 9999; background: var(--color-sidebar-bg); border: 1px solid var(--color-sidebar-border); border-radius: var(--radius-lg); box-shadow: 0 8px 32px rgba(0,0,0,0.5); padding: var(--spacing-2); min-width: 200px; max-width: 240px; animation: flyout-in 0.15s ease; }
@keyframes flyout-in { from { opacity:0; transform:translateX(-6px); } to { opacity:1; transform:translateX(0); } }
.oxds-scope .sidebar-flyout-header { display: flex; align-items: center; gap: var(--spacing-2); padding: var(--spacing-2) var(--spacing-3); font-size: var(--font-size-xs); font-weight: var(--font-weight-bold); color: var(--color-sidebar-text-active); text-transform: uppercase; letter-spacing: 0.08em; border-bottom: 1px solid var(--color-sidebar-border); margin-bottom: var(--spacing-1); }
.oxds-scope .sidebar-flyout-header i { font-size: 14px; }
.oxds-scope .sidebar-flyout-item { display: flex; align-items: center; gap: var(--spacing-3); padding: var(--spacing-2) var(--spacing-3); color: var(--color-sidebar-text); font-size: var(--font-size-xs); border-radius: var(--radius-md); cursor: pointer; text-decoration: none; transition: background 0.12s, color 0.12s; white-space: nowrap; }
.oxds-scope .sidebar-flyout-item:hover { background: var(--color-sidebar-item-hover); color: var(--color-sidebar-text-active); }
.oxds-scope .sidebar-flyout-item.ativo { background: var(--color-sidebar-item-active); color: var(--color-sidebar-text-active); font-weight: var(--font-weight-medium); }
.oxds-scope .sidebar-flyout-subgrupo { padding: 8px var(--spacing-3) 2px; font-size: 9px; font-weight: var(--font-weight-bold); color: var(--color-sidebar-text); opacity: 0.45; text-transform: uppercase; letter-spacing: 0.1em; padding-right: var(--spacing-3); }
.oxds-scope .sidebar-flyout-item i { font-size: 13px; width: 16px; text-align: center; opacity: 0.7; flex-shrink: 0; }
.oxds-scope .sidebar-flyout-item:hover i, .oxds-scope .sidebar-flyout-item.ativo i { opacity: 1; color: var(--color-sidebar-text-active); }
/* Modo colapsado: centraliza o ícone do grupo */
.oxds-scope .app-sidebar.collapsed .sidebar-group-header { justify-content: center; padding: 8px; }
.oxds-scope .app-sidebar.collapsed .sidebar-group-icon { width: 22px; height: 22px; font-size: 16px; }
/* Collapsed: nav-item de footer (Base de Conhecimento) */
.oxds-scope .app-sidebar.collapsed .nav-item { justify-content: center; padding: 8px; }
.oxds-scope .app-sidebar.collapsed .nav-item-icon { width: 22px; height: 22px; font-size: 16px; opacity: 0.8; }

/* TOPBAR */
.oxds-scope .topbar-toggle { display: none; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: var(--radius-md); background: transparent; border: 1px solid rgba(255,255,255,0.25); color: rgba(255,255,255,0.85); cursor: pointer; flex-shrink: 0; font-size: 14px; transition: all 0.15s ease; }
.oxds-scope .topbar-toggle:hover { background: rgba(0,0,0,0.15); color: #fff; }
@media (max-width: 768px) { .oxds-scope .topbar-toggle { display: flex; } }
.oxds-scope .topbar-brand { display: flex; align-items: center; gap: var(--spacing-2); min-width: 0; flex-shrink: 0; }
.oxds-scope .topbar-brand-name { font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 200px; }
.oxds-scope .topbar-brand-slug { font-size: 10px; font-family: var(--font-family-mono); color: rgba(255,255,255,0.75); background: rgba(0,0,0,0.2); border: 1px solid rgba(255,255,255,0.2); padding: 2px 6px; border-radius: var(--radius-sm); white-space: nowrap; }
@media (max-width: 768px) { .oxds-scope .topbar-brand-slug { display: none; } }
.oxds-scope .topbar-spacer { flex: 1; }
.oxds-scope .topbar-actions { display: flex; align-items: center; gap: var(--spacing-1); flex-shrink: 0; }
.oxds-scope .topbar-action-btn { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: var(--radius-md); background: transparent; border: none; color: rgba(255,255,255,0.85); cursor: pointer; font-size: 14px; transition: all 0.15s ease; position: relative; }
.oxds-scope .topbar-action-btn:hover { background: rgba(0,0,0,0.15); color: #fff; }
.oxds-scope .topbar-notif-btn { position: relative; }
.oxds-scope .topbar-badge { position: absolute; top: 2px; right: 2px; min-width: 16px; height: 16px; padding: 0 4px; background: #fff; color: var(--color-danger); font-size: 9px; font-weight: var(--font-weight-bold); border-radius: var(--radius-full); display: flex; align-items: center; justify-content: center; line-height: 1; border: 2px solid var(--color-topbar-bg); }
.oxds-scope .topbar-divider { width: 1px; height: 20px; background: rgba(255,255,255,0.25); margin: 0 var(--spacing-1); flex-shrink: 0; }
.oxds-scope .topbar-user-btn { display: flex; align-items: center; gap: var(--spacing-2); padding: var(--spacing-1) var(--spacing-2) var(--spacing-1) var(--spacing-1); border-radius: var(--radius-md); background: transparent; border: 1px solid transparent; cursor: pointer; transition: background 0.15s ease, border-color 0.15s ease; }
.oxds-scope .topbar-user-btn:hover { background: rgba(0,0,0,0.15); border-color: rgba(255,255,255,0.2); }
.oxds-scope .topbar-avatar { width: 28px; height: 28px; border-radius: var(--radius-full); background: rgba(0,0,0,0.25); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: var(--font-weight-semibold); flex-shrink: 0; box-shadow: 0 0 0 2px var(--color-topbar-bg), 0 0 0 3px rgba(255,255,255,0.3); }
.oxds-scope .topbar-user-info { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; min-width: 0; }
.oxds-scope .topbar-user-name { font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); color: #fff; white-space: nowrap; line-height: 1.2; }
.oxds-scope .topbar-user-role { font-size: 12px; color: rgba(255,255,255,0.75); white-space: nowrap; line-height: 1.2; }
.oxds-scope .topbar-user-chevron { font-size: 9px; color: rgba(255,255,255,0.75); transition: transform 0.2s ease; margin-left: 2px; }
.oxds-scope .topbar-user-menu { min-width: 220px; }
.oxds-scope .topbar-user-menu .dropdown-header { display: flex; align-items: center; gap: var(--spacing-3); padding: var(--spacing-4) var(--spacing-4); }
.oxds-scope .topbar-menu-avatar { width: 36px; height: 36px; border-radius: var(--radius-full); background: var(--color-primary); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 15px; font-weight: var(--font-weight-semibold); flex-shrink: 0; }
.oxds-scope .topbar-menu-nome { font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--color-text); line-height: 1.3; }
.oxds-scope .topbar-menu-empresa { font-size: var(--font-size-xs); color: var(--color-text-secondary); line-height: 1.3; margin-top: 1px; }

/* PAGE HEADER */
.oxds-scope .page-header { display: flex; align-items: center; justify-content: space-between; gap: var(--spacing-4); padding-bottom: var(--spacing-4); border-bottom: 1px solid var(--color-border); margin-bottom: var(--spacing-4); }
.oxds-scope .page-header-info { display: flex; align-items: flex-start; gap: var(--spacing-3); min-width: 0; }
.oxds-scope .page-header-icon { width: 48px; height: 48px; border-radius: var(--radius-lg); background: var(--color-primary-subtle); color: var(--color-primary); display: flex; align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0; }
.oxds-scope .page-header-texts { min-width: 0; }
.oxds-scope .page-title { font-size: var(--font-size-xl); font-weight: var(--font-weight-semibold); color: var(--color-text); margin: 0; line-height: 1.2; }
.oxds-scope .page-subtitle { font-size: var(--font-size-sm); color: var(--color-text-secondary); margin: var(--spacing-1) 0 0; }
.oxds-scope .page-actions { display: flex; align-items: center; justify-content: flex-end; gap: var(--spacing-2); flex-shrink: 0; width: 100%; }

/* UTILIDADES */
.oxds-scope .text-sm { font-size: var(--font-size-sm); }
.oxds-scope .text-xs { font-size: var(--font-size-xs); }
.oxds-scope .text-md { font-size: var(--font-size-md); }
.oxds-scope .text-right { text-align: right; }
.oxds-scope .text-center { text-align: center; }
.oxds-scope .text-muted { color: var(--color-text-secondary); }
.oxds-scope .text-primary { color: var(--color-primary); }
.oxds-scope .text-danger { color: var(--color-danger); }
.oxds-scope .text-success { color: var(--color-success); }
.oxds-scope .text-warning { color: var(--color-warning); }
.oxds-scope .text-truncate { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.oxds-scope .font-medium { font-weight: var(--font-weight-medium); }
.oxds-scope .font-semibold { font-weight: var(--font-weight-semibold); }
.oxds-scope .font-mono { font-family: var(--font-family-mono); }
@media (min-width: 769px) { .oxds-scope .d-md-none { display: none !important; } }

/* CONFIRM DIALOG */
.oxds-scope .confirm-dialog-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.55); backdrop-filter: blur(3px); z-index: 450; display: flex; align-items: center; justify-content: center; padding: var(--spacing-4); animation: fadeIn 0.15s ease; }
.oxds-scope .confirm-dialog { background: var(--color-surface); border-radius: var(--radius-xl); box-shadow: 0 20px 60px rgba(0,0,0,0.2), 0 0 0 1px var(--color-border); padding: var(--spacing-6); max-width: 400px; width: 100%; animation: slideUp 0.18s ease; }
.oxds-scope .confirm-dialog-title { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); color: var(--color-text); margin-bottom: var(--spacing-2); }
.oxds-scope .confirm-dialog-message { font-size: var(--font-size-sm); color: var(--color-text-secondary); line-height: 1.6; margin-bottom: var(--spacing-5); }
.oxds-scope .confirm-dialog-actions { display: flex; justify-content: flex-end; gap: var(--spacing-3); }

/* DARK MODE */
[data-theme="dark"] .table tbody tr:hover td { background: rgba(37,99,235,0.08); }
[data-theme="dark"] .form-block { box-shadow: none; border-color: rgba(255,255,255,0.08); }
/* PAGE HEADER COMPACTO (telas de cadastro) */
.oxds-scope .page-header-compact {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    padding-bottom: var(--spacing-3);
    border-bottom: 1px solid var(--color-border);
    margin-bottom: var(--spacing-4);
}
.oxds-scope .page-header-compact-info {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    flex: 1;
    min-width: 0;
}
.oxds-scope .page-header-icon-sm {
    width: 28px; height: 28px;
    border-radius: var(--radius-md);
    background: var(--color-primary-subtle);
    color: var(--color-primary);
    display: flex; align-items: center; justify-content: center;
    font-size: 12px; flex-shrink: 0;
}
.oxds-scope .page-title-sm {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin: 0; line-height: 1.2;
    white-space: nowrap;
}
.oxds-scope .page-subtitle-inline {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin-left: var(--spacing-2);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* PAGE HEADER WRAPPER — agrupa breadcrumb + barra de ações */
.oxds-scope .page-header-wrapper {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-bottom: var(--spacing-4);
}

/* BREADCRUMB — ribbon style com setas (inspirado Linx) */
.oxds-scope .breadcrumb {
    display: flex;
    align-items: stretch;
    gap: 0;
    margin-bottom: var(--spacing-3);
    flex-wrap: nowrap;
    overflow-x: auto;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    height: 34px;
    box-shadow: var(--shadow-xs);
}
.oxds-scope .breadcrumb::-webkit-scrollbar { display: none; }

.oxds-scope .breadcrumb-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: 0 var(--spacing-4) 0 var(--spacing-3);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    background: var(--color-surface);
    position: relative;
    cursor: pointer;
    transition: background 0.13s ease, color 0.13s ease;
    white-space: nowrap;
    text-decoration: none;
    /* seta direita via clip-path */
    clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%);
    padding-right: 22px;
    min-width: 0;
}
.oxds-scope .breadcrumb-item + .breadcrumb-item {
    margin-left: -10px;
    padding-left: 20px;
}
.oxds-scope .breadcrumb-item:first-child {
    border-radius: var(--radius-md) 0 0 var(--radius-md);
    padding-left: var(--spacing-3);
    z-index: 3;
}
.oxds-scope .breadcrumb-item:nth-child(2) { z-index: 2; }
.oxds-scope .breadcrumb-item:last-child { z-index: 1; }
.oxds-scope .breadcrumb-item:last-child {
    clip-path: none;
    padding-right: var(--spacing-4);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
    cursor: default;
}
.oxds-scope .breadcrumb-item:hover:not(.active):not(:last-child) {
    background: var(--color-primary-subtle);
    color: var(--color-primary);
}
.oxds-scope .breadcrumb-item i {
    font-size: 11px;
    opacity: 0.7;
    flex-shrink: 0;
}
.oxds-scope .breadcrumb-item.active, .oxds-scope .breadcrumb-item:last-child {
    background: var(--color-primary);
    color: #fff;
    font-weight: var(--font-weight-semibold);
}
.oxds-scope .breadcrumb-item.active i, .oxds-scope .breadcrumb-item:last-child i { opacity: 1; }

/* Subtítulo inline no item ativo do breadcrumb */
.oxds-scope .breadcrumb-subtitulo {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-normal);
    opacity: 0.8;
    margin-left: var(--spacing-2);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 240px;
}

/* Slot de ações — empurrado para a direita dentro do ribbon */
.oxds-scope .breadcrumb-actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    padding: 0 var(--spacing-3);
    flex-shrink: 0;
    /* sem clip-path — fica como bloco neutro no fim do flex */
}
/* Botões compactos para caber na altura de 34px do ribbon */
.oxds-scope .breadcrumb-actions .btn {
    height: 26px;
    padding: 0 var(--spacing-3);
    font-size: var(--font-size-xs);
    line-height: 1;
}
.oxds-scope .breadcrumb-actions .btn-icon {
    width: 26px;
    padding: 0;
}
/* ================================================================
   PARÂMETROS GERAIS — classes pg-*
   ================================================================ */
.oxds-scope .pg-tabs {
    display: flex;
    gap: 4px;
    margin-bottom: var(--spacing-4);
    border-bottom: 2px solid var(--color-border);
    padding-bottom: 0;
    flex-wrap: wrap;
}
.oxds-scope .pg-tab {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border: none;
    background: none;
    cursor: pointer;
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--color-text-secondary);
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    border-radius: var(--radius-md) var(--radius-md) 0 0;
    transition: color 0.15s, border-color 0.15s, background 0.15s;
    position: relative;
}
.oxds-scope .pg-tab:hover { color: var(--color-text); background: var(--color-surface-sunken); }
.oxds-scope .pg-tab.active { color: var(--color-primary); border-bottom-color: var(--color-primary); background: none; }
.oxds-scope .pg-tab.disabled { opacity: 0.45; cursor: not-allowed; }
.oxds-scope .pg-tab-badge {
    position: static;
    display: inline-block;
    font-size: 10px;
    font-weight: 600;
    padding: 1px 6px;
    border-radius: 99px;
    background: var(--color-warning, #f59e0b);
    color: #fff;
    margin-left: 2px;
}

.oxds-scope .pg-body { display: flex; flex-direction: column; gap: var(--spacing-3); }

.oxds-scope .pg-section {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--spacing-4);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
}
.oxds-scope .pg-section-header {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
}
.oxds-scope .pg-section-icon {
    width: 28px;
    height: 28px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    flex-shrink: 0;
}
.oxds-scope .pg-section-icon.success { background: #dcfce7; color: #16a34a; }
.oxds-scope .pg-section-icon.danger { background: #fee2e2; color: #dc2626; }
.oxds-scope .pg-section-icon.warning { background: #fef9c3; color: #ca8a04; }
.oxds-scope .pg-section-icon.info { background: #dbeafe; color: #2563eb; }
.oxds-scope .pg-section-title { font-weight: 600; font-size: var(--font-size-sm); color: var(--color-text); }

/* Variante flat: sem card visual, só divisor superior */
.oxds-scope .pg-section--flat {
    background: transparent;
    border: none;
    border-top: 1px solid var(--color-border);
    border-radius: 0;
    padding: var(--spacing-4) 0;
    gap: 0;
}
.oxds-scope .pg-section--flat:first-child { border-top: none; }
.oxds-scope .pg-section-header--compact {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    margin-bottom: var(--spacing-3);
}
.oxds-scope .pg-section-icon--sm {
    width: 22px;
    height: 22px;
    border-radius: var(--radius-sm);
    font-size: 11px;
}

/* Grid de cards 2 colunas — aba PDV */
.oxds-scope .pg-pdv-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
@media (max-width: 900px) { .oxds-scope .pg-pdv-grid { grid-template-columns: 1fr; } }

.oxds-scope .pg-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 1px 2px rgba(0,0,0,.04);
    min-width: 0;
    display: flex;
    flex-direction: column;
}
.oxds-scope .pg-card-head {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px 8px;
}
.oxds-scope .pg-card-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
}
.oxds-scope .pg-card-icon.info { background: #dbeafe; color: #2563eb; }
.oxds-scope .pg-card-icon.success { background: #dcfce7; color: #16a34a; }
.oxds-scope .pg-card-icon.warning { background: #fef9c3; color: #ca8a04; }
.oxds-scope .pg-card-icon.danger { background: #fee2e2; color: #dc2626; }
.oxds-scope .pg-card-icon.purple { background: #f0e9ff; color: #7c3aed; }
.oxds-scope .pg-card-title { font-size: 14px; font-weight: 700; color: var(--color-text); }
.oxds-scope .pg-card-desc { margin-top: 2px; font-size: 12px; color: var(--color-text-secondary); }
.oxds-scope .pg-card-body { padding: 0 12px 12px; flex: 1; }

/* Cards pequenos de resumo — Encerramento de Balanço (Inventários) */
.oxds-scope .inv-resumo-card {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 6px 12px;
    background: var(--color-surface-sunken);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    min-width: 88px;
}
.oxds-scope .inv-resumo-label {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--color-text-secondary);
    white-space: nowrap;
}
.oxds-scope .inv-resumo-valor {
    font-size: 15px;
    font-weight: 700;
    color: var(--color-text);
    font-family: var(--font-family-mono);
    white-space: nowrap;
}

/* Switches em grid 2 colunas dentro de card */
.oxds-scope .pg-switch-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 16px;
}
.oxds-scope .pg-switch-row {
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-top: 1px solid var(--color-border);
}
.oxds-scope .pg-switch-row:nth-child(-n+2) { border-top: 0; }
.oxds-scope .pg-switch-row--left { display: flex; align-items: center; justify-content: flex-start; gap: 8px; min-height: 30px; }
.oxds-scope .pg-switch-title { font-size: 12px; font-weight: 600; color: var(--color-text); }

.oxds-scope .pg-fields-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-3);
}
.oxds-scope .pg-field-group { display: flex; flex-direction: column; gap: 4px; }
.oxds-scope .pg-label {
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--color-text);
    display: flex;
    flex-direction: row;
    align-items: baseline;
    gap: 4px;
    white-space: nowrap;
}
.oxds-scope .pg-input {
    height: 36px;
    width: 100%;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 0 12px;
    font-size: var(--font-size-sm);
    color: var(--color-text);
    outline: none;
    transition: border-color 0.15s;
}
.oxds-scope .pg-input:focus { border-color: var(--color-primary); }
.oxds-scope select.pg-input { padding: 0 12px; cursor: pointer; }
.oxds-scope textarea.pg-input { height: auto; padding: 8px 12px; }
.oxds-scope select.pg-input.pg-input--placeholder { color: var(--color-text-muted); }
.oxds-scope select.pg-input option { color: var(--color-text); }

/* Variante compacta — grids densos com muitos campos lado a lado
   (ex.: configuração de balança, 3 colunas) onde a altura padrão de
   36px deixaria o bloco grande demais. */
.oxds-scope .pg-input-sm { height: 28px; padding: 0 8px; font-size: var(--font-size-xs); }
.oxds-scope select.pg-input-sm { padding: 0 8px; }

.oxds-scope .pg-input-prefix {
    display: flex;
    align-items: stretch;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
}
.oxds-scope .pg-input-prefix .pg-prefix {
    background: var(--color-surface-sunken);
    border-right: 1px solid var(--color-border);
    padding: 0 10px;
    display: flex;
    align-items: center;
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    white-space: nowrap;
}
.oxds-scope .pg-input-prefix .pg-input {
    border: none;
    border-radius: 0;
    flex: 1;
}
.oxds-scope .pg-input-prefix .pg-input:focus { border: none; outline: none; }

.oxds-scope .pg-toggle-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-4);
    padding: 11px 0;
    border-top: 1px solid var(--color-border);
}
.oxds-scope .pg-section--flat .pg-toggle-row:first-of-type { border-top: none; }
.oxds-scope .pg-toggle-label { flex: 1; font-size: var(--font-size-sm); font-weight: 500; color: var(--color-text); }
.oxds-scope .pg-toggle { position: relative; display: inline-flex; align-items: center; cursor: pointer; }
.oxds-scope .pg-toggle input { opacity: 0; width: 0; height: 0; position: absolute; }
.oxds-scope .pg-toggle-track {
    width: 42px; height: 24px;
    background: var(--color-border-strong);
    border-radius: 99px;
    transition: background 0.2s;
}
.oxds-scope .pg-toggle input:checked ~ .pg-toggle-track { background: var(--color-primary); }
.oxds-scope .pg-toggle-thumb {
    position: absolute;
    left: 3px;
    width: 18px; height: 18px;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0,0,0,.2);
    transition: left 0.2s;
}
.oxds-scope .pg-toggle input:checked ~ .pg-toggle-thumb { left: 21px; }

.oxds-scope .pg-actions {
    display: flex;
    justify-content: flex-start;
    padding-top: var(--spacing-2);
}
.oxds-scope .pg-loading {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--color-text-secondary);
    padding: var(--spacing-6);
    font-size: var(--font-size-sm);
}
.oxds-scope .pg-embreve {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-8);
    text-align: center;
    gap: var(--spacing-3);
}
.oxds-scope .pg-embreve-icon { font-size: 40px; color: var(--color-text-disabled); }
.oxds-scope .pg-embreve-title { font-size: var(--font-size-lg); font-weight: 600; color: var(--color-text-secondary); }
.oxds-scope .pg-embreve-desc { font-size: var(--font-size-sm); color: var(--color-text-disabled); }

/* ================================================================
   OPERACAO DETALHE MODAL  v2 — layout compacto estilo desktop
   ================================================================ */

/* ════════════════════════════════════════════════════════
   OPERACAO DETALHE MODAL  (.odm-)
   ════════════════════════════════════════════════════════ */

/* overlay */
.oxds-scope .odm-overlay {
    position: fixed; inset: 0; z-index: 1200;
    background: rgba(15,20,35,.55);
    display: flex; align-items: center; justify-content: center;
    padding: 16px;
    overflow: hidden;
    backdrop-filter: blur(2px);
    box-sizing: border-box;
}
.oxds-scope .odm-win {
    background: #f5f7fa;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    box-shadow: 0 24px 64px rgba(0,0,0,.28), 0 4px 12px rgba(0,0,0,.12);
    width: 100%; max-width: 1140px;
    height: min(840px, calc(100vh - 32px));
    max-height: calc(100vh - 32px);
    display: flex; flex-direction: column;
    overflow: hidden;
}

/* TITLEBAR */
.oxds-scope .odm-titlebar {
    display: flex; align-items: center; justify-content: space-between;
    padding: 10px 16px;
    background: #fff;
    border-bottom: 1px solid var(--color-border);
    gap: 12px; flex-shrink: 0;
    border-radius: 12px 12px 0 0;
}
.oxds-scope .odm-titlebar-left { display: flex; align-items: center; gap: 10px; overflow: hidden; }
.oxds-scope .odm-titlebar-right { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.oxds-scope .odm-title-ico { color: var(--color-primary); font-size: 16px; }
.oxds-scope .odm-title-txt { font-size: 11px; font-weight: 600; color: var(--color-text-secondary); text-transform: uppercase; letter-spacing: .06em; }
.oxds-scope .odm-title-num { font-size: 18px; font-weight: 800; color: var(--color-text); }
.oxds-scope .odm-title-serie { color: var(--color-text-secondary); font-weight: 500; font-size: 15px; }
.oxds-scope .odm-title-oci {
    font-size: 11px; padding: 3px 10px;
    background: var(--color-primary-subtle); color: var(--color-primary);
    border: 1px solid rgba(37,99,235,.2);
    border-radius: 99px; font-weight: 700;
    max-width: 300px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.oxds-scope .odm-close {
    width: 32px; height: 32px; border-radius: 6px;
    background: var(--color-danger); border: none; cursor: pointer;
    color: #fff; font-size: 16px;
    display: flex; align-items: center; justify-content: center;
    transition: background .15s;
    flex-shrink: 0;
}
.oxds-scope .odm-close:hover { background: var(--color-danger-dark, #a90f17); }

/* BADGES */
.oxds-scope .odm-badge {
    display: inline-flex; align-items: center; gap: 5px;
    font-size: 11px; font-weight: 700;
    padding: 3px 10px; border-radius: 99px;
    white-space: nowrap; letter-spacing: .02em;
}
.oxds-scope .odm-badge-ok { background: var(--color-success-subtle); color: var(--color-success); border: 1px solid var(--color-success-border); }
.oxds-scope .odm-badge-err { background: var(--color-danger-subtle);  color: var(--color-danger);  border: 1px solid var(--color-danger-border); }
.oxds-scope .odm-badge-neu { background: #f1f3f5; color: #475569; border: 1px solid #d9dde3; }
.oxds-scope .odm-badge-warn { background: var(--color-warning-subtle); color: var(--color-warning); border: 1px solid var(--color-warning-border); }

/* LOADING */
.oxds-scope .odm-loading {
    display: flex; align-items: center; justify-content: center;
    gap: 10px; padding: 60px;
    color: var(--color-text-secondary); font-size: 13px;
}

/* SUMMARY BAR — barra de resumo rápido */
.oxds-scope .odm-summary {
    display: flex; align-items: stretch;
    background: #fff;
    border-bottom: 1px solid var(--color-border);
    flex-shrink: 0;
}
.oxds-scope .odm-sum-cell {
    display: flex; flex-direction: column; justify-content: center;
    padding: 8px 16px; border-right: 1px solid var(--color-border);
    min-width: 0; gap: 2px;
}
.oxds-scope .odm-sum-lbl { font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--color-text-secondary); }
.oxds-scope .odm-sum-val { font-size: 13px; font-weight: 600; color: var(--color-text); white-space: nowrap; }
.oxds-scope .odm-sum-cliente { max-width: 200px; overflow: hidden; text-overflow: ellipsis; }
.oxds-scope .odm-sum-sep { border-left: 2px solid var(--color-border); }
.oxds-scope .odm-sum-total { background: var(--color-primary); margin-left: auto; border-right: none; padding: 8px 20px; gap: 2px; }
.oxds-scope .odm-sum-total .odm-sum-lbl { color: rgba(255,255,255,.7); }
.oxds-scope .odm-sum-val-total { font-size: 20px; font-weight: 800; color: #fff; white-space: nowrap; letter-spacing: -.01em; }
.oxds-scope .odm-red { color: #dc2626 !important; }
.oxds-scope .odm-green { color: #16a34a !important; }

/* ABAS */
.oxds-scope .odm-tabs {
    display: flex; gap: 0;
    background: #f5f7fa;
    border-bottom: 1px solid var(--color-border);
    flex-shrink: 0; padding: 0 12px;
}
.oxds-scope .odm-tab {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 9px 16px;
    font-size: 12px; font-weight: 600;
    color: var(--color-text-secondary);
    background: none; border: none;
    border-bottom: 2px solid transparent; margin-bottom: -1px;
    cursor: pointer; transition: color .12s; white-space: nowrap;
}
.oxds-scope .odm-tab:hover { color: var(--color-text); }
.oxds-scope .odm-tab.active { color: var(--color-primary); border-bottom-color: var(--color-primary); }
.oxds-scope .odm-tab-pill {
    font-size: 10px; font-weight: 700; min-width: 18px;
    background: var(--color-primary); color: #fff;
    border-radius: 99px; padding: 0 5px; text-align: center; line-height: 16px;
}

/* CORPO */
.oxds-scope .odm-body {
    flex: 1; overflow: hidden;
    display: flex; flex-direction: column;
    min-height: 0; background: #f5f7fa;
}
.oxds-scope .odm-tab-pane {
    flex: 1; display: flex; flex-direction: column;
    overflow-y: auto; min-height: 0;
    padding: 12px;
    gap: 8px;
}
.oxds-scope .odm-tab-pane-grid {
    flex: 1; display: flex; flex-direction: column;
    overflow-x: hidden;
    overflow-y: auto;   /* scroll só aparece se painel+grade > altura disponível */
    min-height: 0;
    position: relative;
}
.oxds-scope .odm-itens-wrap {
    /* thead ~33px + 13 linhas de ~32px + tfoot ~33px ≈ 482px */
    max-height: 418px;
    overflow: auto;
    flex-shrink: 0;
    border-bottom: 1px solid var(--color-border);
}

/* ================================================================
   BAIXA MÚLTIPLA INLINE — painel que substitui a tabela de títulos
   ================================================================ */

.oxds-scope .mbm-inline-overlay {
    position: absolute;
    inset: 0;
    z-index: 10;
    background: var(--color-surface);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* No modo inline, o .mbm-modal preenche o overlay inteiro */
.oxds-scope .mbm-inline-overlay .mbm-modal {
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    border: none !important;
    background: var(--color-surface);
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
}

/* Modal flutuante padrão — sobrescreve .modal e .modal-xl */
.oxds-scope .mbm-modal {
    width: 860px !important;
    max-width: min(860px, 96vw) !important;
    height: 580px !important;
    max-height: 90vh !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    background: var(--color-surface);
    border-radius: var(--radius-xl);
    box-shadow: 0 20px 60px rgba(0,0,0,0.2), 0 0 0 1px var(--color-border);
}

.oxds-scope .mbm-resumo-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4px 0;
    font-size: var(--font-size-xs);
    border-bottom: 1px solid var(--color-border);
}
.oxds-scope .mbm-resumo-row:last-child { border-bottom: none; }
.oxds-scope .mbm-resumo-label { color: var(--color-text-secondary); display: flex; align-items: center; gap: 4px; }
.oxds-scope .mbm-resumo-valor { font-weight: var(--font-weight-semibold); font-size: var(--font-size-xs); }
.oxds-scope .mbm-global-row { display: flex; align-items: center; gap: var(--spacing-2); padding: 3px 0; }
.oxds-scope .mbm-global-label { font-size: var(--font-size-xs); color: var(--color-text-secondary); width: 80px; flex-shrink: 0; }
.oxds-scope .mbm-global-input { width: 110px; font-size: var(--font-size-xs) !important; text-align: right; }
.oxds-scope .mbm-global-hint { font-size: 10px; color: var(--color-text-muted); }

/* ================================================================
   LAYOUT FINANCEIRO — Contas a Receber / Pagar
   fin-layout: painel lateral + área de grid
   ================================================================ */

/* Shell que ocupa toda a altura disponível no app-content */
.oxds-scope .fin-shell {
    display: flex;
    flex-direction: column;
    /* 100vh - topbar(54px) - padding top+bottom do app-content(48px) */
    height: calc(100vh - var(--topbar-height) - 48px);
    min-height: 0;
}

/* Contêiner principal: dois painéis lado a lado */
.oxds-scope .fin-layout {
    display: flex;
    gap: 0;
    flex: 1;
    min-height: 0;
}

/* ── PAINEL LATERAL ─────────────────────────────────────── */
.oxds-scope .fin-painel {
    width: 180px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2);
    padding: var(--spacing-3) var(--spacing-2) var(--spacing-3) 0;
    border-right: 1px solid var(--color-border);
    overflow-y: auto;
    transition: width var(--transition-base);
    position: relative;
}

.oxds-scope .fin-painel--oculto {
    width: 28px;
    padding: var(--spacing-3) 0;
    overflow: hidden;
    align-items: center;
}

.oxds-scope .fin-painel-titulo {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 0 var(--spacing-2) var(--spacing-1);
    display: flex;
    align-items: center;
    gap: 5px;
}

/* Card de stat no painel lateral */
.oxds-scope .fin-card-stat {
    background: var(--color-surface-raised);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--spacing-2) var(--spacing-3);
    display: flex;
    flex-direction: column;
    gap: 1px;
}
.oxds-scope .fin-card-stat--info { background: var(--color-info-subtle);    border-color: var(--color-info-border); }
.oxds-scope .fin-card-stat--danger { background: var(--color-danger-subtle);  border-color: var(--color-danger-border); }
.oxds-scope .fin-card-stat--success { background: var(--color-success-subtle); border-color: var(--color-success-border); }

.oxds-scope .fin-card-label {
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-semibold);
}
.oxds-scope .fin-card-value {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    line-height: 1.3;
    word-break: break-all;
}
.oxds-scope .fin-card-meta {
    font-size: 9px;
    color: var(--color-text-secondary);
}

/* Botão toggle do painel */
.oxds-scope .fin-painel-toggle {
    margin-top: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: var(--radius-md);
    background: var(--color-surface-sunken);
    border: 1px solid var(--color-border);
    color: var(--color-text-secondary);
    cursor: pointer;
    font-size: 10px;
    flex-shrink: 0;
    transition: all 0.15s ease;
    align-self: flex-start;
}
.oxds-scope .fin-painel-toggle:hover {
    background: var(--color-primary-subtle);
    border-color: var(--color-primary);
    color: var(--color-primary);
}
.oxds-scope .fin-painel--oculto .fin-painel-toggle {
    align-self: center;
    margin-top: var(--spacing-2);
}

/* ── ÁREA DIREITA ────────────────────────────────────────── */
.oxds-scope .fin-grid {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    padding-left: var(--spacing-3);
    overflow: hidden;
}

/* Tabela com scroll próprio */
.oxds-scope .fin-table-wrap {
    flex: 1;
    overflow-y: auto;
    overflow-x: auto;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    background: var(--color-surface);
    min-height: 0;
}

/* A tabela nunca encolhe — scroll horizontal cuida do resto */
.oxds-scope .fin-table-wrap .table {
    min-width: 900px;
    width: max-content;
}

/* thead grudado no topo do scroll */
.oxds-scope .fin-table-wrap .table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--color-surface-sunken);
    box-shadow: 0 1px 0 var(--color-border);
}

/* Coluna de ações fixa à direita */
.oxds-scope .fin-table-wrap .table th.col-acoes-sticky, .oxds-scope .fin-table-wrap .table td.col-acoes-sticky {
    position: sticky;
    right: 0;
    background: var(--color-surface);
    z-index: 1;
    box-shadow: -2px 0 4px rgba(0,0,0,0.06);
}
.oxds-scope .fin-table-wrap .table thead th.col-acoes-sticky {
    background: var(--color-surface-sunken);
    z-index: 3;
}
[data-theme="dark"] .fin-table-wrap .table td.col-acoes-sticky { background: var(--color-surface); }
[data-theme="dark"] .fin-table-wrap .table thead th.col-acoes-sticky { background: var(--color-surface-sunken); }

/* ── PAGINAÇÃO ───────────────────────────────────────────── */
.oxds-scope .fin-paginacao {
    flex-shrink: 0;
    height: var(--fin-paginacao-h);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-3);
    border-top: 1px solid var(--color-border);
    padding: 0 var(--spacing-2);
    background: var(--color-surface);
}

.oxds-scope .fin-paginacao-info {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    white-space: nowrap;
}

/* ── DARK MODE ───────────────────────────────────────────── */
[data-theme="dark"] .fin-painel { border-color: var(--color-border); }
[data-theme="dark"] .fin-table-wrap { border-color: var(--color-border); }
[data-theme="dark"] .fin-paginacao { border-color: var(--color-border); background: var(--color-surface); }

/* ── RESPONSIVIDADE FINANCEIRO ────────────────────────────── */

/* Botão de filtros e barra mobile — ocultos no desktop */
.oxds-scope .fin-filtros-mobile-bar {
    display: none;
    align-items: center;
    gap: var(--spacing-2);
    padding: var(--spacing-2) 0;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: var(--spacing-2);
}
.oxds-scope .fin-filtros-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-primary);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    border-radius: 999px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    margin-left: 4px;
}

/* Gaveta de filtros */
.oxds-scope .fin-gaveta-overlay {
    position: fixed; inset: 0; z-index: var(--z-modal);
    background: rgba(0,0,0,0.5);
    display: flex; align-items: flex-end;
}
.oxds-scope .fin-gaveta {
    background: var(--color-surface);
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    width: 100%;
    max-height: 90dvh;
    display: flex; flex-direction: column;
    box-shadow: var(--shadow-xl);
    animation: fin-gaveta-in 0.25s ease;
}
@keyframes fin-gaveta-in {
    from { transform: translateY(100%); }
    to   { transform: translateY(0); }
}
.oxds-scope .fin-gaveta-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: var(--spacing-4) var(--spacing-4) var(--spacing-3);
    border-bottom: 1px solid var(--color-border);
    font-weight: var(--font-weight-semibold);
    font-size: var(--font-size-md);
    flex-shrink: 0;
}
.oxds-scope .fin-gaveta-body {
    flex: 1; overflow-y: auto;
    padding: var(--spacing-4);
    display: flex; flex-direction: column; gap: var(--spacing-4);
}
.oxds-scope .fin-gaveta-field { display: flex; flex-direction: column; gap: var(--spacing-1); }
.oxds-scope .fin-gaveta-field .form-label { font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); }
.oxds-scope .fin-gaveta-footer {
    display: flex; gap: var(--spacing-3);
    padding: var(--spacing-3) var(--spacing-4);
    border-top: 1px solid var(--color-border);
    flex-shrink: 0;
}
.oxds-scope .fin-gaveta-footer .btn { flex: 1; height: 44px; font-size: var(--font-size-base); }

/* Tablet + Mobile (≤ 1024px): exibe gaveta, oculta filtros desktop */
@media (max-width: 1024px) {
    .oxds-scope .fin-filtros-desktop { display: none !important; }
    .oxds-scope .fin-filtros-mobile-bar { display: flex; }

    .oxds-scope .fin-shell {
        height: auto;
        overflow: visible;
    }

    /* No mobile o overlay inline usa position: fixed para cobrir a tela toda */
    .oxds-scope .mbm-inline-overlay {
        position: fixed !important;
        inset: 0 !important;
        z-index: 999 !important;
    }
    .oxds-scope .mbm-inline-overlay .mbm-modal {
        height: 100dvh !important;
        max-height: 100dvh !important;
        border-radius: 0 !important;
    }
    /* Empilha painel de resumo acima da tabela */
    .oxds-scope .fin-layout {
        flex-direction: column;
    }
    .oxds-scope .fin-painel {
        width: 100%;
        flex: none;
        border-right: none;
        border-bottom: 1px solid var(--color-border);
        padding: var(--spacing-2) var(--spacing-3);
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        gap: var(--spacing-2);
        align-items: stretch;
    }
    .oxds-scope .fin-painel--oculto {
        width: 100%;
        height: auto;
        min-height: 0;
        padding: 0;
    }
    .oxds-scope .fin-painel-titulo { display: none; }
    .oxds-scope .fin-card-stat {
        flex: 1 1 140px;
        min-width: 120px;
    }
    .oxds-scope .fin-painel-toggle {
        position: static;
        transform: none;
        width: 100%;
        height: 28px;
        border-radius: var(--radius-md);
        border-top: 1px solid var(--color-border);
        border-right: none;
        margin-top: 4px;
    }
    .oxds-scope .fin-painel--oculto .fin-painel-toggle {
        width: 100%;
        border-radius: var(--radius-md);
        margin-top: 0;
    }
    .oxds-scope .fin-grid {
        overflow: visible;
    }
    .oxds-scope .fin-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        border-radius: var(--radius-md);
    }
    /* Oculta colunas menos essenciais em tablet vertical / mobile */
    .oxds-scope .fin-table-wrap .table .col-emissao, .oxds-scope .fin-table-wrap .table .col-juros, .oxds-scope .fin-table-wrap .table .col-descricao { display: none; }

    .oxds-scope .fin-paginacao {
        height: auto;
        padding: var(--spacing-3) var(--spacing-2);
        flex-wrap: wrap;
        gap: var(--spacing-2);
    }
    /* Barra de ações: esconde botões menos usados em tela pequena,
       já que o mobile bar tem os principais */
    .oxds-scope .fin-acoes-desktop-only { display: none; }
}

/* Mobile (≤ 640px): ajustes adicionais */
@media (max-width: 640px) {
    .oxds-scope .fin-gaveta { max-height: 95dvh; }
    .oxds-scope .fin-card-stat { flex: 1 1 calc(50% - var(--spacing-2)); }
    .oxds-scope .fin-table-wrap .table .col-parcela { display: none; }
    .oxds-scope .fin-paginacao-info { width: 100%; text-align: center; }
}

/* Dropdown de ações ⋮ — tabelas financeiras e listas em geral */
.oxds-scope .fin-acao-btn { color: var(--color-text-secondary); }
.oxds-scope .fin-acao-btn--ativo, .oxds-scope .fin-acao-btn:hover { color: var(--color-text); background: var(--color-surface-sunken); }

.oxds-scope .fin-acao-menu {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    min-width: 200px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    z-index: var(--z-dropdown);
    padding: var(--spacing-1) 0;
    animation: dropdown-in 0.1s ease;
}
@keyframes dropdown-in {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.oxds-scope .fin-acao-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    width: 100%;
    padding: var(--spacing-2) var(--spacing-4);
    background: none;
    border: none;
    font-size: var(--font-size-sm);
    color: var(--color-text);
    cursor: pointer;
    text-align: left;
    white-space: nowrap;
    transition: background var(--transition-fast);
}
.oxds-scope .fin-acao-item:hover { background: var(--color-surface-sunken); }
.oxds-scope .fin-acao-item i { width: 16px; text-align: center; flex-shrink: 0; }

.oxds-scope .fin-acao-item--danger { color: var(--color-danger); }
.oxds-scope .fin-acao-item--danger:hover { background: var(--color-danger-subtle); }

.oxds-scope .fin-acao-divider {
    height: 1px;
    background: var(--color-border);
    margin: var(--spacing-1) 0;
}

/* CARDS TEMÁTICOS — painéis da aba Detalhes */
.oxds-scope .odm-card {
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
}
.oxds-scope .odm-card-head {
    display: flex; align-items: center; gap: 8px;
    padding: 6px 12px;
    font-size: var(--font-size-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
    border-bottom: 1px solid var(--color-border);
}
/* Cores por tema */
.oxds-scope .odm-card-controle  .odm-card-head { background: #eff6ff; color: #1d4ed8; border-bottom-color: #bfdbfe; }
.oxds-scope .odm-card-controle  .odm-card-head i { color: #2563eb; }
.oxds-scope .odm-card-cliente   .odm-card-head { background: #f5f3ff; color: #6d28d9; border-bottom-color: #ddd6fe; }
.oxds-scope .odm-card-cliente   .odm-card-head i { color: #7c3aed; }
.oxds-scope .odm-card-valores   .odm-card-head { background: #f0fdf4; color: #166534; border-bottom-color: #bbf7d0; }
.oxds-scope .odm-card-valores   .odm-card-head i { color: #16a34a; }
.oxds-scope .odm-card-fiscal    .odm-card-head { background: #fff7ed; color: #c2410c; border-bottom-color: #fed7aa; }
.oxds-scope .odm-card-fiscal    .odm-card-head i { color: #ea580c; }
.oxds-scope .odm-card-nfe       .odm-card-head { background: #ecfdf5; color: #065f46; border-bottom-color: #a7f3d0; }
.oxds-scope .odm-card-nfe       .odm-card-head i { color: #059669; }
.oxds-scope .odm-card-cancel { border-color: var(--color-danger-border); }
.oxds-scope .odm-card-cancel    .odm-card-head { background: var(--color-danger-subtle); color: var(--color-danger); border-bottom-color: var(--color-danger-border); }
.oxds-scope .odm-card-cancel    .odm-card-head i { color: var(--color-danger); }

.oxds-scope .odm-card-body { padding: 0; }

/* CAMPOS LABEL+VALOR dentro dos cards */
.oxds-scope .odm-row-form {
    display: flex; flex-wrap: wrap; gap: 0;
}
.oxds-scope .odm-f {
    display: flex; flex-direction: column;
    padding: 8px 14px;
    border-right: 1px solid #f0f2f5;
    min-width: 0;
}
.oxds-scope .odm-f:last-child { border-right: none; }
.oxds-scope .odm-f-sm { min-width: 90px; }
.oxds-scope .odm-f-md { min-width: 140px; }
.oxds-scope .odm-f-lg { min-width: 210px; }
.oxds-scope .odm-f-xl { min-width: 290px; flex: 1; }
.oxds-scope .odm-f-full { width: 100%; flex: 1 0 100%; }
.oxds-scope .odm-fl {
    font-size: var(--font-size-xs); font-weight: 600; text-transform: uppercase;
    letter-spacing: .04em; color: var(--color-text-secondary);
    white-space: nowrap; margin-bottom: 2px;
}
.oxds-scope .odm-fv {
    font-size: var(--font-size-sm); font-weight: 500; color: var(--color-text);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.oxds-scope .odm-bold { font-weight: 700 !important; }
.oxds-scope .odm-muted { color: var(--color-text-secondary) !important; }
.oxds-scope .odm-mono { font-family: inherit; }
.oxds-scope .odm-chave { font-size: 11px; white-space: normal; word-break: break-all; }
.oxds-scope .odm-icon-ok { color: var(--color-success); }

/* Campos fiscais editáveis (clique para corrigir CFOP/CST/NCM/etc. de um item já gravado) */
.oxds-scope .odm-fv-editavel { cursor: pointer; border-radius: 4px; padding: 1px 4px; margin: -1px -4px; transition: background .12s; }
.oxds-scope .odm-fv-editavel:hover { background: var(--color-primary-subtle, #fff4ec); color: var(--color-primary); }
.oxds-scope .odm-fv-edit-icon { font-size: 10px; opacity: .5; margin-left: 4px; }
.oxds-scope .odm-fv-disabled { cursor: default; opacity: .65; }
.oxds-scope .odm-fv-disabled:hover { background: none; color: inherit; }

/* Toolbar de emissão fiscal (lista de vendas) — 3 botões quadrados de mesma
   largura/altura, um por modelo (NFC-e/NF-e/NFS-e), à direita do Preview.
   Visual destacado (fundo colorido + sombra) para chamar atenção na primeira
   olhada da tela — ação de geração de documento fiscal não pode passar despercebida. */
.oxds-scope .fiscal-emit-toolbar { display: flex; gap: 8px; margin-left: 8px; }
.oxds-scope .fiscal-emit-btn {
    width: auto; min-width: 84px; height: 40px; padding: 4px 12px;
    border: none; border-radius: var(--radius-md);
    background: linear-gradient(135deg, #ff5252, var(--color-danger));
    box-shadow: 0 2px 6px color-mix(in srgb, var(--color-danger) 45%, transparent);
    cursor: pointer;
    display: flex; align-items: center; justify-content: center; gap: 7px;
    transition: box-shadow .12s, transform .08s, filter .12s;
}
.oxds-scope .fiscal-emit-btn-label { font-size: 12px; font-weight: 800; color: #fff; text-transform: uppercase; letter-spacing: .02em; text-shadow: 0 1px 1px rgba(0,0,0,.15); }
.oxds-scope .fiscal-emit-btn:disabled .fiscal-emit-btn-label { color: var(--color-text-secondary); text-shadow: none; }
.oxds-scope .fiscal-emit-btn img { max-width: 26px; max-height: 100%; object-fit: contain; filter: brightness(0) invert(1); }
.oxds-scope .fiscal-emit-btn:disabled img { filter: none; opacity: .5; }
.oxds-scope .fiscal-emit-btn:hover:not(:disabled) {
    filter: brightness(1.08);
    box-shadow: 0 4px 12px color-mix(in srgb, var(--color-danger) 55%, transparent);
    transform: translateY(-1px);
}
.oxds-scope .fiscal-emit-btn:active:not(:disabled) { transform: translateY(0); filter: brightness(0.96); }
.oxds-scope .fiscal-emit-btn:disabled {
    opacity: .55; cursor: not-allowed; box-shadow: none;
    background: var(--color-surface-sunken, #f4f4f5);
}
/* Variante amarela — quando o único documento selecionado está rejeitado, o
   botão "Gerar" da toolbar vira "Reenviar" (mesma categoria de cor da legenda). */
.oxds-scope .fiscal-emit-btn--warning {
    background: linear-gradient(135deg, #ffca4d, var(--color-warning));
    box-shadow: 0 2px 6px color-mix(in srgb, var(--color-warning) 45%, transparent);
}
.oxds-scope .fiscal-emit-btn--warning:hover:not(:disabled) {
    box-shadow: 0 4px 12px color-mix(in srgb, var(--color-warning) 55%, transparent);
}

/* Flag de documento fiscal na coluna "Flag" da lista de vendas — quadrinho
   com a sigla do tipo (NFe/NFCe/NFSe), cor de fundo fixa por TIPO (definida
   inline via style, ver DOC_TIPO_CFG em ListaOperacoesSaida.js) — não pelo
   status, que tem colunas dedicadas própria mais à direita na tabela. */
.oxds-scope .fiscal-doc-flag {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 34px; height: 18px; padding: 0 4px; border-radius: 4px;
    color: #fff; font-size: 9px; font-weight: 800; letter-spacing: .02em;
    text-transform: uppercase; white-space: nowrap;
}

/* Botões Gerar/Reenviar/Inutilizar POR LINHA (célula Fiscal da lista e footer do
   modal de detalhe) — versão compacta do .fiscal-emit-btn, cabe na altura da linha. */
.oxds-scope .fiscal-emit-btn-mini {
    display: inline-flex; align-items: center; gap: 4px;
    height: 24px; padding: 2px 8px; border: none; border-radius: 5px;
    background: linear-gradient(135deg, #ff5252, var(--color-danger));
    color: #fff; font-size: 10px; font-weight: 800; text-transform: uppercase;
    cursor: pointer; box-shadow: 0 1px 2px rgba(0,0,0,.15);
    transition: filter .12s, transform .08s;
}
.oxds-scope .fiscal-emit-btn-mini img { width: 14px; height: 14px; object-fit: contain; filter: brightness(0) invert(1); }
.oxds-scope .fiscal-emit-btn-mini:hover:not(:disabled) { filter: brightness(1.08); transform: translateY(-1px); }
.oxds-scope .fiscal-emit-btn-mini:disabled { opacity: .5; cursor: not-allowed; box-shadow: none; }
.oxds-scope .fiscal-emit-btn-mini--warning { background: linear-gradient(135deg, #ffca4d, var(--color-warning)); }
.oxds-scope .fiscal-emit-btn-mini--inutilizar {
    background: var(--color-warning); padding: 2px 6px;
}

/* Linha divisória dentro de card */
.oxds-scope .odm-divider {
    height: 1px; background: #f0f2f5; margin: 0;
}

/* SEM NF-e */
.oxds-scope .odm-sem-nfe {
    padding: 10px 14px;
    color: var(--color-text-disabled);
    font-size: 12px;
    display: flex; align-items: center; gap: 8px;
}

/* TABELA DE VALORES (card de totais) */
.oxds-scope .odm-vtable {
    width: 100%; border-collapse: collapse; font-size: 12px;
}
.oxds-scope .odm-vtable th {
    background: #fafbfc;
    color: var(--color-text-secondary);
    font-size: var(--font-size-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .03em;
    padding: 5px 10px; text-align: right; white-space: nowrap;
    border-bottom: 1px solid var(--color-border);
    border-right: 1px solid #f0f2f5;
}
.oxds-scope .odm-vtable th:first-child { text-align: left; }
.oxds-scope .odm-vtable td {
    padding: 7px 10px; text-align: right;
    border-right: 1px solid #f0f2f5;
    font-size: 12px; color: var(--color-text);
}
.oxds-scope .odm-vtable td:first-child { text-align: left; }
.oxds-scope .odm-vtable tr:hover td { background: #fafbfc; }
.oxds-scope .odm-th-total { background: #eff6ff !important; color: var(--color-primary) !important; }
.oxds-scope .odm-td-total { color: var(--color-primary); font-weight: 700; background: #f0f7ff; font-size: 13px; }

/* TABELA ITENS */
.oxds-scope .odm-itens-tbl {
    width: 100%; border-collapse: collapse;
    font-size: 12px; min-width: 940px; background: #fff;
}
.oxds-scope .odm-itens-tbl th {
    position: sticky; top: 0; z-index: 1;
    background: #f5f7fa;
    color: var(--color-text-secondary);
    font-size: var(--font-size-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .03em;
    padding: 6px 8px; white-space: nowrap;
    border-bottom: 2px solid var(--color-border);
    border-right: 1px solid #e8eaed;
}
.oxds-scope .odm-itens-tbl td {
    padding: 6px 8px;
    border-bottom: 1px solid #f0f2f5;
    border-right: 1px solid #f0f2f5;
    vertical-align: middle;
}
.oxds-scope .odm-itens-tbl tbody tr:hover td { background: #f0f5ff !important; cursor: pointer; }
.oxds-scope .odm-tr-alt td { background: #fafbfc; }
.oxds-scope .odm-item-row--sel td { background: #dbeafe !important; color: var(--color-text); }
.oxds-scope .odm-item-row--sel .odm-seq { color: var(--color-primary); }
.oxds-scope .odm-tc { text-align: center !important; }
.oxds-scope .odm-tr { text-align: right  !important; }
.oxds-scope .odm-seq { color: var(--color-text-disabled); font-size: 11px; font-weight: 600; }
.oxds-scope .odm-td-prod { min-width: 200px; max-width: 300px; }
.oxds-scope .odm-prod-nome { font-weight: 600; font-size: 12px; color: var(--color-text); }
.oxds-scope .odm-prod-sub { font-size: 10px; color: var(--color-text-secondary); margin-top: 2px; }
.oxds-scope .odm-tfoot td {
    padding: 6px 8px; font-weight: 700;
    background: #f5f7fa !important;
    border-top: 2px solid var(--color-border);
    font-size: 12px;
}

/* PAINEL DE DETALHES DO ITEM */
.oxds-scope .odm-item-detalhe {
    flex-shrink: 0;
    background: #fff;
    border-top: 2px solid var(--color-primary);
    overflow: visible;
}
.oxds-scope .odm-item-detalhe-head {
    display: flex; align-items: center; gap: 12px;
    padding: 6px 10px;
    background: #eff6ff;
    border-bottom: 1px solid #bfdbfe;
    flex-wrap: wrap;
}
.oxds-scope .odm-item-detalhe-titulo {
    display: flex; align-items: center; gap: 7px;
    font-size: 12px; font-weight: 700; color: var(--color-text);
    flex: 1; min-width: 0;
}
.oxds-scope .odm-item-detalhe-ncm {
    font-size: 11px; font-weight: 600;
    background: #dbeafe; color: #1d4ed8;
    padding: 1px 7px; border-radius: 99px;
    border: 1px solid #bfdbfe; white-space: nowrap;
}

/* Botões de edição rápida (CFOP / CST / CSOSN) */
.oxds-scope .odm-item-edit-btns {
    display: flex; align-items: center; gap: 4px; flex-shrink: 0;
}
.oxds-scope .odm-edit-btn {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 3px 10px;
    font-size: 11px; font-weight: 600;
    background: #fff; color: var(--color-text-secondary);
    border: 1px solid var(--color-border);
    border-radius: 4px; cursor: pointer;
    transition: border-color .12s, color .12s, background .12s;
}
.oxds-scope .odm-edit-btn:hover { border-color: var(--color-primary); color: var(--color-primary); background: #eff6ff; }
.oxds-scope .odm-edit-btn-locked { opacity: .45; cursor: not-allowed; }
.oxds-scope .odm-edit-btn-locked:hover { border-color: var(--color-border); color: var(--color-text-secondary); background: #fff; }
.oxds-scope .odm-edit-btn-val {
    font-size: 12px; font-weight: 800;
    color: var(--color-primary);
    min-width: 24px; text-align: center;
}

/* Seções do painel de detalhes */
.oxds-scope .odm-item-secao {
    border-bottom: 1px solid #f0f2f5;
}
.oxds-scope .odm-item-secao-label {
    font-size: 9px; font-weight: 800; text-transform: uppercase;
    letter-spacing: .07em; color: var(--color-text-secondary);
    padding: 3px 10px; background: #fafbfc;
    border-bottom: 1px solid #f0f2f5;
}
.oxds-scope .odm-item-secao--icms   .odm-item-secao-label { background: #fff7ed; color: #c2410c; }
.oxds-scope .odm-item-secao--piscofins .odm-item-secao-label { background: #f0fdf4; color: #166534; }
.oxds-scope .odm-item-campos {
    display: flex; flex-wrap: wrap; gap: 0;
}
.oxds-scope .odm-ic {
    display: flex; flex-direction: column;
    padding: 5px 12px;
    border-right: 1px solid #f0f2f5;
    min-width: 90px;
}
.oxds-scope .odm-ic:last-child { border-right: none; }
.oxds-scope .odm-ic--sep { border-left: 2px solid var(--color-border); }

/* MINI-MODAL DE EDIÇÃO DE CAMPO */
.oxds-scope .odm-edit-overlay {
    position: absolute; inset: 0; z-index: 10;
    background: rgba(15,20,35,.35);
    display: flex; align-items: center; justify-content: center;
    backdrop-filter: blur(1px);
    border-radius: 0 0 12px 12px;
}
.oxds-scope .odm-edit-modal {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0,0,0,.22);
    width: 320px; overflow: hidden;
}
.oxds-scope .odm-edit-modal-head {
    padding: 10px 16px;
    font-size: 13px; font-weight: 700;
    background: #f5f7fa;
    border-bottom: 1px solid var(--color-border);
}
.oxds-scope .odm-edit-modal-body {
    padding: 16px;
    display: flex; flex-direction: column; gap: 6px;
}
.oxds-scope .odm-edit-label {
    font-size: 11px; font-weight: 600; color: var(--color-text-secondary);
}
.oxds-scope .odm-edit-input {
    width: 100%; padding: 6px 10px;
    font-size: 14px; font-weight: 700;
    border: 2px solid var(--color-primary);
    border-radius: 4px; outline: none;
    color: var(--color-text);
}
.oxds-scope .odm-edit-modal-foot {
    display: flex; justify-content: flex-end; gap: 8px;
    padding: 10px 16px;
    border-top: 1px solid var(--color-border);
    background: #f5f7fa;
}

/* ModalConfirmacao — modal de confirmação genérico do sistema (substitui confirm()/prompt() nativos) */
.oxds-scope .mc-overlay {
    position: fixed; inset: 0; z-index: 2000;
    background: rgba(15,20,35,.45);
    display: flex; align-items: center; justify-content: center;
    backdrop-filter: blur(1px);
    padding: 16px;
}
.oxds-scope .mc-modal {
    background: var(--color-surface, #fff);
    border-radius: var(--radius-lg, 10px);
    box-shadow: 0 12px 40px rgba(0,0,0,.28);
    width: 100%; max-width: 400px; overflow: hidden;
}
.oxds-scope .mc-head {
    padding: 14px 18px;
    font-size: 15px; font-weight: 700;
    background: var(--color-surface-raised, #f5f7fa);
    border-bottom: 1px solid var(--color-border);
}
.oxds-scope .mc-body { padding: 18px; display: flex; flex-direction: column; gap: 8px; }
.oxds-scope .mc-mensagem { margin: 0; font-size: 13px; color: var(--color-text); line-height: 1.5; }
.oxds-scope .mc-label { font-size: 11px; font-weight: 600; color: var(--color-text-secondary); text-transform: uppercase; }
.oxds-scope .mc-textarea {
    width: 100%; padding: 8px 10px; font-size: 13px; font-family: inherit;
    border: 1.5px solid var(--color-border); border-radius: 6px; outline: none;
    resize: vertical; color: var(--color-text);
}
.oxds-scope .mc-textarea:focus { border-color: var(--color-primary); }
.oxds-scope .mc-erro { color: var(--color-danger); font-size: 12px; }
.oxds-scope .mc-foot {
    display: flex; justify-content: flex-end; gap: 8px;
    padding: 12px 18px;
    border-top: 1px solid var(--color-border);
    background: var(--color-surface-raised, #f5f7fa);
}

/* PAGAMENTOS — cards de forma de pgto */
.oxds-scope .odm-pgto-grid {
    display: flex; flex-direction: column; gap: 6px;
    padding: 12px;
}
.oxds-scope .odm-pgto-card {
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    display: flex; align-items: center;
    padding: 10px 14px; gap: 12px;
}
.oxds-scope .odm-pgto-card-icon {
    width: 36px; height: 36px; border-radius: 8px;
    background: var(--color-primary-subtle);
    display: flex; align-items: center; justify-content: center;
    color: var(--color-primary); font-size: 15px; flex-shrink: 0;
}
.oxds-scope .odm-pgto-card-info { flex: 1; min-width: 0; }
.oxds-scope .odm-pgto-card-nome { font-size: 13px; font-weight: 700; color: var(--color-text); }
.oxds-scope .odm-pgto-card-sub { font-size: 11px; color: var(--color-text-secondary); margin-top: 2px; }
.oxds-scope .odm-pgto-card-valor {
    font-size: 16px; font-weight: 800;
    color: var(--color-text);
    white-space: nowrap;
}
.oxds-scope .odm-pgto-card-meta {
    display: flex; gap: 16px; flex-shrink: 0;
}
.oxds-scope .odm-pgto-meta-item {
    display: flex; flex-direction: column; align-items: flex-end; gap: 1px;
}
.oxds-scope .odm-pgto-meta-lbl { font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--color-text-secondary); }
.oxds-scope .odm-pgto-meta-val { font-size: 11px; font-weight: 600; color: var(--color-text); }

/* RESUMO DE TOTAIS — aba pagamentos */
.oxds-scope .odm-pgto-resumo-card {
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 8px; overflow: hidden;
    flex-shrink: 0;
}
.oxds-scope .odm-pgto-resumo-grid {
    display: grid; grid-template-columns: repeat(3,1fr);
    border-bottom: 1px solid var(--color-border);
}
.oxds-scope .odm-pgto-tot-item {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: 10px 8px; gap: 3px;
    border-right: 1px solid var(--color-border);
    text-align: center;
}
.oxds-scope .odm-pgto-tot-item:nth-child(3n) { border-right: none; }
.oxds-scope .odm-pgto-tot-lbl { font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--color-text-secondary); }
.oxds-scope .odm-pgto-tot-val { font-size: 14px; font-weight: 700; }
.oxds-scope .odm-pgto-tot-val.positivo { color: var(--color-text); }
.oxds-scope .odm-pgto-tot-val.zero { color: var(--color-text-disabled); }

.oxds-scope .odm-pgto-saldo-area {
    display: flex; justify-content: space-between; align-items: stretch;
}
.oxds-scope .odm-pgto-saldo-row {
    display: flex; justify-content: space-between; align-items: center;
    padding: 8px 16px; font-size: 13px; flex: 1;
    border-right: 1px solid var(--color-border);
    gap: 24px;
}
.oxds-scope .odm-pgto-saldo-row:last-child { border-right: none; }
.oxds-scope .odm-pgto-saldo-lbl { color: var(--color-text-secondary); font-size: 12px; }
.oxds-scope .odm-pgto-saldo-val { font-weight: 700; }
.oxds-scope .odm-pgto-troco { background: var(--color-warning-subtle); }
.oxds-scope .odm-pgto-troco .odm-pgto-saldo-lbl { color: var(--color-warning); font-weight: 700; }
.oxds-scope .odm-pgto-troco .odm-pgto-saldo-val { color: var(--color-warning); }

/* ALERT CANCELAMENTO */
.oxds-scope .odm-alert-cancel {
    display: flex; align-items: flex-start; gap: 10px;
    padding: 10px 14px;
    background: var(--color-danger-subtle);
    border-top: 1px solid var(--color-danger-border);
    color: var(--color-danger); font-size: 12px;
}
.oxds-scope .odm-alert-tit { font-weight: 700; margin-bottom: 3px; }
.oxds-scope .odm-alert-msg { opacity: .85; }

/* EMPTY */
.oxds-scope .odm-empty {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 10px; padding: 48px;
    color: var(--color-text-disabled); font-size: 13px;
}
.oxds-scope .odm-empty i { font-size: 32px; }

/* FOOTER */
.oxds-scope .odm-footer {
    display: flex; align-items: center; gap: 8px;
    padding: 8px 16px;
    border-top: 1px solid var(--color-border);
    background: #fff;
    flex-shrink: 0;
    border-radius: 0 0 12px 12px;
}
.oxds-scope .odm-footer-info { font-size: 11px; color: var(--color-text-secondary); }

/* Remove os estilos antigos .od- que não são mais usados */
.oxds-scope .od-backdrop, .oxds-scope .od-panel, .oxds-scope .od-header, .oxds-scope .od-header-left, .oxds-scope .od-header-right, .oxds-scope .od-header-icon, .oxds-scope .od-titulo, .oxds-scope .od-numero, .oxds-scope .od-serie, .oxds-scope .od-subtitulo, .oxds-scope .od-oci-chip, .oxds-scope .od-status-badge, .oxds-scope .od-total-bar, .oxds-scope .od-total-item, .oxds-scope .od-total-label, .oxds-scope .od-total-value, .oxds-scope .od-desconto, .oxds-scope .od-acrescimo, .oxds-scope .od-troco, .oxds-scope .od-tabs, .oxds-scope .od-tab, .oxds-scope .od-tab-count, .oxds-scope .od-body, .oxds-scope .od-loading, .oxds-scope .od-empty, .oxds-scope .od-section, .oxds-scope .od-section-title, .oxds-scope .od-fields-grid, .oxds-scope .od-field, .oxds-scope .od-field-wide, .oxds-scope .od-field-full, .oxds-scope .od-field-label, .oxds-scope .od-field-value, .oxds-scope .od-destaque, .oxds-scope .od-mono, .oxds-scope .od-totais-grid, .oxds-scope .od-totais-item, .oxds-scope .od-totais-label, .oxds-scope .od-totais-value, .oxds-scope .od-totais-total, .oxds-scope .od-alert, .oxds-scope .od-alert-title, .oxds-scope .od-alert-body, .oxds-scope .od-alert-danger, .oxds-scope .od-produtos-table-wrap, .oxds-scope .od-produtos-table, .oxds-scope .od-tr-alt, .oxds-scope .od-th-seq, .oxds-scope .od-th-num, .oxds-scope .od-th-center, .oxds-scope .od-td-seq, .oxds-scope .od-td-num, .oxds-scope .od-td-center, .oxds-scope .od-td-desconto, .oxds-scope .od-td-total, .oxds-scope .od-produto-nome, .oxds-scope .od-produto-obs, .oxds-scope .od-tfoot, .oxds-scope .od-tfoot-label, .oxds-scope .od-td-desconto-total, .oxds-scope .od-td-grand-total, .oxds-scope .od-pgto-lista, .oxds-scope .od-pgto-item, .oxds-scope .od-pgto-icon, .oxds-scope .od-pgto-info, .oxds-scope .od-pgto-forma, .oxds-scope .od-pgto-detalhe, .oxds-scope .od-pgto-valor, .oxds-scope .od-pgto-resumo, .oxds-scope .od-pgto-resumo-row, .oxds-scope .od-pgto-troco, .oxds-scope .od-footer { /* estilos migrados para prefixo odm- */ }

/* ================================================================
   FW-TABS — abas horizontais (não conflita com .nav-item do sidebar)
   ================================================================ */
.oxds-scope .fw-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
    border-bottom: 2px solid var(--color-border);
    margin-bottom: 0;
    padding: 0;
    list-style: none;
}
.oxds-scope .fw-tab {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    cursor: pointer;
    border: none;
    background: transparent;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    border-radius: var(--radius-md) var(--radius-md) 0 0;
    transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
    white-space: nowrap;
    text-decoration: none;
    font-family: inherit;
}
.oxds-scope .fw-tab:hover {
    color: var(--color-text);
    background: var(--color-surface-sunken);
}
.oxds-scope .fw-tab.ativa {
    color: var(--color-primary);
    border-bottom-color: var(--color-primary);
    background: transparent;
}
.oxds-scope .fw-tab i { font-size: 12px; }


/* ── Conciliação NF de Entrada ─────────────────────────── */
.oxds-scope .conciliacao-resumo {
    grid-template-columns: 2fr repeat(4, 1fr);
}
@media (max-width: 900px) {
    .oxds-scope .conciliacao-resumo {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 560px) {
    .oxds-scope .conciliacao-resumo {
        grid-template-columns: 1fr;
    }
}

/* ── Mapa de Reservas (Gantt) ─────────────────────────── */

/* Container com scroll bidirecional e altura limitada à viewport */
.oxds-scope .mapa-gantt-wrap {
    overflow: auto;
    max-height: calc(100vh - 200px);
}

.oxds-scope .mapa-gantt {
    display: grid;
    grid-template-columns: 160px repeat(var(--mapa-cols, 14), minmax(64px, 1fr));
    min-width: max-content;
}
.oxds-scope .mapa-gantt-header {
    position: sticky; top: 0; z-index: 2;
    background: var(--color-surface-sunken);
    border-bottom: 1px solid var(--color-border);
    padding: var(--spacing-2);
    font-size: var(--font-size-xs);
    text-align: center;
}
.oxds-scope .mapa-gantt-linha-fixa {
    position: sticky; left: 0; z-index: 1;
    background: var(--color-surface);
    border-right: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border-subtle);
    padding: var(--spacing-2) var(--spacing-3);
    display: flex; flex-direction: column; justify-content: center;
}
.oxds-scope .mapa-gantt-header.mapa-gantt-linha-fixa { z-index: 3; text-align: left; }
.oxds-scope .mapa-gantt-dia-label { color: var(--color-text-secondary); text-transform: uppercase; }
.oxds-scope .mapa-gantt-dia-numero { font-weight: var(--font-weight-semibold); }
.oxds-scope .mapa-gantt-fds { background: var(--color-surface-sunken); }
.oxds-scope .mapa-gantt-apartamento { min-height: 48px; }
.oxds-scope .mapa-gantt-faixa {
    position: relative;
    display: grid;
    grid-template-columns: repeat(var(--mapa-cols, 14), minmax(64px, 1fr));
    border-bottom: 1px solid var(--color-border-subtle);
    min-height: 48px;
}
.oxds-scope .mapa-gantt-celula { border-right: 1px solid var(--color-border-subtle); }
.oxds-scope .mapa-gantt-barra {
    grid-row: 1;
    margin: 6px 2px;
    padding: 0 8px;
    border-radius: var(--radius-sm);
    color: #fff;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
    display: flex; align-items: center;
    overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(0,0,0,0.15);
}
.oxds-scope .mapa-gantt-barra:hover { filter: brightness(0.92); }
.oxds-scope .mapa-gantt-vazio {
    grid-column: 1 / -1;
    padding: var(--spacing-6);
    text-align: center;
    color: var(--color-text-secondary);
}
.oxds-scope .mapa-gantt-legenda {
    display: flex; flex-wrap: wrap; gap: var(--spacing-4);
    margin-top: var(--spacing-4);
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
}
.oxds-scope .mapa-gantt-legenda-item { display: flex; align-items: center; gap: 6px; }
.oxds-scope .mapa-gantt-legenda-cor {
    width: 12px; height: 12px; border-radius: 3px; display: inline-block;
}

/* ── Mapa de Ocupação Atual ─────────────────────────── */
.oxds-scope .mapa-ocupacao-resumo {
    display: flex; flex-wrap: wrap; gap: var(--spacing-2);
    margin-bottom: var(--spacing-3);
}
.oxds-scope .mapa-ocupacao-resumo-item {
    display: flex; align-items: center; gap: 6px;
    padding: var(--spacing-1) var(--spacing-3);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    font-size: var(--font-size-xs);
}
.oxds-scope .mapa-ocupacao-resumo-item strong { margin-left: 4px; }
.oxds-scope .mapa-ocupacao-resumo-porta { width: 14px; height: 14px; object-fit: contain; }

/* Layout principal: grade de apartamentos à esquerda + previsão em coluna
   lateral fixa à direita (mesmo espírito do Datahotel) — colapsa em 1 coluna
   em telas estreitas. */
.oxds-scope .mapa-ocupacao-layout {
    display: grid;
    grid-template-columns: 1fr 260px;
    gap: var(--spacing-4);
    align-items: start;
}
@media (max-width: 900px) {
    .oxds-scope .mapa-ocupacao-layout { grid-template-columns: 1fr; }
}

.oxds-scope .mapa-ocupacao-secao { margin-bottom: var(--spacing-3); }
.oxds-scope .mapa-ocupacao-secao-titulo {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-2);
}

.oxds-scope .mapa-ocupacao-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 10px;
}
.oxds-scope .mapa-ocupacao-card {
    position: relative;
    border-radius: var(--radius-md);
    border: 1px solid transparent;
    padding: 12px 8px 9px;
    display: flex; flex-direction: column; align-items: center; gap: 6px;
    cursor: default;
    transition: transform .1s, box-shadow .1s;
}
.oxds-scope .mapa-ocupacao-card-rich {
    padding: 0;
    align-items: stretch;
    overflow: hidden;
}
.oxds-scope .mapa-ocupacao-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.oxds-scope .mapa-ocupacao-card-porta { width: 40px; height: auto; object-fit: contain; }
.oxds-scope .mapa-ocupacao-card-numero { font-size: 13px; font-weight: var(--font-weight-semibold); line-height: 1.2; }

/* Overlay de vassoura — pendência de limpeza (governança), independente do
   status de ocupação: pode aparecer sobre um card livre OU ocupado. */
.oxds-scope .mapa-ocupacao-card-vassoura {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 22px;
    height: 22px;
    object-fit: contain;
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, .35));
    cursor: pointer;
}

.oxds-scope .mapa-ocupacao-status-livre { background: var(--color-success-subtle); border-color: var(--color-success-border); cursor: pointer; }
.oxds-scope .mapa-ocupacao-status-ocupado { background: var(--color-danger-subtle);  border-color: var(--color-danger-border); }
.oxds-scope .mapa-ocupacao-status-reservado { background: var(--color-info-subtle);    border-color: var(--color-info-border); }
.oxds-scope .mapa-ocupacao-status-bloqueado { background: var(--color-surface-sunken); border-color: var(--color-border); }
.oxds-scope .mapa-ocupacao-status-limpeza { background: var(--color-warning-subtle, #fff8e1); border-color: var(--color-warning-border, var(--color-warning)); }

.oxds-scope .mapa-ocupacao-previsao { display: flex; flex-direction: column; gap: var(--spacing-3); }
.oxds-scope .mapa-ocupacao-previsao .card-header { padding: var(--spacing-2) var(--spacing-3); }
.oxds-scope .mapa-ocupacao-previsao .card-body { padding: var(--spacing-2) var(--spacing-3); max-height: 220px; overflow-y: auto; }
.oxds-scope .mapa-ocupacao-previsao .card-title { font-size: var(--font-size-sm); }

/* ── Toggle switch estilo iOS (uso geral em formulários) ─── */
.oxds-scope .toggle-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 7px 0;
    cursor: pointer;
    font-size: var(--font-size-sm);
    gap: var(--spacing-3);
    user-select: none;
}
.oxds-scope .toggle-switch {
    position: relative;
    width: 36px;
    height: 20px;
    flex-shrink: 0;
}
.oxds-scope .toggle-switch input {
    opacity: 0;
    inset: 0;
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: 1;
    cursor: pointer;
}
.oxds-scope .toggle-knob {
    position: absolute;
    inset: 0;
    background: var(--color-border-strong, #d1d5db);
    border-radius: 20px;
    transition: background .2s;
    cursor: pointer;
}
.oxds-scope .toggle-knob::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 3px;
    width: 14px;
    height: 14px;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0,0,0,.25);
    transition: transform .2s;
}
.oxds-scope .toggle-switch input:checked + .toggle-knob {
    background: var(--color-primary);
}
.oxds-scope .toggle-switch input:checked + .toggle-knob::after {
    transform: translateX(16px);
}

/* ================================================================
   MEU CONTADOR — modal de permissões
   ================================================================ */
.oxds-scope .mc-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(10, 10, 12, 0.55);
    backdrop-filter: blur(2px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: var(--spacing-4);
    animation: mcFadeIn .15s ease;
}
@keyframes mcFadeIn { from { opacity: 0; } to { opacity: 1; } }

.oxds-scope .mc-modal {
    width: 100%;
    max-width: 460px;
    background: var(--color-surface);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    animation: mcPopIn .18s cubic-bezier(.2,.9,.3,1.2);
}
@keyframes mcPopIn {
    from { opacity: 0; transform: translateY(8px) scale(.97); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}

.oxds-scope .mc-modal-header {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: var(--spacing-5) var(--spacing-5);
    background: linear-gradient(135deg, var(--color-primary) 0%, #a90f17 100%);
    position: relative;
}

.oxds-scope .mc-modal-header-icon {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    border-radius: var(--radius-md);
    background: rgba(255,255,255,0.16);
    border: 1px solid rgba(255,255,255,0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 18px;
}

.oxds-scope .mc-modal-header-text { min-width: 0; flex: 1; }

.oxds-scope .mc-modal-title {
    color: #fff;
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
    line-height: 1.25;
}

.oxds-scope .mc-modal-subtitle {
    color: rgba(255,255,255,0.85);
    font-size: var(--font-size-sm);
    margin-top: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.oxds-scope .mc-modal-close {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: none;
    background: rgba(255,255,255,0.14);
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    transition: background .15s;
}
.oxds-scope .mc-modal-close:hover:not(:disabled) { background: rgba(255,255,255,0.28); }
.oxds-scope .mc-modal-close:disabled { opacity: .5; cursor: not-allowed; }

.oxds-scope .mc-modal-body {
    padding: var(--spacing-5);
}

.oxds-scope .mc-modal-lead {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-4);
}

.oxds-scope .mc-perm-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.oxds-scope .mc-perm-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: border-color .15s, background .15s;
}
.oxds-scope .mc-perm-item:hover { border-color: var(--color-primary); background: var(--color-primary-subtle); }

.oxds-scope .mc-perm-item:has(input:checked) {
    border-color: var(--color-primary);
    background: var(--color-primary-subtle);
}

.oxds-scope .mc-perm-item--disabled {
    cursor: default;
    opacity: .55;
}
.oxds-scope .mc-perm-item--disabled:hover { border-color: var(--color-border); background: none; }

.oxds-scope .mc-perm-icon {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    border-radius: var(--radius-md);
    background: var(--color-primary-subtle);
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
}

.oxds-scope .mc-perm-text { min-width: 0; flex: 1; }

.oxds-scope .mc-perm-title {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    display: flex;
    align-items: center;
    gap: 8px;
}

.oxds-scope .mc-perm-desc {
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    margin-top: 1px;
}

.oxds-scope .mc-modal-footer {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    padding: var(--spacing-4) var(--spacing-5);
    border-top: 1px solid var(--color-border);
    background: var(--color-surface-sunken);
}

/* ================================================================
   LISTA PESSOAS — KPI cards, avatar, painel lateral
   ================================================================ */
.oxds-scope .lp-kpi-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 12px 14px;
    display: flex;
    align-items: center;
    gap: 12px;
}
.oxds-scope .lp-kpi-icon {
    width: 38px; height: 38px;
    border-radius: var(--radius-md);
    display: flex; align-items: center; justify-content: center;
    font-size: 15px; flex-shrink: 0;
}
.oxds-scope .lp-kpi-valor {
    font-size: 22px; font-weight: 700; line-height: 1.1;
    color: var(--color-text);
}
.oxds-scope .lp-kpi-label {
    font-size: var(--font-size-xs); color: var(--color-text-secondary);
    font-weight: 500; margin-top: 1px;
}
.oxds-scope .lp-kpi-sub {
    font-size: 11px; color: var(--color-text-secondary); margin-top: 2px;
}
.oxds-scope .lp-kpi-skeleton {
    height: 20px; border-radius: var(--radius-sm);
    background: linear-gradient(90deg, var(--color-border) 25%, var(--color-surface) 50%, var(--color-border) 75%);
    background-size: 200% 100%;
    animation: lp-pulse 1.4s infinite;
    width: 60px; margin-bottom: 4px;
}
@keyframes lp-pulse {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.oxds-scope .lp-avatar {
    width: 34px; height: 34px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 13px; font-weight: 700; flex-shrink: 0;
    overflow: hidden;
}
.oxds-scope .lp-avatar img {
    width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block;
}

/* Itens do painel de incompletos */
.oxds-scope .lp-incompleto-item {
    display: flex; align-items: center; justify-content: space-between;
    width: 100%; padding: 7px 16px;
    background: transparent; border: none; cursor: pointer;
    transition: background 0.12s;
    text-align: left;
}
.oxds-scope .lp-incompleto-item:hover { background: var(--color-surface-hover, rgba(0,0,0,.04)); }
.oxds-scope .lp-incompleto-ativo { background: var(--color-primary-subtle, #fff5f5) !important; }
.oxds-scope .lp-incompleto-badge {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 22px; height: 22px; border-radius: 99px;
    font-size: 11px; font-weight: 700; padding: 0 6px;
    flex-shrink: 0;
}

/* Ações rápidas */
.oxds-scope .lp-acao-item {
    display: flex; align-items: center; gap: 10px;
    width: 100%; padding: 8px 16px;
    background: transparent; border: none; cursor: pointer;
    font-size: var(--font-size-sm); color: var(--color-text);
    transition: background 0.12s; text-align: left;
}
.oxds-scope .lp-acao-item:hover { background: var(--color-surface-hover, rgba(0,0,0,.04)); }

/* Dropdown do botão Nova pessoa */
.oxds-scope .lp-dropdown-item {
    display: flex; align-items: center; gap: 10px;
    width: 100%; padding: 8px 16px;
    background: transparent; border: none; cursor: pointer;
    font-size: var(--font-size-sm); color: var(--color-text);
    transition: background 0.12s; text-align: left;
}
.oxds-scope .lp-dropdown-item:hover { background: var(--color-surface-hover, rgba(0,0,0,.04)); }

/* RESPONSIVO MOBILE */

/* ================================================================
   ODM — REDESIGN MODAL DE DETALHES DE VENDA
   ================================================================ */

/* HEADER */
.oxds-scope .odm-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 14px 16px;
    background: #fff;
    border-bottom: 1px solid var(--color-border);
    gap: 12px; flex-shrink: 0;
    border-radius: 12px 12px 0 0;
}
.oxds-scope .odm-header-left { display: flex; align-items: center; gap: 12px; overflow: hidden; min-width: 0; }
.oxds-scope .odm-header-right { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.oxds-scope .odm-header-icon {
    width: 42px; height: 42px; border-radius: 10px;
    background: var(--color-danger-subtle); color: var(--color-danger);
    display: flex; align-items: center; justify-content: center;
    font-size: 18px; flex-shrink: 0;
}
.oxds-scope .odm-header-info { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.oxds-scope .odm-header-titulo { font-size: 20px; font-weight: 700; color: var(--color-text); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.oxds-scope .odm-header-num { font-weight: 800; color: var(--color-text); }
.oxds-scope .odm-header-sub { font-size: 12px; color: var(--color-danger); font-weight: 500; display: flex; align-items: center; gap: 6px; }
.oxds-scope .odm-header-sep { color: var(--color-border); }
.oxds-scope .odm-header-total {
    display: flex; flex-direction: column; align-items: flex-end;
    background: var(--color-danger); color: #fff;
    padding: 8px 16px; border-radius: 8px;
    min-width: 150px;
}
.oxds-scope .odm-header-total-lbl { font-size: 10px; font-weight: 700; letter-spacing: .08em; opacity: .85; }
.oxds-scope .odm-header-total-val { font-size: 22px; font-weight: 800; letter-spacing: -.02em; }
.oxds-scope .odm-btn-more {
    width: 28px; height: 28px; border-radius: 6px; background: none; border: none;
    cursor: pointer; color: var(--color-text-secondary); font-size: 14px;
    display: flex; align-items: center; justify-content: center;
    transition: background .15s;
}
.oxds-scope .odm-btn-more:hover { background: var(--color-surface-hover); }

/* CARDS DE RESUMO (5 colunas) */
.oxds-scope .odm-resumo-cards {
    display: flex; gap: 0;
    background: #fff;
    border-bottom: 1px solid var(--color-border);
    flex-shrink: 0;
    flex-wrap: nowrap;
    overflow-x: auto;
}
.oxds-scope .odm-rc {
    display: flex; align-items: flex-start; gap: 10px;
    padding: 12px 16px;
    border-right: 1px solid var(--color-border);
    flex: 1; min-width: 130px;
}
.oxds-scope .odm-rc:last-child { border-right: none; }
.oxds-scope .odm-rc-icon {
    width: 36px; height: 36px; border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0; font-size: 14px;
}
.oxds-scope .odm-rc-body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.oxds-scope .odm-rc-lbl { font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--color-text-secondary); }
.oxds-scope .odm-rc-val { font-size: 13px; font-weight: 600; color: var(--color-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 160px; }
.oxds-scope .odm-rc-sub { font-size: 11px; color: var(--color-text-secondary); }
.oxds-scope .odm-rc-badge {
    display: inline-flex; font-size: 10px; font-weight: 700;
    padding: 1px 7px; border-radius: 99px;
    background: #f1f5f9; color: #475569;
    align-self: flex-start; margin-top: 2px;
}

/* SECOES */
.oxds-scope .odm-sec {
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
}
.oxds-scope .odm-sec-head {
    display: flex; align-items: center; gap: 8px;
    padding: 9px 14px;
    font-size: 12px; font-weight: 700;
    text-transform: uppercase; letter-spacing: .05em;
    color: var(--color-text);
    background: var(--color-surface);
    border-bottom: 1px solid var(--color-border);
}
.oxds-scope .odm-sec-head-cancel { background: #fff5f5; color: #dc2626; border-bottom-color: #fecaca; }
.oxds-scope .odm-sec-cancel { border-color: #fecaca; }
.oxds-scope .odm-sec-body { padding: 12px 14px; }

/* 2 colunas */
.oxds-scope .odm-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }

/* Linhas de campo */
.oxds-scope .odm-fl-row { display: flex; flex-wrap: wrap; gap: 12px 20px; margin-bottom: 8px; }
.oxds-scope .odm-fl-row:last-child { margin-bottom: 0; }
.oxds-scope .odm-field { display: flex; flex-direction: column; gap: 2px; min-width: 120px; }

/* Financeiro list */
.oxds-scope .odm-fin-row {
    display: flex; justify-content: space-between; align-items: center;
    padding: 6px 0; border-bottom: 1px solid var(--color-border-subtle, #f1f5f9);
    font-size: 13px;
}
.oxds-scope .odm-fin-row:last-child { border-bottom: none; }
.oxds-scope .odm-fin-total {
    padding-top: 10px; margin-top: 4px;
    border-top: 2px solid var(--color-border);
    border-bottom: none;
    font-weight: 700;
}

/* Grid fiscal */
.oxds-scope .odm-fiscal-grid {
    display: grid; grid-template-columns: repeat(5, 1fr);
    gap: 8px 12px;
}
.oxds-scope .odm-fg { display: flex; flex-direction: column; gap: 2px; }
.oxds-scope .odm-fg-full { grid-column: span 2; }

/* BARRA DE TOTAIS RAPIDOS */
.oxds-scope .odm-totais-bar {
    display: flex; gap: 0;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
    flex-shrink: 0;
}
.oxds-scope .odm-tot-item {
    display: flex; align-items: center; gap: 10px;
    padding: 10px 14px;
    border-right: 1px solid var(--color-border);
    flex: 1;
}
.oxds-scope .odm-tot-item:last-child { border-right: none; }
.oxds-scope .odm-tot-item-total { background: #f8f9fa; }
.oxds-scope .odm-tot-lbl { font-size: 10px; color: var(--color-text-secondary); font-weight: 500; }
.oxds-scope .odm-tot-val { font-size: 13px; font-weight: 600; color: var(--color-text); }
.oxds-scope .odm-tot-val-total { font-size: 15px; font-weight: 700; color: var(--color-danger); }

/* INFORMACOES AVANCADAS (accordion) */
.oxds-scope .odm-sec-adv .odm-adv-toggle {
    display: flex; align-items: center; gap: 10px; width: 100%;
    padding: 12px 14px; background: none; border: none; cursor: pointer;
    font-size: 13px; font-weight: 600; color: var(--color-primary);
    text-align: left;
}
.oxds-scope .odm-adv-sub { font-size: 12px; font-weight: 400; color: var(--color-text-secondary); }
.oxds-scope .odm-adv-chev { margin-left: auto; font-size: 11px; color: var(--color-text-secondary); transition: transform .2s; }
.oxds-scope .odm-adv-body { display: none; padding: 0 14px 12px; }
.oxds-scope .odm-adv-body.open { display: block; }

/* TABELA DE ITENS */
.oxds-scope .odm-itens-wrap {
    border: 1px solid var(--color-border);
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    overflow: auto;
}
.oxds-scope .odm-itens-tbl {
    width: 100%; border-collapse: collapse; font-size: 12px;
}
.oxds-scope .odm-itens-tbl th {
    background: var(--color-surface); padding: 8px 10px;
    font-size: 11px; font-weight: 600; text-transform: uppercase;
    letter-spacing: .04em; color: var(--color-text-secondary);
    border-bottom: 1px solid var(--color-border);
    white-space: nowrap; text-align: left;
}
.oxds-scope .odm-itens-tbl td { padding: 8px 10px; border-bottom: 1px solid var(--color-border); vertical-align: middle; }
.oxds-scope .odm-itens-tbl tbody tr:last-child td { border-bottom: none; }
.oxds-scope .odm-item-row { cursor: pointer; transition: background .1s; }
.oxds-scope .odm-item-row:hover { background: var(--color-surface); }
.oxds-scope .odm-item-row--sel { background: #fff7f7 !important; }
.oxds-scope .odm-item-thumb {
    width: 36px; height: 36px; border-radius: 6px; overflow: hidden;
    display: flex; align-items: center; justify-content: center;
    background: var(--color-surface); border: 1px solid var(--color-border);
    flex-shrink: 0;
}
.oxds-scope .odm-item-thumb img { width: 100%; height: 100%; object-fit: cover; }
.oxds-scope .odm-prod-nome { font-weight: 600; font-size: 13px; }
.oxds-scope .odm-prod-obs { font-size: 11px; color: var(--color-text-secondary); margin-top: 2px; }
.oxds-scope .odm-row-menu-btn {
    width: 26px; height: 26px; border-radius: 4px;
    background: none; border: 1px solid var(--color-border);
    cursor: pointer; color: var(--color-text-secondary); font-size: 12px;
    display: flex; align-items: center; justify-content: center;
    transition: background .1s;
}
.oxds-scope .odm-row-menu-btn:hover { background: var(--color-surface); }
.oxds-scope .odm-itens-footer {
    display: flex; justify-content: flex-end; align-items: center;
    gap: 16px; padding: 8px 10px;
    font-size: 12px; font-weight: 600;
    background: var(--color-surface);
    border-top: 1px solid var(--color-border);
}
.oxds-scope .odm-itens-footer span:first-child { margin-right: auto; color: var(--color-text-secondary); font-weight: 400; }

/* PAINEL DE DETALHE DO ITEM */
.oxds-scope .odm-item-detalhe-panel {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: #fff;
    overflow: hidden;
    margin-top: 0;
    flex-shrink: 0;
}
.oxds-scope .odm-idp-head {
    display: flex; align-items: center; gap: 8px;
    padding: 10px 14px;
    background: var(--color-surface);
    border-bottom: 1px solid var(--color-border);
    font-size: 12px; font-weight: 600;
}
.oxds-scope .odm-close-sm {
    margin-left: auto; width: 24px; height: 24px; border-radius: 4px;
    background: none; border: none; cursor: pointer;
    color: var(--color-text-secondary); font-size: 12px;
    display: flex; align-items: center; justify-content: center;
    transition: background .15s;
}
.oxds-scope .odm-close-sm:hover { background: var(--color-danger-subtle); color: var(--color-danger); }
.oxds-scope .odm-idp-tabs {
    display: flex; gap: 0;
    border-bottom: 1px solid var(--color-border);
    padding: 0 14px;
}
.oxds-scope .odm-idp-tab {
    padding: 7px 14px; font-size: 12px; font-weight: 500;
    background: none; border: none; border-bottom: 2px solid transparent;
    margin-bottom: -1px; cursor: pointer; color: var(--color-text-secondary);
    transition: color .12s;
}
.oxds-scope .odm-idp-tab:hover { color: var(--color-text); }
.oxds-scope .odm-idp-tab.active { color: var(--color-danger); border-bottom-color: var(--color-danger); font-weight: 600; }
.oxds-scope .odm-idp-body { padding: 12px 14px; }
.oxds-scope .odm-idp-cols { display: flex; gap: 16px 20px; flex-wrap: wrap; }
.oxds-scope .odm-idp-col { display: flex; flex-direction: column; gap: 8px; min-width: 110px; flex: 1; }
.oxds-scope .odm-idp-col-title { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 2px; }
.oxds-scope .odm-idp-field { display: flex; flex-direction: column; gap: 2px; }
.oxds-scope .odm-idp-toggle {
    display: flex; align-items: center; gap: 8px; width: 100%;
    padding: 9px 14px; background: none; border: none; border-top: 1px solid var(--color-border);
    cursor: pointer; font-size: 12px; color: var(--color-primary); font-weight: 500; text-align: left;
}

/* PAGAMENTOS */
.oxds-scope .odm-pgto-resumo-grid {
    display: flex; gap: 0; flex-wrap: wrap;
}
.oxds-scope .odm-pgto-cat {
    display: flex; flex-direction: column; gap: 4px; align-items: center;
    padding: 10px 16px; border-right: 1px solid var(--color-border); flex: 1; min-width: 80px;
}
.oxds-scope .odm-pgto-cat:last-child { border-right: none; }
.oxds-scope .odm-pgto-cat-total { background: #f0fdf4; }
.oxds-scope .odm-pgto-cat-lbl { font-size: 10px; font-weight: 700; color: var(--color-text-secondary); text-transform: uppercase; letter-spacing: .05em; }
.oxds-scope .odm-pgto-cat-val { font-size: 13px; font-weight: 600; }
.oxds-scope .odm-pgto-cat-val.positivo { color: #16a34a; }
.oxds-scope .odm-pgto-cat-val.zero { color: var(--color-text-secondary); }

.oxds-scope .odm-pgto-tbl { width: 100%; border-collapse: collapse; font-size: 12px; }
.oxds-scope .odm-pgto-tbl th {
    background: var(--color-surface); padding: 8px 12px;
    font-size: 11px; font-weight: 600; text-transform: uppercase;
    letter-spacing: .04em; color: var(--color-text-secondary);
    border-bottom: 1px solid var(--color-border); text-align: left;
}
.oxds-scope .odm-pgto-tbl td { padding: 10px 12px; border-bottom: 1px solid var(--color-border); }
.oxds-scope .odm-pgto-tbl tfoot td { border-bottom: none; border-top: 1px solid var(--color-border); }
.oxds-scope .odm-pgto-ico {
    width: 28px; height: 28px; border-radius: 6px;
    background: var(--color-danger-subtle); color: var(--color-danger);
    display: flex; align-items: center; justify-content: center; font-size: 12px;
    flex-shrink: 0;
}
.oxds-scope .odm-troco-card {
    display: flex; align-items: center; gap: 10px;
    padding: 10px 14px; border-radius: var(--radius-md);
    background: #fefce8; border: 1px solid #fef08a;
    color: #854d0e; font-size: 13px; font-weight: 600;
}
.oxds-scope .odm-troco-val { margin-left: auto; font-size: 16px; font-weight: 700; }

/* CAMPOS GENERICOS */
.oxds-scope .odm-fl { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--color-text-secondary); }
.oxds-scope .odm-fv { font-size: 13px; font-weight: 500; color: var(--color-text); }
.oxds-scope .odm-bold { font-weight: 700; }
.oxds-scope .odm-mono { font-family: var(--font-family-mono); }
.oxds-scope .odm-muted { color: var(--color-text-secondary); }
.oxds-scope .odm-tc { text-align: center; }
.oxds-scope .odm-tr { text-align: right; }
.oxds-scope .odm-seq { font-size: 11px; font-weight: 600; }
.oxds-scope .odm-td-prod { max-width: 260px; }
.oxds-scope .odm-empty {
    display: flex; align-items: center; justify-content: center;
    gap: 8px; padding: 32px; color: var(--color-text-secondary); font-size: 13px;
}

/* FOOTER */
.oxds-scope .odm-footer {
    display: flex; align-items: center; gap: 10px;
    padding: 10px 16px;
    background: #fff;
    border-top: 1px solid var(--color-border);
    flex-shrink: 0;
    border-radius: 0 0 12px 12px;
}
.oxds-scope .odm-footer-info { font-size: 11px; color: var(--color-text-secondary); }

/* DARK MODE */
@media (prefers-color-scheme: dark) {
    .oxds-scope .odm-header, .oxds-scope .odm-resumo-cards, .oxds-scope .odm-footer { background: var(--color-surface); }
    .oxds-scope .odm-sec { background: var(--color-bg); }
    .oxds-scope .odm-sec-head { background: var(--color-surface); }
    .oxds-scope .odm-item-row--sel { background: rgba(220,38,38,.08) !important; }
    .oxds-scope .odm-totais-bar { background: var(--color-surface); }
    .oxds-scope .odm-tot-item-total { background: var(--color-bg); }
    .oxds-scope .odm-item-detalhe-panel { background: var(--color-bg); }
    .oxds-scope .odm-idp-head { background: var(--color-surface); }
}
.oxds-scope :root[data-theme="dark"] .odm-header, .oxds-scope :root[data-theme="dark"] .odm-resumo-cards, .oxds-scope :root[data-theme="dark"] .odm-footer { background: var(--color-surface); }
.oxds-scope :root[data-theme="dark"] .odm-sec { background: var(--color-bg); }
.oxds-scope :root[data-theme="dark"] .odm-sec-head { background: var(--color-surface); }
.oxds-scope :root[data-theme="dark"] .odm-item-row--sel { background: rgba(220,38,38,.1) !important; }
.oxds-scope :root[data-theme="dark"] .odm-totais-bar, .oxds-scope :root[data-theme="dark"] .odm-item-detalhe-panel { background: var(--color-surface); }

/* Listagem de regras fiscais: codigos e percentuais em colunas distintas. */
.oxds-scope .regras-fiscais-tabela { table-layout: fixed; min-width: 1100px; font-size: var(--font-size-xs); }
.oxds-scope .regras-fiscais-tabela th, .oxds-scope .regras-fiscais-tabela td { padding: var(--spacing-2) var(--spacing-1); }
.oxds-scope .regras-fiscais-tabela th { vertical-align: middle; text-align: center; letter-spacing: 0; }
.oxds-scope .regras-fiscais-tabela th:first-child[rowspan] { text-align: left; }
.oxds-scope .regras-fiscais-tabela .rf-grupo-tributo { border-bottom: 1px solid var(--color-border); }
.oxds-scope .regras-fiscais-tabela .rf-col-uf { width: 44px; }
.oxds-scope .regras-fiscais-tabela .rf-col-cst { width: 44px; }
.oxds-scope .regras-fiscais-tabela .rf-col-cst-sn { width: 60px; }
.oxds-scope .regras-fiscais-tabela .rf-col-aliquota { width: 56px; }
.oxds-scope .regras-fiscais-tabela .rf-col-vigencia { width: 132px; }
.oxds-scope .regras-fiscais-tabela .rf-col-acoes { width: 72px; }
.oxds-scope .regras-fiscais-tabela .rf-nome-regra { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.oxds-scope .regras-fiscais-tabela .rf-codigo { text-align: center; font-variant-numeric: tabular-nums; }
.oxds-scope .regras-fiscais-tabela .rf-fim-tributo { border-right: 1px solid var(--color-border); }
.oxds-scope .regras-fiscais-tabela .rf-aliquota { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.oxds-scope .regras-fiscais-tabela .rf-vigencia { white-space: normal; }
.oxds-scope .regras-fiscais-tabela .row-actions { gap: var(--spacing-1); }

