/* Fuentes auto-hospedadas (Fontsource, subconjunto latin). Sin llamadas a fonts.googleapis.com */
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/poppins/poppins-latin-400-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/poppins/poppins-latin-500-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/poppins/poppins-latin-600-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/poppins/poppins-latin-700-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:800;font-display:swap;src:url('/fonts/poppins/poppins-latin-800-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/open-sans/open-sans-latin-400-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/open-sans/open-sans-latin-500-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/open-sans/open-sans-latin-600-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/open-sans/open-sans-latin-700-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/jetbrains-mono/jetbrains-mono-latin-400-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/jetbrains-mono/jetbrains-mono-latin-500-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/jetbrains-mono/jetbrains-mono-latin-700-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}


/* == tokens/colors == */
:root{
  /* Brand — naranja fluo (primary) */
  --orange-50:#FFF3EA; --orange-100:#FFE2CC; --orange-200:#FFC49A; --orange-300:#FFA05E;
  --orange-400:#FF8226; --orange-500:#FF6A00; --orange-600:#E85800; --orange-700:#BF4700;
  --orange-800:#8F3500; --orange-900:#5C2200;

  /* Brand — lila (secondary) */
  --lila-50:#F5F0FD; --lila-100:#E8DDFA; --lila-200:#D2BCF3; --lila-300:#B795E8;
  --lila-400:#A171DC; --lila-500:#8B4FCF; --lila-600:#7639B4; --lila-700:#5D2C8E;
  --lila-800:#451F69; --lila-900:#2C1344;

  /* Neutrals */
  --neutral-0:#FFFFFF; --neutral-25:#FAFAFB; --neutral-50:#F5F5F7; --neutral-100:#ECECEF;
  --neutral-200:#DCDCE2; --neutral-300:#C2C2CC; --neutral-400:#9A9AA8; --neutral-500:#6E6E80;
  --neutral-600:#55556A; --neutral-700:#3F3F52; --neutral-800:#2A2A38; --neutral-900:#1A1A24;
  --neutral-950:#101017;

  /* Semantic status */
  --success-500:#17A34A; --success-50:#E8F7EE;
  --warning-500:#F5A524; --warning-50:#FEF5E5;
  --danger-500:#E5484D;  --danger-50:#FDECEC;
  --info-500:#2E90FA;    --info-50:#E9F3FE;

  /* ---- Aliases: brand ---- */
  --brand-primary:var(--orange-500);
  --brand-primary-hover:var(--orange-600);
  --brand-primary-active:var(--orange-700);
  --brand-primary-subtle:var(--orange-50);
  --brand-secondary:var(--lila-500);
  --brand-secondary-hover:var(--lila-600);
  --brand-secondary-active:var(--lila-700);
  --brand-secondary-subtle:var(--lila-50);

  /* ---- Aliases: text ---- */
  --text-primary:var(--neutral-900);
  --text-secondary:var(--neutral-600);
  --text-muted:var(--neutral-500);
  --text-inverse:var(--neutral-0);
  --text-brand:var(--orange-600);
  --text-link:var(--orange-600);
  --text-link-hover:var(--orange-700);
  --text-on-brand:#FFFFFF;

  /* ---- Aliases: surfaces ---- */
  --surface-page:var(--neutral-0);
  --surface-sunken:var(--neutral-50);
  --surface-card:var(--neutral-0);
  --surface-raised:var(--neutral-0);
  --surface-inverse:var(--neutral-900);
  --surface-brand:var(--orange-500);
  --surface-brand-subtle:var(--orange-50);
  --surface-secondary-subtle:var(--lila-50);
  --surface-grid-header:var(--neutral-100);
  --surface-grid-row-alt:var(--neutral-25);
  --surface-grid-row-selected:var(--orange-50);

  /* ---- Aliases: borders ---- */
  --border-subtle:var(--neutral-100);
  --border-default:var(--neutral-200);
  --border-strong:var(--neutral-300);
  --border-brand:var(--orange-500);
  --border-inverse:var(--neutral-700);

  /* ---- Focus ---- */
  --focus-ring:0 0 0 3px rgba(255,106,0,.32);
  --focus-ring-secondary:0 0 0 3px rgba(139,79,207,.30);
}
/* Inverse / dark panel scope — use on footers, hero bands, app title bars */
.edydsi-inverse{
  --text-primary:var(--neutral-0);
  --text-secondary:var(--neutral-300);
  --text-muted:var(--neutral-400);
  --surface-page:var(--neutral-900);
  --surface-card:var(--neutral-800);
  --surface-sunken:var(--neutral-950);
  --border-default:var(--neutral-700);
  --border-subtle:var(--neutral-800);
  color:var(--text-primary);
  background:var(--surface-page);
}


/* == tokens/typography == */
:root{
  --font-display:"Poppins","Segoe UI",Helvetica,Arial,sans-serif;
  --font-sans:"Open Sans","Segoe UI",Helvetica,Arial,sans-serif;
  --font-mono:"JetBrains Mono","Cascadia Mono",Consolas,monospace;

  --text-3xs:11px; --text-2xs:12px; --text-xs:13px; --text-sm:14px; --text-base:16px;
  --text-md:18px; --text-lg:20px; --text-xl:24px; --text-2xl:30px; --text-3xl:38px;
  --text-4xl:48px; --text-5xl:60px; --text-6xl:72px;

  --weight-regular:400; --weight-medium:500; --weight-semibold:600; --weight-bold:700; --weight-black:800;

  --leading-tight:1.08; --leading-snug:1.22; --leading-normal:1.5; --leading-relaxed:1.65;

  --tracking-display:-0.02em; --tracking-normal:0; --tracking-wide:0.02em; --tracking-caps:0.08em;

  /* Composed roles */
  --type-hero:var(--weight-bold) var(--text-4xl)/var(--leading-tight) var(--font-display);
  --type-h1:var(--weight-bold) var(--text-3xl)/var(--leading-tight) var(--font-display);
  --type-h2:var(--weight-semibold) var(--text-2xl)/var(--leading-snug) var(--font-display);
  --type-h3:var(--weight-semibold) var(--text-xl)/var(--leading-snug) var(--font-display);
  --type-h4:var(--weight-semibold) var(--text-md)/var(--leading-snug) var(--font-display);
  --type-body:var(--weight-regular) var(--text-base)/var(--leading-relaxed) var(--font-sans);
  --type-body-sm:var(--weight-regular) var(--text-sm)/var(--leading-normal) var(--font-sans);
  --type-ui:var(--weight-semibold) var(--text-sm)/1.2 var(--font-sans);
  --type-eyebrow:var(--weight-bold) var(--text-2xs)/1.2 var(--font-display);
  --type-mono:var(--weight-medium) var(--text-sm)/1.4 var(--font-mono);
}


/* == tokens/spacing == */
:root{
  --space-0:0px; --space-px:1px; --space-0-5:2px; --space-1:4px; --space-1-5:6px;
  --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; --space-20:80px;
  --space-24:96px; --space-32:128px;

  --gutter:24px;
  --section-y:80px;
  --section-y-lg:120px;
  --container-max:1180px;
  --container-narrow:760px;

  /* Control density — desktop business software is compact */
  --control-h-sm:28px; --control-h-md:36px; --control-h-lg:44px;
  --control-px-sm:10px; --control-px-md:14px; --control-px-lg:20px;
  --row-h:30px;
}


/* == tokens/shape == */
:root{
  --radius-xs:3px; --radius-sm:4px; --radius-md:6px; --radius-lg:10px;
  --radius-xl:16px; --radius-2xl:24px; --radius-pill:999px;

  --border-width:1px; --border-width-strong:2px;

  --shadow-xs:0 1px 2px rgba(16,16,23,.06);
  --shadow-sm:0 1px 3px rgba(16,16,23,.08),0 1px 2px rgba(16,16,23,.04);
  --shadow-md:0 4px 12px rgba(16,16,23,.08);
  --shadow-lg:0 12px 28px rgba(16,16,23,.12);
  --shadow-xl:0 24px 56px rgba(16,16,23,.16);
  --shadow-brand:0 8px 20px rgba(255,106,0,.28);
  --shadow-inset:inset 0 1px 0 rgba(255,255,255,.6);

  --overlay-scrim:rgba(16,16,23,.55);
  --blur-panel:saturate(140%) blur(12px); /* @kind other */
}


/* == tokens/motion == */
:root{
  --dur-instant:80ms; /* @kind other */
  --dur-fast:140ms; /* @kind other */
  --dur-base:220ms; /* @kind other */
  --dur-slow:340ms; /* @kind other */
  --ease-out:cubic-bezier(.2,.8,.3,1); /* @kind other */
  --ease-in-out:cubic-bezier(.5,0,.3,1); /* @kind other */
  --ease-entrance:cubic-bezier(.16,1,.3,1); /* @kind other */
  --transition-control:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out); /* @kind other */
}
@media (prefers-reduced-motion:reduce){:root{
  --dur-instant:0ms; /* @kind other */
  --dur-fast:0ms; /* @kind other */
  --dur-base:0ms; /* @kind other */
  --dur-slow:0ms; /* @kind other */
}}


