/* ==========================================================================
   ATENEA — sistema visual (tema oscuro). Identidad: docs/brand/README.md
   Tipografías locales con licencia SIL OFL 1.1 (static/fonts/OFL-*.txt).
   ========================================================================== */

@font-face{font-family:'Jost';font-style:normal;font-weight:300 600;font-display:swap;src:url('fonts/jost-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:'Jost';font-style:normal;font-weight:300 600;font-display:swap;src:url('fonts/jost-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/ibm-plex-mono-400-latin.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/ibm-plex-mono-500-latin.woff2') format('woff2')}

:root{
  color-scheme:dark;
  /* Paleta */
  --bg:#060a12;            /* azul noche casi negro */
  --surface:#0b121d;       /* tarjetas */
  --surface-2:#0f1926;     /* campos */
  --surface-3:#142133;     /* menús, popups */
  --line:rgba(150,180,215,.13);
  --line-strong:rgba(150,180,215,.26);
  --text:#e4ebf3;          /* 16:1 sobre --bg */
  --text-2:#a9b8c8;        /* 9:1 */
  --text-3:#8495a8;        /* 6.5:1 sobre --bg, 5.3:1 sobre --surface-3 */
  --accent:#22c3e6;        /* cian del logo: rutas, datos, foco */
  --accent-ink:#03131a;    /* texto sobre cian */
  --accent-soft:rgba(34,195,230,.10);
  --danger-text:#ff8f87;
  /* Niveles de riesgo (texto y marcas sobre fondo oscuro, AA) */
  --lvl-low:#4cc38a;
  --lvl-moderate:#e5b649;
  --lvl-high:#f39255;
  --lvl-very-high:#ff6b6b;
  --lvl-low-bg:rgba(76,195,138,.12);
  --lvl-moderate-bg:rgba(229,182,73,.12);
  --lvl-high-bg:rgba(243,146,85,.12);
  --lvl-very-high-bg:rgba(255,107,107,.12);
  /* Mapa (leídas por analysis.js) */
  --map-water:#08111c;
  --map-land:#152232;
  --map-border:#2e4560;
  --map-route:#22c3e6;
  --map-point-stroke:#060a12;
  /* Tipografía */
  --font-sans:'Jost',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --track-wide:.14em;
  --track-mid:.08em;
  --track-tight:.05em;
  /* Espaciado, radios, sombras */
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--s9:96px;
  --r1:2px;--r2:4px;
  --shadow-pop:0 14px 36px rgba(0,0,0,.45);
  --aside:200px;
  --focus:0 0 0 2px var(--bg),0 0 0 4px var(--accent);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:16px;line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased}
a{color:inherit}
img,svg{display:block}
h1,h2,h3,h4,h5{margin:0;font-weight:400}
p{margin:0}
:focus{outline:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--r1)}
::selection{background:rgba(34,195,230,.3)}
[hidden]{display:none !important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:16px;top:-60px;z-index:100;background:var(--accent);color:var(--accent-ink);padding:10px 14px;font-weight:500;text-decoration:none}
.skip-link:focus{top:12px}

.shell{max-width:1200px;margin:0 auto;padding-left:var(--s6);padding-right:var(--s6)}

/* ---------- Tipos reutilizables ---------- */
.eyebrow,.section-index,.data-label,.readout-label,.step-num,.result-index-label,.critical-kicker{font-family:var(--font-mono);font-size:11.5px;font-weight:400;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--text-3)}
.display,.page-title,.section-title{font-weight:300;text-transform:uppercase;letter-spacing:var(--track-mid);color:var(--text)}
.muted-note{color:var(--text-3);font-size:13.5px;line-height:1.6;margin:10px 0 0}
.small-print{font-size:12.5px}
.text-link{color:var(--text-2);text-decoration:none;border-bottom:1px solid var(--line-strong);padding-bottom:2px;font-size:15px}
.text-link:hover{color:var(--text);border-bottom-color:var(--text-2)}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 22px;border-radius:var(--r1);border:1px solid var(--line-strong);background:transparent;color:var(--text);font:500 13.5px/1 var(--font-sans);letter-spacing:var(--track-mid);text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}
.btn:hover{border-color:var(--text-2)}
.btn:focus-visible{outline:none;box-shadow:var(--focus)}
.btn-outline{border-color:var(--accent);color:var(--text)}
.btn-outline:hover{background:var(--accent-soft);border-color:var(--accent)}
.btn-solid,.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn-solid:hover,.btn.primary:hover{background:#4fd2ef;border-color:#4fd2ef}
.btn-ghost{border-color:transparent;color:var(--text-2);padding:0 12px}
.btn-ghost:hover{color:var(--text);border-color:var(--line-strong)}
.btn-lg{min-height:50px;padding:0 28px;font-size:14px}
.btn[disabled]{opacity:.6;cursor:progress}

/* ---------- Cabecera ---------- */
.site-header{position:sticky;top:0;z-index:30;background:rgba(6,10,18,.94);border-bottom:1px solid var(--line)}
.site-header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);height:68px}
.brand{display:inline-flex;align-items:center;color:var(--text);text-decoration:none;padding:6px 0}
.brand-mark{height:30px;width:auto;overflow:visible}
/* Portada: logo con el lema debajo, alineado al borde izquierdo de la A */
.brand-lockup{display:flex;flex-direction:column;align-items:flex-start;gap:3px;flex-shrink:0}
.brand-lockup .brand{padding:0}
.brand-tagline{margin:0;padding-left:1px;font:400 9.5px/1.2 var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--text-2);white-space:nowrap}
.brand-mark .brand-arc{color:var(--accent)}
.brand-mark stop{stop-color:var(--accent)}
.site-nav{display:flex;align-items:center;gap:var(--s5)}
.nav-link{color:var(--text-2);text-decoration:none;font-size:14.5px;padding:6px 0;white-space:nowrap}
.nav-link:hover{color:var(--text)}
.site-nav .btn{min-height:38px;padding:0 16px;font-size:12.5px}
.i18n-pending body{visibility:hidden}
/* Selector de idioma: discreto, dos botones de texto en mono */
.lang-switch{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--r1)}
.lang-btn{min-width:38px;min-height:34px;padding:0 8px;border:0;background:transparent;color:var(--text-3);font:400 12px/1 var(--font-mono);letter-spacing:.1em;cursor:pointer}
.lang-btn+.lang-btn{border-left:1px solid var(--line)}
.lang-btn:hover{color:var(--text)}
.lang-btn[aria-pressed="true"]{color:var(--accent)}
.lang-btn:focus-visible{outline:none;box-shadow:var(--focus)}
.lang-notice{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);flex-wrap:wrap;border:1px solid var(--line-strong);border-left:2px solid var(--accent);padding:var(--s4) var(--s5);margin-bottom:var(--s6);color:var(--text-2)}
.lang-notice p{margin:0;max-width:70ch}

/* ---------- Portada ---------- */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.hero-copy{position:relative;z-index:2;padding-top:var(--s9);padding-bottom:var(--s5)}
.hero-readout-wrap{position:relative;z-index:2;padding-bottom:var(--s7)}
.display{font-size:clamp(32px,4.6vw,58px);line-height:1.08;max-width:22ch}
.display-long{font-size:clamp(26px,3.3vw,44px);line-height:1.14;max-width:26ch;letter-spacing:var(--track-tight)}
.lede{margin-top:var(--s5);max-width:58ch;color:var(--text-2);font-size:18px;line-height:1.7}
.lede-strong{color:var(--text);font-size:19px}
.lede-strong+.lede{margin-top:var(--s3)}
.hero-actions{display:flex;align-items:center;gap:var(--s6);margin-top:var(--s6);flex-wrap:wrap}
.hero-earth{position:relative;margin:0}
.hero-earth-svg{display:block;width:100%;height:auto;aspect-ratio:1000/820}
.hero-route{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:route-draw 2.6s cubic-bezier(.3,.1,.2,1) .5s forwards}
.hero-port{fill:var(--accent)}
.hero-port-origin{opacity:0;animation:port-in .4s ease .4s forwards}
.hero-port-ring{fill:none;stroke:var(--accent);stroke-width:1.5;opacity:0;animation:port-in .6s ease 3s forwards}
.hero-tag{opacity:0;animation:port-in .6s ease 3.1s forwards}
.hero-tag line{stroke:var(--line-strong);stroke-width:1.5}
.hero-tag text{font-family:var(--font-mono);font-size:20px;letter-spacing:.12em;fill:var(--text)}
.hero-tag .hero-tag-sub{font-size:17px;letter-spacing:.04em;fill:var(--text-2)}
@keyframes route-draw{to{stroke-dashoffset:0}}
@keyframes port-in{to{opacity:1}}
.hero-readout{width:min(400px,100%);background:rgba(6,10,18,.86);border:1px solid var(--line);padding:var(--s4) var(--s5)}
/* Escritorio: texto a la izquierda, la Tierra completa (ruta Santos -> Rotterdam entera) a la derecha */
/* Geometría del globo (poster 1000x820, centro 490,410, radio 398, halo hasta 1,06 r): con ancho W el halo ocupa
   x 0,068W..0,912W e y -0,012W..0,832W de la figura. --globe-w escala con el ancho y con el alto de la ventana;
   --globe-out es cuánto sobresale la figura a la derecha del .shell en pantallas anchas; --hero-gap es el aire
   garantizado entre la columna de texto y el halo. */
@media (min-width:861px){
  .hero{--globe-w:min(720px,46vw,calc((100vh - 188px) * 1.2));--globe-out:clamp(0px,calc((100vw - 1200px) / 2),120px);--hero-gap:64px;
    min-height:calc(var(--s7) + var(--globe-w) * .86 + var(--s5))}
  .hero-copy{padding-bottom:0}
  .hero-copy>*{max-width:min(600px,calc(100% + var(--s6) + var(--globe-out) - var(--globe-w) * .932 - var(--hero-gap)))}
  .hero-readout-wrap{padding-top:var(--s7);padding-bottom:var(--s8)}
  .hero-readout-wrap>*{max-width:min(400px,calc(100% + var(--s6) + var(--globe-out) - var(--globe-w) * .932 - var(--hero-gap)))}
  .hero-earth{position:absolute;top:calc(var(--s7) + var(--globe-w) * .012);right:max(0px,calc(50% - 600px - var(--globe-out)));width:var(--globe-w);height:calc(var(--globe-w) * .82);z-index:1}
  .hero-earth-svg{height:100%;aspect-ratio:auto}
}
.hero-readout dl{margin:var(--s3) 0 0}
.hero-readout dl div{display:grid;grid-template-columns:104px 1fr;gap:var(--s3);padding:7px 0;border-top:1px solid var(--line)}
.hero-readout dt{font-family:var(--font-mono);font-size:11px;letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--text-3);padding-top:2px}
.hero-readout dd{margin:0;font-size:14px;color:var(--text);line-height:1.45}
/* Globo animado (static/hero-globe.js): canvas sobre el póster estático, mismo encuadre */
.hero-earth canvas{position:absolute;pointer-events:none}
.globe-base{opacity:0;transition:opacity .9s ease}
.globe-live .globe-base{opacity:1}
.hero-earth-svg image{transition:opacity .9s ease .9s}
.globe-live .hero-earth-svg image{opacity:0}
.globe-over{left:0;top:0;width:100%;height:100%}
.globe-on .hero-route,.globe-on .hero-port,.globe-on .hero-port-ring,.globe-on .hero-tag{display:none}
.globe-tag{position:absolute;left:0;top:0;display:flex;flex-direction:column;gap:2px;max-width:250px;padding:7px 10px 8px;background:rgba(6,10,18,.82);border:1px solid var(--line-strong);border-radius:var(--r1);pointer-events:none;opacity:0;transition:opacity .5s ease}
.globe-tag.is-on{opacity:1}
.globe-tag-mech{display:flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:11px;letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--text)}
.globe-tag-mech b{font-weight:500}
.globe-tag-mech i{flex:0 0 auto;width:7px;height:7px;border-radius:50%}
.globe-tag-place{font-size:13.5px;color:var(--text);line-height:1.35}
.globe-tag-val{font-family:var(--font-mono);font-size:11.5px;color:var(--text-2);line-height:1.4}
.readout-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);min-height:30px}
.globe-controls{display:inline-flex;align-items:center;gap:6px}
.globe-controls[hidden]{display:none}
.globe-steps{display:inline-flex;gap:3px;margin-right:6px}
.globe-step{width:12px;height:2px;background:var(--line-strong);transition:background .3s}
.globe-step.is-on{background:var(--accent)}
.globe-btn{display:inline-grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid var(--line);border-radius:var(--r1);background:transparent;color:var(--text-2);cursor:pointer}
.globe-btn:hover{color:var(--text);border-color:var(--line-strong)}
.globe-btn:focus-visible{outline:none;box-shadow:var(--focus)}
.globe-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.globe-btn .ico-play{display:none;fill:currentColor;stroke:none}
.globe-btn.is-paused .ico-play{display:block}
.globe-btn.is-paused .ico-pause{display:none}
.readout-sub{display:block;font-family:var(--font-mono);font-size:12px;color:var(--text-2);margin-top:2px}
.readout-sub:empty{display:none}
.lvl-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:1px;background:var(--text-3)}
.hero-readout .globe-only{display:none}
.hero-readout.is-live .globe-only{display:grid}
.hero-readout.is-live p.globe-only{display:block}
.readout-note{margin:var(--s3) 0 0;font-size:12px;line-height:1.5;color:var(--text-3)}
.hero-readout dd span[data-g="risk"]{display:block}

.section{padding:var(--s9) 0}
.section-ruled{border-top:1px solid var(--line)}
.split{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--s7)}
.section-index{color:var(--accent);margin-bottom:var(--s3)}
.section-title{font-size:22px;letter-spacing:var(--track-wide)}
.section-note{margin-top:var(--s4);color:var(--text-2);max-width:34ch;line-height:1.65}
.spec-list{list-style:none;margin:0;padding:0;border-bottom:1px solid var(--line)}
.spec-list li{display:grid;grid-template-columns:64px 1fr;gap:var(--s4);padding:var(--s5) 0;border-top:1px solid var(--line)}
.spec-num{font-family:var(--font-mono);font-size:13px;color:var(--text-3);padding-top:3px}
.spec-list h3{font-size:19px;font-weight:500;color:var(--text);margin-bottom:6px}
.spec-list p{color:var(--text-2);max-width:62ch}
.data-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s6)}
.data-col{border-left:1px solid var(--line-strong);padding-left:var(--s4)}
.data-col p:not(.data-label){color:var(--text-2);font-size:15px;line-height:1.65}
.data-label{color:var(--text);margin-bottom:var(--s3)}
.output-list{margin:0}
.output-list div{display:grid;grid-template-columns:180px 1fr;gap:var(--s5);padding:var(--s4) 0;border-top:1px solid var(--line)}
.output-list div:last-child{border-bottom:1px solid var(--line)}
.output-list dt{font-weight:500;color:var(--text)}
.output-list dd{margin:0;color:var(--text-2);max-width:62ch}
.cta-band{border-top:1px solid var(--line);padding:var(--s8) 0}
.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);flex-wrap:wrap}
.cta-title{font-weight:300;font-size:26px;max-width:28ch;line-height:1.3}

.site-footer{border-top:1px solid var(--line);padding:var(--s5) 0 var(--s6)}
.footer-inner{display:flex;justify-content:space-between;gap:var(--s4);flex-wrap:wrap;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.04em;color:var(--text-3)}

