/* Palette et fond général */
:root {
    --zdc-blurple: #5865f2;
    --zdc-teal: #0ea5e9;
    --zdc-cyan: #22d3ee;
    --zdc-surface: #0f1629;
    --zdc-surface-2: #161f35;
    --zdc-border: #1f2a44;
    --zdc-text: #e8ecf5;
    --zdc-text-muted: #9fb0d3;
    --zdc-success: #2dd4bf;
    --zdc-warning: #fbbf24;
    --zdc-danger: #f87171;
}
body {
    background: radial-gradient(circle at 20% 20%, rgba(88, 101, 242, 0.12), transparent 35%),
    radial-gradient(circle at 80% 10%, rgba(14, 165, 233, 0.12), transparent 35%),
    radial-gradient(circle at 50% 80%, rgba(34, 211, 238, 0.10), transparent 40%),
    #0b1222;
    background-attachment: fixed;
    background-repeat: no-repeat;
    color: var(--zdc-text);
    font-family: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
    letter-spacing: 0.01em;
}

a {
    color: var(--zdc-teal);
    text-decoration: none;
}
a:hover {
    color: var(--zdc-cyan);
    text-decoration: underline;
}
/* Cartes et blocs */
.card {
    background-color: rgba(15, 22, 41, 0.92);
    border: 1px solid var(--zdc-border);
    border-radius: 14px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
    backdrop-filter: blur(6px);
    transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}
.card:hover {
    transform: translateY(-2px);
    border-color: rgba(88, 101, 242, 0.5);
    box-shadow: 0 16px 50px rgba(0, 0, 0, 0.45);
}
.glass-card {
    background: linear-gradient(145deg, rgba(15, 22, 41, 0.9), rgba(22, 31, 53, 0.9));
    border: 1px solid rgba(255, 255, 255, 0.06);
}
/* Titres */
.section-title {
    font-weight: 700;
    letter-spacing: 0.03em;
    color: var(--zdc-text);
}
.section-subtitle {
    color: var(--zdc-text-muted);
}
/* Boutons custom */
.btn-blurple {
    background: linear-gradient(120deg, var(--zdc-blurple), #7c8bff);
    border: none;
    color: #fff;
    box-shadow: 0 8px 24px rgba(88, 101, 242, 0.35);
}
.btn-blurple:hover {
    background: linear-gradient(120deg, #6b79ff, #92a0ff);
}
.btn-ghost {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--zdc-border);
    color: var(--zdc-text);
}
.btn-ghost:hover {
    border-color: var(--zdc-teal);
    color: var(--zdc-cyan);
}
/* Navbar / footer */
.navbar {
    background: rgba(15, 22, 41, 0.95);
    border-bottom: 1px solid var(--zdc-border);
    backdrop-filter: blur(8px);
}
.navbar-brand {
    font-weight: 700;
    letter-spacing: 0.04em;
}
.footer {
    background: rgba(15, 22, 41, 0.95);
    border-top: 1px solid var(--zdc-border);
    color: var(--zdc-text-muted);
}
/* Listes et tables */
.list-group-item {
    background-color: rgba(15, 22, 41, 0.9);
    border-color: var(--zdc-border);
    color: var(--zdc-text);
}
.table {
    color: var(--zdc-text);
}
.table thead th {
    border-bottom-color: var(--zdc-border);
    color: var(--zdc-text-muted);
    font-weight: 600;
}
.table tbody tr {
    border-color: var(--zdc-border);
}
.table-hover tbody tr:hover {
    background: rgba(88, 101, 242, 0.06);
}
/* Formulaires */
.form-control, .form-select {
    background-color: rgba(15, 22, 41, 0.9);
    border: 1px solid var(--zdc-border);
    color: var(--zdc-text);
}
.form-control:focus, .form-select:focus {
    border-color: var(--zdc-teal);
    box-shadow: 0 0 0 0.2rem rgba(14, 165, 233, 0.15);
}
/* Badges et alertes */
.badge {
    border-radius: 999px;
    padding: 0.4rem 0.7rem;
}
.alert {
    border: 1px solid var(--zdc-border);
    color: var(--zdc-text);
}
.alert-info {
    background: rgba(14, 165, 233, 0.08);
    border-color: rgba(14, 165, 233, 0.35);
}
.alert-success {
    background: rgba(45, 212, 191, 0.08);
    border-color: rgba(45, 212, 191, 0.35);
}
.alert-warning {
    background: rgba(251, 191, 36, 0.08);
    border-color: rgba(251, 191, 36, 0.35);
}
.alert-danger {
    background: rgba(248, 113, 113, 0.08);
    border-color: rgba(248, 113, 113, 0.35);
}
/* Cartes statistiques */
.stat-card {
    position: relative;
    overflow: hidden;
}
.stat-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 80% 20%, rgba(88, 101, 242, 0.15), transparent 40%);
    pointer-events: none;
}
.stat-value {
    font-size: 2rem;
    font-weight: 700;
}
.stat-label {
    color: var(--zdc-text-muted);
}
/* Avatars / intégration Discord */
.avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 2px solid var(--zdc-border);
    object-fit: cover;
}
/* Utilitaires */
.bg-surface {
    background-color: var(--zdc-surface);
}
.text-muted-2 {
    color: var(--zdc-text-muted);
}
.shadow-soft {
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
}
