/* ==========================================================
   Ludéales — Ancienne (réussite)
   ========================================================== */

.anc-play{padding:28px 0 64px}
.anc-playhead{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:18px;flex-wrap:wrap;margin-bottom:22px;
}
.anc-playhead h1{font-size:clamp(28px,4vw,42px);letter-spacing:-.015em}
.anc-playhead .origin{
  font-size:11px;text-transform:uppercase;letter-spacing:.13em;
  color:var(--lavande-fonce);font-weight:700;
}
.anc-playhead-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}

.anc-board{
  background:var(--blanc);
  border:1px solid var(--ligne);
  border-radius:calc(var(--rayon) + 2px);
  box-shadow:var(--ombre);
  padding:22px 20px 26px;
  position:relative;
  overflow:hidden;
}
.anc-board::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;
  background:
    radial-gradient(ellipse 70% 50% at 10% 0%, rgba(212,196,240,.35), transparent 55%),
    radial-gradient(ellipse 60% 45% at 100% 100%, rgba(184,216,234,.3), transparent 50%);
}

.anc-toolbar{
  position:relative;z-index:1;
  display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;
  margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--ligne);
}
.anc-status{
  font-size:13.5px;color:var(--encre-doux);font-weight:600;
}
.anc-status strong{color:var(--encre);font-weight:700}
.anc-status.win{color:#2f7a4a}
.anc-status.lose{color:#a14a3a}

.anc-layout{
  position:relative;z-index:1;
  display:flex;flex-direction:column;gap:28px;
}

.anc-row{
  display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap;
}
.anc-row-top{justify-content:space-between}
.anc-row-cols{justify-content:center;gap:16px}

.anc-group{
  display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap;
}
.anc-label{
  display:block;width:100%;margin-bottom:8px;
  font-size:10.5px;text-transform:uppercase;letter-spacing:.13em;
  font-weight:700;color:var(--encre-doux);
}

/* ---------- emplacements ---------- */
.anc-slot{
  --card-w:86px;
  --card-h:120px;
  width:var(--card-w);height:var(--card-h);
  position:relative;
  border-radius:10px;
  border:1.5px dashed rgba(61,53,88,.22);
  background:rgba(245,241,250,.55);
  transition:background .15s,border-color .15s,box-shadow .15s;
}
.anc-slot.targetable{
  border-color:var(--corail);
  background:rgba(232,146,90,.12);
  box-shadow:0 0 0 3px rgba(232,146,90,.18);
}
.anc-slot.suite-slot{background:rgba(184,216,234,.18)}
.anc-slot.col-slot{
  height:auto;min-height:var(--card-h);
  padding-bottom:8px;
}

.anc-slot-stack{
  position:relative;width:100%;min-height:var(--card-h);
}

/* ---------- cartes ---------- */
.anc-card{
  --card-w:86px;
  --card-h:120px;
  width:var(--card-w);height:var(--card-h);
  border-radius:10px;
  background:linear-gradient(165deg,#fffef9 0%,#f7f0e6 100%);
  border:1px solid rgba(61,53,88,.18);
  box-shadow:0 2px 8px rgba(61,53,88,.1),0 1px 0 rgba(255,255,255,.85) inset;
  position:absolute;left:0;top:0;
  cursor:grab;user-select:none;
  font-family:var(--serif);
  transition:transform .15s,box-shadow .15s;
  touch-action:none;
  overflow:hidden;
}
.anc-card.red{color:#c23b2e}
.anc-card.black{color:var(--encre)}
.anc-card:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(61,53,88,.14)}
.anc-card.selected{
  transform:translateY(-10px) scale(1.04);
  box-shadow:0 12px 28px rgba(61,53,88,.2),0 0 0 3px var(--corail);
  z-index:20 !important;
}
.anc-card.anc-dragging-source{
  opacity:.35;
  transform:none;
  box-shadow:none;
  cursor:grabbing;
}
.anc-ghost{
  position:fixed !important;
  top:0;left:0;
  margin:0;
  z-index:9999 !important;
  pointer-events:none !important;
  opacity:1;
  cursor:grabbing;
  box-shadow:0 16px 36px rgba(61,53,88,.28),0 0 0 2px var(--corail);
  transform-origin:top left;
  transition:none !important;
}
.anc-slot.drag-over{
  border-color:var(--corail);
  background:rgba(232,146,90,.22);
  box-shadow:0 0 0 3px rgba(232,146,90,.28);
}
.anc-suite-mark{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:28px;opacity:.28;color:var(--encre);pointer-events:none;
}

/* Art SVG / images plein cadre */
.anc-card .anc-face-art,
.anc-card .anc-pip-art,
.anc-card .anc-face-img{
  display:block;width:100%;height:100%;
  pointer-events:none;
  object-fit:cover;
  border-radius:inherit;
}

.anc-card.face-down{
  background:
    linear-gradient(145deg, var(--lavande-moy) 0%, var(--lavande-fonce) 100%);
  border-color:rgba(61,53,88,.2);
  cursor:pointer;
}
.anc-card.face-down::after{
  content:"";position:absolute;inset:10px;border-radius:6px;
  border:1.5px solid rgba(255,251,247,.45);
  background:
    radial-gradient(circle at 50% 50%, rgba(255,251,247,.2) 0 28%, transparent 30%),
    repeating-linear-gradient(45deg, transparent, transparent 6px, rgba(255,251,247,.12) 6px, rgba(255,251,247,.12) 7px);
}
.anc-card.face-down:hover{transform:translateY(-2px)}

/* fallback sans CardArt */
.anc-card .rank{
  position:absolute;top:7px;left:9px;
  font-size:18px;font-weight:700;line-height:1;
}
.anc-card .suit-corner{
  position:absolute;top:26px;left:9px;font-size:14px;line-height:1;
}
.anc-card .suit-center{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:36px;opacity:.92;
}
.anc-card .rank-br{
  position:absolute;bottom:7px;right:9px;
  font-size:18px;font-weight:700;line-height:1;
  transform:rotate(180deg);
}

.anc-talon-wrap,.anc-waste-wrap{position:relative}
.anc-waste-wrap .anc-card,
.anc-talon-wrap .anc-card{position:absolute;left:0;top:0}
.anc-talon-wrap .anc-card.face-down{position:absolute}

.anc-col-slot .anc-card{
  position:absolute;left:0;
}
.anc-slot.suite-slot .anc-card{position:absolute;left:0;top:0;pointer-events:none}

/* ---------- règles latérales / aide ---------- */
.anc-help{
  margin-top:22px;
  display:grid;grid-template-columns:1.2fr .8fr;gap:18px;
}
@media(max-width:800px){.anc-help{grid-template-columns:1fr}}

.anc-help-card{
  background:var(--blanc);border:1px solid var(--ligne);
  border-radius:var(--rayon);padding:18px 18px 16px;box-shadow:var(--ombre);
}
.anc-help-card h2{
  font-size:18px;margin-bottom:8px;letter-spacing:-.01em;
}
.anc-help-card p,.anc-help-card li{
  font-size:14px;color:var(--encre-doux);line-height:1.55;
}
.anc-help-card ul{margin:8px 0 0 1.1em}
.anc-help-card li{margin-bottom:4px}

.anc-overlay{
  position:absolute;inset:0;z-index:30;
  display:flex;align-items:center;justify-content:center;
  background:rgba(61,53,88,.38);backdrop-filter:blur(4px);
  border-radius:inherit;padding:24px;
}
.anc-overlay[hidden]{display:none !important}
.anc-modal{
  background:var(--creme);border:1px solid var(--ligne);
  border-radius:var(--rayon);padding:28px 26px;max-width:360px;width:100%;
  text-align:center;box-shadow:var(--ombre-forte);
}
.anc-modal h2{font-size:28px;margin-bottom:8px}
.anc-modal p{color:var(--encre-doux);margin-bottom:18px;font-size:15px}

@media(max-width:640px){
  .anc-slot,.anc-card{
    --card-w:68px;
    --card-h:96px;
  }
  .anc-card .rank,.anc-card .rank-br{font-size:15px}
  .anc-card .suit-center{font-size:28px}
  .anc-card .suit-corner{font-size:12px;top:22px}
  .anc-row-cols{gap:10px}
}

/* ---------- variantes de plateau ---------- */
.layout-classic .anc-layout-board{
  display:flex;flex-direction:column;gap:28px;
}
.layout-classic .anc-row-cols.cols-4{
  justify-content:center;gap:16px;
}
.layout-classic .anc-row-cols.cols-6{
  display:flex;flex-wrap:nowrap;justify-content:center;
  gap:clamp(6px,1.1vw,12px);overflow-x:auto;padding-bottom:2px;
}
.layout-classic .anc-row-cols.cols-6 .anc-slot{
  --card-w:clamp(58px,9.5vw,82px);
  --card-h:clamp(81px,13.3vw,115px);
  flex:0 0 auto;
}
.layout-classic .anc-suites-row{
  display:flex;gap:12px;justify-content:center;flex-wrap:wrap;
}

.layout-panachee .anc-panachee-board{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:start;
}
@media(max-width:720px){
  .layout-panachee .anc-panachee-board{grid-template-columns:1fr}
}
.layout-panachee .anc-cols-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;
  justify-items:center;margin-bottom:20px;
}
.layout-panachee .anc-suites-stack{
  display:flex;flex-direction:column;gap:12px;
}
.layout-panachee .anc-suites-stack .anc-slot{
  --card-w:86px;
}
@media(max-width:640px){
  .layout-panachee .anc-suites-stack .anc-slot,
  .layout-panachee .anc-cols-grid .anc-slot{
    --card-w:68px;--card-h:96px;
  }
}
.anc-suite-mark.suite-alt-red{color:#c23b2e;opacity:.35}
.anc-suite-mark.suite-alt-black{color:var(--encre);opacity:.35}