/* == tokens/base == */
/* Minimal element defaults so any page linking styles.css looks like EDYDSI. */
html{-webkit-text-size-adjust:100%}
body{margin:0;font:var(--type-body);color:var(--text-primary);background:var(--surface-page);text-wrap:pretty;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5{margin:0;color:var(--text-primary)}
h1{font:var(--type-h1);letter-spacing:var(--tracking-display)}
h2{font:var(--type-h2);letter-spacing:var(--tracking-display)}
h3{font:var(--type-h3)}
h4{font:var(--type-h4)}
p{margin:0 0 var(--space-4)}
a{color:var(--text-link);text-decoration:none}
a:hover{color:var(--text-link-hover);text-decoration:underline}
strong,b{font-weight:var(--weight-bold)}
small{font-size:var(--text-sm)}
code,kbd{font:var(--type-mono)}
hr{border:0;border-top:var(--border-width) solid var(--border-default);margin:var(--space-6) 0}
::selection{background:var(--orange-200)}
:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.edydsi-eyebrow{font:var(--type-eyebrow);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-brand)}
.edydsi-container{max-width:var(--container-max);margin:0 auto;padding:0 var(--gutter)}
.edydsi-numeric{font-variant-numeric:tabular-nums}


/* == components == */
/* Component styling for the EDYDSI component library.
   Components ship as class-based CSS (states need :hover/:focus/:active) driven entirely by tokens. */

