#viewer{position:fixed;left:0;right:0;bottom:0;top:var(--hdr);background:var(--viewer-bg)}
#viewer canvas{display:block;width:100%;height:100%;touch-action:none}

#viewerHist .hist-save{position:relative}
#viewerHist .hist-save.sin-guardar::after{content:"";position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--surface)}
.hist-btn[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.visor-cotas{position:fixed;right:12px;bottom:64px;z-index:9;padding:3px 9px;border-radius:999px;font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);pointer-events:none}
body[data-page] .visor-cotas,body.perm-loading .visor-cotas{display:none}
body[data-page] :is(#viewerHist,#hdrVista),body.perm-loading :is(#viewerHist,#hdrVista),body.no-snapper.no-bases.no-placas.no-sellos :is(#viewerHist,#hdrVista){display:none}
.estado-vacio{position:fixed;top:calc(var(--hdr) + (100% - var(--hdr)) / 2);left:50%;transform:translate(-50%,-50%);z-index:8;width:min(340px,calc(100vw - 32px));padding:18px;display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.estado-vacio h2{font-size:17px}
.ev-acciones{display:flex;flex-direction:column;gap:8px;margin-top:8px}
body[data-page] .estado-vacio,body.no-bases.no-proyectos .estado-vacio,body.perm-loading .estado-vacio,body.no-bases .ev-btn:not([data-view]),body.no-proyectos .ev-btn[data-view]{display:none}
@media (max-width:760px),(max-height:500px) and (max-width:960px){.estado-vacio{top:calc(var(--hdr) + 56px);z-index:11;transform:translateX(-50%);padding:14px}}
.cubo-vista{--cubo:60px;position:fixed;top:calc(var(--hdr) + 8px);right:max(56px,env(safe-area-inset-right,0px));z-index:9;display:grid;place-items:center;width:calc(var(--cubo) * 1.75);height:calc(var(--cubo) * 1.75);pointer-events:none}
.cubo-encajar{position:absolute;top:0;left:0;width:30px;height:30px;pointer-events:auto;background:var(--surface);box-shadow:var(--shadow)}
.cubo-cuerpo{position:relative;width:var(--cubo);height:var(--cubo);transform-style:preserve-3d;pointer-events:auto}
.cubo-cara{position:absolute;inset:0;display:grid;grid-template-columns:13px 1fr 13px;grid-template-rows:13px 1fr 13px;background:var(--surface);border:1px solid var(--line-strong);backface-visibility:hidden}
.cubo-cara[data-cara="frente"]{transform:translateZ(calc(var(--cubo) / 2))}
.cubo-cara[data-cara="atras"]{transform:rotateY(180deg) translateZ(calc(var(--cubo) / 2))}
.cubo-cara[data-cara="dcha"]{transform:rotateY(90deg) translateZ(calc(var(--cubo) / 2))}
.cubo-cara[data-cara="izq"]{transform:rotateY(-90deg) translateZ(calc(var(--cubo) / 2))}
.cubo-cara[data-cara="arriba"]{transform:rotateX(90deg) translateZ(calc(var(--cubo) / 2))}
.cubo-cara[data-cara="abajo"]{transform:rotateX(-90deg) translateZ(calc(var(--cubo) / 2))}
.cubo-cara:is([data-cara="dcha"],[data-cara="izq"],[data-cara="atras"]){background:color-mix(in srgb,var(--surface) 82%,var(--line-strong))}
.cubo-cara:is([data-cara="frente"],[data-cara="abajo"]){background:color-mix(in srgb,var(--surface) 92%,var(--line-strong))}
.cubo-zona{display:block;min-width:0;cursor:pointer}
.cubo-centro{display:grid;place-items:center;padding:0;border:0;background:none;color:var(--ink);font:700 9.5px var(--f-body);letter-spacing:-.01em;white-space:nowrap;text-transform:uppercase;cursor:pointer}
.cubo-zona:hover{background:var(--accent-soft);color:var(--accent)}
.cubo-centro:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
body[data-page] .cubo-vista,body.perm-loading .cubo-vista,body.no-snapper.no-bases.no-placas.no-sellos .cubo-vista,body:has(#estadoVacio:not([hidden])) .cubo-vista{display:none}
