.App{display:flex;flex-direction:column;min-height:100vh}.page-container{flex:1 1;margin:0 auto;max-width:1200px;padding:20px;width:100%}.not-found{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:60vh;padding:40px 20px;text-align:center}.not-found h1{color:#1f2937;font-size:32px;margin-bottom:16px}.not-found p{color:#6b7280;font-size:16px;margin-bottom:24px}.not-found a{color:#4f46e5;font-weight:500;text-decoration:none}.dashboard-container{margin:0 auto;max-width:1000px;padding:20px}.dashboard-container h1{color:#1f2937;margin-bottom:20px}.dashboard-container p{color:#4b5563;line-height:1.6}:root{--primary-color:#25d366;--primary-dark:#128c7e;--primary-light:#dcf8c6;--secondary-color:#34b7f1;--text-dark:#111827;--text-medium:#374151;--text-light:#6b7280;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--error:#ef4444;--error-light:#fee2e2;--warning:#f59e0b;--success:#10b981;--success-light:#d1fae5;--white:#fff;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--transition:all 0.3s ease}.auth-container{align-items:center;background-color:#f9fafb;background-image:linear-gradient(135deg,#25d3661a,#34b7f10d);display:flex;justify-content:center;min-height:100vh;padding:24px}.auth-card{background-color:#fff;background-color:var(--white);border:1px solid #0000000d;border-radius:12px;border-radius:var(--radius-lg);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--shadow-lg);max-width:450px;overflow:hidden;padding:40px;position:relative;transform:translateY(0);transition:transform .3s ease;width:100%}.auth-card:before{background:linear-gradient(90deg,#25d366,#34b7f1);background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));content:"";height:6px;left:0;position:absolute;top:0;width:100%}.auth-header{flex-direction:column;margin-bottom:32px;text-align:center}.auth-header,.logo{align-items:center;display:flex}.logo{background-color:#dcf8c6;background-color:var(--primary-light);border-radius:50%;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;box-shadow:var(--shadow-md);height:70px;justify-content:center;margin-bottom:20px;transition:transform .3s ease;width:70px}.logo:hover{transform:scale(1.05)}.logo img{height:40px;object-fit:contain;width:40px}.auth-header h1{color:#111827;color:var(--text-dark);font-size:28px;font-weight:700;margin:0 0 12px}.auth-subheader{color:#6b7280;color:var(--text-light);font-size:16px;margin:0;max-width:300px}.auth-form{margin-bottom:32px}.form-group{margin-bottom:24px}.form-group label{color:#374151;color:var(--text-medium);display:block;font-size:14px;font-weight:600;letter-spacing:.3px;margin-bottom:8px}.input-with-icon{position:relative;transition:all .3s ease;transition:var(--transition)}.input-with-icon input,.input-with-icon select{background-color:#fff;background-color:var(--white);border:2px solid #e5e7eb;border:2px solid var(--gray-200);border-radius:8px;border-radius:var(--radius-md);color:#111827;color:var(--text-dark);font-size:15px;padding:14px 48px;transition:all .3s ease;transition:var(--transition);width:100%}.input-with-icon input:hover,.input-with-icon select:hover{border-color:#d1d5db;border-color:var(--gray-300)}.input-with-icon input:focus,.input-with-icon select:focus{border-color:#25d366;border-color:var(--primary-color);box-shadow:0 0 0 4px #25d36633;outline:none}.input-with-icon.error input,.input-with-icon.error select{background-color:#fee2e2;background-color:var(--error-light);border-color:#ef4444;border-color:var(--error);box-shadow:none}.input-icon{color:#9ca3af;color:var(--gray-400);font-size:20px;left:16px;position:absolute;top:50%;transform:translateY(-50%);transition:all .3s ease;transition:var(--transition)}.input-with-icon input:focus~.input-icon,.input-with-icon select:focus~.input-icon{color:#25d366;color:var(--primary-color)}.password-toggle{align-items:center;background:none;border:none;border-radius:50%;color:#9ca3af;color:var(--gray-400);cursor:pointer;display:flex;font-size:18px;height:28px;justify-content:center;position:absolute;right:16px;top:50%;transform:translateY(-50%);transition:all .3s ease;transition:var(--transition);width:28px}.password-toggle:hover{background-color:#f3f4f6;background-color:var(--gray-100);color:#374151;color:var(--text-medium)}.password-toggle:focus{box-shadow:0 0 0 2px #25d366;box-shadow:0 0 0 2px var(--primary-color);outline:none}.form-row{justify-content:space-between;margin-bottom:24px}.checkbox-group,.form-row{align-items:center;display:flex}.checkbox-group{position:relative}.checkbox-group input[type=checkbox]{height:0;opacity:0;position:absolute;width:0}.checkbox-group label{color:#374151;color:var(--text-medium);cursor:pointer;display:inline-block;font-size:14px;margin-bottom:0;padding-left:28px;position:relative;-webkit-user-select:none;user-select:none}.checkbox-group label:before{background-color:#fff;background-color:var(--white);border:2px solid #d1d5db;border:2px solid var(--gray-300);border-radius:4px;height:18px;left:0;top:0;width:18px}.checkbox-group label:after,.checkbox-group label:before{content:"";position:absolute;transition:all .3s ease;transition:var(--transition)}.checkbox-group label:after{border:solid #fff;border:solid var(--white);border-width:0 2px 2px 0;height:10px;left:6px;opacity:0;top:3px;transform:rotate(45deg);width:6px}.checkbox-group input[type=checkbox]:checked~label:before{background-color:#25d366;background-color:var(--primary-color);border-color:#25d366;border-color:var(--primary-color)}.checkbox-group input[type=checkbox]:checked~label:after{opacity:1}.checkbox-group input[type=checkbox]:focus~label:before{box-shadow:0 0 0 3px #25d36633}.forgot-password{color:#25d366;color:var(--primary-color);display:inline-block;font-size:14px;font-weight:500;position:relative;text-decoration:none;transition:all .3s ease;transition:var(--transition)}.forgot-password:hover{color:#128c7e;color:var(--primary-dark)}.forgot-password:after{background-color:#25d366;background-color:var(--primary-color);bottom:-2px;content:"";height:1px;left:0;position:absolute;transform:scaleX(0);transform-origin:right;transition:transform .3s ease;width:100%}.forgot-password:hover:after{transform:scaleX(1);transform-origin:left}.password-strength{margin-top:12px}.strength-meter{border-radius:3px;display:flex;gap:4px;height:6px;margin-bottom:8px;overflow:hidden}.strength-segment{background-color:#e5e7eb;background-color:var(--gray-200);border-radius:3px;flex:1 1;transform-origin:left;transition:background-color .3s ease,transform .3s ease}.strength-segment.strength-1{background-color:#ef4444;background-color:var(--error);transform:scaleX(1)}.strength-segment.strength-2,.strength-segment.strength-3{background-color:#f59e0b;background-color:var(--warning);transform:scaleX(1)}.strength-segment.strength-4,.strength-segment.strength-5{background-color:#10b981;background-color:var(--success);transform:scaleX(1)}.strength-text{font-size:13px;font-weight:500;text-align:right}.strength-text .strength-1{color:#ef4444;color:var(--error)}.strength-text .strength-2,.strength-text .strength-3{color:#f59e0b;color:var(--warning)}.strength-text .strength-4,.strength-text .strength-5{color:#10b981;color:var(--success)}.input-error{align-items:center;animation:errorShake .4s ease;color:#ef4444;color:var(--error);display:flex;font-size:13px;gap:6px;margin-top:8px}.input-error:before{content:"⚠️";font-size:12px}@keyframes errorShake{0%,to{transform:translateX(0)}20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}.auth-error{align-items:center;animation:fadeIn .3s ease;background-color:#fee2e2;background-color:var(--error-light);border-left:4px solid #ef4444;border-left:4px solid var(--error);border-radius:8px;border-radius:var(--radius-md);color:#ef4444;color:var(--error);display:flex;font-size:14px;gap:12px;margin-bottom:24px;padding:16px}.auth-error:before{content:"⚠️";font-size:18px}.auth-button{align-items:center;background-color:#25d366;background-color:var(--primary-color);border:none;border-radius:8px;border-radius:var(--radius-md);box-shadow:0 4px 6px #25d36626;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:600;justify-content:center;overflow:hidden;padding:14px 24px;position:relative;text-align:center;text-decoration:none;transition:all .3s ease;transition:var(--transition);width:100%}.auth-button:before{background-color:#ffffff1a;content:"";height:100%;left:0;position:absolute;top:0;transition:width .3s ease;width:0}.auth-button:hover{background-color:#128c7e;background-color:var(--primary-dark);box-shadow:0 6px 12px #25d36633;transform:translateY(-2px)}.auth-button:hover:before{width:100%}.auth-button:active{box-shadow:0 2px 4px #25d3661a;transform:translateY(0)}.auth-button:disabled{background-color:#d1d5db;background-color:var(--gray-300);box-shadow:none;cursor:not-allowed;transform:none}.auth-button:disabled:before{display:none}.auth-button .fas{margin-left:8px;transition:transform .3s ease}.auth-button:hover .fas{transform:translateX(4px)}.social-auth{margin-top:32px}.divider{margin:24px 0;position:relative;text-align:center}.divider:before{background-color:#e5e7eb;background-color:var(--gray-200);content:"";height:1px;left:0;position:absolute;right:0;top:50%}.divider span{background-color:#fff;color:#6b7280;color:var(--text-light);font-size:12px;font-weight:600;letter-spacing:1px;padding:0 16px;position:relative}.social-buttons{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr);margin-top:20px}.social-button{align-items:center;background-color:#fff;background-color:var(--white);border:2px solid #e5e7eb;border:2px solid var(--gray-200);border-radius:8px;border-radius:var(--radius-md);cursor:pointer;display:flex;flex-direction:column;justify-content:center;padding:16px;transition:all .3s ease;transition:var(--transition)}.social-button:hover{border-color:var(--gray-300);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;box-shadow:var(--shadow-md);transform:translateY(-3px)}.social-button.google:hover{border-color:#4285f4}.social-button.apple:hover{border-color:#000}.social-button.facebook:hover{border-color:#1877f2}.social-button:disabled{box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.auth-footer{color:#374151;color:var(--text-medium);font-size:15px;margin-top:32px}.auth-footer a{color:#25d366;color:var(--primary-color);font-weight:600;position:relative;transition:all .3s ease;transition:var(--transition)}.auth-footer a:hover{color:#128c7e;color:var(--primary-dark)}.auth-footer a:after{background-color:#25d366;background-color:var(--primary-color);bottom:-2px;content:"";height:2px;left:0;position:absolute;transform:scaleX(0);transform-origin:right;transition:transform .3s ease;width:100%}.auth-footer a:hover:after{transform:scaleX(1);transform-origin:left}.help-link{color:var(--text-light);transition:all .3s ease;transition:var(--transition)}.help-link:hover{color:#25d366;color:var(--primary-color)}.social-button:hover{background-color:#f9fafb;border-color:#d1d5db}.social-button img{height:24px;margin-bottom:8px;width:24px}.social-button span{color:#374151;color:var(--text-medium);font-size:13px;font-weight:500}.social-button.google{border-color:#4285f4}.social-button.google:hover{background-color:#f8faff}.social-button.apple{border-color:#000}.social-button.apple:hover{background-color:#f9f9f9}.social-button.facebook{border-color:#1877f2}.social-button.facebook:hover{background-color:#f8faff}.auth-footer{margin-top:24px;text-align:center}.auth-footer p{color:#6b7280;font-size:14px}.auth-footer a{color:#4f46e5;font-weight:500;text-decoration:none;transition:color .2s}.logout-confirmation,.logout-success{margin:20px 0;text-align:center}.user-info{background-color:#f9fafb;border-radius:8px;color:#374151;font-size:14px;margin:16px 0;padding:12px}.button-group{display:flex;gap:12px;margin-top:24px}.button-group button{flex:1 1}.auth-button.secondary{background-color:#fff;border:1px solid #4f46e5;color:#4f46e5}.auth-button.secondary:hover{background-color:#f9fafb}.icon-button{align-items:center;background-color:#fff;border:1px solid #e5e7eb;border-radius:50%;cursor:pointer;display:flex;height:40px;justify-content:center;transition:all .2s;width:40px}.icon-button:hover{background-color:#f9fafb;border-color:#d1d5db}.auth-footer a:hover{color:#4338ca;text-decoration:underline}.auth-links{margin-top:16px;text-align:center}.help-link{color:#6b7280;font-size:14px;text-decoration:none;transition:color .2s}.help-link:hover{color:#4b5563;text-decoration:underline}.success-message{background-color:#e8f5e9;border-radius:8px;color:#2e7d32;margin:24px 0;padding:16px;text-align:center}.success-icon{align-items:center;background-color:#2e7d32;border-radius:50%;color:#fff;display:inline-flex;font-size:24px;font-weight:700;height:48px;justify-content:center;margin-bottom:16px;width:48px}.verification-code-container{display:flex;justify-content:space-between;margin-bottom:20px}.verification-code-input{border:1px solid #d1d5db;border-radius:8px;font-size:24px;font-weight:600;height:56px;text-align:center;width:48px}.verification-code-input:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e526;outline:none}.expiration-timer{color:#6b7280;font-size:14px;margin-bottom:20px;text-align:center}.expired{color:#ef4444}.resend-code{margin-top:16px;text-align:center}.resend-button{background:none;border:none;color:#4f46e5;cursor:pointer;font-size:14px;font-weight:500;margin-left:4px;padding:0}.resend-button:hover{text-decoration:underline}.resend-button:disabled{color:#9ca3af;color:var(--gray-400);cursor:not-allowed;text-decoration:none}.auth-error-message{color:#6b7280;margin:24px 0;text-align:center}.auth-method-selector{border:1px solid #e5e7eb;border-radius:8px;display:flex;margin-bottom:20px;overflow:hidden}.method-button{background-color:#f9fafb;border:none;color:#6b7280;cursor:pointer;flex:1 1;font-size:14px;font-weight:500;padding:12px;transition:all .2s}.method-button.active{background-color:#4f46e5;color:#fff}.method-button:not(.active):hover{background-color:#f3f4f6}.auth-method-instructions{color:#6b7280;font-size:14px;margin-bottom:20px;text-align:center}.totp-timer{margin-top:24px}.totp-progress{background-color:#e5e7eb;border-radius:2px;height:4px;margin-bottom:8px;overflow:hidden}.totp-progress-bar{background-color:#4f46e5;height:100%;transition:width 1s linear}.auth-recovery-options{margin-top:24px;text-align:center}.auth-recovery-options p{color:#6b7280;font-size:14px;margin-bottom:8px}.recovery-links{display:flex;gap:16px;justify-content:center}.recovery-link{color:#4f46e5;font-size:14px;text-decoration:none}.recovery-link:hover{text-decoration:underline}.loading-container{margin:24px 0;text-align:center}.loading-spinner{border:4px solid #0000001a;border-top-color:#007bff}.verification-instructions{background-color:#f3f4f6;background-color:var(--gray-100);border-radius:8px;border-radius:var(--radius-md);margin:24px 0;padding:16px}.verification-instructions p{color:#374151;color:var(--text-medium);font-size:14px;line-height:1.5;margin:8px 0}.auth-alert{align-items:flex-start;animation:fadeIn .3s ease-in-out;border-radius:8px;border-radius:var(--radius-md);display:flex;margin-bottom:24px;padding:16px}.auth-alert i{font-size:20px;margin-right:12px;margin-top:2px}.auth-alert-content{flex:1 1}.auth-alert-content h4{font-size:16px;font-weight:600;margin:0 0 4px}.auth-alert-content p{color:#374151;color:var(--text-medium);font-size:14px;margin:0 0 12px}.auth-alert-action{align-items:center;background-color:#fff;background-color:var(--white);border:1px solid;border-radius:8px;border-radius:var(--radius-md);display:inline-flex;font-size:14px;font-weight:500;margin-right:12px;padding:8px 16px;text-decoration:none;transition:all .3s ease;transition:var(--transition)}.auth-alert-action i{font-size:14px;margin-left:8px;margin-right:0;margin-top:0}.auth-alert-secondary{color:#374151;color:var(--text-medium);font-size:14px;margin-left:8px;text-decoration:none;transition:all .3s ease;transition:var(--transition)}.auth-alert-secondary:hover{color:#111827;color:var(--text-dark);text-decoration:underline}.auth-alert-warning{background-color:#fef3c7;border:1px solid #f59e0b}.auth-alert-warning i{color:#d97706}.auth-alert-warning h4{color:#92400e}.auth-alert-warning .auth-alert-action{border-color:#f59e0b;color:#92400e}.auth-alert-warning .auth-alert-action:hover{background-color:#f59e0b;color:#fff}.auth-alert-info{background-color:#e0f2fe;border:1px solid #0ea5e9}.auth-alert-info i{color:#0284c7}.auth-alert-info h4{color:#0369a1}.auth-alert_info .auth-alert-action{border-color:#0ea5e9;color:#0369a1}.auth-alert_info .auth-alert-action:hover{background-color:#0ea5e9;color:#fff}.auth-alert-success{background-color:#dcfce7;border:1px solid #10b981}.auth-alert-success i{color:#059669}.auth-alert-success h4{color:#047857}.auth-alert-success .auth-alert-action{border-color:#10b981;color:#047857}.auth-alert-success .auth-alert-action:hover{background-color:#10b981;color:#fff}.spinner-small{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:14px;margin-right:8px;vertical-align:middle;width:14px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.navbar{background-color:#fff;box-shadow:0 1px 3px #0000001a;position:-webkit-sticky;position:sticky;top:0;z-index:100}.navbar-container{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:12px 24px}.navbar-logo a{align-items:center;color:#111827;display:flex;font-size:18px;font-weight:600;text-decoration:none}.navbar-logo img{margin-right:10px}.navbar-menu{align-items:center;display:flex}.navbar-links{display:flex;margin-right:24px}.nav-link{border-radius:6px;color:#4b5563;font-size:14px;font-weight:500;margin:0 4px;padding:8px 12px;text-decoration:none;transition:all .2s}.nav-link:hover{background-color:#f9fafb;color:#111827}.navbar-auth{align-items:center;display:flex;gap:12px}.navbar-auth .auth-button{font-size:14px;height:38px;padding:0 16px}.navbar-user{position:relative}.user-info{align-items:center;border-radius:6px;cursor:pointer;display:flex;padding:6px 12px;transition:all .2s}.user-info:hover{background-color:#f9fafb}.user-name{color:#374151;font-size:14px;font-weight:500;margin-right:8px}.user-avatar{object-fit:cover}.avatar-placeholder,.user-avatar{border-radius:50%;height:32px;width:32px}.avatar-placeholder{align-items:center;background-color:#4f46e5;color:#fff;display:flex;font-size:14px;font-weight:600;justify-content:center}.user-dropdown{background-color:#fff;border-radius:8px;box-shadow:0 4px 12px #0000001a;display:none;margin-top:8px;padding:8px 0;position:absolute;right:0;top:100%;width:200px;z-index:10}.navbar-user:hover .user-dropdown{display:block}.dropdown-item{color:#374151;display:block;font-size:14px;padding:8px 16px;text-decoration:none;transition:all .2s}.dropdown-item:hover{background-color:#f9fafb}.dropdown-divider{background-color:#e5e7eb;height:1px;margin:8px 0}.dropdown-item.logout{color:#ef4444}.dropdown-item.logout:hover{background-color:#fef2f2}*,:after,:before{box-sizing:border-box}blockquote,body,dd,dl,figure,h1,h2,h3,h4,html,p{margin:0;padding:0}html:focus-within{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#111827;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;min-height:100vh;text-rendering:optimizeSpeed}a:not([class]){-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}img,picture{display:block;max-width:100%}button,input,select,textarea{font:inherit}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.loading-container{align-items:center;color:#6b7280;display:flex;flex-direction:column;height:100vh;justify-content:center}.loading-spinner{animation:spin 1s ease-in-out infinite;border:3px solid #4f46e533;border-radius:50%;border-top-color:#4f46e5;height:40px;margin-bottom:16px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}:focus{outline:2px solid #4f46e5;outline-offset:2px}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid #4f46e5;outline-offset:2px}
/*# sourceMappingURL=main.dc1011eb.css.map*/