:root{--primary-color: #007bff;--primary-hover-color: #0056b3;--background-color: #f4f7f6;--form-background-color: #ffffff;--text-color: #333;--label-color: #555;--border-color: #ccc;--border-focus-color: #007bff;--error-color: #d9534f;--success-color: #5cb85c;--info-color: #31708f;--info-bg-color: #d9edf7;--readonly-bg-color: #e9ecef;--font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--background-color);color:var(--text-color);line-height:1.6;display:flex;justify-content:center;align-items:flex-start;min-height:100vh;padding:2rem 1rem}.form-container{background-color:var(--form-background-color);padding:2.5rem;border-radius:12px;box-shadow:0 10px 25px #0000001a;width:100%;max-width:800px}#auth-container{max-width:500px}#teacher-lookup-container{max-width:600px}h1{color:var(--primary-color);margin-bottom:.5rem;text-align:center}.subtitle{text-align:center;margin-bottom:2rem;color:var(--label-color)}form{display:flex;flex-direction:column;gap:1.5rem}fieldset{border:1px solid var(--border-color);border-radius:8px;padding:1.5rem;margin:0}legend{padding:0 .5rem;font-weight:600;color:var(--primary-color);font-size:1.1rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group.full-width{grid-column:1 / -1}label{margin-bottom:0;font-weight:500;color:var(--label-color);font-size:.9rem}input,select,textarea{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:6px;font-size:1rem;font-family:inherit;transition:border-color .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--border-focus-color);box-shadow:0 0 0 3px #007bff33}input[readonly]{background-color:var(--readonly-bg-color);cursor:not-allowed}input:invalid,select:invalid,textarea:invalid{border-color:var(--error-color)}input:invalid:focus,select:invalid:focus,textarea:invalid:focus{box-shadow:0 0 0 3px #d9534f33}textarea{resize:vertical;min-height:80px}.checkbox-group{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap;margin-top:.25rem}.checkbox-item{display:flex;align-items:center;gap:.5rem}.checkbox-item input[type=checkbox]{width:auto;accent-color:var(--primary-color);width:1.1em;height:1.1em}.checkbox-item label{font-weight:400;color:var(--text-color);margin-bottom:0}.conditional-field{display:none;padding-left:1rem;border-left:3px solid var(--primary-color);margin-top:-.5rem;grid-column:1 / -1;max-width:50%}.input-with-icon{position:relative;display:flex;align-items:center}.input-with-icon input{padding-right:2.5rem}#auth-dob,#unionAdmissionDate{background-color:var(--form-background-color);cursor:pointer}.flatpickr-input{cursor:pointer}.input-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);color:var(--label-color);pointer-events:none}button[type=submit]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.5rem;background-color:var(--primary-color);color:#fff;border:none;border-radius:6px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:background-color .2s,transform .1s;align-self:center;margin-top:1rem}button[type=submit]:hover:not(:disabled){background-color:var(--primary-hover-color)}button[type=submit]:disabled{background-color:#a0c9ff;cursor:not-allowed}.auth-actions{display:flex;flex-direction:column;gap:.75rem;align-self:center;width:100%}.auth-actions>#auth-button{margin-top:0;align-self:stretch}#teacher-lookup-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.5rem;color:#fff;border:none;border-radius:6px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:background-color .2s;background-color:#f0ad4e}#teacher-lookup-button:hover{background-color:#ec971f}.editing-notice{text-align:center;padding:.75rem;border-radius:6px;margin-bottom:1.5rem;background-color:var(--info-bg-color);color:var(--info-color);border:1px solid #bce8f1;font-size:.9rem}#status-message,#auth-status-message,#lookup-status-message{text-align:center;padding:1rem;border-radius:6px;margin:1rem 0;display:none;font-weight:500}.status-message.success{background-color:#dff0d8;color:#3c763d;display:block}.status-message.error{background-color:#f2dede;color:#a94442;display:block}.spinner{width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.flatpickr-calendar{background:var(--form-background-color);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 5px 15px #0000001a;font-family:var(--font-family);width:auto!important}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:var(--primary-color);border-color:var(--primary-color)}.flatpickr-day.today{border-color:var(--primary-color)}.flatpickr-day.today:hover{background:#e6e6e6;border-color:var(--primary-color);color:var(--text-color)}.flatpickr-months .flatpickr-month{color:var(--text-color);fill:var(--text-color)}.flatpickr-weekdays,.numInput,.numInputWrapper,.flatpickr-day{color:var(--text-color)}span.flatpickr-weekday{color:var(--label-color);font-weight:500}.flatpickr-current-month .flatpickr-monthDropdown-months,.flatpickr-current-month .numInputWrapper{font-weight:600}.flatpickr-arrow{fill:var(--text-color)}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;display:none;justify-content:center;align-items:center;z-index:1000}.modal-content{background-color:#fff;padding:2.5rem;border-radius:12px;box-shadow:0 5px 15px #0000004d;text-align:center;max-width:400px;width:90%;animation:modal-fade-in .3s ease-out}@keyframes modal-fade-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-title{color:var(--success-color);font-size:1.8rem;margin-top:1rem;margin-bottom:.5rem}.modal-content p{color:var(--label-color);margin-bottom:1.5rem}.modal-content p #countdown-timer{font-weight:700;color:var(--primary-color)}.modal-icon{width:80px;height:80px;border-radius:50%;display:inline-block;margin:0 auto}.modal-icon-circle{stroke-dasharray:240;stroke-dashoffset:240;stroke-width:4;stroke-miterlimit:10;stroke:var(--success-color);animation:modal-circle-anim .7s ease-in-out forwards}.modal-icon-checkmark{stroke-dasharray:60;stroke-dashoffset:60;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke:var(--success-color);animation:modal-checkmark-anim .4s ease-in-out .4s forwards}@keyframes modal-circle-anim{to{stroke-dashoffset:0}}@keyframes modal-checkmark-anim{to{stroke-dashoffset:0}}.lookup-actions{display:flex;flex-direction:column;gap:.75rem;align-items:center;margin-top:1rem;width:100%}.lookup-actions>button{width:100%;max-width:300px}.button-secondary{display:inline-flex;align-items:center;justify-content:center;padding:.8rem 1.5rem;background-color:#6c757d;color:#fff;border:none;border-radius:6px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:background-color .2s}.button-secondary:hover{background-color:#5a6268}#lookup-results-container h2{color:var(--primary-color);margin-bottom:.5rem;font-size:1.2rem;border-bottom:2px solid var(--border-color);padding-bottom:.5rem;text-align:center}#results-summary{font-weight:500;margin-bottom:1rem;color:var(--label-color);text-align:center}#lookup-results ol{list-style-type:decimal;padding-left:1.5rem;max-height:40vh;overflow-y:auto;border:1px solid var(--border-color);border-radius:6px;padding:1rem 1rem 1rem 2.5rem}#lookup-results li{padding:.5rem .25rem;border-bottom:1px solid #eee}#lookup-results li:last-child{border-bottom:none}@media (max-width: 768px){body{padding:1rem .5rem}.form-container{padding:1.5rem}.form-grid{grid-template-columns:1fr}.form-group.full-width{grid-column:auto}.conditional-field{max-width:100%}}
