/* MemoMilo v274 — convocation des matchs, tournois programmés, chronomètre de tour, alertes. */
.mq-call{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:18px 16px 24px}
.mq-call-eyebrow{margin:4px 0 0;font-size:11px;font-weight:900;letter-spacing:.14em;color:var(--mq-tp-gold,#f6c453);opacity:.9}
.mq-call-duel{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;width:100%;max-width:420px}
.mq-call-seat{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.mq-call-seat strong{font-size:16px;font-weight:900;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mq-call-seat small{font-size:12px;font-weight:800;opacity:.75}
.mq-call-photo{position:relative;width:86px;height:86px;border-radius:50%;padding:4px;background:linear-gradient(160deg,rgba(255,255,255,.35),rgba(255,255,255,.08));box-shadow:0 0 0 3px rgba(255,255,255,.18),0 10px 24px rgba(0,0,0,.28);transition:box-shadow .3s ease}
.mq-call-photo img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.mq-call-state{position:absolute;right:-2px;bottom:-2px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:15px;background:#4b5563;color:#fff;box-shadow:0 0 0 3px rgba(0,0,0,.25)}
.mq-call-seat.is-ready .mq-call-photo{box-shadow:0 0 0 3px #22c55e,0 0 22px rgba(34,197,94,.55)}
.mq-call-seat.is-ready .mq-call-state{background:linear-gradient(180deg,#4ade80,#16a34a);animation:mq-call-pop .45s cubic-bezier(.3,1.6,.5,1)}
.mq-call-seat:not(.is-ready) .mq-call-state{animation:mq-call-wait 1.4s ease-in-out infinite}
.mq-call-vs span{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;font-weight:900;font-size:15px;color:#3b2500;background:linear-gradient(180deg,#ffe08a,#f2b02f);box-shadow:0 6px 16px rgba(242,176,47,.45)}
.mq-call-ring{position:relative;width:150px;height:150px;margin:4px auto 0}
.mq-call-ring svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.mq-call-track{fill:none;stroke:rgba(255,255,255,.14);stroke-width:9}
.mq-call-arc{fill:none;stroke:#f6c453;stroke-width:9;stroke-linecap:round;stroke-dasharray:326.7;stroke-dashoffset:0;transition:stroke-dashoffset .5s linear,stroke .3s}
.mq-call-ring.is-done .mq-call-arc{stroke:#22c55e}
.mq-call-ring > div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.mq-call-ring strong{font-size:44px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}
.mq-call-ring small{font-size:12px;font-weight:800;opacity:.7}
.mq-call-msg{margin:0;font-size:16px;font-weight:900;line-height:1.35;max-width:32ch}
.mq-call-reminder{margin:0;min-height:1.2em;font-size:14px;font-weight:900;color:#fbbf24}
.mq-call-reminder:empty{min-height:0}
.mq-call-reminder.is-pop{animation:mq-call-shake .5s ease}
.mq-call-note{margin:0;font-size:13px;font-weight:800;opacity:.85}
.mq-call-rules{margin:4px 0 0;font-size:12px;line-height:1.45;opacity:.65;max-width:40ch}
@keyframes mq-call-pop{from{transform:scale(.3)}to{transform:scale(1)}}
@keyframes mq-call-wait{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes mq-call-shake{0%,100%{transform:none}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}

.mq-tp-sched{margin:10px 0;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.08);font-size:13px;line-height:1.45;font-weight:700}
.mq-tp-sched.is-late{background:rgba(251,191,36,.14)}
.mq-tp-start-when{display:grid;grid-template-columns:1.3fr 1fr;gap:8px;margin-top:8px}
.mq-tp-start-when[hidden]{display:none}
.mq-tp-start-when label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:900;letter-spacing:.04em;opacity:.9}
.mq-tp-start-when input{height:46px;border-radius:12px;border:1.5px solid rgba(255,255,255,.25);background:rgba(255,255,255,.95);color:#0c3550;font:inherit;font-weight:900;font-size:16px;padding:0 10px}
[data-mp-start-help].is-error{color:#ff9aa8;font-weight:800}

/* chronomètre des 5 dernières secondes, au-dessus du score du joueur concerné */
.mq-tclock{font-family:"MemoMilo Nunito",Nunito,system-ui,sans-serif;position:fixed;z-index:2147480000;transform:translate(-50%,-112%) scale(.6);opacity:0;pointer-events:none;display:flex;flex-direction:column;align-items:center;
  min-width:62px;padding:6px 10px 5px;border-radius:16px;background:rgba(15,23,42,.88);color:#fff;box-shadow:0 10px 24px rgba(0,0,0,.35);transition:opacity .18s ease,transform .18s ease}
.mq-tclock.is-on{opacity:1;transform:translate(-50%,-112%) scale(1)}
.mq-tclock b{font-size:30px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}
.mq-tclock small{font-size:10px;font-weight:800;opacity:.8;white-space:nowrap}
.mq-tclock.is-mine{background:linear-gradient(180deg,#f97316,#dc2626)}
.mq-tclock.is-tick b{animation:mq-tclock-tick .5s cubic-bezier(.3,1.6,.5,1)}
.mq-tclock.is-zero{background:#7f1d1d}
@keyframes mq-tclock-tick{from{transform:scale(1.6);opacity:.4}to{transform:scale(1);opacity:1}}

/* alerte de tournoi, visible partout dans le jeu */
.mq-tw-banner{font-family:"MemoMilo Nunito",Nunito,system-ui,sans-serif;position:fixed;left:50%;top:calc(env(safe-area-inset-top,0px) + 10px);z-index:2147481000;width:min(94vw,440px);display:flex;align-items:center;gap:10px;padding:12px 12px;border-radius:18px;
  background:linear-gradient(135deg,#1e293b,#0f172a);color:#fff;box-shadow:0 16px 40px rgba(0,0,0,.4),inset 0 0 0 1px rgba(246,196,83,.45);transform:translate(-50%,-140%);transition:transform .35s cubic-bezier(.2,1.1,.3,1)}
.mq-tw-banner.is-on{transform:translate(-50%,0)}
.mq-tw-icon{font-size:26px}
.mq-tw-banner div{flex:1;min-width:0}
.mq-tw-banner strong{display:block;font-size:14px;font-weight:900;line-height:1.25}
.mq-tw-banner small{display:block;font-size:12px;opacity:.8}
.mq-tw-banner [data-tw-open]{border:0;border-radius:999px;padding:9px 14px;font:inherit;font-weight:900;color:#3b2500;background:linear-gradient(180deg,#ffe08a,#f2b02f)}
.mq-tw-x{border:0;background:none;color:#fff;opacity:.6;font-size:16px;padding:6px}
@media (prefers-reduced-motion:reduce){.mq-call *,.mq-tclock,.mq-tclock *,.mq-tw-banner{animation:none!important;transition:none!important}}

/* ---------- v278 · Carte du tournoi officiel dans les notifications ---------- */
.mqe-oc{position:relative;display:flex;flex-direction:column;gap:12px;margin:0 0 12px;padding:16px;border-radius:22px;color:#fff;
  background:linear-gradient(150deg,#1e2a5a 0%,#2b1f55 55%,#4a2a17 120%);box-shadow:0 14px 30px rgba(10,15,40,.28),inset 0 0 0 1px rgba(246,196,83,.35);overflow:hidden}
.mqe-oc::before{content:"";position:absolute;right:-40px;top:-40px;width:170px;height:170px;border-radius:50%;background:radial-gradient(closest-side,rgba(246,196,83,.35),transparent);pointer-events:none}
.mqe-oc.is-new::after{content:"Nouveau";position:absolute;top:12px;right:12px;padding:3px 9px;border-radius:999px;background:#ef4444;color:#fff;font-size:10.5px;font-weight:900;letter-spacing:.04em}
.mqe-oc-head{display:flex;gap:12px;align-items:flex-start;position:relative}
.mqe-oc-cup{flex:none;width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:rgba(255,255,255,.08)}
.mqe-oc-cup svg,.mqe-oc-cup img{width:46px;height:46px}
.mqe-oc-head > div{min-width:0;flex:1}
.mqe-oc-head small{display:block;font-size:10.5px;font-weight:900;letter-spacing:.14em;color:#f6c453}
.mqe-oc-head h3{color:#fff !important;margin:2px 0 2px;font-size:18px;line-height:1.2;font-weight:900;overflow-wrap:anywhere;padding-right:64px}
.mqe-oc-head p{margin:0;font-size:13px;line-height:1.4;opacity:.85}
.mqe-oc-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.mqe-oc-pill{padding:4px 10px;border-radius:999px;font-size:11.5px;font-weight:900;background:rgba(255,255,255,.14);color:#fff}
.mqe-oc-pill.is-registration,.mqe-oc-pill.is-checkin{background:#f6c453;color:#3b2500}
.mqe-oc-pill.is-live{background:#ef4444}
.mqe-oc-pill.is-reg{background:#22c55e;color:#06290f}
.mqe-oc-pill.is-full{background:rgba(255,255,255,.25)}
.mqe-oc-facts{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.mqe-oc-facts li{display:flex;align-items:center;gap:6px;padding:7px 10px;border-radius:12px;background:rgba(255,255,255,.08);font-size:13px}
.mqe-oc-facts b{font-weight:900}
.mqe-oc-count{margin:0;font-size:13px;opacity:.9}
.mqe-oc-count b{font-variant-numeric:tabular-nums;color:#f6c453}
.mqe-oc-cta{min-height:48px;border:0 !important;border-radius:999px;font:inherit;font-size:15px;font-weight:900;color:#3b2500 !important;background:linear-gradient(180deg,#ffe08a,#f2b02f) !important;box-shadow:0 8px 18px rgba(242,176,47,.35);cursor:pointer}
.mqe-oc-cta:active{transform:scale(.98)}

/* ---------- v278 · Vestiaire stable ---------- */
.mq-tp-lobby-settled .mq-tp-seat.mq-tp-enter{animation:none !important}
.mq-tp-seat.mq-tp-arrive{animation:mq-tp-arrive .45s cubic-bezier(.2,1.2,.3,1) both}
@keyframes mq-tp-arrive{from{opacity:0;transform:translateY(8px) scale(.94)}to{opacity:1;transform:none}}
.mq-tp-seat .mq-tp-photo{aspect-ratio:1/1}
.mq-tp-seat .mq-tp-photo img{width:100%;height:100%;object-fit:cover}
.mq-tp-lobby-exit{display:flex;justify-content:center;margin:18px 0 6px}
.mq-tp-danger-link{border:0;background:none;padding:10px 14px;font:inherit;font-size:14px;font-weight:800;color:#dc2626;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.mq-elite-lobby{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px)) !important}
/* panneau IA : sélecteurs confortables */
.mq-tp-bot-setup select{min-height:48px;font-size:16px}

.mqe-oc,.mqe-oc p,.mqe-oc li{color:#fff}
