/* =========================================
   GLOBAL
========================================= */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap');

body {
    font-family: 'Poppins', sans-serif;
    background: linear-gradient(to bottom right, #f9fafb, #e5e7eb);
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    margin: 0;
    padding: 0;
    box-sizing: border-box; /* VOORKOMT overflow */
}

/* =========================================
   LOGIN CARD
========================================= */
.login-card {
    background: white;
    border-radius: 1.5rem;
    box-shadow: 0 10px 40px rgba(0,0,0,0.1);
    max-width: 420px;
    width: 100%;
    padding: 2.5rem;
    text-align: center;
    transition: background 0.3s, color 0.3s;
    margin: 1rem; /* FIX: padding naar schermranden op mobiel */
    box-sizing: border-box; /* belangrijk voor padding */
}

/* LOGO */
.logo {
    width: 80px;
    display: block;
    margin: 0 auto 1rem;
}

/* TITLES */
.login-title {
    font-size: 1.75rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: 0.5rem;
}

.login-subtitle {
    color: #6b7280;
    margin-bottom: 1.5rem;
}

/* DIVIDER */
.divider {
    display: flex;
    align-items: center;
    text-align: center;
    color: #9ca3af;
    margin: 1.5rem 0;
}
.divider::before,
.divider::after {
    content: "";
    flex: 1;
    border-bottom: 1px solid #e5e7eb;
}
.divider:not(:empty)::before { margin-right: 0.75em; }
.divider:not(:empty)::after  { margin-left: 0.75em; }

/* MESSAGE BOX */
.message-box {
    background-color: #fee2e2;
    color: #b91c1c;
    padding: 0.75rem 1rem;
    border-radius: 0.75rem;
    margin-bottom: 1rem;
    font-weight: 500;
    text-align: center;
}

/* INPUT GROUP */
.input-group {
    text-align: left;
    margin-bottom: 1rem;
}

.input-group label {
    display: block;
    font-weight: 600;
    color: #374151;
    margin-bottom: 0.25rem;
}

/* INPUT FIELDS */
input[type="text"],
input[type="password"] {
    width: 100%;
    border: 1px solid #d1d5db;
    padding: 0.75rem 1rem;
    border-radius: 0.75rem;
    outline: none;
    font-size: 1rem;
    background: white;
    color: #111827;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
    box-sizing: border-box; /* FIX: input even breed als knop */
}

input::placeholder {
    color: #9ca3af;
}

input:focus {
    border-color: #000000;
    box-shadow: 0 0 0 4px #00000025;
}

/* LOGIN BUTTON */
.btn-login {
    width: 100%;
    padding: 0.75rem;
    border-radius: 0.75rem;
    background-color: #000000c9;
    color: #ffffff;
    font-weight: 600;
    font-size: 1rem;
    border: none;
    cursor: pointer;
    margin-top: 0.5rem;
    transition: background-color 0.18s ease, color 0.18s ease, transform 0.08s ease;
    box-sizing: border-box; /* FIX: gelijk met input */
}

.btn-login:hover,
.btn-login:focus {
    background-color: #000000;
    outline: none;
}

.btn-login:active {
    transform: translateY(1px);
}

.btn-login[disabled] {
    opacity: 0.6;
    cursor: not-allowed;
}

/* FOOTER */
footer {
    text-align: center;
    color: #6b7280;
    margin-top: 1.5rem;
    font-size: 0.875rem;
}

/* Links standaard en geklikt altijd blauw */
a {
    color: #2563eb;       /* standaard linkkleur */
    text-decoration: none; /* optioneel, verwijder onderlijn */
}

/* =========================================
   RESPONSIVE
========================================= */
@media (max-width: 480px) {
    .login-card {
        padding: 2rem 1rem; /* FIX: kaart padding aan schermranden */
        border-radius: 1rem;
        margin: 1rem; /* ruimte tussen kaart en schermranden */
    }
    .login-title {
        font-size: 1.5rem;
    }
    input[type="text"],
    input[type="password"],
    .btn-login {
        width: 100%; /* FIX: zelfde breedte op mobiel */
    }
}

/* =========================================
   LOGO ANIMATIE - smooth scaling
========================================= */
.logo {
    width: 80px;
    display: block;
    margin: 0 auto 1rem;
    animation: logoScale 3s ease-in-out infinite;
    transform-origin: center;
}

@keyframes logoScale {
    0%, 100% { transform: scale(1); }
    50%      { transform: scale(1.05); }
}

/* REMEMBER */
.remember {
    display: block;
    margin-top: 20px;   /* 👈 DIT MAAKT ECHT DE GAT */
    text-align: center;
    color: #6b7280;
    font-size: 0.875rem;
}

.remember input[type="checkbox"] {
    vertical-align: middle;
    margin-top: 0px; /* fine-tune indien nodig */
}

/* =========================================
   2FA SECTION
========================================= */

.otp-box {
    margin-top:20px;
    padding:20px;
    background:white;
    border-radius:12px;
    box-shadow:0 4px 20px rgba(0,0,0,0.1);
}
.otp-input {
    width:100%;
    padding:12px;
    border:1px solid #ddd;
    border-radius:8px;
    font-size:18px;
    text-align:center;
}

.gc-btn.primary{
    margin-top:15px;
    width:100%;
    padding:12px;
    background:#3A3B3C;
    color:white;
    font-weight:600;
    font-size: medium;
    border-radius:8px;
    cursor:pointer;
    border: none;
}

.gc-btn.primary:hover {
    background: #2F3031;
}


.message {
    padding:10px;
    margin-top:10px;
    background:#fdecea;
    color:#b71c1c;
    border-radius:8px;
}


/* =========================================
   DARK MODE (Material You stijl)
   Automatisch via systeemvoorkeur
========================================= */
@media (prefers-color-scheme: dark) {

    /* BODY */
    body {
        background: linear-gradient(to bottom right, #0f0f0f, #1c1c1c);
        color: #e5e5e5;
    }

    /* LOGIN-KAART */
    .login-card {
        background: #1b1b1d;
        border: 1px solid #2a2a2c;
        box-shadow: 0 8px 28px rgba(0,0,0,0.7);
        color: #eaeaea;
    }

    /* TITLES */
    .login-title {
        color: #ffffff;
    }

    .login-subtitle {
        color: #b5b5b5;
    }

    /* DIVIDER */
    .divider {
        color: #a0a0a0;
    }
    .divider::before,
    .divider::after {
        border-bottom: 1px solid #333;
    }

    /* MESSAGE BOX (errors) */
    .message-box {
        background-color: #3a1c1c;
        color: #ffb8b8;
        border: 1px solid #5b2b2b;
    }

    /* INPUT GROUP LABEL */
    .input-group label {
        color: #cccccc;
    }

    /* INPUT VELDEN */
    input[type="text"],
    input[type="password"] {
        background: #262626;
        color: #fafafa;
        border: 1px solid #3a3a3a;
    }

    input[type="text"]::placeholder,
    input[type="password"]::placeholder {
        color: #888;
    }

    input:focus {
        border-color: #9bbcff;
        box-shadow: 0 0 0 4px rgba(100, 150, 255, 0.25);
    }

    /* LOGIN BUTTON */
    .btn-login {
        background-color: #3A3B3C;
        color: white;
    }
    .btn-login:hover {
        background-color: #2F3031;
    }

    /* REMEMBER TEXT */
    .remember {
        color: #bdbdbd;
    }

    /* FOOTER */
    footer {
        color: #9a9a9a;
    }

    /* 2FA BOX */
    .otp-box {
        background: #242424;
        border: 1px solid #333;
        color: #e5e5e5;
    }
    .otp-input {
        background: #2f2f2f;
        color: #ffffff;
        border: 1px solid #444;
    }
    .otp-input::placeholder {
        color: #888;
    }

    /* BUTTONS IN 2FA */
    .gc-btn.primary {
        background: #3A3B3C;
        color: white;
    }
    .gc-btn.primary:hover {
        background: #2F3031;
    }

    /* GENERIC MESSAGE */
    .message {
        background: #332020;
        color: #ffbaba;
    }
}