/* =========================================
   CartasGitanas — tirada-ia.css (PROD)
   ========================================= */

/* ---------- Base (desktop/tablet) ---------- */
.cg-wrapper {
  max-width: 1100px;
  margin: 24px auto;
  padding: 20px;
  border-radius: 16px;
  background: #0f3a2e;          /* verde tema */
  color: #f4f5f2;
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 10px 30px rgba(0,0,0,.15) inset, 0 8px 24px rgba(0,0,0,.15);
}
.cg-title   { font: 600 1.8rem/1.2 system-ui, -apple-system, Segoe UI, Roboto, sans-serif; color:#f0c86e; margin:6px 0; }
.cg-subtitle{ color:#d8e3dc; opacity:.9; margin-bottom:18px; }

.cg-card-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(220px, 1fr));
  grid-template-rows: repeat(3, auto);
  gap: 16px;
  align-items:start;
  justify-items:center;
}
.cg-slot{ width:100%; max-width:280px; }
.cg-slot-empty{ visibility:hidden; }

.cg-card{
  position:relative;
  width:100%;
  border:1px solid rgba(255,255,255,.15);
  border-radius:14px;
  padding:12px;
  background:rgba(255,255,255,.06);
}
.cg-pos-title{ font-weight:600; margin-bottom:8px; color:#f0c86e; }
.cg-thumb-wrap{ position:relative; margin-bottom:8px; }
.cg-card-thumb{
  width:100%;
  padding-top:135%;
  background:#204b40;
  background-size:contain; /* evitar recorte arriba/abajo */
  background-repeat:no-repeat;
  background-position:center;
  border-radius:10px;
  transition:transform .2s;
  will-change: transform;
}
.cg-card-thumb.picked{ box-shadow: 0 0 0 3px rgba(240,200,110,.8), 0 0 18px rgba(240,200,110,.45); }
.cg-card-thumb.is-reversed{ transform:rotate(180deg); }

.cg-picker{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.cg-select{
  flex:1; min-width:0;
  padding:6px 8px;
  border-radius:8px;
  border:1px solid #cfd8d3;
  background:#fff; color:#111;
}
.cg-check{ display:flex; align-items:center; gap:6px; }
.cg-name{ margin-top:8px; font-size:.95rem; }

/* Ocultar cualquier selector/controles manuales (solo auto‑pick) */
#cg-tirada-ia select,
#cg-tirada-ia .cg-select,
#cg-tirada-ia .cg-picker,
#cg-tirada-ia .cg-dropdown,
#cg-tirada-ia [data-cg-manual]{
  display:none !important;
}

/* Badge cuando está invertida (visible también en móvil) */
.cg-badge-inv{
  display:none;
  margin-top:8px;
  text-align:center;
  font-weight:700;
  color:#f0f0f0;
  background:#2e5a2d;
  border-radius:6px;
  padding:6px 10px;
}
.cg-badge-inv.is-on{ display:block; }

.cg-controls{ display:flex; gap:10px; margin-top:14px; }
.cg-btn{
  padding:8px 14px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:10px;
  background:rgba(255,255,255,.06);
  color:#fff; cursor:pointer;
}
.cg-btn:hover{ border-color:#f0c86e; }
.cg-primary{ border-color:#f0c86e; }
.cg-btn--danger{ background:#6a1a1a; border-color:#6a1a1a; color:#fff; }

/* Realce cuando está lista la consulta */
#cg-consultar.is-ready{ box-shadow: 0 0 0 3px #f0c86e inset, 0 0 14px rgba(240,200,110,.8); animation: cg-pulse-btn 1s ease-in-out 2; }
@keyframes cg-pulse-btn{ 0%{ filter:brightness(1) } 50%{ filter:brightness(1.2) } 100%{ filter:brightness(1) } }

/* Ocultar botón Reiniciar (se permite solo 1 reintento por carta) */
#cg-reset, #cg-reiniciar { display:none !important; }

.cg-result{
  margin-top:18px;
  white-space:pre-wrap;
  background:rgba(0,0,0,.2);
  padding:14px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.12);
}
.cg-loading{
  margin-top:10px;
  padding:8px 12px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.15);
  background: rgba(255,255,255,.06);
  display:inline-block;
}
#cg-continue{ margin-top:12px; font-size:.95rem; opacity:.85; }

/* Estados deshabilitados (consistentes con el JS) */
#cg-consultar[disabled],
#cg-consultar[aria-disabled="true"],
#cg-reset[disabled],
#cg-reset[aria-disabled="true"],
.cg-btn[disabled],
.cg-btn[aria-disabled="true"]{
  opacity:.6!important;
  cursor:not-allowed!important;
  pointer-events:none!important;
  filter:grayscale(.2) brightness(.95);
}

/* ---------- Accesibilidad ---------- */
.cg-btn:focus-visible,
.cg-select:focus-visible,
.cg-check input:focus-visible {
  outline: 2px solid #f0c86e;
  outline-offset: 2px;
}

/* ---------- Skeletons de carga ---------- */
.cg-skel{
  background: linear-gradient(90deg, rgba(255,255,255,.08), rgba(255,255,255,.18), rgba(255,255,255,.08));
  background-size: 200% 100%;
  animation: cg-skel 1.25s linear infinite;
  border-radius: 8px;
}
@keyframes cg-skel {
  0%{background-position:200% 0} 100%{background-position:-200% 0}
}
@media (prefers-reduced-motion: reduce) {
  .cg-card-thumb{ transition: none; }
  .cg-skel{ animation: none; }
}

/* ---------- SOLO MÓVIL: cruz 1–3–1 + UX ---------- */
@media (max-width: 680px) {
  /* anti-desborde y tacto */
  html, body{ max-width:100%; overflow-x:hidden; }
  *, *::before, *::after{ box-sizing:border-box; }
  img, svg, video, canvas { max-width:100%; height:auto; }
  .cg-btn, .cg-select, .cg-check input {
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }

  /* ocultar títulos generales */
  .cg-title, .cg-subtitle { display:none !important; }

  /* grid cruz */
  .cg-card-grid{
    --gap: 8px;
    --cell: clamp(96px, calc((100% - (2 * var(--gap))) / 3), 136px);
    display:grid;
    grid-template-columns: repeat(3, var(--cell));
    grid-auto-rows:auto;
    gap: var(--gap);
    align-items:start;
    justify-content:center;
  }
  .cg-slot{ width:var(--cell); }
  .cg-slot-empty{ visibility:hidden; }

  /* tarjeta compacta */
  .cg-card{
    width:var(--cell);
    max-width:var(--cell);
    padding:8px 8px 10px;
    border-radius:10px;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.12);
  }

  /* barra amarilla (posición) */
  .cg-pos-title{
    margin:0 0 6px;
    font-size:.92rem;
    line-height:1.05;
    padding:4px 8px;
    background:#efeaa7;
    color:#222;
    border-radius:8px;
    text-align:center;
    text-transform:lowercase;
    white-space:normal;
    word-break:break-word;
    hyphens:auto;
  }

  /* carta 2:3 + overlay */
  .cg-thumb-wrap{ position:relative; margin-bottom:6px; }
  .cg-card-thumb{
    border-radius:8px;
    padding-top:150%;             /* 2:3 */
    background-color:#f0f0f0;
    background-size:contain;
    background-repeat:no-repeat;
    background-position:center;
  }
  .cg-card-thumb.is-reversed{ transform:rotate(180deg); }

  /* Texto guía dentro de la carta (no captura eventos) */
  .cg-choose{
    position:absolute;
    inset:12% 12%;
    display:flex; align-items:center; justify-content:center;
    text-align:center;
    font-weight:700; font-size:16px; line-height:1.3;
    padding:8px;
    border-radius:10px;
    border:1px solid #cfd8d3;
    background:#fff; color:#111;
    box-shadow:0 2px 8px rgba(0,0,0,.18);
    z-index:2;
    pointer-events:none;
  }

  /* SELECT OVERLAY: invisible pero clickeable encima del texto guía */
  .cg-select.overlay{
    position:absolute !important;
    inset:12% 12% !important;
    width:auto !important;
    height:auto !important;
    opacity:0 !important;         /* invisible */
    z-index:3 !important;         /* por encima de .cg-choose */
    appearance:none;
    -webkit-appearance:none;
    font-size:16px;               /* evita zoom iOS */
    cursor:pointer;
  }

  /* (legacy) neutraliza .vh si quedó en caché */
  .cg-select.vh{
    position:static !important; left:auto !important;
    width:auto !important; height:auto !important; overflow:visible !important;
    opacity:1 !important;
  }

  /* check + texto “Invertir” */
  .cg-check{ display:flex; align-items:center; gap:6px; font-size:13px; }
  .cg-check input{ width:18px; height:18px; }

  /* banda inferior cuando está invertida */
  .cg-badge-inv{
    margin-top:6px;
    display:none;
    text-align:center;
    font-weight:700;
    color:#f0f0f0;
    background:#2e5a2d;
    border-radius:6px;
    padding:6px 10px;
  }
  .cg-badge-inv.is-on{ display:block; }

  /* botonera inferior sticky, compacta */
  .cg-controls{
    position:sticky; bottom:0; z-index:40;
    display:flex; gap:8px; flex-wrap:wrap;
    margin-top:10px; padding:8px;
    border-radius:10px;
    background:rgba(15,58,46,.9);
    -webkit-backdrop-filter:blur(6px);
    backdrop-filter:blur(6px);
    border:1px solid rgba(255,255,255,.08);
    padding-bottom:calc(8px + env(safe-area-inset-bottom, 0px)); /* FIX: antes tenía un punto delante */
  }
  .cg-btn{ min-height:48px; border-radius:10px; font-size:16px; }
  .cg-btn--danger{ background:#6a1a1a; border-color:#6a1a1a; color:#fff; }
}

/* ===== Hotfix: tipografía compacta + ocultar nombre de carta ===== */
.cg-name { display: none !important; }

@media (max-width: 680px) {
  .cg-card-grid{
    --gap: 8px !important;
    --cell: clamp(96px, calc((100% - (2 * var(--gap))) / 3), 132px) !important;
  }
  .cg-card{ padding: 7px 7px 9px !important; border-radius: 10px !important; }
  .cg-pos-title{ font-size: .78rem !important; padding: 3px 7px !important; margin-bottom: 6px !important; }
  .cg-choose{ inset: 10% 10% !important; font-size: 13px !important; padding: 6px !important; }
  .cg-check{ font-size: 12px !important; gap: 6px !important; }
  .cg-check input{ width: 17px !important; height: 17px !important; }
}
