*{box-sizing:border-box;margin:0;padding:0}body{background:linear-gradient(135deg,#0f766e,#0d9488 50%,#14b8a6);color:#1f2937;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif}#root,body{min-height:100vh}a{color:inherit;text-decoration:none}button{cursor:pointer}button,input{font-family:inherit}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#ffffff1a}::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff80}.auth-page{align-items:center;display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:2rem;position:relative}.auth-container{max-width:440px;position:relative;width:100%;z-index:1}.auth-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border:1px solid #fff3;border-radius:24px;box-shadow:0 4px 6px #0000000d,0 10px 20px #0000001a,0 20px 40px #0000001a;padding:3rem}.auth-header{margin-bottom:2rem;text-align:center}.auth-logo{margin-bottom:1.5rem}.logo-icon{align-items:center;background:linear-gradient(135deg,#0f766e,#14b8a6);border-radius:16px;box-shadow:0 4px 12px #0f766e4d;display:flex;height:64px;justify-content:center;margin:0 auto;width:64px}.logo-icon svg{color:#fff;font-size:28px}.auth-header h1{color:#1f2937;font-size:1.75rem;font-weight:700;margin-bottom:.5rem}.auth-header p{color:#6b7280;font-size:.95rem}.auth-test-credentials{margin-bottom:1.5rem}.credential-badge{align-items:center;background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:1px solid #10b981;border-radius:12px;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;padding:.75rem 1rem}.credential-label{color:#065f46;font-size:.85rem;font-weight:500}.credential-value{background:#10b9811a;border-radius:4px;color:#047857;font-family:SF Mono,Monaco,monospace;font-size:.85rem;font-weight:600;padding:.25rem .5rem}.credential-divider{color:#10b981;opacity:.5}.auth-error{align-items:center;background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #ef4444;border-radius:12px;color:#dc2626;display:flex;font-size:.9rem;gap:.5rem;margin-bottom:1.5rem;padding:.875rem 1rem}.auth-form{gap:1.25rem}.auth-form,.form-group{display:flex;flex-direction:column}.form-group{gap:.5rem}.form-group label{align-items:center;color:#374151;display:flex;font-size:.9rem;font-weight:600;gap:.5rem}.input-icon{color:#0f766e;font-size:.85rem}.form-group input{background:#fafafa;border:2px solid #e5e7eb;border-radius:12px;font-size:1rem;padding:.875rem 1rem;transition:all .2s ease;width:100%}.form-group input:focus{background:#fff;border-color:#0f766e;box-shadow:0 0 0 4px #0f766e1a;outline:none}.form-group input::placeholder{color:#9ca3af}.auth-button{background:linear-gradient(135deg,#0f766e,#14b8a6);border:none;border-radius:12px;box-shadow:0 4px 12px #0f766e4d;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:.5rem;padding:1rem;transition:all .3s ease;width:100%}.auth-button:hover:not(:disabled){box-shadow:0 6px 20px #0f766e66;transform:translateY(-2px)}.auth-button:disabled{cursor:not-allowed;opacity:.7}.button-content,.button-loading{align-items:center;display:flex;gap:.5rem;justify-content:center}.spinner{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:18px;width:18px}.auth-footer{border-top:1px solid #e5e7eb;margin-top:1.5rem;padding-top:1.5rem;text-align:center}.auth-footer p{color:#6b7280;font-size:.9rem}.auth-link{color:#0f766e;font-weight:600;transition:color .2s ease}.auth-link:hover{color:#14b8a6;text-decoration:underline}.auth-decoration{bottom:0;left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:0}.decoration-circle{background:#ffffff1a;border-radius:50%;position:absolute}.circle-1{height:400px;right:-100px;top:-100px;width:400px}.circle-2{bottom:-50px;height:300px;left:-50px;width:300px}.circle-3{height:200px;left:10%;top:50%;width:200px}@media (max-width:480px){.auth-card{padding:2rem}.auth-header h1{font-size:1.5rem}.credential-badge{flex-direction:column;gap:.25rem}.credential-divider{display:none}}.register-page .auth-card{padding:2.5rem}.register-page .auth-form{gap:1rem}@media (max-width:480px){.register-page .auth-card{padding:1.5rem}}.dashboard-page{min-height:100vh;overflow:hidden;position:relative}.dashboard-background{background:linear-gradient(135deg,#0f766e,#0d9488 50%,#14b8a6);bottom:0;left:0;position:fixed;right:0;top:0;z-index:0}.bg-circle{background:#ffffff0d;border-radius:50%;position:absolute}.bg-circle-1{height:600px;right:-200px;top:-200px;width:600px}.bg-circle-2{bottom:-100px;height:400px;left:-100px;width:400px}.bg-circle-3{height:300px;left:60%;top:40%;width:300px}.dashboard-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-bottom:1px solid #fff3;position:relative;z-index:10}.header-content{justify-content:space-between;margin:0 auto;max-width:1200px;padding:1rem 2rem}.header-brand,.header-content{align-items:center;display:flex}.header-brand{gap:.75rem}.brand-icon{align-items:center;background:#fff3;border-radius:10px;display:flex;height:40px;justify-content:center;width:40px}.brand-icon,.brand-text{color:#fff;font-size:1.25rem}.brand-text{font-weight:700}.logout-button{align-items:center;background:#ffffff26;border:1px solid #ffffff4d;border-radius:10px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.5rem;padding:.625rem 1.25rem;transition:all .2s ease}.logout-button:hover{background:#ffffff40;transform:translateY(-1px)}.dashboard-main{margin:0 auto;max-width:800px;padding:3rem 2rem;position:relative;z-index:10}.welcome-section{margin-bottom:2.5rem;text-align:center}.welcome-icon{align-items:center;background:#fff3;border-radius:50%;color:#fff;display:flex;font-size:2rem;height:80px;justify-content:center;margin:0 auto 1.5rem;width:80px}.welcome-section h1{color:#fff;font-size:2.25rem;font-weight:700;margin-bottom:.5rem}.welcome-section p{color:#fffc;font-size:1.1rem}.user-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border:1px solid #fff3;border-radius:20px;box-shadow:0 4px 6px #0000000d,0 10px 20px #0000001a,0 20px 40px #0000001a;margin-bottom:1.5rem;padding:2rem}.card-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.card-header h2{color:#1f2937;font-size:1.25rem;font-weight:600}.role-badge{background:linear-gradient(135deg,#0f766e,#14b8a6);border-radius:20px;color:#fff;font-size:.8rem;font-weight:600;letter-spacing:.5px;padding:.375rem .875rem;text-transform:uppercase}.user-info{display:flex;flex-direction:column;gap:1.25rem}.info-item{align-items:center;background:#f9fafb;border-radius:12px;display:flex;gap:1rem;padding:1rem;transition:all .2s ease}.info-item:hover{background:#f3f4f6;transform:translateX(4px)}.info-icon{align-items:center;background:linear-gradient(135deg,#0f766e,#14b8a6);border-radius:10px;color:#fff;display:flex;flex-shrink:0;font-size:1.1rem;height:44px;justify-content:center;width:44px}.info-content{display:flex;flex-direction:column;gap:.25rem}.info-label{color:#6b7280;font-size:.8rem;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.info-value{color:#1f2937;font-size:1rem;font-weight:600}.role-text{color:#0f766e}.info-banner{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border:1px solid #fff3;border-radius:16px;box-shadow:0 4px 12px #0000001a;gap:1rem;padding:1.5rem}.banner-icon,.info-banner{align-items:center;display:flex}.banner-icon{background:linear-gradient(135deg,#10b981,#34d399);border-radius:12px;color:#fff;flex-shrink:0;font-size:1.25rem;height:48px;justify-content:center;width:48px}.banner-content h3{color:#1f2937;font-size:1rem;font-weight:600;margin-bottom:.25rem}.banner-content p{color:#6b7280;font-size:.9rem}@media (max-width:640px){.header-content{padding:1rem}.brand-text,.logout-button span{display:none}.dashboard-main{padding:2rem 1rem}.welcome-section h1{font-size:1.75rem}.user-card{padding:1.5rem}.info-item{padding:.875rem}.info-banner{flex-direction:column;text-align:center}}.app,.loading-screen{min-height:100vh}.loading-screen{align-items:center;color:#fff;display:flex;flex-direction:column;gap:1rem;justify-content:center}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:40px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}