:root{
/* --- Brand core --- */
--bi-white:#FFFFFF;
--bi-blue:#29B6F6;            /* marca-mae, accents */
--bi-blue-600:#0FA3E4;        /* hover */
--bi-blue-700:#0B87BE;        /* pressed */
--bi-blue-100:#D5F0FD;        /* tints, chips */
--bi-blue-050:#EAF8FE;
--bi-navy:#0B1D3A;            /* institutional base / contrast */
--bi-navy-800:#132A4F;
--bi-navy-700:#1D3A66;
--bi-navy-300:#7A8CA6;
--bi-offwhite:#F7F9FC;        /* clean surfaces */

/* --- Neutrals (cool, derived from navy) --- */
--neutral-000:#FFFFFF;
--neutral-050:#F7F9FC;
--neutral-100:#EEF2F8;
--neutral-200:#DFE6F0;
--neutral-300:#C7D2E0;
--neutral-400:#9AA8BC;
--neutral-500:#6B7A91;
--neutral-600:#4A586D;
--neutral-700:#2E3B4E;
--neutral-900:#0B1D3A;

/* --- Product colours (secondary family codes, never dominant) --- */
--product-panitz:#C6F23D;         /* PanitzScalper - lime */
--product-panitz-ink:#4A6B00;
--product-smartflow-dolar:#1E88FF; /* SmartFlow Dolar - ciano/blue */
--product-smartflow-indice:#FFB02E;/* SmartFlow Indice - ambar */
--product-indicator:#29B6F6;       /* SmartFlow Indicator - BI blue */
--product-portfolio:#0B1D3A;       /* BI Portfolio MT5 - navy */

/* --- Semantic: text --- */
--text-strong:var(--bi-navy);
--text-body:var(--neutral-700);
--text-muted:var(--neutral-500);
--text-subtle:var(--neutral-400);
--text-accent:var(--bi-blue);
--text-on-navy:#FFFFFF;
--text-on-navy-muted:#A9B8CC;
--text-on-accent:#04263A;

/* --- Semantic: surface --- */
--surface-page:var(--bi-white);
--surface-page-alt:var(--bi-offwhite);
--surface-card:var(--bi-white);
--surface-card-alt:var(--neutral-050);
--surface-navy:var(--bi-navy);
--surface-navy-alt:var(--bi-navy-800);
--surface-accent-soft:var(--bi-blue-050);
--surface-glass:rgba(255,255,255,.72);

/* --- Semantic: line --- */
--line-hairline:rgba(11,29,58,.08);   /* technical grids */
--line-soft:var(--neutral-200);
--line-strong:var(--neutral-300);
--line-accent:var(--bi-blue);
--line-on-navy:rgba(255,255,255,.14);

/* --- Semantic: interactive --- */
--action-primary:var(--bi-blue);
--action-primary-hover:var(--bi-blue-600);
--action-primary-active:var(--bi-blue-700);
--action-ink:var(--bi-navy);
--focus-ring:rgba(41,182,246,.45);

/* --- Semantic: market state (charts, deltas) --- */
--market-up:#12B76A;
--market-down:#E5484D;
--market-flat:var(--neutral-400);
--state-info:var(--bi-blue);
--state-warning:#FFB02E;
--state-danger:#E5484D;
--state-success:#12B76A;
}
