/* ==============================================================
   MISIÓN NEXO v0.8 · NEXO CHARACTER SYSTEM
   Compañero visual reactivo, accesible y mobile-first.
   ============================================================== */
:root{
  --nexo-char-size:172px;
  --nexo-char-panel:340px;
  --nexo-char-z:82;
  --nexo-char-accent:#53f3d5;
  --nexo-char-blue:#70a8ff;
  --nexo-char-purple:#b494ff;
  --nexo-char-gold:#ffd166;
  --nexo-char-danger:#ff637f;
}

/* Root / dock --------------------------------------------------- */
.nexo-character-root{position:fixed;right:22px;bottom:22px;z-index:var(--nexo-char-z);width:min(var(--nexo-char-panel),calc(100vw - 28px));pointer-events:none;display:grid;justify-items:end;gap:8px;filter:drop-shadow(0 20px 38px rgba(0,0,0,.36))}
body.has-mobile-nav .nexo-character-root{bottom:84px}
.nexo-character-root.is-hidden{display:none}.nexo-character-root.is-minimized .nexo-character-panel{opacity:0;transform:translateY(10px) scale(.96);pointer-events:none;visibility:hidden}.nexo-character-root.is-minimized .nexo-character-stage{transform:scale(.78);transform-origin:100% 100%}.nexo-character-root.is-dormant .nexo-character-stage{opacity:.72}
.nexo-character-stage{width:var(--nexo-char-size);height:calc(var(--nexo-char-size) * 1.08);position:relative;pointer-events:auto;cursor:pointer;display:grid;place-items:end center;transition:transform .32s cubic-bezier(.22,1,.36,1),opacity .25s ease;outline:none;isolation:isolate}
.nexo-character-stage:focus-visible{filter:drop-shadow(0 0 22px rgba(83,243,213,.55))}.nexo-character-stage:after{content:"";position:absolute;left:18%;right:18%;bottom:2px;height:17px;border-radius:50%;background:radial-gradient(ellipse,rgba(83,243,213,.34),rgba(112,168,255,.12) 52%,transparent 72%);filter:blur(3px);animation:nexoPlatformPulse 2.3s ease-in-out infinite;z-index:-1}
.nexo-character-svg{width:100%;height:100%;overflow:visible;transform-origin:50% 88%;animation:nexoHover 3.15s ease-in-out infinite;will-change:transform}.nexo-character-root:hover .nexo-character-svg{animation-duration:2.15s}

