| .dw-auth { |
| min-height: 100vh; |
| display: grid; |
| grid-template-columns: minmax(0, 460px) 1fr; |
| background: var(--color-bg); |
| } |
|
|
| .dw-auth__panel { |
| display: flex; |
| flex-direction: column; |
| justify-content: center; |
| padding: var(--space-10) var(--space-10); |
| } |
|
|
| .dw-auth__brand { |
| display: flex; |
| align-items: center; |
| gap: var(--space-2); |
| margin-bottom: var(--space-10); |
| } |
|
|
| .dw-auth__mark { |
| width: 20px; |
| height: 20px; |
| border-radius: var(--radius-sm); |
| background: linear-gradient(135deg, var(--color-accent), var(--color-accent-strong)); |
| } |
|
|
| .dw-auth__logo { |
| width: 48px; |
| height: 48px; |
| object-fit: contain; |
| border-radius: var(--radius-md); |
| } |
|
|
| .dw-auth__wordmark { |
| font-size: var(--text-xl); |
| font-weight: 700; |
| letter-spacing: -0.02em; |
| } |
|
|
| .dw-auth__card { |
| animation: fade-in var(--transition-base); |
| } |
|
|
| .dw-auth__eyebrow { |
| display: inline-block; |
| font-size: var(--text-xs); |
| font-weight: 600; |
| letter-spacing: 0.06em; |
| text-transform: uppercase; |
| color: var(--color-accent-text); |
| margin-bottom: var(--space-3); |
| } |
|
|
| .dw-auth__title { |
| font-size: var(--text-3xl); |
| margin-bottom: var(--space-2); |
| } |
|
|
| .dw-auth__subtitle { |
| color: var(--color-text-secondary); |
| font-size: var(--text-sm); |
| margin-bottom: var(--space-8); |
| } |
|
|
| .dw-auth__body { |
| display: flex; |
| flex-direction: column; |
| gap: var(--space-4); |
| max-width: 360px; |
| } |
|
|
| .dw-auth__footer { |
| margin-top: var(--space-8); |
| font-size: var(--text-sm); |
| color: var(--color-text-secondary); |
| } |
|
|
| .dw-auth__aside { |
| position: relative; |
| background: linear-gradient(145deg, #0d1117 0%, #111a2e 50%, #0a1628 100%); |
| border-left: 1px solid var(--color-border); |
| overflow: hidden; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| padding: var(--space-10); |
| } |
|
|
| .dw-auth__aside-grid { |
| position: absolute; |
| inset: 0; |
| background-image: |
| linear-gradient(rgba(76, 141, 255, 0.15) 1px, transparent 1px), |
| linear-gradient(90deg, rgba(76, 141, 255, 0.15) 1px, transparent 1px); |
| background-size: 48px 48px; |
| mask-image: radial-gradient(ellipse at 50% 40%, black 20%, transparent 70%); |
| } |
|
|
| .dw-auth__aside::before { |
| content: ""; |
| position: absolute; |
| inset: 0; |
| background: |
| radial-gradient(circle at 25% 25%, rgba(76, 141, 255, 0.25) 0%, transparent 40%), |
| radial-gradient(circle at 75% 65%, rgba(110, 86, 255, 0.18) 0%, transparent 35%), |
| radial-gradient(circle at 50% 90%, rgba(63, 191, 127, 0.12) 0%, transparent 30%); |
| z-index: 0; |
| } |
|
|
| .dw-auth__aside::after { |
| content: ""; |
| position: absolute; |
| top: 15%; |
| right: 20%; |
| width: 180px; |
| height: 180px; |
| background: rgba(76, 141, 255, 0.15); |
| border-radius: 50%; |
| filter: blur(60px); |
| z-index: 0; |
| } |
|
|
| .dw-auth__aside-copy { |
| position: relative; |
| z-index: 1; |
| display: flex; |
| flex-direction: column; |
| align-items: flex-start; |
| gap: var(--space-3); |
| margin: auto; |
| } |
|
|
| .dw-auth__tagline-line { |
| font-family: var(--font-sans); |
| font-size: 2rem; |
| font-weight: 700; |
| color: var(--color-text-primary); |
| letter-spacing: -0.02em; |
| line-height: 1.2; |
| opacity: 0.85; |
| } |
|
|
| .dw-auth__tagline-line--accent { |
| color: var(--color-accent-strong); |
| opacity: 1; |
| } |
|
|
| @media (max-width: 900px) { |
| .dw-auth { |
| grid-template-columns: 1fr; |
| } |
| .dw-auth__aside { |
| display: none; |
| } |
| } |
|
|
| |
| .dw-auth-form { |
| display: flex; |
| flex-direction: column; |
| gap: 16px; |
| } |
|
|
| .dw-auth-form__password-field { |
| display: flex; |
| flex-direction: column; |
| gap: 6px; |
| } |
|
|
| .dw-auth-form__show-password { |
| display: flex; |
| align-items: center; |
| gap: 6px; |
| font-size: var(--text-xs); |
| color: var(--color-text-secondary); |
| cursor: pointer; |
| user-select: none; |
| } |
|
|
| .dw-auth-form__show-password input[type="checkbox"] { |
| width: 14px; |
| height: 14px; |
| } |
|
|
| .dw-auth-form__strength { |
| display: flex; |
| align-items: center; |
| gap: var(--space-2); |
| } |
|
|
| .dw-auth-form__strength-bar { |
| flex: 1; |
| height: 4px; |
| border-radius: 2px; |
| background: var(--color-border); |
| overflow: hidden; |
| } |
|
|
| .dw-auth-form__strength-fill { |
| height: 100%; |
| border-radius: 2px; |
| transition: width 0.2s, background 0.2s; |
| } |
|
|
| .dw-auth-form__options { |
| display: flex; |
| align-items: center; |
| justify-content: space-between; |
| } |
|
|
| .dw-auth-form__remember { |
| display: flex; |
| align-items: center; |
| gap: 8px; |
| font-size: var(--text-sm); |
| color: var(--color-text-secondary); |
| cursor: pointer; |
| } |
|
|
| .dw-auth-form__link { |
| font-size: var(--text-sm); |
| color: var(--color-accent-text); |
| text-decoration: none; |
| } |
|
|
| .dw-auth-form__link:hover { |
| text-decoration: underline; |
| } |
|
|
| .dw-auth-form__error { |
| font-size: var(--text-sm); |
| color: var(--color-danger); |
| padding: var(--space-2) var(--space-3); |
| background: var(--color-danger-soft); |
| border-radius: var(--radius-sm); |
| } |
|
|
| .dw-auth-form__resend { |
| background: none; |
| border: none; |
| color: var(--color-accent-text); |
| font-size: var(--text-sm); |
| cursor: pointer; |
| text-align: center; |
| padding: var(--space-1) 0; |
| } |
|
|
| .dw-auth-form__resend:hover { |
| text-decoration: underline; |
| } |
|
|
| .dw-auth-form__footer-text { |
| font-size: var(--text-sm); |
| color: var(--color-text-secondary); |
| text-align: center; |
| margin: 2px 0 6px; |
| } |
|
|
| .dw-auth-form__footer-text a { |
| color: var(--color-accent-text); |
| font-weight: 500; |
| text-decoration: none; |
| } |
|
|
| .dw-auth-form__footer-text a:hover { |
| text-decoration: underline; |
| } |
|
|
| .dw-auth-divider { |
| display: flex; |
| align-items: center; |
| text-align: center; |
| margin: 4px 0; |
| } |
|
|
| .dw-auth-divider::before, |
| .dw-auth-divider::after { |
| content: ""; |
| flex: 1; |
| border-bottom: 1px solid var(--color-border); |
| } |
|
|
| .dw-auth-divider span { |
| padding: 0 10px; |
| font-size: 11px; |
| color: var(--color-text-secondary); |
| text-transform: uppercase; |
| letter-spacing: 0.06em; |
| font-weight: 600; |
| } |
|
|
| .dw-auth-demo-btn { |
| width: 100%; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| gap: 8px; |
| background: rgba(76, 141, 255, 0.08) !important; |
| border: 1px solid rgba(76, 141, 255, 0.3) !important; |
| color: var(--color-accent-text, #4c8dff) !important; |
| font-weight: 600 !important; |
| padding: 10px 16px !important; |
| border-radius: var(--radius-md) !important; |
| cursor: pointer; |
| transition: all 0.2s ease !important; |
| } |
|
|
| .dw-auth-demo-btn:hover { |
| background: rgba(76, 141, 255, 0.18) !important; |
| border-color: rgba(76, 141, 255, 0.6) !important; |
| color: #fff !important; |
| box-shadow: 0 0 16px rgba(76, 141, 255, 0.2); |
| transform: translateY(-1px); |
| } |
|
|
|
|