/* Public entry points follow the blue / violet / magenta NEJ-IT logo. */
.nej-landing { --primary: #ab1399; --secondary: #746ecf; --gradient-primary: linear-gradient(120deg, #ab1399, #746ecf); --radius-lg: 14px; color: #465571; }
.nej-landing .container { max-width: 1200px; }
.nej-landing .header { box-shadow: none; border-bottom: 1px solid #e7ecf4; background: #ffffffed; backdrop-filter: blur(16px); }
.nej-landing .hero { background: #f4f7fc; position: relative; padding: 96px 0 88px; overflow: hidden; }
.nej-landing .hero::before { background: radial-gradient(ellipse at 85% 40%, #dce5fd 0%, transparent 65%); }
.nej-landing .hero-content { gap: 64px; }
.nej-landing .hero h1 { color: #152642; font-size: clamp(36px, 4.5vw, 58px); line-height: 1.12; letter-spacing: -2.2px; font-weight: 800; }
.nej-landing .hero h1 span { color: #ab1399; background: none; -webkit-text-fill-color: currentColor; }
.nej-landing .hero-text > p { color: #5c6b83; font-size: 17px; line-height: 1.8; max-width: 520px; }
.nej-landing .hero-kicker { display: inline-flex; align-items: center; gap: 9px; margin-bottom: 24px; color: #951386; font-size: 11px; text-transform: uppercase; letter-spacing: 1.6px; font-weight: 700; }
.nej-landing .hero-kicker::before { content: ''; width: 7px; height: 7px; background: #ab1399; border-radius: 50%; box-shadow: 0 0 0 4px #ab139914; }
.nej-landing .btn { border-radius: 8px; box-shadow: none; font-size: 13px; font-weight: 600; }
.nej-landing .btn-primary { background: #ab1399; color: #fff; }
.nej-landing .btn-primary:hover { background: #8d0f7e; box-shadow: 0 6px 14px #ab139920; }
.nej-landing .btn-outline { background: #fff; border-color: #d7e0ed; color: #263c60; }
.nej-landing .hero-feature { font-size: 11px; color: #5d6c84; }
.nej-landing .hero-feature i { color: #ab1399; }
.nej-landing .hero-card { background: #fff; transform: none; border: 1px solid #dfe6f2; border-radius: 16px; box-shadow: 0 28px 65px -25px #18325b40; padding: 0; overflow: hidden; }
.nej-preview-top { display: flex; justify-content: space-between; align-items: center; background: #231c2c; color: #fff; padding: 17px 22px; }
.nej-preview-brand { font-weight: 750; font-size: 14px; letter-spacing: -.4px; }
.nej-preview-top span:last-child { font-size: 10px; color: #adbfdb; }
.nej-preview-body { padding: 26px; }
.nej-preview-label { color: #738098; font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 8px; }
.nej-preview-body h2 { color: #1c3051; font-size: 21px; letter-spacing: -.6px; margin-bottom: 6px; }
.nej-preview-body > p { color: #78869b; font-size: 12px; margin-bottom: 24px; }
.nej-preview-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.nej-preview-tile { display: flex; flex-direction: column; gap: 7px; padding: 18px; background: #f7f9fd; border: 1px solid #e5ebf5; border-radius: 10px; text-decoration: none; }
.nej-preview-tile:hover { background: #f8eaf7; border-color: #d9a3d5; }
.nej-preview-tile i { color: #ab1399; margin-bottom: 8px; font-size: 20px; }
.nej-preview-tile strong { font-size: 12px; color: #263c60; }
.nej-preview-tile span { color: #7c879a; font-size: 10px; }
.nej-preview-bottom { margin-top: 20px; padding-top: 16px; border-top: 1px solid #e9edf5; color: #687995; font-size: 11px; display: flex; justify-content: space-between; align-items: center; }
.nej-preview-bottom a { color: #ab1399; font-weight: 600; text-decoration: none; }
.nej-landing .section-header h2 { letter-spacing: -1px; color: #1a2b46; }
.nej-landing .service-card, .nej-landing .order-card { border-radius: 14px; box-shadow: 0 3px 16px #142e5305; border: 1px solid #e4eaf3; }
.nej-landing .service-card:hover, .nej-landing .order-card:hover { border-color: #d9a3d5; transform: translateY(-3px); box-shadow: 0 12px 28px #142e530a; }
.nej-landing .domain-search { background: #302039; }
.nej-landing .portal-cta { background: #f4f7fc; }
.nej-landing :focus-visible, .nej-auth :focus-visible { outline: 3px solid #c065cb; outline-offset: 4px; }
.nej-auth { background: #f4f7fb; overflow: auto; min-height: 100dvh; padding: 32px 16px; color: #223553; }
.nej-auth .bg-shapes, .nej-auth .bg-shape, .nej-auth .grid-overlay { display: none; }
.nej-auth .login-wrapper { max-width: 1080px; background: #231c2c; border: 1px solid #e1e7f1; border-radius: 20px; overflow: hidden; box-shadow: 0 25px 80px -35px #142a4a55; }
.nej-auth .login-info { padding: 54px; position: relative; background: radial-gradient(ellipse at bottom left, #6e386d, transparent 75%); }
.nej-auth .admin-badge { background: #402b49; border: 1px solid #6b4874; color: #f2d8ee; border-radius: 6px; font-size: 10px; }
.nej-auth .info-title { font-size: 42px; line-height: 1.12; letter-spacing: -1.5px; }
.nej-auth .info-title span { color: #efa5e5; background: none; -webkit-text-fill-color: currentColor; }
.nej-auth .info-subtitle { color: #afbfda; font-size: 14px; line-height: 1.8; }
.nej-auth .info-feature { color: #d3def0; font-size: 12px; }
.nej-auth .info-feature-icon { background: #402b49; color: #efa5e5; border-radius: 10px; }
.nej-auth .login-card { background: #fff; border: 0; box-shadow: none; border-radius: 0; backdrop-filter: none; padding: 48px; }
.nej-auth .login-header h1 { color: #1d2e49; font-size: 26px; letter-spacing: -.8px; }
.nej-auth .login-header p { color: #728098; font-size: 13px; }
.nej-auth .login-logo { background: #f8eaf7; border: 1px solid #efd6ee; color: #ab1399; box-shadow: none; width: 56px; height: 56px; border-radius: 14px; }
.nej-auth .login-logo i { color: #ab1399; }
.nej-auth .form-label { color: #3d4e69; font-size: 12px; }
.nej-auth .form-control { background: #f9fbfe; border: 1px solid #dce3ed; color: #1e3050; border-radius: 8px; font-size: 14px; }
.nej-auth .form-control:focus { background: #fff; border-color: #ab1399; box-shadow: 0 0 0 3px #ab139912; }
.nej-auth .form-control::placeholder { color: #8692a6; }
.nej-auth .input-icon { color: #8b99b0; }
.nej-auth .toggle-password { border: 0; background: none; color: #657791; padding: 10px; right: 6px; cursor: pointer; }
.nej-auth .checkbox-wrapper label { color: #5e6e86; }
.nej-auth .forgot-link { color: #ab1399; font-size: 11px; }
.nej-auth .btn-login { background: #ab1399; border-radius: 8px; font-size: 14px; }
.nej-auth .btn-login:hover { background: #8d0f7e; box-shadow: 0 6px 18px #ab139922; transform: none; }
.nej-auth .divider { color: #8390a4; }
.nej-auth .divider::before, .nej-auth .divider::after { background: #e4eaf2; }
.nej-auth .client-portal-btn { background: #f5f7fb; border: 1px solid #e1e7f1; color: #951386; border-radius: 8px; font-size: 12px; }
.nej-auth .footer-text { color: #8491a5; }
.nej-auth-client .login-container { max-width: 470px; width: 100%; }
.nej-auth-client .login-card { padding: 0; border: 1px solid #e0e7f2; border-radius: 18px; box-shadow: 0 25px 65px -35px #142a4a55; }
.nej-auth-client .login-header { background: #302039; padding: 34px; }
.nej-auth-client .login-header h1 { color: #fff; }
.nej-auth-client .login-header p { color: #b6c6e0; }
.nej-auth-client .login-logo-wrapper { background: #4a2b54; box-shadow: none; border: 1px solid #785282; }
.nej-auth-client .login-body { padding: 32px; }
.nej-auth-client .login-footer { color: #738199; }
.nej-auth-client .login-footer p, .nej-auth-client .login-footer a, .nej-auth-client .features-bar, .nej-auth-client .feature-item { color: #687b98; }
.nej-auth-client .feature-pill { background: #e8edf6; color: #617493; }
@media (max-width: 900px) {
    .nej-auth .login-wrapper { max-width: 460px; }
    .nej-auth .login-info { padding: 28px; }
    .nej-auth .info-title { font-size: 30px; }
    .nej-auth .login-card { padding: 30px; border-radius: 0; }
    .nej-auth-client .login-card { padding: 0; border-radius: 16px; }
    .nej-landing .hero { padding: 48px 0; }
    .nej-landing .hero-content { gap: 36px; }
    .nej-landing .hero h1 { letter-spacing: -1.4px; }
}
@media (max-width: 480px) {
    .nej-auth { padding: 16px 8px; }
    .nej-auth .login-card { padding: 26px 22px; }
    .nej-auth-client .login-card { padding: 0; }
    .nej-auth-client .login-body { padding: 26px 22px; }
    .nej-landing .hero-buttons { flex-direction: column; }
    .nej-landing .hero-buttons .btn { justify-content: center; }
    .nej-preview-body { padding: 20px; }
    .nej-preview-tile { padding: 14px; }
}
@media (prefers-reduced-motion: reduce) {
    .nej-landing *, .nej-auth * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* The light blue from the logo stays decorative to preserve button contrast. */
.nej-landing .hero h1 span { background: linear-gradient(110deg, #356ea9, #783caa 48%, #ab1399); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.nej-auth .info-title span { background: linear-gradient(110deg, #80b9ed, #c2a4ee 48%, #efa5e5); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.nej-auth .login-info::before { content: ''; display: block; height: 4px; width: 80px; border-radius: 4px; margin-bottom: 28px; background: linear-gradient(120deg, #5aa1e7, #746ecf, #ab1399); }

.nej-auth a.login-brand { display: flex; align-items: center; justify-content: center; width: 196px; max-width: 100%; padding: 10px 14px; margin: 0 auto 22px; background: #fff; border-radius: 12px; border: 1px solid #eee5ef; }
.nej-auth .login-brand .nej-brand-logo { display: block; width: 100%; height: auto; max-height: 80px; object-fit: contain; filter: none; opacity: 1; }
.nej-landing .logo .nej-brand-logo { display: block; width: 150px; height: 64px; padding: 5px 8px; object-fit: contain; background: #fff; border-radius: 8px; filter: none; opacity: 1; }
@media (max-width: 480px) {
    .nej-auth a.login-brand { width: 170px; margin-bottom: 18px; }
    .nej-landing .logo .nej-brand-logo { width: 126px; height: 54px; }
}
