/*
 * GENERATED FILE — DO NOT EDIT DIRECTLY
 * Sources: primitives.json · semantic.json · domain.json · typography.json · spacing.json
 * Generated by: scripts/build-tokens.mjs
 * System: Setas de la Peña · DS-2026 · Criterio Edition
 */
@import "fonts.css";

:root {
  /* 1 · PRIMITIVE MINERAL PIGMENTS & GROUNDS */
  --paper-100: #FAF8F3;
  --paper-50: #FEFDFB;
  --paper-200: #EFE9DE;
  --ink-900: #1A1410;
  --ink-700: #3A2F26;
  --ink-500: #6B5B4A;
  --moss-900: #1E2A16;
  --moss-700: #2E3B2F;
  --moss-500: #6D7C5A;
  --coral-500: #B8614D;
  --coral-700: #8A3E2D;
  --slate-500: #4E6A7A;
  --sand-500: #BFA98B;
  --bark-700: #594631;
  --warning: #C49A4C;
  --warning-text: #866629;
  --rule-500: #888888;

  /* Derived colour washes */
  --moss-tint: #EAEFE6;
  --coral-tint: #F7EDE8;
  --warning-tint: #F8F2E2;
  --bark-tint: #EFECE6;

  /* Legacy primitive aliases — compatibility only */
  --paper: var(--paper-100);
  --paper-panel: var(--paper-50);
  --paper-recessed: var(--paper-200);
  --ink: var(--ink-900);
  --ink-muted: var(--ink-500);
  --rule: var(--rule-500);
  --soil: var(--bark-700);
  --moss: var(--moss-700);
  --rust: var(--coral-700);
  --rust-tint: var(--coral-tint);
  --soil-tint: var(--bark-tint);

  /* 2 · SEMANTIC ROLES */
  --surface-page: var(--paper-100);
  --surface-panel: var(--paper-50);
  --surface-recessed: var(--paper-200);
  --surface-inverse: var(--bark-700);
  --text-primary: var(--ink-900);
  --text-secondary: var(--ink-700);
  --text-metadata: var(--ink-500);
  --text-inverse: var(--paper-50);
  --border-hairline: var(--rule-500);
  --border-heavy: var(--ink-900);
  --border-strong: var(--ink-900);
  --brand-primary: var(--moss-700);
  --brand-accent: var(--coral-500);
  --brand-accent-text: var(--coral-700);
  --brand-secondary: var(--slate-500);
  --brand-accent-tint: var(--coral-tint);
  --status-ok: var(--moss-700);
  --status-ok-marker: var(--moss-500);
  --status-warn: var(--warning);
  --status-warn-text: var(--warning-text);
  --status-error: var(--coral-700);
  --status-info: var(--slate-500);
  --status-ok-bg: var(--moss-tint);
  --status-warn-bg: var(--warning-tint);
  --status-warn-marker: var(--warning-text);
  --status-error-bg: var(--coral-tint);
  --action-primary: var(--moss-700);
  --action-secondary: var(--paper-50);
  --focus-ring: var(--moss-700);
  --action-accent: var(--coral-700);
  --action-accent-text: var(--coral-700);
  --action-danger: var(--coral-700);
  --action-danger-text: var(--paper-50);
  --action-primary-hover: var(--moss-900);
  --action-secondary-hover: var(--paper-200);
  --action-accent-hover: var(--coral-700);

  /* 3 · TYPE SCALE & ROLES */
  --weight-thin: 100;
  --weight-light: 300;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-black: 900;

  --size-display-01: 64px;
  --size-display-02: 44px;
  --size-heading-01: 32px;
  --size-heading-02: 24px;
  --size-heading-03: 19px;
  --size-species: 28px;
  --size-latin: 18px;
  --size-cartouche: 17px;
  --size-body: 16px;
  --size-small: 14px;
  --size-data: 13px;
  --size-label: 11px;
  --size-micro-screen: 11px;
  --size-micro-print: 9px;
  --size-lot-code-print: 6mm;
  --size-micro: var(--size-micro-screen);

  --leading-solid: 0.98;
  --leading-tight: 1.1;
  --leading-snug: 1.3;
  --leading-normal: 1.55;
  --leading-data: 1.4;

  --tracking-display: -0.02em;
  --tracking-tight: -0.01em;
  --tracking-normal: 0;
  --tracking-label: 0.15em;
  --tracking-micro: 0.18em;

  --t-display-01: var(--weight-black) var(--size-display-01)/var(--leading-solid) var(--font-editorial);
  --t-display-02: var(--weight-bold) var(--size-display-02)/var(--leading-tight) var(--font-editorial);
  --t-heading-01: var(--weight-medium) var(--size-heading-01)/var(--leading-tight) var(--font-editorial);
  --t-heading-02: var(--weight-medium) var(--size-heading-02)/var(--leading-tight) var(--font-editorial);
  --t-heading-03: var(--weight-semibold) var(--size-heading-03)/var(--leading-snug) var(--font-sans);
  --t-species: var(--weight-bold) var(--size-species)/var(--leading-tight) var(--font-editorial);
  --t-latin: italic var(--weight-medium) var(--size-latin)/var(--leading-snug) var(--font-editorial);
  --t-cartouche: italic var(--weight-regular) var(--size-cartouche)/var(--leading-snug) var(--font-editorial);
  --t-body: var(--weight-regular) var(--size-body)/var(--leading-normal) var(--font-sans);
  --t-small: var(--weight-regular) var(--size-small)/var(--leading-normal) var(--font-sans);
  --t-data: var(--weight-regular) var(--size-data)/var(--leading-data) var(--font-mono);
  --t-label: var(--weight-medium) var(--size-label)/var(--leading-tight) var(--font-mono);
  --t-micro: var(--weight-regular) var(--size-micro)/var(--leading-tight) var(--font-mono);
  --t-lot-code-print: var(--weight-semibold) var(--size-lot-code-print)/var(--leading-tight) var(--font-mono);

  /* 4 · SPACING & GRID */
  --space-1: 8px;
  --space-2: 16px;
  --space-3: 24px;
  --space-4: 32px;
  --space-5: 40px;
  --space-6: 48px;
  --space-7: 64px;
  --space-8: 80px;
  --space-9: 96px;
  --space-half: 4px;
  --grid-columns: 12;
  --gutter-archive: 32px;
  --margin-archive: 64px;
  --gutter-field: 24px;
  --margin-field: 32px;
  --gutter-control: 12px;
  --margin-control: 16px;
  --gutter-culinary: 24px;
  --margin-culinary: 32px;
  --gutter: var(--gutter-field);
  --page-margin: var(--margin-field);
  --measure-prose: 68ch;

  /* 5 · STRUCTURE & OPERATIONAL CONSTRAINTS */
  --radius-none: 0;
  --radius-sm: 2px;
  --rule-hairline: 1px solid var(--border-hairline);
  --rule-heavy: 2px solid var(--border-heavy);
  --rule-frame: 1px solid var(--border-hairline);
  --rule-editorial: 1px solid var(--ink);
  --thermal-width: 50mm;
  --thermal-height: 30mm;
  --thermal-padding: 1.5mm;
  --thermal-frame: 0.5mm;
  --thermal-bar: 1.5mm;
  --shadow-none: none;
  --tap-target-min: 44px;
  --field-cell-min-height: 48px;
  --print-code-x-height: 3mm;
  --pictogram-grid: 48;
  --pictogram-stroke: 1.5px;

  /* Component measurements (spacing.json → structure.component) */
  --bar-height: 4px;
  --marker-width: 3px;
  --band-rule: 5px;
  --sign-frame: 3px;
  --size-data-lg: 28px;
  --size-data-xl: 36px;
  --ingredient-size: 64px;
  --step-index: 40px;
  --step-index-sm: 28px;
  --plate-height: 148px;
  --rule-offset: 3px;

  /* 6 · DOMAIN CONTRACT SYMBOLS (labels stay in application i18n) */
  --provenance-measured-symbol: "●";
  --provenance-calculated-symbol: "◆";
  --provenance-estimated-symbol: "◇";
  --provenance-target-symbol: "◎";
  --provenance-manual-symbol: "△";
  --provenance-simulated-symbol: "⬡";
  --provenance-pending-symbol: "◌";
  --sync-synced-symbol: "✓";
  --sync-pending-symbol: "◌";
  --sync-error-symbol: "✕";
  --sync-offline-symbol: "⚡";

  /* Domain marks: SVG drawn via mask + currentColor, identical on every device */
  --provenance-measured-mark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3C/svg%3E");
  --provenance-calculated-mark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 1 11 6 6 11 1 6Z'/%3E%3C/svg%3E");
  --provenance-estimated-mark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 1.75 10.25 6 6 10.25 1.75 6Z' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E");
  --provenance-target-mark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Ccircle cx='6' cy='6' r='4.25' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3Ccircle cx='6' cy='6' r='1.75'/%3E%3C/svg%3E");
  --provenance-manual-mark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 1.9 10.6 10.1H1.4Z' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E");
  --provenance-simulated-mark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 1.4 9.98 3.7V8.3L6 10.6 2.02 8.3V3.7Z' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E");
  --provenance-pending-mark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Ccircle cx='6' cy='6' r='4.25' fill='none' stroke='%23000' stroke-width='1.5' stroke-dasharray='1.6 1.74'/%3E%3C/svg%3E");
  --sync-synced-mark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.5 4.75 9.25 10 3' fill='none' stroke='%23000' stroke-width='1.75'/%3E%3C/svg%3E");
  --sync-pending-mark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Ccircle cx='6' cy='6' r='4.25' fill='none' stroke='%23000' stroke-width='1.5' stroke-dasharray='1.6 1.74'/%3E%3C/svg%3E");
  --sync-error-mark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 2.5 9.5 9.5M9.5 2.5 2.5 9.5' fill='none' stroke='%23000' stroke-width='1.75'/%3E%3C/svg%3E");
  --sync-offline-mark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M7 .75 2.5 7H6L5 11.25 9.5 5H6Z'/%3E%3C/svg%3E");
  --status-quarantine-border-style: dashed;

  /* Domain colours: ingredient role in the mix + perito verdict */
  --role-base-carbono: #5A7042;
  --role-suplemento-n: #C68F2C;
  --role-suplemento-medio: #D4A838;
  --role-aireador: #4E7A6A;
  --role-aditivo-ph: #8B5C28;
  --role-aditivo-estructura: #7A6B58;
  --role-aditivo-micronutriente: #2A6A7A;
  --role-aditivo-arrancador: #9B4F3A;
  --perito-excellent-bg: #EDF4E8;
  --perito-excellent-border: #7FA05A;
  --perito-excellent-txt: #3D4A38;
  --perito-good-bg: #F5F0E0;
  --perito-good-border: #C8A840;
  --perito-good-badge: #7A5A10;
  --perito-good-txt: #5A4010;
  --perito-needs-work-bg: #FBF0E8;
  --perito-needs-work-border: #C87040;
  --perito-needs-work-badge: #8C4020;
  --perito-needs-work-txt: #6A3010;
}

/* Density profiles are semantic surface modes, never viewport aliases. */
[data-mode="archive"] { --gutter: var(--gutter-archive); --page-margin: var(--margin-archive); }
[data-mode="field"] { --gutter: var(--gutter-field); --page-margin: var(--margin-field); }
[data-mode="control"] { --gutter: var(--gutter-control); --page-margin: var(--margin-control); }
[data-mode="culinary"] { --gutter: var(--gutter-culinary); --page-margin: var(--margin-culinary); }
[data-mode="culinary-market"] { --gutter: var(--gutter-culinary); --page-margin: var(--margin-culinary); }
[data-mode="archive"] { --accent-warm: var(--brand-accent); }

@media print {
  :root { --size-micro: var(--size-micro-print); }
}