/* ---------- Páginas de la aplicación ---------- */
.app-main{padding-top:var(--s7);padding-bottom:var(--s9)}
.page-head{margin-bottom:var(--s6)}
.page-head .eyebrow{margin-bottom:var(--s3)}
.page-head-actions{margin:var(--s3) 0 0}
.page-title{font-size:clamp(28px,3.4vw,38px);line-height:1.15}
.title-route{display:block;overflow-wrap:anywhere}
.title-sep{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.title-cargo{display:block;margin-top:var(--s2);font-size:clamp(18px,1.9vw,22px);line-height:1.35;text-transform:none;letter-spacing:.01em;color:var(--text-2)}
.page-lede{margin-top:var(--s3);color:var(--text-2);max-width:62ch;font-size:16.5px}

/* Formulario */
.form-step{border:0;border-top:1px solid var(--line);margin:0;padding:var(--s6) 0;min-width:0;display:flow-root}
.step-head{float:left;width:var(--aside);padding:0;margin:0;display:flex;align-items:baseline;gap:var(--s3);flex-wrap:wrap}
.step-num{color:var(--accent)}
.step-name{font-size:15px;font-weight:500;letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--text)}
.step-tag{flex-basis:100%;font-family:var(--font-mono);font-size:11px;letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--text-3);padding-left:31px}
.form-step>.form-grid,.form-step>.fold{margin-left:var(--aside)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5) var(--s5)}
.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.span-2{grid-column:span 2}
.field{display:flex;flex-direction:column;gap:7px;min-width:0}
.field.full{grid-column:1 / -1}
label{font-size:14px;font-weight:500;color:var(--text);letter-spacing:.01em}
input,select,textarea{width:100%;min-height:46px;border-radius:var(--r2);border:1px solid var(--line-strong);background:var(--surface-2);color:var(--text);padding:11px 13px;font:400 15.5px/1.4 var(--font-sans);transition:border-color .15s ease,box-shadow .15s ease}
input:hover,select:hover,textarea:hover{border-color:rgba(150,180,215,.4)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(34,195,230,.22)}
input::placeholder,textarea::placeholder{color:#7f91a5;opacity:1}
select{appearance:none;-webkit-appearance:none;padding-right:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23a9b8c8' stroke-width='1.4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
select option{background:var(--surface-3);color:var(--text)}
input[type=date]{color-scheme:dark}
textarea{min-height:110px;resize:vertical}
.field-help{color:var(--text-3);font-size:13px;line-height:1.5}
.pw-rules{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:13px;line-height:1.4;color:var(--text-3)}
.pw-rules li{display:flex;align-items:center;gap:8px}
.pw-ico{flex:none;width:16px;height:16px;border-radius:50%;border:1.5px solid var(--text-3);position:relative}
.pw-rules li.is-met{color:var(--ok)}
.pw-rules li.is-met .pw-ico{background:var(--ok);border-color:var(--ok)}
.pw-rules li.is-met .pw-ico::after{content:"";position:absolute;left:4.5px;top:1.5px;width:4px;height:8px;border:solid var(--bg);border-width:0 2px 2px 0;transform:rotate(45deg)}
.pw-rules li.is-unmet{color:var(--danger-text)}
.pw-rules li.is-unmet .pw-ico{border-color:var(--danger-text)}
.field-error{color:var(--danger-text);font-size:13.5px;font-weight:500;line-height:1.4}
input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:var(--lvl-very-high);box-shadow:0 0 0 3px rgba(255,107,107,.18)}

/* Buscadores (puertos y mercadería) */
.v1-search-field{position:relative}
.v1-search-input-wrap{position:relative}
.v1-search-input-wrap input{padding-right:44px}
.v1-clear-input{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:0;border-radius:var(--r1);background:transparent;color:var(--text-3);font-size:20px;line-height:1;cursor:pointer;display:none}
.v1-clear-input:hover{color:var(--text);background:rgba(150,180,215,.1)}
.v1-clear-input.visible{display:inline-flex;align-items:center;justify-content:center}
.v1-search-results{position:absolute;top:100%;left:0;right:0;z-index:25;margin-top:6px;background:var(--surface-3);border:1px solid var(--line-strong);border-radius:var(--r2);box-shadow:var(--shadow-pop);display:none;max-height:320px;overflow-y:auto}
.v1-search-results.active{display:block}
.v1-search-item{padding:11px 14px;border-top:1px solid var(--line);border-left:2px solid transparent;cursor:pointer}
.v1-search-item:first-child{border-top:0}
.v1-search-item:hover,.v1-search-item.is-active{background:var(--accent-soft);border-left-color:var(--accent)}
.v1-search-item strong{display:block;font-weight:500;color:var(--text);font-size:15px}
.v1-search-item span{display:block;color:var(--text-3);font-size:12.5px;margin-top:2px;font-family:var(--font-mono);letter-spacing:.02em}

/* Secciones plegables */
.fold{border:1px solid var(--line);border-radius:var(--r2);background:var(--surface);margin-bottom:var(--s3)}
.fold>summary{list-style:none;cursor:pointer;padding:var(--s4) 52px var(--s4) var(--s5);position:relative;display:flex;flex-direction:column;gap:3px}
.fold>summary::-webkit-details-marker{display:none}
.fold>summary::after{content:'+';position:absolute;right:20px;top:50%;transform:translateY(-50%);font:300 24px/1 var(--font-sans);color:var(--text-2)}
.fold[open]>summary::after{content:'−'}
.fold>summary:hover .fold-title{color:var(--accent)}
.fold>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.fold-title{font-size:16px;font-weight:500;color:var(--text)}
.fold-meta{font-size:13px;color:var(--text-3)}
.fold>.form-grid,.fold>.fold-note{margin:0 var(--s5) var(--s5)}
.fold>.fold-note{margin-top:0;margin-bottom:var(--s4)}
.exposure-grid{margin-top:0}

.actions{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap;border-top:1px solid var(--line);padding-top:var(--s6);padding-left:var(--aside)}
.actions-note{font-family:var(--font-mono);font-size:12px;color:var(--text-3);letter-spacing:.02em}
.inline-results{margin-top:var(--s6)}

/* ---------- Resultado ---------- */
.result-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;font-family:var(--font-mono);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin-bottom:var(--s2)}
.meta-route{color:var(--text)}
.meta-arrow{color:var(--accent)}
.meta-sep{color:var(--line-strong)}
.product-line{margin:0 0 var(--s5);font-size:15px;color:var(--text-2);line-height:1.5}
.product-line strong{color:var(--text);font-weight:500}

.result-top{display:grid;grid-template-columns:300px 1fr;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line)}
.result-index-card{--lvl:var(--text);padding:var(--s6) var(--s6) var(--s6) 0;border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start}
.result-index-card.lvl-card-low{--lvl:var(--lvl-low)}
.result-index-card.lvl-card-moderate{--lvl:var(--lvl-moderate)}
.result-index-card.lvl-card-high{--lvl:var(--lvl-high)}
.result-index-card.lvl-card-very-high{--lvl:var(--lvl-very-high)}
.result-index-label{order:-1;margin-bottom:var(--s3)}
.result-index-value{font-size:104px;line-height:.95;font-weight:300;color:var(--lvl);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.of100{font-size:22px;font-weight:300;color:var(--text-3);margin-left:6px;letter-spacing:0}
.result-band{margin-top:var(--s4)}
.result-index-card .result-band{padding:0;background:none}
.conf-line{margin-top:var(--s4);font-size:14px;color:var(--text-2)}
.no-protection-note{margin-top:var(--s2);font-size:13px;line-height:1.5;color:var(--text-2)}
.no-protection-note a{color:var(--accent)}
.conf-line strong{color:var(--text);font-weight:500}
.result-main-copy{padding:var(--s6) 0 var(--s6) var(--s6);min-width:0}
.result-main-copy h3{font-family:var(--font-mono);font-size:11.5px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--text-3);margin-bottom:var(--s3)}
.result-main-copy p{color:var(--text-2);line-height:1.7;margin-top:var(--s3)}
.result-main-copy h3+p{margin-top:0;font-size:18px;color:var(--text);line-height:1.55}
.driver-list{margin:var(--s4) 0 var(--s2);padding-left:18px;color:var(--text);line-height:1.6}
.driver-list li{margin-bottom:6px}
.driver-list li::marker{color:var(--text-3)}
.assump{margin-top:var(--s4);border-top:1px solid var(--line);padding-top:var(--s3)}
.assump summary{cursor:pointer;font-weight:500;color:var(--text-2);font-size:14.5px}
.assump summary:hover{color:var(--text)}
.assump ul{margin:10px 0 0;padding-left:18px;color:var(--text-2);line-height:1.6;font-size:14px}
.missing-list{margin:8px 0 0;padding-left:18px;line-height:1.6}
.sub-h{margin:var(--s4) 0 4px;font-size:13px;font-weight:500;color:var(--text)}

/* Niveles */
.lvl-chip{display:inline-block;border-radius:var(--r1);padding:3px 9px;font:500 11.5px/1.5 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:1px solid transparent;vertical-align:middle}
.lvl-chip.big{font-size:13px;padding:6px 12px}
.lvl-chip.lvl-low{background:var(--lvl-low-bg);color:var(--lvl-low);border-color:rgba(76,195,138,.35)}
.lvl-chip.lvl-moderate{background:var(--lvl-moderate-bg);color:var(--lvl-moderate);border-color:rgba(229,182,73,.35)}
.lvl-chip.lvl-high{background:var(--lvl-high-bg);color:var(--lvl-high);border-color:rgba(243,146,85,.35)}
.lvl-chip.lvl-very-high{background:var(--lvl-very-high-bg);color:var(--lvl-very-high);border-color:rgba(255,107,107,.38)}
.band-low{color:var(--lvl-low)}.band-moderate{color:var(--lvl-moderate)}.band-high{color:var(--lvl-high)}.band-critical{color:var(--lvl-very-high)}

/* Punto crítico */
.critical-card{margin-top:var(--s6);background:var(--surface);border:1px solid var(--line);border-left:2px solid var(--lvl-very-high);border-radius:var(--r2);padding:var(--s5) var(--s6)}
.critical-kicker{color:var(--lvl-very-high)}
.critical-card h3{margin:var(--s2) 0 var(--s3);font-size:24px;font-weight:400;color:var(--text);line-height:1.3}
.critical-card p{color:var(--text-2);line-height:1.7;max-width:80ch}
.critical-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s5);margin-top:var(--s5)}
.critical-stats div{border-left:1px solid var(--line-strong);padding-left:var(--s4)}
.critical-stats span{display:block;font-size:13px;color:var(--text-3);line-height:1.4}
.critical-stats strong{display:block;margin-top:6px;font:500 24px/1.2 var(--font-mono);color:var(--text);font-variant-numeric:tabular-nums}

/* Secciones del resultado, numeradas */
.result-section{margin-top:var(--s7)}
.result-section>h3{display:flex;align-items:baseline;gap:var(--s3);font-size:18px;font-weight:300;text-transform:uppercase;letter-spacing:var(--track-wide);color:var(--text);padding-bottom:var(--s3);margin-bottom:var(--s4);border-bottom:1px solid var(--line)}
/* no 01/02 counter: the protection blocks carry the step numbers 1-3 */
.detail-divider{display:flex;align-items:center;gap:var(--s4);margin-top:var(--s8);font-family:var(--font-mono);font-size:11.5px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--text-3)}
.detail-divider::after{content:'';flex:1;height:1px;background:var(--line-strong)}
.detail-divider+.result-section{margin-top:var(--s5)}
.result-collapse>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:var(--s3);font-size:18px;font-weight:300;text-transform:uppercase;letter-spacing:var(--track-wide);color:var(--text);padding:var(--s3) 0;border-bottom:1px solid var(--line);min-height:44px}
.result-collapse>summary::-webkit-details-marker{display:none}
.result-collapse>summary::after{content:'';flex:none;width:9px;height:9px;border-right:2px solid var(--text-2);border-bottom:2px solid var(--text-2);transform:rotate(45deg);margin:-4px 4px 0 var(--s3);transition:transform .15s}
.result-collapse[open]>summary::after{transform:rotate(-135deg);margin-top:4px}
.result-collapse>summary:hover{color:var(--accent)}
.result-collapse>summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.result-collapse-body{margin-top:var(--s4)}
.result-collapse-sub{font-size:15px;font-weight:500;color:var(--text-2);margin:0 0 var(--s4)}
@media print{.result-collapse>summary::after{display:none}}
@media (max-width:640px){.result-collapse>summary{font-size:16px}}

.result-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);padding:var(--s5)}
.result-card h4{margin:0 0 var(--s3);font-size:15.5px;font-weight:500;color:var(--text)}
.result-card p,.result-card li{color:var(--text-2);line-height:1.65}
.result-card ul{margin:0;padding-left:18px}
.result-card li{margin-bottom:var(--s3)}
.result-card li strong{color:var(--text);font-weight:500}
.result-card li::marker{color:var(--text-3)}
.result-card-key{border-color:var(--line-strong)}
.result-card.full-span{grid-column:1 / -1}
.steps-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--s4)}
.eff-chip{display:inline-block;border-radius:var(--r1);padding:2px 8px;font:500 11px/1.5 var(--font-mono);letter-spacing:.04em;white-space:nowrap;vertical-align:middle;margin-left:4px}
.eff-chip.eff-ok{background:var(--lvl-low-bg);color:var(--lvl-low)}
.eff-chip.eff-mid{background:var(--lvl-moderate-bg);color:var(--lvl-moderate)}
.eff-chip.eff-low{background:rgba(150,180,215,.1);color:var(--text-2)}
.protect-list{margin:8px 0;padding-left:18px;color:var(--text-2);line-height:1.6}
.protect-stats{margin:var(--s3) 0}

/* Mecanismos */
.mech-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s4)}
.mech-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);padding:var(--s4) var(--s4) var(--s5);min-width:0}
.mech-main{border-color:var(--line-strong)}
.mech-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.mech-head h4{font-size:15px;font-weight:500;color:var(--text)}
.prelim-tag{font:500 11px/1.5 var(--font-mono);letter-spacing:.04em;color:var(--text-2);background:rgba(150,180,215,.1);border-radius:var(--r1);padding:2px 8px}
.mech-score{margin-top:var(--s3);display:flex;align-items:baseline;gap:4px}
.mech-score strong{font-size:40px;line-height:1;font-weight:300;color:var(--text);font-variant-numeric:tabular-nums}
.mech-score span{color:var(--text-3);font-size:14px}
.score-bar{height:3px;background:var(--line);overflow:hidden;margin-top:var(--s3)}
.score-bar i{display:block;height:100%}
.score-bar i.lvl-low{background:var(--lvl-low)}.score-bar i.lvl-moderate{background:var(--lvl-moderate)}.score-bar i.lvl-high{background:var(--lvl-high)}.score-bar i.lvl-very-high{background:var(--lvl-very-high)}
.mech-sub{margin:10px 0 0;padding-left:18px;font-size:13.5px;color:var(--text-2);line-height:1.55}
.mech-status{margin:12px 0 0;font-weight:500;color:var(--text-2);font-size:14px}
.mech-status.flagged{color:var(--lvl-high)}
.mech-hint{margin:10px 0 0;font-size:13.5px;color:var(--text-2);line-height:1.55}
.mech-hint strong{color:var(--text);font-weight:500}
.mech-cp{border-left:1px solid var(--line-strong);padding-left:10px}
.mech-assump{margin-top:var(--s3)}
.mech-assump summary{font-size:13px}
.mech-assump li{font-size:12.5px}

