/* Fuentes propias (sin peticiones a terceros). Los alfabetos no latinos usan las fuentes del sistema. */
@font-face{font-family:Manrope;font-weight:200 800;font-display:swap;src:url(../fonts/manrope-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}
@font-face{font-family:Manrope;font-weight:200 800;font-display:swap;src:url(../fonts/manrope-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Manrope;font-weight:200 800;font-display:swap;src:url(../fonts/manrope-cyrillic-wght-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Source Serif 4";font-weight:200 900;font-display:swap;src:url(../fonts/source-serif-4-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}
@font-face{font-family:"Source Serif 4";font-weight:200 900;font-display:swap;src:url(../fonts/source-serif-4-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Source Serif 4";font-weight:200 900;font-display:swap;src:url(../fonts/source-serif-4-cyrillic-wght-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}

:root{
  --sans:Manrope,"Segoe UI",system-ui,-apple-system,"Noto Sans","Helvetica Neue",Arial,sans-serif;
  --serif:"Source Serif 4",Georgia,"Noto Serif",serif;
  --bg:#10151B;--surf:#161D26;--surf2:#1C2530;--line:#263140;--text:#E9EEF3;--mut:#9BA8B5;
  --acc:#00E5FF;--accInk:#00141A;--accSoft:rgba(0,229,255,.12);--warn:#F2B84B;--warnSoft:rgba(242,184,75,.12);--danger:#FF8A80;
  color-scheme:dark;
}
:root[data-theme="light"]{
  --bg:#F6F8FA;--surf:#FFFFFF;--surf2:#EEF2F5;--line:#D9E0E6;--text:#111A22;--mut:#4E5C69;
  --acc:#00677A;--accInk:#FFFFFF;--accSoft:rgba(0,103,122,.10);--warn:#8A5A00;--warnSoft:rgba(138,90,0,.10);--danger:#B3261E;
  color-scheme:light;
}
/* Fuentes por escritura (usa las del sistema: no pesan y se ven nativas) */
:lang(zh){--sans:Manrope,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC","Noto Sans SC",sans-serif}
:lang(ja){--sans:Manrope,"Hiragino Sans","Yu Gothic UI","Meiryo","Noto Sans CJK JP","Noto Sans JP",sans-serif}
:lang(ko){--sans:Manrope,"Apple SD Gothic Neo","Malgun Gothic","Noto Sans CJK KR","Noto Sans KR",sans-serif}
:lang(hi){--sans:Manrope,"Nirmala UI","Kohinoor Devanagari","Noto Sans Devanagari",sans-serif}
:lang(bn){--sans:Manrope,"Nirmala UI","Kohinoor Bangla","Noto Sans Bengali",sans-serif}
:lang(ar){--sans:"Segoe UI","Geeza Pro","Noto Sans Arabic","Noto Naskh Arabic",Tahoma,sans-serif}
:lang(zh),:lang(ja),:lang(ko),:lang(hi),:lang(bn),:lang(ar){--serif:var(--sans)}
:lang(hi) body,:lang(bn) body,:lang(ar) body{line-height:1.75}
:lang(ar) *,:lang(hi) *,:lang(bn) *{letter-spacing:0 !important}
:lang(zh) *,:lang(ja) *,:lang(ko) *{letter-spacing:0 !important}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.5;min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased}
a{color:inherit}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
button{font:inherit;color:inherit;cursor:pointer}
[hidden]{display:none !important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.icon{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.icon.bold{stroke-width:2}
[dir="rtl"] .flip{transform:scaleX(-1)}

/* Cabecera */
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 40px;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand img{height:34px;width:auto;display:block}
.brand .word{font-weight:800;font-size:19px;letter-spacing:.14em}
.brand .word span{color:var(--acc)}
.brand .iso,.brand .word{display:none}  /* solo de reserva si falla el logotipo */
:root:not([data-theme="light"]) .brand .lock-l,:root[data-theme="light"] .brand .lock-d{display:none}
.pill{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);border:1px solid var(--line);border-radius:999px;padding:3px 10px}
.tools{display:flex;align-items:center;gap:10px;position:relative}
.btn{display:inline-flex;align-items:center;gap:8px;background:transparent;border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-size:14px;font-weight:600;text-decoration:none;color:var(--text)}
.btn:hover{border-color:var(--acc)}
.btn.solid{background:var(--acc);border-color:var(--acc);color:var(--accInk);font-weight:700}
.btn.surf{background:var(--surf);font-weight:700}
.btn.sq{padding:10px;width:42px;justify-content:center}
.top .btn{white-space:nowrap}
.btn.acc.on{border-color:var(--acc);color:var(--acc)}
.accnote{margin:14px 0 0;font-size:14px;color:var(--mut)}
.accnote a{color:var(--acc);font-weight:600}

/* Selector de idioma */
.langmenu{position:absolute;inset-inline-end:0;top:calc(100% + 8px);z-index:20;width:290px;max-height:min(70vh,520px);overflow:auto;background:var(--surf);border:1px solid var(--line);border-radius:16px;padding:12px;box-shadow:0 20px 50px rgba(0,0,0,.35)}
.langmenu h2{margin:4px 8px 8px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.langmenu ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:2px}
.langmenu li button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:6px;background:transparent;border:0;border-radius:8px;padding:10px 12px;font-size:14.5px;font-weight:500;text-align:start}
.langmenu li button:hover{background:var(--surf2)}
.langmenu li button[aria-current="true"]{background:var(--accSoft);font-weight:700}
.langmenu li button[aria-current="true"]::after{content:"✓";color:var(--acc)}
.langmenu p{margin:10px 8px 4px;font-size:12.5px;line-height:1.55;color:var(--mut)}

/* Páginas */
main{flex:1;width:100%;max-width:760px;margin:0 auto;padding:56px 24px 56px}
.lab{margin:0 0 10px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.hero{text-align:center;padding-top:24px}
.hero img{width:68px;height:auto}
.hero h1{margin:20px 0 0;font-size:clamp(30px,5vw,44px);line-height:1.15;letter-spacing:-.02em;font-weight:800}
.hero p{margin:14px auto 0;max-width:560px;font-size:18px;line-height:1.6;color:var(--mut)}
.composer{margin-top:32px;background:var(--surf);border:1px solid var(--line);border-radius:18px;padding:12px 12px 12px 18px;display:flex;gap:12px;align-items:flex-end}
.composer:focus-within,.next:focus-within{border-color:var(--acc);box-shadow:0 0 0 3px var(--accSoft)}
.composer textarea{flex:1;min-width:0;resize:none;background:transparent;border:0;outline:0;color:var(--text);font:inherit;font-size:17px;line-height:1.5;padding:8px 0;max-height:220px}
::placeholder{color:var(--mut);opacity:1}
.go{flex:none;display:inline-flex;align-items:center;gap:8px;background:var(--acc);color:var(--accInk);border:0;border-radius:12px;padding:12px 20px;font-weight:700;font-size:15px}
.go:disabled{opacity:.5;cursor:not-allowed}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;justify-content:center}
.chip{background:transparent;border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:14px;color:var(--mut);text-align:start}
.chip:hover{border-color:var(--acc);color:var(--text)}
.notice{margin:16px 4px 0;text-align:center;font-size:13px;color:var(--mut)}
.how{margin-top:64px}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-top:16px}
.step{padding-top:14px;border-top:2px solid var(--line)}
.step b.n{display:block;font-size:12px;letter-spacing:.12em;color:var(--acc)}
.step b.t{display:block;margin-top:6px;font-size:16px}
.step p{margin:4px 0 0;font-size:14.5px;line-height:1.6;color:var(--mut)}
.honest{margin:28px 0 0;font-size:14px;line-height:1.6;color:var(--mut)}

/* Respuesta */
h1.q{margin:0;font-size:clamp(24px,3.6vw,30px);line-height:1.3;letter-spacing:-.01em;font-weight:700;overflow-wrap:anywhere;outline:0}
.status{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}
.badge{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:6px 14px 6px 10px;font-size:14px;font-weight:700;background:var(--accSoft);color:var(--acc)}
.badge.warn{background:var(--warnSoft);color:var(--warn)}
.status small{font-size:13.5px;color:var(--mut)}
.loading{display:flex;flex-direction:column;gap:14px;margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}
.spin{width:20px;height:20px;border-radius:50%;border:2.5px solid var(--line);border-top-color:var(--acc);animation:sp .9s linear infinite;flex:none}
@keyframes sp{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spin{animation-duration:3s}}
.loading div{display:flex;align-items:center;gap:12px;color:var(--mut);font-size:15px}
.loading div.on{color:var(--text)}
.loading div:not(.on) .spin{animation:none;opacity:.45}
.loading div.done .spin{border-color:var(--acc);opacity:1}
.answer{margin-top:24px;font-family:var(--serif);font-size:20px;line-height:1.72}
.answer p{margin:0 0 20px;overflow-wrap:anywhere}
.cite{display:inline-block;margin-inline-start:3px;vertical-align:3px;min-width:20px;height:20px;line-height:20px;text-align:center;padding:0 5px;border-radius:6px;background:var(--accSoft);color:var(--acc);font-family:var(--sans);font-size:12px;font-weight:700;text-decoration:none}
.pendingbox{margin:0 0 20px;padding:16px 18px;background:var(--warnSoft);border-inline-start:3px solid var(--warn);border-radius:12px;font-family:var(--sans);font-size:16px;line-height:1.6}
.pendingbox b{display:block;margin-bottom:4px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--warn)}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.src{margin-top:48px}
.src ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.src a{display:flex;align-items:center;gap:14px;text-decoration:none;background:var(--surf);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.src a:hover{border-color:var(--acc)}
.src .num{flex:none;min-width:24px;height:24px;border-radius:7px;background:var(--accSoft);color:var(--acc);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}
.src .txt{flex:1;min-width:0}
.src .txt b{display:block;font-size:15px;font-weight:600;line-height:1.35}
.src .txt span{display:block;margin-top:2px;font-size:13px;color:var(--mut)}
.explain{margin:16px 0 0;font-size:13.5px;line-height:1.6;color:var(--mut)}
.next{margin-top:52px;display:flex;align-items:center;gap:12px;background:var(--surf);border:1px solid var(--line);border-radius:16px;padding:8px 8px 8px 20px}
.next input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:var(--text);font:inherit;font-size:16px;padding:10px 0}
.next button{flex:none;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--acc);color:var(--accInk);border:0;border-radius:12px}
.failbox{margin-top:32px;background:var(--surf);border:1px solid var(--line);border-radius:16px;padding:28px}
.failbox h2{margin:18px 0 8px;font-size:22px;line-height:1.3}
.failbox p{margin:0;font-size:16px;line-height:1.65;color:var(--mut)}
.demo{font-size:11px;font-weight:700;letter-spacing:.1em;border:1px dashed var(--mut);color:var(--mut);border-radius:6px;padding:2px 6px}

/* Pie */
.foot{border-top:1px solid var(--line);padding:24px 40px 28px}
.foot .in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;max-width:1100px;margin:0 auto;font-size:13px;color:var(--mut)}
.foot .in>div{max-width:560px;line-height:1.6}
.foot nav{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:14px}
.foot nav a{color:var(--mut)}
.foot nav a:hover{color:var(--text)}
.holder{display:block;margin-top:6px}

/* Aceptación de términos */
dialog{border:1px solid var(--line);border-radius:18px;background:var(--surf);color:var(--text);padding:28px;width:min(420px,calc(100vw - 32px))}
dialog::backdrop{background:rgba(5,8,12,.6)}
dialog h2{margin:0;font-size:24px;font-weight:800;letter-spacing:-.01em}
dialog .sub{margin:8px 0 0;font-size:14.5px;line-height:1.6;color:var(--mut)}
.check{display:flex;gap:12px;align-items:flex-start;margin-top:18px;font-size:15px;line-height:1.55;cursor:pointer}
.check input{width:20px;height:20px;margin:2px 0 0;flex:none;accent-color:var(--acc)}
.check a{color:var(--acc);font-weight:600}
.fld{margin-top:16px}
.fld label{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px}
.fld input{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px 14px;color:var(--text);font:inherit;font-size:15px}
.fld small{display:block;margin-top:6px;font-size:12.5px;color:var(--mut)}
.fld input[aria-invalid="true"]{border-color:var(--danger)}
.err{margin:8px 0 0;font-size:13.5px;color:var(--danger)}
.okmsg{margin-top:16px;padding:12px 14px;background:var(--accSoft);color:var(--acc);border-radius:10px;font-size:14.5px;font-weight:600}
dialog .full{margin-top:22px;width:100%;justify-content:center;padding:13px 16px;font-size:15px}
dialog .fine{margin:16px 0 0;font-size:12.5px;line-height:1.6;color:var(--mut)}
dialog .x{position:absolute;inset-block-start:12px;inset-inline-end:12px;border:0;background:transparent;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;color:var(--mut)}
dialog .x:hover{background:var(--surf2);color:var(--text)}

/* Legal */
.legal h1{margin:0;font-size:34px;letter-spacing:-.01em;font-weight:800}
.legal .sub{margin:12px 0 0;font-size:15px;color:var(--mut)}
.callout{margin-top:24px;padding:14px 16px;background:var(--warnSoft);border-inline-start:3px solid var(--warn);border-radius:10px;font-size:14px;line-height:1.6}
.callout.info{background:var(--accSoft);border-color:var(--acc)}
.toc{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.toc a{text-decoration:none;border:1px solid var(--line);background:var(--surf);border-radius:999px;padding:7px 14px;font-size:14px;font-weight:600}
.toc a:hover{border-color:var(--acc)}
.legal section{margin-top:44px;scroll-margin-top:24px}
.legal h2{margin:0 0 14px;font-size:24px;font-weight:800;letter-spacing:-.01em}
.legal section p{margin:0 0 14px;font-size:16px;line-height:1.7;overflow-wrap:anywhere}

@media (max-width:640px){
  .top{padding:12px 16px}.brand img{height:28px}.brand .word{font-size:16px}.top .pill{display:none}
  main{padding:32px 16px 40px}.foot{padding:20px 16px 24px}
  .composer{flex-direction:column;align-items:stretch;padding:12px}.composer .go{justify-content:center}
  .btn .lbl{display:none}.btn.keep .lbl{display:inline}
  .tools{gap:6px}.tools .btn{padding:9px 10px;font-size:13px}.tools .btn.sq{padding:9px;width:38px}
  .langmenu{position:fixed;inset-inline:16px;top:64px;width:auto}
  .answer{font-size:18px}.legal h1{font-size:28px}
}

/* Respuesta del motor (Markdown) */
.answer h3{margin:28px 0 12px;font-family:var(--sans);font-size:20px;line-height:1.3}
.answer ul,.answer ol{margin:0 0 20px;padding-inline-start:26px}
.answer li{margin:0 0 8px;overflow-wrap:anywhere}
.answer strong{font-weight:700}
.answer code{font-size:.9em;background:var(--surf2);border-radius:4px;padding:1px 5px}
.tablewrap{overflow-x:auto;margin:0 0 20px}
.answer table{border-collapse:collapse;width:100%;font-family:var(--sans);font-size:15px;line-height:1.5}
.answer th,.answer td{border:1px solid var(--line);padding:10px 12px;text-align:start;vertical-align:top}
.answer th{background:var(--surf);font-weight:700}
.notes{margin-top:24px;padding:14px 16px;background:var(--surf);border:1px solid var(--line);border-radius:12px;font-size:14.5px;line-height:1.6}
.notes b{display:block;margin-bottom:6px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.notes ul{margin:0;padding-inline-start:20px}
.wait{margin:6px 0 0;font-size:13.5px;color:var(--mut)}
.back{margin-top:44px}

.notes p.verify { margin: 12px 0 4px; font-size: .9rem; }
.notes ul.verify { margin: 0; }
.notes ul.verify a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

.notes ul.verify .tip { display: block; color: var(--mut); font-size: .88rem; }
.clarify { margin-top: 8px; }
.clarify .cq { font-family: var(--serif, inherit); font-size: 1.25rem; line-height: 1.4; margin: 14px 0 6px; }
.clarify textarea { width: 100%; box-sizing: border-box; margin-top: 10px; padding: 12px 14px; font: inherit; color: inherit; background: var(--surf); border: 1px solid var(--line); border-radius: 12px; resize: vertical; }

/* Escritorio: en pantallas grandes la página usa el ancho disponible (en móvil no cambia nada) */
@media (min-width:1024px){
  .top{padding:20px 56px}
  .brand img{height:40px}
  main{max-width:1000px;padding:88px 40px 72px}
  .hero{padding-top:8px}
  .hero img{width:96px}
  .hero h1{font-size:clamp(48px,4.2vw,64px);line-height:1.1}
  .hero p{max-width:700px;font-size:21px}
  .composer,.chips,.notice{max-width:860px;margin-inline:auto}
  .composer{margin-top:48px;padding:16px 16px 16px 26px;border-radius:22px}
  .composer textarea{font-size:20px;padding:10px 0}
  .go{padding:15px 28px;font-size:16px}
  .chip{font-size:15px;padding:10px 18px}
  .how{margin:110px auto 0;max-width:940px}
  .steps{grid-template-columns:repeat(3,1fr);gap:40px}
  .step b.t{font-size:18px}
  .step p{font-size:16px}
  #viewAnswer{max-width:860px;margin-inline:auto}
  h1.q{font-size:34px}
  .answer{font-size:21px}
  .src ul{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .foot{padding:28px 56px 32px}
}
@media (min-width:1600px){
  main{max-width:1120px}
  .hero h1{font-size:68px}
  .composer,.chips,.notice,#viewAnswer,.how{max-width:940px}
}
@media (max-width:420px){
  .top{padding:10px 12px}.brand img{height:22px}
  .tools{gap:5px}.tools .btn{padding:8px 9px}.tools .btn.sq{width:36px;padding:8px}
  #langBtn .icon:last-child{display:none}
}

.urgent{display:flex;gap:10px;align-items:flex-start;margin:0 0 18px;padding:14px 16px;border-radius:12px;border:1px solid var(--danger);background:rgba(255,138,128,.12);color:var(--text);font-size:16px;line-height:1.5}
.urgent .icon{color:var(--danger);margin-top:3px}
