@import url(https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap);.login-container{align-items:center;background:radial-gradient(circle at top right,#14b8a62e,#0000 28%),linear-gradient(160deg,#0f766e,#115e59 42%,#0b3d3a);display:flex;font-family:var(--portal-font);justify-content:center;min-height:100vh;min-height:100dvh;padding:1rem}.login-card{background:#fffffffa;border:1px solid #ffffff80;border-radius:18px;box-shadow:0 24px 60px #07282547;box-sizing:border-box;max-width:420px;padding:2rem 1.5rem;width:100%}.login-header{margin-bottom:1.5rem;text-align:center}.logo{align-items:center;display:flex;justify-content:center;margin-bottom:.75rem}.logo-title{color:var(--portal-ink);font-size:1.45rem;font-weight:700;letter-spacing:-.03em;margin:0}.logo-img{max-height:56px;width:auto}.subtitle{color:var(--portal-muted);font-size:.9rem;line-height:1.4;margin:.35rem 0 0}.login-form{display:flex;flex-direction:column;gap:1.1rem}.form-group{gap:.45rem}.form-group label{color:var(--portal-ink);font-size:.86rem;font-weight:600;text-align:left}.input-wrapper{display:block;position:relative;width:100%}.input-icon{color:var(--portal-muted);left:1rem;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.form-group input{background:#fbfcfc;border:1px solid var(--portal-border);border-radius:12px;box-sizing:border-box;color:var(--portal-ink);font-family:inherit;font-size:16px;padding:.95rem 1rem .95rem 2.8rem;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.form-group input:focus{background:#fff;border-color:var(--portal-primary);box-shadow:0 0 0 3px #0f766e26;outline:none}.password-toggle{background:none;border:none;color:var(--portal-muted);cursor:pointer;padding:.25rem;position:absolute;right:.85rem;top:50%;transform:translateY(-50%)}.login-btn{background:var(--portal-primary);border:none;border-radius:12px;color:#fff;cursor:pointer;font-family:inherit;font-size:.98rem;font-weight:700;padding:.95rem 1.25rem;transition:background .2s ease}.login-btn:hover:not(:disabled){background:var(--portal-primary-dark)}.login-btn:disabled{cursor:not-allowed;opacity:.55}.error-message{background:var(--portal-danger-soft);border:1px solid #f3c1bc;border-radius:10px;color:var(--portal-danger);font-size:.88rem;padding:.8rem .95rem}@media (max-width:480px){.login-card{border-radius:16px;padding:1.5rem 1.15rem}}.parent-dashboard{background:#f8fafc;display:flex;flex-direction:column;height:100vh;overflow:hidden;width:100vw}.top-navbar{box-shadow:0 2px 8px #00000026;color:#fff;justify-content:space-between;padding:.4rem .8rem}.header-actions,.top-navbar{align-items:center;display:flex}.header-actions{gap:.5rem}.header-refresh-btn{background:#fff3;border:1px solid #fff6;border-radius:8px;color:#fff;cursor:pointer;padding:.5rem .75rem;transition:all .2s ease}.header-refresh-btn:hover{background:#ffffff4d;transform:translateY(-1px)}.welcome-section{display:flex;flex-direction:column;text-align:left}.welcome-section h2{font-size:1.1rem;font-weight:600;margin:0}.today-label{color:#fff;font-size:.8rem;font-weight:500}.current-date,.current-time{color:#fff;font-size:.8rem;font-weight:400}.header-logout-btn{background:none;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;padding:.3rem;transition:color .2s}.header-logout-btn:hover{color:#e5e7eb}.main-content{background:#fff;box-sizing:border-box;flex:1 1;overflow-y:auto;padding:1rem 1rem 80px}.children-list h2{color:#111827;font-weight:600;margin-bottom:1.5rem}.child-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 4px 12px #00000014;margin-bottom:1.5rem;padding:1.5rem;width:100%}.child-info h3{color:#111827;font-size:1.25rem;font-weight:600;margin:0 0 .5rem}.child-info p{color:#6b7280;margin:0 0 1rem}.device-info{border-radius:8px;margin:0;padding:.5rem}.device-info h4{font-size:1rem;font-weight:600;margin:0 0 1rem}.device-grid{display:flex;flex-direction:column;gap:.5rem}.device-item{align-items:center;background:#fff;border-radius:4px;display:flex;justify-content:space-between;padding:.5rem}.device-item .label{color:#374151;font-weight:500}.device-item .value{color:#1e293b;font-weight:600}.status-online{color:#16a34a!important}.status-offline{color:#dc2626!important}.status-inactive{color:#e53e3e!important}.child-actions{display:flex;gap:.5rem;margin-top:0}.history-btn,.track-btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;flex:1 1;font-size:.9rem;font-weight:500;gap:.5rem;justify-content:center;min-height:44px;padding:.75rem .5rem;transition:background .2s}.history-btn{background:#f3f4f6;border:1px solid #d1d5db;color:#374151}.history-btn:hover{background:#e5e7eb}.content-section{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:2rem}.content-section h2{color:#2d3748;margin:0 0 1rem}.content-section p{color:#6b7280;margin:0}.profile-section{background:#fff;border-radius:0;box-shadow:none;padding:1rem}.profile-section h2{color:#111827;font-weight:600;margin:0 0 1.5rem}.kid-selector{margin-bottom:2rem}.kid-selector label{color:#374151;display:block;font-weight:500;margin-bottom:.5rem}.kid-dropdown{background:#fff;border:2px solid #e5e7eb;border-radius:0;font-size:1rem;max-width:300px;padding:.75rem;width:100%}.kid-dropdown:focus{border-color:#764ba2!important;border-color:var(--parent-secondary)!important;box-shadow:0 0 0 3px #667eea2e!important;box-shadow:0 0 0 3px var(--parent-focus-ring)!important;outline:none!important}.profile-section .kid-details,.profile-section .update-form{max-width:none!important;width:100%!important}.profile-form{border-top:1px solid #e5e7eb;padding-top:2rem}.kid-details{background:#fff;border:none;border-radius:0;margin-bottom:1rem;padding:0}.kid-details h3{color:#111827;font-size:1.25rem;margin:0 0 .5rem}.kid-details p{color:#6b7280;margin:0}.update-form{display:flex;flex-direction:column;gap:1.5rem}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{color:#374151;font-size:.9rem;font-weight:500}.form-group input{border:2px solid #e5e7eb;border-radius:0;font-size:1rem;padding:.75rem;transition:border-color .2s}.form-group input:focus{background:#fff!important;border-color:#764ba2!important;border-color:var(--parent-secondary)!important;box-shadow:0 0 0 3px #667eea2e!important;box-shadow:0 0 0 3px var(--parent-focus-ring)!important;outline:none!important}.update-btn{background:linear-gradient(135deg,#667eea,#764ba2);background:var(--parent-gradient-135);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 2rem;transition:all .3s ease;width:100%}.update-btn:hover{box-shadow:0 10px 20px #667eea47;transform:translateY(-2px)}.subscription-section{background:#fff;border-radius:0;box-shadow:none;padding:1rem}.subscription-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.subscription-header h2{color:#111827;font-weight:600;margin:0}.no-subscriptions{color:#6b7280;padding:3rem;text-align:center}.no-subscriptions p{font-size:1.1rem;margin-bottom:1.5rem}.purchase-btn{background:linear-gradient(135deg,#667eea,#764ba2);background:var(--parent-gradient-135);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:1rem 2rem;transition:all .3s ease}.purchase-btn:hover{box-shadow:0 10px 20px #667eea47;transform:translateY(-2px)}.subscriptions-list{display:flex;flex-direction:column;gap:1.5rem}.subscription-card{background:#fff;border:none;border-radius:0;padding:0;transition:none}.subscription-card:hover{box-shadow:none}.subscription-info{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:1.5rem}.tracker-details h3{color:#111827;font-size:1.2rem;margin:0 0 .5rem}.device-type{color:#6b7280;font-size:.9rem;margin:0}.plan-details h4{font-size:1.1rem;font-weight:600;margin:0 0 1rem}.plan-info{display:flex;flex-direction:column;gap:.5rem}.info-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:6px;display:flex;justify-content:space-between;padding:.5rem}.info-item .label{color:#374151;font-size:.9rem;font-weight:500}.info-item .value{color:#111827;font-weight:600}.status-active{color:#764ba2!important;color:var(--parent-secondary)!important}.status-expired{color:#dc2626!important}.status-cancelled{color:#9ca3af!important}.expiring{color:#f59e0b!important;font-weight:700!important}.subscription-actions{display:flex;flex-direction:column;gap:.75rem;width:100%}.download-invoice-btn,.renew-btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.5rem;justify-content:center;padding:.75rem 1.25rem;transition:all .2s;width:100%}.download-invoice-btn{background:#f3f4f6;border:1px solid #d1d5db;color:#374151}.download-invoice-btn:hover{background:#e5e7eb}.renew-btn{background:linear-gradient(135deg,#667eea,#764ba2);background:var(--parent-gradient-135);color:#fff}.renew-btn:hover{box-shadow:0 5px 15px #667eea47;transform:translateY(-1px)}.popup-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.renewal-popup{background:#fff;border-radius:12px;box-shadow:0 10px 30px #0000004d;max-height:80vh;max-width:500px;overflow-y:auto;width:90%}.popup-header{border-bottom:1px solid #e5e7eb;padding:1.5rem}.popup-header h3{font-size:1.2rem;margin:0}.close-btn{background:none;color:#6b7280;height:30px;padding:0;width:30px}.close-btn:hover{color:#374151}.payment-section,.plan-selection,.processing-section{padding:1.5rem}.sticky-actions{background:#fff;bottom:0;padding-top:1rem;position:-webkit-sticky;position:sticky}.payment-section h4,.plan-selection h4{color:#111827;margin:0 0 1rem}.plans-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.plan-option{border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;padding:1rem;transition:all .2s}.plan-info h5{color:#111827;font-size:1rem;margin:0 0 .5rem}.plan-info p{color:#6b7280;font-size:.9rem;margin:0 0 .5rem}.plan-price{align-items:center;display:flex;gap:.5rem}.plan-price .price{font-size:1.1rem;font-weight:600}.plan-price .duration{color:#6b7280;font-size:.9rem}.pay-btn,.proceed-btn{background:linear-gradient(135deg,#667eea,#764ba2);background:var(--parent-gradient-135);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem;transition:all .3s ease;width:100%}.pay-btn:hover,.proceed-btn:hover{box-shadow:0 10px 20px #667eea47;transform:translateY(-2px)}.payment-summary{background:#f9fafb;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.summary-item{display:flex;justify-content:space-between;margin-bottom:.5rem}.summary-item.total{border-top:1px solid #e5e7eb;font-size:1.1rem;font-weight:600;padding-top:.5rem}.payment-method{background:#f0f9ff;border-radius:8px;margin-bottom:1.5rem;padding:1rem;text-align:center}.payment-method h5{margin:0 0 .5rem}.payment-method p{color:#6b7280;font-size:.9rem;margin:0}.processing-section{padding:2rem;text-align:center}.spinner-large{animation:spin 1s linear infinite;border:4px solid #e5e7eb;border-radius:50%;border-top-color:#764ba2;height:3rem;margin:0 auto 1rem;width:3rem}.processing-section h4{color:#111827;margin:0 0 .5rem}.processing-section p{color:#6b7280;margin:0 0 .5rem}.processing-note{color:#f59e0b;font-size:.8rem;font-weight:500}.subscription-card.no-subscription{background:#fffbeb;border-left-color:#f59e0b}.child-name{color:#374151;font-size:.9rem;font-weight:500;margin:.25rem 0 0}.no-subscription-info{background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;padding:1rem;text-align:center}.no-subscription-info h4{color:#92400e;font-size:1rem;margin:0 0 .5rem}.no-subscription-info p{color:#a16207;font-size:.9rem;margin:0}.purchase-subscription-btn{align-items:center;background:#f59e0b;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.5rem;justify-content:center;padding:.75rem 1.25rem;transition:all .2s;width:100%}.purchase-subscription-btn:hover{background:#d97706}.bottom-navbar{border-top:1px solid #e5e7eb;bottom:0;box-shadow:0 -2px 10px #0000001a;display:flex;justify-content:space-around;left:0;padding:.1rem 0;position:fixed;right:0}.nav-item{align-items:center;background:none;border:none;border-radius:8px;color:#fffc;cursor:pointer;display:flex;flex-direction:column;gap:.25rem;min-width:60px;padding:.5rem;transition:all .3s ease}.nav-item:hover{background:#ffffff1a}.nav-item.active{background:none;color:#87ceeb}.nav-icon{color:#fffc;font-size:1.2rem}.nav-item.active .nav-icon{color:#87ceeb}.nav-label{color:#fffc;font-size:.75rem;font-weight:500}.nav-item.active .nav-label{color:#87ceeb}.child-record{border-bottom:1px solid #e5e7eb;margin-bottom:1rem;padding-bottom:1rem}.child-record:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.child-record .child-actions,.child-record .child-info,.child-record .device-info{padding-top:1rem}.child-record .child-info:first-child{padding-top:0}.history-map-popup{background:#fff;border-radius:0;box-shadow:none;height:100%;left:0;max-height:none;max-width:none;overflow:hidden;position:fixed;top:0;width:100%;z-index:999}.history-map-popup .popup-header{align-items:center;border-radius:0;display:flex;justify-content:space-between;padding:1rem 1.5rem}.history-map-popup .popup-header h3{color:#fff;font-size:1.1rem;font-weight:600;margin:0}.history-map-popup .close-btn{align-items:center;background:#ffffff26;border:1px solid #ffffff4d;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.1rem;height:30px;justify-content:center;transition:all .3s ease;width:30px}.history-map-popup .close-btn:hover{background:#ffffff40;transform:scale(1.05)}.history-map{height:calc(100vh - 80px);overflow:hidden;padding:0}.route-info{border-radius:8px;margin-bottom:1rem;min-height:60px;padding:1rem}.route-info h4{font-size:1rem;margin:0 0 .5rem}.route-info p{font-size:.9rem;margin:.25rem 0;opacity:.9}.interactive-map{border-radius:8px;box-shadow:0 4px 12px #0000001a;margin-bottom:1.5rem;overflow:hidden}.route-timeline{background:#fff;border-radius:8px;padding:1rem}.route-timeline h4{font-size:1rem;margin:0 0 1rem}.timeline-container{position:relative}.timeline-point{cursor:pointer;display:flex;margin-bottom:1rem;transition:all .3s ease}.timeline-point:hover{transform:translateX(3px)}.timeline-point.selected .timeline-content{background:#764ba20f;border-color:#764ba2;border-color:var(--parent-secondary)}.timeline-marker{align-items:center;display:flex;flex-direction:column;margin-right:1rem;position:relative}.marker-dot{border:3px solid #fff;border-radius:50%;box-shadow:0 2px 8px #764ba24d;height:12px;width:12px;z-index:2}.marker-line{background:linear-gradient(180deg,#667eea,#e2e8f0);background:linear-gradient(to bottom,var(--parent-primary),#e2e8f0);height:40px;margin-top:4px;width:2px}.timeline-content{background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 2px 4px #0000000d;flex:1 1;padding:.75rem;transition:all .3s ease}.timeline-time{font-size:.9rem;font-weight:600;margin-bottom:.25rem}.timeline-location{color:#64748b;font-size:.85rem;margin-bottom:.5rem}.timeline-details{grid-gap:.5rem;border-top:1px solid #e2e8f0;display:grid;gap:.5rem;margin-top:.75rem;padding-top:.75rem}.detail-item{align-items:center;display:flex;font-size:.8rem;justify-content:space-between}.detail-item span:first-child{color:#64748b;font-weight:500}.detail-item span:last-child{color:#374151;font-family:monospace;font-weight:600}.no-history{color:#64748b;padding:3rem;text-align:center}.no-history h4{color:#374151;margin:0 0 .5rem}.no-history p{font-size:.9rem;margin:0}.subscription-record{border-bottom:2px solid #d1d5db;margin-bottom:1.5rem;padding-bottom:1.5rem}.subscription-record:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}:root{--parent-primary:#667eea;--parent-secondary:#764ba2;--parent-gradient-90:linear-gradient(90deg,var(--parent-primary) 0%,var(--parent-secondary) 100%);--parent-gradient-135:linear-gradient(135deg,var(--parent-primary) 0%,var(--parent-secondary) 100%);--parent-focus-ring:#667eea2e;--parent-border:#764ba259}.date-input,.form-group input,.form-group select,.form-select,.kid-dropdown,.time-input{background:#f8fafc;border:2px solid #e5e7eb;border-radius:12px}.date-input:focus,.form-group input:focus,.form-group select:focus,.form-select:focus,.kid-dropdown:focus,.time-input:focus{background:#fff;border-color:#764ba2;border-color:var(--parent-secondary);box-shadow:0 0 0 3px #667eea2e;box-shadow:0 0 0 3px var(--parent-focus-ring);outline:none}.pay-btn,.proceed-btn,.purchase-btn,.update-btn,.view-history-btn{background:linear-gradient(135deg,#667eea,#764ba2);background:var(--parent-gradient-135);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .3s ease}.pay-btn:hover,.proceed-btn:hover,.purchase-btn:hover,.update-btn:hover,.view-history-btn:hover{box-shadow:0 10px 20px #667eea47;transform:translateY(-2px)}.plan-option.selected{background:#764ba20f}.plan-option.selected,.plan-option:hover{border-color:#764ba2;border-color:var(--parent-secondary)}.payment-method h5,.plan-details h4,.plan-price .price{color:#764ba2;color:var(--parent-secondary)}.bottom-navbar,.top-navbar{background:linear-gradient(90deg,#667eea,#764ba2);background:var(--parent-gradient-90)}.track-btn{background:linear-gradient(135deg,#667eea,#764ba2);background:var(--parent-gradient-135);border-radius:12px;color:#fff}.track-btn:hover{background:linear-gradient(135deg,#5a71e6,#6f449c);transform:translateY(-1px)}button{border-radius:12px}button[style*=background]{border-radius:12px}.popup-header,button[style*=background]{background:linear-gradient(135deg,#667eea,#764ba2);background:var(--parent-gradient-135)}.history-map-popup .popup-header,.route-info{background:linear-gradient(135deg,#667eea,#764ba2);background:var(--parent-gradient-135);color:#fff}.route-timeline h4,.timeline-time{color:#764ba2;color:var(--parent-secondary)}.marker-dot{background:#764ba2;background:var(--parent-secondary)}.spinner-large{border-top:4px solid #764ba2;border-top:4px solid var(--parent-secondary)}.popup-header h3{color:#fff}.refresh-btn{background:linear-gradient(135deg,#667eea,#764ba2);background:var(--parent-gradient-135);border:none;border-radius:12px;font-weight:600}.refresh-btn:hover{box-shadow:0 5px 15px #667eea47;transform:translateY(-1px)}.device-info{background:linear-gradient(135deg,#667eea1a,#764ba21a);border:1px solid #764ba259;border:1px solid var(--parent-border)}.device-info h4{color:#764ba2;color:var(--parent-secondary)}.popup-footer{background:linear-gradient(135deg,#667eea,#764ba2);background:var(--parent-gradient-135);bottom:0;display:flex;gap:1rem;left:0;padding:1rem;position:fixed;right:0;z-index:1002}.footer-btn{background:#fff3;border:1px solid #fff;border-radius:12px;color:#fff;cursor:pointer;flex:1 1;font-weight:600;padding:.75rem;transition:all .3s ease}.footer-btn:hover{background:#ffffff4d;transform:translateY(-1px)}.subscription-action{margin:1rem 0;text-align:center}.subscription-btn{align-items:center;background:linear-gradient(135deg,#667eea33,#764ba233);border:none;border-radius:12px;color:#1f2a5a;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:.5rem;justify-content:center;padding:.75rem 1.5rem;transition:all .3s ease;width:100%}.subscription-btn:hover{background:linear-gradient(135deg,#667eea47,#764ba247);box-shadow:0 5px 15px #667eea38;transform:translateY(-1px)}.history-popup{background:#fff;border:1px solid #215f9a1a;border-radius:16px;box-shadow:0 20px 40px #0003;max-height:90vh;max-width:400px;overflow:hidden;padding:0;position:relative;width:90%;z-index:999}.history-popup .popup-header{align-items:center;background:linear-gradient(135deg,#215f9a,#4e95d9);border-radius:16px 16px 0 0;box-shadow:0 2px 10px #215f9a33;color:#fff;display:flex;justify-content:space-between;padding:.75rem 1rem}.history-popup .popup-header h3{font-size:1.1rem;font-weight:600;margin:0}.history-popup .close-btn{align-items:center;background:#ffffff26;border:1px solid #ffffff4d;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.1rem;height:30px;justify-content:center;transition:all .3s ease;width:30px}.history-popup .close-btn:hover{background:#ffffff40;border-color:#ffffff80;transform:scale(1.05)}.history-popup .child-info{background:#fafbfc;border-bottom:1px solid #e2e8f0;padding:.75rem 1rem .5rem;text-align:center}.history-popup .child-info h4{color:#1a202c;font-size:1rem;font-weight:600;margin:0 0 .25rem}.history-popup .child-info p{color:#64748b;font-size:.85rem;font-weight:500;margin:0}.datetime-form{background:#fff;display:flex;flex-direction:column;gap:.5rem;padding:1rem 1.25rem 1.5rem}.datetime-section{background:#f5f7fb;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:.75rem;padding:.75rem}.datetime-section h4{display:none}.datetime-row{display:flex;flex-direction:row;gap:.75rem}.date-group,.time-group{flex:1 1;position:relative;z-index:1000}.date-group label,.time-group label{display:none}.date-input,.time-input{background:#fff;border:2px solid #e2e8f0;border-radius:8px;box-sizing:border-box;font-size:.95rem;min-height:38px;padding:.55rem .75rem;transition:all .3s ease;width:100%}.date-input:focus,.time-input:focus{border-color:#215f9a;box-shadow:0 0 0 4px #215f9a26;outline:none;transform:translateY(-1px)}@media (max-width:480px){.history-popup{margin:1rem;max-width:none;width:98%}.datetime-form{padding:1rem}.datetime-row{flex-direction:column}.datetime-input{font-size:16px}}.datetime-group label{color:#2d3748;display:block;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.datetime-input{border:2px solid #e2e8f0;border-radius:8px;box-sizing:border-box;font-size:.9rem;min-height:44px;padding:.75rem;position:relative;transition:border-color .3s;width:100%;z-index:1001}.datetime-input::-webkit-calendar-picker-indicator{position:relative;z-index:1002}.datetime-group{margin-bottom:1.5rem;position:relative;z-index:1000}.popup-overlay{overflow:visible}.datetime-input:focus{border-color:#215f9a;box-shadow:0 0 0 3px #215f9a1a;outline:none}.view-history-btn{background:linear-gradient(135deg,#215f9a,#4e95d9);border:none;border-radius:8px;box-shadow:0 4px 12px #215f9a4d;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:.5rem;padding:1rem;transition:all .3s ease;width:100%}.view-history-btn:hover{background:linear-gradient(135deg,#1e40af,#215f9a);box-shadow:0 10px 30px #215f9a66;transform:translateY(-3px)}.close-btn--inline{background:#f8fafc;border:1px solid #d5dbea;border-radius:8px;color:#1f2937;cursor:pointer;font-size:.95rem;font-weight:600;margin-top:.5rem;padding:.85rem;transition:all .2s ease;width:100%}.close-btn--inline:hover{background:#edf2fb;border-color:#c7d2fe;color:#111827}.location-popup-overlay{align-items:center;background:#000c;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.location-popup{background:#fff;display:flex;flex-direction:column;height:100vh;overflow:hidden;width:100vw}.popup-header{align-items:center;background:linear-gradient(135deg,#215f9a,#4e95d9);box-shadow:0 2px 10px #0000001a;color:#fff;display:flex;justify-content:space-between;padding:12px}.popup-header h2{font-size:1rem;font-weight:600;margin:0}.close-btn{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.5rem;height:40px;justify-content:center;transition:background .3s ease;width:40px}.close-btn:hover{background:#ffffff4d}.popup-content{flex:1 1;gap:0;overflow-y:auto;padding:0 30px}.loading-section,.popup-content{display:flex;flex-direction:column}.loading-section{align-items:center;gap:20px;height:100%;justify-content:center}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#215f9a;height:50px;width:50px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.location-info{display:flex;flex:1 1;flex-direction:column;position:relative}.map-container{border-radius:15px;box-shadow:0 10px 30px #0003;flex:1 1;min-height:400px;overflow:hidden;position:relative;width:100%}.location-overlay{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:10px;bottom:15px;box-shadow:0 5px 15px #0000001a;left:15px;padding:15px;position:absolute;right:15px;z-index:5}.coordinates{color:#2c3e50;font-family:Courier New,monospace;font-size:.9rem;font-weight:600;margin:0 0 8px}.address{color:#7f8c8d;font-size:.85rem;line-height:1.4;margin:0}.time-info{background:#f8f9fa;border:1px solid #e9ecef;border-radius:10px;margin-top:0;padding:10px 15px}.time-row{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:center;padding:5px 0}.time-row:last-child{border-bottom:none}.time-row.difference{background:linear-gradient(135deg,#ffecd2,#fcb69f);border-radius:0 0 10px 10px;font-weight:600;margin:5px -15px -10px;padding:8px 15px}.time-label{color:#495057;font-size:1rem;font-weight:600}.time-value{color:#212529;font-family:Courier New,monospace;font-size:1rem}.popup-actions{background:#f8f9fa;border-top:1px solid #e9ecef;gap:15px;padding:20px 30px}.action-buttons,.popup-actions{display:flex;justify-content:center}.action-buttons{flex-wrap:wrap;gap:12px}.close-popup-btn,.refresh-btn{align-items:center;border:none;border-radius:10px;cursor:pointer;display:flex;flex:1 1;font-size:1rem;font-weight:600;gap:8px;justify-content:center;padding:15px 20px;transition:all .3s ease}.refresh-btn{background:linear-gradient(135deg,#215f9a,#4e95d9);color:#fff}.refresh-btn:hover:not(:disabled){box-shadow:0 5px 15px #215f9a66;transform:translateY(-2px)}.refresh-btn:disabled{cursor:not-allowed;opacity:.6}.share-btn{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:10px;box-shadow:0 3px 10px #00000014;color:#215f9a;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:8px;justify-content:center;padding:15px 20px;transition:all .3s ease}.share-btn:hover{border-color:#215f9a;box-shadow:0 5px 15px #0000001f;color:#1b4c7a;transform:translateY(-2px)}.close-popup-btn{background:linear-gradient(135deg,#ff6b6b,#ee5a24);color:#fff}.close-popup-btn:hover{box-shadow:0 5px 15px #ff6b6b66;transform:translateY(-2px)}@media (max-width:768px){.popup-content{gap:20px;padding:20px}.map-placeholder{padding:40px 20px}.location-marker{font-size:3rem}.coordinates{font-size:1rem}.popup-actions{flex-direction:column;padding:15px 20px}.close-popup-btn,.refresh-btn{padding:12px 15px}}.map-placeholder{align-items:center;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:2px dashed #dee2e6;border-radius:15px;display:flex;height:100%;justify-content:center;width:100%}.placeholder-content{color:#6c757d;text-align:center}.placeholder-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.placeholder-content p{font-size:1.1rem;font-weight:500;margin:0}.map-zoom-controls{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0003;display:flex;flex-direction:column;overflow:hidden;position:absolute;right:15px;top:15px;z-index:10}.zoom-in-btn{border-bottom:1px solid #e0e0e0}.live-map-container{border-radius:15px;overflow:hidden}.live-map-container,.map-frame{height:100%;position:relative;width:100%}.map-loading{align-items:center;background:#f8f9fa;color:#6c757d;display:flex;font-size:1.1rem;height:100%;justify-content:center}.map-controls{border-radius:8px;box-shadow:0 2px 10px #0003;flex-direction:column;overflow:hidden;position:absolute;right:15px;top:15px;z-index:10}.map-controls,.zoom-btn{background:#fff;display:flex}.zoom-btn{align-items:center;border:none;color:#333;cursor:pointer;font-size:1.5rem;font-weight:700;height:40px;justify-content:center;transition:background .2s;width:40px}.zoom-btn:hover:not(:disabled){background:#f0f0f0}.zoom-btn:disabled{cursor:not-allowed;opacity:.5}.zoom-level{align-items:center;background:#7c2d92;color:#fff;display:flex;font-size:.9rem;font-weight:600;height:30px;justify-content:center;width:40px}.location-marker{left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:5}.marker-pin{animation:bounce-marker 2s ease-in-out infinite;font-size:2.5rem;position:relative;text-shadow:0 2px 8px #0000004d;z-index:2}.marker-pulse{animation:pulse-marker 2s ease-in-out infinite;background:#7c2d924d;border-radius:50%;height:60px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:60px}@keyframes bounce-marker{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse-marker{0%{opacity:1;transform:translate(-50%,-50%) scale(.8)}to{opacity:0;transform:translate(-50%,-50%) scale(2)}}.alert-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.alert-popup{animation:alertSlideIn .3s ease-out;background:#fff;border-radius:15px;box-shadow:0 20px 40px #0003;max-width:400px;padding:30px;text-align:center;width:90%}@keyframes alertSlideIn{0%{opacity:0;transform:scale(.8) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.alert-icon{font-size:3rem;margin-bottom:15px}.alert-message{color:#333;font-size:1.1rem;line-height:1.5;margin-bottom:25px}.alert-close{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:25px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 30px;transition:transform .2s ease}.alert-close:hover{transform:translateY(-2px)}.alert-popup.success{border-left:5px solid #28a745}.alert-popup.error{border-left:5px solid #dc3545}.alert-popup.warning{border-left:5px solid #ffc107}.alert-popup.info{border-left:5px solid #17a2b8}.MuiDrawer-paper{background:linear-gradient(180deg,#0f766e,#115e59 55%,#134e4a)!important;border-right:none!important;color:#fff!important}.MuiListItemButton-root.Mui-selected{background:#ffffff29!important;border-radius:10px!important;box-shadow:inset 3px 0 0 #99f6e4!important;margin:4px 10px!important}.MuiListItemButton-root{border-radius:10px!important;margin:4px 10px!important;transition:background .15s ease!important}.MuiListItemButton-root:hover{background:#ffffff1a!important}.MuiListItemIcon-root{color:#ffffffe0!important;min-width:40px!important}.MuiListItemText-primary{color:#ffffffeb!important;font-family:Plus Jakarta Sans,Segoe UI,sans-serif!important;font-weight:500!important}.MuiCard-root{border:1px solid #d7e3e0!important;border-radius:14px!important;box-shadow:0 8px 24px #102a270f!important}.MuiTableHead-root .MuiTableCell-root{background-color:#f3f7f6!important;border-bottom:1px solid #d7e3e0!important;color:#102a27!important;font-weight:700!important}.MuiTableCell-root{border-bottom:1px solid #e8efed!important;color:#102a27!important;padding:14px 16px!important}.MuiChip-root{font-weight:600!important;text-transform:capitalize!important}.MuiLinearProgress-root{background-color:#e2eeeb!important;border-radius:3px!important;height:6px!important}.MuiAvatar-root{font-size:.875rem!important;font-weight:600!important}.MuiContainer-root .MuiTypography-h4,.MuiContainer-root .MuiTypography-h5,.MuiContainer-root .MuiTypography-h6,main .MuiTypography-h4,main .MuiTypography-h5,main .MuiTypography-h6{color:#102a27!important;font-weight:700!important;letter-spacing:-.02em!important}.MuiDrawer-paper .MuiTypography-root{color:#fffffff2!important}.MuiAppBar-root{-webkit-backdrop-filter:blur(16px)!important;backdrop-filter:blur(16px)!important;background:#ffffffeb!important;border-bottom:1px solid #d7e3e0!important;box-shadow:none!important}.MuiToolbar-root{min-height:64px!important}.gradient-primary{background:linear-gradient(135deg,#0f766e,#0b5f59)!important}.gradient-success{background:linear-gradient(135deg,#0f766e,#067647)!important}.gradient-warning{background:linear-gradient(135deg,#d97706,#b54708)!important}.gradient-error{background:linear-gradient(135deg,#ef4444,#b42318)!important}.gradient-info{background:linear-gradient(135deg,#0e7490,#155e75)!important}@media (max-width:600px){.MuiTableContainer-root{overflow-x:auto!important}.MuiTableCell-root{font-size:.8rem!important;padding:8px!important}.MuiTypography-h4{font-size:1.35rem!important}}.MuiCard-root{transition:box-shadow .2s ease!important}.MuiCard-root:hover{box-shadow:0 12px 28px #102a271a!important}.MuiDrawer-paper::-webkit-scrollbar{width:6px}.MuiDrawer-paper::-webkit-scrollbar-track{background:#ffffff14}.MuiDrawer-paper::-webkit-scrollbar-thumb{background:#ffffff47;border-radius:3px}.agency-app{--agency-primary:#0f766e;--agency-primary-dark:#0b5f59;--agency-primary-soft:#d8f3ef;--agency-ink:#102a27;--agency-muted:#5b6b68;--agency-border:#d7e3e0;--agency-surface:#fff;--agency-bg:#eef3f2;--agency-danger:#b42318;--agency-radius:14px;--agency-shadow:0 10px 30px #102a2714;--agency-sidebar:260px;--agency-font:"Plus Jakarta Sans","Segoe UI",sans-serif;background:var(--agency-bg);color:var(--agency-ink);display:flex;font-family:var(--agency-font);min-height:100vh;min-height:100dvh}.agency-sidebar{background:linear-gradient(180deg,#0f766e,#115e59 55%,#134e4a);box-shadow:8px 0 24px #0728251f;color:#fff;display:flex;flex-direction:column;flex-shrink:0;height:100vh;height:100dvh;position:-webkit-sticky;position:sticky;top:0;width:var(--agency-sidebar);z-index:40}.agency-brand{border-bottom:1px solid #ffffff1f;padding:22px 20px 18px}.agency-brand h1{font-size:1.15rem;font-weight:700;letter-spacing:-.02em;margin:0}.agency-brand p{font-size:.78rem;margin:4px 0 0;opacity:.85}.agency-nav{-webkit-overflow-scrolling:touch;flex:1 1;overflow-y:auto;padding:12px 10px 20px}.agency-nav-item,.agency-nav-parent,.agency-nav-subitem{align-items:center;background:#0000;border:0;border-radius:10px;color:#ffffffe0;cursor:pointer;display:flex;font:inherit;font-size:.9rem;font-weight:600;margin:2px 0;padding:11px 12px;text-align:left;transition:background .15s ease;width:100%}.agency-nav-item:hover,.agency-nav-parent:hover,.agency-nav-subitem:hover{background:#ffffff1a}.agency-nav-item.active,.agency-nav-parent.open,.agency-nav-subitem.active{background:#ffffff29;box-shadow:inset 3px 0 0 #99f6e4}.agency-nav-parent{justify-content:space-between}.agency-nav-caret{font-size:.7rem;opacity:.8;transition:transform .2s ease}.agency-nav-parent.open .agency-nav-caret{transform:rotate(180deg)}.agency-nav-sub{display:flex;flex-direction:column;gap:2px;padding:0 0 6px 8px}.agency-nav-subitem{color:#ffffffc7;font-size:.82rem;font-weight:500;padding:9px 12px 9px 18px}.agency-sidebar-footer{border-top:1px solid #ffffff1f;display:flex;flex-direction:column;gap:8px;padding:14px 12px 18px}.agency-sidebar-footer button{background:#ffffff1a;border:1px solid #ffffff47;border-radius:999px;color:#fff;cursor:pointer;font:inherit;font-size:.85rem;font-weight:600;padding:10px 14px;width:100%}.agency-sidebar-footer button:hover{background:#ffffff2e}.agency-sidebar-footer .logout{background:#b4231859;border-color:#fff3}.agency-main{display:flex;flex:1 1;flex-direction:column;min-width:0}.agency-topbar{background:var(--agency-surface);border-bottom:1px solid var(--agency-border);justify-content:space-between;padding:16px 22px;position:-webkit-sticky;position:sticky;top:0;z-index:20}.agency-topbar,.agency-topbar-left{align-items:center;display:flex;gap:12px}.agency-topbar-left{min-width:0}.agency-menu-toggle{background:#fff;border:1px solid var(--agency-border);border-radius:10px;color:var(--agency-ink);cursor:pointer;display:none;font:inherit;font-weight:700;padding:8px 12px}.agency-topbar h2{font-size:1.15rem;font-weight:700;letter-spacing:-.02em;margin:0}.agency-topbar p{color:var(--agency-muted);font-size:.82rem;margin:2px 0 0}.agency-content{flex:1 1;padding:20px 22px 32px}.agency-panel{background:var(--agency-surface);border:1px solid var(--agency-border);border-radius:var(--agency-radius);box-shadow:var(--agency-shadow);padding:22px}.agency-backdrop{display:none}.dashboard-overview,.devices-management,.reports-section,.schools-management{animation:agencyFade .35s ease}@keyframes agencyFade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:24px}.stat-card{background:#fbfcfc;border:1px solid var(--agency-border);border-left:4px solid var(--agency-primary);border-radius:12px;gap:14px;padding:18px}.stat-card,.stat-icon{align-items:center;display:flex}.stat-icon{border-radius:12px;flex-shrink:0;font-size:1.6rem;height:48px;justify-content:center;width:48px}.stat-icon.schools{background:#fef3c7}.stat-icon.students{background:#dbeafe}.stat-icon.devices{background:#e0e7ff}.stat-icon.revenue{background:#d1fae5}.stat-icon.commission{background:var(--agency-primary-soft)}.stat-content h3{color:var(--agency-ink);font-size:1.5rem;font-weight:700;letter-spacing:-.02em;margin:0}.stat-content p{color:var(--agency-muted);font-size:.85rem;font-weight:500;margin:4px 0 0}.recent-activity{background:#f7faf9;border:1px solid var(--agency-border);border-radius:12px;padding:20px}.recent-activity h3{color:var(--agency-ink);font-size:1.05rem;margin:0 0 14px}.activity-list{display:flex;flex-direction:column;gap:10px}.activity-item{align-items:center;background:#fff;border:1px solid var(--agency-border);border-radius:10px;display:flex;gap:12px;justify-content:space-between;padding:12px 14px}.activity-text{color:var(--agency-ink);font-size:.9rem;font-weight:500}.activity-time{color:var(--agency-muted);font-size:.8rem;white-space:nowrap}.section-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:20px}.reports-section>h3,.section-header h3{color:var(--agency-ink);font-size:1.25rem;font-weight:700;letter-spacing:-.02em;margin:0 0 4px}.reports-section>h3{margin-bottom:8px}.section-header .header-buttons{display:flex;flex-wrap:wrap;gap:10px}.page-desc{color:var(--agency-muted);font-size:.9rem;line-height:1.45;margin:0 0 18px}.btn-link,.btn-primary,.btn-secondary,.logout-btn{border-radius:10px;cursor:pointer;font-family:inherit;font-weight:600;transition:background .15s ease,border-color .15s ease}.btn-primary{background:var(--agency-primary);border:none;color:#fff;padding:11px 18px}.btn-primary:hover:not(:disabled){background:var(--agency-primary-dark)}.btn-primary:disabled{cursor:not-allowed;opacity:.55}.btn-secondary{background:#fff;border:1px solid var(--agency-border);color:var(--agency-primary-dark);padding:11px 18px}.btn-secondary:hover{background:var(--agency-primary-soft);border-color:#b6ddd7}.btn-link{background:none;border:none;color:var(--agency-primary);font-size:.9rem;padding:0;text-decoration:underline}.btn-action{background:#eef3f2;border:1px solid var(--agency-border);border-radius:8px;color:var(--agency-ink);cursor:pointer;font-family:inherit;font-size:.82rem;font-weight:600;margin-right:8px;padding:8px 14px}.btn-action:hover{background:var(--agency-primary-soft)}.btn-action.btn-assign{background:var(--agency-primary);border-color:var(--agency-primary);color:#fff}.btn-action.btn-assign:hover{background:var(--agency-primary-dark)}.btn-action.btn-small{font-size:.75rem;margin-right:0;padding:6px 10px}.btn-action.danger{background:#fdecea;border-color:#f5c2c0;color:var(--agency-danger)}.assigned-label{background:#e8f8ef;border-radius:999px;color:#067647;display:inline-block;font-size:.78rem;font-weight:700;padding:6px 12px}.agency-app input:not([type=checkbox]):not([type=radio]):not([type=file]),.agency-app select,.agency-app textarea{background:#fff;border:1.5px solid var(--agency-border);border-radius:10px;box-sizing:border-box;color:var(--agency-ink);font:inherit;font-size:.95rem;padding:11px 14px;transition:border-color .15s ease,box-shadow .15s ease;width:100%}.agency-app input:focus,.agency-app select:focus,.agency-app textarea:focus{border-color:var(--agency-primary);box-shadow:0 0 0 3px #0f766e1f;outline:none}.agency-app input::placeholder,.agency-app textarea::placeholder{color:#8a9a97}.agency-app label.field-label,.form-group label{color:var(--agency-muted);display:block;font-size:.8rem;font-weight:700;letter-spacing:.02em;margin-bottom:6px;text-transform:uppercase}.form-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:16px}.form-group{margin-bottom:14px}.form-group input[type=file]{background:#fbfcfc;border:1.5px dashed var(--agency-border);border-radius:10px;padding:10px}.agency-field-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:14px}.agency-field{display:flex;flex-direction:column;gap:6px}.agency-field.full{grid-column:1/-1}.agency-card-box{background:#fbfcfc;border:1px solid var(--agency-border);border-radius:12px;margin-bottom:18px;padding:18px}.agency-card-box h4{color:var(--agency-ink);font-size:1rem;margin:0 0 14px}.report-filters{align-items:flex-end;background:#f7faf9;border:1px solid var(--agency-border);border-radius:12px;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding:14px}.report-filters .filter-select,.report-filters>input,.report-filters>select{flex:1 1 140px;max-width:220px;min-width:150px;width:auto}.report-filters .btn-primary,.report-filters .btn-secondary{flex:0 0 auto;white-space:nowrap}.filter-select{-webkit-appearance:auto;appearance:auto}.agency-subtabs{border-bottom:1px solid var(--agency-border);display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;padding-bottom:14px}.agency-subtabs button{background:#fff;border:1px solid var(--agency-border);border-radius:999px;color:var(--agency-muted);cursor:pointer;font:inherit;font-size:.82rem;font-weight:600;padding:8px 14px}.agency-subtabs button.active{background:var(--agency-primary);border-color:var(--agency-primary);color:#fff}.agency-subtabs button:hover:not(.active){background:var(--agency-primary-soft);color:var(--agency-primary-dark)}.tab-navigation{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.tab-btn{background:#fff;border:1px solid var(--agency-border);border-radius:999px;color:var(--agency-muted);cursor:pointer;font:inherit;font-size:.82rem;font-weight:600;padding:8px 14px;white-space:nowrap}.tab-btn:hover{background:var(--agency-primary-soft);color:var(--agency-primary-dark)}.tab-btn.active{background:var(--agency-primary);border-color:var(--agency-primary);color:#fff}.devices-table,.reports-table,.school-logins-table-wrap,.schools-table{border:1px solid var(--agency-border);border-radius:12px;overflow-x:auto}.devices-table table,.reports-table table,.school-logins-table,.schools-table table{background:#fff;border-collapse:collapse;font-size:.9rem;width:100%}.devices-table th,.reports-table th,.school-logins-table th,.schools-table th{background:#f3f7f6;border-bottom:1px solid var(--agency-border);color:var(--agency-ink);font-weight:700;padding:12px 14px;text-align:left;white-space:nowrap}.devices-table td,.reports-table td,.school-logins-table td,.schools-table td{border-bottom:1px solid #e8efed;color:var(--agency-ink);padding:12px 14px}.devices-table tr:last-child td,.reports-table tr:last-child td,.schools-table tr:last-child td{border-bottom:none}.devices-table tr:hover,.reports-table tr:hover,.schools-table tr:hover{background:#f7faf9}.status-badge{border-radius:999px;font-size:.75rem;font-weight:700;padding:4px 10px;text-transform:uppercase}.status-badge.active{background:#e8f8ef;color:#067647}.status-badge.inactive{background:#eef2f1;color:var(--agency-muted)}.summary-cards{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:18px}.summary-card{background:#fbfcfc;border:1px solid var(--agency-border);border-radius:12px;border-top:3px solid var(--agency-primary);padding:16px 18px}.summary-card h4{color:var(--agency-muted);font-size:.75rem;font-weight:700;letter-spacing:.04em;margin:0 0 8px;text-transform:uppercase}.summary-value{color:var(--agency-ink);font-size:1.45rem;font-weight:700;letter-spacing:-.02em;margin:0;word-break:break-word}.report-summary{margin-bottom:20px}.modal-overlay{align-items:center;background:#102a2773;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.modal-overlay-nested{z-index:1100}.modal-content{background:#fff;border:1px solid var(--agency-border);border-radius:16px;box-shadow:0 24px 60px #07282540;max-height:85vh;max-width:560px;overflow-y:auto;padding:24px;width:100%}.modal-content-wide{max-width:720px}.modal-content h4{color:var(--agency-ink);font-size:1.2rem;letter-spacing:-.02em;margin:0 0 8px}.modal-content>p{color:var(--agency-muted);font-size:.9rem;margin:0 0 16px}.modal-content textarea{margin-bottom:12px;min-height:90px;resize:vertical}.modal-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:8px}.modal-actions button{border:none;border-radius:10px;cursor:pointer;font-family:inherit;font-weight:600;padding:10px 18px}.modal-actions button[type=button]{background:#eef3f2;border:1px solid var(--agency-border);color:var(--agency-ink)}.modal-actions button[type=button]:hover{background:#e2eeeb}.school-logins-section{border-top:1px solid var(--agency-border);margin-top:18px;padding-top:16px}.school-logins-section h5{color:var(--agency-ink);margin:0 0 8px}.school-logins-hint{color:var(--agency-muted);font-size:.85rem;margin:0 0 12px}.school-logins-empty{color:var(--agency-muted);font-size:.9rem;margin:0}.school-logins-na{color:#a0aec0}.bulk-result{background:#f7faf9;border:1px solid var(--agency-border);border-radius:10px;font-size:.9rem;margin-top:14px;padding:12px}.bulk-result .error-list{color:var(--agency-danger);margin-top:8px}.msg-ok{color:#067647}.msg-err,.msg-ok{font-weight:600;margin-bottom:10px}.msg-err{color:var(--agency-danger)}@media (max-width:960px){.agency-sidebar{left:0;position:fixed;top:0;transform:translateX(-105%);transition:transform .22s ease}.agency-app.nav-open .agency-sidebar{transform:translateX(0)}.agency-backdrop{background:#102a2766;display:block;inset:0;position:fixed;z-index:35}.agency-menu-toggle{display:inline-flex}.agency-content{padding:14px}.agency-panel{padding:16px}.agency-field-grid{grid-template-columns:1fr}.report-filters .filter-select,.report-filters>input,.report-filters>select{flex:1 1 100%;max-width:none}}@media (max-width:600px){.agency-topbar{padding:12px 14px}.stats-grid{grid-template-columns:1fr}.header-content{align-items:flex-start;flex-direction:column}}.admin-app{--admin-primary:#0f766e;--admin-primary-dark:#0b5f59;--admin-primary-soft:#d8f3ef;--admin-ink:#102a27;--admin-muted:#5b6b68;--admin-border:#d7e3e0;--admin-surface:#fff;--admin-bg:#eef3f2;--admin-danger:#b42318;--admin-radius:14px;--admin-shadow:0 10px 30px #102a2714;--admin-sidebar:260px;--admin-font:"Plus Jakarta Sans","Segoe UI",sans-serif;background:var(--admin-bg);color:var(--admin-ink);display:flex;font-family:var(--admin-font);min-height:100vh;min-height:100dvh}.admin-sidebar{background:linear-gradient(180deg,#0f766e,#115e59 55%,#134e4a);box-shadow:8px 0 24px #0728251f;color:#fff;display:flex;flex-direction:column;flex-shrink:0;height:100vh;height:100dvh;position:-webkit-sticky;position:sticky;top:0;width:var(--admin-sidebar);z-index:40}.admin-brand{border-bottom:1px solid #ffffff1f;padding:22px 20px 18px}.admin-brand h1{font-size:1.15rem;font-weight:700;letter-spacing:-.02em;margin:0}.admin-brand p{font-size:.78rem;margin:4px 0 0;opacity:.85}.admin-nav{-webkit-overflow-scrolling:touch;flex:1 1;overflow-y:auto;padding:12px 10px 20px}.admin-nav-item,.admin-nav-parent,.admin-nav-subitem{align-items:center;background:#0000;border:0;border-radius:10px;color:#ffffffe0;cursor:pointer;display:flex;font:inherit;font-size:.9rem;font-weight:600;margin:2px 0;padding:11px 12px;text-align:left;transition:background .15s ease;width:100%}.admin-nav-item:hover,.admin-nav-parent:hover,.admin-nav-subitem:hover{background:#ffffff1a}.admin-nav-item.active,.admin-nav-parent.open,.admin-nav-subitem.active{background:#ffffff29;box-shadow:inset 3px 0 0 #99f6e4}.admin-nav-parent{justify-content:space-between}.admin-nav-caret{font-size:.7rem;opacity:.8;transition:transform .2s ease}.admin-nav-parent.open .admin-nav-caret{transform:rotate(180deg)}.admin-nav-sub{display:flex;flex-direction:column;gap:2px;padding:0 0 6px 8px}.admin-nav-subitem{color:#ffffffc7;font-size:.82rem;font-weight:500;padding:9px 12px 9px 18px}.admin-sidebar-footer{border-top:1px solid #ffffff1f;padding:14px 12px 18px}.admin-sidebar-footer button{background:#b4231859;border:1px solid #ffffff47;border-radius:999px;color:#fff;cursor:pointer;font:inherit;font-size:.85rem;font-weight:600;padding:10px 14px;width:100%}.admin-sidebar-footer button:hover{background:#b4231880}.admin-main{display:flex;flex:1 1;flex-direction:column;min-width:0}.admin-topbar{background:var(--admin-surface);border-bottom:1px solid var(--admin-border);justify-content:space-between;padding:16px 22px;position:-webkit-sticky;position:sticky;top:0;z-index:20}.admin-topbar,.admin-topbar-left{align-items:center;display:flex;gap:12px}.admin-topbar-left{min-width:0}.admin-menu-toggle{background:#fff;border:1px solid var(--admin-border);border-radius:10px;cursor:pointer;display:none;font:inherit;padding:8px 12px}.admin-menu-toggle,.admin-topbar h2{color:var(--admin-ink);font-weight:700}.admin-topbar h2{font-size:1.15rem;letter-spacing:-.02em;margin:0}.admin-topbar p{color:var(--admin-muted);font-size:.82rem;margin:2px 0 0}.admin-content{flex:1 1;padding:20px 22px 32px}.admin-panel{background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:var(--admin-radius);box-shadow:var(--admin-shadow);padding:22px}.admin-backdrop{display:none}.admin-app .MuiPaper-root{border:1px solid var(--admin-border)!important;border-radius:12px!important;box-shadow:var(--admin-shadow)!important}.admin-app .MuiCard-root{border:1px solid var(--admin-border);border-radius:14px;box-shadow:var(--admin-shadow)}.admin-app .MuiButton-containedPrimary{background:var(--admin-primary)!important;box-shadow:none!important}.admin-app .MuiButton-containedPrimary:hover{background:var(--admin-primary-dark)!important}.admin-app .MuiTableHead-root .MuiTableCell-root{background:#f3f7f6!important;border-bottom:1px solid var(--admin-border)!important;color:var(--admin-ink)!important;font-weight:700!important}.admin-app .MuiTableCell-root{border-bottom:1px solid #e8efed!important;color:var(--admin-ink)}.admin-app .MuiOutlinedInput-root{border-radius:10px!important}.admin-app .MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline{border-color:var(--admin-primary)!important}.admin-app .MuiInputLabel-root.Mui-focused{color:var(--admin-primary)!important}.admin-app .MuiChip-colorPrimary{background:var(--admin-primary-soft)!important;color:var(--admin-primary-dark)!important}.admin-page-title{color:var(--admin-ink)!important;font-weight:700!important;letter-spacing:-.02em!important;margin:0 0 4px!important}.admin-page-desc{color:var(--admin-muted)!important;font-size:.9rem!important;margin:0 0 20px!important}.admin-coming-soon{background:#fbfcfc;border:1px dashed var(--admin-border);border-radius:12px;color:var(--admin-muted);padding:48px 24px;text-align:center}@media (max-width:960px){.admin-sidebar{left:0;position:fixed;top:0;transform:translateX(-105%);transition:transform .22s ease}.admin-app.nav-open .admin-sidebar{transform:translateX(0)}.admin-backdrop{background:#102a2766;display:block;inset:0;position:fixed;z-index:35}.admin-menu-toggle{display:inline-flex}.admin-content{padding:14px}.admin-panel{padding:16px}}.teacher-shell{background:var(--portal-bg);color:var(--portal-ink);display:flex;flex-direction:column;font-family:var(--portal-font);min-height:100vh;min-height:100dvh;padding-bottom:72px}.teacher-topbar{align-items:center;background:linear-gradient(135deg,#0f766e,#115e59);box-shadow:0 8px 24px #0f766e40;color:#fff;display:flex;gap:12px;justify-content:space-between;padding:14px 16px calc(14px + env(safe-area-inset-top));position:-webkit-sticky;position:sticky;top:0;z-index:20}.teacher-topbar h1{font-size:1.05rem;font-weight:700;letter-spacing:-.02em;margin:0}.teacher-topbar p{font-size:.78rem;margin:2px 0 0;opacity:.9}.teacher-logout{background:#ffffff1f;border:1px solid #ffffff59;border-radius:999px;color:#fff;cursor:pointer;font-size:.8rem;font-weight:600;padding:8px 12px}.teacher-body{flex:1 1;margin:0 auto;max-width:920px;padding:14px 14px 24px;width:100%}.teacher-alert{border-radius:12px;font-size:.9rem;font-weight:500;margin-bottom:12px;padding:12px 14px}.teacher-alert.ok{background:var(--portal-success-soft);color:var(--portal-success)}.teacher-alert.err{background:var(--portal-danger-soft);color:var(--portal-danger)}.teacher-card{background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:var(--portal-radius);box-shadow:var(--portal-shadow);padding:16px}.teacher-card h2{font-size:1.15rem;letter-spacing:-.02em;margin:0 0 6px}.teacher-card .hint{color:var(--portal-muted);font-size:.88rem;line-height:1.45;margin:0 0 14px}.teacher-status-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:4px}.teacher-status-header .hint{margin-bottom:10px}.teacher-print-btn{background:#fff;border:1px solid var(--portal-primary);border-radius:999px;color:var(--portal-primary-dark);cursor:pointer;flex-shrink:0;font:inherit;font-size:.85rem;font-weight:700;min-height:44px;padding:10px 14px}.teacher-print-btn:disabled{cursor:not-allowed;opacity:.45}.teacher-chip,.teacher-print-btn:not(:disabled):active{background:var(--portal-primary-soft)}.teacher-chip{align-items:center;border-radius:999px;color:var(--portal-primary-dark);display:inline-flex;font-size:.75rem;font-weight:700;gap:6px;margin-bottom:12px;padding:4px 10px}.teacher-section-title{color:var(--portal-muted);font-size:.82rem;font-weight:700;letter-spacing:.04em;margin:0 0 8px;text-transform:uppercase}.teacher-pick-list{-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:8px;margin-bottom:14px;max-height:38vh;overflow:auto;padding-right:2px}.teacher-pick-item{background:#fbfcfc;border:1px solid var(--portal-border);border-radius:12px;color:inherit;cursor:pointer;font:inherit;padding:12px 14px;text-align:left;transition:border-color .15s ease,background .15s ease}.teacher-pick-item strong{display:block;font-size:.95rem;margin-bottom:2px}.teacher-pick-item span{color:var(--portal-muted);font-size:.8rem}.teacher-pick-item.selected{background:var(--portal-primary-soft);border-color:var(--portal-primary)}.teacher-pick-item:active{transform:scale(.99)}.teacher-empty{border:1px dashed var(--portal-border);border-radius:12px;color:var(--portal-muted);font-size:.9rem;padding:18px 12px;text-align:center}.teacher-primary-btn,.teacher-secondary-btn{border:0;border-radius:12px;cursor:pointer;font-family:inherit;font-size:.95rem;font-weight:700;padding:14px 16px;width:100%}.teacher-primary-btn{background:var(--portal-primary);color:#fff}.teacher-primary-btn:disabled{cursor:not-allowed;opacity:.45}.teacher-secondary-btn{background:#fff;border:1px solid var(--portal-border);color:var(--portal-primary-dark)}.teacher-filters{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-bottom:12px}.teacher-filters .full{grid-column:1/-1}.teacher-filters input,.teacher-filters select{background:#fff;border:1px solid var(--portal-border);border-radius:12px;box-sizing:border-box;font:inherit;font-size:16px;padding:12px 14px;width:100%}.teacher-filters select{-webkit-appearance:auto;appearance:auto;color:var(--portal-ink)}.teacher-class-picker{margin-bottom:12px}.teacher-class-picker .teacher-primary-btn{width:100%}.teacher-status-list{display:flex;flex-direction:column;gap:10px}.teacher-status-card{background:#fbfcfc;border:1px solid var(--portal-border);border-radius:12px;padding:12px 14px}.teacher-status-card .row{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.teacher-status-card .name{font-size:.95rem;font-weight:700}.teacher-status-card .meta{color:var(--portal-muted);font-size:.8rem;line-height:1.4;margin-top:6px}.teacher-badge{border-radius:999px;flex-shrink:0;font-size:.7rem;font-weight:700;padding:4px 8px;text-transform:uppercase}.teacher-badge.on{background:var(--portal-success-soft);color:var(--portal-success)}.teacher-badge.off{background:#eef2f1;color:var(--portal-muted)}.teacher-bottom-nav{grid-gap:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff5;border-top:1px solid var(--portal-border);bottom:0;display:grid;gap:0;grid-template-columns:1fr 1fr;left:0;padding:8px 10px calc(8px + env(safe-area-inset-bottom));position:fixed;right:0;z-index:30}.teacher-bottom-nav button{background:#0000;border:0;border-radius:12px;color:var(--portal-muted);cursor:pointer;font:inherit;font-size:.82rem;font-weight:700;padding:10px 8px}.teacher-bottom-nav button.active{background:var(--portal-primary-soft);color:var(--portal-primary-dark)}.teacher-loading{color:var(--portal-muted);font-size:.9rem;margin-bottom:10px}@media (min-width:768px){.teacher-shell{padding-bottom:0}.teacher-body{padding:24px}.teacher-assign-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.teacher-pick-list{max-height:420px}.teacher-bottom-nav{display:none}.teacher-desktop-tabs{display:flex;gap:8px;margin-bottom:16px}.teacher-desktop-tabs button{background:#fff;border:1px solid var(--portal-border);border-radius:999px;color:var(--portal-muted);cursor:pointer;font-family:inherit;font-weight:700;padding:10px 16px}.teacher-desktop-tabs button.active{background:var(--portal-primary);border-color:var(--portal-primary);color:#fff}.teacher-primary-btn{min-width:200px;width:auto}.teacher-filters{grid-template-columns:2fr 1fr 1fr auto}}@media (max-width:767px){.teacher-desktop-tabs{display:none}}:root{--portal-bg:#eef3f2;--portal-surface:#fff;--portal-ink:#102a27;--portal-muted:#5b6b68;--portal-primary:#0f766e;--portal-primary-dark:#0b5f59;--portal-primary-soft:#d8f3ef;--portal-border:#d7e3e0;--portal-danger:#b42318;--portal-danger-soft:#fdecea;--portal-success:#067647;--portal-success-soft:#e8f8ef;--portal-warn:#b54708;--portal-shadow:0 10px 30px #102a2714;--portal-radius:14px;--portal-font:"Plus Jakarta Sans","Segoe UI",sans-serif}body{background:#eef3f2;background:var(--portal-bg);color:#102a27;color:var(--portal-ink);font-family:Plus Jakarta Sans,Segoe UI,sans-serif;font-family:var(--portal-font)}.App{text-align:center}*{box-sizing:border-box;margin:0;padding:0}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}
/*# sourceMappingURL=main.f00e8111.css.map*/