/* Tramos */
.table-wrap{border:1px solid var(--line);border-radius:var(--r2);overflow-x:auto;background:var(--surface)}
.legs-table{width:100%;border-collapse:collapse;font-size:14px}
.legs-table th{text-align:left;font:400 10.5px/1.4 var(--font-mono);letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--text-3);padding:12px;white-space:nowrap;border-bottom:1px solid var(--line-strong)}
.legs-table td{padding:11px 12px;border-top:1px solid var(--line);vertical-align:top;color:var(--text-2)}
.legs-table tbody tr:first-child td{border-top:0}
.legs-table td strong{color:var(--text);font-weight:500}
.legs-table td small{display:block;color:var(--text-3);margin-top:2px;font-family:var(--font-mono);font-size:11.5px}
.legs-table td:nth-child(3),.legs-table td:nth-child(4){font-family:var(--font-mono);font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}
.legs-table td.neg{color:var(--lvl-very-high);font-weight:500}
.legs-table tr.is-critical td{background:rgba(255,107,107,.06)}
.leg-row td:first-child{border-left:3px solid transparent}
.lvl-row-low td:first-child{border-left-color:var(--lvl-low)}.lvl-row-moderate td:first-child{border-left-color:var(--lvl-moderate)}.lvl-row-high td:first-child{border-left-color:var(--lvl-high)}.lvl-row-very-high td:first-child{border-left-color:var(--lvl-very-high)}
.crit-flag{display:inline-block;margin-left:6px;font:500 10.5px/1.5 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--lvl-very-high);background:var(--lvl-very-high-bg);border-radius:var(--r1);padding:1px 7px}

/* Mapa */
.map-wrap{border:1px solid var(--line);border-radius:var(--r2);overflow:hidden;background:var(--map-water)}
.maplibre-wrap{padding:0}
.maplibre-map{width:100%;height:480px;display:block}
.route-map-fallback{width:100%;min-height:420px;background:var(--map-water);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px}
.route-map-fallback-svg{width:100%;max-width:980px;height:420px}
.route-map-fallback-message{margin-top:12px;color:var(--text-2);font-size:13px}
.map-legend{display:flex;gap:var(--s5);flex-wrap:wrap;margin-top:var(--s3);font-family:var(--font-mono);font-size:12px;letter-spacing:.03em;color:var(--text-2)}
.legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:middle}
.legend-dot.low{background:var(--lvl-low)}.legend-dot.moderate{background:var(--lvl-moderate)}.legend-dot.high{background:var(--lvl-high)}.legend-dot.very-high{background:var(--lvl-very-high)}
.legend-dot.crit{background:var(--lvl-very-high);box-shadow:0 0 0 2px var(--bg),0 0 0 3.5px var(--lvl-very-high)}
.map-label-pin{font:500 11px/1.3 var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--text);background:rgba(6,10,18,.9);border:1px solid var(--line-strong);border-radius:var(--r1);padding:3px 7px;white-space:nowrap;pointer-events:none}
.map-label-pin.critical{color:#ffc2bd;border-color:var(--lvl-very-high)}
.map-popup{font-family:var(--font-sans);font-size:13px;line-height:1.55;color:var(--text-2)}
.map-popup strong{display:block;margin-bottom:4px;color:var(--text);font-weight:500}
.maplibregl-popup-content{background:var(--surface-3);border:1px solid var(--line-strong);border-radius:var(--r2);box-shadow:var(--shadow-pop);padding:10px 12px}
.maplibregl-popup-anchor-bottom .maplibregl-popup-tip,.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip,.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{border-top-color:var(--surface-3)}
.maplibregl-popup-anchor-top .maplibregl-popup-tip,.maplibregl-popup-anchor-top-left .maplibregl-popup-tip,.maplibregl-popup-anchor-top-right .maplibregl-popup-tip{border-bottom-color:var(--surface-3)}
.maplibregl-popup-anchor-left .maplibregl-popup-tip{border-right-color:var(--surface-3)}
.maplibregl-popup-anchor-right .maplibregl-popup-tip{border-left-color:var(--surface-3)}
.maplibre-map .maplibregl-ctrl-group{background:var(--surface-3);border:1px solid var(--line-strong);border-radius:var(--r2);box-shadow:none}
.maplibre-map .maplibregl-ctrl-group button+button{border-top-color:var(--line-strong)}
.maplibre-map .maplibregl-ctrl-group button .maplibregl-ctrl-icon,.maplibre-map .maplibregl-ctrl-attrib-button{filter:invert(.88)}
.maplibre-map .maplibregl-ctrl-group button:not(:disabled):hover{background-color:rgba(150,180,215,.1)}
.maplibre-map .maplibregl-ctrl-attrib,.maplibre-map .maplibregl-ctrl.maplibregl-ctrl-attrib.maplibregl-compact{background:rgba(6,10,18,.8);color:var(--text-3)}
.maplibre-map .maplibregl-ctrl-attrib a{color:var(--text-2)}

/* Avisos y estados */
.route-warning{margin:var(--s5) 0;padding:var(--s3) var(--s4);border:1px solid rgba(229,182,73,.3);border-left:2px solid var(--lvl-moderate);background:rgba(229,182,73,.06);color:var(--text-2);font-size:14.5px;border-radius:var(--r2)}
.route-warning strong{color:var(--lvl-moderate);font-weight:500}
.route-warning ul{margin:4px 0 0;padding-left:18px}
.unavailable-card{margin-top:var(--s3);border-left:2px solid var(--lvl-moderate)}
.unavailable-card h3{margin:0 0 6px;font-size:22px;font-weight:400}
.unavailable-card h4{margin:var(--s5) 0 8px}
.route-pair{font-weight:500;color:var(--text)}
.b11-inline-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.empty-state{padding:var(--s7) var(--s6)}
.empty-state h3{margin:0 0 var(--s2);font-size:22px;font-weight:400;color:var(--text)}
.empty-state p{margin:0 0 var(--s5);max-width:60ch}
.technical-detail{margin-top:var(--s7);border-top:1px solid var(--line);padding-top:var(--s4)}
.technical-detail summary{cursor:pointer;font-family:var(--font-mono);font-size:12px;letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--text-3)}
.technical-detail summary:hover{color:var(--text)}
.technical-detail pre{margin-top:var(--s3);max-height:520px;white-space:pre-wrap;font:12.5px/1.55 var(--font-mono);color:var(--text-2);background:#04070d;border:1px solid var(--line);border-radius:var(--r2);padding:var(--s4);overflow:auto}

/* ---------- Cuestionario (/analysis): una pregunta por pantalla ---------- */
.quiz{max-width:720px;margin:0 auto}
.quiz-main{padding-top:var(--s6)}
.quiz-top{margin-bottom:var(--s2)}
.quiz-progress{display:flex;align-items:center;gap:var(--s4)}
.quiz-progress-label{font-family:var(--font-mono);font-size:11.5px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--text-3);white-space:nowrap}
.quiz-bar{position:relative;flex:1;height:2px;background:var(--line);overflow:hidden}
.quiz-bar-fill{position:absolute;inset:0;background:var(--accent);transform-origin:left center;transform:scaleX(0);transition:transform .35s ease}
.quiz-top.is-extra .quiz-bar-fill{background:var(--text-3)}
.quiz-chips{list-style:none;margin:var(--s4) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s2)}
.quiz-chips:empty{display:none}
.quiz-chip{display:inline-flex;align-items:baseline;gap:8px;max-width:100%;min-height:34px;padding:6px 12px;border:1px solid var(--line-strong);border-radius:var(--r2);background:transparent;color:var(--text);font:400 14px/1.3 var(--font-sans);cursor:pointer;text-align:left;transition:border-color .15s ease,background-color .15s ease}
.quiz-chip:hover{border-color:var(--accent);background:var(--accent-soft)}
.quiz-chip:focus-visible{outline:none;box-shadow:var(--focus)}
.quiz-chip-k{font-family:var(--font-mono);font-size:10.5px;letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--text-3);white-space:nowrap}
.quiz-chip-v{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:28ch}

.q-step{padding-top:var(--s7);animation:q-in .28s ease both}
.q-step[hidden]{display:none}
@keyframes q-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.q-title{display:block;font-weight:300;font-size:clamp(25px,3.2vw,34px);line-height:1.22;letter-spacing:.005em;color:var(--text);max-width:30ch;margin:0 0 var(--s3)}
.q-title:focus{outline:none}
.q-title:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
.q-title-intro{font-size:clamp(27px,3.8vw,40px);max-width:24ch;line-height:1.2}
.q-help{color:var(--text-2);font-size:16.5px;line-height:1.6;max-width:58ch;margin-bottom:var(--s5)}
.q-intro{padding-top:var(--s8)}
.q-intro .eyebrow{margin-bottom:var(--s5)}
.q-intro .q-help{margin-top:var(--s4)}
.q-intro-list{list-style:none;counter-reset:q;margin:var(--s6) 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3) var(--s5);border-top:1px solid var(--line);padding-top:var(--s5)}
.q-intro-list li{counter-increment:q;display:flex;gap:10px;align-items:baseline;color:var(--text-2);font-size:15px}
.q-intro-list li::before{content:counter(q,decimal-leading-zero);font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;color:var(--accent)}
.q-intro-actions{margin-top:var(--s6)}
.q-intro-actions .btn{min-width:180px}

.q-field input{min-height:58px;font-size:18px;padding:14px 16px}
.q-field .v1-search-input-wrap input{padding-right:48px}
.q-field-date input{max-width:280px}
.q-field .v1-search-results{max-height:min(360px,50vh)}
.v1-search-empty{padding:12px 14px;color:var(--text-3);font-size:14px}
.q-quick{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s4)}
.q-quick-btn,.q-unknown{min-height:40px;padding:0 14px;border:1px solid var(--line-strong);border-radius:var(--r2);background:transparent;color:var(--text-2);font:400 14px/1 var(--font-sans);cursor:pointer;white-space:nowrap;transition:border-color .15s ease,color .15s ease,background-color .15s ease}
.q-quick-btn:hover,.q-unknown:hover{border-color:var(--accent);color:var(--text)}
.q-quick-btn:focus-visible,.q-unknown:focus-visible{outline:none;box-shadow:var(--focus)}
.q-unknown[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}

.q-group-label{font-family:var(--font-mono);font-size:11.5px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--text-3);margin:var(--s5) 0 var(--s3)}
.q-fields .q-group-label{margin-top:0}
.choice-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.choice-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.choice-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.choice-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.choice-grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.choice-grid-compact{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.choice{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:56px;padding:13px 16px;border:1px solid var(--line-strong);border-radius:var(--r2);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}
.choice:hover{border-color:rgba(150,180,215,.5);background:var(--surface-2)}
.choice:focus-visible{outline:none;box-shadow:var(--focus)}
.choice[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}
.choice[aria-pressed="true"]:focus-visible{box-shadow:inset 0 0 0 1px var(--accent),var(--focus)}
.choice::after{content:'';position:absolute;top:12px;right:12px;width:8px;height:8px;border-radius:50%;border:1px solid var(--line-strong)}
.choice[aria-pressed="true"]::after{background:var(--accent);border-color:var(--accent)}
.choice-label{font-size:15.5px;font-weight:500;line-height:1.3;padding-right:14px}
.choice-desc{font-size:13px;line-height:1.4;color:var(--text-3)}
.choice[aria-pressed="true"] .choice-desc{color:var(--text-2)}
.choice.has-icon{padding-top:16px}
.choice-icon{display:block;margin-bottom:8px;color:var(--text-2)}
.choice[aria-pressed="true"] .choice-icon{color:var(--accent)}
.choice-svg{width:64px;height:40px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linejoin:round;stroke-linecap:round}
.choice-svg path{stroke-width:1}
.choice-svg .choice-svg-accent{stroke:var(--accent);stroke-width:1.4}
.choice-svg .choice-svg-dash{stroke-dasharray:3 3;stroke-width:1.4}
.choice-unknown{border-style:dashed;background:transparent}
.choice-unknown .choice-label{font-weight:400;color:var(--text-2)}
.choice-unknown[aria-pressed="true"] .choice-label{color:var(--text)}
.choice-grid-small .choice{min-height:48px;padding:11px 14px}
.choice-grid-small .choice-label{font-size:15px}
.choice-grid+.field-error{margin-top:var(--s3)}
.sr-select{display:none}

.q-fields{display:grid;grid-template-columns:1fr;gap:var(--s6)}
.q-fields-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5) var(--s6)}
.q-fields .field.full{grid-column:1 / -1}
.q-fields label{color:var(--text);font-size:15.5px}
.q-num-row{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}
.q-num-row input{flex:0 1 200px;min-width:120px}
.q-num input[type=number]{max-width:200px}
input:disabled{opacity:.45;cursor:not-allowed}
.q-step[data-step^="x-"] .q-title{margin-bottom:var(--s5)}
.q-step[data-step^="x-"] .q-help{margin-top:calc(-1 * var(--s3))}

.review-list{margin:var(--s5) 0 0;border-bottom:1px solid var(--line)}
.review-row{display:grid;grid-template-columns:170px minmax(0,1fr) auto;gap:var(--s4);align-items:baseline;padding:14px 0;border-top:1px solid var(--line)}
.review-row dt{color:var(--text-3);font-size:14px}
.review-row dd{margin:0;color:var(--text);font-size:16px;min-width:0;overflow-wrap:anywhere}
.review-row.is-missing dd:not(.review-act){color:var(--danger-text)}
.review-row-extra dd{font-size:15px}
.review-sub{padding:var(--s5) 0 var(--s2);border-top:1px solid var(--line)}
.review-sub dt{font-family:var(--font-mono);font-size:11.5px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--text-3)}
.review-edit{border:0;background:none;padding:6px 2px;color:var(--accent);font:500 14px/1 var(--font-sans);cursor:pointer;border-bottom:1px solid transparent}
.review-edit:hover{border-bottom-color:var(--accent)}
.review-edit:focus-visible{outline:none;box-shadow:var(--focus)}
.review-extra{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);margin:var(--s6) 0 var(--s4);padding:var(--s5);border:1px solid var(--line);border-left:2px solid var(--accent);background:var(--surface)}
.review-extra-title{font-size:17px;font-weight:500;color:var(--text)}
.review-extra-text{margin-top:4px;color:var(--text-2);font-size:14.5px;max-width:52ch}
.review-extra .btn{flex:0 0 auto}
.review-ref{margin-top:var(--s4)}

.quiz-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);margin-top:var(--s7);padding-top:var(--s5);border-top:1px solid var(--line)}
.quiz-nav[hidden]{display:none}
.quiz-nav-right{display:flex;align-items:center;gap:var(--s3);margin-left:auto}
.quiz-back{padding-left:6px}
.quiz-hint{font-family:var(--font-mono);font-size:12px;color:var(--text-3);letter-spacing:.02em}
.quiz-nav .btn-lg{min-width:150px}
.quiz-nav-note{margin-top:var(--s3);text-align:right;font-family:var(--font-mono);font-size:12px;color:var(--text-3)}
@media (hover:none){.quiz-hint{display:none}}

