/* ══════════════════════════════════════════════════════════════
   utilities.css — Petites classes utilitaires.
   Servent à remplacer les `style="..."` inline qu'on avait dans
   les pages PHP. La séparation HTML / CSS est maintenant nette.
   ══════════════════════════════════════════════════════════════ */

/* ─── Espacement ─── */
.m-0   { margin: 0; }
.mb-md { margin-bottom: 16px; }
.mb-lg { margin-bottom: 20px; }
.mt-md { margin-top: 12px; }

/* ─── Typo / texte ─── */
.text-xs       { font-size: 12px; }
.fs-md         { font-size: 16px; }
.d-block       { display: block; }
.nowrap        { white-space: nowrap; }
.help-text     { margin-top: -8px; }

/* ─── Flex / alignement ─── */
.flex-row         { display: flex; flex-direction: row; }
.gap-lg           { gap: 24px; }
.flex-wrap        { flex-wrap: wrap; }
.align-center     { align-items: center; }
.align-end        { align-items: end; }
.align-self-center{ align-self: center; }

/* ─── Boutons ─── */
.btn-lg {
    padding: 12px 24px;
    font-size: 15px;
}

/* ─── Layout / inputs ─── */
.full-width   { width: 100%; }
.search-input { width: 220px; }
.filter-select{ width: 140px; }
.filter-input {
    padding: 8px;
    background: var(--bg-dark);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--text);
}
.account-input {
    width: 100%;
    padding: 10px;
    background: var(--bg-dark);
    border: 1px solid var(--border);
    border-radius: 6px;
    color: var(--text);
    box-sizing: border-box;
}
.account-input-wide { min-width: 300px; width: auto; }

/* ─── Forms ─── */
.form-stack {
    display: grid;
    gap: 10px;
    max-width: 420px;
}
.checkbox-inline {
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
}

/* ─── Cartes / sections ─── */
.card-danger {
    border-left: 3px solid #e74c3c;
}

.opt-page-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
}

.rare-info-box {
    background: var(--bg-dark);
    padding: 10px 14px;
    border-radius: var(--radius-s);
    margin-bottom: 14px;
    font-size: 13px;
}

.info-grid {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 8px 20px;
    font-size: 14px;
}

/* ─── Stats grandes valeurs (admin/logs) ─── */
.big-stat {
    font-size: 24px;
    font-weight: bold;
}
.big-stat-ok   { color: #4CAF50; }
.big-stat-warn { color: #FF9800; }
.big-stat-err  { color: #e74c3c; }

.alert-inline-err { color: #e74c3c; }

.ip-line { font-size: 11px; }

/* ─── Pills ─── */
.pill-warn  { background: #4a3a00; color: #ffd54f; font-size: 10px; }
.pill-admin { background: #4a3a00; color: var(--r-or); }
.pill-ok    { background: #1f5a2e; color: #c8e6c9; }
.pill-err   { background: #5a1f1f; color: #f8d7da; }

/* ─── Logs / UA cell ─── */
.ua-cell {
    max-width: 300px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ─── Loading blocks ─── */
.loading-block        { padding: 20px; }
.saves-loading        { padding: 20px; }
.pred-grid-loading    { padding: 40px; grid-column: 1 / -1; }

/* ─── Help steps note ─── */
.help-steps-note {
    margin: 14px 0 0;
    text-align: center;
}

/* ─── Predator detail modal ─── */
.pred-detail-modal-inner { max-width: 720px; }

/* ─── Reset password mini-input ─── */
.reset-pwd-input { width: 130px; }

/* ─── User actions panel (admin) ─── */
.user-actions-summary {
    cursor: pointer;
    user-select: none;
}
.user-actions-panel {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 8px;
    padding: 10px;
    background: var(--bg-dark);
    border-radius: 6px;
}
