@font-face {
    font-family: 'Linotte';
    src: url('/fonts/Linotte Bold.otf') format('opentype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Poppins';
    src: url('/fonts/Poppins-Black.ttf') format('truetype');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Poppins';
    src: url('/fonts/Poppins-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Poppins';
    src: url('/fonts/Poppins-SemiBold.ttf') format('truetype');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Plus Jakarta Sans';
    src: url('/fonts/PlusJakartaSans-VariableFont_wght.ttf') format('truetype-variations');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Plus Jakarta Sans';
    src: url('/fonts/PlusJakartaSans-Italic-VariableFont_wght.ttf') format('truetype-variations');
    font-weight: 100 900;
    font-style: italic;
    font-display: swap;
}

:root {
    /* Couleurs primaires */
    --color-blue-corporate: #0D2C54;
    --color-cyan-innovation: #2A9D8F;
    --color-green-guardian: #388E3C;
    --color-yellow-action: #E9C46A;

    /* Couleurs secondaires & neutres */
    --color-off-white: #F8F7F4;
    --color-light-gray: #E0E0E0;
    --color-dark-gray: #424242;
    --color-pale-blue: #D0DCF0;
    --color-pale-cyan: #C8F0EC;
    --color-pale-green: #D6F0D7;
    --color-pale-yellow: #FDF5DC;

    --bg-dark: var(--color-blue-corporate);
    --card-dark: #14335E;   
    --accent: var(--color-cyan-innovation);
    --accent-orange: var(--color-yellow-action);
    --glass-bg: rgba(255, 255, 255, 0.15);
    --glass-border: rgba(255, 255, 255, 0.3);
    --card-light: var(--color-pale-blue);

    --font-title: 'Linotte', Arial, Helvetica, sans-serif;
    --font-body: 'Plus Jakarta Sans', Arial, sans-serif;
    --font-accent: 'Poppins', 'Inter', -apple-system, sans-serif;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: var(--font-body);
}
.auth-split {
    min-height: 100vh;
}
.auth-visual {
    flex: 0 0 60%;
    max-width: 60%;
    background-image: var(--bg-image);
    background-color: linear-gradient(135deg, rgba(30, 78, 140, .55), rgba(7, 121, 107, .45));
    background-size: cover;
    background-position: center bottom; 
}
.auth-form {
    flex: 0 0 40%;
    max-width: 40%;
}
.btn-auth {
    background-color: #0062cc;
    border-color: #0062cc;
    color: #fff;
    transition: background-color .6s ease;
}
.btn-auth:hover,
.btn-auth:focus {
    background-color: #09519e;
    border-color: #09519e;
    color: #fff;
    }
    @media (max-width: 767.98px) {
    .auth-visual {
        display: none !important;
    }
    .auth-form {
        flex: 0 0 100%;
        max-width: 100%;
    }
}

.auth-visual {
    position: relative;
    overflow: hidden;
}

.flow-overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: none;
}

.flow-overlay .flow {
    stroke: #22d3ee;
    fill: none;
    stroke-linecap: round;
    filter: url(#flowGlow);
    opacity: .85;
    stroke-dasharray: 26 60;
    animation: flowDash 1.6s linear infinite;
}
.flow-overlay .sR { animation: sR 2.6s linear infinite; }
.flow-overlay .sL { animation: sL 2.6s linear infinite; }
@keyframes sR { to { transform: translateX(78px); } }
@keyframes sL { to { transform: translateX(-78px); } }