/* GERADO por design/gerar_tokens.py a partir de design/tokens.json — não edite à mão. */

/* Fonte única (self-hosted; sem Google Fonts) */
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 400; font-display: swap; src: url('/fonts/montserrat/Montserrat-Regular.ttf') format('truetype'); }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 500; font-display: swap; src: url('/fonts/montserrat/Montserrat-Medium.ttf') format('truetype'); }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 600; font-display: swap; src: url('/fonts/montserrat/Montserrat-SemiBold.ttf') format('truetype'); }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 700; font-display: swap; src: url('/fonts/montserrat/Montserrat-Bold.ttf') format('truetype'); }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 800; font-display: swap; src: url('/fonts/montserrat/Montserrat-ExtraBold.ttf') format('truetype'); }

:root {
    --vf-font: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --vf-text-display: 28px; --vf-text-display-weight: 700; --vf-text-display-line: 1.15;
    --vf-text-h1: 22px; --vf-text-h1-weight: 700; --vf-text-h1-line: 1.2;
    --vf-text-h2: 18px; --vf-text-h2-weight: 600; --vf-text-h2-line: 1.25;
    --vf-text-h3: 16px; --vf-text-h3-weight: 600; --vf-text-h3-line: 1.3;
    --vf-text-body: 14px; --vf-text-body-weight: 400; --vf-text-body-line: 1.5;
    --vf-text-small: 12px; --vf-text-small-weight: 400; --vf-text-small-line: 1.4;
    --vf-text-caption: 11px; --vf-text-caption-weight: 600; --vf-text-caption-line: 1.3;
    --vf-text-kpi: 26px; --vf-text-kpi-weight: 700; --vf-text-kpi-line: 1.1;
    --vf-radius-sm: 8px;
    --vf-radius-md: 12px;
    --vf-radius-lg: 16px;
    --vf-radius-chip: 20px;
    --vf-space-1: 4px;
    --vf-space-2: 8px;
    --vf-space-3: 12px;
    --vf-space-4: 16px;
    --vf-space-5: 20px;
    --vf-space-6: 24px;
    --vf-space-8: 32px;

    /* brand */
    --vf-brand-900: #1D3A47;
    --vf-brand-700: #2E576B;
    --vf-brand-500: #3D7A94;
    --vf-brand-300: #6FB3C9;
    --vf-brand-100: #E8F4F8;
    --vf-brand-accent: #007C91;
    --vf-brand-symbol: #007C91;
    --vf-brand-cyan: #1FE2DA;
    /* neutral */
    --vf-bg: #F1F5F9;
    --vf-surface: #FFFFFF;
    --vf-surface2: #F8FAFC;
    --vf-surface3: #EEF2F7;
    --vf-chrome: #FFFFFF;
    --vf-border: #E2E8F0;
    --vf-border2: #CBD5E1;
    --vf-text: #1E293B;
    --vf-text2: #64748B;
    --vf-text3: #94A3B8;
    --vf-inverse: #FFFFFF;
    /* semantic */
    --vf-success: #047857;
    --vf-warning: #B45309;
    --vf-danger: #DC2626;
    --vf-info: #2563EB;
    --vf-success-bg: #ECFDF5;
    --vf-warning-bg: #FFFBEB;
    --vf-danger-bg: #FEF2F2;
    --vf-info-bg: #EFF6FF;
    /* state */
    --vf-state-moving: #15803D;
    --vf-state-stopped: #B45309;
    --vf-state-off: #64748B;
    --vf-state-nosignal: #DC2626;
    --vf-state-out: #334155;
    /* grade */
    --vf-grade-a: #047857;
    --vf-grade-b: #4D7C0F;
    --vf-grade-c: #A16207;
    --vf-grade-d: #C2410C;
    --vf-grade-e: #B91C1C;
    --vf-grade-none: #64748B;
    /* event */
    --vf-event-ev: #C62828;
    --vf-event-er: #E64A19;
    --vf-event-ar1: #C17900;
    --vf-event-ar2: #EF6C00;
    --vf-event-arp: #3949AB;
    --vf-event-ab: #8E24AA;
    --vf-event-fb: #AD1457;
    --vf-event-pae: #1E88E5;
    --vf-event-pee: #106380;
    --vf-event-br: #8D6E63;
    --vf-event-bla: #5C6BC0;
    --vf-event-mle: #607D8B;
    --vf-event-kmsc: #2E7D32;
    --vf-event-bas: #D84315;
    --vf-event-acl: #0288D1;
    --vf-event-cce: #6D4C41;
    --vf-event-imp: #B71C1C;
    --vf-event-ncb: #F57F17;
    --vf-event-pob: #4E342E;
    --vf-event-sme: #D84315;
    --vf-event-upf: #7B1FA2;
    --vf-event-unknown: #64748B;
    --vf-submarca-driver: #006064;
    --vf-submarca-gestao: #0B3C66;
    --vf-submarca-track: #0F2035;
}