/* ---------- Ventana de embarque (comparar fechas y rutas) ---------- */
.result-index-card .window-trigger{margin-top:var(--s5)}
.window-section{scroll-margin-top:96px}
.window-intro{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);flex-wrap:wrap}
.window-intro p{color:var(--text-2);max-width:62ch}
.window-status{margin-top:var(--s4);font-size:14.5px;color:var(--text-3);display:flex;align-items:center;gap:var(--s3);min-height:0}
.window-status:empty{display:none}
.window-status.is-busy{color:var(--text);padding:var(--s4);border:1px solid var(--line);border-left:2px solid var(--accent);background:var(--accent-soft);border-radius:var(--r2)}
.window-status.is-error{display:block;color:var(--text-2);padding:var(--s4);border:1px solid rgba(255,107,107,.35);border-left:2px solid var(--lvl-very-high);background:var(--lvl-very-high-bg);border-radius:var(--r2)}
.window-status.is-error strong{color:var(--danger-text);font-weight:500}
.window-spinner{flex:0 0 auto;width:16px;height:16px;border-radius:50%;border:2px solid rgba(34,195,230,.25);border-top-color:var(--accent);animation:w-spin .9s linear infinite}
@keyframes w-spin{to{transform:rotate(360deg)}}
.window-panel{margin-top:var(--s4)}
.window-panel:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
.window-summary{font-size:18px;line-height:1.5;color:var(--text);font-weight:300}
.window-summary strong{font-weight:500}
.window-summary-kicker{display:block;font-family:var(--font-mono);font-size:11.5px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--accent);margin-bottom:4px}
.delta-down{color:var(--lvl-low);font-weight:500}
.delta-up{color:var(--lvl-very-high);font-weight:500}
.delta-zero{color:var(--text-3)}
/* Gráfico de barras (CSS) */
.window-chart{margin:var(--s5) 0 var(--s4);padding:var(--s4) var(--s4) var(--s3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r2)}
.wbars{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:var(--s2);align-items:end}
.wbar{display:flex;flex-direction:column;align-items:center;min-width:0;--bar:var(--text-3);--bar-bg:rgba(150,180,215,.08)}
.wbar.lvl-low{--bar:var(--lvl-low)}.wbar.lvl-moderate{--bar:var(--lvl-moderate)}.wbar.lvl-high{--bar:var(--lvl-high)}.wbar.lvl-very-high{--bar:var(--lvl-very-high)}
.wbar-tag{height:18px;font:500 10.5px/18px var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);white-space:nowrap}
.wbar-track{position:relative;width:100%;max-width:56px;height:150px;display:flex;align-items:flex-end;border-bottom:1px solid var(--line-strong)}
.wbar-fill{position:relative;display:block;width:100%;background:var(--bar);opacity:.82;border-radius:var(--r1) var(--r1) 0 0}
.wbar-val{position:absolute;left:0;right:0;bottom:100%;padding-bottom:3px;text-align:center;font:500 12.5px/1.2 var(--font-mono);color:var(--text);font-variant-numeric:tabular-nums}
.wbar.is-original .wbar-fill{opacity:1;background:repeating-linear-gradient(135deg,var(--bar) 0 6px,color-mix(in srgb,var(--bar) 70%,var(--bg)) 6px 9px)}
.wbar.is-best .wbar-fill{opacity:1;box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--accent),0 0 18px rgba(34,195,230,.35)}
.wbar.is-best .wbar-val{color:var(--accent)}
.wbar.is-na .wbar-track{background:repeating-linear-gradient(135deg,transparent 0 5px,rgba(150,180,215,.06) 5px 7px)}
.wbar-off{margin-top:8px;font:400 11px/1.3 var(--font-mono);color:var(--text-2);white-space:nowrap}
.wbar.is-original .wbar-off{color:var(--text);font-weight:500}
.wbar-date{font:400 11px/1.3 var(--font-mono);color:var(--text-3);white-space:nowrap;text-align:center}
.wshort,.window-axis-note{display:none}
.window-legend{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--line);font-size:12.5px;color:var(--text-3)}
.window-legend span{display:inline-flex;align-items:center;gap:8px}
.wkey{display:inline-block;width:14px;height:10px;border-radius:1px}
.wkey-original{background:repeating-linear-gradient(135deg,var(--text-2) 0 3px,var(--surface) 3px 5px)}
.wkey-best{background:transparent;box-shadow:inset 0 0 0 2px var(--accent)}
/* Tabla */
.window-table-wrap:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.window-table{width:100%;min-width:640px;border-collapse:collapse;font-size:14px}
.window-table th,.window-table td{padding:10px 12px;text-align:left;vertical-align:middle;border-top:1px solid var(--line)}
.window-table thead th{font:400 10.5px/1.4 var(--font-mono);letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--text-3);vertical-align:bottom;border-top:0;border-bottom:1px solid var(--line-strong)}
.window-table thead th.num{white-space:normal;max-width:13ch}
.window-table .num{text-align:right;font-family:var(--font-mono);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.window-table td{color:var(--text-2)}
.window-table tbody th[scope="row"]{font-weight:400;color:var(--text);min-width:170px;white-space:nowrap;border-left:2px solid transparent}
.window-table tbody th small{display:block;font-family:var(--font-mono);font-size:11.5px;color:var(--text-3);margin-top:1px}
.window-table tr.wgroup th{font:400 10.5px/1.4 var(--font-mono);letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--text-2);background:rgba(150,180,215,.04);padding-top:8px;padding-bottom:8px;border-top:1px solid var(--line-strong)}
.window-table tbody:first-of-type tr.wgroup th{border-top:0}
.window-table .windex{font-size:15px;font-weight:500}
.window-table tr.is-original th[scope="row"]{border-left-color:var(--text-2)}
.window-table tr.is-original td,.window-table tr.is-original th[scope="row"]{background:rgba(150,180,215,.05)}
.window-table tr.is-best th[scope="row"]{border-left-color:var(--accent)}
.window-table tr.is-best td,.window-table tr.is-best th[scope="row"]{background:var(--accent-soft)}
.window-table td.wna{color:var(--text-3);font-size:13.5px}
.wtag{display:inline-block;margin-left:8px;vertical-align:2px;font:500 10px/1.5 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;border-radius:var(--r1);padding:1px 6px;white-space:nowrap}
.window-table tbody th small.is-planned{color:var(--text);font-weight:500}
.wtag-best{color:var(--accent-ink);background:var(--accent)}
.window-route-note strong{color:var(--text-2);font-weight:500}

/* ---------- Responsive ---------- */
@media (max-width:1040px){
  .split{grid-template-columns:1fr;gap:var(--s5)}
  .section-note{max-width:60ch}
  .result-top{grid-template-columns:1fr}
  .result-index-card{border-right:0;border-bottom:1px solid var(--line);padding-right:0}
  .result-main-copy{padding-left:0}
  .mech-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .form-grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:860px){
  :root{--aside:0px}
  .step-head{float:none;width:auto;margin-bottom:var(--s4)}
  .step-tag{flex-basis:auto;padding-left:0}
}
@media (max-width:720px){
  .shell{padding-left:20px;padding-right:20px}
  .site-header-inner{height:60px;gap:var(--s3)}
  .brand-mark{height:25.2px}
  .brand-tagline{font-size:8.5px;letter-spacing:.14em}
  .site-nav{gap:var(--s4)}
  .site-nav .btn{padding:0 12px}
  .lang-btn{min-width:34px}
  .lede-strong{font-size:17.5px}
  .nav-link{font-size:14px}
  .hero-copy{padding-top:var(--s7)}
  .lede{font-size:16.5px}
  .hero-actions{gap:var(--s5)}
  .hero-earth{margin-top:0}
  .hero-tag,.globe-tag{display:none}
  .hero-readout{width:100%}
  .section{padding:var(--s8) 0}
  .spec-list li{grid-template-columns:44px 1fr;gap:var(--s3)}
  .data-columns{grid-template-columns:1fr;gap:var(--s5)}
  .output-list div{grid-template-columns:1fr;gap:4px}
  .cta-title{font-size:22px}
  .form-grid,.form-grid.cols-3{grid-template-columns:1fr}
  .span-2{grid-column:auto}
  .form-step{padding:var(--s5) 0}
  .fold>summary{padding-left:var(--s4)}
  .fold>.form-grid,.fold>.fold-note{margin-left:var(--s4);margin-right:var(--s4)}
  .actions .btn-solid{flex:1 1 100%}
  .result-index-value{font-size:84px}
  .critical-card{padding:var(--s5) var(--s4)}
  .critical-card h3{font-size:21px}
  .critical-stats{grid-template-columns:1fr;gap:var(--s3)}
  .mech-grid,.steps-grid{grid-template-columns:1fr}
  .window-intro .btn{width:100%}
  .result-index-card .window-trigger{width:100%}
  .window-summary{font-size:16.5px}
  .window-chart{padding:var(--s3) var(--s2) var(--s3)}
  .wbars{gap:3px}
  .wbar-track{height:120px}
  .wbar-val{font-size:11px}
  .wbar-off,.wbar-date{font-size:10.5px}
  .wbar-date span{display:block}
  .wbar .wfull{display:none}
  .wbar .wshort,.window-axis-note{display:inline}
  .window-table thead th.num{max-width:11ch}
  .wbar-tag{font-size:9px;letter-spacing:.02em}
  .maplibre-map{height:340px}
  .legs-table thead{display:none}
  .legs-table,.legs-table tbody,.legs-table tr,.legs-table td{display:block;width:100%}
  .legs-table tr{border-top:1px solid var(--line);padding:8px 0}
  .legs-table tbody tr:first-child{border-top:0}
  .legs-table td{border:0;padding:4px 14px;display:flex;justify-content:space-between;gap:12px;text-align:right}
  .legs-table td::before{content:attr(data-label);font-family:var(--font-sans);font-size:12.5px;color:var(--text-3);text-align:left;flex:0 0 46%;white-space:normal}
  .legs-table td:first-child{display:block;text-align:left;border-left:3px solid transparent;padding-top:8px}
  .legs-table td:first-child::before{content:none}
  .lvl-row-low td:first-child{border-left-color:var(--lvl-low)}.lvl-row-moderate td:first-child{border-left-color:var(--lvl-moderate)}.lvl-row-high td:first-child{border-left-color:var(--lvl-high)}.lvl-row-very-high td:first-child{border-left-color:var(--lvl-very-high)}
  .footer-inner{flex-direction:column}
  /* Cuestionario en celular: navegación fija abajo, tarjetas en dos columnas */
  .quiz-main{padding-top:var(--s5);padding-bottom:var(--s7)}
  .q-step{padding-top:var(--s6)}
  .q-intro{padding-top:var(--s6)}
  .q-intro-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .q-intro-actions .btn{width:100%}
  .choice-grid-3,.choice-grid-4,.choice-grid-5,.choice-grid-compact{grid-template-columns:repeat(2,minmax(0,1fr))}
  .choice-grid-2{grid-template-columns:1fr}
  .choice{padding:12px 14px}
  .choice-svg{width:52px;height:32px}
  .q-fields-2{grid-template-columns:1fr}
  .quiz-hint{display:none}
  .quiz-nav{position:sticky;bottom:0;z-index:20;margin-top:var(--s6);padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:rgba(6,10,18,.96);gap:var(--s2)}
  .quiz-nav-right{flex:1;justify-content:flex-end}
  .quiz-nav .btn-lg{min-width:0;flex:1;max-width:240px}
  .quiz-nav-right{flex-wrap:wrap;row-gap:4px}
  .quiz-nav #runAnalysisBtn{order:1}
  .quiz-nav #saveDraftBtn{order:2;flex:1 1 100%;min-height:34px;justify-content:flex-end;padding:0 4px}
  .quiz-nav-note{text-align:left}
  .review-row{grid-template-columns:minmax(0,1fr) auto;gap:2px var(--s3)}
  .review-row dt{grid-column:1 / -1}
  .review-extra{flex-direction:column;align-items:flex-start}
  .quiz-chips{flex-wrap:nowrap;overflow-x:auto;margin-right:-20px;padding-right:20px;scrollbar-width:none}
  .quiz-chips::-webkit-scrollbar{display:none}
  .quiz-chips li{flex:0 0 auto}
  .quiz-chip-v{max-width:20ch}
}

/* Portada en celular: el lema pasa a dos líneas bajo el logo y el botón de la cabecera parte su texto,
   para que el logo grande quepa sin desborde horizontal */
@media (max-width:520px){
  .brand-tagline{white-space:normal;max-width:118px;line-height:1.25}
  .site-nav .btn{white-space:normal;max-width:124px;min-height:40px;padding:4px 10px;line-height:1.2;text-align:center}
}
@media (max-width:440px){
  .site-nav .nav-link{display:none}
  .site-header-inner{gap:var(--s2)}
  .site-nav{gap:var(--s2)}
  .site-nav .btn{padding:4px 10px;font-size:11.5px;letter-spacing:.04em;white-space:normal;max-width:124px;min-height:40px;line-height:1.2;text-align:center}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
  .hero-route{animation:none;stroke-dashoffset:0}
  .hero-port-ring,.hero-tag,.hero-port-origin{animation:none;opacity:1}
}

/* ---------- Expediente de debida diligencia (resultado) ---------- */
:root{
  --ok:var(--lvl-low);
  --ok-bg:var(--lvl-low-bg);
  --bad:var(--lvl-very-high);
  --bad-bg:var(--lvl-very-high-bg);
}
.dz-section{scroll-margin-top:96px}
.dz-panel,.dz-record-wrap{scroll-margin-top:96px}
.dz-form{max-width:860px}
.dz-legend{margin:0 0 var(--s5);padding:var(--s3) var(--s4);border:1px solid var(--line);border-left:2px solid var(--accent);background:var(--surface);color:var(--text-2);font-size:14px;line-height:1.55}
.dz-legend strong{color:var(--text);font-weight:500}
.dz-version-note{margin:0 0 var(--s4);color:var(--text);font-size:15.5px;line-height:1.55;max-width:70ch}
.dz-block{border:0;border-top:1px solid var(--line);margin:0;padding:var(--s5) 0 var(--s6);min-width:0}
.dz-block-head{display:flex;align-items:baseline;gap:var(--s3);flex-wrap:wrap;padding:0;margin:0 0 var(--s2)}
.dz-block-num{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;color:var(--accent)}
.dz-block-title{font-weight:300;font-size:clamp(20px,2.2vw,24px);line-height:1.25;color:var(--text)}
.dz-block-tag,.dz-opt{font-family:var(--font-mono);font-size:10.5px;letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--text-3);font-weight:400}
.dz-block-help{color:var(--text-2);font-size:15px;line-height:1.6;max-width:66ch;margin:0 0 var(--s4)}
.dz-mini-label{font-size:14px;font-weight:500;color:var(--text)}

/* Medidas */
.dz-measures{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.dz-measure{border:1px solid var(--line-strong);border-radius:var(--r2);background:var(--surface);transition:border-color .15s ease,background-color .15s ease}
.dz-measure:hover{border-color:rgba(150,180,215,.45)}
.dz-measure.is-on{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}
.dz-check{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;cursor:pointer;position:relative;font-weight:400}
.dz-check input{position:absolute;opacity:0;width:1px;height:1px;margin:0;min-height:0;padding:0;border:0}
.dz-check-box{flex:0 0 auto;width:20px;height:20px;margin-top:2px;border:1px solid var(--line-strong);border-radius:var(--r1);background:var(--surface-2);display:inline-flex;align-items:center;justify-content:center}
.dz-check input:checked+.dz-check-box{background:var(--accent);border-color:var(--accent)}
.dz-check input:checked+.dz-check-box::after{content:'';width:10px;height:5px;border-left:2px solid var(--accent-ink);border-bottom:2px solid var(--accent-ink);transform:translateY(-1px) rotate(-45deg)}
.dz-check input:focus-visible+.dz-check-box{box-shadow:var(--focus)}
.dz-check-text{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;min-width:0}
.dz-check-label{font-size:15.5px;font-weight:500;color:var(--text);line-height:1.35;margin-right:4px}
.dz-check-text .eff-chip{margin-left:0}
.dz-reco{display:inline-block;padding:2px 8px;border-radius:var(--r1);border:1px solid rgba(34,195,230,.4);font:500 11px/1.5 var(--font-mono);letter-spacing:.04em;color:var(--accent)}
.dz-measure-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s4) var(--s5);padding:4px 16px 16px 50px}
.dz-measure-detail .field.full{grid-column:1 / -1}
.dz-qty{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s3)}
.dz-measure-detail.is-product{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3) var(--s4)}
.dz-measure-detail.is-product .dz-st-cell,.dz-measure-detail.is-product .dz-total-cell{grid-column:span 2}
.dz-measure-detail.is-product .dz-notes-cell{grid-column:1 / -1}
.dz-measure-detail.is-product .dz-ptext-cell:not([hidden])+.dz-notes-cell{grid-column:span 3}
.dz-measure-detail.is-product.no-weight .dz-ptype-cell,.dz-measure-detail.is-product.no-weight .dz-notes-cell{grid-column:span 2}
.dz-measure-detail .field[hidden]{display:none}
.dz-measure-detail label{font-size:14px}
.dz-wt{display:flex;min-width:0}
.dz-wt input{flex:1 1 auto;min-width:0;border-top-right-radius:0;border-bottom-right-radius:0}
.dz-wt select{flex:0 0 72px;width:72px;margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0;padding-left:12px;padding-right:28px;background-position:right 10px center;font-family:var(--font-mono);font-size:14px}
.dz-wt input:focus,.dz-wt select:focus{position:relative;z-index:1}
.dz-total{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;min-height:44px;padding:6px 0 0;font-family:var(--font-mono);color:var(--text)}
.dz-total-main{font-size:19px;color:var(--accent);letter-spacing:.01em}
.dz-total-alt{font-size:14px;color:var(--text-2)}
.dz-total.is-empty{font-family:var(--font-sans);font-size:13.5px;color:var(--text-3);align-items:center}

