/* ── Variables globales (colores, tipografías, radios, sombras, layout) ──
   Definidas en assets/css/layout/tokens.css, cargado por el layout
   ANTES que este archivo. No redefinir aquí: fuente única de verdad. */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px}
body{font-family:var(--font);color:var(--ink-900);background:var(--ink-050);-webkit-font-smoothing:antialiased;line-height:1.55}
button{font-family:inherit;cursor:pointer;border:none;background:none}
input,select,textarea{font-family:inherit}
a{color:inherit;text-decoration:none}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 20px;border-radius:var(--r);font-size:14px;font-weight:500;line-height:1;transition:var(--ease);cursor:pointer}
.btn-p{background:var(--brand);color:#fff;border:1.5px solid var(--brand)}
.btn-p:hover{background:var(--brand-d);border-color:var(--brand-d);transform:translateY(-1px);box-shadow:0 4px 14px rgba(211,68,92,.28)}
.btn-s{background:var(--white);color:var(--ink-700);border:1.5px solid var(--ink-100)}
.btn-s:hover{border-color:var(--ink-300);background:var(--ink-050)}
.btn-fw{width:100%}
.btn-lg{padding:13px 26px;font-size:15px}

/* INPUTS */
.field{display:flex;flex-direction:column;gap:5px}
.field label{font-size:13px;font-weight:500;color:var(--ink-700)}
.inp{padding:10px 13px;border-radius:var(--r);border:1.5px solid var(--ink-100);background:var(--white);font-size:14px;color:var(--ink-900);transition:var(--ease);outline:none;width:100%}
.inp:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(211,68,92,.1)}
.inp::placeholder{color:var(--ink-300)}
.ii{position:relative}
.ii .inp{padding-left:36px}
.ii svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--ink-300);width:15px;height:15px;pointer-events:none}

/* ALERTS */
.alrt{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--r);font-size:13px;line-height:1.5;margin-bottom:10px}
.alrt svg{width:16px;height:16px;flex-shrink:0;margin-top:1px}
.alrt-e{background:var(--err-bg);color:var(--err);border:1px solid #f5c6c0}
.alrt-w{background:var(--warn-bg);color:var(--warn);border:1px solid #f0d9b0}
.alrt-ok{background:var(--ok-bg);color:var(--ok);border:1px solid #b8e0cb}
.alrt-i{background:var(--info-bg);color:var(--info);border:1px solid #b5d8f0}
