/* Variables globales et reset — Console Vibe Studio */

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

:root {
    /* Couleurs principales — accent terracotta (aligné LP « chaleureux & humain ») */
    --primary: #E07A5F;
    --primary-hover: #C75D43;
    --primary-dark: #C75D43;
    --primary-light: #F8E7E0;
    /* Tuple RGB de l'accent, pour factoriser les halos de focus : rgba(var(--accent-rgb), .1) */
    --accent-rgb: 224, 122, 95;

    /* Fonds — tons crème chauds */
    --bg-primary: #FFFFFF;
    --bg-secondary: #FFFDFB;
    --bg-tertiary: #F4ECE1;
    --bg-page: #FAF7F2;

    /* Texte — encre violacée */
    --text-primary: #201B2E;
    --text-secondary: #5C5566;
    --text-muted: #8A8290;

    /* Bordures chaudes */
    --border: #ECE2D5;
    --border-light: #F4ECE1;

    /* Statuts — palette chaude */
    --success: #3F9C7C;
    --success-light: #E7F3ED;
    --error: #D9534F;
    --error-light: #FBEBEA;
    --warning: #F0A860;
    --warning-light: #FBEEDC;
    --info: #E07A5F;
    --info-light: #F8E7E0;

    /* Ombres chaudes */
    --shadow-sm: 0 1px 2px rgba(70, 45, 25, 0.05);
    --shadow: 0 8px 24px -8px rgba(85, 55, 30, 0.14);
    --shadow-md: 0 4px 12px rgba(85, 55, 30, 0.10);
    --shadow-lg: 0 26px 54px -16px rgba(85, 55, 30, 0.22);
    --shadow-card: 0 1px 2px rgba(70, 45, 25, 0.04), 0 4px 16px rgba(85, 55, 30, 0.07);

    /* Rayons — sobres (adaptation mesurée, on n'adopte pas le 22px de la LP) */
    --radius-sm: 8px;
    --radius: 12px;
    --radius-lg: 20px;
    --radius-xl: 24px;

    /* Transitions */
    --transition: 200ms ease;

    /* Gradient accent */
    --gradient: linear-gradient(135deg, #E07A5F 0%, #F0A860 100%);

    /* Sidebar */
    --sidebar-width: 260px;
}

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-size: 15px;
    line-height: 1.6;
    color: var(--text-primary);
    background: var(--bg-page);
    -webkit-font-smoothing: antialiased;
}

/* Grands titres en serif Fraunces (identité LP) — Inter reste sur le reste de l'UI */
.topbar h1,
.login-header h1,
.stat-value {
    font-family: 'Fraunces', 'Times New Roman', serif;
    font-optical-sizing: auto;
    letter-spacing: -0.01em;
}

a {
    color: var(--primary);
    text-decoration: none;
}

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

button {
    font-family: inherit;
    cursor: pointer;
}

input {
    font-family: inherit;
}

/* ── Animations globales ─────────────────────── */

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Fondu sans transform : utilisé par .main-content pour ne pas créer de
   bloc conteneur qui décalerait les modals en position: fixed */
@keyframes fadeInPage {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideUp {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(-8px);
    }
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}
