/* Adjustech authentication · shared design for login and OTP verification */
:root {
  --navy: #101a31;
  --navy-deep: #0b1428;
  --blue: #3f5bf6;
  --blue-dark: #344be0;
  --ink: #17223a;
  --slate: #667289;
  --border: #e1e6ef;
  --canvas: #f4f6fa;
  --surface: #fff;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
* { box-sizing: border-box; }
html { min-height: 100%; }
body {
  margin: 0;
  font-family: 'DM Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--ink);
  background: var(--canvas);
}
button, input { font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
.auth-page { min-height: 100svh; padding: clamp(14px, 2.65vw, 40px); display: grid; place-items: center; }
.auth-shell {
  display: grid;
  grid-template-columns: minmax(0, .97fr) minmax(0, 1fr);
  width: min(1280px, 100%);
  min-height: min(810px, calc(100svh - 80px));
  border: 1px solid #e9ecf3;
  border-radius: 26px;
  background: var(--surface);
  overflow: hidden;
  box-shadow: 0 25px 65px rgba(25, 37, 66, .08), 0 5px 20px rgba(25, 37, 66, .04);
}
.auth-story {
  isolation: isolate;
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 710px;
  overflow: hidden;
  padding: 48px clamp(34px, 4vw, 65px) 37px;
  background: radial-gradient(ellipse 87% 55% at 95% 80%, #24447a 0, transparent 68%),
              linear-gradient(150deg, #172641 0%, var(--navy-deep) 84%);
  color: #fff;
}
.auth-story::before {
  content: '';
  position: absolute;
  inset: 0;
  opacity: .17;
  z-index: -1;
  background-image: linear-gradient(rgba(174,194,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(174,194,255,.12) 1px,transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 40%, transparent);
  mask-image: linear-gradient(to bottom, transparent, #000 40%, transparent);
}
.story-glow { position: absolute; z-index: -1; border-radius: 50%; filter: blur(2px); pointer-events: none; }
.story-glow--one { width: 500px; height: 500px; right: -330px; top: 4%; border: 1px solid rgba(126,165,255,.12); box-shadow: 0 0 0 95px rgba(126,165,255,.025),0 0 0 190px rgba(126,165,255,.02); }
.story-glow--two { width: 330px; height: 330px; left: -210px; bottom: -160px; background: rgba(64,94,255,.14); filter: blur(90px); }
.brand { display: inline-flex; align-items: center; gap: 12px; width: fit-content; }
.brand-mark { width: 48px; height: 48px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.1); border-radius: 13px; overflow: hidden; }
.brand-mark img { display: block; width: 100%; height: 100%; padding: 5px; object-fit: contain; }
.brand-copy { display: grid; gap: 2px; }
.brand-copy strong { font-family: 'Manrope', system-ui, sans-serif; font-size: 21px; font-weight: 800; letter-spacing: -.85px; line-height: 1.1; }
.brand-copy small { font-size: 9px; letter-spacing: 2.35px; font-weight: 700; opacity: .53; }
.brand--light { color: white; }
.story-body { margin-top: auto; margin-bottom: auto; padding-top: 44px; }
.eyebrow { display: inline-flex; align-items: center; gap: 10px; letter-spacing: 2px; font-size: 10px; font-weight: 700; color: #b0c0e6; }
.eyebrow-dot { height: 7px; width: 7px; border-radius: 50%; background: #7dc7e6; box-shadow: 0 0 0 4px rgba(125,199,230,.1); }
.story-body h1 { font-family: 'Manrope', system-ui, sans-serif; font-size: clamp(33px, 3.35vw, 50px); letter-spacing: -2.3px; line-height: 1.21; font-weight: 800; margin: 23px 0 17px; }
.story-body h1 span { color: #91aaff; }
.story-body > p { color: #b9c5db; line-height: 1.85; font-size: 14.5px; max-width: 345px; margin: 0; }
.story-visual { position: relative; height: 235px; width: min(100%, 400px); margin: 38px auto 0; display: flex; align-items: center; justify-content: center; }
.visual-halo { position: absolute; border: 1px solid rgba(148,175,244,.14); border-radius: 50%; }
.visual-halo--outer { width: 335px; height: 230px; transform: rotate(-15deg); }
.visual-halo--inner { width: 275px; height: 195px; transform: rotate(26deg); }
.visual-card { position: relative; width: 232px; height: 191px; padding: 20px; border: 1px solid rgba(185,204,255,.26); border-radius: 19px; background: linear-gradient(154deg, rgba(103,132,204,.27),rgba(39,67,113,.25)); box-shadow: 0 25px 55px rgba(0,0,0,.15), inset 0 1px rgba(255,255,255,.09); backdrop-filter: blur(18px); transform: rotate(-6deg); }
.visual-topline { display: flex; align-items: center; justify-content: space-between; }
.visual-signal { display: flex; gap: 4px; }
.visual-signal i { background: #99afd8; opacity: .6; width: 5px; height: 5px; border-radius: 50%; }
.visual-dash { width: 41px; height: 5px; background: rgba(194,212,250,.22); border-radius: 5px; }
.visual-symbol { width: 53px; height: 53px; margin-top: 18px; display: grid; place-items: center; color: #afc5ff; border: 1px solid rgba(191,212,255,.22); border-radius: 15px; background: rgba(140,164,235,.12); }
.visual-title,.visual-subtitle { display: block; height: 6px; background: rgba(215,226,255,.43); border-radius: 8px; margin-top: 14px; width: 100px; }
.visual-subtitle { width: 62px; opacity: .4; margin-top: 7px; }
.visual-bars { position: absolute; display: flex; gap: 6px; align-items: flex-end; right: 20px; bottom: 21px; height: 34px; }
.visual-bars i { display: block; width: 7px; height: 13px; background: rgba(144,174,255,.47); border-radius: 3px; }
.visual-bars i:nth-child(2) { height: 21px; }.visual-bars i:nth-child(3) { height: 16px; }.visual-bars i:nth-child(4) { height: 30px; }.visual-bars i:nth-child(5) { height: 25px; }.visual-bars i:nth-child(6) { height: 33px; }.visual-bars i:nth-child(7) { height: 23px; }
.floating-tile { position: absolute; border: 1px solid rgba(224,230,255,.25); background: linear-gradient(135deg,#3e5c92,#273f6b); box-shadow: 0 16px 32px rgba(0,0,0,.20); backdrop-filter: blur(10px); }
.floating-tile--left { left: 13px; bottom: 15px; width: 119px; height: 53px; border-radius: 12px; display: flex; align-items: center; gap: 10px; padding: 9px; transform: rotate(6deg); }
.floating-icon { display: grid; place-items: center; width: 33px; height: 33px; flex: 0 0 33px; background: #4cbaa6; color: #fff; border-radius: 9px; }
.tile-lines { display: grid; gap: 7px; }.tile-lines i { width: 43px; height: 5px; border-radius: 3px; background: rgba(216,225,255,.62); }.tile-lines i:nth-child(2) { width: 26px; opacity: .45; }
.floating-tile--right { top: 18px; right: 27px; width: 61px; height: 61px; border-radius: 17px; display: grid; place-items: center; color: #d3dcff; transform: rotate(13deg); }
.story-footer { display: flex; align-items: center; gap: 12px; color: #7e94ba; letter-spacing: 2px; font-size: 9px; font-weight: 700; }
.footer-rule { width: 27px; height: 1px; background: #6680b3; }
.auth-content { display: flex; flex-direction: column; padding: 48px clamp(32px, 6.2vw, 94px) 32px; min-width: 0; }
.auth-topline { display: flex; align-items: center; gap: 10px; color: #9aa5b6; font-size: 10px; font-weight: 800; letter-spacing: 1.4px; white-space: nowrap; }
.status-dot { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: #2cbea2; box-shadow: 0 0 0 4px rgba(44,190,162,.10); }
.topline-divider { width: 3px; height: 3px; border-radius: 50%; background: #b6becb; }
.auth-form-wrap { width: min(100%, 405px); margin: auto; padding: 40px 0; }
.form-intro { margin-bottom: 36px; }
.intro-icon { display: grid; place-items: center; height: 52px; width: 52px; border-radius: 16px; color: var(--blue); background: #eef0ff; margin-bottom: 27px; }
.section-kicker { font-size: 11px; font-weight: 800; letter-spacing: 1.65px; color: var(--blue); margin-bottom: 11px; }
.form-intro h2 { font-family: 'Manrope', system-ui, sans-serif; margin: 0; font-size: clamp(27px, 2.65vw, 35px); font-weight: 800; letter-spacing: -1.5px; line-height: 1.25; color: #18233b; }
.title-period { color: var(--blue); }
.form-intro p { font-size: 14.5px; color: #80899a; line-height: 1.7; margin: 13px 0 0; }
.auth-form { display: grid; gap: 23px; }
.field { display: grid; gap: 10px; }
.field label, .field-heading label { font-size: 13px; font-weight: 700; color: #3b4558; }
.field-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.text-link { font-size: 12px; font-weight: 700; color: var(--blue); transition: color .2s; }
.text-link:hover { color: var(--blue-dark); text-decoration: underline; }
.input-wrap { position: relative; display: flex; align-items: center; border: 1.5px solid #dfe4ee; border-radius: 12px; height: 54px; background: #fff; transition: border-color .2s,box-shadow .2s; }
.input-wrap:hover { border-color: #bdc8d9; }
.input-wrap:focus-within { border-color: #6378ff; box-shadow: 0 0 0 4px rgba(63,91,246,.09); }
.input-wrap--invalid { border-color: #e16363; }.input-wrap--invalid:focus-within { border-color: #dc5555; box-shadow: 0 0 0 4px rgba(225,99,99,.1); }
.field-icon { display: grid; place-items: center; flex: 0 0 auto; width: 51px; color: #9ca8ba; pointer-events: none; }
.input-wrap:focus-within .field-icon { color: var(--blue); }
.input-wrap input { height: 100%; padding: 0 15px 0 0; width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: #1b2840; font-size: 14px; font-weight: 600; }
.input-wrap input::placeholder { color: #aeb7c4; font-weight: 400; opacity: 1; }
.input-wrap input::-ms-reveal { display: none; }
.show-password { display: grid; flex: 0 0 auto; place-items: center; border: 0; border-radius: 7px; color: #98a4b6; background: transparent; width: 40px; height: 40px; margin-right: 5px; }
.show-password:hover, .show-password:focus-visible { background: #f1f3fd; color: var(--blue); }
.show-password .eye-hidden { display: none; }
.show-password[aria-pressed='true'] .eye-visible { display: none; }.show-password[aria-pressed='true'] .eye-hidden { display: block; }
.field-error { font-size: 12px; color: #d03e48; margin: -1px 0 0; line-height: 1.45; }
.field-hint { margin: 0; font-size: 12.5px; color: #909bae; line-height: 1.6; }
.remember-option { display: flex; align-items: center; gap: 9px; cursor: pointer; width: fit-content; margin-top: -2px; color: #647187; font-size: 13px; font-weight: 600; }
.remember-option input { margin: 0; width: 16px; height: 16px; accent-color: var(--blue); cursor: pointer; }
.primary-button { display: flex; align-items: center; justify-content: center; gap: 13px; min-height: 54px; width: 100%; color: white; background: var(--blue); border: 1px solid var(--blue); border-radius: 12px; box-shadow: 0 8px 18px rgba(63,91,246,.15); font-size: 14px; font-weight: 800; transition: transform .2s,box-shadow .2s,background-color .2s; }
.primary-button:hover { background: var(--blue-dark); box-shadow: 0 12px 22px rgba(63,91,246,.24); transform: translateY(-1px); }
.primary-button:active { transform: translateY(0); }
.primary-button:disabled { cursor: wait; opacity: .74; transform: none; }
.primary-button svg { transition: transform .2s; }.primary-button:hover svg { transform: translateX(3px); }
.primary-button:disabled svg { transform: none; }
.form-footnote { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 27px; font-size: 12px; line-height: 1.6; text-align: center; color: #98a1b1; }
.form-footnote svg { color: #aab4c1; flex-shrink: 0; }
.field--code .input-wrap input { font-size: 17px; letter-spacing: 2px; font-weight: 700; }
.field--code .input-wrap input::placeholder { font-size: 14px; letter-spacing: 0; }
.back-link { display: flex; gap: 8px; align-items: center; justify-content: center; width: fit-content; margin: 26px auto 0; font-weight: 700; font-size: 13px; color: #5c6980; }
.back-link:hover { color: var(--blue); }
.alert { margin-bottom: 24px; border: 1px solid transparent; border-radius: 10px; padding: 12px 14px; font-size: 13px; line-height: 1.6; }
.alert--error { color: #a32e3a; background: #fff0f1; border-color: #ffd8dd; }
.alert--success { color: #166653; background: #edf9f5; border-color: #cdeee2; }
.auth-footer { display: flex; align-items: center; gap: 11px; color: #aab3c1; font-size: 11px; font-weight: 500; }
.footer-sep { color: #cdd3dd; }
.mobile-brand { display: none; }
:focus-visible { outline: 3px solid rgba(63,91,246,.34); outline-offset: 3px; }
@media (max-width: 1050px) {
  .auth-content { padding-left: clamp(26px,4vw,53px); padding-right: clamp(26px,4vw,53px); }
  .auth-story { padding-left: 35px; padding-right: 35px; }
  .story-body h1 { font-size: clamp(32px,4vw,43px); }
  .floating-tile--right { right: 4px; }
  .floating-tile--left { left: 0; }
}
@media (max-width: 760px) {
  .auth-page { padding: 0; background: white; display: block; }
  .auth-shell { display: block; min-height: 100svh; border: 0; border-radius: 0; box-shadow: none; }
  .auth-story { display: none; }
  .auth-content { min-height: 100svh; padding: 27px clamp(22px, 6vw, 55px) 25px; }
  .mobile-brand { display: block; }
  .brand--dark .brand-copy { color: #18233b; }
  .brand--dark .brand-mark { background: #f3f5fd; border: 1px solid #e6eafa; }
  .auth-topline { margin-top: 34px; color: #9ba4b4; font-size: 9px; }
  .auth-form-wrap { margin: auto; padding: 42px 0; }
  .auth-footer { justify-content: center; }
}
@media (max-width: 425px) {
  .auth-form-wrap { padding: 35px 0; }
  .form-intro { margin-bottom: 30px; }
  .intro-icon { margin-bottom: 23px; }
  .form-intro h2 { font-size: 28px; }
  .auth-form { gap: 20px; }
  .auth-topline { letter-spacing: .8px; gap: 7px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
