/* ============================================
   UNIFIED COMPONENTS - P8W Platform
   Sistema Global Unificado de Componentes

   IMPORTANTE:
   - Prefixo unico: ui-* para todos os componentes
   - Variaveis: --color-* (sem --token-color-*)
   - Dark mode: .dark (sem html.dark)
   - Sem duplicacoes

   Data: 2026-02-03
   ============================================ */

/* ============================================
   CSS VARIABLES - Complementares
   Paletas de cores canônicas em design-tokens.css
   Sizing/radius canônicos em design-tokens.css
   ============================================ */
:root {
    /* Spacing - Extensões além do que design-tokens.css define.
       --space-1 a --space-8 são canônicos em design-tokens.css.
       Aqui ficam apenas os valores extras. */
    --space-0: 0;
    --space-10: 2.5rem;   /* 40px */
    --space-12: 3rem;     /* 48px */
    --space-16: 4rem;     /* 64px */

    /* Gaps padronizados (únicos deste arquivo) */
    --gap-xs: 0.25rem;
    --gap-sm: 0.5rem;
    --gap-md: 1rem;
    --gap-lg: 1.5rem;
    --gap-xl: 2rem;

    /* Aliases para plugins (compatibilidade) — usados por plugins SMM, Push,
       Social-Proof, Uptime, SEO, Audit e views públicas */
    --bg-primary: var(--color-white);
    --bg-secondary: #f9fafb;
    --bg-tertiary: var(--color-gray-100);
    --text-primary: #111827;
    --text-secondary: #6b7280;
    --text-muted: #9ca3af;
    --border-primary: var(--color-gray-200);
    --border-secondary: var(--color-gray-100);
    --spacing-xs: 0.25rem;
    --spacing-sm: 0.5rem;
    --spacing-md: 1rem;
    --spacing-lg: 1.5rem;
    --spacing-xl: 2rem;
    --spacing-3xl: 3rem;
}

/* ============================================
   DARK MODE - Aliases para plugins
   Variáveis semânticas canônicas em design-tokens.css e ui-system.css
   ============================================ */
.dark {
    /* Aliases para plugins (compatibilidade - dark mode) */
    --bg-primary: #1f2937;
    --bg-secondary: #111827;
    --bg-tertiary: var(--color-gray-700);
    --text-primary: #f9fafb;
    --text-secondary: #d1d5db;
    --text-muted: #9ca3af;
    --border-primary: var(--color-gray-700);
    --border-secondary: var(--color-gray-600);
}

/* .dark body - definição canônica em design-tokens.css */

/* ============================================
   BUTTONS - .ui-btn-*
   Todos os botões têm transições consistentes
   ============================================ */
.ui-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    height: var(--button-height-md);
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.25rem;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    color: var(--color-gray-700);
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    box-sizing: border-box;
    transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast);
}
.dark .ui-btn {
    color: var(--color-gray-200);
}
.ui-btn i,
.ui-btn svg {
    font-size: 0.875rem;
    width: 0.875rem;
    height: 0.875rem;
    flex-shrink: 0;
}

.ui-btn:disabled,
.ui-btn.disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

/* Active state — feedback tátil (§44 microinterações) */
.ui-btn:active:not(:disabled) {
    transform: scale(0.97);
    opacity: 0.9;
}

/* Loading state (§45 padrão de estados) — usado via P8W.UI.setButtonLoading() */
.ui-btn-loading {
    position: relative;
    pointer-events: none;
    opacity: 0.85;
    cursor: wait;
}
@keyframes ui-spin {
    to { transform: rotate(360deg); }
}

/* Spinner — definição canônica */
.ui-spinner {
    width: 1.5rem;
    height: 1.5rem;
    border: 2px solid var(--color-gray-200);
    border-top-color: var(--color-primary-600);
    border-radius: var(--radius-full);
    animation: ui-spin 0.6s linear infinite;
}

/* Primary - Azul sólido */
.ui-btn-primary {
    background-color: var(--color-primary-600);
    color: var(--color-white);
    border-color: var(--color-primary-600);
}
.ui-btn-primary:hover:not(:disabled) {
    background-color: var(--color-primary-700);
    border-color: var(--color-primary-700);
    box-shadow: 0 4px 12px rgba(var(--color-primary-rgb), 0.3);
}
.ui-btn-primary:focus {
    outline: none;
    box-shadow: 0 0 0 var(--focus-ring-width) rgba(var(--color-primary-rgb), 0.4);
}
.dark .ui-btn-primary {
    background-color: var(--color-primary-500);
    border-color: var(--color-primary-500);
    color: var(--color-white);
}
.dark .ui-btn-primary:hover:not(:disabled) {
    background-color: var(--color-primary-600);
    border-color: var(--color-primary-600);
    color: var(--color-white);
    box-shadow: 0 4px 12px rgba(var(--color-primary-rgb), 0.3);
}

/* Secondary - Ghost/Outline neutro */
.ui-btn-secondary {
    background-color: transparent;
    color: var(--color-text-primary, var(--color-gray-700));
    border-color: var(--color-border, var(--color-gray-300));
}
.ui-btn-secondary:hover:not(:disabled) {
    background-color: var(--color-bg-hover, var(--color-gray-100));
    border-color: var(--color-gray-400);
}
.ui-btn-secondary:focus {
    outline: none;
    box-shadow: 0 0 0 var(--focus-ring-width) rgba(107, 114, 128, 0.3);
}
.dark .ui-btn-secondary {
    background-color: transparent;
    color: var(--color-gray-200);
    border-color: var(--color-gray-600);
}
.dark .ui-btn-secondary:hover:not(:disabled) {
    background-color: var(--color-bg-hover, var(--color-gray-700));
    border-color: var(--color-gray-500);
}

/* Secondary Active State — toggle button groups */
.ui-btn-secondary.active {
    background-color: var(--color-primary-500);
    color: var(--color-white);
    border-color: var(--color-primary-500);
}
.ui-btn-secondary.active:hover:not(:disabled) {
    background-color: var(--color-primary-600);
    border-color: var(--color-primary-600);
}
.dark .ui-btn-secondary.active {
    background-color: var(--color-primary-500);
    color: var(--color-white);
    border-color: var(--color-primary-500);
}
.dark .ui-btn-secondary.active:hover:not(:disabled) {
    background-color: var(--color-primary-400);
    border-color: var(--color-primary-400);
}

/* Success - Verde */
.ui-btn-success {
    background-color: var(--color-success-600);
    color: var(--color-white);
    border-color: var(--color-success-600);
}
.ui-btn-success:hover:not(:disabled) {
    background-color: var(--color-success-700);
    border-color: var(--color-success-700);
    box-shadow: 0 4px 12px rgba(22, 163, 74, 0.3);
}
.ui-btn-success:focus {
    outline: none;
    box-shadow: 0 0 0 var(--focus-ring-width) rgba(34, 197, 94, 0.4);
}
.dark .ui-btn-success {
    background-color: var(--color-success-500);
    border-color: var(--color-success-500);
    color: var(--color-white);
}
.dark .ui-btn-success:hover:not(:disabled) {
    background-color: var(--color-success-600);
    border-color: var(--color-success-600);
    color: var(--color-white);
}

/* Warning - Amarelo/Laranja */
.ui-btn-warning {
    background-color: var(--color-warning-500);
    color: var(--color-white);
    border-color: var(--color-warning-500);
}
.ui-btn-warning:hover:not(:disabled) {
    background-color: var(--color-warning-600);
    border-color: var(--color-warning-600);
    box-shadow: 0 4px 12px rgba(217, 119, 6, 0.3);
}
.ui-btn-warning:focus {
    outline: none;
    box-shadow: 0 0 0 var(--focus-ring-width) rgba(245, 158, 11, 0.4);
}
.dark .ui-btn-warning {
    background-color: var(--color-warning-500);
    border-color: var(--color-warning-500);
    color: var(--color-white);
}
.dark .ui-btn-warning:hover:not(:disabled) {
    background-color: var(--color-warning-600);
    border-color: var(--color-warning-600);
    color: var(--color-white);
}

/* Danger - Vermelho */
.ui-btn-danger {
    background-color: var(--color-danger-600);
    color: var(--color-white);
    border-color: var(--color-danger-600);
}
.ui-btn-danger:hover:not(:disabled) {
    background-color: var(--color-danger-700);
    border-color: var(--color-danger-700);
    box-shadow: 0 4px 12px rgba(220, 38, 38, 0.3);
}
.ui-btn-danger:focus {
    outline: none;
    box-shadow: 0 0 0 var(--focus-ring-width) rgba(239, 68, 68, 0.4);
}
.dark .ui-btn-danger {
    background-color: var(--color-danger-500);
    border-color: var(--color-danger-500);
    color: var(--color-white);
}
.dark .ui-btn-danger:hover:not(:disabled) {
    background-color: var(--color-danger-600);
    border-color: var(--color-danger-600);
    color: var(--color-white);
}

/* Info - Ciano */
.ui-btn-info {
    background-color: var(--color-info-600);
    color: var(--color-white);
    border-color: var(--color-info-600);
}
.ui-btn-info:hover:not(:disabled) {
    background-color: var(--color-info-700);
    border-color: var(--color-info-700);
    box-shadow: 0 4px 12px rgba(8, 145, 178, 0.3);
}
.ui-btn-info:focus {
    outline: none;
    box-shadow: 0 0 0 var(--focus-ring-width) rgba(6, 182, 212, 0.4);
}
.dark .ui-btn-info {
    background-color: var(--color-info-500);
    border-color: var(--color-info-500);
    color: var(--color-white);
}
.dark .ui-btn-info:hover:not(:disabled) {
    background-color: var(--color-info-600);
    border-color: var(--color-info-600);
    color: var(--color-white);
}

/* Outline - Borda apenas */
.ui-btn-outline {
    background-color: transparent;
    color: var(--color-primary-600);
    border-color: var(--color-primary-600);
}
.ui-btn-outline:hover:not(:disabled) {
    background-color: var(--color-primary-600);
    color: var(--color-white);
    box-shadow: 0 4px 12px rgba(var(--color-primary-rgb), 0.25);
}
.ui-btn-outline:focus {
    outline: none;
    box-shadow: 0 0 0 var(--focus-ring-width) rgba(var(--color-primary-rgb), 0.3);
}
.dark .ui-btn-outline {
    color: var(--color-primary-400);
    border-color: var(--color-primary-400);
}
.dark .ui-btn-outline:hover:not(:disabled) {
    background-color: var(--color-primary-500);
    border-color: var(--color-primary-500);
    color: var(--color-white);
}

/* Outline Danger */
.ui-btn-outline-danger {
    background-color: transparent;
    color: var(--color-danger-600);
    border-color: var(--color-danger-600);
}
.ui-btn-outline-danger:hover:not(:disabled) {
    background-color: var(--color-danger-600);
    color: var(--color-white);
    box-shadow: 0 4px 12px rgba(220, 38, 38, 0.25);
}
.dark .ui-btn-outline-danger {
    color: var(--color-danger-400);
    border-color: var(--color-danger-400);
}
.dark .ui-btn-outline-danger:hover:not(:disabled) {
    background-color: var(--color-danger-500);
    border-color: var(--color-danger-500);
    color: var(--color-white);
}

/* Outline Success */
.ui-btn-outline-success {
    background-color: transparent;
    color: var(--color-success-600);
    border-color: var(--color-success-600);
}
.ui-btn-outline-success:hover:not(:disabled) {
    background-color: var(--color-success-600);
    color: var(--color-white);
    box-shadow: 0 4px 12px rgba(22, 163, 74, 0.25);
}
.dark .ui-btn-outline-success {
    color: var(--color-success-400);
    border-color: var(--color-success-400);
}
.dark .ui-btn-outline-success:hover:not(:disabled) {
    background-color: var(--color-success-500);
    border-color: var(--color-success-500);
    color: var(--color-white);
}

/* Ghost - Sem fundo, sem borda */
.ui-btn-ghost {
    background-color: transparent;
    color: var(--color-gray-700);
    border-color: transparent;
}
.ui-btn-ghost:hover:not(:disabled) {
    background-color: var(--color-gray-100);
    color: var(--color-gray-900);
}
.ui-btn-ghost:focus {
    outline: none;
    box-shadow: 0 0 0 var(--focus-ring-width) rgba(107, 114, 128, 0.2);
}
.dark .ui-btn-ghost {
    color: var(--color-gray-300);
}
.dark .ui-btn-ghost:hover:not(:disabled) {
    background-color: var(--color-gray-700);
    color: var(--color-gray-100);
}

/* Link - Parece um link */
.ui-btn-link {
    background-color: transparent;
    color: var(--color-primary-600);
    border-color: transparent;
    padding: 0;
    height: auto;
    text-decoration: none;
}
.ui-btn-link:hover:not(:disabled) {
    color: var(--color-primary-700);
    opacity: 0.85;
}
.dark .ui-btn-link {
    color: var(--color-primary-400);
}
.dark .ui-btn-link:hover:not(:disabled) {
    color: var(--color-primary-300);
}

/* Soft Variants - Fundo suave com cor */
.ui-btn-primary-soft {
    background-color: rgba(var(--color-primary-rgb), 0.1);
    color: var(--color-primary-600);
    border-color: transparent;
}
.ui-btn-primary-soft:hover:not(:disabled) {
    background-color: rgba(var(--color-primary-rgb), 0.2);
    box-shadow: 0 2px 8px rgba(var(--color-primary-rgb), 0.15);
}
.dark .ui-btn-primary-soft {
    background-color: rgba(var(--color-primary-rgb), 0.2);
    color: var(--color-primary-300, var(--color-primary-300));
}
.dark .ui-btn-primary-soft:hover:not(:disabled) {
    background-color: rgba(var(--color-primary-rgb), 0.3);
}

.ui-btn-success-soft {
    background-color: rgba(34, 197, 94, 0.1);
    color: var(--color-success-600);
    border-color: transparent;
}
.ui-btn-success-soft:hover:not(:disabled) {
    background-color: rgba(34, 197, 94, 0.2);
    box-shadow: 0 2px 8px rgba(34, 197, 94, 0.15);
}
.dark .ui-btn-success-soft {
    background-color: rgba(34, 197, 94, 0.2);
    color: var(--color-success-400);
}
.dark .ui-btn-success-soft:hover:not(:disabled) {
    background-color: rgba(34, 197, 94, 0.3);
}

.ui-btn-warning-soft {
    background-color: rgba(245, 158, 11, 0.1);
    color: var(--color-warning-600);
    border-color: transparent;
}
.ui-btn-warning-soft:hover:not(:disabled) {
    background-color: rgba(245, 158, 11, 0.2);
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.15);
}
.dark .ui-btn-warning-soft {
    background-color: rgba(245, 158, 11, 0.2);
    color: var(--color-warning-400);
}
.dark .ui-btn-warning-soft:hover:not(:disabled) {
    background-color: rgba(245, 158, 11, 0.3);
}

.ui-btn-danger-soft {
    background-color: rgba(239, 68, 68, 0.1);
    color: var(--color-danger-600);
    border-color: transparent;
}
.ui-btn-danger-soft:hover:not(:disabled) {
    background-color: rgba(239, 68, 68, 0.2);
    box-shadow: 0 2px 8px rgba(239, 68, 68, 0.15);
}
.dark .ui-btn-danger-soft {
    background-color: rgba(239, 68, 68, 0.2);
    color: var(--color-danger-400);
}
.dark .ui-btn-danger-soft:hover:not(:disabled) {
    background-color: rgba(239, 68, 68, 0.3);
}

.ui-btn-info-soft {
    background-color: rgba(6, 182, 212, 0.1);
    color: var(--color-info-600);
    border-color: transparent;
}
.ui-btn-info-soft:hover:not(:disabled) {
    background-color: rgba(6, 182, 212, 0.2);
    box-shadow: 0 2px 8px rgba(6, 182, 212, 0.15);
}
.dark .ui-btn-info-soft {
    background-color: rgba(6, 182, 212, 0.2);
    color: var(--color-info-400);
}
.dark .ui-btn-info-soft:hover:not(:disabled) {
    background-color: rgba(6, 182, 212, 0.3);
}

/* Button Sizes */
.ui-btn-xs {
    height: 1.75rem;
    padding: 0 0.5rem;
    font-size: 0.75rem;
    border-radius: var(--radius-sm);
}
.ui-btn-sm {
    height: var(--button-height-sm);
    padding: 0 0.75rem;
    font-size: 0.75rem;
    gap: 0.375rem;
}
.ui-btn-sm i,
.ui-btn-sm svg {
    font-size: 0.75rem;
    width: 0.75rem;
    height: 0.75rem;
}
.ui-btn-lg {
    height: var(--button-height-lg);
    padding: 0 1.5rem;
    font-size: 1rem;
    gap: 0.625rem;
}
.ui-btn-lg i,
.ui-btn-lg svg {
    font-size: 1rem;
    width: 1rem;
    height: 1rem;
}
.ui-btn-xl {
    height: 3.5rem;
    padding: 0 2rem;
    font-size: 1.125rem;
    gap: 0.75rem;
}
.ui-btn-xl i,
.ui-btn-xl svg {
    font-size: 1.125rem;
    width: 1.125rem;
    height: 1.125rem;
}

/* Icon Button (square) */
.ui-btn-icon {
    width: var(--button-height-md);
    padding: 0;
}
.ui-btn-icon.ui-btn-xs { width: 1.75rem; }
.ui-btn-icon.ui-btn-sm { width: var(--button-height-sm); }
.ui-btn-icon.ui-btn-lg { width: var(--button-height-lg); }
.ui-btn-icon.ui-btn-xl { width: 3.5rem; }

/* Medium size (explicit, same as default) */
.ui-btn-md {
    height: var(--button-height-md);
    padding: 0 1rem;
    font-size: 0.875rem;
}

/* Full Width */
.ui-btn-block { width: 100%; }

/* Loading - definição canônica em .ui-btn-loading (§45, linhas 120-142) */

.ui-auth-btn-secondary {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.875rem 1.5rem;
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--color-gray-300);
    background-color: rgba(51, 65, 85, 0.5);
    border: 1px solid rgba(71, 85, 105, 0.5);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all 0.2s ease;
}
.ui-auth-btn-secondary:hover:not(:disabled) {
    background-color: rgba(71, 85, 105, 0.5);
    border-color: rgba(100, 116, 139, 0.5);
    color: var(--color-gray-100);
}
.ui-auth-btn-secondary:focus {
    outline: none;
    box-shadow: 0 0 0 var(--focus-ring-width) rgba(107, 114, 128, 0.3);
}
.ui-auth-btn-secondary:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.ui-auth-btn-success {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-white);
    background-color: var(--color-success-600);
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all 0.2s ease;
}
.ui-auth-btn-success:hover:not(:disabled) {
    background-color: var(--color-success-700);
}

/* Auth Button Sizes */
.ui-auth-btn-small {
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
}
.ui-auth-btn-full {
    width: 100%;
}
.ui-auth-btn-flex {
    flex: 1;
}

/* Auth Button with Icon */
.ui-auth-btn-with-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}
.ui-auth-btn-with-icon svg,
.ui-auth-btn-with-icon i {
    width: 1.25rem;
    height: 1.25rem;
    flex-shrink: 0;
}

/* Light mode overrides for auth buttons */
html:not(.dark) .ui-auth-btn-secondary {
    color: var(--color-gray-700);
    background-color: var(--color-gray-100);
    border-color: var(--color-gray-300);
}
html:not(.dark) .ui-auth-btn-secondary:hover:not(:disabled) {
    background-color: var(--color-gray-200);
    border-color: var(--color-gray-400);
    color: var(--color-gray-900);
}

/* ============================================
   INPUTS - .ui-input
   Estados: normal, hover, focus, error, success, disabled
   ============================================ */
.ui-input {
    display: block;
    width: 100%;
    height: var(--input-height-md);
    padding: 0.5rem 0.75rem;
    font-size: var(--font-size-sm);
    line-height: 1.5;
    color: var(--color-text-primary);
    background-color: var(--surface);
    border: 1px solid var(--color-border-input);
    border-radius: var(--radius-md);
    box-sizing: border-box;
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);
}
.ui-input:hover:not(:disabled):not(:focus) {
    border-color: var(--color-gray-400);
}
.ui-input:focus {
    outline: none;
    border-color: var(--color-primary-500);
    box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring-color);
}
/* WCAG AA: 4.5:1 minimum contrast ratio */
.ui-input::placeholder {
    color: var(--color-gray-500);
}
.ui-input:disabled {
    background-color: var(--color-gray-100);
    color: var(--color-gray-400);
    cursor: not-allowed;
    opacity: 0.7;
}
.ui-input:read-only {
    background-color: var(--color-gray-50);
}

/* Input com ícone à esquerda: pl-* deve prevalecer sobre ui-input padding */
.ui-input.pl-10 { padding-left: 2.5rem !important; }
.ui-input.pl-9  { padding-left: 2.25rem !important; }
.ui-input.pl-8  { padding-left: 2rem !important; }

/* Search dentro de shell headers */
.settings-search-v2 input,
.settings-search-v2 input.ui-input {
    padding-left: 2.5rem !important;
    width: 200px;
    min-width: 200px;
}

/* Input Sizes */
.ui-input-sm {
    height: var(--input-height-sm);
    padding: 0.375rem 0.625rem;
    font-size: 0.875rem;
}
.ui-input-lg {
    height: var(--input-height-lg);
    padding: 0.75rem 1rem;
    font-size: 1rem;
}

/* Input States */
.ui-input-error,
.ui-input.is-invalid,
.ui-input[aria-invalid="true"] {
    border-color: var(--color-danger-500);
    background-color: rgba(239, 68, 68, 0.02);
}
.ui-input-error:hover:not(:disabled):not(:focus),
.ui-input.is-invalid:hover:not(:disabled):not(:focus) {
    border-color: var(--color-danger-600);
}
.ui-input-error:focus,
.ui-input.is-invalid:focus,
.ui-input[aria-invalid="true"]:focus {
    border-color: var(--color-danger-500);
    box-shadow: 0 0 0 var(--focus-ring-width) rgba(239, 68, 68, 0.15);
}

.ui-input-success,
.ui-input.is-valid,
.ui-input[aria-invalid="false"] {
    border-color: var(--color-success-500);
    background-color: rgba(34, 197, 94, 0.02);
}
.ui-input-success:hover:not(:disabled):not(:focus),
.ui-input.is-valid:hover:not(:disabled):not(:focus) {
    border-color: var(--color-success-600);
}
.ui-input-success:focus,
.ui-input.is-valid:focus {
    border-color: var(--color-success-500);
    box-shadow: 0 0 0 var(--focus-ring-width) rgba(34, 197, 94, 0.15);
}

/* Dark Mode Input */
.dark .ui-input {
    color: var(--color-text-primary);
    background-color: var(--color-bg-card);
    border-color: var(--color-border-input);
}
/* WCAG AA: 4.5:1 minimum contrast ratio */
.dark .ui-input::placeholder {
    color: var(--color-text-disabled);
}
.dark .ui-input:hover:not(:disabled):not(:focus) {
    border-color: var(--color-border-input);
    filter: brightness(1.2);
}
.dark .ui-input:focus {
    border-color: var(--color-primary-400);
    box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring-color);
}
.dark .ui-input:disabled {
    background-color: var(--color-bg-muted);
    opacity: 0.6;
}
.dark .ui-input-error,
.dark .ui-input.is-invalid {
    border-color: var(--color-danger-400);
    background-color: rgba(239, 68, 68, 0.05);
}
.dark .ui-input-success,
.dark .ui-input.is-valid {
    border-color: var(--color-success-400);
    background-color: rgba(34, 197, 94, 0.05);
}

/* Textarea usando classe ui-input (compatibilidade) */
textarea.ui-input {
    height: auto;
    min-height: 4rem;
    line-height: 1.6;
    resize: vertical;
}

/* ============================================
   SELECT - .ui-select
   Estados: normal, hover, focus, error, disabled
   ============================================ */
.ui-select {
    display: block;
    width: 100%;
    height: var(--input-height-md);
    padding: 0.5rem 2.5rem 0.5rem 0.75rem;
    font-size: var(--font-size-sm);
    line-height: 1.5;
    color: var(--color-text-primary);
    background-color: var(--surface);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");
    background-position: right 0.75rem center;
    background-repeat: no-repeat;
    background-size: 1.25em 1.25em;
    border: 1px solid var(--color-border-input);
    border-radius: var(--radius-md);
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    box-sizing: border-box;
    transition: all 0.15s ease;
}
.ui-select:hover:not(:disabled):not(:focus) {
    border-color: var(--color-gray-400);
}
.ui-select:focus {
    outline: none;
    border-color: var(--color-primary-500);
    box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring-color);
}
.ui-select:disabled {
    background-color: var(--color-gray-100);
    color: var(--color-gray-400);
    cursor: not-allowed;
    opacity: 0.7;
}

/* Select Error State */
.ui-select-error,
.ui-select.is-invalid {
    border-color: var(--color-danger-500);
    background-color: rgba(239, 68, 68, 0.02);
}
.ui-select-error:focus,
.ui-select.is-invalid:focus {
    box-shadow: 0 0 0 var(--focus-ring-width) rgba(239, 68, 68, 0.15);
}

/* Select Sizes */
.ui-select-sm {
    height: var(--input-height-sm);
    padding: 0.375rem 2rem 0.375rem 0.625rem;
    font-size: 0.875rem;
}
.ui-select-lg {
    height: var(--input-height-lg);
    padding: 0.75rem 3rem 0.75rem 1rem;
    font-size: 1rem;
}

/* Dark Mode Select */
.dark .ui-select {
    color: var(--color-text-primary);
    background-color: var(--color-bg-card);
    border-color: var(--color-border-input);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%239ca3af' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");
}
.dark .ui-select:hover:not(:disabled):not(:focus) {
    border-color: var(--color-border-input);
    filter: brightness(1.2);
}
.dark .ui-select:focus {
    border-color: var(--color-primary-400);
    box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring-color);
}
.dark .ui-select:disabled {
    background-color: var(--color-bg-muted);
    opacity: 0.6;
}
.dark .ui-select-error,
.dark .ui-select.is-invalid {
    border-color: var(--color-danger-400);
    background-color: rgba(239, 68, 68, 0.05);
}

/* ============================================
   TEXTAREA - .ui-textarea
   Estados: normal, hover, focus, error, disabled
   ============================================ */
.ui-textarea {
    display: block;
    width: 100%;
    min-height: 100px;
    padding: 0.75rem 1rem;
    font-size: var(--font-size-sm);
    line-height: 1.6;
    color: var(--color-text-primary);
    background-color: var(--surface);
    border: 1px solid var(--color-border-input);
    border-radius: var(--radius-md);
    resize: vertical;
    box-sizing: border-box;
    transition: all 0.15s ease;
}
.ui-textarea:hover:not(:disabled):not(:focus) {
    border-color: var(--color-gray-400);
}
.ui-textarea:focus {
    outline: none;
    border-color: var(--color-primary-500);
    box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring-color);
}
/* WCAG AA: 4.5:1 minimum contrast ratio */
.ui-textarea::placeholder {
    color: var(--color-gray-500);
}
.ui-textarea:disabled {
    background-color: var(--color-gray-100);
    cursor: not-allowed;
    resize: none;
    opacity: 0.7;
}

/* Textarea Error State */
.ui-textarea-error,
.ui-textarea.is-invalid {
    border-color: var(--color-danger-500);
    background-color: rgba(239, 68, 68, 0.02);
}
.ui-textarea-error:focus,
.ui-textarea.is-invalid:focus {
    box-shadow: 0 0 0 var(--focus-ring-width) rgba(239, 68, 68, 0.15);
}

/* Dark Mode Textarea */
.dark .ui-textarea {
    color: var(--color-text-primary);
    background-color: var(--color-bg-card);
    border-color: var(--color-border-input);
}
/* WCAG AA: 4.5:1 minimum contrast ratio */
.dark .ui-textarea::placeholder {
    color: var(--color-text-disabled);
}
.dark .ui-textarea:hover:not(:disabled):not(:focus) {
    border-color: var(--color-border-input);
    filter: brightness(1.2);
}
.dark .ui-textarea:focus {
    border-color: var(--color-primary-400);
    box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring-color);
}
.dark .ui-textarea:disabled {
    background-color: var(--color-bg-muted);
    opacity: 0.6;
}
.dark .ui-textarea-error,
.dark .ui-textarea.is-invalid {
    border-color: var(--color-danger-400);
    background-color: rgba(239, 68, 68, 0.05);
}

/* ============================================
   SWITCH / TOGGLE - .ui-switch
   Componente padronizado para toggles on/off.
   Uso: <label class="ui-switch"><input type="checkbox"><span class="ui-switch-slider"></span></label>
   ============================================ */
.ui-switch {
    position: relative;
    display: inline-flex;
    align-items: center;
    cursor: pointer;
    user-select: none;
}
.ui-switch input {
    position: absolute;
    width: 0;
    height: 0;
    opacity: 0;
}
.ui-switch-slider {
    position: relative;
    display: inline-block;
    width: 2.75rem;
    height: 1.5rem;
    background-color: var(--color-gray-300);
    border-radius: var(--radius-full);
    transition: background-color var(--transition-fast);
    flex-shrink: 0;
}
.ui-switch-slider::after {
    content: '';
    position: absolute;
    top: 0.125rem;
    left: 0.125rem;
    width: 1.25rem;
    height: 1.25rem;
    background-color: var(--color-white);
    border-radius: 50%;
    transition: transform var(--transition-fast);
    box-shadow: var(--shadow-sm);
}
.ui-switch input:checked + .ui-switch-slider {
    background-color: var(--color-primary-600);
}
.ui-switch input:checked + .ui-switch-slider::after {
    transform: translateX(1.25rem);
}
.ui-switch input:focus-visible + .ui-switch-slider {
    box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring-color);
}
.ui-switch input:disabled + .ui-switch-slider {
    opacity: 0.5;
    cursor: not-allowed;
}
/* Dark mode */
.dark .ui-switch-slider {
    background-color: var(--color-bg-hover);
}
.dark .ui-switch input:checked + .ui-switch-slider {
    background-color: var(--color-primary-500);
}
.dark .ui-switch-slider::after {
    background-color: var(--color-white);
}

/* Switch com label de texto ao lado */
.ui-switch-label {
    margin-left: 0.75rem;
    font-size: var(--font-size-sm);
    color: var(--color-text-primary);
}
.dark .ui-switch-label {
    color: var(--color-text-primary);
}

/* ============================================
   CHECKBOX & RADIO - .ui-checkbox, .ui-radio
   Base: accent-color para radio e checkboxes nativos.
   NOTA: input[type="checkbox"].ui-checkbox (mais abaixo) sobrescreve
   com appearance:none + checkmark customizado para maior controle visual.
   ============================================ */
.ui-checkbox,
.ui-radio {
    width: 1rem;
    height: 1rem;
    accent-color: var(--color-primary-600);
    cursor: pointer;
}
.ui-checkbox:disabled,
.ui-radio:disabled {
    cursor: not-allowed;
    opacity: 0.5;
}

/* Checkbox Card - Para checkboxes em grid */
.ui-checkbox-card {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.625rem 0.875rem;
    background-color: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all 0.15s ease;
}
.ui-checkbox-card:hover {
    background-color: var(--color-gray-100);
    border-color: var(--color-gray-300);
}
.dark .ui-checkbox-card {
    background-color: var(--color-gray-800);
    border-color: var(--color-gray-700);
}
.dark .ui-checkbox-card:hover {
    background-color: var(--color-gray-750, #2d3748);
    border-color: var(--color-gray-600);
}
.ui-checkbox-card:has(input:checked) {
    background-color: var(--color-primary-50);
    border-color: var(--color-primary-500);
}
.dark .ui-checkbox-card:has(input:checked) {
    background-color: rgba(var(--color-primary-rgb), 0.15);
    border-color: var(--color-primary-500);
}
.ui-checkbox-label {
    font-size: 0.875rem;
    color: var(--color-gray-700);
    font-weight: 500;
}
.dark .ui-checkbox-label {
    color: var(--color-gray-300);
}

/* Checkbox Grid - Grid de checkboxes */
.ui-checkbox-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
}
@media (max-width: 480px) {
    .ui-checkbox-grid {
        grid-template-columns: 1fr;
    }
}

/* Form Row - Linha com múltiplos campos */
.ui-form-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}
@media (max-width: 480px) {
    .ui-form-row {
        grid-template-columns: 1fr;
    }
}

/* Form Grid - Grid de campos */
.ui-form-grid {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* ============================================
   TOGGLE - .ui-toggle
   ============================================ */
.ui-toggle {
    position: relative;
    display: inline-block;
    width: 2.75rem;
    height: 1.5rem;
}
.ui-toggle input {
    opacity: 0;
    width: 0;
    height: 0;
}
.ui-toggle-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--color-gray-300);
    border-radius: var(--radius-full);
}
.ui-toggle-slider::before {
    position: absolute;
    content: "";
    height: 1.25rem;
    width: 1.25rem;
    left: 0.125rem;
    bottom: 0.125rem;
    background-color: var(--color-white);
    border-radius: 50%;
}
.dark .ui-toggle-slider::before {
    background-color: var(--color-gray-800, #1e1e38);
}
.ui-toggle input:checked + .ui-toggle-slider {
    background-color: var(--color-primary-600);
}
.ui-toggle input:checked + .ui-toggle-slider::before {
    transform: translateX(1.25rem);
}
.ui-toggle input:disabled + .ui-toggle-slider {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ============================================
   TOGGLE LAYOUT HELPERS
   Wrappers para linhas de toggle com label/descrição
   ============================================ */
/* ui-toggle-row e ui-toggle-wrapper são equivalentes — ambos suportados */
.ui-toggle-row,
.ui-toggle-wrapper {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.ui-toggle-content {
    flex: 1;
    min-width: 0;
}
.ui-toggle-label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-text-primary, var(--color-gray-700));
    cursor: pointer;
    margin-bottom: 0;
}
.dark .ui-toggle-label {
    color: var(--color-text-primary);
}

/* ============================================
   LABEL - .ui-label
   ============================================ */
.ui-label {
    display: block;
    margin-bottom: 0.375rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-gray-700);
}
.ui-label-required::after {
    content: " *";
    color: var(--color-danger-500);
}
.dark .ui-label {
    color: var(--color-gray-300);
}

/* ============================================
   HELP TEXT - .ui-help, .ui-hint, .ui-error
   ============================================ */
.ui-help,
.ui-hint {
    margin-top: 0.25rem;
    font-size: 0.8125rem;
    color: var(--color-gray-500);
}
.ui-error {
    margin-top: 0.25rem;
    font-size: 0.8125rem;
    color: var(--color-danger-500);
}
.dark .ui-help,
.dark .ui-hint {
    color: var(--color-gray-400);
}
.dark .ui-error {
    color: var(--color-danger-400);
}

/* ============================================
   FORM GROUP - .ui-form-group
   Definicao canonica em components.css (grid responsivo)
   ============================================ */

/* ============================================
   BADGE - .ui-badge-*
   Variantes: primary, success, warning, danger, info, gray
   Estilos: soft (default), solid, outline
   ============================================ */
.ui-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.25rem 0.625rem;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1.5;
    border-radius: var(--radius-full, 9999px);
    white-space: nowrap;
    transition: all 0.15s ease;
}

/* Badge Soft Variants (default) */
.ui-badge-primary {
    background-color: var(--color-primary-100);
    color: var(--color-primary-700);
}
.dark .ui-badge-primary {
    background-color: rgba(var(--color-primary-rgb), 0.2);
    color: var(--color-primary-300);
}

.ui-badge-success {
    background-color: var(--color-success-100);
    color: var(--color-success-700);
}
.dark .ui-badge-success {
    background-color: rgba(34, 197, 94, 0.2);
    color: var(--color-success-300);
}

.ui-badge-warning {
    background-color: var(--color-warning-100);
    color: var(--color-warning-700);
}
.dark .ui-badge-warning {
    background-color: rgba(245, 158, 11, 0.2);
    color: var(--color-warning-300);
}

.ui-badge-danger {
    background-color: var(--color-danger-100);
    color: var(--color-danger-700);
}
.dark .ui-badge-danger {
    background-color: rgba(239, 68, 68, 0.2);
    color: var(--color-danger-300);
}

.ui-badge-info {
    background-color: var(--color-info-100);
    color: var(--color-info-700);
}
.dark .ui-badge-info {
    background-color: rgba(6, 182, 212, 0.2);
    color: var(--color-info-300);
}

.ui-badge-gray,
.ui-badge-secondary {
    background-color: var(--color-gray-100);
    color: var(--color-gray-700);
}
.dark .ui-badge-gray,
.dark .ui-badge-secondary {
    background-color: var(--color-gray-700);
    color: var(--color-gray-300);
}

/* Badge Named Color Variants */
.ui-badge-blue {
    background-color: var(--color-primary-100);
    color: var(--color-primary-700);
}
.dark .ui-badge-blue {
    background-color: rgba(var(--color-primary-rgb), 0.2);
    color: var(--color-primary-300);
}
.ui-badge-cyan {
    background-color: var(--color-info-100);
    color: var(--color-info-700);
}
.dark .ui-badge-cyan {
    background-color: rgba(6, 182, 212, 0.2);
    color: var(--color-info-300);
}
.ui-badge-red {
    background-color: var(--color-danger-100);
    color: var(--color-danger-700);
}
.dark .ui-badge-red {
    background-color: rgba(239, 68, 68, 0.2);
    color: var(--color-danger-300);
}
.ui-badge-slate {
    background-color: var(--color-gray-100);
    color: var(--color-gray-600);
}
.dark .ui-badge-slate {
    background-color: var(--color-gray-700);
    color: var(--color-gray-400);
}
.ui-badge-amber {
    background-color: var(--color-warning-100);
    color: var(--color-warning-700);
}
.dark .ui-badge-amber {
    background-color: rgba(245, 158, 11, 0.2);
    color: var(--color-warning-300);
}
.ui-badge-emerald {
    background-color: var(--color-success-100);
    color: var(--color-success-700);
}
.dark .ui-badge-emerald {
    background-color: rgba(16, 185, 129, 0.2);
    color: var(--color-success-300);
}
.ui-badge-green {
    background-color: var(--color-success-100);
    color: var(--color-success-700);
}
.dark .ui-badge-green {
    background-color: rgba(34, 197, 94, 0.2);
    color: var(--color-success-300);
}
.ui-badge-yellow {
    background-color: var(--color-warning-100);
    color: var(--color-warning-700);
}
.dark .ui-badge-yellow {
    background-color: rgba(245, 158, 11, 0.2);
    color: var(--color-warning-300);
}
.ui-badge-orange {
    background-color: var(--color-warning-50);
    color: var(--color-danger-700);
}
.dark .ui-badge-orange {
    background-color: rgba(249, 115, 22, 0.2);
    color: var(--color-warning-300);
}
.ui-badge-purple {
    background-color: var(--color-accent-50);
    color: var(--color-accent-600);
}
.dark .ui-badge-purple {
    background-color: rgba(139, 92, 246, 0.2);
    color: var(--color-accent-300);
}

/* Badge Solid Variants */
.ui-badge-primary-solid {
    background-color: var(--color-primary-600);
    color: var(--color-white);
}
.ui-badge-success-solid {
    background-color: var(--color-success-600);
    color: var(--color-white);
}
.ui-badge-warning-solid {
    background-color: var(--color-warning-500);
    color: var(--color-white);
}
.ui-badge-danger-solid {
    background-color: var(--color-danger-600);
    color: var(--color-white);
}
.ui-badge-info-solid {
    background-color: var(--color-info-600);
    color: var(--color-white);
}
.ui-badge-gray-solid {
    background-color: var(--color-gray-600);
    color: var(--color-white);
}

/* Badge Outline Variants */
.ui-badge-primary-outline {
    background-color: transparent;
    color: var(--color-primary-600);
    border: 1px solid var(--color-primary-300);
}
.dark .ui-badge-primary-outline {
    color: var(--color-primary-400);
    border-color: var(--color-primary-600);
}

.ui-badge-success-outline {
    background-color: transparent;
    color: var(--color-success-600);
    border: 1px solid var(--color-success-300);
}
.dark .ui-badge-success-outline {
    color: var(--color-success-400);
    border-color: var(--color-success-600);
}

.ui-badge-warning-outline {
    background-color: transparent;
    color: var(--color-warning-600);
    border: 1px solid var(--color-warning-300);
}
.dark .ui-badge-warning-outline {
    color: var(--color-warning-400);
    border-color: var(--color-warning-600);
}

.ui-badge-danger-outline {
    background-color: transparent;
    color: var(--color-danger-600);
    border: 1px solid var(--color-danger-300);
}
.dark .ui-badge-danger-outline {
    color: var(--color-danger-400);
    border-color: var(--color-danger-600);
}

/* Badge Sizes */
.ui-badge-xs {
    padding: 0 0.25rem;
    font-size: 0.625rem;
}
.ui-badge-sm {
    padding: 0 0.375rem;
    font-size: 0.6875rem;
}
.ui-badge-lg {
    padding: 0.25rem 0.75rem;
    font-size: 0.875rem;
}

/* Badge with Dot */
.ui-badge-dot::before {
    content: "";
    width: 0.375rem;
    height: 0.375rem;
    border-radius: 50%;
    background-color: currentColor;
    flex-shrink: 0;
}

/* Badge Clickable */
.ui-badge-clickable {
    cursor: pointer;
}
.ui-badge-clickable:hover {
    filter: brightness(0.95);
}
.dark .ui-badge-clickable:hover {
    filter: brightness(1.1);
}

/* Badge Dismissible */
.ui-badge-dismiss {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 0.875rem;
    height: 0.875rem;
    margin-left: 0.125rem;
    margin-right: -0.25rem;
    padding: 0;
    font-size: 0.75rem;
    background: transparent;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    opacity: 0.7;
}
.ui-badge-dismiss:hover {
    opacity: 1;
    background-color: rgba(0, 0, 0, 0.1);
}
.dark .ui-badge-dismiss:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

/* Badge Pill (mais arredondado, espaçamento confortável) */
.ui-badge-pill {
    border-radius: var(--radius-full);
    padding: 0.4375rem 1rem;
    gap: 0.5rem;
}

/* Badge Count (número apenas) */
.ui-badge-count {
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.25rem;
    font-size: 0.6875rem;
    font-weight: 600;
    text-align: center;
    border-radius: var(--radius-full);
}

/* ============================================
   ALERT - .ui-alert-*
   ============================================ */
.ui-alert {
    display: flex;
    gap: 0.75rem;
    padding: 1rem;
    border-radius: var(--radius-lg);
    border: 1px solid transparent;
}
.ui-alert-icon {
    flex-shrink: 0;
    width: 1.25rem;
    height: 1.25rem;
}
.ui-alert-content {
    flex: 1;
    min-width: 0;
}
.ui-alert-title {
    font-weight: 600;
    margin-bottom: 0.25rem;
}
.ui-alert-message,
.ui-alert-text {
    font-size: 0.875rem;
}
.ui-alert-dismiss {
    flex-shrink: 0;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0.25rem;
    opacity: 0.7;
}
.ui-alert-dismiss:hover {
    opacity: 1;
}

/* Alert Variants */
.ui-alert-success {
    background-color: var(--color-success-50);
    border-color: var(--color-success-200);
    color: var(--color-success-800);
}
.ui-alert-success .ui-alert-icon {
    color: var(--color-success-500);
}
.dark .ui-alert-success {
    background-color: rgba(34, 197, 94, 0.1);
    border-color: rgba(34, 197, 94, 0.2);
    color: var(--color-success-300);
}

.ui-alert-warning {
    background-color: var(--color-warning-50);
    border-color: var(--color-warning-200);
    color: var(--color-warning-800);
}
.ui-alert-warning .ui-alert-icon {
    color: var(--color-warning-500);
}
.dark .ui-alert-warning {
    background-color: rgba(245, 158, 11, 0.1);
    border-color: rgba(245, 158, 11, 0.2);
    color: var(--color-warning-300);
}

.ui-alert-danger,
.ui-alert-error {
    background-color: var(--color-danger-50);
    border-color: var(--color-danger-200);
    color: var(--color-danger-800);
}
.ui-alert-danger .ui-alert-icon,
.ui-alert-error .ui-alert-icon {
    color: var(--color-danger-500);
}
.dark .ui-alert-danger,
.dark .ui-alert-error {
    background-color: rgba(239, 68, 68, 0.1);
    border-color: rgba(239, 68, 68, 0.2);
    color: var(--color-danger-300);
}

/* ============================================
   CARD - .ui-card
   Variantes: default, hover, clickable, colored
   IMPORTANTE: Cards sempre com fundo branco/cinza
   ============================================ */
.ui-card {
    --card-padding: 1.25rem;
    --card-gap: 0.75rem;
    background-color: var(--color-bg-card);
    background-image: none;
    border: 1px solid var(--color-border);
    border-radius: var(--card-radius, var(--radius-lg, 0.75rem));
    overflow: visible;
    transition: border-color var(--transition-normal), box-shadow var(--transition-normal), background-color var(--transition-normal);
}

/* Card Hierarchy — padding e gap por nível */
.ui-card.ui-card--parent {
    --card-padding: 1.5rem;
    --card-gap: 1rem;
    box-shadow: var(--shadow);
}
.ui-card.ui-card--child {
    --card-padding: 1rem;
    --card-gap: 0.75rem;
    background-color: var(--color-bg-muted);
    box-shadow: none;
}
.ui-card.ui-card--grandchild {
    --card-padding: 0.75rem;
    --card-gap: 0.5rem;
    background-color: var(--color-bg-subtle);
    box-shadow: none;
}

/* Card Body */
.ui-card .ui-card__body {
    padding: var(--card-padding);
    display: flex;
    flex-direction: column;
    gap: var(--card-gap);
}
.ui-card .ui-card__body--no-padding {
    padding: 0;
}

/* Card Footer — ações dentro do card com separador */
.ui-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 1rem;
    margin-top: 1rem;
    border-top: 1px solid var(--color-border);
    gap: 0.75rem;
}

/* Card Header */
.ui-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: var(--card-padding);
    border-bottom: 1px solid var(--color-border);
}
.ui-card__header-content {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    flex: 1;
    min-width: 0;
}
.ui-card__header-icon {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.5rem;
    background: var(--color-primary-50);
    color: var(--color-primary-500);
}
.dark .ui-card__header-icon {
    background: var(--color-primary-900, rgba(var(--color-primary-rgb), 0.2));
    color: var(--color-primary-400);
}
.ui-card__header-text {
    flex: 1;
    min-width: 0;
}
.ui-card__title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-text-primary);
    margin: 0;
    line-height: 1.4;
}
.dark .ui-card__title {
    color: var(--color-text-primary);
}
.ui-card__subtitle {
    font-size: 0.813rem;
    color: var(--color-text-muted);
    margin: 0.125rem 0 0;
}
.dark .ui-card__subtitle {
    color: var(--color-text-muted);
}
.ui-card__header-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

/* Card Collapse */
.ui-card__collapse-btn {
    width: 2rem;
    height: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: transparent;
    color: var(--color-text-muted);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: background-color var(--transition-fast), color var(--transition-fast);
}
.ui-card__collapse-btn:hover {
    background: var(--color-bg-hover);
    color: var(--color-text-primary);
}
.dark .ui-card__collapse-btn:hover {
    background: var(--color-bg-hover);
    color: var(--color-text-primary);
}
.ui-card__collapse-btn[aria-expanded="false"] .ui-card__collapse-icon {
    transform: rotate(-90deg);
}

/* Card Divider — separador visual dentro do card body */
.ui-card__divider {
    padding-top: 1rem;
    margin-top: 1rem;
    border-top: 1px solid var(--color-border);
}

/* Card com hover padrão */
.ui-card-hover:hover {
    border-color: var(--color-gray-300);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.dark .ui-card-hover:hover {
    border-color: var(--color-gray-600);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
}

/* Card clicável (link/button) */
.ui-card-clickable {
    cursor: pointer;
}
.ui-card-clickable:hover {
    border-color: var(--color-primary-300);
    box-shadow: 0 4px 16px rgba(var(--color-primary-rgb), 0.12);
}
.ui-card-clickable:active {
    opacity: 0.9;
}
.dark .ui-card-clickable:hover {
    border-color: var(--color-primary-600);
    box-shadow: 0 4px 16px rgba(var(--color-primary-rgb), 0.2);
}

/* Card com destaque (selected/active) */
.ui-card-selected,
.ui-card.active {
    border-color: var(--color-primary-500);
    box-shadow: 0 0 0 1px var(--color-primary-500);
}
.dark .ui-card-selected,
.dark .ui-card.active {
    border-color: var(--color-primary-400);
    box-shadow: 0 0 0 1px var(--color-primary-400);
}

/* Card Header */
.ui-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--color-border);
}
.ui-card-header-sm {
    padding: 0.75rem 1rem;
}
.ui-card-header-lg {
    padding: 1.25rem 1.5rem;
}

/* Card Header Color Variants */
.ui-card-header-green {
    background-color: rgba(34, 197, 94, 0.05);
    border-bottom-color: rgba(34, 197, 94, 0.2);
}
.dark .ui-card-header-green {
    background-color: rgba(34, 197, 94, 0.08);
    border-bottom-color: rgba(34, 197, 94, 0.15);
}

.ui-card-header-red {
    background-color: rgba(239, 68, 68, 0.05);
    border-bottom-color: rgba(239, 68, 68, 0.2);
}
.dark .ui-card-header-red {
    background-color: rgba(239, 68, 68, 0.08);
    border-bottom-color: rgba(239, 68, 68, 0.15);
}

.ui-card-header-amber {
    background-color: rgba(245, 158, 11, 0.05);
    border-bottom-color: rgba(245, 158, 11, 0.2);
}
.dark .ui-card-header-amber {
    background-color: rgba(245, 158, 11, 0.08);
    border-bottom-color: rgba(245, 158, 11, 0.15);
}

/* Card Header Nav (for tabs inside card) */
.ui-card-header-nav {
    border-bottom: 1px solid var(--color-border);
    padding: 0;
}

/* Card Footer Bordered */
.ui-card-footer-bordered {
    padding-top: 1rem;
    margin-top: 1rem;
    border-top: 1px solid var(--color-border);
}
.dark .ui-card-footer-bordered {
    border-top-color: var(--color-gray-700, #2a2a4e);
}

/* Card Title */
.ui-card-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-text-primary);
    margin: 0;
}
.ui-card-title-sm {
    font-size: 0.875rem;
}
.ui-card-title-lg {
    font-size: 1.125rem;
}

/* Card Subtitle */
.ui-card-subtitle {
    font-size: 0.875rem;
    color: var(--color-text-secondary);
    margin-top: 0.25rem;
}

/* Card Body → definição canônica mais abaixo (seção spacing) */
.ui-card-body--no-padding,
.ui-card-body-flush {
    padding: 0;
}

/* Card Footer */
.ui-card-footer {
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--color-border);
    background-color: var(--color-bg-secondary);
}
.ui-card-footer-sm {
    padding: 0.75rem 1rem;
}
.ui-card-footer-transparent {
    background-color: transparent;
}

/* Card Actions (dentro do header) */
.ui-card-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* Card coloridos (para métricas/stats) */
.ui-card-primary {
    border-left: 4px solid var(--color-primary-500);
}
.ui-card-success {
    border-left: 4px solid var(--color-success-500);
}
.ui-card-warning {
    border-left: 4px solid var(--color-warning-500);
}
.ui-card-danger {
    border-left: 4px solid var(--color-danger-500);
}
.ui-card-info {
    border-left: 4px solid var(--color-info-500);
}
.dark .ui-card-primary {
    border-left-color: var(--color-primary-400);
}
.dark .ui-card-success {
    border-left-color: var(--color-success-400);
}
.dark .ui-card-warning {
    border-left-color: var(--color-warning-400);
}
.dark .ui-card-danger {
    border-left-color: var(--color-danger-400);
}
.dark .ui-card-info {
    border-left-color: var(--color-info-400);
}

/* Dark Mode */
.dark .ui-card {
    background-color: var(--color-bg-card) !important;
    background-image: none !important;
    border-color: var(--color-border) !important;
}
.dark .ui-card-footer {
    background-color: var(--color-bg-secondary);
}

/* Card Item (item secundário dentro de card) */
.ui-card-item {
    padding: 0.75rem;
    border-radius: var(--radius-lg);
    background-color: var(--color-bg-secondary);
    transition: background-color 0.15s ease;
}
.ui-card-item:hover {
    background-color: var(--color-gray-100);
}
.dark .ui-card-item {
    background-color: var(--color-bg-subtle);
}
.dark .ui-card-item:hover {
    background-color: var(--color-bg-hover);
}

/* Empty State → definição canônica mais abaixo neste arquivo */

/* ============================================
   TABLE - .ui-table
   ============================================ */
.ui-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}
.ui-table th {
    padding: 0.75rem 1rem;
    text-align: left;
    font-weight: 600;
    color: var(--color-gray-600);
    background-color: var(--color-gray-50);
    border-bottom: 1px solid var(--color-border);
}
.ui-table td {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-text-primary);
}
.ui-table tbody tr:hover {
    background-color: var(--color-gray-50);
}

.dark .ui-table th {
    color: var(--color-text-muted);
    background-color: var(--color-bg-secondary);
}
.dark .ui-table tbody tr:hover {
    background-color: var(--color-bg-hover);
}

/* Table Sizes */
.ui-table-sm th,
.ui-table-sm td {
    padding: 0.5rem 0.75rem;
    font-size: 0.8125rem;
}

/* ============================================
   DATA TABLE - .ui-data-table-*
   Classes complementares para tabelas de dados
   ============================================ */

/* Header do thead */
.ui-data-table-header {
    background-color: var(--color-gray-50);
}
.dark .ui-data-table-header {
    background-color: var(--color-gray-800);
}

/* Células th de data table - padding maior e estilo uppercase */
.ui-data-table-th {
    padding: 0.75rem 1.25rem;
    text-align: left;
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
    white-space: nowrap;
}

/* Células td de data table */
.ui-data-table-td {
    padding: 0.875rem 1.25rem;
    color: var(--color-text-primary);
    vertical-align: middle;
}

/* Responsive: reduce padding on mobile */
@media (max-width: 640px) {
    .ui-data-table-th {
        padding: 0.5rem 0.75rem;
        font-size: 0.6875rem;
    }
    .ui-data-table-td {
        padding: 0.625rem 0.75rem;
        font-size: 0.8125rem;
    }
}

/* ============================================
   MODAL - .ui-modal
   Estrutura: .ui-modal > .ui-modal-backdrop + .ui-modal-dialog
   ============================================ */

/* Container principal - overlay fullscreen centralizado */
.ui-modal {
    position: fixed;
    inset: 0;
    z-index: var(--z-modal);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    overflow-y: auto;
}

.ui-modal.hidden {
    display: none !important;
}

/* Backdrop - apenas visual, sem bloquear cliques no dialog */
.ui-modal-backdrop {
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}

/* Dialog - o card branco/escuro do modal */
.ui-modal-dialog {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 28rem;
    max-height: calc(100vh - 2rem);
    background-color: var(--color-white);
    border: 1px solid var(--color-gray-200, var(--color-gray-200));
    border-radius: var(--radius-xl, 0.75rem);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.dark .ui-modal-dialog {
    background-color: var(--color-bg-card);
    border-color: var(--color-border);
}

/* Form dentro do dialog */
.ui-modal-dialog > form {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

/* Tamanhos do dialog */
.ui-modal-sm .ui-modal-dialog,
.ui-modal-dialog.ui-modal-sm { max-width: 24rem; }
.ui-modal-md .ui-modal-dialog,
.ui-modal-dialog.ui-modal-md { max-width: 28rem; }
.ui-modal-lg .ui-modal-dialog,
.ui-modal-dialog.ui-modal-lg { max-width: 36rem; }
.ui-modal-xl .ui-modal-dialog,
.ui-modal-dialog.ui-modal-xl { max-width: 48rem; }
.ui-modal-2xl .ui-modal-dialog,
.ui-modal-dialog.ui-modal-2xl { max-width: 64rem; }
.ui-modal-full .ui-modal-dialog,
.ui-modal-dialog.ui-modal-full { max-width: calc(100vw - 2rem); }

/* Header do modal */
.ui-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--color-border);
    flex-shrink: 0;
}

.dark .ui-modal-header {
    border-bottom-color: var(--color-gray-700);
}

/* Título do modal */
.ui-modal-title {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--color-text-primary);
    margin: 0;
    line-height: 1.4;
}

.dark .ui-modal-title {
    color: var(--color-white);
}

/* Botão fechar */
.ui-modal-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    color: var(--color-gray-400);
    background: transparent;
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all 0.15s ease;
    flex-shrink: 0;
}

.ui-modal-close:hover {
    color: var(--color-gray-600);
    background-color: var(--color-gray-100);
}

.dark .ui-modal-close:hover {
    color: var(--color-gray-300);
    background-color: var(--color-gray-700);
}

/* Body do modal - com scroll */
.ui-modal-body {
    padding: 1.5rem;
    overflow-y: auto;
    overflow-x: hidden;
    flex: 1 1 auto;
    min-width: 0;
}

/* Footer do modal */
.ui-modal-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.75rem;
    padding: 1rem 1.5rem;
    border-top: 1px solid var(--color-border);
    background-color: transparent;
    flex-shrink: 0;
}

.dark .ui-modal-footer {
    border-top-color: var(--color-gray-700);
}

/* Modal Icon (para modais de confirmação/alerta) */
.ui-modal-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-lg);
    flex-shrink: 0;
}
.ui-modal-icon i,
.ui-modal-icon svg {
    font-size: 1.25rem;
}
.ui-modal-icon-danger {
    background-color: rgba(239, 68, 68, 0.1);
    color: var(--color-danger-600);
}
.dark .ui-modal-icon-danger {
    background-color: rgba(239, 68, 68, 0.2);
    color: var(--color-danger-400);
}
.ui-modal-icon-warning {
    background-color: rgba(245, 158, 11, 0.1);
    color: var(--color-warning-600);
}
.dark .ui-modal-icon-warning {
    background-color: rgba(245, 158, 11, 0.2);
    color: var(--color-warning-400);
}
.ui-modal-icon-success {
    background-color: rgba(34, 197, 94, 0.1);
    color: var(--color-success-600);
}
.dark .ui-modal-icon-success {
    background-color: rgba(34, 197, 94, 0.2);
    color: var(--color-success-400);
}
.ui-modal-icon-info {
    background-color: rgba(var(--color-primary-rgb), 0.1);
    color: var(--color-primary-600);
}
.dark .ui-modal-icon-info {
    background-color: rgba(var(--color-primary-rgb), 0.2);
    color: var(--color-primary-400);
}

/* Modal Subtitle */
.ui-modal-subtitle {
    font-size: 0.875rem;
    color: var(--color-text-secondary);
    margin-top: 0.25rem;
}
.dark .ui-modal-subtitle {
    color: var(--color-gray-400);
}

/* Modal Container (alias para dialog) */
.ui-modal-container {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 28rem;
    max-height: calc(100vh - 2rem);
    margin: auto;
    background-color: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.dark .ui-modal-container {
    background-color: var(--color-gray-800);
    border-color: var(--color-gray-700);
}

/* Modal Close Button (alternativo) */
.ui-modal-close-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    color: var(--color-gray-400);
    background: transparent;
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all 0.15s ease;
    flex-shrink: 0;
}
.ui-modal-close-btn:hover {
    color: var(--color-gray-600);
    background-color: var(--color-gray-100);
}
.dark .ui-modal-close-btn:hover {
    color: var(--color-gray-300);
    background-color: var(--color-gray-700);
}

/* Modal Tall (mais altura) */
.ui-modal-tall .ui-modal-dialog,
.ui-modal-dialog.ui-modal-tall,
.ui-modal-tall.ui-modal-dialog {
    max-height: calc(100vh - 4rem);
}

/* Modal Body Scroll */
.ui-modal-body-scroll {
    overflow-y: auto;
    flex: 1 1 auto;
    min-height: 200px;
}

/* Modal Footer Stacked (botões empilhados) */
.ui-modal-footer-stacked {
    flex-direction: column;
    gap: 0.5rem;
}
.ui-modal-footer-stacked .ui-btn {
    width: 100%;
}

/* Overlay alternativo (para compatibilidade) */
.ui-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: var(--z-modal);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background-color: rgba(0, 0, 0, 0.6);
}

.ui-modal-overlay.hidden {
    display: none !important;
}

/* ============================================
   MODAL ALIASES - Compatibilidade de padroes
   ============================================ */

/* ui-modal-wrapper = overlay fixo com backdrop automatico */
.ui-modal-wrapper {
    position: fixed;
    inset: 0;
    z-index: var(--z-modal);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    overflow-y: auto;
}

/* Backdrop automatico via ::before — garante que TODOS os modais
   tenham overlay escuro, mesmo sem child .ui-modal-overlay */
.ui-modal-wrapper::before {
    content: '';
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    pointer-events: none;
}

/* Ocultar ::before quando existe backdrop explicito (evita sobreposição dupla) */
.ui-modal-wrapper:has(> .ui-modal-overlay)::before,
.ui-modal-wrapper:has(> .ui-modal-backdrop)::before {
    display: none;
}

.ui-modal-wrapper.hidden {
    display: none !important;
}

/* Backdrop explicito dentro de wrapper (override do ::before) */
.ui-modal-wrapper > .ui-modal-overlay,
.ui-modal-wrapper > .ui-modal-backdrop {
    position: absolute;
    inset: 0;
    z-index: auto;
    display: block;
    background-color: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    padding: 0;
}

/* ui-modal-content = alias para ui-modal-dialog */
.ui-modal-content {
    position: relative;
    z-index: 1;
    width: 100%;
    max-height: calc(100vh - 2rem);
    background-color: var(--color-white);
    border: 1px solid var(--color-gray-200, var(--color-gray-200));
    border-radius: var(--radius-xl, 0.75rem);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* Default max-width quando nenhuma classe Tailwind max-w-* é usada */
.ui-modal-content:not([class*="max-w-"]) {
    max-width: 28rem;
}

.dark .ui-modal-content {
    background-color: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-700, #2a2a4e);
}

/* .ui-modal como child direto de wrapper — vira dialog (nao overlay) */
.ui-modal-wrapper > .ui-modal {
    position: relative;
    inset: auto;
    z-index: 1;
    padding: 0;
    overflow: hidden;
    /* Herda visual de ui-modal-dialog */
    background-color: var(--color-white);
    border: 1px solid var(--color-gray-200, var(--color-gray-200));
    border-radius: var(--radius-xl, 0.75rem);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    width: 100%;
    max-width: 28rem;
    max-height: calc(100vh - 2rem);
    display: flex;
    flex-direction: column;
}

.dark .ui-modal-wrapper > .ui-modal {
    background-color: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-700, #2a2a4e);
}

/* .ui-modal dentro de ui-modal-dialog (ex: confirm-modal) — reset transparent */
.ui-modal-dialog .ui-modal {
    position: static;
    inset: auto;
    z-index: auto;
    padding: 0;
    overflow: visible;
    background: transparent;
    border: none;
    box-shadow: none;
    max-width: none;
    max-height: none;
    display: flex;
    flex-direction: column;
}

/* .ui-modal dentro de overlay — vira dialog */
.ui-modal-overlay > .ui-modal,
.ui-modal-container > .ui-modal {
    position: relative;
    inset: auto;
    z-index: 1;
    padding: 0;
    overflow: hidden;
    background-color: var(--color-white);
    border: 1px solid var(--color-gray-200, var(--color-gray-200));
    border-radius: var(--radius-xl, 0.75rem);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    width: 100%;
    max-width: 28rem;
    max-height: calc(100vh - 2rem);
    display: flex;
    flex-direction: column;
}

.dark .ui-modal-overlay > .ui-modal,
.dark .ui-modal-container > .ui-modal {
    background-color: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-700, #2a2a4e);
}

/* Tamanhos do .ui-modal aninhado via max-w-* do Tailwind */
.ui-modal-wrapper > .ui-modal.max-w-xs { max-width: 20rem; }
.ui-modal-wrapper > .ui-modal.max-w-sm { max-width: 24rem; }
.ui-modal-wrapper > .ui-modal.max-w-md { max-width: 28rem; }
.ui-modal-wrapper > .ui-modal.max-w-lg { max-width: 32rem; }
.ui-modal-wrapper > .ui-modal.max-w-xl { max-width: 36rem; }
.ui-modal-wrapper > .ui-modal.max-w-2xl { max-width: 42rem; }
.ui-modal-wrapper > .ui-modal.max-w-3xl { max-width: 48rem; }
.ui-modal-wrapper > .ui-modal.max-w-4xl { max-width: 56rem; }

/* ui-modal-content dentro de ui-modal (parent já é dialog visual) — reset */
.ui-modal > .ui-modal-content {
    position: static;
    border: none;
    box-shadow: none;
    background: transparent;
    border-radius: 0;
    max-width: none;
    max-height: none;
}

/* ============================================
   DROPDOWN - .ui-dropdown
   ============================================ */
.ui-dropdown {
    position: relative;
    display: inline-block;
}
.ui-dropdown-menu {
    position: absolute;
    top: 100%;
    z-index: var(--z-dropdown);
    min-width: 14rem;
    margin-top: 0.25rem;
    padding: 0.25rem 0;
    background-color: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
}
.ui-dropdown-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    color: var(--color-text-primary);
    background: transparent;
    border: none;
    cursor: pointer;
    text-align: left;
}
.ui-dropdown-item:hover {
    background-color: var(--color-bg-hover);
}
.dark .ui-dropdown-item:hover {
    background-color: var(--color-bg-hover);
}
.ui-dropdown-item-danger {
    color: var(--color-danger-600);
}
.ui-dropdown-item-danger:hover {
    background-color: var(--color-danger-50);
}
.dark .ui-dropdown-item-danger:hover {
    background-color: rgba(239, 68, 68, 0.1);
}
.ui-dropdown-divider {
    height: 1px;
    margin: 0.25rem 0;
    background-color: var(--color-border);
}
.ui-dropdown-label {
    padding: 0.375rem 1rem;
    font-size: 0.6875rem;
    font-weight: 600;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    pointer-events: none;
}

.dark .ui-dropdown-menu {
    background-color: var(--color-bg-card);
    border-color: var(--color-border);
}

/* ============================================
   TABS - .ui-tabs
   ============================================ */
.ui-tabs {
    display: flex;
    border-bottom: 1px solid var(--color-border);
    gap: 0.5rem;
}
.ui-tab {
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-text-secondary);
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    margin-bottom: -1px;
}
.ui-tab:hover {
    color: var(--color-text-primary);
}
.ui-tab.active,
.ui-tab[aria-selected="true"] {
    color: var(--color-primary-600);
    border-bottom-color: var(--color-primary-600);
}
.dark .ui-tab.active,
.dark .ui-tab[aria-selected="true"] {
    color: var(--color-primary-400);
    border-bottom-color: var(--color-primary-400);
}
.ui-tab-panel {
    padding: 1rem 0;
}
.ui-tab-panel[hidden] {
    display: none;
}

/* ============================================
   EMPTY STATE - .ui-empty
   ============================================ */
.ui-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    text-align: center;
}
.ui-empty-icon-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 1rem;
}
.ui-empty-icon {
    width: 4rem;
    height: 4rem;
    margin: 0 auto 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-gray-300);
}
.ui-empty-icon-wrapper > .ui-empty-icon {
    margin-bottom: 0;
}
.dark .ui-empty-icon {
    color: var(--color-gray-600);
}
.ui-empty-title {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: 0.5rem;
}
.ui-empty-message,
.ui-empty-description,
.ui-empty-text {
    font-size: 0.875rem;
    color: var(--color-text-secondary);
    margin-bottom: 1.5rem;
    max-width: 24rem;
}
.ui-empty-centered,
.ui-empty-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    text-align: center;
}
.ui-empty-icon-lg {
    width: 4rem;
    height: 4rem;
    margin-bottom: 1rem;
    color: var(--color-gray-300);
    display: flex;
    align-items: center;
    justify-content: center;
}
.dark .ui-empty-icon-lg {
    color: var(--color-gray-600);
}

/* Utility: Background muted */
.ui-bg-muted {
    background-color: var(--color-bg-muted);
}

/* ============================================
   PROGRESS - .ui-progress
   ============================================ */
.ui-progress {
    display: block;
    width: 100%;
    height: 0.5rem;
    background-color: var(--color-gray-200);
    border-radius: var(--radius-full);
    overflow: hidden;
}
.ui-progress-sm { height: 0.375rem; }
.ui-progress-md { height: 0.5rem; }
.ui-progress-lg { height: 0.75rem; }
.ui-progress-bar {
    height: 100%;
    background-color: var(--color-primary-600);
    border-radius: var(--radius-full);
    width: var(--progress-width, 0%) !important;
    transition: width 0.3s ease, all 0.5s ease;
}
.ui-progress-bar-success { background-color: var(--color-success-600); }
.ui-progress-bar-warning { background-color: var(--color-warning-500); }
.ui-progress-bar-danger { background-color: var(--color-danger-600); }
.ui-progress-bar-slate {
    background-color: var(--color-slate-500);
}
.dark .ui-progress-bar-slate {
    background-color: var(--color-slate-400);
}
.ui-progress-bar-gradient {
    background: linear-gradient(to right, var(--color-primary-500), var(--color-indigo-600));
}

.dark .ui-progress {
    background-color: var(--color-gray-700);
}

/* ============================================
   AVATAR - .ui-avatar
   ============================================ */
.ui-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background-color: var(--color-gray-200);
    color: var(--color-gray-600);
    font-weight: 600;
    font-size: 0.875rem;
    overflow: hidden;
}
.ui-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.ui-avatar-sm { width: 2rem; height: 2rem; font-size: 0.75rem; }
.ui-avatar-lg { width: 3rem; height: 3rem; font-size: 1rem; }
.ui-avatar-xl { width: 4rem; height: 4rem; font-size: 1.25rem; }

.dark .ui-avatar {
    background-color: var(--color-gray-700);
    color: var(--color-gray-300);
}

/* ============================================
   ICON BOX - .ui-icon-box
   ============================================ */
.ui-icon-box {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-lg);
    font-size: 1rem;
}
.ui-icon-box-sm { width: 2rem; height: 2rem; font-size: 0.875rem; }
.ui-icon-box-lg { width: 3rem; height: 3rem; font-size: 1.25rem; }

.ui-icon-box-primary { background-color: var(--color-primary-100); color: var(--color-primary-600); }
.ui-icon-box-success { background-color: var(--color-success-100); color: var(--color-success-600); }
.ui-icon-box-warning { background-color: var(--color-warning-100); color: var(--color-warning-600); }
.ui-icon-box-danger { background-color: var(--color-danger-100); color: var(--color-danger-600); }
.ui-icon-box-info { background-color: var(--color-info-100); color: var(--color-info-600); }
.ui-icon-box-purple { background-color: var(--color-purple-100); color: var(--color-purple-600); }
.ui-icon-box-emerald { background-color: var(--color-emerald-100); color: var(--color-emerald-600); }
.ui-icon-box-cyan { background-color: var(--color-cyan-100); color: var(--color-cyan-600); }
.ui-icon-box-amber { background-color: var(--color-amber-100); color: var(--color-amber-600); }

.dark .ui-icon-box-primary { background-color: rgba(var(--color-primary-rgb), 0.2); color: var(--color-primary-400); }
.dark .ui-icon-box-success { background-color: rgba(34, 197, 94, 0.2); color: var(--color-success-400); }
.dark .ui-icon-box-warning { background-color: rgba(245, 158, 11, 0.2); color: var(--color-warning-400); }
.dark .ui-icon-box-danger { background-color: rgba(239, 68, 68, 0.2); color: var(--color-danger-400); }
.dark .ui-icon-box-info { background-color: rgba(6, 182, 212, 0.2); color: var(--color-info-400); }
.dark .ui-icon-box-purple { background-color: rgba(168, 85, 247, 0.2); color: var(--color-purple-400); }
.dark .ui-icon-box-emerald { background-color: rgba(16, 185, 129, 0.2); color: var(--color-emerald-400); }
.dark .ui-icon-box-cyan { background-color: rgba(6, 182, 212, 0.2); color: var(--color-cyan-400); }
.dark .ui-icon-box-amber { background-color: rgba(245, 158, 11, 0.2); color: var(--color-amber-400); }

/* ============================================
   STATUS - .ui-status
   ============================================ */
.ui-status {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.875rem;
}
.ui-status-dot {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
}
.ui-status-success .ui-status-dot { background-color: var(--color-success-500); }
.ui-status-warning .ui-status-dot { background-color: var(--color-warning-500); }
.ui-status-danger .ui-status-dot { background-color: var(--color-danger-500); }
.ui-status-info .ui-status-dot { background-color: var(--color-info-500); }
.ui-status-neutral .ui-status-dot { background-color: var(--color-gray-400); }

/* ============================================
   DIVIDER - .ui-divider
   ============================================ */
.ui-divider {
    height: 1px;
    background-color: var(--color-border);
    margin: 1rem 0;
}
.dark .ui-divider {
    background-color: var(--color-gray-700);
}
/* ============================================
   LINK - .ui-link
   ============================================ */
.ui-link {
    color: var(--color-primary-600);
    text-decoration: none;
}
.ui-link:hover {
    opacity: 0.85;
}
.dark .ui-link {
    color: var(--color-primary-400);
}

/* ============================================
   TEXT UTILITIES
   ============================================ */
.ui-text-default { color: var(--color-text-primary); }
.ui-text-primary { color: var(--color-text-primary); }
.ui-text-secondary { color: var(--color-text-secondary); }
.ui-text-label { color: var(--color-text-label); }
.ui-text-muted { color: var(--color-text-muted); }
/* WCAG AA: 4.5:1 minimum contrast ratio */
.ui-text-disabled { color: var(--color-gray-500); }
.dark .ui-text-disabled { color: var(--color-gray-400); }
.ui-text-success { color: var(--color-success-600); }
.ui-text-warning { color: var(--color-warning-600); }
.ui-text-danger { color: var(--color-danger-600); }
.ui-text-info { color: var(--color-info-600); }

.dark .ui-text-success { color: var(--color-success-400); }
.dark .ui-text-warning { color: var(--color-warning-400); }
.dark .ui-text-danger { color: var(--color-danger-400); }
.dark .ui-text-info { color: var(--color-info-400); }

/* Text Sizes */
.ui-text-2xs { font-size: 0.625rem; line-height: 0.875rem; } /* 10px */
.ui-text-xs { font-size: 0.75rem; line-height: 1rem; } /* 12px */
.ui-text-sm { font-size: 0.875rem; line-height: 1.25rem; } /* 14px */
.ui-text-base { font-size: 1rem; line-height: 1.5rem; } /* 16px */
.ui-text-lg { font-size: 1.125rem; line-height: 1.75rem; } /* 18px */
.ui-text-xl { font-size: 1.25rem; line-height: 1.75rem; } /* 20px */
.ui-text-2xl { font-size: 1.5rem; line-height: 2rem; } /* 24px */
.ui-text-3xl { font-size: 1.875rem; line-height: 2.25rem; } /* 30px */

.ui-text-purple { color: var(--color-accent-600); }
.dark .ui-text-purple { color: var(--color-accent-300); }

/* Link text colors */
.ui-text-link { color: var(--color-primary-600); text-decoration: none; }
.ui-text-link-hover:hover { color: var(--color-primary-700); text-decoration: underline; }
.dark .ui-text-link { color: var(--color-primary-400); }
.dark .ui-text-link-hover:hover { color: var(--color-primary-300); }

/* Ring colors semânticas */
.ui-ring-primary { --tw-ring-color: var(--color-primary-500); }
.ui-ring-success { --tw-ring-color: var(--color-success-500); }
.ui-ring-danger { --tw-ring-color: var(--color-danger-500); }
.ui-ring-warning { --tw-ring-color: var(--color-warning-500); }
.ui-ring-info { --tw-ring-color: var(--color-info-500); }

/* Inline icon utility - para ícones dentro de texto corrido */
.ui-icon-inline {
    display: inline;
    vertical-align: middle;
    margin-right: 0.25rem;
}

/* Dot indicators */
.ui-dot {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    flex-shrink: 0;
    display: inline-block;
}
.ui-dot-primary { background-color: var(--color-primary-500, var(--color-primary-500)); }
.ui-dot-success { background-color: var(--color-success-500, var(--color-success-500)); }
.ui-dot-danger { background-color: var(--color-danger-500, var(--color-danger-500)); }
.ui-dot-warning { background-color: var(--color-warning-500, var(--color-warning-500)); }

/* Border color variants — inclui border-style e border-width para funcionar standalone */
.ui-border-default { border: 1px solid var(--color-border); }
.ui-border-top { border-top: 1px solid var(--color-border); }
.ui-border-input { border: 1px solid var(--color-border-input); }
.ui-border-light { border-color: var(--color-gray-200); }
.dark .ui-border-light { border-color: var(--color-gray-700); }
.ui-border-warning { border: 1px solid var(--color-warning-500, var(--color-warning-500)); }
.ui-border-danger { border: 1px solid var(--color-danger-500, var(--color-danger-500)); }
.ui-border-success { border: 1px solid var(--color-success-500, var(--color-success-500)); }
.ui-border-info { border: 1px solid var(--color-primary-500, var(--color-primary-500)); }
.ui-border-primary { border: 1px solid var(--color-primary-500, var(--color-primary-500)); }
.dark .ui-border-warning { border: 1px solid var(--color-warning-400, var(--color-warning-400)); }
.dark .ui-border-danger { border: 1px solid var(--color-danger-400, var(--color-danger-400)); }
.dark .ui-border-success { border: 1px solid var(--color-success-400, var(--color-success-400)); }
.dark .ui-border-info { border: 1px solid var(--color-primary-400, var(--color-primary-400)); }
.dark .ui-border-primary { border: 1px solid var(--color-primary-400, var(--color-primary-400)); }

/* Background color semantic variants */
.ui-bg-info { background-color: var(--color-primary-600, var(--color-primary-600)); }
.dark .ui-bg-info { background-color: var(--color-primary-500, var(--color-primary-500)); }

.ui-bg-info-light { background-color: var(--color-primary-50, #eff6ff); }
.dark .ui-bg-info-light { background-color: rgba(59, 130, 246, 0.1); }

.ui-bg-primary-light { background-color: var(--color-primary-50, #eff6ff); }
.dark .ui-bg-primary-light { background-color: rgba(59, 130, 246, 0.1); }

.ui-bg-success-light { background-color: var(--color-success-50, #f0fdf4); }
.dark .ui-bg-success-light { background-color: rgba(34, 197, 94, 0.1); }

.ui-bg-warning-light { background-color: var(--color-warning-50, #fffbeb); }
.dark .ui-bg-warning-light { background-color: rgba(245, 158, 11, 0.1); }

.ui-bg-danger-light { background-color: var(--color-danger-50, #fef2f2); }
.dark .ui-bg-danger-light { background-color: rgba(239, 68, 68, 0.1); }

/* Hover border primary — interactive card borders */
.ui-hover-border-primary {
    border: 1px solid var(--color-border);
}
.ui-hover-border-primary:hover {
    border-color: var(--color-primary-500);
}
.dark .ui-hover-border-primary {
    border-color: var(--color-gray-700);
}
.dark .ui-hover-border-primary:hover {
    border-color: var(--color-primary-400);
}

/* Border primary */
.ui-border-primary { border: 1px solid var(--color-primary-500); }
.dark .ui-border-primary { border-color: var(--color-primary-400); }

/* Shadow utilities */
.ui-shadow-sm { box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); }
.ui-shadow-md { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1); }
.ui-shadow-lg { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1); }
.ui-shadow-none { box-shadow: none; }

/* Disabled button state */
.ui-btn-disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

/* ============================================
   BACKGROUND UTILITIES
   ============================================ */
.ui-bg-primary { background-color: var(--color-bg-primary); }
.ui-bg-secondary { background-color: var(--color-bg-secondary); }
.ui-bg-card { background-color: var(--color-bg-card); }
.ui-bg-hover { background-color: var(--color-bg-hover); }
.ui-bg-subtle { background-color: var(--color-bg-subtle); }
.ui-bg-progress-track { background-color: var(--color-gray-200); }
.dark .ui-bg-progress-track { background-color: var(--color-gray-600); }

/* Semantic background utilities */
.ui-bg-success { background-color: var(--color-success-500); }
.ui-bg-warning { background-color: var(--color-warning-500); }
.ui-bg-danger { background-color: var(--color-danger-500); }
.dark .ui-bg-success { background-color: var(--color-success-600); }
.dark .ui-bg-warning { background-color: var(--color-warning-600); }
.dark .ui-bg-danger { background-color: var(--color-danger-600); }

/* Background pink — for plugin category indicators */
.ui-bg-pink { background-color: var(--color-primary-500, var(--color-primary-500)); }
.dark .ui-bg-pink { background-color: var(--color-primary-400, var(--color-primary-400)); }

/* Text cyan stat — for stat card values */
.ui-text-cyan-stat { color: var(--color-info-500); }
.dark .ui-text-cyan-stat { color: var(--color-info-400); }

/* Gradient hero background — hero sections com gradiente primário vibrante */
.ui-bg-gradient-hero {
    background: linear-gradient(135deg, var(--color-primary-600) 0%, var(--color-primary-800) 100%);
}
.dark .ui-bg-gradient-hero {
    background: linear-gradient(135deg, var(--color-primary-700) 0%, var(--color-primary-900) 100%);
}

/* Gradient muted background — card containers com fundo sutil */
.ui-bg-gradient-muted {
    background: linear-gradient(135deg, var(--color-gray-50) 0%, var(--color-white) 100%);
}
.dark .ui-bg-gradient-muted {
    background: linear-gradient(135deg, var(--color-gray-800) 0%, var(--color-gray-900) 100%);
}

/* Health card indicator backgrounds (Infraestrutura) */
.ui-health-card-green {
    background-color: var(--color-success-100);
}
.dark .ui-health-card-green {
    background-color: rgba(34, 197, 94, 0.15);
}

.ui-health-card-yellow {
    background-color: var(--color-warning-100);
}
.dark .ui-health-card-yellow {
    background-color: rgba(245, 158, 11, 0.15);
}

.ui-health-card-red {
    background-color: var(--color-danger-100);
}
.dark .ui-health-card-red {
    background-color: rgba(239, 68, 68, 0.15);
}

/* Stat card colored backgrounds — for hero/KPI cards with white text */
.ui-stat-card-info {
    background: linear-gradient(135deg, var(--color-info-500, var(--color-info-500)) 0%, var(--color-info-600, var(--color-info-600)) 100%);
}
.dark .ui-stat-card-info {
    background: linear-gradient(135deg, var(--color-info-600, var(--color-info-600)) 0%, var(--color-info-700, var(--color-info-700)) 100%);
}
.ui-stat-card-purple {
    background: linear-gradient(135deg, var(--color-accent-500) 0%, var(--color-accent-600) 100%);
}
.dark .ui-stat-card-purple {
    background: linear-gradient(135deg, var(--color-accent-600) 0%, var(--color-accent-700) 100%);
}
.ui-stat-card-success {
    background: linear-gradient(135deg, var(--color-success-500, var(--color-success-500)) 0%, var(--color-success-600, var(--color-success-600)) 100%);
}
.dark .ui-stat-card-success {
    background: linear-gradient(135deg, var(--color-success-600, var(--color-success-600)) 0%, var(--color-success-700, var(--color-success-700)) 100%);
}
.ui-stat-card-warning {
    background: linear-gradient(135deg, var(--color-warning-500, var(--color-warning-500)) 0%, var(--color-warning-600, var(--color-warning-700)) 100%);
}
.dark .ui-stat-card-warning {
    background: linear-gradient(135deg, var(--color-warning-600, var(--color-warning-700)) 0%, var(--color-warning-700, var(--color-warning-700)) 100%);
}
.ui-stat-card-primary {
    background: linear-gradient(135deg, var(--color-primary-500, var(--color-primary-500)) 0%, var(--color-primary-600, #db2777) 100%);
}
.dark .ui-stat-card-primary {
    background: linear-gradient(135deg, var(--color-primary-600, #db2777) 0%, var(--color-primary-700, var(--color-primary-700)) 100%);
}
.ui-stat-card-danger {
    background: linear-gradient(135deg, var(--color-danger-500, var(--color-danger-500)) 0%, var(--color-danger-600, var(--color-danger-600)) 100%);
}
.dark .ui-stat-card-danger {
    background: linear-gradient(135deg, var(--color-danger-600, var(--color-danger-600)) 0%, var(--color-danger-700, var(--color-danger-700)) 100%);
}

/* Light text variants — for use on colored backgrounds */
.ui-text-info-light { color: rgba(255, 255, 255, 0.85); }
.ui-text-purple-light { color: rgba(255, 255, 255, 0.85); }
.ui-text-success-light { color: rgba(255, 255, 255, 0.85); }
.ui-text-warning-light { color: rgba(255, 255, 255, 0.85); }
.ui-text-white-muted { color: rgba(255, 255, 255, 0.7); }

/* ============================================
   MISSING SEMANTIC BACKGROUNDS — gradient, muted, subtle variants
   ============================================ */
.ui-bg-gradient-primary {
    background: linear-gradient(135deg, var(--color-primary-500) 0%, var(--color-primary-700) 100%);
}
.dark .ui-bg-gradient-primary {
    background: linear-gradient(135deg, var(--color-primary-600) 0%, var(--color-primary-800) 100%);
}
.ui-bg-gradient-info {
    background: linear-gradient(135deg, var(--color-info-500, var(--color-info-500)) 0%, var(--color-info-700, var(--color-info-700)) 100%);
}
.dark .ui-bg-gradient-info {
    background: linear-gradient(135deg, var(--color-info-600, var(--color-info-600)) 0%, var(--color-info-800, #155e75) 100%);
}
.ui-bg-gradient-danger {
    background: linear-gradient(135deg, var(--color-danger-500) 0%, var(--color-danger-700) 100%);
}
.dark .ui-bg-gradient-danger {
    background: linear-gradient(135deg, var(--color-danger-600) 0%, var(--color-danger-800) 100%);
}
.ui-bg-gradient-danger-solid {
    background: var(--color-danger-600);
}
.dark .ui-bg-gradient-danger-solid {
    background: var(--color-danger-700);
}
.ui-bg-gradient-purple {
    background: linear-gradient(135deg, var(--color-accent-500) 0%, var(--color-accent-700) 100%);
}
.dark .ui-bg-gradient-purple {
    background: linear-gradient(135deg, var(--color-accent-600) 0%, #5b21b6 100%);
}
.ui-bg-gradient-warning {
    background: linear-gradient(135deg, var(--color-warning-500) 0%, var(--color-warning-700) 100%);
}
.dark .ui-bg-gradient-warning {
    background: linear-gradient(135deg, var(--color-warning-600) 0%, var(--color-warning-800) 100%);
}
.ui-bg-gradient-subtle {
    background: linear-gradient(135deg, var(--color-gray-50) 0%, var(--color-gray-100) 100%);
}
.dark .ui-bg-gradient-subtle {
    background: linear-gradient(135deg, var(--color-gray-800) 0%, var(--color-gray-900) 100%);
}

/* Muted/Soft/Subtle background variants */
.ui-bg-danger-dark { background-color: var(--color-danger-700); }
.dark .ui-bg-danger-dark { background-color: var(--color-danger-800); }
.ui-bg-danger-muted { background-color: var(--color-danger-100); }
.dark .ui-bg-danger-muted { background-color: rgba(239, 68, 68, 0.15); }
.ui-bg-danger-soft { background-color: var(--color-danger-50); }
.dark .ui-bg-danger-soft { background-color: rgba(239, 68, 68, 0.08); }
.ui-bg-danger-subtle { background-color: rgba(239, 68, 68, 0.06); }
.dark .ui-bg-danger-subtle { background-color: rgba(239, 68, 68, 0.06); }

.ui-bg-info-muted { background-color: var(--color-primary-100, var(--color-primary-100)); }
.dark .ui-bg-info-muted { background-color: rgba(59, 130, 246, 0.15); }
.ui-bg-info-soft { background-color: var(--color-primary-50, #eff6ff); }
.dark .ui-bg-info-soft { background-color: rgba(59, 130, 246, 0.08); }
.ui-bg-info-solid { background-color: var(--color-primary-600, var(--color-primary-600)); }
.dark .ui-bg-info-solid { background-color: var(--color-primary-500, var(--color-primary-500)); }
.ui-bg-info-subtle { background-color: rgba(59, 130, 246, 0.06); }
.dark .ui-bg-info-subtle { background-color: rgba(59, 130, 246, 0.06); }

.ui-bg-success-muted { background-color: var(--color-success-100); }
.dark .ui-bg-success-muted { background-color: rgba(34, 197, 94, 0.15); }
.ui-bg-success-subtle { background-color: rgba(34, 197, 94, 0.06); }
.dark .ui-bg-success-subtle { background-color: rgba(34, 197, 94, 0.06); }

.ui-bg-warning-muted { background-color: var(--color-warning-100); }
.dark .ui-bg-warning-muted { background-color: rgba(245, 158, 11, 0.15); }
.ui-bg-warning-soft { background-color: var(--color-warning-50); }
.dark .ui-bg-warning-soft { background-color: rgba(245, 158, 11, 0.08); }
.ui-bg-warning-subtle { background-color: rgba(245, 158, 11, 0.06); }
.dark .ui-bg-warning-subtle { background-color: rgba(245, 158, 11, 0.06); }

.ui-bg-purple-subtle { background-color: rgba(139, 92, 246, 0.06); }
.dark .ui-bg-purple-subtle { background-color: rgba(139, 92, 246, 0.06); }
.ui-bg-primary-dark { background-color: var(--color-primary-700); }
.dark .ui-bg-primary-dark { background-color: var(--color-primary-800); }
.ui-bg-primary-medium { background-color: var(--color-primary-500); }
.dark .ui-bg-primary-medium { background-color: var(--color-primary-600); }
.ui-bg-primary-subtle { background-color: rgba(236, 72, 153, 0.06); }
.dark .ui-bg-primary-subtle { background-color: rgba(236, 72, 153, 0.06); }
.ui-bg-yellow-light { background-color: var(--color-warning-100); }
.dark .ui-bg-yellow-light { background-color: rgba(234, 179, 8, 0.1); }
.ui-bg-accent-subtle { background-color: rgba(139, 92, 246, 0.06); }
.dark .ui-bg-accent-subtle { background-color: rgba(139, 92, 246, 0.06); }

/* ============================================
   MISSING TEXT COLOR VARIANTS
   ============================================ */
.ui-text-white { color: var(--color-white); }
.ui-text-inverse { color: var(--color-white, var(--color-white)); }
.dark .ui-text-inverse { color: var(--color-gray-900, #111827); }
.ui-text-on-primary { color: var(--color-white); }
.ui-text-fuchsia { color: var(--color-accent-500); }
.dark .ui-text-fuchsia { color: var(--color-accent-400); }
.ui-text-lime { color: var(--color-success-700); }
.dark .ui-text-lime { color: var(--color-success-500); }
.ui-text-orange { color: var(--color-warning-600); }
.dark .ui-text-orange { color: var(--color-warning-500); }
.ui-text-rose { color: var(--color-danger-600); }
.dark .ui-text-rose { color: var(--color-danger-400); }
.ui-text-sky { color: var(--color-info-600); }
.dark .ui-text-sky { color: var(--color-info-400); }
.ui-text-slate { color: var(--color-slate-600); }
.dark .ui-text-slate { color: var(--color-slate-400); }
.ui-text-stone { color: var(--color-gray-500); }
.dark .ui-text-stone { color: var(--color-gray-400); }
.ui-text-teal { color: var(--color-info-600); }
.dark .ui-text-teal { color: var(--color-info-400); }
.ui-text-zinc { color: var(--color-gray-600); }
.dark .ui-text-zinc { color: var(--color-gray-400); }

/* Specialized text color variants — compound names for semantic contexts */
.ui-text-amber-title { color: var(--color-warning-700); }
.dark .ui-text-amber-title { color: var(--color-warning-400); }
.ui-text-cyan-secondary { color: var(--color-info-700); }
.dark .ui-text-cyan-secondary { color: var(--color-info-300); }
.ui-text-indigo-secondary { color: var(--color-primary-700); }
.dark .ui-text-indigo-secondary { color: var(--color-primary-300); }
.ui-text-indigo-stat { color: var(--color-primary-600); }
.dark .ui-text-indigo-stat { color: var(--color-primary-400); }
.ui-text-pink-secondary { color: var(--color-primary-700); }
.dark .ui-text-pink-secondary { color: var(--color-primary-300); }
.ui-text-pink-stat { color: var(--color-primary-500); }
.dark .ui-text-pink-stat { color: var(--color-primary-400); }
.ui-text-purple-content { color: var(--color-accent-600); }
.dark .ui-text-purple-content { color: var(--color-accent-300); }
.ui-text-purple-title { color: var(--color-accent-700); }
.dark .ui-text-purple-title { color: var(--color-accent-400); }

/* Misc semantic backgrounds */
.ui-bg-title { background-color: var(--color-gray-700); }
.dark .ui-bg-title { background-color: var(--color-gray-500); }
.ui-bg-terminal { background-color: var(--color-slate-900); color: #cdd6f4; }
.dark .ui-bg-terminal { background-color: var(--color-slate-950); }

/* Table alignment helpers */
.ui-data-table-td-center { text-align: center; }
.ui-data-table-td-right { text-align: right; }
.ui-data-table-td-muted { color: var(--color-text-muted); font-size: 0.8125rem; }
.ui-data-table-th-center { text-align: center; }
.ui-data-table-th-right { text-align: right; }
.ui-data-table-body { }
.ui-data-table-row { }
.ui-data-table-row:hover { background-color: var(--color-bg-hover); }

/* Badge variants — status-specific */
.ui-badge-muted { background-color: var(--color-gray-100); color: var(--color-gray-600); }
.dark .ui-badge-muted { background-color: var(--color-gray-800); color: var(--color-gray-400); }
.ui-badge-overdue { background-color: var(--color-danger-100); color: var(--color-danger-700); }
.dark .ui-badge-overdue { background-color: rgba(239, 68, 68, 0.15); color: var(--color-danger-400); }
.ui-badge-refunded { background-color: var(--color-warning-100); color: var(--color-warning-700); }
.dark .ui-badge-refunded { background-color: rgba(245, 158, 11, 0.15); color: var(--color-warning-400); }
.ui-badge-rounded { border-radius: 9999px; }

/* Border divider/purple */
.ui-border-divider { border-color: var(--color-border); }
.ui-border-purple { border: 1px solid var(--color-accent-500); }
.dark .ui-border-purple { border: 1px solid var(--color-accent-400); }

/* Code blocks */
.ui-code { font-family: ui-monospace, monospace; font-size: 0.8125rem; background: var(--color-gray-100); padding: 0.125rem 0.375rem; border-radius: 0.25rem; }
.dark .ui-code { background: var(--color-gray-800); }
.ui-code-block { font-family: ui-monospace, monospace; font-size: 0.8125rem; background: var(--color-gray-50); padding: 0.75rem 1rem; border-radius: 0.5rem; overflow-x: auto; border: 1px solid var(--color-border); }
.dark .ui-code-block { background: var(--color-gray-900); }

/* Category icon backgrounds — light colored circles for icon containers */
.ui-category-icon-amber { background-color: rgba(245, 158, 11, 0.12); }
.dark .ui-category-icon-amber { background-color: rgba(245, 158, 11, 0.15); }
.ui-category-icon-blue { background-color: rgba(59, 130, 246, 0.12); }
.dark .ui-category-icon-blue { background-color: rgba(59, 130, 246, 0.15); }
.ui-category-icon-cyan { background-color: rgba(6, 182, 212, 0.12); }
.dark .ui-category-icon-cyan { background-color: rgba(6, 182, 212, 0.15); }
.ui-category-icon-indigo { background-color: rgba(99, 102, 241, 0.12); }
.dark .ui-category-icon-indigo { background-color: rgba(99, 102, 241, 0.15); }
.ui-category-icon-orange { background-color: rgba(249, 115, 22, 0.12); }
.dark .ui-category-icon-orange { background-color: rgba(249, 115, 22, 0.15); }
.ui-category-icon-pink { background-color: rgba(236, 72, 153, 0.12); }
.dark .ui-category-icon-pink { background-color: rgba(236, 72, 153, 0.15); }
.ui-category-icon-purple { background-color: rgba(139, 92, 246, 0.12); }
.dark .ui-category-icon-purple { background-color: rgba(139, 92, 246, 0.15); }
.ui-category-icon-red { background-color: rgba(239, 68, 68, 0.12); }
.dark .ui-category-icon-red { background-color: rgba(239, 68, 68, 0.15); }
.ui-category-icon-slate { background-color: rgba(100, 116, 139, 0.12); }
.dark .ui-category-icon-slate { background-color: rgba(100, 116, 139, 0.15); }
.ui-category-icon-teal { background-color: rgba(20, 184, 166, 0.12); }
.dark .ui-category-icon-teal { background-color: rgba(20, 184, 166, 0.15); }

/* Channel badge backgrounds */
.ui-channel-badge { display: inline-flex; align-items: center; padding: 0.125rem 0.5rem; border-radius: 9999px; font-size: 0.75rem; font-weight: 500; }
.ui-channel-badge-amber { background-color: rgba(245, 158, 11, 0.12); color: var(--color-warning-700); }
.dark .ui-channel-badge-amber { background-color: rgba(245, 158, 11, 0.15); color: var(--color-warning-400); }
.ui-channel-badge-blue { background-color: rgba(59, 130, 246, 0.12); color: var(--color-primary-600); }
.dark .ui-channel-badge-blue { background-color: rgba(59, 130, 246, 0.15); color: var(--color-primary-400); }
.ui-channel-badge-emerald { background-color: rgba(16, 185, 129, 0.12); color: var(--color-success-600); }
.dark .ui-channel-badge-emerald { background-color: rgba(16, 185, 129, 0.15); color: var(--color-success-400); }
.ui-channel-badge-green { background-color: rgba(34, 197, 94, 0.12); color: var(--color-success-600); }
.dark .ui-channel-badge-green { background-color: rgba(34, 197, 94, 0.15); color: var(--color-success-400); }
.ui-channel-badge-slate { background-color: rgba(100, 116, 139, 0.12); color: var(--color-slate-600); }
.dark .ui-channel-badge-slate { background-color: rgba(100, 116, 139, 0.15); color: var(--color-slate-400); }
.ui-channel-badge-violet { background-color: rgba(139, 92, 246, 0.12); color: var(--color-accent-600); }
.dark .ui-channel-badge-violet { background-color: rgba(139, 92, 246, 0.15); color: var(--color-accent-400); }

/* Animation */
.ui-animate-spin { animation: ui-spin 1s linear infinite; }
@keyframes ui-spin { to { transform: rotate(360deg); } }

/* Focus ring */
.ui-focus-ring:focus { outline: 2px solid var(--color-primary-500); outline-offset: 2px; }
.dark .ui-focus-ring:focus { outline-color: var(--color-primary-400); }

/* Flex shrink */
.ui-flex-shrink-0 { flex-shrink: 0; }

/* Checkbox inline */
.ui-checkbox-inline { display: inline-flex; align-items: center; gap: 0.5rem; }

/* Alert text variants */
.ui-alert-info-text { color: var(--color-primary-700); }
.dark .ui-alert-info-text { color: var(--color-primary-300); }
.ui-alert-warning-text { color: var(--color-warning-700); }
.dark .ui-alert-warning-text { color: var(--color-warning-300); }

/* Spacing ui-mt-* / ui-mb-* → definidos em design-tokens.css com !important */

/* ============================================
   FLEX UTILITIES
   ============================================ */
.ui-flex { display: flex; }
.ui-inline-flex { display: inline-flex; }
.ui-block { display: block; }
.ui-inline-block { display: inline-block; }
.ui-hidden { display: none; }
.ui-flex-col { flex-direction: column; }
.ui-flex-row { flex-direction: row; }
.ui-flex-wrap { flex-wrap: wrap; }
.ui-flex-1 { flex: 1 1 0%; }
.ui-shrink-0 { flex-shrink: 0; }
.ui-items-center { align-items: center; }
.ui-items-start { align-items: flex-start; }
.ui-items-end { align-items: flex-end; }
.ui-justify-between { justify-content: space-between; }
.ui-justify-center { justify-content: center; }
.ui-justify-end { justify-content: flex-end; }

/* Position */
.ui-relative { position: relative; }
.ui-absolute { position: absolute; }

/* Overflow */
.ui-overflow-hidden { overflow: hidden; }
.ui-overflow-x-auto { overflow-x: auto; }

/* Misc utilities */
.ui-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ui-whitespace-nowrap { white-space: nowrap; }
.ui-cursor-pointer { cursor: pointer; }
.ui-min-w-0 { min-width: 0; }
.ui-w-full { width: 100%; }
.ui-h-full { height: 100%; }

/* ui-gap-* → definidos na seção Spacing System abaixo */

/* Flex Combinations (padrões mais usados) */
.ui-flex-row-center {
    display: flex;
    align-items: center;
}
/* ============================================
   GRID UTILITIES
   ============================================ */
.ui-grid { display: grid; }
.ui-grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }

/* mobile-first: 1 coluna por padrão, expande em telas maiores */
.ui-grid-cols-2 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
@media (min-width: 768px) {
    .ui-grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.ui-grid-cols-3 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
@media (min-width: 640px) {
    .ui-grid-cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
    .ui-grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.ui-grid-cols-4 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
@media (min-width: 640px) {
    .ui-grid-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
    .ui-grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.ui-grid-cols-5 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.ui-grid-cols-6 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.ui-grid-cols-7 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
@media (min-width: 480px) {
    .ui-grid-cols-5,
    .ui-grid-cols-6,
    .ui-grid-cols-7 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (min-width: 768px) {
    .ui-grid-cols-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ui-grid-cols-6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ui-grid-cols-7 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
    .ui-grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .ui-grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .ui-grid-cols-7 { grid-template-columns: repeat(7, minmax(0, 1fr)); }
}

@media (min-width: 640px) {
    .ui-sm-grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ui-sm-grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 768px) {
    .ui-md-grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ui-md-grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ui-md-grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .ui-md-grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .ui-md-grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
    .ui-lg-grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ui-lg-grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ui-lg-grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .ui-lg-grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .ui-lg-grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .ui-lg-grid-cols-7 { grid-template-columns: repeat(7, minmax(0, 1fr)); }
    .ui-lg-col-span-2 { grid-column: span 2 / span 2; }
    .ui-lg-col-span-3 { grid-column: span 3 / span 3; }
    .ui-lg-order-first { order: -1; }
    .ui-lg-order-last { order: 9999; }
}

@media (min-width: 1280px) {
    .ui-xl-grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .ui-xl-grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .ui-xl-grid-cols-7 { grid-template-columns: repeat(7, minmax(0, 1fr)); }
}

/* ============================================
   VISIBILITY UTILITIES
   ============================================ */
.ui-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ============================================
   SIZING UTILITIES
   ============================================ */
.ui-pattern-container {
    position: relative;
    width: 240px;
    height: 240px;
}

/* ============================================
   BORDER RADIUS UTILITIES
   ============================================ */
.ui-rounded-card {
    border-radius: var(--card-border-radius, 1rem);
}
.ui-rounded-sm {
    border-radius: var(--radius-sm, 0.25rem);
}
.ui-rounded-md {
    border-radius: var(--radius-md, 0.375rem);
}
.ui-rounded-lg {
    border-radius: var(--radius-lg, 0.5rem);
}
.ui-rounded-xl {
    border-radius: var(--radius-xl, 0.75rem);
}
.ui-rounded-full {
    border-radius: var(--radius-full, 9999px);
}

/* Directional rounding */
.ui-rounded-t { border-top-left-radius: var(--radius-md, 0.375rem); border-top-right-radius: var(--radius-md, 0.375rem); }
.ui-rounded-b { border-bottom-left-radius: var(--radius-md, 0.375rem); border-bottom-right-radius: var(--radius-md, 0.375rem); }
.ui-rounded-l { border-top-left-radius: var(--radius-md, 0.375rem); border-bottom-left-radius: var(--radius-md, 0.375rem); }
.ui-rounded-r { border-top-right-radius: var(--radius-md, 0.375rem); border-bottom-right-radius: var(--radius-md, 0.375rem); }

/* ============================================
   SIZE UTILITIES — ui-w-* / ui-h-*
   Equivalentes às classes Tailwind w-* / h-*
   ============================================ */
.ui-w-1 { width: 0.25rem; }
.ui-w-2 { width: 0.5rem; }
.ui-w-3 { width: 0.75rem; }
.ui-w-4 { width: 1rem; }
.ui-w-5 { width: 1.25rem; }
.ui-w-6 { width: 1.5rem; }
.ui-w-7 { width: 1.75rem; }
.ui-w-8 { width: 2rem; }
.ui-w-9 { width: 2.25rem; }
.ui-w-10 { width: 2.5rem; }
.ui-w-11 { width: 2.75rem; }
.ui-w-12 { width: 3rem; }
.ui-w-14 { width: 3.5rem; }
.ui-w-16 { width: 4rem; }
.ui-w-20 { width: 5rem; }
.ui-w-24 { width: 6rem; }
.ui-w-32 { width: 8rem; }
.ui-w-48 { width: 12rem; }
.ui-w-64 { width: 16rem; }

.ui-h-1 { height: 0.25rem; }
.ui-h-2 { height: 0.5rem; }
.ui-h-3 { height: 0.75rem; }
.ui-h-4 { height: 1rem; }
.ui-h-5 { height: 1.25rem; }
.ui-h-6 { height: 1.5rem; }
.ui-h-7 { height: 1.75rem; }
.ui-h-8 { height: 2rem; }
.ui-h-9 { height: 2.25rem; }
.ui-h-10 { height: 2.5rem; }
.ui-h-11 { height: 2.75rem; }
.ui-h-12 { height: 3rem; }
.ui-h-14 { height: 3.5rem; }
.ui-h-16 { height: 4rem; }
.ui-h-20 { height: 5rem; }
.ui-h-24 { height: 6rem; }
.ui-h-32 { height: 8rem; }
.ui-h-64 { height: 16rem; }
.ui-h-72 { height: 18rem; }

/* ============================================
   DIVIDER UTILITIES
   ============================================ */
.ui-card-header-divider {
    border-bottom: 1px solid var(--color-gray-200);
}
.dark .ui-card-header-divider {
    border-bottom-color: var(--color-gray-700);
}

/* ============================================
   TRANSITION UTILITIES
   ============================================ */
.ui-transition {
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

/* ============================================
   STAT CARDS - .ui-stat-card
   Cards de estatísticas — usa tokens semânticos
   ============================================ */
.ui-stat-card {
    background-color: var(--color-bg-card);
    background-image: none;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg, 0.5rem);
    padding: 1.25rem 1.5rem;
    position: relative;
    overflow: hidden;
    color: var(--color-text-primary);
}
.dark .ui-stat-card {
    background-color: var(--color-bg-card) !important;
    background-image: none !important;
    border-color: var(--color-border) !important;
    color: var(--color-text-primary) !important;
}

.ui-stat-card-title,
.ui-stat-label {
    font-size: 0.6875rem;
    font-weight: 500;
    color: var(--color-gray-500, #6b7280);
    margin-bottom: 0.25rem;
    display: block;
}
@media (min-width: 768px) {
    .ui-stat-card-title,
    .ui-stat-label {
        font-size: var(--font-size-sm);
    }
}
.dark .ui-stat-card-title,
.dark .ui-stat-label {
    color: var(--color-gray-400, #9ca3af);
}

.ui-stat-card-value,
.ui-stat-value {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--color-gray-900, #0f0f22);
    display: block;
}
@media (min-width: 768px) {
    .ui-stat-card-value,
    .ui-stat-value {
        font-size: var(--font-size-2xl);
    }
}
.dark .ui-stat-card-value,
.dark .ui-stat-value {
    color: var(--color-gray-100, var(--color-gray-100));
}

.ui-stat-card-footer {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--color-gray-100, var(--color-gray-100));
    font-size: 0.8125rem;
    color: var(--color-gray-500, #6b7280);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.375rem;
}
.ui-stat-card-footer > :last-child:not(:first-child) {
    margin-left: auto;
}
.dark .ui-stat-card-footer {
    color: var(--color-gray-400, #9ca3af);
    border-top-color: var(--color-gray-700, #2a2a4e);
}

/* TYPOGRAPHY — definições canônicas na seção Text Colors/Sizes acima */
/* Font weight e line-height utilities */
.ui-font-normal { font-weight: 400; }
.ui-font-medium { font-weight: 500; }
.ui-font-semibold { font-weight: 600; }
.ui-font-bold { font-weight: 700; }

.ui-leading-none { line-height: 1; }
.ui-leading-tight { line-height: 1.25; }
.ui-leading-normal { line-height: 1.5; }
.ui-leading-relaxed { line-height: 1.625; }

.ui-tracking-tight { letter-spacing: -0.025em; }
.ui-tracking-normal { letter-spacing: 0; }
.ui-tracking-wide { letter-spacing: 0.025em; }

/* ============================================
   TOAST/NOTIFICATION - .ui-toast
   ============================================ */
.ui-toast-container {
    position: fixed;
    z-index: var(--z-max);
    pointer-events: none;
    padding: 1rem;
}
.ui-toast-container-top-right {
    top: 0;
    right: 0;
}
.ui-toast-container-top-left {
    top: 0;
    left: 0;
}
.ui-toast-container-bottom-right {
    bottom: 0;
    right: 0;
}
.ui-toast-container-bottom-left {
    bottom: 0;
    left: 0;
}
.ui-toast-container-top-center {
    top: 0;
    left: 50%;
    transform: translateX(-50%);
}

.ui-toast {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    min-width: 300px;
    max-width: 400px;
    padding: 1rem;
    margin-bottom: 0.75rem;
    background-color: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
    pointer-events: auto;
    animation: ui-toast-slide-in 0.3s ease;
}
@keyframes ui-toast-slide-in {
    from {
        opacity: 0;
        transform: translateX(100%);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.ui-toast-icon {
    flex-shrink: 0;
    width: 1.5rem;
    height: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}
.ui-toast-content {
    flex: 1;
    min-width: 0;
}
.ui-toast-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: 0.25rem;
}
.ui-toast-message {
    font-size: 0.875rem;
    color: var(--color-text-secondary);
}
.ui-toast-close {
    flex-shrink: 0;
    width: 1.5rem;
    height: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    border-radius: var(--radius-md);
    color: var(--color-gray-400);
    cursor: pointer;
}
.ui-toast-close:hover {
    background-color: var(--color-gray-100);
    color: var(--color-gray-600);
}

/* Toast Variants */
.ui-toast-success {
    border-left: 4px solid var(--color-success-500);
}
.ui-toast-success .ui-toast-icon {
    background-color: var(--color-success-100);
    color: var(--color-success-600);
}
.ui-toast-error,
.ui-toast-danger {
    border-left: 4px solid var(--color-danger-500);
}
.ui-toast-error .ui-toast-icon,
.ui-toast-danger .ui-toast-icon {
    background-color: var(--color-danger-100);
    color: var(--color-danger-600);
}
.ui-toast-warning {
    border-left: 4px solid var(--color-warning-500);
}
.ui-toast-warning .ui-toast-icon {
    background-color: var(--color-warning-100);
    color: var(--color-warning-600);
}
.ui-toast-info {
    border-left: 4px solid var(--color-info-500);
}
.ui-toast-info .ui-toast-icon {
    background-color: var(--color-info-100);
    color: var(--color-info-600);
}

.dark .ui-toast {
    background-color: var(--color-gray-800);
    border-color: var(--color-gray-700);
}
.dark .ui-toast-close:hover {
    background-color: var(--color-gray-700);
    color: var(--color-gray-300);
}
.dark .ui-toast-success .ui-toast-icon {
    background-color: rgba(34, 197, 94, 0.2);
    color: var(--color-success-400);
}
.dark .ui-toast-error .ui-toast-icon,
.dark .ui-toast-danger .ui-toast-icon {
    background-color: rgba(239, 68, 68, 0.2);
    color: var(--color-danger-400);
}
.dark .ui-toast-warning .ui-toast-icon {
    background-color: rgba(245, 158, 11, 0.2);
    color: var(--color-warning-400);
}
.dark .ui-toast-info .ui-toast-icon {
    background-color: rgba(6, 182, 212, 0.2);
    color: var(--color-info-400);
}

/* ============================================
   INPUT GROUP - Input com ícone
   ============================================ */
.ui-input-group {
    position: relative;
    display: flex;
    align-items: center;
}
.ui-input-group .ui-input {
    padding-left: 2.5rem;
}
.ui-input-group .ui-input-icon {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-gray-400);
    pointer-events: none;
    z-index: 1;
}
.ui-input-group-right .ui-input {
    padding-left: 0.75rem;
    padding-right: 2.5rem;
}
.ui-input-group-right .ui-input-icon {
    left: auto;
    right: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
}

/* Input com addon (prefix/suffix) */
.ui-input-addon {
    display: flex;
    align-items: center;
    padding: 0 0.75rem;
    height: var(--input-height-md);
    background-color: var(--color-gray-100);
    border: 1px solid var(--color-gray-300);
    color: var(--color-gray-600);
    font-size: 0.875rem;
}
.ui-input-addon-left {
    border-right: none;
    border-radius: var(--radius-md) 0 0 var(--radius-md);
}
.ui-input-addon-right {
    border-left: none;
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
}
.ui-input-addon + .ui-input {
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
}
.ui-input + .ui-input-addon {
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
}
.ui-input-addon + .ui-input {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.dark .ui-input-addon {
    background-color: var(--color-gray-700);
    border-color: var(--color-gray-600);
    color: var(--color-gray-400);
}

/* Form input with icon (used in security.php etc.) */

/* Utilities width */
.ui-w-auto { width: auto; }

/* Padding utilities → definidos na seção Spacing System */
.ui-pt-3 { padding-top: 0.75rem; }
.ui-pb-3 { padding-bottom: 0.75rem; }

/* Border utilities */
.ui-border-t { border-top: 1px solid var(--color-border); }
.ui-border-b { border-bottom: 1px solid var(--color-border); }

/* Divide utilities */
.ui-divide-default > * + * { border-top: 1px solid var(--color-border); }

/* Space utilities */
.ui-space-y-0 > * + * { margin-top: 0; }
.ui-space-y-1 > * + * { margin-top: 0.25rem; }
.ui-space-y-2 > * + * { margin-top: 0.5rem; }
.ui-space-y-3 > * + * { margin-top: 0.75rem; }
.ui-space-y-4 > * + * { margin-top: 1rem; }
.ui-space-y-5 > * + * { margin-top: 1.25rem; }
.ui-space-y-6 > * + * { margin-top: 1.5rem; }
.ui-space-y-8 > * + * { margin-top: 2rem; }
.ui-space-y-10 > * + * { margin-top: 2.5rem; }

/* Overflow */
.ui-overflow-auto { overflow: auto; }

/* Table wrapper: card with rounded corners + horizontal scroll for responsiveness */
.ui-table-wrapper {
    overflow-x: auto;
}

/* Card wrapper pattern for tables: the card clips border-radius, inner div scrolls */
.ui-card-table > .ui-table-wrapper,
.ui-card > .ui-table-wrapper {
    border-radius: inherit;
}

/* Input with icon utility — override .ui-input padding for icon space.
   Tailwind's pl-*/pr-* are overridden by .ui-input because custom CSS loads
   after tailwind.css. These compound selectors (.ui-input.pl-10) have higher
   specificity (0-2-0) and restore the correct padding. */
.ui-input-icon-left,
.ui-input.pl-10 { padding-left: 2.5rem; }
.ui-input.pl-9 { padding-left: 2.25rem; }
.ui-input.pl-8 { padding-left: 2rem; }
.ui-input-icon-right,
.ui-input.pr-10 { padding-right: 2.5rem; }
.ui-input.pr-9 { padding-right: 2.25rem; }
.ui-input.pr-8 { padding-right: 2rem; }
.ui-input-icon-both { padding-left: 2.5rem; padding-right: 2.5rem; }

/* Icon sizes */
.ui-icon-xs { font-size: 0.75rem; }
.ui-icon-sm { font-size: 0.875rem; }
.ui-icon-md { font-size: 1rem; }
.ui-icon-lg { font-size: 1.25rem; }
.ui-icon-xl { font-size: 1.5rem; }

/* Text colors */
.ui-text-red { color: var(--color-danger-500); }
.ui-text-green { color: var(--color-success-500); }
.ui-text-yellow { color: var(--color-warning-500); }
.ui-text-blue { color: var(--color-primary-500); }
.dark .ui-text-red { color: var(--color-danger-400); }
.dark .ui-text-green { color: var(--color-success-400); }
.dark .ui-text-yellow { color: var(--color-warning-400); }
.dark .ui-text-blue { color: var(--color-primary-400); }

/* Status indicators */
.ui-status-active,
.ui-status-inactive {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.8125rem;
}
.ui-status-dot {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
}
.ui-status-dot-green { background-color: var(--color-success-500); }
.ui-status-dot-gray { background-color: var(--color-gray-400); }
.ui-status-dot-red { background-color: var(--color-danger-500); }
.ui-status-dot-yellow { background-color: var(--color-warning-500); }
.dark .ui-status-dot-green { background-color: var(--color-success-400); }
.dark .ui-status-dot-gray { background-color: var(--color-gray-500); }
.dark .ui-status-dot-red { background-color: var(--color-danger-400); }
.dark .ui-status-dot-yellow { background-color: var(--color-warning-400); }

/* Gateway logo */
.ui-gateway-logo {
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 700;
    color: white;
    border-radius: var(--radius-lg);
    background-color: var(--color-primary-600);
}
.ui-gateway-logo-blue { background-color: var(--color-primary-600); }
.ui-gateway-logo-orange { background-color: var(--color-orange-500); }
.ui-gateway-logo-cyan { background-color: var(--color-info-600); }
.ui-gateway-logo-purple { background-color: var(--color-purple-600); }
.ui-gateway-logo-green { background-color: var(--color-success-600); }
.ui-gateway-logo-slate { background-color: var(--color-slate-600); }

/* Method tag */
.ui-method-tag {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.375rem;
    font-size: 0.625rem;
    font-weight: 500;
    color: var(--color-gray-600);
    background-color: var(--color-gray-100);
    border-radius: var(--radius-sm);
}
.dark .ui-method-tag {
    color: var(--color-gray-300);
    background-color: var(--color-gray-700);
}

/* Expandable card */
.ui-card-expandable-header {
    padding: 1rem;
    cursor: pointer;
    transition: background-color 0.15s ease;
}
.ui-card-expandable-header:hover {
    background-color: var(--color-gray-50);
}
.dark .ui-card-expandable-header:hover {
    background-color: var(--color-gray-800);
}
.ui-card-expandable-body {
    border-top: 1px solid var(--color-border);
}

/* Chevron rotation */
.ui-chevron {
    transition: transform 0.2s ease;
    color: var(--color-gray-400);
}
.ui-chevron.rotated {
    transform: rotate(180deg);
}

/* Section header */
.ui-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

/* Text title (para dark mode) */
.ui-text-title {
    color: var(--color-text-primary);
}

/* Alert info box (custom) */
.ui-alert-info {
    display: flex;
    gap: 0.75rem;
    padding: 1rem;
    background-color: var(--color-info-50);
    border: 1px solid var(--color-info-200);
    border-radius: var(--radius-lg);
    color: var(--color-info-800);
}
.ui-alert-info .ui-alert-icon {
    color: var(--color-info-500);
}
.dark .ui-alert-info {
    background-color: rgba(6, 182, 212, 0.1);
    border-color: rgba(6, 182, 212, 0.2);
    color: var(--color-info-300);
}
.ui-alert-info-icon {
    color: var(--color-info-500);
    flex-shrink: 0;
}
.ui-alert-info-title {
    font-weight: 600;
    margin-bottom: 0.25rem;
}
.ui-alert-info-code {
    display: block;
    margin-top: 0.5rem;
    padding: 0.5rem 0.75rem;
    font-size: 0.8125rem;
    font-family: monospace;
    background-color: var(--color-info-100);
    border-radius: var(--radius-md);
    word-break: break-all;
}
.dark .ui-alert-info-code {
    background-color: rgba(6, 182, 212, 0.15);
}

/* ============================================
   ACCORDION - Acordeões Padronizados
   ============================================ */
.ui-accordion {
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-lg);
    overflow: hidden;
}
.dark .ui-accordion {
    border-color: var(--color-gray-700);
}

.ui-accordion-item {
    border-bottom: 1px solid var(--color-gray-200);
}
.dark .ui-accordion-item {
    border-color: var(--color-gray-700);
}
.ui-accordion-item:last-child {
    border-bottom: none;
}

.ui-accordion-header {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 1rem 1.25rem;
    text-align: left;
    background-color: transparent;
    border: none;
    cursor: pointer;
    transition: background-color 0.15s ease;
}
.ui-accordion-header:hover {
    background-color: var(--color-gray-50);
}
.dark .ui-accordion-header:hover {
    background-color: var(--color-gray-800);
}

.ui-accordion-icon {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-right: 1rem;
    color: var(--color-white);
}
.ui-accordion-icon.primary { background-color: var(--color-primary-600); }
.ui-accordion-icon.success { background-color: var(--color-success-600); }
.ui-accordion-icon.warning { background-color: var(--color-warning-600); }
.ui-accordion-icon.danger { background-color: var(--color-danger-600); }
.ui-accordion-icon.info { background-color: var(--color-info-600); }
.ui-accordion-icon.purple { background-color: var(--color-purple-600); }
.ui-accordion-icon.gray { background-color: var(--color-gray-500); }
.ui-accordion-icon.emerald { background-color: var(--color-emerald-600); }
.ui-accordion-icon.orange { background-color: var(--color-orange-600); }

.ui-accordion-content {
    flex: 1;
}
.ui-accordion-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-gray-900);
    margin-bottom: 0.125rem;
}
.dark .ui-accordion-title {
    color: var(--color-gray-100);
}
.ui-accordion-desc {
    font-size: 0.8125rem;
    color: var(--color-gray-500);
}
.dark .ui-accordion-desc {
    color: var(--color-gray-400);
}

.ui-accordion-chevron {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    color: var(--color-gray-400);
    background-color: var(--color-gray-100);
    transition: all 0.2s ease;
}
.dark .ui-accordion-chevron {
    background-color: var(--color-gray-700);
    color: var(--color-gray-400);
}
.ui-accordion-header:hover .ui-accordion-chevron {
    background-color: var(--color-gray-200);
}
.dark .ui-accordion-header:hover .ui-accordion-chevron {
    background-color: var(--color-gray-600);
}
.ui-accordion-chevron.open {
    transform: rotate(180deg);
}

.ui-accordion-body {
    padding: 0 1.25rem 1.25rem;
    display: none;
}
.ui-accordion-body.open {
    display: block;
}

/* Badge no accordion */
.ui-accordion-badge {
    margin-left: 0.75rem;
}

/* ============================================
   CARD COLLAPSIBLE - Variante Colapsável
   Alias para ui-accordion para compatibilidade
   ============================================ */
.ui-card-collapsible {
    background-color: var(--color-bg-card);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-lg);
    margin-bottom: 1.5rem;
    overflow: hidden;
}
.dark .ui-card-collapsible {
    background-color: var(--color-gray-800);
    border-color: var(--color-gray-700);
}

/* Acordeons dentro de card principal */
.ui-card > .ui-card-collapsible {
    background-color: transparent;
    border-radius: 0;
    border: none;
    border-bottom: 1px solid var(--color-gray-200);
    margin-bottom: 0;
}
.dark .ui-card > .ui-card-collapsible {
    border-bottom-color: var(--color-gray-700) !important;
}

/* Espaçamento entre acordeons via padding no header */
.ui-card > .ui-card-collapsible .ui-card-collapsible-header {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
}

/* Último acordeon sem borda inferior */
.ui-card > .ui-card-collapsible:last-child {
    border-bottom: none;
}

.ui-card-collapsible-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    cursor: default;
    transition: background-color 0.15s ease;
}
/* Hover removed - only toggle button is interactive */

.ui-card-collapsible-info {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex: 1;
}

.ui-card-collapsible-icon {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--color-white);
}
.ui-card-collapsible-icon i,
.ui-card-collapsible-icon svg {
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

/* Icon Colors - Base + 6 variantes semânticas com CSS variables + dark mode */
.ui-icon-bg-primary,
.ui-icon-bg-secondary,
.ui-icon-bg-success,
.ui-icon-bg-warning,
.ui-icon-bg-danger,
.ui-icon-bg-info {
    width: 2.75rem;
    height: 2.75rem;
    min-width: 2.75rem;
    border-radius: var(--radius-lg);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.125rem;
}

.ui-icon-bg-primary { background-color: var(--color-primary-600); color: var(--color-white); }
.dark .ui-icon-bg-primary { background-color: var(--color-primary-500); }

.ui-icon-bg-secondary { background-color: var(--color-gray-500); color: var(--color-white); }
.dark .ui-icon-bg-secondary { background-color: var(--color-gray-600); }

.ui-icon-bg-success { background-color: var(--color-success-600); color: var(--color-white); }
.dark .ui-icon-bg-success { background-color: var(--color-success-500); }

.ui-icon-bg-warning { background-color: var(--color-warning-500); color: var(--color-white); }
.dark .ui-icon-bg-warning { background-color: var(--color-warning-400); }

.ui-icon-bg-danger { background-color: var(--color-danger-600); color: var(--color-white); }
.dark .ui-icon-bg-danger { background-color: var(--color-danger-500); }

.ui-icon-bg-info { background-color: var(--color-info-600); color: var(--color-white); }
.dark .ui-icon-bg-info { background-color: var(--color-info-500); }

/* Light/Pastel Icon Backgrounds - fundo claro + texto colorido (para ícones em contextos claros) */
.ui-icon-bg-primary-light,
.ui-icon-bg-secondary-light,
.ui-icon-bg-success-light,
.ui-icon-bg-warning-light,
.ui-icon-bg-danger-light,
.ui-icon-bg-info-light {
    width: 2.75rem;
    height: 2.75rem;
    min-width: 2.75rem;
    border-radius: var(--radius-lg);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.125rem;
}

.ui-icon-bg-primary-light { background-color: var(--color-primary-100); color: var(--color-primary-600); }
.dark .ui-icon-bg-primary-light { background-color: color-mix(in srgb, var(--color-primary-500) 20%, transparent); color: var(--color-primary-400); }

.ui-icon-bg-secondary-light { background-color: var(--color-gray-100); color: var(--color-gray-600); }
.dark .ui-icon-bg-secondary-light { background-color: color-mix(in srgb, var(--color-gray-500) 20%, transparent); color: var(--color-gray-400); }

.ui-icon-bg-success-light { background-color: var(--color-success-100); color: var(--color-success-600); }
.dark .ui-icon-bg-success-light { background-color: color-mix(in srgb, var(--color-success-500) 20%, transparent); color: var(--color-success-400); }

.ui-icon-bg-warning-light { background-color: var(--color-warning-100); color: var(--color-warning-600); }
.dark .ui-icon-bg-warning-light { background-color: color-mix(in srgb, var(--color-warning-500) 20%, transparent); color: var(--color-warning-400); }

.ui-icon-bg-danger-light { background-color: var(--color-danger-100); color: var(--color-danger-600); }
.dark .ui-icon-bg-danger-light { background-color: color-mix(in srgb, var(--color-danger-500) 20%, transparent); color: var(--color-danger-400); }

.ui-icon-bg-info-light { background-color: var(--color-info-100); color: var(--color-info-600); }
.dark .ui-icon-bg-info-light { background-color: color-mix(in srgb, var(--color-info-500) 20%, transparent); color: var(--color-info-400); }

/* Stat/Card section backgrounds - pastel semântico para cards de estatísticas */
.ui-stat-bg-success { background-color: var(--color-success-50); }
.dark .ui-stat-bg-success { background-color: color-mix(in srgb, var(--color-success-500) 10%, transparent); }

.ui-stat-bg-primary { background-color: var(--color-primary-50); }
.dark .ui-stat-bg-primary { background-color: color-mix(in srgb, var(--color-primary-500) 10%, transparent); }

.ui-stat-bg-warning { background-color: var(--color-warning-50); }
.dark .ui-stat-bg-warning { background-color: color-mix(in srgb, var(--color-warning-500) 10%, transparent); }

.ui-stat-bg-danger { background-color: var(--color-danger-50); }
.dark .ui-stat-bg-danger { background-color: color-mix(in srgb, var(--color-danger-500) 10%, transparent); }

.ui-stat-bg-info { background-color: var(--color-info-50); }
.dark .ui-stat-bg-info { background-color: color-mix(in srgb, var(--color-info-500) 10%, transparent); }

/* Row highlight for error/warning states */
.ui-row-highlight-danger { background-color: var(--color-danger-50); }
.dark .ui-row-highlight-danger { background-color: color-mix(in srgb, var(--color-danger-500) 5%, transparent); }

.ui-row-highlight-warning { background-color: var(--color-warning-50); }
.dark .ui-row-highlight-warning { background-color: color-mix(in srgb, var(--color-warning-500) 5%, transparent); }

/* Aliases (backwards compat) - todos apontam para primary */
.ui-icon-bg-purple,
.ui-icon-bg-indigo,
.ui-icon-bg-slate,
.ui-icon-bg-teal,
.ui-icon-bg-emerald,
.ui-icon-bg-orange,
.ui-icon-bg-cyan,
.ui-icon-bg-amber,
.ui-icon-bg-blue,
.ui-accordion-icon-purple,
.ui-accordion-icon-emerald,
.ui-accordion-icon-blue,
.ui-accordion-icon-indigo,
.ui-accordion-icon-orange,
.ui-accordion-icon-teal,
.ui-accordion-icon-green,
.ui-accordion-icon-red,
.ui-accordion-icon-yellow {
    background-color: var(--color-primary-600);
    color: var(--color-white);
}
.dark .ui-icon-bg-purple,
.dark .ui-icon-bg-indigo,
.dark .ui-icon-bg-slate,
.dark .ui-icon-bg-teal,
.dark .ui-icon-bg-emerald,
.dark .ui-icon-bg-orange,
.dark .ui-icon-bg-cyan,
.dark .ui-icon-bg-amber,
.dark .ui-icon-bg-blue,
.dark .ui-accordion-icon-purple,
.dark .ui-accordion-icon-emerald,
.dark .ui-accordion-icon-blue,
.dark .ui-accordion-icon-indigo,
.dark .ui-accordion-icon-orange,
.dark .ui-accordion-icon-teal,
.dark .ui-accordion-icon-green,
.dark .ui-accordion-icon-red,
.dark .ui-accordion-icon-yellow {
    background-color: var(--color-primary-500);
}
.ui-accordion-icon-amber { background-color: var(--color-warning-500); color: var(--color-white); }
.ui-accordion-icon-slate { background-color: #64748b; color: var(--color-white); }
.dark .ui-accordion-icon-amber { background-color: var(--color-warning-700); }
.dark .ui-accordion-icon-slate { background-color: var(--color-slate-600); }

/* Action Buttons (ícones pequenos de ação) */
.ui-action-btn {
    padding: 0.375rem;
    border-radius: var(--radius-md);
    transition: all 0.2s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    cursor: pointer;
}
.ui-action-btn-purple {
    color: var(--color-accent-600);
    background-color: transparent;
}
.ui-action-btn-purple:hover {
    background-color: var(--color-accent-100);
}
.dark .ui-action-btn-purple {
    color: var(--color-accent-300);
}
.dark .ui-action-btn-purple:hover {
    background-color: rgba(147, 51, 234, 0.2);
}
.ui-action-btn-danger {
    color: var(--color-danger-600);
    background-color: transparent;
}
.ui-action-btn-danger:hover {
    background-color: var(--color-danger-100);
}
.dark .ui-action-btn-danger {
    color: var(--color-danger-500);
}
.dark .ui-action-btn-danger:hover {
    background-color: rgba(220, 38, 38, 0.2);
}

/* Action btn color variants */
.ui-action-btn-green,
.ui-action-btn-success {
    color: var(--color-success-600, var(--color-success-600));
    background-color: transparent;
}
.ui-action-btn-green:hover,
.ui-action-btn-success:hover {
    background-color: rgba(34, 197, 94, 0.1);
}
.dark .ui-action-btn-green,
.dark .ui-action-btn-success {
    color: var(--color-success-400, var(--color-success-400));
}
.dark .ui-action-btn-green:hover,
.dark .ui-action-btn-success:hover {
    background-color: rgba(34, 197, 94, 0.15);
}

.ui-action-btn-gray,
.ui-action-btn-secondary {
    color: var(--color-gray-500, #6b7280);
    background-color: transparent;
}
.ui-action-btn-gray:hover,
.ui-action-btn-secondary:hover {
    background-color: var(--color-gray-100, var(--color-gray-100));
}
.dark .ui-action-btn-gray,
.dark .ui-action-btn-secondary {
    color: var(--color-gray-400, #9ca3af);
}
.dark .ui-action-btn-gray:hover,
.dark .ui-action-btn-secondary:hover {
    background-color: var(--color-gray-700, #2a2a4e);
}

.ui-action-btn-red {
    color: var(--color-danger-600, var(--color-danger-600));
    background-color: transparent;
}
.ui-action-btn-red:hover {
    background-color: rgba(239, 68, 68, 0.1);
}
.dark .ui-action-btn-red {
    color: var(--color-danger-400, var(--color-danger-400));
}
.dark .ui-action-btn-red:hover {
    background-color: rgba(239, 68, 68, 0.15);
}

.ui-action-btn-blue,
.ui-action-btn-primary {
    color: var(--color-primary-600, #db2777);
    background-color: transparent;
}
.ui-action-btn-blue:hover,
.ui-action-btn-primary:hover {
    background-color: rgba(var(--color-primary-rgb), 0.1);
}
.dark .ui-action-btn-blue,
.dark .ui-action-btn-primary {
    color: var(--color-primary-400, var(--color-primary-400));
}
.dark .ui-action-btn-blue:hover,
.dark .ui-action-btn-primary:hover {
    background-color: rgba(var(--color-primary-rgb), 0.15);
}

.ui-action-btn-warning {
    color: var(--color-warning-600, var(--color-warning-700));
    background-color: transparent;
}
.ui-action-btn-warning:hover {
    background-color: rgba(245, 158, 11, 0.1);
}
.dark .ui-action-btn-warning {
    color: var(--color-warning-400, var(--color-warning-400));
}
.dark .ui-action-btn-warning:hover {
    background-color: rgba(245, 158, 11, 0.15);
}

.ui-card-collapsible-text {
    flex: 1;
}
.ui-card-collapsible-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-gray-900);
    margin: 0;
    line-height: 1.3;
}
.dark .ui-card-collapsible-title {
    color: var(--color-gray-100);
}
.ui-card-collapsible-subtitle {
    font-size: 0.8125rem;
    color: var(--color-gray-500);
    margin: 0.125rem 0 0 0;
}
.dark .ui-card-collapsible-subtitle {
    color: var(--color-gray-400);
}

.ui-card-collapsible-toggle {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-gray-100);
    color: var(--color-gray-500);
    border: none;
    cursor: pointer;
    transition: all 0.2s ease;
}
.dark .ui-card-collapsible-toggle {
    background-color: var(--color-gray-700);
    color: var(--color-gray-400);
}
.ui-card-collapsible-toggle:hover {
    background-color: var(--color-gray-200);
    color: var(--color-gray-700);
}
.dark .ui-card-collapsible-toggle:hover {
    background-color: var(--color-gray-600);
    color: var(--color-gray-300);
}
.ui-card-collapsible-toggle i,
.ui-card-collapsible-toggle svg {
    width: 16px;
    height: 16px;
    transition: transform 0.2s ease;
}
.ui-card-collapsible-toggle.open i,
.ui-card-collapsible-toggle.open svg {
    transform: rotate(180deg);
}

.ui-card-collapsible-body {
    padding: 1.25rem;
    border-top: 1px solid var(--color-gray-200);
}
.dark .ui-card-collapsible-body {
    border-top-color: var(--color-gray-700);
}
.ui-card-collapsible-body.hidden {
    display: none;
}
.ui-card-collapsible-body-no-padding {
    padding: 0;
}

/* ============================================
   SIDEBAR COLLAPSED - Correções
   Suporta .sidebar-collapsed na sidebar ou html
   ============================================ */
.app-sidebar.sidebar-collapsed,
html.sidebar-collapsed .app-sidebar {
    width: var(--sidebar-width-collapsed, 64px) !important;
    min-width: var(--sidebar-width-collapsed, 64px) !important;
}

.app-sidebar.sidebar-collapsed .sidebar-item,
html.sidebar-collapsed .app-sidebar .sidebar-item,
.sidebar-collapsed .sidebar-item {
    justify-content: center;
    padding: 0.75rem;
    margin: 0.125rem 0.375rem;
    border-radius: var(--radius-md);
}

.app-sidebar.sidebar-collapsed .sidebar-item-text,
html.sidebar-collapsed .app-sidebar .sidebar-item-text,
.sidebar-collapsed .sidebar-item-text,
.sidebar-collapsed .sidebar-item-badge,
.sidebar-collapsed .sidebar-group-title,
.sidebar-collapsed .sidebar-submenu {
    display: none !important;
}

.app-sidebar.sidebar-collapsed .sidebar-item-icon,
html.sidebar-collapsed .app-sidebar .sidebar-item-icon,
.sidebar-collapsed .sidebar-item-icon {
    margin-right: 0;
    width: 24px;
    height: 24px;
}

.app-sidebar.sidebar-collapsed .sidebar-item-icon svg,
html.sidebar-collapsed .app-sidebar .sidebar-item-icon svg,
.sidebar-collapsed .sidebar-item-icon svg,
.app-sidebar.sidebar-collapsed .sidebar-item-icon i,
html.sidebar-collapsed .app-sidebar .sidebar-item-icon i,
.sidebar-collapsed .sidebar-item-icon i {
    width: 22px;
    height: 22px;
    font-size: 18px;
    line-height: 22px;
}

.app-sidebar.sidebar-collapsed .sidebar-section-header,
html.sidebar-collapsed .app-sidebar .sidebar-section-header,
.sidebar-collapsed .sidebar-section-header {
    padding: 0.5rem;
    justify-content: center;
}

.app-sidebar.sidebar-collapsed .sidebar-section-header span,
html.sidebar-collapsed .app-sidebar .sidebar-section-header span,
.sidebar-collapsed .sidebar-section-header span {
    display: none;
}

.app-sidebar.sidebar-collapsed .sidebar-nav,
html.sidebar-collapsed .app-sidebar .sidebar-nav,
.sidebar-collapsed .sidebar-nav {
    padding: 0.5rem 0.25rem;
}

/* Tooltip inline na sidebar (oculto — texto é usado pelo JS flutuante) */
.sidebar-tooltip {
    display: none !important;
}

/* Tooltip flutuante da sidebar — renderizado via JS em position:fixed no body
   Definições em app.css (.sidebar-tooltip-floating) */

/* ============================================
   TEXT CONTRAST FIXES - Correções de Contraste
   ============================================ */
/* Garantir texto legível em fundos coloridos */
.text-on-primary,
.bg-primary .text-auto,
[class*="ui-stat-card-"] .text-auto {
    color: var(--color-white) !important;
}

/* Labels em fundos escuros */
.dark .ui-label,
.dark label,
.dark .form-label {
    color: var(--color-gray-200);
}

/* Textos primários em dark mode */
.dark h1, .dark h2, .dark h3, .dark h4, .dark h5, .dark h6 {
    color: var(--color-gray-100);
}

.dark p:not([class]),
.dark .text-primary,
.dark .text-default {
    color: var(--color-gray-200);
}

/* Placeholder em dark mode */
/* WCAG AA: 4.5:1 minimum contrast ratio */
.dark input::placeholder,
.dark textarea::placeholder,
.dark .ui-input::placeholder,
.dark select::placeholder {
    color: var(--color-gray-400);
}

/* Inputs em dark mode */
.dark input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
.dark textarea,
.dark select {
    background-color: var(--color-gray-800);
    color: var(--color-gray-100);
    border-color: var(--color-gray-600);
}
.dark input:focus,
.dark textarea:focus,
.dark select:focus {
    border-color: var(--color-primary-500);
    background-color: var(--color-gray-800);
}

/* Links em dark mode */
.dark a:not(.ui-btn):not([class*="nav"]):not([class*="sidebar"]) {
    color: var(--color-primary-300, var(--color-primary-300));
}
.dark a:not(.ui-btn):not([class*="nav"]):not([class*="sidebar"]):hover {
    color: var(--color-primary-200, #fbcfe8);
}

/* Text muted para dark mode */
.dark .text-muted,
.dark .text-gray-500,
.dark .text-slate-500,
.dark .text-secondary {
    color: var(--color-gray-400);
}

/* .card genérico em dark mode (compatibilidade Bootstrap-style) */
.dark .card {
    background-color: var(--color-bg-card);
    border-color: var(--color-border);
}
/* Nota: .dark .ui-card já definido com !important em linha ~1743 — não duplicar */

/* Tables em dark mode */
.dark table {
    border-color: var(--color-gray-700);
}
.dark th {
    color: var(--color-gray-200);
    background-color: var(--color-gray-750, #2d3748);
}
.dark td {
    color: var(--color-gray-300);
    border-color: var(--color-gray-700);
}
.dark tr:hover td {
    background-color: var(--color-gray-750, #2d3748);
}

/* Bordas em dark mode */
.dark .border,
.dark [class*="border-gray"] {
    border-color: var(--color-gray-700);
}

/* Dividers em dark mode */
.dark hr,
.dark .divider {
    border-color: var(--color-gray-700);
}

/* Dropdowns em dark mode */
.dark .dropdown-menu,
.dark [class*="-dropdown"] {
    background-color: var(--color-gray-800);
    border-color: var(--color-gray-700);
}

/* Badges em dark mode - melhor contraste */
.dark .ui-badge {
    background-color: var(--color-gray-700);
    color: var(--color-gray-200);
}

/* Alerts em dark mode */
.dark .ui-alert,
.dark .alert {
    border-color: var(--color-gray-600);
}

/* Code em dark mode */
.dark code,
.dark pre {
    background-color: var(--color-gray-900);
    color: var(--color-gray-100);
}

/* Checkbox e Radio labels em dark mode */
.dark .checkbox-label,
.dark .radio-label,
.dark [class*="checkbox"] label,
.dark [class*="radio"] label {
    color: var(--color-gray-200);
}

/* Nota: .dark .ui-stat-card, .dark .ui-stat-card-title e .dark .ui-stat-card-value
   já definidos com !important acima (~linha 2954) usando tokens semânticos — não duplicar */

/* Tabs em dark mode */
.dark .ui-tabs-nav,
.dark [class*="-tabs"] {
    border-color: var(--color-gray-700);
}
.dark .ui-tab {
    color: var(--color-gray-400);
}
.dark .ui-tab:hover {
    color: var(--color-gray-200);
}
.dark .ui-tab.active {
    color: var(--color-primary-400);
    border-color: var(--color-primary-400);
}

/* Modal overlay em dark mode */
.dark .ui-modal-overlay,
.dark [class*="-overlay"] {
    background-color: rgba(0, 0, 0, 0.75);
}

/* Tooltips em dark mode */
.dark .ui-tooltip,
.dark [class*="-tooltip"] {
    background-color: var(--color-gray-700);
    color: var(--color-gray-100);
}

/* ============================================
   SPACING UTILITIES - Espaçamentos Padronizados
   ============================================ */
/* Margin */
.ui-m-0 { margin: var(--space-0); }
.ui-m-1 { margin: var(--space-1); }
.ui-m-2 { margin: var(--space-2); }
.ui-m-3 { margin: var(--space-3); }
.ui-m-4 { margin: var(--space-4); }
.ui-m-5 { margin: var(--space-5); }
.ui-m-6 { margin: var(--space-6); }
.ui-m-8 { margin: var(--space-8); }

.ui-mx-auto { margin-left: auto; margin-right: auto; }
.ui-my-0 { margin-top: var(--space-0); margin-bottom: var(--space-0); }
.ui-my-2 { margin-top: var(--space-2); margin-bottom: var(--space-2); }
.ui-my-4 { margin-top: var(--space-4); margin-bottom: var(--space-4); }
.ui-my-6 { margin-top: var(--space-6); margin-bottom: var(--space-6); }
.ui-my-8 { margin-top: var(--space-8); margin-bottom: var(--space-8); }

.ui-ml-0 { margin-left: 0; }
.ui-ml-1 { margin-left: 0.25rem; }
.ui-ml-2 { margin-left: 0.5rem; }
.ui-ml-3 { margin-left: 0.75rem; }
.ui-ml-4 { margin-left: 1rem; }
.ui-ml-6 { margin-left: 1.5rem; }
.ui-ml-8 { margin-left: 2rem; }
.ui-ml-auto { margin-left: auto; }

.ui-mr-0 { margin-right: 0; }
.ui-mr-1 { margin-right: 0.25rem; }
.ui-mr-2 { margin-right: 0.5rem; }
.ui-mr-3 { margin-right: 0.75rem; }
.ui-mr-4 { margin-right: 1rem; }
.ui-mr-6 { margin-right: 1.5rem; }
.ui-mr-8 { margin-right: 2rem; }

/* ui-mt-*/ui-mb-* → definidos em design-tokens.css com !important */

/* Padding */
.ui-p-0 { padding: var(--space-0); }
.ui-p-1 { padding: var(--space-1); }
.ui-p-2 { padding: var(--space-2); }
.ui-p-3 { padding: var(--space-3); }
.ui-p-4 { padding: var(--space-4); }
.ui-p-5 { padding: var(--space-5); }
.ui-p-6 { padding: var(--space-6); }
.ui-p-8 { padding: var(--space-8); }

.ui-px-0 { padding-left: var(--space-0); padding-right: var(--space-0); }
.ui-px-1 { padding-left: var(--space-1); padding-right: var(--space-1); }
.ui-px-2 { padding-left: var(--space-2); padding-right: var(--space-2); }
.ui-px-3 { padding-left: var(--space-3); padding-right: var(--space-3); }
.ui-px-4 { padding-left: var(--space-4); padding-right: var(--space-4); }
.ui-px-5 { padding-left: var(--space-5); padding-right: var(--space-5); }
.ui-px-6 { padding-left: var(--space-6); padding-right: var(--space-6); }
.ui-px-8 { padding-left: var(--space-8); padding-right: var(--space-8); }

.ui-py-0 { padding-top: var(--space-0); padding-bottom: var(--space-0); }
.ui-py-1 { padding-top: var(--space-1); padding-bottom: var(--space-1); }
.ui-py-2 { padding-top: var(--space-2); padding-bottom: var(--space-2); }
.ui-py-3 { padding-top: var(--space-3); padding-bottom: var(--space-3); }
.ui-py-4 { padding-top: var(--space-4); padding-bottom: var(--space-4); }
.ui-py-5 { padding-top: var(--space-5); padding-bottom: var(--space-5); }
.ui-py-6 { padding-top: var(--space-6); padding-bottom: var(--space-6); }
.ui-py-8 { padding-top: var(--space-8); padding-bottom: var(--space-8); }

/* Gap for Flex/Grid */
.ui-gap-0 { gap: var(--space-0); }
.ui-gap-1 { gap: var(--space-1); }
.ui-gap-2 { gap: var(--space-2); }
.ui-gap-3 { gap: var(--space-3); }
.ui-gap-4 { gap: var(--space-4); }
.ui-gap-5 { gap: var(--space-5); }
.ui-gap-6 { gap: var(--space-6); }
.ui-gap-8 { gap: var(--space-8); }

/* Section spacing */
.ui-section {
    padding-top: var(--space-8);
    padding-bottom: var(--space-8);
}
.ui-section-sm {
    padding-top: var(--space-4);
    padding-bottom: var(--space-4);
}
.ui-section-lg {
    padding-top: var(--space-12);
    padding-bottom: var(--space-12);
}

/* Card body padding padrão */
.ui-card-body {
    padding: var(--space-4);
}
.ui-card-body-sm {
    padding: var(--space-3);
}
.ui-card-body-lg {
    padding: var(--space-6);
}

/* Form group → definição canônica acima (seção Form Elements) */

/* Grid padrão
   DEPRECADO: .ui-grid-2, .ui-grid-3, .ui-grid-4
   Usar ui-grid-cols-* (seção GRID UTILITIES) como sistema canônico.
   Uso restante: Accounts/Views/user/index.php (ui-grid-2) */
.ui-grid {
    display: grid;
    gap: var(--gap-md);
}
.ui-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ui-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ui-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* Responsivo */
@media (max-width: 768px) {
    .ui-grid-2,
    .ui-grid-3,
    .ui-grid-4 {
        grid-template-columns: 1fr;
    }
}
@media (min-width: 768px) and (max-width: 1024px) {
    .ui-grid-3,
    .ui-grid-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ============================================
   STAT ICON - OVERRIDE PARA MODO NEUTRO
   Remove cores vibrantes, usa tons neutros
   ============================================ */

/* TODAS as variantes de stat icon - cores neutras */
/* Stat icon colors are defined in design-tokens.css
   Removed destructive !important override that forced all stat icons to gray.
   Specific color variants (.ui-stat-icon-blue, -green, etc.) are in design-tokens.css */

/* Ícones dentro de stat icons - herdar cor do container */
.ui-stat-icon i,
.ui-stat-icon svg,
[class*="ui-stat-icon-"] i,
[class*="ui-stat-icon-"] svg {
    color: inherit;
}

/* ============================================
   BADGE - Modo Escuro
   Badges sem variante semântica ficam neutros.
   Badges semânticos preservam suas cores.
   Cores específicas definidas em design-tokens.css
   ============================================ */
.dark .ui-badge {
    background-color: var(--color-gray-700);
    color: var(--color-gray-300);
    border-color: var(--color-gray-600);
}

/* Badges semânticos preservam cores no dark mode (override do .dark .ui-badge acima) */
.dark .ui-badge-danger {
    background-color: rgba(239, 68, 68, 0.2);
    color: var(--color-danger-300);
}
.dark .ui-badge-success {
    background-color: rgba(34, 197, 94, 0.2);
    color: var(--color-success-300);
}
.dark .ui-badge-warning {
    background-color: rgba(245, 158, 11, 0.2);
    color: var(--color-warning-300);
}
.dark .ui-badge-primary,
.dark .ui-badge-info {
    background-color: rgba(var(--color-primary-rgb), 0.2);
    color: var(--color-primary-300);
}
.dark .ui-badge-secondary {
    background-color: rgba(107, 114, 128, 0.2);
    color: var(--color-gray-300);
}

/* ============================================
   OVERRIDE GLOBAL - Remover Gradientes Coloridos
   Substitui gradientes por cores sólidas
   ============================================ */
.dark [class*="bg-gradient-to-"] {
    background-image: none !important;
    background-color: var(--color-gray-800) !important;
}

/* Cards com gradientes vibrantes - neutralizar */
.dark .bg-gradient-to-br,
.dark .bg-gradient-to-r,
.dark .bg-gradient-to-b,
.dark .bg-gradient-to-t,
.dark .bg-gradient-to-l,
.dark .bg-gradient-to-tr,
.dark .bg-gradient-to-tl,
.dark .bg-gradient-to-bl {
    background-image: none !important;
}

/* ============================================
   SIDEBAR SEARCH + CLICK-TO-EXPAND (rc.524)
   Campo de busca interno + scroll · click em item com submenu expande
   ============================================ */
.app-sidebar .sidebar-inner {
    /* rc.524: scroll interno quando muitas seções */
    max-height: 100vh;
    display: flex;
    flex-direction: column;
}

.app-sidebar .sidebar-nav {
    flex: 1 1 auto;
    overflow-y: auto;
    overscroll-behavior: contain;
    /* Custom scrollbar fina */
    scrollbar-width: thin;
    scrollbar-color: var(--color-border) transparent;
}

.app-sidebar .sidebar-nav::-webkit-scrollbar {
    width: 6px;
}
.app-sidebar .sidebar-nav::-webkit-scrollbar-track {
    background: transparent;
}
.app-sidebar .sidebar-nav::-webkit-scrollbar-thumb {
    background: var(--color-border);
    border-radius: 3px;
}
.app-sidebar .sidebar-nav::-webkit-scrollbar-thumb:hover {
    background: var(--color-text-muted);
}

/* Search box */
.sidebar-search {
    position: sticky;
    top: 0;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: var(--space-2, 8px);
    padding: var(--space-3, 12px);
    background: var(--color-bg-card);
    border-bottom: 1px solid var(--color-border);
    flex: 0 0 auto;
}

.sidebar-search-icon {
    flex: 0 0 auto;
    color: var(--color-text-muted);
    display: inline-flex;
}

.sidebar-search-input {
    flex: 1 1 auto;
    background: var(--color-bg-secondary);
    border: 1px solid var(--color-border-input);
    border-radius: var(--radius-sm, 4px);
    padding: 6px 10px;
    font-size: var(--font-size-sm, 14px);
    color: var(--color-text-primary);
    min-height: 32px;
    transition: border-color var(--transition-fast, 150ms ease);
}

.sidebar-search-input:focus {
    outline: none;
    border-color: var(--color-primary-500);
    box-shadow: 0 0 0 2px rgba(56, 189, 248, 0.15);
}

.sidebar-search-input::placeholder {
    color: var(--color-text-muted);
}

.sidebar-search-kbd {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    font-size: 11px;
    line-height: 1;
    padding: 0 5px;
    background: var(--color-bg-secondary);
    border: 1px solid var(--color-border);
    border-radius: 4px;
    color: var(--color-text-muted);
    font-family: var(--font-family-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    font-weight: 600;
    box-shadow: 0 1px 0 0 var(--color-border);
    user-select: none;
}

.sidebar-search-empty {
    padding: var(--space-4, 16px);
    text-align: center;
    color: var(--color-text-muted);
    font-size: var(--font-size-sm, 14px);
    font-style: italic;
}

/* Sidebar collapsed: esconde search input mas mantém ícone clicável (abre Cmd+K) */
.sidebar-collapsed .sidebar-search-input,
.sidebar-collapsed .sidebar-search-kbd {
    display: none;
}
.sidebar-collapsed .sidebar-search {
    justify-content: center;
    padding: var(--space-2, 8px);
}

/* ============================================================
   rc.531 — sidebar item alignment polish
   Garante que nomes dos módulos fiquem ALINHADOS À ESQUERDA
   após o ícone, não centralizados entre ícone e chevron.
   ============================================================ */
.app-sidebar .sidebar-item .sidebar-item-text,
.app-sidebar .sidebar-item-button .sidebar-item-text {
    flex: 1 1 auto;
    text-align: left;
    min-width: 0; /* permite ellipsis funcionar com flex */
}
.app-sidebar .sidebar-item .sidebar-item-chevron,
.app-sidebar .sidebar-item-button .sidebar-item-chevron {
    flex: 0 0 auto;
    margin-left: auto;
    color: var(--color-text-muted);
    opacity: 0.6;
}

/* ============================================================
   rc.536 — sidebar item alignment HARD FIX (P0)
   Owner reportou que rc.531 não resolveu — labels ainda aparecem
   centralizados nos itens com submenu (botões dos MÓDULOS).
   Esta seção força com !important e cobre TODA combinação possível
   de classes (item, item-button, has-subitems, sidebar-item-active).
   ============================================================ */
.app-sidebar:not(.sidebar-collapsed) .sidebar-item,
.app-sidebar:not(.sidebar-collapsed) .sidebar-item-button {
    justify-content: flex-start !important;
    text-align: left !important;
    gap: var(--space-3, 12px) !important;
}
.app-sidebar:not(.sidebar-collapsed) .sidebar-item .sidebar-item-text,
.app-sidebar:not(.sidebar-collapsed) .sidebar-item-button .sidebar-item-text {
    flex: 1 1 auto !important;
    text-align: left !important;
    min-width: 0 !important;
    margin-right: auto !important; /* empurra chevron para a direita */
}
.app-sidebar:not(.sidebar-collapsed) .sidebar-item .sidebar-item-icon,
.app-sidebar:not(.sidebar-collapsed) .sidebar-item-button .sidebar-item-icon {
    flex: 0 0 auto !important;
    width: 20px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Subitens (terceiro nível) também alinhados à esquerda */
.app-sidebar:not(.sidebar-collapsed) .sidebar-subitem {
    justify-content: flex-start !important;
    text-align: left !important;
}
.app-sidebar:not(.sidebar-collapsed) .sidebar-subitem .sidebar-subitem-text {
    flex: 1 1 auto !important;
    text-align: left !important;
    min-width: 0 !important;
}

/* ============================================================
   rc.536 — sidebar search polish (P0)
   Owner reportou que o search da sidebar não foi ajustado.
   Visual unificado com command bar do header (Ctrl+K style).
   ============================================================ */
.app-sidebar:not(.sidebar-collapsed) .sidebar-search {
    padding: var(--space-3, 12px) var(--space-4, 16px);
    gap: var(--space-2, 8px);
}
.app-sidebar:not(.sidebar-collapsed) .sidebar-search-input {
    flex: 1 1 auto;
    background: var(--color-bg-secondary);
    border: 1px solid var(--color-border-input, var(--color-border));
    border-radius: var(--radius-md, 6px);
    padding: 8px 12px;
    font-size: var(--font-size-sm, 14px);
    color: var(--color-text-primary);
    min-height: 36px;
    transition: border-color var(--transition-fast, 150ms ease),
                box-shadow var(--transition-fast, 150ms ease);
}
.app-sidebar:not(.sidebar-collapsed) .sidebar-search-input:hover {
    border-color: var(--color-border-strong, var(--color-text-muted));
}
.app-sidebar:not(.sidebar-collapsed) .sidebar-search-input:focus,
.app-sidebar:not(.sidebar-collapsed) .sidebar-search-input:focus-visible {
    outline: none;
    border-color: var(--color-primary-500);
    box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb, 56, 189, 248), 0.15);
}
.app-sidebar:not(.sidebar-collapsed) .sidebar-search-icon {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    color: var(--color-text-muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.app-sidebar:not(.sidebar-collapsed) .sidebar-search-kbd {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    color: var(--color-text-muted);
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm, 4px);
    box-shadow: 0 1px 0 var(--color-border);
}

/* ============================================================
   rc.531 — sidebar plan card (Stack8-style)
   Aparece no rodapé da sidebar para usuários (não admin).
   Mostra plano, status, expiração, créditos consumidos e CTA.
   ============================================================ */
.sidebar-plan-card {
    margin: var(--space-3, 12px);
    padding: var(--space-3, 12px) var(--space-4, 16px);
    background: var(--color-bg-secondary);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md, 8px);
    display: flex;
    flex-direction: column;
    gap: var(--space-2, 8px);
    flex: 0 0 auto;
}

.plan-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2, 8px);
}

.plan-card-eyebrow {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}

.plan-card-status {
    font-size: 10px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 999px;
    line-height: 1.4;
}

.plan-card-status-active {
    color: var(--color-success-600, #16a34a);
    background: rgba(34, 197, 94, 0.12);
}

.plan-card-status-inactive {
    color: var(--color-warning-600, #ca8a04);
    background: rgba(234, 179, 8, 0.12);
}

.plan-card-name {
    font-size: var(--font-size-sm, 14px);
    font-weight: 600;
    color: var(--color-text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.plan-card-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2, 8px);
    font-size: 12px;
    color: var(--color-text-muted);
}

.plan-card-label {
    flex: 0 0 auto;
}

.plan-card-value {
    flex: 1 1 auto;
    text-align: right;
    color: var(--color-text-primary);
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.plan-card-progress {
    width: 100%;
    height: 4px;
    background: var(--color-bg-muted);
    border-radius: 999px;
    overflow: hidden;
    margin-top: 2px;
}

.plan-card-progress-fill {
    display: block;
    height: 100%;
    background: linear-gradient(90deg,
        var(--color-primary-500),
        var(--color-primary-600));
    border-radius: 999px;
    transition: width var(--transition-normal, 200ms ease);
}

.plan-card-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin-top: var(--space-1, 4px);
    padding: 7px 12px;
    font-size: 12px;
    font-weight: 600;
    color: var(--color-primary-600);
    background: transparent;
    border: 1px solid var(--color-primary-500);
    border-radius: var(--radius-sm, 6px);
    text-decoration: none;
    transition: background var(--transition-fast, 150ms ease),
                color var(--transition-fast, 150ms ease);
}

.plan-card-cta:hover {
    background: var(--color-primary-500);
    color: #fff;
}

/* Plan card oculta quando sidebar colapsada */
.app-sidebar.sidebar-collapsed .sidebar-plan-card,
html.sidebar-collapsed .app-sidebar .sidebar-plan-card {
    display: none;
}

/* sidebar-item-button (rc.524) — visualmente idêntico a sidebar-item · não navega */
.sidebar-item-button {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    width: 100%;
    text-align: left;
    cursor: pointer;
    font: inherit;
    color: inherit;
    display: flex;
    align-items: center;
}

.sidebar-item-button:focus-visible {
    outline: 2px solid var(--color-primary-500);
    outline-offset: -2px;
    border-radius: var(--radius-sm, 4px);
}

/* Chevron rotaciona quando expandido */
.sidebar-item-group.has-subitems .sidebar-item-chevron {
    transition: transform var(--transition-fast, 150ms ease);
}
.sidebar-item-group.has-subitems.is-expanded > .sidebar-item-button .sidebar-item-chevron,
.sidebar-item-group.has-subitems.is-expanded > .sidebar-item .sidebar-item-chevron {
    transform: rotate(180deg);
}

/* Subitems collapsible */
.sidebar-item-group.has-subitems .sidebar-subitems {
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--transition-normal, 200ms ease);
}
.sidebar-item-group.has-subitems.is-expanded .sidebar-subitems {
    max-height: 500px; /* large enough · auto não funciona com transition */
}

@media (prefers-reduced-motion: reduce) {
    .sidebar-item-group.has-subitems .sidebar-subitems,
    .sidebar-item-group.has-subitems .sidebar-item-chevron {
        transition: none !important;
    }
}

/* Visão geral subitem · destacar com ícone home */
.sidebar-subitem-overview {
    font-weight: var(--font-weight-medium, 500);
}
.sidebar-subitem-overview .sidebar-subitem-icon {
    color: var(--color-primary-500);
}

/* ============================================
   VIRTUAL LIST (rc.511)
   Container virtualizado para listas longas (10k+ items).
   Renderiza apenas linhas visíveis no viewport.
   Markup: <div data-ui="virtual-list" data-row-height="48" data-source="...">
           <template>...</template>
           </div>
   ============================================ */
[data-ui="virtual-list"] {
    position: relative;
    overflow: auto;
    max-height: 600px;
    border: 1px solid var(--ui-border-default, var(--color-border));
    border-radius: var(--radius-md, 0.5rem);
    background: var(--color-bg-card);
    /* Reduz layout shift no scroll · permite browser otimizar */
    contain: strict;
    /* Scroll suave · respeita reduced-motion */
    scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
    [data-ui="virtual-list"] {
        scroll-behavior: auto;
    }
}

.ui-virtual-row {
    display: flex;
    align-items: center;
    padding: 0 var(--space-4, 1rem);
    height: var(--virtual-row-height, 48px);
    border-bottom: 1px solid var(--ui-divide-default, var(--color-border));
    transition: background-color var(--transition-fast, 150ms ease);
}

.ui-virtual-row:hover {
    background: var(--color-bg-hover);
}

.ui-virtual-row:focus-visible {
    outline: 2px solid var(--color-primary-500);
    outline-offset: -2px;
    background: var(--color-bg-hover);
}

/* Mobile: reduzir altura mínima dos rows */
@media (max-width: 767px) {
    [data-ui="virtual-list"] {
        max-height: 70vh;
    }
    .ui-virtual-row {
        padding: 0 var(--space-3, 0.75rem);
        font-size: 0.9375rem;
    }
}

/* ============================================
   EMPTY STATE - Componente Padronizado
   Usar em todas as páginas quando não há dados
   ============================================ */
/* rc.439 — Aplicação total: estilos do --illustrated mergidos no base.
   Visual canônico aplicado a TODAS as ~250 views que usam .ui-empty-state
   automaticamente, sem refatoração de markup. Modificador --illustrated
   preservado como no-op (estilos idênticos) para backward compat. */
.ui-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 3rem 1.5rem;
    min-height: 200px;
    /* Visual canônico (era --illustrated, agora default em rc.439) */
    background: var(--color-bg-card);
    border: 0.5px dashed var(--color-border);
    border-radius: var(--radius-md, 8px);
}

.ui-empty-state-icon {
    width: 5rem;          /* rc.439: 5rem (era 4rem) — consistência com canônico */
    height: 5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-bg-subtle);
    border-radius: 50%;
    margin-bottom: 1.25rem;
    opacity: 0.85;
    transition: opacity var(--transition-fast, 150ms ease),
                transform var(--transition-fast, 150ms ease);
}

.ui-empty-state:hover .ui-empty-state-icon {
    opacity: 1;
    transform: scale(1.02);
}

.dark .ui-empty-state-icon {
    background-color: var(--color-bg-subtle);
}

.ui-empty-state-icon i,
.ui-empty-state-icon svg {
    font-size: 2rem;       /* rc.439: 2rem (era 1.75rem) — consistência com canônico */
    color: var(--color-text-muted);
    opacity: 0.9;
}
.dark .ui-empty-state-icon i,
.dark .ui-empty-state-icon svg {
    color: var(--color-text-muted);
}

.ui-empty-state-title {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: 0.5rem;
    max-width: 32rem;
    text-align: center;
    word-break: normal;
    overflow-wrap: break-word;
}
.dark .ui-empty-state-title {
    color: var(--color-text-primary);
}

.ui-empty-state-description {
    font-size: 0.875rem;
    color: var(--color-text-muted);
    margin-bottom: 1.25rem;
    max-width: 42ch;       /* rc.439: 42ch (era 24rem) — mais respiro de leitura */
}
.dark .ui-empty-state-description {
    color: var(--color-text-muted);
}

/* Reduced motion — neutraliza scale do hover */
@media (prefers-reduced-motion: reduce) {
    .ui-empty-state-icon {
        transition: none !important;
        transform: none !important;
    }
}

.ui-empty-state .ui-btn {
    margin-top: 0.5rem;
}

/* Ícones inline em empty states antigos - neutralizar */
.ui-empty-state > i {
    font-size: 2.5rem;
    color: var(--color-gray-300);
    margin-bottom: 1rem;
}
.dark .ui-empty-state > i {
    color: var(--color-gray-600);
}

/* MODAL - centralização já definida na seção principal (linha ~1787) */

/* (ui-btn e tamanhos sm/lg/xl consolidados na seção BUTTONS acima) */

/* ============================================
   TEMPLATE CARDS - Cards de Sugestão/Template
   Para usar em templates de automação, segmentos, etc.
   ============================================ */
.ui-template-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 1.25rem;
    background-color: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-lg);
    cursor: pointer;
    transition: all 0.15s ease;
    text-align: center;
    min-height: 120px;
}
.dark .ui-template-card {
    background-color: var(--color-gray-800);
    border-color: var(--color-gray-700);
}

.ui-template-card:hover {
    border-color: var(--color-primary-300);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}
.dark .ui-template-card:hover {
    border-color: var(--color-primary-600);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.ui-template-card-icon {
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-gray-100);
    border-radius: var(--radius-md);
    color: var(--color-gray-600);
}
.dark .ui-template-card-icon {
    background-color: var(--color-gray-700);
    color: var(--color-gray-300);
}

.ui-template-card-icon i {
    font-size: 1.125rem;
}

.ui-template-card-title {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-gray-800);
}
.dark .ui-template-card-title {
    color: var(--color-gray-100);
}

.ui-template-card-description {
    font-size: 0.75rem;
    color: var(--color-gray-500);
    line-height: 1.4;
}
.dark .ui-template-card-description {
    color: var(--color-gray-400);
}

/* ============================================
   OVERRIDES FINAIS - ALTA ESPECIFICIDADE
   Garantem que os estilos corretos sejam aplicados
   independente da ordem de carregamento
   ============================================ */

/* Stat Cards e UI Cards: Definições base em .ui-stat-card (linha ~2680) e .ui-card (linha ~1648).
   Dark mode usa !important para garantir override. Removidos overrides redundantes com seletores de
   alta especificidade (div.ui-stat-card, .ui-stat-grid .ui-stat-card, etc.) que duplicavam os mesmos valores. */

/* Stat Icon - fundo neutro APENAS quando sem variante de cor (ui-icon-bg-*) */
.ui-stat-icon:not([class*="ui-icon-bg-"]) {
    background-color: var(--color-gray-100, var(--color-gray-100)) !important;
    background-image: none !important;
    color: var(--color-gray-600, #3e3860) !important;
}

.dark .ui-stat-icon:not([class*="ui-icon-bg-"]),
html.dark .ui-stat-icon:not([class*="ui-icon-bg-"]) {
    background-color: var(--color-gray-700, #2a2a4e) !important;
    background-image: none !important;
    color: var(--color-gray-300, #d1d5db) !important;
}

/* ============================================
   ACCORDION - TRIGGER E CONTENT (Correções)
   Estilos para suportar a estrutura HTML atual
   ============================================ */

/* Accordion Trigger Button */
.ui-accordion-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 1rem 1.25rem;
    background-color: transparent;
    border: none;
    cursor: pointer;
    transition: background-color 0.15s ease;
    text-align: left;
}
.ui-accordion-trigger:hover {
    background-color: var(--color-gray-50, #f9fafb);
}
.dark .ui-accordion-trigger:hover {
    background-color: var(--color-gray-800, #1e1e38);
}

/* Accordion Header dentro do Trigger */
.ui-accordion-trigger .ui-accordion-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex: 1;
}

/* Accordion Subtitle */
.ui-accordion-subtitle {
    font-size: 0.8125rem;
    color: var(--color-gray-500, #6b7280);
    margin: 0;
}
.dark .ui-accordion-subtitle {
    color: var(--color-gray-400, #9ca3af);
}

/* Accordion Content (usa hidden do Tailwind) */
.ui-accordion-content {
    border-top: 1px solid var(--color-gray-200, var(--color-gray-200));
    background-color: var(--color-gray-50, #f9fafb);
}
.dark .ui-accordion-content {
    border-color: var(--color-gray-700, #2a2a4e);
    background-color: var(--color-gray-800, #1e1e38);
}

/* Accordion Body dentro do Content */
.ui-accordion-content .ui-accordion-body {
    padding: 1.25rem;
    display: block;
}

/* Chevron Rotation */
.ui-accordion-chevron {
    width: 32px;
    height: 32px;
    border-radius: var(--radius-md, 0.375rem);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--color-gray-400, #9ca3af);
    background-color: var(--color-gray-100, var(--color-gray-100));
    transition: all 0.2s ease;
}
.dark .ui-accordion-chevron {
    background-color: var(--color-gray-700, #2a2a4e);
    color: var(--color-gray-400, #9ca3af);
}
.ui-accordion-trigger:hover .ui-accordion-chevron {
    background-color: var(--color-gray-200, var(--color-gray-200));
}
.dark .ui-accordion-trigger:hover .ui-accordion-chevron {
    background-color: var(--color-gray-600, #3e3860);
}
.ui-accordion-chevron.rotate-180 {
    transform: rotate(180deg);
}

/* Accordion Icon Colors (para Financial) */
.ui-accordion-icon-amber {
    background-color: var(--color-warning-500, var(--color-warning-500));
    color: var(--color-white);
}
.ui-accordion-icon-slate {
    background-color: var(--color-gray-500, #6b7280);
    color: var(--color-white);
}

/* ============================================
   AUTH COMPONENTS - Sistema de Autenticação
   Estilos completos para telas de login/registro
   ============================================ */

/* Auth Header */
.ui-auth-header {
    text-align: center;
    margin-bottom: 1.5rem;
}

/* Auth Logo */
.ui-auth-logo {
    width: 3.5rem;
    height: 3.5rem;
    margin: 0 auto 1rem;
    border-radius: var(--radius-xl, 0.75rem);
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-primary-600, #db2777);
    color: var(--color-white);
}
.ui-auth-logo-purple { background-color: var(--color-purple-600, var(--color-accent-600)); }
.ui-auth-logo-warning { background-color: var(--color-warning-500, var(--color-warning-500)); }
.ui-auth-logo-emerald { background-color: var(--color-emerald-600, var(--color-success-600)); }
.ui-auth-logo-green { background-color: var(--color-success-600, var(--color-success-600)); }
.ui-auth-logo-teal { background-color: var(--color-teal-600, var(--color-info-600)); }
.ui-auth-logo-cyan { background-color: var(--color-info-600, var(--color-info-600)); }

/* Auth Title and Subtitle */
.ui-auth-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-gray-900, #0f0f22);
    margin: 0 0 0.5rem;
}
.dark .ui-auth-title {
    color: var(--color-white);
}
.ui-auth-subtitle {
    font-size: 0.9375rem;
    color: var(--color-gray-500, #6b7280);
    margin: 0;
}
.dark .ui-auth-subtitle {
    color: var(--color-gray-400, #9ca3af);
}

/* Auth Alerts */
.ui-auth-alert {
    padding: 1rem;
    border-radius: var(--radius-lg, 0.5rem);
    margin-bottom: 1.5rem;
}
.ui-auth-alert-error {
    background-color: rgba(239, 68, 68, 0.1);
    border: 1px solid rgba(239, 68, 68, 0.3);
}
.ui-auth-alert-warning {
    background-color: rgba(245, 158, 11, 0.1);
    border: 1px solid rgba(245, 158, 11, 0.3);
}
.ui-auth-alert-success {
    background-color: rgba(34, 197, 94, 0.1);
    border: 1px solid rgba(34, 197, 94, 0.3);
}
.ui-auth-alert-content {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}
.ui-auth-alert-icon {
    flex-shrink: 0;
    font-size: 1.125rem;
    margin-top: 0.125rem;
}
.ui-auth-alert-error .ui-auth-alert-icon { color: var(--color-danger-500, var(--color-danger-500)); }
.ui-auth-alert-warning .ui-auth-alert-icon { color: var(--color-warning-500, var(--color-warning-500)); }
.ui-auth-alert-success .ui-auth-alert-icon { color: var(--color-success-500, var(--color-success-500)); }
.ui-auth-alert-body { flex: 1; }
.ui-auth-alert-text {
    font-size: 0.875rem;
    color: var(--color-gray-700, #2a2a4e);
    margin: 0;
}
.dark .ui-auth-alert-text {
    color: var(--color-gray-300, #d1d5db);
}
.ui-auth-alert-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-gray-900, #0f0f22);
    margin: 0 0 0.25rem;
}
.dark .ui-auth-alert-title {
    color: var(--color-white);
}
.ui-auth-alert-message {
    font-size: 0.8125rem;
    color: var(--color-gray-500, #6b7280);
    margin: 0;
}
.dark .ui-auth-alert-message {
    color: var(--color-gray-400, #9ca3af);
}
.ui-auth-alert-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}
.ui-auth-alert-action {
    margin-top: 0.5rem;
}
.ui-auth-alert-link {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-primary-600, #db2777);
    text-decoration: none;
}
.ui-auth-alert-link:hover {
    color: var(--color-primary-700, var(--color-primary-700));
    opacity: 0.85;
}

/* Auth Method Selector */
.ui-auth-method-selector {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.25rem;
    background-color: var(--color-gray-100, var(--color-gray-100));
    border-radius: var(--radius-lg, 0.5rem);
}
.dark .ui-auth-method-selector {
    background-color: var(--color-gray-800, #1e1e38);
}
.ui-auth-method-btn {
    flex: 1;
    min-width: 0;
    padding: 0.5rem 0.75rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-gray-600, #3e3860);
    background-color: transparent;
    border: none;
    border-radius: var(--radius-md, 0.375rem);
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}
.ui-auth-method-btn:hover {
    color: var(--color-gray-900, #0f0f22);
    background-color: var(--color-gray-200, var(--color-gray-200));
}
.dark .ui-auth-method-btn {
    color: var(--color-gray-400, #9ca3af);
}
.dark .ui-auth-method-btn:hover {
    color: var(--color-gray-100, var(--color-gray-100));
    background-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-method-btn.active {
    color: var(--color-white);
    background-color: var(--color-primary-600, #db2777);
}
.dark .ui-auth-method-btn.active {
    background-color: var(--color-primary-600, #db2777);
    color: var(--color-white);
}

/* Auth Method Item - Linha de método de autenticação na tab segurança */
.ui-auth-method-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    gap: 1rem;
    border-bottom: 1px solid var(--color-gray-200, var(--color-gray-200));
}
.ui-auth-method-item:last-child {
    border-bottom: none;
}
.dark .ui-auth-method-item {
    border-bottom-color: var(--color-gray-700, #2a2a4e);
}

.ui-auth-method-info {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex: 1;
    min-width: 0;
}

.ui-auth-method-icon {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md, 0.375rem);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--color-white);
    font-size: 1rem;
}

.ui-auth-method-title {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-gray-900, #0f0f22);
    line-height: 1.25;
}
.dark .ui-auth-method-title {
    color: var(--color-gray-100, var(--color-gray-100));
}

.ui-auth-method-subtitle {
    font-size: 0.8125rem;
    color: var(--color-gray-500, #6b7280);
    line-height: 1.25;
    margin-top: 0.125rem;
}
.dark .ui-auth-method-subtitle {
    color: var(--color-gray-400, #9ca3af);
}

.ui-auth-method-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
}

/* Status Badge */
.ui-status-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.625rem;
    border-radius: var(--radius-full, 9999px);
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
}
.ui-status-badge-active {
    background-color: var(--color-green-100, var(--color-success-100));
    color: var(--color-green-700, var(--color-success-700));
}
.dark .ui-status-badge-active {
    background-color: rgba(22, 163, 74, 0.15);
    color: var(--color-green-400, var(--color-success-400));
}
.ui-status-badge-inactive {
    background-color: var(--color-gray-100, var(--color-gray-100));
    color: var(--color-gray-500, #6b7280);
}
.dark .ui-status-badge-inactive {
    background-color: var(--color-gray-700, #2a2a4e);
    color: var(--color-gray-400, #9ca3af);
}

/* Form Input with Icon (eye toggle for password) */
.ui-form-input-with-icon {
    padding-right: 2.75rem;
}
.ui-form-input-icon {
    position: absolute;
    right: 0;
    top: 0;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    color: var(--color-gray-400, #9ca3af);
    background: transparent;
    border: none;
    cursor: pointer;
    transition: color 0.15s ease;
}
.ui-form-input-icon:hover {
    color: var(--color-gray-600, #3e3860);
}
.dark .ui-form-input-icon {
    color: var(--color-gray-500, #6b7280);
}
.dark .ui-form-input-icon:hover {
    color: var(--color-gray-300, #d1d5db);
}

/* Password Strength Progress Background */
.ui-progress-bg {
    background-color: var(--color-gray-200, var(--color-gray-200));
}
.dark .ui-progress-bg {
    background-color: var(--color-gray-700, #2a2a4e);
}

/* Auth Section */
.ui-auth-section-icon {
    width: 3rem;
    height: 3rem;
    margin: 0 auto 0.75rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-white);
}
.ui-auth-section-icon-primary { background-color: var(--color-primary-600, #db2777); }
.ui-auth-section-icon-success { background-color: var(--color-success-600, var(--color-success-600)); }
.ui-auth-section-icon-warning { background-color: var(--color-warning-600, var(--color-warning-700)); }
.ui-auth-section-icon-indigo { background-color: var(--color-indigo-600, var(--color-primary-600)); }
.ui-auth-section-text {
    font-size: 0.875rem;
    color: var(--color-gray-600, #3e3860);
}
.dark .ui-auth-section-text {
    color: var(--color-gray-400, #9ca3af);
}

/* Auth Form Elements */
.ui-auth-form {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
.ui-auth-field {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}
.ui-auth-label {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-gray-700, #2a2a4e);
}
.dark .ui-auth-label {
    color: var(--color-gray-300, #d1d5db);
}
.ui-mb-0 {
    margin-bottom: 0;
}
.ui-auth-input {
    width: 100%;
    padding: 0.75rem 1rem;
    font-size: 1rem;
    color: var(--color-gray-900, #0f0f22);
    background-color: rgba(15, 23, 42, 0.05);
    border: 1px solid var(--color-gray-300, #d1d5db);
    border-radius: var(--radius-lg, 0.5rem);
    transition: all 0.15s ease;
}
.dark .ui-auth-input {
    color: var(--color-white);
    background-color: rgba(15, 23, 42, 0.6);
    border-color: rgba(71, 85, 105, 0.5);
}
.ui-auth-input:focus {
    outline: none;
    border-color: var(--color-primary-500, var(--color-primary-500));
    box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.15);
}
.dark .ui-auth-input:focus {
    background-color: rgba(15, 23, 42, 0.8);
    box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.2);
}
/* WCAG AA: 4.5:1 minimum contrast ratio */
.ui-auth-input::placeholder {
    color: var(--color-gray-500);
}
.ui-auth-input-password {
    padding-right: 3rem;
}
/* Ocultar botão nativo de revelar senha do navegador (Edge/Chrome) */
input[type="password"]::-ms-reveal,
input[type="password"]::-ms-clear {
    display: none !important;
}
.ui-auth-password-toggle {
    position: absolute;
    right: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    padding: 0.25rem;
    color: var(--color-gray-400, #9ca3af);
    background: transparent;
    border: none;
    cursor: pointer;
    transition: color 0.15s ease;
}
/* Garantir que .hidden funcione dentro do toggle (FontAwesome carrega depois do Tailwind,
   .fas { display: inline-block } sobrescreve .hidden { display: none } por ordem de cascata) */
.ui-auth-password-toggle .hidden {
    display: none !important;
}
.ui-auth-password-toggle:hover {
    color: var(--color-gray-600, #3e3860);
}
.dark .ui-auth-password-toggle:hover {
    color: var(--color-gray-300, #d1d5db);
}
.ui-auth-help-text {
    font-size: 0.75rem;
    color: var(--color-gray-500, #6b7280);
    margin-top: 0.25rem;
}

/* Auth Link */
.ui-auth-link {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-primary-600, #db2777);
    text-decoration: none;
}
.ui-auth-link:hover {
    color: var(--color-primary-700, var(--color-primary-700));
    opacity: 0.85;
}

/* Auth Credential Toggle */
.ui-auth-credential-toggle {
    display: flex;
    gap: 0.5rem;
    padding: 0.25rem;
    background-color: var(--color-gray-100, var(--color-gray-100));
    border-radius: var(--radius-lg, 0.5rem);
}
.dark .ui-auth-credential-toggle {
    background-color: var(--color-gray-800, #1e1e38);
}
.ui-auth-credential-btn {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-gray-600, #3e3860);
    background-color: transparent;
    border: none;
    border-radius: var(--radius-md, 0.375rem);
    cursor: pointer;
    transition: all 0.15s ease;
}
.ui-auth-credential-btn:hover {
    background-color: var(--color-gray-200, var(--color-gray-200));
}
.dark .ui-auth-credential-btn {
    color: var(--color-gray-400, #9ca3af);
}
.dark .ui-auth-credential-btn:hover {
    background-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-credential-btn.active {
    color: var(--color-white);
    background-color: var(--color-primary-600, #db2777);
}

/* Auth Channel Grid (Token) */
.ui-auth-channel-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
}
.ui-auth-channel-option {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.375rem;
    padding: 0.75rem;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-gray-600, #3e3860);
    background-color: var(--color-gray-50, #f9fafb);
    border: 1px solid var(--color-gray-200, var(--color-gray-200));
    border-radius: var(--radius-lg, 0.5rem);
    cursor: pointer;
    transition: all 0.15s ease;
}
.dark .ui-auth-channel-option {
    color: var(--color-gray-400, #9ca3af);
    background-color: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-channel-option:hover {
    border-color: var(--color-primary-400, var(--color-primary-400));
}
.ui-auth-channel-option:has(input:checked) {
    color: var(--color-primary-700, var(--color-primary-700));
    border-color: var(--color-primary-500, var(--color-primary-500));
    background-color: var(--color-primary-50, #fdf2f8);
}
.dark .ui-auth-channel-option:has(input:checked) {
    color: var(--color-primary-400, var(--color-primary-400));
    border-color: var(--color-primary-500, var(--color-primary-500));
    background-color: rgba(var(--color-primary-rgb), 0.1);
}
.ui-auth-channel-option-whatsapp:has(input:checked) {
    color: var(--color-success-600);
    border-color: var(--color-success-500);
    background-color: rgba(34, 197, 94, 0.1);
}

/* Auth Info Box */
.ui-auth-info-box {
    padding: 1rem;
    background-color: var(--color-primary-50, #fdf2f8);
    border: 1px solid var(--color-primary-200, #fbcfe8);
    border-radius: var(--radius-lg, 0.5rem);
    margin-top: 1.5rem;
}
.dark .ui-auth-info-box {
    background-color: rgba(var(--color-primary-rgb), 0.1);
    border-color: rgba(var(--color-primary-rgb), 0.3);
}
.ui-auth-info-box-icon {
    color: var(--color-primary-600, #db2777);
    flex-shrink: 0;
}
.ui-auth-info-box-title {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-primary-900, #831843);
    margin: 0 0 0.25rem;
}
.dark .ui-auth-info-box-title {
    color: var(--color-primary-400, var(--color-primary-400));
}
.ui-auth-info-box-text {
    font-size: 0.8125rem;
    color: var(--color-primary-700, var(--color-primary-700));
    margin: 0 0 0.5rem;
}
.dark .ui-auth-info-box-text {
    color: var(--color-primary-300, var(--color-primary-300));
}
.ui-auth-info-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-gray-900, #0f0f22);
    margin: 0 0 0.75rem;
}
.dark .ui-auth-info-title {
    color: var(--color-white);
}
.ui-auth-info-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.ui-auth-info-list-item {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.8125rem;
    color: var(--color-gray-600, #3e3860);
}
.dark .ui-auth-info-list-item {
    color: var(--color-gray-400, #9ca3af);
}
.ui-auth-info-list-number {
    font-weight: 600;
    color: var(--color-primary-600, #db2777);
    flex-shrink: 0;
}
.dark .ui-auth-info-list-number {
    color: var(--color-primary-400, var(--color-primary-400));
}

/* Auth Tips Box */
.ui-auth-tips-box {
    padding: 1rem;
    background-color: var(--color-gray-50, #f9fafb);
    border: 1px solid var(--color-gray-200, var(--color-gray-200));
    border-radius: var(--radius-lg, 0.5rem);
    margin-top: 1.5rem;
}
.dark .ui-auth-tips-box {
    background-color: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-tips-title {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-gray-900, #0f0f22);
    margin: 0 0 0.75rem;
}
.dark .ui-auth-tips-title {
    color: var(--color-white);
}
.ui-auth-tips-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.ui-auth-tips-item {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.8125rem;
    color: var(--color-gray-600, #3e3860);
}
.dark .ui-auth-tips-item {
    color: var(--color-gray-400, #9ca3af);
}
.ui-auth-tips-icon {
    color: var(--color-success-500, var(--color-success-500));
    flex-shrink: 0;
    margin-top: 0.125rem;
}

/* Auth Security Notice */
.ui-auth-security-notice {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.75rem;
    background-color: var(--color-gray-50, #f9fafb);
    border-radius: var(--radius-lg, 0.5rem);
    margin-top: 1rem;
}
.dark .ui-auth-security-notice {
    background-color: var(--color-gray-800, #1e1e38);
}
.ui-auth-security-icon {
    color: var(--color-success-600, var(--color-success-600));
    flex-shrink: 0;
}
.ui-auth-security-text {
    font-size: 0.75rem;
    color: var(--color-gray-600, #3e3860);
    margin: 0;
}
.dark .ui-auth-security-text {
    color: var(--color-gray-400, #9ca3af);
}

/* Auth Footer */
.ui-auth-footer {
    text-align: center;
    margin-top: 1.5rem;
}
.ui-auth-footer-link {
    font-size: 0.875rem;
    color: var(--color-gray-600, #3e3860);
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    text-decoration: none;
}
.dark .ui-auth-footer-link {
    color: var(--color-gray-400, #9ca3af);
}
.ui-auth-footer-link-action {
    font-weight: 500;
    color: var(--color-primary-600, #db2777);
    margin-left: 0.25rem;
}
.ui-auth-footer-link-action:hover {
    color: var(--color-primary-700, var(--color-primary-700));
    opacity: 0.85;
}
.ui-auth-footer-link-secondary {
    color: var(--color-gray-500, #6b7280);
    margin-top: 0.75rem;
}

/* Auth Dividers */
.ui-auth-or-divider {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin: 1.5rem 0;
    font-size: 0.875rem;
    color: var(--color-gray-400, #9ca3af);
}
.ui-auth-or-divider::before,
.ui-auth-or-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background-color: var(--color-gray-200, var(--color-gray-200));
}
.dark .ui-auth-or-divider::before,
.dark .ui-auth-or-divider::after {
    background-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-divider {
    text-align: center;
    margin-top: 1rem;
}

/* Auth Alternative Methods */
.ui-auth-alt-methods-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(4.5rem, 1fr));
    gap: 0.5rem;
}
.ui-auth-alt-method-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.375rem;
    padding: 0.75rem 0.5rem;
    background-color: var(--color-gray-50, #f9fafb);
    border: 1px solid var(--color-gray-200, var(--color-gray-200));
    border-radius: var(--radius-lg, 0.5rem);
    text-decoration: none;
    transition: all 0.15s ease;
}
.dark .ui-auth-alt-method-btn {
    background-color: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-alt-method-btn:hover {
    background-color: var(--color-gray-100, var(--color-gray-100));
    border-color: var(--color-gray-300, #d1d5db);
}
.dark .ui-auth-alt-method-btn:hover {
    background-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-alt-method-icon {
    font-size: 1.25rem;
    color: var(--color-gray-500, #6b7280);
}
.dark .ui-auth-alt-method-icon {
    color: var(--color-gray-400, #9ca3af);
}
.ui-auth-alt-method-label {
    font-size: 0.6875rem;
    font-weight: 500;
    color: var(--color-gray-600, #3e3860);
}
.dark .ui-auth-alt-method-label {
    color: var(--color-gray-400, #9ca3af);
}

/* Auth Alt Buttons */
.ui-auth-alt-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.625rem;
    font-size: 0.75rem;
    font-weight: 500;
    border-radius: var(--radius-md, 0.375rem);
    text-decoration: none;
    transition: all 0.15s ease;
}
.ui-auth-alt-btn-slate {
    color: var(--color-gray-600, #3e3860);
    background-color: var(--color-gray-100, var(--color-gray-100));
}
.dark .ui-auth-alt-btn-slate {
    color: var(--color-gray-400, #9ca3af);
    background-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-alt-btn-purple {
    color: var(--color-white);
    background-color: var(--color-purple-600, var(--color-accent-600));
}
.ui-auth-alt-btn-cyan {
    color: var(--color-white);
    background-color: var(--color-info-600, var(--color-info-600));
}

/* Auth Mini Buttons */
.ui-auth-btn-mini {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.375rem 0.5rem;
    font-size: 0.75rem;
    font-weight: 500;
    border-radius: var(--radius-md, 0.375rem);
    text-decoration: none;
    transition: all 0.15s ease;
}
.ui-auth-btn-mini-secondary {
    color: var(--color-gray-700, #2a2a4e);
    background-color: var(--color-gray-100, var(--color-gray-100));
}
.dark .ui-auth-btn-mini-secondary {
    color: var(--color-gray-300, #d1d5db);
    background-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-btn-mini-cyan {
    color: var(--color-white);
    background-color: var(--color-info-600, var(--color-info-600));
}

/* Auth WhatsApp Button */
.ui-auth-btn-whatsapp {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.5rem 0.75rem;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-white);
    background-color: #25D366;
    border: none;
    border-radius: var(--radius-md, 0.375rem);
    cursor: pointer;
    transition: all 0.15s ease;
}
.ui-auth-btn-whatsapp:hover {
    background-color: #1da851;
}

/* Auth Button Group */
.ui-auth-btn-group {
    display: flex;
    gap: 0.75rem;
    margin-top: 1rem;
}
.ui-auth-btn-group > * {
    flex: 1;
}

/* Auth Social Grid */
.ui-auth-social-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
}
.ui-auth-social-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 1rem 0.75rem;
    background-color: var(--color-gray-50, #f9fafb);
    border: 1px solid var(--color-gray-200, var(--color-gray-200));
    border-radius: var(--radius-lg, 0.5rem);
    text-decoration: none;
    transition: all 0.15s ease;
}
.dark .ui-auth-social-btn {
    background-color: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-social-btn:hover {
    background-color: var(--color-gray-100, var(--color-gray-100));
    border-color: var(--color-gray-300, #d1d5db);
}
.dark .ui-auth-social-btn:hover {
    background-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-social-btn i {
    font-size: 1.5rem;
    color: var(--color-gray-600, #3e3860);
}
.dark .ui-auth-social-btn i {
    color: var(--color-gray-400, #9ca3af);
}
.ui-auth-social-btn-label {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-gray-600, #3e3860);
}
.dark .ui-auth-social-btn-label {
    color: var(--color-gray-400, #9ca3af);
}

/* Auth Terms */
.ui-auth-terms-text {
    font-size: 0.75rem;
    color: var(--color-gray-500, #6b7280);
    text-align: center;
    margin-top: 1rem;
}
.dark .ui-auth-terms-text {
    color: var(--color-gray-400, #9ca3af);
}
.ui-auth-terms-link {
    color: var(--color-primary-600, #db2777);
    text-decoration: none;
}
.ui-auth-terms-link:hover {
    opacity: 0.85;
}

/* Auth Account Info */
.ui-auth-account-info {
    font-size: 0.8125rem;
    color: var(--color-gray-400, #9ca3af);
    margin-top: 0.375rem;
}

/* Auth Toast */
.ui-auth-toast {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: var(--z-dropdown);
    color: var(--color-white);
    padding: 0.75rem 1.25rem;
    border-radius: var(--radius-lg, 0.5rem);
    font-size: 0.875rem;
    box-shadow: var(--shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
    transform: translateX(120%);
    transition: transform 0.3s ease;
}
.ui-auth-toast-visible {
    transform: translateX(0);
}

/* Auth Recovery Section */
.ui-auth-recovery-section {
    margin-top: 1.5rem;
}
.ui-auth-recovery-toggle {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.75rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-gray-500, #6b7280);
    background: none;
    border: none;
    cursor: pointer;
    justify-content: center;
}
.ui-auth-recovery-toggle:hover {
    color: var(--color-primary-600, #db2777);
}
.ui-auth-recovery-options {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 0.75rem;
}
.ui-auth-recovery-title {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-gray-700, #2a2a4e);
    margin-bottom: 0.5rem;
}
.dark .ui-auth-recovery-title {
    color: var(--color-gray-300, #d1d5db);
}
.ui-auth-recovery-btn {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.75rem;
    background-color: var(--color-gray-50, #f9fafb);
    border: 1px solid var(--color-gray-200, var(--color-gray-200));
    border-radius: var(--radius-lg, 0.5rem);
    cursor: pointer;
    transition: all 0.15s ease;
    text-align: left;
}
.dark .ui-auth-recovery-btn {
    background-color: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-recovery-btn:hover {
    background-color: var(--color-gray-100, var(--color-gray-100));
    border-color: var(--color-gray-300, #d1d5db);
}
.dark .ui-auth-recovery-btn:hover {
    background-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-recovery-btn-icon {
    width: 2.5rem;
    height: 2.5rem;
    min-width: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-md, 0.375rem);
    color: var(--color-white);
}
.ui-auth-recovery-btn-icon-amber {
    background-color: var(--color-warning-500, var(--color-warning-500));
}
.ui-auth-recovery-btn-icon-green {
    background-color: var(--color-success-500, var(--color-success-500));
}
.ui-auth-recovery-btn-icon-blue {
    background-color: var(--color-primary-500, var(--color-primary-500));
}
.ui-auth-recovery-btn-content {
    flex: 1;
    min-width: 0;
}
.ui-auth-recovery-btn-title {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-gray-800, #1e1e38);
}
.dark .ui-auth-recovery-btn-title {
    color: var(--color-gray-200, var(--color-gray-200));
}
.ui-auth-recovery-btn-desc {
    font-size: 0.75rem;
    color: var(--color-gray-500, #6b7280);
    margin-top: 0.125rem;
}
.dark .ui-auth-recovery-btn-desc {
    color: var(--color-gray-400, #9ca3af);
}
.ui-auth-recovery-btn-arrow {
    color: var(--color-gray-400, #9ca3af);
    font-size: 0.75rem;
    flex-shrink: 0;
}
.ui-auth-recovery-support {
    text-align: center;
    margin-top: 0.5rem;
}
.ui-auth-recovery-support-link {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.8125rem;
    color: var(--color-gray-500, #6b7280);
    text-decoration: none;
}
.ui-auth-recovery-support-link:hover {
    color: var(--color-primary-600, #db2777);
}

/* Auth Modal */
.ui-auth-modal {
    position: fixed;
    inset: 0;
    z-index: var(--z-modal);
    display: flex;
    align-items: center;
    justify-content: center;
}
.ui-auth-modal.hidden {
    display: none;
}
.ui-auth-modal-backdrop {
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(4px);
}
.ui-auth-modal-container {
    position: relative;
    z-index: var(--z-content);
    width: 100%;
    max-width: 24rem;
    margin: 1rem;
}
.ui-auth-modal-content {
    background-color: var(--color-white);
    border: 1px solid var(--color-gray-200, var(--color-gray-200));
    border-radius: var(--radius-xl, 0.75rem);
    padding: 1.5rem;
    box-shadow: var(--shadow-xl, 0 20px 25px -5px rgb(0 0 0 / 0.1));
}
.dark .ui-auth-modal-content {
    background-color: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-modal-header {
    text-align: center;
    margin-bottom: 1.25rem;
}
.ui-auth-modal-icon {
    width: 3rem;
    height: 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--color-white);
    margin-bottom: 0.75rem;
}
.ui-auth-modal-icon-amber {
    background-color: var(--color-warning-500, var(--color-warning-500));
}
.ui-auth-modal-icon-green {
    background-color: var(--color-success-500, var(--color-success-500));
}
.ui-auth-modal-icon-blue {
    background-color: var(--color-primary-500, var(--color-primary-500));
}
.ui-auth-modal-title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--color-gray-900, #0f0f22);
}
.dark .ui-auth-modal-title {
    color: var(--color-white);
}
.ui-auth-modal-desc {
    font-size: 0.8125rem;
    color: var(--color-gray-500, #6b7280);
    margin-top: 0.375rem;
}
.dark .ui-auth-modal-desc {
    color: var(--color-gray-400, #9ca3af);
}
.ui-auth-modal-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.ui-auth-modal-actions {
    display: flex;
    gap: 0.75rem;
    margin-top: 0.5rem;
}
.ui-auth-modal-actions > * {
    flex: 1;
}
.ui-auth-modal-resend {
    text-align: center;
    margin-top: 0.5rem;
}
.ui-auth-resend-btn {
    font-size: 0.8125rem;
    color: var(--color-primary-600, #db2777);
    background: none;
    border: none;
    cursor: pointer;
}
.ui-auth-resend-btn:disabled {
    color: var(--color-gray-400, #9ca3af);
    cursor: not-allowed;
}

/* Auth OTP Group & Container */
.ui-auth-otp-group {
    text-align: center;
}
.ui-auth-otp-inputs {
    display: flex;
    gap: 0.5rem;
    justify-content: center;
    flex-wrap: nowrap;
}

/* Auth OTP Input */
.ui-auth-otp-input {
    width: 2.75rem;
    height: 3.25rem;
    font-size: 1.25rem;
    font-weight: 600;
    text-align: center;
    color: var(--color-gray-900, #0f0f22);
    background-color: var(--color-gray-50, #f9fafb);
    border: 2px solid var(--color-gray-200, var(--color-gray-200));
    border-radius: var(--radius-lg, 0.5rem);
    transition: all 0.15s ease;
}
.dark .ui-auth-otp-input {
    color: var(--color-white);
    background-color: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-600, #3e3860);
}
.ui-auth-otp-input:focus {
    outline: none;
    border-color: var(--color-primary-500, var(--color-primary-500));
    background-color: var(--color-white);
}
.dark .ui-auth-otp-input:focus {
    background-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-otp-separator {
    display: flex;
    align-items: center;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--color-gray-300, #d1d5db);
    padding: 0 0.25rem;
}
.dark .ui-auth-otp-separator {
    color: var(--color-gray-600, #3e3860);
}
.ui-auth-otp-status {
    text-align: center;
    margin-top: 0.75rem;
}
.ui-auth-otp-status-text {
    font-size: 0.875rem;
    color: var(--color-gray-600, #3e3860);
}
.dark .ui-auth-otp-status-text {
    color: var(--color-gray-400, #9ca3af);
}
.ui-auth-otp-timer {
    font-weight: 600;
    color: var(--color-primary-600, #db2777);
}
.ui-auth-otp-resend {
    display: inline-block;
    margin-top: 0.5rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-primary-600, #db2777);
    background: none;
    border: none;
    cursor: pointer;
    text-decoration: none;
}
.ui-auth-otp-resend:disabled {
    color: var(--color-gray-400, #9ca3af);
    cursor: not-allowed;
}
.ui-auth-otp-resend:not(:disabled):hover {
    opacity: 0.85;
}

/* Auth PIN Components */
.ui-auth-pin-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
}
.ui-auth-pin-dots {
    display: flex;
    gap: 0.75rem;
}
.ui-auth-pin-dot {
    width: 3rem;
    height: 3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-gray-100, var(--color-gray-100));
    border: 2px solid var(--color-gray-200, var(--color-gray-200));
    border-radius: var(--radius-lg, 0.5rem);
    transition: all 0.15s ease;
}
.dark .ui-auth-pin-dot {
    background-color: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-600, #3e3860);
}
.ui-auth-pin-dot-active {
    background-color: var(--color-primary-100, #fce7f3);
    border-color: var(--color-primary-500, var(--color-primary-500));
}
.dark .ui-auth-pin-dot-active {
    background-color: rgba(var(--color-primary-rgb), 0.2);
    border-color: var(--color-primary-500, var(--color-primary-500));
}
.ui-auth-pin-dot .pin-digit {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-gray-900, #0f0f22);
}
.dark .ui-auth-pin-dot .pin-digit {
    color: var(--color-white);
}

/* Auth Keypad */
.ui-auth-keypad {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
    max-width: 16rem;
}
.ui-auth-keypad-btn {
    width: 4rem;
    height: 4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--color-gray-900, #0f0f22);
    background-color: var(--color-gray-100, var(--color-gray-100));
    border: 1px solid var(--color-gray-200, var(--color-gray-200));
    border-radius: var(--radius-xl, 0.75rem);
    cursor: pointer;
    transition: all 0.15s ease;
}
.dark .ui-auth-keypad-btn {
    color: var(--color-white);
    background-color: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-keypad-btn:hover {
    background-color: var(--color-gray-200, var(--color-gray-200));
}
.dark .ui-auth-keypad-btn:hover {
    background-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-keypad-btn:active {
    opacity: 0.9;
}

/* Auth Pattern Components */
.ui-auth-pattern-container {
    position: relative;
    width: 100%;
    max-width: 300px;
    aspect-ratio: 1 / 1;
    margin: 0 auto;
}
.ui-auth-pattern-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    padding: 1rem;
}
.ui-auth-pattern-dot {
    width: 2.5rem;
    height: 2.5rem;
    background-color: var(--color-gray-200, var(--color-gray-200));
    border: 3px solid var(--color-gray-300, #d1d5db);
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.15s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}
.dark .ui-auth-pattern-dot {
    background-color: var(--color-gray-700, #2a2a4e);
    border-color: var(--color-gray-600, #3e3860);
}
.ui-auth-pattern-dot:hover {
    border-color: var(--color-primary-400);
}
.ui-auth-pattern-dot.active {
    background-color: var(--color-teal-500, #14b8a6);
    border-color: var(--color-teal-600, var(--color-info-600));
}
.ui-auth-pattern-dot-inner {
    width: 1rem;
    height: 1rem;
    background-color: transparent;
    border-radius: 50%;
    transition: all 0.15s ease;
}
.ui-auth-pattern-dot-inner-active {
    background-color: var(--color-white);
}
.ui-auth-pattern-status {
    font-size: 0.875rem;
    color: var(--color-gray-500, #6b7280);
    transition: color 0.15s ease;
}
.dark .ui-auth-pattern-status {
    color: var(--color-gray-400, #9ca3af);
}
.ui-auth-pattern-status-warning {
    color: var(--color-warning-600, var(--color-warning-700));
}
.ui-auth-pattern-status-success {
    color: var(--color-success-600, var(--color-success-600));
}

/* Auth Biometric */
.ui-auth-biometric-status {
    text-align: center;
}
.ui-auth-biometric-status-icon {
    font-size: 4rem;
    color: var(--color-primary-500, var(--color-primary-500));
}
.ui-auth-biometric-status-icon.animate {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

/* Fade In - Animação genérica */
@keyframes ui-fadeIn {
    from { opacity: 0; transform: translateY(0.5rem); }
    to { opacity: 1; transform: translateY(0); }
}
.animate-fadeIn {
    animation: ui-fadeIn 0.2s ease-out;
}
.ui-auth-status-message {
    font-size: 0.9375rem;
    color: var(--color-gray-700, #2a2a4e);
    margin: 0 0 0.25rem;
}
.dark .ui-auth-status-message {
    color: var(--color-gray-300, #d1d5db);
}
.ui-auth-status-hint {
    font-size: 0.8125rem;
    color: var(--color-gray-500, #6b7280);
    margin: 0;
}
.dark .ui-auth-status-hint {
    color: var(--color-gray-400, #9ca3af);
}

/* Auth QR Code */
.ui-auth-qr-container {
    display: flex;
    justify-content: center;
    margin: 1rem 0;
}
.ui-auth-qr-code {
    padding: 1rem;
    background-color: var(--color-white);
    border-radius: var(--radius-lg, 0.5rem);
    box-shadow: var(--shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1));
}
.ui-auth-qr-timer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background-color: var(--color-gray-100, var(--color-gray-100));
    border-radius: var(--radius-md, 0.375rem);
    margin-bottom: 1rem;
}
.dark .ui-auth-qr-timer {
    background-color: var(--color-gray-800, #1e1e38);
}
.ui-auth-qr-timer-warning {
    background-color: var(--color-warning-100, var(--color-warning-100));
}
.dark .ui-auth-qr-timer-warning {
    background-color: rgba(245, 158, 11, 0.1);
}
.ui-auth-qr-timer-icon {
    color: var(--color-gray-500, #6b7280);
}
.ui-auth-qr-timer-text {
    font-size: 0.875rem;
    color: var(--color-gray-600, #3e3860);
}
.dark .ui-auth-qr-timer-text {
    color: var(--color-gray-400, #9ca3af);
}
.ui-auth-qr-timer-value {
    font-weight: 600;
    color: var(--color-warning-600, var(--color-warning-700));
}
.ui-auth-qr-status {
    text-align: center;
    padding: 0.75rem;
    border-radius: var(--radius-md, 0.375rem);
    margin-top: 1rem;
}
.ui-auth-qr-status-pending {
    background-color: var(--color-primary-50, #fdf2f8);
    color: var(--color-primary-700, var(--color-primary-700));
}
.dark .ui-auth-qr-status-pending {
    background-color: rgba(var(--color-primary-rgb), 0.1);
    color: var(--color-primary-400, var(--color-primary-400));
}

/* Auth Icon Colors */
.ui-auth-icon-blue { color: var(--color-primary-600, #db2777); }
.ui-auth-alert-icon-warning { color: var(--color-warning-500, var(--color-warning-500)); }
.ui-auth-alert-icon-error { color: var(--color-danger-500, var(--color-danger-500)); }

/* ============================================
   AUTH RESPONSIVE - Mobile Breakpoints
   ============================================ */

/* Prevent horizontal overflow on auth card */
.auth-card {
    overflow-x: hidden;
}

/* --- 480px breakpoint --- */
@media (max-width: 480px) {
    /* OTP inputs - smaller on mobile */
    .ui-auth-otp-input {
        width: 2.25rem;
        height: 2.75rem;
        font-size: 1.125rem;
    }
    .ui-auth-otp-separator {
        padding: 0 0.125rem;
        font-size: 1rem;
    }
    .ui-auth-otp-inputs {
        gap: 0.375rem;
    }

    /* PIN dots - smaller on mobile */
    .ui-auth-pin-dots {
        gap: 0.5rem;
    }
    .ui-auth-pin-dot {
        width: 2.5rem;
        height: 2.5rem;
    }
    .ui-auth-pin-dot .pin-digit {
        font-size: 1.25rem;
    }

    /* Keypad - slightly smaller on mobile */
    .ui-auth-keypad {
        gap: 0.5rem;
        max-width: 14rem;
    }
    .ui-auth-keypad-btn {
        width: 3.5rem;
        height: 3.5rem;
        font-size: 1.25rem;
    }

    /* Social grid - 2 columns on mobile */
    .ui-auth-social-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.5rem;
    }
    .ui-auth-social-btn {
        padding: 0.75rem 0.5rem;
    }

    /* Alt methods grid - shrink min */
    .ui-auth-alt-methods-grid {
        grid-template-columns: repeat(auto-fit, minmax(3.75rem, 1fr));
        gap: 0.375rem;
    }
    .ui-auth-alt-method-btn {
        padding: 0.5rem 0.25rem;
    }
    .ui-auth-alt-method-label {
        font-size: 0.625rem;
    }

    /* Method selector - wrap on mobile */
    .ui-auth-method-selector {
        flex-wrap: wrap;
    }
    .ui-auth-method-btn {
        font-size: 0.75rem;
        padding: 0.375rem 0.625rem;
    }

    /* Credential toggle - smaller */
    .ui-auth-credential-toggle {
        flex-wrap: wrap;
    }
    .ui-auth-credential-btn {
        font-size: 0.8125rem;
        padding: 0.375rem 0.75rem;
    }

    /* Channel grid - 3 cols with less gap */
    .ui-auth-channel-grid {
        gap: 0.5rem;
    }
    .ui-auth-channel-option {
        padding: 0.5rem;
        font-size: 0.75rem;
    }
    .ui-auth-channel-option i {
        font-size: 1rem;
    }

    /* Button group - stack vertically */
    .ui-auth-btn-group {
        flex-direction: column;
        gap: 0.5rem;
    }

    /* Recovery buttons - tighter */
    .ui-auth-recovery-btn {
        padding: 0.625rem;
    }
    .ui-auth-recovery-btn-desc {
        font-size: 0.6875rem;
    }

    /* Modal - full width on mobile */
    .ui-auth-modal-container {
        margin: 1rem;
        max-width: calc(100vw - 2rem);
    }
    .ui-auth-modal-content {
        padding: 1.25rem;
    }
    .ui-auth-modal-actions {
        flex-direction: column;
        gap: 0.5rem;
    }
    .ui-auth-modal-actions > * {
        width: 100%;
    }

    /* Pattern grid - tighter */
    .ui-auth-pattern-grid {
        gap: 1.5rem;
        padding: 0.75rem;
    }
    .ui-auth-pattern-dot {
        width: 2.25rem;
        height: 2.25rem;
    }
    .ui-auth-pattern-dot-inner {
        width: 0.875rem;
        height: 0.875rem;
    }

    /* Info box - tighter padding */
    .ui-auth-info-box {
        padding: 0.75rem;
    }

    /* Biometric icon - smaller */
    .ui-auth-biometric-status-icon {
        font-size: 3rem;
    }

    /* Button text wrapping */
    .ui-auth-btn-primary,
    .ui-auth-btn-secondary {
        font-size: 0.875rem;
        padding: 0.625rem 1rem;
    }
}

/* --- 360px breakpoint (very small phones) --- */
@media (max-width: 360px) {
    /* OTP inputs - even smaller */
    .ui-auth-otp-input {
        width: 1.875rem;
        height: 2.5rem;
        font-size: 1rem;
        border-width: 1.5px;
    }
    .ui-auth-otp-separator {
        padding: 0;
        font-size: 0.875rem;
    }
    .ui-auth-otp-inputs {
        gap: 0.25rem;
    }

    /* PIN dots - even smaller */
    .ui-auth-pin-dots {
        gap: 0.375rem;
    }
    .ui-auth-pin-dot {
        width: 2rem;
        height: 2rem;
    }
    .ui-auth-pin-dot .pin-digit {
        font-size: 1rem;
    }

    /* Keypad - smaller but still tappable */
    .ui-auth-keypad {
        gap: 0.375rem;
        max-width: 12rem;
    }
    .ui-auth-keypad-btn {
        width: 3rem;
        height: 3rem;
        font-size: 1.125rem;
        border-radius: var(--radius-lg, 0.5rem);
    }

    /* Social grid - 2 columns even tighter */
    .ui-auth-social-grid {
        gap: 0.375rem;
    }
    .ui-auth-social-btn {
        padding: 0.5rem 0.375rem;
        gap: 0.25rem;
    }
    .ui-auth-social-btn i {
        font-size: 1.125rem;
    }
    .ui-auth-social-btn-label {
        font-size: 0.625rem;
    }

    /* Alt methods - 3 per row max */
    .ui-auth-alt-methods-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 0.25rem;
    }
    .ui-auth-alt-method-btn {
        padding: 0.375rem 0.125rem;
        gap: 0.25rem;
    }
    .ui-auth-alt-method-icon {
        font-size: 1rem;
    }
    .ui-auth-alt-method-label {
        font-size: 0.5625rem;
    }

    /* Method selector - even tighter */
    .ui-auth-method-btn {
        font-size: 0.6875rem;
        padding: 0.25rem 0.5rem;
        min-width: 0;
    }

    /* Channel grid */
    .ui-auth-channel-option {
        padding: 0.375rem;
        font-size: 0.6875rem;
        gap: 0.25rem;
    }

    /* Pattern grid - compact */
    .ui-auth-pattern-grid {
        gap: 1.25rem;
        padding: 0.5rem;
    }
    .ui-auth-pattern-dot {
        width: 2rem;
        height: 2rem;
    }

    /* Recovery options - compact */
    .ui-auth-recovery-btn {
        padding: 0.5rem;
        gap: 0.5rem;
    }
    .ui-auth-recovery-btn-icon {
        width: 2rem;
        height: 2rem;
        min-width: 2rem;
    }
    .ui-auth-recovery-btn-icon i {
        font-size: 0.875rem;
    }
    .ui-auth-recovery-btn-title {
        font-size: 0.8125rem;
    }
    .ui-auth-recovery-btn-desc {
        font-size: 0.625rem;
    }
}

/* --- intl-tel-input mobile fixes --- */
@media (max-width: 480px) {
    .iti__dropdown-content {
        max-width: calc(100vw - 2rem);
    }
    .iti__country-container {
        max-width: 90px;
    }
    .iti__selected-dial-code {
        font-size: 0.8125rem;
    }
}

/* ============================================
   BALANCE CARD - Cards de Saldo (Financial)
   ============================================ */

.ui-balance-card {
    background-color: var(--color-white);
    border: 1px solid var(--color-gray-200, var(--color-gray-200));
    border-radius: var(--radius-lg, 0.5rem);
    padding: 1rem;
    transition: all 0.15s ease;
}
.dark .ui-balance-card {
    background-color: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-700, #2a2a4e);
}
.ui-balance-card-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}
.ui-balance-card-icon {
    width: 2rem;
    height: 2rem;
    border-radius: var(--radius-md, 0.375rem);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    flex-shrink: 0;
}
.ui-balance-card-icon:not([class*="ui-icon-bg"]) {
    background-color: var(--color-gray-500);
    color: var(--color-white);
}
.ui-balance-card-label {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-gray-500, #6b7280);
}
.dark .ui-balance-card-label {
    color: var(--color-gray-400, #9ca3af);
}
.ui-balance-card-value {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--color-gray-900, #0f0f22);
    margin: 0;
}
.dark .ui-balance-card-value {
    color: var(--color-white);
}
.ui-balance-card-highlight {
    background-color: var(--color-primary-50, #fdf2f8);
    border-color: var(--color-primary-200, #fbcfe8);
}
.dark .ui-balance-card-highlight {
    background-color: rgba(var(--color-primary-rgb), 0.1);
    border-color: rgba(var(--color-primary-rgb), 0.3);
}

/* ============================================
   STATUS UTILITIES
   ============================================ */

.ui-status-info { color: var(--color-primary-600, #db2777); }
.ui-status-danger { color: var(--color-danger-500, var(--color-danger-500)); }

/* ============================================
   NOTIFICAÇÕES - Tabela de Preferências
   ============================================ */

/* Tabela de notificações responsiva */
.ui-notif-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}
.ui-notif-table thead th {
    padding: 0.75rem 0.5rem;
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.025em;
    color: var(--color-gray-500, #6b7280);
    text-align: center;
    white-space: nowrap;
    background-color: var(--color-gray-50, #f9fafb);
}
.dark .ui-notif-table thead th {
    background-color: var(--color-gray-800, #1e1e38);
    color: var(--color-gray-400, #9ca3af);
}
.ui-notif-table thead th:first-child {
    text-align: left;
    width: 40%;
    padding-left: 1rem;
}
.ui-notif-table tbody td {
    padding: 0.625rem 0.5rem;
    font-size: 0.875rem;
    color: var(--color-gray-900, #0f0f22);
    border-bottom: 1px solid var(--color-gray-100, var(--color-gray-100));
}
.dark .ui-notif-table tbody td {
    color: var(--color-gray-100, var(--color-gray-100));
    border-bottom-color: var(--color-gray-700, #2a2a4e);
}
.ui-notif-table tbody td:first-child {
    padding-left: 1rem;
}
.ui-notif-table tbody tr:hover {
    background-color: var(--color-gray-50, #f9fafb);
}
.dark .ui-notif-table tbody tr:hover {
    background-color: var(--color-gray-750, #2d3748);
}
.ui-notif-table tbody td:not(:first-child) {
    text-align: center;
}

/* Checkbox customizado para tabela de notificações */
.ui-notif-checkbox {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
}
.ui-notif-checkbox input {
    position: absolute;
    opacity: 0;
    width: 100%;
    height: 100%;
    cursor: pointer;
    z-index: var(--z-base);
}
.ui-notif-checkbox-box {
    width: 18px;
    height: 18px;
    border: 2px solid var(--color-gray-300, #d1d5db);
    border-radius: var(--radius-sm, 0.25rem);
    background-color: var(--color-gray-50, #f9fafb);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s ease;
}
.dark .ui-notif-checkbox-box {
    border-color: var(--color-gray-600, #3e3860);
    background-color: var(--color-gray-700, #2a2a4e);
}
.ui-notif-checkbox-icon {
    width: 10px;
    height: 10px;
    color: var(--color-white);
    opacity: 0;
    transform: scale(0.5);
    transition: all 0.15s ease;
}
.ui-notif-checkbox input:checked + .ui-notif-checkbox-box {
    background-color: var(--color-primary-600, #db2777);
    border-color: var(--color-primary-600, #db2777);
}
.ui-notif-checkbox input:checked + .ui-notif-checkbox-box .ui-notif-checkbox-icon {
    opacity: 1;
    transform: scale(1);
}
.ui-notif-checkbox input:focus + .ui-notif-checkbox-box {
    box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.2);
}

/* Checkbox padrão estilizado (para formulários em geral) */
input[type="checkbox"].ui-checkbox {
    appearance: none;
    -webkit-appearance: none;
    width: 18px;
    height: 18px;
    border: 2px solid var(--color-gray-300, #d1d5db);
    border-radius: var(--radius-sm, 0.25rem);
    background-color: var(--color-gray-50, #f9fafb);
    cursor: pointer;
    transition: all 0.15s ease;
    position: relative;
}
.dark input[type="checkbox"].ui-checkbox {
    border-color: var(--color-gray-600, #3e3860);
    background-color: var(--color-gray-700, #2a2a4e);
}
input[type="checkbox"].ui-checkbox:checked {
    background-color: var(--color-primary-600);
    border-color: var(--color-primary-600);
}
input[type="checkbox"].ui-checkbox:checked::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 5px;
    width: 5px;
    height: 9px;
    border: solid var(--color-white);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
input[type="checkbox"].ui-checkbox:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.2);
}

/* Toggle switch customizado */
.ui-toggle-switch {
    position: relative;
    display: inline-flex;
    align-items: center;
    cursor: pointer;
}
.ui-toggle-switch input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}
.ui-toggle-switch-track {
    width: 2.75rem;
    height: 1.5rem;
    background-color: var(--color-gray-300);
    border-radius: var(--radius-full, 9999px);
    transition: background-color 0.2s ease;
    position: relative;
}
.dark .ui-toggle-switch-track {
    background-color: var(--color-gray-600);
}
.ui-toggle-switch-track::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 2px;
    width: 1.25rem;
    height: 1.25rem;
    background-color: var(--color-white);
    border-radius: var(--radius-full, 9999px);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
    transition: transform 0.2s ease;
}
.ui-toggle-switch input:checked + .ui-toggle-switch-track {
    background-color: var(--color-primary-600);
}
.ui-toggle-switch input:checked + .ui-toggle-switch-track::after {
    transform: translateX(1.25rem);
}
.ui-toggle-switch input:focus + .ui-toggle-switch-track {
    box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.2);
}

/* ============================================
   OTIMIZAÇÕES DE AUTENTICAÇÃO v2
   Modo escuro/claro, alinhamentos, botões
   ============================================ */

/* --- BOTÕES SMS/WHATSAPP COMPACTOS --- */
.ui-auth-btn-compact {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    padding: 0.375rem 0.5rem;
    font-size: 0.6875rem;
    font-weight: 500;
    border-radius: var(--radius-md, 0.375rem);
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
    min-width: 0;
    flex-shrink: 1;
}

/* Botão SMS Compacto */
.ui-auth-btn-sms {
    color: var(--color-gray-700, #2a2a4e);
    background-color: var(--color-gray-100, var(--color-gray-100));
    border: 1px solid var(--color-gray-300, #d1d5db);
}
.ui-auth-btn-sms:hover:not(:disabled) {
    background-color: var(--color-gray-200, var(--color-gray-200));
    border-color: var(--color-gray-400, #9ca3af);
}
.dark .ui-auth-btn-sms {
    color: var(--color-gray-300, #d1d5db);
    background-color: var(--color-gray-700, #2a2a4e);
    border-color: var(--color-gray-600, #3e3860);
}
.dark .ui-auth-btn-sms:hover:not(:disabled) {
    background-color: var(--color-gray-600, #3e3860);
    border-color: var(--color-gray-500, #6b7280);
}

/* WhatsApp Button Otimizado */
.ui-auth-btn-whatsapp {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    padding: 0.375rem 0.5rem;
    font-size: 0.6875rem;
    font-weight: 500;
    color: var(--color-white);
    background-color: #25D366;
    border: none;
    border-radius: var(--radius-md, 0.375rem);
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
    min-width: 0;
    flex-shrink: 1;
}
.ui-auth-btn-whatsapp:hover:not(:disabled) {
    background-color: #1da851;
}
.ui-auth-btn-whatsapp:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Secondary Button Compacto */
.ui-auth-btn-secondary.ui-auth-btn-compact {
    padding: 0.375rem 0.5rem;
    font-size: 0.6875rem;
}

/* --- GRUPO DE BOTÕES RESPONSIVO --- */
.ui-auth-btn-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}
.ui-auth-btn-row > * {
    flex: 1 1 auto;
    min-width: 0;
}

/* Em telas muito pequenas, empilhar */
@media (max-width: 360px) {
    .ui-auth-btn-row {
        flex-direction: column;
    }
    .ui-auth-btn-row > * {
        flex: 1 1 100%;
    }
}

/* --- ÍCONE DO WHATSAPP NO LABEL --- */
.ui-auth-label-icon {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}
.ui-auth-label-icon-success {
    color: #25D366;
}
.ui-auth-label-with-icon {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}
.ui-auth-label-with-icon svg {
    width: 1rem;
    height: 1rem;
}

/* --- INFO BOX OTIMIZADA --- */
.ui-auth-info-box {
    background-color: var(--color-primary-50, #fdf2f8);
    border: 1px solid var(--color-primary-200, #fbcfe8);
    border-radius: var(--radius-md, 0.375rem);
    padding: 0.75rem;
    margin-top: 0.75rem;
}
.dark .ui-auth-info-box {
    background-color: rgba(var(--color-primary-rgb), 0.1);
    border-color: rgba(var(--color-primary-rgb), 0.3);
}
.ui-auth-info-box-icon {
    color: var(--color-primary-500, var(--color-primary-500));
    flex-shrink: 0;
    margin-top: 0.125rem;
}
.ui-auth-info-box-title {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-gray-800, #1e1e38);
    margin-bottom: 0.25rem;
}
.dark .ui-auth-info-box-title {
    color: var(--color-gray-200, var(--color-gray-200));
}
.ui-auth-info-box-text {
    font-size: 0.6875rem;
    color: var(--color-gray-600, #3e3860);
    margin-bottom: 0.5rem;
}
.dark .ui-auth-info-box-text {
    color: var(--color-gray-400, #9ca3af);
}

/* --- INPUTS PADRONIZADOS --- */
.ui-auth-input {
    display: block;
    width: 100%;
    height: 2.75rem;
    padding: 0 0.875rem;
    font-size: 0.9375rem;
    line-height: 1.5;
    color: var(--color-gray-900, #0f0f22);
    background-color: var(--color-gray-50, #f9fafb);
    border: 1px solid var(--color-gray-300, #d1d5db);
    border-radius: var(--radius-md, 0.375rem);
    transition: all 0.15s ease;
}
.dark .ui-auth-input {
    color: var(--color-white);
    background-color: rgba(15, 23, 42, 0.6);
    border-color: rgba(71, 85, 105, 0.5);
}
.ui-auth-input:focus {
    outline: none;
    border-color: var(--color-primary-500, var(--color-primary-500));
    box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.1);
}
.dark .ui-auth-input:focus {
    background-color: rgba(15, 23, 42, 0.8);
    border-color: rgba(var(--color-primary-rgb), 0.5);
}
/* WCAG AA: 4.5:1 minimum contrast ratio */
.ui-auth-input::placeholder {
    color: var(--color-gray-500);
}
.dark .ui-auth-input::placeholder {
    color: var(--color-gray-400);
}

/* Input com ícone de status */
.ui-auth-input-with-status {
    padding-right: 2.75rem;
}
.ui-auth-input-status {
    position: absolute;
    right: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
}

/* --- LABELS PADRONIZADOS --- */
.ui-auth-label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-gray-700, #2a2a4e);
    margin-bottom: 0.5rem;
}
.dark .ui-auth-label {
    color: var(--color-gray-300, #d1d5db);
}
.ui-auth-label.ui-mb-0 {
    margin-bottom: 0;
}
.ui-auth-required {
    color: var(--color-danger-500, var(--color-danger-500));
}
.ui-auth-optional {
    font-weight: 400;
    color: var(--color-gray-500, #6b7280);
}
.dark .ui-auth-optional {
    color: var(--color-gray-500, #6b7280);
}

/* --- FEEDBACK E HELP TEXT --- */
.ui-auth-feedback {
    font-size: 0.75rem;
    margin-top: 0.375rem;
}
.ui-auth-help-text {
    font-size: 0.75rem;
    color: var(--color-gray-500, #6b7280);
    margin-top: 0.375rem;
}
.dark .ui-auth-help-text {
    color: var(--color-gray-500, #6b7280);
}

/* --- CHECKBOX E TERMOS --- */
.ui-auth-checkbox-row {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}
.ui-auth-checkbox {
    position: relative;
    cursor: pointer;
    flex-shrink: 0;
}
.ui-auth-checkbox-box {
    width: 1.25rem;
    height: 1.25rem;
    border: 2px solid var(--color-gray-300, #d1d5db);
    border-radius: var(--radius-sm, 0.25rem);
    background-color: var(--color-gray-50, #f9fafb);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s ease;
}
.dark .ui-auth-checkbox-box {
    background-color: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-600, #3e3860);
}
.ui-auth-checkbox-icon {
    font-size: 0.75rem;
    color: var(--color-white);
    opacity: 0;
    transition: opacity 0.15s ease;
}
.ui-auth-checkbox input:checked + .ui-auth-checkbox-box {
    background-color: var(--color-primary-600, #db2777);
    border-color: var(--color-primary-600, #db2777);
}
.ui-auth-checkbox input:checked + .ui-auth-checkbox-box .ui-auth-checkbox-icon {
    opacity: 1;
}
.ui-auth-terms-text {
    font-size: 0.8125rem;
    color: var(--color-gray-600, #3e3860);
    line-height: 1.4;
}
.dark .ui-auth-terms-text {
    color: var(--color-gray-400, #9ca3af);
}
.ui-auth-terms-link {
    color: var(--color-primary-600, #db2777);
    text-decoration: none;
    font-weight: 500;
}
.ui-auth-terms-link:hover {
    opacity: 0.85;
}

/* --- BOTÃO PRIMÁRIO PADRONIZADO --- */
.ui-auth-btn-primary {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    height: 2.75rem;
    padding: 0 1.5rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-white);
    background-color: var(--color-primary-600, #db2777);
    border: none;
    border-radius: var(--radius-md, 0.375rem);
    cursor: pointer;
    transition: all 0.2s ease;
}
.ui-auth-btn-primary:hover:not(:disabled) {
    background-color: var(--color-primary-700, var(--color-primary-700));

    box-shadow: 0 4px 12px rgba(var(--color-primary-rgb), 0.3);
}
.ui-auth-btn-primary:focus {
    outline: none;
    box-shadow: 0 0 0 var(--focus-ring-width, 3px) rgba(var(--color-primary-rgb), 0.3);
}
.ui-auth-btn-primary:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
}
.ui-auth-btn-primary:active:not(:disabled) {
    opacity: 0.9;
}

/* --- HEADER DE AUTENTICAÇÃO --- */
.ui-auth-header {
    text-align: center;
    margin-bottom: 1.5rem;
}
.ui-auth-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4rem;
    height: 4rem;
    border-radius: var(--radius-xl, 0.75rem);
    background-color: var(--color-primary-600, #db2777);
    color: var(--color-white);
    margin-bottom: 1rem;
}
.ui-auth-logo-success {
    background-color: var(--color-success-600, var(--color-success-600));
}
.ui-auth-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-gray-900, #0f0f22);
    margin-bottom: 0.5rem;
}
.dark .ui-auth-title {
    color: var(--color-white);
}
.ui-auth-subtitle {
    font-size: 0.9375rem;
    color: var(--color-gray-500, #6b7280);
}
.dark .ui-auth-subtitle {
    color: var(--color-gray-400, #9ca3af);
}

/* --- ALERTAS --- */
.ui-auth-alert {
    padding: 0.875rem 1rem;
    border-radius: var(--radius-md, 0.375rem);
    margin-bottom: 1.25rem;
}
.ui-auth-alert-error {
    background-color: rgba(239, 68, 68, 0.1);
    border: 1px solid rgba(239, 68, 68, 0.3);
}
.ui-auth-alert-warning {
    background-color: rgba(245, 158, 11, 0.1);
    border: 1px solid rgba(245, 158, 11, 0.3);
}
.ui-auth-alert-success {
    background-color: rgba(34, 197, 94, 0.1);
    border: 1px solid rgba(34, 197, 94, 0.3);
}
.ui-auth-alert-content {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}
.ui-auth-alert-icon {
    flex-shrink: 0;
    font-size: 1.125rem;
    margin-top: 0.125rem;
}
.ui-auth-alert-error .ui-auth-alert-icon { color: var(--color-danger-500, var(--color-danger-500)); }
.ui-auth-alert-warning .ui-auth-alert-icon { color: var(--color-warning-500, var(--color-warning-500)); }
.ui-auth-alert-success .ui-auth-alert-icon { color: var(--color-success-500, var(--color-success-500)); }
.ui-auth-alert-body { flex: 1; }
.ui-auth-alert-text {
    font-size: 0.875rem;
    color: var(--color-gray-700, #2a2a4e);
}
.dark .ui-auth-alert-text {
    color: var(--color-gray-300, #d1d5db);
}
.ui-auth-alert-action {
    margin-top: 0.5rem;
}
.ui-auth-alert-link {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-primary-600, #db2777);
    text-decoration: none;
}
.ui-auth-alert-link:hover {
    opacity: 0.85;
}

/* --- SELETOR DE MÉTODO --- */
.ui-auth-method-selector {
    display: flex;
    gap: 0.25rem;
    padding: 0.25rem;
    background-color: var(--color-gray-100, var(--color-gray-100));
    border-radius: var(--radius-lg, 0.5rem);
    overflow-x: auto;
}
.dark .ui-auth-method-selector {
    background-color: var(--color-gray-800, #1e1e38);
}
.ui-auth-method-btn {
    flex: 1;
    padding: 0.625rem 1rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-gray-600, #3e3860);
    background: none;
    border: none;
    border-radius: var(--radius-md, 0.375rem);
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
}
.ui-auth-method-btn:hover {
    color: var(--color-gray-900, #0f0f22);
}
.dark .ui-auth-method-btn {
    color: var(--color-gray-400, #9ca3af);
}
.dark .ui-auth-method-btn:hover {
    color: var(--color-gray-200, var(--color-gray-200));
}
.ui-auth-method-btn.active {
    color: var(--color-white);
    background-color: var(--color-primary-600, #db2777);
}
.dark .ui-auth-method-btn.active {
    color: var(--color-white);
    background-color: var(--color-primary-600, #db2777);
}

/* --- TOGGLE EMAIL/TELEFONE --- */
.ui-auth-credential-toggle {
    display: flex;
    gap: 0.25rem;
    padding: 0.25rem;
    background-color: var(--color-gray-100, var(--color-gray-100));
    border-radius: var(--radius-lg, 0.5rem);
    margin-bottom: 1.25rem;
}
.dark .ui-auth-credential-toggle {
    background-color: var(--color-gray-800, #1e1e38);
}
.ui-auth-credential-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    padding: 0.625rem 0.75rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-gray-600, #3e3860);
    background: none;
    border: none;
    border-radius: var(--radius-md, 0.375rem);
    cursor: pointer;
    transition: all 0.15s ease;
}
.ui-auth-credential-btn:hover {
    color: var(--color-gray-900, #0f0f22);
}
.dark .ui-auth-credential-btn {
    color: var(--color-gray-400, #9ca3af);
}
.dark .ui-auth-credential-btn:hover {
    color: var(--color-gray-200, var(--color-gray-200));
}
.ui-auth-credential-btn.active {
    color: var(--color-white);
    background-color: var(--color-primary-600, #db2777);
}

/* --- CANAL DE TOKEN (EMAIL/SMS/WHATSAPP) --- */
.ui-auth-channel-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
}
.ui-auth-channel-option {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.375rem;
    padding: 0.75rem 0.5rem;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-gray-600, #3e3860);
    background-color: var(--color-gray-50, #f9fafb);
    border: 2px solid var(--color-gray-200, var(--color-gray-200));
    border-radius: var(--radius-md, 0.375rem);
    cursor: pointer;
    transition: all 0.15s ease;
}
.dark .ui-auth-channel-option {
    background-color: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-700, #2a2a4e);
    color: var(--color-gray-400, #9ca3af);
}
.ui-auth-channel-option:hover {
    border-color: var(--color-gray-300, #d1d5db);
}
.ui-auth-channel-option:has(input:checked) {
    border-color: var(--color-primary-500, var(--color-primary-500));
    background-color: var(--color-primary-50, #fdf2f8);
    color: var(--color-primary-700, var(--color-primary-700));
}
.dark .ui-auth-channel-option:has(input:checked) {
    border-color: var(--color-primary-500, var(--color-primary-500));
    background-color: rgba(var(--color-primary-rgb), 0.1);
    color: var(--color-primary-400, var(--color-primary-400));
}
.ui-auth-channel-option-whatsapp:has(input:checked) {
    border-color: #25D366;
    background-color: rgba(37, 211, 102, 0.1);
    color: #1da851;
}

/* --- DIVISOR "OU" --- */
.ui-auth-or-divider {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 0.8125rem;
    color: var(--color-gray-500, #6b7280);
    margin: 1.5rem 0;
}
.ui-auth-or-divider::before,
.ui-auth-or-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background-color: var(--color-gray-200, var(--color-gray-200));
}
.dark .ui-auth-or-divider::before,
.dark .ui-auth-or-divider::after {
    background-color: var(--color-gray-700, #2a2a4e);
}

/* --- MÉTODOS ALTERNATIVOS --- */
.ui-auth-alt-methods-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(5rem, 1fr));
    gap: 0.5rem;
}
.ui-auth-alt-method-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.375rem;
    padding: 0.75rem 0.5rem;
    font-size: 0.6875rem;
    background-color: var(--color-gray-50, #f9fafb);
    border: 1px solid var(--color-gray-200, var(--color-gray-200));
    border-radius: var(--radius-md, 0.375rem);
    text-decoration: none;
    transition: all 0.15s ease;
}
.dark .ui-auth-alt-method-btn {
    background-color: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-alt-method-btn:hover {
    background-color: var(--color-gray-100, var(--color-gray-100));
    border-color: var(--color-gray-300, #d1d5db);
}
.dark .ui-auth-alt-method-btn:hover {
    background-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-alt-method-icon {
    font-size: 1.125rem;
    color: var(--color-gray-500, #6b7280);
}
.dark .ui-auth-alt-method-icon {
    color: var(--color-gray-400, #9ca3af);
}
.ui-auth-alt-method-label {
    font-weight: 500;
    color: var(--color-gray-700, #2a2a4e);
}
.dark .ui-auth-alt-method-label {
    color: var(--color-gray-300, #d1d5db);
}

/* --- SOCIAL GRID --- */
.ui-auth-social-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
}
@media (max-width: 400px) {
    .ui-auth-social-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* --- LINKS DO RODAPÉ --- */
.ui-auth-footer-link {
    text-align: center;
    font-size: 0.875rem;
    color: var(--color-gray-600, #3e3860);
    margin-top: 1.25rem;
}
.dark .ui-auth-footer-link {
    color: var(--color-gray-400, #9ca3af);
}
.ui-auth-footer-link-action {
    font-weight: 600;
    color: var(--color-primary-600, #db2777);
    text-decoration: none;
}
.ui-auth-footer-link-action:hover {
    opacity: 0.85;
}
.ui-auth-footer-link-secondary {
    font-size: 0.8125rem;
    margin-top: 0.75rem;
}

/* --- LINK SIMPLES --- */
.ui-auth-link {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-primary-600, #db2777);
    text-decoration: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
}
.ui-auth-link:hover {
    opacity: 0.85;
}

/* --- TOGGLE LEMBRAR DISPOSITIVO --- */
.ui-auth-remember-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.ui-auth-remember-toggle {
    position: relative;
    display: flex;
    align-items: center;
    cursor: pointer;
    flex-shrink: 0;
}
.ui-auth-toggle-track {
    width: 2.5rem;
    height: 1.375rem;
    background-color: var(--color-gray-300, #d1d5db);
    border-radius: var(--radius-full, 9999px);
    transition: background-color 0.15s ease;
}
.ui-auth-remember-toggle input:checked + .ui-auth-toggle-track {
    background-color: var(--color-primary-600, #db2777);
}
.ui-auth-toggle-track::after {
    content: '';
    position: absolute;
    top: 0.125rem;
    left: 0.125rem;
    width: 1.125rem;
    height: 1.125rem;
    background-color: var(--color-white);
    border-radius: var(--radius-full, 9999px);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
    transition: transform 0.15s ease;
}
.ui-auth-remember-toggle input:checked + .ui-auth-toggle-track::after {
    transform: translateX(1.125rem);
}
.ui-auth-remember-text {
    font-size: 0.8125rem;
    color: var(--color-gray-600, #3e3860);
}
.dark .ui-auth-remember-text {
    color: var(--color-gray-400, #9ca3af);
}

/* --- FORÇA DA SENHA --- */
.ui-auth-password-strength {
    margin-top: 0.5rem;
}
.ui-auth-strength-track {
    height: 0.25rem;
    background-color: var(--color-gray-200, var(--color-gray-200));
    border-radius: var(--radius-full, 9999px);
    overflow: hidden;
}
.dark .ui-auth-strength-track {
    background-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-strength-bar {
    height: 100%;
    width: 0;
    transition: all 0.3s ease;
    border-radius: var(--radius-full, 9999px);
}
.ui-auth-strength-text {
    font-size: 0.75rem;
    color: var(--color-gray-500, #6b7280);
    margin-top: 0.25rem;
}

/* --- SEÇÕES --- */
.ui-auth-section-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: var(--radius-full, 9999px);
    color: var(--color-white);
    margin-bottom: 0.75rem;
}
.ui-auth-section-icon-primary { background-color: var(--color-primary-600, #db2777); }
.ui-auth-section-icon-success { background-color: var(--color-success-600, var(--color-success-600)); }
.ui-auth-section-icon-warning { background-color: var(--color-warning-600, var(--color-warning-700)); }
.ui-auth-section-icon-purple { background-color: var(--color-purple-600, var(--color-accent-600)); }
.ui-auth-section-icon-cyan { background-color: var(--color-info-600, var(--color-info-600)); }
.ui-auth-section-icon-indigo { background-color: var(--color-indigo-600, var(--color-primary-600)); }
.ui-auth-section-text {
    font-size: 0.875rem;
    color: var(--color-gray-600, #3e3860);
}
.dark .ui-auth-section-text {
    color: var(--color-gray-400, #9ca3af);
}

/* --- PADRÃO (PATTERN) --- */
.ui-auth-pattern-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    padding: 1.5rem;
    touch-action: none;
}
.ui-auth-pattern-dot {
    width: 3rem;
    height: 3rem;
    border-radius: var(--radius-full, 9999px);
    background-color: var(--color-gray-200, var(--color-gray-200));
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s ease;
}
.dark .ui-auth-pattern-dot {
    background-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-pattern-dot-inner {
    width: 1rem;
    height: 1rem;
    border-radius: var(--radius-full, 9999px);
    background-color: var(--color-gray-400, #9ca3af);
    transition: all 0.15s ease;
}
.dark .ui-auth-pattern-dot-inner {
    background-color: var(--color-gray-500, #6b7280);
}
.ui-auth-pattern-dot-active {
    background-color: var(--color-primary-100, #fce7f3);
}
.dark .ui-auth-pattern-dot-active {
    background-color: rgba(var(--color-primary-rgb), 0.2);
}
.ui-auth-pattern-dot-inner-active {
    background-color: var(--color-primary-600, #db2777);
    transform: scale(1.2);
}

/* --- SOCIAL LOGIN BUTTONS --- */
.ui-auth-social-login-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-gray-700, #2a2a4e);
    background-color: var(--color-gray-50, #f9fafb);
    border: 1px solid var(--color-gray-200, var(--color-gray-200));
    border-radius: var(--radius-md, 0.375rem);
    text-decoration: none;
    transition: all 0.15s ease;
}
.dark .ui-auth-social-login-btn {
    color: var(--color-gray-300, #d1d5db);
    background-color: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-social-login-btn:hover {
    background-color: var(--color-gray-100, var(--color-gray-100));
    border-color: var(--color-gray-300, #d1d5db);
}
.dark .ui-auth-social-login-btn:hover {
    background-color: var(--color-gray-700, #2a2a4e);
}
.ui-auth-social-login-btn svg {
    width: 1.25rem;
    height: 1.25rem;
}

/* ============================================
   CORREÇÕES VISUAIS - 2026-02-04
   ============================================ */

/* --- FIX: Header card z-index para dropdown aparecer sobre o conteúdo --- */
/* Aplica a todos os settings-header-card, não só ao admin */
.settings-header-card {
    z-index: var(--z-card);
    overflow: visible;
}
.settings-content-card-v2 {
    z-index: var(--z-base);
}
.settings-header-actions {
    position: relative;
    z-index: var(--z-card-actions);
}

/* --- FIX: Dropdowns inline devem usar z-index do design system --- */
.plugin-status-dropdown > [id^="plugin-menu-"],
.plugin-grid-dropdown > [id^="plugin-menu-"],
[data-ui="dropdown"] .dropdown-menu,
.ui-admin-settings-card .relative > [class*="absolute"][class*="shadow"] {
    z-index: var(--z-dropdown);
}

/* Dropdown container — precisa de posição relativa e overflow visível */
.plugin-status-dropdown,
.plugin-grid-dropdown {
    overflow: visible;
}

/* --- FIX: Menu dropdown z-index e posicionamento --- */
.settings-menu-container-v2 {
    position: relative;
    z-index: var(--z-card-actions);
}
.settings-menu-dropdown-v2 {
    z-index: var(--z-popover);
}

/* --- FIX: Ícone do header consistente com plugins --- */
.settings-header-card .settings-header-icon,
.page-shell .page-header-icon {
    width: 48px;
    height: 48px;
    min-width: 48px;
    min-height: 48px;
    border-radius: var(--radius-xl, 0.75rem);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    flex-shrink: 0;
    font-size: 1.25rem;
    background: linear-gradient(135deg, var(--color-primary-500, var(--color-primary-500)), var(--color-primary-700, var(--color-primary-700)));
}
/* Inner span must fill parent and center icon — override ui-w-*/ui-h-* constraints */
.settings-header-icon > span,
.page-header-icon > span {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    line-height: 1;
}
.settings-header-icon i,
.settings-header-icon svg,
.page-header-icon i,
.page-header-icon svg {
    font-size: 1.25rem;
    width: 1.25rem;
    height: 1.25rem;
    line-height: 1;
}

/* --- FIX: Campo de busca - ícone não sobrepor texto --- */
.settings-search-v2 input,
.settings-header-card .settings-search-v2 input {
    padding-left: 2.5rem !important;
}
.settings-search-v2 .settings-search-icon,
.settings-header-card .settings-search-v2 .settings-search-icon {
    left: 0.875rem;
}

/* --- FIX: Sidebar active state - remover efeito quando não ativo --- */
.app-sidebar .sidebar-item:not(.sidebar-item-active) {
    background: transparent;
}
.app-sidebar .sidebar-item:not(.sidebar-item-active):hover {
    background: var(--color-slate-100);
}
.dark .app-sidebar .sidebar-item:not(.sidebar-item-active):hover {
    background: var(--color-slate-800);
}

/* --- FIX: Remover focus/hover persistente na sidebar --- */
.app-sidebar .sidebar-item:focus {
    outline: none;
}
.app-sidebar .sidebar-item:focus:not(:focus-visible) {
    background: transparent;
}
.app-sidebar .sidebar-item.sidebar-item-active:focus:not(:focus-visible) {
    background: var(--color-primary-50, #fdf2f8);
}
.dark .app-sidebar .sidebar-item.sidebar-item-active:focus:not(:focus-visible) {
    background: var(--color-primary-900);
}

/* --- FIX: Company dropdown overlay z-index --- */
.header-company-selector {
    position: relative;
    z-index: var(--z-dropdown);
}
.company-dropdown {
    z-index: var(--z-overlay-dropdown);
}

/* --- FIX: Shortcuts modal centralizado --- */
.shortcuts-modal.ui-modal {
    align-items: center;
    justify-content: center;
}
.shortcuts-modal .shortcuts-modal-dialog {
    margin-top: 0;
    margin: auto;
}

/* --- FIX: Toggles dropdown - fonte e z-index --- */
.toggles-dropdown {
    z-index: var(--z-overlay-dropdown);
}
.toggles-dropdown .toggles-dropdown-title {
    font-size: 0.6875rem;
    font-weight: 600;
    color: var(--color-slate-500);
}
.dark .toggles-dropdown .toggles-dropdown-title {
    color: var(--color-slate-400);
}
.toggles-dropdown .toggles-dropdown-item {
    font-size: 0.8125rem;
}
/* Hover com fundo sutil */
.toggles-dropdown .toggles-dropdown-item:hover {
    background: var(--color-bg-hover, rgba(0, 0, 0, 0.04));
    color: var(--color-slate-800);
    text-decoration: none;
}
.toggles-dropdown .toggles-dropdown-item:hover i {
    color: var(--color-primary-500);
}
.dark .toggles-dropdown .toggles-dropdown-item:hover {
    background: rgba(255, 255, 255, 0.06);
    color: var(--color-slate-200);
}
.dark .toggles-dropdown .toggles-dropdown-item:hover i {
    color: var(--color-primary-400);
}
/* Estado ativo — fundo sutil + indicador visual (check) */
.toggles-dropdown .toggles-dropdown-item.active {
    background: rgba(var(--color-primary-rgb), 0.1);
    color: var(--color-primary-600);
    font-weight: 500;
    position: relative;
}
.toggles-dropdown .toggles-dropdown-item.active::after {
    content: '\f00c';
    font-family: 'Font Awesome 5 Free', 'Font Awesome 6 Free';
    font-weight: 900;
    font-size: 0.625rem;
    margin-left: auto;
    color: var(--color-primary-500);
}
.toggles-dropdown .toggles-dropdown-item.active i {
    color: var(--color-primary-500);
}
.toggles-dropdown .toggles-dropdown-item.active:hover {
    background: rgba(var(--color-primary-rgb), 0.15);
}
.dark .toggles-dropdown .toggles-dropdown-item.active {
    background: rgba(var(--color-primary-rgb), 0.12);
    color: var(--color-primary-400);
}
.dark .toggles-dropdown .toggles-dropdown-item.active::after {
    color: var(--color-primary-400);
}
.dark .toggles-dropdown .toggles-dropdown-item.active i {
    color: var(--color-primary-400);
}
.dark .toggles-dropdown .toggles-dropdown-item.active:hover {
    background: rgba(var(--color-primary-rgb), 0.18);
}
/* Focus sem outline intrusivo */
.toggles-dropdown .toggles-dropdown-item:focus {
    outline: none;
}

/* --- FIX: Theme toggle — mesmo padrão dos demais header-action-icon --- */
#header-theme-toggle i {
    font-size: 1rem;
}
/* --- FIX: Header action icons consistentes --- */
.app-header .header-action-icon {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-lg, 0.5rem);
    background: transparent;
    transition: none;
}
/* Busca mobile — ocultar no desktop, mostrar no mobile */
.header-mobile-search-btn.header-action-icon {
    display: none !important;
}
@media (max-width: 768px) {
    .header-mobile-search-btn.header-action-icon {
        display: flex !important;
    }
}
.dark .app-header .header-action-icon {
    color: var(--color-gray-300);
}
.app-header .header-action-icon:hover {
    background: transparent;
    color: var(--color-gray-600);
}
.dark .app-header .header-action-icon:hover {
    background: transparent;
    color: var(--color-gray-100);
}
.header-action-icon i {
    font-size: 1rem;
}

/* Bandeira SVG no seletor de idioma — usa flag-icons.css (.fi .fi-XX) */
/* .lang-flag removido — substituído por .fi.fi-XX via flag-icons.css */

/* ============================================
   FIX: FontAwesome icons com Tailwind size classes
   FA usa font-size para dimensionar, não width/height.
   Quando <i> tem h-6/w-6 etc, centralizar glifo no box.
   ============================================ */
i.fas[class*="h-"],
i.far[class*="h-"],
i.fab[class*="h-"],
i.fal[class*="h-"],
i.fad[class*="h-"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* ============================================
   CORREÇÕES AUTH PAGES - 2026-02-04
   ============================================ */

/* --- FIX: Checkbox alinhado com texto --- */
.ui-auth-checkbox-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.ui-auth-checkbox {
    flex-shrink: 0;
    margin-top: 0;
}
.ui-auth-checkbox-box {
    width: 1.125rem;
    height: 1.125rem;
    border-radius: var(--radius-sm, 0.25rem);
}
.ui-auth-terms-text {
    font-size: 0.8125rem;
    line-height: 1.4;
    color: var(--color-slate-500);
    margin: 0;
    text-align: left;
}
.dark .ui-auth-terms-text {
    color: var(--color-slate-400);
}

/* --- FIX: Links padronizados (cor consistente via --color-primary-600) --- */
.ui-auth-terms-link,
.ui-auth-link,
.ui-auth-footer-link-action {
    color: var(--color-primary-600);
    font-weight: 500;
    text-decoration: none;
    transition: color 0.15s ease;
}
.ui-auth-terms-link:hover,
.ui-auth-link:hover,
.ui-auth-footer-link-action:hover {
    color: var(--color-primary-700, var(--color-primary-700));
    opacity: 0.85;
}
.dark .ui-auth-terms-link,
.dark .ui-auth-link,
.dark .ui-auth-footer-link-action {
    color: var(--color-primary-400);
}
.dark .ui-auth-terms-link:hover,
.dark .ui-auth-link:hover,
.dark .ui-auth-footer-link-action:hover {
    color: var(--color-primary-300);
}

/* --- FIX: Footer link secundário --- */
.ui-auth-footer-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    font-size: 0.875rem;
    color: var(--color-slate-500);
}
.dark .ui-auth-footer-link {
    color: var(--color-slate-400);
}

/* --- FIX: Espaçamentos padronizados --- */
.ui-auth-card {
    padding: 2rem;
}
@media (max-width: 480px) {
    .ui-auth-card {
        padding: 1.5rem;
    }
}
.ui-auth-form > * + * {
    margin-top: 1.25rem;
}
.ui-auth-info-box {
    margin-top: 1.5rem;
    padding: 1rem;
    background: var(--color-primary-50, #fdf2f8);
    border: 1px solid var(--color-primary-100, #fce7f3);
    border-radius: 0.75rem;
}
.dark .ui-auth-info-box {
    background: rgba(var(--color-primary-rgb), 0.1);
    border-color: rgba(var(--color-primary-rgb), 0.2);
}
.ui-auth-info-box-title {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-primary-800);
    margin-bottom: 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.dark .ui-auth-info-box-title {
    color: var(--color-primary-400);
}
.ui-auth-info-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.ui-auth-info-list-item {
    font-size: 0.8125rem;
    color: var(--color-primary-800);
    padding: 0.25rem 0;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}
.dark .ui-auth-info-list-item {
    color: var(--color-primary-300);
}
.ui-auth-info-list-number {
    font-weight: 600;
    min-width: 1rem;
}

/* --- FIX: Security notice --- */
.ui-auth-security-notice {
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    background: var(--color-success-50);
    border: 1px solid var(--color-success-200);
    border-radius: 0.75rem;
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}
.dark .ui-auth-security-notice {
    background: rgba(16, 185, 129, 0.1);
    border-color: rgba(16, 185, 129, 0.2);
}
.ui-auth-security-icon {
    color: var(--color-success-600);
    flex-shrink: 0;
    margin-top: 0.125rem;
}
.dark .ui-auth-security-icon {
    color: var(--color-success-400);
}
.ui-auth-security-text {
    font-size: 0.8125rem;
    color: var(--color-success-800);
    line-height: 1.4;
    margin: 0;
}
.dark .ui-auth-security-text {
    color: var(--color-success-300);
}

/* --- FIX: Footer consistente --- */
.ui-auth-footer {
    margin-top: 1.5rem;
    text-align: center;
}

/* ============================================
   MELHORIAS DE VISUAL - 2026-02-04
   Ajustes para consistência, espaçamento e UX
   ============================================ */

/* --- ÍCONES PERFEITAMENTE ALINHADOS --- */
.ui-auth-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4rem;
    height: 4rem;
    border-radius: 1rem;
    margin-bottom: 1rem;
}
.ui-auth-logo i,
.ui-auth-logo svg {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
}

/* --- ESPAÇAMENTOS OTIMIZADOS (INPUTS E BOTÕES) --- */
.space-y-5 > * + * {
    margin-top: 1rem !important;
}
.ui-auth-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
/* Espaçamento entre campo e botão (ainda menor) */
.ui-auth-field {
    margin-bottom: 0;
}
.ui-auth-field + button,
.ui-auth-field + .ui-auth-btn-primary,
.ui-auth-field + .ui-auth-btn-with-icon {
    margin-top: 1rem;
}
/* Espaçamento menor entre label e input */
.ui-auth-label {
    margin-bottom: 0.5rem;
    display: block;
}

/* --- ORIENTAÇÕES E DICAS (ESPAÇAMENTO REDUZIDO) --- */
.ui-auth-info-box {
    margin-top: 1rem;
    margin-bottom: 1rem;
    padding: 0.75rem 0.875rem;
}
.ui-auth-info-box-title {
    margin-bottom: 0.5rem;
    font-size: 0.8125rem;
}
.ui-auth-info-list {
    gap: 0.25rem;
}
.ui-auth-info-list-item {
    padding: 0.125rem 0;
    gap: 0.375rem;
    font-size: 0.8125rem;
    line-height: 1.4;
}

/* Security notice também com espaçamento reduzido */
.ui-auth-security-notice {
    margin-top: 1rem;
    margin-bottom: 0;
    padding: 0.625rem 0.75rem;
}
.ui-auth-alert.ui-auth-alert-success {
    margin-bottom: 1rem;
    padding: 0.75rem 0.875rem;
}

/* --- LINKS PADRONIZADOS E CONSISTENTES --- */
.ui-auth-link,
.ui-auth-footer-link-action,
.ui-auth-terms-link {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-primary-600);
    text-decoration: none;
    transition: all 0.15s ease;
}
.ui-auth-link:hover,
.ui-auth-footer-link-action:hover,
.ui-auth-terms-link:hover {
    color: var(--color-primary-700, var(--color-primary-700));
    opacity: 0.85;
}
.dark .ui-auth-link,
.dark .ui-auth-footer-link-action,
.dark .ui-auth-terms-link {
    color: var(--color-primary-400);
}
.dark .ui-auth-link:hover,
.dark .ui-auth-footer-link-action:hover,
.dark .ui-auth-terms-link:hover {
    color: var(--color-primary-300);
}

/* Link de rodapé (voltar, usar outro método, etc) */
.ui-auth-footer-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    margin-top: 1.5rem;
    font-size: 0.875rem;
    color: var(--color-slate-500);
    text-align: center;
}
.dark .ui-auth-footer-link {
    color: var(--color-slate-400);
}
.ui-auth-footer-link i {
    font-size: 0.75rem;
}

/* --- BOTÕES DE AÇÃO SECUNDÁRIA (VOLTAR, GERAR NOVO) --- */
.ui-auth-btn-group {
    display: flex;
    gap: 0.75rem;
    margin-top: 1.25rem;
}
.ui-auth-btn-outline {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--color-slate-500);
    background-color: transparent;
    border: 1px solid var(--color-slate-300);
    border-radius: 0.5rem;
    cursor: pointer;
    transition: all 0.15s ease;
}
.ui-auth-btn-outline:hover:not(:disabled) {
    background-color: var(--color-slate-50);
    border-color: var(--color-slate-400);
    color: var(--color-slate-600);
}
.dark .ui-auth-btn-outline {
    color: var(--color-slate-400);
    border-color: var(--color-slate-600);
}
.dark .ui-auth-btn-outline:hover:not(:disabled) {
    background-color: rgba(51, 65, 85, 0.3);
    border-color: var(--color-slate-500);
    color: var(--color-slate-300);
}

/* --- QR CODE: TIMER E STATUS --- */
.ui-auth-qr-timer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.625rem 1rem;
    margin-bottom: 1.25rem;
    border-radius: 0.5rem;
    font-size: 0.875rem;
    font-weight: 500;
}
.ui-auth-qr-timer-warning {
    background-color: var(--color-warning-100);
    border: 1px solid var(--color-warning-200);
    color: var(--color-warning-800);
}
.dark .ui-auth-qr-timer-warning {
    background-color: rgba(245, 158, 11, 0.15);
    border-color: rgba(245, 158, 11, 0.3);
    color: var(--color-warning-400);
}
.ui-auth-qr-timer-danger {
    background-color: var(--color-danger-100);
    border: 1px solid var(--color-danger-200);
    color: var(--color-danger-800);
}
.dark .ui-auth-qr-timer-danger {
    background-color: rgba(239, 68, 68, 0.15);
    border-color: rgba(239, 68, 68, 0.3);
    color: var(--color-danger-400);
}

.ui-auth-qr-status {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem;
    margin-top: 1rem;
    border-radius: 0.5rem;
    font-size: 0.875rem;
}
.ui-auth-qr-status-pending {
    background-color: var(--color-slate-100);
    color: var(--color-slate-600);
}
.dark .ui-auth-qr-status-pending {
    background-color: rgba(71, 85, 105, 0.2);
    color: var(--color-slate-300);
}

/* --- QR CODE: CONTAINER E AÇÕES --- */
.ui-auth-qr-container {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background-color: var(--color-white);
    border-radius: 1rem;
    margin: 1rem 0;
}
.dark .ui-auth-qr-container {
    background-color: var(--color-white);
}
.ui-auth-qr-actions {
    display: flex;
    gap: 0.75rem;
    margin-top: 1.25rem;
}

/* --- MODERNO E LIMPO: SHADOWS E TRANSITIONS --- */
.ui-auth-card {
    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
    transition: box-shadow 0.2s ease;
}
.dark .ui-auth-card {
    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.3), 0 1px 2px -1px rgba(0, 0, 0, 0.3);
}

/* Inputs e botões com transições suaves */
.ui-auth-input,
.ui-auth-btn-primary,
.ui-auth-btn-secondary {
    transition: all 0.15s ease;
}

/* --- AJUSTES FINAIS DE ESPAÇAMENTO --- */
.ui-auth-header {
    margin-bottom: 1.5rem;
}
.ui-auth-alert {
    margin-bottom: 1rem;
}
/* .ui-mb-6 canonical definition in design-tokens.css */
.ui-auth-divider {
    margin: 1.5rem 0;
}

/* --- ESPAÇAMENTOS ESPECÍFICOS PARA FORMULÁRIOS --- */
/* Reduz espaçamento entre div wrapper e botão */
#email-step > button,
#qrcode-step > button,
#biometric-step > button {
    margin-top: 1rem !important;
}

/* Espaçamento consistente após info boxes */
.ui-auth-info-box + .ui-auth-alert,
.ui-auth-alert + .ui-auth-info-box {
    margin-top: 1rem !important;
}

/* Garante que security notice e alert success tenham espaçamento reduzido */
.ui-auth-security-notice,
.ui-auth-alert-success {
    margin-top: 1rem;
    margin-bottom: 0;
}

/* Reduz gap nos elementos de formulário auth */
form.ui-auth-form,
form.space-y-5,
form[id^="form-"] {
    gap: 1rem !important;
}

/* Espaçamento entre elementos de form com data-ajax */
form[data-ajax] > div + div,
form[data-ajax] > div + button {
    margin-top: 1rem !important;
}

/* --- BOTÃO VOLTAR AO LOGIN PADRÃO --- */
.ui-auth-back-to-password {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 0.75rem;
    padding: 0.625rem;
    background-color: rgba(var(--color-primary-rgb), 0.05);
    border: 1px solid rgba(var(--color-primary-rgb), 0.2);
    border-radius: 0.5rem;
    transition: all 0.15s ease;
}
.ui-auth-back-to-password:hover {
    background-color: rgba(var(--color-primary-rgb), 0.1);
    border-color: rgba(var(--color-primary-rgb), 0.3);
}
.dark .ui-auth-back-to-password {
    background-color: rgba(var(--color-primary-rgb), 0.1);
    border-color: rgba(var(--color-primary-rgb), 0.25);
}
.dark .ui-auth-back-to-password:hover {
    background-color: rgba(var(--color-primary-rgb), 0.15);
    border-color: rgba(var(--color-primary-rgb), 0.35);
}
.ui-auth-back-to-password button {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.875rem;
    font-weight: 500;
}
.ui-auth-back-to-password.hidden {
    display: none !important;
}

/* --- MÉTODO ALTERNATIVO: BOTÕES E LINKS IDÊNTICOS --- */
/* Garantir que <button> e <a> com .ui-auth-alt-method-btn sejam visualmente idênticos */
button.ui-auth-alt-method-btn {
    cursor: pointer;
    border: none;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    margin: 0;
    outline: none;
}
button.ui-auth-alt-method-btn,
a.ui-auth-alt-method-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.375rem;
    padding: 0.75rem 0.5rem;
    background-color: var(--color-white);
    color: var(--color-gray-700, #2a2a4e);
    border: 1px solid var(--color-gray-200, var(--color-gray-200));
    border-radius: var(--radius-lg, 0.5rem);
    text-decoration: none;
    transition: all 0.15s ease;
}
.dark button.ui-auth-alt-method-btn,
.dark a.ui-auth-alt-method-btn {
    background-color: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-700, #2a2a4e);
}
button.ui-auth-alt-method-btn:hover,
a.ui-auth-alt-method-btn:hover {
    background-color: var(--color-gray-100, var(--color-gray-100));
    border-color: var(--color-gray-300, #d1d5db);
}
.dark button.ui-auth-alt-method-btn:hover,
.dark a.ui-auth-alt-method-btn:hover {
    background-color: var(--color-gray-700, #2a2a4e);
}

/* Garantir que ícones e labels dentro dos botões/links sejam idênticos */
button.ui-auth-alt-method-btn .ui-auth-alt-method-icon,
a.ui-auth-alt-method-btn .ui-auth-alt-method-icon {
    font-size: 1.25rem;
    color: var(--color-gray-500, #6b7280);
    transition: color 0.15s ease;
}
button.ui-auth-alt-method-btn:hover .ui-auth-alt-method-icon,
a.ui-auth-alt-method-btn:hover .ui-auth-alt-method-icon {
    color: var(--color-primary-500, var(--color-primary-500));
}
button.ui-auth-alt-method-btn .ui-auth-alt-method-label,
a.ui-auth-alt-method-btn .ui-auth-alt-method-label {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-gray-600, #3e3860);
    transition: color 0.15s ease;
}
.dark button.ui-auth-alt-method-btn .ui-auth-alt-method-label,
.dark a.ui-auth-alt-method-btn .ui-auth-alt-method-label {
    color: var(--color-gray-400, #9ca3af);
}
button.ui-auth-alt-method-btn:hover .ui-auth-alt-method-label,
a.ui-auth-alt-method-btn:hover .ui-auth-alt-method-label {
    color: var(--color-primary-600, #db2777);
}

/* ============================================
   SCORE CARD - Cartão com pontuação e progresso
   ============================================ */
.ui-score-card {
    background-color: var(--color-bg-card);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-lg);
    padding: 1.25rem;
    overflow: hidden;
}
.dark .ui-score-card {
    background-color: var(--color-gray-800);
    border-color: var(--color-gray-700);
}

.ui-score-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.ui-score-card-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-gray-900);
    margin: 0;
}
.dark .ui-score-card-title {
    color: var(--color-gray-100);
}

.ui-score-card-subtitle {
    font-size: 0.8125rem;
    color: var(--color-gray-500);
    margin: 0.25rem 0 0 0;
}
.dark .ui-score-card-subtitle {
    color: var(--color-gray-400);
}

.ui-score-card-value {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
    color: var(--color-gray-900);
}
.dark .ui-score-card-value {
    color: var(--color-gray-100);
}

/* Variantes de cor */
.ui-score-card-success .ui-score-card-value {
    color: var(--color-success-600, var(--color-success-600));
}
.dark .ui-score-card-success .ui-score-card-value {
    color: var(--color-success-400, var(--color-success-400));
}
.ui-score-card-warning .ui-score-card-value {
    color: var(--color-warning-600, var(--color-warning-700));
}
.dark .ui-score-card-warning .ui-score-card-value {
    color: var(--color-warning-400, var(--color-warning-400));
}
.ui-score-card-danger .ui-score-card-value {
    color: var(--color-danger-600, var(--color-danger-600));
}
.dark .ui-score-card-danger .ui-score-card-value {
    color: var(--color-danger-400, var(--color-danger-400));
}

/* Barra de progresso */
.ui-score-card-progress {
    height: 0.5rem;
    background-color: var(--color-gray-200);
    border-radius: var(--radius-full, 9999px);
    overflow: hidden;
    margin-bottom: 1rem;
}
.dark .ui-score-card-progress {
    background-color: var(--color-gray-700);
}
.ui-score-card-progress-bar {
    height: 100%;
    width: var(--progress-width, 0%);
    border-radius: var(--radius-full, 9999px);
    transition: width 0.5s ease;
    background-color: var(--color-gray-500);
}
.ui-score-card-success .ui-score-card-progress-bar {
    background-color: var(--color-success-500, var(--color-success-500));
}
.ui-score-card-warning .ui-score-card-progress-bar {
    background-color: var(--color-warning-500, var(--color-warning-500));
}
.ui-score-card-danger .ui-score-card-progress-bar {
    background-color: var(--color-danger-500, var(--color-danger-500));
}

/* Stats grid - 4 colunas em desktop, 2 em mobile */
.ui-score-card-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.75rem;
}
@media (max-width: 640px) {
    .ui-score-card-stats {
        grid-template-columns: repeat(2, 1fr);
    }
}
.ui-score-card-stat {
    text-align: center;
    padding: 0.75rem 0.5rem;
    background-color: var(--color-gray-50, #f9fafb);
    border-radius: var(--radius-md);
}
.dark .ui-score-card-stat {
    background-color: var(--color-gray-700);
}

.ui-score-card-stat-value {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-gray-900);
    margin: 0.25rem 0;
}
.dark .ui-score-card-stat-value {
    color: var(--color-gray-100);
}

.ui-score-card-stat-label {
    font-size: 0.75rem;
    color: var(--color-gray-500);
    margin: 0;
}
.dark .ui-score-card-stat-label {
    color: var(--color-gray-400);
}

/* --- ÍCONES DAS ESTATÍSTICAS DE SEGURANÇA --- */
.ui-score-card-stat-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    margin: 0 auto 0.5rem;
    border-radius: 0.5rem;
    background-color: rgba(var(--color-primary-rgb), 0.1);
    color: var(--color-primary-600, #db2777);
    font-size: 0.875rem;
}
.dark .ui-score-card-stat-icon {
    background-color: rgba(var(--color-primary-rgb), 0.2);
    color: var(--color-primary-400, var(--color-primary-400));
}

/* ============================================
   COOKIE CONSENT MODAL - cc-*
   Modal de consentimento LGPD/GDPR
   Gerado via cookie-consent.js
   ============================================ */

/* Overlay */
.cc-overlay {
    position: fixed;
    inset: 0;
    z-index: var(--z-screen-lock);
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(8px);
}

/* Card principal */
.cc-card {
    background: var(--color-white);
    border: 1px solid var(--color-gray-200, var(--color-gray-200));
    border-radius: var(--radius-xl, 0.75rem);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    width: 100%;
    max-width: 24rem;
    margin: 0 0.75rem;
    max-height: 85vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    animation: cc-fade-in 0.3s ease;
}

.dark .cc-card {
    background: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-700, #2a2a4e);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
}

/* Header */
.cc-header {
    padding: 1rem 1rem 0.75rem;
    display: flex;
    align-items: center;
    gap: 0.625rem;
    flex-shrink: 0;
}

.cc-icon-wrap {
    width: 2rem;
    height: 2rem;
    border-radius: var(--radius-lg, 0.5rem);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: var(--color-primary-100, #fce7f3);
    color: var(--color-primary-600, #db2777);
    font-size: 0.875rem;
}

.dark .cc-icon-wrap {
    background: rgba(var(--color-primary-rgb), 0.2);
    color: var(--color-primary-400);
}

.cc-title {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--color-gray-900, #0f0f22);
    margin: 0;
    line-height: 1.2;
}

.dark .cc-title {
    color: var(--color-gray-100, var(--color-gray-100));
}

.cc-subtitle {
    font-size: 0.75rem;
    color: var(--color-gray-500, #6b7280);
    margin: 0;
}

.dark .cc-subtitle {
    color: var(--color-gray-400, #9ca3af);
}

/* Body */
.cc-body {
    padding: 0 1rem 0.75rem;
    overflow-y: auto;
    flex: 1;
    min-height: 0;
}

.cc-desc {
    font-size: 0.75rem;
    color: var(--color-gray-600, #3e3860);
    margin: 0 0 0.75rem;
    line-height: 1.5;
}

.dark .cc-desc {
    color: var(--color-gray-400, #9ca3af);
}

/* Categorias */
.cc-categories {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    margin-bottom: 0.75rem;
}

.cc-category {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.75rem;
    background: var(--color-gray-50, #f9fafb);
    border-radius: var(--radius-lg, 0.5rem);
    cursor: pointer;
    transition: background 0.15s;
}

.cc-category:hover {
    background: var(--color-gray-100, var(--color-gray-100));
}

.cc-category.cc-disabled {
    cursor: default;
}

.dark .cc-category {
    background: rgba(15, 23, 42, 0.5);
}

.dark .cc-category:hover {
    background: rgba(15, 23, 42, 0.8);
}

.cc-category-left {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.cc-cat-icon {
    font-size: 0.75rem;
    width: 1rem;
    text-align: center;
    flex-shrink: 0;
}

.cc-cat-name {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-gray-900, #0f0f22);
}

.dark .cc-cat-name {
    color: var(--color-gray-100, var(--color-gray-100));
}

.cc-badge-required {
    font-size: 0.625rem;
    padding: 0.125rem 0.375rem;
    background: var(--color-success-100, var(--color-success-100));
    color: var(--color-success-700, var(--color-success-700));
    border-radius: var(--radius-full, 9999px);
    line-height: 1.2;
    white-space: nowrap;
}

.dark .cc-badge-required {
    background: rgba(22, 163, 74, 0.2);
    color: var(--color-success-300);
}

/* Toggle switch */
.cc-toggle {
    position: relative;
    width: 36px;
    height: 20px;
    flex-shrink: 0;
    display: inline-block;
}

.cc-toggle input {
    opacity: 0;
    width: 0;
    height: 0;
    position: absolute;
}

.cc-toggle-track {
    position: absolute;
    inset: 0;
    background: var(--color-gray-300, #d1d5db);
    border-radius: var(--radius-2xl, 1.25rem);
    cursor: pointer;
    transition: background 0.2s;
}

.dark .cc-toggle-track {
    background: var(--color-gray-600, var(--color-slate-600));
}

.cc-toggle-track::before {
    content: "";
    position: absolute;
    height: 16px;
    width: 16px;
    left: 2px;
    bottom: 2px;
    background: white;
    border-radius: 50%;
    transition: transform 0.2s;
}

.cc-toggle input:checked + .cc-toggle-track {
    background: var(--color-primary-500, var(--color-primary-500));
}

.cc-toggle input:checked + .cc-toggle-track::before {
    transform: translateX(16px);
}

.cc-toggle input:disabled + .cc-toggle-track {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Links */
.cc-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.75rem;
    font-size: 0.6875rem;
}

.cc-links a {
    color: var(--color-primary-600, #db2777);
    text-decoration: none;
}

.cc-links a:hover {
    text-decoration: underline;
}

.dark .cc-links a {
    color: var(--color-primary-400, var(--color-primary-400));
}

/* Footer */
.cc-footer {
    padding: 0.75rem 1rem;
    border-top: 1px solid var(--color-gray-200, var(--color-gray-200));
    flex-shrink: 0;
}

.dark .cc-footer {
    border-top-color: var(--color-gray-700, #2a2a4e);
}

.cc-btn-row {
    display: flex;
    gap: 0.5rem;
}

.cc-btn {
    flex: 1;
    padding: 0.5rem 0.75rem;
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: var(--radius-lg, 0.5rem);
    border: none;
    cursor: pointer;
    transition: all 0.15s;
    text-align: center;
}

.cc-btn-primary {
    background: var(--color-primary-500, var(--color-primary-500));
    color: white;
}

.cc-btn-primary:hover {
    background: var(--color-primary-600, #db2777);
}

.cc-btn-secondary {
    background: var(--color-gray-200, var(--color-gray-200));
    color: var(--color-gray-800, #1e1e38);
}

.cc-btn-secondary:hover {
    background: var(--color-gray-300, #d1d5db);
}

.dark .cc-btn-secondary {
    background: var(--color-gray-700, #2a2a4e);
    color: var(--color-gray-200, var(--color-gray-200));
}

.dark .cc-btn-secondary:hover {
    background: var(--color-gray-600, var(--color-slate-600));
}

.cc-btn-text {
    width: 100%;
    margin-top: 0.375rem;
    padding: 0.375rem;
    font-size: 0.75rem;
    color: var(--color-gray-500, #6b7280);
    background: none;
    border: none;
    cursor: pointer;
    transition: color 0.15s;
}

.cc-btn-text:hover {
    color: var(--color-gray-700, #2a2a4e);
}

.dark .cc-btn-text {
    color: var(--color-gray-400, #9ca3af);
}

.dark .cc-btn-text:hover {
    color: var(--color-gray-300, #d1d5db);
}

/* Marketing expandable fields */
.cc-marketing-wrapper {
    display: flex;
    flex-direction: column;
}

.cc-marketing-fields {
    padding: 0.625rem 0.75rem 0.5rem;
    background: var(--color-gray-50, #f9fafb);
    border-radius: 0 0 var(--radius-lg, 0.5rem) var(--radius-lg, 0.5rem);
    margin-top: -0.25rem;
    border-top: 1px dashed var(--color-gray-200, var(--color-gray-200));
    animation: cc-fade-in 0.2s ease;
}

.dark .cc-marketing-fields {
    background: rgba(15, 23, 42, 0.4);
    border-top-color: var(--color-gray-600, var(--color-slate-600));
}

.cc-marketing-desc {
    font-size: 0.6875rem;
    color: var(--color-gray-600, #3e3860);
    margin: 0 0 0.5rem;
    line-height: 1.4;
}

.dark .cc-marketing-desc {
    color: var(--color-gray-400, #9ca3af);
}

.cc-marketing-input-group {
    display: flex;
    gap: 0.5rem;
}

.cc-marketing-field {
    flex: 1;
    min-width: 0;
}

.cc-marketing-label {
    display: block;
    font-size: 0.625rem;
    font-weight: 600;
    color: var(--color-gray-700, #2a2a4e);
    margin-bottom: 0.25rem;
}

.cc-marketing-label i {
    font-size: 0.6875rem;
}

.dark .cc-marketing-label {
    color: var(--color-gray-300, #d1d5db);
}

.cc-marketing-input {
    width: 100%;
    padding: 0.375rem 0.5rem;
    font-size: 0.6875rem;
    border: 1px solid var(--color-gray-300, #d1d5db);
    border-radius: var(--radius-md, 0.375rem);
    background: var(--color-white);
    color: var(--color-gray-900, #0f0f22);
    transition: border-color 0.15s;
    box-sizing: border-box;
}

.cc-marketing-input:focus {
    outline: none;
    border-color: var(--color-primary-500, var(--color-primary-500));
    box-shadow: 0 0 0 2px rgba(var(--color-primary-rgb), 0.15);
}

.dark .cc-marketing-input {
    background: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-600, var(--color-slate-600));
    color: var(--color-gray-100, var(--color-gray-100));
}

.dark .cc-marketing-input:focus {
    border-color: var(--color-primary-400);
    box-shadow: 0 0 0 2px rgba(var(--color-primary-rgb), 0.15);
}

/* WCAG AA: 4.5:1 minimum contrast ratio */
.cc-marketing-input::placeholder {
    color: var(--color-gray-500);
}

.dark .cc-marketing-input::placeholder {
    color: var(--color-gray-400);
}

.cc-marketing-hint {
    font-size: 0.5625rem;
    color: var(--color-gray-400, #9ca3af);
    margin: 0.375rem 0 0;
    line-height: 1.3;
}

.dark .cc-marketing-hint {
    color: var(--color-gray-500, #6b7280);
}

/* Marketing fields mobile */
@media (max-width: 480px) {
    .cc-marketing-input-group {
        flex-direction: column;
        gap: 0.375rem;
    }
}

@keyframes cc-fade-in {
    from { opacity: 0; transform: scale(0.95); }
    to { opacity: 1; transform: scale(1); }
}

/* ============================================
   WALLET CARDS - .ui-wallet-*
   Cards específicos para carteira/saldo
   ============================================ */
.ui-wallet-card {
    background-color: var(--color-white);
    border: 1px solid var(--color-gray-200, #e2e8f0);
    border-radius: var(--radius-xl, 0.75rem);
    overflow: hidden;
}

.dark .ui-wallet-card {
    background-color: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-700, #2a2a4e);
}

.ui-wallet-card-featured {
    background: linear-gradient(135deg, var(--color-primary-600, #db2777), var(--color-primary-800, #9d174d));
    border-color: transparent;
    color: var(--color-white);
}

.dark .ui-wallet-card-featured {
    background: linear-gradient(135deg, var(--color-primary-700, var(--color-primary-700)), var(--color-primary-900, #831843));
}

.ui-wallet-card-body {
    padding: 1.25rem;
}

.ui-wallet-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
}

.ui-wallet-icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-lg, 0.5rem);
    display: flex;
    align-items: center;
    justify-content: center;
}

.ui-wallet-icon-green {
    background-color: rgba(34, 197, 94, 0.1);
    color: var(--color-success-600, var(--color-success-600));
}
.dark .ui-wallet-icon-green {
    background-color: rgba(34, 197, 94, 0.15);
    color: var(--color-success-400, var(--color-success-400));
}

.ui-wallet-icon-red {
    background-color: rgba(239, 68, 68, 0.1);
    color: var(--color-danger-600, var(--color-danger-600));
}
.dark .ui-wallet-icon-red {
    background-color: rgba(239, 68, 68, 0.15);
    color: var(--color-danger-400, var(--color-danger-400));
}

.ui-wallet-icon-blue {
    background-color: rgba(var(--color-primary-rgb), 0.2);
    color: var(--color-white);
}

.ui-wallet-badge {
    font-size: 0.6875rem;
    font-weight: 600;
    padding: 0.125rem 0.5rem;
    border-radius: var(--radius-full, 9999px);
    text-transform: uppercase;
    letter-spacing: 0.025em;
}

.ui-wallet-badge-green {
    background-color: rgba(34, 197, 94, 0.1);
    color: var(--color-success-600, var(--color-success-600));
}
.dark .ui-wallet-badge-green {
    background-color: rgba(34, 197, 94, 0.15);
    color: var(--color-success-400, var(--color-success-400));
}

.ui-wallet-badge-red {
    background-color: rgba(239, 68, 68, 0.1);
    color: var(--color-danger-600, var(--color-danger-600));
}
.dark .ui-wallet-badge-red {
    background-color: rgba(239, 68, 68, 0.15);
    color: var(--color-danger-400, var(--color-danger-400));
}

.ui-wallet-badge-white {
    background-color: rgba(255, 255, 255, 0.2);
    color: var(--color-white);
}

.ui-wallet-label {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-gray-500, #64748b);
}

.dark .ui-wallet-label {
    color: var(--color-gray-400, var(--color-slate-400));
}

.ui-wallet-card-featured .ui-wallet-label {
    color: rgba(255, 255, 255, 0.8);
}

.ui-wallet-value {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.2;
    margin-top: 0.25rem;
}

.ui-wallet-value-green {
    color: var(--color-success-600, var(--color-success-600));
}
.dark .ui-wallet-value-green {
    color: var(--color-success-400, var(--color-success-400));
}

.ui-wallet-value-red {
    color: var(--color-danger-600, var(--color-danger-600));
}
.dark .ui-wallet-value-red {
    color: var(--color-danger-400, var(--color-danger-400));
}

.ui-wallet-value-white {
    color: var(--color-white);
}

.ui-wallet-hint {
    font-size: 0.75rem;
    color: var(--color-gray-400, var(--color-slate-400));
    margin-top: 0.25rem;
}

.dark .ui-wallet-hint {
    color: var(--color-gray-500, #64748b);
}

.ui-wallet-divider {
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    padding-top: 0.75rem;
    margin-top: 0.75rem;
}

.ui-wallet-label-subtle {
    color: rgba(255, 255, 255, 0.7);
}

/* ============================================
   TRANSACTION LIST - .ui-tx-*
   Lista de transações da carteira
   ============================================ */
.ui-tx-list {
    border-top: 1px solid var(--color-gray-200, #e2e8f0);
}
.dark .ui-tx-list {
    border-top-color: var(--color-gray-700, #2a2a4e);
}

.ui-tx-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 0.875rem 1rem;
    border-bottom: 1px solid var(--color-gray-100, var(--color-slate-100));
}
.dark .ui-tx-item {
    border-bottom-color: var(--color-gray-700, #2a2a4e);
}

.ui-tx-content {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    flex: 1;
    min-width: 0;
}

.ui-tx-icon {
    width: 2rem;
    height: 2rem;
    border-radius: var(--radius-full, 9999px);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.ui-tx-icon-credit {
    background-color: rgba(34, 197, 94, 0.1);
    color: var(--color-success-600, var(--color-success-600));
}
.dark .ui-tx-icon-credit {
    background-color: rgba(34, 197, 94, 0.15);
    color: var(--color-success-400, var(--color-success-400));
}

.ui-tx-icon-debit {
    background-color: rgba(239, 68, 68, 0.1);
    color: var(--color-danger-600, var(--color-danger-600));
}
.dark .ui-tx-icon-debit {
    background-color: rgba(239, 68, 68, 0.15);
    color: var(--color-danger-400, var(--color-danger-400));
}

.ui-tx-details {
    flex: 1;
    min-width: 0;
}

.ui-tx-meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.ui-tx-type {
    font-size: 0.8125rem;
    font-weight: 600;
}

.ui-tx-type-credit {
    color: var(--color-success-600, var(--color-success-600));
}
.dark .ui-tx-type-credit {
    color: var(--color-success-400, var(--color-success-400));
}

.ui-tx-type-debit {
    color: var(--color-danger-600, var(--color-danger-600));
}
.dark .ui-tx-type-debit {
    color: var(--color-danger-400, var(--color-danger-400));
}

.ui-tx-date {
    font-size: 0.75rem;
    color: var(--color-gray-400, var(--color-slate-400));
}

.ui-tx-description {
    font-size: 0.8125rem;
    color: var(--color-gray-600, var(--color-slate-600));
    margin-top: 0.125rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dark .ui-tx-description {
    color: var(--color-gray-300, #cbd5e1);
}

.ui-tx-admin {
    font-size: 0.6875rem;
    color: var(--color-gray-400, var(--color-slate-400));
    margin-top: 0.125rem;
}

.ui-tx-amount {
    flex-shrink: 0;
    text-align: right;
}

.ui-tx-value {
    font-size: 0.875rem;
    font-weight: 600;
}

.ui-tx-value-credit {
    color: var(--color-success-600, var(--color-success-600));
}
.dark .ui-tx-value-credit {
    color: var(--color-success-400, var(--color-success-400));
}

.ui-tx-value-debit {
    color: var(--color-danger-600, var(--color-danger-600));
}
.dark .ui-tx-value-debit {
    color: var(--color-danger-400, var(--color-danger-400));
}

/* ============================================
   ACTION LIST - .ui-action-*
   Lista de ações rápidas
   ============================================ */
.ui-action-list {
    display: flex;
    flex-direction: column;
}

.ui-action-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.625rem 0;
    border-bottom: 1px solid var(--color-gray-100, var(--color-slate-100));
    text-decoration: none;
    color: var(--color-gray-700, #2a2a4e);
    cursor: pointer;
    background: none;
    border-left: none;
    border-right: none;
    border-top: none;
    width: 100%;
    text-align: left;
    transition: color 0.15s ease;
}
.dark .ui-action-item {
    border-bottom-color: var(--color-gray-700, #2a2a4e);
    color: var(--color-gray-200, #e2e8f0);
}

.ui-action-item:last-child {
    border-bottom: none;
}

.ui-action-item:hover {
    color: var(--color-primary-600, #db2777);
}

.ui-action-item-content {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.ui-action-item-icon {
    color: var(--color-gray-400, var(--color-slate-400));
}

.ui-action-item-text {
    font-size: 0.875rem;
    font-weight: 500;
}

.ui-action-item-arrow {
    color: var(--color-gray-300, #cbd5e1);
}
.dark .ui-action-item-arrow {
    color: var(--color-gray-600, var(--color-slate-600));
}

/* ============================================
   ROLE CARDS - .ui-role-*
   Cards de roles/permissões
   ============================================ */
.ui-role-card {
    border: 1px solid var(--color-gray-200, #e2e8f0);
    border-radius: var(--radius-lg, 0.5rem);
    padding: 0.875rem;
    transition: border-color 0.15s ease;
}
.dark .ui-role-card {
    border-color: var(--color-gray-700, #2a2a4e);
}

.ui-role-card:hover {
    border-color: var(--color-primary-300, var(--color-primary-300));
}
.dark .ui-role-card:hover {
    border-color: var(--color-primary-600, #db2777);
}

.ui-role-label {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    cursor: pointer;
}

.ui-role-content {
    flex: 1;
}

.ui-role-name {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-gray-900, #0f172a);
}
.dark .ui-role-name {
    color: var(--color-gray-100, var(--color-slate-100));
}

.ui-role-description {
    font-size: 0.8125rem;
    color: var(--color-gray-500, #64748b);
    margin-top: 0.125rem;
}
.dark .ui-role-description {
    color: var(--color-gray-400, var(--color-slate-400));
}

.ui-role-permissions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-top: 0.5rem;
}

/* ============================================
   SESSION ITEMS - .ui-session-*
   ============================================ */
.ui-session-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem;
    border: 1px solid var(--color-gray-200, #e2e8f0);
    border-radius: var(--radius-lg, 0.5rem);
}
.dark .ui-session-item {
    border-color: var(--color-gray-700, #2a2a4e);
}

.ui-session-content {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.ui-session-icon {
    width: 2rem;
    height: 2rem;
    border-radius: var(--radius-md, 0.375rem);
    background-color: var(--color-gray-100, var(--color-slate-100));
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-gray-500, #64748b);
}
.dark .ui-session-icon {
    background-color: var(--color-gray-700, #2a2a4e);
    color: var(--color-gray-300, #cbd5e1);
}

.ui-session-device {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-gray-900, #0f172a);
}
.dark .ui-session-device {
    color: var(--color-gray-100, var(--color-slate-100));
}

.ui-session-meta {
    font-size: 0.75rem;
    color: var(--color-gray-400, var(--color-slate-400));
}
.ui-session-info {
    flex: 1;
    min-width: 0;
}

/* ============================================
   DANGER ZONE - .ui-danger-*
   ============================================ */
.ui-danger-card {
    border-color: var(--color-danger-200, var(--color-danger-200));
}
.dark .ui-danger-card {
    border-color: rgba(239, 68, 68, 0.3);
}

.ui-danger-header {
    padding: 1rem 1.25rem;
    background-color: rgba(239, 68, 68, 0.05);
    border-bottom: 1px solid var(--color-danger-200, var(--color-danger-200));
}
.dark .ui-danger-header {
    background-color: rgba(239, 68, 68, 0.08);
    border-bottom-color: rgba(239, 68, 68, 0.2);
}

.ui-danger-item {
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--color-gray-200, #e2e8f0);
}
.dark .ui-danger-item {
    border-bottom-color: var(--color-gray-700, #2a2a4e);
}

.ui-danger-item:last-child {
    padding-bottom: 0;
    border-bottom: none;
}

.ui-danger-item-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-gray-900, #0f172a);
    margin-bottom: 0.25rem;
}
.dark .ui-danger-item-title {
    color: var(--color-gray-100, var(--color-slate-100));
}

.ui-danger-item-description {
    font-size: 0.8125rem;
    color: var(--color-gray-500, #64748b);
    margin-bottom: 0.75rem;
}
.dark .ui-danger-item-description {
    color: var(--color-gray-400, var(--color-slate-400));
}

/* ============================================
   PREFERENCE ITEMS - .ui-pref-*
   ============================================ */
.ui-pref-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem;
    border: 1px solid var(--color-gray-200, #e2e8f0);
    border-radius: var(--radius-lg, 0.5rem);
    cursor: pointer;
    transition: border-color 0.15s ease;
}
.dark .ui-pref-item {
    border-color: var(--color-gray-700, #2a2a4e);
}

.ui-pref-item:hover {
    border-color: var(--color-primary-300, var(--color-primary-300));
}
.dark .ui-pref-item:hover {
    border-color: var(--color-primary-600, #db2777);
}

.ui-pref-content {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.ui-pref-icon {
    font-size: 1rem;
    color: var(--color-gray-400, var(--color-slate-400));
}

.ui-pref-icon-blue { color: var(--color-primary-500, var(--color-primary-500)); }
.ui-pref-icon-green { color: var(--color-success-500, var(--color-success-500)); }

.ui-pref-title {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-gray-900, #0f172a);
}
.dark .ui-pref-title {
    color: var(--color-gray-100, var(--color-slate-100));
}

.ui-pref-description {
    font-size: 0.75rem;
    color: var(--color-gray-400, var(--color-slate-400));
}

.ui-pref-checkbox {
    flex-shrink: 0;
}
.ui-pref-text {
    flex: 1;
    min-width: 0;
}

/* ============================================
   TAB SECTION HEADERS - .ui-tab-header
   Cabeçalho padrão para seções dentro de tabs
   ============================================ */
.ui-tab-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-bottom: 1rem;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid var(--color-gray-200, #e2e8f0);
    flex-wrap: wrap;
}

.dark .ui-tab-header {
    border-bottom-color: var(--color-gray-700, #2a2a4e);
}

.ui-tab-header-icon {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: var(--radius-lg, 0.5rem);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.125rem;
}

.ui-tab-header-icon-blue {
    background-color: var(--color-primary-100, #fce7f3);
    color: var(--color-primary-600, #db2777);
}
.dark .ui-tab-header-icon-blue {
    background-color: rgba(var(--color-primary-rgb), 0.15);
    color: var(--color-primary-400, var(--color-primary-400));
}

.ui-tab-header-icon-green {
    background-color: var(--color-success-100, var(--color-success-100));
    color: var(--color-success-600, var(--color-success-600));
}
.dark .ui-tab-header-icon-green {
    background-color: rgba(34, 197, 94, 0.15);
    color: var(--color-success-400, var(--color-success-400));
}

.ui-tab-header-icon-purple {
    background-color: var(--color-accent-100);
    color: var(--color-accent-600);
}
.dark .ui-tab-header-icon-purple {
    background-color: rgba(147, 51, 234, 0.15);
    color: var(--color-accent-300);
}

.ui-tab-header-icon-amber {
    background-color: var(--color-warning-100);
    color: var(--color-warning-700);
}
.dark .ui-tab-header-icon-amber {
    background-color: rgba(245, 158, 11, 0.15);
    color: var(--color-warning-400);
}

.ui-tab-header-icon-red {
    background-color: var(--color-danger-100, var(--color-danger-100));
    color: var(--color-danger-600, var(--color-danger-600));
}
.dark .ui-tab-header-icon-red {
    background-color: rgba(239, 68, 68, 0.15);
    color: var(--color-danger-400, var(--color-danger-400));
}

.ui-tab-header-icon-cyan {
    background-color: var(--color-info-100);
    color: var(--color-info-600);
}
.dark .ui-tab-header-icon-cyan {
    background-color: rgba(6, 182, 212, 0.15);
    color: var(--color-info-400);
}

.ui-tab-header-info {
    flex: 1;
    min-width: 0;
}

.ui-tab-header-title {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--color-gray-900, #0f172a);
    line-height: 1.3;
    margin: 0;
}

.dark .ui-tab-header-title {
    color: var(--color-gray-100, var(--color-slate-100));
}

.ui-tab-header-description {
    font-size: 0.8125rem;
    color: var(--color-gray-500, #64748b);
    line-height: 1.4;
    margin: 0.125rem 0 0 0;
}

.dark .ui-tab-header-description {
    color: var(--color-gray-400, var(--color-slate-400));
}

/* ============================================
   LIST CONTROLS - .ui-list-controls
   Barra de busca, filtros, e controles de lista
   ============================================ */
.ui-list-controls {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

@media (min-width: 768px) {
    .ui-list-controls {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }
}

.ui-search-box {
    position: relative;
    flex: 1;
    max-width: 24rem;
}

.ui-search-box input {
    width: 100%;
    padding: 0.5rem 0.75rem 0.5rem 2.5rem;
    font-size: 0.875rem;
    border: 1px solid var(--color-gray-300, #cbd5e1);
    border-radius: var(--radius-md, 0.375rem);
    background: var(--color-white);
    color: var(--color-gray-900, #0f172a);
    transition: border-color 0.15s ease;
    height: 2.5rem;
}

.ui-search-box input:focus {
    outline: none;
    border-color: var(--color-primary-500, var(--color-primary-500));
    box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.1);
}

.dark .ui-search-box input {
    background: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-600, var(--color-slate-600));
    color: var(--color-gray-100, var(--color-slate-100));
}

.dark .ui-search-box input:focus {
    border-color: var(--color-primary-500, var(--color-primary-500));
    box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.15);
}

.ui-search-box .ui-search-icon {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-gray-400, var(--color-slate-400));
    pointer-events: none;
    font-size: 0.8125rem;
    width: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ui-filter-group {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    flex-wrap: wrap;
}
.ui-filter-pill-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.375rem;
    font-size: 0.6875rem;
    font-weight: 600;
    border-radius: var(--radius-sm, 0.25rem);
    background-color: var(--color-gray-200, #e2e8f0);
    color: var(--color-gray-600, var(--color-slate-600));
}
.active > .ui-filter-pill-count,
.ui-filter-pill.active .ui-filter-pill-count,
.ui-filter-pill.ui-filter-pill-active .ui-filter-pill-count {
    background-color: rgba(255, 255, 255, 0.25);
    color: var(--color-white);
}
.dark .ui-filter-pill-count {
    background-color: var(--color-gray-600, var(--color-slate-600));
    color: var(--color-gray-300, #cbd5e1);
}

/* ============================================
   PAGINATION - .ui-pagination
   Controles de paginação padronizados
   ============================================ */
.ui-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem 1rem;
    margin-top: 0;
    border-top: 1px solid var(--color-gray-200, #e2e8f0);
    flex-wrap: wrap;
    gap: 0.75rem;
}

.dark .ui-pagination {
    border-top-color: var(--color-gray-700, #2a2a4e);
}

.ui-pagination-info {
    font-size: 0.8125rem;
    color: var(--color-gray-500, #64748b);
}

.dark .ui-pagination-info {
    color: var(--color-gray-400, var(--color-slate-400));
}

.ui-pagination-nav {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.ui-pagination-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 2rem;
    padding: 0 0.5rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-gray-600, var(--color-slate-600));
    background: transparent;
    border: 1px solid var(--color-gray-300, #cbd5e1);
    border-radius: var(--radius-md, 0.375rem);
    cursor: pointer;
    transition: all 0.15s ease;
}

.ui-pagination-btn:hover:not(:disabled) {
    background: var(--color-gray-50, var(--color-slate-50));
    border-color: var(--color-gray-400, var(--color-slate-400));
}

.ui-pagination-btn.active {
    background: var(--color-primary-600, #db2777);
    color: var(--color-white);
    border-color: var(--color-primary-600, #db2777);
}

.ui-pagination-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.dark .ui-pagination-btn {
    color: var(--color-gray-300, #cbd5e1);
    border-color: var(--color-gray-600, var(--color-slate-600));
}

.dark .ui-pagination-btn:hover:not(:disabled) {
    background: var(--color-gray-700, #2a2a4e);
    border-color: var(--color-gray-500, #64748b);
}

.dark .ui-pagination-btn.active {
    background: var(--color-primary-600, #db2777);
    color: var(--color-white);
    border-color: var(--color-primary-600, #db2777);
}

/* Per-page selector */
.ui-per-page {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8125rem;
    color: var(--color-gray-500, #64748b);
}

.dark .ui-per-page {
    color: var(--color-gray-400, var(--color-slate-400));
}

.ui-per-page select {
    padding: 0.25rem 1.5rem 0.25rem 0.5rem;
    font-size: 0.8125rem;
    border: 1px solid var(--color-gray-300, #cbd5e1);
    border-radius: var(--radius-md, 0.375rem);
    background: var(--color-white);
    color: var(--color-gray-700, #2a2a4e);
    height: 2rem;
    cursor: pointer;
}

.dark .ui-per-page select {
    background: var(--color-gray-800, #1e1e38);
    border-color: var(--color-gray-600, var(--color-slate-600));
    color: var(--color-gray-200, #e2e8f0);
}

/* ============================================
   MINI CHART - .ui-mini-chart
   Gráfico de barras simples para métricas
   ============================================ */
.ui-mini-chart {
    display: flex;
    align-items: flex-end;
    gap: 0.25rem;
    height: 3rem;
    padding: 0;
}

.ui-mini-chart-bar {
    flex: 1;
    min-width: 0.25rem;
    border-radius: 0.125rem 0.125rem 0 0;
    background: var(--color-primary-500, var(--color-primary-500));
    opacity: 0.7;
    transition: opacity 0.15s;
}

.ui-mini-chart-bar:hover {
    opacity: 1;
}

/* ============================================
   STAT BADGES ROW - .ui-stat-badges
   Mini badges inline abaixo das stat cards
   ============================================ */
.ui-stat-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    padding: 0.5rem 0;
    margin-bottom: 1rem;
}

.ui-stat-badge {
    display: flex;
    align-items: center;
    gap: 0.375rem;
}

.ui-stat-badge-label {
    font-size: 0.75rem;
    color: var(--color-gray-500, #64748b);
}

.dark .ui-stat-badge-label {
    color: var(--color-gray-400, var(--color-slate-400));
}

/* ============================================
   SORTABLE TABLE HEADERS
   ============================================ */
.ui-table th[data-sort] {
    cursor: pointer;
    user-select: none;
    position: relative;
    padding-right: 1.5rem;
}

.ui-table th[data-sort]:hover {
    background: var(--color-gray-50, var(--color-slate-50));
}

.dark .ui-table th[data-sort]:hover {
    background: var(--color-gray-700, #2a2a4e);
}

.ui-table th[data-sort]::after {
    content: '';
    position: absolute;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    border: 4px solid transparent;
    border-top-color: var(--color-gray-400, var(--color-slate-400));
    margin-top: 2px;
}

.ui-table th[data-sort].asc::after {
    border-top-color: transparent;
    border-bottom-color: var(--color-primary-600, #db2777);
    margin-top: -6px;
}

.ui-table th[data-sort].desc::after {
    border-top-color: var(--color-primary-600, #db2777);
    margin-top: 2px;
}

/* ============================================
   BREADCRUMB - .ui-breadcrumb
   Navegação hierárquica (classe canônica)
   ============================================ */
.ui-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.813rem;
    line-height: 1;
    color: var(--color-text-secondary);
    margin-bottom: 0;
    flex-wrap: wrap;
}
.ui-breadcrumb a {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    color: var(--color-text-secondary);
    text-decoration: none;
    transition: color var(--transition-fast, 150ms ease);
    line-height: 1;
    white-space: nowrap;
}
.ui-breadcrumb a i {
    font-size: 0.75rem;
    line-height: 1;
    display: inline-flex;
    align-items: center;
}
.ui-breadcrumb a:hover {
    color: var(--color-primary-500);
}
.dark .ui-breadcrumb a {
    color: var(--color-gray-400);
}
.dark .ui-breadcrumb a:hover {
    color: var(--color-primary-400);
}
.ui-breadcrumb .separator {
    color: var(--color-gray-300);
    font-size: 0.625rem;
    line-height: 1;
    display: inline-flex;
    align-items: center;
}
.dark .ui-breadcrumb .separator {
    color: var(--color-gray-500);
}
.ui-breadcrumb .current {
    color: var(--color-text-primary);
    font-weight: 500;
    white-space: nowrap;
}
.dark .ui-breadcrumb .current {
    color: var(--color-gray-50);
}
/* Botão Voltar integrado no breadcrumb */
.ui-breadcrumb .breadcrumb-back {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.625rem;
    height: 1.625rem;
    padding: 0;
    font-size: 0.75rem;
    color: var(--color-text-secondary);
    background: var(--color-gray-100);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md, 6px);
    cursor: pointer;
    transition: all var(--transition-fast, 150ms ease);
    flex-shrink: 0;
    line-height: 1;
}
.dark .ui-breadcrumb .breadcrumb-back {
    background: var(--color-gray-700);
    border-color: var(--color-gray-600);
    color: var(--color-gray-400);
}
.ui-breadcrumb .breadcrumb-back:hover {
    background: var(--color-gray-200);
    color: var(--color-primary-600);
    border-color: var(--color-primary-300);
}
.dark .ui-breadcrumb .breadcrumb-back:hover {
    background: var(--color-gray-600);
    color: var(--color-primary-400);
    border-color: var(--color-primary-500);
}

/* ============================================
   USER HEADER - .ui-user-header
   Cabeçalho de perfil de usuário
   ============================================ */
.ui-user-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    flex-wrap: wrap;
}
.ui-user-header-info {
    flex: 1;
    min-width: 0;
}
.ui-user-header-name {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-text-primary);
    line-height: 1.3;
}
.ui-user-header-email {
    font-size: 0.875rem;
    color: var(--color-text-secondary);
    margin-top: 0.125rem;
}

/* ============================================
   INFO LIST - .ui-info-list
   Lista de informações label/value
   ============================================ */
.ui-info-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.ui-info-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}
.ui-info-label {
    font-size: 0.875rem;
    color: var(--color-text-secondary);
    flex-shrink: 0;
}
.ui-info-value {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-text-primary);
    text-align: right;
}
.ui-info-value-mono {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-text-primary);
    text-align: right;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: 0.8125rem;
}

/* ============================================
   FORM FIELD - .ui-form-field
   Wrapper de campo de formulário
   ============================================ */
.ui-form-field {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}
.ui-input-prefix {
    display: flex;
    align-items: center;
    padding: 0 0.75rem;
    background-color: var(--color-gray-100);
    border: 1px solid var(--color-gray-300);
    border-right: none;
    border-radius: var(--radius-md) 0 0 var(--radius-md);
    font-size: 0.875rem;
    color: var(--color-text-secondary);
    white-space: nowrap;
}
.dark .ui-input-prefix {
    background-color: var(--color-gray-700);
    border-color: var(--color-gray-600);
    color: var(--color-gray-300);
}
.ui-input-with-prefix {
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
}
.ui-input.input-with-prefix {
    padding-left: 2rem;
}

/* ============================================
   CHECKBOX OPTION - .ui-checkbox-option
   Opção de checkbox estilizada
   ============================================ */
.ui-checkbox-option {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.5rem;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: background-color 0.15s;
}
.ui-checkbox-option:hover {
    background-color: var(--color-gray-50);
}
.dark .ui-checkbox-option:hover {
    background-color: var(--color-gray-700);
}

/* ============================================
   TABLE UTILITIES
   ============================================ */
.ui-table-mono {
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: 0.8125rem;
}

/* ============================================
   SOCIAL SHARE BUTTONS
   Botões de compartilhamento em redes sociais
   ============================================ */
.ui-btn-social {
    color: var(--color-white);
    border-color: transparent;
}
.ui-btn-social:hover:not(:disabled) {
    opacity: 0.9;
    color: var(--color-white);
}
.dark .ui-btn-social {
    color: var(--color-white);
}

.ui-btn-social-whatsapp {
    background-color: #25d366;
}
.ui-btn-social-whatsapp:hover:not(:disabled) {
    background-color: #1da851;
}

.ui-btn-social-telegram {
    background-color: #0088cc;
}
.ui-btn-social-telegram:hover:not(:disabled) {
    background-color: #006da3;
}

.ui-btn-social-twitter {
    background-color: var(--color-gray-900);
}
.ui-btn-social-twitter:hover:not(:disabled) {
    background-color: var(--color-gray-700);
}
.dark .ui-btn-social-twitter {
    background-color: #e7e9ea;
    color: #0f1419;
}
.dark .ui-btn-social-twitter:hover:not(:disabled) {
    background-color: #d6d9db;
    color: #0f1419;
}

.ui-btn-social-linkedin {
    background-color: #0a66c2;
}
.ui-btn-social-linkedin:hover:not(:disabled) {
    background-color: #084d94;
}

.ui-btn-social-facebook {
    background-color: #1877f2;
}
.ui-btn-social-facebook:hover:not(:disabled) {
    background-color: #1565c0;
}

.ui-btn-social-email {
    background-color: var(--color-gray-600);
}
.ui-btn-social-email:hover:not(:disabled) {
    background-color: var(--color-gray-700);
}
.dark .ui-btn-social-email {
    background-color: var(--color-gray-500);
}
.dark .ui-btn-social-email:hover:not(:disabled) {
    background-color: var(--color-gray-600);
}

.ui-btn-social-share {
    background-color: var(--color-warning-500);
}
.ui-btn-social-share:hover:not(:disabled) {
    background-color: var(--color-warning-700);
}

/* ============================================
   TOGGLE SWITCH — Override Tailwind peer-checked
   Normaliza cor do toggle para usar a primary do tema
   ============================================ */
.peer:checked ~ .peer-checked\:bg-blue-600 {
    background-color: var(--color-primary-600, #db2777);
}
.dark .peer:checked ~ .peer-checked\:bg-blue-600 {
    background-color: var(--color-primary-500, var(--color-primary-500));
}
.peer:checked ~ .peer-checked\:bg-green-600 {
    background-color: var(--color-success-600, var(--color-success-600));
}
.dark .peer:checked ~ .peer-checked\:bg-green-600 {
    background-color: var(--color-success-500, var(--color-success-500));
}

/* ============================================
   CHART / GRAPH COLOR TOKENS
   Cores semânticas para gráficos em ambos os modos
   ============================================ */
:root {
    --chart-color-1: var(--color-primary-500);
    --chart-color-2: var(--color-success-500);
    --chart-color-3: var(--color-warning-500);
    --chart-color-4: var(--color-danger-500);
    --chart-color-5: var(--color-accent-500);
    --chart-color-6: var(--color-info-500);
    --chart-color-7: var(--color-primary-500);
    --chart-color-8: var(--color-warning-500);
    --chart-grid: rgba(0, 0, 0, 0.08);
    --chart-text: var(--color-text-secondary);
    --chart-bg: var(--color-white);
}
.dark {
    --chart-color-1: var(--color-accent-400);
    --chart-color-2: var(--color-success-400);
    --chart-color-3: var(--color-warning-400);
    --chart-color-4: var(--color-danger-400);
    --chart-color-5: var(--color-accent-400);
    --chart-color-6: var(--color-info-400);
    --chart-color-7: var(--color-primary-400);
    --chart-color-8: var(--color-warning-400);
    --chart-grid: rgba(255, 255, 255, 0.08);
    --chart-text: var(--color-gray-400);
    --chart-bg: var(--color-gray-800);
}

.ui-chart-container {
    width: 100%;
    min-height: 200px;
    max-height: 400px;
    position: relative;
}
.ui-chart-container canvas {
    max-height: 400px !important;
    width: 100% !important;
}

/* ============================================
   PROGRESS BAR
   Barras de progresso com cores semânticas
   ============================================ */
.ui-progress-track {
    width: 100%;
    height: 0.5rem;
    border-radius: var(--radius-full, 9999px);
    background-color: var(--color-gray-200);
    overflow: hidden;
}
.dark .ui-progress-track {
    background-color: var(--color-gray-700);
}
.ui-progress-bar-fill {
    height: 100%;
    border-radius: var(--radius-full, 9999px);
    transition: width 0.3s ease;
}
.ui-progress-bar-fill-primary { background-color: var(--color-primary-500); }
.ui-progress-bar-fill-success { background-color: var(--color-success-500); }
.ui-progress-bar-fill-warning { background-color: var(--color-warning-500); }
.ui-progress-bar-fill-danger { background-color: var(--color-danger-500); }
.ui-progress-bar-fill-info { background-color: var(--color-info-500); }
.ui-progress-bar-fill-purple { background-color: var(--color-accent-500); }
.dark .ui-progress-bar-fill-primary { background-color: var(--color-primary-400); }
.dark .ui-progress-bar-fill-success { background-color: var(--color-success-400); }
.dark .ui-progress-bar-fill-warning { background-color: var(--color-warning-400); }
.dark .ui-progress-bar-fill-danger { background-color: var(--color-danger-400); }
.dark .ui-progress-bar-fill-info { background-color: var(--color-info-400); }
.dark .ui-progress-bar-fill-purple { background-color: var(--color-accent-400); }

/* ============================================
   RESPONSIVE MOBILE FIXES
   Ajustes de responsividade para mobile
   ============================================ */

/* Tabelas responsivas — overflow horizontal */
.ui-card .overflow-x-auto,
.ui-admin-settings-card .overflow-x-auto {
}

/* Scrollbar estilizada para tabelas em mobile */
.overflow-x-auto::-webkit-scrollbar {
    height: 4px;
}
.overflow-x-auto::-webkit-scrollbar-track {
    background: transparent;
}
.overflow-x-auto::-webkit-scrollbar-thumb {
    background-color: var(--color-gray-300);
    border-radius: var(--radius-full, 9999px);
}
.dark .overflow-x-auto::-webkit-scrollbar-thumb {
    background-color: var(--color-gray-600);
}

/* Mobile: stat grids empilham em 1 coluna */
@media (max-width: 479px) {
    .ui-admin-stats-grid {
        grid-template-columns: 1fr !important;
    }

    /* Cards e botões ocupam largura total */
    .ui-btn-block-mobile {
        width: 100%;
    }

    /* Tabs com scroll horizontal */
    .ui-tab-btn {
        white-space: nowrap;
        flex-shrink: 0;
    }

    /* Modal ocupa tela toda em mobile */
    .ui-modal-dialog,
    .ui-modal-container,
    .ui-modal-content {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        border-radius: 0 !important;
        min-height: 100vh;
    }

    /* Grids que precisam empilhar */
    .grid-cols-2,
    .grid-cols-3,
    .grid-cols-4 {
        grid-template-columns: 1fr !important;
    }

    /* Padding reduzido em cards (mobile) */
    .ui-card.ui-card--parent {
        --card-padding: 1rem;
    }
    .ui-card.ui-card--child {
        --card-padding: 0.75rem;
    }
    .ui-card__header {
        padding: 0.75rem 1rem;
    }

    /* Flex wrap forçado */
    .flex-col-mobile {
        flex-direction: column !important;
    }
}

/* Small mobile (max 479px) */
@media (max-width: 479px) {
    /* Fontes menores em stats */
    .ui-admin-stat-value {
        font-size: 1.25rem;
    }

    /* NOTA: .space-y-6 e .ui-tab-btn tratados em responsive-accessibility-fixes.css */
}

/* Tablet (768-1023px) */
@media (min-width: 768px) and (max-width: 1023px) {
    .ui-admin-stats-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ============================================
   DRAG & DROP - Estados visuais globais
   ============================================ */
.ui-drag-active {
    opacity: 0.5;
    border: 2px dashed var(--color-primary-400);
    transition: opacity 0.2s ease;
}
.ui-drop-target {
    background-color: var(--color-primary-50);
    border: 2px dashed var(--color-primary-400);
    transition: background-color 0.2s ease;
}
.dark .ui-drop-target {
    background-color: var(--color-primary-900);
    border-color: var(--color-primary-500);
}
.ui-drag-ghost {
    opacity: 0.6;
    box-shadow: var(--shadow-lg);
    transform: rotate(2deg);
}
.ui-drag-handle {
    cursor: grab;
    touch-action: none;
}
.ui-drag-handle:active {
    cursor: grabbing;
}

/* ============================================
   Dynamic accent color utilities
   Usage: style="--accent: #hexcolor" on parent
   ============================================ */
.ui-accent-badge {
    color: var(--accent);
    background-color: color-mix(in srgb, var(--accent) 12%, transparent);
    padding: 0.125rem 0.5rem;
    border-radius: var(--radius-full, 9999px);
    font-size: var(--font-size-xs);
    font-weight: 500;
}

.ui-accent-dot {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background-color: var(--accent);
}

.ui-accent-icon {
    color: var(--accent);
    background-color: color-mix(in srgb, var(--accent) 12%, transparent);
}

.ui-accent-text {
    color: var(--accent);
}

/* ============================================
   DEFENSIVE DEFAULTS — Força consistência em TODAS as views
   Regras aplicadas dentro de .settings-content-v2 e .settings-shell-v2
   para garantir que mesmo views sem classes corretas fiquem padronizadas
   ============================================ */

/* Selects sem classe ui-select: herdar estilos base (somente se block-level) */
.settings-content-v2 select:not(.ui-select):not([class*="ui-"]):not(.period-filter-btn),
.settings-content-card-v2 select:not(.ui-select):not([class*="ui-"]):not(.period-filter-btn) {
    height: var(--input-height-md);
    padding: 0.5rem 2rem 0.5rem 0.75rem;
    font-size: var(--font-size-sm);
    color: var(--color-text-primary);
    background-color: var(--surface);
    border: 1px solid var(--color-border-input);
    border-radius: var(--radius-md);
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 0.5rem center;
    background-size: 1rem;
    cursor: pointer;
    box-sizing: border-box;
}

/* ui-select dentro de flex: não expandir 100% automaticamente */
.flex > .ui-select,
.inline-flex > .ui-select,
[class*="flex"] > .ui-select:not([class*="w-full"]) {
    width: auto;
    min-width: 150px;
}

/* ui-select-sm: variante inline compacta */
.ui-select.ui-select-inline,
select.ui-select-inline {
    display: inline-flex;
    width: auto;
    min-width: 120px;
}

/* Canvas de charts sem container: limitar altura */
.settings-content-v2 canvas:not([class]),
.settings-content-card-v2 canvas:not([class]) {
    max-height: 400px;
    width: 100% !important;
}

/* Checkboxes em tabelas: centralizar */
.ui-data-table td.text-center input[type="checkbox"],
.ui-data-table td input.ui-checkbox {
    display: inline-block;
    margin: 0 auto;
    vertical-align: middle;
}
.ui-data-table td.text-center {
    vertical-align: middle;
}

/* Placeholder contrast — WCAG AA */
.ui-input::placeholder,
.ui-select::placeholder,
.settings-search-v2 input::placeholder {
    color: var(--color-text-muted);
    opacity: 1;
}

/* Search inputs inside search containers: always have left padding for icon */
.settings-search-v2 input,
.settings-search-v2 input.ui-input,
[class*="search"] > input.ui-input {
    padding-left: 2.5rem !important;
}

/* Filter pills consistency */
.settings-content-v2 .ui-filter-pill,
.settings-content-card-v2 .ui-filter-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.75rem;
    font-size: var(--font-size-sm);
    border-radius: var(--radius-full, 9999px);
    border: 1px solid var(--color-border-input);
    background: var(--surface);
    color: var(--color-text-secondary);
    cursor: pointer;
    transition: all var(--transition-fast);
    white-space: nowrap;
}
.settings-content-v2 .ui-filter-pill.active,
.settings-content-v2 .ui-filter-pill-active,
.settings-content-card-v2 .ui-filter-pill.active,
.settings-content-card-v2 .ui-filter-pill-active {
    background: var(--color-primary-500);
    color: var(--color-text-on-primary, #fff);
    border-color: var(--color-primary-500);
}

/* Stat card icons: consistent sizing and centering */
.settings-content-v2 .ui-icon-bg-primary,
.settings-content-v2 .ui-icon-bg-success,
.settings-content-v2 .ui-icon-bg-danger,
.settings-content-v2 .ui-icon-bg-warning,
.settings-content-v2 .ui-icon-bg-info,
.settings-content-v2 .ui-icon-bg-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-lg);
    flex-shrink: 0;
}

/* Badges in tables: proper alignment */
.ui-data-table td .ui-badge-success,
.ui-data-table td .ui-badge-danger,
.ui-data-table td .ui-badge-warning,
.ui-data-table td .ui-badge-primary,
.ui-data-table td .ui-badge-secondary,
.ui-data-table td .ui-badge-info {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    vertical-align: middle;
}

/* Breadcrumb separator consistency: hide text `/` separators */
.ui-breadcrumb .separator {
    display: inline-flex;
    align-items: center;
    color: var(--color-text-muted);
    font-size: 0.75rem;
    margin: 0 0.25rem;
}

/* Shell header icon background: consistent circle */
.settings-header-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: var(--radius-lg);
    background: var(--color-primary-500);
    color: var(--color-text-on-primary, #fff);
    flex-shrink: 0;
}
.settings-header-icon > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

/* ============================================
   ACTION CLASSES
   ============================================ */
.ui-action-bar { display: flex; align-items: center; gap: 0.5rem; }
.ui-action-btn-edit,
.ui-action-btn-duplicate,
.ui-action-btn-delete {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.375rem;
    border-radius: var(--radius-md, 0.375rem);
    transition: all 150ms ease;
    cursor: pointer;
    border: none;
    background: transparent;
}
.ui-action-btn-edit { color: var(--color-primary-500); }
.ui-action-btn-edit:hover { background: var(--color-primary-50); }
.dark .ui-action-btn-edit:hover { background: var(--color-primary-900); }
.ui-action-btn-duplicate { color: var(--color-info-500, var(--color-primary-500)); }
.ui-action-btn-duplicate:hover { background: var(--color-primary-50); }
.dark .ui-action-btn-duplicate:hover { background: var(--color-primary-900); }
.ui-action-btn-delete { color: var(--color-danger-500); }
.ui-action-btn-delete:hover { background: var(--color-danger-50); }
.dark .ui-action-btn-delete:hover { background: var(--color-danger-900); }
.ui-action-icon { width: 1.25rem; height: 1.25rem; }
.ui-action-icon-blue { color: var(--color-primary-500); }
.ui-action-icon-danger { color: var(--color-danger-500); }

/* ============================================
   ACTIVITY CLASSES
   ============================================ */
.ui-activity-item {
    display: flex;
    gap: 1rem;
    padding: 1rem 0;
    border-bottom: 1px solid var(--color-border);
}
.dark .ui-activity-item { border-color: var(--color-border); }
.ui-activity-item:last-child { border-bottom: none; }
.ui-activity-icon {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    border-radius: 9999px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ui-activity-content { flex: 1; min-width: 0; }
.ui-activity-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.25rem;
}
.ui-activity-title { font-weight: 500; color: var(--color-text-primary); font-size: 0.875rem; }
.dark .ui-activity-title { color: var(--color-text-primary); }
.ui-activity-time { font-size: 0.75rem; color: var(--color-text-muted); }
.ui-activity-details { font-size: 0.875rem; color: var(--color-text-secondary); }
.dark .ui-activity-details { color: var(--color-text-secondary); }
.ui-activity-meta { font-size: 0.75rem; color: var(--color-text-muted); margin-top: 0.25rem; }
.ui-activity-code {
    font-family: monospace;
    font-size: 0.75rem;
    padding: 0.125rem 0.375rem;
    border-radius: var(--radius-sm);
    background: var(--color-bg-muted);
    color: var(--color-text-secondary);
}
.dark .ui-activity-code { background: var(--color-bg-tertiary, var(--color-bg-muted)); }

/* ============================================
   ADMIN EXTENDED
   ============================================ */
.ui-admin-checkbox-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
}
@media (min-width: 640px) { .ui-admin-checkbox-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .ui-admin-checkbox-grid { grid-template-columns: repeat(4, 1fr); } }
.ui-admin-icon-box-primary { background: var(--color-primary-100); color: var(--color-primary-600); }
.dark .ui-admin-icon-box-primary { background: var(--color-primary-900); color: var(--color-primary-400); }
.ui-admin-stats-grid-4 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}
@media (min-width: 640px) { .ui-admin-stats-grid-4 { grid-template-columns: repeat(4, 1fr); } }

/* ============================================
   ALERT EXTENDED
   ============================================ */
.ui-alert-border-info {
    border-left: 4px solid var(--color-primary-500);
    background: var(--color-primary-50);
    padding: 1rem;
    border-radius: var(--radius-md);
}
.dark .ui-alert-border-info { background: var(--color-primary-950, rgba(59,130,246,0.1)); border-color: var(--color-primary-400); }
.ui-alert-border-warning {
    border-left: 4px solid var(--color-warning-500);
    background: var(--color-warning-50);
    padding: 1rem;
    border-radius: var(--radius-md);
}
.dark .ui-alert-border-warning { background: var(--color-warning-950, rgba(245,158,11,0.1)); border-color: var(--color-warning-400); }
.ui-alert-border-danger {
    border-left: 4px solid var(--color-danger-500);
    background: var(--color-danger-50);
    padding: 1rem;
    border-radius: var(--radius-md);
}
.dark .ui-alert-border-danger { background: var(--color-danger-950, rgba(239,68,68,0.1)); border-color: var(--color-danger-400); }
.ui-alert-border-yellow {
    border-left: 4px solid var(--color-warning-500);
    background: var(--color-warning-50);
    padding: 1rem;
    border-radius: var(--radius-md);
}
.dark .ui-alert-border-yellow { background: var(--color-warning-950, rgba(245,158,11,0.1)); }
.ui-alert-danger-light { background: var(--color-danger-50); color: var(--color-danger-700); }
.dark .ui-alert-danger-light { background: rgba(239,68,68,0.1); color: var(--color-danger-400); }
.ui-alert-info-light { background: var(--color-primary-50); color: var(--color-primary-700); }
.dark .ui-alert-info-light { background: rgba(59,130,246,0.1); color: var(--color-primary-400); }
.ui-alert-info-muted { color: var(--color-primary-400); }
.ui-alert-pink-light { background: var(--color-pink-50, #fdf2f8); }
.dark .ui-alert-pink-light { background: rgba(236,72,153,0.1); }
.ui-alert-purple-light { background: var(--color-purple-50, #faf5ff); }
.dark .ui-alert-purple-light { background: rgba(168,85,247,0.1); }
.ui-alert-warning-light { background: var(--color-warning-50); color: var(--color-warning-700); }
.dark .ui-alert-warning-light { background: rgba(245,158,11,0.1); color: var(--color-warning-400); }
.ui-alert-warning-block {
    background: var(--color-warning-50);
    border: 1px solid var(--color-warning-200);
    padding: 1rem;
    border-radius: var(--radius-md);
}
.dark .ui-alert-warning-block { background: rgba(245,158,11,0.1); border-color: var(--color-warning-800); }
.ui-alert-warning-box {
    background: var(--color-warning-50);
    padding: 0.75rem 1rem;
    border-radius: var(--radius-md);
}
.dark .ui-alert-warning-box { background: rgba(245,158,11,0.1); }
.ui-alert-warning-code {
    font-family: monospace;
    font-size: 0.75rem;
    background: var(--color-warning-100);
    padding: 0.125rem 0.375rem;
    border-radius: var(--radius-sm);
}
.dark .ui-alert-warning-code { background: var(--color-warning-900); }
.ui-alert-warning-muted { color: var(--color-warning-600); }
.dark .ui-alert-warning-muted { color: var(--color-warning-400); }
.ui-alert-warning-title { font-weight: 600; color: var(--color-warning-800); }
.dark .ui-alert-warning-title { color: var(--color-warning-300); }
.ui-alert-error-box {
    background: var(--color-danger-50);
    border: 1px solid var(--color-danger-200);
    padding: 1rem;
    border-radius: var(--radius-md);
}
.dark .ui-alert-error-box { background: rgba(239,68,68,0.1); border-color: var(--color-danger-800); }
.ui-alert-item {
    padding: 0.75rem 1rem;
    border-radius: var(--radius-md);
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}
.ui-alert-item-info { background: var(--color-primary-50); color: var(--color-primary-700); }
.dark .ui-alert-item-info { background: rgba(59,130,246,0.1); color: var(--color-primary-400); }
.ui-alert-item-warning { background: var(--color-warning-50); color: var(--color-warning-700); }
.dark .ui-alert-item-warning { background: rgba(245,158,11,0.1); color: var(--color-warning-400); }
.ui-alert-item-danger { background: var(--color-danger-50); color: var(--color-danger-700); }
.dark .ui-alert-item-danger { background: rgba(239,68,68,0.1); color: var(--color-danger-400); }

/* ============================================
   BADGE EXTENDED
   ============================================ */
.ui-badge-cancelled { background: var(--color-gray-100, var(--color-slate-100)); color: var(--color-gray-600, var(--color-slate-600)); }
.dark .ui-badge-cancelled { background: var(--color-gray-800, var(--color-slate-800)); color: var(--color-gray-400, var(--color-slate-400)); }
.ui-badge-contested { background: var(--color-warning-100); color: var(--color-warning-700); }
.dark .ui-badge-contested { background: var(--color-warning-900); color: var(--color-warning-300); }
.ui-badge-dot-green { display: inline-block; width: 0.5rem; height: 0.5rem; border-radius: 9999px; background: var(--color-success-500); }
.ui-badge-draft { background: var(--color-gray-100, var(--color-slate-100)); color: var(--color-gray-600, var(--color-slate-600)); }
.dark .ui-badge-draft { background: var(--color-gray-800, var(--color-slate-800)); color: var(--color-gray-400, var(--color-slate-400)); }
.ui-badge-fuchsia { background: var(--color-fuchsia-100, #fae8ff); color: var(--color-fuchsia-700, #a21caf); }
.dark .ui-badge-fuchsia { background: rgba(192,38,211,0.15); color: var(--color-fuchsia-400, var(--color-accent-400)); }
.ui-badge-indigo { background: var(--color-indigo-100, #e0e7ff); color: var(--color-indigo-700, var(--color-primary-700)); }
.dark .ui-badge-indigo { background: rgba(99,102,241,0.15); color: var(--color-indigo-400, var(--color-primary-400)); }
.ui-badge-info-soft { background: var(--color-primary-50); color: var(--color-primary-600); }
.dark .ui-badge-info-soft { background: rgba(59,130,246,0.15); color: var(--color-primary-400); }
.ui-badge-lime { background: var(--color-lime-100, #ecfccb); color: var(--color-lime-700, #4d7c0f); }
.dark .ui-badge-lime { background: rgba(132,204,22,0.15); color: var(--color-lime-400, #a3e635); }
.ui-badge-md { padding: 0.25rem 0.75rem; font-size: 0.8125rem; }
.ui-badge-open { background: var(--color-primary-100); color: var(--color-primary-700); }
.dark .ui-badge-open { background: var(--color-primary-900); color: var(--color-primary-300); }
.ui-badge-paid { background: var(--color-success-100); color: var(--color-success-700); }
.dark .ui-badge-paid { background: var(--color-success-900); color: var(--color-success-300); }
.ui-badge-pink { background: var(--color-pink-100, #fce7f3); color: var(--color-pink-700, var(--color-primary-700)); }
.dark .ui-badge-pink { background: rgba(236,72,153,0.15); color: var(--color-pink-400, var(--color-primary-400)); }
.ui-badge-rose { background: var(--color-rose-100, #ffe4e6); color: var(--color-rose-700, #be123c); }
.dark .ui-badge-rose { background: rgba(244,63,94,0.15); color: var(--color-rose-400, var(--color-danger-400)); }
.ui-badge-success-soft { background: var(--color-success-50); color: var(--color-success-600); }
.dark .ui-badge-success-soft { background: rgba(34,197,94,0.15); color: var(--color-success-400); }
.ui-badge-teal { background: var(--color-teal-100, #ccfbf1); color: var(--color-teal-700, #0f766e); }
.dark .ui-badge-teal { background: rgba(20,184,166,0.15); color: var(--color-teal-400, var(--color-info-400)); }
.ui-badge-warning-light {
    background: var(--color-warning-50);
    color: var(--color-warning-600);
    padding: 0.125rem 0.5rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 500;
}
.dark .ui-badge-warning-light { background: rgba(245,158,11,0.15); color: var(--color-warning-400); }
.ui-badge-warning-soft { background: var(--color-warning-50); color: var(--color-warning-600); }
.dark .ui-badge-warning-soft { background: rgba(245,158,11,0.15); color: var(--color-warning-400); }

/* ============================================
   BG / BORDER / TEXT EXTENDED
   ============================================ */
.ui-bg-code { background: var(--color-bg-muted); }
.dark .ui-bg-code { background: var(--color-bg-tertiary, var(--color-bg-muted)); }
.ui-bg-muted-hover:hover { background: var(--color-bg-muted); }
.dark .ui-bg-muted-hover:hover { background: var(--color-bg-muted); }
.ui-bg-primary-hover:hover { background: var(--color-primary-50); }
.dark .ui-bg-primary-hover:hover { background: var(--color-primary-900); }
.ui-border-muted { border-color: var(--color-border); }
.dark .ui-border-muted { border-color: var(--color-border); }
.ui-border-y { border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); }
.dark .ui-border-y { border-color: var(--color-border); }
.ui-divide-y > * + * { border-top: 1px solid var(--color-border); }
.dark .ui-divide-y > * + * { border-color: var(--color-border); }
.ui-divider-vertical { width: 1px; height: 1.5rem; background: var(--color-border); }
.dark .ui-divider-vertical { background: var(--color-border); }

/* ============================================
   BTN EXTENDED
   ============================================ */
.ui-btn-muted {
    background: var(--color-bg-muted);
    color: var(--color-text-primary);
    border: 1px solid var(--color-border);
}
.ui-btn-muted:hover { background: var(--color-bg-hover); }
.dark .ui-btn-muted { background: var(--color-bg-muted); color: var(--color-text-primary); border-color: var(--color-border); }
.ui-btn-outline-secondary {
    background: transparent;
    color: var(--color-text-secondary);
    border: 1px solid var(--color-border);
}
.ui-btn-outline-secondary:hover { background: var(--color-bg-muted); color: var(--color-text-primary); }
.dark .ui-btn-outline-secondary { color: var(--color-text-secondary); border-color: var(--color-border); }
.ui-btn-outline-warning {
    background: transparent;
    color: var(--color-warning-600);
    border: 1px solid var(--color-warning-300);
}
.ui-btn-outline-warning:hover { background: var(--color-warning-50); }
.dark .ui-btn-outline-warning { color: var(--color-warning-400); border-color: var(--color-warning-700); }
.dark .ui-btn-outline-warning:hover { background: rgba(245,158,11,0.1); }

/* ============================================
   CARD EXTENDED
   ============================================ */
.ui-card-collapse-icon { transition: transform 200ms ease; }
.ui-card-featured { border: 2px solid var(--color-primary-500); }
.dark .ui-card-featured { border-color: var(--color-primary-400); }
.ui-card-header-collapsible { cursor: pointer; user-select: none; }
.ui-card-header-collapsible:hover { background: var(--color-bg-muted); }
.ui-card-header-row { display: flex; align-items: center; justify-content: space-between; }
.ui-card-icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
}
.ui-card-muted { background: var(--color-bg-muted); border: 1px solid var(--color-border); }
.dark .ui-card-muted { background: var(--color-bg-muted); border-color: var(--color-border); }
.ui-card-nested {
    background: var(--color-bg-muted);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 1rem;
}
.dark .ui-card-nested { background: var(--color-bg-muted); border-color: var(--color-border); }

/* ============================================
   CHART / TABLE EXTENDED
   ============================================ */
.ui-chart-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 12rem;
    color: var(--color-text-muted);
    font-size: 0.875rem;
}
.ui-data-table-footer {
    padding: 0.75rem 1rem;
    border-top: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.dark .ui-data-table-footer { border-color: var(--color-border); }

/* ============================================
   FILTER EXTENDED
   ============================================ */
.ui-filter-btn {
    padding: 0.375rem 0.75rem;
    font-size: 0.75rem;
    font-weight: 500;
    border-radius: var(--radius-md);
    background: var(--color-bg-muted);
    color: var(--color-text-secondary);
    border: 1px solid transparent;
    cursor: pointer;
    transition: all 150ms ease;
}
.ui-filter-btn:hover { background: var(--color-bg-hover); color: var(--color-text-primary); }
.dark .ui-filter-btn { background: var(--color-bg-muted); color: var(--color-text-secondary); }
.ui-filter-btn-active {
    background: var(--color-primary-50);
    color: var(--color-primary-600);
    border-color: var(--color-primary-200);
}
.dark .ui-filter-btn-active { background: rgba(var(--color-primary-rgb, 59,130,246),0.15); color: var(--color-primary-400); border-color: var(--color-primary-800); }

/* ============================================
   ICON EXTENDED
   ============================================ */
.ui-icon { display: inline-flex; align-items: center; justify-content: center; }
.ui-icon-box-blue { background: var(--color-primary-100); color: var(--color-primary-600); border-radius: var(--radius-lg); }
.dark .ui-icon-box-blue { background: var(--color-primary-900); color: var(--color-primary-400); }
.ui-icon-button-danger {
    color: var(--color-danger-500);
    padding: 0.375rem;
    border-radius: var(--radius-md);
    background: transparent;
    cursor: pointer;
    transition: all 150ms;
}
.ui-icon-button-danger:hover { background: var(--color-danger-50); }
.dark .ui-icon-button-danger:hover { background: rgba(239,68,68,0.1); }
.ui-icon-button-purple {
    color: var(--color-purple-500, #a855f7);
    padding: 0.375rem;
    border-radius: var(--radius-md);
    background: transparent;
    cursor: pointer;
    transition: all 150ms;
}
.ui-icon-button-purple:hover { background: var(--color-purple-50, #faf5ff); }
.dark .ui-icon-button-purple:hover { background: rgba(168,85,247,0.1); }
.ui-icon-container {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-lg);
}
.ui-icon-container-slate { background: var(--color-gray-100, var(--color-slate-100)); color: var(--color-gray-600, var(--color-slate-600)); }
.dark .ui-icon-container-slate { background: var(--color-gray-800, var(--color-slate-800)); color: var(--color-gray-400, var(--color-slate-400)); }
.ui-icon-preview {
    width: 3rem;
    height: 3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-lg);
    background: var(--color-bg-muted);
}
.dark .ui-icon-preview { background: var(--color-bg-muted); }

/* ============================================
   INPUT EXTENDED
   ============================================ */
.ui-input-file {
    display: block;
    width: 100%;
    font-size: 0.875rem;
    color: var(--color-text-secondary);
}
.ui-input-file::file-selector-button {
    padding: 0.5rem 1rem;
    border-radius: var(--radius-md);
    background: var(--color-bg-muted);
    color: var(--color-text-primary);
    border: 1px solid var(--color-border);
    cursor: pointer;
    margin-right: 0.75rem;
}
.ui-input-md { padding: 0.5rem 0.75rem; font-size: 0.875rem; }
.ui-input-readonly { background: var(--color-bg-muted); cursor: not-allowed; opacity: 0.7; }
.dark .ui-input-readonly { background: var(--color-bg-muted); }
.ui-input-with-icon { position: relative; }
.ui-input-with-icon-left { padding-left: 2.5rem; }

/* ============================================
   LABEL EXTENDED
   ============================================ */
.ui-label-badge { display: inline-flex; align-items: center; gap: 0.5rem; }
.ui-help-text { font-size: 0.75rem; color: var(--color-text-muted); margin-top: 0.25rem; }

/* ============================================
   MODAL EXTENDED
   ============================================ */
.ui-modal-body-chat { padding: 0; max-height: 60vh; overflow-y: auto; }
.ui-modal-dialog-sm { max-width: 24rem; }

/* ============================================
   STAT EXTENDED
   ============================================ */
.ui-stat-card-cyan { background: linear-gradient(135deg, var(--color-cyan-500, var(--color-info-500)) 0%, var(--color-cyan-700, var(--color-info-700)) 100%); }
.dark .ui-stat-card-cyan { background: linear-gradient(135deg, var(--color-cyan-600, var(--color-info-600)) 0%, var(--color-cyan-800, #155e75) 100%); }
.ui-stat-card-indigo { background: linear-gradient(135deg, var(--color-indigo-500, #6366f1) 0%, var(--color-indigo-700, var(--color-primary-700)) 100%); }
.dark .ui-stat-card-indigo { background: linear-gradient(135deg, var(--color-indigo-600, var(--color-primary-600)) 0%, var(--color-indigo-800, #3730a3) 100%); }
.ui-stat-card-orange { background: linear-gradient(135deg, var(--color-orange-500, var(--color-warning-500)) 0%, var(--color-orange-700, var(--color-danger-700)) 100%); }
.dark .ui-stat-card-orange { background: linear-gradient(135deg, var(--color-orange-600, var(--color-warning-600)) 0%, var(--color-orange-800, #9a3412) 100%); }
.ui-stat-card-pink { background: linear-gradient(135deg, var(--color-pink-500, var(--color-primary-500)) 0%, var(--color-pink-700, var(--color-primary-700)) 100%); }
.dark .ui-stat-card-pink { background: linear-gradient(135deg, var(--color-pink-600, #db2777) 0%, var(--color-pink-800, #9d174d) 100%); }
.ui-stat-card-slate { background: linear-gradient(135deg, var(--color-gray-500, #64748b) 0%, var(--color-gray-700, #334155) 100%); }
.dark .ui-stat-card-slate { background: linear-gradient(135deg, var(--color-gray-600, var(--color-slate-600)) 0%, var(--color-gray-800, var(--color-slate-800)) 100%); }
.ui-stat-counter { text-align: center; padding: 0.75rem; }
.ui-stat-counter-label { font-size: 0.75rem; color: var(--color-text-muted); margin-top: 0.25rem; }
.ui-stat-counter-value { font-size: 1.5rem; font-weight: 700; color: var(--color-text-primary); }
.dark .ui-stat-counter-value { color: var(--color-text-primary); }
.ui-stat-counter-value-gray { color: var(--color-text-muted); }
.ui-stat-counter-value-green { color: var(--color-success-500); }
.ui-stat-counter-value-yellow { color: var(--color-warning-500); }
.ui-stat-grid-4 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}
@media (min-width: 640px) { .ui-stat-grid-4 { grid-template-columns: repeat(4, 1fr); } }
.ui-stat-grid-6 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}
@media (min-width: 640px) { .ui-stat-grid-6 { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .ui-stat-grid-6 { grid-template-columns: repeat(6, 1fr); } }
.ui-stat-icon-slate { color: var(--color-gray-500, #64748b); }
.ui-stat-item { text-align: center; padding: 1rem; }
.ui-stat-label-sm { font-size: 0.75rem; color: var(--color-text-muted); }
.ui-stat-row { display: flex; align-items: center; justify-content: space-between; padding: 0.5rem 0; }
.ui-stat-trend { display: inline-flex; align-items: center; gap: 0.25rem; font-size: 0.75rem; font-weight: 500; }

/* ============================================
   STATUS EXTENDED
   ============================================ */
.ui-status-badge-disabled {
    background: var(--color-gray-100, var(--color-slate-100));
    color: var(--color-gray-500, #64748b);
    padding: 0.125rem 0.5rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 500;
}
.dark .ui-status-badge-disabled { background: var(--color-gray-800); color: var(--color-gray-400); }
.ui-status-badge-pending {
    background: var(--color-warning-100);
    color: var(--color-warning-700);
    padding: 0.125rem 0.5rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 500;
}
.dark .ui-status-badge-pending { background: var(--color-warning-900); color: var(--color-warning-300); }
.ui-status-box { padding: 1rem; border-radius: var(--radius-lg); border: 1px solid var(--color-border); }
.ui-status-box-content { display: flex; flex-direction: column; gap: 0.25rem; }
.ui-status-box-danger { border-color: var(--color-danger-200); background: var(--color-danger-50); }
.dark .ui-status-box-danger { border-color: var(--color-danger-800); background: rgba(239,68,68,0.1); }
.ui-status-box-description { font-size: 0.75rem; color: var(--color-text-muted); }
.ui-status-box-icon { flex-shrink: 0; }
.ui-status-box-success { border-color: var(--color-success-200); background: var(--color-success-50); }
.dark .ui-status-box-success { border-color: var(--color-success-800); background: rgba(34,197,94,0.1); }
.ui-status-box-text { display: flex; flex-direction: column; }
.ui-status-box-title { font-weight: 600; font-size: 0.875rem; color: var(--color-text-primary); }
.dark .ui-status-box-title { color: var(--color-text-primary); }

/* ============================================
   TAB HEADER ICON EXTENDED
   ============================================ */
.ui-tab-header-icon-indigo { background: var(--color-indigo-100, #e0e7ff); color: var(--color-indigo-600, var(--color-primary-600)); }
.dark .ui-tab-header-icon-indigo { background: rgba(99,102,241,0.2); color: var(--color-indigo-400, var(--color-primary-400)); }
.ui-tab-header-icon-orange { background: var(--color-orange-100, #ffedd5); color: var(--color-orange-600, var(--color-warning-600)); }
.dark .ui-tab-header-icon-orange { background: rgba(249,115,22,0.2); color: var(--color-orange-400, var(--color-warning-400)); }
.ui-tab-header-icon-pink { background: var(--color-pink-100, #fce7f3); color: var(--color-pink-600, #db2777); }
.dark .ui-tab-header-icon-pink { background: rgba(236,72,153,0.2); color: var(--color-pink-400, var(--color-primary-400)); }
.ui-tab-header-icon-violet { background: var(--color-violet-100, #ede9fe); color: var(--color-violet-600, var(--color-accent-600)); }
.dark .ui-tab-header-icon-violet { background: rgba(139,92,246,0.2); color: var(--color-violet-400, var(--color-accent-400)); }
.ui-tab-inactive { color: var(--color-text-muted); }
.ui-tab-inactive:hover { color: var(--color-text-secondary); }

/* ============================================
   TEXT EXTENDED
   ============================================ */
.ui-text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
.ui-text-accent { color: var(--color-primary-500); }
.dark .ui-text-accent { color: var(--color-primary-400); }
.ui-text-body { color: var(--color-text-primary); font-size: 0.875rem; line-height: 1.5; }
.dark .ui-text-body { color: var(--color-text-primary); }
.ui-text-code { font-family: monospace; font-size: 0.8125rem; }
.ui-text-danger-hover:hover { color: var(--color-danger-600); }
.dark .ui-text-danger-hover:hover { color: var(--color-danger-400); }
.ui-text-danger-light { color: var(--color-danger-400); }
.dark .ui-text-danger-light { color: var(--color-danger-300); }
.ui-text-danger-muted { color: var(--color-danger-400); }
.dark .ui-text-danger-muted { color: var(--color-danger-500); }
.ui-text-error { color: var(--color-danger-500); }
.dark .ui-text-error { color: var(--color-danger-400); }
.ui-text-error-content { color: var(--color-danger-600); }
.dark .ui-text-error-content { color: var(--color-danger-400); }
.ui-text-error-muted { color: var(--color-danger-400); font-size: 0.75rem; }
.ui-text-heading { color: var(--color-text-primary); font-weight: 600; }
.dark .ui-text-heading { color: var(--color-text-primary); }
.ui-text-info-hover:hover { color: var(--color-primary-600); }
.dark .ui-text-info-hover:hover { color: var(--color-primary-400); }
.ui-text-line-number {
    color: var(--color-text-muted);
    user-select: none;
    font-size: 0.75rem;
    text-align: right;
    min-width: 2rem;
}
.ui-text-neutral { color: var(--color-gray-500, #64748b); }
.dark .ui-text-neutral { color: var(--color-gray-400, var(--color-slate-400)); }
.ui-text-orange-secondary { color: var(--color-orange-600, var(--color-warning-600)); }
.dark .ui-text-orange-secondary { color: var(--color-orange-400, var(--color-warning-400)); }
.ui-text-overdue { color: var(--color-danger-500); font-weight: 500; }
.ui-text-primary-hover:hover { color: var(--color-primary-600); }
.dark .ui-text-primary-hover:hover { color: var(--color-primary-400); }
.ui-text-primary-muted { color: var(--color-primary-400); }
.dark .ui-text-primary-muted { color: var(--color-primary-500); }
.ui-text-secondary-hover:hover { color: var(--color-text-primary); }
.dark .ui-text-secondary-hover:hover { color: var(--color-text-primary); }
.ui-text-subtitle { font-size: 0.875rem; color: var(--color-text-secondary); }
.dark .ui-text-subtitle { color: var(--color-text-secondary); }
.ui-text-terminal { font-family: monospace; color: var(--color-success-400); }
.ui-text-warning-muted { color: var(--color-warning-400); }
.dark .ui-text-warning-muted { color: var(--color-warning-500); }

/* ============================================
   TEXTAREA EXTENDED
   ============================================ */
.ui-textarea-lg { min-height: 10rem; }
.ui-textarea-md { min-height: 6rem; }
.ui-textarea-sm { min-height: 3rem; }

/* ============================================
   BG-SHORT (Shortener Plugin)
   ============================================ */
.ui-bg-short { background: var(--color-primary-50); }
.dark .ui-bg-short { background: rgba(59,130,246,0.1); }

/* ============================================
   ERROR TEXT (Form Component)
   ============================================ */
.ui-error-text { font-size: 0.75rem; color: var(--color-danger-500); margin-top: 0.25rem; }
.dark .ui-error-text { color: var(--color-danger-400); }

/* ============================================
   RING OFFSET CARD
   ============================================ */
.ui-ring-offset-card { --tw-ring-offset-color: var(--color-bg-card); }

/* ============================================
   TABLE ALTERNATIVE (ui-table-* aliases)
   ============================================ */
.ui-table-header { background: var(--color-bg-muted); }
.dark .ui-table-header { background: var(--color-bg-muted); }
.ui-table-body { }
.ui-table-row { border-bottom: 1px solid var(--color-border); }
.dark .ui-table-row { border-color: var(--color-border); }
.ui-table-row-hover:hover { background: var(--color-bg-hover); }
.ui-table-row-highlight { background: var(--color-primary-50); }
.dark .ui-table-row-highlight { background: rgba(59,130,246,0.1); }
.ui-table-striped tr:nth-child(even) { background: var(--color-bg-muted); }
.dark .ui-table-striped tr:nth-child(even) { background: var(--color-bg-muted); }
.ui-table-th { padding: 0.75rem 1rem; font-size: 0.75rem; font-weight: 600; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: 0.05em; text-align: left; }
.ui-table-td { padding: 0.75rem 1rem; font-size: 0.875rem; color: var(--color-text-primary); }
.dark .ui-table-td { color: var(--color-text-primary); }
.ui-table-cell { padding: 0.75rem 1rem; }
.ui-table-hover tbody tr:hover { background: var(--color-bg-hover); }
.ui-table-icon { width: 1.25rem; height: 1.25rem; color: var(--color-text-muted); }
.ui-border-bottom { border-bottom: 1px solid var(--color-border); }
.dark .ui-border-bottom { border-color: var(--color-border); }
.ui-error-item { display: flex; align-items: flex-start; gap: 0.5rem; padding: 0.5rem; border-radius: var(--radius-md); background: var(--color-danger-50); color: var(--color-danger-700); font-size: 0.875rem; }
.dark .ui-error-item { background: rgba(239,68,68,0.1); color: var(--color-danger-400); }

/* ============================================
   CONTENT CARD COMPONENT
   Componente: content-card.php / content-card-end.php
   Usado em admin e user views (settings-shell-v2)
   ============================================ */

.content-card {
    background: var(--color-bg-card, white);
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-xl, 0.75rem);
    overflow: hidden;
}

.dark .content-card {
    background: var(--color-bg-card, #1e1e38);
    border-color: var(--color-border, #2a2a4e);
}

.content-card-padded .content-card-inner,
.content-card-padded > :not(.content-card-inner) {
    padding: 1.5rem;
}

.content-card-no-padding .content-card-inner {
    padding: 0;
}

.content-card-inner > .space-y-6 > * + * {
    border-top: 1px solid var(--color-border, #e5e7eb);
    padding-top: 1.5rem;
    margin-top: 1.5rem;
}

.dark .content-card-inner > .space-y-6 > * + * {
    border-top-color: var(--color-border, #2a2a4e);
}

.content-card-inner > .bg-white,
.content-card-inner > .ui-bg-muted {
    border: none;
    border-radius: 0;
}

@media (max-width: 768px) {
    .content-card {
        border-radius: var(--radius-lg, 0.5rem);
    }

    .content-card-padded .content-card-inner,
    .content-card-padded > :not(.content-card-inner) {
        padding: 1rem;
    }
}

/* ============================================
   DocumentInsights — Editor Colaborativo
   ============================================ */
.di-editor-area {
    min-height: 500px;
}

.di-onlyoffice-frame {
    height: 85vh;
}

/* ============================================
   PUBLIC PAGES COMPONENTS — ui-pub-*
   Shared components used across public pages:
   hero, CTA, fullscreen (maintenance/error),
   cookie banner, field feedback (a11y).
   All values consume design-tokens.css.
   ============================================ */

/* Fullscreen wrapper (maintenance, cookie-error, 404/500) */
.ui-pub-fullscreen {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-4);
    background: var(--color-bg-primary);
    color: var(--color-text-primary);
    font-family: var(--font-family);
    position: relative;
}

.ui-pub-fullscreen::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: var(--pub-mesh-1), var(--pub-mesh-2);
}

.ui-pub-fullscreen-inner {
    width: 100%;
    max-width: 560px;
    position: relative;
    z-index: 1;
}

.ui-pub-fullscreen-card {
    background: var(--pub-card-bg);
    color: var(--color-text-primary);
    border: 1px solid var(--pub-card-border);
    border-radius: var(--radius-2xl);
    box-shadow: var(--pub-card-shadow);
    backdrop-filter: blur(var(--blur-md));
    overflow: hidden;
}

.ui-pub-fullscreen-card-header {
    padding: var(--space-7) var(--space-7) var(--space-6);
    text-align: center;
}

.ui-pub-fullscreen-card-body {
    padding: var(--space-6) var(--space-7);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    background: var(--color-bg-muted);
}

.ui-pub-fullscreen-card-footer {
    padding: var(--space-6) var(--space-7);
    text-align: center;
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    line-height: var(--line-height-relaxed);
}

/* Icon ring (fullscreen hero icon) */
.ui-pub-icon-ring {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icon-3xl);
    height: var(--icon-3xl);
    background: var(--color-bg-muted);
    border-radius: var(--radius-full);
    margin-bottom: var(--space-5);
    color: var(--color-text-muted);
}

.ui-pub-icon-ring--accent {
    background: linear-gradient(135deg, var(--color-warning-100), var(--color-danger-100));
    color: var(--color-warning-600);
}

.ui-pub-icon-ring svg {
    width: var(--icon-xl);
    height: var(--icon-xl);
}

.ui-pub-icon-ring--sm {
    width: var(--icon-2xl);
    height: var(--icon-2xl);
}

.ui-pub-icon-ring--sm svg {
    width: var(--icon-lg);
    height: var(--icon-lg);
}

/* Public title / description */
.ui-pub-title {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: var(--space-2);
    line-height: var(--line-height-tight);
}

.ui-pub-subtitle {
    font-size: var(--font-size-base);
    color: var(--color-text-secondary);
    line-height: var(--line-height-normal);
}

/* Countdown grid (maintenance) */
.ui-pub-countdown-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--space-4);
    font-size: var(--font-size-xs);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
}

.ui-pub-countdown-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-3);
}

.ui-pub-countdown-item {
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--space-3) var(--space-2);
    text-align: center;
}

.ui-pub-countdown-value {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.ui-pub-countdown-label {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    margin-top: var(--space-1);
    text-transform: lowercase;
}

/* Progress bar */
.ui-pub-progress {
    height: 4px;
    background: var(--color-bg-subtle);
    border-radius: 2px;
    overflow: hidden;
    margin-top: var(--space-4);
}

.ui-pub-progress-fill {
    height: 100%;
    background: var(--pub-cta-gradient);
    border-radius: 2px;
    transition: width var(--transition-slow) linear;
}

/* CTA (primary/ghost) — tokenized, with micro-interaction */
.ui-pub-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-6);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    border-radius: var(--radius-lg);
    border: 1px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: transform var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
    white-space: nowrap;
}

.ui-pub-cta--primary {
    background: var(--pub-cta-gradient);
    color: var(--color-white);
}

.ui-pub-cta--primary:hover {
    background: var(--pub-cta-gradient-hover);
    transform: translateY(-1px);
    box-shadow: var(--pub-cta-shadow);
}

.ui-pub-cta--primary:active {
    transform: translateY(0);
}

.ui-pub-cta--ghost {
    background: transparent;
    color: var(--color-text-primary);
    border-color: var(--color-border);
}

.ui-pub-cta--ghost:hover {
    background: var(--color-bg-hover);
    border-color: var(--pub-accent);
}

.ui-pub-cta:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring-color);
}

.ui-pub-cta:disabled,
.ui-pub-cta[aria-disabled="true"] {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    .ui-pub-cta,
    .ui-pub-cta:hover,
    .ui-pub-cta:active {
        transform: none;
        transition: none;
    }
}

/* Meta info (bottom bar with time/theme toggle) */
.ui-pub-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: var(--space-7);
    padding-top: var(--space-4);
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    gap: var(--space-3);
}

/* Theme toggle button */
.ui-pub-theme-toggle {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-1) var(--space-3);
    background: var(--color-bg-muted);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    cursor: pointer;
    color: var(--color-text-secondary);
    font-size: var(--font-size-xs);
    transition: background var(--transition-fast), border-color var(--transition-fast);
}

.ui-pub-theme-toggle:hover {
    background: var(--color-bg-hover);
    border-color: var(--pub-accent);
}

.ui-pub-theme-toggle svg {
    width: var(--icon-xs);
    height: var(--icon-xs);
}

/* Public list (bulleted with checks/icons) */
.ui-pub-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    list-style: none;
    margin: 0;
    padding: 0;
}

.ui-pub-list-item {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2) 0;
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
}

.ui-pub-list-item svg {
    width: var(--icon-md);
    height: var(--icon-md);
    color: var(--color-success-500);
    flex-shrink: 0;
}

.ui-pub-divider {
    border: none;
    border-top: 1px solid var(--color-border);
    margin: var(--space-6) 0;
}

/* Contact link (inside fullscreen pages) */
.ui-pub-link {
    color: var(--pub-accent);
    text-decoration: none;
    font-weight: var(--font-weight-medium);
    transition: color var(--transition-fast);
}

.ui-pub-link:hover {
    color: var(--pub-accent-hover);
}

.ui-pub-link:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring-color);
    border-radius: var(--radius-sm);
}

/* Field feedback (a11y) — announces form validation status */
.ui-field-feedback {
    display: block;
    margin-top: var(--space-2);
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    min-height: 1.25em;
    line-height: var(--line-height-normal);
}

.ui-field-feedback--error {
    color: var(--color-danger-600);
}

.ui-field-feedback--success {
    color: var(--color-success-600);
}

/* Global focus-visible — single source of truth */
.ui-focus-ring:focus-visible,
[data-focus-ring]:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring-color);
    border-radius: var(--radius-md);
}

/* Responsive */
@media (max-width: 640px) {
    .ui-pub-fullscreen {
        padding: var(--space-3);
    }

    .ui-pub-fullscreen-card-header,
    .ui-pub-fullscreen-card-footer {
        padding: var(--space-5) var(--space-4);
    }

    .ui-pub-fullscreen-card-body {
        padding: var(--space-4);
    }

    .ui-pub-title {
        font-size: var(--font-size-xl);
    }

    .ui-pub-subtitle {
        font-size: var(--font-size-sm);
    }

    .ui-pub-countdown-grid {
        gap: var(--space-2);
    }

    .ui-pub-countdown-item {
        padding: var(--space-2) var(--space-1);
    }

    .ui-pub-countdown-value {
        font-size: var(--font-size-xl);
    }

    .ui-pub-meta {
        flex-direction: column;
        gap: var(--space-1);
        text-align: center;
    }

    .ui-pub-icon-ring {
        width: var(--icon-2xl);
        height: var(--icon-2xl);
    }

    .ui-pub-icon-ring svg {
        width: var(--icon-lg);
        height: var(--icon-lg);
    }
}

@media (max-width: 479px) {
    .ui-pub-countdown-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@supports (padding: max(0px)) {
    .ui-pub-fullscreen {
        padding-left: max(var(--space-3), env(safe-area-inset-left));
        padding-right: max(var(--space-3), env(safe-area-inset-right));
        padding-bottom: max(var(--space-3), env(safe-area-inset-bottom));
    }
}

/* Soft pulse animation (icon rings on wait/maintenance screens) */
@keyframes ui-pub-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.7; }
}

.ui-pub-pulse {
    animation: ui-pub-pulse 2s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
    .ui-pub-pulse { animation: none; }
}

/* Narrow public container (substitui max-width inline em views) */
.pub-container-narrow { max-width: 56rem; }
.pub-container-narrow-md { max-width: 32rem; }
.pub-container-wide { max-width: 64rem; }

/* Buy Services list — substitui inline styles do buy-services.php */
.sl-hero { padding: var(--space-8) 0 var(--space-7); }
.sl-hero-inner { text-align: center; display: block; }
.sl-hero-title {
    font-size: var(--font-size-2xl);
    margin-bottom: var(--space-3);
}
.sl-hero-summary {
    font-size: var(--font-size-base);
    color: rgba(255, 255, 255, 0.6);
    max-width: 36rem;
    margin: 0 auto var(--space-2);
}
.sl-hero-actions {
    display: flex;
    gap: var(--space-3);
    justify-content: center;
    margin-top: var(--space-5);
    flex-wrap: wrap;
}
.sl-stats-section { padding: var(--space-6) 0; }
.sl-toolbar-section { padding: 0 0 var(--space-4); }
.sl-list-section { padding: 0 0 var(--space-8); }

/* Service list category metadata wrapper (substitui inline style="display:flex...") */
.sl-cat-meta {
    display: flex;
    align-items: center;
}

/* Service list table right-aligned headers (substitui inline style="text-align:right") */
.sl-th-right { text-align: right; }

/* Service list empty state icon (substitui inline style="font-size:1.5rem;...") */
.sl-empty-icon {
    font-size: var(--font-size-2xl);
    margin-bottom: var(--space-2);
    display: block;
}

/* ============================================
   UI-DIALOG (rc.504) — HTML5 <dialog> nativo
   Browser-managed focus trap + ESC + backdrop nativo (::backdrop)
   Browser support: Chrome 37+, Firefox 98+, Safari 15.4+ (96%+ usuários globais)
   ============================================ */

dialog.ui-dialog {
    /* Reset defaults do user-agent · usar tokens canônicos */
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: var(--radius-lg, 12px);
    padding: 0;
    background: var(--color-bg-card, #ffffff);
    color: var(--color-text-primary, #0f172a);
    box-shadow: 0 16px 32px rgba(15, 23, 42, 0.18);
    max-width: min(560px, calc(100vw - 2rem));
    max-height: calc(100vh - 2rem);
    overflow: hidden;
    /* Animation fade-in via [open] */
    opacity: 0;
    transform: translateY(8px) scale(0.98);
    transition: opacity 200ms ease, transform 200ms ease;
}
dialog.ui-dialog[open] {
    opacity: 1;
    transform: translateY(0) scale(1);
    display: flex;
    flex-direction: column;
}

/* Backdrop nativo · sem CSS extra */
dialog.ui-dialog::backdrop {
    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}

/* Header / Body / Footer canônicos */
.ui-dialog-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3, 0.75rem);
    padding: var(--space-4, 1rem) var(--space-5, 1.25rem);
    border-bottom: 1px solid var(--color-border, #e2e8f0);
    background: var(--color-bg-card, #ffffff);
    flex-shrink: 0;
}
.ui-dialog-title {
    font-size: var(--font-size-lg, 1.125rem);
    font-weight: var(--font-weight-semibold, 600);
    color: var(--color-text-primary, #0f172a);
    margin: 0;
}
.ui-dialog-close {
    background: transparent;
    border: 0;
    padding: 0.5rem;
    border-radius: var(--radius-md, 6px);
    color: var(--color-text-muted, #64748b);
    cursor: pointer;
    transition: background 150ms ease, color 150ms ease;
    min-width: 2.75rem;
    min-height: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.ui-dialog-close:hover {
    background: var(--color-bg-hover, rgba(15, 23, 42, 0.05));
    color: var(--color-text-primary, #0f172a);
}
.ui-dialog-body {
    padding: var(--space-5, 1.25rem);
    overflow-y: auto;
    flex: 1;
}
.ui-dialog-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-2, 0.5rem);
    padding: var(--space-4, 1rem) var(--space-5, 1.25rem);
    border-top: 1px solid var(--color-border, #e2e8f0);
    background: var(--color-bg-card, #ffffff);
    flex-shrink: 0;
}

/* Variantes de tamanho */
dialog.ui-dialog.ui-dialog--sm  { max-width: min(400px, calc(100vw - 2rem)); }
dialog.ui-dialog.ui-dialog--lg  { max-width: min(720px, calc(100vw - 2rem)); }
dialog.ui-dialog.ui-dialog--xl  { max-width: min(960px, calc(100vw - 2rem)); }
dialog.ui-dialog.ui-dialog--full {
    max-width: calc(100vw - 1rem);
    max-height: calc(100vh - 1rem);
    width: calc(100vw - 1rem);
}

/* Mobile: dialog ocupa quase fullscreen com border radius topo */
@media (max-width: 767px) {
    dialog.ui-dialog {
        max-width: calc(100vw - 1rem);
        max-height: calc(100vh - 1rem);
        margin: 0.5rem;
    }
    .ui-dialog-footer {
        flex-direction: column;
        align-items: stretch;
    }
    .ui-dialog-footer .ui-btn {
        width: 100%;
    }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    dialog.ui-dialog,
    dialog.ui-dialog[open] {
        transition: none !important;
        transform: none !important;
    }
}

/* Cat-head como <button>: reset native styles */
button.sl-cat-head {
    background: var(--pub-bg-card-elevated);
    border: 0;
    border-bottom: 1px solid var(--color-border);
    width: 100%;
    text-align: left;
    cursor: pointer;
    color: inherit;
    font: inherit;
    padding: 0.375rem 0.75rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
button.sl-cat-head:focus-visible {
    outline: 2px solid var(--pub-accent, var(--color-primary-500));
    outline-offset: 2px;
}

/* Buy Status (Tracking de pedido) — extraído de buy-status.php na Sessão 3.13 */
.track-page {
    padding: var(--space-8) var(--space-4) var(--space-8);
    max-width: 44rem;
    margin: 0 auto;
}
.track-hero {
    text-align: center;
    margin-bottom: var(--space-7);
}
.track-hero-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.875rem;
    border-radius: var(--radius-full);
    font-size: 0.6875rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: color-mix(in srgb, var(--color-primary-500) 12%, transparent);
    color: var(--color-primary-500);
    margin-bottom: var(--space-4);
}
.track-hero h1 {
    font-size: 1.75rem;
    font-weight: 800;
    margin-bottom: var(--space-2);
    color: var(--color-text-primary);
    background: linear-gradient(135deg, var(--color-primary-500), var(--color-cyan-500));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.track-hero p {
    font-size: 0.9375rem;
    color: var(--color-text-muted);
    max-width: 28rem;
    margin: 0 auto;
}

/* Search card */
.track-search {
    background: var(--color-bg-card);
    border-radius: var(--radius-xl);
    border: 1px solid var(--color-border);
    padding: var(--space-6);
    margin-bottom: var(--space-7);
}
.track-search-row {
    display: flex;
    gap: var(--space-3);
    align-items: center;
}
.track-search-row .track-search-input { flex: 1; }
.track-search-label {
    display: block;
    font-size: 0.8125rem;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: 0.375rem;
}
.track-search-input {
    width: 100%;
    padding: 0.625rem 0.875rem;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: var(--color-bg-primary);
    color: var(--color-text-primary);
    font-size: 0.9375rem;
    font-family: var(--font-family-mono);
    text-transform: uppercase;
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.track-search-input:focus {
    outline: none;
    border-color: var(--color-primary-500);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary-500) 15%, transparent);
}
.track-search-input.is-error {
    border-color: var(--color-danger-500);
}
.track-search-input::placeholder { text-transform: none; }
.track-search-hint {
    font-size: 0.6875rem;
    color: var(--color-text-muted);
    margin-top: 0.375rem;
    display: block;
}
.track-search-btn {
    white-space: nowrap;
    height: 2.625rem;
    flex-shrink: 0;
}

/* Order card */
.track-order-card {
    background: var(--color-bg-card);
    border-radius: var(--radius-xl);
    border: 1px solid var(--color-border);
    padding: var(--space-6);
    margin-bottom: var(--space-4);
    transition: border-color var(--transition-fast);
}
.track-order-card:hover { border-color: var(--color-primary-500); }
.track-order-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 0.625rem;
    margin-bottom: var(--space-5);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--color-border);
}
.track-order-id-label {
    font-size: 0.625rem;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 0.125rem;
}
.track-order-id {
    font-size: var(--font-size-xl);
    font-weight: 800;
    color: var(--color-text-primary);
    font-family: var(--font-family-mono);
    letter-spacing: 0.02em;
}
.track-badges {
    display: flex;
    gap: 0.375rem;
    flex-wrap: wrap;
}
.track-badge {
    padding: var(--space-1) 0.625rem;
    border-radius: var(--radius-full);
    font-size: 0.6875rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.02em;
    white-space: nowrap;
}
.track-badge-pending {
    background: color-mix(in srgb, var(--color-warning-500) 12%, transparent);
    color: var(--color-warning-500);
}
.track-badge-processing,
.track-badge-awaiting_approval {
    background: color-mix(in srgb, var(--color-info-500) 12%, transparent);
    color: var(--color-info-500);
}
.track-badge-in_progress {
    background: color-mix(in srgb, var(--color-indigo-500) 12%, transparent);
    color: var(--color-indigo-500);
}
.track-badge-completed,
.track-badge-paid {
    background: color-mix(in srgb, var(--color-success-500) 12%, transparent);
    color: var(--color-success-500);
}
.track-badge-partial {
    background: color-mix(in srgb, var(--color-warning-500) 12%, transparent);
    color: var(--color-warning-500);
}
.track-badge-cancelled,
.track-badge-failed {
    background: color-mix(in srgb, var(--color-danger-500) 12%, transparent);
    color: var(--color-danger-500);
}
.track-badge-refunded {
    background: color-mix(in srgb, var(--color-slate-500) 12%, transparent);
    color: var(--color-slate-500);
}

/* Service name + badges layout */
.track-service-name {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    line-height: 1.4;
    margin-bottom: 0.25rem;
}
.track-service-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-top: 0.125rem;
}
.track-service-badges .smm-svc-badge {
    font-size: 0.625rem;
    margin-left: 0;
}

/* Link row */
.track-link-row {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    word-break: break-all;
    margin-top: 0.25rem;
}
.track-link-row i {
    flex-shrink: 0;
    font-size: 0.6875rem;
}

/* Details grid */
.track-details {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem 1rem;
}
.track-detail-item-full { grid-column: 1 / -1; }
.track-detail-label {
    font-size: 0.625rem;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 0.125rem;
}
.track-detail-value {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
}

/* Drip feed info */
.track-drip-info {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    flex-wrap: wrap;
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    margin-top: 0.25rem;
    padding-top: var(--space-2);
    border-top: 1px dashed var(--color-border);
}
.track-drip-info i { color: var(--color-cyan-500); }

/* Progress bar */
.track-progress {
    margin-top: var(--space-5);
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-border);
}
.track-progress-header {
    display: flex;
    justify-content: space-between;
    font-size: var(--font-size-xs);
    margin-bottom: 0.375rem;
}
.track-progress-label { color: var(--color-text-muted); }
.track-progress-value {
    color: var(--color-text-primary);
    font-weight: var(--font-weight-semibold);
}
.track-progress-bar {
    height: 0.5rem;
    background: var(--color-border);
    border-radius: var(--radius-full);
    overflow: hidden;
}
.track-progress-fill {
    height: 100%;
    border-radius: var(--radius-full);
    transition: width 0.4s ease;
    min-width: 0;
    width: 0%;
}
/* Per-instance width via data-progress (set via attr() — Chrome 125+ + JS fallback) */
.track-progress-fill[data-progress="0"]   { width: 0%; }
.track-progress-fill[data-progress="100"] { width: 100%; }
@media (prefers-reduced-motion: reduce) {
    .track-progress-fill { transition: none; }
}
.track-progress-fill-active {
    background: linear-gradient(90deg, var(--color-success-500), var(--color-cyan-500));
}
.track-progress-fill-zero { background: var(--color-border); }
.track-progress-stats {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.6875rem;
    color: var(--color-text-muted);
    margin-top: 0.375rem;
}

/* Warranty support button */
.track-support-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    margin-top: var(--space-4);
    padding: var(--space-2) var(--space-4);
    border-radius: var(--radius-lg);
    font-size: 0.8125rem;
    font-weight: var(--font-weight-semibold);
    cursor: pointer;
    border: 1px solid color-mix(in srgb, var(--color-success-500) 30%, transparent);
    background: color-mix(in srgb, var(--color-success-500) 8%, transparent);
    color: var(--color-success-600);
    transition: background var(--transition-fast), border-color var(--transition-fast);
    text-decoration: none;
}
.track-support-btn:hover {
    background: color-mix(in srgb, var(--color-success-500) 15%, transparent);
    border-color: color-mix(in srgb, var(--color-success-500) 50%, transparent);
}
.dark .track-support-btn { color: var(--color-success-400); }

/* Empty state */
.track-empty {
    text-align: center;
    padding: var(--space-8) var(--space-6);
    background: var(--color-bg-card);
    border-radius: var(--radius-xl);
    border: 1px solid var(--color-border);
}
.track-empty-icon {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 50%;
    background: color-mix(in srgb, var(--color-primary-500) 10%, transparent);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto var(--space-4);
    font-size: var(--font-size-xl);
    color: var(--color-text-muted);
}
.track-empty-icon-error { color: var(--color-danger-500); }
.track-empty h3 {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: 0.375rem;
}
.track-empty p {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

/* Loading skeleton */
.track-loading {
    display: none;
    padding: var(--space-6);
}
.track-loading.is-active { display: block; }
.track-skeleton {
    background: var(--color-bg-card);
    border-radius: var(--radius-xl);
    border: 1px solid var(--color-border);
    padding: var(--space-6);
    margin-bottom: var(--space-4);
}
.track-skeleton-line {
    height: 0.75rem;
    border-radius: var(--radius-sm);
    margin-bottom: 0.625rem;
    background: linear-gradient(90deg, var(--color-border) 25%, var(--color-bg-primary) 50%, var(--color-border) 75%);
    background-size: 200% 100%;
    animation: trackShimmer 1.5s ease-in-out infinite;
}
.track-skeleton-line:nth-child(1) { width: 40%; height: var(--font-size-base); }
.track-skeleton-line:nth-child(2) { width: 90%; }
.track-skeleton-line:nth-child(3) { width: 65%; }
.track-skeleton-line:nth-child(4) { width: 50%; margin-bottom: 0; }

@keyframes trackShimmer {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
@media (prefers-reduced-motion: reduce) {
    .track-skeleton-line { animation: none; }
}

/* Footer link */
.track-footer {
    text-align: center;
    margin-top: var(--space-7);
}
.track-footer a {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    transition: color var(--transition-fast);
}
.track-footer a:hover { color: var(--color-primary-500); }

/* Mobile */
@media (max-width: 479px) {
    .track-page { padding: var(--space-7) 0.75rem var(--space-8); }
    .track-hero h1 { font-size: 1.375rem; }
    .track-search-row {
        flex-direction: column;
        align-items: stretch;
        gap: 0.625rem;
    }
    .track-search-row .track-search-input { width: 100%; }
    .track-search-btn { width: 100%; }
    .track-details {
        grid-template-columns: 1fr 1fr;
        gap: 0.625rem;
    }
    .track-order-header {
        flex-direction: column;
        align-items: flex-start;
    }
    .track-order-id { font-size: var(--font-size-lg); }
}

/* Buy Checkout PIX — extraído de buy-checkout.php (tokenizado, dark mode auto) */
.bco-section {
    min-height: 80vh;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: var(--space-8) var(--space-4);
    background: var(--color-bg-primary);
}
.bco-wrap {
    width: 100%;
    max-width: 860px;
}

.bco-amount-header {
    text-align: center;
    margin-bottom: var(--space-6);
}
.bco-amount-label {
    display: block;
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: var(--space-1);
}
.bco-amount-value {
    display: block;
    font-size: 2.5rem;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    line-height: 1.1;
}
.bco-amount-items {
    display: inline-block;
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    margin-top: var(--space-1);
}

.bco-grid {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: var(--space-4);
    align-items: start;
}
@media (max-width: 640px) {
    .bco-grid { grid-template-columns: 1fr; }
    .bco-amount-value { font-size: 2rem; }
}

.bco-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--space-4);
}
.bco-card-center {
    max-width: 480px;
    margin: 0 auto;
    text-align: center;
    padding: var(--space-8) var(--space-6);
}
.bco-card-qr {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
}
.bco-card-code {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.bco-qr-badge {
    font-size: 0.6875rem;
    font-weight: var(--font-weight-semibold);
    color: var(--color-success-500);
    display: flex;
    align-items: center;
    gap: 0.3rem;
    background: color-mix(in srgb, var(--color-success-500) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-success-500) 25%, transparent);
    border-radius: var(--radius-full);
    padding: 0.2rem 0.6rem;
}
.bco-qr-wrap {
    background: var(--color-white);
    border-radius: var(--radius-md);
    padding: 0.625rem;
    display: inline-flex;
}
.bco-qr-img {
    width: 160px;
    height: 160px;
    display: block;
}
.bco-qr-hint {
    font-size: 0.6875rem;
    color: var(--color-text-muted);
    text-align: center;
    margin: 0;
}

.bco-section-label {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin: 0 0 var(--space-2);
    display: flex;
    align-items: center;
    gap: 0.4rem;
}
.bco-section-label i {
    color: var(--color-primary-500);
}

.bco-code-section {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}
.bco-code-wrap {
    position: relative;
}
.bco-code-input {
    width: 100%;
    padding: 0.625rem 0.875rem;
    font-family: var(--font-family-mono);
    font-size: var(--font-size-xs);
    color: var(--color-text-primary);
    background: var(--color-bg-secondary);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    outline: none;
    cursor: text;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.bco-btn-copy {
    width: 100%;
    justify-content: center;
}

.bco-steps {
    background: color-mix(in srgb, var(--color-text-primary) 3%, transparent);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-3) var(--space-4);
}
.bco-steps-list {
    margin: 0;
    padding-left: 1.25rem;
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    line-height: 1.8;
}
.bco-steps-list strong {
    color: var(--color-text-primary);
}

.bco-notice {
    display: flex;
    gap: var(--space-2);
    align-items: flex-start;
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    background: color-mix(in srgb, var(--color-info-500) 8%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-info-500) 20%, transparent);
    border-radius: var(--radius-md);
    padding: 0.625rem 0.875rem;
}
.bco-notice i {
    color: var(--color-primary-500);
    margin-top: 1px;
    flex-shrink: 0;
}

.bco-payment-status {
    border-radius: var(--radius-md);
    padding: var(--space-3) var(--space-4);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    text-align: center;
}
.bco-status-success {
    background: color-mix(in srgb, var(--color-success-500) 10%, transparent);
    color: var(--color-success-500);
    border: 1px solid color-mix(in srgb, var(--color-success-500) 25%, transparent);
}
.bco-status-pending {
    background: color-mix(in srgb, var(--color-warning-500) 8%, transparent);
    color: var(--color-warning-500);
    border: 1px solid color-mix(in srgb, var(--color-warning-500) 20%, transparent);
}
.bco-status-error {
    background: color-mix(in srgb, var(--color-danger-500) 8%, transparent);
    color: var(--color-danger-500);
    border: 1px solid color-mix(in srgb, var(--color-danger-500) 20%, transparent);
}

.bco-actions {
    display: flex;
    gap: var(--space-2);
    flex-wrap: wrap;
}
.bco-actions-center {
    justify-content: center;
    margin-top: var(--space-4);
}
.bco-btn-check {
    flex: 1;
    justify-content: center;
}
.bco-actions .ui-btn-secondary {
    flex-shrink: 0;
}

.bco-expiry {
    font-size: 0.6875rem;
    color: var(--color-text-muted);
    text-align: center;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
}

.bco-status-icon {
    width: 4rem;
    height: 4rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-2xl);
    margin: 0 auto var(--space-4);
}
.bco-icon-danger {
    background: color-mix(in srgb, var(--color-danger-500) 12%, transparent);
    color: var(--color-danger-500);
    border: 1px solid color-mix(in srgb, var(--color-danger-500) 25%, transparent);
}
.bco-icon-warning {
    background: color-mix(in srgb, var(--color-warning-500) 10%, transparent);
    color: var(--color-warning-500);
    border: 1px solid color-mix(in srgb, var(--color-warning-500) 20%, transparent);
}
.bco-icon-success {
    background: color-mix(in srgb, var(--color-success-500) 10%, transparent);
    color: var(--color-success-500);
    border: 1px solid color-mix(in srgb, var(--color-success-500) 25%, transparent);
}
.bco-title {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0 0 var(--space-2);
}
.bco-muted {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    margin: 0;
}

.bco-success-screen {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-4) 0;
    text-align: center;
}
.bco-success-screen .bco-section-label {
    justify-content: center;
    margin-top: var(--space-2);
}
.bco-success-screen-spaced { margin-top: var(--space-2); }
.bco-success-screen-actions { margin-top: var(--space-4); }

.bco-order-ids {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    width: 100%;
    margin: var(--space-2) 0;
}
.bco-order-id-box {
    background: var(--color-bg-secondary);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-3) var(--space-4);
    font-family: var(--font-family-mono);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-success-500);
    letter-spacing: 0.05em;
}

/* SMM badges (extraído do <style> embutido em buy-services.php — tokenizado) */
.smm-svc-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.4rem;
    font-size: 0.6em;
    font-weight: var(--font-weight-semibold);
    line-height: 1.4;
    border-radius: 0.2rem;
    white-space: nowrap;
    vertical-align: middle;
    margin-left: 0.1rem;
}
.smm-svc-country, .smm-svc-brazil, .smm-svc-mundiais {
    background: color-mix(in srgb, var(--color-orange-500) 10%, transparent);
    color: var(--color-orange-600);
    border: 1px solid color-mix(in srgb, var(--color-orange-500) 20%, transparent);
}
.smm-svc-mixed, .smm-svc-mistos, .smm-svc-real {
    background: color-mix(in srgb, var(--color-purple-500) 10%, transparent);
    color: var(--color-purple-500);
    border: 1px solid color-mix(in srgb, var(--color-purple-500) 20%, transparent);
}
.smm-svc-warranty, .smm-svc-garantia {
    background: color-mix(in srgb, var(--color-success-500) 10%, transparent);
    color: var(--color-success-600);
    border: 1px solid color-mix(in srgb, var(--color-success-500) 20%, transparent);
}
.smm-svc-no-warranty, .smm-svc-sem-garantia {
    background: color-mix(in srgb, var(--color-danger-500) 10%, transparent);
    color: var(--color-danger-600);
    border: 1px solid color-mix(in srgb, var(--color-danger-500) 20%, transparent);
}
.smm-svc-premium, .smm-svc-high-quality, .smm-svc-hq {
    background: color-mix(in srgb, var(--color-warning-500) 10%, transparent);
    color: var(--color-warning-700);
    border: 1px solid color-mix(in srgb, var(--color-warning-500) 20%, transparent);
}
.smm-svc-refill, .smm-svc-male {
    background: color-mix(in srgb, var(--color-info-500) 10%, transparent);
    color: var(--color-info-700);
    border: 1px solid color-mix(in srgb, var(--color-info-500) 20%, transparent);
}
.smm-svc-instant, .smm-svc-fast {
    background: color-mix(in srgb, var(--color-warning-400) 10%, transparent);
    color: var(--color-warning-600);
    border: 1px solid color-mix(in srgb, var(--color-warning-400) 20%, transparent);
}
.smm-svc-drip {
    background: color-mix(in srgb, var(--color-cyan-500) 10%, transparent);
    color: var(--color-cyan-700);
    border: 1px solid color-mix(in srgb, var(--color-cyan-500) 20%, transparent);
}
.smm-svc-nondrop, .smm-svc-non-drop {
    background: color-mix(in srgb, var(--color-emerald-600) 10%, transparent);
    color: var(--color-emerald-700);
    border: 1px solid color-mix(in srgb, var(--color-emerald-600) 20%, transparent);
}
.smm-svc-standard, .smm-svc-secondary, .smm-svc-bot, .smm-svc-slow {
    background: color-mix(in srgb, var(--color-slate-500) 10%, transparent);
    color: var(--color-slate-500);
    border: 1px solid color-mix(in srgb, var(--color-slate-500) 20%, transparent);
}
.smm-svc-female {
    background: color-mix(in srgb, var(--color-primary-500) 10%, transparent);
    color: var(--color-primary-600);
    border: 1px solid color-mix(in srgb, var(--color-primary-500) 20%, transparent);
}
.dark .smm-svc-badge { box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); }

/* Service list — Stats */
.sl-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-4);
    background: var(--pub-bg-card-solid, var(--color-bg-card));
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--space-3) var(--space-4);
    margin: 0;
}
.sl-stat {
    text-align: center;
    padding: 0.375rem;
}
.sl-stat-val {
    display: block;
    font-size: 1.375rem;
    font-weight: 800;
    color: var(--pub-accent, var(--color-primary-500));
    margin: 0;
}
.sl-stat-lbl {
    display: block;
    font-size: 0.6875rem;
    color: var(--color-text-muted);
    margin-top: 0.125rem;
}

/* Service list — Toolbar */
.sl-toolbar {
    display: flex;
    gap: var(--space-2);
    align-items: center;
    flex-wrap: wrap;
}
.sl-search-wrap {
    position: relative;
    flex: 1;
    min-width: 180px;
}
.sl-search-icon {
    position: absolute;
    left: 0.625rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    pointer-events: none;
}
.sl-search {
    width: 100%;
    padding: 0.5rem 0.625rem 0.5rem 2rem;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--pub-bg-card-solid, var(--color-bg-card));
    color: var(--color-text-primary);
    font-size: 0.8125rem;
    outline: none;
}
.sl-search:focus { border-color: var(--pub-accent, var(--color-primary-500)); }
.sl-search::placeholder { color: var(--color-text-muted); }
.sl-select {
    padding: 0.5rem 1.5rem 0.5rem 0.625rem;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--pub-bg-card-solid, var(--color-bg-card));
    color: var(--color-text-primary);
    font-size: var(--font-size-xs);
    outline: none;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath fill='%239ca3af' d='M5 7L1 3h8z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.375rem center;
}
.sl-select option {
    background: var(--pub-bg-card-solid, var(--color-bg-card));
    color: var(--color-text-primary);
}
.sl-results {
    font-size: 0.6875rem;
    color: var(--color-text-muted);
    margin-top: 0.375rem;
}

/* Service list — Platform header */
.sl-plat { margin-bottom: var(--space-6); }
.sl-plat-head {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    background: var(--pub-bg-card-solid, var(--color-bg-card));
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    border-bottom: 2px solid var(--pub-accent, var(--color-primary-500));
}
.sl-plat-head i {
    font-size: var(--font-size-base);
    color: var(--pub-accent, var(--color-primary-500));
}
.sl-plat-head h2 {
    font-size: 0.9375rem;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0;
}
.sl-plat-cnt {
    margin-left: auto;
    font-size: 0.6875rem;
    color: var(--color-text-muted);
    background: var(--color-bg-subtle);
    padding: 0.0625rem 0.375rem;
    border-radius: var(--radius-full);
}

/* Service list — Category */
.sl-cat {
    border: 1px solid var(--color-border);
    border-top: none;
}
.sl-cat:last-child {
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
    overflow: hidden;
}
button.sl-cat-head:hover { background: color-mix(in srgb, var(--pub-accent, var(--color-primary-500)) 8%, transparent); }
.sl-cat-name {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
}
.sl-cat-cnt {
    font-size: 0.625rem;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-muted);
    background: var(--color-bg-subtle);
    padding: 0 0.3rem;
    border-radius: var(--radius-full);
    min-width: 1.125rem;
    text-align: center;
}
.sl-cat-body { display: none; }
.sl-cat.open .sl-cat-body { display: block; }
.sl-cat-arrow {
    font-size: 0.5rem;
    color: var(--color-text-muted);
    transition: transform var(--transition-fast);
    margin-left: var(--space-2);
}
.sl-cat.open .sl-cat-arrow { transform: rotate(180deg); }

/* Service list — Table */
.sl-tbl-wrap { overflow-x: auto; }
.sl-tbl {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--font-size-xs);
}
.sl-tbl th {
    padding: 0.375rem 0.5rem;
    text-align: left;
    font-size: 0.625rem;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    border-bottom: 1px solid var(--color-border);
    background: var(--pub-bg-card-elevated, var(--color-bg-subtle));
}
.sl-tbl td {
    padding: 0.375rem 0.5rem;
    border-bottom: 1px solid color-mix(in srgb, var(--color-text-primary) 2%, transparent);
    vertical-align: middle;
}
.sl-tbl tr:hover {
    background: color-mix(in srgb, var(--pub-accent, var(--color-primary-500)) 6%, transparent);
}

/* Service list — Column widths */
.sl-col-id {
    width: 3rem;
    font-family: var(--font-family-mono);
    font-weight: var(--font-weight-bold);
    color: var(--pub-accent, var(--color-primary-500));
    white-space: nowrap;
    font-size: 0.6875rem;
}
.sl-col-name {
    color: var(--color-text-primary);
    line-height: 1.35;
}
.sl-col-price {
    width: 5.5rem;
    font-weight: var(--font-weight-bold);
    color: var(--color-emerald-400);
    white-space: nowrap;
    text-align: right;
}
.sl-col-min,
.sl-col-max {
    width: 3.5rem;
    color: var(--color-text-secondary);
    white-space: nowrap;
    text-align: right;
    font-size: 0.6875rem;
}
.sl-col-time {
    width: 5rem;
    color: var(--color-text-muted);
    white-space: nowrap;
    font-size: 0.625rem;
}
.sl-col-act {
    width: 2rem;
    text-align: center;
}

/* Service list — Buy button */
.sl-buy {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: var(--radius-sm);
    border: none;
    cursor: pointer;
    font-size: 0.625rem;
    background: color-mix(in srgb, var(--color-success-500) 10%, transparent);
    color: var(--color-success-500);
    transition: background var(--transition-fast), color var(--transition-fast);
    text-decoration: none;
}
.sl-buy:hover {
    background: var(--color-success-500);
    color: var(--color-white);
}

/* Service list — Tags (drip, refill) */
.sl-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.1rem 0.375rem;
    font-size: 0.575rem;
    font-weight: var(--font-weight-semibold);
    border-radius: 0.2rem;
    white-space: nowrap;
    vertical-align: middle;
    margin-left: 0.25rem;
}
.sl-tag i { font-size: 0.5rem; }
.sl-tag-drip {
    background: color-mix(in srgb, var(--color-cyan-500) 12%, transparent);
    color: var(--color-cyan-500);
    border: 1px solid color-mix(in srgb, var(--color-cyan-500) 20%, transparent);
}
.sl-tag-refill {
    background: color-mix(in srgb, var(--color-info-500) 12%, transparent);
    color: var(--color-info-500);
    border: 1px solid color-mix(in srgb, var(--color-info-500) 20%, transparent);
}

/* Service list — Loading + Empty */
.sl-loading {
    text-align: center;
    padding: var(--space-7);
    color: var(--color-text-muted);
    font-size: var(--font-size-sm);
}
.sl-empty {
    text-align: center;
    padding: var(--space-7);
    background: var(--pub-bg-card-solid, var(--color-bg-card));
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    color: var(--color-text-muted);
    font-size: var(--font-size-sm);
}

/* Service list — Responsive */
@media (max-width: 767px) {
    .sl-stats { grid-template-columns: repeat(2, 1fr); gap: var(--space-2); }
    .sl-toolbar { flex-direction: column; }
    .sl-search-wrap { min-width: 100%; }
    .sl-select { width: 100%; }
    .sl-col-time { display: none; }
}
@media (max-width: 479px) {
    .sl-stat-val { font-size: 1.125rem; }
    .sl-col-max { display: none; }
}

/* Support sidebar arrow icon margin (substitui Tailwind mr-1 inline) */
.sup-arrow-right { margin-right: var(--space-1); }

/* Required field asterisk (substitui style="color:var(--color-danger-500)" inline) */
.buy-label-required-mark { color: var(--color-danger-500); }

/* Inherit-color link (substitui style="color:inherit" em alerts) */
.buy-link-inherit { color: inherit; }

/* Contact Tracking — substitui <style> embutido com 12 hex hardcoded */
.pub-container-narrow-lg { max-width: 640px; }
.trk-input-wrap { position: relative; }
.trk-input-icon {
    position: absolute;
    left: var(--space-3);
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-text-muted);
    pointer-events: none;
}
.pub-input-with-icon { padding-left: 2.25rem; }
.trk-back-link { font-size: var(--font-size-sm); }

/* Result card */
.trk-result-card {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2xl);
    overflow: hidden;
}
.trk-result-header {
    padding: var(--space-5) var(--space-6);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-3);
    border-bottom: 1px solid var(--color-border);
}
.trk-result-code {
    font-family: var(--font-family-mono);
    font-weight: var(--font-weight-bold);
    font-size: var(--font-size-lg);
    color: var(--pub-accent, var(--color-primary-500));
    letter-spacing: 0.05em;
}
.trk-result-body { padding: var(--space-6); }
.trk-result-row {
    display: flex;
    gap: var(--space-4);
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--color-border);
    font-size: var(--font-size-sm);
}
.trk-result-row:last-child { border-bottom: none; }
.trk-result-label {
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-muted);
    min-width: 120px;
    flex-shrink: 0;
}
.trk-result-value {
    color: var(--color-text-primary);
    flex: 1;
    word-break: break-word;
}
.trk-result-value-pre { white-space: pre-wrap; line-height: 1.6; }

/* Badges (variants tokenizados — light + dark via cascata) */
.trk-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: var(--space-1) var(--space-3);
    border-radius: var(--radius-full);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
}
.trk-badge[data-status="new"]         { background: color-mix(in srgb, var(--color-primary-500) 12%, transparent);  color: var(--color-primary-500); }
.trk-badge[data-status="read"]        { background: color-mix(in srgb, var(--color-purple-500)  12%, transparent);  color: var(--color-purple-500); }
.trk-badge[data-status="in_progress"] { background: color-mix(in srgb, var(--color-warning-500) 12%, transparent);  color: var(--color-warning-500); }
.trk-badge[data-status="replied"]     { background: color-mix(in srgb, var(--color-success-500) 12%, transparent);  color: var(--color-success-500); }
.trk-badge[data-status="resolved"]    { background: color-mix(in srgb, var(--color-success-500) 12%, transparent);  color: var(--color-success-500); }
.trk-badge[data-status="archived"]    { background: color-mix(in srgb, var(--color-slate-500)   12%, transparent);  color: var(--color-slate-500); }

.dark .trk-badge[data-status="new"]         { background: color-mix(in srgb, var(--color-info-400)    18%, transparent);  color: var(--color-info-400); }
.dark .trk-badge[data-status="read"]        { background: color-mix(in srgb, var(--color-purple-400)  18%, transparent);  color: var(--color-purple-400); }
.dark .trk-badge[data-status="in_progress"] { background: color-mix(in srgb, var(--color-warning-400) 18%, transparent);  color: var(--color-warning-400); }
.dark .trk-badge[data-status="replied"]     { background: color-mix(in srgb, var(--color-success-400) 18%, transparent);  color: var(--color-success-400); }
.dark .trk-badge[data-status="resolved"]    { background: color-mix(in srgb, var(--color-success-400) 18%, transparent);  color: var(--color-success-400); }
.dark .trk-badge[data-status="archived"]    { background: color-mix(in srgb, var(--color-slate-400)   18%, transparent);  color: var(--color-slate-400); }

.trk-reply-box {
    margin-top: var(--space-4);
    padding: var(--space-4) var(--space-5);
    background: color-mix(in srgb, var(--pub-accent, var(--color-primary-500)) 6%, transparent);
    border-radius: var(--radius-xl);
    border-left: 3px solid var(--pub-accent, var(--color-primary-500));
}
.trk-reply-label {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--pub-accent, var(--color-primary-500));
    margin-bottom: var(--space-2);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.trk-reply-text {
    font-size: var(--font-size-sm);
    color: var(--color-text-primary);
    line-height: 1.7;
    white-space: pre-wrap;
}

/* Error card (no-results / lookup falhou) */
.trk-error-card { padding: var(--space-6); text-align: center; }
.trk-error-icon-wrap {
    margin: 0 auto var(--space-4);
    width: 3rem;
    height: 3rem;
}
.trk-error-title {
    color: var(--color-text-primary);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--space-2);
}
.trk-error-msg {
    color: var(--color-text-muted);
    font-size: var(--font-size-sm);
}

@media (max-width: 479px) {
    .trk-result-row { flex-direction: column; gap: var(--space-1); }
    .trk-result-label { min-width: auto; }
}

/* Demo admin (OTP) — substitui inline styles do demo-admin.php */
.pub-demo-card { padding: var(--space-7); }
.pub-demo-step-title {
    font-weight: var(--font-weight-bold);
    font-size: var(--font-size-xl);
    margin-bottom: 0.375rem;
    color: var(--color-text-primary);
    letter-spacing: -0.01em;
}
.pub-demo-step-desc {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    margin-bottom: var(--space-6);
    line-height: var(--line-height-relaxed);
}
.pub-demo-form {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}
.pub-demo-label {
    display: block;
    font-size: 0.8125rem;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: 0.375rem;
}
.pub-demo-email-display { color: var(--color-text-primary); }
.pub-demo-otp-input {
    text-align: center;
    font-size: var(--font-size-2xl);
    letter-spacing: 0.5rem;
    font-weight: var(--font-weight-bold);
}
.pub-demo-back-icon { margin-right: var(--space-1); }

/* Info cards grid */
.pub-demo-info-grid {
    display: grid;
    gap: var(--space-4);
    margin-top: var(--space-7);
    list-style: none;
    padding: 0;
}
@media (min-width: 640px) {
    .pub-demo-info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.pub-demo-info-card { padding: var(--space-5); }
.pub-demo-info-header {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-3);
}
.pub-demo-info-icon {
    width: 36px;
    height: 36px;
    font-size: var(--font-size-sm);
    flex-shrink: 0;
}
.pub-demo-info-title {
    font-weight: var(--font-weight-bold);
    font-size: 0.8125rem;
    color: var(--color-text-primary);
}
.pub-demo-info-desc {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    line-height: var(--line-height-normal);
}

/* Roadmap arch heading icon (substitui Tailwind arbitrary text-[var(--pub-accent)]) */
.pub-rm-arch-icon { color: var(--pub-accent, var(--color-primary-500)); }

/* Roadmap invest benefits + reasons */
.pub-rm-benefit-icon { color: var(--pub-success, var(--color-success-500)); flex-shrink: 0; }
.pub-rm-benefit-text { font-size: var(--font-size-sm); color: var(--color-text-primary); }
.pub-rm-reason-title { font-size: var(--font-size-sm); font-weight: var(--font-weight-bold); color: var(--color-text-primary); }
.pub-rm-reason-card[data-variant="accent"]  .pub-rm-reason-icon { color: var(--pub-accent, var(--color-primary-500)); }
.pub-rm-reason-card[data-variant="success"] .pub-rm-reason-icon { color: var(--pub-success, var(--color-success-500)); }
.pub-rm-reason-card[data-variant="info"]    .pub-rm-reason-icon { color: var(--pub-info, var(--color-info-500)); }
.pub-rm-reason-card[data-variant="warning"] .pub-rm-reason-icon { color: var(--pub-warning, var(--color-warning-500)); }

/* Roadmap simulator table dividend cells */
.pub-rm-sim-div {
    font-weight: var(--font-weight-semibold);
    color: var(--pub-success, var(--color-success-500));
}

/* Roadmap invest hero + KPI color variants */
.pub-rm-invest-hero-card {
    background: var(--pub-gradient-hero, var(--pub-hero-gradient, linear-gradient(135deg, var(--color-primary-500), var(--color-purple-500))));
    border: none;
    overflow: hidden;
}
.pub-rm-stat-value-primary { color: var(--color-text-primary); }
.pub-rm-stat-value-accent  { color: var(--pub-accent, var(--color-primary-500)); }
.pub-rm-stat-value-info    { color: var(--pub-info, var(--color-info-500)); }
.pub-rm-stat-value-success { color: var(--pub-success, var(--color-success-500)); }

.pub-rm-invest-progress-title {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
}
.pub-rm-invest-progress-pct {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    color: var(--pub-accent, var(--color-primary-500));
}
.pub-rm-invest-progress-fill { width: var(--rm-score, 0%); }
.pub-rm-invest-shares-meta {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}
.pub-rm-invest-details-border { border-top: 1px solid var(--color-border); }

/* Roadmap methodology items (variants) */
.pub-rm-method-item[data-variant="accent"]  .pub-rm-method-icon { color: var(--pub-accent, var(--color-primary-500)); }
.pub-rm-method-item[data-variant="info"]    .pub-rm-method-icon { color: var(--pub-info, var(--color-info-500)); }
.pub-rm-method-item[data-variant="purple"]  .pub-rm-method-icon { color: var(--pub-purple, var(--color-purple-500)); }
.pub-rm-method-item[data-variant="success"] .pub-rm-method-icon { color: var(--pub-success, var(--color-success-500)); }
.pub-rm-method-item[data-variant="warning"] .pub-rm-method-icon { color: var(--pub-warning, var(--color-warning-500)); }
.pub-rm-method-strong { color: var(--color-text-primary); }

/* Roadmap category distribution rows */
.pub-rm-cat-row[data-variant="info"]     { --rm-color: var(--pub-info, var(--color-info-500)); }
.pub-rm-cat-row[data-variant="purple"]   { --rm-color: var(--pub-purple, var(--color-purple-500)); }
.pub-rm-cat-row[data-variant="accent"]   { --rm-color: var(--pub-accent, var(--color-primary-500)); }
.pub-rm-cat-row[data-variant="accent-2"] { --rm-color: var(--pub-accent-2, var(--color-indigo-500)); }
.pub-rm-cat-row[data-variant="success"]  { --rm-color: var(--pub-success, var(--color-success-500)); }
.pub-rm-cat-row[data-variant="muted"]    { --rm-color: var(--color-text-muted); }
.pub-rm-cat-fill { background: var(--rm-color); width: var(--rm-score, 0%); }
.pub-rm-cat-meta { font-weight: var(--font-weight-semibold); color: var(--color-text-secondary); }

/* Roadmap status inline pills (tabela custo por etapa) */
.pub-rm-status-inline--done     { color: var(--pub-success, var(--color-success-500)); }
.pub-rm-status-inline--progress { color: var(--pub-warning, var(--color-warning-500)); }
.pub-rm-status-inline--planned  { color: var(--color-text-muted); }
.pub-rm-td-total-cell {
    text-align: right;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    font-variant-numeric: tabular-nums;
}

/* Roadmap criteria cards (color set dynamically via JS from data-criteria-color) */
.pub-rm-criteria-card {
    border-left-color: var(--rm-criteria-color, var(--pub-accent, var(--color-primary-500)));
}
.pub-rm-criteria-icon {
    width: 2rem;
    height: 2rem;
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--rm-criteria-color, var(--pub-accent)) 15%, transparent);
    flex-shrink: 0;
}
.pub-rm-criteria-icon-svg {
    font-size: var(--font-size-sm);
    color: var(--rm-criteria-color, var(--pub-accent, var(--color-primary-500)));
}
.pub-rm-criteria-title {
    font-weight: var(--font-weight-bold);
    font-size: var(--font-size-sm);
    color: var(--color-text-primary);
}
.pub-rm-criteria-weight {
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-muted);
}
.pub-rm-criteria-score {
    font-weight: 800;
    color: var(--rm-criteria-color, var(--pub-accent, var(--color-primary-500)));
}
.pub-rm-criteria-fill {
    background: var(--rm-criteria-color, var(--pub-accent, var(--color-primary-500)));
    width: var(--rm-score, 0%);
}
.pub-rm-criteria-contribute {
    font-size: 0.625rem;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-muted);
    white-space: nowrap;
}

.pub-rm-summary-icon { color: var(--pub-accent, var(--color-primary-500)); margin-right: 0.375rem; }

/* Roadmap complexity factor rows */
.pub-rm-factor-row[data-variant="purple"]   { --rm-factor-color: var(--pub-purple, var(--color-purple-500)); }
.pub-rm-factor-row[data-variant="info"]     { --rm-factor-color: var(--pub-info, var(--color-info-500)); }
.pub-rm-factor-row[data-variant="success"]  { --rm-factor-color: var(--pub-success, var(--color-success-500)); }
.pub-rm-factor-row[data-variant="accent-2"] { --rm-factor-color: var(--pub-accent-2, var(--color-indigo-500)); }
.pub-rm-factor-row[data-variant="accent"]   { --rm-factor-color: var(--pub-accent, var(--color-primary-500)); }
.pub-rm-factor-row { border-left-color: var(--rm-factor-color); }
.pub-rm-factor-row .pub-rm-factor-pct { color: var(--rm-factor-color); }

/* Roadmap valuation hero + stat boxes */
.pub-rm-valuation-hero { border: 2px solid var(--pub-accent, var(--color-primary-500)); }
.pub-rm-valuation-icon-svg {
    color: var(--pub-accent, var(--color-primary-500));
    font-size: var(--font-size-base);
}
.pub-rm-score-strong { color: var(--pub-accent, var(--color-primary-500)); }
.pub-rm-stat-value-info    { color: var(--pub-info, var(--color-info-500)); }
.pub-rm-stat-value-purple  { color: var(--pub-purple, var(--color-purple-500)); }
.pub-rm-stat-value-success { color: var(--pub-success, var(--color-success-500)); }

/* Roadmap growth plan cards */
.pub-rm-growth-card--featured { border-color: var(--pub-accent, var(--color-primary-500)); }
.pub-rm-growth-card .pub-rm-flag-icon {
    width: 2rem;
    height: 2rem;
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--pub-bg-alt, var(--color-bg-subtle));
    color: var(--color-text-muted);
    flex-shrink: 0;
}
.pub-rm-growth-card--featured .pub-rm-flag-icon {
    background: var(--pub-accent, var(--color-primary-500));
    color: var(--color-white);
}
.pub-rm-flag-icon-svg { font-size: var(--font-size-xs); }
.pub-rm-growth-focus {
    font-size: var(--font-size-xs);
    color: var(--pub-accent, var(--color-primary-500));
    font-weight: var(--font-weight-semibold);
}

/* Roadmap priority rows (improvements) */
.pub-rm-prio-row[data-priority="high"]   { --rm-prio-color: var(--pub-accent-2, var(--color-indigo-500)); }
.pub-rm-prio-row[data-priority="medium"] { --rm-prio-color: var(--pub-info, var(--color-info-500)); }
.pub-rm-prio-row[data-priority="low"]    { --rm-prio-color: var(--color-text-muted); }
.pub-rm-prio-row .pub-rm-prio-dot   { background: var(--rm-prio-color); }
.pub-rm-prio-row .pub-rm-prio-label { color: var(--rm-prio-color); }
.pub-rm-effort { color: var(--color-text-muted); }

/* Roadmap suggestion vote */
.pub-rm-vote-icon { color: var(--pub-accent, var(--color-primary-500)); font-size: var(--font-size-base); }
.pub-rm-vote-count { font-size: var(--font-size-xs); font-weight: var(--font-weight-bold); color: var(--color-text-primary); }

/* Roadmap security rows */
.pub-rm-security-row[data-status="done"]    .pub-rm-security-status-icon { color: var(--pub-accent, var(--color-primary-500)); }
.pub-rm-security-row[data-status="partial"] .pub-rm-security-status-icon { color: var(--pub-warning, var(--color-warning-500)); }
.pub-rm-security-row[data-status="planned"] .pub-rm-security-status-icon { color: var(--color-text-muted); }

.pub-rm-security-level[data-level="danger"]   { color: var(--pub-danger, var(--color-danger-500)); }
.pub-rm-security-level[data-level="accent-2"] { color: var(--pub-accent-2, var(--color-indigo-500)); }
.pub-rm-security-level[data-level="warning"]  { color: var(--pub-warning, var(--color-warning-500)); }
.pub-rm-security-level[data-level="muted"]    { color: var(--color-text-muted); }

/* Roadmap AI architecture cards */
.pub-rm-ai-arch-card { --rm-color: var(--pub-accent, var(--color-primary-500)); }
.pub-rm-ai-arch-card[data-variant="purple"]  { --rm-color: var(--pub-purple, var(--color-purple-500)); }
.pub-rm-ai-arch-card[data-variant="success"] { --rm-color: var(--pub-success, var(--color-success-500)); }
.pub-rm-ai-arch-card[data-variant="warning"] { --rm-color: var(--pub-warning, var(--color-warning-500)); }
.pub-rm-ai-arch-card[data-variant="info"]    { --rm-color: var(--pub-info, var(--color-info-500)); }
.pub-rm-ai-arch-icon {
    width: 3rem;
    height: 3rem;
    border-radius: var(--radius-xl);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto var(--space-3);
    background: color-mix(in srgb, var(--rm-color) 15%, transparent);
    color: var(--rm-color);
    font-size: var(--font-size-lg);
}
.pub-rm-ai-arch-title {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: var(--space-1);
}
.pub-rm-ai-arch-desc {
    font-size: 0.6875rem;
    color: var(--color-text-muted);
}

/* Roadmap AI table cells + status pills */
.pub-rm-table-td-name {
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
}
.pub-rm-table-td-name-icon {
    color: var(--pub-purple, var(--color-purple-500));
    font-size: 0.625rem;
    margin-right: 0.25rem;
}
.pub-rm-table-td-muted { color: var(--color-text-muted); }
.pub-rm-table-td-current {
    font-weight: var(--font-weight-bold);
    color: var(--pub-accent, var(--color-primary-500));
}
.pub-rm-status-pill {
    font-size: 0.625rem;
    font-weight: var(--font-weight-bold);
    padding: 0.125rem var(--space-2);
    border-radius: var(--radius-full);
    display: inline-block;
}
.pub-rm-status-pill-active {
    background: color-mix(in srgb, var(--pub-success, var(--color-success-500)) 15%, transparent);
    color: var(--pub-success, var(--color-success-500));
}

/* Roadmap AI capability cards */
.pub-rm-ai-cap-icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: color-mix(in srgb, var(--pub-purple, var(--color-purple-500)) 15%, transparent);
    color: var(--pub-purple, var(--color-purple-500));
    font-size: var(--font-size-sm);
}
.pub-rm-ai-cap-title {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
}
.pub-rm-ai-cap-badge {
    font-size: 0.5625rem;
    font-weight: var(--font-weight-bold);
    padding: 0.125rem 0.375rem;
    border-radius: var(--radius-full);
}
.pub-rm-ai-cap-badge[data-variant="success"] {
    background: color-mix(in srgb, var(--pub-success, var(--color-success-500)) 15%, transparent);
    color: var(--pub-success, var(--color-success-500));
}
.pub-rm-ai-cap-badge[data-variant="warning"] {
    background: color-mix(in srgb, var(--pub-warning, var(--color-warning-500)) 15%, transparent);
    color: var(--pub-warning, var(--color-warning-500));
}
.pub-rm-ai-cap-desc {
    font-size: 0.6875rem;
    color: var(--color-text-muted);
    line-height: var(--line-height-relaxed);
}

/* Roadmap integration highlights (variants — substitui Tailwind color-mix inline) */
.pub-rm-int-highlight { --rm-int-hl-color: var(--pub-accent, var(--color-primary-500)); }
.pub-rm-int-highlight[data-variant="success"]  { --rm-int-hl-color: var(--pub-success, var(--color-success-500)); }
.pub-rm-int-highlight[data-variant="purple"]   { --rm-int-hl-color: var(--pub-purple, var(--color-purple-500)); }
.pub-rm-int-highlight[data-variant="info"]     { --rm-int-hl-color: var(--pub-info, var(--color-info-500)); }
.pub-rm-int-highlight[data-variant="accent"]   { --rm-int-hl-color: var(--pub-accent, var(--color-primary-500)); }
.pub-rm-int-highlight[data-variant="warning"]  { --rm-int-hl-color: var(--pub-warning, var(--color-warning-500)); }
.pub-rm-int-highlight[data-variant="accent-2"] { --rm-int-hl-color: var(--pub-accent-2, var(--color-indigo-500)); }
.pub-rm-int-highlight-header {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-3);
}
.pub-rm-int-highlight-icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--rm-int-hl-color) 15%, transparent);
    color: var(--rm-int-hl-color);
    font-size: var(--font-size-sm);
    flex-shrink: 0;
}
.pub-rm-int-highlight-title {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
}
.pub-rm-int-highlight-desc {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
}

/* Roadmap integrations summary cards (substitui inline color + Tailwind arbitrary) */
.pub-rm-int-card { --rm-int-color: var(--pub-accent, var(--color-primary-500)); }
.pub-rm-int-icon-wrap {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto var(--space-2);
    background: color-mix(in srgb, var(--rm-int-color) 15%, transparent);
}
.pub-rm-int-icon {
    font-size: var(--font-size-sm);
    color: var(--rm-int-color);
}
.pub-rm-int-title {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: var(--space-1);
}
.pub-rm-int-count {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
    color: var(--rm-int-color);
    display: inline-block;
}
.pub-rm-int-providers {
    font-size: 0.625rem;
    color: var(--color-text-muted);
    margin-top: var(--space-1);
    line-height: var(--line-height-tight);
}

/* Roadmap plugin tables count (substitui Tailwind arbitrary text-[var(--pub-text-secondary)]) */
.pub-rm-plugin-tables {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
}

/* Roadmap timeline items (variants done/progress/planned) */
.pub-rm-timeline-item[data-variant="done"]     { --rm-color: var(--pub-accent, var(--color-primary-500)); }
.pub-rm-timeline-item[data-variant="progress"] { --rm-color: var(--pub-info, var(--color-info-500)); }
.pub-rm-timeline-item[data-variant="planned"]  { --rm-color: var(--color-text-muted); }
.pub-rm-timeline-item .pub-rm-timeline-dot  { background: var(--rm-color); }
.pub-rm-timeline-item .pub-rm-feature-check { color: var(--rm-color); }

.pub-rm-bar-track-info .pub-rm-bar-fill {
    background: var(--pub-info, var(--color-info-500));
    width: var(--rm-score, 0%);
}

/* Roadmap stat box label (substitui Tailwind arbitrary text-[var(--pub-text-muted)]) */
.pub-rm-stat-label {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-muted);
    margin-top: 0.125rem;
}

/* Roadmap score bars + pillars — variant tokens (substitui inline style color) */
.pub-rm-score-col[data-variant="success"] { --rm-color: var(--pub-accent, var(--color-primary-500)); }
.pub-rm-score-col[data-variant="info"]    { --rm-color: var(--color-text-secondary); }
.pub-rm-score-col[data-variant="muted"]   { --rm-color: var(--color-text-muted); }
.pub-rm-score-col .pub-rm-score-label { color: var(--rm-color); }
.pub-rm-score-col .pub-rm-score-bar   { background: var(--rm-color); height: var(--rm-height, 0%); }

.pub-rm-pillar[data-variant="success"] { --rm-color: var(--pub-accent, var(--color-primary-500)); }
.pub-rm-pillar[data-variant="info"]    { --rm-color: var(--pub-info, var(--color-info-500)); }
.pub-rm-pillar[data-variant="warning"] { --rm-color: var(--pub-warning, var(--color-warning-500)); }
.pub-rm-pillar .pub-rm-pillar-score { color: var(--rm-color); }
.pub-rm-pillar .pub-rm-bar-fill     { background: var(--rm-color); width: var(--rm-score, 0%); }

/* Roadmap stats bar (substitui Tailwind arbitrary) */
.pub-roadmap-stats {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-8);
    margin: var(--space-7) 0 0;
    padding: 0;
    list-style: none;
}
.pub-roadmap-stat { text-align: center; }
.pub-roadmap-stat-value {
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--pub-accent, var(--color-primary-500));
    letter-spacing: -0.025em;
    margin: 0;
    line-height: var(--line-height-tight);
}
.pub-roadmap-stat-suffix {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
}
.pub-roadmap-stat-label {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    font-weight: var(--font-weight-medium);
    margin: 0;
}

/* Cookie preferences row divider + consent toggle track */
.pub-cookie-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--color-border);
}
.pub-cookie-row:last-of-type { border-bottom: 0; }
.pub-cookie-row-content { flex: 1; margin-right: var(--space-4); }
.pub-cookie-toggle-track {
    width: 2.5rem;
    height: 1.25rem;
    background: var(--color-text-muted);
    border-radius: var(--radius-full);
    transition: background-color var(--transition-fast);
    position: relative;
}
.pub-cookie-toggle-track::after {
    content: '';
    position: absolute;
    top: 0.125rem;
    left: 0.125rem;
    width: 1rem;
    height: 1rem;
    background: var(--color-white);
    border-radius: var(--radius-full);
    transition: transform var(--transition-fast);
}
.pub-cookie-toggle input:checked + .pub-cookie-toggle-track {
    background: var(--pub-accent);
}
.pub-cookie-toggle input:checked + .pub-cookie-toggle-track::after {
    transform: translateX(1.25rem);
}
.pub-cookie-toggle input:focus-visible + .pub-cookie-toggle-track {
    box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring-color);
}
.pub-cookie-toggle input:disabled + .pub-cookie-toggle-track {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Rights card (subtle background item) */
.pub-rights-item {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-4);
    border-radius: var(--radius-xl);
    background: var(--color-bg-subtle);
    border: 1px solid var(--color-border);
}

/* ============================================
   PUBLIC HONEYPOT — pub-honeypot
   Off-screen input to trap bots (replaces inline styles)
   ============================================ */
.pub-honeypot {
    position: absolute;
    left: -9999px;
    top: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* Full-width button helper used across public pages */
.pub-btn-block { width: 100%; }

/* ============================================
   PUBLIC PAGINATION — pub-pagination
   Centralized styles (replaces inline styles from testimonials/blog/etc)
   ============================================ */
.pub-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: var(--space-7);
}

/* ============================================
   PUBLIC EMPTY STATE — pub-empty-state
   Centralized for consistent empty sections across public pages
   ============================================ */
.pub-empty-state {
    text-align: center;
    padding: var(--space-8) 0;
}
.pub-empty-state-icon {
    font-size: var(--font-size-2xl);
    color: var(--color-text-muted);
    margin-bottom: var(--space-4);
}
.pub-empty-state-title {
    font-size: var(--font-size-lg);
    color: var(--color-text-secondary);
    margin: 0;
}
.pub-empty-state-desc {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    margin-top: var(--space-2);
}

/* ============================================
   PUBLIC MODAL — pub-modal (tokenized, replaces inline styles)
   ============================================ */
.pub-modal {
    position: fixed;
    inset: 0;
    z-index: var(--z-modal-backdrop);
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(var(--blur-sm));
    display: none;
    align-items: center;
    justify-content: center;
    padding: var(--space-4);
}
.pub-modal[aria-hidden="false"],
.pub-modal.is-open {
    display: flex;
}
.pub-modal-dialog {
    width: 100%;
    max-width: 28rem;
    max-height: calc(100vh - 2 * var(--space-4));
    overflow-y: auto;
    z-index: var(--z-modal);
}
.pub-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--space-6);
    gap: var(--space-3);
}
.pub-modal-title {
    font-weight: var(--font-weight-bold);
    font-size: var(--font-size-lg);
    color: var(--color-text-primary);
    margin: 0;
}
.pub-modal-body {
    padding: var(--space-7);
}
.pub-modal-form {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}
.pub-modal-footnote {
    font-size: 0.6875rem;
    color: var(--color-text-muted);
    text-align: center;
    line-height: var(--line-height-normal);
    margin: 0;
}

/* Toast notification (used by testimonials / other public pages) */
.pub-toast {
    position: fixed;
    top: var(--space-6);
    right: var(--space-6);
    z-index: var(--z-toast);
    padding: var(--space-3) var(--space-5);
    border-radius: var(--radius-lg);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    max-width: 22rem;
    box-shadow: var(--shadow-md);
    color: var(--color-white);
    background: var(--color-success-500);
    transition: opacity var(--transition-slow);
}
.pub-toast--danger { background: var(--color-danger-500); }
.pub-toast--warning { background: var(--color-warning-500); color: var(--color-text-primary); }

/* ============================================
   HTTP ERROR PAGES — ui-err-*
   Consumed by public/errors/template.php (all 12 HTTP error pages)
   Variants via [data-err-variant="X"]: warning/danger/neutral/primary
   ============================================ */

/* Per-variant tokens — resolved to design-tokens palettes */
.ui-err-page[data-err-variant="warning"] {
    --err-accent-from: var(--color-warning-500);
    --err-accent-to: var(--color-orange-500);
    --err-accent-shadow: rgba(245, 158, 11, 0.3);
}
.ui-err-page[data-err-variant="danger"] {
    --err-accent-from: var(--color-danger-500);
    --err-accent-to: var(--color-primary-500);
    --err-accent-shadow: rgba(239, 68, 68, 0.3);
}
.ui-err-page[data-err-variant="neutral"] {
    --err-accent-from: var(--color-slate-500);
    --err-accent-to: var(--color-slate-600);
    --err-accent-shadow: rgba(100, 116, 139, 0.3);
}
.ui-err-page[data-err-variant="primary"] {
    --err-accent-from: var(--color-primary-500);
    --err-accent-to: var(--color-indigo-500);
    --err-accent-shadow: rgba(236, 72, 153, 0.3);
}
.dark .ui-err-page[data-err-variant="neutral"] {
    --err-accent-from: var(--color-slate-400);
    --err-accent-to: var(--color-slate-500);
}
.dark .ui-err-page[data-err-variant="danger"] {
    --err-accent-from: var(--color-danger-400);
    --err-accent-to: var(--color-primary-400);
}
.dark .ui-err-page[data-err-variant="warning"] {
    --err-accent-from: var(--color-warning-400);
    --err-accent-to: var(--color-orange-400);
}

.ui-err-card {
    position: relative;
    padding: var(--space-6) var(--space-5);
}
@media (min-width: 640px) {
    .ui-err-card { padding: var(--space-7); }
}

.ui-err-theme-toggle {
    position: absolute;
    top: var(--space-4);
    right: var(--space-4);
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    justify-content: center;
    backdrop-filter: blur(var(--blur-sm));
}
.ui-err-theme-toggle svg {
    width: var(--icon-md);
    height: var(--icon-md);
}

.ui-err-body { text-align: center; }

.ui-err-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 5rem;
    height: 5rem;
    border-radius: var(--radius-2xl);
    margin-bottom: var(--space-6);
    background: linear-gradient(135deg, var(--err-accent-from), var(--err-accent-to));
    box-shadow: 0 10px 15px -3px var(--err-accent-shadow);
}
.ui-err-icon svg {
    width: var(--icon-2xl);
    height: var(--icon-2xl);
    color: var(--color-white);
}

.ui-err-code {
    font-size: clamp(var(--font-size-3xl), 8vw, 3.75rem);
    font-weight: var(--font-weight-bold);
    line-height: 1;
    margin-bottom: var(--space-2);
    background: linear-gradient(to right, var(--err-accent-from), var(--err-accent-to));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.ui-err-title { margin-bottom: var(--space-3); }

.ui-err-description {
    margin-bottom: var(--space-6);
    line-height: var(--line-height-relaxed);
}

.ui-err-countdown {
    margin-bottom: var(--space-6);
    padding: var(--space-4);
    background: var(--color-bg-muted);
    border-radius: var(--radius-xl);
}
.ui-err-countdown-label {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    margin-bottom: var(--space-2);
    text-align: center;
}
.ui-err-countdown-display {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-3);
}
.ui-err-countdown-item { text-align: center; }
.ui-err-countdown-value {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--err-accent-from);
    font-variant-numeric: tabular-nums;
    line-height: 1;
}
.ui-err-countdown-unit {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    margin-top: 0.125rem;
}
.ui-err-countdown-sep {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-disabled);
    align-self: flex-start;
    line-height: 1.2;
}
.ui-err-progress { margin-top: var(--space-3); }
.ui-err-progress .ui-pub-progress-fill {
    background: linear-gradient(90deg, var(--err-accent-from), var(--err-accent-to));
}

.ui-err-actions {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}
@media (min-width: 640px) {
    .ui-err-actions { flex-direction: row; }
    .ui-err-actions > * { flex: 1; }
}

.ui-err-meta {
    margin-top: var(--space-6);
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
}
@media (min-width: 640px) {
    .ui-err-meta { flex-direction: row; }
}

.ui-err-code-id {
    padding: 0.125rem var(--space-2);
    background: var(--color-bg-subtle);
    border-radius: var(--radius-sm);
    color: var(--color-text-secondary);
    font-family: var(--font-family-mono);
    font-size: var(--font-size-xs);
}

.ui-err-footer {
    margin-top: var(--space-6);
    text-align: center;
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
}

/* ============================================
   PUBLIC LAYOUT HELPERS (extraídos de inline styles — request.php)
   ============================================ */
.pub-text-center { text-align: center; }
.pub-mx-auto { margin-left: auto; margin-right: auto; }
.pub-justify-center { justify-content: center; }
.pub-mt-1 { margin-top: 1rem; }
.pub-mt-2 { margin-top: 2rem; }

.stats-grid-4 { grid-template-columns: repeat(4, 1fr); }
.feat-grid-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1023px) {
    .stats-grid-4 { grid-template-columns: repeat(2, 1fr); }
    .feat-grid-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 479px) {
    .stats-grid-4 { grid-template-columns: 1fr; }
    .feat-grid-4 { grid-template-columns: 1fr; }
}

/* ============================================
   RIDE REQUEST PAGE (extraído de request.php)
   ============================================ */
.rdr-form-wrapper {
    max-width: 48rem;
    margin: 0 auto;
    background: var(--pub-bg-card);
    border: 1px solid var(--pub-border);
    border-radius: var(--pub-radius-2xl);
    padding: 2.5rem;
    box-shadow: var(--pub-shadow-lg);
}
.rdr-form-header { text-align: center; margin-bottom: 2rem; }
.rdr-form-header h2 {
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--pub-text);
    letter-spacing: -.02em;
    margin-bottom: .5rem;
}
.rdr-form-header p { color: var(--pub-text-muted); font-size: .9375rem; }
.rdr-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.rdr-form-group { display: flex; flex-direction: column; gap: .5rem; }
.rdr-form-group-spaced { margin-top: 1rem; }
.rdr-form-group-spaced-lg { margin-top: 1.5rem; }
.rdr-form-label {
    font-size: .8125rem;
    font-weight: 600;
    color: var(--pub-text);
    display: flex;
    align-items: center;
    gap: .375rem;
}
.rdr-form-label i { font-size: .75rem; color: var(--pub-text-muted); }
.rdr-label-icon-accent { color: var(--pub-accent) !important; }
.rdr-label-icon-accent-alt { color: var(--pub-accent-alt, var(--pub-accent)) !important; }
.rdr-label-icon-success { color: var(--color-success-500) !important; }
.rdr-form .pub-input {
    border-color: var(--pub-border-hover, color-mix(in srgb, var(--color-gray-400) 30%, transparent));
    border-radius: var(--pub-radius-lg, .5rem);
}
.rdr-form .pub-input:focus {
    border-color: var(--pub-accent);
    box-shadow: 0 0 0 3px var(--pub-accent-glow, color-mix(in srgb, var(--pub-accent) 15%, transparent));
}
.rdr-form select.pub-input { padding-right: 2.75rem; }
.rdr-form-actions {
    margin-top: 2rem;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}
.rdr-submit-btn { width: 100%; max-width: 24rem; }
.rdr-form-hint {
    font-size: .75rem;
    color: var(--pub-text-muted);
    display: flex;
    align-items: center;
    gap: .375rem;
}

.rdr-steps-grid {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
    margin: 0;
}
.rdr-step {
    flex: 1;
    min-width: 180px;
    max-width: 220px;
    text-align: center;
    position: relative;
    list-style: none;
}
.rdr-step-number {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    background: var(--pub-gradient-1);
    color: var(--color-white, #fff);
    font-weight: 700;
    font-size: .75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto .75rem;
}
.rdr-step-icon {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: var(--pub-radius-xl);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    margin: 0 auto .875rem;
}
.rdr-step h3 {
    font-size: .9375rem;
    font-weight: 700;
    color: var(--pub-text);
    margin-bottom: .375rem;
}
.rdr-step p { font-size: .8125rem; color: var(--pub-text-muted); line-height: 1.6; }
.rdr-step-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--pub-text-dim);
    font-size: .875rem;
    padding-top: 3rem;
    list-style: none;
}

.rdr-vehicle-card {
    cursor: pointer;
    transition: all var(--pub-transition-fast);
    background: transparent;
    border: 1px solid var(--pub-border);
    text-align: left;
    font: inherit;
    color: inherit;
    width: 100%;
}
.rdr-vehicle-card:hover { border-color: var(--pub-accent); }
.rdr-vehicle-card:focus-visible {
    outline: 2px solid var(--pub-accent);
    outline-offset: 2px;
}
.rdr-vehicle-card.active,
.rdr-vehicle-card[aria-checked="true"] {
    border-color: var(--pub-accent);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--pub-accent) 20%, transparent);
}

@media (max-width: 767px) {
    .rdr-form-grid { grid-template-columns: 1fr; }
    .rdr-form-wrapper { padding: 1.5rem; }
    .rdr-steps-grid { flex-direction: column; align-items: center; }
    .rdr-step { max-width: 100%; }
    .rdr-step-arrow { transform: rotate(90deg); padding-top: 0; }
}
@media (max-width: 479px) {
    .rdr-form-wrapper { padding: 1.25rem; border-radius: var(--pub-radius-xl); }
    .rdr-form-header h2 { font-size: 1.375rem; }
}

/* ============================================
   SEARCH NOW PAGE — extraído de search-now.php
   ============================================ */

/* Helpers públicos adicionais */
.pub-container-narrow-wide { max-width: 768px; }
.pub-hero__title-xl { font-size: 2.5rem; }
@media (max-width: 479px) { .pub-hero__title-xl { font-size: 2rem; } }

.srch-hero-desc {
    font-size: 1rem;
    color: color-mix(in srgb, var(--color-slate-100, #f1f5f9) 65%, transparent);
}
.light .srch-hero-desc { color: var(--color-text-secondary); }

.search-box {
    position: relative;
    max-width: 640px;
    margin: 0 auto;
}

.search-input-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    background: color-mix(in srgb, var(--color-white, #fff) 8%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-white, #fff) 15%, transparent);
    border-radius: 999px;
    padding: 0 4px 0 20px;
    transition: var(--transition-fast);
    backdrop-filter: blur(8px);
}
.search-input-wrapper:focus-within {
    border-color: var(--color-primary-500);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary-500) 15%, transparent);
    background: color-mix(in srgb, var(--color-white, #fff) 12%, transparent);
}
.light .search-input-wrapper {
    background: var(--color-bg-card);
    border-color: var(--color-border);
}
.light .search-input-wrapper:focus-within { border-color: var(--color-primary-500); }

.search-icon {
    color: color-mix(in srgb, var(--color-gray-400) 70%, transparent);
    font-size: 1rem;
    margin-right: 12px;
    flex-shrink: 0;
}

.search-input {
    flex: 1;
    border: none;
    background: transparent;
    font-size: 1rem;
    padding: 14px 0;
    color: var(--color-slate-100, #f1f5f9);
    outline: none;
    min-width: 0;
}
.light .search-input { color: var(--color-text-primary); }
.search-input::placeholder { color: color-mix(in srgb, var(--color-gray-400) 50%, transparent); }

.search-voice-btn,
.search-submit-btn {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    cursor: pointer;
    transition: var(--transition-fast);
    flex-shrink: 0;
    color: color-mix(in srgb, var(--color-gray-400) 70%, transparent);
    background: transparent;
}
.search-voice-btn:hover,
.search-submit-btn:hover {
    color: var(--color-white, #fff);
    background: color-mix(in srgb, var(--color-white, #fff) 10%, transparent);
}
.light .search-voice-btn:hover,
.light .search-submit-btn:hover {
    color: var(--color-primary-600);
    background: var(--color-primary-50);
}
.search-voice-btn:focus-visible,
.search-submit-btn:focus-visible {
    outline: 2px solid var(--color-primary-500);
    outline-offset: 2px;
}
.search-submit-btn {
    background: var(--color-primary-600);
    color: var(--color-white, #fff);
    margin-left: 4px;
}
.search-submit-btn:hover {
    background: var(--color-primary-700);
    color: var(--color-white, #fff);
}

.search-filter-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-radius: 999px;
    font-size: .8125rem;
    font-weight: 500;
    border: 1px solid color-mix(in srgb, var(--color-gray-400) 25%, transparent);
    background: transparent;
    color: color-mix(in srgb, var(--color-slate-100, #f1f5f9) 65%, transparent);
    cursor: pointer;
    transition: var(--transition-fast);
}
.light .search-filter-pill {
    color: var(--color-text-secondary);
    border-color: var(--color-border);
}
.search-filter-pill:hover,
.search-filter-pill.active,
.search-filter-pill[aria-checked="true"] {
    background: var(--color-primary-600);
    border-color: var(--color-primary-600);
    color: var(--color-white, #fff);
}
.search-filter-pill:focus-visible {
    outline: 2px solid var(--color-primary-500);
    outline-offset: 2px;
}

.search-trending-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: var(--color-bg-card);
    cursor: pointer;
    transition: var(--transition-fast);
    text-align: left;
    width: 100%;
    color: inherit;
    font: inherit;
}
.search-trending-card:hover {
    border-color: var(--color-primary-400);
    background: var(--color-primary-50);
}
.dark .search-trending-card:hover {
    background: color-mix(in srgb, var(--color-primary-500) 8%, transparent);
}
.search-trending-card:focus-visible {
    outline: 2px solid var(--color-primary-500);
    outline-offset: 2px;
}

/* ── Results ── */
.search-result-card {
    display: block;
    padding: 16px 20px;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: var(--color-bg-card);
    transition: var(--transition-fast);
}
.search-result-card:hover { border-color: var(--color-primary-400); }

.search-result-url {
    font-size: .75rem;
    color: var(--color-primary-500);
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 4px;
}
.search-result-title {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: 6px;
    line-height: 1.3;
}
.search-result-snippet {
    font-size: .875rem;
    color: var(--color-text-secondary);
    line-height: 1.6;
}
.search-result-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 8px;
    font-size: .75rem;
    color: var(--color-text-muted);
    flex-wrap: wrap;
}
.search-trust-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: .6875rem;
    font-weight: 600;
}
.search-trust-high {
    background: color-mix(in srgb, var(--color-success-500) 15%, transparent);
    color: var(--color-success-500);
}
.search-trust-medium {
    background: color-mix(in srgb, var(--color-warning-500) 15%, transparent);
    color: var(--color-warning-500);
}
.search-trust-low {
    background: color-mix(in srgb, var(--color-danger-500) 15%, transparent);
    color: var(--color-danger-500);
}

.search-fact-banner {
    padding: 16px;
    border-radius: var(--radius-lg);
    border: 1px solid color-mix(in srgb, var(--color-warning-500) 30%, transparent);
    background: color-mix(in srgb, var(--color-warning-500) 6%, transparent);
    margin-bottom: 16px;
}
.srch-fact-icon {
    width: 2rem;
    height: 2rem;
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: color-mix(in srgb, var(--color-warning-500) 20%, transparent);
    color: var(--color-warning-500);
}

.srch-spinner {
    width: 1.25rem;
    height: 1.25rem;
    border: 2px solid var(--color-primary-500);
    border-top-color: transparent;
    border-radius: 50%;
    animation: srch-spin 1s linear infinite;
}
@keyframes srch-spin {
    to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
    .srch-spinner { animation-duration: 3s; }
}

.srch-empty-icon {
    width: 3.5rem;
    height: 3.5rem;
    margin: 0 auto 1rem;
    border-radius: var(--radius-xl, .75rem);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-bg-muted, var(--color-bg-secondary));
}

.srch-icon-warning { color: var(--color-warning-500); }

/* Suggestions dropdown */
.search-suggestions {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    z-index: 50;
    overflow: hidden;
}
.search-suggestion-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    font-size: .875rem;
    cursor: pointer;
    transition: var(--transition-fast);
    color: var(--color-text-primary);
}
.search-suggestion-item:hover { background: var(--color-primary-50); }
.dark .search-suggestion-item:hover {
    background: color-mix(in srgb, var(--color-primary-500) 8%, transparent);
}

/* ============================================
   EVENTS PAGE — extraído de events.php
   ============================================ */

/* Type → cor (substitui inline color/gradient com hex hardcoded) */
.evt-type-primary { background: var(--color-primary-500); color: var(--color-white, #fff); }
.evt-type-purple  { background: var(--color-purple-500); color: var(--color-white, #fff); }
.evt-type-cyan    { background: var(--color-cyan-500); color: var(--color-white, #fff); }
.evt-type-success { background: var(--color-success-500); color: var(--color-white, #fff); }
.evt-type-warning { background: var(--color-warning-500); color: var(--color-white, #fff); }
.evt-type-pink    { background: var(--color-pink-500, var(--color-primary-500)); color: var(--color-white, #fff); }
.evt-type-danger  { background: var(--color-danger-500); color: var(--color-white, #fff); }
.evt-type-muted   { background: var(--color-gray-500); color: var(--color-white, #fff); }

/* Variantes "color" (apenas cor de texto/ícone) */
.evt-sidebar-link-icon.evt-type-primary { background: transparent; color: var(--color-primary-500); }
.evt-sidebar-link-icon.evt-type-purple  { background: transparent; color: var(--color-purple-500); }
.evt-sidebar-link-icon.evt-type-cyan    { background: transparent; color: var(--color-cyan-500); }
.evt-sidebar-link-icon.evt-type-success { background: transparent; color: var(--color-success-500); }
.evt-sidebar-link-icon.evt-type-warning { background: transparent; color: var(--color-warning-500); }
.evt-sidebar-link-icon.evt-type-pink    { background: transparent; color: var(--color-pink-500, var(--color-primary-500)); }
.evt-sidebar-link-icon.evt-type-danger  { background: transparent; color: var(--color-danger-500); }
.evt-sidebar-link-icon.evt-type-muted   { background: transparent; color: var(--color-gray-500); }

/* Quick tabs spacing */
.evt-quick-tabs { margin-bottom: 2rem; }

/* Featured */
.evt-featured-section { margin-bottom: 3rem; }
.evt-featured-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.25rem;
}
.evt-featured-card {
    background: var(--pub-bg-card);
    border: 1px solid var(--pub-border);
    border-radius: var(--pub-radius-lg);
    overflow: hidden;
    position: relative;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    text-decoration: none;
    display: block;
    --evt-cover-color: var(--pub-accent);
}
.evt-featured-card.evt-type-primary { --evt-cover-color: var(--color-primary-500); }
.evt-featured-card.evt-type-purple  { --evt-cover-color: var(--color-purple-500); }
.evt-featured-card.evt-type-cyan    { --evt-cover-color: var(--color-cyan-500); }
.evt-featured-card.evt-type-success { --evt-cover-color: var(--color-success-500); }
.evt-featured-card.evt-type-warning { --evt-cover-color: var(--color-warning-500); }
.evt-featured-card.evt-type-pink    { --evt-cover-color: var(--color-pink-500, var(--color-primary-500)); }
.evt-featured-card.evt-type-danger  { --evt-cover-color: var(--color-danger-500); }
.evt-featured-card.evt-type-muted   { --evt-cover-color: var(--color-gray-500); }
.evt-featured-card:hover { transform: translateY(-2px); box-shadow: var(--pub-shadow-md); }
.evt-featured-card:focus-visible { outline: 2px solid var(--pub-accent); outline-offset: 2px; }
.evt-featured-badge {
    position: absolute;
    top: 0.75rem; left: 0.75rem;
    background: var(--pub-accent);
    color: var(--color-white, #fff);
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.25rem 0.625rem;
    border-radius: 999px;
}
.evt-featured-cover {
    height: 140px;
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--evt-cover-color) 70%, transparent) 0%,
        color-mix(in srgb, var(--evt-cover-color) 30%, transparent) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}
.evt-featured-cover i {
    font-size: 2.5rem;
    color: color-mix(in srgb, var(--color-white, #fff) 70%, transparent);
}
.evt-featured-body { padding: 1.125rem; }
.evt-featured-type {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--evt-cover-color, var(--pub-accent));
    margin-bottom: 0.375rem;
}
.evt-featured-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--pub-text);
    margin: 0 0 0.625rem;
    line-height: 1.35;
}
.evt-featured-meta { display: flex; flex-direction: column; gap: 0.25rem; }
.evt-featured-meta span {
    font-size: 0.8125rem;
    color: var(--pub-text-muted);
    display: flex; align-items: center; gap: 0.375rem;
}
.evt-featured-meta i { width: 14px; text-align: center; }

/* Main Grid */
.evt-main-layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 2rem;
    align-items: start;
}
@media (max-width: 900px) {
    .evt-main-layout { grid-template-columns: 1fr; }
    .evt-sidebar { order: -1; }
}

/* Event Cards */
.evt-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    list-style: none;
    padding: 0;
    margin: 0;
}
.evt-list > li { list-style: none; }
.evt-card {
    background: var(--pub-bg-card);
    border: 1px solid var(--pub-border);
    border-radius: var(--pub-radius-lg);
    padding: 1.25rem;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 1rem;
    align-items: start;
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
    text-decoration: none;
    color: inherit;
}
.evt-card:hover {
    transform: translateY(-1px);
    box-shadow: var(--pub-shadow-sm);
    border-color: color-mix(in srgb, var(--pub-accent) 40%, var(--pub-border));
}
.evt-card:focus-visible { outline: 2px solid var(--pub-accent); outline-offset: 2px; }
.evt-date-block {
    text-align: center;
    background: var(--pub-bg);
    border: 1px solid var(--pub-border);
    border-radius: var(--pub-radius-md);
    padding: 0.5rem 0.875rem;
    min-width: 56px;
    flex-shrink: 0;
}
.evt-date-day {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--pub-accent);
    line-height: 1;
}
.evt-date-month {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--pub-text-muted);
    font-weight: 600;
}
.evt-card-info { min-width: 0; }
.evt-card-type-row {
    display: flex; align-items: center; gap: 0.5rem;
    margin-bottom: 0.375rem;
    flex-wrap: wrap;
}
.evt-card-type-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.2rem 0.5rem;
    border-radius: 999px;
}
.evt-card-type-icon { font-size: 0.625rem; }
.evt-card-title {
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--pub-text);
    margin: 0 0 0.5rem;
    line-height: 1.35;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.evt-card-desc {
    font-size: 0.8125rem;
    color: var(--pub-text-muted);
    line-height: 1.5;
    margin-bottom: 0.625rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.evt-card-meta { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.evt-card-meta span {
    font-size: 0.75rem;
    color: var(--pub-text-muted);
    display: flex; align-items: center; gap: 0.25rem;
}
.evt-card-action { flex-shrink: 0; align-self: center; }
.evt-card-action .pub-btn-sm { white-space: nowrap; }
@media (max-width: 600px) {
    .evt-card { grid-template-columns: auto 1fr; }
    .evt-card-action { display: none; }
}

/* Sidebar */
.evt-sidebar-card {
    background: var(--pub-bg-card);
    border: 1px solid var(--pub-border);
    border-radius: var(--pub-radius-lg);
    overflow: hidden;
    margin-bottom: 1.25rem;
}
.evt-sidebar-header {
    padding: 0.875rem 1.125rem;
    border-bottom: 1px solid var(--pub-border);
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--pub-text);
    display: flex; align-items: center; gap: 0.5rem;
}
.evt-sidebar-header i { color: var(--pub-accent); }
.evt-sidebar-body { padding: 1rem 1.125rem; }
.evt-sidebar-list {
    display: flex; flex-direction: column; gap: 0.375rem;
    list-style: none; padding: 1rem 1.125rem; margin: 0;
}
.evt-sidebar-list-spaced { gap: 0.625rem; }
.evt-sidebar-list > li { list-style: none; }
.evt-sidebar-link {
    font-size: 0.875rem;
    color: var(--pub-text-muted);
    text-decoration: none;
    padding: 0.25rem 0;
    display: flex; align-items: center; gap: 0.5rem;
    transition: color 0.15s ease;
    border-radius: var(--pub-radius-sm, 0.25rem);
}
.evt-sidebar-link:hover { color: var(--pub-accent); }
.evt-sidebar-link:focus-visible { outline: 2px solid var(--pub-accent); outline-offset: 2px; }
.evt-sidebar-link.active,
.evt-sidebar-link[aria-current="page"] { color: var(--pub-accent); font-weight: 600; }
.evt-sidebar-link-accent { color: var(--pub-accent); }
.evt-sidebar-link-icon { font-size: 0.75rem; width: 14px; text-align: center; }
.evt-sidebar-link-bullet { font-size: 0.625rem; }

/* Mini calendar */
.evt-mini-cal { font-size: 0.8125rem; }
.evt-mini-cal-header {
    display: flex; align-items: center; justify-content: space-between;
    font-weight: 700; color: var(--pub-text);
    margin-bottom: 0.75rem;
}
.evt-mini-cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    text-align: center;
}
.evt-mini-cal-dow {
    font-size: 0.6875rem;
    font-weight: 700;
    color: var(--pub-text-muted);
    text-transform: uppercase;
    padding-bottom: 0.25rem;
}
.evt-mini-cal-day {
    aspect-ratio: 1;
    display: flex; align-items: center; justify-content: center;
    border-radius: 50%;
    font-size: 0.75rem;
    color: var(--pub-text-muted);
    cursor: default;
}
.evt-mini-cal-day.today {
    background: var(--pub-accent);
    color: var(--color-white, #fff);
    font-weight: 700;
}
.evt-mini-cal-day.has-event {
    background: color-mix(in srgb, var(--pub-accent) 15%, transparent);
    color: var(--pub-accent);
    font-weight: 600;
    cursor: pointer;
}
.evt-mini-cal-day.empty { color: transparent; cursor: default; }

/* CTA sidebar */
.evt-cta-card {
    background: linear-gradient(135deg,
        var(--pub-accent) 0%,
        color-mix(in srgb, var(--pub-accent) 70%, var(--color-black, #000)) 100%);
    border-radius: var(--pub-radius-lg);
    padding: 1.5rem 1.25rem;
    text-align: center;
    color: var(--color-white, #fff);
    margin-bottom: 1.25rem;
}
.evt-cta-card h4 { font-size: 1rem; font-weight: 700; margin: 0 0 0.5rem; }
.evt-cta-card p { font-size: 0.8125rem; opacity: 0.85; margin: 0 0 1rem; line-height: 1.5; }
.evt-cta-btn {
    background: var(--color-white, #fff);
    color: var(--pub-accent);
    border: none;
    border-radius: 999px;
    padding: 0.5rem 1.25rem;
    font-size: 0.875rem;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    display: inline-block;
    transition: opacity 0.15s ease;
}
.evt-cta-btn:hover { opacity: 0.9; }
.evt-cta-btn:focus-visible { outline: 2px solid var(--color-white, #fff); outline-offset: 2px; }

/* Empty state */
.evt-empty { text-align: center; padding: 4rem 1rem; }
.evt-empty-icon {
    width: 64px; height: 64px;
    background: color-mix(in srgb, var(--pub-accent) 10%, transparent);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 1rem;
    font-size: 1.5rem;
    color: var(--pub-accent);
}
.evt-empty h3 { font-size: 1.125rem; font-weight: 700; color: var(--pub-text); margin: 0 0 0.5rem; }
.evt-empty p { font-size: 0.9rem; color: var(--pub-text-muted); max-width: 360px; margin: 0 auto; }
.evt-link-accent { color: var(--pub-accent); }

/* Pagination */
.evt-pagination {
    display: flex; align-items: center; justify-content: center;
    gap: 0.5rem;
    margin-top: 2rem;
    flex-wrap: wrap;
}
.evt-pag-btn {
    padding: 0.5rem 0.875rem;
    border: 1px solid var(--pub-border);
    background: var(--pub-bg-card);
    color: var(--pub-text-muted);
    border-radius: var(--pub-radius-md);
    font-size: 0.875rem;
    text-decoration: none;
    transition: all 0.15s ease;
}
.evt-pag-btn:hover { border-color: var(--pub-accent); color: var(--pub-accent); }
.evt-pag-btn:focus-visible { outline: 2px solid var(--pub-accent); outline-offset: 2px; }
.evt-pag-btn.active,
.evt-pag-btn[aria-current="page"] {
    background: var(--pub-accent);
    border-color: var(--pub-accent);
    color: var(--color-white, #fff);
    font-weight: 700;
}
.evt-pag-btn.disabled,
.evt-pag-btn[aria-disabled="true"] { opacity: 0.4; pointer-events: none; }

/* Section heading */
.evt-section-heading {
    display: flex; align-items: center; gap: 0.625rem;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--pub-text);
    margin: 0 0 1.25rem;
}
.evt-section-heading i { color: var(--pub-accent); }
.evt-section-heading .evt-count {
    font-size: 0.75rem;
    font-weight: 600;
    background: color-mix(in srgb, var(--pub-accent) 12%, transparent);
    color: var(--pub-accent);
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
}

/* Notification subscribe bar */
.evt-notify-bar {
    background: var(--pub-bg-card);
    border: 1px solid var(--pub-border);
    border-radius: var(--pub-radius-lg);
    padding: 1.25rem 1.5rem;
    display: flex; align-items: center; gap: 1rem;
    margin-bottom: 2.5rem;
    flex-wrap: wrap;
}
.evt-notify-bar > i {
    font-size: 1.25rem;
    color: var(--pub-accent);
    flex-shrink: 0;
}
.evt-notify-text { flex: 1; min-width: 200px; }
.evt-notify-text strong { display: block; font-size: 0.9375rem; color: var(--pub-text); margin-bottom: 0.2rem; }
.evt-notify-text span { font-size: 0.8125rem; color: var(--pub-text-muted); }
.evt-notify-form { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; }
.evt-notify-input {
    padding: 0.5rem 0.875rem;
    border: 1px solid var(--pub-border);
    border-radius: var(--pub-radius-md);
    background: var(--pub-bg);
    color: var(--pub-text);
    font-size: 0.875rem;
    outline: none;
    min-width: 200px;
    box-sizing: border-box;
    transition: border-color 0.15s ease;
}
.evt-notify-input:focus { border-color: var(--pub-accent); }
.evt-notify-submit {
    background: var(--pub-accent);
    color: var(--color-white, #fff);
    border: none;
    border-radius: var(--pub-radius-md);
    padding: 0.5rem 1.125rem;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: opacity 0.15s ease;
    display: inline-flex; align-items: center; gap: 0.375rem;
}
.evt-notify-submit:hover { opacity: 0.88; }
.evt-notify-submit:focus-visible { outline: 2px solid var(--pub-accent); outline-offset: 2px; }
.evt-notify-submit[aria-busy="true"] { opacity: 0.7; cursor: progress; }

@media (max-width: 640px) {
    .evt-notify-bar { flex-direction: column; align-items: flex-start; }
    .evt-notify-form { width: 100%; }
    .evt-notify-input { flex: 1; min-width: 0; }
}

/* ============================================
   ABOUT PAGE — extraído de about.php
   ============================================ */
.abt-manifesto-card { padding: 3rem 2.5rem; }

/* Marks ✗/✓ no comparativo Antes/Depois */
.abt-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 9999px;
    font-size: 0.875rem;
    font-weight: 700;
    flex-shrink: 0;
}
.abt-mark-danger {
    background: color-mix(in srgb, var(--color-danger-500) 15%, transparent);
    color: var(--color-danger-500);
}
.abt-mark-success {
    background: color-mix(in srgb, var(--color-success-500) 15%, transparent);
    color: var(--color-success-500);
}

/* Ícones de checklist semânticos */
.abt-icon-danger { color: var(--color-danger-400, var(--color-danger-500)); }
.abt-icon-success { color: var(--color-success-400, var(--color-success-500)); }

/* Min-width nos badges de fluxo (substitui min-w-[8rem]) */
.abt-flow-from-to { min-width: 8rem; }
@media (max-width: 600px) { .abt-flow-from-to { min-width: 0; flex-wrap: wrap; } }

/* ============================================
   PRICING PAGE — extraído de pricing.php
   ============================================ */

/* Toggle switch state-driven (substitui style.transform inline) */
.pub-toggle.is-checked .pub-toggle-dot { transform: translateX(1.5rem); }
.pub-toggle:focus-visible {
    outline: 2px solid var(--pub-accent);
    outline-offset: 2px;
}

/* Popular pill (substitui Tailwind raw inline-flex/px-3/py-1/rounded-full/text-xs/font-bold/text-white) */
.pub-badge-popular-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.75rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--color-white, #fff);
}

/* Tabela de comparação (substitui min-w-[480px] arbitrary + inline -webkit-overflow-scrolling) */
.pricing-compare-table { min-width: 480px; width: 100%; }
.pricing-table-scroll { -webkit-overflow-scrolling: touch; }

/* ============================================
   FEATURES PAGE — extraído de features.php
   ============================================ */
/* Permite usar feat-grid como <ul> sem perder layout */
ul.feat-grid { list-style: none; padding: 0; margin: 0; }
ul.feat-grid > li { list-style: none; margin: 0; padding: 0; }

/* feat-card__tags como <ul> (compatível com <span> existentes em outras páginas) */
ul.feat-card__tags { list-style: none; padding: 0; margin: 0; }
ul.feat-card__tags > li.pub-feature-tag { list-style: none; }

/* ============================================
   PLUGIN INTERACTIVE — extraído de plugin-interactive.php
   ============================================ */
.plugin-tab-content-min { min-height: 12rem; }
.plugin-tab-spinner { color: var(--color-primary-600); }

/* ============================================
   PLUGIN COMPARE — extraído de plugin-compare.php
   ============================================
   Vars --cmp-grad-from / --cmp-grad-to / --cmp-grad-rgb são definidas
   inline no wrapper raiz <main class="cmp-page" style="--cmp-*: ...">
   pelo PHP (a partir do colorMap). Estas classes apenas consomem.
*/
.cmp-page ul.pub-grid,
.cmp-page ul.pub-steps {
    list-style: none;
    padding: 0;
    margin: 0;
}
.cmp-page ul.pub-grid > li,
.cmp-page ol.pub-steps > li { list-style: none; }

.cmp-hero-glow {
    background: radial-gradient(
        circle,
        rgba(var(--cmp-grad-rgb, 245,158,11), .25) 0%,
        transparent 70%
    );
}

.cmp-step-number {
    background: linear-gradient(
        135deg,
        var(--cmp-grad-from, var(--color-warning-500)),
        var(--cmp-grad-to, var(--color-warning-600))
    );
}

.cmp-cta {
    background: linear-gradient(
        135deg,
        var(--cmp-grad-from, var(--color-warning-500)),
        var(--cmp-grad-to, var(--color-warning-600))
    );
}

.cmp-price-accent { color: var(--cmp-grad-from, var(--color-warning-500)); }

/* ============================================
   PLUGIN LOTTERIES — extraído de plugin-lotteries.php
   ============================================ */

/* Reset de listas dentro do wrapper raiz */
.lot-page ul.pub-grid,
.lot-page ol.pub-grid,
.lot-page .lot-result-numbers,
.lot-page .lot-result-extras-list { list-style: none; padding: 0; margin: 0; }
.lot-page ul.pub-grid > li,
.lot-page ol.pub-grid > li,
.lot-page .lot-result-numbers > li,
.lot-page .lot-result-extras-list > li { list-style: none; }

/* Hero card visual */
.lot-hero-card {
    border-radius: 18px;
    padding: 2rem;
    background: color-mix(in srgb, var(--color-white, #fff) 6%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-white, #fff) 10%, transparent);
}
.lot-hero-card-label {
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--color-white, #fff) 50%, transparent);
    margin-bottom: 1.25rem;
}
.lot-hero-row {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: .75rem 0;
}
.lot-hero-row-divider {
    border-bottom: 1px solid color-mix(in srgb, var(--color-white, #fff) 8%, transparent);
}
.lot-hero-row-icon {
    width: 2rem; height: 2rem;
    border-radius: .5rem;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    font-size: .75rem;
    background: color-mix(in srgb, var(--color-success-600) 20%, transparent);
    color: var(--color-success-600);
}
.lot-hero-row-title { color: var(--color-white, #fff); }
.lot-hero-row-desc {
    font-size: .8125rem;
    color: color-mix(in srgb, var(--color-white, #fff) 50%, transparent);
    margin-top: .125rem;
    line-height: 1.4;
}

/* Stats section spacing (substitui inline padding) */
.lot-stats-section { padding-top: 3rem; padding-bottom: 3rem; }

/* Result cards — usam custom property --lot-color injetada por <li style> */
.lot-result-card { --lot-color: var(--color-indigo-500); }
.lot-result-header {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: 1rem;
}
.lot-result-icon {
    width: 2.5rem; height: 2.5rem;
    border-radius: .5rem;
    display: flex; align-items: center; justify-content: center;
    color: var(--color-white, #fff);
    font-size: .875rem;
    background-color: var(--lot-color);
}
.lot-result-numbers {
    display: flex;
    flex-wrap: wrap;
    gap: .375rem;
    margin-bottom: 1rem;
}
.lot-result-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem; height: 2.25rem;
    border-radius: 50%;
    color: var(--color-white, #fff);
    font-size: .8125rem;
    font-weight: 700;
    background-color: var(--lot-color);
}
.lot-result-extras {
    display: flex;
    flex-wrap: wrap;
    gap: .375rem;
    margin-bottom: 1rem;
    align-items: center;
}
.lot-result-extras-label {
    font-size: .75rem;
    color: var(--pub-text-muted);
    margin-right: .25rem;
}
.lot-result-extras-list {
    display: inline-flex;
    flex-wrap: wrap;
    gap: .375rem;
    align-items: center;
}
.lot-result-extra-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem; height: 2rem;
    border-radius: 50%;
    background: var(--color-yellow-500, var(--color-warning-500));
    color: var(--color-white, #fff);
    font-size: .75rem;
    font-weight: 700;
}
.lot-result-footer {
    border-top: 1px solid var(--pub-border);
    padding-top: .75rem;
    font-size: .8125rem;
    color: var(--pub-text-muted);
}
.lot-result-accumulated {
    color: var(--color-danger-500);
    font-weight: 600;
}
.lot-result-next { margin-left: .75rem; }

/* Empty state */
.lot-empty {
    text-align: center;
    padding: 3rem;
}
.lot-empty-icon {
    font-size: 3rem;
    color: var(--pub-text-muted);
    margin-bottom: 1rem;
    display: block;
}
.lot-empty-title {
    font-size: 1.125rem;
    color: var(--pub-text-primary);
    font-weight: 600;
    margin-bottom: .5rem;
}
.lot-empty-sub { color: var(--pub-text-muted); }

/* Step number */
.lot-step-card { text-align: center; }
.lot-step-number {
    width: 3rem; height: 3rem;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--color-success-600), var(--color-emerald-600, var(--color-success-700)));
    color: var(--color-white, #fff);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    font-weight: 800;
    margin-bottom: 1rem;
}

/* CTA */
.lot-cta-container { text-align: center; }

/* ============================================
   PLUGIN CONTENT — extraído de plugin-content.php
   ============================================
   Vars --ct-grad-from / --ct-grad-to / --ct-grad-rgb são definidas
   inline no wrapper raiz <main class="ct-page" style="--ct-*: ...">
   pelo PHP (a partir do colorMap).
*/

/* Reset listas escopado */
.ct-page ul.pub-grid-auto,
.ct-page ul.pub-grid-4,
.ct-page ul.feat-grid,
.ct-page ol.ct-hiw-list,
.ct-page ul.ct-step-items { list-style: none; padding: 0; margin: 0; }
.ct-page ul.pub-grid-auto > li,
.ct-page ul.pub-grid-4 > li,
.ct-page ul.feat-grid > li,
.ct-page ol.ct-hiw-list > li,
.ct-page ul.ct-step-items > li { list-style: none; }

/* Hero orbs com cor dinâmica */
.ct-hero-orb-1 {
    background: radial-gradient(circle, rgba(var(--ct-grad-rgb, 14,165,233),.18) 0%, transparent 70%);
}
.ct-hero-orb-2 {
    background: radial-gradient(circle, rgba(var(--ct-grad-rgb, 14,165,233),.10) 0%, transparent 70%);
}

/* Helpers genéricos */
.ct-icon-margin { margin-right: .25rem; }
.ct-grad-text {
    background: linear-gradient(135deg, var(--ct-grad-from, var(--color-primary-500)), var(--ct-grad-to, var(--color-primary-600)));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}
.ct-grad-bg {
    background: linear-gradient(135deg, var(--ct-grad-from, var(--color-primary-500)), var(--ct-grad-to, var(--color-primary-600)));
}
.ct-icon-accent { color: var(--ct-grad-from, var(--color-primary-500)); }
.ct-check-icon {
    color: var(--ct-grad-from, var(--color-primary-500));
    flex-shrink: 0;
    margin-top: .2rem;
}

/* Animation delay propagation */
.ct-anim-delay { animation-delay: var(--ct-anim-delay, 0ms); }

/* Article card mock (hero visual) */
.ct-article-title {
    font-size: .9375rem;
    font-weight: 700;
    color: var(--color-white, #fff);
    margin-bottom: .875rem;
    line-height: 1.35;
}
.ct-kw-row {
    display: flex;
    flex-wrap: wrap;
    gap: .375rem;
    margin-bottom: 1rem;
}
.ct-score-block { margin-bottom: .875rem; }
.ct-score-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .4rem;
}
.ct-score-label {
    font-size: .75rem;
    color: color-mix(in srgb, var(--color-white, #fff) 55%, transparent);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.ct-score-value {
    font-size: .9375rem;
    font-weight: 800;
    color: var(--ct-grad-from, var(--color-primary-500));
}
.ct-score-bar-fill {
    width: 94%;
    background: linear-gradient(90deg, var(--ct-grad-from, var(--color-primary-500)), var(--ct-grad-to, var(--color-primary-600)));
}
.ct-meta-row {
    border-top: 1px solid color-mix(in srgb, var(--color-white, #fff) 8%, transparent);
    padding-top: .875rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.ct-meta-item {
    font-size: .75rem;
    color: color-mix(in srgb, var(--color-white, #fff) 40%, transparent);
}

/* Numbers section */
.ct-numbers-section {
    padding-top: 3rem;
    padding-bottom: 3rem;
}
.ct-stat-desc {
    font-size: .75rem;
    color: var(--pub-text-muted);
    margin-top: .25rem;
}

/* Benefits cards */
.ct-benefit-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}
.ct-benefit-title {
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--pub-text);
}
.ct-benefit-detail {
    margin-top: .875rem;
    padding-top: .875rem;
    border-top: 1px solid var(--pub-border);
}

/* How-it-works list (substitui flex-direction:column gap inline) */
.ct-hiw-list {
    display: flex;
    flex-direction: column;
    gap: 4rem;
    margin-top: 1rem;
}
.ct-step-title {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--pub-text);
    letter-spacing: -.025em;
    margin-bottom: .75rem;
    line-height: 1.2;
}
.ct-step-detail { margin-top: .625rem; }
.ct-step-items {
    margin-top: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: .625rem;
}
.ct-step-item-text {
    font-size: .875rem;
    color: var(--pub-text-secondary);
}
.ct-step-visual-icon {
    font-size: 3.5rem;
    color: var(--ct-grad-from, var(--color-primary-500));
    opacity: .7;
    margin-bottom: .75rem;
    display: block;
}
.ct-step-visual-icon-faint { opacity: .5; }
.ct-step-visual-label {
    font-size: .875rem;
    color: var(--pub-text-muted);
}

/* Detail sections */
.ct-detail-icon { margin-bottom: .875rem; }
.ct-detail-item-title {
    font-size: .9375rem;
    font-weight: 700;
    color: var(--pub-text);
    margin-bottom: .375rem;
}

/* Use cases */
.ct-usecase-card {
    padding: 1.75rem;
    display: flex;
    flex-direction: column;
    gap: .875rem;
}
.ct-usecase-title {
    font-size: .9375rem;
    font-weight: 700;
    color: var(--pub-text);
}

/* FAQ */
.ct-faq-container { max-width: 48rem; }
.ct-faq-list {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

/* CTA */
.ct-cta-orb-1 {
    background: radial-gradient(circle, rgba(var(--ct-grad-rgb, 14,165,233),.14) 0%, transparent 70%);
}
.ct-cta-orb-2 {
    background: radial-gradient(circle, rgba(var(--ct-grad-rgb, 14,165,233),.08) 0%, transparent 70%);
}
.ct-cta-container {
    position: relative;
    z-index: 1;
    text-align: center;
}
.ct-cta-pill {
    margin-bottom: 1.5rem;
    display: inline-block;
}
.ct-cta-trust {
    font-size: .8125rem;
    color: color-mix(in srgb, var(--color-white, #fff) 45%, transparent);
    margin-top: 1.25rem;
}

/* ============================================
   PLUGIN BUSINESS — extraído de plugin-business.php
   ============================================
   Vars --biz-grad-from / --biz-grad-to / --biz-grad-rgb definidas
   inline no wrapper raiz <main class="biz-page" style="--biz-*: ...">
*/

/* Reset listas escopado */
.biz-page ul.pub-grid-auto,
.biz-page ul.pub-grid-4,
.biz-page ul.feat-grid,
.biz-page ol.plg-biz-stepper,
.biz-page ul.biz-step-items { list-style: none; padding: 0; margin: 0; }
.biz-page ul.pub-grid-auto > li,
.biz-page ul.pub-grid-4 > li,
.biz-page ul.feat-grid > li,
.biz-page ol.plg-biz-stepper > li,
.biz-page ul.biz-step-items > li { list-style: none; }

/* Hero/CTA orbs com cor dinâmica */
.biz-hero-orb-1 { background: radial-gradient(circle, rgba(var(--biz-grad-rgb, 14,165,233),.18) 0%, transparent 70%); }
.biz-hero-orb-2 { background: radial-gradient(circle, rgba(var(--biz-grad-rgb, 14,165,233),.10) 0%, transparent 70%); }
.biz-cta-orb-1  { background: radial-gradient(circle, rgba(var(--biz-grad-rgb, 14,165,233),.14) 0%, transparent 70%); }
.biz-cta-orb-2  { background: radial-gradient(circle, rgba(var(--biz-grad-rgb, 14,165,233),.08) 0%, transparent 70%); }

/* Helpers genéricos */
.biz-icon-margin { margin-right: .25rem; }
.biz-grad-text {
    background: linear-gradient(135deg, var(--biz-grad-from, var(--color-primary-500)), var(--biz-grad-to, var(--color-primary-600)));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}
.biz-grad-bg {
    background: linear-gradient(135deg, var(--biz-grad-from, var(--color-primary-500)), var(--biz-grad-to, var(--color-primary-600)));
}
.biz-icon-accent { color: var(--biz-grad-from, var(--color-primary-500)); }
.biz-check-icon {
    color: var(--biz-grad-from, var(--color-primary-500));
    flex-shrink: 0;
    margin-top: .2rem;
    font-size: .875rem;
}

/* Animation delay propagation */
.biz-anim-delay { animation-delay: var(--biz-anim-delay, 0ms); }

/* Workspace card mock (hero visual) */
.biz-avatars-row {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: 1.25rem;
}
.biz-avatar-accent  { background: rgba(var(--biz-grad-rgb, 14,165,233), .35); }
.biz-avatar-success { background: color-mix(in srgb, var(--color-success-500) 30%, transparent); }
.biz-avatar-warning { background: color-mix(in srgb, var(--color-warning-500) 30%, transparent); }
.biz-members-badge-spaced { margin-left: .25rem; }
.biz-icon-success-dot {
    font-size: .375rem;
    color: var(--pub-success, var(--color-success-500));
}

.biz-task-list {
    display: flex;
    flex-direction: column;
    border: 1px solid color-mix(in srgb, var(--color-white, #fff) 8%, transparent);
    border-radius: .625rem;
    overflow: hidden;
    margin-bottom: 1rem;
}
.biz-task-row { padding: .625rem .875rem; }
.biz-task-last { border-bottom: none; }
.biz-task-check-icon { font-size: .5rem; }
.biz-task-status {
    margin-left: auto;
    font-size: .6875rem;
    color: var(--biz-grad-from, var(--color-primary-500));
    font-weight: 600;
    white-space: nowrap;
}

.biz-task-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.biz-task-footer-label {
    font-size: .75rem;
    color: color-mix(in srgb, var(--color-white, #fff) 40%, transparent);
}
.biz-task-percent {
    font-size: .75rem;
    font-weight: 700;
    color: var(--biz-grad-from, var(--color-primary-500));
}

/* Numbers section */
.biz-numbers-section {
    padding-top: 3rem;
    padding-bottom: 3rem;
}
.biz-stat-desc {
    font-size: .75rem;
    color: var(--pub-text-muted);
    margin-top: .25rem;
}

/* Benefits cards */
.biz-benefit-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}
.biz-benefit-title {
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--pub-text);
}
.biz-benefit-detail {
    margin-top: .875rem;
    padding-top: .875rem;
    border-top: 1px solid var(--pub-border);
}

/* How-it-works (stepper) */
.biz-how-container { max-width: 52rem; }
.biz-step-items {
    margin-top: .875rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}
.biz-step-item-text {
    font-size: .875rem;
    color: var(--pub-text-secondary);
}

/* Detail sections */
.biz-detail-icon { margin-bottom: .875rem; }
.biz-detail-item-title {
    font-size: .9375rem;
    font-weight: 700;
    color: var(--pub-text);
    margin-bottom: .375rem;
}

/* Use cases */
.biz-usecase-card {
    padding: 1.75rem;
    display: flex;
    flex-direction: column;
    gap: .875rem;
}
.biz-usecase-title {
    font-size: .9375rem;
    font-weight: 700;
    color: var(--pub-text);
}

/* FAQ */
.biz-faq-container { max-width: 48rem; }
.biz-faq-list {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

/* CTA */
.biz-cta-container {
    position: relative;
    z-index: 1;
    text-align: center;
}
.biz-cta-pill {
    margin-bottom: 1.5rem;
    display: inline-block;
}
.biz-cta-trust {
    font-size: .8125rem;
    color: color-mix(in srgb, var(--color-white, #fff) 45%, transparent);
    margin-top: 1.25rem;
}

/* ============================================
   PLUGIN TOOLS — extraído de plugin-tools.php
   ============================================ */
.tls-page ul[role="list"],
.tls-page ol[role="list"] {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* Hero orbs */
.tls-page .tls-hero-orb-1 {
    background: radial-gradient(circle, rgba(var(--tls-grad-rgb), .18) 0%, transparent 70%);
}
.tls-page .tls-hero-orb-2 {
    background: radial-gradient(circle, rgba(var(--tls-grad-rgb), .10) 0%, transparent 70%);
}

/* CTA orbs */
.tls-page .tls-cta-orb-1 {
    background: radial-gradient(circle, rgba(var(--tls-grad-rgb), .18) 0%, transparent 70%);
}
.tls-page .tls-cta-orb-2 {
    background: radial-gradient(circle, rgba(var(--tls-grad-rgb), .10) 0%, transparent 70%);
}

/* Utilities */
.tls-page .tls-grad-text {
    background: linear-gradient(135deg, var(--tls-grad-from), var(--tls-grad-to));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.tls-page .tls-grad-bg {
    background: linear-gradient(135deg, var(--tls-grad-from), var(--tls-grad-to));
}
.tls-page .tls-icon-accent {
    color: var(--tls-grad-from);
}
.tls-page .tls-icon-muted {
    color: var(--pub-text-muted);
}
.tls-page .tls-check-icon {
    color: var(--tls-grad-from);
}
.tls-page .tls-anim-delay {
    animation-delay: var(--tls-anim-delay, 0ms);
}
.tls-page .tls-card-accent {
    --pub-card-accent: linear-gradient(90deg, var(--tls-grad-from), var(--tls-grad-to));
}

/* Hero mock */
.tls-page .tls-mock-results {
    border-top: 1px solid color-mix(in srgb, var(--color-white, #fff) 8%, transparent);
    padding-top: .75rem;
    margin-top: .25rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}
.tls-page .tls-result-icon-tinted {
    background: rgba(var(--tls-grad-rgb), .18);
    color: var(--tls-grad-from);
}
.tls-page .tls-result-info {
    flex: 1;
    min-width: 0;
}
.tls-page .tls-status-active {
    color: var(--pub-success);
}
.tls-page .tls-dot-tiny {
    font-size: .4rem;
    vertical-align: middle;
}

/* Numbers */
.tls-page .tls-numbers-section {
    padding-top: 3rem;
    padding-bottom: 3rem;
}

/* Benefits */
.tls-page .tls-benefit-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}
.tls-page .tls-benefit-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--pub-text);
    margin: 0;
}
.tls-page .tls-benefit-detail {
    margin-top: .75rem;
    padding-top: .75rem;
    border-top: 1px solid var(--pub-border);
}

/* How */
.tls-page .tls-step-icon {
    margin-bottom: .75rem;
}
.tls-page .tls-step-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--pub-text);
    margin-bottom: .5rem;
}

/* Detail sections */
.tls-page .tls-detail-grid {
    gap: 3rem;
    align-items: center;
}
.tls-page .tls-detail-list {
    display: flex;
    flex-direction: column;
    gap: .875rem;
}
.tls-page .tls-detail-list-item {
    display: flex;
    align-items: flex-start;
    gap: .875rem;
}
.tls-page .tls-detail-list-icon {
    flex-shrink: 0;
    margin-top: .125rem;
}
.tls-page .tls-detail-list-title {
    font-weight: 600;
    font-size: .875rem;
    color: var(--pub-text);
    margin: 0 0 .25rem;
}
.tls-page .tls-detail-list-desc {
    font-size: .8125rem;
    color: var(--pub-text-secondary);
    margin: 0;
    line-height: 1.6;
}
.tls-page .tls-detail-title {
    font-size: 1.875rem;
    font-weight: 800;
    letter-spacing: -.03em;
    line-height: 1.2;
    color: var(--pub-text);
    margin-bottom: 1rem;
}
.tls-page .tls-detail-cta {
    margin-top: 1.5rem;
}

/* Use cases */
.tls-page .tls-usecase-card {
    padding: 1.5rem;
}
.tls-page .tls-usecase-icon {
    margin-bottom: .875rem;
}
.tls-page .tls-usecase-title {
    font-size: .9375rem;
    font-weight: 700;
    color: var(--pub-text);
    margin: 0 0 .5rem;
}
.tls-page .tls-usecase-desc {
    font-size: .8125rem;
}

/* FAQ */
.tls-page .tls-faq-container {
    max-width: 48rem;
}
.tls-page .tls-faq-list {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

/* CTA */
.tls-page .tls-cta-container {
    position: relative;
    z-index: 1;
}
.tls-page .tls-cta-icon {
    width: 4rem;
    height: 4rem;
    margin: 0 auto 1.5rem;
    background: rgba(var(--tls-grad-rgb), .2);
    color: var(--tls-grad-from);
    font-size: 1.5rem;
    border-radius: var(--pub-radius-lg);
}

/* ============================================
   PLUGIN SEGMENT SOCIAL — extraído de plugin-segment-social.php
   Tokens via custom properties --seg-grad-from/--seg-grad-to/--seg-grad-rgb
   inline no wrapper raiz <main class="seg-page" style="--seg-*: ...">
   ============================================ */
.seg-page ul.feat-grid,
.seg-page ul.pub-grid-auto,
.seg-page ul.pub-grid-4,
.seg-page ul.pub-grid-2col,
.seg-page ul.pub-platforms-grid,
.seg-page ul.pub-numbers-grid,
.seg-page ul.seg-platforms-list,
.seg-page ul.seg-tutorial-steps,
.seg-page ol.seg-how-list { list-style: none; padding: 0; margin: 0; }
.seg-page ul.feat-grid > li,
.seg-page ul.pub-grid-auto > li,
.seg-page ul.pub-grid-4 > li,
.seg-page ul.pub-grid-2col > li,
.seg-page ul.pub-platforms-grid > li,
.seg-page ul.pub-numbers-grid > li,
.seg-page ul.seg-platforms-list > li,
.seg-page ul.seg-tutorial-steps > li,
.seg-page ol.seg-how-list > li { list-style: none; }

/* Hero orbs */
.seg-hero-orb-1 { background: radial-gradient(circle, rgba(var(--seg-grad-rgb, 14,165,233),.22) 0%, transparent 70%); }
.seg-hero-orb-2 { background: radial-gradient(circle, rgba(var(--seg-grad-rgb, 14,165,233),.12) 0%, transparent 70%); }

/* CTA orbs */
.seg-cta-orb-1 { background: radial-gradient(circle, rgba(var(--seg-grad-rgb, 14,165,233),.18) 0%, transparent 70%); }
.seg-cta-orb-2 { background: radial-gradient(circle, rgba(var(--seg-grad-rgb, 14,165,233),.10) 0%, transparent 70%); }

/* Utility — gradient text/bg/icon-accent/check */
.seg-page .seg-grad-text {
    background: linear-gradient(135deg, var(--seg-grad-from, var(--color-primary-500)), var(--seg-grad-to, var(--color-primary-600)));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}
.seg-page .seg-grad-bg {
    background: linear-gradient(135deg, var(--seg-grad-from, var(--color-primary-500)), var(--seg-grad-to, var(--color-primary-600)));
}
.seg-page .seg-icon-accent {
    background: rgba(var(--seg-grad-rgb, 14,165,233), .12);
    color: var(--seg-grad-from, var(--color-primary-500));
}
.seg-page .seg-icon-danger {
    background: color-mix(in srgb, var(--color-danger-500) 12%, transparent);
    color: var(--color-danger-500);
}
.seg-page .seg-check-icon { color: var(--seg-grad-from, var(--color-primary-500)); }
.seg-page .seg-number-value { color: var(--seg-grad-from, var(--color-primary-500)); }

/* Anim delay propagation */
.seg-page .seg-anim-delay { animation-delay: var(--seg-anim-delay, 0ms); }

/* Hero */
.seg-hero-section { min-height: 88vh; display: flex; align-items: center; }
.seg-hero-bigicon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 6rem;
    height: 6rem;
    border-radius: 1.5rem;
    margin-bottom: 2rem;
    background: linear-gradient(135deg, rgba(var(--seg-grad-rgb, 14,165,233),.30), rgba(var(--seg-grad-rgb, 14,165,233),.10));
    border: 1px solid rgba(var(--seg-grad-rgb, 14,165,233),.35);
}
.seg-hero-bigicon-i { font-size: 2.25rem; color: var(--seg-grad-from, var(--color-primary-500)); }
.seg-hero-title { font-size: clamp(2rem, 5vw, 3.5rem); }
.seg-hero-desc {
    font-size: 1.0625rem;
    color: color-mix(in srgb, var(--color-white, #fff) 60%, transparent);
    line-height: 1.625;
    max-width: 42rem;
    margin: 1rem auto 0;
}
.seg-hero-actions {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 2.5rem;
}
.seg-hero-ticker {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    column-gap: 2.5rem;
    row-gap: .75rem;
    margin-top: 3.5rem;
}
.seg-ticker-item { text-align: center; }
.seg-ticker-value { font-size: 1.5rem; font-weight: 800; color: var(--color-white, #fff); }
.seg-ticker-label {
    font-size: .75rem;
    color: color-mix(in srgb, var(--color-white, #fff) 45%, transparent);
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-top: .125rem;
}

/* SMM platforms */
.seg-platform-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-radius: .75rem;
    border: 1px solid var(--pub-border);
    background: var(--pub-bg-card-solid);
    transition: transform 150ms ease;
}
.seg-platform-iconbox { font-size: 1rem; }
.seg-platform-name { font-size: .9375rem; font-weight: 700; color: var(--pub-text); }
.seg-platform-meta { font-size: .75rem; color: var(--pub-text-muted); margin-top: .125rem; }
.seg-smm-total { text-align: center; margin-top: 1.5rem; }
.seg-smm-total p { font-size: .8125rem; color: var(--pub-text-muted); }
.seg-smm-orders-value { color: var(--pub-text); }

/* Benefits */
.seg-benefit-card { --pub-card-accent: linear-gradient(90deg, var(--seg-grad-from, var(--color-primary-500)), var(--seg-grad-to, var(--color-primary-600))); }
.seg-benefit-header { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.seg-benefit-title { font-size: 1.125rem; font-weight: 700; color: var(--pub-text); }
.seg-benefit-detail {
    margin-top: .75rem;
    padding-top: .75rem;
    border-top: 1px solid var(--pub-border);
}

/* Generic platforms list */
.seg-platforms-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.25rem;
    margin-top: 2rem;
}
.seg-platform-mini {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
    padding: 1.25rem 1.5rem;
    min-width: 120px;
}
.seg-platform-mini-icon { font-size: 1.875rem; }
.seg-platform-mini-name { font-size: .8125rem; font-weight: 600; color: var(--pub-text); }

/* Comparison */
.seg-comparison-header { display: flex; align-items: center; gap: .75rem; margin-bottom: 1.5rem; }
.seg-comparison-after { border-color: rgba(var(--seg-grad-rgb, 14,165,233),.30); }
.seg-comparison-text {
    font-size: .875rem;
    color: var(--pub-text-secondary);
    line-height: 1.5;
}

/* Detail sections */
.seg-detail-title {
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--pub-text);
    margin-bottom: 1rem;
    line-height: 1.25;
}
.seg-detail-desc {
    font-size: 1rem;
    color: var(--pub-text-secondary);
    line-height: 1.625;
    margin-bottom: 1.5rem;
}

/* Tutorials */
.seg-tutorial-header { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; }
.seg-tutorial-steps { margin-top: .75rem; }
.seg-tutorial-step {
    font-size: .8125rem;
    color: var(--pub-text-secondary);
    padding: .25rem 0 .25rem 1.25rem;
    position: relative;
}
.seg-tutorial-step-icon {
    position: absolute;
    left: 0;
    top: .4rem;
    font-size: .625rem;
    color: var(--seg-grad-from, var(--color-primary-500));
}

/* ============================================
   PLUGIN ANALYTICS — extraído de plugin-analytics.php
   ============================================ */
.ana-page ul.pub-grid-auto,
.ana-page ul.feat-grid,
.ana-page ul.pub-grid-4,
.ana-page ol.ana-how-steps {
    list-style: none;
    padding: 0;
    margin: 0;
}
.ana-page ul.pub-grid-auto > li,
.ana-page ul.feat-grid > li,
.ana-page ul.pub-grid-4 > li,
.ana-page ol.ana-how-steps > li {
    list-style: none;
}

.ana-anim-delay { animation-delay: var(--ana-anim-delay, 0ms); }

.ana-hero-orb-1 { background: radial-gradient(circle, rgba(var(--ana-grad-rgb, 14,165,233), .20) 0%, transparent 70%); }
.ana-hero-orb-2 { background: radial-gradient(circle, rgba(var(--ana-grad-rgb, 14,165,233), .12) 0%, transparent 70%); }
.ana-cta-orb-1  { background: radial-gradient(circle, rgba(var(--ana-grad-rgb, 14,165,233), .18) 0%, transparent 70%); }
.ana-cta-orb-2  { background: radial-gradient(circle, rgba(var(--ana-grad-rgb, 14,165,233), .10) 0%, transparent 70%); }

.ana-grad-text {
    background: linear-gradient(135deg, var(--ana-grad-from, var(--color-primary-500)), var(--ana-grad-to, var(--color-primary-600)));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    color: transparent;
}
.ana-grad-bg {
    background: linear-gradient(135deg, var(--ana-grad-from, var(--color-primary-500)), var(--ana-grad-to, var(--color-primary-600)));
}
.ana-icon-accent { color: var(--ana-grad-from, var(--color-primary-500)); }
.ana-check-icon  { color: var(--ana-grad-from, var(--color-primary-500)); font-size: .875rem; flex-shrink: 0; margin-top: .125rem; }
.ana-icon-margin { margin-right: .35rem; }

.ana-bar-grad {
    background: linear-gradient(to top, var(--ana-grad-from, var(--color-primary-500)), var(--ana-grad-to, var(--color-primary-600)));
}

.ana-status-rows { display: flex; flex-direction: column; gap: .625rem; margin-top: .75rem; }
.ana-status-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .4rem 0;
    border-bottom: 1px solid color-mix(in srgb, var(--color-white, #fff) 6%, transparent);
}
.ana-status-left { display: flex; align-items: center; gap: .5rem; }
.ana-status-label {
    font-size: .8125rem;
    color: color-mix(in srgb, var(--color-white, #fff) 65%, transparent);
}
.ana-status-value { font-size: .8125rem; font-weight: 700; }
.ana-status-success-dot  { background: var(--pub-success); }
.ana-status-success-text { color: var(--pub-success); }
.ana-status-warning-dot  { background: var(--pub-warning); }
.ana-status-warning-text { color: var(--pub-warning); }

.ana-uptime-block { margin-top: .875rem; text-align: center; }
.ana-uptime-value { font-size: 2rem; font-weight: 800; letter-spacing: -.04em; display: inline-block; }
.ana-uptime-caption {
    display: block;
    font-size: .6875rem;
    color: color-mix(in srgb, var(--color-white, #fff) 40%, transparent);
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-top: .125rem;
}

.ana-numbers-section { padding-top: 3rem; padding-bottom: 3rem; }
.ana-stat-desc { font-size: .8125rem; color: var(--pub-text-muted); margin-top: .25rem; }

.ana-card-accent-top {
    --pub-card-accent: linear-gradient(90deg, var(--ana-grad-from, var(--color-primary-500)), var(--ana-grad-to, var(--color-primary-600)));
}
.ana-benefit-header { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.ana-benefit-title { font-size: 1rem; font-weight: 700; color: var(--pub-text); margin: 0; }
.ana-benefit-detail { margin-top: .75rem; padding-top: .75rem; border-top: 1px solid var(--pub-border); }

.ana-how-steps { gap: 2rem; }
.ana-step-card { position: relative; }
.ana-step-card .ana-step-number { margin-bottom: 1.25rem; }
.ana-step-title { margin-bottom: .5rem; }
.ana-step-detail { margin-top: .75rem; }

.ana-detail-grid { gap: 3rem; align-items: center; }
.ana-detail-pill { margin-bottom: 1rem; }
.ana-detail-title {
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--pub-text);
    margin-bottom: 1rem;
    line-height: 1.2;
}
.ana-detail-desc {
    font-size: 1rem;
    color: var(--pub-text-secondary);
    line-height: 1.7;
    margin-bottom: 1.5rem;
}
.ana-detail-items { gap: 1rem; }
.ana-detail-item-icon { margin-bottom: .75rem; }
.ana-checklist-title { margin-bottom: 1.25rem; }
.ana-checklist-row { padding: .5rem 0; }

.ana-usecases-grid { margin-top: 2rem; }
.ana-usecase-card { text-align: center; }
.ana-usecase-icon { margin: 0 auto 1rem; }

.ana-faq-container { max-width: 48rem; }
.ana-faq-list { display: flex; flex-direction: column; gap: .625rem; }

.ana-cta-container { position: relative; z-index: 1; }
.ana-cta-trust {
    text-align: center;
    font-size: .8125rem;
    color: color-mix(in srgb, var(--color-white, #fff) 45%, transparent);
    margin-top: 1.25rem;
}

/* ============================================
   PLUGIN COMMUNITY — extraído de plugin-community.php
   ============================================ */
.com-page ul[role="list"],
.com-page ol {
    list-style: none;
    padding: 0;
    margin: 0;
}
.com-page .com-anim-delay {
    animation-delay: var(--com-anim-delay, 0ms);
}

.com-page .com-hero-orb-1 {
    background: radial-gradient(circle, rgba(var(--com-grad-rgb), .18) 0%, transparent 70%);
}
.com-page .com-hero-orb-2 {
    background: radial-gradient(circle, rgba(var(--com-grad-rgb), .10) 0%, transparent 70%);
}
.com-page .com-cta-orb-1 {
    background: radial-gradient(circle, rgba(var(--com-grad-rgb), .15) 0%, transparent 70%);
}
.com-page .com-cta-orb-2 {
    background: radial-gradient(circle, rgba(var(--com-grad-rgb), .08) 0%, transparent 70%);
}

.com-page .com-grad-text {
    background: linear-gradient(135deg, var(--com-grad-from), var(--com-grad-to));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.com-page .com-grad-bg {
    background: linear-gradient(135deg, var(--com-grad-from), var(--com-grad-to));
}
.com-page .com-icon-accent { color: var(--com-grad-from); }
.com-page .com-icon-success { color: var(--pub-success); }
.com-page .com-icon-danger { color: var(--pub-danger); }
.com-page .com-icon-xs { font-size: .625rem; }
.com-page .com-check-icon { color: var(--pub-success); }

.com-page .com-profile-stack {
    display: flex;
    flex-direction: column;
    gap: .625rem;
    margin-top: .25rem;
}
.com-page .com-avatar-grad {
    background: linear-gradient(135deg, var(--com-grad-from), var(--com-grad-to));
}
.com-page .com-avatar-purple {
    background: linear-gradient(135deg, #8b5cf6, #6d28d9);
}
.com-page .com-avatar-emerald {
    background: linear-gradient(135deg, #10b981, #047857);
}
.com-page .com-avatar-icon {
    font-size: .75rem;
    color: var(--color-white, #fff);
}
.com-page .com-badge-icon-sm { font-size: .6rem; }
.com-page .com-dot-success { background: var(--pub-success); }
.com-page .com-dot-warning { background: var(--pub-warning); }

.com-page .com-card-footer {
    border-top: 1px solid color-mix(in srgb, var(--color-white, #fff) 8%, transparent);
    margin-top: .75rem;
    padding-top: .75rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.com-page .com-card-footer-label {
    font-size: .75rem;
    color: color-mix(in srgb, var(--color-white, #fff) 50%, transparent);
}
.com-page .com-card-footer-growth {
    font-size: .75rem;
    font-weight: 600;
    padding: .125rem .5rem;
    border-radius: 9999px;
}

.com-page .com-numbers-section {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
}
.com-page .com-num-icon {
    font-size: 1.25rem;
    margin-bottom: .5rem;
    color: var(--com-grad-from);
}
.com-page .com-num-desc {
    font-size: .75rem;
    color: var(--pub-text-muted);
    margin-top: .25rem;
}

.com-page .com-card-accent {
    --pub-card-accent: linear-gradient(90deg, var(--com-grad-from), var(--com-grad-to));
}
.com-page .com-benefit-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}
.com-page .com-benefit-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--pub-text);
    margin: 0;
}
.com-page .com-benefit-detail {
    margin-top: .75rem;
    padding-top: .75rem;
    border-top: 1px solid var(--pub-border);
}

.com-page .com-step-icon { margin-bottom: .75rem; }
.com-page .com-step-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--pub-text);
    margin-bottom: .5rem;
}

.com-page .com-compare-container { max-width: 52rem; }
.com-page .com-compare-card { overflow: hidden; }
.com-page .com-compare-scroll { overflow-x: auto; }
.com-page .com-compare-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .875rem;
}
.com-page .com-compare-thead-row {
    border-bottom: 1px solid var(--pub-border);
    background: var(--pub-bg-subtle);
}
.com-page .com-compare-th {
    padding: .875rem 1.25rem;
    text-align: left;
    font-weight: 700;
    color: var(--pub-text);
}
.com-page .com-compare-th-us {
    text-align: center;
    color: var(--com-grad-from);
}
.com-page .com-compare-th-them {
    text-align: center;
    font-weight: 600;
    color: var(--pub-text-muted);
}
.com-page .com-compare-row {
    border-bottom: 1px solid var(--pub-border);
}
.com-page .com-compare-row-alt {
    background: var(--pub-bg-subtle);
}
.com-page .com-compare-td {
    padding: .875rem 1.25rem;
}
.com-page .com-compare-td-feat {
    color: var(--pub-text-secondary);
    font-weight: 500;
}
.com-page .com-compare-td-us {
    text-align: center;
    color: var(--pub-success);
    font-weight: 700;
}
.com-page .com-compare-td-them {
    text-align: center;
    color: var(--pub-text-muted);
}

.com-page .com-platforms-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.25rem;
    margin-top: 2rem;
}
.com-page .com-platform-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .625rem;
    padding: 1.5rem 2rem;
    min-width: 120px;
    transition: all 200ms ease;
    animation-delay: var(--com-anim-delay, 0ms);
}
.com-page .com-platform-icon {
    font-size: 1.75rem;
    color: var(--com-platform-color, var(--com-grad-from));
}
.com-page .com-platform-name {
    font-size: .8125rem;
    font-weight: 600;
    color: var(--pub-text);
}

.com-page .com-usecase-card { padding: 1.5rem; }
.com-page .com-usecase-icon { margin-bottom: .875rem; }
.com-page .com-usecase-title {
    font-size: .9375rem;
    font-weight: 700;
    color: var(--pub-text);
    margin: 0 0 .5rem;
}
.com-page .com-usecase-desc { font-size: .8125rem; }

.com-page .com-faq-container { max-width: 48rem; }
.com-page .com-faq-list {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.com-page .com-cta-container {
    position: relative;
    z-index: 1;
}
.com-page .com-cta-avatars-wrap {
    display: flex;
    justify-content: center;
    margin-bottom: 1.5rem;
}
.com-page .com-cta-avatar {
    border: 2px solid color-mix(in srgb, var(--color-white, #fff) 15%, transparent);
}
.com-page .com-cta-avatar-icon { font-size: .625rem; }
.com-page .com-cta-trust {
    margin-top: 1.25rem;
    font-size: .8125rem;
    color: color-mix(in srgb, var(--color-white, #fff) 45%, transparent);
}
.com-page .com-cta-trust-icon {
    color: var(--pub-success);
    margin-right: .25rem;
}

/* ============================================
   PLUGIN COMMERCE — extraído de plugin-commerce.php
   ============================================ */
.cmc-page { display: block; }
.cmc-page ul[role="list"],
.cmc-page ol { list-style: none; margin: 0; padding: 0; }

/* Gradient utilities */
.cmc-grad-text {
    background: linear-gradient(135deg, var(--cmc-grad-from), var(--cmc-grad-to));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.cmc-grad-bg { background: linear-gradient(135deg, var(--cmc-grad-from), var(--cmc-grad-to)); }
.cmc-icon-accent { color: var(--cmc-grad-from); }
.cmc-check-icon {
    color: var(--cmc-grad-from);
    font-size: .875rem;
    flex-shrink: 0;
    margin-top: .125rem;
}
.cmc-card-accent {
    --pub-card-accent: linear-gradient(90deg, var(--cmc-grad-from), var(--cmc-grad-to));
}
.cmc-icon-margin { margin-right: .35rem; }

/* Hero / CTA orbs */
.cmc-hero-orb-1 { background: radial-gradient(circle, rgba(var(--cmc-grad-rgb), .18) 0%, transparent 70%); }
.cmc-hero-orb-2 { background: radial-gradient(circle, rgba(var(--cmc-grad-rgb), .10) 0%, transparent 70%); }
.cmc-cta-orb-1 { background: radial-gradient(circle, rgba(var(--cmc-grad-rgb), .18) 0%, transparent 70%); }
.cmc-cta-orb-2 { background: radial-gradient(circle, rgba(var(--cmc-grad-rgb), .10) 0%, transparent 70%); }

/* Animação delay */
.cmc-anim-delay { animation-delay: var(--cmc-anim-delay, 0ms); }

/* Hero checkout card */
.cmc-order-item {
    background: color-mix(in srgb, var(--color-white, #fff) 5%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-white, #fff) 8%, transparent);
    border-radius: .625rem;
    padding: .875rem 1rem;
    margin-bottom: .875rem;
}
.cmc-order-item-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .375rem;
}
.cmc-order-item-name {
    font-size: .875rem;
    font-weight: 600;
    color: color-mix(in srgb, var(--color-white, #fff) 85%, transparent);
}
.cmc-order-item-qty {
    font-size: .6875rem;
    color: color-mix(in srgb, var(--color-white, #fff) 40%, transparent);
}
.cmc-order-price {
    font-size: 1.625rem;
    font-weight: 800;
    letter-spacing: -.03em;
}
.cmc-order-price-cycle {
    font-size: .875rem;
    font-weight: 500;
    -webkit-text-fill-color: color-mix(in srgb, var(--color-white, #fff) 40%, transparent);
    color: color-mix(in srgb, var(--color-white, #fff) 40%, transparent);
}
.cmc-secure-badge {
    display: flex;
    align-items: center;
    gap: .5rem;
    background: color-mix(in srgb, var(--pub-success, #10b981) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--pub-success, #10b981) 20%, transparent);
    border-radius: .5rem;
    padding: .5rem .75rem;
    margin-bottom: .875rem;
}
.cmc-secure-icon { color: var(--pub-success); font-size: .875rem; flex-shrink: 0; }
.cmc-secure-text { font-size: .8125rem; font-weight: 600; color: var(--pub-success); }
.cmc-pay-methods { margin-bottom: .625rem; }
.cmc-pay-methods-label {
    font-size: .6875rem;
    color: color-mix(in srgb, var(--color-white, #fff) 40%, transparent);
    text-transform: uppercase;
    letter-spacing: .07em;
    display: block;
    margin-bottom: .5rem;
}
.cmc-pay-methods-list { display: flex; flex-wrap: wrap; gap: .375rem; }
.cmc-pay-method {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    background: color-mix(in srgb, var(--color-white, #fff) 8%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-white, #fff) 12%, transparent);
    border-radius: .375rem;
    padding: .3125rem .625rem;
    font-size: .6875rem;
    font-weight: 600;
    color: color-mix(in srgb, var(--color-white, #fff) 70%, transparent);
}
.cmc-pay-method-icon { font-size: .625rem; }
.cmc-guarantee {
    display: flex;
    align-items: center;
    gap: .5rem;
    border-top: 1px solid color-mix(in srgb, var(--color-white, #fff) 7%, transparent);
    padding-top: .75rem;
    margin-top: .375rem;
}
.cmc-guarantee-icon {
    color: color-mix(in srgb, var(--color-white, #fff) 40%, transparent);
    font-size: .75rem;
    flex-shrink: 0;
}
.cmc-guarantee-text {
    font-size: .75rem;
    color: color-mix(in srgb, var(--color-white, #fff) 40%, transparent);
}

/* Trust bar */
.cmc-trust-section {
    padding: 1.5rem 1.25rem;
    border-top: 1px solid var(--pub-border);
    border-bottom: 1px solid var(--pub-border);
}
.cmc-trust-icon {
    background: rgba(var(--cmc-grad-rgb), .12);
    color: var(--cmc-grad-from);
    flex-shrink: 0;
}
.cmc-trust-label { font-size: .8125rem; font-weight: 600; color: var(--pub-text); }

/* Numbers */
.cmc-numbers-section { padding-top: 3.5rem; padding-bottom: 3.5rem; }

/* Features */
.cmc-feature-grid { gap: .625rem; margin-top: 2rem; }
.cmc-feature-item {
    padding: .75rem 1rem;
    background: var(--pub-bg-card);
    border: 1px solid var(--pub-border);
    border-radius: .75rem;
    align-items: flex-start;
    gap: .875rem;
    transition: border-color var(--pub-transition-fast);
}
.cmc-feature-icon { flex-shrink: 0; margin-top: .125rem; }
.cmc-feature-body { min-width: 0; }
.cmc-feature-title { font-size: .9375rem; font-weight: 700; color: var(--pub-text); margin: 0 0 .25rem; }
.cmc-feature-desc { font-size: .8125rem; color: var(--pub-text-muted); margin: 0; line-height: 1.55; }

/* Benefits */
.cmc-benefits-grid { margin-top: 2rem; }
.cmc-benefit-header { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.cmc-benefit-title { font-size: 1rem; font-weight: 700; color: var(--pub-text); margin: 0; }
.cmc-benefit-detail { margin-top: .75rem; padding-top: .75rem; border-top: 1px solid var(--pub-border); }

/* How it works */
.cmc-how-grid { gap: 2rem; }
.cmc-step-card { position: relative; }
.cmc-step-number-spaced { margin-bottom: 1.25rem; }
.cmc-step-title { margin-bottom: .5rem; }
.cmc-step-detail { margin-top: .75rem; }

/* Comparison */
.cmc-comparison-container { max-width: 56rem; }
.cmc-comparison-grid { gap: 1.5rem; margin-top: 2rem; }
.cmc-cmp-header { display: flex; align-items: center; gap: .75rem; margin-bottom: 1.5rem; }
.cmc-cmp-icon-bad {
    background: color-mix(in srgb, var(--pub-danger, #ef4444) 10%, transparent);
    color: var(--pub-danger);
    border-radius: 50%;
}
.cmc-cmp-icon-good {
    background: rgba(var(--cmc-grad-rgb), .12);
    color: var(--cmc-grad-from);
    border-radius: 50%;
}
.cmc-cmp-title { font-size: 1rem; font-weight: 700; color: var(--pub-text); margin: 0; }
.cmc-cmp-after { border-color: rgba(var(--cmc-grad-rgb), .3); }
.cmc-cmp-list { display: block; }
.cmc-cmp-item { padding: .5rem 0; border-bottom: 1px solid var(--pub-border); }
.cmc-cmp-x { color: var(--pub-danger); font-size: .75rem; flex-shrink: 0; margin-top: .125rem; }
.cmc-cmp-check { color: var(--cmc-grad-from); font-size: .75rem; flex-shrink: 0; margin-top: .125rem; }
.cmc-cmp-text { font-size: .875rem; color: var(--pub-text-secondary); }
.cmc-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--pub-border);
    border-radius: .875rem;
    margin-top: 2rem;
    -webkit-overflow-scrolling: touch;
}
.cmc-cmp-table { width: 100%; min-width: 480px; border-collapse: collapse; }
.cmc-cmp-table-head { background: var(--pub-bg-alt); }
.cmc-cmp-th {
    text-align: center;
    padding: .875rem 1.25rem;
    font-size: .8125rem;
    font-weight: 700;
    color: var(--pub-text);
    border-bottom: 1px solid var(--pub-border);
}
.cmc-cmp-th-left { text-align: left; }
.cmc-cmp-row-alt { background: var(--pub-bg-subtle); }
.cmc-cmp-td { padding: .75rem 1.25rem; border-bottom: 1px solid var(--pub-border); }
.cmc-cmp-td-label { font-size: .875rem; font-weight: 600; color: var(--pub-text); }
.cmc-cmp-td-center { text-align: center; }
.cmc-cmp-check-lg { color: var(--cmc-grad-from); font-size: 1rem; }
.cmc-cmp-x-lg { color: var(--pub-text-muted); font-size: 1rem; }
.cmc-cmp-val { font-size: .875rem; font-weight: 600; color: var(--pub-text); }

/* Detail sections */
.cmc-detail-grid { gap: 3rem; align-items: center; }
.cmc-detail-pill { margin-bottom: 1rem; }
.cmc-detail-title {
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--pub-text);
    margin-bottom: 1rem;
    line-height: 1.2;
}
.cmc-detail-desc {
    font-size: 1rem;
    color: var(--pub-text-secondary);
    line-height: 1.7;
    margin-bottom: 1.5rem;
}
.cmc-detail-items { gap: 1rem; }
.cmc-detail-item-icon { margin-bottom: .75rem; }
.cmc-checklist-title { margin-bottom: 1.25rem; }
.cmc-checklist-row { padding: .5rem 0; }

/* Use cases */
.cmc-usecases-grid { margin-top: 2rem; }
.cmc-usecase-card { text-align: center; }
.cmc-usecase-icon { margin: 0 auto 1rem; }

/* FAQ */
.cmc-faq-container { max-width: 48rem; }
.cmc-faq-list { display: flex; flex-direction: column; gap: .625rem; }

/* CTA */
.cmc-cta-container { position: relative; z-index: 1; }
.cmc-cta-trust {
    font-size: .8125rem;
    color: color-mix(in srgb, var(--color-white, #fff) 40%, transparent);
    margin-top: 1.25rem;
    letter-spacing: .01em;
}
.cmc-cta-trust-icon { margin-right: .375rem; }

/* ============================================
   PLUGIN AI — extraído de plugin-ai.php
   ============================================ */
.ai-page {
    --ai-grad-from: #6366f1;
    --ai-grad-to: #4f46e5;
    --ai-grad-rgb: 99,102,241;
}
.ai-page ul,
.ai-page ol {
    list-style: none;
    padding: 0;
    margin: 0;
}
.ai-grad-text {
    background: linear-gradient(135deg, var(--ai-grad-from), var(--ai-grad-to));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.ai-grad-bg { background: linear-gradient(135deg, var(--ai-grad-from), var(--ai-grad-to)); }
.ai-icon-accent { color: var(--ai-grad-from); }
.ai-icon-accent-bg { background: rgba(var(--ai-grad-rgb), .12); color: var(--ai-grad-from); }
.ai-anim-delay { animation-delay: var(--ai-anim-delay, 0ms); }
.ai-hero-orb-1 { background: radial-gradient(circle, rgba(var(--ai-grad-rgb), .20) 0%, transparent 70%); }
.ai-hero-orb-2 { background: radial-gradient(circle, rgba(var(--ai-grad-rgb), .10) 0%, transparent 70%); }
.ai-hero { position: relative; overflow: hidden; }
.ai-hero__inner { position: relative; z-index: 2; }
.ai-hero-pill { border-color: rgba(var(--ai-grad-rgb), .4); }
.ai-hero-desc {
    color: color-mix(in srgb, var(--color-white, #fff) 70%, transparent);
    max-width: 36rem;
    margin-bottom: 2rem;
    line-height: 1.7;
}

.ai-neural-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(var(--ai-grad-rgb), .04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(var(--ai-grad-rgb), .04) 1px, transparent 1px);
    background-size: 48px 48px;
    pointer-events: none;
}

.ai-terminal-card {
    background: rgba(10,10,20,.92);
    border: 1px solid rgba(var(--ai-grad-rgb), .22);
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 24px 64px rgba(0,0,0,.45);
    font-family: 'Courier New', 'Menlo', monospace;
}
.ai-terminal__header {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .75rem 1.25rem;
    background: color-mix(in srgb, var(--color-white, #fff) 4%, transparent);
    border-bottom: 1px solid color-mix(in srgb, var(--color-white, #fff) 6%, transparent);
}
.ai-terminal__dots { display: flex; gap: .375rem; }
.ai-terminal__dot { width: .75rem; height: .75rem; border-radius: 50%; }
.ai-terminal__dot--red    { background: #ff5f56; }
.ai-terminal__dot--yellow { background: #ffbd2e; }
.ai-terminal__dot--green  { background: #27c93f; }
.ai-terminal__title {
    flex: 1;
    text-align: center;
    font-size: .75rem;
    color: color-mix(in srgb, var(--color-white, #fff) 40%, transparent);
    font-family: inherit;
}
.ai-terminal__status {
    font-size: .6875rem;
    color: color-mix(in srgb, var(--color-white, #fff) 35%, transparent);
    display: flex;
    align-items: center;
    gap: .375rem;
}
.ai-terminal__status-dot { color: #10b981; font-size: .45rem; }
.ai-terminal__body { padding: 1.25rem 1.5rem 1rem; }
.ai-terminal__line {
    display: flex;
    align-items: baseline;
    gap: .5rem;
    padding: .25rem 0;
    font-size: .8125rem;
    line-height: 1.6;
}
.ai-terminal__line--cursor { margin-top: .5rem; }
.ai-terminal__prompt { font-weight: 700; flex-shrink: 0; color: var(--ai-grad-from); }
.ai-terminal__text { color: color-mix(in srgb, var(--color-white, #fff) 75%, transparent); flex: 1; }
.ai-terminal__badge {
    flex-shrink: 0;
    font-size: .625rem;
    font-weight: 700;
    padding: .125rem .5rem;
    border-radius: 999px;
    letter-spacing: .05em;
}
.ai-terminal__badge--ok   { background: rgba(16,185,129,.2); color: #10b981; }
.ai-terminal__badge--pct  { background: rgba(var(--ai-grad-rgb), .2); color: var(--ai-grad-from); }
.ai-terminal__badge--done { background: rgba(16,185,129,.15); color: #10b981; }
.ai-terminal__cursor {
    display: inline-block;
    color: var(--ai-grad-from);
    animation: ai-blink 1s step-end infinite;
    font-size: .875rem;
}

.ai-capability-card {
    position: relative;
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease;
    cursor: default;
}
.ai-capability-card:hover { transform: translateY(-3px); }
.ai-capability-card.is-glowing { box-shadow: 0 8px 32px rgba(var(--ai-grad-rgb), .18); }
.ai-capability-card__icon-wrap {
    width: 3rem;
    height: 3rem;
    border-radius: .875rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(var(--ai-grad-rgb), .15), rgba(var(--ai-grad-rgb), .05));
    border: 1px solid rgba(var(--ai-grad-rgb), .2);
}
.ai-capability-card__icon { color: var(--ai-grad-from); font-size: 1.375rem; }
.ai-capability-card__tag {
    font-size: .625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    padding: .2rem .625rem;
    border-radius: 999px;
    white-space: nowrap;
    background: rgba(var(--ai-grad-rgb), .12);
    color: var(--ai-grad-from);
}
.ai-capability-card__glow {
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0;
    transition: opacity .25s ease;
    background: radial-gradient(circle at 50% 0%, rgba(var(--ai-grad-rgb), .14), transparent 70%);
}
.ai-capability-card:hover .ai-capability-card__glow,
.ai-capability-card.is-glowing .ai-capability-card__glow { opacity: 1; }

.ai-squad-block { margin-bottom: 2.5rem; }
.ai-squad-head { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; }
.ai-squad-icon { background: rgba(var(--ai-grad-rgb), .12); color: var(--ai-grad-from); border-radius: .75rem; }
.ai-squad-title { font-size: 1.25rem; font-weight: 700; color: var(--pub-text); line-height: 1.25; }
.ai-squad-desc { font-size: .8125rem; color: var(--pub-text-muted); line-height: 1.35; }

.ai-agent-name { font-size: .9375rem; font-weight: 700; color: var(--pub-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ai-agent-name-md { font-size: .9375rem; font-weight: 700; color: var(--pub-text); }
.ai-agent-tier { font-size: .6875rem; font-weight: 600; padding: .125rem .5rem; border-radius: 999px; }
.ai-agent-tier--free       { background: rgba(16,185,129,.1);  color: #10b981; }
.ai-agent-tier--starter    { background: rgba(14,165,233,.1);  color: #0ea5e9; }
.ai-agent-tier--pro        { background: rgba(139,92,246,.1);  color: #8b5cf6; }
.ai-agent-tier--enterprise { background: rgba(245,158,11,.1);  color: #f59e0b; }
.ai-agent-role {
    font-size: .75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: .375rem;
    color: var(--ai-grad-from);
}
.ai-agent-desc {
    font-size: .8125rem;
    color: var(--pub-text-secondary);
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.ai-agents-cta-trust { font-size: .8125rem; color: var(--pub-text-muted); margin-top: .75rem; }

.ai-feature-title { font-size: .9375rem; font-weight: 700; color: var(--pub-text); margin-bottom: .25rem; line-height: 1.35; }

.ai-features-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 640px) {
    .ai-features-grid { grid-template-columns: repeat(2, 1fr); }
}

.ai-stepper { display: flex; flex-direction: column; gap: 0; }
.ai-stepper__step { display: grid; grid-template-columns: 2.5rem 1fr; gap: 1.5rem; align-items: start; }
.ai-stepper__track { display: flex; flex-direction: column; align-items: center; }
.ai-stepper__number {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: .9375rem;
    color: var(--color-white, #fff);
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}
.ai-stepper__connector {
    width: 2px;
    flex: 1;
    min-height: 2rem;
    margin: .25rem 0;
    border-radius: 2px;
    background: linear-gradient(180deg, rgba(var(--ai-grad-rgb), .4), rgba(var(--ai-grad-rgb), .05));
}
.ai-stepper__content { padding-bottom: 2rem; }
.ai-stepper__card--alt { border-color: rgba(var(--ai-grad-rgb), .18); }

.ai-integrations-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; }
.ai-integration-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
    padding: 1.25rem;
    min-width: 110px;
}
.ai-integration-icon { color: var(--ai-integ-color, var(--ai-grad-from)); font-size: 2rem; }
.ai-integration-name { font-size: .8125rem; font-weight: 600; color: var(--pub-text); }

.ai-faq__item {
    border: 1px solid var(--pub-border);
    border-radius: .75rem;
    margin-bottom: .5rem;
    overflow: hidden;
    background: var(--pub-bg-card-solid);
    transition: border-color .15s ease;
}
.ai-faq__item.is-open { border-color: rgba(var(--ai-grad-rgb), .3); }
.ai-faq__trigger {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.125rem 1.25rem;
    background: transparent;
    border: none;
    cursor: pointer;
    text-align: left;
}
.ai-faq__question { font-size: .9375rem; font-weight: 600; line-height: 1.4; color: var(--pub-text); }
.ai-faq__icon { flex-shrink: 0; font-size: .875rem; transition: transform .2s ease; color: var(--ai-grad-from); }
.ai-faq__item.is-open .ai-faq__icon { transform: rotate(45deg); }
.ai-faq__answer { padding: 0 1.25rem 1.125rem; font-size: .9375rem; color: var(--pub-text-secondary); line-height: 1.65; }
.ai-faq__answer[hidden] { display: none; }

.ai-cta-icon-wrap { position: relative; width: 5rem; height: 5rem; display: flex; align-items: center; justify-content: center; }
.ai-cta-icon-ring {
    position: absolute;
    inset: -1rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(var(--ai-grad-rgb), .25) 0%, transparent 70%);
}
.ai-cta-icon-inner { width: 4rem; height: 4rem; font-size: 1.5rem; position: relative; z-index: 1; }
.ai-cta-trust { margin-top: 1.25rem; font-size: .8125rem; color: color-mix(in srgb, var(--color-white, #fff) 40%, transparent); }

/* ============================================
   PLUGIN DISPATCHER (plg-disp-*) — extraído de plugin.php
   ============================================ */
.plg-disp-page { display: block; }
.plg-disp-page ul[role="list"],
.plg-disp-page ol.plg-disp-steps,
.plg-disp-page ol.plg-disp-tut-steps { list-style: none; padding: 0; margin: 0; }
.plg-disp-list-reset { list-style: none; padding: 0; margin: 0; }

.plg-disp-sr-only {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

.plg-disp-grad-text {
    background: linear-gradient(135deg, var(--plg-disp-grad-from), var(--plg-disp-grad-to));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}
.plg-disp-grad-bg {
    background: linear-gradient(135deg, var(--plg-disp-grad-from), var(--plg-disp-grad-to));
}
.plg-disp-icon-accent { color: var(--plg-disp-grad-from); }
.plg-disp-check-icon { color: var(--plg-disp-grad-from); }
.plg-disp-muted-icon { color: var(--pub-text-muted); }
.plg-disp-bad-icon { color: var(--pub-danger); }
.plg-disp-success-icon { color: var(--pub-success); }
.plg-disp-shrink-0 { flex-shrink: 0; }
.plg-disp-no-margin { margin: 0; }

.plg-disp-anim-delay { animation-delay: var(--plg-disp-anim-delay, 0ms); }

.plg-disp-hero-orb-1 { background: radial-gradient(circle, rgba(var(--plg-disp-grad-rgb), .15) 0%, transparent 65%); }
.plg-disp-hero-orb-2 { background: radial-gradient(circle, rgba(var(--plg-disp-grad-rgb), .08) 0%, transparent 65%); }

.plg-disp-social-proof { margin-top: .25rem; }
.plg-disp-avatar { border-color: color-mix(in srgb, var(--color-white, #fff) 15%, transparent) !important; }
.plg-disp-avatar-1 { background: rgba(var(--plg-disp-grad-rgb), .5); }
.plg-disp-avatar-2 { background: rgba(var(--plg-disp-grad-rgb), .7); }
.plg-disp-avatar-3 { background: rgba(var(--plg-disp-grad-rgb), .9); }
.plg-disp-strong { color: color-mix(in srgb, var(--color-white, #fff) 90%, transparent); -webkit-text-fill-color: color-mix(in srgb, var(--color-white, #fff) 90%, transparent); }

.plg-disp-hl-row { display: flex; align-items: flex-start; gap: 1rem; padding: .75rem 0; }
.plg-disp-hl-row--divider { border-bottom: 1px solid color-mix(in srgb, var(--color-white, #fff) 8%, transparent); }
.plg-disp-hl-icon {
    flex-shrink: 0; width: 2rem; height: 2rem; border-radius: .5rem;
    display: flex; align-items: center; justify-content: center;
    font-size: .875rem;
    background: rgba(var(--plg-disp-grad-rgb), .2);
    color: var(--plg-disp-grad-from);
}
.plg-disp-hl-title { font-size: .875rem; font-weight: 600; color: var(--color-white, #fff); line-height: 1.25; margin: 0; }
.plg-disp-hl-desc { font-size: .8125rem; color: color-mix(in srgb, var(--color-white, #fff) 50%, transparent); margin: .125rem 0 0; line-height: 1.35; }

.plg-disp-stat-row { display: flex; align-items: center; justify-content: space-between; padding: 1rem 0; }
.plg-disp-stat-row--divider { border-bottom: 1px solid color-mix(in srgb, var(--color-white, #fff) 8%, transparent); }
.plg-disp-stat-row-label { font-size: .9375rem; color: color-mix(in srgb, var(--color-white, #fff) 70%, transparent); }
.plg-disp-stat-row-value { font-size: 1.125rem; font-weight: 800; color: var(--color-white, #fff); }

.plg-disp-section-tight { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.plg-disp-section-cta { padding-top: 3rem; padding-bottom: 3rem; }
.plg-disp-narrow { max-width: 720px; }
.plg-disp-narrow-md { max-width: 48rem; }
.plg-disp-narrow-wide { max-width: 56rem; }

.plg-disp-about-lead { font-size: 1.0625rem; color: var(--pub-text-secondary); line-height: 1.75; margin: 0; }
.plg-disp-about-extra { font-size: .9375rem; color: var(--pub-text-muted); line-height: 1.7; margin-top: 1.25rem; }

.plg-disp-stat-value { font-size: 2.5rem; font-weight: 800; letter-spacing: -.04em; line-height: 1; }

.plg-disp-platform-card {
    display: flex; align-items: center; gap: 1rem;
    padding: 1rem 1.25rem; border-radius: .75rem;
    border: 1px solid var(--pub-border);
    background: var(--pub-bg-card-solid);
    transition: transform 150ms ease;
}
.plg-disp-platform-card:hover { transform: translateY(-2px); }
.plg-disp-platform-icon {
    flex-shrink: 0; width: 2.5rem; height: 2.5rem; border-radius: .625rem;
    display: flex; align-items: center; justify-content: center;
    font-size: 1rem;
    background: rgba(var(--plg-disp-grad-rgb), .12);
    color: var(--plg-disp-grad-from);
}
.plg-disp-platform-body { flex: 1; min-width: 0; }
.plg-disp-platform-name { font-size: .9375rem; font-weight: 700; color: var(--pub-text); }
.plg-disp-platform-meta { font-size: .75rem; color: var(--pub-text-muted); margin-top: .125rem; }
.plg-disp-platforms-footer { text-align: center; margin-top: 1.5rem; }
.plg-disp-platforms-footer-text { font-size: .8125rem; color: var(--pub-text-muted); }

.plg-disp-grid-spaced { margin-top: 2.5rem; }
.plg-disp-benefit-card {
    border-left: 3px solid var(--plg-disp-grad-from);
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}
.plg-disp-benefit-head { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.plg-disp-benefit-title { font-size: 1rem; font-weight: 700; color: var(--pub-text); margin: 0; letter-spacing: -.01em; }
.plg-disp-benefit-detail { margin-top: .875rem; padding-top: .875rem; border-top: 1px solid var(--pub-border); }

.plg-disp-tech-list {
    display: flex; flex-wrap: wrap; justify-content: center;
    gap: 1.25rem; margin-top: 2rem; list-style: none; padding: 0;
}
.plg-disp-tech-item {
    display: flex; flex-direction: column; align-items: center; gap: .5rem;
    min-width: 120px; padding: 1.25rem 1.5rem;
    transition: all 200ms ease;
}
.plg-disp-tech-icon { font-size: 1.875rem; color: var(--plg-disp-tech-color, var(--plg-disp-grad-from)); }
.plg-disp-tech-name { font-size: .8125rem; font-weight: 600; color: var(--pub-text); }

.plg-disp-cmp-grid { gap: 1.5rem; margin-top: 2rem; }
.plg-disp-cmp-head { display: flex; align-items: center; gap: .75rem; margin-bottom: 1.5rem; }
.plg-disp-cmp-circle {
    width: 2rem; height: 2rem; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.plg-disp-cmp-circle-icon { font-size: .875rem; }
.plg-disp-cmp-circle--bad { background: rgba(239,68,68,.12); color: var(--pub-danger); }
.plg-disp-cmp-circle--good { background: rgba(var(--plg-disp-grad-rgb), .12); color: var(--plg-disp-grad-from); }
.plg-disp-cmp-good-card { border-color: rgba(var(--plg-disp-grad-rgb), .3); position: relative; }
.plg-disp-cmp-good-bar {
    position: absolute; top: 0; left: 0; right: 0; height: 3px;
    border-radius: 14px 14px 0 0;
}
.plg-disp-checklist-padded { padding: .625rem 0; }
.plg-disp-checklist-text { font-size: .875rem; color: var(--pub-text-secondary); line-height: 1.5; }
.plg-disp-table-wrap { margin-top: 2rem; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.plg-disp-cmp-table { min-width: 480px; }
.plg-disp-cmp-cell-text { font-size: .875rem; font-weight: 600; color: var(--pub-text); }

.plg-disp-steps { margin-top: 2.5rem; gap: 2rem; position: relative; }
.plg-disp-step { text-align: center; position: relative; }
.plg-disp-step-circle {
    width: 3.5rem; height: 3.5rem; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.375rem; font-weight: 800;
    color: var(--color-white, #fff);
    margin: 0 auto 1.5rem;
    box-shadow: 0 4px 16px rgba(var(--plg-disp-grad-rgb), .35);
}
.plg-disp-step-arrow {
    position: absolute; top: 2.75rem; right: -1.25rem;
    font-size: 1.25rem;
    color: rgba(var(--plg-disp-grad-rgb), .4);
    z-index: 2; display: none;
}
.plg-disp-step-arrow--visible { display: block; }
.plg-disp-step-title { font-size: 1.0625rem; font-weight: 700; color: var(--pub-text); margin-bottom: .625rem; letter-spacing: -.01em; }
.plg-disp-step-desc { font-size: .875rem; color: var(--pub-text-secondary); line-height: 1.65; }
.plg-disp-step-detail { font-size: .8125rem; color: var(--pub-text-muted); margin-top: .75rem; line-height: 1.5; }

.plg-disp-midcta-box {
    padding: 3.5rem 2.5rem;
    border-radius: 1.25rem;
    text-align: center;
    background: linear-gradient(135deg, rgba(var(--plg-disp-grad-rgb), .08), rgba(var(--plg-disp-grad-rgb), .02));
    border: 1px solid rgba(var(--plg-disp-grad-rgb), .15);
}
.plg-disp-midcta-title { font-size: 1.625rem; font-weight: 800; color: var(--pub-text); margin-bottom: .75rem; letter-spacing: -.025em; }
.plg-disp-midcta-desc { font-size: 1rem; color: var(--pub-text-secondary); max-width: 36rem; margin: 0 auto .5rem; line-height: 1.7; }
.plg-disp-midcta-actions { margin-top: 1.75rem; }

.plg-disp-icon-soft { background: rgba(var(--plg-disp-grad-rgb), .12); color: var(--plg-disp-grad-from); }
.plg-disp-number-value { color: var(--plg-disp-grad-from); }

.plg-disp-detail-grid { gap: 4rem; align-items: center; }
.plg-disp-detail-pill { margin-bottom: 1.25rem; }
.plg-disp-detail-title { font-size: 1.75rem; font-weight: 800; color: var(--pub-text); margin-bottom: 1rem; letter-spacing: -.025em; line-height: 1.2; }
.plg-disp-detail-desc { font-size: 1rem; color: var(--pub-text-secondary); line-height: 1.75; margin-bottom: 1.5rem; }
.plg-disp-detail-point { line-height: 1.65; }
.plg-disp-detail-items { gap: 1rem; }
.plg-disp-detail-item-icon { margin-bottom: .875rem; }
.plg-disp-detail-item-desc { line-height: 1.6; }
.plg-disp-checklist-title { margin-bottom: 1.25rem; }
.plg-disp-checklist-line { padding: .5rem 0; }

.plg-disp-squad { margin-bottom: 3rem; }
.plg-disp-squad-head { display: flex; align-items: center; gap: .75rem; margin-bottom: .75rem; }
.plg-disp-squad-icon {
    width: 2.5rem; height: 2.5rem; border-radius: .75rem;
    display: flex; align-items: center; justify-content: center;
    background: rgba(var(--plg-disp-grad-rgb), .12);
    color: var(--plg-disp-grad-from);
    flex-shrink: 0;
}
.plg-disp-squad-title { font-size: 1.125rem; font-weight: 700; color: var(--pub-text); margin: 0; line-height: 1.3; }
.plg-disp-squad-desc { font-size: .8125rem; color: var(--pub-text-muted); margin: .125rem 0 0; line-height: 1.4; }
.plg-disp-squad-grid { gap: 1rem; margin-top: 1rem; }

.plg-disp-agent-card { transition: background-color 150ms ease; }
.plg-disp-agent-head { display: flex; align-items: center; gap: .75rem; margin-bottom: .875rem; }
.plg-disp-agent-meta { flex: 1; min-width: 0; }
.plg-disp-agent-name { font-size: .9375rem; font-weight: 700; color: var(--pub-text); margin: 0 0 .25rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.plg-disp-agent-name--standalone { margin: 0; }
.plg-disp-agent-tier { font-size: .6875rem; font-weight: 600; padding: .125rem .5rem; border-radius: 999px; }
.plg-disp-tier-free { background: rgba(16,185,129,.1); color: #10b981; }
.plg-disp-tier-starter { background: rgba(14,165,233,.1); color: #0ea5e9; }
.plg-disp-tier-pro { background: rgba(139,92,246,.1); color: #8b5cf6; }
.plg-disp-tier-enterprise { background: rgba(245,158,11,.1); color: #f59e0b; }
.plg-disp-agent-role { font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--plg-disp-grad-from); margin-bottom: .375rem; }
.plg-disp-agent-desc {
    font-size: .8125rem; color: var(--pub-text-secondary); line-height: 1.55;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.plg-disp-agent-tone { display: flex; align-items: center; gap: .375rem; margin-top: .75rem; }
.plg-disp-agent-tone-icon { font-size: .6875rem; color: var(--pub-text-muted); }
.plg-disp-agent-tone-text { font-size: .6875rem; color: var(--pub-text-muted); }

.plg-disp-standalone { margin-top: 2rem; }
.plg-disp-standalone-title { font-size: 1.0625rem; font-weight: 700; color: var(--pub-text); margin-bottom: 1.25rem; }
.plg-disp-standalone-grid { gap: 1rem; }

.plg-disp-agents-cta { text-align: center; margin-top: 3rem; }
.plg-disp-agents-cta-sub { font-size: .8125rem; color: var(--pub-text-muted); margin-top: .75rem; }

.plg-disp-tutorials-grid { margin-top: 2rem; }
.plg-disp-tut-head { display: flex; align-items: center; gap: .75rem; margin-bottom: 1.25rem; }
.plg-disp-tut-icon {
    width: 2.5rem; height: 2.5rem; border-radius: .625rem;
    display: flex; align-items: center; justify-content: center;
    background: var(--pub-accent-subtle); color: var(--pub-accent);
    font-size: 1rem; flex-shrink: 0;
}
.plg-disp-tut-title { line-height: 1.4; }
.plg-disp-tut-steps { margin-top: .875rem; list-style: none; padding: 0; }
.plg-disp-tut-step {
    font-size: .8125rem; color: var(--pub-text-secondary);
    padding: .3125rem 0 .3125rem 1.375rem;
    position: relative; line-height: 1.55;
}
.plg-disp-tut-step-icon {
    position: absolute; left: 0; top: .5rem;
    font-size: .5625rem; color: var(--plg-disp-grad-from);
}
.plg-disp-tut-cta { text-align: center; margin-top: 2.5rem; }

.plg-disp-uc-grid { margin-top: 2rem; }
.plg-disp-uc-icon { margin: 0 auto 1.125rem; }

.plg-disp-cta-inner { position: relative; z-index: 10; }
.plg-disp-cta-orb-1,
.plg-disp-cta-orb-2 { position: absolute; pointer-events: none; z-index: 0; }
.plg-disp-cta-orb-1 {
    top: -40%; left: -10%; width: 60%; height: 180%;
    background: radial-gradient(circle, rgba(var(--plg-disp-grad-rgb), .12) 0%, transparent 60%);
}
.plg-disp-cta-orb-2 {
    bottom: -40%; right: -10%; width: 50%; height: 160%;
    background: radial-gradient(circle, rgba(var(--plg-disp-grad-rgb), .08) 0%, transparent 60%);
}
.plg-disp-cta-iconring {
    width: 4rem; height: 4rem; border-radius: 50%;
    margin: 0 auto 1.75rem;
    display: flex; align-items: center; justify-content: center;
    background: rgba(var(--plg-disp-grad-rgb), .15);
    border: 1.5px solid rgba(var(--plg-disp-grad-rgb), .3);
    box-shadow: 0 0 32px rgba(var(--plg-disp-grad-rgb), .2);
    position: relative; z-index: 1;
}
.plg-disp-cta-icon { font-size: 1.375rem; color: var(--plg-disp-grad-from); }
.plg-disp-cta-trust {
    font-size: .8125rem;
    color: color-mix(in srgb, var(--color-white, #fff) 45%, transparent);
    margin-bottom: 0; margin-top: .5rem; letter-spacing: .01em;
}
.plg-disp-cta-actions { margin-top: 2rem; }

/* ============================================
   PLUGIN SOCIAL — extraído de plugin-social.php
   ============================================
   Vars --soc-grad-from / --soc-grad-to / --soc-grad-rgb definidas
   inline no wrapper raiz <main class="soc-page" style="--soc-*: ...">

   NOTA: Cores hex literais nos cards de plataformas (Instagram #e1306c,
   TikTok #010101, YouTube #ff0000, Facebook #1877f2, X #000000,
   LinkedIn #0a66c2, Spotify #1db954, Twitch #9146ff) são BRAND COLORS
   oficiais — não convertidas em tokens, mantidas como literais via
   --soc-platform-color custom property por item.
*/
.soc-page ul.pub-grid-auto,
.soc-page ul.pub-grid-4,
.soc-page ul.pub-grid-2col,
.soc-page ul.pub-numbers-grid,
.soc-page ul.social-platform-strip,
.soc-page ul.social-platforms-strip,
.soc-page ol.social-timeline { list-style: none; padding: 0; margin: 0; }
.soc-page ul.pub-grid-auto > li,
.soc-page ul.pub-grid-4 > li,
.soc-page ul.pub-grid-2col > li,
.soc-page ul.pub-numbers-grid > li,
.soc-page ul.social-platform-strip > li,
.soc-page ul.social-platforms-strip > li,
.soc-page ol.social-timeline > li { list-style: none; }

.soc-hero-orb-1 { background: radial-gradient(circle, rgba(var(--soc-grad-rgb, 14,165,233),.22) 0%, transparent 70%); }
.soc-hero-orb-2 { background: radial-gradient(circle, rgba(var(--soc-grad-rgb, 14,165,233),.12) 0%, transparent 70%); }
.soc-cta-orb-1  { background: radial-gradient(circle, rgba(var(--soc-grad-rgb, 14,165,233),.14) 0%, transparent 70%); }
.soc-cta-orb-2  { background: radial-gradient(circle, rgba(var(--soc-grad-rgb, 14,165,233),.08) 0%, transparent 70%); }

.soc-icon-margin { margin-right: .5rem; }
.soc-grad-text {
    background: linear-gradient(135deg, var(--soc-grad-from, var(--color-primary-500)), var(--soc-grad-to, var(--color-primary-600)));
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent; color: transparent;
}
.soc-grad-bg {
    background: linear-gradient(135deg, var(--soc-grad-from, var(--color-primary-500)), var(--soc-grad-to, var(--color-primary-600)));
}
.soc-icon-accent { color: var(--soc-grad-from, var(--color-primary-500)); }
.soc-check-icon {
    color: var(--soc-grad-from, var(--color-primary-500));
    flex-shrink: 0; margin-top: .2rem; font-size: .875rem;
}
.soc-anim-delay { animation-delay: var(--soc-anim-delay, 0ms); }

.soc-hero-section { position: relative; overflow: hidden; }
.soc-hero-inner { position: relative; z-index: 2; }
.soc-hero-desc {
    color: color-mix(in srgb, var(--color-white, #fff) 72%, transparent);
    max-width: 36rem; margin-bottom: 2rem; line-height: 1.7;
}
.soc-hero-visual { position: relative; }
.soc-hero-card { position: relative; }

.soc-hero-badge-row {
    display: flex; align-items: center; gap: .75rem;
    padding-top: .75rem; padding-bottom: .75rem;
}
.soc-hero-badge-row--divided {
    border-bottom: 1px solid color-mix(in srgb, var(--color-white, #fff) 8%, transparent);
}
.soc-badge-icon-box {
    background: rgba(var(--soc-grad-rgb, 14,165,233), .2);
    color: var(--soc-grad-from, var(--color-primary-500));
}
.soc-hero-badge-text {
    font-size: .875rem; font-weight: 600;
    color: var(--color-white, #fff); line-height: 1.25;
}
.soc-hero-badge-live {
    margin-left: auto; font-size: .6875rem; font-weight: 700;
    padding: .125rem .5rem; border-radius: 9999px;
    background: rgba(var(--soc-grad-rgb, 14,165,233), .18);
    color: var(--soc-grad-from, var(--color-primary-500));
}

.soc-hero-card-footer {
    margin-top: 1rem; padding-top: 1rem;
    border-top: 1px solid color-mix(in srgb, var(--color-white, #fff) 8%, transparent);
    display: flex; align-items: center; justify-content: space-between;
}
.soc-hero-card-footer-label {
    font-size: .75rem;
    color: color-mix(in srgb, var(--color-white, #fff) 50%, transparent);
}
.soc-hero-card-footer-status {
    font-size: .75rem; font-weight: 600;
    color: var(--soc-grad-from, var(--color-primary-500));
}
.soc-status-dot-online { font-size: .5rem; margin-right: .25rem; color: var(--color-success-500); }

.soc-hero-platforms {
    position: relative; z-index: 2;
    border-top: 1px solid color-mix(in srgb, var(--color-white, #fff) 6%, transparent);
    padding: 1.25rem 0; margin-top: 2rem;
}
.soc-hero-platforms-header { display: flex; align-items: center; gap: .5rem; margin-bottom: .75rem; }
.soc-hero-platforms-label {
    font-size: .75rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: .15em;
    color: color-mix(in srgb, var(--color-white, #fff) 40%, transparent);
}
.soc-hero-platform-list { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
.soc-hero-platform-item {
    display: flex; align-items: center; gap: .5rem;
    padding: .375rem .75rem; border-radius: .5rem;
    background: color-mix(in srgb, var(--color-white, #fff) 6%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-white, #fff) 8%, transparent);
}
.soc-hero-platform-icon {
    font-size: 1rem;
    color: var(--soc-platform-color, var(--soc-grad-from, var(--color-primary-500)));
}
.soc-hero-platform-name {
    font-size: .8125rem; font-weight: 500;
    color: color-mix(in srgb, var(--color-white, #fff) 80%, transparent);
}

.soc-numbers-section { padding-top: 3rem; padding-bottom: 3rem; }

.soc-benefit-card {
    --pub-card-accent: linear-gradient(90deg, var(--soc-grad-from, var(--color-primary-500)), var(--soc-grad-to, var(--color-primary-600)));
    position: relative; overflow: hidden;
}
.soc-benefit-header { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.soc-benefit-title { font-size: 1.125rem; font-weight: 700; color: var(--pub-text); line-height: 1.25; }
.soc-benefit-detail { margin-top: .75rem; padding-top: .75rem; border-top: 1px solid var(--pub-border); }

.soc-feature-row--divided { border-bottom: 1px solid var(--pub-border); }
.soc-feature-title { font-size: .9375rem; font-weight: 600; color: var(--pub-text); }
.soc-feature-desc { font-size: .8125rem; color: var(--pub-text-muted); margin-top: .125rem; line-height: 1.35; }
.soc-feature-icon-box {
    background: rgba(var(--soc-grad-rgb, 14,165,233), .1);
    color: var(--soc-grad-from, var(--color-primary-500));
}

.soc-dashboard-card { border-color: rgba(var(--soc-grad-rgb, 14,165,233), .2); }
.soc-dashboard-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.soc-dashboard-live {
    font-size: .6875rem; font-weight: 700; padding: .25rem .625rem; border-radius: 9999px;
    background: rgba(var(--soc-grad-rgb, 14,165,233), .12);
    color: var(--soc-grad-from, var(--color-primary-500));
}
.soc-metric-row { margin-bottom: 1rem; }
.soc-metric-row-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: .375rem; }
.soc-metric-label { font-size: .8125rem; color: var(--pub-text-secondary); }
.soc-metric-value { font-size: .8125rem; font-weight: 700; color: var(--pub-text); }
.soc-metric-bar-track { height: .5rem; border-radius: 9999px; background: rgba(var(--soc-grad-rgb, 14,165,233), .1); }
.soc-metric-bar-fill {
    height: .5rem; border-radius: 9999px; width: var(--soc-bar-pct, 0%);
    background: linear-gradient(90deg, var(--soc-grad-from, var(--color-primary-500)), var(--soc-grad-to, var(--color-primary-600)));
    transition: width .8s ease;
}
.soc-dashboard-footer {
    margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--pub-border);
    display: flex; align-items: center; gap: .5rem;
}
.soc-dashboard-footer-icon {
    background: rgba(var(--soc-grad-rgb, 14,165,233), .1);
    color: var(--soc-grad-from, var(--color-primary-500));
}
.soc-dashboard-footer-text { font-size: .8125rem; color: var(--pub-text-secondary); }

.soc-mini-cards-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; margin-top: .75rem; }
.soc-mini-card { text-align: center; padding: 1rem; }
.soc-mini-card-icon { font-size: 1.25rem; margin-bottom: .5rem; }
.soc-mini-card-title { font-size: .8125rem; font-weight: 600; color: var(--pub-text); }
.soc-mini-card-desc { font-size: .75rem; color: var(--pub-text-muted); }

.soc-platforms-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; }
.soc-platform-card {
    display: flex; flex-direction: column; align-items: center; gap: .5rem;
    padding: 1.25rem; min-width: 110px;
    transition: transform .15s ease, box-shadow .15s ease;
}
.soc-platform-card:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0, 0, 0, .1); }
.soc-platform-icon {
    font-size: 2rem;
    color: var(--soc-platform-color, var(--soc-grad-from, var(--color-primary-500)));
}
.soc-platform-name { font-size: .8125rem; font-weight: 600; color: var(--pub-text); }

.soc-comparison-header { display: flex; align-items: center; gap: .75rem; margin-bottom: 1.25rem; }
.soc-comparison-icon-bad {
    background: color-mix(in srgb, var(--color-danger-500) 12%, transparent);
    color: var(--color-danger-500);
}
.soc-comparison-icon-good {
    background: rgba(var(--soc-grad-rgb, 14,165,233), .12);
    color: var(--soc-grad-from, var(--color-primary-500));
}
.soc-comparison-good-card {
    position: relative; overflow: hidden;
    border-color: rgba(var(--soc-grad-rgb, 14,165,233), .3);
}
.soc-comparison-item-text { font-size: .875rem; color: var(--pub-text-secondary); line-height: 1.5; }
.soc-comparison-table { min-width: 480px; }
.soc-comparison-table-value { font-size: .875rem; font-weight: 600; color: var(--pub-text); }

.soc-mid-cta-section { padding-top: 3rem; padding-bottom: 3rem; }
.soc-mid-cta-banner {
    padding: 3rem 2rem; border-radius: 1rem; text-align: center;
    background: linear-gradient(135deg, rgba(var(--soc-grad-rgb, 14,165,233), .10), rgba(var(--soc-grad-rgb, 14,165,233), .03));
    border: 1px solid rgba(var(--soc-grad-rgb, 14,165,233), .18);
}
.soc-mid-cta-title { font-size: 1.5rem; font-weight: 800; color: var(--pub-text); margin-bottom: .75rem; }
.soc-mid-cta-desc {
    font-size: 1rem; color: var(--pub-text-secondary);
    max-width: 36rem; margin: 0 auto 1.5rem; line-height: 1.625;
}
.soc-mid-cta-actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

.soc-detail-title {
    font-size: 1.75rem; font-weight: 800; color: var(--pub-text);
    margin-bottom: 1rem; line-height: 1.25;
}
.soc-detail-desc { font-size: 1rem; color: var(--pub-text-secondary); line-height: 1.625; margin-bottom: 1.5rem; }

.soc-cta-icon { width: 4rem; height: 4rem; font-size: 1.5rem; }
.soc-cta-trust {
    margin-top: 1.25rem; font-size: .8125rem;
    color: color-mix(in srgb, var(--color-white, #fff) 45%, transparent);
}


/* ============================================
   FIM DO ARQUIVO
   Todas as classes usam prefixo ui-* e cc-*
   ============================================ */
