.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);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}.login-container{width:100%;max-width:400px;padding:20px}.login-card{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;padding:40px;text-align:center}.login-header{margin-bottom:30px}.login-header h1{margin:0 0 10px;font-size:28px;color:#333;font-weight:600}.login-header .subtitle{margin:0;font-size:14px;color:#666}.error-message{background-color:#fee;border:1px solid #fcc;border-radius:6px;color:#c33;padding:12px;margin-bottom:20px;font-size:14px;text-align:left}.error-message strong{display:block;margin-bottom:4px}.login-button{width:100%;padding:12px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:20px}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #667eea66}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.7;cursor:not-allowed}.microsoft-icon{font-size:18px}.spinner-small{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.login-info{margin-top:20px;padding-top:20px;border-top:1px solid #eee}.login-info p{margin:0;font-size:12px;color:#999;line-height:1.6}.login-success{text-align:center}.success-icon{width:60px;height:60px;background:#4caf50;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;margin:0 auto 20px;animation:scaleIn .5s ease}.login-success h2{margin:0 0 10px;font-size:24px;color:#333}.login-success .email{margin:0 0 20px;font-size:14px;color:#666}.loading-message{margin:20px 0 10px;font-size:14px;color:#666}.spinner{display:inline-block;width:30px;height:30px;border:3px solid #f3f3f3;border-top:3px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin-top:10px}@keyframes scaleIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@media (max-width: 480px){.login-card{padding:30px 20px}.login-header h1{font-size:24px}.login-button{padding:10px 16px;font-size:14px}}.dashboard-wrapper{display:flex;flex-direction:column;height:100vh;background-color:#f5f5f5}.dashboard-header{background:#fff;border-bottom:1px solid #e0e0e0;padding:20px;box-shadow:0 2px 4px #0000001a}.header-content{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:20px}.dashboard-header h1{margin:0 0 5px;font-size:28px;color:#333;font-weight:600}.dashboard-header .subtitle{margin:0;font-size:14px;color:#666}.header-actions{display:flex;align-items:center;gap:20px}.user-info{display:flex;align-items:center;gap:15px;padding:10px 15px;background-color:#f9f9f9;border-radius:6px}.user-name{font-size:14px;color:#333;font-weight:500}.logout-button{padding:8px 16px;background-color:#f44336;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease}.logout-button:hover{background-color:#d32f2f;transform:translateY(-1px);box-shadow:0 4px 8px #f443364d}.logout-button:active{transform:translateY(0)}.dashboard-container{flex:1;overflow:auto;padding:20px}.dashboard-content{max-width:1400px;margin:0 auto;height:100%;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.loading-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;background:#fff;border-radius:8px;gap:20px}.loading-state{color:#666}.loading-state .spinner{width:50px;height:50px;border:4px solid #f3f3f3;border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite}.loading-state p{font-size:16px;margin:0}.error-state{color:#c33;padding:40px 20px;text-align:center}.error-icon{font-size:48px;margin-bottom:10px}.error-state h3{margin:0 0 10px;font-size:20px;color:#c33}.error-state p{margin:0 0 20px;font-size:14px;color:#666;max-width:400px}.error-state button{padding:10px 20px;background-color:#667eea;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease}.error-state button:hover{background-color:#5568d3;transform:translateY(-2px);box-shadow:0 4px 8px #667eea4d}@media (max-width: 768px){.header-content{flex-direction:column;align-items:flex-start}.dashboard-header h1{font-size:24px}.header-actions{width:100%;justify-content:space-between}.user-info{flex-direction:column;align-items:flex-start;width:100%}.logout-button{width:100%}.dashboard-container{padding:10px}}@media (max-width: 480px){.dashboard-header{padding:15px}.dashboard-header h1{font-size:20px}.dashboard-header .subtitle,.user-name{font-size:12px}.logout-button{padding:6px 12px;font-size:12px}}.app-loading,.app-error{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.app-loading{flex-direction:column;gap:20px}.app-loading .spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.app-loading p{color:#fff;font-size:16px}.app-error{background:linear-gradient(135deg,#667eea,#764ba2)}.error-container{background:#fff;border-radius:12px;padding:40px;text-align:center;max-width:400px;box-shadow:0 20px 60px #0000004d}.error-container h2{color:#c33;margin-bottom:15px;font-size:24px}.error-container p{color:#666;margin-bottom:25px;line-height:1.6}.error-container button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 30px;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.error-container button:hover{transform:translateY(-2px);box-shadow:0 10px 20px #667eea66}*{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-color:#f5f5f5}#app{min-height:100vh;display:flex;flex-direction:column}.header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:2rem;box-shadow:0 2px 8px #0000001a}.header-content{display:flex;justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto}.header h1{font-size:2rem;margin-bottom:.5rem}.header .subtitle{font-size:1rem;opacity:.9}.status-indicator{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#fff3;border-radius:20px;font-size:.9rem;font-weight:500}.status-dot{width:8px;height:8px;border-radius:50%;background-color:gold;animation:pulse 2s infinite}.status-indicator.loading .status-dot{background-color:gold}.status-indicator.success .status-dot{background-color:#4caf50;animation:none}.status-indicator.error .status-dot{background-color:#f44336;animation:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.container{flex:1;padding:2rem;max-width:1400px;margin:0 auto;width:100%}.dashboard-wrapper{background:#fff;border-radius:8px;box-shadow:0 2px 12px #00000014;overflow:hidden;min-height:600px}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:600px;gap:1rem;color:#666}.spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error{padding:2rem;background-color:#fee;border:1px solid #fcc;border-radius:4px;color:#c33;margin:1rem 0;font-size:.95rem;line-height:1.6}.error strong{display:block;margin-bottom:.5rem;font-size:1.05rem}@media (max-width: 768px){.header{padding:1.5rem}.header-content{flex-direction:column;gap:1rem;text-align:center}.header h1{font-size:1.5rem}.status-indicator{width:100%;justify-content:center}.container{padding:1rem}.dashboard-wrapper{min-height:400px}.loading{height:400px}}
