/* Asistente Naval IA local - v48.18 */
#asistenteNavalPanel{display:none;position:fixed;inset:0;z-index:180;background:var(--bg);color:var(--text);overflow:hidden}
#asistenteNavalPanel.ai-open{display:flex;flex-direction:column}
.ai-naval-shell{position:relative;display:flex;flex-direction:column;width:100%;height:100%;min-height:0;background:
 radial-gradient(circle at 50% 22%,color-mix(in srgb,var(--primario) 17%,transparent),transparent 31%),
 linear-gradient(180deg,color-mix(in srgb,var(--card) 82%,var(--primarioLight) 18%),var(--bg) 58%);overflow:hidden}
.ai-naval-shell:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.24;background-image:linear-gradient(color-mix(in srgb,var(--primario) 20%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--primario) 16%,transparent) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(to bottom,#000,transparent 60%)}
.ai-naval-head{position:relative;z-index:3;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:14px 14px 10px;border-bottom:1px solid color-mix(in srgb,var(--borde) 68%,transparent);backdrop-filter:blur(14px);background:color-mix(in srgb,var(--card) 76%,transparent)}
.ai-naval-back{border:0;background:var(--primarioLight);color:var(--textoAcento);border-radius:13px;padding:9px 12px;font-weight:900;cursor:pointer}
.ai-naval-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-width:0}
.ai-naval-title{min-width:0}.ai-naval-title small{display:block;font-size:9px;font-weight:900;letter-spacing:2px;color:var(--textoAcento);opacity:.86}.ai-naval-title b{display:block;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--textoAcento)}
.ai-naval-local-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid color-mix(in srgb,var(--primario) 34%,var(--borde));background:color-mix(in srgb,var(--primarioLight) 66%,transparent);color:var(--textoAcento);border-radius:999px;padding:7px 9px;font-size:9px;font-weight:1000;letter-spacing:.7px;white-space:nowrap}.ai-naval-local-chip:before{content:"";width:7px;height:7px;border-radius:50%;background:#1fd69a;box-shadow:0 0 10px #1fd69a}
.ai-naval-main{position:relative;z-index:2;flex:1;min-height:0;overflow:auto;padding:14px 14px 22px;-webkit-overflow-scrolling:touch}
.ai-naval-stage{max-width:620px;margin:0 auto;display:flex;flex-direction:column;align-items:center;text-align:center}
.ai-naval-context{max-width:92%;display:inline-flex;align-items:center;gap:7px;margin:2px auto 12px;padding:7px 11px;border:1px solid color-mix(in srgb,var(--primario) 23%,var(--borde));border-radius:999px;background:color-mix(in srgb,var(--card) 78%,transparent);font-size:10px;font-weight:850;color:var(--textoAcento);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-naval-context span{overflow:hidden;text-overflow:ellipsis}
.ai-naval-orb-wrap{position:relative;width:176px;height:176px;display:grid;place-items:center;margin:2px 0 5px}
.ai-naval-ring{position:absolute;border:1px solid color-mix(in srgb,var(--primario) 44%,transparent);border-radius:50%;inset:7px;opacity:.33}.ai-naval-ring.r2{inset:23px;opacity:.44}.ai-naval-ring.r3{inset:39px;opacity:.58}
.ai-naval-sweep{position:absolute;inset:15px;border-radius:50%;overflow:hidden;opacity:.35}.ai-naval-sweep:after{content:"";position:absolute;left:50%;top:50%;width:50%;height:2px;transform-origin:left center;background:linear-gradient(90deg,var(--primario),transparent);box-shadow:0 0 12px var(--primario);animation:aiNavalSweep 4.8s linear infinite}
.ai-naval-orb{position:relative;width:92px;height:92px;border-radius:50%;border:1px solid color-mix(in srgb,var(--primario) 62%,#fff 12%);background:radial-gradient(circle at 36% 30%,#d9ffff 0 4%,color-mix(in srgb,var(--primario) 74%,#74dfff) 16%,color-mix(in srgb,var(--primario2) 78%,#05192b) 58%,#03101c 100%);box-shadow:0 0 18px color-mix(in srgb,var(--primario) 50%,transparent),inset 0 0 22px #ffffff17;display:grid;place-items:center;cursor:pointer;color:#fff;outline:none;transition:transform .18s ease,box-shadow .18s ease}.ai-naval-orb:active{transform:scale(.96)}
.ai-naval-orb-core{width:25px;height:25px;border:2px solid #e7ffff;border-radius:50%;position:relative;box-shadow:0 0 14px #d8ffff}.ai-naval-orb-core:before,.ai-naval-orb-core:after{content:"";position:absolute;inset:5px;border:1px solid #e7ffff;border-radius:50%;opacity:.65}.ai-naval-orb-core:after{inset:10px;background:#fff;box-shadow:0 0 13px #fff}
.ai-naval-orb.is-loading{animation:aiNavalOrbLoad 1.35s ease-in-out infinite}.ai-naval-orb.is-listening{box-shadow:0 0 15px #21e7d6,0 0 48px #21e7d67a,inset 0 0 24px #ffffff1f;animation:aiNavalListen .82s ease-in-out infinite}.ai-naval-orb.is-thinking{animation:aiNavalThink .72s linear infinite}.ai-naval-orb.is-speaking{animation:aiNavalSpeak .42s ease-in-out infinite alternate;box-shadow:0 0 18px #63cfff,0 0 55px #63cfff78,inset 0 0 24px #ffffff25}
.ai-naval-orb.is-listening~.ai-naval-ring,.ai-naval-orb-wrap:has(.is-listening) .ai-naval-ring{animation:aiNavalPulse 1.1s ease-out infinite}.ai-naval-orb-wrap:has(.is-speaking) .ai-naval-ring{animation:aiNavalPulse .62s ease-out infinite}
@keyframes aiNavalSweep{to{transform:rotate(360deg)}}@keyframes aiNavalPulse{0%{transform:scale(.94);opacity:.62}100%{transform:scale(1.08);opacity:.06}}@keyframes aiNavalListen{50%{transform:scale(1.055)}}@keyframes aiNavalThink{to{transform:rotate(360deg)}}@keyframes aiNavalSpeak{to{transform:scale(1.075)}}@keyframes aiNavalOrbLoad{50%{filter:brightness(1.25);transform:scale(1.04)}}
.ai-naval-state{font-size:18px;font-weight:1000;color:var(--textoAcento);margin-top:0}.ai-naval-state-sub{min-height:32px;max-width:440px;margin:4px auto 8px;font-size:11px;line-height:1.45;opacity:.68}
.ai-naval-progress{display:none;width:min(88%,410px);height:6px;border-radius:999px;background:color-mix(in srgb,var(--borde) 70%,transparent);overflow:hidden;margin:5px auto 10px}.ai-naval-progress.visible{display:block}.ai-naval-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--primario),#62d8ff);box-shadow:0 0 12px color-mix(in srgb,var(--primario) 60%,transparent);transition:width .18s ease}
.ai-naval-primary{border:0;border-radius:14px;background:linear-gradient(135deg,var(--primario2),var(--primario));color:var(--sobrePrimario);padding:12px 20px;font-weight:1000;letter-spacing:.4px;box-shadow:0 8px 24px color-mix(in srgb,var(--primario) 28%,transparent);cursor:pointer}.ai-naval-primary[disabled]{opacity:.48;cursor:default;box-shadow:none}
.ai-naval-note{max-width:360px;margin:5px auto 0;font-size:9px;line-height:1.2;opacity:.58}.ai-naval-note[hidden]{display:none!important}
.ai-naval-controls{width:min(100%,560px);display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:13px auto 8px}.ai-naval-toggle{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--borde);border-radius:999px;background:color-mix(in srgb,var(--card) 82%,transparent);font-size:10px;font-weight:850}.ai-naval-toggle input{accent-color:var(--textoAcento)}
.ai-naval-chat{width:min(100%,560px);margin:10px auto 0;display:flex;flex-direction:column;gap:8px;text-align:left}.ai-naval-message{max-width:88%;padding:10px 12px;border-radius:15px;font-size:12px;line-height:1.48;white-space:pre-wrap;word-break:break-word;border:1px solid var(--borde);box-shadow:0 3px 12px #0000000c}.ai-naval-message.user{align-self:flex-end;background:var(--primario);color:var(--sobrePrimario);border-color:transparent;border-bottom-right-radius:5px}.ai-naval-message.assistant{align-self:flex-start;background:color-mix(in srgb,var(--card) 88%,transparent);border-bottom-left-radius:5px}.ai-naval-message.system{align-self:center;max-width:95%;background:color-mix(in srgb,var(--primarioLight) 58%,transparent);color:var(--textoAcento);font-size:10.5px;text-align:center}
.ai-naval-live{width:min(100%,560px);min-height:18px;margin:7px auto 0;font-size:11px;color:var(--textoAcento);font-weight:800;opacity:.76;text-align:center}
.ai-naval-composer{position:fixed;left:50%;transform:translateX(-50%);bottom:max(8px,env(safe-area-inset-bottom));z-index:8;width:min(calc(100% - 28px),540px);margin:0;display:flex;align-items:stretch;gap:8px;padding:8px;border:1px solid color-mix(in srgb,var(--borde) 76%,transparent);border-radius:18px;background:color-mix(in srgb,var(--bg) 92%,transparent);box-shadow:0 10px 30px rgba(0,0,0,.22);backdrop-filter:blur(14px)}.ai-naval-composer input{flex:1;min-width:0;border:1px solid var(--borde);background:var(--card);color:var(--text);border-radius:14px;padding:12px 13px;font-size:13px;outline:none}.ai-naval-composer input:focus{border-color:var(--textoAcento);box-shadow:0 0 0 3px color-mix(in srgb,var(--primario) 12%,transparent)}.ai-naval-send,.ai-naval-mic{flex:0 0 45px;width:45px;height:45px;border:0;border-radius:14px;display:grid;place-items:center;cursor:pointer}.ai-naval-send{background:var(--primario);color:var(--sobrePrimario);font-size:18px;font-weight:1000}.ai-naval-mic{background:color-mix(in srgb,var(--card) 88%,var(--primarioLight));color:var(--textoAcento);border:1px solid color-mix(in srgb,var(--primario) 28%,var(--borde))}.ai-naval-mic svg{width:19px;height:19px;fill:currentColor}.ai-naval-mic.is-listening{background:color-mix(in srgb,var(--primario) 22%,var(--card));box-shadow:0 0 0 3px color-mix(in srgb,var(--primario) 13%,transparent)}.ai-naval-send[disabled],.ai-naval-mic[disabled]{opacity:.4}
.ai-naval-reset{border:0;background:none;color:var(--gris);font-size:10px;font-weight:800;text-decoration:underline;cursor:pointer;margin:4px 0 2px}
.ai-menu-card{position:relative;overflow:hidden}.ai-menu-card:before{content:"";position:absolute;right:-26px;top:-45px;width:120px;height:120px;border-radius:50%;border:1px solid color-mix(in srgb,var(--primario) 22%,transparent);box-shadow:0 0 0 16px color-mix(in srgb,var(--primario) 5%,transparent),0 0 0 34px color-mix(in srgb,var(--primario) 3%,transparent);pointer-events:none}.ai-menu-card .ico{position:relative;background:radial-gradient(circle at 38% 32%,#e7ffff 0 7%,var(--primario) 20%,var(--primario2) 72%,#061827 100%);color:#fff;box-shadow:0 0 15px color-mix(in srgb,var(--primario) 30%,transparent)}
.ai-menu-card .ico:after{content:"";width:11px;height:11px;border:1px solid #fff;border-radius:50%;box-shadow:0 0 8px #fff}
@media(max-width:520px){.ai-naval-head{padding:10px}.ai-naval-main{padding:11px 11px 18px}.ai-naval-orb-wrap{width:152px;height:152px}.ai-naval-orb{width:82px;height:82px}.ai-naval-state{font-size:17px}.ai-naval-message{font-size:11.5px}.ai-naval-local-chip{padding:6px 8px}.ai-naval-title b{font-size:14px}}
@media(prefers-reduced-motion:reduce){.ai-naval-sweep:after,.ai-naval-orb,.ai-naval-ring{animation:none!important}}

/* ===== v48.18: progreso real, acceso flotante y UI compacta ===== */
.ai-naval-progress{display:none;width:min(94%,430px);height:auto;overflow:visible;margin:5px auto 7px;padding:8px 9px 7px;border:1px solid color-mix(in srgb,var(--primario) 22%,var(--borde));border-radius:13px;background:color-mix(in srgb,var(--card) 94%,var(--primarioLight));box-shadow:0 7px 18px rgba(3,39,59,.06)}
.ai-naval-progress.visible{display:block}
.ai-naval-progress-row{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:7px;font-size:9px;font-weight:900;letter-spacing:.35px;text-transform:uppercase;color:var(--textoAcento)}
.ai-naval-progress-row b{font-size:15px;line-height:1;color:var(--textoAcento);font-variant-numeric:tabular-nums}
.ai-naval-progress-track{height:8px;border-radius:999px;background:color-mix(in srgb,var(--borde) 72%,transparent);overflow:hidden}
.ai-naval-progress-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--primario),#62d8ff);box-shadow:0 0 12px color-mix(in srgb,var(--primario) 60%,transparent);transition:width .22s ease}
.ai-naval-progress small{display:block;min-height:15px;margin-top:6px;font-size:8.5px;line-height:1.35;text-align:left;opacity:.67}
.ai-menu-card{display:none!important}
.ai-menu-fab{position:fixed;right:max(18px,calc((100vw - 780px)/2 + 18px));bottom:max(22px,calc(env(safe-area-inset-bottom) + 18px));z-index:2147481800;display:none;width:56px;height:56px;align-items:center;justify-content:center;gap:3px;padding:0;border:1px solid color-mix(in srgb,var(--primario) 46%,#fff);border-radius:18px;background:linear-gradient(145deg,var(--primario2),var(--primario));color:var(--sobrePrimario);box-shadow:0 13px 30px color-mix(in srgb,var(--primario2) 24%,transparent),0 4px 10px rgba(2,26,44,.16),inset 0 0 18px rgba(255,255,255,.08);cursor:pointer;-webkit-tap-highlight-color:transparent;isolation:isolate;transition:transform .18s ease,filter .18s ease,opacity .18s ease}
.ai-menu-fab.visible{display:flex}
body.academia-bottom-nav-on .ai-menu-fab{bottom:max(88px,calc(env(safe-area-inset-bottom,0px) + 80px))}
.ai-menu-fab:active{transform:translateY(1px) scale(.98)}
.ai-menu-fab-scan{position:absolute;left:50%;top:50%;width:35px;height:35px;margin:-17.5px 0 0 -17.5px;border:1px solid rgba(255,255,255,.52);border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.95) 0 2px,transparent 3px 9px,rgba(117,239,255,.22) 10px 11px,transparent 12px),conic-gradient(from 35deg,transparent 0 78%,rgba(143,244,255,.72) 82%,transparent 88%);box-shadow:0 0 0 7px rgba(104,235,255,.08),0 0 15px rgba(79,225,255,.38);animation:aiFabSonar 4s linear infinite}
.ai-menu-fab-text{position:absolute;right:7px;bottom:7px;z-index:2;padding:2px 4px;border-radius:6px;background:rgba(0,15,29,.68);font-size:8px;font-weight:1000;letter-spacing:.4px}
.ai-menu-fab-pct{position:absolute;left:-10px;top:-9px;z-index:3;min-width:30px;padding:4px 5px;border:2px solid var(--card,#fff);border-radius:999px;background:#fff;color:#006c82;font-size:8px;font-weight:1000;line-height:1;text-align:center;box-shadow:0 5px 12px rgba(0,0,0,.2);font-variant-numeric:tabular-nums}
.ai-menu-fab.is-downloading .ai-menu-fab-scan{animation-duration:1.15s;box-shadow:0 0 0 8px rgba(104,235,255,.10),0 0 18px rgba(79,225,255,.58)}
.ai-menu-fab.is-ready .ai-menu-fab-pct{color:#087f23}
@keyframes aiFabSonar{to{transform:rotate(360deg)}}
@media(max-width:520px){.ai-menu-fab{right:max(16px,env(safe-area-inset-right));bottom:max(18px,calc(env(safe-area-inset-bottom) + 16px));width:56px;height:56px;border-radius:18px}.ai-menu-fab-scan{left:50%;top:50%;width:35px;height:35px}.ai-naval-progress{width:min(96%,430px)}}
@media(prefers-reduced-motion:reduce){.ai-menu-fab-scan{animation:none!important}}

.ai-naval-progress{padding:7px 9px 8px!important}.ai-naval-progress-row{margin-bottom:6px!important}.ai-naval-progress small,.ai-naval-note{display:none!important}

/* v47.99: modo fluido en movil. Evita animaciones y sombras costosas mientras habla. */
@media (max-width: 900px), (pointer: coarse){
  .ai-naval-orb.is-speaking{animation:none!important;box-shadow:0 0 18px rgba(99,207,255,.55),inset 0 0 18px rgba(255,255,255,.12)!important}
  .ai-naval-orb-wrap:has(.is-speaking) .ai-naval-ring{animation:none!important;opacity:.28}
  .ai-naval-orb.is-thinking{animation-duration:1.25s}
  .ai-naval-sweep:after{animation-duration:8s}
}


/* Estado textual del Asistente: siempre visible; sin mini frecuencia ni barras animadas. */
.ai-naval-local-chip .ai-naval-header-label{display:inline-block}

/* v48.18: Asistente minimizado como pestana vertical ultradelgada en el borde derecho. */
#asistenteNavalPanel.ai-collapsed{inset:0!important;width:100%!important;height:100dvh!important;background:transparent!important;pointer-events:none!important;overflow:visible!important;display:block!important}
#asistenteNavalPanel.ai-collapsed .ai-naval-shell{display:none!important}
.ai-naval-edge-tab{display:none;position:fixed;right:max(0px,env(safe-area-inset-right));top:50%;transform:translateY(-50%);width:28px;height:76px;padding:0;border:0;background:transparent;z-index:10020;cursor:pointer;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.ai-naval-edge-tab::before{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);width:7px;height:58px;border-radius:9px 0 0 9px;background:linear-gradient(180deg,color-mix(in srgb,var(--primario) 72%,#fff),var(--primario2));box-shadow:-2px 0 10px color-mix(in srgb,var(--primario) 30%,transparent),inset 1px 0 rgba(255,255,255,.35);transition:width .14s ease,filter .14s ease}
.ai-naval-edge-tab::after{content:"";position:absolute;right:2px;top:50%;transform:translateY(-50%);width:2px;height:18px;border-radius:99px;background:rgba(255,255,255,.76);opacity:.86}
#asistenteNavalPanel.ai-collapsed .ai-naval-edge-tab{display:block}
.ai-naval-edge-tab:hover::before,.ai-naval-edge-tab:focus-visible::before{width:9px;filter:brightness(1.08)}
.ai-naval-edge-tab:focus-visible{outline:2px solid var(--primario);outline-offset:-1px;border-radius:9px 0 0 9px}
.ai-naval-orb{touch-action:manipulation}
@media(max-width:520px){.ai-naval-edge-tab{width:26px;height:72px;top:48%}.ai-naval-edge-tab::before{width:6px;height:54px}.ai-naval-edge-tab::after{right:2px;height:16px}}

/* v48.18 audio/correcciones: compositor siempre visible sin reducir el boton Enviar */
.ai-naval-main{padding-bottom:86px}
@media(max-width:520px){.ai-naval-composer{width:calc(100% - 18px);bottom:max(6px,env(safe-area-inset-bottom));gap:7px;padding:7px}.ai-naval-send,.ai-naval-mic{flex-basis:45px;width:45px;height:45px}.ai-naval-main{padding-bottom:82px}}


/* Barra global superior removida: el progreso queda dentro del Asistente y en el FAB. */
.ai-download-dock{display:none!important}
