/* หน้าเข้าสู่ระบบ */
.sw-auth { display: grid; grid-template-columns: 1.1fr 1fr; min-height: 100vh; background: var(--sw-bg); }
.sw-auth-hero { position: relative; overflow: hidden; color: #fff; display: flex; align-items: center; padding: 64px;
  background: radial-gradient(90% 70% at 15% 10%, rgba(46,194,181,.35), transparent 60%), radial-gradient(70% 60% at 90% 30%, rgba(75,163,242,.35), transparent 60%), linear-gradient(160deg, #052340 0%, #0A3D66 55%, #0B5A8C 100%); }
.sw-auth-hero-inner { position: relative; z-index: 2; max-width: 460px; }
.sw-auth-mark { width: 64px; height: 64px; border-radius: 20px; display: grid; place-items: center; font-size: 2rem; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.2); backdrop-filter: blur(6px); margin-bottom: 28px; color: #6FE0D5; }
.sw-auth-hero h1 { font-size: 3.4rem; font-weight: 600; line-height: 1; margin: 0 0 14px; letter-spacing: .5px; }
.sw-auth-hero h1 em { font-style: normal; color: #6FE0D5; }
.sw-auth-hero p { font-size: 1.1rem; color: #BCD7EE; margin-bottom: 32px; line-height: 1.6; }
.sw-auth-hero ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.sw-auth-hero li { display: flex; align-items: center; gap: 12px; color: #DCEBF7; font-size: .98rem; }
.sw-auth-hero li i { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: rgba(255,255,255,.1); color: #6FE0D5; }
.sw-auth-waves { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 34%; z-index: 1; }
.sw-auth-waves path { animation: sw-auth-drift 14s ease-in-out infinite alternate; transform-origin: center; }
.sw-auth-waves .w1 { fill: rgba(111,224,213,.12); }
.sw-auth-waves .w2 { fill: rgba(75,163,242,.16); animation-duration: 18s; }
.sw-auth-waves .w3 { fill: rgba(255,255,255,.08); animation-duration: 11s; }
@keyframes sw-auth-drift { from { transform: translateX(-3%); } to { transform: translateX(3%); } }
@media (prefers-reduced-motion: reduce) { .sw-auth-waves path { animation: none; } }

.sw-auth-panel { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px 24px; }
.sw-auth-card { width: 100%; max-width: 420px; background: var(--sw-surface); border: 1px solid var(--sw-border); border-radius: 24px; padding: 40px 36px; box-shadow: var(--sw-shadow-lg); text-align: center; }
.sw-auth-logo { width: 72px; height: 72px; object-fit: contain; margin-bottom: 18px; }
.sw-auth-card h2 { font-size: 1.5rem; margin-bottom: 6px; }
.sw-auth-card .lead-sm { color: var(--sw-muted); font-size: .95rem; margin-bottom: 28px; }
.btn-ms { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; padding: .85rem 1rem; font-size: 1rem; font-weight: 500; border-radius: 12px; background: var(--sw-surface); color: var(--sw-text); border: 1px solid var(--sw-border); box-shadow: 0 1px 2px rgba(0,0,0,.04); transition: border-color .15s, box-shadow .15s, transform .15s; }
.btn-ms:hover { border-color: var(--sw-primary); color: var(--sw-text); box-shadow: 0 8px 20px -10px var(--sw-primary); transform: translateY(-1px); }
.sw-auth-note { margin-top: 22px; padding: 12px 14px; border-radius: 12px; background: var(--sw-surface-2); color: var(--sw-muted); font-size: .82rem; text-align: left; display: flex; gap: 10px; }
.sw-auth-note i { color: var(--sw-primary); font-size: 1rem; }
.sw-auth-foot { margin-top: 24px; font-size: .78rem; color: var(--sw-muted); }
.sw-auth-err { text-align: left; }
.sw-status-ic { width: 76px; height: 76px; border-radius: 50%; margin: 4px auto 18px; display: grid; place-items: center; font-size: 2rem; }
.sw-status-ic.pending { background: var(--sw-warning-soft); color: var(--sw-warning); }
.sw-status-ic.rejected { background: var(--sw-danger-soft); color: var(--sw-danger); }
.sw-steps { text-align: left; margin: 20px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.sw-steps li { display: flex; gap: 12px; align-items: center; font-size: .9rem; color: var(--sw-muted); }
.sw-steps li b { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-size: .78rem; background: var(--sw-surface-2); border: 1px solid var(--sw-border); flex: none; }
.sw-steps li.done b { background: var(--sw-success); color: #fff; border-color: var(--sw-success); }
.sw-steps li.now b { background: var(--sw-warning); color: #fff; border-color: var(--sw-warning); }
.sw-steps li.now { color: var(--sw-text); font-weight: 500; }
@media (max-width: 991.98px) {
  .sw-auth { grid-template-columns: 1fr; }
  .sw-auth-hero { padding: 40px 24px 90px; min-height: 0; }
  .sw-auth-hero h1 { font-size: 2.4rem; }
  .sw-auth-hero ul, .sw-auth-mark { display: none; }
  .sw-auth-hero p { margin-bottom: 0; font-size: .95rem; }
  .sw-auth-panel { margin-top: -60px; position: relative; z-index: 3; padding-top: 0; }
  .sw-auth-card { padding: 32px 24px; }
}