html[data-theme="dark"] {
    --vf-brand-900: #111C2E;
    --vf-brand-700: #4D93AD;
    --vf-brand-500: #6FB3C9;
    --vf-brand-300: #9BCADB;
    --vf-brand-100: #233246;
    --vf-brand-accent: #22B8CF;
    --vf-brand-symbol: #1FE2DA;
    --vf-brand-cyan: #1FE2DA;
    --vf-bg: #0F172A;
    --vf-surface: #1A2436;
    --vf-surface2: #1E2A3E;
    --vf-surface3: #233246;
    --vf-chrome: #111C2E;
    --vf-border: #29384D;
    --vf-border2: #3A4D66;
    --vf-text: #E6EDF5;
    --vf-text2: #9FB0C3;
    --vf-text3: #6B7D93;
    --vf-inverse: #0F172A;
    --vf-success: #34D399;
    --vf-warning: #FBBF24;
    --vf-danger: #F87171;
    --vf-info: #60A5FA;
    --vf-success-bg: #0B2F24;
    --vf-warning-bg: #3A2A07;
    --vf-danger-bg: #3B1212;
    --vf-info-bg: #12284A;
    --vf-state-moving: #4ADE80;
    --vf-state-stopped: #FBBF24;
    --vf-state-off: #94A3B8;
    --vf-state-nosignal: #F87171;
    --vf-state-out: #64748B;
    --vf-grade-a: #34D399;
    --vf-grade-b: #A3E635;
    --vf-grade-c: #FACC15;
    --vf-grade-d: #FB923C;
    --vf-grade-e: #F87171;
    --vf-grade-none: #94A3B8;
    --vf-event-ev: #EF5350;
    --vf-event-er: #FF8A65;
    --vf-event-ar1: #FFD54F;
    --vf-event-ar2: #FFB74D;
    --vf-event-arp: #7986CB;
    --vf-event-ab: #CE93D8;
    --vf-event-fb: #F48FB1;
    --vf-event-pae: #64B5F6;
    --vf-event-pee: #4DD0E1;
    --vf-event-br: #BCAAA4;
    --vf-event-bla: #9FA8DA;
    --vf-event-mle: #B0BEC5;
    --vf-event-kmsc: #69F0AE;
    --vf-event-bas: #FF8A65;
    --vf-event-acl: #4FC3F7;
    --vf-event-cce: #A1887F;
    --vf-event-imp: #FF5252;
    --vf-event-ncb: #FFEE58;
    --vf-event-pob: #BCAAA4;
    --vf-event-sme: #FF8A65;
    --vf-event-upf: #BA68C8;
    --vf-event-unknown: #94A3B8;
}

/* Rótulos de estado (legenda universal) */
/* --vf-state-moving = Em movimento */
/* --vf-state-stopped = Parado ligado */
/* --vf-state-off = Desligado */
/* --vf-state-nosignal = Sem sinal */
/* --vf-state-out = Fora de operação */
