.page { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 24px; position: relative; gap: 16px; } .card { position: relative; z-index: 1; width: 100%; max-width: 420px; padding: 24px 32px 28px; background: var(--glass-bg); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border: 1px solid var(--glass-border); border-radius: var(--radius); box-shadow: var(--glass-shadow); } .brand { display: flex; align-items: center; justify-content: center; gap: 16px; position: relative; z-index: 1; width: 100%; max-width: 420px; } .cardHeader { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 28px; } .heading { display: flex; flex-direction: column; min-width: 0; flex: 1; gap: 2px; } .langSelect { flex-shrink: 0; margin-inline-start: auto; } .logo { display: block; width: 64px; height: 64px; object-fit: contain; background: transparent; flex-shrink: 0; border-radius: var(--radius-sm); } .brandText { display: flex; flex-direction: column; text-align: start; } .businessName { font-size: 17px; font-weight: 700; color: var(--text-primary); line-height: 1.3; } .appName { font-size: 13px; font-weight: 500; color: var(--text-muted); margin-top: 2px; text-transform: uppercase; letter-spacing: 0.14em; } .poweredBy { position: relative; z-index: 1; font-size: 12px; font-weight: 500; color: var(--text-muted); text-align: center; transition: color 0.2s; } .poweredBy:hover { color: var(--primary); } .title { font-size: 20px; font-weight: 700; color: var(--text-primary); text-align: start; margin: 0; line-height: 1.2; } .subtitle { font-size: 13px; color: var(--text-secondary); text-align: start; margin: 0; line-height: 1.3; } .backBtn { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; color: var(--text-secondary); margin-bottom: 12px; transition: color 0.2s; } .backBtn:hover { color: var(--primary); } :global([dir='rtl']) .backBtn svg { transform: scaleX(-1); } .form { display: flex; flex-direction: column; gap: 16px; } .field { display: flex; flex-direction: column; gap: 4px; } .field label { font-size: 12px; font-weight: 500; color: var(--text-secondary); } .inputWrap { position: relative; display: flex; align-items: center; } .inputIcon { position: absolute; inset-inline-start: 12px; color: var(--text-muted); pointer-events: none; } .inputWrap input { width: 100%; min-height: var(--field-height); padding-block: var(--field-padding-y); padding-inline: 38px 40px; font-size: var(--field-font-size); line-height: 1.4; font-family: inherit; color: var(--text-primary); background: var(--surface); border: 1px solid var(--border-color); border-radius: var(--radius-sm); outline: none; transition: border-color 0.2s, box-shadow 0.2s; box-sizing: border-box; } .inputWrap input[dir='ltr'] { direction: ltr; text-align: left; } .inputWrap input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(var(--primary-rgb) / 0.12); } .togglePassword { position: absolute; inset-inline-end: 12px; display: flex; align-items: center; justify-content: center; color: var(--text-muted); padding: 4px; transition: color 0.2s; } .togglePassword:hover { color: var(--primary); } .formActions { display: flex; justify-content: flex-end; margin-top: -8px; } .linkBtn { font-size: 13px; font-weight: 600; color: var(--primary); transition: opacity 0.2s; } .linkBtn:hover { opacity: 0.8; } .submitBtn { width: 100%; padding: 13px; font-size: 15px; font-weight: 600; color: white; text-align: center; background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); border-radius: var(--radius-sm); box-shadow: 0 4px 14px rgba(var(--primary-rgb) / 0.35); transition: transform 0.2s, box-shadow 0.2s; margin-top: 4px; } button.submitBtn { text-align: center; } .submitBtn:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(var(--primary-rgb) / 0.4); } .secondaryBtn { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 12px; font-size: 14px; font-weight: 600; color: var(--primary); background: rgba(var(--primary-rgb) / 0.08); border: 1px solid rgba(var(--primary-rgb) / 0.25); border-radius: var(--radius-sm); transition: background 0.2s; } .secondaryBtn:hover { background: rgba(var(--primary-rgb) / 0.14); } .divider { display: flex; align-items: center; gap: 12px; margin: 20px 0; color: var(--text-muted); font-size: 13px; } .divider::before, .divider::after { content: ''; flex: 1; height: 1px; background: rgba(148, 163, 184, 0.3); } .footerText { margin-top: 24px; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 4px; text-align: center; font-size: 14px; color: var(--text-secondary); } .codeHint { font-size: 13px; color: var(--text-secondary); text-align: center; padding: 10px 12px; background: rgba(var(--primary-rgb) / 0.06); border-radius: var(--radius-sm); margin-bottom: 4px; } .codeHint strong { color: var(--text-primary); } .resendRow { display: flex; justify-content: center; margin-top: -4px; } .countdown { font-size: 13px; color: var(--text-muted); } .error { font-size: 13px; line-height: 1.55; color: #fecaca; background: rgba(239, 68, 68, 0.16); border: 1px solid rgba(248, 113, 113, 0.45); border-radius: var(--radius-sm); padding: 10px 12px; } :global(html:not([data-theme='dark'])) .error { color: #b91c1c; background: rgba(239, 68, 68, 0.08); border-color: rgba(239, 68, 68, 0.25); } .info { font-size: 13px; color: var(--text-secondary); background: rgba(var(--primary-rgb) / 0.08); border: 1px solid rgba(var(--primary-rgb) / 0.2); border-radius: var(--radius-sm); padding: 10px 12px; } .fieldRow { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; } .submitBtn:disabled { opacity: 0.6; cursor: not-allowed; transform: none; } @media (max-width: 480px) { .card { padding: 28px 20px 24px; } .title { font-size: 22px; } }