.login-container{width:100%;min-height:100vh;background:#f5f7fa;display:flex;align-items:center;justify-content:center;padding:20px}.login-wrapper{display:flex;width:100%;max-width:1000px;background:#fff;border-radius:16px;box-shadow:0 4px 24px #00000014;overflow:hidden}.login-left{flex:1;background:linear-gradient(135deg,#667eea,#764ba2);padding:60px 40px;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#fff;min-height:600px}.login-brand{text-align:center;margin-bottom:60px}.brand-logo{font-size:48px;font-weight:700;margin-bottom:12px;letter-spacing:2px}.brand-slogan{font-size:18px;opacity:.9;font-weight:300}.login-features{display:flex;flex-direction:column;gap:30px;width:100%;max-width:300px}.feature-item{display:flex;align-items:center;gap:16px;padding:20px;background:#ffffff1a;border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.feature-icon{font-size:32px;width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:#fff3;border-radius:12px}.feature-text{font-size:16px;font-weight:500}.login-right{flex:1;padding:60px 50px;display:flex;align-items:center;justify-content:center}.login-box{width:100%;max-width:400px}.login-title{font-size:32px;font-weight:700;color:#1a1a1a;margin-bottom:8px;text-align:left}.login-subtitle{font-size:15px;color:#666;margin-bottom:32px;text-align:left}.error-message{background:#fff1f0;color:#ff4d4f;padding:12px 16px;border-radius:8px;margin-bottom:24px;font-size:14px;border:1px solid #ffccc7;display:flex;align-items:center;gap:8px}.error-message:before{content:"⚠️";font-size:16px}.login-form{display:flex;flex-direction:column;gap:24px}.form-group label{font-size:14px;font-weight:600;color:#333}.form-group input{padding:14px 16px;border:1.5px solid #e0e0e0;border-radius:8px;font-size:15px;transition:all .3s;background:#fafafa}.form-group input:focus{outline:none;border-color:#667eea;background:#fff;box-shadow:0 0 0 3px #667eea1a}.form-group input::placeholder{color:#999}.form-options{display:flex;justify-content:space-between;align-items:center;margin-top:-8px}.remember-me{display:flex;align-items:center;gap:8px;font-size:14px;color:#666;cursor:pointer;-webkit-user-select:none;user-select:none}.remember-me input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#667eea}.forgot-password{color:#667eea;text-decoration:none;font-size:14px;font-weight:500;transition:color .3s}.forgot-password:hover{color:#764ba2;text-decoration:underline}.submit-button{padding:16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s;margin-top:8px;box-shadow:0 4px 12px #667eea4d}.submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.submit-button:active:not(:disabled){transform:translateY(0)}.submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-footer{margin-top:32px;text-align:center;font-size:14px;color:#666}.login-footer a{color:#667eea;text-decoration:none;font-weight:600;margin-left:4px;transition:color .3s}.login-footer a:hover{color:#764ba2;text-decoration:underline}@media (max-width: 768px){.login-wrapper{flex-direction:column;max-width:100%}.login-left{min-height:300px;padding:40px 20px}.login-features{flex-direction:row;flex-wrap:wrap;max-width:100%}.feature-item{flex:1;min-width:120px;flex-direction:column;text-align:center;padding:16px}.login-right{padding:40px 30px}.login-title{font-size:28px}}.register-container{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.register-box{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000001a;padding:40px;width:100%;max-width:480px}.register-title{font-size:28px;font-weight:600;color:#333;text-align:center;margin-bottom:8px}.register-subtitle{font-size:14px;color:#666;text-align:center;margin-bottom:30px}.error-message{background:#fee;color:#c33;padding:12px;border-radius:6px;margin-bottom:20px;font-size:14px;border:1px solid #fcc}.success-message{text-align:center;padding:40px 20px}.success-message h2{color:#4caf50;margin-bottom:10px}.success-message p{color:#666}.register-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:500;color:#333}.form-group input{padding:12px;border:2px solid #e0e0e0;border-radius:6px;font-size:14px;transition:border-color .3s}.form-group input:focus{outline:none;border-color:#667eea}.submit-button{padding:14px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:500;cursor:pointer;transition:opacity .3s;margin-top:10px}.submit-button:hover:not(:disabled){opacity:.9}.submit-button:disabled{opacity:.6;cursor:not-allowed}.register-footer{margin-top:20px;text-align:center}.register-footer a{color:#667eea;text-decoration:none;font-size:14px}.register-footer a:hover{text-decoration:underline}.callback-container{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2)}.callback-box{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000001a;padding:60px 40px;text-align:center;min-width:300px}.spinner{width:50px;height:50px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.success-icon{width:60px;height:60px;border-radius:50%;background:#4caf50;color:#fff;font-size:36px;line-height:60px;margin:0 auto 20px}.error-icon{width:60px;height:60px;border-radius:50%;background:#f44336;color:#fff;font-size:36px;line-height:60px;margin:0 auto 20px}.callback-message{font-size:16px;color:#666;margin:0}.callback-message.success{color:#4caf50}.callback-message.error{color:#f44336}.welcome-container{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.welcome-box{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000001a;padding:40px;width:100%;max-width:600px}.welcome-header{text-align:center;margin-bottom:30px}.welcome-title{font-size:32px;font-weight:600;color:#333;margin-bottom:8px}.welcome-subtitle{font-size:16px;color:#666}.user-info{display:flex;align-items:center;gap:20px;padding:30px;background:#f8f9fa;border-radius:8px;margin-bottom:30px}.user-avatar{flex-shrink:0}.user-avatar img{width:80px;height:80px;border-radius:50%;object-fit:cover}.avatar-placeholder{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:600}.user-details{flex:1}.user-details h2{font-size:24px;color:#333;margin-bottom:8px}.user-email,.user-phone{color:#666;font-size:14px;margin:4px 0}.user-roles{margin-top:12px;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.roles-label{font-size:14px;color:#666}.role-badge{display:inline-block;padding:4px 12px;background:#667eea;color:#fff;border-radius:12px;font-size:12px;font-weight:500}.welcome-actions{display:flex;gap:12px;margin-bottom:30px}.action-button{flex:1;padding:14px;border:none;border-radius:6px;font-size:16px;font-weight:500;cursor:pointer;transition:all .3s}.action-button.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.action-button.primary:hover{opacity:.9;transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.action-button:not(.primary){background:#f0f0f0;color:#333}.action-button:not(.primary):hover{background:#e0e0e0}.welcome-info{text-align:center;padding:20px;background:#f0f7ff;border-radius:8px;border-left:4px solid #667eea}.welcome-info p{margin:8px 0;color:#333}.info-text{font-size:14px;color:#666}.loading{text-align:center;color:#fff;font-size:18px}.App{min-height:100vh;display:flex;align-items:center;justify-content:center}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f5f5}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh}
