 :root {
            --bg:        #07090f;
            --panel:     #0d1117;
            --panel2:    #111827;
            --border:    #1c2a3a;
            --border2:   #243447;
            --accent:    #00b8d9;
            --accent2:   #00e5a0;
            --danger:    #ff3b5c;
            --warn:      #ffb800;
            --text:      #c8daea;
            --dim:       #3d5a73;
            --mono:      'Share Tech Mono', monospace;
            --ui:        'Rajdhani', sans-serif;
        }

        * { box-sizing: border-box; margin: 0; padding: 0; }

        body {
            background: var(--bg);
            color: var(--text);
            font-family: var(--ui);
            min-height: 100vh;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            background-image:
                radial-gradient(ellipse at 30% 40%, rgba(0,184,217,0.04) 0%, transparent 60%),
                radial-gradient(ellipse at 70% 70%, rgba(0,229,160,0.03) 0%, transparent 60%);
        }

        /* ── Grid achtergrond ── */
        body::before {
            content: '';
            position: fixed;
            inset: 0;
            background-image:
                linear-gradient(rgba(28,42,58,0.4) 1px, transparent 1px),
                linear-gradient(90deg, rgba(28,42,58,0.4) 1px, transparent 1px);
            background-size: 40px 40px;
            mask-image: radial-gradient(ellipse at center, black 30%, transparent 75%);
            pointer-events: none;
            z-index: 0;
        }

        /* ── Login box ── */
        .login-box {
            position: relative;
            z-index: 1;
            width: 380px;
            max-width: 94vw;
            background: var(--panel);
            border: 1px solid var(--border2);
            border-radius: 12px;
            padding: 2.5rem 2rem;
            overflow: hidden;
        }

        .login-box::before {
            content: '';
            position: absolute;
            top: 0; left: 0; right: 0;
            height: 2px;
            background: linear-gradient(90deg, transparent, var(--accent), transparent);
            opacity: 0.6;
        }

        /* ── Logo ── */
        .login-logo {
            display: flex;
            flex-direction: column;
            align-items: center;
            margin-bottom: 2rem;
            gap: 0.6rem;
        }

        .logo-mark {
            width: 52px; height: 52px;
            border: 2px solid var(--accent);
            border-radius: 10px;
            display: flex; align-items: center; justify-content: center;
            font-family: var(--mono);
            font-size: 1.1rem;
            color: var(--accent);
            box-shadow: 0 0 20px rgba(0,184,217,0.25);
        }

        .login-title {
            font-size: 1.4rem;
            font-weight: 700;
            letter-spacing: 0.1em;
            color: #fff;
        }

        .login-title span { color: var(--accent); }

        .login-sub {
            font-family: var(--mono);
            font-size: 0.65rem;
            color: var(--dim);
            letter-spacing: 0.08em;
        }

        /* ── Form ── */
        .form-group {
            margin-bottom: 1rem;
        }

        .form-label {
            display: block;
            font-family: var(--mono);
            font-size: 0.65rem;
            letter-spacing: 0.12em;
            color: var(--dim);
            text-transform: uppercase;
            margin-bottom: 0.4rem;
        }

        .form-input {
            width: 100%;
            padding: 0.75rem 1rem;
            background: var(--panel2);
            border: 1px solid var(--border2);
            border-radius: 7px;
            color: var(--text);
            font-family: var(--mono);
            font-size: 0.9rem;
            outline: none;
            transition: border-color 0.2s, box-shadow 0.2s;
        }

        .form-input:focus {
            border-color: var(--accent);
            box-shadow: 0 0 0 3px rgba(0,184,217,0.1);
        }

        .form-input::placeholder { color: var(--dim); }

        /* ── Fout melding ── */
        .login-fout {
            display: none;
            background: rgba(255,59,92,0.08);
            border: 1px solid rgba(255,59,92,0.35);
            border-radius: 7px;
            padding: 0.7rem 1rem;
            color: var(--danger);
            font-family: var(--mono);
            font-size: 0.78rem;
            margin-bottom: 1rem;
        }

        .login-fout.zichtbaar { display: block; }

        /* ── Login knop ── */
        .btn-login {
            width: 100%;
            padding: 0.85rem;
            background: var(--accent);
            border: none;
            border-radius: 7px;
            color: #07090f;
            font-family: var(--ui);
            font-size: 1rem;
            font-weight: 700;
            letter-spacing: 0.1em;
            text-transform: uppercase;
            cursor: pointer;
            transition: all 0.2s;
            margin-top: 0.5rem;
        }

        .btn-login:hover { background: var(--accent2); }
        .btn-login:active { transform: scale(0.98); }
        .btn-login:disabled { opacity: 0.5; cursor: not-allowed; }

        /* ── Divider ── */
        .divider {
            display: flex;
            align-items: center;
            gap: 0.8rem;
            margin: 1.5rem 0 1rem;
            color: var(--dim);
            font-family: var(--mono);
            font-size: 0.6rem;
            letter-spacing: 0.1em;
        }

        .divider::before, .divider::after {
            content: '';
            flex: 1;
            height: 1px;
            background: var(--border);
        }

        /* ── Demo accounts ── */
        .demo-accounts {
            background: var(--panel2);
            border: 1px solid var(--border);
            border-radius: 7px;
            padding: 0.8rem 1rem;
        }

        .demo-title {
            font-family: var(--mono);
            font-size: 0.6rem;
            color: var(--dim);
            letter-spacing: 0.1em;
            text-transform: uppercase;
            margin-bottom: 0.6rem;
        }

        .demo-row {
            display: flex;
            align-items: center;
            gap: 0.6rem;
            padding: 0.4rem 0;
            cursor: pointer;
            border-radius: 4px;
            transition: background 0.15s;
        }

        .demo-row:hover { background: rgba(0,184,217,0.05); }

        .demo-user {
            font-family: var(--mono);
            font-size: 0.8rem;
            color: var(--text);
            flex: 1;
        }

        .demo-pass {
            font-family: var(--mono);
            font-size: 0.75rem;
            color: var(--dim);
        }

        .role-badge {
            font-family: var(--mono);
            font-size: 0.6rem;
            padding: 0.15rem 0.5rem;
            border-radius: 10px;
            text-transform: uppercase;
            letter-spacing: 0.05em;
        }

        .role-badge.admin    { background: rgba(255,59,92,0.12); color: var(--danger); border: 1px solid rgba(255,59,92,0.3); }
        .role-badge.operator { background: rgba(0,184,217,0.12); color: var(--accent); border: 1px solid rgba(0,184,217,0.3); }
        .role-badge.monteur  { background: rgba(255,184,0,0.12);  color: var(--warn);   border: 1px solid rgba(255,184,0,0.3); }

        /* ── Versie tag onderaan ── */
        .login-footer {
            text-align: center;
            margin-top: 1.5rem;
            font-family: var(--mono);
            font-size: 0.6rem;
            color: var(--dim);
            letter-spacing: 0.08em;
        }

        /* ── Checkbox ── */
.form-check {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
}

.form-check-input {
    width: 16px;
    height: 16px;
    margin-top: 2px;
    flex-shrink: 0;
    appearance: none;
    background: var(--panel2);
    border: 1px solid var(--border2);
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.2s;
}

.form-check-input:checked {
    background: var(--accent);
    border-color: var(--accent);
    box-shadow: 0 0 8px rgba(0,184,217,0.35);
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 8l3.5 3.5L13 4' stroke='%2307090f' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}

.form-check-input:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(0,184,217,0.1);
}

.form-check-label {
    font-family: var(--mono);
    font-size: 0.72rem;
    color: var(--dim);
    letter-spacing: 0.04em;
    cursor: pointer;
}

.form-check-label a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px solid rgba(0,184,217,0.3);
    transition: color 0.2s, border-color 0.2s;
}

.form-check-label a:hover {
    color: var(--accent2);
    border-bottom-color: var(--accent2);
}