/* LoginPage styles */ .root { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: var(--color-base-bg); position: relative; overflow: hidden; } /* Ambient gradient blob */ .bg { position: absolute; inset: 0; background: radial-gradient(ellipse 60% 50% at 30% 40%, var(--color-violet-glow) 0%, transparent 70%), radial-gradient(ellipse 40% 40% at 70% 70%, var(--color-amber-glow) 0%, transparent 70%); pointer-events: none; } .card { width: 100%; max-width: 420px; padding: var(--space-10) var(--space-8); position: relative; z-index: 1; } .logo { display: flex; align-items: center; gap: var(--space-3); margin-bottom: var(--space-8); } .logoMark { width: 36px; height: 36px; border-radius: var(--radius-md); background: var(--color-violet); display: flex; align-items: center; justify-content: center; color: white; font-weight: var(--font-bold); font-size: var(--text-base); box-shadow: var(--glass-shadow-violet); } .logoLabel { font-size: var(--text-lg); font-weight: var(--font-semibold); color: var(--color-text-primary); letter-spacing: var(--tracking-tight); } .title { font-size: var(--text-3xl); font-weight: var(--font-bold); color: var(--color-text-primary); letter-spacing: var(--tracking-tight); margin: 0 0 var(--space-2); } .subtitle { font-size: var(--text-sm); color: var(--color-text-secondary); margin: 0 0 var(--space-8); } .form { display: flex; flex-direction: column; gap: var(--space-5); } .field { display: flex; flex-direction: column; gap: var(--space-2); } .label { font-size: var(--text-xs); font-weight: var(--font-semibold); letter-spacing: var(--tracking-wider); text-transform: uppercase; color: var(--color-text-secondary); } .input { background: var(--glass-bg); border: var(--glass-border); border-radius: var(--radius-lg); padding: var(--space-3) var(--space-4); font-family: var(--font-sans); font-size: var(--text-base); color: var(--color-text-primary); outline: none; transition: border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard); width: 100%; box-sizing: border-box; } .input:focus { border-color: rgba(124, 58, 237, 0.50); box-shadow: 0 0 0 3px var(--color-violet-glow); } .input::placeholder { color: var(--color-text-tertiary); } .error { font-size: var(--text-sm); color: var(--color-red); margin: 0; } .submit { width: 100%; justify-content: center; padding: var(--space-4); font-size: var(--text-base); margin-top: var(--space-2); } .submit:disabled { opacity: 0.5; cursor: not-allowed; transform: none !important; }