.recent-requests{background-color:var(--bg-secondary);border-radius:8px;box-shadow:0 0 6px #0000001a;flex:2 1;margin-top:20px;min-width:320px;overflow-x:auto;padding:20px}.recent-requests h2{color:var(--text-h2);margin-bottom:15px}.recent-requests table{border-collapse:collapse;margin-top:20px;width:100%}.recent-requests td,.recent-requests th{border:1px solid #e0e0e0;padding:12px 15px;text-align:left}.recent-requests th{background-color:var(--thead-bg);color:var(--text-primary);font-weight:600}.recent-requests tbody tr{background-color:var(--bg-primary)}.recent-requests tbody tr:hover{background-color:var(--bg-secondary)!important;cursor:pointer;transition:background-color .2s ease}.status-badge{font-size:.9rem;padding:5px 12px}.request-type-badge{border-radius:15px;display:inline-block;font-size:.85rem;font-weight:600;padding:4px 10px;text-transform:uppercase}.request-type-badge[data-type=letter]{background-color:#9c27b0;color:#fff}.request-type-badge[data-type=excuse]{background-color:#ff9800;color:#fff}.request-type-badge[data-type=leave]{background-color:#2196f3;color:#fff}@media (max-width:768px){.recent-requests td,.recent-requests th{font-size:.9rem;padding:8px 10px}.view-details-btn{font-size:.8rem;padding:6px 10px}}@media (max-width:480px){.recent-requests table,.recent-requests tbody,.recent-requests td,.recent-requests th,.recent-requests thead,.recent-requests tr{display:block}.recent-requests thead tr{left:-9999px;position:absolute;top:-9999px}.recent-requests tr{border:1px solid #e0e0e0;margin-bottom:10px}.recent-requests td{border:none;border-bottom:1px solid #e0e0e0;padding-left:50%;position:relative;text-align:right}.recent-requests td:before{color:#1a3e72;content:attr(data-label);font-weight:600;left:6px;padding-right:10px;position:absolute;text-align:left;top:6px;white-space:nowrap;width:45%}}.notifications-widget{border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--card-shadow);padding:20px}.notifications-widget h2{color:var(--text-h2)}@media (max-width:768px){.notifications-page-container{grid-template-areas:"header" "sidebar" "main" "footer";grid-template-columns:1fr;grid-template-rows:60px auto 1fr 40px}.notifications-page-content{min-height:calc(100vh - 140px);padding:15px}.page-header{align-items:flex-start;flex-direction:column;gap:10px}.page-header h1{font-size:1.5rem}.mark-all-read-btn{align-self:stretch;text-align:center}.notification-item{padding:12px 15px}.notification-message{font-size:.9rem}.notification-time{font-size:.75rem}.notifications-list{max-height:calc(100vh - 300px)}}@media (max-width:480px){.notifications-page-content{padding:10px}.page-header h1{font-size:1.4rem}.notifications-container{border-radius:6px}.notification-item{padding:10px 12px}.notification-content{padding-left:12px}.unread-dot{height:8px;top:10px;width:8px}}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:all .3s ease;z-index:1100}.modal{animation:modalAppear .3s ease-out;background-color:var(--card-bg);border:1px solid var(--border-light);border-radius:16px;width:480px}@keyframes modalAppear{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal h2{border-bottom:2px solid var(--border-light);color:var(--text-h2);font-size:1.5rem;font-weight:700;margin-bottom:25px;margin-top:0;padding-bottom:10px}.modal label{color:var(--text-primary);display:block;font-weight:600;margin-bottom:20px}.modal input[type=date],.modal input[type=file],.modal select,.modal textarea{background-color:var(--bg-primary);border:1.5px solid var(--border-color);border-radius:10px;box-sizing:border-box;color:var(--text-primary);font-size:.95rem;margin-top:8px;padding:12px 15px;transition:all .2s ease;width:100%}.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:#1976d2;box-shadow:0 0 0 3px #1976d21a;outline:none}.form-note{background:var(--bg-secondary);border-left:4px solid #1976d2;border-radius:8px;color:var(--text-subtitle);font-size:.9rem;margin-bottom:20px;padding:12px}.modal-actions{align-items:center;gap:12px;margin-top:30px}.submit-btn{align-items:center;background:linear-gradient(135deg,#2196f3,#1976d2);border-radius:10px;box-shadow:0 4px 12px #1976d24d;box-sizing:border-box;display:flex;font-size:1rem;font-weight:700;height:46px;justify-content:center;margin:0;padding:0 28px;transition:all .3s cubic-bezier(.175,.885,.32,1.275)}.submit-btn:hover{background:linear-gradient(135deg,#42a5f5,#1e88e5);box-shadow:0 6px 15px #1976d266}.cancel-btn{align-items:center;background:#0000;border:1.5px solid var(--border-color);border-radius:10px;box-sizing:border-box;color:var(--text-secondary);cursor:pointer;display:flex;font-size:1rem;font-weight:600;height:46px;justify-content:center;margin-top:28px;padding:0 24px;transition:all .2s ease}.cancel-btn:hover{background-color:var(--bg-hover);border-color:var(--text-secondary);color:var(--text-primary)}.modal input[type=file]::-webkit-file-upload-button{background:var(--bg-hover);border:none;border-radius:6px;color:var(--text-primary);cursor:pointer;font-weight:600;margin-right:10px;padding:5px 12px;-webkit-transition:background .2s;transition:background .2s}.modal input[type=file]::file-selector-button{background:var(--bg-hover);border:none;border-radius:6px;color:var(--text-primary);cursor:pointer;font-weight:600;margin-right:10px;padding:5px 12px;transition:background .2s}.modal input[type=file]::-webkit-file-upload-button:hover{background:var(--border-color)}.modal input[type=file]::file-selector-button:hover{background:var(--border-color)}.admin-dashboard-container{margin:0 auto;padding:20px}.admin-dashboard table{border-collapse:collapse;margin-bottom:20px;width:100%}.admin-dashboard td,.admin-dashboard th{border:1px solid var(--border-color);padding:12px;text-align:left}.admin-dashboard section{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--card-shadow);color:var(--text-primary);margin-bottom:30px;padding:20px}.statistic-card{cursor:default;padding:20px;transition:transform .2s,box-shadow .2s}.statistic-card:hover{box-shadow:0 4px 20px #0000001f;transform:translateY(-4px)}.icon-container{align-items:center;background-color:var(--bg-hover);border-radius:50%;color:var(--text-primary);display:flex;justify-content:center;padding:12px}.modal-backdrop{background:#0006}.modal{background:var(--card-bg);border:1px solid var(--border-color);box-shadow:var(--card-shadow);color:var(--text-primary)}@media (max-width:600px){.admin-dashboard-container{padding:16px}}.excuse-form-container{background-color:var(--card-bg);border-left:6px solid var(--accent-color);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--card-shadow);margin:2rem auto;padding:2rem;width:80%}.form-title{color:var(--accent-color);font-size:1.8rem;margin-bottom:.5rem}.form-subtitle{color:var(--text-secondary);font-size:1rem;margin-bottom:1.5rem}.form-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:1.5rem}.form-group{margin-bottom:1rem}.form-group label{color:var(--text-primary);margin-bottom:.5rem}.form-group-full{grid-column:1/-1}input,select,textarea{background-color:var(--input-bg);border:1px solid #ccc;border-radius:6px;color:var(--text-primary);font-size:1rem;margin-top:.25rem;padding:12px;transition:border-color .3s ease,box-shadow .3s ease;width:96%}input:focus,select:focus,textarea:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px #007bff1a}textarea{min-height:80px}.absence-section{background-color:var(--bg-secondary);border:1px solid var(--border-light);border-radius:8px;grid-column:1/-1;padding:1.5rem}.absence-section h3{color:var(--accent-color);font-size:1.2rem;margin-bottom:1rem}.absence-item{grid-gap:1rem;align-items:end;background-color:var(--card-bg);border:1px solid var(--border-light);border-radius:6px;display:grid;gap:1rem;grid-template-columns:1fr 1fr auto;margin-bottom:1rem;padding:1rem}.remove-btn{background-color:var(--error-color);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;height:-webkit-fit-content;height:fit-content;padding:10px 15px;transition:background-color .3s ease}.remove-btn:hover{background-color:var(--error-hover);transform:translateY(-1px)}.add-btn{background-color:var(--bg-primary);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;margin-top:1rem;padding:10px 20px;transition:background-color .3s ease}.add-btn:hover{background-color:var(--success-hover);transform:translateY(-1px)}.submit-btn{margin-top:2rem;padding:15px 25px;transition:background-color .3s ease,transform .2s ease}.file-upload{grid-column:1/-1}.file-upload-label{background-color:var(--bg-secondary);border:2px dashed var(--border-color);border-radius:6px;cursor:pointer;display:block;padding:12px;text-align:center;transition:border-color .3s ease}.file-upload-label:hover{border-color:var(--accent-color)}.file-upload-input{display:flexbox}.submit-btn-container{display:flex;grid-column:1/-1;justify-content:center;margin-top:2rem}.submit-btn{letter-spacing:.5px;min-width:200px;padding:15px 40px;text-transform:uppercase;transition:all .3s ease}.submit-btn:hover{background-color:var(--accent-hover);box-shadow:0 4px 12px #00000026}.submit-btn:active{box-shadow:0 2px 6px #0000001a}.submit-btn:disabled{box-shadow:none}@media (max-width:1200px){.excuse-form-container{padding:1.5rem;width:90%}.form-grid{gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}}@media (max-width:768px){.excuse-form-container{border-left:4px solid var(--accent-color);margin:1rem auto;padding:1rem;width:95%}.form-title{font-size:1.5rem}.form-grid{gap:1rem}.absence-item,.form-grid{grid-template-columns:1fr}.absence-item{gap:.8rem}.remove-btn{margin-top:.5rem;width:100%}input,select,textarea{padding:10px}.submit-btn-container{margin-top:1.5rem}.submit-btn{font-size:1rem;min-width:180px;padding:12px 30px}}@media (max-width:480px){.excuse-form-container{border-left:none;border-radius:0;border-top:4px solid var(--accent-color);margin:0;padding:1rem;width:100%}.form-title{font-size:1.3rem}.form-subtitle{font-size:.9rem}.absence-section{padding:1rem}.add-btn,.remove-btn{font-size:.8rem;padding:8px 12px}.submit-btn{max-width:250px;min-width:auto;padding:12px 20px;width:100%}}.submit-btn:disabled{background-color:var(--text-muted);cursor:not-allowed;transform:none}.submit-btn:disabled:hover{transform:none}.error-message{display:block;font-size:.9rem;margin-top:.25rem}.modal{box-shadow:0 2px 10px #0000001a}.modal-button{background-color:#007bff;border:none;border-radius:5px;color:#fff;cursor:pointer;padding:10px 20px}.modal-button:hover{background-color:#0056b3}.footer{background-color:#d8e5f8;bottom:0;color:#1a3e72;display:flex;flex-wrap:wrap;font-weight:600;gap:20px;height:20px;justify-content:center;left:0;position:fixed;right:0;z-index:10}.footer-link{color:var(--text-h2);text-decoration:none}.footer-link:hover{text-decoration:underline}.pending-approvals-container{height:100%;width:100%}.approvals-layout{height:90%}.approvals-content{flex:1 1;padding:20px}.approvals-section{background-color:var(--bg-secondary);border-radius:8px;box-shadow:0 0 6px #0000001a;margin-bottom:30px;padding:20px}h2{color:var(--text-h2)}.approvals-table{border-collapse:collapse;margin-top:10px;width:100%}.approvals-table td,.approvals-table th{border:1px solid #e0e0e0;padding:12px 15px;text-align:left}.approvals-table th{background-color:var(--thead-bg);color:var(--text-primary);font-weight:600}.approvals-table tbody tr:hover{background-color:var(--bg-primary)}.approve-btn,.bulk-action-btn,.reject-btn{border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:.9rem;margin-right:5px;padding:8px 15px;transition:background-color .3s ease,transform .2s ease}.approve-btn:hover{background-color:#45a049;transform:translateY(-1px)}.reject-btn:hover{background-color:#da190b;transform:translateY(-1px)}.modal-backdrop{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal{box-shadow:0 2px 10px #0000004d;padding:20px 30px}.modal-buttons{display:flex;gap:10px;justify-content:space-around;margin-top:20px}.modal-buttons .confirm-yes-btn{background-color:#4caf50;border:none;border-radius:5px;color:#fff;cursor:pointer;font-weight:700;padding:8px 16px;transition:background-color .3s ease}.modal-buttons .confirm-yes-btn:hover{background-color:#45a049}.modal-buttons .no-btn{background-color:#f44336;border:none;border-radius:5px;color:#fff;cursor:pointer;font-weight:700;padding:8px 16px;transition:background-color .3s ease}.modal-buttons .no-btn:hover{background-color:#da190b}.modal-buttons .okey-btn{background-color:#007bff;border:none;border-radius:5px;color:#fff;cursor:pointer;font-weight:700;padding:8px 16px;transition:background-color .3s ease}.modal-buttons .okey-btn:hover{background-color:#0056b3}@media (max-width:768px){.approvals-table td,.approvals-table th{font-size:.9rem;padding:8px 10px}}@media (max-width:480px){.approvals-table{border:none}.approvals-table thead{display:none}.approvals-table tr{background-color:#fff;border:1px solid #e0e0e0;display:block;margin-bottom:10px}.approvals-table td{border:none;border-bottom:1px solid #e0e0e0;display:block;font-size:.9rem;padding-left:50%;position:relative;text-align:right}.approvals-table td:before{color:#1a3e72;content:attr(data-label);font-weight:600;left:10px;padding-right:10px;position:absolute;text-align:left;top:12px;white-space:nowrap;width:45%}}.login-page{background:url(/static/media/bg-01.a043ccdcced960f3b9cd.jpg) no-repeat 50%;background-size:cover;height:100vh;padding:20px}.login-container,.login-page{align-items:center;display:flex;justify-content:center}.login-container{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;min-height:100vh}.login-box{background-color:var(--bg-primary);border-radius:10px;box-shadow:0 4px 15px #0000001a;color:#333;max-width:400px;opacity:90%;padding:40px;text-align:center;width:100%}.login-logo{height:auto;width:150px}.login-input{box-shadow:0 4px 15px #0000001a}.login-box h2{color:var(--text-h2);font-size:2.2rem;font-weight:700;margin-bottom:30px}.login-box .login-links p{color:var(--text-primary)}.login-box .login-links p a{color:var(--text-h2)}.form-group{text-align:left}.form-group label{color:#333;font-size:.95rem;margin-bottom:8px}.form-group input{border:1px solid #ccc;border-radius:8px;box-sizing:border-box;font-size:1rem;padding:12px 15px;width:100%}.login-btn{background:linear-gradient(90deg,#4a6cf7,#7b4ddf);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;margin-top:15px;padding:12px 25px;transition:background-color .3s ease;width:100%}.login-btn:hover{background-color:#45a049}.password-input-container{margin-bottom:20px;position:relative;width:100%}.password-input-container input{border:1px solid #ccc;border-radius:8px;box-sizing:border-box;font-size:1rem;padding:12px 40px 12px 15px;width:100%}.password-toggle-btn{background:none;border:none;color:#6c9ef8;cursor:pointer;font-size:1.2rem;padding:0;position:absolute;right:10px;top:37%;transform:translateY(-50%)}.password-toggle-btn:hover{color:#5a8be0}.register-link{color:#555;font-size:.9rem;margin-top:25px}.register-link a{color:#1a3e72;font-weight:600;text-decoration:none}.link-button,.register-link a:hover{text-decoration:underline}.link-button{background:none;border:none;color:#1a3e72;cursor:pointer;font:inherit;font-weight:600;padding:0}.link-button:hover{text-decoration:none}.modal-overlay{background-color:#1e1e1eb3}.modal-content{background-color:#f2f2f2;border-radius:10px;box-shadow:0 4px 12px #00000026;color:#333;font-size:16px;max-width:400px;padding:20px 30px;text-align:center;width:90%}.modal-close-button{background:linear-gradient(90deg,#4a6cf7,#7b4ddf);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;margin-top:20px;padding:8px 16px;transition:opacity .3s ease}.modal-close-button:hover{opacity:.9}.modal{box-shadow:0 0 12px #0000004d;color:#1a3e72;font-size:1rem;max-width:90%;padding:20px;width:400px}.modal h3{font-weight:700;margin-bottom:20px}.modal p{color:#333}.modal-actions button{border:none;border-radius:5px;font-weight:600;transition:background-color .3s ease}.modal-actions .submit-btn{background-color:#4caf50}.modal-actions .submit-btn:hover{background-color:#45a049}.modal-actions .cancel-btn{background-color:#f44336}.modal-actions .cancel-btn:hover{background-color:#da190b}@media (max-width:768px){.login-box{max-width:350px;padding:30px}.login-box h2{font-size:2rem}.login-logo{width:120px}}@media (max-width:480px){.login-page{padding:10px}.login-box{border-radius:8px;max-width:100%;padding:20px}.login-box h2{font-size:1.8rem;margin-bottom:20px}.form-group input{padding:10px 12px}.login-btn{font-size:1rem;padding:10px 20px}.password-input-container input{padding:10px 35px 10px 12px}.password-toggle-btn{right:5px;top:50%}}#root,body,html{font-family:Arial,sans-serif;font-size:13px;height:100%;margin:0}.registration-page{align-items:center;background:url(/static/media/bg-01.a043ccdcced960f3b9cd.jpg) no-repeat 50%;background-size:cover;display:flex;height:100;justify-content:center;padding:20px}.registration-container{background-color:var(--bg-primary);border-radius:10px;box-shadow:0 4px 12px #00000026;box-sizing:border-box;opacity:90%;padding:30px 20px;width:520px}.registration-container h2,.registration-container h3{color:var(--text-h2);font-weight:700;margin-bottom:20px;text-align:center}.registration-container h3{color:#666;font-weight:600}.registration-container p{color:var(--text-primary)}.registration-container p a{color:var(--text-h2)}.registration-input,.registration-select{background:#0000;border:1px solid #ccc;border-radius:10px;box-shadow:0 4px 15px #0000001a;box-sizing:border-box;color:var(--text-primary);font-size:16px;margin-bottom:10px;max-width:500px;padding:8px 5px;width:100%}.registration-input::placeholder{color:var(--text-primary)}.registration-input:focus,.registration-select:focus{border-bottom-color:#4a6cf7;outline:none}.registration-button{background:linear-gradient(90deg,#4a6cf7,#7b4ddf);border:none;border-radius:4px;color:#fff;cursor:pointer;display:block;font-size:14px;margin:30px auto;padding:6px 20px;transition:opacity .3s ease;width:33.33%}.registration-button:hover{opacity:.9}.registration-error{color:#e3342f;font-weight:600;margin-bottom:15px;text-align:center}.form-row{flex-wrap:wrap}.form-column{display:flex;flex:1 1;flex-direction:column;gap:10px;min-width:200px}.registration-title{color:var(--text-h2);font-size:1.5rem;font-weight:700;margin-bottom:1rem;text-align:center}.registration-logo{display:block;height:auto;margin:0 auto 1.5rem;width:80px}.footer-wrapper{padding-top:20px}@media (max-width:768px){.registration-container{padding:20px;width:90%}}@media (max-width:480px){.registration-container{padding:15px;width:100%}.registration-title{font-size:1.2rem}.registration-subtitle{font-size:1.5rem}.registration-button{width:100%}}:root{--bg-primary:#f8f9fa;--bg-secondary:#fff;--bg-tertiary:#f1f3f5;--accent-color:#4361ee;--accent-hover:#3a56d4;--card-shadow:0 4px 6px #0000000a;--table-header-bg:#f8f9fa}.dashboard-container{background-color:#f8f9fa;background-color:var(--bg-primary);color:#212529;color:var(--text-primary);display:grid;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;grid-template-areas:"header header" "sidebar main" "footer footer";grid-template-columns:220px 1fr;grid-template-rows:60px 1fr 40px;min-height:100vh;width:100%}.header{grid-area:header;z-index:100}.header,.sidebar{background-color:#fff;position:-webkit-sticky;position:sticky}.main-content{background-color:#f8f9fa;background-color:var(--bg-primary);color:#212529;color:var(--text-primary);display:flex;flex-direction:column;gap:25px;grid-area:main;overflow-y:auto;padding:20px}.footer{background:#fff;background:var(--bg-secondary);border-top:1px solid #dee2e6;border-top:1px solid var(--border-color);color:#6c757d;color:var(--text-secondary);font-size:.9rem;grid-area:footer;padding:10px 15px;text-align:center}.top-widgets{grid-gap:20px;background-color:#fff;background-color:var(--bg-secondary);display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.bottom-widgets{grid-gap:20px;align-items:start;display:grid;gap:20px;grid-template-columns:2fr 1fr}.bottom-widgets,.new-letter-button-container{background-color:#f8f9fa;background-color:var(--bg-primary)}.new-letter-button-container{align-items:center;display:flex;position:-webkit-sticky;position:sticky;top:80px;z-index:10}.new-letter-btn{background-color:#4361ee;background-color:var(--accent-color);border:none;border-radius:6px;box-shadow:0 4px 6px #0000001a;color:#fff;cursor:pointer;font-size:1.2rem;padding:12px 20px;transition:all .3s ease;width:80%}.new-letter-btn:hover{background-color:#3a56d4;background-color:var(--accent-hover);box-shadow:0 6px 8px #00000026;transform:translateY(-2px)}.widget{background-color:#fff;background-color:var(--card-bg);border:1px solid #dee2e6;border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 6px #0000000a;box-shadow:var(--card-shadow);height:-webkit-fit-content;height:fit-content;padding:20px}.widget,.widget-title{color:#212529;color:var(--text-primary)}.widget-title{border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--border-light);font-size:1.1rem;font-weight:600;margin-bottom:15px;padding-bottom:8px}.recent-letters{background-color:#fff;background-color:var(--card-bg);border:1px solid #dee2e6;border-radius:8px;box-shadow:0 4px 6px #0000000a;overflow:hidden;padding:20px}.recent-letters h3{border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--border-light);color:#212529;color:var(--text-primary);margin-bottom:15px;padding-bottom:8px}.recent-letters table{background-color:#fff;border-collapse:collapse}.recent-letters th{background-color:#f8f9fa;background-color:var(--table-header-bg);border-bottom:2px solid #dee2e6;color:#212529;color:var(--text-primary);padding:12px}.recent-letters td{border-bottom:1px solid #e9ecef;color:#212529;padding:12px}.recent-letters tr:hover{background-color:#f1f3f5;background-color:var(--bg-tertiary)}.status-badge{padding:4px 8px}.modal{background:#fff;max-height:90vh;max-width:500px;overflow-y:auto}.modal-actions{margin-top:20px}.cancel-btn,.submit-btn{border:none;border-radius:4px;cursor:pointer;font-weight:500;padding:8px 16px}.submit-btn{background-color:#4361ee;background-color:var(--accent-color)}.cancel-btn{background-color:#fff;background-color:var(--bg-secondary);color:#212529;color:var(--text-primary)}@media (max-width:1024px){.dashboard-container{grid-template-columns:200px 1fr}.bottom-widgets{gap:20px;grid-template-columns:1fr}}@media (max-width:768px){.dashboard-container{grid-template-areas:"header" "sidebar" "main" "footer";grid-template-columns:1fr;grid-template-rows:60px auto 1fr 40px}.sidebar{border-bottom:1px solid #dee2e6;border-bottom:1px solid var(--border-color);border-right:none;height:auto;position:static}.main-content{gap:20px;padding:15px}.top-widgets{grid-template-columns:1fr}.widget{padding:15px}.new-letter-btn{font-size:1.1rem;padding:10px 16px}.new-letter-button-container{position:static}.recent-letters table,.recent-letters tbody,.recent-letters td,.recent-letters th,.recent-letters thead,.recent-letters tr{display:block}.recent-letters thead tr{left:-9999px;position:absolute;top:-9999px}.recent-letters tr{margin-bottom:15px}.recent-letters td{border:none;border-bottom:1px solid #eee;padding-left:50%;position:relative}.recent-letters td:before{content:attr(data-label);font-weight:700;left:6px;padding-right:10px;position:absolute;top:6px;white-space:nowrap;width:45%}.recent-letters td:last-child{border-bottom:0}}.text-primary{color:#212529;color:var(--text-primary)}.text-secondary{color:#6c757d;color:var(--text-secondary)}.bg-primary{background-color:#f8f9fa;background-color:var(--bg-primary)}.bg-secondary{background-color:#fff;background-color:var(--bg-secondary)}.border-theme{border-color:#dee2e6;border-color:var(--border-color)}.card-theme{background-color:#fff;background-color:var(--card-bg);border:1px solid #dee2e6;border:1px solid var(--border-color);box-shadow:0 4px 6px #0000000a;box-shadow:var(--card-shadow)}.approvals-layout{display:flex;grid-column:1/-1;width:100%}.letter-content{background-color:var(--bg-primary);flex:1 1;min-height:calc(100vh - 80px);padding:2rem;transition:background-color .3s ease;width:100%}.letter-contenter{margin:0 auto;width:100%}.recent-letters{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--card-shadow);padding:25px;transition:all .3s ease}.recent-letters h2{color:var(--text-h2);font-size:1.5rem;font-weight:700;margin-bottom:20px}.filter-container label{color:var(--text-secondary);font-size:.95rem}.filter-container select{-webkit-appearance:none;appearance:none;background-color:var(--bg-secondary);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%236c757d' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E");background-position:calc(100% - 12px);background-repeat:no-repeat;border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;padding-right:35px!important;padding:8px 12px;transition:all .2s ease}.dark .filter-container select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23adb5bd' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E")}.filter-container select:hover{border-color:var(--text-secondary);box-shadow:var(--card-shadow)}.recent-letters table{background-color:var(--card-bg);border:1px solid var(--border-color);border-collapse:initial;border-radius:8px;border-spacing:0;margin-top:20px;overflow:hidden;width:100%}.recent-letters th{background-color:var(--thead-bg);border-bottom:2px solid var(--border-color);color:var(--thead-text);font-size:.9rem;font-weight:600;letter-spacing:.05em;padding:15px;text-align:left;text-transform:uppercase}.recent-letters td{border-bottom:1px solid var(--border-light);color:var(--text-primary);font-size:.95rem;padding:16px 15px;vertical-align:middle}.recent-letters tbody tr:last-child td{border-bottom:none}.recent-letters tbody tr{transition:background-color .2s ease}.recent-letters tbody tr:hover{background-color:var(--bg-hover)}.status-badge{border-radius:20px;box-shadow:0 2px 4px #0000001a;font-size:.8rem;font-weight:600;padding:6px 12px}.view-details-btn{background:linear-gradient(135deg,#007bff,#0056b3);border-radius:6px;box-shadow:0 4px 6px #007bff33;font-size:.85rem;font-weight:500;padding:8px 18px;transition:all .3s cubic-bezier(.175,.885,.32,1.275)}.view-details-btn:hover{background:var(--accent-hover);box-shadow:0 6px 12px #007bff4d;color:#fff;transform:translateY(-2px)}.loading{align-items:center;display:flex;font-size:1.2rem;font-weight:500;height:300px;justify-content:center}.loading:after{animation:spin 1s linear infinite;border-top:3px solid var(--border-light);border:3px solid var(--border-light);border-radius:50%;border-top-color:var(--text-h2);content:"";height:24px;margin-left:15px;width:24px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:992px){.letter-content{padding:1.5rem}}@media (max-width:768px){.recent-letters{padding:15px}.recent-letters table{display:block;overflow-x:auto}}@media (max-width:480px){.filter-container{margin-top:10px;width:100%}.filter-container select{width:100%}.recent-letters table,.recent-letters tbody,.recent-letters td,.recent-letters th,.recent-letters thead,.recent-letters tr{display:block}.recent-letters thead tr{display:none}.recent-letters tr{border-bottom:2px solid var(--border-light);margin-bottom:15px;padding-bottom:15px}.recent-letters td{border:none;border-bottom:1px solid var(--border-light);font-size:.9rem;padding-left:50%;position:relative;text-align:right}.recent-letters td:before{color:var(--text-secondary);content:attr(data-label);font-weight:600;left:0;padding-left:15px;position:absolute;text-align:left;width:50%}.recent-letters td[data-label=Action]{border-bottom:none;padding-left:0;text-align:center}}.header{background-color:#d8e5f8;border-bottom:1px solid #aac4f8;box-shadow:0 2px 4px #0000001a;height:60px;justify-content:space-between;left:0;padding:0 20px;position:fixed;right:0;top:0;z-index:1000}.header,.header-left{align-items:center;display:flex}.header-left{gap:12px}.logo{height:45px;object-fit:contain;width:45px}.university-name{color:var(--header-text);font-size:1.3rem;font-weight:700;line-height:1;margin:0}.header-right{align-items:center;color:var(--header-text);display:flex;font-size:1rem;font-weight:600;gap:15px}.user-info{white-space:nowrap}.logout-btn{background-color:#f44336;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:600;padding:8px 14px;transition:background-color .3s ease}.logout-btn:hover{background-color:#d32f2f}.theme-switch{align-items:center;background:var(--bg-secondary);border:none;border-radius:20px;color:var(--text-primary);cursor:pointer;display:flex;font-size:14px;gap:8px;padding:8px 12px;transition:all .3s ease}.theme-switch:hover{background:var(--bg-hover)}.theme-switch-track{background:var(--switch-track);border-radius:12px;height:24px;position:relative;transition:background .3s ease;width:48px}.theme-switch-thumb{align-items:center;background:var(--switch-thumb);border-radius:50%;display:flex;font-size:12px;height:20px;justify-content:center;left:2px;position:absolute;top:2px;transition:transform .3s ease;width:20px}.dark .theme-switch-thumb{transform:translateX(24px)}.theme-switch-label{font-weight:500}.dark .theme-switch-track{background:#4a5568}.dark .theme-switch-thumb{background:#f7fafc}.sidebar{background-color:#f5f9ff;border-right:1px solid #c9d8f5}.sidebar ul{list-style:none;margin:0;padding:0}.sidebar-item{color:#3c5aa6;cursor:pointer}.sidebar-item,.sidebar-link{font-size:1rem;font-weight:600;padding:15px 25px;transition:background-color .3s ease}.sidebar-link{color:var(--header-text);display:block;text-decoration:none}.sidebar-item.active,.sidebar-item:hover{background-color:#bbd7ff;border-left:5px solid #2e4bb7;color:#143d7e}@media (max-width:900px){.sidebar{border-bottom:1px solid #c9d8f5;border-right:none;flex-direction:row;justify-content:space-around;padding:10px 0}.sidebar-item{font-size:.9rem;padding:10px 8px}}.profile-container{background-color:var(--bg-primary);display:flex;flex-direction:column;min-height:100vh}.profile-layout{background-color:var(--bg-primary);flex:1 1;min-height:calc(100vh - 140px);min-height:calc(100vh - var(--header-height, 80px) - var(--footer-height, 60px))}.sidebar{grid-area:sidebar}.profile-content{align-items:flex-start;display:flex;grid-area:main;height:100%;justify-content:center;overflow-y:auto;padding:30px}.profile-card{background-color:var(--bg-secondary);border-radius:10px;box-shadow:0 4px 20px #0000001a;max-width:600px;padding:40px;text-align:left;width:100%}.profile-card h2{color:var(--text-h2);font-size:2.2rem;margin-bottom:30px;text-align:center}.profile-picture-container{align-items:center;background-color:#e0e0e0;border:3px solid #6c9ef8;border-radius:50%;box-shadow:0 2px 8px #0000001a;display:flex;height:120px;justify-content:center;margin:0 auto 30px;overflow:hidden;position:relative;width:120px}.profile-picture{height:100%;object-fit:cover;width:100%}.change-photo-btn{align-items:center;background-color:#000000b3;border:none;border-radius:50%;bottom:5px;box-shadow:0 2px 5px #0003;color:#fff;cursor:pointer;display:flex;font-size:.8rem;height:30px;justify-content:center;padding:0;position:absolute;right:5px;transition:background-color .3s ease;width:30px}.change-photo-btn:hover{background-color:#000000e6}.profile-info-group{align-items:center;border-bottom:1px solid #eee;display:flex;font-size:1.1rem;justify-content:space-between;padding:12px 0}.profile-info-group:last-child{border-bottom:none}.profile-info-group strong{color:var(--text-h2);flex:1 1;margin-right:20px}.profile-info-group span{color:var(--text-primary);flex:2 1;text-align:right}.edit-profile-btn{background-color:#6c9ef8;color:#fff;padding:12px 25px}.edit-profile-btn:hover{background-color:#5a8be0;transform:translateY(-2px)}.form-group{margin-bottom:15px}.form-group label{color:var(--text-secondary);margin-bottom:5px}.form-group input[type=email],.form-group input[type=text],.form-group select{border:1px solid #ccc;border-radius:5px;box-sizing:border-box;font-size:1rem;padding:10px;width:100%}.form-group input[type=email]:focus,.form-group input[type=text]:focus,.form-group select:focus{border-color:#6c9ef8;outline:none}.profile-actions{display:flex;gap:15px;justify-content:flex-end;margin-top:30px}.cancel-profile-btn,.change-password-btn,.edit-profile-btn,.save-profile-btn{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;padding:10px 20px;transition:background-color .3s ease,transform .2s ease}.save-profile-btn{background-color:#28a745;color:#fff}.save-profile-btn:hover{background-color:#218838;transform:translateY(-2px)}.cancel-profile-btn{background-color:#6c757d;color:#fff}.cancel-profile-btn:hover{background-color:#5a6268;transform:translateY(-2px)}.change-password-btn{background-color:#ffc107;color:#212529}.change-password-btn:hover{background-color:#e0a800;transform:translateY(-2px)}.profile-error{color:#dc3545;font-size:.9rem;margin-top:10px;text-align:center}@media (max-width:900px){.profile-layout{grid-template-areas:"sidebar" "main";grid-template-columns:1fr}.profile-content{padding:20px}.profile-card{padding:25px}.profile-info-group{align-items:flex-start;flex-direction:column}.profile-info-group strong{margin-bottom:5px;margin-right:0}.profile-info-group span{text-align:left}.profile-actions{flex-direction:column;gap:10px}.cancel-profile-btn,.save-profile-btn{width:100%}}.progress-tracker{background-color:var(--bg-primary);border-radius:8px;box-shadow:0 0 6px #0000001a;flex:1 1;min-width:320px;overflow-x:auto;padding:20px}.progress-tracker h2{color:var(--text-h2);margin-bottom:15px}.steps-container{align-items:flex-start;gap:20px;justify-content:space-between}.step,.steps-container{display:flex;position:relative}.step{align-items:center;flex:1 1;flex-direction:column;min-width:100px;z-index:1}.step-circle{align-items:center;background-color:#c5d1f0;border-radius:50%;color:#5a73b7;display:flex;font-size:.95rem;font-weight:700;height:32px;justify-content:center;transition:all .3s ease;width:32px;z-index:2}.step-label{word-wrap:break-word;color:var(--text);font-size:.9rem;font-weight:600;margin-top:10px;max-width:100px;text-align:center}.step-label,.step-line{transition:all .3s ease}.step-line{background-color:#bcc4dc;height:4px;left:50%;position:absolute;top:16px;width:100%;z-index:0}.step:last-child .step-line{display:none}.step.completed .step-circle{background-color:#279c4c;color:#fff}.step.active .step-circle{background-color:#eb955c;color:#fff}.step.completed .step-line{background-color:#4caf50}.step.rejected .step-circle{animation:pulse-rejected 1.5s infinite;background-color:#d32f2f;color:#fff}.step.rejected .step-label{color:#d32f2f;font-weight:700}.step.rejected~.step .step-line,.step.rejected~.step.completed .step-line{background-color:#ffcdd2}@keyframes pulse-rejected{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@media (max-width:768px){.steps-container{align-items:flex-start;flex-direction:column;gap:15px}.step{flex-direction:row;min-width:auto;width:100%}.step-circle{margin-right:15px}.step-line{display:none}.step-label{margin-top:0;max-width:none;text-align:left}}.leave-form-page-container{align-items:center;background-color:var(--bg-primary);display:flex;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;justify-content:center;min-height:100vh;padding:20px}.form-container{background-color:var(--bg-secondary);border-radius:12px;box-shadow:0 8px 24px #0000001a;box-sizing:border-box;max-width:700px;padding:40px;width:100%}option{background-color:var(--bg-primary);color:var(--text-primary)}.form-title{color:var(--text-title);font-size:2.2rem;font-weight:700;margin-bottom:5px;text-align:center}.form-subtitle{color:var(--text-subtitle);font-size:1.2rem;font-weight:400;margin-bottom:30px;text-align:center}.form-info{border-bottom:1px solid #eee;border-top:1px solid #eee;color:#666;font-size:1rem;margin-bottom:20px;padding:10px 0;text-align:center}.form-row{display:flex;gap:20px;margin-bottom:20px}.form-row input,.form-row select{flex:1 1}input[type=date],input[type=passward]
input[type=email],input[type=tel],input[type=text],select,textarea{border:1px solid #ccc;border-radius:8px;box-sizing:border-box;font-size:1rem;transition:border-color .3s,box-shadow .3s;width:100%}input:focus,select:focus,textarea:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff40;outline:none}textarea{min-height:120px;resize:vertical}.form-group,textarea{margin-bottom:20px}.form-group label{color:#555;display:block;font-size:1rem;font-weight:600;margin-bottom:10px}.date-group .form-row{display:flex;flex-direction:column;gap:10px}.date-group .form-row label{margin-bottom:0}.submit-btn{background-color:#007bff;border:none;border-radius:8px;color:#fff;cursor:pointer;display:block;font-size:1.1rem;font-weight:600;padding:15px;transition:background-color .3s,transform .2s;width:100%}.submit-btn:hover{background-color:#0056b3;transform:translateY(-2px)}.submit-btn:active{background-color:#004085;transform:translateY(0)}.unauthorized-container{background-color:#fff;border-radius:12px;box-shadow:0 8px 24px #0000001a;margin:50px auto;max-width:600px;padding:50px;text-align:center}.unauthorized-title{color:#d9534f;font-size:2.5rem;margin-bottom:15px}.unauthorized-message{color:#666;font-size:1.2rem;line-height:1.6}.modal-overlay{background-color:#0009;height:100%;width:100%}.modal{background-color:#fff;border-radius:10px;box-shadow:0 4px 15px #0003;padding:30px;text-align:center;width:90%}.modal h3{color:#333;font-size:1.5rem;margin-top:0}.modal p{color:#666;font-size:1rem;margin-bottom:20px}.modal-actions{gap:15px;justify-content:center}.modal-actions button{border-radius:6px;cursor:pointer;font-size:1rem;padding:10px 20px}.modal-actions .submit-btn{background-color:#007bff;border:none;color:#fff}.modal-actions .submit-btn:hover{background-color:#0056b3}.modal-actions .cancel-btn{background-color:#dc3545;border:none;color:#fff}.modal-actions .cancel-btn:hover{background-color:#c82333}@media (max-width:768px){.form-container{padding:25px}.form-row{flex-direction:column;gap:15px}.form-row input,.form-row select{flex:none;width:100%}}.notifications-page-container{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;min-height:100vh;width:100%}.notifications-page-container,.notifications-page-content{background-color:var(--bg-primary);color:var(--text-primary)}.notifications-page-content{grid-area:main;overflow-y:auto}.page-header{align-items:center;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;padding:15px}.page-header h1{color:var(--text-h2);font-size:1.8rem;margin:0}.mark-all-read-btn{background-color:var(--accent-color);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:10px 18px;transition:all .2s ease;white-space:nowrap}.mark-all-read-btn:hover{background-color:var(--accent-hover);transform:translateY(-1px)}.notification-actions{display:flex;flex-wrap:wrap;gap:10px}.delete-all-btn{background-color:#dc3545;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:6px 10px;transition:all .2s ease;white-space:nowrap}.delete-all-btn:hover{background-color:#c82333;transform:translateY(-1px)}.delete-notification-btn{align-items:center;background:none;border:none;border-radius:4px;color:#6c757d;cursor:pointer;display:flex;flex-shrink:0;font-size:1.5rem;height:30px;justify-content:center;padding:5px;transition:all .2s ease;width:30px}.delete-notification-btn:hover{background-color:#dc35451a;color:#dc3545}.confirm-delete-all-btn{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:background-color .2s ease}.confirm-delete-all-btn:hover{background-color:#c82333}.modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal{background:var(--bg-primary);border-radius:8px;box-shadow:0 10px 25px #0003;max-width:400px;padding:25px;width:100%}.modal h3{color:var(--text-primary);font-size:1.3rem;margin:0 0 15px}.modal p{color:var(--text-secondary);line-height:1.5;margin:0 0 20px}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.modal[style*=delete-all]{border-left:4px solid #dc3545}.confirm-delete-btn{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 16px}.confirm-delete-btn:hover{background-color:#c82333}.cancel-delete-btn{background-color:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 16px}.cancel-delete-btn:hover{background-color:#5a6268}.loading,.no-notifications{color:var(--text-secondary);font-size:1.1rem;padding:60px 20px;text-align:center}.no-notifications{font-style:italic}.notifications-container{background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--card-shadow);margin:20px;overflow:hidden}.notifications-summary{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:15px 20px}.notifications-summary p{color:var(--text-secondary);font-size:.9rem;margin:0}.notifications-header h2,.notifications-summary p a{color:var(--text-h2)}.notifications-list{list-style:none;margin:0;max-height:calc(100vh - 250px);overflow-y:auto;padding:0}.notification-item{align-items:flex-start;border-bottom:1px solid var(--border-light);border-radius:10px;cursor:pointer;display:flex;justify-content:space-between;margin:5px;padding:15px 20px;position:relative;transition:all .2s ease}.notification-item:last-child{border-bottom:none}.notification-item.unread{cursor:pointer;opacity:1}.notification-item.read{cursor:default;opacity:.8}.notification-item.unread:hover{background-color:#00000008;transform:translateX(5px)}.notification-content{display:flex;flex-direction:column;flex-grow:1;padding-left:15px;position:relative}.unread-dot{background-color:var(--accent-color);border-radius:50%;height:10px;left:0;position:absolute;top:8px;width:10px}.notification-message{font-size:.95rem;line-height:1.4;margin-bottom:5px}.notification-time{font-size:.8rem;margin-top:5px;opacity:.8}.notification-item[style*=success]{border-left:4px solid #28a745}.notification-item[style*=error]{border-left:4px solid #dc3545}.notification-item[style*=info]{border-left:4px solid #17a2b8}.notification-item[style*=warning]{border-left:4px solid #ffc107}@media (max-width:1024px){.notifications-page-container{grid-template-columns:180px 1fr}.notifications-page-content{padding:15px}.page-header h1{font-size:1.6rem}}@media (max-width:768px){.notifications-page-container{grid-template-areas:"header" "sidebar" "main" "footer";grid-template-columns:1fr;grid-template-rows:60px auto 1fr 40px}.notifications-page-content{min-height:calc(100vh - 140px);padding:15px}.page-header{align-items:flex-start;flex-direction:column;gap:10px}.page-header h1{font-size:1.5rem}.mark-all-read-btn{align-self:stretch;text-align:center}.notification-item{padding:12px 15px}.notification-message{font-size:.9rem}.notification-time{font-size:.75rem}.notifications-list{max-height:calc(100vh - 300px)}.notification-actions{flex-direction:column;width:100%}.delete-all-btn,.mark-all-read-btn{text-align:center;width:100%}.delete-notification-btn{font-size:1.3rem;height:25px;width:25px}.modal{margin:20px;padding:20px}.modal-actions{flex-direction:column;gap:10px}.cancel-delete-btn,.confirm-delete-all-btn,.confirm-delete-btn{padding:10px;width:100%}}@media (max-width:480px){.notifications-page-content{margin:15px;padding:10px}.page-header h1{font-size:1.4rem}.notifications-container{border-radius:6px}.notification-item{padding:10px 12px}.notification-content{padding-left:12px}.notification-item{flex-direction:column;padding:12px 15px}.delete-notification-btn{align-self:flex-end;margin-top:10px}.unread-dot{height:8px;top:10px;width:8px}.modal h3{font-size:1.2rem}.modal p{font-size:.9rem}}.admin-sidebar ul{list-style:none;margin:0;padding:0}.admin-sidebar-item{cursor:pointer}.admin-sidebar-item,.admin-sidebar-link{color:var(--header-text);font-size:1rem;font-weight:600;padding:15px 25px;transition:background-color .3s ease}.admin-sidebar-link{display:block;text-decoration:none}.admin-sidebar-item.active,.admin-sidebar-item:hover{background-color:#bbd7ff;border-left:5px solid #2e4bb7;color:#143d7e}.admin-sidebar-link:hover{color:#143d7e}.admin-page-container{display:flex;flex-direction:column;min-height:100vh}.admin-content-wrapper{flex:1 1;margin-top:60px}.admin-content-wrapper,.admin-sidebar{display:flex;height:calc(100vh - 100px)}.admin-sidebar{background-color:var(--bg-secondary);border-right:1px solid var(--border-color);flex-direction:column;left:0;padding-top:20px;position:fixed;top:60px;width:200px}.admin-main-content,.admin-sidebar{color:var(--text-primary);overflow-y:auto}.admin-main-content{background-color:var(--bg-primary);flex:1 1;margin-left:200px;padding:20px 20px 40px}@media (max-width:900px){.admin-sidebar{display:none}.admin-main-content{margin-left:0}}.admin-table{background-color:var(--card-bg);border-collapse:collapse;margin-bottom:10px;width:100%}.admin-table td,.admin-table th{border:1px solid var(--border-color);color:var(--text-primary);padding:12px 10px;text-align:left}.admin-table th{background-color:var(--thead-bg);color:var(--thead-text);font-weight:700}button{border:none;border-radius:4px;cursor:pointer;font-weight:500;padding:8px 16px;transition:opacity .2s}button:hover{opacity:.9}.approve-btn{background-color:#4caf50}.reject-btn{background-color:#f44336}.view-btn{background-color:#2196f3;color:#fff}.cancel-btn{background-color:#9e9e9e}.status-badge{border-radius:12px;display:inline-block;font-size:.85rem;font-weight:500;padding:4px 10px}.user-page-container{background-color:var(--background-color);color:var(--text-color);display:flex;flex-direction:column;min-height:100vh}.user-content-wrapper{display:flex;flex:1 1;margin-top:60px}.sidebar{display:flex;flex-direction:column;height:calc(100vh - 100px);left:0;overflow-y:auto;padding-top:20px;position:fixed;top:60px;width:200px}.user-main-content{flex:1 1;margin-left:200px;overflow-y:auto;padding:20px 20px 40px}@media (max-width:900px){.sidebar{display:none}.user-main-content{margin-left:0;padding:10px}}.all-requests-container{background-color:var(--background-color);color:var(--text-color);min-height:calc(100vh - 60px);padding:20px}.all-requests-container h1{color:var(--text-h2)}.requests-controls{display:flex;flex-wrap:wrap;gap:15px;justify-content:flex-end;margin-bottom:20px}.search-input,.sort-select{background-color:var(--input-background);border:1px solid var(--border-color);border-radius:5px;color:var(--text-color);flex-grow:1;font-size:1em;max-width:300px;padding:10px 15px}.search-input::placeholder{color:var(--text-color-secondary)}.sort-select{cursor:pointer;flex-grow:0;min-width:180px}.request-section{background-color:var(--bg-secondary);border-radius:8px;box-shadow:0 0 6px #0000001a;margin-bottom:30px;padding:20px}.request-section h2{color:var(--text-h2)}.requests-table{margin-top:15px}.requests-table td,.requests-table th{border:1px solid var(--border-color)}.requests-table th{background-color:var(--table-header-background);color:var(--table-header-text);font-size:.9em;font-weight:700;text-transform:uppercase}.requests-table tbody tr:nth-child(2n){background-color:var(--table-row-even)}.requests-table tbody tr:hover{background-color:var(--table-row-hover)}.view-button,.view-details-btn{background-color:#2196f3;border:none;border-radius:5px;color:#fff;cursor:pointer;display:inline-block;font-size:.9em;padding:8px 12px;text-decoration:none;transition:background-color .3s ease}.view-button:hover,.view-details-btn:hover{background-color:#1976d2}.error-message{color:var(--error-color);font-size:1.2em;margin-top:50px}.table-responsive{overflow-x:auto}.status-pending{color:#ffc107;color:var(--warning-color,#ffc107);font-weight:700}.status-approved{color:#28a745;color:var(--success-color,#28a745);font-weight:700}.status-rejected{color:#dc3545;color:var(--error-color,#dc3545);font-weight:700}.status-default{color:#6c757d;color:var(--text-color-secondary,#6c757d)}@media (max-width:768px){.all-requests-container{padding:15px}.requests-table td,.requests-table th{font-size:.85em;padding:8px 10px}.view-button{font-size:.8em;padding:6px 10px}.requests-controls{justify-content:center}.search-input,.sort-select{max-width:100%}}@media (max-width:480px){.all-requests-container h1{font-size:1.8em}.request-section h2{font-size:1.3em}}.approved-requests-container{height:100%;width:100%}.approved-requests-layout{display:flex;height:90%}.approved-requests-content{flex:1 1;padding:20px}.approved-requests-content section{background-color:var(--bg-secondary);border-radius:8px;box-shadow:0 0 6px #0000001a;margin-bottom:30px;padding:20px}.requests-section{margin-bottom:30px}.requests-table{border-collapse:collapse;margin-top:10px;width:100%}.requests-table td,.requests-table th{border:1px solid #e0e0e0;padding:12px 15px;text-align:left}.requests-table th{background-color:var(--thead-bg);color:var(--text-primary);font-weight:600}.requests-table tbody tr:hover{background-color:var(--bg-secondary)}.status-badge{background-color:#787b7e;border-radius:5px;color:#fff;font-weight:700;padding:5px 10px}.status-badge.pending,.status-badge.pending-dean-approval,.status-badge.pending-hod-approval,.status-badge.pending-lecturer-approval,.status-badge.pending-vc-approval{background-color:orange}.status-badge.approved{background-color:green}.status-badge.rejected{background-color:red}.view-details-btn{background-color:#007bff;border:none;border-radius:5px;color:#fff;cursor:pointer;display:inline-block;font-size:.9rem;padding:8px 15px;text-align:center;text-decoration:none;transition:background-color .3s ease,transform .2s ease}.view-details-btn:hover{background-color:#0056b3;transform:translateY(-1px)}@media (max-width:768px){.requests-table td,.requests-table th{font-size:.9rem;padding:8px 10px}}@media (max-width:480px){.requests-table{border:none}.requests-table thead{display:none}.requests-table tr{background-color:#fff;border:1px solid #e0e0e0;display:block;margin-bottom:10px}.requests-table td{border:none;border-bottom:1px solid #e0e0e0;display:block;font-size:.9rem;padding-left:50%;position:relative;text-align:right}.requests-table td:before{color:#1a3e72;content:attr(data-label);font-weight:600;left:10px;padding-right:10px;position:absolute;text-align:left;top:12px;white-space:nowrap;width:45%}}.form-builder-container{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);min-height:100vh;padding:30px 0}.form-builder-header{background:#fff;border-left:5px solid #1976d2;border-radius:8px;box-shadow:0 2px 8px #00000014;margin-bottom:24px;padding:24px}.form-builder-header h1,.form-builder-header h4{color:#1a1a1a;font-weight:600}.form-info-panel{background:#fff;border-radius:8px;border-top:4px solid #1976d2;box-shadow:0 2px 8px #00000014;padding:24px}.form-info-panel h6{color:#1976d2;font-size:1.1rem;font-weight:600;margin-bottom:16px}.form-info-panel .MuiTextField-root{margin-bottom:16px}.form-info-panel .MuiFormControlLabel-root{background:#f5f5f5;border-radius:5px;margin:8px 0;padding:12px}.form-fields-header{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;display:flex;justify-content:space-between;margin:24px 0;padding:16px}.form-fields-header h6{color:#1a1a1a;font-size:1.2rem;font-weight:600;margin:0}.form-fields-header .MuiButton-root{background:#4caf50!important;color:#fff!important;font-weight:600}.form-fields-header .MuiButton-root:hover{background:#45a049!important;box-shadow:0 4px 12px #4caf504d}.field-card{background:#fff;border:1px solid #e0e0e0;border-left:4px solid #1976d2;border-radius:8px;box-shadow:0 2px 6px #0000000d;margin-bottom:16px;padding:24px;transition:all .3s ease}.field-card:hover{border-left-color:#1565c0;box-shadow:0 4px 12px #0000001a}.field-inputs-row{grid-gap:16px;align-items:flex-end;display:grid;gap:16px;grid-template-columns:1fr 1fr 1fr auto auto;margin-bottom:16px}.field-id-input label,.field-label-input label,.field-type-input label{color:#333;display:block;font-size:.85rem;font-weight:600;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.field-id-input .MuiTextField-root,.field-label-input .MuiTextField-root{margin-bottom:0}.field-id-input .MuiTextField-root input{background:#f5f5f5;font-family:Courier New,monospace;font-size:.9rem;height:40px}.field-label-input .MuiTextField-root{width:100%}.field-label-input .MuiTextField-root textarea{font-size:.9rem;min-height:20px}.field-type-select{width:100%}.field-required-toggle{align-items:center;display:flex;flex-direction:column;gap:6px;justify-content:flex-end;padding:8px}.field-required-toggle label{color:#666;font-size:.75rem;font-weight:600;margin:0;text-transform:uppercase}.field-delete-btn{align-items:center;background:#f44336!important;border-radius:5px;color:#fff!important;display:flex;height:44px;justify-content:center;padding:12px!important;transition:all .3s ease;width:44px}.field-delete-btn:hover{background:#da190b!important;box-shadow:0 4px 12px #f443364d}.options-box{background:#f9f9f9;border:1px solid #e8e8e8;border-radius:6px;margin-top:16px;padding:16px}.options-box-title{align-items:center;color:#1976d2;font-size:.95rem;font-weight:600}.options-box-title,.options-chips{display:flex;gap:8px;margin-bottom:12px}.options-chips{flex-wrap:wrap;padding:8px 0}.options-chips .MuiChip-root{background:#1976d2!important;color:#fff!important;font-weight:500;height:32px}.options-input-container{display:flex;gap:8px}.options-input-container .MuiTextField-root{flex:1 1}.logic-box{background:linear-gradient(135deg,#f8f9fa,#f0f1f5);border:2px dashed #dee2e6;border-radius:6px;margin-top:16px;padding:16px}.logic-title{color:#1976d2;font-size:.9rem;font-weight:600;gap:6px;margin-bottom:12px}.logic-controls,.logic-title{align-items:center;display:flex}.logic-controls{flex-wrap:wrap;gap:12px}.logic-controls .MuiFormControl-root{min-width:150px}.logic-controls .MuiTextField-root{flex:1 1;min-width:200px}.form-save-button{background:linear-gradient(135deg,#1976d2,#1565c0)!important;border-radius:6px;box-shadow:0 4px 12px #1976d24d;color:#fff!important;font-size:1rem;font-weight:600;height:56px;margin-top:32px;transition:all .3s ease}.form-save-button:hover{box-shadow:0 6px 20px #1976d266;transform:translateY(-2px)}.form-save-button:active{transform:translateY(0)}.form-alert{animation:slideDown .3s ease-out;border-radius:6px;margin-bottom:24px;padding:16px}.form-alert.error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.form-alert.success{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.form-controls-stack{display:flex;flex-wrap:wrap;gap:12px}.form-controls-stack .MuiButton-root{border-radius:5px!important;font-weight:600!important;padding:10px 16px!important;transition:all .3s ease}.form-controls-stack .MuiButton-outlined{border:2px solid #1976d2!important;color:#1976d2!important}.form-controls-stack .MuiButton-outlined:hover{background:#f0f7ff;box-shadow:0 4px 12px #1976d233}.form-template-select{min-width:200px}.form-loading{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 8px #00000014;display:flex;justify-content:center;min-height:400px}@media (max-width:1200px){.field-inputs-row{grid-template-columns:1fr 1fr}.field-type-select{grid-column:1/-1}}@media (max-width:768px){.field-inputs-row{gap:12px;grid-template-columns:1fr}.field-delete-btn,.field-required-toggle{grid-column:1/-1;width:100%}.field-delete-btn{height:auto;width:100%}.logic-controls{flex-direction:column;gap:10px}.logic-controls .MuiFormControl-root,.logic-controls .MuiTextField-root{min-width:auto;width:100%}.form-controls-stack{flex-direction:column}.form-controls-stack .MuiButton-root,.form-template-select{width:100%}.form-fields-header{flex-direction:column;gap:12px}.form-fields-header .MuiButton-root,.form-fields-header h6{width:100%}}@media (max-width:480px){.field-card,.form-builder-header,.form-info-panel{padding:16px}.logic-box,.options-box{padding:12px}.form-save-button{font-size:.95rem;height:48px}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.field-label-textarea{font-family:inherit;font-size:.9rem;line-height:1.5;resize:vertical}.MuiChip-root{transition:all .2s ease}.MuiChip-root:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.available-forms-page{padding:20px}.available-forms-page h2{margin-bottom:20px}.available-forms-page table{border-collapse:collapse;width:100%}.available-forms-page td,.available-forms-page th{border:1px solid #ddd;padding:12px;text-align:left}.available-forms-page th{background-color:#f2f2f2}.available-forms-page button{background-color:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:8px 12px}.available-forms-page button:hover{background-color:#45a049}@media (max-width:768px){.available-forms-page table,.available-forms-page tbody,.available-forms-page td,.available-forms-page th,.available-forms-page thead,.available-forms-page tr{display:block}.available-forms-page thead tr{left:-9999px;position:absolute;top:-9999px}.available-forms-page tr{margin-bottom:15px}.available-forms-page td{border:none;border-bottom:1px solid #eee;padding-left:50%;position:relative}.available-forms-page td:before{content:attr(data-label);font-weight:700;left:6px;padding-right:10px;position:absolute;top:6px;white-space:nowrap;width:45%}.available-forms-page td:last-child{border-bottom:0}}.excuse-request-view-container{display:flex;flex-direction:column;min-height:100vh}.excuse-request-layout{display:flex;flex:1 1}.excuse-request-main-content{background-color:var(--bg-primary);flex:1 1;padding:20px}.excuse-request-container{background:var(--bg-secondary);border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:30px;padding:20px}.excuse-request-header-row{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.excuse-request-info{margin-bottom:30px}.info-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-bottom:20px}.document-info p,.info-item{background-color:var(--bg-primary);border-radius:4px;padding:10px}.document-container{background:var(--bg-secondary);border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:30px;padding:20px}.info-item.full-width{grid-column:1/-1}.info-item.full-width a{color:var(--text-h2)}.absences-table,.history-table{border-collapse:collapse;margin-top:10px;width:100%}.absences-header,.absences-row,.history-header,.history-row{border-bottom:1px solid #eee;display:grid;padding:10px}.absences-header,.history-header{background-color:var(--thead-bg);color:var(--thead-text);font-weight:700}.absences-header{grid-template-columns:1fr 1fr}.history-header{grid-template-columns:1fr 1fr 1fr 1fr 2fr}.absences-row{grid-template-columns:1fr 1fr}.history-row{grid-template-columns:1fr 1fr 1fr 1fr 2fr}.history-section,.progress-section{border-top:1px solid #eee;margin-top:30px;padding-top:20px}.error-message{background-color:#ffebee;border-radius:4px;color:#d32f2f;padding:20px;text-align:center}@media (max-width:900px){.excuse-request-layout{flex-direction:column}.excuse-request-main-content{padding:10px}}@media (max-width:768px){.info-grid{grid-template-columns:1fr}.absences-header,.absences-row,.history-header,.history-row{gap:5px;grid-template-columns:1fr}.absences-header div,.absences-row div,.history-header div,.history-row div{padding:5px 0}}.approval-actions-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;margin-top:20px;padding:20px}.approval-actions-card h3{color:var(--text-primary);margin-top:0}.rejection-textarea{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-family:inherit;margin-bottom:15px;padding:10px;resize:vertical;width:100%}.action-buttons-group{display:flex;flex-wrap:wrap;gap:10px}.approve-btn,.cancel-btn,.reject-btn{border:none;border-radius:4px;cursor:pointer;font-weight:700;padding:10px 20px;transition:background .3s}.approve-btn{background-color:#2e7d32;color:#fff}.approve-btn:hover{background-color:#1b5e20}.reject-btn{background-color:#d32f2f;color:#fff}.reject-btn:hover{background-color:#b71c1c}.cancel-btn{background-color:#757575;color:#fff}.cancel-btn:hover{background-color:#616161}.rejection-box{background-color:#ffebee;border-left:5px solid #d32f2f;border-radius:4px;color:#c62828;margin-top:20px;padding:15px}[data-theme=dark] .rejection-box{background-color:#442727;color:#ffcdd2}.loading-text{color:var(--text-secondary);font-size:1.2rem;margin-top:50px;text-align:center}.contact-support-page{margin:0 auto;max-width:800px;padding:20px}.contact-support-page h1{border-bottom:2px solid #ccc;font-size:2em;margin-bottom:20px;padding-bottom:10px}.contact-support-page p{font-size:1.1em;line-height:1.6;margin-bottom:20px}.contact-support-page ul{list-style-type:none;padding:0}.contact-support-page li{font-size:1.1em;margin-bottom:10px}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}:root{--bg-primary:#eef3f5;--bg-secondary:#f0f7ff;--bg-hover:#e9ecef;--text:#000;--text-h2:#4c6d9c;--text-primary:#212529;--text-secondary:#6c757d;--header-text:#344d70;--sidebar-text:#344d70;--text-title:#000;--text-subtitle:#3f3e3e;--thead-text:#1a3e72;--thead-bg:#d8e5f8;--thead-hover-bg:#cfdff8;--switch-track:#ced4da;--switch-thumb:#495057;--card-bg:#fff;--card-shadow:0 2px 4px #0000001a;--accent-hover:#0056b3;--border-light:#e9ecef;--border-color:#dee2e6;--success-color:#dbdbdb;--success-hover:#afafaf;--error-color:#c55959;--error-hover:#c53030;--success-bg:#28a7451a}.dark{--bg-primary:#202020;--bg-secondary:#2b2a2a;--bg-hover:#3d3d3d;--text:#fff;--text-h2:#6390cf;--text-primary:#babbbb;--text-secondary:#adb5bd;--header-text:#6390cf;--sidebar-text:#6390cf;--text-title:#fff;--text-subtitle:#a7a7a7;--thead-text:#f7f7f7;--thead-bg:#45566e;--thead-hover-bg:#45608a;--table-header:#1a3e72;--table-header-bg:#1a3e72;--border-color:#495057;--switch-track:#6c757d;--switch-thumb:#f8f9fa;--card-bg:#2d2d2d;--card-shadow:0 2px 4px #0000004d;--accent-hover:#3b82f6;--border-light:#374151;--success-color:#333;--success-hover:#141414;--error-color:#c55959;--error-hover:#c53030;--success-bg:#51cf661a}body{background-color:#eef3f5;background-color:var(--bg-primary);color:#212529;color:var(--text-primary);transition:background-color .3s ease,color .3s ease}.header{border-bottom:1px solid #dee2e6;border-bottom:1px solid var(--border-color)}.header,.sidebar{background-color:#f0f7ff;background-color:var(--bg-secondary)}.sidebar{border-right:1px solid #dee2e6;border-right:1px solid var(--border-color)}.card{box-shadow:0 2px 4px #0000001a;box-shadow:var(--card-shadow)}.card,.table{background-color:#fff;background-color:var(--card-bg);border:1px solid #dee2e6;border:1px solid var(--border-color)}.table td,.table th{border-color:#dee2e6;border-color:var(--border-color);color:#212529;color:var(--text-primary)}.input,.select,.textarea{background-color:#eef3f5;background-color:var(--bg-primary);border:1px solid #dee2e6;border:1px solid var(--border-color);color:#212529;color:var(--text-primary)}.input:focus,.select:focus,.textarea:focus{border-color:#6c757d;border-color:var(--text-secondary)}
/*# sourceMappingURL=main.0e8a96f4.css.map*/