/**
 * Tema Governamental - Sistema de Ponto Eletrônico
 * Baseado nos padrões de design GOV.BR
 * Paleta de cores oficiais e identidade visual governamental
 */

/* ============================================
   Importação de Fontes
   ============================================ */

/* Fonte Inter (moderna e profissional para dashboards) */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

/* Fonte Roboto (fallback oficial para GOV.BR) */
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;600;700&display=swap');

/* ============================================
   Variáveis CSS - Paleta Governamental
   ============================================ */

:root {
    /* ========== CORES PRINCIPAIS (GOV.BR) ========== */

    /* Azul Governo (cor institucional - suavizado) */
    --gov-blue-primary: #5B9BD5;
    --gov-blue-dark: #071D41;
    --gov-blue-darker: #0C326F;
    --gov-blue-light: #6BA3E0;
    --gov-blue-lighter: #E8F4FD;

    /* ========== CORES COMPLEMENTARES ========== */

    /* Cinzas */
    --gov-gray-darkest: #333333;
    --gov-gray-dark: #555555;
    --gov-gray-medium: #666666;
    --gov-gray-light: #CCCCCC;
    --gov-gray-lighter: #DDDDDD;
    --gov-gray-lightest: #F8F8F8;

    /* Branco */
    --gov-white: #FFFFFF;

    /* ========== CORES DE STATUS (PADRÃO GOVERNO) ========== */

    /* Sucesso */
    --gov-success: #168821;
    --gov-success-light: #E8F5E9;
    --gov-success-dark: #0F5A15;

    /* Alerta */
    --gov-warning: #FF8C00;
    --gov-warning-light: #FFF3E0;
    --gov-warning-dark: #E67E00;

    /* Erro */
    --gov-danger: #DC3545;
    --gov-danger-light: #FFEBEE;
    --gov-danger-dark: #C62828;

    /* Informação */
    --gov-info: #5B9BD5;
    --gov-info-light: #E3F2FD;
    --gov-info-dark: #0D47A1;

    /* ========== CORES NEUTRAS (PADRÃO GOVERNAMENTAL SÓBRIO) ========== */

    /* Cinza Neutro (para status críticos sem alarme visual) */
    --gov-neutral-gray: #6C757D;
    --gov-neutral-gray-light: #F8F9FA;
    --gov-neutral-gray-dark: #495057;

    /* Âmbar/Bege (para alertas suaves, substitui laranja vibrante) */
    --gov-amber: #856404;
    --gov-amber-light: #FFF8E1;
    --gov-amber-dark: #6C4E03;

    /* Azul Acinzentado (para informações neutras) */
    --gov-blue-soft: #5A6C7D;
    --gov-blue-soft-light: #E8EDF2;

    /* Verde Escuro Suave (para sucessos discretos) */
    --gov-green-muted: #0F5A15;
    --gov-green-muted-light: #E8F5E9;

    /* ========== CORES DE DESTAQUE ========== */

    /* Dourado (elementos especiais - suavizado) */
    --gov-gold: #FFC107;
    --gov-gold-dark: #C5A572;

    /* Verde Bandeira (ações positivas) */
    --gov-green: #009B3A;
    --gov-green-dark: #007A2F;

    /* ========== TIPOGRAFIA ========== */

    /* Família de fontes */
    --font-family-primary: 'Inter', 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Open Sans', sans-serif;
    --font-family-monospace: 'Courier New', 'Consolas', monospace;

    /* Pesos */
    --font-weight-light: 300;
    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;

    /* Tamanhos */
    --font-size-xs: 11px;
    --font-size-sm: 13px;
    --font-size-base: 15px;
    --font-size-lg: 17px;
    --font-size-xl: 18px;
    --font-size-2xl: 22px;
    --font-size-3xl: 28px;

    /* Tamanhos específicos para cards */
    --font-size-card-value: 48px;
    --font-size-card-label: 11px;
    --letter-spacing-label: 0.8px;

    /* Line-height */
    --line-height-tight: 1.2;
    --line-height-normal: 1.5;
    --line-height-relaxed: 1.6;

    /* ========== ESPAÇAMENTOS ========== */

    --spacing-xs: 4px;
    --spacing-sm: 8px;
    --spacing-md: 16px;
    --spacing-lg: 24px;
    --spacing-xl: 32px;
    --spacing-2xl: 48px;

    /* ========== BORDAS E RAIOS ========== */

    --border-radius-none: 0;
    --border-radius-sm: 3px;
    --border-radius-base: 4px;
    --border-radius-md: 6px;
    --border-radius-lg: 8px;
    --border-radius-full: 50%;

    --border-width-thin: 1px;
    --border-width-medium: 2px;
    --border-width-thick: 3px;
    --border-width-accent: 4px;

    /* ========== SOMBRAS ========== */

    --shadow-none: none;
    --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.05);
    --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.06);
    --shadow-base: 0 2px 4px rgba(0, 0, 0, 0.08);
    --shadow-md: 0 4px 8px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 8px 16px rgba(0, 0, 0, 0.15);
    --shadow-xl: 0 12px 24px rgba(0, 0, 0, 0.2);

    /* Sombras coloridas */
    --shadow-primary: 0 2px 4px rgba(91, 155, 213, 0.3);
    --shadow-success: 0 2px 4px rgba(22, 136, 33, 0.3);
    --shadow-danger: 0 2px 4px rgba(220, 53, 69, 0.3);

    /* ========== TRANSIÇÕES ========== */

    --transition-fast: 0.15s ease;
    --transition-base: 0.2s ease;
    --transition-slow: 0.3s ease;

    /* ========== DIMENSÕES ========== */

    /* Header */
    --header-height: 80px;
    --header-mobile-height: 60px;

    /* Sidebar */
    --sidebar-width: 260px;
    --sidebar-collapsed-width: 70px;

    /* Barra de Acessibilidade */
    --accessibility-bar-height: 40px;

    /* ========== Z-INDEX ========== */

    --z-index-dropdown: 1000;
    --z-index-sticky: 1020;
    --z-index-fixed: 1030;
    --z-index-modal-backdrop: 1040;
    --z-index-modal: 1050;
    --z-index-popover: 1060;
    --z-index-tooltip: 1070;
}