/* Selector de estado */
.dz-status{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line-strong);border-radius:var(--r2);overflow:hidden;align-self:flex-start;max-width:100%}
.dz-status-opt{position:relative;margin:0;font-weight:400}
.dz-status-opt+.dz-status-opt{border-left:1px solid var(--line-strong)}
.dz-status-opt input{position:absolute;opacity:0;width:1px;height:1px;margin:0;min-height:0;padding:0;border:0}
.dz-status-opt span{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;font-size:14px;color:var(--text-2);cursor:pointer;background:var(--surface-2);transition:background-color .15s ease,color .15s ease}
.dz-status-opt span:hover{color:var(--text)}
.dz-status-opt input:checked+span{background:var(--accent);color:var(--accent-ink);font-weight:500}
.dz-status-opt input:focus-visible+span{box-shadow:inset 0 0 0 2px var(--text);outline:2px solid var(--accent);outline-offset:-4px}

/* Condición al cargar */
.dz-conds{display:grid;gap:0;border-bottom:1px solid var(--line)}
.dz-cond{padding:var(--s4) 0;border-top:1px solid var(--line)}
.dz-cond-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s3) var(--s5);align-items:end}
.dz-num{position:relative;max-width:240px}
.dz-num input{padding-right:46px}
.dz-num-unit{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:13px;color:var(--text-3);pointer-events:none}
.dz-cond select{max-width:320px}
.dz-extra{margin-top:var(--s2)}
.dz-extra summary{display:inline-flex;align-items:center;gap:6px;min-height:36px;cursor:pointer;color:var(--accent);font-size:13.5px;list-style:none}
.dz-extra summary::-webkit-details-marker{display:none}
.dz-extra summary::before{content:'+';font-family:var(--font-mono);width:12px}
.dz-extra[open] summary::before{content:'−'}
.dz-extra summary:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--r1)}
.dz-extra-grid{display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);gap:var(--s3) var(--s5);margin-top:var(--s2)}
input[type=datetime-local]{color-scheme:dark}

/* Fotos */
.dz-photo-pick{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap}
.dz-file{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;min-height:0;padding:0;border:0}
.dz-photo-pick:focus-within .dz-photo-btn{box-shadow:var(--focus)}
.dz-photo-count{font-family:var(--font-mono);font-size:12.5px;color:var(--text-3)}
.dz-photos{list-style:none;margin:var(--s4) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
.dz-photos:empty{display:none}
.dz-photo{border:1px solid var(--line);border-radius:var(--r2);background:var(--surface);overflow:hidden;display:flex;flex-direction:column}
.dz-photo img{width:100%;height:150px;object-fit:cover;background:var(--surface-2)}
.dz-photo-meta{display:grid;gap:8px;padding:10px}
.dz-photo-size{font-family:var(--font-mono);font-size:11.5px;color:var(--text-3)}
.dz-photo-meta input{min-height:40px;font-size:14px;padding:8px 10px}
.dz-photo-remove{justify-self:start;min-height:36px;padding:0 10px;border:1px solid var(--line-strong);border-radius:var(--r2);background:transparent;color:var(--text-2);font:400 13.5px/1 var(--font-sans);cursor:pointer}
.dz-photo-remove:hover{border-color:var(--lvl-very-high);color:var(--danger-text)}
.dz-photo-remove:focus-visible{outline:none;box-shadow:var(--focus)}

/* Cierre */
.dz-closedby{max-width:420px}
.dz-closedby label{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.dz-disclaimer{display:flex;gap:10px;align-items:flex-start;margin:var(--s5) 0 0;padding:var(--s3) var(--s4);border:1px solid rgba(229,182,73,.35);background:var(--lvl-moderate-bg);border-radius:var(--r2);color:var(--text);font-size:14.5px;line-height:1.5}
.dz-disclaimer svg{flex:0 0 auto;margin-top:2px;color:var(--lvl-moderate)}
.dz-disclaimer.small{font-size:13px;margin-top:var(--s5)}
.dz-actions{display:flex;justify-content:flex-end;align-items:center;gap:var(--s3);margin-top:var(--s5);padding-top:var(--s5);border-top:1px solid var(--line);flex-wrap:wrap}

/* Tarjeta del expediente */
.dz-record{max-width:860px;background:var(--surface);border:1px solid var(--line-strong);border-top:2px solid var(--accent);border-radius:var(--r2);padding:var(--s5) var(--s6) var(--s6)}
.dz-record-head{display:flex;gap:var(--s4);align-items:center;margin-bottom:var(--s4)}
.dz-seal{flex:0 0 auto;width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--accent);background:var(--accent-soft);border:1px solid rgba(34,195,230,.35)}
.dz-record-kicker{font-family:var(--font-mono);font-size:11.5px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--accent)}
.dz-record-title{font-size:19px;font-weight:400;color:var(--text);line-height:1.35;margin-top:2px}
.dz-record-title:focus-visible{outline-offset:4px}
.dz-facts{margin:0;border-bottom:1px solid var(--line)}
.dz-facts>div{display:grid;grid-template-columns:160px minmax(0,1fr);gap:var(--s4);padding:12px 0;border-top:1px solid var(--line);align-items:baseline}
.dz-facts dt{color:var(--text-3);font-size:14px}
.dz-facts dd{margin:0;color:var(--text);min-width:0;overflow-wrap:anywhere}
.dz-mono,.dz-hash{font-family:var(--font-mono);font-size:13.5px;letter-spacing:.01em}
.dz-hash{display:block;color:var(--text);word-break:break-all;line-height:1.55;margin-bottom:8px}
.dz-link{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(34,195,230,.4)}
.dz-link:hover{border-bottom-color:var(--accent)}
.dz-copy{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r2);background:transparent;color:var(--text);font:500 12.5px/1 var(--font-sans);letter-spacing:var(--track-tight);text-transform:uppercase;cursor:pointer}
.dz-copy:hover{border-color:var(--accent);background:var(--accent-soft)}
.dz-copy:focus-visible{outline:none;box-shadow:var(--focus)}
.dz-copy-status{margin-left:10px;font-family:var(--font-mono);font-size:12.5px;color:var(--ok)}
.dz-hash-help{color:var(--text-3);font-size:13.5px;margin-top:var(--s3);max-width:70ch}
.dz-record-actions{display:flex;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s5)}
.dz-newver{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--line);flex-wrap:wrap}
.dz-newver-title{color:var(--text);font-weight:500;font-size:15.5px}
.dz-newver-text{color:var(--text-2);font-size:14px;max-width:56ch;margin-top:2px}
.dz-newver-btn{border-color:var(--line-strong)}

@media (max-width:720px){
  .dz-measure-detail{grid-template-columns:1fr;padding:2px 14px 14px}
  .dz-measure-detail.is-product{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dz-measure-detail.is-product .dz-st-cell,.dz-measure-detail.is-product .dz-total-cell,.dz-measure-detail.is-product .dz-notes-cell,.dz-measure-detail.is-product .dz-ptext-cell:not([hidden])+.dz-notes-cell,.dz-measure-detail.is-product.no-weight .dz-notes-cell{grid-column:1 / -1}
  .dz-measure-detail.is-product.no-weight .dz-ptype-cell{grid-column:span 1}
  .dz-measure-detail.is-product .dz-brand-cell,.dz-measure-detail.is-product .dz-ptype-cell{order:-2}
  .dz-measure-detail.is-product .dz-ptext-cell{order:-1}
  .dz-cond-main{grid-template-columns:1fr;align-items:start}
  .dz-num,.dz-cond select{max-width:none}
  .dz-extra-grid{grid-template-columns:1fr}
  .dz-photos{grid-template-columns:1fr 1fr}
  .dz-record{padding:var(--s4)}
  .dz-facts>div{grid-template-columns:1fr;gap:2px}
  .dz-actions .btn{flex:1 1 auto}
  .dz-record-actions .btn{flex:1 1 auto}
}
@media (max-width:440px){
  .dz-photos{grid-template-columns:1fr}
  .dz-measure-detail.is-product{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}
  .dz-measure-detail.is-product>.field,.dz-measure-detail.is-product.no-weight .dz-ptype-cell{grid-column:1 / -1}
  .dz-measure-detail.is-product:not(.no-weight) .dz-units-cell,.dz-measure-detail.is-product .dz-w-cell{grid-column:span 1}
  .dz-status{display:flex}
  .dz-status-opt{flex:1 1 0}
  .dz-status-opt span{justify-content:center;padding:0 8px;width:100%}
}

/* ---------- Verificación pública del expediente (/verify/<id>) ---------- */
.vf-wrap{max-width:860px}
.vf-state{display:flex;gap:var(--s5);align-items:center;padding:var(--s5) var(--s6);border:1px solid var(--line-strong);border-radius:var(--r2);background:var(--surface)}
.vf-state.is-intact{border-color:rgba(76,195,138,.45);background:linear-gradient(90deg,var(--ok-bg),transparent 70%),var(--surface);border-left:3px solid var(--ok)}
.vf-state.is-altered{border-color:rgba(255,107,107,.45);background:linear-gradient(90deg,var(--bad-bg),transparent 70%),var(--surface);border-left:3px solid var(--bad)}
.vf-icon{flex:0 0 auto;width:64px;height:64px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.is-intact .vf-icon{color:var(--ok);background:var(--ok-bg);border:1px solid rgba(76,195,138,.4)}
.is-altered .vf-icon{color:var(--bad);background:var(--bad-bg);border:1px solid rgba(255,107,107,.4)}
.vf-kicker{font-family:var(--font-mono);font-size:11.5px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--text-3)}
.vf-status{font-weight:300;font-size:clamp(30px,4vw,42px);line-height:1.1;text-transform:uppercase;letter-spacing:var(--track-mid);margin:2px 0 6px}
.is-intact .vf-status{color:var(--ok)}
.is-altered .vf-status{color:var(--bad)}
.vf-lede{color:var(--text-2);font-size:15.5px;line-height:1.55;max-width:60ch}
.vf-block{margin-top:var(--s6)}
.vf-block>h2{display:flex;align-items:baseline;gap:var(--s3);font-size:16px;font-weight:300;text-transform:uppercase;letter-spacing:var(--track-wide);color:var(--text);padding-bottom:var(--s3);margin-bottom:var(--s2);border-bottom:1px solid var(--line)}
.vf-list{margin:0}
.vf-list>div{display:grid;grid-template-columns:200px minmax(0,1fr);gap:var(--s4);padding:12px 0;border-bottom:1px solid var(--line);align-items:baseline}
.vf-list dt{color:var(--text-3);font-size:14px}
.vf-list dd{margin:0;color:var(--text);min-width:0;overflow-wrap:anywhere}
.vf-hash{font-family:var(--font-mono);font-size:13.5px;word-break:break-all;line-height:1.55}
.vf-match{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font:500 12px/1.4 var(--font-mono);letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:var(--r1)}
.vf-match.ok{color:var(--ok);background:var(--ok-bg)}
.vf-match.bad{color:var(--bad);background:var(--bad-bg)}
.vf-photos{list-style:none;margin:0;padding:0}
.vf-photos li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--s3);align-items:baseline;padding:12px 0;border-bottom:1px solid var(--line)}
.vf-photos .vf-n{font-family:var(--font-mono);font-size:12px;color:var(--text-3)}
.vf-photos .vf-cap{display:block;color:var(--text-2);font-size:14px;margin-top:2px}
.vf-actions{display:flex;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s5)}
.vf-note{color:var(--text-2);font-size:14.5px;line-height:1.6;margin-top:var(--s4);max-width:70ch}
.vf-link{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(34,195,230,.4)}
.vf-link:hover{border-bottom-color:var(--accent)}
.vf-wrap .dz-disclaimer{margin-top:var(--s6)}
@media (max-width:720px){
  .vf-state{flex-direction:column;align-items:flex-start;gap:var(--s3);padding:var(--s4)}
  .vf-icon{width:52px;height:52px}
  .vf-list>div{grid-template-columns:1fr;gap:2px}
  .vf-photos li{grid-template-columns:auto minmax(0,1fr)}
  .vf-photos li .lvl-chip{grid-column:2;justify-self:start}
  .vf-actions .btn{flex:1 1 auto}
}

