/* ==========================================================================
   APPLICATION GÉNÉRIQUE — V3
   S'appuie sur zam-num-king-v3.css (design commun). Ici : couleur du jeu,
   saisie de score libre, bouton "Gagnant", variantes, logo texte.
   Les variables --nk-blue-1..4 / --nk-accent / --nk-on sont posées en ligne
   sur #zam-generic-app à partir de la couleur du jeu (color_brand).
   ========================================================================== */

/* Halo de la mosaïque : neutre (blanc) au lieu du bleu Num King */
.zga3 .nk3-mosaic::after {
    background: radial-gradient(60% 35% at 50% 18%, rgba(255, 255, 255, .28), rgba(255, 255, 255, 0) 70%);
}

/* Boutons ronds et icônes lisibles quelle que soit la couleur du fond */
.zga3 .nk3-circle { border-color: var(--nk-on, #fff); color: var(--nk-on, #fff); }
.zga3--light .nk3-circle { background: rgba(255, 255, 255, .35); }
.zga3--light .nk3-star { color: #fff; filter: drop-shadow(0 0 4px rgba(0, 0, 0, .25)); }

/* Logo : même taille que Num King ; nom du jeu si pas de logo */
.zga3 img.zga3-logo { max-height: 96px; width: auto !important; max-width: 220px !important; object-fit: contain; }
.zga3 .zga3-logo-text {
    font: 900 1.7rem/1.1 var(--nk-font);
    color: var(--nk-on, #fff);
    text-align: center;
    text-shadow: 0 3px 8px rgba(0, 0, 0, .25);
    cursor: pointer;
    padding: 6px 4px;
}

/* Boutons aux couleurs du jeu */
.nk3 .nk3-btn--theme,
.nk3-scope .nk3-btn--theme {
    background: linear-gradient(180deg, var(--nk-blue-1), var(--nk-blue-3));
    box-shadow: 0 4px 0 var(--nk-blue-4);
    color: var(--nk-on, #fff);
}
.nk3 .nk3-btn--gold { background: linear-gradient(180deg, #ffe589, #f5b301); color: #3b2a00; box-shadow: 0 4px 0 #b7791f; }
.zga3 .zga3-link-btn { text-decoration: none !important; box-sizing: border-box; }
.zga3 .nk3-btn:disabled, .zga3 .nk3-validate:disabled, .zga3 .nk3-finish:disabled { opacity: .45; cursor: not-allowed; filter: grayscale(.3); }

/* ── Tableau : saisie de score libre ───────────────────────────────────── */
.zga3 .zga3-table thead th.nk3-th-player { width: 30%; }
.zga3 input.zga3-score {
    -moz-appearance: textfield;
    appearance: textfield;
    cursor: text;
    font-size: max(16px, 1.45rem) !important;      /* ≥ 16 px : pas de zoom iPhone */
}
.zga3 input.zga3-score::-webkit-outer-spin-button,
.zga3 input.zga3-score::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.zga3 input.zga3-score:focus { border-color: var(--pc) !important; box-shadow: 0 0 0 3px var(--pc-bg); }
.zga3 input.zga3-score:disabled { opacity: .5; }

/* Bouton "Gagnant" */
.zga3 .zga3-win {
    width: 100%;
    max-width: 120px;
    height: 52px;
    margin: 0 auto;
    display: flex; align-items: center; justify-content: center;
    border-radius: 14px;
    border: 2px solid #d9e0ec;
    background: #fafbfe;
    color: var(--nk-muted);
    font: 800 .9rem/1 var(--nk-font);
    cursor: pointer;
    transition: transform .1s ease, background .15s ease, border-color .15s ease;
}
.zga3 .zga3-win:hover { border-color: #f5c542; background: #fffbea; }
.zga3 .zga3-win:active { transform: scale(.96); }
.zga3 .zga3-win.active {
    background: linear-gradient(180deg, #ffe589, #ffc83d);
    border-color: #f0b400;
    font-size: 1.6rem;
    box-shadow: 0 3px 10px rgba(245, 179, 1, .35);
}
.zga3 .zga3-win.is-hint { animation: zga3-hint .4s ease 3; border-color: #f0b400; }
@keyframes zga3-hint { 50% { transform: scale(1.08); } }
.zga3 .zga3-win:disabled { opacity: .5; cursor: default; }
.zga3 .zga3-win-empty { opacity: .85; }

/* Total : points + manches gagnées */
.zga3 .zga3-total { flex-direction: column; gap: 1px; line-height: 1; }
.zga3 .zga3-total span { font-size: 1.35rem; }
.zga3 .zga3-total small { font-size: .7rem; font-weight: 800; filter: none; opacity: .85; }
.zga3 .nk3-del:disabled { opacity: .35; cursor: default; }
.zga3 .nk3-sum-cell b { font-size: 1.1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; }

/* Carte joueur : vainqueur final */
.zga3 .nk3-pc.is-champion { box-shadow: 0 0 0 3px #ffd34d, 0 0 18px 4px rgba(255, 211, 77, .7); }

/* ── Variantes (menu sous la pastille) ─────────────────────────────────── */
.zga3 .zga3-variant-list .nk3-opt { justify-content: space-between; }
.zga3 .zga3-radio { width: 22px; height: 22px; border-radius: 50%; border: 2px solid #cfd7e6; background: #fff; flex-shrink: 0; position: relative; }
.zga3 .nk3-opt.is-on .zga3-radio { border-color: var(--nk-accent); }
.zga3 .nk3-opt.is-on .zga3-radio::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; background: var(--nk-accent); }
.zga3 .zga3-variant-rule { font-size: .78rem; font-weight: 700; color: var(--nk-muted); margin: 6px 4px 0; }
.zga3 .nk3-info--btn { color: var(--nk-accent); }

/* Modales : boutons pleine largeur même en <a> */
.zga3 a.nk3-btn { display: flex; }
.zga3 .zga3-rank-sub { display: block; font-size: .72rem; font-weight: 800; color: var(--nk-muted); text-align: right; }
.zga3 .zga3-setup .nk3-modal-title { color: var(--nk-accent); }

@media (max-width: 560px) {
    .zga3 img.zga3-logo { max-height: 64px; max-width: 150px !important; }
    .zga3 .zga3-logo-text { font-size: 1.2rem; }
    .zga3 .zga3-win { height: 44px; border-radius: 12px; font-size: .74rem; }
    .zga3 .zga3-win.active { font-size: 1.3rem; }
    .zga3 .zga3-total span { font-size: 1.05rem; }
    .zga3 .zga3-total small { font-size: .6rem; }
    .zga3 .nk3-sum-cell b { font-size: .95rem; }
}
@media (max-width: 380px) {
    .zga3 .zga3-win { height: 40px; font-size: .64rem; }
    .zga3 .zga3-total { height: 40px; }
}

/* Teintes d'accent dérivées de la couleur du jeu (au lieu du bleu Num King) */
.zga3 .nk3-outline-btn { border-color: #d5dbe6; background: #fff; }
@supports (background: color-mix(in srgb, red 50%, white)) {
    .zga3 .nk3-outline-btn { border-color: color-mix(in srgb, var(--nk-accent) 45%, #fff); background: color-mix(in srgb, var(--nk-accent) 7%, #fff); }
    .zga3 .nk3-outline-btn:hover,
    .zga3 .nk3-info--btn:hover,
    .zga3 .nk3-info--btn.is-open { background: color-mix(in srgb, var(--nk-accent) 14%, #fff); }
}
