.sibou-login-app {
    --sibou-accent: #3b82f6;
    --sibou-accent-light: #60a5fa;
    --sibou-bg: #f1f5f9;
    --sibou-card-bg: #ffffff;
    --sibou-card-border: #e2e8f0;
    --sibou-text: #1e293b;
    --sibou-text-secondary: #64748b;
    --sibou-input-bg: #f8fafc;
    --sibou-input-border: #e2e8f0;
    --sibou-input-focus: #3b82f6;
    --sibou-btn-text: #ffffff;
    --sibou-shadow: 0 20px 50px -12px rgba(0, 0, 0, 0.12);
    --sibou-radius: 20px;
    --sibou-radius-sm: 14px;
    --sibou-transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    width: 100%;
    max-width: 480px;
    margin: 0 auto;
    padding: 20px;
    color: var(--sibou-text);
    box-sizing: border-box;
    direction: rtl;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
}

input::placeholder {
    text-align: right;
}

body[data-bs-theme="dark"] .sibou-login-app .sibou-slider {
    background: #475569;
}

body[data-bs-theme="dark"] .sibou-login-app {
    --sibou-bg: #0b1120;
    --sibou-card-bg: #1a2332;
    --sibou-card-border: #2d3a4a;
    --sibou-text: #e2e8f0;
    --sibou-text-secondary: #94a3b8;
    --sibou-input-bg: #1e2a3a;
    --sibou-input-border: #334155;
    --sibou-input-focus: #60a5fa;
    --sibou-btn-text: #ffffff;
    --sibou-shadow: 0 20px 50px -12px rgba(0, 0, 0, 0.5);
}

.sibou-login-app *,
.sibou-login-app *::before,
.sibou-login-app *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

.sibou-login-card {
    background: var(--sibou-card-bg);
    border: 1px solid var(--sibou-card-border);
    border-radius: 28px;
    box-shadow: var(--sibou-shadow);
    padding: 2.5rem 2rem;
    width: 100%;
    transition: all var(--sibou-transition);
    position: relative;
    overflow: hidden;
}

    .sibou-login-card::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 4px;
        background: linear-gradient(to left, var(--sibou-accent), #8b5cf6, var(--sibou-accent-light));
    }

.sibou-login-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 1.5rem;
    background: linear-gradient(135deg, var(--sibou-accent), #8b5cf6);
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: #fff;
    box-shadow: 0 8px 25px rgba(59, 130, 246, 0.25);
    transition: transform var(--sibou-transition);
}

    .sibou-login-icon:hover {
        transform: scale(1.05) rotate(-5deg);
    }

.sibou-login-title {
    text-align: center;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--sibou-text);
    margin-bottom: 0.5rem;
}

.sibou-login-subtitle {
    text-align: center;
    font-size: 0.9rem;
    color: var(--sibou-text-secondary);
    margin-bottom: 2rem;
}

.sibou-input-group {
    margin-bottom: 1.2rem;
}

    .sibou-input-group label {
        display: block;
        font-size: 0.85rem;
        font-weight: 600;
        color: var(--sibou-text);
        margin-bottom: 0.5rem;
    }

.sibou-input-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}

    .sibou-input-wrapper i {
        position: absolute;
        right: 14px;
        color: var(--sibou-text-secondary);
        font-size: 1.1rem;
        transition: color var(--sibou-transition);
        pointer-events: none;
    }

.sibou-input {
    width: 100%;
    padding: 0.9rem 2.8rem 0.9rem 1rem;
    background: var(--sibou-input-bg);
    border: 2px solid var(--sibou-input-border);
    border-radius: var(--sibou-radius-sm);
    color: var(--sibou-text);
    font-size: 1rem;
    font-family: inherit;
    transition: all var(--sibou-transition);
    outline: none;
}

    .sibou-input:focus {
        border-color: var(--sibou-input-focus);
        box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.1);
    }

        .sibou-input:focus + i,
        .sibou-input:focus ~ i {
            color: var(--sibou-accent);
        }

    .sibou-input::placeholder {
        color: var(--sibou-text-secondary);
        opacity: 0.6;
    }

.sibou-btn {
    width: 100%;
    padding: 0.95rem;
    background: linear-gradient(135deg, var(--sibou-accent), #2563eb);
    color: var(--sibou-btn-text);
    border: none;
    border-radius: var(--sibou-radius-sm);
    font-size: 1.05rem;
    font-weight: 600;
    cursor: pointer;
    transition: all var(--sibou-transition);
    font-family: inherit;
    margin-top: 0.5rem;
    box-shadow: 0 6px 20px rgba(59, 130, 246, 0.3);
}

    .sibou-btn:hover:not(:disabled) {
        transform: translateY(-2px);
        box-shadow: 0 10px 25px rgba(59, 130, 246, 0.4);
    }

    .sibou-btn:active:not(:disabled) {
        transform: translateY(0);
    }

    .sibou-btn:disabled {
        opacity: 0.5;
        cursor: not-allowed;
        box-shadow: none;
    }

.sibou-terms {
    text-align: center;
    font-size: 0.8rem;
    color: var(--sibou-text-secondary);
    margin-top: 1.5rem;
    line-height: 1.6;
}

    .sibou-terms a {
        color: var(--sibou-accent);
        text-decoration: none;
        font-weight: 600;
        transition: color var(--sibou-transition);
    }

        .sibou-terms a:hover {
            text-decoration: underline;
        }

.sibou-login-theme {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: 1.8rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--sibou-card-border);
    color: var(--sibou-text-secondary);
    font-size: 0.85rem;
}

    .sibou-login-theme i {
        color: var(--sibou-accent);
        font-size: 1rem;
    }

.sibou-switch {
    position: relative;
    width: 50px;
    height: 26px;
}

    .sibou-switch input {
        opacity: 0;
        width: 0;
        height: 0;
    }

.sibou-slider {
    position: absolute;
    cursor: pointer;
    inset: 0;
    background: #cbd5e1;
    border-radius: 34px;
    transition: var(--sibou-transition);
}

    .sibou-slider::before {
        content: "";
        position: absolute;
        height: 20px;
        width: 20px;
        left: 2px;
        bottom: 2px;
        background: white;
        border-radius: 50%;
        transition: transform var(--sibou-transition);
        box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
    }

.sibou-switch input:checked + .sibou-slider {
    background: var(--sibou-accent);
}

    .sibou-switch input:checked + .sibou-slider::before {
        transform: translateX(24px);
    }

@media (max-width: 480px) {
    .sibou-login-app {
        padding: 12px;
    }

    .sibou-login-card {
        padding: 2rem 1.5rem;
        border-radius: 24px;
    }

    .sibou-login-icon {
        width: 56px;
        height: 56px;
        font-size: 1.6rem;
    }

    .sibou-login-title {
        font-size: 1.3rem;
    }
}