/* ---------- Button ---------- */
.eds-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font:var(--type-ui);border:var(--border-width) solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-control);text-decoration:none;white-space:nowrap;height:var(--control-h-md);padding:0 var(--control-px-md)}
.eds-btn:hover{text-decoration:none}
.eds-btn--sm{height:var(--control-h-sm);padding:0 var(--control-px-sm);font-size:var(--text-2xs)}
.eds-btn--lg{height:var(--control-h-lg);padding:0 var(--control-px-lg);font-size:var(--text-base)}
.eds-btn--block{width:100%}
.eds-btn:active:not(:disabled){transform:translateY(1px)}
.eds-btn:disabled,.eds-btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;transform:none}
.eds-btn--primary{background:var(--brand-primary);color:var(--text-on-brand);box-shadow:var(--shadow-xs)}
.eds-btn--primary:hover:not(:disabled){background:var(--brand-primary-hover);color:var(--text-on-brand);box-shadow:var(--shadow-brand)}
.eds-btn--primary:active:not(:disabled){background:var(--brand-primary-active)}
.eds-btn--secondary{background:var(--brand-secondary);color:var(--text-on-brand)}
.eds-btn--secondary:hover:not(:disabled){background:var(--brand-secondary-hover);color:var(--text-on-brand)}
.eds-btn--secondary:active:not(:disabled){background:var(--brand-secondary-active)}
.eds-btn--outline{background:transparent;color:var(--text-brand);border-color:var(--border-brand)}
.eds-btn--outline:hover:not(:disabled){background:var(--brand-primary-subtle);color:var(--orange-700)}
.eds-btn--ghost{background:transparent;color:var(--text-secondary)}
.eds-btn--ghost:hover:not(:disabled){background:var(--surface-sunken);color:var(--text-primary)}
.eds-btn--danger{background:var(--danger-500);color:#fff}
.eds-btn--danger:hover:not(:disabled){background:#C93A3F;color:#fff}
.eds-btn:focus-visible{box-shadow:var(--focus-ring)}
.eds-btn--secondary:focus-visible{box-shadow:var(--focus-ring-secondary)}

/* ---------- IconButton ---------- */
.eds-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:var(--control-h-md);height:var(--control-h-md);border-radius:var(--radius-md);border:var(--border-width) solid transparent;background:transparent;color:var(--text-secondary);cursor:pointer;transition:var(--transition-control)}
.eds-iconbtn--sm{width:var(--control-h-sm);height:var(--control-h-sm)}
.eds-iconbtn--lg{width:var(--control-h-lg);height:var(--control-h-lg)}
.eds-iconbtn:hover:not(:disabled){background:var(--surface-sunken);color:var(--text-primary)}
.eds-iconbtn--solid{background:var(--brand-primary);color:#fff}
.eds-iconbtn--solid:hover:not(:disabled){background:var(--brand-primary-hover);color:#fff}
.eds-iconbtn--outline{border-color:var(--border-default)}
.eds-iconbtn:disabled{opacity:.45;cursor:not-allowed}
.eds-iconbtn:focus-visible{box-shadow:var(--focus-ring)}

/* ---------- Badge / Tag ---------- */
.eds-badge{display:inline-flex;align-items:center;gap:var(--space-1);height:20px;padding:0 var(--space-2);border-radius:var(--radius-pill);font:var(--weight-bold) var(--text-3xs)/1 var(--font-display);letter-spacing:var(--tracking-wide);text-transform:uppercase}
.eds-badge--brand{background:var(--orange-100);color:var(--orange-800)}
.eds-badge--lila{background:var(--lila-100);color:var(--lila-700)}
.eds-badge--neutral{background:var(--neutral-100);color:var(--neutral-700)}
.eds-badge--success{background:var(--success-50);color:#0F7538}
.eds-badge--warning{background:var(--warning-50);color:#8A5A00}
.eds-badge--danger{background:var(--danger-50);color:#A82F33}
.eds-badge--solid{background:var(--brand-primary);color:#fff}
.eds-tag{display:inline-flex;align-items:center;gap:var(--space-2);height:26px;padding:0 var(--space-2) 0 var(--space-3);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);font:var(--type-body-sm);color:var(--text-secondary)}
.eds-tag__x{display:inline-flex;border:0;background:transparent;color:var(--text-muted);cursor:pointer;padding:2px;border-radius:var(--radius-xs);line-height:0}
.eds-tag__x:hover{background:var(--neutral-100);color:var(--text-primary)}

/* ---------- Card ---------- */
.eds-card{background:var(--surface-card);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6);transition:box-shadow var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out)}
.eds-card--flat{box-shadow:none}
.eds-card--raised{box-shadow:var(--shadow-md);border-color:var(--border-subtle)}
.eds-card--interactive{cursor:pointer}
.eds-card--interactive:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.eds-card--accent{border-top:3px solid var(--brand-primary)}
.eds-card__title{font:var(--type-h4);margin:0 0 var(--space-2)}
.eds-card__body{font:var(--type-body-sm);color:var(--text-secondary)}

/* ---------- StatCard ---------- */
.eds-stat{background:var(--surface-card);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5)}
.eds-stat__label{font:var(--type-eyebrow);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-muted)}
.eds-stat__value{font:var(--weight-bold) var(--text-2xl)/1.1 var(--font-display);font-variant-numeric:tabular-nums;color:var(--text-primary);margin-top:var(--space-2)}
.eds-stat__delta{font:var(--type-body-sm);margin-top:var(--space-1)}
.eds-stat__delta--up{color:var(--success-500)}
.eds-stat__delta--down{color:var(--danger-500)}

/* ---------- Form controls ---------- */
.eds-field{display:flex;flex-direction:column;gap:var(--space-1-5)}
.eds-field__label{font:var(--weight-semibold) var(--text-xs)/1.2 var(--font-sans);color:var(--text-secondary)}
.eds-field__hint{font:var(--weight-regular) var(--text-2xs)/1.35 var(--font-sans);color:var(--text-muted)}
.eds-field__error{font:var(--weight-semibold) var(--text-2xs)/1.35 var(--font-sans);color:var(--danger-500)}
.eds-input,.eds-select{height:var(--control-h-md);padding:0 var(--space-3);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);font:var(--type-body-sm);color:var(--text-primary);transition:var(--transition-control);width:100%;box-sizing:border-box}
.eds-input--sm,.eds-select--sm{height:var(--control-h-sm);font-size:var(--text-2xs)}
.eds-input::placeholder{color:var(--neutral-400)}
.eds-input:hover:not(:disabled),.eds-select:hover:not(:disabled){border-color:var(--border-strong)}
.eds-input:focus,.eds-select:focus{outline:none;border-color:var(--brand-primary);box-shadow:var(--focus-ring)}
.eds-input:disabled,.eds-select:disabled{background:var(--surface-sunken);color:var(--text-muted);cursor:not-allowed}
.eds-input--invalid{border-color:var(--danger-500)}
.eds-input--invalid:focus{box-shadow:0 0 0 3px rgba(229,72,77,.25)}
.eds-input--numeric{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}
.eds-select{appearance:none;padding-right:var(--space-8);background-image:linear-gradient(45deg,transparent 50%,var(--neutral-500) 50%),linear-gradient(135deg,var(--neutral-500) 50%,transparent 50%);background-position:calc(100% - 16px) 15px,calc(100% - 11px) 15px;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.eds-check{display:inline-flex;align-items:flex-start;gap:var(--space-2);font:var(--type-body-sm);color:var(--text-primary);cursor:pointer}
.eds-check input{appearance:none;width:16px;height:16px;margin:2px 0 0;border:var(--border-width-strong) solid var(--border-strong);background:var(--surface-card);cursor:pointer;transition:var(--transition-control);flex:0 0 auto}
.eds-check--box input{border-radius:var(--radius-xs)}
.eds-check--radio input{border-radius:var(--radius-pill)}
.eds-check input:hover{border-color:var(--brand-primary)}
.eds-check input:checked{background:var(--brand-primary);border-color:var(--brand-primary)}
.eds-check--box input:checked{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M3.5 8.5l3 3 6-6'/></svg>");background-size:100%}
.eds-check--radio input:checked{box-shadow:inset 0 0 0 3px var(--surface-card)}
.eds-check input:focus-visible{box-shadow:var(--focus-ring)}
.eds-check input:disabled{background:var(--neutral-100);border-color:var(--border-default);cursor:not-allowed}
.eds-switch{display:inline-flex;align-items:center;gap:var(--space-2);font:var(--type-body-sm);cursor:pointer}
.eds-switch__track{width:38px;height:22px;border-radius:var(--radius-pill);background:var(--neutral-300);position:relative;transition:background-color var(--dur-fast) var(--ease-out);flex:0 0 auto}
.eds-switch__knob{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:var(--radius-pill);background:#fff;box-shadow:var(--shadow-xs);transition:transform var(--dur-fast) var(--ease-out)}
.eds-switch--on .eds-switch__track{background:var(--brand-primary)}
.eds-switch--on .eds-switch__knob{transform:translateX(16px)}
.eds-switch--disabled{opacity:.5;cursor:not-allowed}

/* ---------- Alert ---------- */
.eds-alert{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:var(--border-width) solid var(--border-default);background:var(--surface-card);font:var(--type-body-sm)}
.eds-alert__title{font:var(--weight-bold) var(--text-sm)/1.3 var(--font-display);margin-bottom:2px}
.eds-alert--info{background:var(--info-50);border-color:#BCDDFE;color:#1B4F86}
.eds-alert--success{background:var(--success-50);border-color:#B7E4C8;color:#0F5C2C}
.eds-alert--warning{background:var(--warning-50);border-color:#F6DCA8;color:#7A4F00}
.eds-alert--danger{background:var(--danger-50);border-color:#F5C2C3;color:#8F2A2E}
.eds-alert--brand{background:var(--brand-primary-subtle);border-color:var(--orange-200);color:var(--orange-800)}

/* ---------- Dialog ---------- */
.eds-scrim{position:absolute;inset:0;background:var(--overlay-scrim);display:flex;align-items:center;justify-content:center;padding:var(--space-6);animation:eds-fade var(--dur-base) var(--ease-out)}
.eds-dialog{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:100%;max-width:460px;overflow:hidden;animation:eds-pop var(--dur-base) var(--ease-entrance)}
.eds-dialog__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:var(--border-width) solid var(--border-subtle)}
.eds-dialog__title{font:var(--type-h4)}
.eds-dialog__body{padding:var(--space-5);font:var(--type-body-sm);color:var(--text-secondary)}
.eds-dialog__foot{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-5) var(--space-5)}
@keyframes eds-fade{from{opacity:0}to{opacity:1}}
@keyframes eds-pop{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}

/* ---------- Tooltip ---------- */
.eds-tip{position:relative;display:inline-flex}
.eds-tip__bubble{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(--neutral-900);color:#fff;font:var(--weight-medium) var(--text-2xs)/1.3 var(--font-sans);padding:var(--space-1-5) var(--space-2-5,8px);border-radius:var(--radius-sm);white-space:nowrap;box-shadow:var(--shadow-md);z-index:5}

/* ---------- Tabs ---------- */
.eds-tabs{display:flex;gap:var(--space-1);border-bottom:var(--border-width) solid var(--border-default)}
.eds-tab{appearance:none;background:transparent;border:0;border-bottom:var(--border-width-strong) solid transparent;padding:var(--space-2-5,10px) var(--space-3);margin-bottom:-1px;font:var(--type-ui);color:var(--text-secondary);cursor:pointer;transition:var(--transition-control)}
.eds-tab:hover{color:var(--text-primary)}
.eds-tab--active{color:var(--text-brand);border-bottom-color:var(--brand-primary)}
.eds-tabs--pills{border:0;gap:var(--space-2)}
.eds-tabs--pills .eds-tab{border:0;border-radius:var(--radius-pill);background:var(--surface-sunken);margin:0}
.eds-tabs--pills .eds-tab--active{background:var(--brand-primary);color:#fff}

/* ---------- Breadcrumbs ---------- */
.eds-crumbs{display:flex;align-items:center;gap:var(--space-2);font:var(--type-body-sm);color:var(--text-muted);flex-wrap:wrap}
.eds-crumbs a{color:var(--text-secondary)}
.eds-crumbs a:hover{color:var(--text-brand);text-decoration:none}
.eds-crumbs__sep{color:var(--neutral-300)}
.eds-crumbs__current{color:var(--text-primary);font-weight:var(--weight-semibold)}

/* ---------- Toolbar (desktop app chrome) ---------- */
.eds-toolbar{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1-5) var(--space-2);background:var(--surface-sunken);border-bottom:var(--border-width) solid var(--border-default)}
.eds-toolbar__sep{width:1px;align-self:stretch;background:var(--border-default);margin:0 var(--space-1-5)}
.eds-toolbar__btn{display:inline-flex;align-items:center;gap:var(--space-1-5);height:var(--control-h-sm);padding:0 var(--space-2);border:var(--border-width) solid transparent;border-radius:var(--radius-sm);background:transparent;font:var(--weight-semibold) var(--text-2xs)/1 var(--font-sans);color:var(--text-secondary);cursor:pointer;transition:var(--transition-control)}
.eds-toolbar__btn:hover{background:var(--surface-card);border-color:var(--border-default);color:var(--text-primary)}
.eds-toolbar__btn--active{background:var(--brand-primary-subtle);border-color:var(--orange-200);color:var(--orange-800)}

/* ---------- DataTable (the grid at the heart of CONTASYS / FACTUSYS) ---------- */
.eds-grid{width:100%;border-collapse:separate;border-spacing:0;font:var(--type-body-sm);background:var(--surface-card)}
.eds-grid th{background:var(--surface-grid-header);font:var(--weight-bold) var(--text-2xs)/1.2 var(--font-sans);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-secondary);text-align:left;padding:var(--space-2) var(--space-3);border-bottom:var(--border-width) solid var(--border-default);position:sticky;top:0;white-space:nowrap}
.eds-grid td{height:var(--row-h);padding:var(--space-1) var(--space-3);border-bottom:var(--border-width) solid var(--border-subtle);color:var(--text-primary);white-space:nowrap}
.eds-grid tbody tr:nth-child(even){background:var(--surface-grid-row-alt)}
.eds-grid tbody tr:hover{background:var(--orange-50)}
.eds-grid tbody tr[aria-selected="true"]{background:var(--surface-grid-row-selected);box-shadow:inset 2px 0 0 var(--brand-primary)}
.eds-grid .eds-num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-size:var(--text-xs)}
.eds-grid tfoot td{background:var(--surface-sunken);font-weight:var(--weight-bold);border-top:var(--border-width-strong) solid var(--border-default)}

/* ---------- Wordmark ---------- */
.eds-wordmark{display:inline-flex;align-items:baseline;gap:.12em;font:var(--weight-black) 1em/1 var(--font-display);letter-spacing:-0.01em;color:var(--text-primary)}
.eds-wordmark__dot{color:var(--brand-primary)}
.eds-wordmark__tag{font:var(--weight-semibold) .32em/1 var(--font-sans);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-muted);align-self:flex-end;padding-bottom:.12em}


/* == styles == */
/* EDYDSI Design System — global entry point. Consumers link this file only. */
@import url("tokens/fonts.css");
@import url("tokens/colors.css");
@import url("tokens/typography.css");
@import url("tokens/spacing.css");
@import url("tokens/shape.css");
@import url("tokens/motion.css");
@import url("tokens/base.css");
@import url("components/components.css");



/* === Antorcha Marketing — capa de produccion (responsive + estados) === */
.scp0:hover{background:#E85800!important;color:#fff!important}
.scp1:hover{background:#14141F!important;color:#fff!important}
.scp2:hover{border-color:#FF6A00!important}
.scp3:hover{background:#14141F!important}
.scp4:focus{border-color:#FF6A00!important;box-shadow:0 0 0 3px rgba(255,106,0,.28)!important}
.scp5:hover{background:#E85800!important}

*{-webkit-tap-highlight-color:rgba(255,106,0,.18)}
img{max-width:100%}
:focus-visible{outline:2px solid #FF7A00;outline-offset:2px;border-radius:4px}

/* --- reveal on scroll (solo si hay JS) --- */
.js [data-reveal]{opacity:0;transform:translateY(22px)}
.js [data-reveal].is-in{opacity:1;transform:none;
  transition:opacity .48s cubic-bezier(.2,.8,.3,1),transform .48s cubic-bezier(.2,.8,.3,1)}

/* --- acordeon --- */
.faq-list{display:flex;flex-direction:column;gap:12px;margin-top:40px}
.faq-item{border:1px solid #232334;background:#0F0F18;border-radius:12px;overflow:hidden}
.faq-q{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;
  cursor:pointer;font-family:Poppins,sans-serif;font-weight:600;font-size:17px;color:#fff}
.faq-sign{color:#FF6A00;font-size:22px;font-weight:700;line-height:1}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .32s cubic-bezier(.2,.8,.3,1)}
.faq-a>p{overflow:hidden;margin:0;padding:0 24px;font-size:16px;line-height:1.62;color:#B9B9C8;
  opacity:0;transition:opacity .2s ease,padding .32s cubic-bezier(.2,.8,.3,1)}
.faq-item.open .faq-a{grid-template-rows:1fr}
.faq-item.open .faq-a>p{opacity:1;padding:0 24px 22px}

/* --- menu movil --- */
#navToggle{display:none;margin-left:auto;background:transparent;border:1px solid #2A2A3C;color:#E7E7F0;
  border-radius:8px;padding:8px;cursor:pointer;line-height:0}
#navToggle:hover{background:#14141F}
.nav-cta{display:none}

@media (max-width:900px){
  #navToggle{display:inline-flex}
  .hdr-cta{display:none!important}
  header nav#mainnav{display:none!important;position:absolute;top:100%;left:0;right:0;
    background:#0B0B12;border-bottom:1px solid #1C1C28;flex-direction:column!important;
    align-items:stretch!important;gap:0!important;padding:6px 20px 18px!important;margin-left:0!important;
    box-shadow:0 18px 40px rgba(0,0,0,.5);max-height:calc(100vh - 76px);overflow-y:auto}
  header nav#mainnav.open{display:flex!important}
  header nav#mainnav a{padding:15px 4px!important;font-size:16px!important;border-bottom:1px solid #16161F}
  header nav#mainnav a:last-child{border-bottom:none}
  .nav-cta{display:block!important;background:#FF6A00;color:#fff!important;font-weight:700;
    text-align:center;border-radius:8px;padding:14px 18px!important;margin-top:14px}
}

/* --- rango intermedio: el layout de 2 columnas aprieta --- */
@media (min-width:901px) and (max-width:1180px){
  h1{font-size:clamp(40px,4.6vw,56px)!important}
  section,header>div,footer>div{padding-left:28px!important;padding-right:28px!important}
}

/* --- colapso general de grillas y ajustes de escala --- */
@media (max-width:900px){
  [style*="grid-template-columns"]{grid-template-columns:1fr!important}
  section{padding-left:20px!important;padding-right:20px!important}
  h1{font-size:clamp(34px,8.6vw,52px)!important;line-height:1.06!important}
  h2{font-size:clamp(26px,6.4vw,36px)!important;line-height:1.14!important}
  h3{font-size:clamp(19px,4.6vw,24px)!important}
  .faq-q{font-size:16px;padding:17px 18px}
  .faq-a>p{padding:0 18px}
  .faq-item.open .faq-a>p{padding:0 18px 18px}
}

@media (max-width:700px){
  header>div{gap:12px!important;height:66px!important;padding:0 20px!important}
  header img{height:36px!important;width:auto!important}
  section{padding-top:60px!important;padding-bottom:60px!important}
  footer{padding:44px 0 24px!important}
  footer>div{padding-left:20px!important;padding-right:20px!important;gap:28px!important}
}

/* la tarjeta naranja de contacto respira mejor en pantallas chicas */
@media (max-width:700px){
  [style*="linear-gradient(120deg"]{padding:28px 20px!important;border-radius:18px!important}
  [style*="border-radius: 16px"][style*="rgba(11, 11, 18, 0.94)"]{padding:22px 18px!important}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .js [data-reveal]{opacity:1!important;transform:none!important}
}