/* ============================================
   Aplicação Global do Tema
   ============================================ */

* {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    font-family: var(--font-family-primary);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-regular);
    line-height: var(--line-height-relaxed);
    color: var(--gov-gray-darkest);
}

/* ============================================
   Tipografia Governamental
   ============================================ */

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-family-primary);
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-tight);
    color: var(--gov-blue-dark);
}

h1 {
    font-size: var(--font-size-3xl);
    font-weight: var(--font-weight-semibold);
}

h2 {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-semibold);
}

h3 {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-semibold);
    color: var(--gov-gray-darkest);
}

h4 {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--gov-gray-darkest);
}

/* ============================================
   Utilitários de Cores
   ============================================ */

/* Classes de texto */
.text-primary { color: var(--gov-blue-primary) !important; }
.text-secondary { color: var(--gov-gray-dark) !important; }
.text-success { color: var(--gov-success) !important; }
.text-danger { color: var(--gov-danger) !important; }
.text-warning { color: var(--gov-warning) !important; }
.text-info { color: var(--gov-info) !important; }
.text-muted { color: var(--gov-gray-medium) !important; }

/* Classes de background */
.bg-primary { background-color: var(--gov-blue-primary) !important; }
.bg-secondary { background-color: var(--gov-gray-lightest) !important; }
.bg-success { background-color: var(--gov-success) !important; }
.bg-danger { background-color: var(--gov-danger) !important; }
.bg-warning { background-color: var(--gov-warning) !important; }
.bg-info { background-color: var(--gov-info) !important; }
.bg-white { background-color: var(--gov-white) !important; }

/* ============================================
   Classes Utilitárias
   ============================================ */

/* Espaçamentos */
.mt-0 { margin-top: 0 !important; }
.mt-1 { margin-top: var(--spacing-xs) !important; }
.mt-2 { margin-top: var(--spacing-sm) !important; }
.mt-3 { margin-top: var(--spacing-md) !important; }
.mt-4 { margin-top: var(--spacing-lg) !important; }

.mb-0 { margin-bottom: 0 !important; }
.mb-1 { margin-bottom: var(--spacing-xs) !important; }
.mb-2 { margin-bottom: var(--spacing-sm) !important; }
.mb-3 { margin-bottom: var(--spacing-md) !important; }
.mb-4 { margin-bottom: var(--spacing-lg) !important; }

/* Display */
.d-none { display: none !important; }
.d-block { display: block !important; }
.d-flex { display: flex !important; }
.d-grid { display: grid !important; }

/* Flexbox */
.justify-center { justify-content: center !important; }
.justify-between { justify-content: space-between !important; }
.align-center { align-items: center !important; }
.flex-column { flex-direction: column !important; }

/* ============================================
   Acessibilidade
   ============================================ */

/* Foco visível para teclado */
a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus {
    outline: 2px solid var(--gov-blue-primary);
    outline-offset: 2px;
}

/* Skip to content */
.skip-to-content {
    position: absolute;
    top: -40px;
    left: 0;
    background: var(--gov-blue-dark);
    color: var(--gov-white);
    padding: 8px 16px;
    text-decoration: none;
    z-index: 100;
}

.skip-to-content:focus {
    top: 0;
}

/* ============================================
   Print Styles
   ============================================ */

@media print {
    /* Ocultar navegação e elementos interativos */
    .sidebar,
    .top-header,
    .accessibility-bar,
    .no-print {
        display: none !important;
    }

    /* Ajustar layout para impressão */
    .main-content {
        margin-left: 0 !important;
        margin-top: 0 !important;
    }

    /* Cores seguras para impressão */
    * {
        background: white !important;
        color: black !important;
    }

    /* Manter bordas de tabelas */
    table, th, td {
        border: 1px solid black !important;
    }
}
