/* Experiencia del visor: pantalla de carga, modo presentación, atajos y arrastrar archivos. */

/* Pantalla de carga: cubre el visor mientras el motor prepara los materiales. */
.carga-visor{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:radial-gradient(120% 90% at 50% 40%,#12233a 0%,#0a111d 62%,#070b13 100%);color:#e7edf1;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;transition:opacity .45s ease,visibility 0s linear .45s}
.carga-visor.lista{opacity:0;visibility:hidden;pointer-events:none}
/* Si el módulo de experiencia no llegara a cargar, la pantalla inicial se retira sola. */
.carga-visor[data-inicial]{animation:carga-salida .4s ease 60s forwards}
@keyframes carga-salida{to{opacity:0;visibility:hidden;pointer-events:none}}
.carga-visor.breve{background:#0a111dcc;backdrop-filter:blur(6px)}
.carga-visor.breve .carga-marca,.carga-visor.breve strong{display:none}
.carga-marca{width:58px;height:58px;border-radius:14px;display:grid;place-items:center;font-size:30px;font-weight:700;color:#fff;background:linear-gradient(145deg,#3fa9ff,#1667d9);box-shadow:0 14px 40px #1667d955}
.carga-visor strong{font-size:15px;letter-spacing:.22em}
.carga-visor span{font-size:12px;color:#9fb4c4;letter-spacing:.04em;min-height:1.4em;text-align:center;max-width:min(520px,86vw)}
.carga-barra{width:min(260px,60vw);height:3px;border-radius:3px;background:#1b2c40;overflow:hidden}
.carga-barra i{display:block;width:38%;height:100%;border-radius:3px;background:linear-gradient(90deg,#3fa9ff,#59c9ff);animation:carga-avance 1.25s ease-in-out infinite}
.carga-visor.error .carga-barra{display:none}.carga-visor.error span{color:#ffb9a8}
@keyframes carga-avance{0%{transform:translateX(-110%)}100%{transform:translateX(290%)}}

/* Modo Presentación: el modelo con la barra superior (modo, ambiente) y la navegación. Lo técnico se retira.
   En pantalla completa queda solo el modelo. */
.app.modo-presentacion>.ui-ribbon,.app.modo-presentacion>.status{display:none!important}
.app.modo-presentacion :is(.ui-rail,.ui-canvas-badge,.ui-ribbon-overflow,.precision-bar,.trillas-tools-menu,.precision-options,.precision-measure,.precision-tip,#precisionOverlay,.hud,.hint,.legend,.floating,.trillas-quick,.wall-xyz-float,.maestro-station-btn,.maestro-guide){display:none!important}
.app.modo-presentacion.pantalla-completa{grid-template-rows:0 0 minmax(0,1fr) 0!important}
.app.modo-presentacion.pantalla-completa>.topbar,.app.modo-presentacion.pantalla-completa .navigation{display:none!important}
.presentacion-salida{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:40;display:flex;align-items:center;gap:10px;padding:8px 10px 8px 16px;border-radius:999px;background:#0d1826e6;border:1px solid #35506a;color:#cfe0ec;font-size:12px;box-shadow:0 12px 40px #0008;transition:opacity .5s ease}
.presentacion-salida[hidden]{display:none}
.presentacion-salida.tenue{opacity:0;pointer-events:none}
.presentacion-salida button{height:28px;padding:0 12px;border-radius:999px;font-size:11px;background:#16314a;border:1px solid #3f6485;color:#e2f1fb;cursor:pointer}
.presentacion-salida button:hover{background:#1d4263}
:is(.ayuda-atajos,.presentacion-salida) kbd{display:inline-block;min-width:22px;padding:2px 6px;border-radius:5px;border:1px solid #47617a;border-bottom-width:2px;background:#14263a;color:#e6f2fa;font:600 11px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;text-align:center}

/* Panel de atajos. */
.ayuda-atajos{position:absolute;inset:0;z-index:60;display:grid;place-items:center;background:#060a11b8;backdrop-filter:blur(4px)}
.ayuda-atajos[hidden]{display:none}
.ayuda-caja{width:min(760px,calc(100% - 28px));max-height:calc(100% - 28px);overflow:auto;border-radius:14px;background:#0d1826;border:1px solid #2f4962;box-shadow:0 24px 80px #000a;color:#dbe8f1}
.ayuda-caja header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #223850}
.ayuda-caja header b{font-size:13px;letter-spacing:.16em}
.ayuda-caja header button{width:30px;height:30px;padding:0;border-radius:8px}
.ayuda-grupos{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:6px 26px;padding:16px 20px 20px}
.ayuda-grupos h4{margin:10px 0 8px;font-size:10px;letter-spacing:.14em;color:#7fa3bd;font-weight:700}
.ayuda-grupos dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:7px 12px;align-items:center;font-size:12px}
.ayuda-grupos dt{white-space:nowrap}.ayuda-grupos dd{margin:0;color:#b9cbd8}
.ayuda-pie{padding:0 20px 16px;font-size:11px;color:#8ba3b5}
.navigation .ayuda-boton{min-width:34px}

/* Arrastrar y soltar archivos sobre el visor. */
.soltar-archivo{position:absolute;inset:14px;z-index:55;display:grid;place-items:center;border:2px dashed #59c9ff;border-radius:18px;background:#0a1626d9;color:#e3f3fd;pointer-events:none;text-align:center}
.soltar-archivo[hidden]{display:none}
.soltar-archivo b{display:block;font-size:17px;letter-spacing:.06em;margin-bottom:8px}
.soltar-archivo small{font-size:12px;color:#9fc0d6}

/* Medidas del elemento seleccionado, en la barra de estado. */
#medidasSeleccion{color:#9fd3ee;font-variant-numeric:tabular-nums;white-space:nowrap}
#medidasSeleccion[hidden]{display:none}

/* El indicador de colisión es también su interruptor. */
.hud .candado-colision{pointer-events:auto;cursor:pointer;padding:3px 7px;margin:-3px -7px;border-radius:6px;transition:background .15s}
.hud .candado-colision:hover,.hud .candado-colision:focus-visible{background:#2a4a66;outline:none}

/* Imagen de referencia de la capa seleccionada. */
.referencia-capa{position:absolute;right:14px;bottom:160px;z-index:30;margin:0;width:150px;padding:6px;border-radius:12px;background:#0f1c2ee6;border:1px solid #2a4460;box-shadow:0 8px 24px #0006;cursor:zoom-in}
.referencia-capa[hidden]{display:none}
.referencia-capa img{display:block;width:100%;max-height:150px;object-fit:contain;border-radius:8px;background:#fff}
.referencia-capa figcaption{margin-top:5px;font-size:10px;letter-spacing:.06em;color:#b9cbd8;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.referencia-capa.amplia{width:min(420px,60%);cursor:zoom-out}
.referencia-capa.amplia img{max-height:60vh}
.app.modo-presentacion .referencia-capa{display:none}

@media(prefers-reduced-motion:reduce){.carga-barra i{animation:none;width:100%}.carga-visor,.presentacion-salida{transition:none}}
