/* Native auth forms in the DotNexxt frontend's split career composition. */
body.dn-auth-page { --auth-bg:#1a1a1a; --auth-text:#fff; --auth-muted:rgba(255,255,255,.6); --auth-faint:rgba(255,255,255,.4); --auth-line:rgba(255,255,255,.1); --auth-field:rgba(255,255,255,.03); --auth-focus:rgba(255,255,255,.05); --auth-link:#cff10f; background:var(--auth-bg) !important; color:var(--auth-text); font-weight:400; }
body.dn-auth-page.light-mode { --auth-bg:#fafbf7; --auth-text:#1a1a1a; --auth-muted:#606458; --auth-faint:#74776c; --auth-line:#d7dbcf; --auth-field:#fff; --auth-focus:#f3f6e8; --auth-link:#526200; }
.dn-auth-page #app { min-height:100vh; }
.dn-auth-grid { display:grid; grid-template-columns:1.05fr 1fr; height:100vh; height:100dvh; min-height:480px; overflow:hidden; }
.dn-auth-visual { position:relative; overflow:hidden; background:#0b0b0b; color:#fff; }
.dn-auth-visual:before { content:""; position:absolute; inset:0; opacity:.55; background-image:linear-gradient(rgba(207,241,15,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(207,241,15,.08) 1px,transparent 1px); background-size:56px 56px; mask-image:radial-gradient(ellipse at top left,#000,transparent 70%); }
.dn-auth-visual:after { content:""; position:absolute; inset:0; pointer-events:none; opacity:.06; background:repeating-linear-gradient(115deg,#fff 0 1px,transparent 1px 9px); }
.dn-auth-glow { position:absolute; width:520px; height:520px; left:-128px; top:-128px; border-radius:50%; background:rgba(207,241,15,.2); filter:blur(140px); animation:dn-auth-glow 9s ease-in-out infinite; }
.dn-auth-path { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.dn-auth-traveller { offset-path:path('M-20 540 C 120 480, 180 360, 280 340 S 470 380, 520 220 S 680 80, 720 -20'); offset-distance:0%; animation:dn-auth-path 6s ease-in-out infinite; filter:drop-shadow(0 0 6px rgba(207,241,15,.7)); }
.dn-auth-story { position:relative; z-index:1; padding:48px; max-width:570px; }
.dn-auth-eyebrow { display:inline-flex; align-items:center; gap:8px; border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.04); padding:6px 12px; border-radius:999px; color:rgba(255,255,255,.65); font-size:10px; line-height:15px; font-weight:600; text-transform:uppercase; letter-spacing:.22em; }
.dn-auth-eyebrow i { width:6px; height:6px; border-radius:50%; background:#cff10f; box-shadow:0 0 10px 2px rgba(207,241,15,.55); }
.dn-auth-story h2 { color:#fff; font-family:Gate,"Avenir Next",sans-serif; font-size:40px; line-height:1.08; letter-spacing:.01em; margin:24px 0 16px; }
.dn-auth-story h2 span { color:#cff10f; }
.dn-auth-story p { font-size:14.5px; line-height:1.65; max-width:420px; color:rgba(255,255,255,.65); margin:0; }
.dn-auth-chip { position:absolute; z-index:1; display:flex; align-items:center; gap:12px; padding:12px 16px; border:1px solid rgba(255,255,255,.1); border-radius:16px; background:rgba(20,20,20,.85); backdrop-filter:blur(24px); box-shadow:0 24px 60px -28px rgba(0,0,0,.9); }
.dn-auth-score { right:8%; top:44%; }
.dn-auth-mentor { left:14%; top:58%; }
.dn-auth-chip-icon { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; color:#061e08; background:#cff10f; box-shadow:0 8px 22px -6px rgba(207,241,15,.7); }
.dn-auth-chip small { display:block; color:rgba(255,255,255,.5); font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.2em; }
.dn-auth-chip strong { display:block; color:#fff; font-size:13.5px; margin-top:2px; line-height:1.25; }
.dn-auth-score strong { font-size:15px; }
.dn-auth-chip div>span { display:block; color:rgba(255,255,255,.45); font-size:10.5px; margin-top:2px; }
.dn-auth-quote { position:absolute; z-index:1; bottom:6%; left:6%; right:10%; max-width:420px; padding:20px; border:1px solid rgba(255,255,255,.1); border-radius:16px; background:rgba(20,20,20,.85); backdrop-filter:blur(24px); margin:0; }
.dn-auth-quote-mark { position:absolute; top:-12px; left:20px; display:grid; place-items:center; width:28px; height:28px; background:#cff10f; color:#061e08; border-radius:50%; border:2px solid #0b0b0b; font-size:20px; line-height:1; }
.dn-auth-quote blockquote { color:rgba(255,255,255,.8); font-size:13.5px; line-height:1.65; margin:0 0 16px; }
.dn-auth-quote figcaption { display:flex; align-items:center; gap:10px; }
.dn-auth-avatar { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:linear-gradient(135deg,#cff10f,#239a64); color:#061e08; font-size:11px; font-weight:700; }
.dn-auth-quote strong { display:block; font-size:12px; color:#fff; }
.dn-auth-quote small { display:block; font-size:10px; color:rgba(255,255,255,.45); margin-top:2px; }
.dn-auth-stars { margin-left:auto; color:#cff10f; font-size:12px; letter-spacing:1px; }
.dn-auth-main { display:flex; flex-direction:column; min-height:0; min-width:0; position:relative; }
.dn-auth-topbar { display:flex; flex-shrink:0; align-items:center; justify-content:space-between; gap:16px; padding:24px 40px 0; }
.dn-auth-logo { display:block; height:44px; width:132px; flex-shrink:0; }
.dn-auth-logo img { height:100%; width:100%; object-fit:contain; }
.dn-auth-tools { display:flex; align-items:center; gap:10px; }
.dn-auth-back,.dn-auth-mode { display:inline-flex; justify-content:center; align-items:center; gap:6px; border:1px solid var(--auth-line); border-radius:999px; background:var(--auth-field); color:var(--auth-muted); font-size:12px; font-weight:500; padding:6px 14px; transition:color .2s,border-color .2s; white-space:nowrap; }
.dn-auth-mode { width:32px; height:32px; padding:0; cursor:pointer; }
.dn-auth-back:hover,.dn-auth-mode:hover { color:var(--auth-text); border-color:var(--auth-muted); }
.dn-auth-scroll { display:flex; flex:1; min-height:0; justify-content:center; overflow-y:auto; padding:32px 40px; }
.dn-auth-card { margin:auto; width:100%; max-width:460px; min-width:0; animation:dn-auth-enter .55s ease-out; }
.dn-auth-page h1 { color:var(--auth-text); font-family:Gate,"Avenir Next",sans-serif; font-size:30px; font-weight:700; line-height:1.15; letter-spacing:.01em; margin:0 0 8px; }
.dn-auth-page h1 span,.dn-auth-page a.dn-auth-link { color:var(--auth-link); }
.dn-auth-subtitle { font-size:13.5px; line-height:1.55; color:var(--auth-muted); margin:0 0 24px; }
.dn-auth-page .form-group { position:relative; margin-bottom:16px; }
.dn-auth-page .form-group-label { position:static; display:block; transform:none; top:auto; left:auto; background:transparent !important; color:var(--auth-muted); font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.14em; padding:0; margin-bottom:6px; line-height:1.4; }
.dn-auth-page .form-control,.dn-auth-page .register-mobile-form-group__input { width:100%; min-width:0; height:52px; background:var(--auth-field) !important; color:var(--auth-text); border:1px solid var(--auth-line); border-radius:16px; padding:0 16px; font-size:15px; font-weight:500; }
.dn-auth-page .form-control::placeholder { color:var(--auth-faint); }
.dn-auth-page .form-control:focus,.dn-auth-page .register-mobile-form-group__input:focus { border-color:var(--auth-link); outline:none; background:var(--auth-focus) !important; box-shadow:0 0 0 4px rgba(207,241,15,.1); }
.dn-auth-page .form-control:disabled { opacity:.65; }
.dn-auth-page .form-control.is-invalid { border-color:#ed7c7c; }
.dn-auth-page .invalid-feedback { font-size:12px; color:#f09292; margin-top:6px; }
.dn-auth-page.light-mode .invalid-feedback { color:#b32626; }
.dn-auth-page .password-input-visibility { position:absolute; right:16px; top:40px; background:none; border:0; padding:0; color:var(--auth-muted); display:flex; align-items:center; justify-content:center; }
.dn-auth-page input[type=password] { padding-right:52px; }
.dn-auth-page .btn-primary { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; height:54px; min-height:54px; padding:0 24px; border:0; border-radius:16px; background:#cff10f !important; color:#061e08 !important; font-size:14px; font-weight:600; text-transform:uppercase; letter-spacing:.12em; box-shadow:0 10px 30px -10px rgba(207,241,15,.55); }
.dn-auth-page .btn-primary:hover { box-shadow:0 18px 40px -12px rgba(207,241,15,.7); }
.dn-auth-page .btn-primary:disabled { opacity:.6; cursor:wait; }
.dn-auth-meta { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin:4px 0 18px; font-size:12.5px; color:var(--auth-muted); }
.dn-auth-meta a { color:var(--auth-muted); }
.dn-auth-check { display:flex; align-items:flex-start; gap:10px; font-size:13px; color:var(--auth-muted); line-height:1.6; cursor:pointer; }
.dn-auth-check input { accent-color:#cff10f; width:18px; height:18px; margin-top:1px; flex-shrink:0; }
.dn-auth-note { text-align:center; color:var(--auth-muted); font-size:13px; margin-top:20px; }
.dn-auth-note a { color:var(--auth-link); font-weight:600; }
.dn-auth-social { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:10px; margin-bottom:16px; }
.dn-auth-social a { display:flex; align-items:center; justify-content:center; gap:10px; color:var(--auth-text); border:1px solid var(--auth-line); background:var(--auth-field); border-radius:16px; padding:12px; font-size:13px; font-weight:600; }
.dn-auth-social img { width:18px; height:18px; }
.dn-auth-divider { display:flex; align-items:center; gap:12px; font-size:11.5px; color:var(--auth-faint); margin:16px 0; }
.dn-auth-divider:before,.dn-auth-divider:after { content:""; height:1px; flex:1; background:var(--auth-line); }
.dn-auth-footer { flex-shrink:0; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; border-top:1px solid var(--auth-line); padding:12px 40px; color:var(--auth-faint); font-size:11.5px; }
.dn-auth-footer nav { display:flex; gap:16px; }
.dn-auth-footer a { color:var(--auth-faint); }
.dn-auth-footer a:hover { color:var(--auth-text); }
.dn-auth-page fieldset { border:0; margin:0 0 24px; padding:0; }
.dn-auth-page legend { font-size:12px; color:var(--auth-faint); font-weight:600; letter-spacing:.14em; text-transform:uppercase; margin-bottom:8px; }
.dn-auth-roles { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.dn-auth-role { position:relative; display:flex; }
.dn-auth-role input { position:absolute; opacity:0; width:1px; height:1px; clip-path:inset(50%); }
.dn-auth-role label { display:flex; flex-direction:column; align-items:flex-start; gap:6px; width:100%; padding:12px; margin:0; border-radius:16px; border:1px solid var(--auth-line); background:var(--auth-field); color:var(--auth-muted); cursor:pointer; }
.dn-auth-role label strong { font-size:13px; line-height:1.25; }
.dn-auth-role label small { font-size:11px; line-height:1.4; }
.dn-auth-role input:checked+label { border-color:var(--auth-link); color:var(--auth-text); background:rgba(207,241,15,.08); }
.dn-auth-role input:checked+label svg { color:var(--auth-link); }
.dn-auth-role input:focus-visible+label { outline:2px solid var(--auth-link); outline-offset:3px; }
.dn-auth-page :focus-visible { outline:2px solid var(--auth-link); outline-offset:3px; }
.dn-auth-page .auth-register-method-item input { position:absolute; opacity:0; }
.dn-auth-page .auth-register-method-item label { padding:8px; border:1px solid var(--auth-line); border-radius:12px; color:var(--auth-muted); font-size:12px; margin:0; }
.dn-auth-page .auth-register-method-item input:checked+label { border-color:var(--auth-link); color:var(--auth-link); background:rgba(207,241,15,.08); }
.dn-auth-page .register-mobile-form-group { height:auto; background:none; border:0; padding:0; }
.dn-auth-page .select2-container .select2-selection--single { height:52px !important; background:var(--auth-field); color:var(--auth-text); border:1px solid var(--auth-line); border-radius:16px; }
.dn-auth-page .select2-container .select2-selection--single .select2-selection__rendered { color:var(--auth-text); line-height:52px; padding-left:12px; font-size:13px; }
.dn-auth-page .select2-dropdown { background:var(--auth-bg); color:var(--auth-text); border-color:var(--auth-line); }
.dn-auth-page .auth-verification-code-field { height:64px; min-width:0; width:100%; border:1px solid var(--auth-line); border-radius:16px; background:var(--auth-field); color:var(--auth-text); text-align:center; font-size:24px; }
/* Older native password/verification pages retain their validation and timers. */
.dn-auth-page .dn-native-content>form>div.pl-16 { padding-left:0 !important; padding-top:0 !important; }
.dn-auth-page .dn-native-content .text-gray-500,.dn-auth-page .dn-native-content .text-dark,.dn-auth-page .dn-native-content .text-black { color:var(--auth-muted) !important; }
.dn-auth-page .dn-native-content .bg-gray-100 { background:var(--auth-field) !important; border-color:var(--auth-line) !important; }
.dn-auth-page .dn-native-content .font-16.font-weight-bold { display:none; }
.dn-auth-page .dn-native-content h1 { margin-top:0 !important; }
@media(min-width:1280px) { .dn-auth-grid { grid-template-columns:1.1fr 1fr; } .dn-auth-story { padding:56px; } }
@media(max-height:720px) and (min-width:1024px) { .dn-auth-story { padding:32px 48px; } .dn-auth-story h2 { font-size:34px; } .dn-auth-story p { font-size:13px; } .dn-auth-quote { padding:14px 20px; bottom:4%; } .dn-auth-quote blockquote { font-size:12px; margin:4px 0 12px; } .dn-auth-mentor { top:55%; } }
@media(max-width:1023px) { .dn-auth-grid { grid-template-columns:1fr; } .dn-auth-visual { display:none; } .dn-auth-main:before { content:""; position:absolute; inset:0 0 auto; height:420px; pointer-events:none; background:radial-gradient(60% 60% at 50% 0%,rgba(207,241,15,.12),transparent 70%); } .dn-auth-topbar,.dn-auth-scroll,.dn-auth-footer { position:relative; } }
@media(max-width:639px) { .dn-auth-topbar { padding:20px 24px 0; gap:10px; } .dn-auth-logo { width:120px; height:40px; } .dn-auth-back { padding:6px 10px; font-size:11px; } .dn-auth-tools { gap:6px; } .dn-auth-scroll { padding:24px; } .dn-auth-page h1 { font-size:26px; } .dn-auth-footer { padding:12px 24px; font-size:10.5px; } }
@media(max-width:360px) { .dn-auth-topbar,.dn-auth-footer { padding-left:16px; padding-right:16px; } .dn-auth-scroll { padding:24px 16px; } .dn-auth-logo { width:108px; } .dn-auth-back { font-size:10px; } }
@keyframes dn-auth-path { to { offset-distance:100%; } }
@keyframes dn-auth-glow { 50% { opacity:.85; transform:scale(1.04); } }
@keyframes dn-auth-enter { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:reduce) { .dn-auth-page *, .dn-auth-page *:before, .dn-auth-page *:after { animation:none !important; transition:none !important; } }

.dn-auth-error { color:#f09292; border:1px solid rgba(240,146,146,.4); border-radius:12px; padding:12px; margin-bottom:16px; font-size:13px; }
.dn-auth-page.light-mode .dn-auth-error { color:#b32626; }

.dn-auth-input-icon { position:absolute; left:16px; top:41px; color:var(--auth-faint); display:flex; pointer-events:none; }
.dn-auth-page .form-control.dn-auth-input-with-icon { padding-left:46px; }

.dn-auth-page .register-mobile-form-group__input { padding:0 16px !important; border:1px solid var(--auth-line) !important; border-radius:16px !important; }
.dn-auth-page .select2-container .select2-selection--single { border:1px solid var(--auth-line) !important; border-radius:16px !important; }
.dn-auth-page .select2-container .select2-selection__arrow { top:16px !important; }
