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:#f5f5f5;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:20px}.logo-section{margin-bottom:40px;text-align:center}.logo-section h1{color:#333;margin-bottom:10px}.selection-section{background-color:#fff;border-radius:10px;box-shadow:0 2px 4px #0000001a;max-width:400px;padding:30px;width:100%}.button-group{display:flex;flex-direction:column;gap:15px;margin-top:20px}.login-button{border:none;border-radius:5px;cursor:pointer;font-size:16px;padding:15px 20px;transition:transform .2s,box-shadow .2s}.login-button:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.login-button.organization{background-color:#79b5e9;color:#fff}.login-button.teacher{background-color:#0870ca;color:#fff}.login-button.student{background-color:#003c70;color:#fff}.login-form-container{background-color:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;margin:2rem auto;max-width:600px;padding:2rem}.login-form{display:flex;flex-direction:column;gap:1.5rem}h2{color:#1f2937;font-size:1.75rem;margin:0 0 1.5rem}h2,h3{text-align:center}h3{color:#374151;font-size:1.25rem;margin:0 0 1rem}.form-group{gap:.5rem}.form-group label{color:#374151;font-size:1rem}.form-group input,.form-group textarea{border:1px solid #e5e7eb;border-radius:8px;box-sizing:border-box;font-size:1rem;padding:.75rem;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group textarea:focus{border-color:#003c70;box-shadow:0 0 0 3px #003c701a;outline:none}.submit-button{background-color:#003c70;font-size:1rem;padding:.875rem;transition:background-color .2s,transform .1s}.submit-button:hover:not(:disabled){background-color:#1976d2}.submit-button:disabled{background-color:#9ca3af}.back-button{background-color:#6b7280;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;margin-top:10px;padding:.875rem;transition:background-color .2s}.back-button:hover{background-color:#4b5563}.help-button{background-color:#dc2626;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.875rem;margin-left:1rem;padding:.5rem 1rem;transition:background-color .2s}.help-button:hover{background-color:#b91c1c}.organization-info{background-color:#f3f4f6;border-radius:8px;margin-bottom:1.5rem;padding:.75rem;text-align:center}.organization-info h3{color:#374151;font-size:1rem;margin:0 0 .25rem}.organization-name{color:#003c70;font-size:1.1rem;font-weight:500;margin:0}.student-section{background-color:#f8fafc;border:1px solid #e2e8f0;margin-bottom:24px}.student-section.has-errors{background-color:#fef7f7;border-color:#fecaca;box-shadow:0 1px 3px #dc26261a}.student-section .form-group{margin-bottom:20px}.student-section .form-group:last-child{margin-bottom:0}.additional-students-heading{border-bottom:2px solid #e5e7eb;color:#374151;margin:32px 0 16px;padding-bottom:8px}.student-section.additional-student{padding-top:16px;position:relative}.remove-student-button{height:28px;right:12px;top:12px;width:28px}.remove-student-button:hover{transform:scale(1.05)}.additional-student-fields{grid-gap:20px;gap:20px;grid-template-columns:2fr 1fr;margin-top:8px}.add-student-section{border-top:2px dashed #e5e7eb;margin:24px 0;padding:20px 0}.add-student-button{background-color:#417e46;border:none;border-radius:8px}.add-student-button:hover{background-color:#417e46;box-shadow:0 4px 8px #10b9814d}.error-message{background-color:#fee2e2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:.875rem;margin-bottom:1rem;padding:.75rem}.error-container{align-items:center;background-color:#fee2e2;border:1px solid #fecaca;border-radius:6px;display:flex;justify-content:space-between;margin:.5rem 0;max-width:100%;padding:.75rem 1rem}.error-container .error-message{background:none;border:none;color:#dc2626;font-size:.875rem;margin:0;padding:0;text-align:left}.form-group input.error,.form-group input.field-error,.form-group textarea.field-error{background-color:#fef2f2;border-color:#dc2626;box-shadow:0 0 0 3px #dc26261a}.form-group input:focus.field-error{background-color:#fefbf2;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.field-error-message{align-items:flex-start;animation:fieldErrorSlide .3s ease-out;color:#dc2626;font-size:13px;margin-top:6px}.field-error-icon{background-color:#dc2626;border-radius:50%;height:16px;margin-top:1px;width:16px}.inline-error{align-items:center;animation:slideIn .3s ease-out;background-color:#fee2e2;border:1px solid #fecaca;border-radius:4px;display:flex;gap:12px;margin-top:8px;padding:12px 16px}.inline-error-icon{align-items:center;background-color:#dc2626;border-radius:50%;display:flex;flex-shrink:0;height:20px;justify-content:center;width:20px}.inline-error-text{color:#dc2626;flex:1 1;font-size:14px;line-height:1.4}.inline-error-action{background:none;border:none;color:#003c70;cursor:pointer;font-size:14px;font-weight:500;padding:0;text-decoration:none;transition:color .2s}.inline-error-action:hover{color:#1976d2;text-decoration:underline}.modal-overlay{background:#00000080;bottom:0;left:0;position:fixed;right:0;top:0;z-index:999}.help-modal{background:#fff;border-radius:8px;box-shadow:0 10px 25px #0003;left:50%;max-width:400px;padding:1.5rem;position:fixed;top:50%;transform:translate(-50%,-50%);width:90%;z-index:1000}.close-modal{background:none;border:none;color:#374151;cursor:pointer;font-size:1.25rem;position:absolute;right:.75rem;top:.75rem;transition:color .2s}.close-modal:hover{color:#111827}.help-modal h3{color:#1f2937;margin-top:0;text-align:left}.help-modal p{color:#6b7280;line-height:1.5}.help-modal ul{color:#6b7280;line-height:1.6}.help-modal li{margin-bottom:.5rem}@keyframes slideIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@keyframes fieldErrorSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.login-form-container{margin:1rem;padding:1.5rem}.form-row{gap:15px;grid-template-columns:1fr}.form-row .form-group{margin-bottom:15px}.student-section{margin-bottom:20px;padding:16px}.additional-student-fields{gap:16px;grid-template-columns:1fr}.field-error-message{font-size:12px}.add-student-section{margin:20px 0;padding:16px 0}.error-container{align-items:stretch;flex-direction:column;gap:.75rem}.help-button{align-self:center;margin-left:0}h2{font-size:1.5rem}.help-modal{padding:1.25rem;width:95%}}@media (max-width:480px){.login-form-container{margin:.5rem;padding:1rem}.back-button,.submit-button{font-size:.875rem;padding:.75rem}.remove-student-button{font-size:14px;height:24px;right:8px;top:8px;width:24px}}.add-student-button:focus,.back-button:focus,.help-button:focus,.remove-student-button:focus,.submit-button:focus{outline:2px solid #003c70;outline-offset:2px}@media (prefers-contrast:high){.student-section{border-width:2px}.student-section.has-errors{border-width:3px}.form-group input.field-error,.form-group textarea.field-error{border-width:2px}}@media (prefers-reduced-motion:reduce){.add-student-button,.back-button,.form-group input,.form-group textarea,.help-button,.remove-student-button,.student-section,.submit-button{transition:none}.field-error-message,.inline-error{animation:none}}.celebration-student-name:first-child{animation-delay:.1s}.celebration-student-name:nth-child(2){animation-delay:.2s}.celebration-student-name:nth-child(3){animation-delay:.3s}.celebration-student-name:nth-child(4){animation-delay:.4s}.celebration-student-name:nth-child(5){animation-delay:.5s}@media (max-width:768px){.success-notification-celebration{left:10px;max-width:none;right:10px;top:10px;width:auto}.celebration-content{padding:20px 16px 16px}.celebration-icon{height:52px;margin-bottom:12px;width:52px}.celebration-title{font-size:20px}.celebration-message{font-size:15px;margin-bottom:14px}.celebration-students{gap:6px}.celebration-student-name{font-size:13px;padding:5px 10px}}@media (max-width:480px){.celebration-content{padding:18px 14px 14px}.celebration-title{font-size:18px}.celebration-message{font-size:14px}.celebration-student-name{font-size:12px;padding:4px 8px}}@media (prefers-reduced-motion:reduce){.celebration-icon,.celebration-student-name,.confetti,.success-notification-celebration{animation:none}.confetti{display:none}}@media (prefers-contrast:high){.celebration-content{border:2px solid #059669}.celebration-student-name{background:#ffffff4d;border:1px solid #ffffff4d}}.modal-backdrop{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background-color:#fff;border-radius:8px;max-height:90vh;max-width:900px;overflow-y:auto;padding:20px;width:90%}.modal-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:10px}.close-button{background:none;border:none;color:#666;cursor:pointer;font-size:24px}.info-item{background-color:#f8f9fa;border-radius:6px;padding:15px}.info-item label{color:#666;display:block;font-size:.9em;margin-bottom:5px}.service-history table{border-collapse:collapse;margin-top:15px;width:100%}.service-history td,.service-history th{border-bottom:1px solid #dee2e6;padding:12px;text-align:left}.service-history th{background-color:#f8f9fa;font-weight:600}.no-records{padding:20px}.dashboard-container{max-width:1400px}.dashboard-header{flex-wrap:wrap;gap:15px}.dashboard-header h1{color:#333;font-size:1.5rem;margin:0;min-width:0}.logout-button{background-color:#dc3545}.logout-button:hover{background-color:#c82333}.dashboard-content{grid-gap:30px;display:grid;gap:30px;grid-template-columns:1fr 1fr}.log-hours-section,.search-section{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;min-width:0;padding:20px}.log-hours-section h2,.search-section h2{color:#333;font-size:1.25rem;margin-bottom:20px}.service-form{gap:20px}.form-group,.service-form{display:flex;flex-direction:column}.form-group{gap:8px;margin-bottom:20px}.form-group:last-child{margin-bottom:0}.form-group label{color:#333;font-size:14px;font-weight:500}.form-group input,.form-group select,.form-group textarea{border:2px solid #e9ecef;border-radius:8px;box-sizing:border-box;font-size:16px;padding:12px;transition:all .2s ease;width:100%}.form-group input[type=number]{-webkit-appearance:auto;appearance:auto}.form-group input[type=number]::-webkit-inner-spin-button,.form-group input[type=number]::-webkit-outer-spin-button{-webkit-appearance:auto;height:auto;margin:0;opacity:1}input[name=hours],input[name=numberOfHours]{-webkit-appearance:auto!important;appearance:auto!important}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff40;outline:none}.form-group textarea{min-height:100px;resize:vertical}.form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;margin-bottom:20px}.form-row .form-group{margin-bottom:0}.student-section{border:2px solid #0000;border-radius:8px;margin-bottom:20px;padding:20px;position:relative;transition:all .3s ease}.student-section.valid{background-color:#fff;border-color:#e9ecef}.student-section.has-errors{background-color:#fff5f5;border-color:#dc3545}.field-error{background-color:#fff5f5;border-color:#dc3545!important}.field-error,.field-error:focus{box-shadow:0 0 0 .2rem #dc354540}.field-error:focus{border-color:#dc3545}.field-error-message{align-items:center;animation:slideDown .3s ease;background-color:#dc3545;border-radius:4px;color:#fff;display:flex;font-size:12px;font-weight:500;gap:6px;line-height:1.3;margin-top:5px;padding:6px 10px}.field-error-icon{align-items:center;display:flex;flex-shrink:0;height:14px;justify-content:center;width:14px}.inline-error,.student-not-found-error{align-items:center;animation:slideDown .3s ease;background-color:#dc3545;border-radius:4px;color:#fff;display:flex;font-size:13px;gap:8px;line-height:1.4;margin-top:5px;padding:8px 12px}.inline-error-icon,.student-not-found-icon{align-items:center;display:flex;flex-shrink:0;height:16px;justify-content:center;width:16px}.inline-error-text,.student-not-found-text{flex:1 1}.additional-students-heading{background-color:#f8f9fa;border-left:4px solid #007bff;border-radius:6px;color:#333;font-size:18px;font-weight:600;margin:20px 0 15px;padding:12px}.additional-student{background-color:#fff;border:1px solid #e9ecef;border-radius:8px;margin-bottom:15px;padding:20px;position:relative}.additional-student.has-errors{background-color:#fff5f5;border-color:#dc3545}.remove-student-button{align-items:center;background-color:#dc3545;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:700;height:30px;justify-content:center;position:absolute;right:10px;top:10px;transition:all .2s ease;width:30px;z-index:10}.remove-student-button:hover{background-color:#c82333;transform:scale(1.1)}.additional-student-fields{grid-gap:15px;align-items:start;display:grid;gap:15px;grid-template-columns:1fr 150px}.add-student-section{border:none;border-top:none!important;margin:15px 0;padding:0;position:relative;text-align:center}.add-student-section:after,.add-student-section:before{border:none!important;content:none!important;display:none!important}.service-form .add-student-section{border-top:none!important;margin-top:15px!important;padding-top:0!important}.add-student-button{align-items:center;background-color:#28a745;border:none!important;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:8px;padding:12px 24px;transition:all .2s ease}.add-student-button:hover{background-color:#218838;box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.submit-button{background-color:#007bff;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;min-height:48px;padding:14px 24px;transition:all .2s ease;width:100%}.submit-button:hover:not(:disabled){background-color:#0056b3;box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.submit-button:disabled{background-color:#6c757d;box-shadow:none;cursor:not-allowed;transform:none}.search-container{margin-bottom:20px}.search-input{border:2px solid #e9ecef;border-radius:8px;box-sizing:border-box;font-size:16px;padding:12px 16px}.search-input:focus{box-shadow:0 0 0 3px #007bff40;outline:none}.student-card{align-items:center;background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;display:flex;gap:15px;justify-content:space-between;margin-bottom:12px;padding:16px}.student-info h3{color:#333;font-size:1.1rem;margin:0 0 8px}.student-info p{color:#666;font-size:.9rem;margin:4px 0}.view-details-button{background-color:#007bff;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;min-height:40px;padding:10px 16px;white-space:nowrap}.view-details-button:hover{background-color:#0056b3}.error-message{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24;white-space:pre-line}.error-message,.success-message{line-height:1.4;margin-bottom:20px;padding:12px 16px}.success-message{background-color:#d4edda;border:1px solid #c3e6cb;border-radius:4px;color:#155724}.success-notification-celebration{animation:celebrationSlideIn .6s cubic-bezier(.68,-.55,.265,1.55);max-width:380px;position:fixed;right:20px;top:20px;width:90%;z-index:1000}.celebration-content{background:linear-gradient(135deg,#10b981,#059669);border-radius:16px;box-shadow:0 15px 35px #10b98166;color:#fff;overflow:hidden;padding:24px 20px 20px;position:relative;text-align:center}.celebration-close{align-items:center;background:#ffffff26;border:none;border-radius:50%;color:#ffffffe6;cursor:pointer;display:flex;font-size:20px;font-weight:500;height:32px;justify-content:center;padding:6px;position:absolute;right:12px;top:12px;transition:all .2s ease;width:32px}.celebration-close:hover{background:#ffffff40;color:#fff;transform:scale(1.1)}.celebration-icon{align-items:center;animation:celebrationIconPulse 2s infinite;background:#ffffff26;border-radius:50%;display:flex;height:64px;justify-content:center;margin:0 auto 16px;width:64px}.celebration-title{font-size:22px;font-weight:700;margin:0 0 12px;text-shadow:0 1px 2px #0000001a}.celebration-message{font-size:16px;line-height:1.4;margin:0 0 16px;opacity:.95}.celebration-students{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:0}.celebration-student-name{animation:celebrationStudentPop .4s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:1px solid #ffffff1a;border-radius:20px;font-size:14px;font-weight:500;padding:6px 12px}.confetti{animation:confettiFall 3s infinite;border-radius:50%;height:8px;position:absolute;width:8px}.confetti-1{animation-delay:0s;background:#ffffffe6;left:15%}.confetti-2{animation-delay:.5s;background:#fef08ae6;left:30%}.confetti-3{animation-delay:1s;background:#a7f3d0e6;left:45%}.confetti-4{animation-delay:1.5s;background:#c4b5fde6;left:60%}.confetti-5{animation-delay:2s;background:#fca5a5e6;left:75%}.confetti-6{animation-delay:2.5s;background:#ffffffe6;left:85%}@keyframes celebrationSlideIn{0%{opacity:0;transform:translateX(100%) scale(.8) rotate(10deg)}60%{transform:translateX(-10%) scale(1.05) rotate(-2deg)}to{opacity:1;transform:translateX(0) scale(1) rotate(0deg)}}@keyframes celebrationIconPulse{0%,to{box-shadow:0 0 0 0 #fff6;transform:scale(1)}50%{box-shadow:0 0 0 10px #fff0;transform:scale(1.1)}}@keyframes celebrationStudentPop{0%{opacity:0;transform:scale(.5) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes confettiFall{0%{opacity:1;transform:translateY(-100px) rotate(0deg)}to{opacity:0;transform:translateY(300px) rotate(1turn)}}@media (max-width:768px){.dashboard-container{padding:15px 10px}.dashboard-content{gap:20px;grid-template-columns:1fr}.dashboard-header{margin-bottom:20px}.dashboard-header h1{font-size:1.4rem}.form-row{gap:15px;grid-template-columns:1fr}.log-hours-section,.search-section{padding:18px}.student-card{align-items:stretch;flex-direction:column;gap:12px;text-align:center}.view-details-button{padding:12px;width:100%}.additional-student-fields{gap:15px;grid-template-columns:1fr}.success-notification-celebration{left:10px;max-width:none;right:10px;top:10px;width:auto}}@media (max-width:480px){.dashboard-container{padding:10px 8px}.dashboard-header{align-items:center;flex-direction:row;flex-wrap:nowrap;gap:10px;justify-content:space-between;margin-bottom:20px}.dashboard-header h1{flex:1 1;font-size:1.25rem;margin:0;min-width:0;text-align:left}.logout-button{flex-shrink:0;font-size:13px;min-height:36px;min-width:auto;padding:8px 12px;white-space:nowrap}.log-hours-section,.search-section{border-radius:6px;padding:15px}.log-hours-section h2,.search-section h2{font-size:1.1rem;margin-bottom:15px;text-align:center}.form-group{margin-bottom:18px}.form-group label{font-size:13px;margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{border-radius:6px;font-size:16px;min-height:44px;padding:14px 12px}.form-group textarea{min-height:100px;resize:vertical}.submit-button{border-radius:6px;font-size:16px;min-height:52px;padding:16px 24px}.search-container{margin-bottom:15px}.search-input{border-radius:6px;font-size:16px;min-height:44px;padding:14px 16px}.student-card{align-items:stretch;border-radius:6px;flex-direction:column;gap:12px;margin-bottom:10px;padding:12px;text-align:center}.student-info h3{font-size:1rem;margin-bottom:6px}.student-info p{font-size:.85rem;margin:2px 0}.view-details-button{font-size:14px;min-height:44px;padding:12px 16px;width:100%}.additional-student-fields{gap:15px;grid-template-columns:1fr}.remove-student-button{font-size:14px;height:28px;right:8px;top:8px;width:28px}.field-error-message{font-size:11px;padding:5px 8px}.celebration-content{padding:20px 16px 16px}.celebration-icon{height:52px;margin-bottom:12px;width:52px}.celebration-title{font-size:20px}.celebration-message{font-size:15px;margin-bottom:14px}.celebration-students{gap:6px}.celebration-student-name{font-size:13px;padding:5px 10px}}@media (max-width:360px){.dashboard-container{padding:8px 5px}.dashboard-header h1{font-size:1.1rem}.logout-button{font-size:12px;min-height:32px;padding:6px 10px}.log-hours-section,.search-section{padding:12px}.form-group input,.form-group select,.form-group textarea{padding:12px 10px}.submit-button{min-height:48px;padding:14px 20px}.celebration-content{padding:18px 14px 14px}.celebration-title{font-size:18px}.celebration-message{font-size:14px}.celebration-student-name{font-size:12px;padding:4px 8px}}@media (pointer:coarse){.add-student-button,.logout-button,.remove-student-button,.submit-button,.view-details-button{min-height:44px;min-width:44px}.form-group input,.form-group select,.form-group textarea{min-height:44px}}@media (prefers-contrast:high){.form-group input,.form-group select,.form-group textarea,.log-hours-section,.search-section{border:2px solid #333}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#000;box-shadow:0 0 0 3px #0000004d}.celebration-content{border:2px solid #059669}.celebration-student-name{background:#ffffff4d;border:1px solid #ffffff4d}}@media (prefers-reduced-motion:reduce){.add-student-button,.form-group input,.form-group select,.form-group textarea,.remove-student-button,.submit-button,.view-details-button{transition:none}.add-student-button:hover,.submit-button:hover:not(:disabled){transform:none}.celebration-icon,.celebration-student-name,.confetti,.success-notification-celebration{animation:none}.confetti{display:none}}.feedback-modal-overlay{align-items:center;background-color:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.feedback-modal{animation:feedbackModalSlideIn .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:600px;overflow-y:auto;width:100%}.feedback-success-message{position:relative}.success-close{background:none;border:none;border-radius:50%;color:#155724;cursor:pointer;font-size:20px;padding:4px 8px;position:absolute;right:12px;top:12px;transition:all .2s ease}.success-close:hover{background-color:#1557241a;color:#0c4128}@keyframes feedbackModalSlideIn{0%{opacity:0;transform:translateY(-30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.feedback-modal-header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:24px 24px 16px}.feedback-modal-header h3{color:#333;font-size:20px;font-weight:600;margin:0}.feedback-close-button{align-items:center;background:none;border:none;border-radius:50%;color:#6c757d;cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.feedback-close-button:hover{background-color:#f8f9fa;color:#333}.feedback-form{padding:24px}.feedback-form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-bottom:20px}@media (max-width:768px){.feedback-form-row{gap:16px;grid-template-columns:1fr}}.feedback-form-group{margin-bottom:20px}.feedback-form-group label{color:#333;display:block;font-size:14px;font-weight:500;margin-bottom:6px}.feedback-form-group input,.feedback-form-group select,.feedback-form-group textarea{border:2px solid #e9ecef;border-radius:8px;box-sizing:border-box;font-family:inherit;font-size:14px;padding:12px;transition:all .2s ease;width:100%}.feedback-form-group input:focus,.feedback-form-group select:focus,.feedback-form-group textarea:focus{border-color:#28a745;box-shadow:0 0 0 3px #28a7451a;outline:none}.feedback-form-group textarea{min-height:100px;resize:vertical}.feedback-form-group small{color:#6c757d;display:block;font-size:12px;margin-top:4px}.file-input{background-color:#f8f9fa;border:2px dashed #dee2e6!important;cursor:pointer;padding:8px 12px!important}.file-input:hover{background-color:#e9ecef;border-color:#28a745!important}.file-input:focus{border-color:#28a745!important;box-shadow:0 0 0 3px #28a7451a!important}.feedback-form-actions{border-top:1px solid #e9ecef;display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:20px}@media (max-width:480px){.feedback-form-actions{flex-direction:column-reverse}}.feedback-cancel-button,.feedback-submit-button{border:2px solid #0000;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;min-width:120px;padding:12px 24px;transition:all .2s ease}.feedback-cancel-button{background-color:#f8f9fa;border-color:#e9ecef;color:#6c757d}.feedback-cancel-button:hover:not(:disabled){background-color:#e9ecef;color:#495057}.feedback-submit-button{background-color:#28a745;border-color:#28a745;color:#fff}.feedback-submit-button:hover:not(:disabled){background-color:#1e7e34;border-color:#1e7e34;box-shadow:0 4px 12px #28a7454d;transform:translateY(-1px)}.feedback-cancel-button:disabled,.feedback-submit-button:disabled{box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.feedback-error-message,.feedback-success-message{border-radius:8px;margin:24px;padding:24px;text-align:center}.feedback-success-message{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.feedback-error-message{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.success-icon{animation:successPulse .6s ease-out;color:#28a745;font-size:48px;margin-bottom:16px}@keyframes successPulse{0%{opacity:0;transform:scale(.8)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.feedback-error-message p,.feedback-success-message p{line-height:1.5;margin:8px 0}@media (max-width:768px){.feedback-modal-overlay{padding:10px}.feedback-modal{max-height:95vh}.feedback-form,.feedback-modal-header{padding:20px}.feedback-modal-header h3{font-size:18px}}@media (max-width:480px){.feedback-error-message,.feedback-form,.feedback-modal-header,.feedback-success-message{padding:16px}.feedback-modal-header h3{font-size:16px}}.floating-help-button{align-items:center;background:linear-gradient(135deg,#28a745,#1e7e34);border-radius:50px;bottom:30px;box-shadow:0 4px 20px #28a74566;color:#fff;cursor:pointer;display:flex;gap:10px;max-width:200px;overflow:hidden;padding:16px 20px;position:fixed;right:30px;transition:all .3s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:999}.floating-help-button:hover{background:linear-gradient(135deg,#1e7e34,#155724);box-shadow:0 6px 25px #28a74580;transform:translateY(-2px) scale(1.02)}.floating-help-button:active{box-shadow:0 2px 15px #28a74566;transform:translateY(0) scale(.98)}.help-icon{align-items:center;display:flex;flex-shrink:0;height:20px;justify-content:center;width:20px}.help-text{font-size:14px;font-weight:600;letter-spacing:.3px;max-width:0;opacity:0;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.floating-help-button.hovered .help-text{margin-left:4px;max-width:120px;opacity:1}.floating-help-button:before{animation:helpButtonPulse 2s infinite;background:#28a7454d;border-radius:50px;content:"";height:100%;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:100%;z-index:-1}@keyframes helpButtonPulse{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(1.4)}}@media (max-width:768px){.floating-help-button{border-radius:60px;bottom:20px;padding:14px 18px;right:20px}.help-icon{height:18px;width:18px}.help-text{font-size:13px}.floating-help-button.hovered .help-text{max-width:100px}}@media (max-width:480px){.floating-help-button{bottom:15px;padding:12px 16px;right:15px}.help-icon{height:16px;width:16px}.help-text{font-size:12px}.floating-help-button.hovered .help-text{max-width:90px}}@media (prefers-reduced-motion:reduce){.floating-help-button,.floating-help-button:before,.help-text{animation:none;transition:none}.floating-help-button:hover{transform:none}}@media (prefers-contrast:high){.floating-help-button{background:#060;border:2px solid #fff;box-shadow:none}.floating-help-button:hover{background:#040}}.floating-help-button:focus{outline:3px solid #28a74580;outline-offset:2px}.floating-help-button:focus:not(:focus-visible){outline:none}.floating-help-button:focus-visible{outline:3px solid #28a745cc;outline-offset:2px}.progress-labels{align-items:center;margin-top:.5rem}.hours-info,.progress-key{display:flex;gap:1rem}.key-item,.progress-key{align-items:center}.key-item{display:flex;gap:.25rem}.dot{height:8px;width:8px}.student-info-section{margin-bottom:20px;padding:20px}.student-header{align-items:center;display:flex;justify-content:space-between}.student-header h1{color:#333;margin:0}.logout-button{padding:8px 16px}.info-grid{margin-bottom:20px}.info-card span{font-size:1.1em}.progress-section{margin-top:20px}.progress-bar{background-color:#e9ecef;border-radius:10px;height:20px;margin:10px 0;overflow:hidden;width:100%}.progress-fill{background-color:#53a352;height:100%;transition:width .3s ease}.hours-breakdown{color:#666;display:flex;font-size:.9em;justify-content:space-between}.service-hours-section{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:20px}.table-container{overflow-x:auto}.service-table{border-collapse:collapse;margin-top:15px;width:100%}.service-table td,.service-table th{border-bottom:1px solid #dee2e6;padding:12px;text-align:left}.service-table th{font-weight:600}.service-table th,.service-table tr:hover{background-color:#f8f9fa}.dashboard-container{margin:0 auto;padding:20px}.dashboard-header,.header{align-items:center;display:flex;justify-content:space-between;margin-bottom:30px}.dashboard-header{border-bottom:1px solid #eee;padding-bottom:20px}.logout-button{border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px;transition:background-color .3s}.logout-button,.logout-button:hover{background-color:#dc2626c0}.info-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.info-card{padding:15px}.info-card label{font-size:.9em;margin-bottom:5px}.hours-table{border-collapse:collapse;margin-top:20px;width:100%}.hours-table td,.hours-table th{border-bottom:1px solid #dee2e6;padding:12px;text-align:left}.hours-table th{background-color:#f8f9fa;font-weight:600}.dashboard-container{margin:40px auto;max-width:1200px;padding:0 20px}.student-info-section{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:30px;padding:30px}.student-info-section h1{color:#333;font-size:24px;margin-bottom:30px}.info-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:30px}.info-card{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;padding:20px}.info-card label{color:#666;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.info-card span{color:#333;font-size:18px;font-weight:500}.service-records{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:30px}.service-records h2{color:#333;font-size:20px;margin-bottom:20px}.service-records table{border-collapse:collapse;margin-top:20px;width:100%}.service-records td,.service-records th{border-bottom:1px solid #dee2e6;padding:12px 15px;text-align:left}.service-records th{color:#495057;font-weight:600}.service-records th,.service-records tr:hover{background-color:#f8f9fa}.service-records td{color:#333}.no-records{font-style:italic;padding:30px}.loading,.no-records{color:#666;text-align:center}.loading{font-size:18px;padding:50px}.error-message{background-color:#ffebee;border-radius:4px;color:#dc2626c0;margin:20px 0;padding:15px;text-align:center}.hours-summary{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;margin:20px 0;padding:20px}.hours-summary h3{color:#333;font-size:16px;margin-bottom:15px}.hours-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.hours-item{background-color:#fff;border:1px solid #e9ecef;border-radius:4px;padding:15px}.hours-item label{color:#666;display:block;font-size:13px;margin-bottom:5px}.hours-item span{color:#333;font-size:16px;font-weight:500}.dot{border-radius:50%;display:inline-block;height:12px;margin-right:8px;width:12px}.progress-section{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;margin:20px 0;padding:20px}.progress-section h3{color:#333;font-size:16px;margin-bottom:15px}.progress-bar-container{background-color:#f0f0f0;border-radius:10px;height:20px;overflow:hidden;position:relative;width:100%}.progress-bars{display:flex;height:100%;width:100%}.progress-bar{height:100%;transition:width .3s ease}.progress-bar.school{background-color:#0c1650;z-index:2}.progress-labels{color:#666;display:flex;font-size:14px;justify-content:space-between;margin-top:5px}.progress-breakdown{display:flex;gap:20px;margin-top:15px}.progress-item{align-items:center;display:flex;gap:8px}@media (max-width:768px){.dashboard-container{margin:20px auto}.info-grid{grid-template-columns:1fr}.service-records{overflow-x:auto}.service-records table{min-width:600px}}.student-name-search{margin-top:8px;position:relative}.search-trigger-button{align-items:center;background-color:initial;border:1px dashed #007bff;border-radius:4px;color:#007bff;cursor:pointer;display:inline-flex;font-size:13px;gap:6px;padding:6px 12px;transition:all .2s ease}.search-trigger-button:hover{background-color:#e7f3ff;border-style:solid}.search-trigger-button svg{height:14px;width:14px}.search-dropdown{animation:slideDown .2s ease-out;background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 4px 12px #00000026;left:0;margin-top:4px;position:absolute;right:0;top:100%;z-index:1000}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.search-input-wrapper{border-bottom:1px solid #e9ecef;padding:12px;position:relative}.search-icon{color:#6c757d;left:20px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.search-input{border:1px solid #dee2e6;border-radius:6px;font-size:14px;outline:none;padding:10px 40px 10px 36px;transition:border-color .2s;width:100%}.search-input:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.search-close-button{align-items:center;background:none;border:none;border-radius:50%;color:#6c757d;cursor:pointer;display:flex;font-size:24px;height:24px;justify-content:center;padding:0;position:absolute;right:20px;top:50%;transform:translateY(-50%);transition:background-color .2s;width:24px}.search-close-button:hover{background-color:#f8f9fa;color:#333}.search-results{max-height:300px;overflow-y:auto}.search-loading{align-items:center;color:#6c757d;display:flex;font-size:14px;gap:10px;justify-content:center;padding:30px}.loading-spinner{animation:spin .6s linear infinite;border:2px solid #e9ecef;border-radius:50%;border-top-color:#007bff;height:20px;width:20px}@keyframes spin{to{transform:rotate(1turn)}}.search-no-results{align-items:center;color:#6c757d;display:flex;flex-direction:column;justify-content:center;padding:30px 20px;text-align:center}.search-no-results svg{color:#adb5bd;margin-bottom:12px}.search-no-results p{color:#495057;font-size:14px;margin:0 0 8px}.search-hint{color:#6c757d;font-size:12px}.search-hint-message{color:#6c757d;font-size:13px;padding:20px;text-align:center}.search-suggestions-list{list-style:none;margin:0;padding:0}.search-suggestion-item{border-bottom:1px solid #f8f9fa;cursor:pointer;padding:12px 16px;transition:background-color .15s ease}.search-suggestion-item:last-child{border-bottom:none}.search-suggestion-item.highlighted,.search-suggestion-item:hover{background-color:#f8f9fa}.search-suggestion-item.highlighted{background-color:#e7f3ff}.suggestion-content{align-items:center;display:flex;gap:12px;justify-content:space-between}.suggestion-name{color:#212529;font-size:14px;font-weight:500}.suggestion-grade{background-color:#e9ecef;border-radius:12px;color:#6c757d;font-size:12px;padding:2px 8px}.search-results::-webkit-scrollbar{width:8px}.search-results::-webkit-scrollbar-track{background:#f8f9fa;border-radius:0 8px 8px 0}.search-results::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:4px}.search-results::-webkit-scrollbar-thumb:hover{background:#adb5bd}@media (max-width:768px){.search-dropdown{left:50%;margin-top:0;max-width:400px;position:fixed;right:auto;top:50%;transform:translate(-50%,-50%);width:90%}@keyframes slideDown{0%{opacity:0;transform:translate(-50%,-45%)}to{opacity:1;transform:translate(-50%,-50%)}}}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.7a5e2d58.css.map*/