:root { color-scheme: light; --green:#008000; --deep:#085d3a; --dark:#163a2c; --pale:#e9f6ee; --ink:#19342b; --muted:#60766b; --white:#fff; --border:#dcece1; --page:#f4f8f5; }
* { box-sizing:border-box }
body { margin:0; font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; color:var(--ink); background:linear-gradient(125deg,#f6fbf8 0%,#e7f3eb 100%); min-height:100vh }
button,input { font:inherit }
button { cursor:pointer }
button:focus-visible,input:focus-visible { outline:3px solid #4cbb82; outline-offset:3px }
.site-shell { max-width:1190px; margin:0 auto; padding:26px 20px 18px }
.site-header { display:flex; align-items:center; gap:14px; margin-bottom:24px; flex-wrap:wrap }
.brand-mark { width:57px; height:57px; flex:none; border-radius:17px; background:var(--green); color:white; font-weight:900; display:grid; place-items:center; font-size:31px; position:relative }
.brand-mark span { position:absolute; font-size:14px; right:6px; top:3px; color:#bfffd4 }
.brand-text { min-width:0; flex:1 }
.brand-text h1 { font-size:25px; line-height:1; margin:3px 0 0; letter-spacing:.5px; color:var(--deep) }
.brand-text h1 span { color:var(--green) }
.micro-title { margin:0; font-size:10px; font-weight:800; color:var(--muted); letter-spacing:1px }
.language-switch { margin-left:auto; display:flex; gap:4px; background:#fff; border:1px solid var(--border); padding:5px; border-radius:13px }
.lang-btn { border:0; border-radius:9px; padding:12px 14px; background:transparent; color:var(--deep); font-size:14px; font-weight:700 }
.lang-btn.active { color:white; background:var(--green) }
.layout { display:grid; grid-template-columns:minmax(250px,.80fr) minmax(0,1.35fr); gap:22px; align-items:stretch }
.robot-side { border-radius:25px; background:linear-gradient(155deg,#087b43,#005d2d 80%); color:white; overflow:hidden; padding:26px; position:relative; min-height:580px; display:flex; align-items:center; flex-direction:column; text-align:center }
.robot-side:before { content:""; position:absolute; width:280px;height:280px;background:#ffffff0d;border-radius:50%;top:-185px;right:-135px }
.tag { align-self:flex-start; border:1px solid #ffffff60; background:#ffffff17; font-weight:800; font-size:10px; letter-spacing:1.4px; padding:9px 13px; border-radius:100px; margin:0 }
.robot-stage { height:264px; width:100%; position:relative; display:grid; place-items:center; margin:22px auto 5px; max-width:300px }
.orbit { position:absolute; border:1px solid #ffffff30; border-radius:50%;width:240px;height:240px }
.orbit-b { width:195px; height:195px }
.antenna { position:absolute; width:12px;height:39px;top:24px;left:calc(50% - 6px);border-radius:9px;background:#d7f5e5;z-index:3 }
.antenna-dot { position:absolute;width:23px;height:23px;background:#a6ffcb;top:-14px;left:-6px;border:5px solid #368f66;border-radius:50%;box-shadow:0 0 22px #c3ffe77a }
.robot-head { width:166px;height:144px;background:linear-gradient(145deg,#f4fff8,#c9e8d6);border:8px solid #55b987;border-radius:42px;position:relative;z-index:2;box-shadow:0 15px 28px #002e1c4a; margin-top:12px;animation:float 4s ease-in-out infinite }
.ear { position:absolute;top:49px;background:#91d9ad;width:15px;height:39px;border-radius:8px }
.ear.left {left:-20px}.ear.right {right:-20px}
.face { position:absolute; inset:18px 12px; background:#123e33; border-radius:25px; display:flex; align-items:center;flex-direction:column;justify-content:center }
.eyes { display:flex;gap:31px;margin-top:-1px }
.eye { background:#87ffc0;border-radius:50%;width:21px;height:25px;box-shadow:0 0 14px #6dffb68c;transform-origin:center;animation:blink 5.2s infinite }
.smile { margin-top:20px; height:17px; width:50px; border-bottom:5px solid #9dfbcc;border-radius:0 0 50% 50% }
.robot-body { position:absolute;z-index:1;top:179px;background:linear-gradient(160deg,#bff0d0,#78be92);height:61px;width:115px;border:7px solid #55b987;border-radius:34px 34px 20px 20px;display:grid;place-items:center }
.body-led { height:12px; width:24px; border-radius:15px; background:#0b8d4a }
.shadow { position:absolute; bottom:13px; left:50%; transform:translateX(-50%); width:130px; height:18px; background:#063b2380; filter:blur(7px); border-radius:50% }
.robot-side h2 { font-size:28px; line-height:1.16; margin:0 0 13px }
.robot-side>p#robot-subtitle { font-size:15px; line-height:1.55; color:#e5fff0; max-width:275px; margin:0 0 20px }
.feature-pills { display:flex; flex-wrap:wrap;justify-content:center; gap:8px; margin-bottom:19px }
.feature-pills span { border-radius:100px; padding:9px 12px; background:#ffffff26; font-size:12px; font-weight:700 }
.robot-footnote { color:#dcf9e6; border-top:1px solid #ffffff38; padding-top:16px; font-size:12px;line-height:1.4;margin-top:auto }
.chat-card { display:flex;flex-direction:column;min-width:0;min-height:580px;background:#fff;border:1px solid var(--border);border-radius:25px;overflow:hidden;box-shadow:0 8px 34px #164b3010 }
.chat-top { padding:19px 22px; display:flex;gap:12px;align-items:center;border-bottom:1px solid #e7efe9 }
.bot-chip,.avatar-mini { display:grid;place-items:center;background:#e5f7e9;color:#08763e;border:2px solid #c4e8d0;font-weight:900;flex:none }
.bot-chip { width:46px;height:46px;border-radius:15px;font-size:23px }
.avatar-mini { width:29px;height:29px;border-radius:9px;font-size:14px; margin-top:4px }
.chat-top h2 {font-size:17px;margin:0 0 5px}
.online-status { font-size:12px;color:var(--muted);margin:0;display:flex;gap:7px;align-items:center }
.online-status span:first-child { width:8px;height:8px;border-radius:50%;background:#24a45e }
.reset-btn {border:1px solid #d7e7dc;background:#fff;color:#336c4c;border-radius:11px;margin-left:auto;min-height:42px;padding:0 13px;font-size:13px;font-weight:700 }
.demo-alert { font-size:11px;line-height:1.5;color:#85631d;background:#fff8e8;border-bottom:1px solid #f7e8bf;padding:9px 22px;font-weight:700 }
.chat-messages { flex:1; min-height:270px;max-height:390px;overflow-y:auto; padding:23px 20px;display:flex;flex-direction:column;gap:17px;scroll-behavior:smooth;background-image:radial-gradient(#d9ecdf 0.7px,transparent 0.7px);background-size:20px 20px }
.chat-message {display:flex;gap:9px;align-items:flex-start;max-width:90%}
.chat-message.user { align-self:flex-end }
.bubble { background:#f3f7f3;color:#214937;padding:12px 16px;border-radius:5px 16px 16px 16px;line-height:1.48;font-size:14px;overflow-wrap:anywhere;white-space:pre-wrap }
.chat-message.user .bubble {background:var(--green);color:white;border-radius:16px 5px 16px 16px}
.quick-actions { padding:13px 20px 9px;display:flex;gap:9px;flex-wrap:wrap;min-height:58px;align-content:start;border-top:1px solid #ebf0ed }
.choice-btn {border:1px solid #b8dfc5;border-radius:100px;background:#f3fbf5;color:#126c3c;font-weight:700;font-size:13px;min-height:42px;padding:10px 15px }
.choice-btn:hover,.reset-btn:hover { background:#e2f2e8 }
.chat-form {display:flex;gap:10px;padding:10px 20px 0}
.chat-form input { border:1px solid #cbded1;min-width:0;flex:1;border-radius:12px;min-height:48px;padding:12px 13px;font-size:16px;background:#fff;color:var(--ink) }
.chat-form button { border:0;border-radius:12px;min-height:48px;min-width:100px;background:var(--green);color:#fff;font-weight:800;padding:0 16px }
.safety-note {font-size:11px;line-height:1.45;color:var(--muted);padding:0 20px 12px;margin:10px 0 0}
.site-footer { display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;color:#66816e;font-size:11px;margin-top:16px;padding:0 4px }
.visually-hidden {position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-7px)} }
@keyframes blink { 0%,43%,47%,100%{transform:scaleY(1)} 45%{transform:scaleY(.07)} }
@media (max-width:850px) { .layout{grid-template-columns:1fr}.robot-side{min-height:initial;padding:18px;display:grid;grid-template-columns:180px 1fr;grid-template-areas:"tag tag" "robot title" "robot desc" "robot pills" "foot foot";gap:8px 18px;text-align:left;align-items:center}.robot-side .tag{grid-area:tag}.robot-stage{grid-area:robot;margin:0;height:205px;max-width:180px;transform:scale(.76);transform-origin:center}.robot-side h2{grid-area:title;align-self:end}.robot-side #robot-subtitle{grid-area:desc;align-self:start}.robot-side .feature-pills{grid-area:pills;justify-content:flex-start;margin:0}.robot-footnote{grid-area:foot;margin:0;text-align:center}.chat-card{min-height:520px} }
@media (max-width:560px) { .site-shell{padding:12px 10px 17px}.site-header{gap:8px;margin-bottom:13px}.brand-mark{width:43px;height:43px;font-size:24px;border-radius:12px}.brand-text h1{font-size:20px}.micro-title{font-size:9px;letter-spacing:.3px}.language-switch{flex-basis:100%;justify-content:stretch;margin:7px 0 0;width:100%}.lang-btn{flex:1}.robot-side{display:flex;text-align:center;padding:15px}.robot-side .tag{align-self:center}.robot-stage{height:185px;max-width:170px;transform:scale(.64);margin:0 auto 6px}.robot-side h2{font-size:20px;margin:0}.robot-side>p#robot-subtitle{margin:0 0 6px}.robot-side .feature-pills{margin:0}.robot-footnote{padding-top:10px}.chat-top{padding:12px;gap:9px}.chat-top h2{font-size:15px}.bot-chip{height:39px;width:39px;font-size:18px}.reset-btn{min-height:40px;padding:0 8px;font-size:11px}.demo-alert{padding:9px 13px}.chat-messages{min-height:240px;padding:15px 12px;max-height:380px}.chat-message{max-width:97%}.quick-actions{padding:12px;gap:7px}.choice-btn{padding:9px 11px}.chat-form{padding:10px 12px 0}.chat-form button{min-width:75px;padding:0 9px;font-size:13px}.safety-note{padding:0 12px 12px}.bubble{font-size:14px}.site-footer{line-height:1.5} }
@media (prefers-reduced-motion:reduce) { *,*:before,*:after { animation:none!important;transition:none!important;scroll-behavior:auto!important } }
/* B1 — estados de integración y acceso al sistema oficial */
.demo-alert{background:#edf8f0;border-color:#cce7d3;color:#16623b;font-weight:650;font-size:12px}
.choice-btn:disabled,.chat-form button:disabled{opacity:.55;cursor:not-allowed}
.site-footer a{color:#087c3e;font-weight:800;text-underline-offset:3px}
.chat-card [aria-busy="true"]{opacity:.65}
@media (max-width:560px){.site-footer{font-size:12px}}
/* BLOQUE 2 · Datos del paciente y comprobante integrados al chat */
[hidden]{display:none!important}
.patient-panel{padding:18px 20px;border-top:1px solid #dceae0;background:#f7fbf8}
.patient-panel h3,.ticket h3{font-size:18px;color:#075a2d;margin:0 0 8px}
.patient-summary{font-size:13px;color:#335e48;line-height:1.5;margin:5px 0 16px}
#patient-form{display:grid;gap:8px}
#patient-form label:not(.privacy-consent){font-size:13px;font-weight:750;color:#245c3a}
#patient-form input[type="text"],#patient-form input[type="tel"]{width:100%;min-width:0;box-sizing:border-box;border:1px solid #bdd6c4;padding:12px 13px;min-height:46px;background:#fff;color:#123a26;border-radius:11px;font-size:16px;margin-bottom:7px}
.privacy-consent{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.35;margin:7px 0;color:#315943}
.privacy-consent input{width:19px;height:19px;flex:none;margin:0;accent-color:#008000}
.confirm-btn,.print-btn{min-height:46px;border:0;border-radius:12px;padding:10px 18px;font-weight:800;color:white;background:#008000;font-size:14px}
.confirm-btn:disabled{opacity:.55;cursor:wait}
.patient-error{color:#a01922;font-size:13px;background:#ffeff0;border:1px solid #f3c0c4;padding:10px;border-radius:9px;margin:8px 0}
.mini-privacy{font-size:12px;line-height:1.4;color:#5b7769;margin:10px 0 0}
.ticket{margin:12px 20px 20px;padding:20px;border:2px solid #138d4c;border-radius:16px;background:#f4fff7}
.ticket h3{font-size:20px;color:#11653a}.ticket-info{margin-top:14px}
.ticket-row{padding:7px 0;border-bottom:1px dashed #cfdfd3;display:flex;gap:8px;flex-wrap:wrap;font-size:13px}
.ticket-row strong{color:#1f5538}.ticket-row span{color:#204332;overflow-wrap:anywhere}
.ticket-window{background:#def5e4;border-radius:9px;padding:10px 12px;font-size:14px;font-weight:800;color:#135b30}
.ticket-note{color:#4c6a58;font-size:12px;line-height:1.5}.print-btn{width:100%}
@media(max-width:560px){.patient-panel{padding:13px 12px}.ticket{margin:10px 12px 18px;padding:15px}}
@media print{
 body{background:white!important}
 .site-header,.robot-side,.chat-top,.demo-alert,.chat-messages,.quick-actions,.patient-panel,.chat-form,.safety-note,.site-footer,.print-btn{display:none!important}
 .site-shell,.layout,.chat-card{display:block!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;min-height:0!important;background:white!important}
 .ticket{display:block!important;margin:0!important;max-width:650px;border:1px solid #222!important;background:#fff!important;color:#000!important}
 .ticket:before{content:'HOSPITAL DISTRITAL DE SAN IGNACIO · NEXIA ROBOT';display:block;font-size:14px;font-weight:bold;margin-bottom:10px}
}


/* BLOQUE 3 · Identidad y personalidad de NEXI. Mantiene el flujo B2 y el verde #008000. */
.brand-caption{font-size:11px;font-weight:700;margin:4px 0 0;color:#48785d}
.brand-mark{border:3px solid #bceacb;box-shadow:inset 0 0 0 4px #008000;background:#f0fff4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}
.brand-eyes{display:flex;gap:11px}.brand-eyes i{display:block;width:9px;height:13px;border-radius:6px;background:#078649}
.brand-mouth{display:block;width:23px;height:10px;border-bottom:3px solid #078649;border-radius:0 0 30px 30px;position:static}
.robot-side{background:linear-gradient(155deg,#078546 0%,#006a37 62%,#004e2a 100%);isolation:isolate}
.robot-side::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 30%,#baffd815,transparent 51%);pointer-events:none;z-index:-1}
.robot-side .tag{letter-spacing:1px}
.robot-stage{margin:8px auto 0;height:262px}
.robot-head{border-color:#96deb0;box-shadow:0 16px 28px #002c164f, inset 0 0 0 3px #ffffffb0;transition:box-shadow .3s}
.robot-body{background:linear-gradient(160deg,#dcffe8,#8fdfac);border-color:#91daae;top:181px}
.body-led{background:#1f9b61;width:28px;height:19px;border-radius:9px;border:3px solid #c2fbd8}
.body-sign{font-weight:900;font-size:11px;color:#137846;position:absolute;bottom:2px;letter-spacing:1px}
.face{background:linear-gradient(145deg,#0a453a,#0b312c);overflow:hidden}
.eyebrows{position:absolute;top:17px;display:flex;gap:39px}
.eyebrows span{display:block;width:20px;height:5px;background:#87ffc0;border-radius:10px;opacity:.55;transition:transform .3s}
.eyes{margin-top:0;gap:30px}.eye{height:25px;width:21px;display:grid;place-items:center;position:relative}
.eye i{width:8px;height:9px;border-radius:50%;display:block;background:#0b4330;opacity:.5}
.cheeks{position:absolute;left:11px;right:11px;top:60px;display:flex;justify-content:space-between;pointer-events:none}
.cheeks span{width:21px;height:10px;border-radius:50%;background:#89ffbc35}
.smile{transition:width .3s,height .3s,transform .3s;margin-top:19px}
.robot-arm{position:absolute;z-index:1;width:22px;height:76px;border-radius:13px;background:linear-gradient(145deg,#ddffe9,#7bc79b);border:5px solid #87cfa4;top:164px;transform-origin:top center}
.robot-arm span{position:absolute;width:29px;height:30px;background:#b8f3cd;border-radius:12px;left:-9px;bottom:-10px;border:4px solid #78c796}
.robot-arm-left{left:calc(50% - 81px);transform:rotate(40deg)}
.robot-arm-right{right:calc(50% - 81px);transform:rotate(-40deg)}
.spark{position:absolute;z-index:4;color:#bdffdb;font-size:25px;text-shadow:0 0 15px #b3ffdc99}
.spark-a{left:9%;top:18%}.spark-b{right:8%;top:34%;font-size:29px}
.mood-status{align-self:center;border-radius:999px;border:1px solid #ffffff5c;background:#ffffff1b;color:#f3fff7;padding:8px 14px;font-weight:750;font-size:12px;margin:0 0 18px;min-height:34px}
.nexi-values{display:flex;gap:10px;align-items:center;background:#ffffff18;border:1px solid #ffffff3a;border-radius:13px;padding:9px 13px;max-width:290px;margin:0 0 15px}
.nexi-values span{font-size:22px;color:#baffda}.nexi-values p{margin:0;font-size:12px;text-align:left;color:#e9fff1;line-height:1.35}
.robot-footnote{font-size:11px;line-height:1.5;margin:0 auto;max-width:300px}
.robot-stage[data-mood="saludo"] .robot-arm-right{animation:nexi-wave 1.25s ease-in-out 2}
.robot-stage[data-mood="saludo"] .smile{width:55px;height:18px}
.robot-stage[data-mood="pensando"] .antenna-dot{animation:nexi-thinking .95s linear infinite}
.robot-stage[data-mood="pensando"] .eyebrows span:first-child{transform:rotate(-14deg) translateY(-2px)}
.robot-stage[data-mood="pensando"] .smile{width:30px;height:10px;border-bottom-width:4px}
.robot-stage[data-mood="pensando"] .robot-head{box-shadow:0 16px 30px #002c1666,0 0 32px #bbffdd40}
.robot-stage[data-mood="feliz"] .smile{width:56px;height:22px;border-bottom-width:7px}
.robot-stage[data-mood="feliz"] .cheeks span{background:#ffa9b26a}
.robot-stage[data-mood="feliz"] .spark{animation:nexi-spark 1s ease-in-out infinite alternate}
.robot-stage[data-mood="curioso"] .eyebrows span:last-child{transform:translateY(-5px) rotate(13deg)}
.robot-stage[data-mood="curioso"] .robot-head{transform:rotate(-5deg)}
@keyframes nexi-wave{0%,100%{transform:rotate(-40deg)}35%{transform:rotate(-83deg)}70%{transform:rotate(-18deg)}}
@keyframes nexi-thinking{0%,100%{box-shadow:0 0 5px #d2ffe1}50%{box-shadow:0 0 30px #ecfff4,0 0 10px #ffffff}} 
@keyframes nexi-spark{0%{opacity:.35;transform:scale(.85)}100%{opacity:1;transform:scale(1.25)}}
.chat-card{box-shadow:0 18px 42px #164b3010}
.bot-chip{background:#087f43;border-color:#c4e8d0}
.mini-robot-face{width:30px;height:27px;background:#e7fff0;border-radius:10px;display:flex;align-items:center;justify-content:center;gap:6px;position:relative}
.mini-robot-face i{width:6px;height:9px;border-radius:50%;background:#008000}
.mini-robot-face::after{content:"";position:absolute;bottom:3px;left:11px;width:9px;height:4px;border-bottom:2px solid #008000;border-radius:0 0 100% 100%}
.avatar-mini{font-size:12px;border-radius:11px;background:#e1f8e8}
.progress-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:13px 18px 12px;border-bottom:1px solid #e8f1e9;background:#fff;}
.progress-step{min-width:0;display:flex;gap:7px;align-items:center;color:#76877e;font-size:11px;font-weight:700;line-height:1.3}
.progress-step b{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;border:1px solid #d5e5da;background:#f2f6f3;color:#6f8275;flex:none}
.progress-step.current{color:#076c3b}.progress-step.current b{background:#008000;border-color:#008000;color:#fff}
.progress-step.done{color:#22754a}.progress-step.done b{background:#d4f3df;border-color:#95d5ad;color:#076b38}
.progress-step.done b:after{content:'✓';position:absolute;transform:translateY(-.5px)}
.progress-step.done b{font-size:0;position:relative}.progress-step.done b:after{font-size:15px}
.demo-alert{background:#ecf7f0;color:#1e5b3a;padding:9px 19px}
@media(max-width:850px){
  .robot-side{grid-template-columns:205px 1fr;grid-template-areas:"tag tag" "robot title" "robot desc" "robot pills" "robot values" "mood mood" "foot foot";gap:5px 17px;min-height:0}
  .robot-stage{grid-area:robot;transform:scale(.78);height:220px;max-width:205px}
  .mood-status{grid-area:mood;justify-self:center;margin:3px 0 8px}
  .nexi-values{grid-area:values;margin:0 0 8px}
  .robot-side h2{align-self:end}
}
@media(max-width:560px){
  .robot-side{display:flex;padding:16px 12px 14px;gap:0}
  .robot-stage{height:180px;transform:scale(.65);max-width:190px;margin:-13px auto -15px;flex:none}
  .mood-status{margin:5px 0 12px;font-size:11px}
  .robot-side h2{margin:0 0 6px}
  .robot-side #robot-subtitle{margin:0 0 10px}
  .nexi-values{padding:8px 12px;margin:8px auto;max-width:330px}
  .robot-footnote{font-size:11px;margin:8px auto 0}
  .progress-steps{gap:3px;padding:10px 8px}
  .progress-step{gap:3px;flex-direction:column;text-align:center;font-size:10px}
  .progress-step b{width:24px;height:24px}
}
@media(prefers-reduced-motion:reduce){
  .robot-stage[data-mood] .robot-head{transform:none!important}
}
@media print{
  .progress-steps{display:none!important}
  .ticket:before{content:'HOSPITAL DISTRITAL DE SAN IGNACIO · NEXI'}
}
/* B3.1: el ícono NEXI anula la regla antigua del adorno de la letra N. */
.brand-mark .brand-eyes,.brand-mark .brand-mouth{position:static;top:auto;right:auto;color:inherit;font-size:inherit}
.brand-mark .brand-eyes{display:flex}
.brand-mark .brand-mouth{display:block}
@media(max-width:560px){.robot-stage{height:195px;margin:-8px auto 2px}}


/* BLOQUE 3.1 — IDENTIDAD OFICIAL NEXI: cerebro 3D / estetoscopio.
   Solo presentación. Las APIs de reservas, las tablas y validaciones no se alteran. */
.brand-mark { padding:0;overflow:hidden;border-radius:50%;width:59px;height:59px;flex:none;background:#e7faed;border:2px solid #d6f6e1;box-shadow:0 0 0 2px #00800018;display:grid;place-items:center }
.brand-mark img{display:block;width:100%;height:100%;object-fit:cover}
.robot-side {background:linear-gradient(148deg,#008000 0%,#056d38 44%,#06462d 100%)}
.robot-side::after {background:radial-gradient(ellipse at 50% 29%,#ddffe43d 0%,transparent 58%)}
.robot-stage {width:min(100%,305px);max-width:305px;height:263px;margin:10px auto 6px;position:relative;display:grid;place-items:center;transform:none!important}
.nexi-aura {position:absolute;top:20px;left:50%;transform:translateX(-50%);width:246px;height:213px;border-radius:50%;background:radial-gradient(circle,#dfffe8a6 0%,#8ce4a65c 52%,transparent 74%);border:1px solid #eaffee3a;pointer-events:none}
.nexi-personaje{position:relative;z-index:2;width:min(100%,270px);height:245px;max-height:245px;object-fit:contain;filter:drop-shadow(0 17px 15px #023f2e77);animation:nexi-flota 3.7s ease-in-out infinite;transform-origin:center 80%;will-change:transform}
.nexi-ground{position:absolute;z-index:1;bottom:13px;left:50%;width:135px;height:18px;transform:translateX(-50%);border-radius:50%;background:#002d1947;filter:blur(7px)}
.nexi-spark{position:absolute;z-index:3;font-size:25px;color:#d4ffab;opacity:.65;text-shadow:0 0 12px #c6ffa4;pointer-events:none}
.n-spark-1{top:38px;left:9%}.n-spark-2{right:6%;top:92px}
.robot-stage[data-mood="saludo"] .nexi-personaje{animation:nexi-saludo 2.7s ease-in-out infinite}
.robot-stage[data-mood="atento"] .nexi-personaje{animation:nexi-flota 4.1s ease-in-out infinite}
.robot-stage[data-mood="pensando"] .nexi-personaje{animation:nexi-pensando 2.4s ease-in-out infinite}
.robot-stage[data-mood="curioso"] .nexi-personaje{animation:nexi-pensando 2.9s ease-in-out infinite}
.robot-stage[data-mood="confirmando"] .nexi-personaje{animation:nexi-pulso 1.4s ease-in-out infinite}
.robot-stage[data-mood="feliz"] .nexi-personaje{animation:nexi-celebra 1.6s ease-in-out 3}
.robot-stage[data-mood="feliz"] .nexi-spark{animation:nexi-brilla .95s ease-in-out infinite alternate}
.robot-stage[data-mood="confirmando"] .nexi-aura{animation:nexi-brilla 1.1s ease-in-out infinite alternate}
.nexi-motto{color:#d5ffe3;font-size:12px;letter-spacing:.1px;margin:-9px auto 15px!important;font-weight:700;font-style:italic}
.robot-side #robot-subtitle{margin-bottom:15px}
.bot-chip{padding:0;overflow:hidden;background:#effff2;border:2px solid #c9ebd5}
.bot-chip img{width:100%;height:100%;object-fit:contain}
.avatar-mini{font-size:0!important;background:#e6f8ec url('../img/nexi-icono.png') center / cover no-repeat;border-radius:50%;border-color:#bfe6cc}
@keyframes nexi-flota{0%,100%{transform:translateY(1px)}50%{transform:translateY(-7px)}}
@keyframes nexi-saludo{0%,100%{transform:translateY(0) rotate(0)}24%{transform:translateY(-6px) rotate(-2deg)}52%{transform:translateY(-4px) rotate(2deg)}75%{transform:translateY(1px) rotate(0)}}
@keyframes nexi-pensando{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-4px) rotate(2deg)}}
@keyframes nexi-pulso{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
@keyframes nexi-celebra{0%,100%{transform:translateY(0) rotate(0)}38%{transform:translateY(-13px) rotate(-3deg)}65%{transform:translateY(-8px) rotate(3deg)}}
@keyframes nexi-brilla{from{opacity:.3;transform:scale(.9)}to{opacity:1;transform:scale(1.16)}}
@media (max-width:850px){
  .robot-stage{grid-area:robot;max-width:205px;height:208px;margin:0 auto;transform:none!important}
  .nexi-personaje{width:205px;height:195px;max-height:195px}
  .nexi-aura{width:190px;height:180px;top:13px}
  .nexi-motto{grid-area:desc;align-self:end;display:none}
  .nexi-ground{bottom:6px}
}
@media (max-width:560px){
  .brand-mark{width:46px;height:46px}
  .robot-stage{max-width:245px;width:100%;height:213px;margin:-4px auto 2px;transform:none!important}
  .nexi-personaje{width:230px;height:203px;max-height:203px}
  .nexi-aura{width:205px;height:179px;top:8px}
  .nexi-ground{bottom:0}
  .nexi-motto{display:block;grid-area:auto;margin:4px auto 10px!important}
}
@media(prefers-reduced-motion:reduce){
 .nexi-personaje,.nexi-spark,.nexi-aura{animation:none!important;transition:none!important;will-change:auto!important}
}
@media print { .ticket:before {content:'HOSPITAL DISTRITAL DE SAN IGNACIO · NEXI'} }

/* BLOQUE 4: pistas breves para la conversación escrita, sin audio. */
.examples{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:11px 18px 3px;background:#fff;font-size:12px;color:#446654}
.examples>span{margin-right:3px;font-weight:650}
.example-chip{border:1px solid #c5e1ce;border-radius:999px;background:#f4fbf6;color:#116a38;padding:8px 11px;font:inherit;font-size:12px;cursor:pointer;min-height:36px;max-width:100%;overflow-wrap:anywhere}
.example-chip:hover,.example-chip:focus-visible{background:#def5e4;outline-offset:3px}
.examples[hidden]{display:none!important}
@media(max-width:560px){.examples{padding:9px 12px 3px}.examples>span{width:100%}}
@media print{.examples{display:none!important}}

/* BLOQUE 6 · Consulta privada de comprobantes, compatible con NEXI 3D. */
.lookup-panel{padding:20px;border-top:1px solid #dceae0;background:#f7fbf8}
.lookup-panel h3{font-size:18px;color:#075a2d;margin:0 0 8px}
.lookup-description{font-size:13px;color:#335e48;line-height:1.5;margin:5px 0 15px}
#lookup-form{display:grid;gap:8px}
#lookup-form label{font-size:13px;font-weight:750;color:#245c3a}
#lookup-form input{width:100%;min-width:0;box-sizing:border-box;border:1px solid #bdd6c4;padding:12px 13px;min-height:46px;background:white;color:#123a26;border-radius:11px;font-size:16px;margin-bottom:7px}
#lookup-key{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:0.025em}
.lookup-help{font-size:12px;color:#426452;line-height:1.5;margin:0 0 9px}
#lookup-submit{width:100%}
#lookup-submit:disabled{opacity:.55;cursor:wait}
.ticket-row:last-child strong{overflow-wrap:anywhere}
@media(max-width:560px){.lookup-panel{padding:13px 12px}}
@media print{.lookup-panel{display:none!important}}

/* BLOQUE 7.9 - aviso institucional bilingüe, sin datos personales */
#nexi-b79-aviso{background:#ecf7ef;color:#18583a;border-left:4px solid #008000;border-radius:9px;padding:12px 15px;margin:10px 0;font-size:14px;line-height:1.5;white-space:pre-wrap;font-weight:650}
#nexi-b79-aviso[hidden]{display:none!important}

#btn-gn[hidden]{display:none!important}
