
:root {
    --login-primary: #123f6b;
    --login-primary-strong: #0d3458;
    --login-bg-top: #123f6b;
    --login-bg-mid: #123f6b;
    --login-bg-bottom: #123f6b;
    --login-border: rgba(18, 63, 107, 0.13);
    --login-muted: #607283;
}

.login-page {
    min-height: 100vh;
    background: var(--login-primary);
}

.login-shell {
    max-width: 1060px;
    border: 1px solid var(--login-border);
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 20px 56px rgba(15, 46, 77, 0.11);
    background: var(--login-primary);
}

.login-brand-panel {
    background: linear-gradient(
            145deg,
            var(--login-primary) 0%,
            #1a4a77 45%,
            #205887 100%
    );
    color: #f4f9ff;
    padding: 2rem 1.8rem;
    position: relative;
    border-radius: 0;
}

.login-brand-panel::after {
    content: "";
    position: absolute;
    right: -68px;
    bottom: -72px;
    width: 210px;
    height: 210px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.2);
}

.login-brand-title {
    font-family: "Kanit", "Prompt", sans-serif;
    font-weight: 700;
    letter-spacing: 0.2px;
}

.login-content-panel {
    padding: 1.6rem 1.7rem;
    background: var(--login-primary);
}

.login-header h2,
.login-header .text-muted {
    color: #e7f0f9 !important;
}

.login-content-panel .form-control,
.login-content-panel .btn {
    border-radius: 10px;
}

.login-content-panel .form-floating {
    margin-bottom: 0.85rem !important;
}

.login-content-panel .btn.py-2 {
    padding-top: 0.55rem !important;
    padding-bottom: 0.55rem !important;
}

.login-content-panel h5 {
    margin-bottom: 0.4rem !important;
}

.login-content-panel p.small {
    margin-bottom: 0.75rem !important;
}

.login-nav .nav-link {
    border-radius: 12px;
    border: 1px solid var(--login-border);
    color: var(--login-primary);
    font-weight: 600;
    background: #ffffff;
    text-decoration: none;
}

.login-nav .nav-link.active {
    background: var(--login-primary);
    color: #ffffff !important;
    border-color: var(--login-primary);
    box-shadow: 0 5px 14px rgba(18, 63, 107, 0.26);
    text-decoration: none;
}

.login-pane {
    border: 1px solid var(--login-border);
    border-radius: 16px;
    padding: 1.2rem;
    background: #f8fbff;
}

.login-separator {
    display: flex;
    align-items: center;
    gap: 10px;
}

.login-separator hr {
    flex: 1;
    margin: 0;
}

.login-separator span {
    color: var(--login-muted);
    font-size: 0.85rem;
    font-weight: 600;
}

.login-meta-card {
    background: #f2f6fb;
    border-radius: 12px;
}

.login-content-panel .btn-primary {
    background-color: var(--login-primary);
    border-color: var(--login-primary);
}

.login-content-panel .btn-primary:hover,
.login-content-panel .btn-primary:focus {
    background-color: var(--login-primary-strong);
    border-color: var(--login-primary-strong);
}

.login-content-panel .text-muted,
.login-content-panel .form-text {
    color: var(--login-muted) !important;
}

.login-content-panel a:not(.btn) {
    color: #d7e9fb;
}

@media (max-width: 991.98px) {
    .login-content-panel,
    .login-brand-panel {
        padding: 1.4rem;
    }
}