/* ---------- Medido vs. predicho (data loggers) ---------- */
:root{--lg-meas:#ffd166;--lg-pred:var(--accent)}
.lg-section{scroll-margin-top:96px}
.lg-panel{margin-top:var(--s4);display:grid;gap:var(--s4)}
.lg-panel:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
.lg-panel[hidden]{display:none}
.lg-h{margin:var(--s4) 0 0;font:400 12px/1.4 var(--font-mono);letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--text-2)}
.lg-import-card h4,.lg-status h4,.lg-risk h4{margin:0 0 var(--s2);font-weight:400;font-size:17px;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3)}
.lg-import{margin-top:var(--s4);display:grid;gap:var(--s4);max-width:760px}
.lg-import input[type=file]{padding:9px 11px;min-height:46px}
.lg-adv,.lg-add{border:1px solid var(--line);border-radius:var(--r2);background:var(--surface);padding:var(--s3) var(--s4)}
.lg-adv summary,.lg-add summary{cursor:pointer;font:400 12px/1.4 var(--font-mono);letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--text-2)}
.lg-adv summary:hover,.lg-add summary:hover{color:var(--text)}
.lg-adv[open] summary,.lg-add[open]>summary{margin-bottom:var(--s3)}
.lg-add .lg-import{margin-top:0}
.lg-actions .btn{min-width:180px}
.lg-error{padding:var(--s3) var(--s4);border:1px solid rgba(255,107,107,.35);border-left:2px solid var(--lvl-very-high);background:var(--lvl-very-high-bg);border-radius:var(--r2)}
.lg-error[hidden]{display:none}
.lg-note{margin:0;padding:var(--s3) var(--s4);border:1px solid var(--line);border-left:2px solid var(--accent);background:var(--accent-soft);color:var(--text-2);font-size:14px;border-radius:var(--r2)}
.lg-pick{max-width:360px}
.lg-disclaimer{padding:var(--s3) var(--s4);border:1px solid var(--line);border-left:2px solid var(--lvl-moderate);background:var(--surface);border-radius:var(--r2);color:var(--text-2);font-size:14px;line-height:1.55}
.lg-disclaimer p{margin:0}
.lg-disclaimer strong{color:var(--text);font-weight:500}
.lg-assumptions{margin:var(--s2) 0 0;padding-left:1.2em;color:var(--text-3);font-size:13px;line-height:1.55}
.lg-badge{display:inline-block;padding:2px 9px;border:1px solid var(--line-strong);border-radius:var(--r2);font:500 10.5px/1.6 var(--font-mono);letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--text-2)}
.lg-badge-warn{color:var(--lvl-high);border-color:var(--lvl-high);background:var(--lvl-high-bg)}
.lg-badge-ok{color:var(--lvl-low);border-color:var(--lvl-low);background:var(--lvl-low-bg)}
.lg-dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--s3) var(--s5);margin:var(--s3) 0 0}
.lg-dl dt{font:400 10.5px/1.4 var(--font-mono);letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--text-3)}
.lg-dl dd{margin:2px 0 0;color:var(--text);font-size:15px;overflow-wrap:anywhere}
.lg-gaps{margin-top:var(--s3);font-size:14px;color:var(--text-2)}
.lg-gaps ul{margin:var(--s2) 0 0;padding-left:1.2em}
/* Alertas */
.lg-alerts{list-style:none;margin:var(--s3) 0 0;padding:0;display:grid;gap:var(--s2)}
.lg-alert{--c:var(--accent);display:grid;grid-template-columns:auto 1fr;gap:4px var(--s3);align-items:baseline;padding:var(--s3) var(--s4);border:1px solid var(--line);border-left:3px solid var(--c);background:var(--surface);border-radius:var(--r2)}
.lg-sev-critical{--c:var(--lvl-very-high);background:var(--lvl-very-high-bg)}
.lg-sev-warning{--c:var(--lvl-high);background:var(--lvl-high-bg)}
.lg-sev-info{--c:var(--accent);background:var(--accent-soft)}
.lg-alert.is-resolved{opacity:.65}
.lg-sev{font:500 10.5px/1.6 var(--font-mono);letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--c)}
.lg-alert-msg{color:var(--text);font-size:14.5px;line-height:1.5}
.lg-alert-time{grid-column:2;font:400 12px/1.4 var(--font-mono);color:var(--text-3)}
.lg-empty{margin:var(--s3) 0 0;color:var(--text-3);font-size:14px}
/* Riesgo restante */
.lg-risk-pair{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s6);margin:var(--s3) 0}
.lg-risk-pair>div{display:flex;flex-direction:column;gap:6px}
.lg-k{font:400 10.5px/1.4 var(--font-mono);letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--text-3)}
.lg-risk-num{font:500 14px/1 var(--font-mono);color:var(--text-2);margin-left:4px}
.lg-level-changed{margin:0;padding:var(--s2) var(--s3);border-left:2px solid var(--lvl-very-high);background:var(--lvl-very-high-bg);color:var(--text);font-size:14.5px}
/* Gráficos */
.lg-legend{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);font-size:12.5px;color:var(--text-3)}
.lg-legend span{display:inline-flex;align-items:center;gap:8px}
.lg-key{display:inline-block;width:16px;height:0;border-top:2px solid var(--text-3)}
.lg-key-pred{border-top:2px dashed var(--lg-pred)}
.lg-key-meas{border-top:2px solid var(--lg-meas)}
.lg-key-band{height:10px;border:0;background:rgba(34,195,230,.16)}
.lg-key-dev{height:10px;border:0;background:rgba(255,107,107,.22)}
.lg-key-alert{width:0;height:0;border-top:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:8px solid var(--lvl-high)}
.lg-charts{display:grid;gap:var(--s4)}
.lg-chart{margin:0;padding:var(--s3) var(--s3) var(--s2);background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);min-width:0}
.lg-chart figcaption{font:400 12px/1.4 var(--font-mono);letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--text-2);padding:0 var(--s2) var(--s2)}
.lg-chart-box{position:relative;min-height:120px}
.lg-chart svg{display:block;width:100%;height:auto;touch-action:pan-y;overflow:visible}
.lg-grid{stroke:var(--line);stroke-width:1}
.lg-axis{stroke:var(--line-strong);stroke-width:1}
.lg-tick{fill:var(--text-3);font:11px var(--font-mono)}
.lg-legline{stroke:var(--line-strong);stroke-width:1;stroke-dasharray:2 4}
.lg-legname{fill:var(--text-3);font:10px var(--font-mono);letter-spacing:.02em}
.lg-band{fill:rgba(34,195,230,.14);stroke:none}
.lg-pred{fill:none;stroke:var(--lg-pred);stroke-width:1.6;stroke-dasharray:5 3;stroke-linejoin:round}
.lg-meas{fill:none;stroke:var(--lg-meas);stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
.lg-measdot{fill:var(--lg-meas)}
.lg-devspan{fill:rgba(255,107,107,.16)}
.lg-amark{stroke:var(--bg);stroke-width:1}
.lg-amark-critical{fill:var(--lvl-very-high)}
.lg-amark-warning{fill:var(--lvl-high)}
.lg-amark-info{fill:var(--accent)}
.lg-cursor{stroke:var(--text-2);stroke-width:1}
.lg-cur-pred{fill:var(--lg-pred);stroke:var(--bg);stroke-width:1.5}
.lg-cur-meas{fill:var(--lg-meas);stroke:var(--bg);stroke-width:1.5}
.lg-hit{cursor:crosshair}
.lg-tip{position:absolute;z-index:5;pointer-events:none;display:flex;flex-direction:column;gap:3px;max-width:230px;padding:8px 10px;background:var(--surface-3);border:1px solid var(--line-strong);border-radius:var(--r2);box-shadow:var(--shadow-pop);font-size:12.5px;line-height:1.4;color:var(--text)}
.lg-tip[hidden]{display:none}
.lg-tip strong{font:500 12px/1.3 var(--font-mono)}
.lg-tip-dim{color:var(--text-3)}
.lg-tip .lg-key{width:12px;margin-right:6px;vertical-align:middle}
/* Tabla por tramo */
.lg-legs-note{margin:var(--s2) 0 var(--s3)}
.lg-table{min-width:760px}
.lg-table th[scope=row]{white-space:normal;min-width:190px}
.lg-legn{display:inline-block;min-width:1.6em;color:var(--accent);font:500 12px var(--font-mono)}
.lg-c{text-align:center}
.lg-in{color:var(--lvl-low);font-weight:600}
.lg-out{color:var(--lvl-very-high);font-weight:600}
.lg-na{color:var(--text-3)}
.lg-table tr.is-out th[scope=row]{border-left-color:var(--lvl-very-high)}
@media (max-width:640px){
  .lg-actions .btn{width:100%}
  .lg-table{min-width:0;display:block}
  .lg-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .lg-table tbody,.lg-table tr{display:block}
  .lg-table tr{padding:var(--s3) var(--s4);border-top:1px solid var(--line)}
  .lg-table tr:first-child{border-top:0}
  .lg-table th[scope=row]{display:block;min-width:0;padding:0 0 var(--s2);border:0}
  .lg-table td{display:flex;justify-content:space-between;gap:var(--s4);padding:4px 0;border:0;text-align:right;white-space:normal}
  .lg-table td::before{content:attr(data-label);font:400 10.5px/1.6 var(--font-mono);letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--text-3);text-align:left}
  .lg-alert{grid-template-columns:1fr}
  .lg-alert-time{grid-column:1}
  .lg-chart{padding:var(--s2) 0 var(--s2)}
  .lg-chart figcaption{padding-left:var(--s3)}
}

/* ---------- Protection: measure list in the questionnaire ---------- */
.measure-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.measure-card-item{display:flex;min-width:0}
.measure-card{display:flex;align-items:flex-start;gap:var(--s3);width:100%;min-height:56px;padding:13px 16px;border:1px solid var(--line-strong);border-radius:var(--r2);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}
.measure-card:hover{border-color:rgba(150,180,215,.5);background:var(--surface-2)}
.measure-card:focus-visible{outline:none;box-shadow:var(--focus)}
.measure-card[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}
.measure-card[aria-pressed="true"]:focus-visible{box-shadow:inset 0 0 0 1px var(--accent),var(--focus)}
.measure-card-check{flex:none;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-top:2px;border:1px solid var(--line-strong);border-radius:var(--r2);font-size:13px;line-height:1;color:var(--accent-ink)}
.measure-card[aria-pressed="true"] .measure-card-check{background:var(--accent);border-color:var(--accent)}
.measure-card-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.measure-card-name{font-weight:500}
.measure-card-why{font-size:14px;line-height:1.4;color:var(--text-2)}
.measure-panel{grid-column:1 / -1;border-left:2px solid var(--accent)}
.measure-panel-title{font-weight:500}
.measure-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);padding:var(--s4)}
.measure-row-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s3);align-items:center}
.measure-remove{min-height:46px;padding:0 14px;background:none;border:1px solid var(--line-strong);border-radius:var(--r2);color:var(--text-2);font:inherit;font-size:14.5px;cursor:pointer}
.measure-remove:hover{color:var(--danger-text);border-color:var(--danger-text)}
.measure-remove:focus-visible{outline:none;box-shadow:var(--focus)}
.measure-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4);margin-top:var(--s4)}
.measure-fields .field{margin:0;min-width:0}
.measure-surfaces{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--s2)}
.measure-surfaces legend{padding:0;margin-bottom:var(--s2);color:var(--text);font-size:15.5px}
.measure-check{display:flex;align-items:center;gap:var(--s3);min-height:44px;cursor:pointer;color:var(--text)}
.measure-check input{width:20px;height:20px;min-height:0;flex:none;accent-color:var(--accent)}

/* ---------- Protection: three result blocks ---------- */
.prot-region{margin-top:var(--s2)}
.prot-block{margin-top:var(--s7)}
#protectionRegion1 .prot-block{margin-top:0}
.prot-region:empty{margin-top:0}
.prot-head{display:flex;gap:var(--s4);align-items:flex-start;margin-bottom:var(--s4)}
.prot-n{flex:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--accent);border-radius:50%;color:var(--accent);font:500 14px var(--font-mono)}
.prot-title{font-size:24px;font-weight:300;line-height:1.25;letter-spacing:.01em;color:var(--text)}
.prot-sub{margin-top:4px;color:var(--text-2);font-size:15px;line-height:1.55;max-width:70ch}
.prot-block .result-top{margin-top:0}
.prot-mech{list-style:none;margin:var(--s3) 0 0;padding:0;display:grid;gap:var(--s4)}
.prot-mech li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px var(--s3);align-items:baseline}
.prot-mech .score-bar{grid-column:1 / -1;margin-top:4px}
.prot-mech-name{color:var(--text);font-size:15.5px}
.prot-mech-val{font-variant-numeric:tabular-nums;color:var(--text-2);font-size:15px;white-space:nowrap}
.prot-mech-val strong{font-size:20px;font-weight:400}
.prot-mech-val small{color:var(--text-3);font-size:12px;margin-left:2px}
.prot-from{color:var(--text-3);text-decoration:line-through;text-decoration-color:var(--line-strong)}
.prot-mech-delta li{grid-template-columns:minmax(0,1fr) auto auto}
.prot-delta{font-size:13px;font-family:var(--font-mono);letter-spacing:.02em;white-space:nowrap}
.prot-delta.down{color:var(--lvl-low)}.prot-delta.up{color:var(--lvl-very-high)}.prot-delta.flat{color:var(--text-3)}
.lvl-t-low{color:var(--lvl-low)}.lvl-t-moderate{color:var(--lvl-moderate)}.lvl-t-high{color:var(--lvl-high)}.lvl-t-very-high{color:var(--lvl-very-high)}
.prot-delta-line{margin-top:var(--s3);font-size:14px;color:var(--text-2);line-height:1.5}
.prot-b1-right .prot-mech-h{margin-top:var(--s6);font-family:var(--font-mono);font-size:11.5px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--text-3)}
.prot-chips{list-style:none;margin:var(--s5) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s2)}
.prot-chip{display:inline-flex;flex-wrap:wrap;gap:2px 8px;align-items:baseline;padding:6px 12px;border:1px solid var(--line-strong);border-radius:var(--r2);background:var(--surface);font-size:14.5px;color:var(--text)}
.prot-chip small{font:400 11px var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.prot-chip.is-verified small{color:var(--lvl-low)}
.prot-warnings{list-style:none;margin:var(--s5) 0 0;padding:0;display:grid;gap:var(--s3)}
.prot-warning{display:flex;flex-direction:column;gap:2px;padding:var(--s3) var(--s4);border:1px solid rgba(229,182,73,.3);border-left:2px solid var(--lvl-moderate);background:rgba(229,182,73,.06);border-radius:var(--r2);font-size:14.5px;color:var(--text-2);line-height:1.55}
.prot-warning strong{color:var(--lvl-moderate);font-weight:500}
.prot-warning.w-measure-worsens,.prot-warning.w-measure-increases-water{border-color:rgba(255,107,107,.35);border-left-color:var(--lvl-very-high);background:rgba(255,107,107,.06)}
.prot-warning.w-measure-worsens strong,.prot-warning.w-measure-increases-water strong{color:var(--lvl-very-high)}
.prot-confnote,.prot-notice{margin-top:var(--s4);padding:var(--s3) var(--s4);border:1px solid var(--line-strong);border-radius:var(--r2);color:var(--text-2);font-size:14.5px;line-height:1.55}
.prot-empty{color:var(--text-2);line-height:1.6;margin:0}
.prot-empty a{color:var(--accent)}
.prot-b2.is-empty{padding:var(--s4) var(--s5);border:1px dashed var(--line-strong);border-radius:var(--r2)}
.prot-b2.is-empty .prot-head{margin-bottom:var(--s2)}
.prot-b2.is-empty .prot-title{font-size:18px}
.prot-main-after{margin-top:var(--s5);padding:var(--s5) 0 0;border-top:1px solid var(--line)}
.prot-main-after.result-main-copy{padding-left:0}
.prot-b3{padding:var(--s5) var(--s6);border:1px solid var(--line);border-radius:var(--r2);background:var(--surface)}
.prot-b3.is-promoted{border-color:var(--accent);background:linear-gradient(180deg,var(--accent-soft),transparent 160px),var(--surface)}
.prot-steps{list-style:none;margin:0;padding:0;display:grid;gap:0}
.prot-step{display:grid;grid-template-columns:32px minmax(0,1fr);gap:var(--s4);padding:var(--s4) 0;border-top:1px solid var(--line)}
.prot-step:first-child{border-top:0}
.prot-step-n{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font:600 13px var(--font-mono)}
.prot-step-name{font-size:17px;line-height:1.5;color:var(--text)}
.prot-add{color:var(--text-3);font-size:14px;text-transform:uppercase;letter-spacing:.06em;font-family:var(--font-mono)}
.prot-qty{color:var(--text-2)}
.prot-qty small{color:var(--text-3);font-size:13px}
.prot-step-eff{margin-top:2px;font-size:15px;color:var(--text-2);font-variant-numeric:tabular-nums}
.prot-step-eff strong{font-size:18px;font-weight:500}
.prot-qnote{margin-top:var(--s3)}
.prot-min{margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--line-strong)}
.prot-min-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s4);flex-wrap:wrap}
.prot-min-label{color:var(--text);font-size:16px}
.prot-min-val{font-size:32px;font-weight:300;font-variant-numeric:tabular-nums}
.prot-min-val small{font-size:14px;color:var(--text-3);margin-left:3px}
.prot-min-why{margin-top:var(--s2);color:var(--text-2);font-size:14.5px}
.prot-reasons{margin:var(--s2) 0 0;padding-left:18px;color:var(--text-2);font-size:14.5px;line-height:1.6}
.prot-reasons li{margin-bottom:4px}
.prot-avoid{margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--line)}
.prot-avoid h3{font-family:var(--font-mono);font-size:11.5px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--lvl-very-high);margin-bottom:var(--s3)}
.prot-avoid ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--s3)}
.prot-avoid li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:var(--s2);color:var(--text-2);font-size:14.5px;line-height:1.55}
.prot-x{color:var(--lvl-very-high);font-weight:600;text-align:center}
.prot-skel-lines{display:grid;gap:var(--s3)}
.prot-skel-lines i{display:block;height:14px;border-radius:3px;background:linear-gradient(90deg,var(--line) 25%,var(--line-strong) 50%,var(--line) 75%);background-size:200% 100%;animation:prot-shimmer 1.4s linear infinite}
.prot-skel-lines i:nth-child(1){width:70%}.prot-skel-lines i:nth-child(2){width:90%}.prot-skel-lines i:nth-child(3){width:55%}
@keyframes prot-shimmer{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.prot-skel-lines i{animation:none}}
@media (max-width:720px){
  .measure-row{padding:16px}
  .measure-fields{grid-template-columns:1fr}
  .measure-list{grid-template-columns:1fr}
  .measure-row-head{grid-template-columns:1fr}
  .measure-remove{width:100%}
  .prot-title{font-size:21px}
  .prot-b3{padding:var(--s4) 16px}
  .prot-step{grid-template-columns:28px minmax(0,1fr);gap:var(--s3)}
  .prot-mech-delta li{grid-template-columns:minmax(0,1fr) auto}
  .prot-mech-delta .prot-delta{grid-column:1 / -1;grid-row:2}
  .prot-mech-delta .score-bar{grid-row:3}
  .prot-b2.is-empty{padding:var(--s4)}
}
.measure-own{margin-top:var(--s4);border-top:1px solid var(--line);padding-top:var(--s3)}
.measure-own summary{cursor:pointer;color:var(--text-2);font-size:14.5px;min-height:44px;display:flex;align-items:center}
.measure-own summary:focus-visible{outline:none;box-shadow:var(--focus)}
.measure-own>.field-help{margin:0 0 var(--s3)}
.measure-own summary::before{content:"+";display:inline-block;width:18px;font:500 16px var(--font-mono);color:var(--text-3)}
.measure-own[open] summary::before{content:"\2212"}
.measure-own summary::-webkit-details-marker{display:none}
.measure-own summary{list-style:none}

