:root{--primary-color: #4E7BF2;--primary-dark: #3867d6;--primary-light: #94aef5;--secondary-color: #F2994A;--text-color: #333333;--text-secondary: #555555;--text-muted: #666666;--text-light: #888888;--white: #ffffff;--light-gray: #f5f7fa;--light-gray-2: #f8f9fa;--light-gray-3: #f1f3f5;--gray: #e9ecef;--gray-2: #ddd;--gray-3: #ced4da;--gray-4: #aaa;--dark-gray: #6c757d;--success: #4caf50;--info: #0070f3;--warning: #ff9800;--danger: #f44336;--error: #dc3545;--error-light: #fff2f0;--error-border: #ffccc7;--blue: #0d6efd;--blue-dark: #0b5ed7;--blue-light: rgba(13, 110, 253, .1);--purple: #9c27b0;--purple-light: #f5e6ff;--purple-text: #8b5cf6;--green: #10b981;--green-light: #ebf8f2;--border-radius: 12px;--border-radius-sm: 8px;--border-radius-lg: 16px;--box-shadow: 0 8px 20px rgba(0, 0, 0, .08);--box-shadow-sm: 0 4px 15px rgba(0, 0, 0, .08);--box-shadow-lg: 0 15px 35px rgba(0, 0, 0, .1);--transition: all .3s ease}*{box-sizing:border-box;padding:0;margin:0;font-family:Inter,sans-serif}a{text-emphasis:none}html,body,#root{min-height:100lvh;width:100%;background-color:var(--light-gray-2)}.container{width:100%;max-width:1200px;margin:0 auto}.footer{background:linear-gradient(120deg,var(--primary-color),#6e8efb);color:var(--white);padding:2rem 0;margin-top:2rem;width:100%;border-radius:var(--border-radius)}.footer-container{max-width:1200px;margin:0 auto;padding:0 1rem;display:flex;flex-wrap:wrap;justify-content:space-between}.footer-section{flex:1;min-width:200px;margin-bottom:1.5rem}.footer-section h4{font-size:1.2rem;margin-bottom:1rem;position:relative;font-weight:600}.footer-section h4:after{content:"";display:block;width:50px;height:3px;background-color:var(--white);margin-top:.5rem;border-radius:2px}.footer-section ul{list-style:none;padding:0}.footer-section li{margin-bottom:.5rem}.footer-section a{color:var(--light-gray);text-decoration:none;transition:var(--transition)}.footer-section a:hover{color:var(--white);transform:translate(5px)}.social-links{display:flex;flex-direction:column;gap:.5rem}.social-links a{color:var(--light-gray);transition:var(--transition)}.social-links a:hover{color:var(--white);transform:translate(5px)}.footer-bottom{background-color:#0000001a;padding:1rem 0;text-align:center;width:100%;margin-top:1rem;border-bottom-left-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius)}.footer-bottom p{margin:0;font-size:.9rem;color:var(--white)}@media (max-width: 768px){.footer-container{flex-direction:column}.footer-section{margin-bottom:2rem}}.page_layout{display:flex;flex-direction:column;height:100lvh}.child_component{flex-grow:1}.not-found-container{display:flex;justify-content:center;align-items:center;min-height:80vh;padding:2rem}.not-found-content{max-width:600px;text-align:center;padding:3rem;border-radius:12px;animation:fadeIn .8s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.not-found-content h1{font-size:8rem;font-weight:800;margin:0;background:linear-gradient(135deg,#6a11cb,#2575fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent;line-height:1}.not-found-content h2{font-size:2rem;font-weight:600;color:#333;margin:.5rem 0 1.5rem}.not-found-content p{font-size:1rem;color:#666;margin-bottom:.8rem;line-height:1.6}.home-button{display:inline-block;margin-top:2rem;padding:.8rem 1.8rem;background:linear-gradient(135deg,#6a11cb,#2575fc);color:#fff;text-decoration:none;border-radius:50px;font-weight:600;font-size:1rem;transition:all .3s ease;box-shadow:0 4px 15px #2a76fc66}.home-button:hover{transform:translateY(-3px);box-shadow:0 7px 20px #2a76fc99}.home-button:active{transform:translateY(0)}@media (max-width: 768px){.not-found-content{padding:2rem}.not-found-content h1{font-size:5rem}.not-found-content h2{font-size:1.5rem}}@media (max-width: 480px){.not-found-content{padding:1.5rem}.not-found-content h1{font-size:4rem}.not-found-content h2{font-size:1.2rem}.home-button{padding:.7rem 1.5rem}}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px;background-color:#f8f9fa}.login-form-box{width:100%;max-width:420px;padding:40px;background:#fff;border-radius:16px;box-shadow:0 8px 30px #0000000f;transition:transform .3s ease,box-shadow .3s ease}.login-form-box:hover{transform:translateY(-5px);box-shadow:0 15px 35px #0000001a}.login-form-box h1{margin:0 0 8px;font-size:28px;font-weight:700;color:#333}.login-form-box p{margin-bottom:30px;color:#666;font-size:16px}.form-group{margin-bottom:24px}.form-group label{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:#444}.form-group input{width:100%;padding:14px 16px;font-size:15px;border:1px solid #e0e0e0;border-radius:8px;background-color:#f9f9f9;transition:all .2s ease}.form-group input:focus{outline:none;border-color:#4a6cf7;background-color:#fff;box-shadow:0 0 0 3px #4a6cf71a}.form-group input::placeholder{color:#aaa}.input-error{border-color:#ff4d4f!important;background-color:#fff2f0!important}.error-text{display:block;margin-top:6px;color:#ff4d4f;font-size:13px}.error-message{padding:12px 16px;margin-bottom:20px;background-color:#fff2f0;border:1px solid #ffccc7;border-radius:8px;color:#ff4d4f;font-size:14px}.form-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.remember-me{display:flex;align-items:center;gap:8px}.remember-me input[type=checkbox]{width:18px;height:18px;accent-color:#4a6cf7;cursor:pointer}.remember-me label{font-size:14px;color:#555;cursor:pointer}.forgot-password{font-size:14px;color:#4a6cf7;text-decoration:none;transition:color .2s ease}.forgot-password:hover{color:#3a56c5;text-decoration:underline}.login-button{display:block;width:100%;padding:14px;background-color:#4a6cf7;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s ease,transform .1s ease}.login-button:hover{background-color:#3a56c5}.login-button:active{transform:scale(.98)}.login-button:disabled{background-color:#a1b1f7;cursor:not-allowed}.register-link{margin-top:24px;text-align:center;font-size:14px;color:#666}.register-link a{color:#4a6cf7;text-decoration:none;font-weight:500;transition:color .2s ease}.register-link a:hover{color:#3a56c5;text-decoration:underline}@media (max-width: 480px){.login-form-box{padding:30px 20px}.form-row{flex-direction:column;align-items:flex-start;gap:12px}.forgot-password{margin-top:4px}}.loading-container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background-color:#f8f9fa;z-index:1000}.loading-content{display:flex;flex-direction:column;align-items:center;gap:30px}.spinner-container{position:relative;width:80px;height:80px}.spinner{position:relative;width:100%;height:100%;animation:rotate 3s linear infinite}.spinner-circle{position:absolute;width:100%;height:100%;border-radius:50%;border:4px solid transparent}.spinner-circle:nth-child(1){border-top-color:#4e7bf2;animation:pulse 2s ease-in-out infinite}.spinner-circle:nth-child(2){border-right-color:#94aef5;animation:pulse 2s ease-in-out .5s infinite}.spinner-circle:nth-child(3){border-bottom-color:#4e7bf2;animation:pulse 2s ease-in-out 1s infinite}.spinner-circle:nth-child(4){border-left-color:#94aef5;animation:pulse 2s ease-in-out 1.5s infinite}.loading-text{font-size:1.3rem;font-weight:600;color:#333;display:flex}.loading-text span{animation:fadeInOut 1.8s infinite;opacity:0}.loading-text span:nth-child(1){animation-delay:.1s}.loading-text span:nth-child(2){animation-delay:.2s}.loading-text span:nth-child(3){animation-delay:.3s}.loading-text span:nth-child(4){animation-delay:.4s}.loading-text span:nth-child(5){animation-delay:.5s}.loading-text span:nth-child(6){animation-delay:.6s}.loading-text span:nth-child(7){animation-delay:.7s}.loading-text span:nth-child(8){animation-delay:.8s}.loading-text span:nth-child(9){animation-delay:.9s}.loading-text span:nth-child(10){animation-delay:1s}.loading-text span:nth-child(11){animation-delay:1.1s}.loading-text span:nth-child(12){animation-delay:1.2s}.loading-text span:nth-child(13){animation-delay:1.3s}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{transform:scale(.85);opacity:.8}50%{transform:scale(1);opacity:1}}@keyframes fadeInOut{0%,to{opacity:0}50%{opacity:1}}
