/* ==========================================================================
   PetroManager - Design tokens
   Linguagem visual inspirada no Salesforce Lightning (SLDS): superficie
   branca sobre fundo neutro, azul de marca unico, bordas finas, raio
   pequeno, tipografia do sistema em 13px e dados em destaque.
   Os nomes antigos (--primary-blue, --gray-*, --shadow-card...) continuam
   valendo e apontam para os tokens novos: templates que ainda usam esses
   nomes herdam o visual novo sem mudanca.
   ========================================================================== */

:root {
    /* ===== MARCA ===== */
    --pm-brand: #0176d3;
    --pm-brand-hover: #014486;
    --pm-brand-active: #032d60;
    --pm-brand-soft: #eef4ff;
    --pm-brand-soft-2: #d8e6fe;
    --pm-focus: 0 0 0 3px rgba(1, 118, 211, 0.28);
    --pm-on-brand: #ffffff;          /* texto sobre preenchimento de marca/estado */
    --pm-avatar-bg: #032d60;
    --pm-success-hover: #22683e;

    /* ===== SUPERFICIES ===== */
    --pm-bg: #f3f3f3;
    --pm-bg-band: #dce8f5;
    --pm-surface: #ffffff;
    --pm-surface-2: #fafafa;
    --pm-surface-3: #f3f3f3;
    --pm-border: #e5e5e5;
    --pm-border-strong: #c9c9c9;
    --pm-border-input: #939393;

    /* ===== TEXTO ===== */
    --pm-text: #181818;
    --pm-text-2: #444444;
    --pm-text-muted: #5c5c5c;
    --pm-text-weak: #747474;
    --pm-text-inverse: #ffffff;

    /* ===== ESTADOS (fundo claro + texto escuro) ===== */
    --pm-success: #2e844a;
    --pm-success-bg: #ebf7e6;
    --pm-success-fg: #22683e;
    --pm-warning: #dd7a01;
    --pm-warning-bg: #fef1d9;
    --pm-warning-fg: #8c4b02;
    --pm-error: #ba0517;
    --pm-error-bg: #fef1ee;
    --pm-error-fg: #8e030f;
    --pm-info: #0176d3;
    --pm-info-bg: #eef4ff;
    --pm-info-fg: #014486;
    --pm-neutral-bg: #f3f3f3;
    --pm-neutral-fg: #444444;
    --pm-success-line: #91db8b;
    --pm-warning-line: #fcc003;
    --pm-error-line: #fe8f7d;
    --pm-info-line: #aacbff;
    --pm-row-hover: #f3f6fa;

    /* ===== ICONES DE OBJETO (quadrado colorido, glifo branco) ===== */
    --pm-ic-dashboard: #ef6e64;
    --pm-ic-report: #06a59a;
    --pm-ic-opportunity: #ff5d2d;
    --pm-ic-contract: #3ba755;
    --pm-ic-proposal: #5867e8;
    --pm-ic-orders: #769ed9;
    --pm-ic-comment: #f4a33c;
    --pm-ic-ai: #9050e9;
    --pm-ic-settings: #747474;
    --pm-ic-quote: #0d9dda;

    /* ===== GRAFICOS (validados p/ daltonismo; ordem fixa) ===== */
    --pm-series-1: #0176d3;
    --pm-series-2: #eb6834;
    --pm-series-3: #1baf7a;
    --pm-series-4: #eda100;
    --pm-series-5: #e87ba4;
    --pm-series-6: #008300;
    --pm-series-7: #4a3aa7;
    --pm-series-8: #e34948;
    /* resultado de proposta: ganhou / perdeu / nao cotou / cotou sozinho */
    --pm-out-won: #06a59a;
    --pm-out-lost: #e34948;
    --pm-out-skip: #eda100;
    --pm-out-solo: #0176d3;
    --pm-grid: #ececec;

    /* ===== TIPOGRAFIA ===== */
    --pm-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --pm-font-mono: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
    --pm-fs-xs: 0.6875rem;  /* 11px */
    --pm-fs-sm: 0.75rem;    /* 12px */
    --pm-fs-base: 0.8125rem;/* 13px */
    --pm-fs-md: 0.875rem;   /* 14px */
    --pm-fs-lg: 1rem;       /* 16px */
    --pm-fs-xl: 1.25rem;    /* 20px */
    --pm-fs-2xl: 1.5rem;    /* 24px */
    --pm-fs-kpi: 1.75rem;   /* 28px */

    /* ===== FORMA ===== */
    --pm-radius: 4px;
    --pm-radius-card: 8px;
    --pm-radius-pill: 999px;
    --pm-shadow-card: 0 2px 2px 0 rgba(0, 0, 0, 0.06);
    --pm-shadow-pop: 0 2px 8px rgba(0, 0, 0, 0.16);
    --pm-shadow-header: 0 2px 4px rgba(0, 0, 0, 0.07);

    /* ===== LAYOUT ===== */
    --pm-header-h: 52px;
    --pm-nav-h: 42px;
    --pm-gutter: 20px;
    --pm-content-max: 1680px;
    --pm-control-h: 32px;

    /* ===== COMPATIBILIDADE (nomes antigos -> tokens novos) ===== */
    --primary-blue: var(--pm-brand);
    --primary-blue-dark: var(--pm-brand-hover);
    --primary-green: var(--pm-success);
    --light-green: #45c65a;
    --accent-cyan: var(--pm-brand);

    --gradient-primary: var(--pm-brand);
    --gradient-green: var(--pm-success);
    --gradient-sidebar: var(--pm-surface);
    --gradient-hero: var(--pm-brand-active);

    --success: var(--pm-success);
    --success-light: var(--pm-success-bg);
    --warning: var(--pm-warning);
    --warning-light: var(--pm-warning-bg);
    --danger: var(--pm-error);
    --danger-light: var(--pm-error-bg);
    --info: var(--pm-info);
    --info-light: var(--pm-info-bg);

    --dark-bg: var(--pm-brand-active);
    --dark-secondary: var(--pm-brand-hover);
    --light-bg: var(--pm-bg);
    --white: var(--pm-surface);
    --gray-100: #f8f8f8;
    --gray-200: var(--pm-border);
    --gray-300: #dddbda;
    --gray-400: var(--pm-border-strong);
    --gray-500: #aeaeae;
    --gray-600: var(--pm-text-weak);
    --gray-700: var(--pm-text-muted);
    --gray-800: var(--pm-text-2);
    --gray-900: var(--pm-text);

    --text-primary: var(--pm-text);
    --text-secondary: var(--pm-text-muted);
    --text-muted: var(--pm-text-weak);
    --text-light: rgba(255, 255, 255, 0.92);
    --text-light-muted: rgba(255, 255, 255, 0.72);

    --sidebar-width: 0px;
    --header-height: calc(var(--pm-header-h) + var(--pm-nav-h));
    --content-padding: var(--pm-gutter);

    --border-radius-sm: var(--pm-radius);
    --border-radius: var(--pm-radius-card);
    --border-radius-lg: var(--pm-radius-card);
    --border-radius-xl: var(--pm-radius-card);
    --border-radius-round: var(--pm-radius-pill);

    --shadow-sm: var(--pm-shadow-card);
    --shadow: var(--pm-shadow-card);
    --shadow-md: var(--pm-shadow-pop);
    --shadow-lg: var(--pm-shadow-pop);
    --shadow-card: var(--pm-shadow-card);

    --font-family: var(--pm-font);
    --font-size-xs: var(--pm-fs-xs);
    --font-size-sm: var(--pm-fs-sm);
    --font-size-base: var(--pm-fs-base);
    --font-size-md: var(--pm-fs-md);
    --font-size-lg: var(--pm-fs-lg);
    --font-size-xl: var(--pm-fs-xl);
    --font-size-2xl: var(--pm-fs-xl);
    --font-size-3xl: var(--pm-fs-kpi);

    --transition-fast: 0.12s ease;
    --transition: 0.18s ease;
    --transition-slow: 0.25s ease;

    --z-sidebar: 1030;
    --z-header: 1030;
    --z-dropdown: 1040;
    --z-modal: 1055;
    --z-tooltip: 1080;

    /* Bootstrap 5: fonte, cor e raio padrao seguem o design system */
    --bs-body-font-family: var(--pm-font);
    --bs-body-font-size: var(--pm-fs-base);
    --bs-body-color: var(--pm-text);
    --bs-border-color: var(--pm-border);
    --bs-border-radius: var(--pm-radius);
    --bs-border-radius-sm: var(--pm-radius);
    --bs-border-radius-lg: var(--pm-radius-card);
    --bs-link-color: var(--pm-brand);
    --bs-link-color-rgb: 1, 118, 211;
    --bs-link-hover-color: var(--pm-brand-hover);
    --bs-link-hover-color-rgb: 1, 68, 134;
    --bs-primary: var(--pm-brand);
    --bs-primary-rgb: 1, 118, 211;
    --bs-success-rgb: 46, 132, 74;
    --bs-danger-rgb: 186, 5, 23;
    --bs-warning-rgb: 221, 122, 1;
    --bs-info-rgb: 1, 118, 211;
    --bs-secondary-color: var(--pm-text-muted);
    --bs-emphasis-color: var(--pm-text);
}

