/* ============================================================
   CareerOS — local account / sign-in
   ============================================================ */
.login-body{
  overflow:auto !important;
  min-height:100vh;
  display:block;
  padding:28px;
  background:
    radial-gradient(1100px 700px at 12% -10%, rgba(139,92,246,.20), transparent 60%),
    radial-gradient(900px 600px at 95% 8%, rgba(34,211,238,.12), transparent 60%),
    linear-gradient(180deg,#06080f 0%,#070a12 55%,#05070c 100%);
}
.login-body::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:0;
  background-image:linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse at 50% 0%,#000 0%,transparent 78%);
}
.login-wrap{
  position:relative; z-index:2;
  width:min(1140px,100%);
  margin:0 auto;
  min-height:calc(100vh - 56px);
  display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:clamp(28px,5vw,74px);
  align-items:center;
  padding:34px 0;
}
.login-brand-panel{display:flex; flex-direction:column; align-items:flex-start}
.login-brand{margin-bottom:clamp(28px,5vh,54px); cursor:default}
.login-kicker{
  display:inline-flex; align-items:center; gap:9px;
  font-size:10.5px; font-weight:800; letter-spacing:.19em; color:var(--violet-3);
  border:1px solid rgba(139,92,246,.28); background:rgba(139,92,246,.08);
  padding:7px 12px; border-radius:999px; margin-bottom:20px;
}
.login-kicker .live-dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(52,211,153,.14);animation:pulse 2.2s infinite}
.login-brand-panel h1{
  margin:0 0 18px;
  font-size:clamp(38px,4.6vw,62px);
  line-height:1.02; letter-spacing:-.045em; font-weight:800; color:var(--text);
}
.login-brand-panel h1 span{
  background:linear-gradient(110deg,#a78bfa 0%,#818cf8 40%,#22d3ee 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.login-lede{
  margin:0 0 30px; max-width:520px;
  color:var(--muted); font-size:14.5px; line-height:1.75;
}
.login-points{list-style:none;margin:0 0 32px;padding:0;display:grid;gap:13px;width:100%;max-width:530px}
.login-points li{display:flex;gap:14px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.018)}
.login-points li>span{
  flex:0 0 26px;height:26px;display:grid;place-items:center;border-radius:8px;
  font-size:11px;color:var(--violet-3);background:rgba(139,92,246,.12);border:1px solid rgba(139,92,246,.22);
}
.login-points b{display:block;font-size:12.8px;color:var(--text);font-weight:700;margin-bottom:2px}
.login-points em{display:block;font-style:normal;font-size:11.6px;color:var(--muted);line-height:1.5}
.login-trust{
  display:flex;gap:13px;align-items:flex-start;max-width:530px;
  border:1px solid rgba(52,211,153,.16); background:linear-gradient(135deg,rgba(52,211,153,.06),rgba(34,211,238,.03));
  border-radius:15px; padding:14px 16px;
}
.login-trust .trust-icon{font-size:18px;line-height:1}
.login-trust b{display:block;font-size:12.5px;color:var(--text);margin-bottom:3px}
.login-trust p{margin:0;font-size:11.5px;color:var(--muted);line-height:1.55}
.login-brand-foot{margin-top:22px;font-size:11px;color:var(--dim);letter-spacing:.02em}

