/*
 * Tokens del design system Mantyra (Claude Design, dirección «Sello»).
 * Origen: docs/design/Sistema Mantyra_ aplicación de visitas.zip → tokens/*.css
 *
 * Cambios respecto al origen:
 *  - el selector de modo oscuro es [data-bs-theme="dark"] (el que usa el tema Good/Bootstrap);
 *  - las fuentes se sirven en local (mantyra-fonts.css) en lugar de @import de Google Fonts.
 * Los mismos valores se vuelcan a las variables SCSS de Good en frontend/sass/…/_variables.custom.scss.
 */
/* ---- fonts (los @font-face están en mantyra-fonts.css) ---- */
/* Google Fonts (licencia OFL, empaquetables en Android). Descargar TTF para la app nativa. */
600;700&family=Manrope:wght@500;600;700;800&family=JetBrains+Mono:wght@500;600;700&display=swap");
:root{
--font-display:"Geologica",system-ui,sans-serif;
--font-ui:"Manrope",system-ui,sans-serif;
--font-mono:"JetBrains Mono",ui-monospace,monospace;
}

/* ---- colors ---- */
:root{
/* Base: verde bosque + neutros con punto de verde */
--green-900:#0B2A1F;--green-800:#163D32;--green-700:#1D4D3F;--green-600:#1F5A44;--green-500:#1F7A55;--green-400:#3FBF8F;--green-300:#4FB58E;--green-200:#7DD4AE;--green-100:#DCEFE6;--green-50:#EDF7F2;
--neutral-50:#F7F7F3;--neutral-100:#ECEEEA;--neutral-200:#DFE3DF;--neutral-300:#B9C1BC;--neutral-400:#8B968F;--neutral-500:#5D6A63;--neutral-600:#3B4640;--neutral-700:#243029;--neutral-800:#182420;--neutral-850:#14201B;--neutral-900:#0F1613;
--amber-800:#7A3E10;--amber-700:#B0621F;--amber-300:#E0955A;--amber-200:#F0B48A;--amber-100:#F6E3D6;--amber-900:#3D2413;
--red-800:#8A2A22;--red-700:#B3382E;--red-500:#C9524A;--red-300:#E07A73;--red-200:#F1A29B;--red-100:#F6DAD7;--red-900:#40191A;
--blue-800:#1E3F5C;--blue-700:#2F5F8A;--blue-300:#7FB0DD;--blue-100:#DCE9F5;--blue-900:#14263A;
--white:#FFFFFF;--black:#000000;

/* Semánticos · LIGHT */
--brand:var(--green-700);--brand-hover:var(--green-800);--brand-pressed:var(--green-900);--on-brand:var(--white);--brand-soft:var(--green-100);
--accent:var(--green-400);--accent-hover:#36AD80;--on-accent:var(--green-900);
--bg:var(--neutral-50);--surface:var(--white);--surface-raised:var(--white);--surface-sunken:var(--neutral-100);
--border:var(--neutral-200);--border-strong:var(--neutral-300);--focus-ring:var(--green-400);
--text:var(--neutral-850);--text-muted:var(--neutral-500);--text-disabled:var(--neutral-400);--text-on-inverse:var(--neutral-50);
--success:var(--green-500);--on-success:var(--white);--success-soft:var(--green-100);--success-text:var(--green-600);
--warning:var(--amber-700);--on-warning:var(--white);--warning-soft:var(--amber-100);--warning-text:var(--amber-800);
--danger:var(--red-700);--on-danger:var(--white);--danger-soft:var(--red-100);--danger-text:var(--red-800);
--info:var(--blue-700);--on-info:var(--white);--info-soft:var(--blue-100);--info-text:var(--blue-800);
--overlay:rgba(15,22,19,.55);
color-scheme:light;
}
:root[data-bs-theme="dark"], [data-bs-theme="dark"]{
--brand:var(--green-300);--brand-hover:#6CC9A4;--brand-pressed:var(--green-200);--on-brand:var(--green-900);--brand-soft:#173A2F;
--accent:var(--green-400);--accent-hover:#5CCB9F;--on-accent:var(--green-900);
--bg:var(--neutral-900);--surface:var(--neutral-800);--surface-raised:#1E2C27;--surface-sunken:#0C120F;
--border:#27352F;--border-strong:#34453D;--focus-ring:var(--green-400);
--text:#EEF2EF;--text-muted:#98A69E;--text-disabled:#5D6A63;--text-on-inverse:var(--neutral-850);
--success:#5CC49A;--on-success:var(--green-900);--success-soft:#173A2F;--success-text:var(--green-200);
--warning:var(--amber-300);--on-warning:#1F1408;--warning-soft:var(--amber-900);--warning-text:var(--amber-200);
--danger:var(--red-300);--on-danger:#1A0A08;--danger-soft:var(--red-900);--danger-text:var(--red-200);
--info:var(--blue-300);--on-info:#0A1420;--info-soft:var(--blue-900);--info-text:#B5D3EE;
--overlay:rgba(0,0,0,.65);
color-scheme:dark;
}

