/* Partida: un único plano de 541 unidades mantiene exactas las casillas de Titanium. */
.in-game{height:100dvh;overflow:hidden;display:flex;flex-direction:column;background:radial-gradient(at 90% 10%,#a5597940,transparent 50%),linear-gradient(125deg,#153b52,#243951 65%,#44324b)}
.in-game .app-header{height:76px;flex-shrink:0;padding:4px 22px}.in-game .brand img{height:64px;width:58px}.in-game #header-actions{display:flex;gap:8px}
.game-view{flex:1;min-height:0;padding:12px 18px 16px;max-width:1640px;width:100%;margin:auto}.game-pages{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,32%);gap:20px;height:100%;min-height:0}
.game-board-page{display:flex;flex-direction:column;min-height:0;min-width:0;align-items:stretch;gap:8px}.game-caption{display:flex;justify-content:space-between;align-items:center;color:#f4dbb2;font-size:13px;min-height:24px;gap:10px}.game-caption strong{font-family:Georgia,serif;font-size:22px}.game-caption span{color:#ddd2e8;font-size:12px}
.board-space{flex:1;min-height:140px;min-width:0;display:flex;align-items:center;justify-content:center;container-type:size}.play-board{position:relative;width:min(100cqw,100cqh);height:min(100cqw,100cqh);aspect-ratio:1;box-shadow:0 0 0 3px #eac488,0 12px 45px #061a2b55;background:#fff;border-radius:2px;isolation:isolate}
.play-board-image{width:100%;height:100%;display:block;pointer-events:none;user-select:none}.board-players,.board-pieces{position:absolute;inset:0;pointer-events:none}.board-player{position:absolute;width:17%;text-align:center;display:flex;align-items:center;flex-direction:column;gap:2px;z-index:1}.board-player .avatar{width:90%;height:auto;aspect-ratio:1;border:2px solid #fff8;border-radius:17%;object-fit:cover;box-shadow:0 2px 8px #071a4d44}.board-player strong{color:white;background:#142b43eb;max-width:150%;border-radius:4px;padding:2px 6px;font-size:clamp(8px,1.1vw,14px);line-height:1.1;overflow-wrap:anywhere;z-index:2}.board-player.has-turn .avatar{outline:3px solid #ffe0a0;outline-offset:2px;box-shadow:0 0 18px #ffeeba}.board-player.fallen .avatar{transform:rotate(90deg);filter:grayscale(1);opacity:.6}
.piece{position:absolute;width:4.806%;height:4.806%;border:0;border-radius:50%;padding:0;background:transparent;pointer-events:auto;z-index:4;touch-action:manipulation}.piece img{width:100%;height:100%;display:block;pointer-events:none}.piece:disabled{opacity:1;cursor:default}.piece:hover{border:0}.piece.selectable{outline:2px solid white;box-shadow:0 0 0 4px var(--piece-color),0 0 15px #0008;z-index:6;cursor:pointer;animation:piece-choice 1.2s ease-in-out infinite}.piece.selectable:hover{transform:none}
.game-dice{position:absolute;left:42%;top:43%;width:16%;height:15%;display:flex;gap:5%;align-items:center;z-index:3;pointer-events:none}.die{width:48%;aspect-ratio:1;padding:0;background:transparent;border:0;border-radius:8px;pointer-events:auto}.die img{width:100%;display:block;filter:drop-shadow(0 3px 3px #0005)}.die:disabled{opacity:1;cursor:default}.die.spent{opacity:.48}.die.selected{outline:3px solid #ffd57d;outline-offset:2px}.die:not(:disabled){cursor:pointer}
.game-action-bar{display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;color:white;flex-shrink:0}.game-action-hint{font-size:13px;line-height:1.3;max-width:65%;text-align:center}.game-action-bar .primary{background:linear-gradient(130deg,#4d486b,#805275);border-color:#e4c187;min-height:44px;box-shadow:0 4px 16px #090f2133}.game-action-bar .icon-button{background:#ffffff12;color:#e8d6af;border-color:#bc9c6755}
.game-log{flex:0 0 76px;max-height:100px;overflow:auto;border:1px solid #d0af7955;border-radius:10px;background:#fffaf4f5;color:#3c3650;padding:7px 14px;text-align:center;font-size:var(--chat-size);line-height:1.22;overscroll-behavior:contain}.game-log p{margin:2px 0}.game-board-page>.chat-follow-new{padding:4px;font-size:11px}
.game-chat-page{display:flex;flex-direction:column;min-height:0;min-width:0;background:#fff;border:1px solid #ddd1e4;border-radius:18px;overflow:hidden;box-shadow:0 12px 35px #15233326}.game-chat-tabs{display:flex;gap:6px;align-items:center;padding:10px;background:linear-gradient(110deg,#f7edf5,#eef7ff);border-bottom:1px solid #e9e1ed}.game-chat-tabs button{padding:9px 14px;background:transparent;border:1px solid transparent;color:#796384;flex:1;font-size:13px}.game-chat-tabs [aria-selected=true]{border-color:#c4aacb;color:#593b6f;background:white}.game-chat-tabs .return-board{display:none}.game-chat-log{flex:1;min-height:0}.game-chat-page .composer{border-radius:0 0 18px 18px}.game-chat-page .chat-follow-new{padding:6px;font-size:12px}
.game-dialog{width:min(560px,94vw);padding:24px;background:linear-gradient(150deg,#fffaff,#f6f6fc);border-color:#d4adcb}.game-dialog header h2{font-size:28px}.game-dialog-content>.eyebrow{display:block;margin:10px 0}.confirmation-players{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.participant{display:grid;grid-template-columns:48px minmax(0,1fr);column-gap:10px;padding:12px;border:1px solid #e3d7e8;border-left:4px solid var(--seat-color,#c69e7a);border-radius:12px;background:white;text-align:left;align-items:center}.participant .avatar{width:44px;height:44px;border-radius:9px;grid-row:span 2}.participant strong{font-size:13px;overflow-wrap:anywhere}.participant small{font-size:11px;color:#8b798a}.conditions-form{display:flex;flex-direction:column;margin:14px 0}.condition{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 4px;border-bottom:1px solid #eae0eb;font-size:14px}.condition input{margin:0!important;width:20px;height:20px;accent-color:#806185}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.confirm-countdown{font-size:12px;color:#8d7189}.game-menu{display:grid;gap:10px}.game-menu button{text-align:left}.game-menu .check{margin:5px 0}.spectator-list{display:grid;gap:10px}
.seat{cursor:pointer}.seat:focus-visible{outline:3px solid #ffe19a}.seat.empty-seat{display:flex;background:transparent}.seat.empty-seat .avatar{background:#ffffff99;border:2px dashed #604760aa;color:#604760;font-size:24px}.seat.empty-seat .avatar:before{content:'+'}.seat.empty-seat .avatar{font-size:0}.seat.empty-seat .avatar:before{font-size:24px}.salon-seat-actions{display:flex;gap:7px;align-items:center}.salon-seat-actions button{padding:6px 12px;font-size:12px;background:#ffffffec;border-color:#edd3a0;color:#624469}
/* Tarjetas con el mismo principio visual que Mus: imagen integrada y datos sobre fondo profundo. */
.room-card{position:relative;isolation:isolate;min-height:282px;overflow:hidden;border:1px solid #ecd3a86b;border-radius:19px;text-align:left;display:flex;flex-direction:column;justify-content:space-between;padding:24px;background:radial-gradient(ellipse at 90% 0,#856b9940,transparent 65%),linear-gradient(145deg,#254a64,#233748);color:white;box-shadow:0 12px 28px #17274030}
.room-card:nth-child(3n+2){background:radial-gradient(ellipse at 90% 0,#ca89a044,transparent 65%),linear-gradient(145deg,#654764,#343551)}.room-card:nth-child(3n+3){background:radial-gradient(ellipse at 90% 0,#72c7b344,transparent 65%),linear-gradient(145deg,#2b635e,#264252)}
.room-card .room-art,.room-card:nth-child(3n+2) .room-art,.room-card:nth-child(3n+3) .room-art{position:absolute;inset:0;height:auto;min-height:0;border:0;background:transparent;padding:0;display:block;z-index:-1}.room-card .room-art:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#172736ed,transparent 85%)}.room-card .room-image{position:absolute;width:170px;height:170px;right:10px;top:8px;max-width:none;object-fit:contain;opacity:.75;filter:drop-shadow(0 7px 14px #07152555);border-radius:12px;mix-blend-mode:screen}.room-card .room-number{position:absolute;left:24px;top:23px;color:#efcd93;letter-spacing:2px;font-size:10px}.room-card .room-copy,.room-card:nth-child(3n+2) .room-copy,.room-card:nth-child(3n+3) .room-copy{margin-top:128px;padding:0;background:transparent;width:100%}.room-card .room-copy h2{font:32px Georgia,serif;letter-spacing:-.5px;color:white;margin-bottom:17px;max-width:85%}.room-card .room-meta{color:#e4d8e7;font-size:13px;gap:20px}.room-card .room-arrow{position:absolute;bottom:24px;right:22px;border:1px solid #efd4a277;background:#ffffff0c;color:#efcf98;width:36px;height:36px}.room-card:hover{border-color:#edcb91;background-color:transparent;box-shadow:0 14px 35px #20395545}
@keyframes piece-choice{0%,100%{transform:scale(1);filter:brightness(1);box-shadow:0 0 0 4px var(--piece-color),0 0 15px #0008}50%{transform:scale(1.22);filter:brightness(1.5);box-shadow:0 0 0 4px white,0 0 0 7px var(--piece-color),0 0 22px #fff}}
@media(max-width:900px){.in-game .app-header{height:66px;padding:4px 10px}.in-game .brand img{width:44px;height:52px}.in-game .brand b{font-size:22px}.in-game .brand small{font-size:6px}.in-game #header-actions{gap:4px}.in-game #header-actions .icon-button{width:36px;height:36px}.game-view{padding:8px 0 0}.game-pages{display:flex;gap:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}.game-pages>section{flex:0 0 100%;width:100%;scroll-snap-align:start;min-width:0}.game-board-page{padding:0 10px 8px}.game-chat-page{border-radius:0;border:0}.game-chat-tabs .return-board{display:block;flex:initial}.game-caption strong{font-size:20px}.game-caption span{font-size:10px}.game-log{flex-basis:66px;font-size:var(--chat-size)}.board-player strong{font-size:clamp(8px,2.5vw,13px)}.game-action-hint{font-size:12px}.game-dialog{padding:18px}.participant{grid-template-columns:35px minmax(0,1fr);padding:9px;gap:7px}.participant .avatar{width:34px;height:34px}.room-card{min-height:195px;padding:22px;display:flex}.room-card .room-image{width:150px;height:150px;right:5px;top:0}.room-card .room-copy{margin-top:68px}.room-card .room-copy h2{font-size:29px;margin-bottom:13px}.room-card .room-number{top:20px;left:22px}.room-card .room-meta{font-size:12px}}
@media(max-height:500px) and (orientation:landscape){.in-game .app-header{height:42px}.in-game .brand img{width:32px;height:38px}.in-game .brand b{font-size:18px}.in-game .brand small{font-size:5px;margin-top:1px}.game-view{padding-top:4px}.game-board-page{display:grid;grid-template-columns:minmax(0,1fr) 28%;grid-template-rows:20px minmax(0,1fr) 40px;gap:4px 10px}.game-caption{grid-column:1/-1;min-height:0}.board-space{grid-column:1;grid-row:2/4;min-height:0}.game-log{grid-column:2;grid-row:2;max-height:none;height:100%;font-size:12px}.game-action-bar{grid-column:2;grid-row:3;min-height:0;gap:3px;flex-wrap:wrap}.game-action-hint{font-size:10px;max-width:none}.game-action-bar .primary{padding:5px;min-height:30px;font-size:11px}.game-action-bar .icon-button{width:30px;height:30px;padding:4px}.board-player strong{font-size:9px}.game-caption strong{font-size:16px}.game-chat-tabs{padding:4px}.game-chat-tabs button{padding:6px}.game-dialog{max-height:95dvh}}
@media(prefers-reduced-motion:reduce){.piece.selectable{animation:none}}
.game-clock{width:30px;height:30px;border-radius:50%;border:2px solid #f4ce8b;display:grid;place-items:center;color:#ffe7b6!important;background:#263e53;font-weight:700;flex-shrink:0;font-variant-numeric:tabular-nums}.speech-bubble{position:absolute;z-index:10;bottom:100%;left:-35%;width:170%;max-height:100px;overflow:auto;background:#292238f5;border:1px solid #e9c994;color:white;padding:7px 9px;border-radius:10px;font-size:clamp(9px,1vw,13px);line-height:1.25;box-shadow:0 4px 15px #0004;pointer-events:none}.board-player:has(.speech-bubble){z-index:10}.board-player[data-seat="2"] .speech-bubble,.board-player[data-seat="3"] .speech-bubble{bottom:auto;top:100%}
@media(max-width:900px) and (orientation:portrait){.game-board-page .board-space{flex:0 0 min(calc(100vw - 20px),calc(100dvh - 230px))}.game-board-page .game-log{flex:1;max-height:none}.game-board-page{gap:10px}}

.game-menu .menu-pause{display:flex;align-items:center;gap:10px}.menu-pause svg{width:20px;height:20px;flex-shrink:0}

.board-notice{position:sticky;z-index:2;top:0;width:100%;padding:7px 10px;color:white;background:#24384ff2;border:1px solid #f0c987;border-radius:12px;text-align:center;box-shadow:0 8px 24px #0006;font-size:clamp(12px,1.4vw,20px);pointer-events:none}

/* Turno legible incluso sin animaciones; permanece dentro de la casa del jugador. */
.board-player.has-turn .avatar{border:4px solid #ffdc79;outline:2px solid #634113;outline-offset:1px;box-shadow:0 0 0 5px #ffde8080,0 0 20px #ffe198}
.board-player.has-turn strong{background:#ffe1a0;color:#30251c;border:1px solid #9b702e}
.board-player.has-turn strong:before{content:none}
.game-font-setting{display:grid;gap:8px}.game-font-setting input{width:100%}

/* Modalidad nativa, nicks contenidos y bocadillos dentro de la casa de color. */
.game-mode-icons{display:flex;align-items:center;gap:9px}.game-mode-icons img{width:42px;height:30px;object-fit:contain}.game-mode-icons small{color:#e9d9c3}
.play-board{container-type:inline-size}
.play-board .board-player{width:29%;height:29%;left:2%!important;top:2%!important;gap:1px}
.play-board .board-player[data-seat="1"],.play-board .board-player[data-seat="2"]{left:69%!important}
.play-board .board-player[data-seat="1"],.play-board .board-player[data-seat="4"]{top:69%!important}
.play-board .board-player .avatar{width:52%;height:auto;aspect-ratio:1;flex-shrink:0}
.play-board .board-player strong,.play-board .board-player.has-turn strong{display:block;flex-shrink:0;max-width:100%;width:auto;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:600 clamp(8px,2.25cqw,12px)/1.25 system-ui,sans-serif;color:#fff;background:#152d40d9;border:0;border-radius:4px;padding:2px 4px}
.play-board .board-player.has-turn strong{color:#fff;background:#152d40d9}
.play-board .speech-bubble,.play-board .board-player[data-seat] .speech-bubble{position:relative;top:auto;bottom:auto;left:auto;box-sizing:border-box;width:100%;max-width:100%;min-height:0;max-height:33%;padding:3px 5px;margin-top:2px;overflow:auto;overflow-wrap:anywhere;font-size:clamp(8px,2.1cqw,12px);line-height:1.15;border-color:#e9c994;background:#182c3df5;border-radius:7px;pointer-events:auto}
.play-board .die{box-sizing:border-box;padding:3px;border-radius:9px;border:1px solid transparent;transition:opacity .2s,background .2s;box-shadow:none}
.play-board .die.selected{outline:none;border-color:#f3d794;background:#152d405c;box-shadow:0 2px 7px #0003}
.play-board .die:not(:disabled):hover{background:#fff3;border-color:#f3d794;transform:none}
.game-dice{justify-content:center;top:46%;height:8%}.game-dice.one-die .die{width:48%}
.dice-in-flight .game-dice{visibility:hidden}.dice-in-flight .piece{pointer-events:none}.dice-in-flight .piece.selectable{animation:none;outline:none;box-shadow:none}
.dice-flight-layer{position:absolute;inset:0;z-index:15;pointer-events:none;overflow:hidden}.flying-die{position:absolute;width:8%;height:8%;object-fit:contain;filter:drop-shadow(0 5px 5px #0007);will-change:transform,left,top}
@media(max-height:500px) and (orientation:landscape){.game-mode-icons img{width:24px;height:20px}}

/* Ocupacion del salon: jugadores / capacidad recibidos en el catalogo. */
.room-occupancy{display:block;height:4px;margin-top:16px;background:#ffffff24;border-radius:4px;overflow:hidden}.room-occupancy>span{display:block;height:100%;max-width:100%;border-radius:inherit;background:linear-gradient(90deg,#8bd3bf,#e8c587)}