/* Card */
.login-card{
  position:relative;
  border:1px solid var(--line-2);
  border-radius:26px;
  background:linear-gradient(165deg,rgba(20,26,43,.92),rgba(10,14,24,.94));
  box-shadow:0 40px 100px -34px rgba(0,0,0,.9), 0 0 0 1px rgba(255,255,255,.025) inset;
  padding:clamp(24px,3.2vw,36px);
  backdrop-filter:blur(22px);
  overflow:hidden;
}
.login-card::before{
  content:""; position:absolute; inset:-1px -1px auto -1px; height:1px;
  background:linear-gradient(90deg,transparent,rgba(139,92,246,.7),rgba(34,211,238,.55),transparent);
}
.login-mobile-brand{display:none;align-items:center;gap:10px;margin-bottom:20px}
.login-mobile-brand .brand-mark{width:34px;height:34px;border-radius:10px}
.login-mobile-brand .brand-text{font-size:15px}
.login-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:22px}
.login-badge{
  display:inline-flex;align-items:center;gap:6px;
  font-size:9.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--cyan);background:rgba(34,211,238,.08);border:1px solid rgba(34,211,238,.22);
  padding:5px 9px;border-radius:999px;margin-bottom:13px;
}
.login-card h2{margin:0 0 6px;font-size:26px;letter-spacing:-.03em;font-weight:750;color:var(--text)}
.login-card p#loginSub{margin:0;font-size:12.5px;color:var(--muted);line-height:1.55}
.login-orb{position:relative;flex:0 0 54px;height:54px;border-radius:16px;background:var(--grad);opacity:.95;box-shadow:0 14px 30px -12px rgba(99,102,241,.7)}
.login-orb span{position:absolute;inset:1px;border-radius:15px;background:#0b0f1b;display:grid;place-items:center}
.login-orb span::after{content:"";width:18px;height:18px;border-radius:50%;border:2px solid rgba(167,139,250,.9);border-top-color:transparent;border-right-color:rgba(34,211,238,.8)}

.login-alert{
  border:1px solid rgba(251,113,133,.3);background:rgba(251,113,133,.09);color:#fecdd3;
  font-size:12px;line-height:1.55;padding:11px 13px;border-radius:11px;margin-bottom:16px;
}
.login-alert.ok{border-color:rgba(52,211,153,.3);background:rgba(52,211,153,.08);color:#bbf7d0}
.login-alert.info{border-color:rgba(34,211,238,.28);background:rgba(34,211,238,.07);color:#cffafe}
.login-alert a{color:inherit;font-weight:700;text-decoration:underline;word-break:break-all}
.login-setup{
  border:1px solid rgba(139,92,246,.25);background:rgba(139,92,246,.07);
  padding:13px 15px;border-radius:12px;margin-bottom:18px;
}
.login-setup b{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--violet-3);margin-bottom:5px}
.login-setup p{margin:0;font-size:11.8px;line-height:1.6;color:var(--text-2)}

/* OAuth */
.login-oauth{display:grid;gap:9px;margin-bottom:15px}
.login-oauth-btn{
  display:flex;align-items:center;justify-content:center;gap:10px;
  width:100%;height:44px;border-radius:11px;cursor:pointer;
  border:1px solid var(--line-2);background:rgba(255,255,255,.028);color:var(--text);
  font-family:inherit;font-size:12.8px;font-weight:700;
  transition:border-color .15s,background .15s,transform .15s;
}
.login-oauth-btn svg{width:17px;height:17px;flex:0 0 17px}
.login-oauth-btn:hover{border-color:rgba(139,92,246,.5);background:rgba(139,92,246,.07)}
.login-oauth-btn:active{transform:translateY(1px)}
.login-oauth-btn:disabled{opacity:.55;cursor:not-allowed}
.login-or{display:flex;align-items:center;gap:11px;margin:0 0 16px;color:var(--dim);font-size:9.6px;font-weight:750;letter-spacing:.13em;text-transform:uppercase}
.login-or::before,.login-or::after{content:"";height:1px;flex:1;background:var(--line)}
.login-or[hidden],.login-oauth[hidden]{display:none}

.login-field{margin-bottom:15px}
.login-field label{display:block;font-size:11.5px;font-weight:700;color:var(--text-2);margin-bottom:7px;letter-spacing:.01em}
.login-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px}
.login-label-row label{margin:0}
.login-link{
  border:0;background:none;padding:0;cursor:pointer;color:var(--violet-3);
  font-size:11px;font-weight:650;font-family:inherit;
}
.login-link:hover{color:#c4b5fd;text-decoration:underline}
.login-field input{
  width:100%;height:46px;padding:0 14px;border-radius:11px;
  border:1px solid var(--line-2);background:rgba(6,9,16,.7);color:var(--text);
  font-family:inherit;font-size:13.5px;outline:none;transition:border-color .15s,box-shadow .15s,background .15s;
}
.login-field input::placeholder{color:var(--faint)}
.login-field input:focus{border-color:rgba(139,92,246,.6);box-shadow:0 0 0 3px rgba(139,92,246,.14);background:rgba(6,9,16,.9)}
.login-pass{position:relative}
.login-pass input{padding-right:48px}
.login-eye{
  position:absolute;top:50%;right:8px;transform:translateY(-50%);
  width:32px;height:32px;border-radius:8px;border:1px solid transparent;background:none;
  color:var(--muted);cursor:pointer;font-size:14px;display:grid;place-items:center;
}
.login-eye:hover{color:var(--text);background:rgba(255,255,255,.05);border-color:var(--line)}

.login-strength{margin:-2px 0 15px}
.ls-bars{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:6px}
.ls-bars i{height:4px;border-radius:999px;background:rgba(255,255,255,.08);transition:background .2s}
.login-strength span{font-size:10.5px;color:var(--dim);line-height:1.45}
.login-strength.s1 .ls-bars i:nth-child(1){background:var(--red)}
.login-strength.s2 .ls-bars i:nth-child(-n+2){background:var(--amber)}
.login-strength.s2 span{color:var(--amber)}
.login-strength.s3 .ls-bars i:nth-child(-n+3){background:var(--cyan)}
.login-strength.s3 span{color:var(--cyan)}
.login-strength.s4 .ls-bars i{background:var(--green)}
.login-strength.s4 span{color:var(--green)}

.login-submit{
  position:relative;width:100%;height:48px;border:0;border-radius:12px;cursor:pointer;
  background:var(--grad);color:#fff;font-family:inherit;font-size:13.5px;font-weight:800;letter-spacing:.01em;
  box-shadow:0 16px 38px -14px rgba(99,102,241,.75);
  transition:transform .15s,box-shadow .15s,filter .15s;
  display:flex;align-items:center;justify-content:center;gap:9px;
}
.login-submit:hover{filter:brightness(1.07);box-shadow:0 20px 46px -14px rgba(99,102,241,.9)}
.login-submit:active{transform:translateY(1px)}
.login-submit:disabled{opacity:.65;cursor:not-allowed}
.login-submit i{
  width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;
  animation:spin .7s linear infinite;
}
.login-switch{margin-top:18px;text-align:center;font-size:11.8px;color:var(--muted);line-height:1.6}
.login-switch button{
  border:0;background:none;padding:0;cursor:pointer;color:var(--violet-3);
  font-family:inherit;font-size:11.8px;font-weight:750;
}
.login-switch button:hover{color:#c4b5fd;text-decoration:underline}
.login-card-foot{
  display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;
  margin-top:24px;padding-top:18px;border-top:1px solid var(--line);
  font-size:9.8px;color:var(--dim);letter-spacing:.02em;
}

@keyframes spin{to{transform:rotate(360deg)}}
@media (max-width:980px){
  .login-wrap{grid-template-columns:1fr;max-width:520px;gap:30px;padding:12px 0 36px}
  .login-brand-panel{display:none}
  .login-mobile-brand{display:flex}
  .login-card{padding:26px}
}
@media (max-width:520px){
  .login-body{padding:14px}
  .login-wrap{min-height:calc(100vh - 28px);padding:8px 0 24px}
  .login-card{border-radius:20px;padding:22px 18px}
  .login-card h2{font-size:23px}
  .login-orb{display:none}
}
