@keyframes spin{to{transform:rotate(360deg)}}body{background:var(--color-background-secondary);color:var(--color-navy-deep);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-4);font-family:var(--font-primary);position:relative}body::before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(var(--color-gray-200) 1px,transparent 1px);background-size:24px 24px;opacity:.4;z-index:-1}.login-container{background:var(--color-white);border-radius:16px;padding:var(--space-8);width:100%;max-width:420px;box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);position:relative;z-index:1;margin-bottom:60px}.brand{text-align:center;margin-bottom:var(--space-8)}.brand-title{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-navy-deep);margin-bottom:var(--space-2);letter-spacing:-.02em}.brand-subtitle{font-size:var(--font-size-sm);color:var(--color-gray-500);font-weight:400}.form-group,.login-form{display:flex;flex-direction:column;gap:var(--space-5)}.form-group{gap:var(--space-2)}.form-label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-primary)}.form-input{padding:var(--space-3);border:1px solid var(--color-gray-300);border-radius:8px;background:var(--color-white);color:var(--color-navy-deep);font-size:var(--font-size-base);transition:all .2s ease;box-shadow:0 1px 2px rgba(0,0,0,.05)}.form-input:focus{outline:0;border-color:var(--color-blue-electric);box-shadow:0 0 0 3px rgba(59,130,246,.1)}.form-input::placeholder{color:var(--color-gray-400)}.login-button{background:var(--color-blue-electric);color:var(--color-white);border:0;border-radius:8px;padding:var(--space-3) var(--space-4);font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:var(--space-2);min-height:48px;display:flex;align-items:center;justify-content:center;gap:var(--space-2);box-shadow:0 4px 6px -1px rgba(59,130,246,.2)}.login-button:hover{background:var(--color-blue-light);transform:translateY(-1px);box-shadow:0 8px 12px -1px rgba(59,130,246,.3)}.login-button:active{transform:translateY(0)}.login-button:disabled{background:var(--color-gray-400);cursor:not-allowed;transform:none;box-shadow:none}.consent-group,.error-message{font-size:var(--font-size-sm);display:none}.consent-group{align-items:flex-start;gap:var(--space-2);margin-top:var(--space-2);color:var(--color-navy-deep)}.consent-group.show{display:flex}.consent-text a,.register-link a,.register-link a:hover{color:var(--color-blue-electric);text-decoration:underline}.login-button.loading::after{content:"";width:16px;height:16px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}.error-message{background:rgba(239,68,68,.1);border:1px solid var(--color-error);border-radius:8px;padding:var(--space-3);color:var(--color-error);margin-top:var(--space-3)}.error-message.show,.password-requirements.show{display:block}.password-requirements{font-size:12px;color:#666;margin-top:5px;display:none}.register-link{text-align:center;margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-gray-100);font-size:var(--font-size-sm);color:var(--color-gray-600)}.register-link a{text-decoration:none;font-weight:500;transition:all .2s ease}.register-link a:hover{color:var(--color-blue-light)}@media (max-width:768px){.login-container,body{display:flex;flex-direction:column;justify-content:flex-start}body{min-height:100svh;align-items:stretch;padding:0}.login-container{margin:0 auto;padding:var(--space-6);max-width:100%;border-radius:0;min-height:auto;flex:1;padding-top:calc(var(--space-6) + env(safe-area-inset-top))}.brand-title{font-size:var(--font-size-2xl)}.auth-footer{margin-top:auto;padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom))}}.social-login-separator{display:flex;align-items:center;text-align:center;margin:var(--space-4)0;color:var(--color-gray-400);font-size:var(--font-size-sm);font-weight:400;text-transform:lowercase;letter-spacing:0}.social-login-separator::after,.social-login-separator::before{content:"";flex:1;border-bottom:1px solid var(--color-gray-200)}.social-login-separator span{padding:0 var(--space-3)}.social-login-buttons{display:flex;flex-direction:column;gap:var(--space-3)}.social-button{display:flex;align-items:center;justify-content:center;gap:var(--space-3);width:100%;padding:var(--space-3);border-radius:8px;font-size:var(--font-size-base);font-weight:500;cursor:pointer;transition:all .2s ease;background:var(--color-white);border:1px solid var(--color-gray-300);color:var(--color-navy-deep);box-shadow:0 1px 2px rgba(0,0,0,.05)}.social-login-block{margin-bottom:var(--space-1)}.social-button:hover{background:var(--color-gray-50);border-color:var(--color-gray-400);transform:translateY(-1px);box-shadow:0 4px 6px rgba(0,0,0,.05)}.social-button:active{transform:translateY(0)}.social-button.google{font-weight:600;min-height:52px}.error-message a{color:inherit;text-decoration:underline;font-weight:600}.social-icon{width:20px;height:20px}.password-input-wrapper{position:relative;display:flex;align-items:center;width:100%}.password-input-wrapper .form-input{flex:1;padding-right:48px}.password-toggle{position:absolute;right:12px;background:0 0;border:0;cursor:pointer;padding:4px;color:var(--color-gray-400);transition:color .2s ease;display:flex;align-items:center;justify-content:center}.password-toggle:hover{color:var(--color-gray-600)}.password-toggle:focus{outline:0;color:var(--color-blue-electric)}.eye-icon{width:20px;height:20px}