/* Base compartida por toda la plataforma: tipografías de marca e iconos.
   Se carga ANTES de la hoja de cada página (app.css o los estilos propios de
   la landing), porque ambas dependen de las variables --font-*. */

:root {

  /* Una sola tipografía en todo el producto: la interfaz, la hoja del editor
     y el PDF del contrato. Es la misma que se embebe en el documento, así que
     lo que se ve al redactar es lo que sale impreso. */
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, monospace;
}
/* ---------- Iconos de línea ----------
   SVG de trazo aplicados como máscara: heredan el color del texto con
   currentColor, así que siguen la paleta sin duplicar archivos por color.
   Uso: <span class="ico ico-signature"></span> */

.ico {
  display: inline-block;
  width: 1em;
  height: 1em;
  flex-shrink: 0;
  vertical-align: -0.14em;
  background-color: currentColor;
  -webkit-mask: var(--i) center / contain no-repeat;
  mask: var(--i) center / contain no-repeat;
}
.ico.lg { width: 26px; height: 26px; }
.ico.muted { opacity: .55; }
.ico.accent { color: var(--orange); }
.ico.ok { color: var(--ok); }
.ico.warn { color: var(--warn); }

.ico-signature { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M3%2016.5c3%200%203.6-9%206.4-9s2.1%207%204%207%201.9-3.5%203.6-3.5M3%2021h18'/></svg>"); }
.ico-initials { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M5.5%204.5h13a1%201%200%200%201%201%201v13a1%201%200%200%201-1%201h-13a1%201%200%200%201-1-1v-13a1%201%200%200%201%201-1ZM9%2015.2l3-6.4%203%206.4M10.2%2012.9h3.6'/></svg>"); }
.ico-name { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M12%2012a4%204%200%201%200%200-8%204%204%200%200%200%200%208ZM4.5%2020c.6-3.4%203.8-5.5%207.5-5.5s6.9%202.1%207.5%205.5'/></svg>"); }
.ico-date { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M5%206.5h14v13.5H5zM8.5%203.5v4M15.5%203.5v4M5%2011h14'/></svg>"); }
.ico-text { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M4.5%207.5v-2h15v2M12%205.5v13M9%2018.5h6'/></svg>"); }
.ico-checkbox { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M20%2012.5V19a1%201%200%200%201-1%201H5a1%201%200%200%201-1-1V5a1%201%200%200%201%201-1h10M9%2011.5l2.5%202.5L20%205.5'/></svg>"); }
.ico-pencil { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M4%2020h4L18.5%209.5l-4-4L4%2016v4ZM14.5%205.5l4%204'/></svg>"); }
.ico-check { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M4.5%2012.5l5%205%2010-11'/></svg>"); }
.ico-send { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M21%203%203%2011.2l7.4%202.4L12.8%2021%2021%203ZM10.4%2013.6%2021%203'/></svg>"); }
.ico-shield { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M12%203.2%2020%206v6c0%204.8-3.3%207.9-8%208.8-4.7-.9-8-4-8-8.8V6l8-2.8ZM8.5%2012l2.5%202.5L15.8%209'/></svg>"); }
.ico-folder { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M3%207a1%201%200%200%201%201-1h4.6l2%202.6H20a1%201%200%200%201%201%201V19a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V7Z'/></svg>"); }
.ico-ledger { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M6%203h12v18l-3-2-3%202-3-2-3%202V3ZM9.5%208h5M9.5%2012h5M9.5%2016h3'/></svg>"); }
.ico-mail { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M3%206h18v12H3zM3%206.8l9%206.2%209-6.2'/></svg>"); }
.ico-alert { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M12%203.5%2021.2%2020H2.8L12%203.5ZM12%2010v4.6M12%2017.6v.01'/></svg>"); }
.ico-clock { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M12%2021a9%209%200%201%200%200-18%209%209%200%200%200%200%2018ZM12%207v5.2l3.4%202'/></svg>"); }
.ico-user-card { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M3%205.5h18v13H3zM8.5%2012.2a2%202%200%201%200%200-4%202%202%200%200%200%200%204ZM5.6%2016c.4-1.6%201.6-2.5%202.9-2.5s2.5.9%202.9%202.5M14.5%2010h4M14.5%2013.5h4'/></svg>"); }
.ico-globe { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M12%2021a9%209%200%201%200%200-18%209%209%200%200%200%200%2018ZM3.2%209h17.6M3.2%2015h17.6M12%203c-4.5%205-4.5%2013%200%2018%204.5-5%204.5-13%200-18Z'/></svg>"); }


.ico-bold { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M7.5%204.5h5a3.6%203.6%200%200%201%200%207.2h-5zM7.5%2011.7h5.8a3.9%203.9%200%200%201%200%207.8H7.5z'/></svg>"); }
.ico-italic { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M10%204.8h5.5M8.5%2019.2H14M13.6%204.8%2010.4%2019.2'/></svg>"); }
.ico-underline { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M6.6%204.5v6.2a5.4%205.4%200%200%200%2010.8%200V4.5M5%2020h14'/></svg>"); }
.ico-list-ul { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M9.5%206.5h10.5M9.5%2012h10.5M9.5%2017.5h10.5M4.6%206.5h.01M4.6%2012h.01M4.6%2017.5h.01'/></svg>"); }
.ico-list-ol { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M9.5%206.5h10.5M9.5%2012h10.5M9.5%2017.5h10.5M3.4%205.4%204.9%204.6v4.1M3.3%2015.2a1.35%201.35%200%201%201%202.1%201.2L3.3%2019.3h2.4'/></svg>"); }
.ico-align-left { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M4%206.5h16M4%2012h10M4%2017.5h13.5'/></svg>"); }
.ico-align-center { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M4%206.5h16M7%2012h10M5.5%2017.5h13'/></svg>"); }
.ico-align-right { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M4%206.5h16M10%2012h10M6.5%2017.5h13.5'/></svg>"); }
.ico-align-justify { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M4%206.5h16M4%2012h16M4%2017.5h16'/></svg>"); }
.ico-pagebreak { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M3.2%2012h3.2M10.4%2012h3.2M17.6%2012h3.2M6.5%208.6V5a1%201%200%200%201%201-1h9a1%201%200%200%201%201%201v3.6M6.5%2015.4V19a1%201%200%200%200%201%201h9a1%201%200%200%200%201-1v-3.6'/></svg>"); }
.ico-tag { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M12.6%203.6H20.4v7.8l-8.8%208.8-7.8-7.8%208.8-8.8ZM16.6%207.6h.01'/></svg>"); }
.ico-trash { --i: url("data:image/svg+xml,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'%20stroke-linecap='round'%20stroke-linejoin='round'><path%20d='M4.5%206.5h15M9.5%206.5V4.6a1%201%200%200%201%201-1h3a1%201%200%200%201%201%201v1.9M6.5%206.5%207.4%2020a1%201%200%200%200%201%20.9h7.2a1%201%200%200%200%201-.9l.9-13.5'/></svg>"); }

/* ---------- Tipografías de marca (autoalojadas, sin CDN) ----------
   Inter, SIL Open Font License. Los subconjuntos latin-ext solo se descargan
   si la página usa esos caracteres. */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/inter-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/inter-400-latin.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: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/inter-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/inter-500-latin.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: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/inter-600-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/inter-600-latin.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: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/inter-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/inter-700-latin.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: 'Inter';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/inter-400i-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/inter-400i-latin.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: 'Inter';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/inter-700i-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/inter-700i-latin.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;
}
