/* ===== Tournoi Domino — styles ===== */
.dom{
  --dom-bg:#0c1118; --dom-bg2:#121a24; --dom-panel:#162130; --dom-line:#26344a;
  --dom-ink:#e9eef5; --dom-muted:#90a0b5; --dom-ivory:#f4ecdc; --dom-gold:#e7b53c;
  --dom-green:#37c98a; --dom-red:#ff6b6b; --dom-accent:#3aa0ff;
  color:var(--dom-ink); font-family:system-ui,Segoe UI,Roboto,sans-serif; line-height:1.45;
}
.dom *{box-sizing:border-box}
.dom h2{font-size:24px;margin:0 0 12px;letter-spacing:.3px}
.dom h3{font-size:18px;margin:14px 0 8px;color:var(--dom-ivory)}
.dom-loading,.dom-empty{padding:24px;text-align:center;color:var(--dom-muted);background:var(--dom-bg2);border:1px solid var(--dom-line);border-radius:12px}
.dom-legend{color:var(--dom-muted);font-size:13px;margin-top:10px}
.dom-btn{display:inline-block;cursor:pointer;border:none;border-radius:10px;padding:11px 18px;font-weight:700;
  background:linear-gradient(135deg,var(--dom-gold),#caa12f);color:#1a1206;font-size:15px}
.dom-btn:hover{filter:brightness(1.07)}
.dom-done{font-size:11px;color:var(--dom-muted);border:1px solid var(--dom-line);border-radius:6px;padding:1px 5px}

/* Tableaux */
.dom-tablewrap{overflow-x:auto;border:1px solid var(--dom-line);border-radius:12px;background:var(--dom-bg2)}
.dom-board{width:100%;border-collapse:collapse;font-size:15px}
.dom-board th{background:var(--dom-panel);color:var(--dom-muted);font-weight:600;text-transform:uppercase;font-size:11px;letter-spacing:.5px;padding:10px 8px;text-align:center}
.dom-board th.l{text-align:left}
.dom-board td{padding:9px 8px;border-top:1px solid var(--dom-line);text-align:center}
.dom-board td.l{text-align:left}
.dom-board td.num{color:var(--dom-muted)}
.dom-board small{color:var(--dom-muted)}
.dom-pts{font-weight:800;color:var(--dom-gold);font-size:16px}
.dom-rank{font-weight:800;color:var(--dom-muted)}
.dom-rank.r1{color:#ffd84d}.dom-rank.r2{color:#cfd8e3}.dom-rank.r3{color:#e0a06a}

/* Pastilles statut */
.dom-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 11px;font-size:12px;font-weight:700;
  background:var(--dom-panel);border:1px solid var(--dom-line);color:var(--dom-muted)}
.dom-pill.live{color:#0c1118;background:var(--dom-green);border-color:transparent}
.dom-pill.ended{color:#0c1118;background:#c7d0db;border-color:transparent}
.dom-pill.ready{color:#0c1118;background:var(--dom-gold);border-color:transparent}
.dom-pill.free{background:transparent}
.dom-pill.big{font-size:15px;padding:6px 16px}

/* Console */
.dom-tables{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-top:8px}
.dom-tcard{background:var(--dom-bg2);border:1px solid var(--dom-line);border-radius:12px;padding:12px 14px}
.dom-tcard.free{opacity:.7}
.dom-th{font-weight:800;font-size:16px;margin-bottom:8px;color:var(--dom-ivory);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dom-th small{color:var(--dom-muted);font-weight:500}
.dom-prow{display:flex;align-items:center;gap:8px;padding:7px 0;border-top:1px dashed var(--dom-line)}
.dom-prow.won .dom-pn{color:var(--dom-gold)}
.dom-pn{flex:1;font-weight:600}
.dom-mc{min-width:26px;text-align:center;font-weight:800;font-size:18px;color:var(--dom-gold)}
.dom-mbtns{display:flex;gap:6px}
.dom-mm,.dom-mp{cursor:pointer;border:1px solid var(--dom-line);background:var(--dom-panel);color:var(--dom-ink);border-radius:8px;padding:6px 10px;font-weight:700}
.dom-mp{background:linear-gradient(135deg,var(--dom-green),#27a771);color:#06150e;border-color:transparent}
.dom-mm{width:34px}

/* ===== Affichage salle (plein écran) ===== */
.dom-affichage{display:block}
.dom-disp-wait{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;padding:40px 20px}
.dom-disp-title{font-size:clamp(28px,5vw,56px);font-weight:900;letter-spacing:.5px;color:var(--dom-ivory)}
.dom-cd{margin-top:6px}
.dom-cdv{font-variant-numeric:tabular-nums;font-size:clamp(36px,8vw,84px);font-weight:900;color:var(--dom-gold);display:block;line-height:1}
.dom-cd small,.dom-wait-info{color:var(--dom-muted);font-size:16px}
.dom-disp-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.dom-disp-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:18px}
@media(max-width:900px){.dom-disp-grid{grid-template-columns:1fr}}
.dom-disp-tables{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.dom-dt{background:var(--dom-ivory);color:#1c1408;border-radius:14px;padding:12px 14px;box-shadow:0 6px 20px rgba(0,0,0,.35);position:relative}
.dom-dt.free{background:var(--dom-bg2);color:var(--dom-muted);box-shadow:none;border:1px dashed var(--dom-line)}
.dom-dt.fresh{outline:3px solid var(--dom-gold);animation:domPop .6s ease}
@keyframes domPop{from{transform:scale(.94)}to{transform:scale(1)}}
.dom-dt-h{font-weight:900;font-size:17px;margin-bottom:8px;border-bottom:2px solid rgba(0,0,0,.12);padding-bottom:5px}
.dom-dt.free .dom-dt-h{border-color:var(--dom-line)}
.dom-dt-free{font-size:14px;font-style:italic;padding:10px 0}
.dom-dp{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 0;font-size:18px}
.dom-dp b{font-size:22px;min-width:28px;text-align:center}
.dom-dp.lead b{color:#a9791a}
.dom-dp.lead span{font-weight:800}
.dom-disp-rank{background:var(--dom-bg2);border:1px solid var(--dom-line);border-radius:14px;padding:12px 16px;height:fit-content}
.dom-rk{display:flex;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--dom-line);font-size:18px}
.dom-rk:first-of-type{border-top:none}
.dom-rk-n{font-weight:900;color:var(--dom-muted);min-width:28px;text-align:center}
.dom-rk-n.r1{color:#ffd84d}.dom-rk-n.r2{color:#cfd8e3}.dom-rk-n.r3{color:#e0a06a}
.dom-rk-name{flex:1;font-weight:600}
.dom-rk-pt{font-weight:900;color:var(--dom-gold);font-size:20px}

/* Bandeau déroulant table libérée */
.dom-banner{overflow:hidden;background:linear-gradient(90deg,#1d2940,#101826);border:1px solid var(--dom-gold);border-radius:10px;margin-bottom:12px}
.dom-banner-in{white-space:nowrap;padding:9px 12px;font-weight:700;color:var(--dom-gold);animation:domMarquee 16s linear infinite}
@keyframes domMarquee{from{transform:translateX(8%)}to{transform:translateX(-100%)}}

/* ===== Tirage (animation) ===== */
.dom-draw h2{text-align:center;font-size:clamp(24px,4vw,40px)}
.dom-draw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-top:14px}
.dom-draw-card{background:var(--dom-panel);border:1px solid var(--dom-line);border-radius:14px;padding:14px}
.dom-draw-th{font-weight:900;font-size:18px;color:var(--dom-gold);margin-bottom:10px;text-align:center}
.dom-draw-players{display:flex;flex-direction:column;gap:8px}
.dom-chip{background:var(--dom-ivory);color:#1c1408;border-radius:10px;padding:9px 12px;text-align:center;font-weight:800;font-size:17px;min-height:40px}
.dom-chip.rolling{color:#8a7a55;font-size:22px}
.dom-chip.done{animation:domFlip .4s ease}
@keyframes domFlip{from{transform:rotateX(80deg);opacity:.2}to{transform:rotateX(0);opacity:1}}
