.App{width:100%;height:100vh}*{margin:0;padding:0;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.login-box{width:100%;max-width:320px;padding:2rem;text-align:center}.logo h1{font-size:2.5rem;color:#000;margin-bottom:.5rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:2px}.tagline{color:#555;font-size:1rem;font-weight:400}.location-icon{color:#ff3b30;font-size:1.8rem;position:relative;top:2px}.input-group{margin-bottom:1.5rem;position:relative;text-align:left}.input-group label{display:block;color:#000;margin-bottom:.5rem;font-size:1rem;font-weight:500}.input-group input{width:100%;padding:.8rem 2.5rem .8rem 1rem;border:1px solid #e0e0e0;border-radius:8px;font-size:1rem;background:#fff;box-shadow:0 1px 2px #0000000d;height:48px}.actions-container{width:100%;margin:2rem 0}.action-button{width:150px;height:42px;padding:0;border:none;border-radius:5px;font-size:1rem;font-weight:500;cursor:pointer;background-color:#4d80ff;color:#fff;transition:background-color .3s ease;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.login-button:hover,.register-button:hover{background-color:#3d66cc}.forgot-password{text-align:center;margin:1rem 0;color:#666}.student-link{text-align:center;margin-top:2rem;color:#666}.link-button:hover{text-decoration:underline;color:#3d66cc}.login-status{color:#4d80ff;margin-bottom:1rem;text-align:center;font-size:.9rem;font-style:italic}@media (max-width: 768px){.login-box{max-width:92vw;padding:1.5rem}.logo h1{font-size:2.1rem}.tagline{font-size:.95rem;margin-bottom:1.5rem}.button-row{gap:12px}.action-button{width:100%}.actions-container .button-row .action-button,.actions-container .button-row .login-button,.actions-container .button-row .register-button{width:100%!important;max-width:none!important}.student-link{margin-top:1.5rem}}@media (max-width: 480px){.login-container{padding:1rem}.login-box{padding:1.25rem;border-radius:8px}.logo h1{font-size:1.9rem}.tagline,.input-group label{font-size:.9rem}.input-group input{height:44px;font-size:.95rem;padding:.7rem 2.5rem .7rem 1rem}.button-row{flex-direction:column;gap:10px;align-items:stretch}.action-button{height:44px;font-size:.95rem;width:100%}.actions-container .button-row .action-button,.actions-container .button-row .login-button,.actions-container .button-row .register-button{width:100%!important;max-width:none!important}.student-link{margin-top:1.25rem;font-size:.9rem}}@media (min-width: 992px){.login-box{max-width:380px}}.input-group input,.input-group select{width:100%;padding:12px 36px 12px 12px;border:1px solid #E5E7EB;border-radius:4px;font-size:14px;transition:all .2s ease;height:44px;background:#fff;margin-bottom:4px;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.input-group input:disabled,.input-group input.disabled-input{background-color:#f3f4f6;color:#6b7280;cursor:not-allowed;border-color:#d1d5db}.input-group input:disabled:hover,.input-group input.disabled-input:hover{border-color:#d1d5db}.input-group input:focus,.input-group select:focus{border-color:#4d80ff;box-shadow:0 0 0 1px #4d80ff;outline:none}.input-group input:focus,.input-group select:focus{outline:none;border-color:#4d80ff;box-shadow:0 1px 2px #4d80ff1a}.registration-box .login-button{background-color:#4d80ff;color:#fff;border:none;padding:12px 0;border-radius:5px;font-size:16px;font-weight:500;cursor:pointer;transition:background-color .3s ease;width:200px}.registration-box .login-button:hover{background-color:#5b52e0}@media (max-width: 480px){.login-container{padding:12px}.login-box{padding:24px 16px;border-radius:16px}.logo h1{font-size:clamp(1.6rem,2.5vw,2rem)}.tagline{font-size:clamp(.8rem,1.5vw,.9rem);margin-bottom:clamp(15px,3vw,25px)}.input-group input,.input-group select{height:40px;font-size:14px;padding:10px 32px 10px 10px}.input-group .clear-button{right:8px;top:50%}.login-button{width:100%;max-width:180px;font-size:15px}.links-section p{font-size:.9rem}}@media (max-width: 360px){.login-box{padding:20px 12px}.logo h1{font-size:1.5rem}.tagline{font-size:.8rem}.input-group input,.input-group select{height:38px;font-size:13px}.login-button{font-size:14px}}.login-box{width:100%;max-width:400px;padding:2rem;text-align:center;box-shadow:0 0 20px #0000001a;border-radius:10px}.logo{margin-bottom:3rem;display:flex;flex-direction:column;align-items:center;justify-content:center}.logo h1{font-size:2.5rem;color:#000;margin-bottom:.5rem;font-weight:700;display:flex;align-items:center;justify-content:center}.tagline{color:#555;font-size:1rem;font-weight:400;margin-bottom:2rem}.input-group{margin-bottom:.5rem;position:relative;text-align:left}.input-group label{display:block;color:#333;margin-bottom:.25rem;font-size:.85rem;font-weight:400}.input-with-clear{position:relative}.input-group input{width:100%;padding:.7rem 2rem .7rem .7rem;border:1px solid #ddd;border-radius:5px;font-size:1rem;background:#fff;height:40px}.input-group input:focus{outline:none;border-color:#4d80ff}.input-group .clear-button{position:absolute;right:10px;top:60%;transform:translateY(-50%);cursor:pointer;background:none;border:none;padding:4px;display:flex;align-items:center;justify-content:center;color:#666}.input-group .clear-button:hover{color:#4d80ff}.input-group input::placeholder{color:#999;font-size:.95rem}.password-toggle{position:absolute;right:10px;top:60%;transform:translateY(-50%);cursor:pointer;background:none;border:none;padding:4px;display:flex;align-items:center;justify-content:center;color:#666}.password-toggle:hover{color:#4d80ff}.actions-container{width:100%;margin:1.5rem 0}.button-row{display:flex;justify-content:center;gap:20px;width:100%}.action-button{width:150px;height:42px;padding:0;border:none;border-radius:5px;font-size:1rem;font-weight:500;cursor:pointer;background-color:#4d80ff;color:#fff;transition:all .2s ease;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.login-button:hover,.register-button:hover{background-color:#3d66cc;opacity:.95}.supervisor-link{text-align:center;margin-top:6rem;color:#666}.link-button{background:none;border:none;padding:0;color:#4d80ff;text-decoration:none;cursor:pointer;font-size:inherit}.location-icon{color:#ff3b30;font-size:2rem;position:relative;top:.15em;margin:0 2px}.error-message{color:#f44;margin-bottom:1rem;text-align:left;font-size:.9rem}button:disabled{opacity:.7;cursor:not-allowed}.loading-spinner{display:flex;align-items:center;justify-content:center;gap:8px}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.forgot-password{text-align:center;margin-top:1rem}.forgot-password a,.supervisor-link a,.student-link a,.forgot-password button,.supervisor-link button,.student-link button{color:#4d80ff;text-decoration:none}.forgot-password a:hover,.supervisor-link a:hover,.student-link a:hover,.forgot-password button:hover,.supervisor-link button:hover,.student-link button:hover{text-decoration:underline;color:#3d66cc}.help-text{display:none;color:#666;font-size:.8rem;margin-top:.2rem;margin-bottom:.7rem}.remember-me{display:flex;align-items:center;gap:.5rem;margin:1rem 0;font-size:.85rem;color:#555;justify-content:flex-start}.remember-me input[type=checkbox]{width:16px;height:16px;accent-color:#4D80FF}.forgot-password{text-align:center;margin-top:1.25rem;margin-bottom:1rem}.supervisor-link{text-align:center;margin-top:3rem;color:#666;font-size:.9rem}@media (max-width: 768px){.login-box{max-width:92vw;padding:1.5rem}.logo h1{font-size:2.1rem}.tagline{font-size:.95rem;margin-bottom:1.5rem}.button-row{gap:12px;width:100%}.action-button{width:100%!important;display:block}.actions-container .button-row .action-button,.actions-container .button-row .login-button,.actions-container .button-row .register-button{width:100%!important;max-width:none!important}.supervisor-link{margin-top:2rem}}@media (max-width: 480px){.login-container{padding:1rem}.login-box{padding:1.25rem;border-radius:8px}.logo h1{font-size:1.9rem}.tagline{font-size:.9rem}.input-group label{font-size:.8rem}.input-group input{height:38px;font-size:.95rem;padding:.6rem 2rem .6rem .7rem}.button-row{flex-direction:column;gap:10px;align-items:stretch;width:100%}.action-button{height:44px;font-size:.95rem;width:100%!important;display:block}.actions-container .button-row .action-button,.actions-container .button-row .login-button,.actions-container .button-row .register-button{width:100%!important;max-width:none!important}.supervisor-link{margin-top:1.5rem;font-size:.9rem}}@media (max-width: 360px){.logo h1{font-size:1.7rem}.tagline{font-size:.85rem}.action-button{height:42px;font-size:.9rem}}@media (min-width: 992px){.login-box{max-width:460px}}.login-container{min-height:100vh;min-width:100vw;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8f9fe,#e6e9f5);padding:24px;box-sizing:border-box}.login-box{background:#fff;padding:48px;border-radius:20px;box-shadow:0 10px 25px #0000000d;width:90%;min-width:800px;max-width:1000px;text-align:center;margin:0 auto;box-sizing:border-box}.registration-box{width:100%;margin:0 auto;padding:0 24px;box-sizing:border-box}form{width:100%;max-width:1600px;margin:0 auto;box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch}.logo h1{color:#000;margin-bottom:clamp(5px,2vw,10px);font-size:clamp(2rem,4vw,2.5rem);font-weight:700}.tagline{color:#555;margin-bottom:clamp(20px,4vw,30px);font-size:clamp(.9rem,2vw,1rem);font-weight:400}.location-icon{color:#ff3b30;font-size:2rem;position:relative;top:.15em}.input-row{display:flex;gap:48px;margin-bottom:24px;width:100%;justify-content:space-between}.input-row .input-group{flex:0 1 calc(50% - 24px);position:relative}.input-group .clear-button{position:absolute;right:12px;top:12px;background:none;border:none;padding:4px;cursor:pointer;color:#6b7280;display:flex;align-items:center;justify-content:center;font-size:12px;border-radius:50%}.clear-button:hover{background-color:#f3f4f6}.input-group{margin-bottom:16px;width:100%;position:relative}.input-group label{position:absolute;left:12px;top:-9px;padding:0 4px;background-color:#fff;color:#374151;font-size:13px;font-weight:500;line-height:18px;z-index:1}.input-group input{width:100%;padding:12px 36px 12px 12px;border:1px solid #E5E7EB;border-radius:4px;font-size:14px;transition:all .2s ease;height:44px;background:#fff;margin-bottom:4px}.label-description{color:#6b7280;font-size:12px;text-align:left;margin-top:4px}.input-group input:focus{border-color:#4d80ff;box-shadow:0 0 0 1px #4d80ff;outline:none}.input-group input:focus{outline:none;border-color:#4d80ff;box-shadow:0 1px 2px #4d80ff1a}.input-group input::placeholder{color:#999;font-size:clamp(.85rem,1.5vw,.95rem)}.button-group{display:flex;justify-content:center;align-items:center;margin:2rem auto;width:100%;text-align:center}.registration-box .button-group{display:flex;justify-content:center;align-items:center}.login-button{background-color:#4d80ff;color:#fff;border:none;padding:12px 0;border-radius:5px;font-size:16px;font-weight:500;cursor:pointer;transition:background-color .3s ease;width:200px}.registration-box .button-group .login-button,.button-group .register-button{width:200px;padding:12px 0;margin:0;display:inline-block;text-align:center}.login-button:hover{background-color:#5b52e0}.links-section{margin-top:20px}.links-section p{color:#666;margin:10px 0}.link-button{background:none;border:none;color:#6c63ff;cursor:pointer;font-size:inherit;padding:0;text-decoration:none}.link-button:hover{text-decoration:underline}.password-requirements{background-color:#f8f9fe;border:1px solid #e6e9f5;border-radius:8px;padding:16px 20px;margin:20px 0;text-align:left}.password-requirements .requirements-title{color:#374151;font-size:14px;font-weight:600;margin:0 0 12px}.password-requirements ul{list-style:none;padding:0;margin:0}.password-requirements li{padding:6px 0;font-size:13px;transition:color .2s ease}.password-requirements li.valid{color:#10b981;font-weight:500}.password-requirements li.invalid{color:#6b7280}.error-message{color:#e53e3e;background-color:#fee;border:1px solid #fcc;border-radius:4px;padding:12px;margin:16px 0;text-align:center;font-size:14px}@media (max-width: 1024px){.login-box{min-width:700px;padding:40px}.input-row{gap:32px}}@media (max-width: 768px){.login-container{padding:16px}.login-box{min-width:unset;width:100%;max-width:600px;padding:32px 24px}.input-row{flex-direction:column;gap:16px}.input-row .input-group{flex:1}.logo h1{font-size:clamp(1.8rem,3vw,2.2rem)}.tagline{font-size:clamp(.85rem,1.8vw,.95rem)}}@media (max-width: 480px){.login-container{padding:12px}.login-box{padding:24px 16px;border-radius:16px}.logo h1{font-size:clamp(1.6rem,2.5vw,2rem)}.tagline{font-size:clamp(.8rem,1.5vw,.9rem);margin-bottom:clamp(15px,3vw,25px)}.input-group input{height:40px;font-size:14px;padding:10px 32px 10px 10px}.input-group .clear-button{right:8px;top:50%}.login-button{width:100%;max-width:180px;font-size:15px}.links-section p{font-size:.9rem}}@media (max-width: 360px){.login-box{padding:20px 12px}.logo h1{font-size:1.5rem}.tagline{font-size:.8rem}.input-group input{height:38px;font-size:13px}.login-button{font-size:14px}}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:#fff}.login-box{width:100%;max-width:400px;padding:2rem;text-align:center}.logo{margin-bottom:3rem}.logo h1{font-size:2.5rem;color:#000;margin-bottom:.5rem;font-weight:700}.tagline{color:#000;font-size:1rem}.success-message{margin:2rem 0;text-align:center}.success-message h2{color:#4d80ff;margin-bottom:1rem}.success-message p{color:#666;margin-bottom:.5rem}.info-box{margin-top:2rem;padding:1rem;background-color:#f8f9fa;border-radius:4px}.info-box p{color:#666;margin:.5rem 0}.verifying-message{margin:2rem 0;text-align:center}.verifying-message p{color:#555;font-size:1.2rem;margin-bottom:1.5rem}.verification-progress{display:flex;flex-direction:column;align-items:center;margin-top:1.5rem}.loader{border:4px solid #f3f3f3;border-radius:50%;border-top:4px solid #4D80FF;width:30px;height:30px;animation:spin 1.5s linear infinite;margin-bottom:1rem}.redirect-message{color:#4d80ff;font-size:.9rem}.student-home{min-height:100vh;background-color:#e8e8e8;font-family:Arial,sans-serif;display:flex;flex-direction:column}.top-nav{background-color:#04c;color:#fff;padding:.8rem 2rem;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.logo{flex-shrink:0}.logo h1{font-size:1.5rem;margin:0;display:flex;align-items:center;gap:0;line-height:1}.location-icon{font-size:.8em;margin:0 1px;position:relative;top:2px;color:#ff6b6b}.nav-links{display:flex;gap:4rem}.nav-link{color:#fff;text-decoration:none;display:flex;align-items:center;gap:.4rem;font-size:1rem;background:none;border:none;padding:0;cursor:pointer;font-family:inherit}.nav-link.sign-out-btn{background:none;border:none;padding:0;cursor:pointer;font-family:inherit;color:#ff6b6b;transition:color .2s ease}.nav-link.sign-out-btn:hover{color:#ff8585}.main-content{padding:2rem;max-width:1200px;margin:0 auto;flex:1;width:100%;box-sizing:border-box}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.dashboard-grid.centered{display:flex;justify-content:center;align-items:flex-start}.dashboard-grid.centered .actions-panel{width:100%;max-width:400px}.panel{background-color:#f8f9fa;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #00000014;transition:box-shadow .2s ease}.panel:hover{box-shadow:0 4px 12px #0000001f}.panel-header{background-color:#04c;color:#fff;padding:.9rem 1.2rem;text-align:center;font-weight:600;font-size:1.1rem}.actions-panel .panel-content{display:flex;flex-direction:column;gap:.8rem}.action-button{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;padding:.9rem 1rem;background-color:#04c;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:500;transition:background-color .2s ease,transform .1s ease}.action-button:hover{background-color:#03a;transform:translateY(-1px)}.action-button.primary{background-color:#05e;padding:1rem;font-size:1.05rem}.action-button.primary:hover{background-color:#04c}.btn-icon{font-size:1.1rem}.info-panel .info-content{display:flex;flex-direction:column;gap:1rem}.info-row{display:flex;align-items:center;gap:1rem;padding:.8rem;background-color:#fff;border-radius:8px;border-left:4px solid #0044cc}.info-icon{font-size:1.3rem;color:#04c;flex-shrink:0}.info-details{display:flex;flex-direction:column;gap:.2rem}.info-label{font-size:.8rem;color:#666;text-transform:uppercase;letter-spacing:.5px}.info-value{font-size:1rem;color:#333;font-weight:500}.progress-panel{grid-column:span 2}.progress-content{display:flex;align-items:center;gap:2rem;flex-wrap:wrap}.progress-circle{width:120px;height:120px;border-radius:50%;background:conic-gradient(#04c,#e0e0e0 0%);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;flex-shrink:0}.progress-circle:before{content:"";position:absolute;width:90px;height:90px;background:#f8f9fa;border-radius:50%}.progress-value{font-size:1.5rem;font-weight:700;color:#04c;z-index:1}.progress-label{font-size:.75rem;color:#666;z-index:1}.progress-stats{display:flex;gap:2rem;flex:1}.stat-item{display:flex;flex-direction:column;align-items:center;padding:1rem 1.5rem;background:#fff;border-radius:8px;min-width:120px}.stat-value{font-size:1.8rem;font-weight:700;color:#04c}.stat-label{font-size:.85rem;color:#666;text-align:center}.view-progress-btn{margin-left:auto}.time-records-panel .panel-content{padding:1rem;height:250px;background-color:#eee;position:relative}.sidebar{position:fixed;top:0;left:0;height:100vh;width:80%;max-width:320px;background:#fff;box-shadow:2px 0 12px #00000026;transform:translate(-100%);transition:transform .25s ease;z-index:1000;display:flex;flex-direction:column}.sidebar-links{display:flex;flex-direction:column;padding:1rem;gap:.75rem}.sidebar .nav-link{color:#04c}@media (max-width: 1024px){.top-nav{padding:.8rem 1.25rem}.nav-links{gap:2rem}.welcome-section h1{font-size:2.5rem}.main-content .dashboard-grid{grid-template-columns:1fr!important}.progress-panel{grid-column:span 1}.progress-content{flex-direction:column;align-items:center;text-align:center}.progress-stats{justify-content:center}.view-progress-btn{margin-left:0;width:100%;margin-top:.5rem}}@media (max-width: 768px){.top-nav{padding:.75rem 1rem;flex-wrap:wrap;row-gap:.5rem;justify-content:center;position:relative}.hamburger-btn{display:block;position:absolute;left:1rem;top:50%;transform:translateY(-50%)}.logo h1{font-size:clamp(1.25rem,4vw,1.4rem);text-align:center}.nav-links{display:none!important}.main-content{padding:1rem}.welcome-section{padding-left:.5rem;margin-bottom:1.25rem}.welcome-section h1{font-size:clamp(1.75rem,6vw,2.25rem)}.welcome-section p{font-size:.95rem}.main-content .dashboard-grid{grid-template-columns:1fr!important;gap:1rem}.progress-panel{grid-column:span 1}.panel-header{padding:.7rem;font-size:1rem}.panel-content{padding:1rem}.action-button{padding:.8rem;font-size:.95rem}.progress-circle{width:100px;height:100px}.progress-circle:before{width:75px;height:75px}.progress-value{font-size:1.3rem}.progress-stats{flex-direction:row;gap:1rem}.stat-item{padding:.8rem 1rem;min-width:100px}.stat-value{font-size:1.5rem}.time-records-panel .panel-content{height:220px}.info-row{padding:.6rem}}@media (max-width: 480px){.top-nav{padding:.6rem .75rem}.nav-links{flex-wrap:wrap;row-gap:.5rem}.nav-link{font-size:.95rem}.welcome-section h1{font-size:clamp(1.6rem,7vw,2rem)}.main-content .dashboard-grid{grid-template-columns:1fr!important;gap:.9rem}.panel-content{padding:.9rem}.action-button{font-size:.9rem;padding:.75rem}.progress-stats{flex-direction:column;width:100%;gap:.75rem}.stat-item{width:100%}.time-records-panel .panel-content{height:200px}.info-row{gap:.75rem}.info-icon{font-size:1.1rem}.info-value{font-size:.95rem}}.timein-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#fff;z-index:1000}.timein-modal{width:100%;height:100%;overflow-y:auto;padding:0;box-sizing:border-box;display:flex;flex-direction:column}.timein-modal>*:not(.timein-header){padding:0 1rem}.timein-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background-color:#04c;position:sticky;top:0;z-index:10;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:1rem}.timein-header h2{margin:0;color:#fff;font-size:1.25rem;font-weight:500}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#fff;padding:.5rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;transition:opacity .2s}.close-btn:hover{opacity:.8}.map-container{margin-bottom:1.5rem;border-radius:8px;overflow:hidden;position:relative;background-color:#f8f9fa;min-height:400px;height:400px;width:100%;border:1px solid #ddd}.map-loading{position:absolute;top:0;left:0;right:0;bottom:0;background:#ffffffe6;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:1}.loading-spinner{width:40px;height:40px;margin-bottom:10px;border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;animation:spin 1s linear infinite}#map{height:100%!important;width:100%!important;position:absolute!important;top:0;left:0;right:0;bottom:0}.selected-location-info{position:absolute;bottom:0;left:0;right:0;background:#ffffffe6;padding:1rem;display:flex;justify-content:space-between;align-items:center;font-size:.9rem}.use-location-btn{padding:.5rem 1rem;background-color:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:500;transition:background-color .3s}.use-location-btn:hover{background-color:#2980b9}.location-form{margin-bottom:1.5rem}.input-group{margin-bottom:1rem}.input-group label{display:block;margin-bottom:.5rem;color:#2c3e50}.input-group input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.input-group input[type=number]{width:150px}.radius-helper{font-size:.8rem;color:#666;margin-top:4px}.input-group input:focus{border-color:#3498db;outline:none;box-shadow:0 0 0 2px #3498db33}.status-section{background-color:#f8f9fa;padding:1rem;border-radius:8px;margin-bottom:1rem}.status-text,.action-text{font-weight:700;color:#3498db}.button-group{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.time-btn{padding:.75rem;border:none;border-radius:4px;background-color:#3498db;color:#fff;font-weight:700;cursor:pointer;transition:background-color .3s}.time-btn:hover{background-color:#2980b9}.time-btn:disabled,.time-btn.disabled,.save-btn:disabled{background-color:#bdc3c7;color:#7f8c8d;cursor:not-allowed;opacity:.6}.time-btn.disabled:hover{background-color:#bdc3c7}.status-text.in-range{color:#27ae60}.status-text.out-of-range{color:#e74c3c}.status-text.timed-in{color:#27ae60;font-weight:700}.status-section p{display:flex;justify-content:space-between;margin:.5rem 0;padding:.5rem;border-radius:4px;background-color:#ffffff80}.time-restriction-message{font-size:.9rem;color:#e67e22;font-weight:500;background-color:#fff3cd;border:1px solid #ffc107;border-radius:4px;padding:.75rem;margin:.75rem 0}.today-status{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;padding:.75rem;margin:.75rem 0}.status-label{font-weight:600;color:#495057;margin-bottom:.5rem!important;font-size:.95rem}.session-status{margin:.25rem 0!important;padding:.25rem 0!important;font-size:.9rem;color:#6c757d}.save-btn{width:100%;padding:.75rem;border:none;border-radius:4px;background-color:#2ecc71;color:#fff;font-weight:700;cursor:pointer;transition:background-color .3s}.save-btn:hover{background-color:#27ae60}.saved-locations{border-top:1px solid #ddd;padding-top:1.5rem}.saved-locations h3{margin:0 0 1rem;color:#2c3e50}.custom-map-control{background-color:#fff;border:0;border-radius:2px;box-shadow:0 1px 4px -1px #0000004d;margin:10px;padding:8px 16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:14px;cursor:pointer}.custom-map-control:hover{background-color:#f1f3f4}.custom-map-control:active{background-color:#e8eaed}.location-list{max-height:300px;overflow-y:auto;padding:.5rem}.history-entry{background-color:#f8f9fa;border-radius:8px;padding:1rem;margin-bottom:.5rem;border-left:4px solid #3498db;transition:transform .2s}.history-entry:hover{transform:translate(4px)}.history-entry.time-in{border-left-color:#2ecc71}.history-entry.time-out{border-left-color:#e74c3c}.history-time{font-size:.9rem;color:#666;margin-bottom:.5rem}.history-details{display:flex;justify-content:space-between;align-items:center}.history-type{font-weight:500;color:#2c3e50}.history-location{color:#666;font-size:.9rem}.no-history{text-align:center;color:#666;padding:2rem;font-style:italic}.permission-container{padding:2rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem}.permission-container p{color:#666;margin:0;line-height:1.5}.permission-btn{margin-top:1rem;padding:12px 24px;background-color:#3498db;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .3s}.permission-btn:hover{background-color:#2980b9}.error-text{color:#e74c3c!important;font-weight:500}.saved-locations{margin-bottom:20px}.location-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:15px}.location-btn{padding:8px 16px;border:1px solid #ddd;border-radius:4px;background:#f5f5f5;cursor:pointer;transition:all .2s}.location-btn.active{background:#007bff;color:#fff;border-color:#0056b3}.add-location-btn{width:100%;padding:8px;margin-top:10px;background:#28a745;color:#fff;border:none;border-radius:4px;cursor:pointer}.add-location-btn:hover{background:#218838}.inline-icon{margin-right:6px;font-size:14px;vertical-align:middle}.timed-in-icon,.in-range-icon{color:#28a745}.out-of-range-icon{color:#dc3545}.time-in-icon{color:#28a745}.time-out-icon{color:#6c757d}.location-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 16px}.location-name{font-weight:500}.location-btn.not-approved{background:#f8f9fa;border-color:#dee2e6;cursor:not-allowed;opacity:.7}.location-btn.not-approved:hover{background:#f8f9fa}.approval-badge{font-size:.7rem;padding:2px 6px;border-radius:10px;font-weight:500}.approval-badge.approved{background-color:#d4edda;color:#155724}.approval-badge.pending{background-color:#fff3cd;color:#856404}.approval-badge.rejected{background-color:#f8d7da;color:#721c24}.location-section{margin-bottom:16px}.location-section-title{font-size:.85rem;font-weight:600;margin:0 0 8px;padding-bottom:4px;border-bottom:1px solid #e0e0e0}.location-section-title.approved-title{color:#155724}.location-section-title.pending-title{color:#856404}.no-locations-message{color:#666;font-size:.9rem;text-align:center;padding:16px;background:#f9f9f9;border-radius:4px;margin-bottom:12px}.profile-container{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:1rem}.student-home .main-content{background-color:#f5f5f5;min-height:calc(100vh - 80px);padding:2rem}.profile-panel{background-color:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.profile-panel .panel-header{background-color:#04c;color:#fff;padding:1rem;text-align:center;font-weight:700;font-size:1rem}.profile-panel .panel-content{padding:1.5rem;background-color:#fff}.profile-field{margin-bottom:1.5rem}.profile-field:last-child{margin-bottom:0}.profile-label{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;color:#333;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.profile-label .field-icon{font-size:1rem;color:#666}.profile-value{font-size:1rem;color:#333;padding:.75rem;background-color:#fff;border-radius:4px;border:1px solid #e0e0e0;min-height:1.5rem;width:100%;box-sizing:border-box}.profile-loading{text-align:center;padding:3rem;color:#666;font-size:1.1rem}.profile-error{text-align:center;padding:3rem;color:#666}.profile-error p{margin-bottom:1.5rem;font-size:1.1rem}.profile-error .action-button{display:inline-block;width:auto;padding:.8rem 2rem;margin:0}@media (max-width: 1024px){.profile-container{gap:1.25rem}}@media (max-width: 768px){.profile-container{grid-template-columns:1fr;gap:1rem}.profile-panel .panel-content{padding:1rem}.profile-field{margin-bottom:1.25rem}.profile-value{font-size:1rem;padding:.65rem}}@media (max-width: 480px){.profile-panel .panel-content{padding:.9rem}.profile-field{margin-bottom:1rem}.profile-label{font-size:.85rem}.profile-value{font-size:.95rem;padding:.6rem}}.ojt-progress-section{margin-bottom:1.5rem}.ojt-progress-panel{background-color:#f8f9fa;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #00000014}.ojt-progress-panel .panel-header{background-color:#04c;color:#fff;padding:.9rem 1.2rem;text-align:center;font-weight:600;font-size:1.1rem}.ojt-progress-content{display:flex;align-items:center;justify-content:center;gap:3rem;padding:2rem;flex-wrap:wrap}.progress-circle{width:140px;height:140px;border-radius:50%;background:conic-gradient(#04c,#e0e0e0 0%);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;flex-shrink:0}.progress-circle:before{content:"";position:absolute;width:110px;height:110px;background:#f8f9fa;border-radius:50%}.progress-value{font-size:1.8rem;font-weight:700;color:#04c;z-index:1}.progress-label{font-size:.85rem;color:#666;z-index:1}.progress-stats{display:flex;gap:2rem}.stat-item{display:flex;flex-direction:column;align-items:center;padding:1.2rem 2rem;background:#fff;border-radius:8px;min-width:140px;box-shadow:0 1px 3px #00000014}.stat-value{font-size:2rem;font-weight:700;color:#04c}.stat-label{font-size:.9rem;color:#666;text-align:center}.progress-container{margin-top:1rem}.time-records-panel{background-color:#f5f5f5;border-radius:8px;overflow:hidden}.time-records-panel .panel-header{background-color:#04c;color:#fff;padding:.7rem;text-align:center;font-weight:700}.time-records-panel .panel-content{padding:1rem;height:400px;background-color:#eee;position:relative}@media (max-width: 1024px){.time-records-panel .panel-content{height:350px}.ojt-progress-content{gap:2rem}}@media (max-width: 768px){.time-records-panel .panel-content{height:300px}.ojt-progress-content{flex-direction:column;gap:1.5rem;padding:1.5rem}.progress-circle{width:120px;height:120px}.progress-circle:before{width:95px;height:95px}.progress-value{font-size:1.5rem}.progress-stats{gap:1rem}.stat-item{padding:1rem 1.5rem;min-width:120px}.stat-value{font-size:1.6rem}}@media (max-width: 480px){.time-records-panel .panel-content{height:250px}.ojt-progress-content{padding:1rem}.progress-stats{flex-direction:column;width:100%;gap:.75rem}.stat-item{width:100%;min-width:unset}}.attendance-loading{text-align:center;padding:3rem;color:#666;font-size:1.1rem}.attendance-error{text-align:center;padding:3rem;color:#666}.attendance-error p{margin-bottom:1.5rem;font-size:1.1rem}.attendance-error .action-button{display:inline-block;width:auto;padding:.8rem 2rem;margin:0}.attendance-section{margin-top:1rem}.attendance-header{margin-bottom:30px}.attendance-header p{color:#666;font-size:16px;margin:8px 0 0}.attendance-title{font-size:2rem;font-weight:700;margin-bottom:.5rem;color:#333}.attendance-form-container{max-width:600px;margin:0 auto}.attendance-form{background:#fff;border:1px solid #e1e5e9;border-radius:12px;padding:32px;box-shadow:0 2px 8px #0000001a}.form-group{margin-bottom:24px}.time-section{background-color:#f8f9fa;border:1px solid #e1e5e9;border-radius:8px;padding:20px;margin-bottom:20px}.time-section-title{margin:0 0 16px;color:#06c;font-size:18px;font-weight:700;text-align:center;padding-bottom:12px;border-bottom:2px solid #0066cc}.time-fields-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.time-fields-row .form-group{margin-bottom:0}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:#333;font-size:14px}.form-note{color:#666;font-size:14px;font-style:italic;margin:16px 0 24px;padding:12px;background-color:#f8f9fa;border-left:3px solid #0066cc;border-radius:4px}.form-input,.form-select{width:100%;padding:12px 16px;border:2px solid #e1e5e9;border-radius:8px;font-size:16px;transition:border-color .3s ease;box-sizing:border-box}.form-input:focus,.form-select:focus{outline:none;border-color:#06c;box-shadow:0 0 0 3px #0066cc1a}.form-select:disabled{background-color:#f8f9fa;color:#6c757d;cursor:not-allowed;opacity:.6}.time-input-group{display:flex;gap:12px;align-items:center}.time-input{flex:1}.ampm-select{width:80px}.form-actions{margin-top:32px;display:flex;justify-content:center}.submit-button{background-color:#06c;color:#fff;border:none;border-radius:8px;padding:16px 32px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .3s ease;min-width:180px}.submit-button:hover:not(:disabled){background-color:#0052a3}.submit-button:disabled{background-color:#ccc;cursor:not-allowed}@media (max-width: 768px){.attendance-form-container{max-width:100%;padding:0 1rem}.attendance-form{padding:24px}.time-fields-row{grid-template-columns:1fr}}@media (max-width: 480px){.attendance-form{padding:20px}.attendance-title{font-size:1.5rem}}.feedback-loading{text-align:center;padding:3rem;color:#666;font-size:1.1rem}.feedback-error{text-align:center;padding:3rem;color:#666}.feedback-error p{margin-bottom:1.5rem;font-size:1.1rem}.feedback-error .action-button{display:inline-block;width:auto;padding:.8rem 2rem;margin:0}.feedback-section{margin-top:1rem}.feedback-form-container{max-width:600px;margin:0 auto}.feedback-form{background:#fff;border:1px solid #e1e5e9;border-radius:12px;padding:32px;box-shadow:0 2px 8px #0000001a}.feedback-form .form-group{margin-bottom:24px}.feedback-form .form-group label{display:block;margin-bottom:8px;font-weight:600;color:#333;font-size:14px}.feedback-form .form-select{width:100%;padding:12px 16px;border:2px solid #e1e5e9;border-radius:8px;font-size:16px;transition:border-color .3s ease;box-sizing:border-box;background-color:#fff}.feedback-form .form-select:focus{outline:none;border-color:#06c;box-shadow:0 0 0 3px #0066cc1a}.feedback-form .form-select:disabled{background-color:#f8f9fa;color:#6c757d;cursor:not-allowed;opacity:.6}.rating-container{display:flex;align-items:center;gap:8px}.star-button{background:none;border:none;cursor:pointer;padding:4px;font-size:28px;color:#ddd;transition:color .2s ease,transform .2s ease}.star-button:hover{transform:scale(1.1)}.star-button.active{color:#ffc107}.star-button:focus{outline:none}.rating-text{margin-left:12px;font-size:14px;color:#666;font-weight:500}.feedback-form .form-textarea{width:100%;padding:12px 16px;border:2px solid #e1e5e9;border-radius:8px;font-size:16px;font-family:inherit;transition:border-color .3s ease;box-sizing:border-box;resize:vertical;min-height:120px}.feedback-form .form-textarea:focus{outline:none;border-color:#06c;box-shadow:0 0 0 3px #0066cc1a}.feedback-form .form-textarea::placeholder{color:#999}.feedback-form .form-actions{margin-top:32px;display:flex;justify-content:center}.feedback-form .submit-button{background-color:#06c;color:#fff;border:none;border-radius:8px;padding:16px 32px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .3s ease;min-width:180px}.feedback-form .submit-button:hover:not(:disabled){background-color:#0052a3}.feedback-form .submit-button:disabled{background-color:#ccc;cursor:not-allowed}@media (max-width: 768px){.feedback-form-container{max-width:100%;padding:0 1rem}.feedback-form{padding:24px}.star-button{font-size:24px}}@media (max-width: 480px){.feedback-form{padding:20px}.star-button{font-size:22px;padding:2px}.rating-container{flex-wrap:wrap}.rating-text{width:100%;margin-left:0;margin-top:8px}}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:#04c;color:#fff}.sidebar .nav-link{color:#04c;width:100%;text-align:left;padding:.5rem 0;display:flex;align-items:center;gap:.4rem;background:none;border:none;cursor:pointer;font-size:1rem;text-decoration:none}.coordinator-home{min-height:100vh;background-color:#fff;font-family:Arial,sans-serif}@media (max-width: 768px){.logo h1{font-size:1.2rem}.nav-container{padding:.75rem 1rem;position:relative;justify-content:center;max-width:none;width:100%;margin:0}.hamburger-btn{display:block;position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:3rem;text-align:center;line-height:1}.nav-links,.logout-button{display:none!important}}@media (max-width: 480px){.logo h1{font-size:1rem}.nav-container{padding:.6rem .75rem}.nav-links{display:none!important}}.top-nav{background-color:#04c;color:#fff;width:100%}.nav-container{max-width:1200px;margin:0 auto;padding:.8rem 2rem;display:flex;justify-content:flex-start;align-items:center;gap:3rem}.logo{font-size:1.5rem;font-weight:700;transition:font-size .3s ease;margin-right:1rem;margin-bottom:-4px}.logo h1{margin:0;display:flex;align-items:center;gap:0;line-height:1}.logo .location-icon{font-size:.8em;margin:0 1px;position:relative;top:2px;color:#ff6b6b}.logo-highlight{color:#ff6b6b;font-size:1.3rem}.nav-links{display:flex;gap:3rem;flex-grow:1;justify-content:space-between;max-width:800px}.nav-link{color:#fff;text-decoration:none;display:flex;align-items:center;gap:.4rem;font-size:1rem}.nav-icon{font-size:1.2rem}.nav-link.active{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:2px}.logout-button{background:none;border:none;cursor:pointer;font-size:1rem;padding:0;display:flex;align-items:center;color:#ff6b6b;margin-left:auto}.main-content{padding:2rem;max-width:1200px;margin:0 auto}.welcome-section{margin-bottom:2rem;text-align:left;padding-left:1.5rem}.welcome-section h1{font-size:3rem;font-weight:700;margin-bottom:.5rem;line-height:1.1}.welcome-section p{font-size:1rem;color:#333}.dashboard-grid{display:grid;grid-template-columns:1fr 2fr;gap:1.5rem;margin-bottom:2rem}.panel{background-color:#f5f5f5;border-radius:8px;overflow:hidden}.panel-header{background-color:#04c;color:#fff;padding:.7rem;text-align:center;font-weight:700}.panel-content{padding:1.5rem}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.stat-card{background-color:#fff;border-radius:8px;padding:1.2rem;box-shadow:0 2px 4px #0000000d;text-align:center;transition:transform .2s ease,box-shadow .2s ease}.stat-card.clickable{cursor:pointer;background-color:#fff;transition:all .3s ease}.stat-card.clickable:hover{transform:translateY(-5px);background-color:#04c;box-shadow:0 8px 20px #04c6}.stat-card.clickable:hover .stat-number{color:#fff}.stat-card.clickable:hover .stat-label{color:#fffffff2}.stat-number{font-size:2.5rem;font-weight:700;color:#04c;margin-bottom:.5rem}.stat-label{color:#555;font-size:.9rem}.action-button{display:block;width:100%;padding:.8rem;margin-bottom:.8rem;background-color:#04c;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem}.action-button:last-child{margin-bottom:0}.action-button:hover{background-color:#0033a0}.coordinator-title{color:#04c;margin-bottom:.5rem}.welcome-container{background-color:#f9f9f9;border-radius:10px;padding:2rem;margin-bottom:2rem;box-shadow:0 2px 10px #0000000d}.welcome-heading{color:#04c;font-size:2.5rem;margin-bottom:1.5rem;font-weight:700}.welcome-text{margin-bottom:1.5rem}.welcome-message{font-size:1.2rem;margin-bottom:1rem;line-height:1.6;color:#333}.highlight-text{font-weight:700;color:#04c}.welcome-quote{border-left:4px solid #0044cc;padding-left:1rem;margin:1.5rem 0}.welcome-quote blockquote{font-style:italic;font-size:1.1rem;color:#555;margin:0}.welcome-quote cite{display:block;margin-top:.5rem;font-size:.9rem;text-align:right;color:#777}.tasks-panel{height:100%}.trainees-section{background:transparent;margin-bottom:2rem}.trainees-section .coordinator-title{margin-bottom:1.5rem;font-size:1.5rem}.task-item{display:flex;justify-content:space-between;align-items:center;padding:.8rem;background:#fff;border-radius:4px;margin-bottom:.8rem;box-shadow:0 1px 3px #0000000d}.task-item:last-child{margin-bottom:0}.task-info{flex:1}.task-name{font-weight:500;margin-bottom:.2rem}.task-details{color:#666;font-size:.8rem}.task-status{background-color:#e5f0ff;color:#04c;padding:.3rem .6rem;border-radius:12px;font-size:.8rem;font-weight:500}.status-pending{background-color:#fff2e5;color:#ff8c00}.status-completed{background-color:#e5fff2;color:#0c4}.trainee-list{padding:20px;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.tabs{margin-bottom:20px;border-bottom:2px solid #eee;display:flex;align-items:center;gap:10px}.tab-button{padding:10px 20px;margin-right:10px;border:none;background:none;font-size:16px;cursor:pointer;position:relative}.tab-button.active{color:#06c;font-weight:600}.tab-button.active:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:#06c}.trainee-table{width:100%;overflow-x:auto}.trainee-table table{width:100%;border-collapse:collapse}.trainee-table th{text-align:left;padding:12px;border-bottom:2px solid #eee;font-weight:600;color:#333;background-color:#222;color:#fff}.trainee-table td{padding:12px;border-bottom:1px solid #eee}.trainee-table tr:nth-child(2n){background-color:#f9f9f9}.status-badge{padding:4px 8px;border-radius:12px;font-size:14px;font-weight:500}.status-badge.at-risk{background-color:#ffe6e6;color:red}.status-badge.not-at-risk{background-color:#e6f3ff;color:#06c}.status-badge.n-a{background-color:#f5f5f5;color:#666}.progress-container{display:flex;flex-direction:column;width:100%}.progress-bar{height:8px;width:100%;background-color:#e0e0e0;border-radius:4px;margin-bottom:5px;overflow:hidden}.progress-fill{height:100%;background-color:#06c;border-radius:4px}.progress-text{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#333;margin-top:8px}.progress-details,.hours-details{display:flex;align-items:center;gap:6px}.progress-label{color:#666}.progress-value{font-weight:600;color:#06c}.hours-details{color:#666}.hours-completed,.hours-required{font-weight:600;color:#333}.hours-separator{color:#999;margin:0 2px}.hours-label{margin-left:4px;color:#666}.view-button{padding:6px 16px;background-color:#06c;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:500}.view-button:hover{background-color:#05a}.general-view td:nth-child(3){min-width:220px}.no-data-message{text-align:center;padding:30px;color:#666;font-size:16px;background-color:#f9f9f9;border-radius:8px;margin-top:20px;border:2px dashed #ccc}.no-data-message h3{color:#333;margin-bottom:15px}.no-data-message ul{text-align:left;max-width:400px;margin:15px auto;padding-left:20px}.no-data-message li{margin-bottom:8px;color:#555}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-content{background-color:#f2f2f2;border-radius:8px;width:90%;max-width:800px;max-height:90vh;overflow-y:auto;box-shadow:0 5px 15px #0000004d}.trainee-profile{padding:0}.profile-header{background-color:#04c;color:#fff;padding:15px 20px;display:flex;justify-content:center;align-items:center;position:relative}.profile-header h2{margin:0;font-size:1.5rem}.close-button{position:absolute;right:15px;top:15px;background:none;border:none;color:#fff;font-size:24px;cursor:pointer}.profile-info-grid{display:grid;grid-template-columns:repeat(2,1fr);padding:20px;background-color:#fff}.info-field{margin-bottom:10px;padding:10px}.info-field label{display:block;margin-bottom:5px;font-size:.9rem;color:#555}.info-value{background-color:#04c;color:#fff;padding:12px;font-size:1rem;font-weight:500;border-radius:4px}.profile-stats{padding:20px;display:grid;grid-template-columns:150px 1fr;gap:20px;background-color:#fff}.progress-circle{text-align:center}.progress-ring{width:120px;height:120px;display:block;margin:0 auto}.progress-ring-bg{fill:none;stroke:#e0e0e0;stroke-width:4;transform:rotate(-90deg);transform-origin:50% 50%;transform-box:fill-box}.progress-ring-fill{fill:none;stroke:#04c;stroke-width:4;stroke-linecap:round;transition:stroke-dasharray .5s ease;transform:rotate(-90deg);transform-origin:50% 50%;transform-box:fill-box}.progress-text{fill:#04c;font-size:10px;font-weight:700;text-anchor:middle;dominant-baseline:middle;transform:translate(-1px,1px)}.progress-label{margin-top:10px;font-size:.9rem;font-weight:500}.stat-bars{display:flex;flex-direction:column;gap:15px}.stat-item label{display:block;margin-bottom:5px;font-size:.9rem;color:#555}.stat-bar{height:10px;background-color:#e0e0e0;border-radius:5px;overflow:hidden}.stat-bar-fill{height:100%;background-color:#04c}.activity-metrics{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.metric-box{background-color:#f9f9f9;padding:15px;border-radius:6px;display:flex;justify-content:space-between;align-items:center}.metric-label{font-size:.9rem;color:#555}.metric-value{font-size:1.2rem;font-weight:600;color:#04c}.recent-activities{background-color:#f9f9f9;padding:20px}.recent-activities h3{margin-top:0;margin-bottom:15px;font-size:1.2rem;color:#333}.activity-item{background-color:#fff;padding:15px;border-radius:6px;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.time-record{display:flex;flex-direction:column;gap:10px}.time-in,.time-out{display:flex;flex-direction:column}.time-label{font-size:.9rem;color:#555}.time-value{font-size:1rem;color:#333}.activity-date{font-size:.9rem;color:#666}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center}.loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #0066cc;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-container p{color:#666;font-size:16px;margin:0}.stat-value{font-size:.8rem;color:#666;margin-top:4px;text-align:right}.refresh-button{margin-left:auto;padding:8px 16px;background-color:#06c;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500}.refresh-button:hover{background-color:#05a}.department-management-section{padding:20px}.department-header{margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #e5e7eb}.department-title{font-size:1.5rem;font-weight:700;color:#111827;margin:0}.location-management-section{padding:20px}.location-header{margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #e5e7eb}.location-title{font-size:1.5rem;font-weight:700;color:#111827;margin:0;display:flex;align-items:center}.locations-table-container{overflow-x:auto}.locations-table{width:100%;border-collapse:collapse}.locations-table th{text-align:left;padding:12px;border-bottom:2px solid #eee;font-weight:600;background-color:#222;color:#fff}.locations-table td{padding:12px;border-bottom:1px solid #eee;vertical-align:middle}.locations-table tr:nth-child(2n){background-color:#f9f9f9}.locations-table tr:hover{background-color:#f0f7ff}.coordinates-cell{font-family:monospace;font-size:.9rem;line-height:1.5}.coord-label{color:#666;font-weight:500}.location-action-buttons{display:flex;gap:8px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:12px;width:100%;max-width:1200px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 10px 40px #0003}.students-modal{max-width:1400px}.sections-modal{max-width:1600px}.sections-modal .modal-body{padding:16px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid #e5e7eb}.modal-header h2{margin:0;font-size:1.5rem;color:#111827}.close-modal-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6b7280;padding:8px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.close-modal-btn:hover{background-color:#f3f4f6;color:#111827}.modal-body{padding:24px;overflow-y:auto;flex:1}.students-table-container{overflow-x:auto}.students-table{width:100%;border-collapse:collapse;font-size:.95rem}.students-table thead{background-color:#f9fafb;border-bottom:2px solid #e5e7eb}.students-table th{padding:12px 16px;text-align:left;font-weight:600;color:#374151;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.students-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .2s}.students-table tbody tr:hover{background-color:#f9fafb}.students-table td{padding:16px;color:#111827}.department-badge{display:inline-block;padding:6px 12px;background-color:#dbeafe;color:#1d4ed8;border-radius:6px;font-weight:500;font-size:.875rem}.department-select{width:100%;padding:8px 12px;border:2px solid #d1d5db;border-radius:6px;font-size:.875rem;color:#111827;background-color:#fff;cursor:pointer;transition:all .2s ease}.department-select:focus{outline:none;border-color:#4338ca;box-shadow:0 0 0 3px #4338ca1a}.department-select:disabled{background-color:#f3f4f6;cursor:not-allowed;opacity:.6}.supervisor-input{width:100%;padding:8px 12px;border:2px solid #d1d5db;border-radius:6px;font-size:.875rem;color:#111827;background-color:#fff;transition:all .2s ease}.supervisor-input:focus{outline:none;border-color:#4338ca;box-shadow:0 0 0 3px #4338ca1a}.supervisor-input::placeholder{color:#9ca3af}.status-badge{display:inline-block;padding:6px 12px;border-radius:6px;font-weight:600;font-size:.875rem;text-transform:uppercase;letter-spacing:.5px}.status-active{background-color:#d1fae5;color:#065f46}.status-inactive{background-color:#fee2e2;color:#991b1b}.section-group{margin-bottom:32px;background-color:#f9fafb;border-radius:12px;padding:20px;border:1px solid #e5e7eb}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid #e5e7eb}.section-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0}.section-count{background-color:#04c;color:#fff;padding:6px 16px;border-radius:20px;font-size:.875rem;font-weight:600}.compact-table{background-color:#fff;border-radius:8px;overflow:hidden}.compact-table thead{background-color:#f3f4f6}.compact-table th,.compact-table td{padding:12px 16px}.compact-table tbody tr:last-child{border-bottom:none}.risk-section{border-left:4px solid #dc2626}.safe-section{border-left:4px solid #10b981}.risk-title{color:#dc2626}.safe-title{color:#10b981}.risk-count{background-color:#dc2626}.safe-count{background-color:#10b981}.attendance-badge{display:inline-block;padding:6px 12px;border-radius:6px;font-weight:600;font-size:.875rem}.attendance-badge.high{background-color:#d1fae5;color:#065f46}.attendance-badge.low{background-color:#fee2e2;color:#991b1b}.risk-score-badge{display:inline-block;padding:6px 12px;border-radius:6px;font-weight:700;font-size:.875rem}.risk-score-badge.high-risk{background-color:#fecaca;color:#7f1d1d;border:2px solid #dc2626}.risk-score-badge.low-risk{background-color:#bbf7d0;color:#14532d;border:2px solid #16a34a}.empty-state{text-align:center;padding:40px 20px;color:#6b7280;font-size:1.1rem}.empty-state p{margin:0;font-weight:500}.department-input{width:100%;max-width:200px;padding:8px 12px;border:2px solid #4f46e5;border-radius:6px;font-size:.875rem;outline:none;transition:border-color .2s}.department-input:focus{border-color:#4338ca;box-shadow:0 0 0 3px #4f46e51a}.action-buttons{display:flex;gap:8px}.edit-btn,.save-btn,.cancel-btn{padding:8px 12px;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;transition:all .2s;display:flex;align-items:center;justify-content:center}.edit-btn{background-color:#f3f4f6;color:#4b5563}.edit-btn:hover{background-color:#4f46e5;color:#fff}.save-btn{background-color:#10b981;color:#fff}.save-btn:hover{background-color:#059669}.cancel-btn{background-color:#ef4444;color:#fff}.cancel-btn:hover{background-color:#dc2626}@media (max-width: 768px){.modal-content{max-width:95%;max-height:95vh}.modal-header{padding:16px}.modal-header h2{font-size:1.25rem}.modal-body{padding:16px}.students-table{font-size:.875rem}.students-table th,.students-table td{padding:12px 8px}.department-input{max-width:150px;font-size:.8rem}}.feedback-tabs{display:flex;gap:12px;margin-bottom:24px;flex-wrap:wrap}.tab-button{padding:10px 20px;border:2px solid #e1e5e9;border-radius:8px;background:#fff;font-size:14px;font-weight:500;color:#666;cursor:pointer;transition:all .3s ease}.tab-button:hover{border-color:#06c;color:#06c}.tab-button.active{background:#06c;border-color:#06c;color:#fff}.feedback-list-container{margin-top:20px}.loading-state,.empty-state{text-align:center;padding:60px 20px;color:#666}.empty-state .empty-icon{font-size:48px;color:#ddd;margin-bottom:16px}.empty-state h3{margin-bottom:8px;color:#333}.feedback-cards{display:flex;flex-direction:column;gap:16px}.feedback-card{background:#fff;border:1px solid #e1e5e9;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000000d}.feedback-card.student_to_supervisor{border-left:4px solid #10b981}.feedback-card.supervisor_to_student{border-left:4px solid #6366f1}.feedback-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:10px}.feedback-type-badge .badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600}.badge.student{background:#d1fae5;color:#065f46}.badge.supervisor{background:#e0e7ff;color:#3730a3}.feedback-date{font-size:13px;color:#888}.feedback-participants{display:flex;gap:24px;margin-bottom:16px;flex-wrap:wrap}.participant{display:flex;gap:8px}.participant .label{color:#888;font-size:14px}.participant .name{font-weight:600;color:#333;font-size:14px}.feedback-rating{margin-bottom:16px}.stars-display{display:flex;align-items:center;gap:4px}.stars-display .star{font-size:18px}.stars-display .star.filled{color:#ffc107}.stars-display .star.empty{color:#ddd}.rating-value{margin-left:8px;font-size:14px;color:#666;font-weight:500}.feedback-comment{background:#f8f9fa;padding:16px;border-radius:8px}.feedback-comment p{margin:0;font-style:italic;color:#555;line-height:1.6}@media (max-width: 768px){.feedback-tabs{flex-direction:column}.tab-button{width:100%;text-align:center}.feedback-participants{flex-direction:column;gap:8px}}.hamburger-btn{display:none;background:none;border:none;color:#fff;font-size:1.6rem;cursor:pointer}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;opacity:0;pointer-events:none;transition:opacity .2s ease}.backdrop.open{opacity:1;pointer-events:auto}.sidebar{position:fixed;top:0;left:0;height:100vh;width:80%;max-width:320px;background:#fff;box-shadow:2px 0 12px #00000026;transform:translate(-100%);transition:transform .25s ease;z-index:1000;display:flex;flex-direction:column;overflow-y:auto}.sidebar.open{transform:translate(0)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:#06c;color:#fff}.close-btn{background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer}.sidebar-links{display:flex;flex-direction:column;padding:1rem;gap:.75rem;flex:1;min-height:0;overflow-y:auto}.sidebar-footer{padding:1rem;border-top:1px solid #e0e0e0;margin-top:auto;flex-shrink:0;background:#fff;display:block;visibility:visible;min-height:60px}.sidebar .nav-link{color:#06c;width:100%;text-align:left;padding:.5rem 0;display:flex;align-items:center;gap:.4rem;background:none;border:none;cursor:pointer;font-size:1rem;text-decoration:none}.sidebar-logout-button{width:100%;text-align:left;padding:.75rem 0;display:flex!important;align-items:center;gap:.4rem;background:none;border:none;cursor:pointer;font-size:1rem;color:#ff6b6b!important;font-weight:500;font-family:inherit;visibility:visible!important;opacity:1!important}.sidebar-logout-button:hover{opacity:.8}.search-section{padding:20px}.search-container{max-width:800px;margin:0 auto}.search-form{margin-bottom:30px}.search-input-group{display:flex;gap:10px;align-items:center}.search-input{flex:1;padding:12px 16px;border:2px solid #e1e5e9;border-radius:8px;font-size:16px;transition:border-color .3s ease}.search-input:focus{outline:none;border-color:#06c;box-shadow:0 0 0 3px #0066cc1a}.search-button{padding:12px 24px;background-color:#06c;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .3s ease}.search-button:hover:not(:disabled){background-color:#0052a3}.search-button:disabled{background-color:#ccc;cursor:not-allowed}.search-results{margin-top:20px}.student-info-card{background:#fff;border:1px solid #e1e5e9;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a}.student-info-card h4{margin:0 0 20px;color:#333;font-size:20px;font-weight:600}.student-details{display:grid;gap:12px;margin-bottom:24px}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #f0f0f0}.detail-row:last-child{border-bottom:none}.detail-label{font-weight:600;color:#555;min-width:150px}.detail-value{color:#333;text-align:right}.student-actions{display:flex;gap:12px;justify-content:flex-end}.add-student-button{display:flex;align-items:center;gap:8px;padding:12px 24px;background-color:#28a745;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .3s ease}.add-student-button:hover{background-color:#218838}.clear-button{padding:12px 24px;background-color:#6c757d;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .3s ease}.clear-button:hover{background-color:#5a6268}.button-icon{font-size:14px}.no-results{text-align:center;padding:40px 20px;color:#666}.no-results p{margin:8px 0;font-size:16px}.students-section{padding:20px}.students-header{margin-bottom:30px}.office-info{color:#666;font-size:16px;margin-top:12px}.office-info strong{color:#06c;font-weight:600}.add-student-section{background:#f8f9fa;border:1px solid #e1e5e9;border-radius:12px;padding:24px;margin-bottom:30px}.add-student-section .search-form{margin-bottom:0}.students-overview{padding:20px 0}.students-list{margin-top:16px}.student-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f8f9fa;border-radius:8px;margin-bottom:8px}.student-name{font-weight:600;color:#333}.student-progress{color:#06c;font-weight:600;font-size:14px}.more-students{text-align:center;color:#666;font-style:italic;margin-top:8px}.action-button{display:flex;align-items:center;gap:8px;padding:12px 20px;background-color:#06c;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background-color .3s ease;margin:4px}.action-button:hover{background-color:#0052a3}.action-icon{font-size:14px}.action-buttons{display:flex;gap:8px;align-items:center}.view-button{padding:8px 16px;background-color:#06c;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:background-color .3s ease}.view-button:hover{background-color:#0052a3}.delete-button{padding:8px 12px;background-color:#dc3545;color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:background-color .3s ease;display:flex;align-items:center;gap:4px}.delete-button:hover{background-color:#c82333}.delete-button .button-icon{font-size:12px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.delete-confirm-modal{background:#fff;border-radius:12px;box-shadow:0 10px 30px #0000004d;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e1e5e9}.modal-header h3{margin:0;color:#333;font-size:20px;font-weight:600}.close-button{background:none;border:none;font-size:24px;color:#666;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .3s ease}.close-button:hover{background-color:#f0f0f0}.modal-body{padding:24px}.modal-body p{margin:0 0 16px;color:#333;font-size:16px;line-height:1.5}.warning-text{color:#dc3545;font-weight:600;background-color:#f8d7da;padding:12px;border-radius:6px;border:1px solid #f5c6cb}.modal-actions{display:flex;gap:12px;justify-content:flex-end;padding:20px 24px;border-top:1px solid #e1e5e9}.cancel-button{padding:12px 24px;background-color:#6c757d;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .3s ease}.cancel-button:hover{background-color:#5a6268}.confirm-delete-button{display:flex;align-items:center;gap:8px;padding:12px 24px;background-color:#dc3545;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .3s ease}.confirm-delete-button:hover{background-color:#c82333}.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}@media (max-width: 768px){.top-nav .nav-container{display:flex;align-items:center;justify-content:center;gap:0;position:relative;padding:.75rem 1rem;max-width:none;width:100%;margin:0}.hamburger-btn{display:block;position:absolute;left:.75rem;top:50%;transform:translateY(-50%);line-height:1;width:3rem;text-align:center}.logo h1{text-align:center}.top-nav .logo{padding-left:4rem}.top-nav .nav-links,.top-nav .logout-button{display:none!important}.search-input-group{flex-direction:column;align-items:stretch}.search-button{width:100%}.student-actions{flex-direction:column}.add-student-button,.clear-button{width:100%;justify-content:center}.detail-row{flex-direction:column;align-items:flex-start;gap:4px}.detail-value{text-align:left}.quick-actions{grid-template-columns:1fr}.action-buttons{flex-direction:column;gap:4px}.view-button,.delete-button{width:100%;justify-content:center}.modal-actions{flex-direction:column}.cancel-button,.confirm-delete-button{width:100%;justify-content:center}.attendance-form{padding:20px}.time-input-group{flex-direction:column;align-items:stretch}.ampm-select,.submit-button{width:100%}.time-fields-row{grid-template-columns:1fr}}.supervisor-home .feedback-loading{text-align:center;padding:3rem;color:#666;font-size:1.1rem}.supervisor-home .feedback-error{text-align:center;padding:3rem;color:#666}.supervisor-home .feedback-error p{margin-bottom:1.5rem;font-size:1.1rem}.supervisor-home .feedback-error .action-button{display:inline-block;width:auto;padding:.8rem 2rem;margin:0;background-color:#06c;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .3s ease}.supervisor-home .feedback-error .action-button:hover{background-color:#0052a3}.supervisor-home .office-info{color:#666;font-size:1rem;margin-top:.5rem}.supervisor-home .feedback-section{margin-top:1rem}.supervisor-home .feedback-form-container{max-width:600px;margin:0 auto}.supervisor-home .feedback-form{background:#fff;border:1px solid #e1e5e9;border-radius:12px;padding:32px;box-shadow:0 2px 8px #0000001a}.supervisor-home .feedback-form .form-group{margin-bottom:24px}.supervisor-home .feedback-form .form-group label{display:block;margin-bottom:8px;font-weight:600;color:#333;font-size:14px}.supervisor-home .feedback-form .form-select{width:100%;padding:12px 16px;border:2px solid #e1e5e9;border-radius:8px;font-size:16px;transition:border-color .3s ease;box-sizing:border-box;background-color:#fff}.supervisor-home .feedback-form .form-select:focus{outline:none;border-color:#06c;box-shadow:0 0 0 3px #0066cc1a}.supervisor-home .feedback-form .form-select:disabled{background-color:#f8f9fa;color:#6c757d;cursor:not-allowed;opacity:.6}.supervisor-home .rating-container{display:flex;align-items:center;gap:8px}.supervisor-home .star-button{background:none;border:none;cursor:pointer;padding:4px;font-size:28px;color:#ddd;transition:color .2s ease,transform .2s ease}.supervisor-home .star-button:hover{transform:scale(1.1)}.supervisor-home .star-button.active{color:#ffc107}.supervisor-home .star-button:focus{outline:none}.supervisor-home .rating-text{margin-left:12px;font-size:14px;color:#666;font-weight:500}.supervisor-home .feedback-form .form-textarea{width:100%;padding:12px 16px;border:2px solid #e1e5e9;border-radius:8px;font-size:16px;font-family:inherit;transition:border-color .3s ease;box-sizing:border-box;resize:vertical;min-height:120px}.supervisor-home .feedback-form .form-textarea:focus{outline:none;border-color:#06c;box-shadow:0 0 0 3px #0066cc1a}.supervisor-home .feedback-form .form-textarea::placeholder{color:#999}.supervisor-home .feedback-form .form-actions{margin-top:32px;display:flex;justify-content:center}.supervisor-home .feedback-form .submit-button{background-color:#06c;color:#fff;border:none;border-radius:8px;padding:16px 32px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .3s ease;min-width:180px}.supervisor-home .feedback-form .submit-button:hover:not(:disabled){background-color:#0052a3}.supervisor-home .feedback-form .submit-button:disabled{background-color:#ccc;cursor:not-allowed}@media (max-width: 768px){.supervisor-home .feedback-form-container{max-width:100%;padding:0 1rem}.supervisor-home .feedback-form{padding:24px}.supervisor-home .star-button{font-size:24px}}@media (max-width: 480px){.supervisor-home .feedback-form{padding:20px}.supervisor-home .star-button{font-size:22px;padding:2px}.supervisor-home .rating-container{flex-wrap:wrap}.supervisor-home .rating-text{width:100%;margin-left:0;margin-top:8px}}.attendance-approval-section{padding:20px}.attendance-header{margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #e5e7eb}.attendance-subtitle{color:#666;font-size:.95rem;margin-top:8px}.attendance-requests-container{overflow-x:auto}.attendance-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}.attendance-table th{text-align:left;padding:14px 12px;border-bottom:2px solid #eee;font-weight:600;background-color:#222;color:#fff}.attendance-table td{padding:14px 12px;border-bottom:1px solid #eee;vertical-align:middle}.attendance-table tr:nth-child(2n){background-color:#f9f9f9}.attendance-table tr:hover{background-color:#f0f7ff}.request-type-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:.85rem;font-weight:500}.request-type-badge.time-in{background-color:#d4edda;color:#155724}.request-type-badge.time-out{background-color:#cce5ff;color:#004085}.date-time-cell{display:flex;flex-direction:column;gap:2px}.date-time-cell .date{font-weight:500;color:#333}.date-time-cell .time{font-size:.9rem;color:#666}.reason-cell{max-width:200px;font-size:.9rem;color:#555}.submitted-cell{font-size:.85rem;color:#666;white-space:nowrap}.approval-action-buttons{display:flex;gap:8px}.approve-btn{display:flex;align-items:center;gap:4px;padding:6px 12px;background-color:#10b981;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;font-weight:500;transition:background-color .2s}.approve-btn:hover{background-color:#059669}.reject-btn{display:flex;align-items:center;gap:4px;padding:6px 12px;background-color:#ef4444;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;font-weight:500;transition:background-color .2s}.reject-btn:hover{background-color:#dc2626}@media (max-width: 768px){.attendance-table th,.attendance-table td{padding:10px 8px;font-size:.9rem}.approval-action-buttons{flex-direction:column;gap:4px}.approve-btn,.reject-btn{padding:6px 8px;font-size:.8rem}.reason-cell{max-width:120px}}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
