        :root {
        --color-primary: #8F071D;
        --color-white: #FFFFFF;
        --color-placeholder: #979797;
        --color-error-bg: rgba(255, 240, 157, 0.5);
        --font-suite: 'SUITE', sans-serif;
        }
    
        body {
        font-family: var(--font-suite);
        min-height: 100vh;
        display: flex;
        align-items: center;
        justify-content: center;
        background: #1a1a1a;
        }
    
        /* ── Background ── */
        .page {
        position: relative;
        width: 100%;
        min-height: 100vh;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 70px;
        padding: 100px 20px;
        overflow: hidden;
        }
    
        .page__bg-image {
        position: absolute;
        inset: 0;
        overflow: hidden;
        z-index: 0;
        }
    
        .page__bg-image img {
        position: absolute;
        width: 100%;
        left: 0;
        top: -16.52%;
        height: 204.52%;
        object-fit: cover;
        }
    
        .page__bg-overlay {
        position: absolute;
        inset: 0;
        background:
            linear-gradient(90deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.7) 100%),
            linear-gradient(90deg, rgba(143,7,29,0.4) 0%, rgba(143,7,29,0.4) 100%);
        z-index: 1;
        }
    
        /* ── All content sits above overlays ── */
        .page > *:not(.page__bg-image):not(.page__bg-overlay) {
        position: relative;
        z-index: 2;
        width: 100%;
        max-width: 500px;
        }
    
        /* ── Logo ── */
        .logo {
        display: flex;
        justify-content: center;
        width: 100%;
        }
    
        .logo img {
        width: 234px;
        height: 88px;
        object-fit: contain;
        }
    
        /* ── Form fields ── */
        .form-fields {
        display: flex;
        flex-direction: column;
        gap: 50px;
        width: 100%;
        }
    
        .input-wrap {
        display: flex;
        align-items: center;
        height: 37px;
        padding: 0 10px;
        border-bottom: 1px solid var(--color-white);
        }
    
        .input-wrap input {
        width: 100%;
        background: transparent;
        border: none;
        outline: none;
        font-family: var(--font-suite);
        font-size: 16px;
        font-weight: 400;
        line-height: 1.5;
        color: var(--color-white);
        }
    
        .input-wrap input::placeholder {
        color: var(--color-placeholder);
        }
    
        /* ── Options row ── */
        .form-options {
        display: flex;
        flex-direction: column;
        gap: 10px;
        width: 100%;
        }
    
        .stay-signed-in {
        display: flex;
        align-items: center;
        gap: 5px;
        cursor: pointer;
        user-select: none;
        }
    
        .checkbox {
        width: 35px;
        height: 35px;
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        }
    
        .checkbox input[type="checkbox"] {
        display: none;
        }
    
        .checkbox__icon {
        width: 20px;
        height: 20px;
        border: 2px solid var(--color-white);
        border-radius: 2px;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: background 0.2s, border-color 0.2s;
        }
    
        .checkbox input[type="checkbox"]:checked + .checkbox__icon {
        background: var(--color-primary);
        border-color: var(--color-primary);
        }
    
        .checkbox input[type="checkbox"]:checked + .checkbox__icon::after {
        content: '';
        width: 5px;
        height: 9px;
        border: 2px solid #fff;
        border-top: none;
        border-left: none;
        transform: rotate(45deg) translateY(-1px);
        display: block;
        }
    
        .stay-signed-in span,
        .forgot-link {
        font-size: 14px;
        font-weight: 400;
        line-height: 1.5;
        color: var(--color-white);
        text-decoration: none;
        }
    
        .forgot-link:hover { text-decoration: underline; }
    
        /* ── Actions ── */
        .form-actions {
        display: flex;
        flex-direction: column;
        gap: 20px;
        width: 100%;
        }
    
        .error-msg {
        align-self: center;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        height: 27px;
        padding: 0 20px;
        background: var(--color-error-bg);
        border-radius: 5px;
        font-size: 12px;
        font-weight: 400;
        line-height: 1.5;
        color: var(--color-white);
        /* hidden by default; show via JS */
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.3s;
        }
    
        .error-msg.visible {
        opacity: 1;
        pointer-events: auto;
        }
    
        .buttons {
        display: flex;
        flex-direction: column;
        gap: 20px;
        width: 100%;
        }
    
        .btn {
        width: 100%;
        height: 50px;
        border: none;
        border-radius: 5px;
        font-family: var(--font-suite);
        font-size: 16px;
        line-height: 1.5;
        cursor: pointer;
        transition: opacity 0.2s, transform 0.1s;
        }
    
        .btn:active { transform: scale(0.98); }
    
        .btn--login {
        background: var(--color-white);
        color: var(--color-primary);
        font-weight: 700;
        }
    
        .btn--login:hover { opacity: 0.9; }
    
        .btn--signup {
        background: rgba(255,255,255,0.2);
        color: var(--color-white);
        font-weight: 400;
        }
    
        .btn--signup:hover { background: rgba(255,255,255,0.3); }
    
        /* ── Social login ── */
        .social-login {
        display: flex;
        flex-direction: column;
        gap: 30px;
        width: 100%;
        }
    
        .social-login__divider {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 0 16px;
        }
    
        .divider-line {
        flex: 1;
        height: 1px;
        background: var(--color-white);
        opacity: 0.5;
        }
    
        .divider-text {
        font-size: 16px;
        font-weight: 400;
        line-height: 1.5;
        color: var(--color-white);
        padding: 0 12px;
        white-space: nowrap;
        }
    
        .social-icons {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 40px;
        padding: 0 16px;
        }
    
        .social-icon {
        width: 65px;
        height: 65px;
        flex-shrink: 0;
        cursor: pointer;
        transition: transform 0.2s, opacity 0.2s;
        }
    
        .social-icon:hover { transform: scale(1.08); opacity: 0.85; }
    
        .social-icon img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 50%;
        }