/* ==========================================================================
   TEMA ESCURO
   <html data-theme="dark"> (tema "escuro" do usuario, ou "auto" com o
   sistema em modo escuro - resolvido no <head> do base.html). Mesmos papeis,
   valores proprios para superficie escura; os graficos usam a paleta
   categorica em passos validados contra a superficie #1f2226.
   ========================================================================== */
:root[data-theme="dark"] {
    color-scheme: dark;

    --pm-brand: #3b9bff;
    --pm-brand-hover: #74b7ff;
    --pm-brand-active: #a6d0ff;
    --pm-brand-soft: #14293f;
    --pm-brand-soft-2: #1b3a5c;
    --pm-focus: 0 0 0 3px rgba(59, 155, 255, 0.35);
    --pm-on-brand: #081627;
    --pm-avatar-bg: #3b9bff;
    --pm-success-hover: #7fd98d;

    --pm-bg: #16181b;
    --pm-bg-band: #1a2330;
    --pm-surface: #1f2226;
    --pm-surface-2: #24272c;
    --pm-surface-3: #2b2f35;
    --pm-border: #34383f;
    --pm-border-strong: #484d56;
    --pm-border-input: #5f6570;

    --pm-text: #eceef1;
    --pm-text-2: #c9cdd3;
    --pm-text-muted: #a9aeb6;
    --pm-text-weak: #8d939c;
    --pm-text-inverse: #16181b;

    --pm-success: #45c65a;
    --pm-success-bg: #15301d;
    --pm-success-fg: #7fd98d;
    --pm-warning: #f0a53a;
    --pm-warning-bg: #3a2a0c;
    --pm-warning-fg: #f6c56e;
    --pm-error: #ff6b6b;
    --pm-error-bg: #3b1519;
    --pm-error-fg: #ff9a92;
    --pm-info: #3b9bff;
    --pm-info-bg: #14293f;
    --pm-info-fg: #9ccaff;
    --pm-neutral-bg: #2b2f35;
    --pm-neutral-fg: #c9cdd3;
    --pm-success-line: #2f6b3b;
    --pm-warning-line: #7a5714;
    --pm-error-line: #7a2a31;
    --pm-info-line: #264d78;
    --pm-row-hover: #262a30;

    --pm-series-1: #3987e5;
    --pm-series-2: #d95926;
    --pm-series-3: #199e70;
    --pm-series-4: #c98500;
    --pm-series-5: #d55181;
    --pm-series-6: #008300;
    --pm-series-7: #9085e9;
    --pm-series-8: #e66767;
    --pm-out-won: #06a59a;
    --pm-out-lost: #dc4f6a;
    --pm-out-skip: #b98c00;
    --pm-out-solo: #3987e5;
    --pm-grid: #30343a;

    --pm-shadow-card: 0 1px 2px rgba(0, 0, 0, 0.45);
    --pm-shadow-pop: 0 4px 14px rgba(0, 0, 0, 0.55);
    --pm-shadow-header: 0 1px 0 rgba(255, 255, 255, 0.04), 0 2px 6px rgba(0, 0, 0, 0.5);

    --gray-100: #24272c;
    --gray-300: #3a3e45;
    --gray-500: #6b717b;
    --light-green: #45c65a;

    --bs-body-color: var(--pm-text);
    --bs-body-bg: var(--pm-surface);
    --bs-border-color: var(--pm-border);
    --bs-link-color: var(--pm-brand);
    --bs-link-color-rgb: 59, 155, 255;
    --bs-link-hover-color: var(--pm-brand-hover);
    --bs-link-hover-color-rgb: 116, 183, 255;
    --bs-primary: var(--pm-brand);
    --bs-primary-rgb: 59, 155, 255;
    --bs-success-rgb: 69, 198, 90;
    --bs-danger-rgb: 255, 107, 107;
    --bs-warning-rgb: 240, 165, 58;
    --bs-info-rgb: 59, 155, 255;
    --bs-secondary-color: var(--pm-text-muted);
    --bs-emphasis-color: var(--pm-text);
}
