/* @cpi 2026-10-12 19:20: estilos limitados al salón de plano social; el resto conserva su maqueta. */
#room[data-theme="luna2"]{width:2400px;height:2704px;background-image:url('assets/social/luna2-clean.png');background-size:2400px 1352px;background-repeat:no-repeat}
#room[data-theme="luna2"]:before,#room[data-theme="luna2"]:after,#room[data-theme="luna2"]>#machines,#room[data-theme="luna2"]>.room-system-clock,#room[data-theme="luna2"]>.cola-ground-contact{display:none!important}
#room[data-theme="luna2"]>.room-prop{opacity:0!important}
#room[data-theme="luna2"]>.room-prop[data-prop="jukebox"]{left:2080px!important;top:429px!important;width:132px!important;height:192px!important;z-index:1300!important}
#room[data-theme="luna2"]>.room-prop[data-prop="cola"]{left:2310px!important;top:708px!important;width:82px!important;height:294px!important;z-index:1300!important}
#room[data-theme="luna2"]>.jukebox-music{left:2080px!important;top:400px!important;width:132px!important;height:192px!important;z-index:1301!important}
.social-scene{position:absolute;left:0;top:0;width:1671px;height:1882px;transform:scale(1.4362657);transform-origin:0 0;isolation:isolate}
.social-floor{z-index:1;position:absolute!important;inset:0!important;width:100%!important;height:100%!important;border:0!important;background:none!important;box-shadow:none!important;cursor:default}
.social-machine{position:absolute!important;border:0!important;padding:0!important;background:none!important;box-shadow:none!important;border-radius:4px;z-index:2;cursor:pointer}
.social-machine:hover,.social-machine:focus-visible{outline:2px solid #f0d295;outline-offset:1px;background:#f7cf6011!important}
.social-screen{position:absolute;left:0;top:0;width:100px;height:100px;transform-origin:0 0;object-fit:fill;pointer-events:none;z-index:3;background:#000}
.social-seats,.social-figures,.social-bubbles{position:absolute;inset:0;pointer-events:none}
.social-seats{z-index:5}.social-figures{z-index:6}.social-bubbles{z-index:10}
.social-seat{position:absolute!important;border:1px solid #dfdcba70!important;border-radius:50%!important;padding:0!important;background:#17141835!important;box-shadow:none!important;pointer-events:auto;cursor:pointer;transform:scaleY(.6);transition:background .15s,border-color .15s}
.social-seat:after{content:'+';color:#fae5b7;font:23px system-ui;text-shadow:0 1px 3px #000}
.social-seat:hover,.social-seat:focus-visible{background:#e4ca9566!important;border-color:#fff0b0!important}
.social-seat:disabled{opacity:0;pointer-events:none}
.social-person{position:absolute;pointer-events:none;transform-origin:50% 100%}
.social-person.disconnected{opacity:.4}.social-person.at-machine{cursor:pointer;pointer-events:auto}
.social-nick{position:absolute;top:35%;left:50%;transform:translateX(-50%);max-width:145%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 var(--label-size,11px)/1.3 'Segoe UI',sans-serif;color:#64132d;background:#e9e2bdde;padding:2px 5px;border:1px solid #968c7480;border-radius:2px;box-shadow:0 1px 2px #0003;z-index:2}
.social-occluder{position:absolute;inset:0;z-index:7;pointer-events:none;background:url('assets/social/luna2-clean.png') 0 0/1671px 941px no-repeat}
/* @cpi 2026-10-16 13:00: reducir la letra de los bocadillos del salon sin alterar el panel de chat. */
.social-speech{position:absolute;transform:translate(-50%,-100%);width:max-content;max-width:180px;padding:8px 10px;border-radius:10px 10px 10px 2px;background:#fff5dd;color:#342c2b;font:10px/1.3 'Segoe UI',sans-serif;overflow-wrap:anywhere;box-shadow:0 3px 10px #0007;box-sizing:border-box}
.social-help{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);z-index:3;background:#171a21e8;border:1px solid #b9a27366;border-radius:8px;padding:8px 12px;display:flex;gap:12px;align-items:center;color:#e9daba;font:12px/1.35 'Segoe UI',sans-serif;max-width:calc(100% - 120px);width:max-content;box-sizing:border-box}
.social-stand{background:#e1ce9f;color:#29221a;border:1px solid #ae9562;border-radius:5px;padding:7px 13px;white-space:nowrap;font:600 13px 'Segoe UI',sans-serif;cursor:pointer}
.social-stand[hidden]{display:none}
body:has(dialog[open]) .social-help{visibility:hidden}
@media(max-width:600px){.social-help{bottom:54px;max-width:calc(100% - 28px);font-size:11px;padding:6px 9px}}

/* @cpi 2026-10-12 19:27: nombres por encima de las mesas sin sacar el cuerpo del asiento. */
.social-name-overlay{top:auto;max-width:130px;pointer-events:none}.social-person strong[hidden]{display:none}

/* @cpi 2026-10-12 19:35: figura de espaldas y marcadores compartidos, adaptados al plano. */
.social-machine .machine-score{position:absolute!important;left:50%!important;top:-15px!important;bottom:auto!important;transform:translateX(-50%)!important;width:80px!important;height:14px!important;max-width:none;background:#111b}
.social-machine .machine-watchers{position:absolute!important;top:100%!important;bottom:auto!important;left:0!important;transform:scale(.55);transform-origin:top left}

/* @cpi 2026-10-12 19:58: punta visible hacia la cabeza y texto largo acotado dentro del bocadillo. */
.social-speech:after{content:'';position:absolute;left:50%;top:100%;transform:translateX(-50%);border:8px solid transparent;border-top-color:#fff5dd;border-bottom:0}
.social-speech-text{display:block;max-height:99px;overflow:hidden}

/* @cpi 2026-10-12 20:10: cuatro pasos y dos vistas por personaje; el nick no se refleja al cambiar de dirección. */

/* @cpi 2026-10-12 20:10: al detenerse conserva el mismo personaje del ciclo de pasos. */

/* @cpi 2026-10-12 20:50: el atlas recortado y su pantalla quedan dentro del mismo objeto ordenado en profundidad. */
.social-cabinet-art{position:absolute;inset:0;overflow:hidden;pointer-events:none;filter:drop-shadow(0 3px 2px #0007)}
.social-cabinet-image{position:absolute;max-width:none!important;object-fit:fill;pointer-events:none}

/* @cpi 2026-10-12 21:34: las posturas comparten el atlas elegido por la cuenta. */
.social-body{position:absolute;inset:0;opacity:.8;background:var(--figure-color,#66ff75);clip-path:var(--silhouette-clip);mask-image:var(--silhouette-art);mask-size:var(--silhouette-size);mask-position:var(--silhouette-position);mask-repeat:no-repeat}
/* @cpi 2026-10-13 22:15: balanceo anclado a los pies, sin mover el nombre ni el punto de colisión. */
.social-person.walking .social-body{transform-origin:50% 97%;transform:translateY(var(--walk-bob,0%)) rotate(var(--walk-lean,0deg)) scaleX(var(--walk-flip,1))}
.social-person.walking::before{content:"";position:absolute;left:29%;bottom:1%;width:42%;height:5%;border-radius:50%;background:#07140b35;filter:blur(1px)}

/* @cpi 2026-10-12 22:01: segundo panel ilustrado añadido por debajo, sin reescalar el fondo original. */
.social-vip{z-index:2;position:absolute;left:0;top:941px;width:1671px;height:941px;background:url('assets/social/luna2-vip-lounge.png') 0 0/100% 100% no-repeat;pointer-events:none}
.vip-cabinets{position:absolute;left:337px;top:252px;display:flex;gap:0;width:1008px;align-items:flex-end;pointer-events:none}
.vip-machine{position:relative!important;flex:0 0 112px;width:112px!important;height:168px!important;border:0!important;padding:0!important;background:transparent!important;box-shadow:none!important;cursor:zoom-in;pointer-events:auto;z-index:4;filter:drop-shadow(0 4px 2px #0009)}
.vip-machine:hover,.vip-machine:focus-visible{outline:2px solid #efcf84;outline-offset:2px;border-radius:3px}
.vip-cabinet{position:relative;display:block;width:100%;height:100%;pointer-events:none}
.vip-cabinet-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;max-width:none!important}
.vip-cabinet-poster{position:absolute;object-fit:contain;background:#030506;border-radius:1px;max-width:none!important}
.vip-exhibit{padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;width:min(64dvh,92vw)!important;height:92dvh!important;max-width:96vw!important;max-height:94dvh!important;overflow:visible!important}
.vip-exhibit::backdrop{background:#080908e8;backdrop-filter:blur(5px)}
.vip-exhibit .vip-cabinet{height:min(calc(92dvh - 32px),138vw);width:auto;aspect-ratio:2/3;margin:auto}
.vip-exhibit-close{position:absolute;right:0;top:0;z-index:2;width:44px;height:44px;border:1px solid #ae965e;border-radius:7px;background:#171b1c;color:#f0dbb4;font:28px/1 sans-serif;cursor:pointer}
.vip-exhibit-label{display:block;text-align:center;color:#e6d3a4;font:600 13px/30px 'Segoe UI',sans-serif;letter-spacing:1px}
.vip-retry{pointer-events:auto;color:#efd99f;background:#29241b;border:1px solid #9a7a3e;padding:12px}

/* @cpi 2026-10-12 22:18: accion real en la coleccion, pendiente hasta instalar ROM. */
.vip-play{position:absolute;bottom:48px;left:12%;width:76%;padding:14px;border:1px solid #ae965e;border-radius:7px;background:#171b1cf2;color:#f0dbb4;font:600 15px system-ui;cursor:pointer}.vip-play:disabled{cursor:default;color:#c8c1ac}

/* @cpi 2026-10-12 22:13: recorte del tablero VIP para integrar a los sentados. */
.vip-table-cover{background-image:url("assets/social/luna2-vip-lounge.png")}

/* @cpi 2026-10-12 23:40: inscripción sobre el suelo de la isla central; no intercepta clics ni altera el mapa. */
#room[data-theme="luna2"] .social-scene::after{content:"MÁQUINAS DE LA SEMANA";position:absolute;left:620px;top:462px;width:380px;height:58px;display:flex;align-items:center;justify-content:center;box-sizing:border-box;border-top:1px solid #bda36d9c;border-bottom:1px solid #bda36d9c;color:#e8ce94;font:600 20px/1.2 Georgia,"Times New Roman",serif;letter-spacing:1.6px;text-shadow:0 1px 1px #392c20;transform:perspective(500px) rotateX(48deg);transform-origin:center;pointer-events:none;z-index:0}

/* @cpi 2026-10-12 23:48: solo sustituye el rótulo de la pared, preservando los píxeles del resto del salón. */
#room[data-theme="luna2"] .social-scene::before{content:"";position:absolute;left:582px;top:0;width:425px;height:178px;background:url("assets/social/usuarcade-sign-small.png") -582px 0/1671px 941px no-repeat;pointer-events:none;z-index:0}

/* @cpi 2026-10-12 23:50: rótulo reducido, manteniendo el encuadre del muro. */

/* @cpi 2026-10-13 00:10: amarillo para identificar al jugador colocado en una maquina. */
.social-person.at-machine .social-body{background:var(--figure-color,#ffe43b)}

/* @cpi 2026-10-13 12:23: el cartel del borrador sustituye al pseudo-elemento del plano fijo. */
#room[data-editor-map] .social-scene::before{display:none!important}

/* @cpi 2026-10-13 16:33: anclajes opcionales del bar; sólo mapas editados con posiciones explícitas. */
#room[data-editor-map]>.room-prop[data-prop="jukebox"]{left:var(--map-jukebox-x,2080px)!important;top:var(--map-jukebox-y,429px)!important;width:var(--map-jukebox-w,132px)!important;height:var(--map-jukebox-h,192px)!important}
#room[data-editor-map]>.room-prop[data-prop="cola"]{left:var(--map-cola-x,2310px)!important;top:var(--map-cola-y,708px)!important;width:var(--map-cola-w,82px)!important;height:var(--map-cola-h,294px)!important}
#room[data-editor-map]>.jukebox-music{left:var(--map-jukebox-x,2080px)!important;top:calc(var(--map-jukebox-y,429px) - 29px)!important;width:var(--map-jukebox-w,132px)!important;height:var(--map-jukebox-h,192px)!important}

/* @cpi 2026-10-14 19:00: en mapas editados los pies de cada persona se comparan con el orden de cada mueble, sin una capa padre que los encierre por debajo. Las ayudas de asiento y chat permanecen visibles. */
#room[data-editor-map] .social-figures{z-index:auto}
#room[data-editor-map] .social-seats{z-index:100000}
#room[data-editor-map] .social-bubbles{z-index:100001}

/* @cpi 2026-10-15 13:17: herramientas del administrador por encima del decorado y fuera del panning. */
.room-map-selection{position:absolute;box-sizing:border-box;border:2px solid #62cfff;z-index:200000;cursor:move;touch-action:none}
.room-map-selection>span{position:absolute;bottom:100%;left:0;background:#102432;color:#e5f7ff;padding:5px 9px;white-space:nowrap;font:14px sans-serif;pointer-events:none}
.room-map-resize{position:absolute;right:-14px;bottom:-14px;width:28px;height:28px;border:2px solid white;border-radius:5px;background:#197397;color:white;cursor:nwse-resize;touch-action:none}
.room-map-apply{position:fixed;bottom:18px;left:18px;z-index:200001;padding:13px 20px;border:1px solid #8adfff;border-radius:10px;background:#123947;color:#fff;box-shadow:0 4px 18px #0009;font-weight:bold;cursor:pointer}
.room-map-seat-guides{position:absolute;inset:0;z-index:200002;pointer-events:none}
.room-map-seat-guides button{position:absolute;transform:translate(-50%,-50%);width:30px;height:30px;border:1px solid #fff;border-radius:50%;background:#173c50;color:#8ae3ff;pointer-events:auto;cursor:move}
.room-map-selection[hidden],.room-map-apply[hidden],.room-map-seat-guides[hidden],.room-map-resize[hidden]{display:none!important}

/* @cpi 2026-10-15 13:17: tiradores legibles incluso con el salón reducido al 22%. */
.room-map-selection{border-width:calc(2 * var(--edit-unit,1px))}
.room-map-selection>span{font-size:calc(14 * var(--edit-unit,1px));padding:calc(5 * var(--edit-unit,1px)) calc(9 * var(--edit-unit,1px))}
.room-map-resize{right:calc(-14 * var(--edit-unit,1px));bottom:calc(-14 * var(--edit-unit,1px));width:calc(28 * var(--edit-unit,1px));height:calc(28 * var(--edit-unit,1px));font-size:calc(18 * var(--edit-unit,1px))}
.room-map-seat-guides button{width:calc(30 * var(--edit-unit,1px));height:calc(30 * var(--edit-unit,1px));font-size:calc(16 * var(--edit-unit,1px))}

/* @cpi 2026-10-18 17:15: silueta de grupo en luna2: acompañantes a los lados y detras de la figura principal; «×N» en el rotulo. */
.social-body.group-extra{z-index:-1;opacity:.55;scale:.92;transform-origin:50% 100%}
.social-body.group-extra.side-0{translate:-38% -2%}
.social-body.group-extra.side-1{translate:38% -2%}
.social-name-overlay.group-count{letter-spacing:.04em;padding:2px 7px}
