/* ==========================================================
   Dominó Cuba Core 1.0.43
   Hoja consolidada. Una sola fuente de verdad por componente.
   ========================================================== */

:root{
  --cjd-green:#0d6b45;
  --cjd-green-dark:#064c34;
  --cjd-bg:#f3f5f4;
  --cjd-card:#fff;
  --cjd-text:#17231d;
  --cjd-border:#dfe6e2;
  --cjd-gold:#ffd54a;
  --cjd-wood:#5b341d;
  --cjd-shadow:0 8px 28px rgba(0,0,0,.12);
}

/* ---------- Web normal ---------- */
.cjd-wrap{max-width:980px;margin:24px auto;padding:0 14px;color:var(--cjd-text);box-sizing:border-box}
.cjd-card{background:var(--cjd-card);border:1px solid var(--cjd-border);border-radius:16px;padding:18px;margin-bottom:16px;box-shadow:0 4px 18px rgba(0,0,0,.04);box-sizing:border-box}
.cjd-auth{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.cjd-card input,.cjd-card select{width:100%;box-sizing:border-box;padding:12px 13px;border:1px solid #cfd9d4;border-radius:10px;margin:6px 0;font-size:16px;background:#fff;color:var(--cjd-text)}
.cjd-pass{position:relative}.cjd-pass input{padding-right:88px}.cjd-show-pass{position:absolute;right:8px;top:14px;border:0;background:transparent;cursor:pointer}
.cjd-btn{display:inline-block;border:0;border-radius:10px;padding:10px 14px;background:#e8eeeb;color:#17231d;text-decoration:none;cursor:pointer;margin:4px;font:inherit;line-height:1.2}
.cjd-btn:hover{filter:brightness(.98)}.cjd-primary{background:var(--cjd-green);color:#fff}.cjd-msg{margin-top:8px}.cjd-muted{opacity:.68}
.cjd-hero{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,var(--cjd-green),var(--cjd-green-dark));color:#fff;border-radius:18px;padding:18px;margin-bottom:18px}
.cjd-hero h2{margin:0}.cjd-domino-mark{font-size:54px;line-height:1}.cjd-avatar{border-radius:50%;object-fit:cover;display:inline-flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.75);box-sizing:border-box}.cjd-initial{background:#e8efe9;color:#154d37;font-weight:700}
.cjd-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.cjd-tile{min-height:120px;border:1px solid var(--cjd-border);background:#fff;border-radius:16px;padding:18px;text-decoration:none;color:var(--cjd-text);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;font-size:28px;cursor:pointer;text-align:left;box-sizing:border-box}
.cjd-tile strong{font-size:19px;margin-top:8px}.cjd-tile span{font-size:13px;opacity:.66;margin-top:4px}.cjd-profile-head{display:flex;align-items:center;gap:14px}
.cjd-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0}.cjd-stats div{text-align:center;background:#f5f8f6;border-radius:12px;padding:10px}.cjd-stats b{display:block;font-size:20px}.cjd-stats span{font-size:12px}
.cjd-hidden{display:none!important}.cjd-guest-home-hero{min-height:74px}

/* ---------- Pantalla de búsqueda ---------- */
.cjd-match-overlay{position:fixed;inset:0;z-index:999998;background:rgba(4,34,24,.82);display:flex;align-items:center;justify-content:center;padding:18px;box-sizing:border-box;backdrop-filter:blur(3px)}
.cjd-match-scene{position:relative;width:min(780px,94vw);min-height:430px;border:8px solid var(--cjd-wood);border-radius:28px;background:radial-gradient(circle at 50% 45%,#168158 0,var(--cjd-table-color,var(--cjd-green)) 58%,#075039 100%);box-shadow:0 22px 60px rgba(0,0,0,.5),inset 0 0 0 2px rgba(255,255,255,.08);overflow:hidden;color:#fff;padding:28px;box-sizing:border-box}
.cjd-match-table-art{position:absolute;inset:0;pointer-events:none;opacity:.18}.cjd-match-table-art .back{position:absolute;width:28px;height:50px;border:1px solid rgba(255,255,255,.75);border-radius:4px;background:#fff var(--cjd-tile-back,none) center/cover no-repeat;box-shadow:0 4px 8px rgba(0,0,0,.28)}
.cjd-match-table-art .b1{left:6%;top:12%;transform:rotate(-18deg)}.cjd-match-table-art .b2{left:13%;bottom:10%;transform:rotate(24deg)}.cjd-match-table-art .b3{right:8%;top:13%;transform:rotate(17deg)}.cjd-match-table-art .b4{right:15%;bottom:8%;transform:rotate(-28deg)}.cjd-match-table-art .b5{left:44%;top:7%;transform:rotate(72deg)}.cjd-match-table-art .b6{right:42%;bottom:5%;transform:rotate(83deg)}
.cjd-match-title{position:relative;text-align:center;font-weight:900;font-size:24px;margin:2px 0 28px;text-shadow:0 2px 5px rgba(0,0,0,.28);z-index:2}.cjd-match-dots{display:inline-block;margin-left:6px;letter-spacing:3px;animation:dccPulse 1s infinite}
.cjd-match-slots{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto auto auto;gap:12px 28px;align-items:center;z-index:2;max-width:520px;margin:0 auto}.cjd-match-vs{grid-column:1/-1;text-align:center;font-size:30px;font-weight:1000;letter-spacing:3px;color:#ffe270;text-shadow:0 3px 12px rgba(0,0,0,.35);margin:0}.cjd-match-team-label{position:relative;text-align:center;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:.82;z-index:2}.cjd-match-us-label{margin:-15px 0 8px}.cjd-match-rivals-label{grid-column:1/-1;margin:-8px 0 -4px}.cjd-match-slot{text-align:center;transition:.25s ease;opacity:.68}.cjd-match-avatar{width:82px;height:82px;margin:0 auto 9px;border-radius:50%;background:rgba(0,0,0,.22);border:3px dashed rgba(255,255,255,.55);display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 6px 16px rgba(0,0,0,.2)}.cjd-match-avatar img{width:100%;height:100%;object-fit:cover}.cjd-match-silhouette,.cjd-match-person{font-size:34px;line-height:1;filter:grayscale(1);opacity:.85}.cjd-match-slot.searching .cjd-match-avatar{animation:dccSearchPulse 1.2s infinite ease-in-out}.cjd-match-slot.filled{opacity:1;transform:translateY(-3px)}.cjd-match-slot.filled .cjd-match-avatar{border-style:solid;border-color:#ffe270;box-shadow:0 0 0 4px rgba(255,226,112,.13),0 7px 18px rgba(0,0,0,.26)}.cjd-match-slot b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cjd-match-slot small{font-size:11px;opacity:.82}.cjd-match-status{position:relative;text-align:center;margin-top:34px;font-weight:700;z-index:2}.cjd-match-cancel{position:relative;display:block;margin:18px auto 0!important;z-index:2}.cjd-match-overlay.ready .cjd-match-scene{box-shadow:0 0 0 3px rgba(255,226,112,.35),0 22px 60px rgba(0,0,0,.5)}
@keyframes dccSearchPulse{0%,100%{transform:scale(.94);opacity:.65}50%{transform:scale(1.04);opacity:1}}@keyframes dccPulse{50%{opacity:.35}}

/* ---------- Ficha base ---------- */
.cjd-domino{appearance:none;-webkit-appearance:none;border:1px solid rgba(0,0,0,.2);background:var(--cjd-tile-front,#fff);padding:0;margin:0;display:flex;overflow:hidden;box-sizing:border-box;color:#111;position:relative;cursor:default}
.cjd-half{position:relative;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);align-items:center;justify-items:center;box-sizing:border-box;min-width:0;min-height:0;padding:8%;direction:ltr;writing-mode:horizontal-tb}
.cjd-divider{background:rgba(0,0,0,.7);flex:0 0 1px}.cjd-dot{display:block;width:8px;height:8px;border-radius:50%;background:#111;transform:none}
.cjd-dot.pos-1{grid-column:1;grid-row:1}.cjd-dot.pos-2{grid-column:2;grid-row:1}.cjd-dot.pos-3{grid-column:3;grid-row:1}.cjd-dot.pos-4{grid-column:1;grid-row:2}.cjd-dot.pos-5{grid-column:2;grid-row:2}.cjd-dot.pos-6{grid-column:3;grid-row:2}.cjd-dot.pos-7{grid-column:1;grid-row:3}.cjd-dot.pos-8{grid-column:2;grid-row:3}.cjd-dot.pos-9{grid-column:3;grid-row:3}
/* Referencia vertical oficial para 6 y 7. En una ficha vertical, las dos
   hileras de tres del patrón horizontal pasan a ser dos columnas de tres.
   Esto evita que 6 y 7 se vean "virados". */
.cjd-domino.piece-vertical .cjd-half.p6 .pos-1,.cjd-domino.piece-vertical .cjd-half.p7 .pos-1,.cjd-domino.hand .cjd-half.p6 .pos-1,.cjd-domino.hand .cjd-half.p7 .pos-1{grid-column:1;grid-row:1}
.cjd-domino.piece-vertical .cjd-half.p6 .pos-2,.cjd-domino.piece-vertical .cjd-half.p7 .pos-2,.cjd-domino.hand .cjd-half.p6 .pos-2,.cjd-domino.hand .cjd-half.p7 .pos-2{grid-column:1;grid-row:2}
.cjd-domino.piece-vertical .cjd-half.p6 .pos-3,.cjd-domino.piece-vertical .cjd-half.p7 .pos-3,.cjd-domino.hand .cjd-half.p6 .pos-3,.cjd-domino.hand .cjd-half.p7 .pos-3{grid-column:1;grid-row:3}
.cjd-domino.piece-vertical .cjd-half.p6 .pos-7,.cjd-domino.piece-vertical .cjd-half.p7 .pos-7,.cjd-domino.hand .cjd-half.p6 .pos-7,.cjd-domino.hand .cjd-half.p7 .pos-7{grid-column:3;grid-row:1}
.cjd-domino.piece-vertical .cjd-half.p6 .pos-8,.cjd-domino.piece-vertical .cjd-half.p7 .pos-8,.cjd-domino.hand .cjd-half.p6 .pos-8,.cjd-domino.hand .cjd-half.p7 .pos-8{grid-column:3;grid-row:2}
.cjd-domino.piece-vertical .cjd-half.p6 .pos-9,.cjd-domino.piece-vertical .cjd-half.p7 .pos-9,.cjd-domino.hand .cjd-half.p6 .pos-9,.cjd-domino.hand .cjd-half.p7 .pos-9{grid-column:3;grid-row:3}

/* Colores fijos por valor. */
.cjd-half.p1 .cjd-dot{background:var(--cjd-pip-1,#d71920)}.cjd-half.p2 .cjd-dot{background:var(--cjd-pip-2,#1f9d55)}.cjd-half.p3 .cjd-dot{background:var(--cjd-pip-3,#1769aa)}.cjd-half.p4 .cjd-dot{background:var(--cjd-pip-4,#f28c00)}.cjd-half.p5 .cjd-dot{background:var(--cjd-pip-5,#7b2cbf)}.cjd-half.p6 .cjd-dot{background:var(--cjd-pip-6,#008c95)}.cjd-half.p7 .cjd-dot{background:var(--cjd-pip-7,#e83e8c)}.cjd-half.p8 .cjd-dot{background:var(--cjd-pip-8,#8a5a00)}.cjd-half.p9 .cjd-dot{background:var(--cjd-pip-9,#111111)}

/* ---------- Mesa ----------
   PC: permanece como mesa grande dentro de la página.
   Móvil: ocupa todo el viewport disponible. */
body.cjd-game-desktop #cjd-game{
  position:relative;
  width:100%;
  min-height:680px;
  max-width:1180px;
  margin:18px auto;
  overflow:hidden;
  background-color:var(--cjd-table-color,#0d6b45);
  background-image:var(--cjd-table-image,none);
  background-size:cover;
  background-position:center;
  box-sizing:border-box;
  border-radius:26px;
}
html.cjd-game-html,html.cjd-game-html body,body.cjd-game-mobile{
  margin:0!important;padding:0!important;width:100%!important;height:100%!important;
  min-height:100%!important;overflow:hidden!important;overscroll-behavior:none!important;
  background:#073f2e!important;
}
/* IMPORTANTE: .cjd-flying-piece vive como hijo directo de BODY.
   NO quitar esta excepción: si se oculta, la animación ficha→mesa sigue ejecutándose pero no se ve en móvil. */
body.cjd-game-mobile > *:not(#cjd-game):not(.cjd-flying-piece):not(script):not(style):not(link){display:none!important}
body.cjd-game-mobile > .cjd-flying-piece{display:flex!important;visibility:visible!important;opacity:1!important}
body.cjd-game-mobile #wpadminbar{display:none!important}
body.cjd-game-mobile #cjd-game{
  display:block!important;position:fixed!important;inset:0!important;
  width:100vw!important;height:100vh!important;height:100dvh!important;
  max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;
  overflow:hidden!important;z-index:2147483000!important;
  background-color:var(--cjd-table-color,#0d6b45);
  background-image:var(--cjd-table-image,none);
  background-size:cover;background-position:center;box-sizing:border-box;
}
.cjd-game:before{content:"";position:absolute;inset:10px;border:8px solid var(--cjd-wood);border-radius:30px;pointer-events:none;box-shadow:inset 0 0 0 2px rgba(255,255,255,.05);z-index:1}
.cjd-game-exit{position:absolute;top:9px;right:9px;z-index:50;border:0;border-radius:11px;padding:9px 13px;background:rgba(0,44,31,.9);color:#fff;font-size:16px;cursor:pointer}

/* Tres jugadores ajenos arriba. Las clases left/top/right son relativas al usuario, no posiciones físicas. */
.cjd-seat{position:absolute;z-index:14;color:#fff;font-size:12px;text-shadow:0 1px 2px rgba(0,0,0,.5)}
.cjd-seat.left,.cjd-seat.top,.cjd-seat.right{top:7px;bottom:auto;transform:none;width:29%;max-width:29%;min-width:0;text-align:center}
.cjd-seat.left{left:3%}.cjd-seat.top{left:35.5%}.cjd-seat.right{right:5%}
.cjd-seat-shell{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0}.cjd-seat.left .cjd-seat-shell,.cjd-seat.top .cjd-seat-shell,.cjd-seat.right .cjd-seat-shell{flex-direction:row;white-space:nowrap}
.cjd-seat .cjd-avatar{width:42px;height:42px;flex:0 0 42px}.cjd-seat-info{min-width:0}.cjd-seat-info b{display:block;font-size:13px;line-height:1.08;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cjd-seat-info small{display:block;font-size:9px;line-height:1.2}.cjd-thinking{display:inline-flex;align-items:center;gap:3px;color:var(--cjd-gold);font-weight:800}.cjd-thinking i{width:4px;height:4px;border-radius:50%;background:var(--cjd-gold);animation:dccThinking .9s infinite}.cjd-thinking i:nth-child(2){animation-delay:.15s}.cjd-thinking i:nth-child(3){animation-delay:.3s}.cjd-thinking b{font-size:9px}.cjd-seat.active-turn .cjd-avatar{box-shadow:0 0 0 3px var(--cjd-gold),0 0 18px rgba(255,213,74,.5)}
@keyframes dccThinking{50%{opacity:.2}}
.cjd-seat .backs{display:flex;align-items:center;gap:2px;max-width:104px;overflow:hidden}.mini-back{display:block;width:9px;height:17px;flex:0 0 9px;margin:0;border:1px solid rgba(255,255,255,.85);border-radius:2px;background-color:#fff;background-image:var(--cjd-tile-back,linear-gradient(135deg,#fff 0 38%,#1e4e8c 39% 56%,#fff 57% 68%,#d52b1e 69%));background-size:cover;background-position:center}.cjd-seat-stock{display:flex;align-items:center;gap:4px;min-width:0}.cjd-count-badge{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex:0 0 22px;border-radius:50%;background:#fff;color:#111;font-weight:900;font-size:14px;line-height:1;box-shadow:0 1px 4px rgba(0,0,0,.25)}.cjd-player-card{cursor:pointer}.cjd-player-card:focus-visible{outline:2px solid var(--cjd-gold);outline-offset:2px}
/* Mi perfil es mínimo y no compite con la mano. */
.cjd-seat.bottom{left:8px;bottom:8px;max-width:90px}.cjd-seat.bottom .backs,.cjd-seat.bottom .cjd-seat-info small{display:none}.cjd-seat.bottom .cjd-avatar{width:28px;height:28px;flex-basis:28px}.cjd-seat.bottom .cjd-seat-info b{font-size:10px}

/* ---------- Zona de juego ---------- */
.cjd-board{position:absolute;left:2.5%;right:2.5%;top:10%;bottom:21%;z-index:5;overflow:hidden}.cjd-chain{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}.cjd-chain-piece{position:absolute!important;border-radius:7px!important;box-shadow:0 2px 4px rgba(0,0,0,.28);pointer-events:none}
.cjd-chain-piece.piece-horizontal{flex-direction:row!important}.cjd-chain-piece.piece-horizontal>.cjd-half{width:50%;height:100%}.cjd-chain-piece.piece-horizontal>.cjd-divider{width:1px;height:100%}.cjd-chain-piece.piece-vertical{flex-direction:column!important}.cjd-chain-piece.piece-vertical>.cjd-half{width:100%;height:50%}.cjd-chain-piece.piece-vertical>.cjd-divider{width:100%;height:1px;flex-basis:1px}.cjd-chain-piece .cjd-dot{width:9px;height:9px}
.cjd-end-target{display:none;position:absolute;z-index:25;width:36px;height:36px;border-radius:50%;border:3px solid var(--cjd-gold);background:rgba(0,55,38,.82);box-shadow:0 0 0 4px rgba(255,213,74,.18),0 4px 12px rgba(0,0,0,.35);cursor:pointer;animation:dccEndPulse .9s infinite alternate}.cjd-game.choosing-end .cjd-end-target{display:block}.cjd-game.choosing-end .cjd-end-target:after{content:"";position:absolute;inset:9px;border-radius:50%;background:var(--cjd-gold)}@keyframes dccEndPulse{from{transform:scale(.92)}to{transform:scale(1.08)}}
.cjd-turn{position:absolute;left:50%;bottom:18%;transform:translateX(-50%);z-index:18;display:flex;align-items:center;gap:8px;border-radius:24px;background:rgba(0,61,43,.92);color:#fff;padding:8px 14px;font-size:13px;white-space:nowrap;box-shadow:0 4px 10px rgba(0,0,0,.18)}.cjd-turn span{color:var(--cjd-gold);font-weight:800}.cjd-turn .dots{letter-spacing:3px;animation:dccPulse 1s infinite}

/* ---------- Mano ---------- */
.cjd-hand{position:absolute;left:50%;bottom:4px;transform:translateX(-50%);z-index:16;display:flex;align-items:flex-end;justify-content:center;gap:3px;max-width:94vw;overflow:visible}.cjd-domino.hand{width:clamp(72px,7.2vw,92px);height:clamp(132px,13vw,166px);flex-direction:column;border-radius:7px;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;box-shadow:0 3px 6px rgba(0,0,0,.25)}.cjd-domino.hand .cjd-half{width:100%;height:50%}.cjd-domino.hand .cjd-divider{width:100%;height:1px}.cjd-domino.hand .cjd-dot{width:clamp(11px,1vw,14px);height:clamp(11px,1vw,14px)}.cjd-domino.hand.playable.highlight-valid{outline:3px solid var(--cjd-gold);outline-offset:-2px}.cjd-domino.hand.selected{transform:translateY(-10px);box-shadow:0 0 0 3px var(--cjd-gold),0 10px 18px rgba(0,0,0,.3)}.cjd-domino.hand.cjd-dragging{z-index:50;transform:translateY(-14px) scale(1.04);box-shadow:0 14px 24px rgba(0,0,0,.42);pointer-events:none}

/* ---------- Pase y animación ---------- */
.cjd-pass-pop{position:fixed;z-index:1000004;min-width:150px;max-width:min(82vw,360px);padding:14px 18px;border:2px solid var(--cjd-gold);border-radius:15px;background:rgba(6,39,29,.95);color:#fff;text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.38);box-sizing:border-box}.cjd-pass-pop strong{display:block;font-size:clamp(27px,6vw,32px);line-height:1.05}.cjd-pass-pop small{display:block;margin-top:5px;font-size:clamp(16px,4vw,19px);line-height:1.15;font-weight:700;opacity:.92}.cjd-flying-piece{position:fixed!important;pointer-events:none!important;z-index:2147483647!important;filter:drop-shadow(0 12px 9px rgba(0,0,0,.42));will-change:left,top;visibility:visible!important}

/* ---------- Final de partida ---------- */
.cjd-game.game-finished .cjd-board,.cjd-game.game-finished .cjd-hand,.cjd-game.game-finished .cjd-seat{filter:none;opacity:1}.cjd-result{position:absolute;top:6px;left:50%;transform:translateX(-50%);z-index:30;width:min(760px,calc(100vw - 120px));text-align:center;pointer-events:none}.cjd-result .box{width:100%;box-sizing:border-box;padding:8px 13px;background:#fff;color:#17231d;border:1px solid rgba(0,0,0,.16);box-shadow:0 10px 28px rgba(0,0,0,.28);border-radius:14px;pointer-events:auto}.cjd-result .box h2{font-size:19px;margin:2px 0 4px}.cjd-rank-delta{font-weight:700;margin:4px 0}.cjd-result-winner{font-weight:800;font-size:14px;margin:3px 0}.cjd-result-actions{display:flex;gap:4px;justify-content:center;flex-wrap:wrap}.cjd-result-actions .cjd-btn{padding:7px 11px;margin:2px}.cjd-team-score{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:4px auto;max-width:620px}.cjd-team-score span{background:#f1f5f3;border-radius:8px;padding:6px 8px;font-size:12px}.cjd-team-score b{display:block}.cjd-team-score strong{font-size:18px;margin-right:3px}
.cjd-reveal-hand{display:flex;gap:2px;margin-top:4px;justify-content:center;flex-wrap:wrap;max-width:130px}.cjd-reveal-empty{display:block;font-size:8px;opacity:.75;margin-top:3px}.cjd-domino.reveal{width:34px;height:18px;min-width:34px;flex-direction:row;border-radius:3px;pointer-events:none}.cjd-domino.reveal .cjd-half{width:50%;height:100%;padding:1px}.cjd-domino.reveal .cjd-divider{width:1px;height:100%}.cjd-domino.reveal .cjd-dot{width:3px;height:3px}.cjd-seat.left .cjd-reveal-hand,.cjd-seat.right .cjd-reveal-hand{max-width:82px;display:grid;grid-template-columns:repeat(2,34px)}
.cjd-hand.cjd-finish-hand{bottom:10px;width:min(900px,76vw);max-width:76vw;display:block;z-index:12}.cjd-finish-pair-hands{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:end;background:rgba(3,57,39,.82);border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:8px 12px;backdrop-filter:blur(4px)}.cjd-finish-hand-group{min-width:0;text-align:center;color:#fff}.cjd-finish-hand-group>b{display:block;font-size:12px;margin-bottom:5px}.cjd-finish-tiles{display:flex;gap:3px;justify-content:center;align-items:center;min-height:35px;flex-wrap:wrap}.cjd-domino.finish{width:52px;height:27px;min-width:52px;flex-direction:row;border-radius:4px;pointer-events:none}.cjd-domino.finish .cjd-half{width:50%;height:100%;padding:2px}.cjd-domino.finish .cjd-divider{width:1px;height:100%}.cjd-domino.finish .cjd-dot{width:5px;height:5px}

/* ---------- Responsive web ---------- */
@media(max-width:760px){.cjd-auth,.cjd-grid{grid-template-columns:1fr}.cjd-stats{grid-template-columns:repeat(2,1fr)}.cjd-wrap{margin:12px auto}.cjd-match-scene{min-height:470px;padding:22px 12px}.cjd-match-slots{gap:10px 22px;max-width:330px}.cjd-match-avatar{width:68px;height:68px}.cjd-match-title{font-size:20px;margin-bottom:22px}.cjd-match-vs{font-size:27px}.cjd-match-slot b{font-size:13px}.cjd-match-slot small{font-size:10px}}

/* ================================================================
   MESA · DOS MODOS, UNA SOLA LÓGICA S34
   10 + 2 + 10 + 2 + 10. El JS rota el mismo recorrido para horizontal.
   ================================================================ */
.cjd-board,.cjd-chain{overflow:hidden}
.cjd-chain-piece{transform:none;transform-origin:center center;transition:transform .16s ease}
.cjd-chain-piece.piece-horizontal{flex-direction:row}
.cjd-chain-piece.piece-horizontal>.cjd-half{width:50%;height:100%}
.cjd-chain-piece.piece-horizontal>.cjd-divider{width:1px;height:100%;flex:0 0 1px}
.cjd-chain-piece.piece-vertical{flex-direction:column}
.cjd-chain-piece.piece-vertical>.cjd-half{width:100%;height:50%}
.cjd-chain-piece.piece-vertical>.cjd-divider{width:100%;height:1px;flex:0 0 1px}
.cjd-chain-emphasis{z-index:9;box-shadow:0 3px 9px rgba(0,0,0,.38)}

/* ---------- Móvil horizontal ----------
   Mis 10 fichas permanecen en una sola fila. La mesa usa la misma S34,
   rotada 90 grados por el motor JS. */
@media (orientation:landscape) and (max-width:1100px){
 body.cjd-game-mobile #cjd-game{border-radius:0!important;background-position:center}
 .cjd-game:before{inset:2px;border-width:4px;border-radius:16px}
 .cjd-game-exit{top:5px;right:5px;padding:6px 8px;font-size:11px}
 .cjd-seat.left,.cjd-seat.top,.cjd-seat.right{top:2px;width:29%;max-width:29%;font-size:9px}.cjd-seat.left{left:2%}.cjd-seat.top{left:35.5%}.cjd-seat.right{right:5%}
 .cjd-seat .cjd-avatar{width:30px;height:30px;flex-basis:30px}.cjd-seat-info b{font-size:10px;max-width:72px}.cjd-seat-info small{font-size:7px}.cjd-seat .backs{max-width:76px;gap:1px}.mini-back{width:7px;height:13px;flex-basis:7px;margin:0}.cjd-count-badge{width:20px;height:20px;flex-basis:20px;font-size:12px;line-height:1}.cjd-seat-stock{gap:3px}
 .cjd-seat.bottom{left:4px;bottom:3px}.cjd-seat.bottom .cjd-seat-info{display:none}.cjd-seat.bottom .cjd-avatar{width:24px;height:24px;flex-basis:24px}
 .cjd-board{left:1.5%;right:1.5%;top:9%;bottom:25%}
 .cjd-chain-piece>.cjd-half{padding:9%;column-gap:3%;row-gap:3%}.cjd-chain-piece .cjd-dot{width:clamp(4px,1vw,7px);height:clamp(4px,1vw,7px)}
 .cjd-hand:not(.cjd-finish-hand){left:50%;right:auto;bottom:3px;transform:translateX(-50%);width:96vw;max-width:96vw;display:flex;flex-wrap:nowrap;justify-content:center;gap:2px}
 .cjd-domino.hand{width:clamp(42px,calc((94vw - 24px)/10),72px);height:calc(clamp(42px,calc((94vw - 24px)/10),72px)*1.78);min-width:0}.cjd-domino.hand .cjd-dot{width:clamp(5px,1vw,9px);height:clamp(5px,1vw,9px)}
 .cjd-turn{bottom:23%;font-size:10px;padding:4px 8px}
 .cjd-result{top:3px;width:min(680px,calc(100vw - 55px))}.cjd-finish-pair-hands{gap:7px;padding:5px 7px}.cjd-domino.finish{width:42px;height:22px;min-width:42px}.cjd-domino.finish .cjd-dot{width:4px;height:4px}
}
@media (orientation:landscape) and (max-width:1100px) and (max-height:430px){
 .cjd-board{top:10%;bottom:27%}.cjd-turn{bottom:25%}.cjd-hand.cjd-finish-hand{bottom:2px;width:84vw;max-width:84vw}
}

/* ---------- Móvil vertical ----------
   10-8 fichas: cinco arriba + cinco abajo conservando huecos.
   7-1: una sola fila anclada a la derecha. */
@media (orientation:portrait) and (max-width:1100px){
 body.cjd-game-mobile #cjd-game{background-position:center;border-radius:0!important}
 .cjd-game:before{inset:2px;border-width:4px;border-radius:16px}
 .cjd-game-exit{top:6px;right:6px;padding:5px 7px;font-size:10px;border-radius:8px}

 .cjd-seat.left,.cjd-seat.top,.cjd-seat.right{top:8px!important;bottom:auto!important;width:30%!important;max-width:30%!important;transform:none!important;text-align:center!important}
 .cjd-seat.left{left:2%!important}.cjd-seat.top{left:35%!important}.cjd-seat.right{left:auto!important;right:3%!important}
 .cjd-seat-shell{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;grid-template-areas:'avatar info' 'stock stock'!important;gap:1px 3px!important;justify-content:center!important;align-items:center!important}
 .cjd-seat .cjd-avatar{grid-area:avatar;width:24px!important;height:24px!important;flex:0 0 24px!important;border-width:1px}
 .cjd-seat-info{grid-area:info;min-width:0!important;text-align:left!important}.cjd-seat-info b{font-size:9px!important;line-height:1.05!important;max-width:68px!important}.cjd-seat-info small{font-size:6.5px!important;line-height:1.05!important;max-width:70px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.cjd-province{display:block!important;opacity:.88!important}
 .cjd-seat-stock{grid-area:stock;justify-content:center!important;gap:2px!important;min-height:17px}.cjd-count-badge{width:20px!important;height:20px!important;flex:0 0 20px!important;font-size:13px!important;line-height:1!important}.cjd-seat .backs{display:flex!important;gap:1px!important;max-width:82px!important;overflow:hidden!important}.mini-back{width:6px!important;height:11px!important;flex:0 0 6px!important;margin:0!important;border-width:1px!important}
 .cjd-thinking{gap:1px!important}.cjd-thinking i{width:3px!important;height:3px!important}.cjd-thinking b{font-size:7px!important}.cjd-seat.bottom{display:none!important}

 .cjd-board{left:2%!important;right:2%!important;top:9.5%!important;bottom:23.5%!important;transition:bottom .22s ease}
 .cjd-game.cjd-hand-one-row-active .cjd-board{bottom:12.5%!important}.cjd-game.cjd-hand-two-rows-active .cjd-board{bottom:23.5%!important}
 .cjd-chain-piece>.cjd-half{padding:8%!important;column-gap:2%!important;row-gap:2%!important}.cjd-chain-piece .cjd-dot{width:clamp(4px,1.35vw,6px)!important;height:clamp(4px,1.35vw,6px)!important}

 .cjd-hand:not(.cjd-finish-hand){left:50%!important;right:auto!important;bottom:5px!important;transform:translateX(-50%)!important;width:96vw!important;max-width:96vw!important;justify-content:center!important;align-items:end!important;gap:2px!important}
 .cjd-hand.cjd-hand-two-rows:not(.cjd-finish-hand){display:grid!important;grid-template-columns:repeat(5,clamp(42px,10.5vw,52px))!important;width:auto!important;max-width:96vw!important;gap:2px 3px!important}
 .cjd-hand.cjd-hand-one-row:not(.cjd-finish-hand){display:flex!important;flex-wrap:nowrap!important;justify-content:flex-end!important;padding-right:2vw!important;box-sizing:border-box!important}
 .cjd-domino.hand{width:clamp(42px,10.5vw,52px)!important;height:calc(clamp(42px,10.5vw,52px)*1.78)!important;min-width:0!important;border-radius:5px!important}
 .cjd-hand.cjd-hand-one-row .cjd-domino.hand{width:clamp(40px,calc((94vw - 12px)/7),52px)!important;height:calc(clamp(40px,calc((94vw - 12px)/7),52px)*1.78)!important}
 .cjd-domino.hand .cjd-half{padding:7%!important}.cjd-domino.hand .cjd-dot{width:clamp(5px,1.6vw,7px)!important;height:clamp(5px,1.6vw,7px)!important}
 .cjd-domino.hand.selected{transform:translateY(-7px)!important}.cjd-domino.hand.cjd-hand-flipped{transform:rotate(180deg)!important}.cjd-domino.hand.cjd-hand-flipped.selected{transform:translateY(-7px) rotate(180deg)!important}.cjd-domino.hand.cjd-hand-flipped.cjd-dragging{transform:translateY(-14px) scale(1.04) rotate(180deg)!important}

 .cjd-turn{left:50%!important;bottom:22.5%!important;transform:translateX(-50%)!important;font-size:9px!important;padding:4px 8px!important;gap:4px!important;max-width:74vw!important;overflow:hidden!important;text-overflow:ellipsis!important;transition:bottom .22s ease}
 .cjd-game.cjd-hand-one-row-active .cjd-turn{bottom:11.5%!important}.cjd-game.cjd-hand-two-rows-active .cjd-turn{bottom:22.5%!important}
 .cjd-end-target{width:30px!important;height:30px!important}.cjd-result{top:42px!important;width:calc(100vw - 24px)!important}
}

/* Sincronización visual */
.cjd-game.cjd-visual-lock .cjd-hand .cjd-domino,.cjd-game.cjd-visual-lock .cjd-end-target{pointer-events:none!important}.cjd-pass-center{left:50%!important;top:50%!important;transform:translate(-50%,-50%) scale(.92);opacity:0;transition:opacity .18s ease,transform .18s ease}.cjd-pass-center.show{opacity:1;transform:translate(-50%,-50%) scale(1)}#cjd-show-result{position:absolute;z-index:31;top:8px;left:50%;transform:translateX(-50%);font-size:11px;padding:6px 9px}

/* Flujo de turnos ordenado + fichas más cuadradas */
.cjd-chain-piece,.cjd-domino.hand,.cjd-flying-piece{border-radius:3px!important}
.cjd-game.cjd-visual-lock .cjd-hand .cjd-domino{pointer-events:none!important}


/* PROTECCIÓN DE ANIMACIÓN: mantener la ficha volante visible y por encima del juego. */
.cjd-flying-piece{
    position:fixed!important;
    pointer-events:none!important;
    z-index:2147483647!important;
}

/*
 * V1.0.44 - ESCALA 130% GEOMÉTRICA
 * ---------------------------------
 * NO volver a aplicar transform:scale() a .cjd-chain-emphasis.
 * El motor S34 ya reserva el tamaño REAL del 130% al calcular cada slot.
 * Aplicar scale() aquí volvería a montar las fichas unas sobre otras.
 */


/* V1.0.45 - LEGIBILIDAD + ORGANIZACIÓN TÁCTIL
 * - El contador circular prioriza el número: debe leerse de un vistazo.
 * - PASE es un aviso central importante, no un micro-tooltip.
 * - Durante un arrastre de mano NO se refresca el DOM con polling.
 * - En turno propio la mano sigue congelada: tap = jugar.
 */
@media (max-width:420px){
  .cjd-pass-pop{min-width:145px;max-width:86vw;padding:13px 16px}
  .cjd-pass-pop strong{font-size:clamp(26px,8vw,31px)}
  .cjd-pass-pop small{font-size:clamp(15px,4.8vw,18px)}
}


/* V1.0.46 - RESULTADO FINAL CENTRADO Y OCULTABLE
 * El resultado terminado vive en el centro de la mesa.
 * #cjd-show-result es deliberadamente discreto y semitransparente para poder
 * revisar las fichas sin que el control tape la partida.
 */
.cjd-result{
  top:50%!important;
  left:50%!important;
  transform:translate(-50%,-50%)!important;
  width:min(620px,calc(100% - 28px))!important;
  max-height:82%!important;
  z-index:40!important;
}
.cjd-result .box{
  max-height:78vh;
  overflow:auto;
}
#cjd-show-result{
  position:absolute!important;
  z-index:41!important;
  left:50%!important;
  top:50%!important;
  right:auto!important;
  bottom:auto!important;
  transform:translate(-50%,-50%)!important;
  padding:7px 11px!important;
  font-size:11px!important;
  border:1px solid rgba(255,255,255,.45)!important;
  background:rgba(255,255,255,.48)!important;
  color:#173126!important;
  box-shadow:0 4px 14px rgba(0,0,0,.14)!important;
  opacity:.58;
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
  transition:opacity .18s ease,background .18s ease;
}
#cjd-show-result:hover,
#cjd-show-result:focus,
#cjd-show-result:active{
  opacity:.9;
  background:rgba(255,255,255,.72)!important;
}
@media (max-width:760px){
  .cjd-result{
    width:calc(100% - 24px)!important;
    max-height:76%!important;
  }
  .cjd-result .box{
    max-height:72vh;
  }
  #cjd-show-result{
    font-size:10px!important;
    padding:6px 9px!important;
    max-width:44vw;
    white-space:nowrap;
  }
}


/* ==========================================================================
   V1.0.49 · RANKING PÚBLICO
   Tarjetas responsive: foto, posición, nombre, provincia y puntos.
   PG / PP / porcentaje se siguen guardando internamente pero no se muestran.
   ========================================================================== */
.cjd-ranking-wrap{max-width:900px}
.cjd-ranking-card{padding:22px}
.cjd-ranking-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.cjd-ranking-head h2{font-size:34px;line-height:1.05;margin:0 0 6px}
.cjd-ranking-head p{margin:0}
.cjd-ranking-mypos{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:82px;padding:8px 12px;border-radius:14px;background:#edf8f2;border:1px solid #d8ebe1}
.cjd-ranking-mypos small{font-size:11px;opacity:.68}
.cjd-ranking-mypos strong{font-size:23px;line-height:1.05}
.cjd-ranking-list{display:grid;grid-template-columns:1fr;gap:9px}
.cjd-ranking-item{display:grid;grid-template-columns:54px 58px minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 14px;border:1px solid #dfe7e3;border-radius:15px;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.035);box-sizing:border-box}
.cjd-ranking-item.is-me{border-color:#6eb994;background:#f1faf5;box-shadow:0 0 0 1px rgba(27,132,82,.12)}
.cjd-ranking-pos{display:flex;align-items:center;justify-content:center;font-size:17px;min-width:42px}
.cjd-ranking-medal{font-size:28px;line-height:1}
.cjd-ranking-avatar{width:54px;height:54px;border-radius:50%;overflow:hidden;background:#e8eeeb;display:flex;align-items:center;justify-content:center;border:2px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.13)}
.cjd-ranking-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.cjd-ranking-avatar span{font-size:21px;font-weight:800;color:#365548}
.cjd-ranking-player{min-width:0;display:flex;flex-direction:column;gap:3px}
.cjd-ranking-name{font-size:17px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cjd-ranking-province{font-size:13px;opacity:.66;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cjd-ranking-points{display:flex;align-items:baseline;gap:5px;justify-content:flex-end;white-space:nowrap;padding-left:10px}
.cjd-ranking-points strong{font-size:21px;line-height:1;color:#113d2d}
.cjd-ranking-points span{font-size:12px;opacity:.65}
.cjd-ranking-item.podium-1{border-color:#e3c157;background:linear-gradient(90deg,#fffdf5,#fff)}
.cjd-ranking-item.podium-2{border-color:#c9ced2;background:linear-gradient(90deg,#f8fafb,#fff)}
.cjd-ranking-item.podium-3{border-color:#d2a172;background:linear-gradient(90deg,#fff9f3,#fff)}
.cjd-ranking-empty{text-align:center;padding:26px 10px}

@media (min-width:760px){
  .cjd-ranking-list{grid-template-columns:1fr 1fr}
  .cjd-ranking-item{grid-template-columns:46px 52px minmax(0,1fr) auto;gap:10px}
  .cjd-ranking-avatar{width:50px;height:50px}
}
@media (max-width:560px){
  .cjd-ranking-wrap{margin:10px auto;padding:0 9px}
  .cjd-ranking-card{padding:13px;border-radius:14px}
  .cjd-ranking-head{align-items:center;margin-bottom:12px}
  .cjd-ranking-head h2{font-size:27px}
  .cjd-ranking-head p{font-size:13px}
  .cjd-ranking-mypos{min-width:68px;padding:7px 9px}
  .cjd-ranking-mypos strong{font-size:20px}
  .cjd-ranking-item{grid-template-columns:38px 48px minmax(0,1fr) auto;gap:8px;padding:9px 10px;border-radius:13px}
  .cjd-ranking-pos{font-size:15px;min-width:34px}
  .cjd-ranking-medal{font-size:23px}
  .cjd-ranking-avatar{width:46px;height:46px}
  .cjd-ranking-avatar span{font-size:18px}
  .cjd-ranking-name{font-size:15px}
  .cjd-ranking-province{font-size:12px}
  .cjd-ranking-points{display:flex;flex-direction:column;align-items:flex-end;gap:0;padding-left:4px}
  .cjd-ranking-points strong{font-size:18px}
  .cjd-ranking-points span{font-size:10px}
}


/* ==========================================================================
   V1.0.50 · MI CUENTA / HISTORIAL / AVISOS
   - El ID interno del jugador NO se muestra al usuario.
   - Historial: solo últimas 10 partidas, integrado en Mi cuenta.
   - El selector nativo de archivo se oculta; se usa "Cambiar foto".
   - Los avisos de revancha usan toast interno, nunca alert() del navegador.
   ========================================================================== */
.cjd-account-wrap{max-width:760px}
.cjd-account-card,.cjd-account-panel{border-radius:18px}
.cjd-profile-main{min-width:0}
.cjd-profile-main h2{margin:0 0 6px;font-size:28px;line-height:1.1}
.cjd-profile-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:14px;opacity:.72}
.cjd-profile-meta i{font-style:normal;opacity:.48}
.cjd-account-actions{display:flex;gap:7px;flex-wrap:wrap}
.cjd-account-panel{margin-top:14px}
.cjd-account-panel h3{font-size:28px;margin:0 0 16px}
.cjd-panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}
.cjd-panel-head h3{margin:0}
.cjd-profile-photo-editor{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:2px 0 16px}
.cjd-profile-photo-preview{width:86px;height:86px;border-radius:50%;overflow:hidden;background:#e8efe9;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.cjd-profile-photo-preview img{width:100%;height:100%;object-fit:cover;display:block}
.cjd-profile-photo-preview .cjd-avatar{width:86px!important;height:86px!important;border:0}
.cjd-file-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}
.cjd-photo-btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:11px;background:#e8eeeb;font-weight:700;cursor:pointer}
.cjd-photo-name{font-size:12px;opacity:.62;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cjd-field-label{display:block;font-size:12px;font-weight:700;opacity:.72;margin:10px 0 0}
.cjd-support-note{margin-bottom:0}
.cjd-history-list{display:flex;flex-direction:column;gap:8px}
.cjd-history-mini{border:1px solid #e0e7e3;border-radius:13px;padding:11px 13px;background:#fff}
.cjd-history-mini.win{border-left:4px solid #148a57}
.cjd-history-mini.loss{border-left:4px solid #a84d4d}
.cjd-history-mini.draw{border-left:4px solid #8c8c8c}
.cjd-history-result{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cjd-history-result strong{font-size:17px}
.cjd-history-delta{font-weight:800;font-size:16px}
.cjd-history-mini.win .cjd-history-delta{color:#0d7045}
.cjd-history-mini.loss .cjd-history-delta{color:#9a3535}
.cjd-history-info{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:5px;font-size:12px;opacity:.67}
.cjd-toast{position:fixed;left:50%;bottom:14vh;transform:translate(-50%,16px);z-index:2147483646;max-width:min(82vw,380px);padding:9px 14px;border-radius:999px;background:rgba(10,37,27,.88);color:#fff;font-size:14px;font-weight:650;text-align:center;box-shadow:0 5px 18px rgba(0,0,0,.22);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,transform .18s ease,visibility .18s}
.cjd-toast.show{opacity:1;visibility:visible;transform:translate(-50%,0)}

@media(max-width:560px){
  .cjd-account-wrap{padding:0 9px}
  .cjd-account-card,.cjd-account-panel{padding:14px}
  .cjd-profile-head{align-items:center}
  .cjd-profile-main h2{font-size:23px}
  .cjd-profile-meta{font-size:12px;gap:5px}
  .cjd-account-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}
  .cjd-account-actions .cjd-btn{margin:0;text-align:center}
  .cjd-account-actions #cjd-logout{grid-column:1/-1}
  .cjd-account-panel h3{font-size:24px}
  .cjd-panel-head{align-items:flex-start;flex-direction:column;gap:2px}
  .cjd-profile-photo-editor{gap:9px}
  .cjd-photo-name{max-width:150px}
  .cjd-history-info{display:flex;flex-direction:column;gap:2px}
  .cjd-toast{bottom:12vh;font-size:13px;padding:9px 13px}
}


/* ==========================================================================
   V1.0.51 · PERFIL SOCIAL
   Amigos, búsqueda, solicitudes y presencia. Todo vive dentro de Mi cuenta.
   ========================================================================== */
.cjd-account-card .cjd-profile-main h2{font-size:31px}
.cjd-account-card .cjd-profile-meta{font-size:15px}
.cjd-account-card .cjd-stats b{font-size:24px}
.cjd-account-card .cjd-stats span{font-size:13px}
.cjd-social-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:4px 0 12px}
.cjd-social-summary-btn{border:1px solid #e0e8e4;border-radius:13px;background:#f4f8f6;padding:10px 12px;cursor:pointer;color:var(--cjd-text)}
.cjd-social-summary-btn strong{display:block;font-size:22px;line-height:1.05}
.cjd-social-summary-btn span{display:block;font-size:12px;margin-top:3px;opacity:.7}
.cjd-account-actions-social{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.cjd-account-actions-social .cjd-btn{margin:0;font-size:16px;padding:11px 10px}
.cjd-account-actions-social .cjd-request-button{position:relative}
.cjd-request-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;margin-left:6px;border-radius:999px;background:#d83d3d;color:#fff;font-size:11px;font-weight:800;box-sizing:border-box}
.cjd-people-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.cjd-people-search input{margin:0!important}
.cjd-people-results,.cjd-friends-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.cjd-person-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid #e2e9e5;border-radius:13px;padding:9px 10px;background:#fff}
.cjd-person-avatar{position:relative;width:50px;height:50px;border-radius:50%;overflow:visible;background:#e8efeb;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 5px rgba(0,0,0,.08)}
.cjd-person-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.cjd-person-avatar>span{font-size:19px;font-weight:800;color:#24533f}
.cjd-online-dot{position:absolute;right:0;bottom:1px;width:12px;height:12px;border-radius:50%;background:#21a45f;border:2px solid #fff;box-sizing:border-box}
.cjd-person-info{min-width:0;display:flex;flex-direction:column;gap:2px}
.cjd-person-info strong{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cjd-person-info>span{font-size:13px;opacity:.68;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cjd-active-label{font-size:11px;color:#16814e;font-weight:800}
.cjd-mini-action{border:0;border-radius:9px;background:#e9efec;padding:7px 9px;font-size:12px;cursor:pointer;white-space:nowrap}
.cjd-mini-action.primary{background:var(--cjd-green);color:#fff}
.cjd-request-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.cjd-relation-state{font-size:12px;font-weight:700;opacity:.68;text-align:right}
.cjd-relation-state.rejected{color:#a34343}
.cjd-empty-social{display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:12px;background:#f5f8f6}
.cjd-empty-social strong{font-size:16px}
.cjd-empty-social span{font-size:13px;opacity:.68}
.cjd-account-logout{text-align:center;margin:18px 0 5px}
.cjd-account-logout button{border:0;background:transparent;color:#6b7470;text-decoration:underline;text-underline-offset:3px;font-size:12px;cursor:pointer;padding:5px 9px;opacity:.72}
.cjd-account-logout button:hover{opacity:1}

@media(max-width:560px){
  .cjd-account-card .cjd-profile-main h2{font-size:26px}
  .cjd-account-card .cjd-profile-meta{font-size:13px}
  .cjd-account-card .cjd-stats b{font-size:25px}
  .cjd-account-card .cjd-stats span{font-size:14px}
  .cjd-account-actions-social .cjd-btn{font-size:17px;padding:12px 8px}
  .cjd-person-row{grid-template-columns:48px minmax(0,1fr) auto;gap:8px;padding:9px}
  .cjd-person-avatar{width:46px;height:46px}
  .cjd-person-info strong{font-size:16px}
  .cjd-person-info>span{font-size:12px}
  .cjd-request-row{grid-template-columns:46px minmax(0,1fr)}
  .cjd-request-row .cjd-request-actions{grid-column:1/-1;justify-content:flex-end}
  .cjd-people-search{grid-template-columns:1fr}
  .cjd-people-search .cjd-btn{width:100%;margin:0}
}


/* ==========================================================================
   V1.0.52 · PAREJAS ENTRE AMIGOS
   Invitación/confirmación 30 s. El banner es deliberadamente compacto.
   ========================================================================== */
.cjd-friend-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.cjd-pair-banner{position:fixed;left:50%;top:18px;transform:translateX(-50%);z-index:2147483646;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;width:min(92vw,520px);padding:10px 12px;border-radius:15px;background:rgba(13,48,36,.96);color:#fff;box-shadow:0 10px 34px rgba(0,0,0,.28);box-sizing:border-box}
.cjd-pair-banner.cjd-hidden{display:none!important}
.cjd-pair-banner-avatar{width:42px;height:42px;border-radius:50%;overflow:hidden;background:#e7efea;color:#1e513d;display:flex;align-items:center;justify-content:center;font-weight:800}
.cjd-pair-banner-avatar img{width:100%;height:100%;object-fit:cover}
.cjd-pair-banner-copy{min-width:0;display:flex;flex-direction:column;gap:2px}
.cjd-pair-banner-copy strong{font-size:14px;line-height:1.2}
.cjd-pair-banner-copy span{font-size:12px;opacity:.78}
.cjd-pair-banner-actions{display:flex;gap:5px;align-items:center}
.cjd-pair-banner .cjd-mini-action{font-size:12px}
@keyframes dccPairAttention{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(255,196,45,0)}45%{transform:scale(1.035);box-shadow:0 0 0 7px rgba(255,196,45,.18)}}
#cjd-new-search.cjd-pair-attention{animation:dccPairAttention .85s ease-in-out infinite;border-color:#e3b62a!important}

@media(max-width:560px){
 .cjd-pair-banner{top:8px;grid-template-columns:38px minmax(0,1fr);gap:8px;padding:9px 10px}
 .cjd-pair-banner-avatar{width:36px;height:36px}
 .cjd-pair-banner-actions{grid-column:1/-1;justify-content:flex-end}
 .cjd-pair-banner-copy strong{font-size:13px}
 .cjd-friend-actions{flex-direction:column;align-items:stretch}
 .cjd-friend-actions .cjd-mini-action{width:100%}
}


/* ==========================================================================
   V1.0.55 · PERFIL SOCIAL ENFOCADO EN JUGAR
   Vista previa de 5 amigos activos + menú ⋮ para opciones secundarias.
   ========================================================================== */
.cjd-profile-head{position:relative}
.cjd-profile-menu-wrap{position:absolute;right:0;top:0;z-index:25}
.cjd-profile-menu-btn{width:38px;height:38px;border:0;border-radius:50%;background:transparent;font-size:27px;line-height:1;cursor:pointer;color:var(--cjd-text);opacity:.68}
.cjd-profile-menu-btn:hover{background:#eef3f0;opacity:1}
.cjd-profile-menu{position:absolute;right:0;top:42px;min-width:155px;padding:6px;border-radius:12px;background:#fff;border:1px solid #dfe7e3;box-shadow:0 10px 28px rgba(0,0,0,.16)}
.cjd-profile-menu-item{display:block;width:100%;border:0;background:transparent;text-align:left;padding:9px 10px;border-radius:8px;font-size:14px;cursor:pointer;color:var(--cjd-text)}
.cjd-profile-menu-item:hover{background:#f0f5f2}
.cjd-profile-menu-item.danger{color:#8b3b3b}
.cjd-active-friends-preview{margin:14px 0 12px;padding:13px;border:1px solid #dfe8e3;border-radius:15px;background:#f8fbf9}
.cjd-active-friends-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}
.cjd-active-friends-head h3{display:flex;align-items:center;gap:7px;margin:0;font-size:19px}
.cjd-active-friends-head span{display:block;margin-top:3px;font-size:12px;opacity:.68}
.cjd-live-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#1ca75e;box-shadow:0 0 0 4px rgba(28,167,94,.12)}
.cjd-active-friends-list{display:flex;flex-direction:column;gap:7px}
.cjd-active-friend-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:9px;padding:7px 8px;border-radius:12px;background:#fff;border:1px solid #e4ebe7}
.cjd-active-friend-row .cjd-person-avatar{width:44px;height:44px}
.cjd-active-friend-row .cjd-person-info strong{font-size:16px}
.cjd-show-more-active{display:block;width:100%;margin-top:8px;padding:8px;border:0;border-radius:10px;background:#eaf1ed;color:#204b39;font-weight:750;font-size:13px;cursor:pointer}
.cjd-empty-social.compact{padding:10px 12px}
.cjd-account-actions-social{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:560px){
 .cjd-profile-main{padding-right:35px}
 .cjd-profile-menu-wrap{right:-2px;top:-2px}
 .cjd-profile-menu{right:0}
 .cjd-active-friends-preview{padding:10px}
 .cjd-active-friend-row{grid-template-columns:42px minmax(0,1fr) auto;gap:7px;padding:7px}
 .cjd-active-friend-row .cjd-person-avatar{width:40px;height:40px}
 .cjd-active-friend-row .cjd-mini-action{font-size:11px;padding:7px 8px}
 .cjd-account-actions-social{grid-template-columns:1fr 1fr}
 .cjd-account-actions-social .cjd-request-button{grid-column:1/-1}
}


/* ==========================================================================
   V1.0.60 · CORE MÍNIMO
   Mi Cuenta es la pantalla principal. Solo se destacan Jugar y Ranking.
   ========================================================================== */
.cjd-main-actions{display:grid;grid-template-columns:1.35fr 1fr;gap:10px;margin:14px 0 18px}
.cjd-main-action{display:flex;align-items:center;gap:12px;min-height:68px;padding:12px 14px;border-radius:15px;text-decoration:none!important;border:1px solid #dce7e1;background:#f7faf8;color:inherit;box-sizing:border-box}
.cjd-main-action.play{background:#0d6b45;color:#fff;border-color:#0d6b45}
.cjd-main-action-icon{font-size:27px;line-height:1;flex:0 0 auto}
.cjd-main-action span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.cjd-main-action strong{font-size:18px;line-height:1.1}
.cjd-main-action small{font-size:12px;opacity:.72}
.cjd-play-minimal{max-width:820px}
.cjd-play-autostart{display:flex;justify-content:center;margin-bottom:8px}
.cjd-play-autostart>.cjd-play-mode:not(.cjd-hidden){appearance:none;border:0;border-radius:13px;background:#0d6b45;color:#fff;font-weight:800;font-size:17px;padding:12px 22px;cursor:pointer}



@media(max-width:560px){
  .cjd-main-actions{grid-template-columns:1fr 1fr;gap:8px}
  .cjd-main-action{min-height:64px;padding:10px}
  .cjd-main-action-icon{font-size:23px}
  .cjd-main-action strong{font-size:16px}
  .cjd-main-action small{font-size:11px}
}

/* ---------- Lobby principal de Dominó ----------
   Entrada pública individual. La búsqueda con pareja sigue en Mi Cuenta. */
.cjd-lobby-wrap{max-width:1380px;margin:20px auto;padding:0 14px}
.cjd-lobby-shell{background:#5e665f;border-radius:30px;padding:24px 22px 40px;color:#fff;box-sizing:border-box;min-height:650px}
.cjd-lobby-kicker{font-size:13px;font-weight:900;letter-spacing:1.4px;text-transform:uppercase;margin-bottom:2px}
.cjd-lobby-title{color:#fff!important;font-size:48px!important;font-weight:500!important;line-height:1.1!important;margin:0 0 30px!important}
.cjd-lobby-panel{width:min(735px,100%);margin:0 auto;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);border-radius:24px;padding:40px 30px 28px;text-align:center;box-sizing:border-box}
.cjd-lobby-icon{font-size:48px;line-height:1;margin-bottom:14px}
.cjd-lobby-panel h2{color:#fff!important;font-size:34px!important;line-height:1.15!important;margin:0 0 8px!important}
.cjd-lobby-panel>p{max-width:620px;margin:0 auto 28px;color:#f4f2df;font-size:19px;line-height:1.5}
.cjd-lobby-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}
.cjd-lobby-stats>div{background:rgba(255,255,255,.12);border-radius:14px;padding:12px 8px;min-width:0}
.cjd-lobby-stats span{display:block;font-size:11px;letter-spacing:.4px;opacity:.88;margin-bottom:4px}
.cjd-lobby-stats strong{display:block;color:#fff;font-size:19px;white-space:nowrap}
.cjd-lobby-search{display:block;width:100%;border:0;border-radius:14px;padding:18px 20px;background:#83bd45;color:#fff;font:inherit;font-size:20px;font-weight:800;cursor:pointer;box-shadow:none}
.cjd-lobby-search:hover{filter:brightness(1.04)}
.cjd-lobby-search:focus-visible{outline:3px solid #fff;outline-offset:3px}
@media(max-width:700px){
 .cjd-lobby-wrap{margin:10px auto;padding:0 8px}
 .cjd-lobby-shell{border-radius:22px;padding:20px 14px 26px;min-height:0}
 .cjd-lobby-title{font-size:38px!important;margin-bottom:22px!important}
 .cjd-lobby-panel{padding:30px 16px 18px;border-radius:20px}
 .cjd-lobby-panel h2{font-size:28px!important}
 .cjd-lobby-panel>p{font-size:16px;margin-bottom:20px}
 .cjd-lobby-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 .cjd-lobby-search{font-size:18px;padding:16px}
}
