/* ============================================================
   GeoManager — Design tokens
   Fonte única de verdade para cores, tipografia, forma e camadas.
   Deve ser carregada ANTES de style.css / map.css / auth.css.
   Os prefixos --map-* e --auth-* são aliases mantidos por
   compatibilidade com o CSS legado.
   ============================================================ */

:root {
    /* --- Marca e estados --- */
    --color-primary: #2563EB;
    --color-primary-hover: #1D4ED8;
    --color-primary-light: #DBEAFE;
    --color-primary-dark: #1E40AF;
    --color-secondary: #3B82F6;
    --color-accent: #22C55E;
    --color-accent-hover: #16A34A;
    --color-accent-light: #DCFCE7;
    --color-danger: #EF4444;
    --color-danger-hover: #DC2626;
    --color-danger-light: #FEE2E2;
    --color-warning: #F59E0B;
    --color-warning-light: #FEF3C7;

    /* --- Sidebar --- */
    --color-sidebar-bg: #0F172A;
    --color-sidebar-hover: #1E293B;
    --color-sidebar-active: rgba(37,99,235,0.15);
    --color-sidebar-border: rgba(255,255,255,0.08);
    --color-sidebar-text: rgba(255,255,255,0.65);
    --color-sidebar-text-active: #60A5FA;

    /* --- Superfícies e texto --- */
    --color-bg: #F1F5F9;
    --color-surface: #FFFFFF;
    --color-border: #E2E8F0;
    --color-border-light: #F1F5F9;
    --color-text: #0F172A;
    --color-text-secondary: #64748B;
    --color-text-muted: #64748B; /* contraste AA; era #94A3B8 (≈2.6:1) */
    --color-text-inverse: #F8FAFC;

    /* --- Forma e profundidade --- */
    --radius-sm: 6px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-xl: 14px;

    --shadow-xs: 0 1px 2px rgba(0,0,0,0.04);
    --shadow-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
    --shadow-md: 0 4px 6px rgba(0,0,0,0.05), 0 2px 4px rgba(0,0,0,0.03);
    --shadow-lg: 0 10px 25px rgba(0,0,0,0.08), 0 4px 10px rgba(0,0,0,0.04);
    --shadow-xl: 0 20px 50px rgba(0,0,0,0.12);

    /* --- Movimento --- */
    --transition-fast: 150ms ease;
    --transition-normal: 200ms ease;
    --transition-slow: 300ms ease;

    /* --- Tipografia --- */
    --font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

    /* --- Layout --- */
    --sidebar-width: 250px;

    /* --- Camadas (z-index) --- */
    --z-dropdown: 1000;
    --z-modal: 2000;
    --z-overlay: 3000;
    --z-toast: 4000;

    /* --- Aliases legados: mapa --- */
    --map-primary: var(--color-primary);
    --map-primary-hover: var(--color-primary-hover);
    --map-primary-light: var(--color-primary-light);
    --map-surface: var(--color-surface);
    --map-bg: var(--color-bg);
    --map-border: var(--color-border);
    --map-text: var(--color-text);
    --map-text-secondary: var(--color-text-secondary);
    --map-text-muted: var(--color-text-muted);
    --map-sidebar-bg: var(--color-sidebar-bg);
    --map-shadow-sm: var(--shadow-sm);
    --map-shadow-md: 0 4px 12px rgba(0,0,0,0.1);
    --map-shadow-lg: 0 8px 24px rgba(0,0,0,0.14);
    --map-radius: var(--radius-md);
    --map-transition: 180ms ease;

    /* --- Aliases legados: autenticação --- */
    --auth-primary: var(--color-primary);
    --auth-primary-hover: var(--color-primary-hover);
    --auth-bg-dark: #0A1428;
    --auth-bg-mid: #1A3A5F;
    --auth-bg-accent: var(--color-primary);
    --auth-surface: rgba(255,255,255,0.98);
    --auth-text: var(--color-text);
    --auth-text-secondary: var(--color-text-secondary);
    --auth-border: var(--color-border);
    --auth-border-focus: var(--color-primary);
    --auth-error: var(--color-danger);
    --auth-error-bg: #FEF2F2;
    --auth-radius: var(--radius-lg);
    --auth-shadow: 0 20px 60px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.1);
    --auth-transition: 200ms ease;
}

/* Acessibilidade: foco visível consistente para teclado.
   Campos com anel próprio (.form-group etc.) mantêm seu estilo. */
:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

/* Utilitário para leitores de tela */
.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;
}