/* Cuenta: control del encabezado, formularios de acceso y panel "Mi cuenta" */
.nav-auth{position:relative;display:flex;align-items:center}
.nav-auth-link{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 4px;border:0;background:transparent;color:var(--text-2);font:400 14.5px/1 var(--font-sans);text-decoration:none;cursor:pointer;white-space:nowrap}
.nav-auth-link:hover{color:var(--text)}
.nav-auth-link:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--r1)}
.nav-auth-ico{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.nav-auth-text{max-width:12ch;overflow:hidden;text-overflow:ellipsis}
.nav-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:210px;background:var(--surface-3);border:1px solid var(--line-strong);border-radius:var(--r2);padding:var(--s2) 0;box-shadow:0 12px 32px rgba(0,0,0,.45);z-index:40}
.nav-menu[hidden]{display:none}
.nav-menu-who{margin:0;padding:6px 16px 10px;border-bottom:1px solid var(--line);color:var(--text-3);font:400 12px/1.4 var(--font-mono);overflow-wrap:anywhere}
.nav-menu a,.nav-menu button{display:block;width:100%;text-align:left;padding:11px 16px;border:0;background:transparent;color:var(--text);font:400 14.5px/1.2 var(--font-sans);text-decoration:none;cursor:pointer}
.nav-menu a:hover,.nav-menu button:hover{background:var(--accent-soft)}
.nav-menu a:focus-visible,.nav-menu button:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--accent)}
@media (max-width:640px){.nav-auth-text{display:none}.nav-auth-link{padding:0 2px;min-width:36px;justify-content:center}}

.auth-wrap{max-width:460px;margin:0 auto}
.auth-wrap .lede{margin:var(--s3) 0 0;color:var(--text-2);line-height:1.6}
.auth-form{display:flex;flex-direction:column;gap:var(--s5)}
.auth-form .btn-lg{width:100%}
.auth-alt{margin:0;color:var(--text-2);font-size:14.5px}
.opt-mark{color:var(--text-3);font-weight:400;font-size:13px}
.pw-wrap{position:relative}
.pw-wrap input{padding-right:84px}
.pw-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);min-height:38px;padding:0 12px;border:0;border-radius:var(--r1);background:transparent;color:var(--accent);font:400 12px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.pw-toggle:hover{color:var(--text)}
.pw-toggle:focus-visible{outline:none;box-shadow:var(--focus)}
.form-alert{border:1px solid rgba(255,107,107,.38);border-left-width:2px;background:var(--lvl-very-high-bg);color:var(--text);border-radius:var(--r2);padding:12px 14px;font-size:14.5px;line-height:1.5}
.form-alert.is-ok{border-color:rgba(76,195,138,.4);background:var(--lvl-low-bg)}
.form-alert[hidden],.field-error[hidden]{display:none}

.acct-section{border-top:1px solid var(--line);padding:var(--s6) 0}
.acct-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s5);margin-bottom:var(--s5)}
.acct-head>div{min-width:0}
.acct-title{margin:var(--s2) 0 var(--s2);font-size:24px;font-weight:300;text-transform:uppercase;letter-spacing:var(--track-mid)}
.acct-note{margin:0;color:var(--text-2);line-height:1.6;max-width:62ch}
.acct-sub{margin:0;font-size:15.5px;font-weight:500}
.acct-loading,.acct-dim{color:var(--text-3)}
.acct-empty{border:1px dashed var(--line-strong);border-radius:var(--r2);padding:var(--s5);display:flex;flex-direction:column;align-items:flex-start;gap:var(--s4)}
.acct-empty p{margin:0;color:var(--text-2);line-height:1.65;max-width:70ch}
.acct-table .acct-main{color:var(--text)}
.acct-table td,.acct-table th{white-space:normal}
.acct-sep{color:var(--text-3)}
.acct-more{margin-top:var(--s3)}
.acct-verify{margin-bottom:var(--s5);max-width:560px}
.acct-verify label{display:block;margin-bottom:7px}
.acct-verify-row{display:flex;gap:var(--s3)}
.acct-verify-row .btn{flex:none}
.acct-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4);margin:0 0 var(--s6)}
.acct-facts dt{font:400 11px/1.4 var(--font-mono);letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--text-3);margin-bottom:4px}
.acct-facts dd{margin:0;color:var(--text);overflow-wrap:anywhere}
.acct-pw{max-width:460px}
@media (max-width:720px){
  .acct-head{flex-direction:column;align-items:stretch}
  .acct-head .btn{align-self:flex-start}
  .acct-facts{grid-template-columns:1fr}
  .acct-verify-row{flex-direction:column}
  .acct-verify-row .btn{width:100%}
  .acct-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .acct-table,.acct-table tbody,.acct-table tr,.acct-table td{display:block;width:100%}
  .acct-table tr{padding:12px;border-top:1px solid var(--line)}
  .acct-table tr:first-child{border-top:0}
  .acct-table td{border:0;padding:3px 0;display:flex;justify-content:space-between;gap:var(--s4);text-align:right}
  .acct-table td::before{content:attr(data-label);color:var(--text-3);font:400 11px/1.6 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;text-align:left;flex:none}
}

/* ==========================================================================
   Páginas públicas (N12): funciones, precios, centro legal y footer global.
   Mismo sistema visual: tokens, tipografía y componentes de arriba; sin colores nuevos.
   ========================================================================== */
.nav-link[aria-current="page"]{color:var(--text);box-shadow:inset 0 -1px 0 var(--accent)}
@media (max-width:960px){.nav-site{display:none}}

/* Footer global */
.site-footer-full{padding:var(--s8) 0 var(--s6)}
.footer-grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(4,minmax(0,1fr));gap:var(--s6)}
.footer-wordmark{font-weight:300;font-size:20px;letter-spacing:.32em;color:var(--text)}
.footer-tagline{margin-top:4px;font:400 10px/1.3 var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.footer-blurb{margin-top:var(--s4);max-width:34ch;color:var(--text-3);font-size:14px;line-height:1.6}
.footer-h{margin:0 0 var(--s3);font:400 11.5px/1.4 var(--font-mono);letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--text-3)}
.footer-h a{color:inherit;text-decoration:none}
.footer-h a:hover{color:var(--text)}
.footer-col ul{list-style:none;margin:0;padding:0}
.footer-col li{margin:0}
.footer-col li a{display:inline-block;padding:5px 0;color:var(--text-2);text-decoration:none;font-size:14.5px;line-height:1.4}
.footer-col li a:hover{color:var(--text)}
.footer-bottom{margin-top:var(--s7);padding-top:var(--s5);border-top:1px solid var(--line);font-family:var(--font-mono);font-size:11.5px;letter-spacing:.04em;color:var(--text-3)}
.footer-bottom-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);flex-wrap:wrap}
.footer-credits{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);margin-top:var(--s4)}
@media (max-width:1040px){.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-about{grid-column:1 / -1}}
@media (max-width:720px){.site-footer-full{padding:var(--s7) 0 var(--s5)}.footer-grid{gap:var(--s5) var(--s4)}.footer-credits{flex-direction:column}}
.page-quiz .site-footer-full{margin-top:var(--s8)}

/* Base de las páginas públicas */
@media (max-width:720px){.page-site main .shell{padding-left:16px;padding-right:16px}}
.site-hero{padding:var(--s8) 0 var(--s7)}
.site-hero .lede{max-width:62ch}
.site-hero .hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s5);margin-top:var(--s6)}
.jump-nav{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s6);padding:0;list-style:none}
.jump-nav a{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border:1px solid var(--line-strong);border-radius:var(--r1);color:var(--text-2);text-decoration:none;font:400 12px/1 var(--font-mono);letter-spacing:var(--track-mid);text-transform:uppercase}
.jump-nav a:hover{color:var(--text);border-color:var(--accent)}
.jump-nav a:focus-visible{outline:none;box-shadow:var(--focus)}
.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line)}
.stat{padding:var(--s5) var(--s5) var(--s5) 0;border-right:1px solid var(--line)}
.stat+.stat{padding-left:var(--s5)}
.stat:last-child{border-right:0}
.stat-num{display:block;font-size:40px;line-height:1.05;font-weight:300;color:var(--accent);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.stat-label{display:block;margin-top:var(--s2);color:var(--text-2);font-size:14px;line-height:1.5}
.feat-art{margin-top:var(--s5);width:100%;max-width:260px;height:auto;color:var(--text-3);fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.feat-art .a{stroke:var(--accent)}
.feat-art .af{fill:var(--accent);stroke:none}
.feat-art .dash{stroke-dasharray:3 4}
.feat-art .hl{stroke:var(--lvl-high)}
.feat-art .hlf{fill:var(--lvl-high);stroke:none}
.feat-art .hm{stroke:var(--lvl-moderate)}
.stat dd{margin:0}
.cta-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s5)}
.feat-art .t{fill:var(--text-3);stroke:none;font:400 9px var(--font-mono);letter-spacing:.08em}
.soon-tag{display:inline-block;margin-left:var(--s2);padding:2px 7px;border:1px solid var(--line-strong);border-radius:var(--r1);font:400 10.5px/1.4 var(--font-mono);letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--text-2);vertical-align:3px;white-space:nowrap}
.about-text{color:var(--text-2);font-size:18px;line-height:1.7;max-width:62ch}
[id]{scroll-margin-top:84px}
@media (max-width:860px){.stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}.stat:nth-child(2){border-right:0}.stat:nth-child(3){padding-left:0}.stat:nth-child(n+3){border-top:1px solid var(--line)}}
@media (max-width:720px){.site-hero{padding:var(--s7) 0 var(--s6)}.stat-num{font-size:30px}.stat{padding:var(--s4) var(--s3) var(--s4) 0}.stat+.stat{padding-left:var(--s3)}.stat:nth-child(3){padding-left:0}.feat-art{max-width:200px}.about-text{font-size:16.5px}}

/* Precios */
.billing-toggle{display:inline-flex;align-items:center;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s6)}
.billing-seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:var(--r1)}
.billing-btn{min-height:42px;padding:0 18px;border:0;background:transparent;color:var(--text-2);font:500 12.5px/1 var(--font-sans);letter-spacing:var(--track-mid);text-transform:uppercase;cursor:pointer}
.billing-btn+.billing-btn{border-left:1px solid var(--line-strong)}
.billing-btn:hover{color:var(--text)}
.billing-btn[aria-pressed="true"]{background:var(--accent-soft);color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}
.billing-btn:focus-visible{outline:none;box-shadow:var(--focus)}
.billing-save{font:400 11.5px/1.4 var(--font-mono);letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--accent)}
.plan-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s3);margin-top:var(--s6)}
.plan-card{position:relative;display:flex;flex-direction:column;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);padding:var(--s5) var(--s4)}
.plan-card.is-popular{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.plan-badge{position:absolute;top:-11px;left:var(--s4);padding:3px 9px;background:var(--accent);color:var(--accent-ink);border-radius:var(--r1);font:500 10.5px/1.3 var(--font-mono);letter-spacing:var(--track-mid);text-transform:uppercase}
.plan-name{font-size:15px;font-weight:500;letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--text)}
.plan-desc{margin-top:6px;min-height:3.2em;color:var(--text-3);font-size:13.5px;line-height:1.5}
.plan-price{display:flex;align-items:baseline;gap:4px;flex-wrap:wrap;margin-top:var(--s4);min-height:52px}
.plan-cur{font:400 12px/1 var(--font-mono);color:var(--text-3);letter-spacing:.06em}
.plan-amount{font-size:44px;line-height:1;font-weight:300;color:var(--text);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.plan-amount.is-text{font-size:24px;letter-spacing:0;line-height:1.2}
.plan-per{color:var(--text-3);font-size:14px}
.plan-bill{margin-top:6px;min-height:1.5em;color:var(--text-2);font-size:12.5px;font-family:var(--font-mono);letter-spacing:.02em}
.plan-card .btn{margin-top:var(--s5);width:100%;padding:0 10px;text-align:center;line-height:1.2}
.plan-feats{list-style:none;margin:var(--s5) 0 0;padding:var(--s4) 0 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:var(--s3)}
.plan-feats li{position:relative;padding-left:18px;color:var(--text-2);font-size:14px;line-height:1.45}
.plan-feats li::before{content:'';position:absolute;left:0;top:.5em;width:8px;height:5px;border-left:1.5px solid var(--accent);border-bottom:1.5px solid var(--accent);transform:rotate(-45deg)}
.price-notes{margin-top:var(--s5);display:flex;flex-direction:column;gap:4px}
.price-notes p{color:var(--text-3);font-size:13.5px;line-height:1.6}
.plan-table-wrap{margin-top:var(--s5);overflow-x:auto;-webkit-overflow-scrolling:touch}
.plan-picker{display:none}
.plan-table{width:100%;border-collapse:collapse;font-size:14.5px}
.plan-table th,.plan-table td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:center;vertical-align:middle}
.plan-table thead th{position:sticky;top:68px;z-index:2;background:var(--bg);font:500 13px/1.3 var(--font-sans);letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--text);border-bottom:1px solid var(--line-strong)}
.plan-table thead th.is-popular{color:var(--accent)}
.plan-table th[scope="row"]{text-align:left;font-weight:400;color:var(--text-2);width:34%}
.plan-table thead th:first-child{text-align:left;font:400 11.5px/1.4 var(--font-mono);letter-spacing:var(--track-wide);color:var(--text-3)}
.plan-table .grp th{padding-top:var(--s6);text-align:left;font:400 11.5px/1.4 var(--font-mono);letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--line-strong)}
.plan-table td{color:var(--text)}
.plan-table td .soon-tag{margin:4px 0 0;display:block;width:max-content;margin-inline:auto}
.ico-yes,.ico-no{display:inline-block;vertical-align:middle}
.ico-yes{width:12px;height:7px;border-left:1.5px solid var(--accent);border-bottom:1.5px solid var(--accent);transform:rotate(-45deg) translate(1px,-2px)}
.ico-no{width:12px;height:1.5px;background:var(--text-3);opacity:.7}
.faq{margin-top:var(--s5);max-width:860px}
.faq .fold-body{margin:0 var(--s5) var(--s5);color:var(--text-2);line-height:1.7;max-width:72ch}
.faq .fold-body a{color:var(--accent)}
@media (max-width:1100px){.plan-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5) var(--s3)}}
@media (max-width:720px){
  .plan-grid{grid-template-columns:1fr;gap:var(--s5)}
  .plan-desc{min-height:0}
  .plan-price{min-height:0}
  .plan-picker{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--s4)}
  .plan-picker .billing-btn{flex:1 1 auto;min-height:38px;padding:0 10px;border:1px solid var(--line-strong);border-radius:var(--r1)}
  .plan-picker .billing-btn+.billing-btn{border-left:1px solid var(--line-strong)}
  .plan-table-wrap.is-picked .plan-table [data-plan]:not(.is-shown){display:none}
  .plan-table-wrap.is-picked .plan-table th[scope="row"]{width:60%}
  .plan-table thead th{top:60px}
  .plan-table th,.plan-table td{padding:11px 6px}
  .faq .fold-body{margin:0 var(--s4) var(--s4)}
}

