/* ============================================================
   ATLAS PDV - Temas
   ------------------------------------------------------------
   Fallbacks de CSS variables por tema predefinido. As cores
   reais são injetadas inline pelo PHP (theme_css_vars()) com
   base nas configurações do administrador. Este arquivo define
   os padrões e utilitários de tema (ex.: modo escuro).
   ============================================================ */

/* ---------- Tema Claro (padrão) ---------- */
:root {
  --color-primary: #0d6efd;
  --color-secondary: #1e293b;
  --color-background: #f4f6f8;
  --color-text: #1f2937;
  --color-success: #198754;
  --color-error: #dc3545;
  --color-warning: #f39c12;

  /* Variantes derivadas (opacidades) */
  --color-primary-soft: rgba(13, 110, 253, .1);
  --color-success-soft: rgba(25, 135, 84, .12);
  --color-error-soft: rgba(220, 53, 69, .1);
  --color-shadow: rgba(0, 0, 0, .08);
}

/* ---------- Tema Escuro (fallback de classe) ----------
   Aplicado automaticamente quando o tema salvo é "dark".
   As cores inline do PHP têm precedência; esta classe
   apenas marca o body para os utilitários do style.css. */
body.theme-dark { color-scheme: dark; }
body.theme-light { color-scheme: light; }

/* Detecta automaticamente preferência do sistema APENAS
   quando nenhum tema foi salvo (o PHP injeta as variáveis
   inline com os valores salvos, que têm precedência). */
@media (prefers-color-scheme: dark) {
  body.theme-auto:not(.login-page) {
    --color-background: #1a2233;
    --color-text: #e5e7eb;
  }
}

/* ---------- Contraste para acessibilidade ----------
   Texto sobre botões coloridos sempre branco/negro
   conforme luminância (definido manualmente por tema
   claro, garantindo contraste AA). */
.btn-primary { color: #fff; }
.btn-primary:hover { color: #fff; }

/* ---------- Barra de rolagem estilizada ---------- */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: rgba(125, 125, 125, .35);
  border-radius: 6px;
}
::-webkit-scrollbar-thumb:hover { background: rgba(125, 125, 125, .55); }

/* ---------- Redução de movimento (acessibilidade) ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* ---------- Impressão (fallback genérico) ----------
   O recibo térmico usa print.css dedicado; aqui apenas
   garantimos que menus e controles não vazem na impressão
   de relatórios via Ctrl+P. */
@media print {
  .sidebar, .app-header, .app-footer, .filter-bar,
  .page-header-actions, .form-actions, .btn, .toast,
  #toast-container, .no-print {
    display: none !important;
  }
  .app-shell, .app-main { display: block; }
  .app-content { padding: 0; max-width: 100%; }
  .card { box-shadow: none; border: none; }
  body { background: #fff !important; color: #000 !important; }
  .table th { color: #000; }
}