/* Character shell ---------------------------------------------- */
.nexo-character-svg .nexo-aura{fill:none;stroke:rgba(83,243,213,.45);stroke-width:1.5;stroke-dasharray:8 11;transform-origin:100px 108px;animation:nexoAuraSpin 13s linear infinite}.nexo-character-svg .nexo-aura.a2{stroke:rgba(180,148,255,.3);stroke-dasharray:3 15;animation-direction:reverse;animation-duration:18s}.nexo-character-svg .nexo-head,.nexo-character-svg .nexo-body-shell,.nexo-character-svg .nexo-arm-shell{fill:url(#nexoShellGrad);stroke:#9bd8ff;stroke-width:1.1}.nexo-character-svg .nexo-head-shadow,.nexo-character-svg .nexo-body-shadow{fill:#7b8dae;opacity:.22}.nexo-character-svg .nexo-face{fill:url(#nexoFaceGrad);stroke:#69dfff;stroke-width:1.1;filter:url(#nexoGlow)}.nexo-character-svg .nexo-ear{fill:url(#nexoEarGrad);stroke:#86e8ff;stroke-width:1}.nexo-character-svg .nexo-ear-ring{fill:none;stroke:#53f3d5;stroke-width:3;opacity:.85;filter:url(#nexoGlow);transform-origin:center}.nexo-character-svg .nexo-core{fill:url(#nexoCoreGrad);stroke:#6ee5ff;stroke-width:1.4;filter:url(#nexoGlow)}.nexo-character-svg .nexo-core-letter{fill:#eaffff;font:900 20px/1 system-ui,sans-serif;text-anchor:middle;dominant-baseline:middle;filter:url(#nexoGlow)}.nexo-character-svg .nexo-jet{fill:url(#nexoJetGrad);opacity:.86;filter:url(#nexoGlow);transform-origin:50% 0;animation:nexoJet 1.05s ease-in-out infinite alternate}.nexo-character-svg .nexo-hand{fill:#ecf7ff;stroke:#8fe3ff;stroke-width:.9}.nexo-character-svg .nexo-arm-left,.nexo-character-svg .nexo-arm-right{transform-box:fill-box;transform-origin:50% 16%}.nexo-character-svg .nexo-head-group{transform-box:fill-box;transform-origin:50% 78%}.nexo-character-svg .nexo-face-glint{fill:#fff;opacity:.16}.nexo-character-svg .nexo-scan{fill:url(#nexoScanGrad);opacity:0;transform:translateY(-38px)}

/* Eyes / expressions ------------------------------------------- */
.nexo-character-svg [data-eyes]{display:none}.nexo-character-svg .eyes-idle{display:block}.nexo-character-svg .eye-dot{fill:#7ff7ff;filter:url(#nexoGlow)}.nexo-character-svg .eye-arc{fill:none;stroke:#7ff7ff;stroke-width:5.5;stroke-linecap:round;filter:url(#nexoGlow)}.nexo-character-svg .eye-alert{fill:#ff7188;filter:url(#nexoRedGlow)}.nexo-character-svg .eye-gold{fill:#ffe59b;filter:url(#nexoGoldGlow)}.nexo-character-svg .nexo-mouth{fill:none;stroke:#9dfaff;stroke-width:2.7;stroke-linecap:round;opacity:.85}.nexo-character-svg .mouth-bars{display:none}.nexo-character-svg .mouth-bars rect{fill:#80f8ff;filter:url(#nexoGlow);transform-box:fill-box;transform-origin:center bottom;animation:nexoVoiceBar .34s ease-in-out infinite alternate}.nexo-character-svg .mouth-bars rect:nth-child(2){animation-delay:.08s}.nexo-character-svg .mouth-bars rect:nth-child(3){animation-delay:.16s}

/* State machine ------------------------------------------------- */
.nexo-character-root.state-idle .eyes-idle,.nexo-inline-character.state-idle .eyes-idle{display:block}
.nexo-character-root.state-speaking .eyes-speaking,.nexo-inline-character.state-speaking .eyes-speaking{display:block}
.nexo-character-root.state-listening .eyes-listening,.nexo-inline-character.state-listening .eyes-listening{display:block}
.nexo-character-root.state-analyzing .eyes-analyzing,.nexo-inline-character.state-analyzing .eyes-analyzing{display:block}
.nexo-character-root.state-success .eyes-success,.nexo-inline-character.state-success .eyes-success{display:block}
.nexo-character-root.state-unlock .eyes-unlock,.nexo-inline-character.state-unlock .eyes-unlock{display:block}
.nexo-character-root.state-error .eyes-error,.nexo-inline-character.state-error .eyes-error{display:block}
.nexo-character-root.state-alert .eyes-alert,.nexo-inline-character.state-alert .eyes-alert{display:block}
.nexo-character-root.state-briefing .eyes-speaking,.nexo-inline-character.state-briefing .eyes-speaking{display:block}
.nexo-character-root:not(.state-idle) .eyes-idle,.nexo-inline-character:not(.state-idle) .eyes-idle{display:none}
.nexo-character-root.state-speaking .mouth-bars,.nexo-character-root.state-briefing .mouth-bars,.nexo-inline-character.state-speaking .mouth-bars,.nexo-inline-character.state-briefing .mouth-bars{display:block}.nexo-character-root.state-speaking .nexo-mouth,.nexo-character-root.state-briefing .nexo-mouth,.nexo-inline-character.state-speaking .nexo-mouth,.nexo-inline-character.state-briefing .nexo-mouth{display:none}
.nexo-character-root.state-speaking .nexo-head-group,.nexo-inline-character.state-speaking .nexo-head-group{animation:nexoTalkHead .55s ease-in-out infinite alternate}.nexo-character-root.state-speaking .nexo-arm-right,.nexo-character-root.state-briefing .nexo-arm-right,.nexo-inline-character.state-speaking .nexo-arm-right,.nexo-inline-character.state-briefing .nexo-arm-right{animation:nexoGuideWave 1.6s ease-in-out infinite}
.nexo-character-root.state-listening .nexo-head-group,.nexo-inline-character.state-listening .nexo-head-group{transform:rotate(-5deg) translate(-1px,2px)}.nexo-character-root.state-listening .nexo-ear-ring,.nexo-inline-character.state-listening .nexo-ear-ring{animation:nexoListenPulse .72s ease-in-out infinite alternate}
.nexo-character-root.state-analyzing .nexo-scan,.nexo-inline-character.state-analyzing .nexo-scan{opacity:.38;animation:nexoFaceScan 1.2s ease-in-out infinite}.nexo-character-root.state-analyzing .nexo-aura,.nexo-inline-character.state-analyzing .nexo-aura{animation-duration:4.8s}.nexo-character-root.state-analyzing .nexo-head-group,.nexo-inline-character.state-analyzing .nexo-head-group{animation:nexoAnalyzeTilt 1.75s ease-in-out infinite alternate}
.nexo-character-root.state-success .nexo-character-svg,.nexo-inline-character.state-success .nexo-character-svg{animation:nexoVictory .9s cubic-bezier(.2,.9,.25,1.2) 1,nexoHover 2.6s ease-in-out .9s infinite}.nexo-character-root.state-success .nexo-arm-left,.nexo-character-root.state-success .nexo-arm-right,.nexo-inline-character.state-success .nexo-arm-left,.nexo-inline-character.state-success .nexo-arm-right{transform:rotate(-26deg) translateY(-5px)}
.nexo-character-root.state-unlock .nexo-character-stage:before{content:"";position:absolute;inset:12% 5% 10%;border-radius:50%;background:radial-gradient(circle,rgba(255,209,102,.28),rgba(180,148,255,.12) 44%,transparent 70%);filter:blur(9px);animation:nexoUnlockAura 1.4s ease-in-out infinite;z-index:-1}.nexo-character-root.state-unlock .nexo-aura,.nexo-inline-character.state-unlock .nexo-aura{stroke:#ffd166;animation-duration:3.2s}.nexo-character-root.state-error .nexo-character-svg,.nexo-inline-character.state-error .nexo-character-svg{animation:nexoErrorShake .42s ease-in-out 2,nexoHover 3.2s ease-in-out .84s infinite}.nexo-character-root.state-error .nexo-core,.nexo-inline-character.state-error .nexo-core{stroke:#ffab78}.nexo-character-root.state-alert .nexo-character-stage:before{content:"";position:absolute;inset:13%;border:1px solid rgba(255,99,127,.55);border-radius:50%;box-shadow:0 0 35px rgba(255,99,127,.18),inset 0 0 25px rgba(255,99,127,.08);animation:nexoAlertRing .75s ease-in-out infinite alternate;z-index:-1}.nexo-character-root.state-alert .nexo-ear-ring,.nexo-inline-character.state-alert .nexo-ear-ring{stroke:#ff637f}.nexo-character-root.state-alert .nexo-core,.nexo-inline-character.state-alert .nexo-core{stroke:#ff637f;filter:url(#nexoRedGlow)}

/* Speech / command panel --------------------------------------- */
.nexo-character-panel{pointer-events:auto;width:min(var(--nexo-char-panel),calc(100vw - 28px));border:1px solid rgba(112,168,255,.25);border-radius:18px;background:linear-gradient(145deg,rgba(8,20,36,.96),rgba(5,11,24,.97));box-shadow:0 24px 65px rgba(0,0,0,.46),0 0 35px rgba(83,243,213,.055);backdrop-filter:blur(18px);overflow:hidden;transform-origin:100% 100%;transition:opacity .22s ease,transform .28s cubic-bezier(.22,1,.36,1),visibility .22s;position:relative}.nexo-character-panel:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 0 38%,rgba(83,243,213,.045) 48%,transparent 58%);transform:translateX(-120%);animation:nexoPanelSweep 8s ease-in-out infinite}.nexo-character-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px 8px 13px;border-bottom:1px solid rgba(112,168,255,.13)}.nexo-character-ident{display:flex;align-items:center;gap:8px;min-width:0}.nexo-character-live{width:7px;height:7px;border-radius:50%;background:#74ed9a;box-shadow:0 0 12px #74ed9a;animation:nexoLive 1.5s ease-in-out infinite}.nexo-character-title{font:900 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;color:#dffaff;white-space:nowrap}.nexo-character-state-label{font:800 8px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:#69dfff;letter-spacing:.1em;white-space:nowrap}.nexo-character-panel-tools{display:flex;gap:4px}.nexo-character-iconbtn{width:29px;height:29px;border:1px solid rgba(112,168,255,.13);border-radius:9px;background:rgba(112,168,255,.045);color:#a6bed5;display:grid;place-items:center;cursor:pointer;font-size:12px}.nexo-character-iconbtn:hover,.nexo-character-iconbtn.active{color:#ecffff;border-color:rgba(83,243,213,.34);background:rgba(83,243,213,.08)}
.nexo-character-message{padding:12px 13px 8px}.nexo-character-message p{margin:0;color:#d8e7f6;font-size:12px;line-height:1.58;min-height:38px}.nexo-character-message p:after{content:"";display:inline-block;width:5px;height:12px;margin-left:3px;background:#53f3d5;vertical-align:-2px;opacity:0}.nexo-character-root.is-typing .nexo-character-message p:after{opacity:.8;animation:nexoCaret .65s steps(1) infinite}.nexo-character-subtitle{margin-top:7px;color:#6e8ba8;font:700 8px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase}.nexo-character-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px 11px 11px}.nexo-character-action{min-height:34px;border:1px solid rgba(112,168,255,.15);border-radius:10px;background:rgba(112,168,255,.045);color:#a8c4dd;font:800 8.5px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em;text-align:left;padding:8px 9px;cursor:pointer;transition:.18s ease}.nexo-character-action:hover{border-color:rgba(83,243,213,.38);background:rgba(83,243,213,.08);color:#ebffff;transform:translateY(-1px)}.nexo-character-action.primary{background:linear-gradient(135deg,rgba(83,243,213,.13),rgba(112,168,255,.1));border-color:rgba(83,243,213,.25);color:#dffff9}.nexo-character-menu-caption{padding:0 13px 9px;color:#5f7a95;font-size:9px}
.nexo-character-ping{position:absolute;right:5px;top:7px;min-width:24px;height:24px;border-radius:99px;display:grid;place-items:center;padding:0 7px;background:#ff637f;color:white;font:900 9px/1 ui-monospace;box-shadow:0 0 18px rgba(255,99,127,.42);opacity:0;transform:scale(.7);transition:.2s}.nexo-character-root.has-ping .nexo-character-ping{opacity:1;transform:scale(1);animation:nexoPing .95s ease-in-out infinite alternate}

/* Inline character (briefing/login/mission panels) ------------- */
.nexo-inline-character{position:relative;display:grid;place-items:center;width:150px;height:165px;isolation:isolate}.nexo-inline-character .nexo-character-svg{width:100%;height:100%;animation:nexoHover 3.1s ease-in-out infinite}.nexo-inline-character.size-small{width:86px;height:96px}.nexo-inline-character.size-medium{width:132px;height:145px}.nexo-inline-character.size-large{width:min(250px,48vw);height:min(270px,52vw)}.nexo-inline-character:after{content:"";position:absolute;bottom:1px;width:62%;height:14px;border-radius:50%;background:radial-gradient(ellipse,rgba(83,243,213,.3),rgba(112,168,255,.08) 55%,transparent 75%);filter:blur(4px);z-index:-1}.nexo-inline-character.state-alert:after,.nexo-inline-character.state-error:after{background:radial-gradient(ellipse,rgba(255,99,127,.3),transparent 72%)}.nexo-inline-character.state-success:after,.nexo-inline-character.state-unlock:after{background:radial-gradient(ellipse,rgba(255,209,102,.25),rgba(83,243,213,.12) 55%,transparent 75%)}

/* NEXO cockpit / contextual controls --------------------------- */
.nexo-character-launcher{display:inline-flex;align-items:center;gap:6px;min-width:58px;height:32px;padding:0 9px;border:1px solid rgba(83,243,213,.22);border-radius:10px;background:linear-gradient(135deg,rgba(83,243,213,.08),rgba(112,168,255,.07));color:#dffaff;font:900 8px/1 ui-monospace;letter-spacing:.08em;cursor:pointer}.nexo-character-launcher i{width:7px;height:7px;border-radius:50%;background:#53f3d5;box-shadow:0 0 10px #53f3d5}.nexo-character-launcher:hover{border-color:rgba(83,243,213,.46);background:rgba(83,243,213,.12)}
.nexo-context-strip{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:12px}.nexo-context-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(112,168,255,.14);border-radius:99px;padding:6px 9px;background:rgba(112,168,255,.04);color:#8ca8c2;font:700 8px/1 ui-monospace}.nexo-context-chip i{width:5px;height:5px;border-radius:50%;background:#53f3d5;box-shadow:0 0 8px #53f3d5}

/* Contextual focus beam when NEXO points to an element ---------- */
.nexo-focus-target{position:relative;z-index:84!important;box-shadow:0 0 0 1px rgba(83,243,213,.58),0 0 0 7px rgba(83,243,213,.07),0 0 45px rgba(83,243,213,.15)!important;transition:box-shadow .25s ease}.nexo-focus-label{position:fixed;z-index:85;padding:7px 9px;border-radius:9px;background:#071728;border:1px solid rgba(83,243,213,.35);color:#dffff9;font:800 8px/1 ui-monospace;letter-spacing:.08em;pointer-events:none;box-shadow:0 12px 30px rgba(0,0,0,.35)}

/* Auth / registration integration ------------------------------ */
.login-nexo-character{position:absolute;right:4%;bottom:4%;z-index:4;filter:drop-shadow(0 20px 30px rgba(0,0,0,.35))}.login-keyart-stack .login-ai{display:none}.game-login .login-story{position:relative}.auth-nexo-callout{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;padding:11px 12px;margin:14px 0;border:1px solid rgba(83,243,213,.16);border-radius:15px;background:linear-gradient(120deg,rgba(83,243,213,.06),rgba(112,168,255,.045))}.auth-nexo-callout p{margin:0;color:#b9ccdd;font-size:11px;line-height:1.45}.auth-nexo-callout strong{display:block;color:#dffff8;font-size:11px;margin-bottom:3px}.registration-nexo{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;padding:12px 14px;border:1px solid rgba(83,243,213,.15);border-radius:16px;background:rgba(7,19,34,.76);margin-bottom:16px}.registration-nexo p{margin:3px 0 0;color:#9eb5ca;font-size:11px;line-height:1.5}

/* Dialog/history sheet ----------------------------------------- */
.nexo-character-history{position:fixed;inset:0;z-index:120;background:rgba(1,5,12,.76);backdrop-filter:blur(6px);display:none;place-items:end center;padding:18px}.nexo-character-history.open{display:grid}.nexo-character-history-card{width:min(560px,100%);max-height:min(650px,82vh);overflow:auto;border:1px solid rgba(112,168,255,.22);border-radius:20px;background:#081425;box-shadow:0 28px 90px rgba(0,0,0,.62)}.nexo-history-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:rgba(8,20,37,.96);border-bottom:1px solid rgba(112,168,255,.13)}.nexo-history-head strong{font:900 11px/1 ui-monospace;letter-spacing:.1em}.nexo-history-list{display:grid;gap:8px;padding:13px}.nexo-history-item{display:grid;grid-template-columns:36px 1fr;gap:9px;padding:9px 10px;border:1px solid rgba(112,168,255,.1);border-radius:12px;background:rgba(112,168,255,.025)}.nexo-history-item .dot{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;border:1px solid rgba(83,243,213,.16);color:#70e8ff;font:900 9px/1 ui-monospace}.nexo-history-item p{margin:0;color:#b8ccdd;font-size:11px;line-height:1.48}.nexo-history-item small{display:block;margin-top:4px;color:#57728c;font-size:8px}

/* FX ----------------------------------------- */
.nexo-character-spark{position:fixed;z-index:84;width:5px;height:5px;border-radius:50%;pointer-events:none;background:#53f3d5;box-shadow:0 0 12px currentColor;animation:nexoSpark .85s ease-out forwards}.nexo-character-spark.gold{background:#ffd166}.nexo-character-spark.red{background:#ff637f}.nexo-character-shockwave{position:fixed;z-index:83;width:24px;height:24px;border:1px solid rgba(83,243,213,.7);border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);animation:nexoShock 1s ease-out forwards}.nexo-character-shockwave.gold{border-color:rgba(255,209,102,.8)}.nexo-character-shockwave.red{border-color:rgba(255,99,127,.85)}

/* Animation keyframes ------------------------------------------ */
@keyframes nexoHover{0%,100%{transform:translateY(0) rotate(-.35deg)}50%{transform:translateY(-8px) rotate(.55deg)}}
@keyframes nexoPlatformPulse{0%,100%{transform:scaleX(.9);opacity:.5}50%{transform:scaleX(1.08);opacity:.95}}
@keyframes nexoAuraSpin{to{transform:rotate(360deg)}}
@keyframes nexoJet{to{transform:scaleY(1.22);opacity:1}}
@keyframes nexoVoiceBar{to{transform:scaleY(.36);opacity:.6}}
@keyframes nexoTalkHead{to{transform:rotate(2deg) translateY(-1px)}}
@keyframes nexoGuideWave{0%,100%{transform:rotate(0)}35%{transform:rotate(-18deg)}68%{transform:rotate(8deg)}}
@keyframes nexoListenPulse{to{transform:scale(1.14);opacity:1}}
@keyframes nexoFaceScan{0%{transform:translateY(-40px)}100%{transform:translateY(40px)}}
@keyframes nexoAnalyzeTilt{to{transform:rotate(3deg) translateX(2px)}}
@keyframes nexoVictory{0%{transform:translateY(0) scale(1)}45%{transform:translateY(-23px) scale(1.09) rotate(2deg)}72%{transform:translateY(3px) scale(.98)}100%{transform:translateY(0) scale(1)}}
@keyframes nexoErrorShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px) rotate(-2deg)}75%{transform:translateX(6px) rotate(2deg)}}
@keyframes nexoUnlockAura{50%{transform:scale(1.12);opacity:.65}}
@keyframes nexoAlertRing{to{transform:scale(1.08);opacity:.35}}
@keyframes nexoPanelSweep{0%,70%{transform:translateX(-120%)}92%,100%{transform:translateX(120%)}}
@keyframes nexoLive{50%{opacity:.4;transform:scale(.78)}}
@keyframes nexoCaret{50%{opacity:0}}
@keyframes nexoPing{to{transform:scale(1.08)}}
@keyframes nexoSpark{to{transform:translate(var(--sx),var(--sy)) scale(.1);opacity:0}}
@keyframes nexoShock{to{width:180px;height:180px;opacity:0}}

/* Responsive ---------------------------------------------------- */
@media(max-width:900px){:root{--nexo-char-size:145px;--nexo-char-panel:320px}.nexo-character-root{right:13px;bottom:82px}.nexo-character-root.is-minimized .nexo-character-stage{transform:scale(.7)}.login-nexo-character{right:0;bottom:1%}}
@media(max-width:620px){:root{--nexo-char-size:124px;--nexo-char-panel:calc(100vw - 20px)}.nexo-character-root{right:10px;bottom:75px}.nexo-character-panel{border-radius:16px}.nexo-character-actions{grid-template-columns:1fr 1fr}.nexo-character-message p{font-size:11px}.nexo-character-stage{margin-right:1px}.login-nexo-character{position:relative;right:auto;bottom:auto;margin:0 auto;width:132px}.auth-nexo-callout{grid-template-columns:1fr;text-align:center}.registration-nexo{grid-template-columns:1fr;text-align:center}.nexo-inline-character.size-large{width:170px;height:190px}}
@media(prefers-reduced-motion:reduce){.nexo-character-svg,.nexo-character-stage:after,.nexo-character-svg .nexo-aura,.nexo-character-svg .nexo-jet,.nexo-character-panel:before,.nexo-character-live,.nexo-character-ping,.nexo-character-root.state-speaking .nexo-head-group,.nexo-character-root.state-speaking .nexo-arm-right,.nexo-character-root.state-analyzing .nexo-scan,.nexo-character-root.state-analyzing .nexo-head-group{animation:none!important}.nexo-character-root,.nexo-character-panel,.nexo-character-stage{transition:none!important}}
body.fx-lite .nexo-character-svg .nexo-aura,body.fx-lite .nexo-character-panel:before,body.fx-lite .nexo-character-stage:after{animation:none!important}body.fx-lite .nexo-character-svg{animation-duration:5s}body.fx-lite .nexo-character-root.state-analyzing .nexo-scan{display:none}

/* Teacher NEXO Lab --------------------------------------------- */
.nexo-lab-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(220px,.65fr);gap:20px;align-items:center}.nexo-lab-hero-character{display:grid;place-items:center;min-height:230px;border:1px solid rgba(83,243,213,.14);border-radius:22px;background:radial-gradient(circle at 50% 45%,rgba(83,243,213,.12),rgba(112,168,255,.035) 45%,transparent 72%)}.nexo-state-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}.nexo-state-card{position:relative;display:grid;justify-items:center;text-align:center;padding:14px 10px 12px;border:1px solid rgba(112,168,255,.13);border-radius:16px;background:rgba(7,18,33,.72);cursor:pointer;overflow:hidden;transition:.2s ease}.nexo-state-card:hover{transform:translateY(-3px);border-color:rgba(83,243,213,.36);box-shadow:0 15px 35px rgba(0,0,0,.23),0 0 30px rgba(83,243,213,.045)}.nexo-state-card strong{font-size:11px;letter-spacing:.07em}.nexo-state-card small{margin-top:4px;color:#6f8ba5;font-size:9px}.nexo-lab-console{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;margin-top:16px}.nexo-lab-console textarea{min-height:96px}.nexo-lab-buttons{display:grid;gap:7px;min-width:190px}.nexo-lab-note{margin-top:12px;color:#6f8aa2;font-size:10px;line-height:1.5}.nexo-api-list{display:grid;gap:8px;margin-top:12px}.nexo-api-row{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:9px 10px;border:1px solid rgba(112,168,255,.1);border-radius:11px;background:rgba(112,168,255,.025)}.nexo-api-row code{color:#79f1dc;font-size:10px}.nexo-api-row span{color:#8ea8c0;font-size:10px;line-height:1.45}
@media(max-width:900px){.nexo-state-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nexo-lab-hero{grid-template-columns:1fr}.nexo-lab-console{grid-template-columns:1fr}.nexo-lab-buttons{grid-template-columns:repeat(2,1fr);min-width:0}}
@media(max-width:520px){.nexo-state-grid{grid-template-columns:1fr 1fr}.nexo-state-card{padding:9px 6px}.nexo-lab-buttons{grid-template-columns:1fr}}

/* v0.8 integration refinements */
.teacher-quickbar{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1050px){.teacher-quickbar{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.teacher-quickbar{grid-template-columns:1fr}.topbar .nexo-character-launcher{width:32px;min-width:32px;padding:0;font-size:0;justify-content:center}.topbar .nexo-character-launcher:after{content:"N";font:900 10px/1 ui-monospace;color:#dffff9}.topbar .nexo-character-launcher i{display:none}}

/* ==============================================================
   MISIÓN NEXO v0.8.1 · HOTFIX TRANSPARENCIA DEL PERSONAJE
   El escenario flotante es un <button>. Algunos navegadores/capas
   de CSS conservan el fondo nativo del control y crean un rectángulo
   gris detrás de NEXO. Este reset mantiene la accesibilidad del botón
   sin permitir que el estilo nativo contamine el personaje.
   ============================================================== */
button.nexo-character-stage,
.nexo-character-stage {
  -webkit-appearance: none !important;
  appearance: none !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  min-width: 0 !important;
  max-width: none !important;
  color: inherit !important;
  font: inherit !important;
  line-height: normal !important;
  text-align: initial !important;
  -webkit-tap-highlight-color: transparent;
}
button.nexo-character-stage:hover,
button.nexo-character-stage:active,
button.nexo-character-stage:focus,
button.nexo-character-stage:focus-visible {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
}
button.nexo-character-stage::-moz-focus-inner {
  border: 0 !important;
  padding: 0 !important;
}
.nexo-character-stage > .nexo-character-svg,
.nexo-inline-character > .nexo-character-svg,
svg.nexo-character-svg {
  background: transparent !important;
  background-color: transparent !important;
}
/* Conservar únicamente el halo/estado diseñado por NEXO. */
.nexo-character-stage::after { pointer-events:none; }