/* Centro legal */
.draft-banner{display:flex;gap:var(--s3);align-items:flex-start;margin:0 0 var(--s6);padding:var(--s4) var(--s5);border:1px solid rgba(229,182,73,.45);border-left:3px solid var(--lvl-moderate);background:var(--lvl-moderate-bg);border-radius:var(--r2)}
.draft-banner svg{flex:none;margin-top:3px;color:var(--lvl-moderate)}
.draft-title{font:500 13px/1.4 var(--font-mono);letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--lvl-moderate)}
.draft-note{margin-top:4px;color:var(--text-2);font-size:14.5px;line-height:1.6}
.legal-list{list-style:none;margin:0;padding:0;border-bottom:1px solid var(--line)}
.legal-list li{border-top:1px solid var(--line)}
.legal-list a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s4);align-items:center;padding:var(--s5) 0;text-decoration:none}
.legal-list a:hover h2{color:var(--accent)}
.legal-list h2{font-size:19px;font-weight:500;color:var(--text)}
.legal-list p{margin-top:4px;color:var(--text-2)}
.legal-list .legal-go{font:400 12px/1 var(--font-mono);letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--accent)}
.legal-doc{max-width:760px}
.legal-meta{color:var(--text-3);font:400 12px/1.4 var(--font-mono);letter-spacing:.04em;margin-bottom:var(--s5)}
.legal-doc h2{margin:var(--s7) 0 var(--s3);font-size:17px;font-weight:500;letter-spacing:var(--track-tight);text-transform:uppercase;color:var(--text)}
.legal-doc h2:first-child{margin-top:0}
.legal-doc h3{margin:var(--s5) 0 var(--s2);font-size:16px;font-weight:500;color:var(--text)}
.legal-doc p,.legal-doc li{color:var(--text-2);line-height:1.75}
.legal-doc p+p{margin-top:var(--s3)}
.legal-doc ul{margin:var(--s3) 0;padding-left:1.2em}
.legal-doc li+li{margin-top:6px}
.legal-doc a{color:var(--accent)}
.legal-doc strong{color:var(--text);font-weight:500}
.legal-doc table{width:100%;border-collapse:collapse;margin:var(--s4) 0;font-size:14px}
.legal-doc th,.legal-doc td{padding:10px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;color:var(--text-2)}
.legal-doc th{font:400 11px/1.4 var(--font-mono);letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--text-3)}
.legal-doc code{font-family:var(--font-mono);font-size:13px;color:var(--text)}
.legal-summary{border:1px solid var(--line-strong);border-left:2px solid var(--accent);padding:var(--s5);margin-bottom:var(--s7);border-radius:var(--r2)}
.legal-summary .eyebrow{display:block;margin-bottom:var(--s3)}
.legal-back{margin-top:var(--s7)}
@media (max-width:720px){.legal-doc table,.legal-doc tbody,.legal-doc tr,.legal-doc td{display:block;width:100%}.legal-doc thead{display:none}.legal-doc tr{border-top:1px solid var(--line);padding:8px 0}.legal-doc td{border:0;padding:3px 0}.legal-list a{grid-template-columns:1fr}}

/* Portada (N12): cómo funciona, herramientas, para quién, ejemplo y precios */
.how-steps{list-style:none;margin:0;padding:0}
.how-num{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:10px;border:1px solid var(--accent);border-radius:50%;color:var(--accent);font:400 11px/1 var(--font-mono);letter-spacing:0;vertical-align:1px}
.tool-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
.tool-grid li{display:flex}
.tool-card{display:flex;flex-direction:column;gap:var(--s3);width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);padding:var(--s5) var(--s5) var(--s5);text-decoration:none;transition:border-color .15s ease}
.tool-card:hover{border-color:var(--accent)}
.tool-card:focus-visible{outline:none;box-shadow:var(--focus)}
.tool-ico{width:48px;height:32px;color:var(--text-3);fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.tool-ico .a{stroke:var(--accent)}
.tool-ico .af{fill:var(--accent);stroke:none}
.tool-ico .hl{stroke:var(--lvl-high)}
.tool-ico .dash{stroke-dasharray:2 3}
.tool-title{font-size:17px;font-weight:500;color:var(--text)}
.tool-text{flex:1;color:var(--text-2);font-size:15px;line-height:1.6}
.tool-more{font:400 12px/1 var(--font-mono);letter-spacing:var(--track-mid);text-transform:uppercase;color:var(--accent)}
.tool-more::after{content:' →'}
.ex-result{position:relative;margin:0;min-width:0}
.ex-tag{position:absolute;top:-11px;right:0;z-index:1;padding:3px 9px;background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--r1);font:400 10.5px/1.3 var(--font-mono);letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--text-2)}
.ex-result .result-top{grid-template-columns:240px 1fr}
.ex-result .result-index-value{font-size:88px}
.ex-mechs{list-style:none;margin:0 0 var(--s5);padding:0;display:flex;flex-direction:column;gap:var(--s3)}
.ex-mechs li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:var(--s3)}
.ex-mech-name{color:var(--text);font-size:15px}
.ex-mech-val{display:inline-flex;align-items:center;gap:var(--s3)}
.ex-mech-val b{min-width:2ch;text-align:right;font:500 15px/1 var(--font-mono);color:var(--text);font-variant-numeric:tabular-nums}
.ex-mechs .score-bar{grid-column:1 / -1;margin-top:6px}
.ex-foot{margin-top:var(--s4);display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);align-items:baseline;color:var(--text-3);font-size:13.5px;line-height:1.6}
.price-teaser .cta-title{max-width:none}
@media (max-width:1040px){.ex-result .result-top{grid-template-columns:1fr}}
@media (max-width:860px){.tool-grid{grid-template-columns:1fr}}
@media (max-width:720px){.ex-result .result-index-value{font-size:72px}.ex-mech-val .lvl-chip{font-size:10.5px;padding:2px 7px}}

/* ---------- ALI (secondary): hero link and home band ---------- */
.ali-hero-link{display:block;margin-top:var(--s4);font-size:14px;color:var(--text-3);text-decoration:none}
.ali-hero-link:hover{color:var(--text-2)}
.ali-band{background:rgba(69,180,228,.07);border-top:1px solid rgba(69,180,228,.28);border-bottom:1px solid rgba(69,180,228,.28);padding:var(--s7) 0}
.ali-band-in{display:grid;gap:var(--s4);max-width:860px}
.ali-band .ali-kicker{font-family:var(--font-mono);font-size:11.5px;letter-spacing:var(--track-wide);text-transform:uppercase;color:#45b4e4;margin:0;display:flex;align-items:center;gap:var(--s3)}
.ali-band h2{margin:0;font-size:clamp(20px,3vw,26px);font-weight:300;line-height:1.3}
.ali-band p{margin:0;color:var(--text-2)}
.ali-points{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);font-size:14px;color:var(--text)}
.ali-points li::before{content:"";display:inline-block;width:6px;height:6px;margin-right:8px;border-radius:50%;background:#45b4e4}
.ali-price-line{margin-top:var(--s5);font-size:14px;color:var(--text-2)}
.ali-mark{display:block;color:var(--text);height:auto;flex:none}
.ali-mark-sm{width:44px;color:var(--text)}
.ali-soon{margin:0;font-size:13px;color:var(--text-3)}
.ali-price-line+.ali-soon{margin-top:var(--s2)}

.sim-panel{margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--line)}
.sim-title{margin:0 0 var(--s2);font-size:1.05rem}
.sim-check{display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;font-size:.95rem}
.sim-check input{width:20px;height:20px;accent-color:var(--accent)}
.sim-add{margin:var(--s3) 0}
.sim-add>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--accent);font-weight:500}
.sim-collapsed{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3);margin:var(--s3) 0;padding:var(--s3);border:1px solid var(--line);border-radius:var(--r2);background:var(--surface-2)}
.sim-collapsed[hidden],.sim-add[hidden]{display:none}
.sim-summary{flex:1 1 220px;margin:0;font-size:.95rem;overflow-wrap:anywhere}
.sim-collapsed .btn{min-height:44px}
.sim-more{margin-top:var(--s3);font-size:14px;color:var(--text-2)}
.sim-more>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--accent);font-weight:500}
#simResult{scroll-margin-top:96px}
.sim-actions{display:flex;flex-wrap:wrap;gap:var(--s3);margin:var(--s3) 0}
.sim-actions .btn:disabled{opacity:.45;cursor:not-allowed}
.sim-result{margin-top:var(--s3);padding:var(--s4);border:1px solid var(--lvl,var(--line-strong));border-radius:var(--r2);background:var(--surface-2)}
.sim-result.lvl-card-low{--lvl:var(--lvl-low)}.sim-result.lvl-card-moderate{--lvl:var(--lvl-moderate)}.sim-result.lvl-card-high{--lvl:var(--lvl-high)}.sim-result.lvl-card-very-high{--lvl:var(--lvl-very-high)}
.sim-tag{margin:0 0 var(--s2);font-family:var(--font-mono);font-size:11.5px;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--text-3)}
.sim-index{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.sim-index-val{font-size:clamp(1.6rem,6vw,2.2rem);line-height:1.1}
.sim-water{display:block;font-size:.9rem;color:var(--text-2)}
.sim-msg{margin:var(--s3) 0 0}.sim-msg.is-error{color:var(--lvl-high)}
@media (max-width:640px){.sim-add .measure-list{grid-template-columns:minmax(0,1fr)}.sim-actions .btn{flex:1 1 100%}}

/* Expected damage (share of the cargo) */
.exp-damage{margin-top:var(--s3);text-align:left}
.exp-damage-line{font-size:14.5px;line-height:1.5;color:var(--text-2);margin:0}
.exp-damage-line strong{color:var(--text);font-weight:600}
.exp-damage-tag{display:inline-block;font:500 11px/1.4 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);border:1px solid var(--line-strong);border-radius:var(--r1);padding:1px 6px;vertical-align:middle}
.exp-claim-tag{display:inline-block;font:500 11.5px/1.4 var(--font-mono);letter-spacing:.04em;color:var(--lvl-high);background:var(--lvl-high-bg);border:1px solid rgba(243,146,85,.35);border-radius:var(--r1);padding:2px 8px}
.exp-damage-claim{margin:var(--s2) 0 0}
.exp-damage-note{margin:var(--s2) 0 0;font-size:13px;line-height:1.45;color:var(--text-2)}
.sim-damage{margin:var(--s2) 0}
.qty-field select{min-width:150px}

/* Base of the cargo (floor side): compact note under the mechanism list */
.base-risk{margin:var(--s3) 0 0;padding:10px 14px;border:1px solid var(--line-strong);border-radius:var(--r2);background:var(--surface)}
.base-risk.is-flag{border-color:var(--danger,#c0392b)}
.base-risk p{margin:0}
.base-risk-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:14.5px;line-height:1.5}
.base-risk-water{color:var(--text-2)}
.base-risk-afl{margin-top:6px!important;font-size:14px;line-height:1.5;color:var(--text-2)}
.sim-base{margin:var(--s2) 0 0;font-size:14.5px;color:var(--text-2)}
.sim-base strong{color:var(--text);font-weight:600}
.sim-notes{list-style:none;margin:var(--s2) 0 0;padding:0;display:grid;gap:6px}
.sim-notes-more{margin-top:var(--s2);font-size:14px;color:var(--text-2)}
.sim-notes-more summary{cursor:pointer}
.sim-note{font-size:14px;color:var(--text-2);border-left:3px solid var(--warn, #b7791f);padding:4px 0 4px 10px}

/* S152: effect of each measure on the index, cargo base card, inline required-field errors */
.prot-mech-tag{font:400 11px var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.meas-eff{display:flex;flex-direction:column;gap:2px;flex-basis:100%;font-size:14px;line-height:1.45;color:var(--text-2)}
.meas-eff-line strong{font-weight:600;color:var(--text)}
.meas-eff-line.is-down strong{color:var(--lvl-low)}
.meas-eff-line.is-up strong{color:var(--lvl-very-high)}
.meas-eff-line small{font-size:13px;color:var(--text-3)}
.meas-eff-limit{font-size:13.5px;color:var(--text-2);border-left:2px solid var(--lvl-moderate);padding-left:8px}
.prot-chip .meas-eff{margin-top:2px}
.measure-eff-slot{margin:var(--s2) 0 var(--s3)}
.sim-idx-change{margin:var(--s2) 0 0;font-size:.98rem}
.sim-effects{margin-top:var(--s3)}
.sim-effects h4{margin:0 0 var(--s2);font-size:.95rem}
.sim-effects ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--s3)}
.sim-effects li{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline;padding-bottom:var(--s2);border-bottom:1px solid var(--line)}
.sim-effects li:last-child{border-bottom:0}
.sim-eff-name{font-weight:600}
.sim-base-card{margin:var(--s3) 0;padding:var(--s4);border:1px solid var(--line);border-radius:var(--r2);background:var(--surface-2);min-inline-size:0}
.sim-base-card legend{padding:0 var(--s2);font-weight:600}
.sim-base-card .measure-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--s3)}
.sim-base-suggest{margin-top:var(--s3);padding-top:var(--s3);border-top:1px dashed var(--line-strong)}
.sim-base-suggest-h{margin:0 0 var(--s2);font-weight:600;font-size:.95rem}
.sim-base-suggest ul{list-style:none;margin:0;padding:0}
.sim-inline-err{margin:4px 0 0}
.cargo-moisture-warnings{margin-top:var(--s4)}
@media (max-width:640px){.sim-base-card .measure-fields{grid-template-columns:minmax(0,1fr)}}

/* Legal notes: estimate disclaimer (result, simulator), credits section on /legal, sign-up honeypot */
.disclaimer-note{margin:var(--s3) 0 0;font-size:.78rem;line-height:1.45;color:var(--text-3);text-align:left}
.disclaimer-note strong{font-weight:600;color:inherit}
.disclaimer-note a{color:inherit;text-decoration:underline}
.legal-credits{margin-top:var(--s7);padding-top:var(--s5);border-top:1px solid var(--line-strong)}
.legal-credits h2{font-size:1.05rem;margin:0 0 var(--s3)}
.legal-credits ul{margin:0;padding-left:1.1rem;font-size:.9rem;line-height:1.55;color:var(--text-3)}
.hp-field{position:absolute!important;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}

/* "What protection do I need?" */
.sim-rec-actions{margin-top:0}
.sim-rec-actions .btn{display:inline-flex;align-items:center;gap:var(--s2)}
.sim-spin{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:sim-spin .7s linear infinite}
.sim-spin[hidden]{display:none}
@keyframes sim-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.sim-spin{animation-duration:2s}}
.sim-rec-note{margin:0 0 var(--s3);font-size:14px;line-height:1.45;color:var(--text-2)}
.sim-rec-note:empty{display:none}
.sim-rec-warn,.sim-rec-err{color:var(--text-1,inherit);border-left:3px solid var(--warn,#b7791f);padding-left:var(--s3)}
.sim-rec-ok{border-left:3px solid var(--ok,#2f855a);padding-left:var(--s3)}
@media (max-width:480px){.sim-rec-actions .btn{width:100%;justify-content:center}}