/* ---- states ---- */
/* Estados de negocio Mantyra: --st-<entidad>-<estado>-{bg,fg}.
   Iconos Lucide por estado (ver StatusBadge.STATUS_ICONS): visita scheduled=calendar, in_progress=loader-circle, completed=check, cancelled=x, overdue=clock-alert · incidencia low=circle, medium=triangle-alert, high=octagon-alert · medicion in_range=circle-check, out_of_range=triangle-alert */
:root{
--st-visita-scheduled-bg:var(--neutral-100);--st-visita-scheduled-fg:var(--neutral-600);
--st-visita-in_progress-bg:var(--green-100);--st-visita-in_progress-fg:var(--green-700);
--st-visita-completed-bg:var(--green-700);--st-visita-completed-fg:var(--white);
--st-visita-cancelled-bg:var(--neutral-100);--st-visita-cancelled-fg:var(--neutral-500);
--st-visita-overdue-bg:var(--amber-100);--st-visita-overdue-fg:var(--amber-800);
--st-incidencia-low-bg:var(--neutral-100);--st-incidencia-low-fg:var(--neutral-600);
--st-incidencia-medium-bg:var(--amber-100);--st-incidencia-medium-fg:var(--amber-800);
--st-incidencia-high-bg:var(--red-100);--st-incidencia-high-fg:var(--red-800);
--st-medicion-in_range-bg:var(--green-100);--st-medicion-in_range-fg:var(--green-600);
--st-medicion-out_of_range-bg:var(--red-100);--st-medicion-out_of_range-fg:var(--red-800);
}
:root[data-bs-theme="dark"], [data-bs-theme="dark"]{
--st-visita-scheduled-bg:var(--neutral-700);--st-visita-scheduled-fg:var(--neutral-300);
--st-visita-in_progress-bg:#173A2F;--st-visita-in_progress-fg:var(--green-200);
--st-visita-completed-bg:var(--green-300);--st-visita-completed-fg:var(--green-900);
--st-visita-cancelled-bg:#1C2622;--st-visita-cancelled-fg:var(--neutral-400);
--st-visita-overdue-bg:var(--amber-900);--st-visita-overdue-fg:var(--amber-200);
--st-incidencia-low-bg:var(--neutral-700);--st-incidencia-low-fg:var(--neutral-300);
--st-incidencia-medium-bg:var(--amber-900);--st-incidencia-medium-fg:var(--amber-200);
--st-incidencia-high-bg:var(--red-900);--st-incidencia-high-fg:var(--red-200);
--st-medicion-in_range-bg:#173A2F;--st-medicion-in_range-fg:var(--green-200);
--st-medicion-out_of_range-bg:var(--red-900);--st-medicion-out_of_range-fg:var(--red-200);
}

/* ---- typography ---- */
:root{
--text-display:700 40px/44px var(--font-display);--ls-display:-0.02em;
--text-h1:700 28px/34px var(--font-display);--ls-h1:-0.015em;
--text-h2:600 22px/28px var(--font-display);--ls-h2:-0.01em;
--text-h3:700 18px/24px var(--font-ui);--ls-h3:0;
--text-body:500 16px/24px var(--font-ui);
--text-body-strong:700 16px/24px var(--font-ui);
--text-small:500 14px/20px var(--font-ui);
--text-caption:700 12px/16px var(--font-ui);--ls-caption:0.06em;
--text-mono:600 16px/24px var(--font-mono);
--text-mono-lg:700 28px/32px var(--font-mono);
--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-extrabold:800;
}

/* ---- spacing ---- */
:root{
--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;
--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:999px;
--border-w:1px;--border-w-strong:2px;
--shadow-1:0 1px 2px rgba(20,32,27,.08);
--shadow-2:0 2px 6px rgba(20,32,27,.06),0 6px 16px rgba(20,32,27,.08);
--shadow-3:0 8px 24px rgba(20,32,27,.12),0 20px 48px rgba(20,32,27,.14);
--touch-min:48px;--control-h:44px;--control-h-sm:36px;--control-h-lg:56px;
--ease-out:cubic-bezier(.2,.8,.2,1);--dur-fast:120ms;--dur-base:200ms;
}
:root[data-bs-theme="dark"], [data-bs-theme="dark"]{
--shadow-1:0 1px 2px rgba(0,0,0,.4);--shadow-2:0 2px 6px rgba(0,0,0,.4),0 6px 16px rgba(0,0,0,.45);--shadow-3:0 8px 24px rgba(0,0,0,.5),0 20px 48px rgba(0,0,0,.55);
}
