/* Kerjaanku Authentication — V83.2
   Mobile-only user authentication. Visual direction follows the supplied
   reference: compact centered brand, segmented tabs, dark card, soft grid,
   strong gradient CTA, and generous touch targets. */

*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body.auth-page{min-height:100dvh;background:
 radial-gradient(circle at 50% 0%,rgba(79,70,229,.13),transparent 30%),
 radial-gradient(circle at 100% 85%,rgba(99,102,241,.12),transparent 32%),
 linear-gradient(145deg,#050918 0%,#070b1d 48%,#0a1026 100%);color:#f8fafc;overflow-x:hidden}
.auth-page:before{content:"";position:fixed;inset:0;background-image:linear-gradient(rgba(148,163,184,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.028) 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.8),transparent 92%);pointer-events:none}
.auth-shell{position:relative;z-index:1;width:min(calc(100% - 28px),420px);margin:0 auto;padding:22px 0 22px}
.auth-hero{text-align:center;padding:0 10px 22px}
.auth-logo{width:58px;height:58px;display:grid;place-items:center;margin:0 auto 14px;border-radius:17px;border:1px solid rgba(129,140,248,.42);background:rgba(8,12,30,.82);box-shadow:0 0 0 1px rgba(236,72,153,.42),0 0 24px rgba(99,102,241,.28);overflow:hidden}
.auth-logo img{width:43px;height:43px;object-fit:contain}
.auth-hero h1{margin:0;font-size:1.62rem;line-height:1.1;letter-spacing:-.045em;font-weight:900;background:linear-gradient(90deg,#f1f5f9 55%,#818cf8);-webkit-background-clip:text;background-clip:text;color:transparent}
.auth-hero p{margin:7px 0 0;color:#94a3b8;font-size:.77rem;line-height:1.5}
.auth-hero-compact{padding-bottom:20px}
.auth-hero-compact .auth-logo{margin-bottom:12px}
.auth-hero-compact h1{font-size:1.5rem}
.auth-card{width:100%;background:rgba(9,15,34,.92);border:1px solid rgba(148,163,184,.2);border-radius:24px;box-shadow:0 26px 65px rgba(0,0,0,.38),0 0 30px rgba(79,70,229,.045);overflow:hidden}
.auth-card-content{padding:20px 18px 19px}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:8px 0 27px;padding:4px;border:1px solid rgba(148,163,184,.13);border-radius:15px;background:#0b1225}
.auth-tab{min-height:38px;display:grid;place-items:center;border-radius:11px;color:#94a3b8;text-decoration:none;font-size:.75rem;font-weight:850}
.auth-tab.is-active{background:linear-gradient(135deg,#4f46e5,#5b4ee9);color:#fff;box-shadow:0 5px 15px rgba(79,70,229,.27)}
.auth-tab:not(.is-active):hover{color:#e2e8f0;background:rgba(148,163,184,.05)}
.auth-form{display:flex;flex-direction:column;gap:16px}
.auth-field{display:flex;flex-direction:column;gap:7px}
.auth-field-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.auth-field>span,.auth-field-head>span{font-size:.73rem;font-weight:800;color:#dbe4f0}
.auth-input-wrap{position:relative}
.auth-input-wrap input{display:block;width:100%;height:46px;min-height:46px;border:1px solid #293751;border-radius:14px;background:#151f34;color:#f8fafc;padding:11px 13px;font:inherit;font-size:.83rem;outline:none;transition:border-color .18s,box-shadow .18s,background .18s}
.auth-input-wrap input::placeholder{color:#64748b}
.auth-input-wrap input:focus{border-color:#6366f1;background:#17233b;box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.auth-link{color:#a5b4fc;text-decoration:none;font-size:.73rem;font-weight:800}
.auth-link:hover{text-decoration:underline}
.auth-check{display:flex;align-items:center;gap:8px;color:#94a3b8;font-size:.7rem;line-height:1.3;cursor:pointer;margin-top:-1px}
.auth-check input{appearance:none;width:16px;height:16px;flex:0 0 16px;margin:0;border:1px solid #475569;border-radius:5px;background:#10192d;position:relative}
.auth-check input:checked{border-color:#6366f1;background:#6366f1}
.auth-check input:checked:after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:.62rem;font-weight:900}
.auth-submit{width:100%;height:48px;border:0;border-radius:14px;background:linear-gradient(100deg,#4f46e5 0%,#6366f1 48%,#a855f7 100%);color:#fff;font:inherit;font-size:.83rem;font-weight:900;box-shadow:0 10px 25px rgba(99,102,241,.25);cursor:pointer;transition:transform .16s,filter .16s,box-shadow .16s}
.auth-submit:hover{filter:brightness(1.06);box-shadow:0 13px 29px rgba(99,102,241,.32);transform:translateY(-1px)}
.auth-submit:active{transform:translateY(0)}
.auth-divider{height:1px;background:rgba(148,163,184,.13);position:relative;margin:21px 0 16px;text-align:center}
.auth-divider span{position:relative;top:-7px;display:inline-block;padding:0 10px;background:#0a1023;color:#8290a7;font-size:.58rem;font-weight:800;letter-spacing:.045em;white-space:nowrap}
.auth-protection{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border:1px solid rgba(99,102,241,.16);border-radius:13px;background:rgba(30,41,59,.34)}
.auth-protection-icon{width:24px;height:24px;flex:0 0 24px;display:grid;place-items:center;border-radius:8px;background:rgba(99,102,241,.16);color:#a5b4fc;font-size:.7rem;font-weight:900}
.auth-protection strong{display:block;color:#dbe4f0;font-size:.7rem;line-height:1.3}
.auth-protection p{margin:3px 0 0;color:#74839b;font-size:.63rem;line-height:1.5}
.auth-register{text-align:center;margin:17px 0 0;color:#74839b;font-size:.69rem}
.auth-register a{color:#c4b5fd;font-weight:850;text-decoration:none}
.auth-register a:hover{text-decoration:underline}
.auth-alert{padding:10px 11px;border-radius:11px;font-size:.7rem;line-height:1.45;margin:0 0 14px}
.auth-alert.error{background:rgba(127,29,29,.2);border:1px solid rgba(248,113,113,.25);color:#fecaca}
.auth-alert.success{background:rgba(20,83,45,.2);border:1px solid rgba(74,222,128,.22);color:#bbf7d0}
.auth-footer-links{display:flex;justify-content:center;gap:7px;padding:15px 4px 0;color:#526079;font-size:.59rem;line-height:1.4}
.auth-footer-links a{color:#6f7c92;text-decoration:none}.auth-footer-links a:hover{color:#aab5c7}

/* OTP */
.auth-otp-page .auth-card-content{padding-top:20px}
.auth-progress{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:0 0 20px}
.auth-progress span{height:3px;border-radius:99px;background:#26344d}.auth-progress span.active{background:#6366f1}
.auth-otp-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(145deg,rgba(99,102,241,.22),rgba(168,85,247,.12));border:1px solid rgba(129,140,248,.25);font-size:1.2rem;margin-bottom:14px}
.auth-step{font-size:.63rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:#818cf8;margin:0 0 7px}
.auth-title{font-size:1.48rem;line-height:1.1;letter-spacing:-.035em;margin:0 0 8px}
.auth-subtitle{color:#8492a9;font-size:.73rem;line-height:1.6;margin:0 0 19px}
.auth-otp-email{color:#d5dbea;font-weight:800}
.auth-otp-box{height:60px!important;text-align:center;font-size:1.55rem!important;font-weight:900!important;letter-spacing:.38em!important;padding:10px 8px 10px calc(8px + .38em)!important;font-variant-numeric:tabular-nums}
.auth-resend-form{margin-top:9px}
.auth-resend{width:100%;height:43px;border:1px solid #334155;border-radius:13px;background:rgba(30,41,59,.45);color:#cbd5e1;font:inherit;font-size:.73rem;font-weight:850;cursor:pointer}
.auth-resend:hover{background:#182338;border-color:#475569;color:#fff}
.auth-otp-back{display:block;text-align:center;margin-top:16px;color:#94a3b8;text-decoration:none;font-size:.68rem;font-weight:750}.auth-otp-back:hover{color:#fff}

@media (max-height:680px){
  .auth-shell{padding-top:14px;padding-bottom:14px}
  .auth-hero{padding-bottom:15px}
  .auth-logo{width:50px;height:50px;margin-bottom:10px}
  .auth-logo img{width:37px;height:37px}
  .auth-hero h1{font-size:1.42rem}
  .auth-card-content{padding-top:17px;padding-bottom:16px}
  .auth-tabs{margin-bottom:21px}
  .auth-form{gap:13px}
  .auth-divider{margin-top:17px;margin-bottom:13px}
  .auth-register{margin-top:13px}
}

@media (max-width:360px){
  .auth-shell{width:min(calc(100% - 20px),420px)}
  .auth-card-content{padding-left:14px;padding-right:14px}
  .auth-hero p{font-size:.72rem}
  .auth-input-wrap input{height:44px;min-height:44px}
  .auth-submit{height:46px}
  .auth-divider span{font-size:.54rem}
}

@media (prefers-reduced-motion:reduce){.auth-submit{transition:none}}

/* V84 — unified authentication hub */
.auth-card>.auth-tabs{margin:0;padding:4px;border-radius:15px}
.auth-card>.auth-tabs + .auth-card-content{padding-top:20px}
.auth-field-hint{color:#64748b;font-size:.68rem;line-height:1.4;margin-top:-1px}
.auth-card-content>.auth-divider:first-child{margin-top:18px}
@media (max-width:360px){
  .auth-card>.auth-tabs{margin:0}
  .auth-card>.auth-tabs .auth-tab{min-height:37px}
}
