@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&family=Sora:wght@700;800&display=swap');

:root {
    --c-bg:           #f6f8f7;
    --c-surface:      #ffffff;
    --c-border:       #e2e8e5;
    --c-border-soft:  #eef2f0;

    /* Vert tapis + or : identité poker */
    --c-primary:      #12674c;
    --c-primary-bg:   #e7f3ee;
    --c-primary-dk:   #0d4a37;

    --c-gold:         #b7791f;
    --c-gold-bg:      #fef3c7;
    --c-gold-text:    #92400e;

    --c-text-1:       #111827;
    --c-text-2:       #4b5563;
    --c-text-3:       #9ca3af;

    --c-success:      #065f46;
    --c-success-bg:   #d1fae5;
    --c-danger:       #991b1b;
    --c-danger-bg:    #fee2e2;
    --c-warn-bg:      #fffbeb;
    --c-warn-text:    #92400e;

    --r-sm:  6px;
    --r-md:  10px;
    --r-lg:  16px;
    --r-xl:  22px;
    --sh-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
    --sh-md: 0 4px 16px rgba(0,0,0,0.07), 0 1px 4px rgba(0,0,0,0.04);
    --sh-lg: 0 10px 32px rgba(0,0,0,0.09), 0 2px 8px rgba(0,0,0,0.05);
}

*, *::before, *::after { box-sizing: border-box; }

body {
    font-family: 'Plus Jakarta Sans', sans-serif;
    background: var(--c-bg);
    color: var(--c-text-1);
    min-height: 100vh;
    font-size: 15px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 { font-family: 'Sora', sans-serif; line-height: 1.2; }

a { color: var(--c-primary); }

/* ── NAVBAR ─────────────────────────────── */
.pk-navbar {
    background: var(--c-surface);
    border-bottom: 1px solid var(--c-border);
    padding: 0 1.5rem;
    box-shadow: var(--sh-sm);
}

.pk-navbar .navbar-brand {
    font-family: 'Sora', sans-serif;
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--c-primary) !important;
    letter-spacing: -0.3px;
}

.pk-navbar .nav-link {
    color: var(--c-text-2) !important;
    font-weight: 500;
    font-size: 0.88rem;
    padding: 0.45rem 0.85rem !important;
    border-radius: var(--r-md);
    transition: color 0.15s, background 0.15s;
}

.pk-navbar .nav-link:hover,
.pk-navbar .nav-link.active {
    color: var(--c-primary) !important;
    background: var(--c-primary-bg);
    font-weight: 600;
}

.pk-navbar .nav-link.logout { color: var(--c-danger) !important; }
.pk-navbar .nav-link.logout:hover { background: var(--c-danger-bg); }

/* ── CARTES ─────────────────────────────── */
.pk-card {
    background: var(--c-surface);
    color: var(--c-text-1);   /* ne pas hériter du blanc quand la carte est posée sur le bandeau */
    border: 1px solid var(--c-border);
    border-radius: var(--r-lg);
    box-shadow: var(--sh-sm);
    padding: 1.5rem;
}

.pk-card-title {
    font-family: 'Sora', sans-serif;
    font-size: 1rem;
    font-weight: 800;
    margin-bottom: 1rem;
}

.pk-stat-value {
    font-family: 'Sora', sans-serif;
    font-size: 2rem;
    font-weight: 800;
    color: var(--c-primary);
    line-height: 1.1;
}

