body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.login-container{align-items:center;background-color:#f5f7fa;display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;margin:20px;max-width:500px;padding:40px;width:100%}.login-header{margin-bottom:30px;text-align:center}.school-logo{border:3px solid #e0e0e0;border-radius:50%;display:block;height:100px;margin:0 auto 20px;object-fit:cover;width:100px}.login-title{color:#2196f3;font-size:24px;font-weight:700;margin:0 0 8px}.login-subtitle{color:#666;font-size:16px;margin:0}.login-form{width:100%}.form-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;margin-bottom:30px}.form-group{display:flex;flex-direction:column}.form-group.full-width{grid-column:1/-1}.form-group.half-width{grid-column:span 1}.form-label{align-items:center;color:#333;display:flex;font-size:14px;font-weight:500;gap:6px;margin-bottom:6px}.label-icon{font-size:16px}.form-input,.form-select{background:#fff;border:2px solid #ddd;border-radius:8px;box-sizing:border-box;font-size:16px;height:48px;padding:12px 16px;transition:all .2s;width:100%}.form-input:focus,.form-select:focus{border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a;outline:none}.form-input::placeholder{color:#999}.password-wrapper{position:relative;width:100%}.password-toggle{background:none;border:none;color:#666;cursor:pointer;font-size:20px;padding:4px;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.password-toggle:hover{color:#2196f3}.form-select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath fill='%23666' d='m7 10 5 5 5-5z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:20px;padding-right:40px}.submit-btn{align-items:center;background:linear-gradient(45deg,#2196f3,#1976d2);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:700;height:52px;justify-content:center;margin-bottom:20px;padding:16px;transition:all .3s;width:100%}.submit-btn:hover:not(:disabled){background:linear-gradient(45deg,#1976d2,#1565c0);box-shadow:0 4px 12px #2196f34d;transform:translateY(-2px)}.submit-btn:disabled{cursor:not-allowed;opacity:.7}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:24px;width:24px}@keyframes spin{to{transform:rotate(1turn)}}.toggle-mode{margin:20px 0;text-align:center}.toggle-btn{background:none;border:none;color:#2196f3;cursor:pointer;font-size:14px;padding:8px;text-decoration:underline}.toggle-btn:hover{color:#1976d2}.alert{align-items:center;border-radius:8px;display:flex;font-size:14px;gap:10px;margin-bottom:20px;padding:16px}.alert-error{background-color:#ffebee;border:1px solid #ffcdd2;color:#c62828}.alert-success{background-color:#e8f5e9;border:1px solid #c8e6c9;color:#2e7d32}.login-footer{border-top:1px solid #e0e0e0;margin-top:30px;padding-top:20px;text-align:center}.footer-text{color:#666;font-size:12px;margin:0 0 10px}.school-footer{align-items:center;display:flex;gap:8px;justify-content:center}.footer-logo{border-radius:50%;height:24px;object-fit:cover;width:24px}.footer-school{color:#666;font-size:12px}.password-hint{background:#fff3e0;border-left:3px solid #ff9800;border-radius:6px;color:#666;font-size:13px;margin-top:8px;padding:8px 12px}.password-hint small{color:#999;font-size:11px}.error-message{color:#f44336;font-size:13px;margin-top:4px;padding-left:4px}.role-info-box{background:#f0f9ff;border:2px solid #bbdefb;border-radius:8px;margin:10px 0;padding:12px}.role-info-box .info-title{color:#1976d2;font-weight:700;margin-bottom:4px}.role-info-box .info-subtitle{color:#546e7a;font-size:13px}.conditional-field{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:600px){.login-card{margin:10px;padding:30px 20px}.form-grid{gap:16px;grid-template-columns:1fr}.form-group.half-width{grid-column:1/-1}.login-title{font-size:20px}}
/*# sourceMappingURL=main.9cfc045a.css.map*/