.pk-stat-label {
    font-size: 0.75rem;
    color: var(--c-text-3);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

/* ── BADGES ─────────────────────────────── */
.pk-badge {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 0.2rem 0.6rem;
    border-radius: 99px;
    white-space: nowrap;
}
.pk-badge-primary { background: var(--c-primary-bg); color: var(--c-primary); }
.pk-badge-success { background: var(--c-success-bg); color: var(--c-success); }
.pk-badge-warn    { background: var(--c-warn-bg);    color: var(--c-warn-text); }
.pk-badge-danger  { background: var(--c-danger-bg);  color: var(--c-danger); }
.pk-badge-muted   { background: #f1f3f5;             color: var(--c-text-3); }
.pk-badge-gold    { background: var(--c-gold-bg);    color: var(--c-gold-text); }

/* ── BOUTONS ────────────────────────────── */
.pk-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0.5rem 1.1rem;
    border-radius: var(--r-md);
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
    border: none;
    text-decoration: none;
    transition: all 0.15s;
}
.pk-btn-primary { background: var(--c-primary); color: #fff; }
.pk-btn-primary:hover { background: var(--c-primary-dk); color: #fff; }
.pk-btn-outline { background: transparent; color: var(--c-primary); border: 1.5px solid var(--c-primary); }
.pk-btn-outline:hover { background: var(--c-primary-bg); }
.pk-btn-danger  { background: var(--c-danger-bg); color: var(--c-danger); border: 1px solid #fca5a5; }
.pk-btn-danger:hover { background: #fca5a5; }
.pk-btn-sm { padding: 0.3rem 0.7rem; font-size: 0.8rem; }

/* ── TABLEAUX ───────────────────────────── */
.pk-table { width: 100%; border-collapse: collapse; }
.pk-table th {
    font-size: 0.72rem; font-weight: 700; color: var(--c-text-3);
    text-transform: uppercase; letter-spacing: 0.6px;
    padding: 0.65rem 1rem; border-bottom: 1px solid var(--c-border);
    white-space: nowrap; text-align: left;
}
.pk-table td {
    padding: 0.7rem 1rem; border-bottom: 1px solid var(--c-border-soft);
    font-size: 0.9rem; vertical-align: middle;
}
.pk-table tbody tr:last-child td { border-bottom: none; }
.pk-table tbody tr:hover td { background: #f9fbfa; }

.pk-table-wrap { overflow-x: auto; }
.pk-col-input { width: 90px; }   /* colonnes de saisie (place, bounties) */

/* Places sur le podium */
.pk-rank {
    display: inline-flex; align-items: center; justify-content: center;
    width: 26px; height: 26px; border-radius: 50%;
    font-weight: 700; font-size: 0.8rem;
    background: #f1f3f5; color: var(--c-text-2);
}
.pk-rank-1 { background: #fde68a; color: #7c4a03; }
.pk-rank-2 { background: #e5e7eb; color: #374151; }
.pk-rank-3 { background: #fed7aa; color: #7c2d12; }

/* ── FORMULAIRES ────────────────────────── */
.pk-label {
    font-size: 0.78rem; font-weight: 600; color: var(--c-text-2);
    margin-bottom: 0.25rem; display: block;
}
.pk-input {
    width: 100%; padding: 0.55rem 0.8rem;
    border: 1px solid var(--c-border); border-radius: var(--r-md);
    font-family: inherit; font-size: 0.9rem; background: var(--c-surface);
}
.pk-input:focus {
    outline: none; border-color: var(--c-primary);
    box-shadow: 0 0 0 3px var(--c-primary-bg);
}

/* ── ALERTES ────────────────────────────── */
.pk-alert {
    padding: 0.7rem 1rem; border-radius: var(--r-md);
    font-size: 0.88rem; margin-bottom: 1rem;
}
.pk-alert-success { background: var(--c-success-bg); color: var(--c-success); }
.pk-alert-danger  { background: var(--c-danger-bg);  color: var(--c-danger); }
.pk-alert-info    { background: var(--c-primary-bg); color: var(--c-primary-dk); }
.pk-alert-warn    { background: var(--c-warn-bg);    color: var(--c-warn-text); }

/* Carte entièrement cliquable (lien étiré par Bootstrap .stretched-link) */
.pk-card-link { transition: box-shadow 0.15s, border-color 0.15s; }
.pk-card-link:hover { box-shadow: var(--sh-md); border-color: var(--c-primary); }

/* Le bounty du tournoi : toujours en rouge, partout */
.pk-bounty { color: var(--c-danger) !important; font-weight: 700; }
.pk-badge-bounty { background: var(--c-danger-bg); color: var(--c-danger); }

/* ── DIVERS ─────────────────────────────── */
.pk-avatar {
    width: 32px; height: 32px; border-radius: 50%;
    object-fit: cover; background: var(--c-primary-bg);
    display: inline-flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 0.8rem; color: var(--c-primary);
    flex-shrink: 0;
}

.pk-empty {
    text-align: center; padding: 2.5rem 1rem; color: var(--c-text-3);
}
.pk-empty .bi { font-size: 2rem; display: block; margin-bottom: 0.5rem; }

.pk-muted { color: var(--c-text-3); font-size: 0.85rem; }

/* ── TÉLÉPHONE ──────────────────────────────
   Objectif : aucun défilement horizontal. Les colonnes secondaires
   sont masquées (.pk-hide-sm) et l'information utile passe sous le
   nom du joueur (.pk-only-sm). */
.pk-only-sm { display: none; }

@media (max-width: 575.98px) {
    .pk-card { padding: 1rem; }
    .pk-card.p-0 { padding: 0; }

    .pk-table th,
    .pk-table td { padding: 0.5rem 0.4rem; font-size: 0.82rem; }
    .pk-table th { font-size: 0.66rem; letter-spacing: 0.3px; }

    .pk-hide-sm { display: none !important; }
    .pk-only-sm { display: block; }

    /* Les étiquettes de règles peuvent passer à la ligne. */
    .pk-badge { white-space: normal; }

    /* Champs de saisie compacts dans les tableaux (place, bounties). */
    .pk-table .pk-input { padding: 0.3rem 0.35rem; font-size: 0.85rem; }
    .pk-input-narrow { width: 3.2rem; }
    .pk-col-input { width: 3.6rem; }

    .pk-btn-sm { padding: 0.28rem 0.5rem; }
    .pk-rank { width: 22px; height: 22px; font-size: 0.72rem; }
}
