*{margin:0;padding:0;box-sizing:border-box}body{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;margin:0;min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.loading-spinner{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem}.loading-users{display:flex;align-items:center;justify-content:center;padding:2rem;color:#7f8c8d}.error-message{background:#f8d7da;color:#721c24;padding:1rem;border-radius:4px;margin-bottom:1rem;border:1px solid #f5c6cb}.page-title{color:#2c3e50;margin-bottom:2rem;font-size:2rem;font-weight:700}.page-subtitle{font-size:1.1rem;opacity:.9;margin:0}.btn-primary{background-color:#3498db;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .3s;display:inline-flex;align-items:center;gap:.5rem}.btn-primary:hover:not(:disabled){background-color:#2980b9;transform:translateY(-1px)}.btn-primary:disabled{background-color:#bdc3c7;cursor:not-allowed;transform:none}.btn-secondary{background-color:#95a5a6;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .3s}.btn-secondary:hover:not(:disabled){background-color:#7f8c8d}.btn-edit{background-color:#f39c12;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:all .3s}.btn-edit:hover:not(:disabled){background-color:#e67e22}.btn-delete{background-color:#e74c3c;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:all .3s}.btn-delete:hover:not(:disabled){background-color:#c0392b}.btn-view{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:all .3s}.btn-view:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 8px #0003}.btn-refresh{background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-size:.95rem;transition:all .2s}.btn-refresh:hover:not(:disabled){background:#ffffff4d}.btn-save,.btn-cancel{padding:.75rem 1.5rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .3s}.btn-save{background-color:#27ae60;color:#fff}.btn-save:hover:not(:disabled){background-color:#219a52}.btn-save:disabled{background-color:#bdc3c7;cursor:not-allowed}.btn-cancel{background-color:#95a5a6;color:#fff}.btn-cancel:hover:not(:disabled){background-color:#7f8c8d}.btn-close-modal{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#7f8c8d;padding:.5rem;border-radius:4px;transition:all .3s;line-height:1}.btn-close-modal:hover{background-color:#ecf0f1;color:#2c3e50}.form-card h2{color:#2c3e50;margin:0 0 1.5rem;font-weight:600}.form-group input,.form-group select,.form-group textarea{padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .3s;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 2px #3498db1a}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.data-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}.data-table th{background-color:#34495e;color:#fff;padding:1rem;text-align:left;font-weight:600;border-bottom:1px solid #2c3e50}.data-table td{padding:1rem;border-bottom:1px solid #ecf0f1;vertical-align:middle}.data-table tbody tr:hover{background-color:#f8f9fa}.data-table tbody tr:last-child td{border-bottom:none}.pagination-container{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-top:1px solid #ecf0f1;background:#f8f9fa}.pagination-info{color:#7f8c8d;font-size:.9rem}.pagination-controls{display:flex;gap:.5rem;align-items:center}.pagination-btn{padding:.5rem .75rem;border:1px solid #ddd;background:#fff;color:#2c3e50;cursor:pointer;border-radius:4px;transition:all .3s;font-size:.9rem;min-width:40px;text-align:center}.pagination-btn:hover:not(:disabled):not(.ellipsis){background-color:#3498db;color:#000;border-color:#3498db}.pagination-btn:disabled{opacity:.5;cursor:not-allowed;background-color:#f8f9fa}.pagination-btn.ellipsis{cursor:default;background:none;border:none}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:8px;max-width:90vw;max-height:90vh;overflow:auto;position:relative;box-shadow:0 10px 25px #0003}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-bottom:1px solid #ecf0f1;background:#f8f9fa}.modal-header h2{margin:0;color:#2c3e50;font-weight:600}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#7f8c8d;padding:.5rem;border-radius:4px;transition:all .3s;line-height:1}.modal-close:hover{background-color:#ecf0f1;color:#2c3e50}.modal-body{padding:2rem}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;padding:1.5rem 2rem;border-top:1px solid #ecf0f1;background:#f8f9fa}.modal-loading{display:flex;align-items:center;justify-content:center;padding:3rem}.modal-error{background-color:#fee;color:#c33;padding:1rem;border-radius:4px;margin-bottom:1rem;border:1px solid #fcc}.card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden;transition:box-shadow .3s}.card:hover{box-shadow:0 4px 8px #00000026}.card-header{padding:1.5rem 2rem;border-bottom:1px solid #ecf0f1;background:#f8f9fa}.card-body{padding:2rem}.card-footer{padding:1rem 2rem;border-top:1px solid #ecf0f1;background:#f8f9fa}.stat-card{text-align:center;background:#ffffff1a;padding:1rem 1.5rem;border-radius:8px;min-width:120px}.stat-value{font-size:1.8rem;font-weight:700;margin-bottom:.25rem}.stat-label{font-size:.9rem;opacity:.8}.page-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:2rem;border-radius:12px;margin-bottom:2rem}.header-content{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.header-left .page-title{font-size:2rem;margin:0 0 .5rem;font-weight:700}.header-left .page-subtitle{font-size:1.1rem;opacity:.9;margin:0}.header-stats{display:flex;gap:2rem}.header-actions{display:flex;justify-content:flex-end;gap:1rem}.crud-container{width:100%;padding:1.5rem}.status-active{background-color:#d4edda;color:#155724;border-color:#c3e6cb}.status-inactive{background-color:#f8d7da;color:#721c24;border-color:#f5c6cb}@media(max-width:768px){.form-row{grid-template-columns:1fr}.table-controls{flex-direction:column;align-items:stretch}.header-content{flex-direction:column;gap:1rem}.header-stats{flex-wrap:wrap;gap:1rem}.pagination-container{flex-direction:column;gap:1rem}.pagination-controls{flex-wrap:wrap;justify-content:center}.modal-content{margin:.5rem;max-width:calc(100vw - 1rem);max-height:calc(100vh - 1rem)}.modal-body{padding:1rem}.modal-actions{flex-direction:column-reverse;gap:.75rem}.btn-edit,.btn-delete,.btn-view{padding:.4rem .8rem;font-size:.8rem}}@media(max-width:1024px)and (min-width:769px){.header-stats{gap:1.5rem}.pagination-info{font-size:.85rem}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-slide-in{animation:slideInDown .3s ease-out}.animate-fade-in{animation:fadeIn .3s ease-out}.animate-slide-up{animation:slideInUp .3s ease-out}.loader-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .3s ease-out}.loader-container{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.loader-message{color:#fff;font-size:1.1rem;font-weight:500;text-align:center;animation:pulse 2s ease-in-out infinite}.loader-default{position:relative;display:flex;align-items:center;justify-content:center}.loader-circle{position:relative;border-radius:50%;background:conic-gradient(from 0deg,transparent,rgba(52,152,219,.3),#3498db,#2980b9,transparent);animation:rotate 1.5s linear infinite}.loader-arc{position:absolute;inset:4px;background:#0009;border-radius:50%}.loader-pulse{position:relative;display:flex;align-items:center;justify-content:center}.pulse-ring{position:absolute;border:3px solid transparent;border-top-color:#3498db;border-radius:50%;animation:pulse-ring 2s ease-out infinite}.pulse-ring:nth-child(1){animation-delay:0s}.pulse-ring:nth-child(2){animation-delay:.7s}.pulse-ring:nth-child(3){animation-delay:1.4s}.loader-dots{display:flex;gap:.75rem;align-items:center}.dot{background:linear-gradient(135deg,#3498db,#2980b9);border-radius:50%;animation:dot-bounce 1.4s ease-in-out infinite}.dot:nth-child(1){animation-delay:0s}.dot:nth-child(2){animation-delay:.2s}.dot:nth-child(3){animation-delay:.4s}.loader-spinner{position:relative;display:flex;align-items:center;justify-content:center}.spinner-ring{border-radius:50%;border:4px solid rgba(255,255,255,.2);border-top:4px solid #3498db;border-right:4px solid #2980b9;animation:spin 1s linear infinite}.small .loader-circle{width:40px;height:40px}.small .pulse-ring{width:30px;height:30px}.small .dot{width:8px;height:8px}.small .spinner-ring{width:32px;height:32px}.medium .loader-circle{width:60px;height:60px}.medium .pulse-ring{width:50px;height:50px}.medium .dot{width:12px;height:12px}.medium .spinner-ring{width:48px;height:48px}.large .loader-circle{width:80px;height:80px}.large .pulse-ring{width:70px;height:70px}.large .dot{width:16px;height:16px}.large .spinner-ring{width:64px;height:64px}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-ring{0%{transform:scale(0);opacity:1}to{transform:scale(1.5);opacity:0}}@keyframes dot-bounce{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1.2);opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.layout{display:flex;flex-direction:column;min-height:100vh}.header{background-color:#2c3e50;color:#fff;padding:1rem 2rem;box-shadow:0 2px 4px #0000001a}.header-content{display:flex;justify-content:space-between;align-items:center;width:100%;margin:0 auto}.header-left{display:flex;align-items:center;gap:1rem}.sidebar-toggle{background:none;border:none;color:#fff;font-size:1.2rem;cursor:pointer;padding:.5rem;border-radius:4px;transition:background-color .3s}.sidebar-toggle:hover{background-color:#ffffff1a}.header-title{font-size:1.5rem;margin:0}.header-user{display:flex;align-items:center;gap:1rem}.btn-logout{background-color:#e74c3c;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .3s}.btn-logout:hover{background-color:#c0392b}.main-container{display:flex;flex:1;width:100%;margin:0 auto;transition:all .3s ease}.sidebar{width:250px;background-color:#34495e;padding:2rem 0;box-shadow:2px 0 4px #0000001a;transition:width .3s ease,padding .3s ease}.sidebar-collapsed{width:0;padding:0;overflow:hidden}.nav-section{margin-bottom:1.5rem}.nav-section-header{display:flex;justify-content:space-between;align-items:center;padding:0 1.5rem .5rem;border-bottom:1px solid #2c3e50}.nav-section-title{color:#bdc3c7;font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin:0}.nav-section-toggle{background:none;border:none;color:#bdc3c7;font-size:.8rem;cursor:pointer;padding:.25rem;border-radius:2px;transition:background-color .2s,color .2s}.nav-section-toggle:hover{background-color:#2c3e50;color:#ecf0f1}.nav-list{list-style:none;padding:0;margin:0;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.nav-link{display:block;padding:1rem 1.5rem;color:#ecf0f1;text-decoration:none;transition:background-color .3s}.nav-link:hover{background-color:#2c3e50}.content{flex:1;padding:2rem;background-color:#ecf0f1;overflow-y:auto}@media(max-width:768px){.header-content{flex-direction:column;gap:1rem}.header-title{font-size:1.2rem}.main-container{flex-direction:column}.sidebar{width:100%;padding:1rem 0}.nav-list{display:flex;flex-wrap:wrap;justify-content:center}.nav-link{padding:.75rem 1rem}.content{padding:1rem}}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem}.login-card{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 10px 25px #0003;width:100%;max-width:400px}.login-title{color:#2c3e50;font-size:1.8rem;margin:0 0 .5rem;text-align:center}.login-subtitle{color:#7f8c8d;font-size:1.2rem;margin:0 0 2rem;text-align:center;font-weight:400}.login-form{display:flex;flex-direction:column;gap:1.5rem}.login-form .form-group input{padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .3s}.login-form .form-group input:focus{outline:none;border-color:#667eea;box-shadow:none}.login-form .form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.btn-login{background-color:#667eea;color:#fff;border:none;padding:.75rem;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .3s}.btn-login:hover:not(:disabled){background-color:#5568d3}.btn-login:disabled{background-color:#a0aec0;cursor:not-allowed}@media(max-width:480px){.login-card{padding:1.5rem}.login-title{font-size:1.5rem}.login-subtitle{font-size:1rem}}.welcome-page{padding:2rem;max-width:1200px;margin:0 auto}.welcome-header{text-align:center;margin-bottom:3rem;padding:2rem;background:linear-gradient(135deg,#2c3e50,#34495e);border-radius:15px;color:#fff}.company-logo{max-height:80px;max-width:200px;margin-bottom:1rem;object-fit:contain}.welcome-title{font-size:2.5rem;margin-bottom:.5rem;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.3)}.company-subtitle{font-size:1.3rem;margin:0;opacity:.9;font-weight:300}.welcome-content{padding:2rem 0}.welcome-message{text-align:center;margin-bottom:3rem}.welcome-text{font-size:1.2rem;color:#555;line-height:1.8;margin-bottom:3rem;max-width:800px;margin-left:auto;margin-right:auto}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-bottom:3rem}.feature-card{background:#f8f9fa;padding:2rem;border-radius:15px;text-align:center;border:1px solid #e9ecef;transition:all .3s ease}.feature-card.clickable{cursor:pointer}.feature-card:hover{transform:translateY(-5px);box-shadow:0 10px 25px #0000001a}.feature-card.clickable:hover{background:#e3f2fd;border-color:#2196f3}.feature-icon{font-size:3rem;margin-bottom:1rem}.feature-card h3{color:#2c3e50;margin-bottom:1rem;font-size:1.3rem}.feature-card p{color:#666;line-height:1.6;margin:0}.getting-started{text-align:center;margin-bottom:3rem}.getting-started h3{color:#2c3e50;font-size:1.8rem;margin-bottom:2rem}.quick-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.quick-action-btn{display:inline-flex;align-items:center;padding:1rem 2rem;background:#6c757d;color:#fff;border:none;border-radius:10px;font-weight:500;transition:all .3s ease;cursor:pointer;font-size:1rem;text-decoration:none}.quick-action-btn:hover{transform:translateY(-3px);box-shadow:0 5px 15px #0003;color:#fff}.quick-action-btn.primary{background:linear-gradient(135deg,#667eea,#764ba2)}.quick-action-btn.primary:hover{background:linear-gradient(135deg,#5a6fd8,#6a4190)}.support-info{display:flex;justify-content:center;margin-bottom:2rem}.support-card{background:#e3f2fd;padding:2rem;border-radius:15px;border-left:5px solid #2196f3;max-width:600px;width:100%;margin-bottom:2rem}.support-card h4{color:#1976d2;margin-bottom:1rem;font-size:1.3rem}.support-card p{color:#555;margin-bottom:1rem;line-height:1.6}.support-card p:last-child{margin-bottom:0}.contact-info{background:#fff;padding:1rem;border-radius:8px;border:1px solid #bbdefb}@media(max-width:768px){.welcome-page{padding:1rem}.welcome-title{font-size:2rem}.company-subtitle{font-size:1.1rem}.welcome-header{padding:2rem 1rem}.features-grid{grid-template-columns:1fr;gap:1.5rem}.quick-actions{flex-direction:column;align-items:center}.quick-action-btn{width:100%;max-width:300px}}@media(max-width:480px){.welcome-title{font-size:1.8rem}.feature-card,.support-card{padding:1.5rem}}.reports-page{padding:1.5rem;max-width:1400px;margin:0 auto}.reports-content{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.reports-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:2rem;border-radius:12px;margin-bottom:2rem}.reports-filters{background:#fff;padding:1.5rem;border-radius:8px;margin-bottom:1.5rem;box-shadow:0 2px 4px #0000001a}.filters-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:2rem;margin-bottom:1rem}.filter-group{display:flex;flex-direction:column}.filter-label{font-weight:600;margin-bottom:.5rem;color:#374151;font-size:.95rem}.date-range{display:flex;align-items:center;gap:.75rem}.date-input{padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem;transition:border-color .2s}.date-input:focus{outline:none;border-color:#667eea}.date-separator{color:#6b7280;font-size:.9rem}.autocomplete-container,.autocomplete-input-wrapper{position:relative}.autocomplete-input{width:100%;padding:.75rem 2.5rem .75rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem;transition:border-color .2s}.autocomplete-input:focus{outline:none;border-color:#667eea}.clear-filter-btn{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;color:#6b7280;cursor:pointer;padding:.25rem;border-radius:3px;transition:color .2s}.clear-filter-btn:hover{color:#ef4444}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #d1d5db;border-top:none;border-radius:0 0 6px 6px;max-height:200px;overflow-y:auto;z-index:1000;box-shadow:0 4px 6px #0000001a}.autocomplete-option{padding:.75rem;cursor:pointer;border-bottom:1px solid #f3f4f6;transition:background-color .2s}.autocomplete-option:hover{background-color:#f9fafb}.option-main{font-weight:500;color:#374151}.option-sub{font-size:.8rem;color:#6b7280;margin-top:.25rem}.inactive-badge{background:#fef2f2;color:#dc2626;padding:.125rem .375rem;border-radius:3px;font-size:.75rem;margin-left:.5rem}.autocomplete-no-results{padding:.75rem;text-align:center;color:#6b7280;font-style:italic}.filters-summary{border-top:1px solid #e5e7eb;padding-top:1rem}.active-filters{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.filters-label{font-weight:500;color:#374151}.filter-tag{background:#e0e7ff;color:#3730a3;padding:.375rem .75rem;border-radius:20px;font-size:.85rem;display:flex;align-items:center;gap:.5rem}.filter-tag button{background:none;border:none;color:#3730a3;cursor:pointer;padding:.125rem;border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:.75rem}.filter-tag button:hover{background:#3730a333}.reports-table-loading{display:flex;flex-direction:column;align-items:center;padding:4rem 2rem}.loading-spinner{width:40px;height:40px;border:4px solid #f3f4f6;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.reports-table-empty{text-align:center;padding:4rem 2rem;color:#6b7280}.empty-icon{font-size:4rem;margin-bottom:1rem}.reports-table-container{overflow-x:auto}.reports-table{width:100%;border-collapse:collapse;font-size:.9rem}.reports-table th{background:#f9fafb;padding:1rem .75rem;text-align:left;font-weight:600;color:#374151;border-bottom:1px solid #e5e7eb;white-space:nowrap}.reports-table td{padding:1rem .75rem;border-bottom:1px solid #f3f4f6}.report-row{cursor:pointer;transition:background-color .2s}.report-row:hover{background-color:#f9fafb}.report-id code{background:#f3f4f6;padding:.25rem .5rem;border-radius:4px;font-size:.8rem;font-family:monospace}.user-info .user-name{font-weight:500;color:#374151}.user-info .user-details{font-size:.8rem;color:#6b7280;margin-top:.25rem}.device-info .device-name{font-weight:500;color:#374151}.device-info .device-id{font-size:.8rem;color:#6b7280;margin-top:.25rem}.time-info .time-main{font-weight:500;color:#374151}.time-info .time-created{font-size:.8rem;color:#6b7280;margin-top:.25rem}.location-info .coordinates{font-weight:500;color:#374151}.location-info .precision{font-size:.8rem;color:#6b7280;margin-top:.25rem}.shift-badge{padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:500;text-transform:capitalize}.shift-pauta{background:#dbeafe;color:#1d4ed8}.shift-extra{background:#fef3c7;color:#d97706}.shift-none{background:#f3f4f6;color:#6b7280}.image-available{color:#059669;font-size:.85rem}.image-unavailable{color:#dc2626;font-size:.85rem}.btn-view{background:#667eea;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.85rem;transition:background-color .2s}.btn-view:hover{background:#5a6fd8}.reports-pagination{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background:#f9fafb;border-top:1px solid #e5e7eb}.pagination-info{display:flex;align-items:center;gap:1.5rem;color:#6b7280;font-size:.9rem}.items-select{padding:.375rem .75rem;border:1px solid #d1d5db;border-radius:4px;font-size:.9rem}.pagination-controls{display:flex;align-items:center;gap:.25rem}.pagination-btn{padding:.5rem .75rem;border:1px solid #d1d5db;background:#fff;color:#374151;cursor:pointer;border-radius:4px;font-size:.9rem;transition:all .2s;min-width:40px;display:flex;align-items:center;justify-content:center}.pagination-btn:hover:not(:disabled):not(.ellipsis){background:#f3f4f6;border-color:#9ca3af}.pagination-btn.active{background:#667eea;color:#fff;border-color:#667eea}.pagination-btn.ellipsis{cursor:default;border:none;background:none}@media(max-width:1024px){.filters-row{grid-template-columns:1fr 1fr;gap:1.5rem}.header-content{flex-direction:column;gap:1.5rem}.header-stats{flex-direction:row;gap:1rem}}@media(max-width:768px){.reports-page{padding:1rem}.filters-row{grid-template-columns:1fr;gap:1rem}.date-range{flex-direction:column;align-items:flex-start;gap:.5rem}.date-separator{align-self:center}.header-stats{flex-direction:column;gap:.75rem}.pagination-info{flex-direction:column;align-items:flex-start;gap:.75rem}.reports-pagination{flex-direction:column;gap:1rem}.reports-table{font-size:.8rem}.reports-table th,.reports-table td{padding:.75rem .5rem}}.page-header{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;padding:2rem;margin-bottom:1.5rem;color:#fff;box-shadow:0 8px 32px #667eea4d;position:relative;overflow:hidden}.header-content{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;position:relative;z-index:2}.header-title-section h1{margin:0;font-size:2rem;font-weight:700;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.2)}.header-description{margin:.5rem 0 0;font-size:1rem;opacity:.9;font-weight:400}.stat-card{background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1.25rem 1.5rem;border-radius:12px;border:1px solid rgba(255,255,255,.2);transition:all .3s ease;min-width:200px;text-align:center}.stat-value{font-size:1.5rem;font-weight:700;line-height:1;margin-bottom:.5rem;color:#fff}.stat-label{font-size:.875rem;opacity:.9;font-weight:500;color:#fff}.header-actions{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:2}.last-update{display:flex;align-items:center;gap:.5rem;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:.75rem 1rem;border-radius:8px;border:1px solid rgba(255,255,255,.2)}.update-label{font-size:.875rem;opacity:.9;font-weight:500}.update-time{font-size:.875rem;font-weight:600;color:#fffffff2}.btn.btn-secondary{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:8px;color:#fff;font-weight:600;cursor:pointer;transition:all .2s ease;text-decoration:none;font-size:.875rem}.btn.btn-secondary:hover:not(:disabled){background:#ffffff40;transform:translateY(-1px);box-shadow:0 4px 12px #0003}.btn.btn-secondary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.page-header{padding:1.5rem 1rem}.header-content{flex-direction:column;gap:1.5rem;align-items:stretch}.header-title-section h1{font-size:1.5rem}.header-description{font-size:.875rem}.header-stats{justify-content:center}.stat-card{padding:1rem;min-width:0;flex:1}.header-actions{flex-direction:column;gap:1rem;align-items:stretch}.last-update{justify-content:center}}@media(max-width:480px){.page-header{padding:1rem .75rem;border-radius:12px}.header-title-section h1{font-size:1.25rem}.stat-card{padding:.75rem .5rem}.stat-value{font-size:1.25rem}.stat-label{font-size:.75rem}.btn.btn-secondary{padding:.75rem 1rem;font-size:.75rem}}.filters-section{background:linear-gradient(145deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 4px 6px #0000000d;position:relative;transition:all .3s ease}.filters-section:hover{box-shadow:0 6px 12px #00000014}.filters-header h3{font-size:1.25rem;font-weight:700;color:#1e293b;margin:0;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:flex;align-items:center;gap:.5rem}.title-icon{font-size:1.1em;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;align-items:start}.filter-label{font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem;text-transform:uppercase;letter-spacing:.5px}.field-icon{font-size:1em;opacity:.8}.required-indicator{color:#ef4444;font-weight:700}.form-input{width:100%;padding:.75rem 1rem;border:2px solid #e2e8f0;border-radius:8px;font-size:.875rem;background:#fff;transition:all .2s ease;box-shadow:0 1px 3px #0000001a;font-family:inherit}.form-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;background:#fefeff;transform:translateY(-1px)}.form-input:hover:not(:disabled){border-color:#cbd5e0}.form-input:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed;opacity:.7}.form-select{width:100%;padding:.75rem 2.5rem .75rem 1rem;border:2px solid #e2e8f0;border-radius:8px;font-size:.875rem;background:#fff;transition:all .2s ease;box-shadow:0 1px 3px #0000001a;cursor:pointer;font-family:inherit;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em}.form-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;transform:translateY(-1px)}.form-select:hover:not(:disabled){border-color:#cbd5e0}.form-select:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed;opacity:.7}.date-range-container{display:flex;align-items:center;gap:.5rem}.date-range-input{flex:1;min-width:0}.date-range-separator{color:#64748b;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;padding:0 .25rem}.clear-filter-btn{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;font-size:1rem;color:#ef4444;cursor:pointer;padding:.25rem;border-radius:50%;transition:all .2s ease;display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.clear-filter-btn:active{transform:translateY(-50%) scale(.95)}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:2px solid #e2e8f0;border-radius:8px;box-shadow:0 8px 25px #00000026;z-index:1000;max-height:200px;overflow-y:auto;margin-top:.25rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:dropdownSlideIn .2s ease}@keyframes dropdownSlideIn{0%{opacity:0;transform:translateY(-8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.autocomplete-option{padding:.75rem 1rem;cursor:pointer;border-bottom:1px solid #f1f5f9;transition:all .2s ease;position:relative}.autocomplete-option:hover{background:linear-gradient(90deg,#f8fafc,#e2e8f0);transform:translate(4px)}.btn{padding:.5rem 1rem;border-radius:8px;font-weight:600;font-size:.875rem;border:2px solid transparent;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;font-family:inherit;text-transform:uppercase;letter-spacing:.5px}.btn-outline:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e0;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.btn-outline:active:not(:disabled){transform:translateY(0)}.btn-small{padding:.375rem .75rem;font-size:.75rem}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.status-badge{display:inline-block;padding:.125rem .375rem;border-radius:4px;font-size:.6875rem;font-weight:600;text-transform:uppercase;margin-left:.5rem;letter-spacing:.25px}@media(max-width:1024px){.filters-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.filters-header{flex-direction:column;align-items:flex-start;gap:1rem}.date-range-container{flex-direction:column;gap:.5rem}.date-range-separator{align-self:center}}@media(max-width:768px){.filters-section{padding:1rem}.filters-grid{grid-template-columns:1fr;gap:1rem}.filters-header h3{font-size:1.125rem}.btn{font-size:.8125rem;padding:.5rem .875rem}}@media(max-width:480px){.filters-section{padding:.75rem;margin-bottom:1rem}.form-input,.form-select{font-size:.8125rem;padding:.625rem .875rem}.filter-label{font-size:.8125rem}}.filter-loading{opacity:.7;pointer-events:none}.filter-loading *{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.dashboard-time-filters{margin-bottom:1rem}.dashboard-time-filters .filters-header{margin-bottom:1rem;padding-bottom:.5rem}.dashboard-time-filters .filters-grid{gap:1rem}.refresh-button-container{display:flex;justify-content:flex-end;margin-top:1rem;padding-top:1rem;border-top:2px solid #e2e8f0}.btn-refresh{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;transition:all .3s ease;height:fit-content;box-shadow:0 2px 4px #3498db33;display:flex;align-items:center;gap:.5rem}.btn-refresh:disabled{background:linear-gradient(135deg,#bdc3c7,#95a5a6);cursor:not-allowed;transform:none;box-shadow:none;opacity:.7}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.round-sessions-page{padding:1.5rem;max-width:1400px;margin:0 auto}.round-sessions-content{background:#fff;border-radius:12px;box-shadow:0 4px 6px #00000012;overflow:hidden;margin-top:1.5rem}.round-sessions-list{padding:1.5rem}.round-session-card{background:linear-gradient(145deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:12px;padding:1.5rem;margin-bottom:1rem;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.round-session-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#667eea,#764ba2)}.round-session-card:hover{box-shadow:0 8px 25px #0000001a;transform:translateY(-2px);border-color:#cbd5e0}.round-session-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;gap:1rem}.round-session-status{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.status-badge.active{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 2px 4px #10b9814d}.status-badge.inactive{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 2px 4px #ef44444d}.status-badge.complete{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;box-shadow:0 2px 4px #3b82f64d}.status-badge.incomplete{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;box-shadow:0 2px 4px #f59e0b4d}.round-session-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem;background:#f8fafc;padding:1rem;border-radius:8px;border:1px solid #e2e8f0}.round-session-progress{margin-top:1rem}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.progress-bar{width:100%;height:8px;background:linear-gradient(90deg,#e2e8f0,#cbd5e0);border-radius:4px;overflow:hidden;box-shadow:inset 0 2px 4px #0000001a}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:4px;transition:width .5s ease;position:relative;overflow:hidden}.progress-fill:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s infinite}.progress-fill.complete{background:linear-gradient(90deg,#10b981,#059669)}.tag-summary{margin-top:1rem;padding-top:1rem;border-top:2px solid #e2e8f0}.tag-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.tag-chip{padding:.375rem .75rem;border-radius:16px;font-size:.75rem;font-weight:600;display:flex;align-items:center;gap:.375rem;border:2px solid transparent;transition:all .2s ease;position:relative;overflow:hidden}.tag-chip.scanned{background:linear-gradient(135deg,#dcfdf7,#a7f3d0);color:#065f46;border-color:#10b981}.tag-chip.scanned:hover{transform:scale(1.05);box-shadow:0 4px 8px #10b98133}.tag-chip.not-scanned{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#991b1b;border-color:#ef4444}.tag-chip.not-scanned:hover{transform:scale(1.05);box-shadow:0 4px 8px #ef444433}.tag-chip:not(.scanned):not(.not-scanned){background:linear-gradient(135deg,#f1f5f9,#e2e8f0);color:#475569;border-color:#cbd5e0}.tag-chip-icon{width:.5rem;height:.5rem;border-radius:50%;box-shadow:0 2px 4px #0000001a}.tag-chip-icon.scanned{background:linear-gradient(135deg,#10b981,#059669)}.tag-chip-icon.not-scanned{background:linear-gradient(135deg,#ef4444,#dc2626)}.time-display{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:.8125rem;background:#f1f5f9;padding:.25rem .5rem;border-radius:6px;border:1px solid #e2e8f0}.empty-state{text-align:center;padding:4rem 2rem;color:#64748b}.empty-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}.empty-state h3{font-size:1.5rem;font-weight:600;color:#334155;margin-bottom:.5rem}.empty-state p{font-size:1rem;color:#64748b}.loading-container{display:flex;justify-content:center;align-items:center;padding:4rem 2rem;background:#fff;border-radius:12px}.filters-section{background:linear-gradient(145deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 4px 6px #0000000d;position:relative}.filters-section:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:12px 12px 0 0}.filters-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #e2e8f0}.filters-header h3{font-size:1.25rem;font-weight:700;color:#1e293b;margin:0;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-label{font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.form-input{width:100%;padding:.75rem 1rem;border:2px solid #e2e8f0;border-radius:8px;font-size:.875rem;background:#fff;transition:all .2s ease;box-shadow:0 1px 3px #0000001a}.form-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;background:#fefeff}.form-input:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}.form-input::placeholder{color:#94a3b8;font-style:italic}.form-select{width:100%;padding:.75rem 1rem;border:2px solid #e2e8f0;border-radius:8px;font-size:.875rem;background:#fff;transition:all .2s ease;box-shadow:0 1px 3px #0000001a;cursor:pointer}.form-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-select:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}.autocomplete-container{position:relative;width:100%}.input-with-clear{position:relative;display:flex;align-items:center}.clear-filter-btn{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;font-size:1rem;color:#ef4444;cursor:pointer;padding:.25rem;border-radius:50%;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.clear-filter-btn:hover{background:#fef2f2;transform:translateY(-50%) scale(1.1)}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:2px solid #e2e8f0;border-radius:8px;box-shadow:0 8px 25px #00000026;z-index:1000;max-height:200px;overflow-y:auto;margin-top:.25rem}.autocomplete-option{padding:.75rem 1rem;cursor:pointer;border-bottom:1px solid #f1f5f9;transition:all .2s ease}.autocomplete-option:hover{background:linear-gradient(90deg,#f8fafc,#e2e8f0)}.autocomplete-option:last-child{border-bottom:none}.option-main{font-weight:600;color:#1e293b;font-size:.875rem}.option-sub{font-size:.75rem;color:#64748b;margin-top:.25rem;display:flex;align-items:center;gap:.5rem}.autocomplete-no-results{padding:1rem;text-align:center;color:#64748b;font-style:italic;font-size:.875rem}.status-badge{display:inline-block;padding:.125rem .375rem;border-radius:4px;font-size:.6875rem;font-weight:600;text-transform:uppercase;margin-left:.5rem}.status-badge.active{background-color:#d1fae5;color:#065f46;border:1px solid #10b981}.status-badge.inactive{background-color:#fee2e2;color:#991b1b;border:1px solid #ef4444}.status-badge.maintenance{background-color:#fef3c7;color:#92400e;border:1px solid #f59e0b}.inactive-badge{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;padding:.125rem .5rem;border-radius:12px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.btn{padding:.5rem 1rem;border-radius:8px;font-weight:600;font-size:.875rem;border:2px solid transparent;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:.5rem;text-decoration:none}.btn-outline{background:#fff;border-color:#e2e8f0;color:#475569}.btn-outline:hover{background:#f8fafc;border-color:#cbd5e0;transform:translateY(-1px);box-shadow:0 4px 6px #0000001a}.btn-small{padding:.375rem .75rem;font-size:.8125rem}.round-session-modal{max-width:1200px;width:95vw;max-height:90vh;overflow-y:auto}.session-overview{margin-bottom:2rem}.overview-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 4px 6px #667eea4d}.overview-card h3{margin:0 0 1rem;font-size:1.25rem;font-weight:700}.overview-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.stat-item{display:flex;flex-direction:column;gap:.25rem}.stat-label{font-size:.75rem;font-weight:500;opacity:.9;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:1rem;font-weight:700}.tags-section{margin-top:2rem}.tags-section h3{color:#1e293b;margin-bottom:1rem;font-size:1.25rem;font-weight:700}.progress-overview{margin-bottom:1.5rem;padding:1rem;background:#f8fafc;border-radius:8px;border:2px solid #e2e8f0}.progress-bar-container{display:flex;align-items:center;gap:1rem}.progress-bar{flex:1;height:12px;background:linear-gradient(90deg,#e2e8f0,#cbd5e0);border-radius:6px;overflow:hidden;box-shadow:inset 0 2px 4px #0000001a}.progress-text{font-size:.875rem;font-weight:600;color:#475569;min-width:80px}.tag-detail-card{background:#fff;border:2px solid #e2e8f0;border-radius:12px;padding:1.5rem;transition:all .2s ease}.tag-detail-card.scanned{border-color:#10b981;background:linear-gradient(145deg,#fff,#f0fdf4)}.tag-detail-card.not-scanned{border-color:#ef4444;background:linear-gradient(145deg,#fff,#fef2f2)}.tag-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #e2e8f0}.tag-info{display:flex;flex-direction:column;gap:.5rem}.tag-id{font-size:1rem;font-weight:700;color:#1e293b;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace}.tag-status{font-size:.875rem;font-weight:600;padding:.25rem .75rem;border-radius:16px;display:inline-block}.tag-status.scanned{background:linear-gradient(135deg,#dcfdf7,#a7f3d0);color:#065f46}.tag-status.not-scanned{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#991b1b}.view-location-btn{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#000;border:none;padding:.5rem 1rem;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.view-location-btn:hover{transform:translateY(-1px);box-shadow:0 4px 8px #3b82f64d}.tag-details{display:flex;flex-direction:column;gap:1rem}.tag-expected,.tag-actual{padding:1rem;border-radius:8px;border:1px solid #e2e8f0}.tag-expected{background:linear-gradient(145deg,#f8fafc,#e2e8f0)}.tag-actual{background:linear-gradient(145deg,#f0f9ff,#dbeafe)}.tag-expected h4,.tag-actual h4{margin:0 0 .5rem;font-size:.875rem;font-weight:700;color:#374151}.location-info{display:flex;flex-direction:column;gap:.25rem}.location-info span{font-size:.8125rem;color:#475569}.tag-timing{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:8px;border:1px solid #f59e0b}.timing-label{font-size:.875rem;font-weight:600;color:#92400e}.timing-value{font-size:.875rem;font-weight:700;color:#92400e;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace}.definition-grid{display:grid;gap:1rem}.definition-item,.info-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.definition-label,.info-label{font-weight:600;color:#374151;font-size:.875rem}.definition-value,.info-value{font-weight:500;color:#111827;text-align:right}.definition-value.status.active{color:#059669;font-weight:700}.definition-value.status.inactive{color:#6b7280;font-weight:700}.location-client-grid{display:grid;gap:1.5rem}.location-info,.client-info{padding:1rem;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #0ea5e9;border-radius:12px}.location-info h4,.client-info h4{margin:0 0 1rem;color:#0c4a6e;font-size:1rem;font-weight:700}.info-grid{display:grid;gap:.75rem}.info-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid #e0f2fe}.definition-tags-section{margin:1.5rem 0;padding:1.5rem;background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:1px solid #22c55e;border-radius:12px}.definition-tags-section h4{margin:0 0 1rem;color:#14532d;font-size:1.1rem;font-weight:700}.definition-tags-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.definition-tag-card{padding:1rem;border-radius:8px;border:2px solid transparent;transition:all .2s ease}.definition-tag-card.completed{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border-color:#10b981}.definition-tag-card.pending{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#f59e0b}.definition-tag-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.definition-tag-header .tag-id{font-weight:700;font-size:.875rem;color:#111827}.definition-tag-header .tag-status{font-size:.75rem;font-weight:600;padding:.25rem .5rem;border-radius:4px}.definition-tag-header .tag-status.completed{background:#10b981;color:#fff}.definition-tag-header .tag-status.pending{background:#f59e0b;color:#fff}.definition-tag-details{font-size:.75rem;color:#6b7280}.tag-coordinate{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:.75rem}.loading-state{padding:2rem;text-align:center;color:#6b7280;font-style:italic;background:#f9fafb;border-radius:8px;border:1px dashed #d1d5db}.no-data-state{padding:1.5rem;text-align:center;color:#9ca3af;font-style:italic;background:#f9fafb;border-radius:8px;border:1px dashed #d1d5db}.modal-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 25px #0000001a;max-width:800px;width:90vw;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:2px solid #e2e8f0;background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-radius:12px 12px 0 0}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#64748b;padding:.5rem;border-radius:50%;transition:all .2s ease;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem}.modal-close:hover{background:#f1f5f9;color:#ef4444;transform:scale(1.1)}.modal-body{padding:1.5rem}.map-modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1100;padding:1rem}.map-modal{background:#fff;border-radius:12px;box-shadow:0 25px 50px #00000040;max-width:900px;width:95vw;max-height:90vh;overflow-y:auto}.map-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:2px solid #e2e8f0;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:12px 12px 0 0}.map-modal-header h3{margin:0;font-size:1.25rem;font-weight:700}.btn-close-modal{background:#fff3;border:none;color:#fff;font-size:1.25rem;cursor:pointer;padding:.5rem;border-radius:50%;transition:all .2s ease;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem}.btn-close-modal:hover{background:#ffffff4d;transform:scale(1.1)}.interactive-map-container{margin:1rem 0;border-radius:8px;overflow:hidden;border:2px solid #e2e8f0}.map-info{padding:1rem;background:#f8fafc;border-radius:8px;margin-top:1rem;border:1px solid #e2e8f0}.map-info p{margin:.25rem 0;font-size:.875rem;color:#475569}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e2e8f0}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 8px #667eea4d}@media(max-width:768px){.round-session-modal{width:100vw;height:100vh;max-width:none;max-height:none;border-radius:0}.modal-header{border-radius:0}.overview-stats{grid-template-columns:1fr}.tag-header{flex-direction:column;align-items:flex-start;gap:.75rem}.tag-details{gap:.75rem}.map-modal{width:100vw;height:100vh;max-width:none;max-height:none;border-radius:0}.map-modal-header{border-radius:0}}@media(max-width:1024px){.round-sessions-page{padding:1rem}.round-session-details{grid-template-columns:1fr 1fr}}@media(max-width:768px){.round-sessions-page{padding:.75rem}.round-session-card{padding:1rem;margin-bottom:.75rem}.round-session-header{flex-direction:column;align-items:flex-start;gap:.75rem}.round-session-details{grid-template-columns:1fr;gap:.75rem;padding:.75rem}.round-session-status,.tag-chips{justify-content:flex-start}.status-badge{font-size:.6875rem;padding:.1875rem .625rem}}@media(max-width:480px){.round-session-id{font-size:.875rem}.round-session-details{padding:.5rem}.detail-label{font-size:.6875rem}.detail-value{font-size:.8125rem}.tag-chip{padding:.25rem .5rem;font-size:.6875rem}.progress-stats{font-size:.6875rem}}.pagination-container{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-top:1px solid #e2e8f0;border-bottom-left-radius:12px;border-bottom-right-radius:12px;margin-top:auto}.pagination-info{display:flex;align-items:center;gap:.75rem;font-size:.875rem;color:#64748b}.pagination-icon{font-size:1.25rem;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.pagination-text{font-weight:500}.pagination-text strong{color:#1e293b;font-weight:700}.pagination-controls{display:flex;align-items:center;gap:1rem}.pagination-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border:1px solid #e2e8f0;border-radius:8px;background:linear-gradient(135deg,#fff,#f8fafc);color:#475569;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.pagination-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transition:left .5s ease}.pagination-btn:hover:before{left:100%}.pagination-btn.enabled:hover{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#000;border-color:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 8px #3b82f64d}.pagination-btn.enabled:active{transform:translateY(0);box-shadow:0 2px 4px #3b82f633}.pagination-btn.disabled{background:#f1f5f9;color:#94a3b8;cursor:not-allowed;border-color:#e2e8f0}.btn-icon{font-size:.875rem;transition:transform .2s ease}.pagination-btn.enabled:hover .btn-icon{transform:scale(1.1)}.prev-btn.enabled:hover .btn-icon{transform:translate(-2px)}.next-btn.enabled:hover .btn-icon{transform:translate(2px)}.pagination-numbers{display:flex;align-items:center;gap:.5rem;position:relative}.pagination-number{width:40px;height:40px;border:1px solid #e2e8f0;border-radius:8px;background:linear-gradient(135deg,#fff,#f8fafc);color:#475569;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.pagination-number:hover:before{width:100%;height:100%}.pagination-number:hover{color:#000;border-color:#1d4ed8;transform:translateY(-2px);box-shadow:0 4px 8px #3b82f633;z-index:1}.pagination-number span{position:relative;z-index:2}.pagination-number.active{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#000;border-color:#1d4ed8;box-shadow:0 2px 8px #3b82f64d;transform:translateY(-1px)}.pagination-number.active:before{width:100%;height:100%}.pagination-number.dots{background:transparent;border:none;color:#94a3b8;cursor:default;font-weight:700}.pagination-number.dots:hover{background:transparent;color:#94a3b8;transform:none;box-shadow:none}.pagination-number:disabled{cursor:not-allowed;opacity:.5}.pagination-loading{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:8px;color:#92400e;font-size:.875rem;font-weight:600}.loading-spinner{width:16px;height:16px;border:2px solid #fbbf24;border-top:2px solid #92400e;border-radius:50%;animation:spin 1s linear infinite}@media(max-width:768px){.pagination-container{flex-direction:column;gap:1rem;padding:1rem}.pagination-info{order:2;text-align:center}.pagination-controls{order:1;flex-wrap:wrap;justify-content:center;gap:.5rem}.pagination-btn{padding:.5rem .75rem;font-size:.75rem}.pagination-number{width:36px;height:36px;font-size:.75rem}.btn-text{display:none}.btn-icon{font-size:1rem}}@media(max-width:480px){.pagination-numbers{gap:.25rem}.pagination-number{width:32px;height:32px;font-size:.75rem}.pagination-btn{padding:.5rem;min-width:44px}}.round-definitions-page{padding:1.5rem;max-width:1400px;margin:0 auto}.round-definitions-content{background:#fff;border-radius:12px;box-shadow:0 4px 6px #00000012;overflow:hidden;margin-top:1.5rem}.loading-container,.error-container{display:flex;justify-content:center;align-items:center;padding:3rem;background:#fff;border-radius:12px}.error-message{background:linear-gradient(135deg,#fef2f2,#fee2e2);color:#991b1b;padding:1.5rem;border-radius:12px;border:1px solid #fecaca;display:flex;align-items:center;gap:1rem;font-size:.875rem;font-weight:500;box-shadow:0 4px 6px #ef44441a}.retry-button{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:none;padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;transition:all .2s ease;box-shadow:0 2px 4px #ef44444d}.retry-button:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-1px);box-shadow:0 4px 8px #ef444466}.round-definitions-list{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;background:#fff;border-radius:12px;border:2px dashed #e2e8f0;text-align:center;margin:1.5rem}.empty-icon{font-size:4rem;margin-bottom:1rem;opacity:.6}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-header .section-title{margin:0}.section-header .btn{font-size:.875rem;padding:.5rem 1rem;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;font-weight:500}.section-header .btn:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 8px #3b82f64d}.empty-state h3{color:#475569;margin-bottom:.5rem;font-size:1.25rem;font-weight:600}.empty-state p{color:#64748b;margin:0;font-size:.875rem}@media(max-width:768px){.round-definitions-page{padding:1rem}.round-definitions-content{margin-top:1rem;border-radius:8px}.loading-container,.error-container{padding:2rem 1rem}.error-message{flex-direction:column;text-align:center;padding:1rem}.round-definitions-list{padding:1rem}.empty-state{padding:2rem 1rem;margin:1rem}}@media(max-width:480px){.round-definitions-page{padding:.5rem}.round-definitions-content{margin-top:.5rem}.round-definitions-list{padding:.5rem;gap:.75rem}}.round-definition-card{background:linear-gradient(145deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:12px;padding:1.5rem;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden;box-shadow:0 2px 8px #0000000a}.round-definition-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#8b5cf6,#a855f7);opacity:.8}.round-definition-card:hover{box-shadow:0 8px 25px #0000001a;transform:translateY(-2px);border-color:#cbd5e0}.round-definition-card:hover:before{opacity:1;background:linear-gradient(90deg,#8b5cf6,#a855f7,#ec4899)}.round-definition-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;gap:1rem}.definition-title{flex:1}.definition-name-container{display:flex;flex-direction:column;gap:.25rem}.definition-name{font-weight:700;color:#2d3748;font-size:1.125rem;margin:0;background:linear-gradient(135deg,#8b5cf6,#a855f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.2}.definition-id{font-size:.75rem;color:#64748b;font-weight:500;font-family:Monaco,Menlo,Ubuntu Mono,monospace;background:#f1f5f9;padding:.25rem .5rem;border-radius:4px;width:fit-content}.definition-status{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.status-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border:2px solid transparent;transition:all .2s ease}.status-badge.inactive{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 2px 4px #10b9814d}.status-badge.active{background:linear-gradient(135deg,#6b7280,#4b5563);color:#fff;box-shadow:0 2px 4px #6b72804d}.health-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.health-badge.healthy{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;box-shadow:0 2px 4px #3b82f64d}.health-badge.warning{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;box-shadow:0 2px 4px #f59e0b4d}.health-badge.error{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 2px 4px #ef44444d}.round-definition-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem;background:#f8fafc;padding:1rem;border-radius:8px;border:1px solid #e2e8f0}.detail-group{display:flex;flex-direction:column;gap:.25rem}.detail-label{font-size:.75rem;color:#64748b;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.detail-value{font-size:.875rem;color:#1e293b;font-weight:500}.time-display{font-family:Monaco,Menlo,Ubuntu Mono,monospace;background:#e2e8f0;padding:.25rem .5rem;border-radius:4px;width:fit-content}.definition-progress{margin-bottom:1.5rem}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.progress-title{font-size:.75rem;color:#64748b;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.progress-stats{font-size:.75rem;color:#475569;font-weight:600;background:#e2e8f0;padding:.25rem .5rem;border-radius:12px}.configuration-indicators{display:flex;gap:.75rem;flex-wrap:wrap}.config-indicator{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:8px;font-size:.75rem;font-weight:600;transition:all .2s ease}.config-indicator.configured{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 2px 4px #10b98133}.config-indicator.pending{background:linear-gradient(135deg,#f3f4f6,#e5e7eb);color:#6b7280;border:1px solid #d1d5db}.config-icon{font-size:.875rem}.config-text{white-space:nowrap}.tag-summary{margin-bottom:1rem}.tag-summary .detail-label{margin-bottom:.5rem;display:block}.tag-chips{display:flex;flex-wrap:wrap;gap:.5rem}.tag-chip{display:flex;align-items:center;gap:.25rem;padding:.375rem .75rem;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:20px;font-size:.75rem;font-weight:500;color:#475569;transition:all .2s ease}.tag-chip.active{background:linear-gradient(135deg,#ddd6fe,#c4b5fd);border-color:#a855f7;color:#7c3aed}.tag-chip.empty{background:linear-gradient(135deg,#fef2f2,#fecaca);border-color:#fca5a5;color:#dc2626;font-style:italic}.tag-chip:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.tag-chip-icon{width:8px;height:8px;border-radius:50%;background:#cbd5e0}.tag-chip-icon.active{background:linear-gradient(135deg,#8b5cf6,#a855f7);box-shadow:0 0 0 2px #8b5cf633}.tag-comment{font-size:.625rem;color:#64748b;font-style:italic}.intervals-summary{margin-top:1rem}.intervals-summary .detail-label{margin-bottom:.5rem;display:block}.intervals-grid{display:flex;flex-wrap:wrap;gap:.5rem}.interval-chip{display:flex;flex-direction:column;gap:.25rem;padding:.5rem .75rem;background:linear-gradient(135deg,#fff7ed,#fed7aa);border:1px solid #fdba74;border-radius:8px;font-size:.75rem;color:#ea580c;transition:all .2s ease;min-width:120px}.interval-chip:hover{transform:translateY(-1px);box-shadow:0 2px 4px #ea580c33}.interval-chip.more{background:linear-gradient(135deg,#f3f4f6,#e5e7eb);border-color:#d1d5db;color:#6b7280;align-items:center;justify-content:center;font-style:italic;min-width:80px}.interval-route{font-weight:600;font-family:Monaco,Menlo,Ubuntu Mono,monospace}.interval-times{font-size:.625rem;color:#c2410c;font-weight:500}@keyframes shimmer{0%{left:-100%}to{left:100%}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.config-indicator.pending{animation:pulse 2s infinite}@media(max-width:768px){.round-definition-card{padding:1rem}.round-definition-header{flex-direction:column;align-items:flex-start;gap:.75rem}.round-definition-details{grid-template-columns:1fr;gap:.75rem;padding:.75rem}.definition-status{width:100%;justify-content:flex-start}.configuration-indicators{gap:.5rem}.config-indicator{padding:.375rem .5rem}.tag-chips,.intervals-grid{gap:.375rem}.interval-chip{min-width:100px;padding:.375rem .5rem}}@media(max-width:480px){.definition-name{font-size:1rem}.definition-id{font-size:.625rem}.configuration-indicators{flex-direction:column;gap:.375rem}.config-indicator{justify-content:center}.intervals-grid{flex-direction:column}.interval-chip{min-width:unset}}.modal-backdrop{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.round-definition-modal{background:#fff;border-radius:16px;max-width:900px;width:100%;max-height:90vh;overflow:hidden;box-shadow:0 25px 50px #00000040;animation:slideIn .3s ease;position:relative}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{background:linear-gradient(135deg,#8b5cf6,#a855f7);color:#fff;padding:1.5rem;display:flex;justify-content:space-between;align-items:flex-start;position:relative;border-radius:16px 16px 0 0}.header-info h2{margin:0 0 .25rem;font-size:1.5rem;font-weight:700}.header-info p{margin:0;font-size:.875rem;opacity:.9}.close-btn{background:#fff3;border:none;color:#fff;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;transition:all .2s ease}.close-btn:hover{background:#ffffff4d;transform:scale(1.05)}.modal-body{padding:0;max-height:calc(90vh - 100px);overflow-y:auto}.modal-body::-webkit-scrollbar{width:8px}.modal-body::-webkit-scrollbar-track{background:#f1f5f9}.modal-body::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:4px}.modal-body::-webkit-scrollbar-thumb:hover{background:#a0aec0}.definition-overview{background:linear-gradient(135deg,#f8fafc,#f1f5f9);padding:2rem;border-bottom:1px solid #e2e8f0}.overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:1.5rem}.overview-item{text-align:center;padding:1rem;background:#fff;border-radius:12px;border:1px solid #e2e8f0;box-shadow:0 2px 4px #0000000d}.overview-label{display:block;font-size:.75rem;color:#64748b;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem}.overview-value{font-size:1.125rem;font-weight:700;color:#1e293b}.status-indicator{padding:.5rem 1rem;border-radius:25px;font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;display:inline-flex;align-items:center;gap:.5rem}.status-indicator.active{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 6px #10b9814d}.status-indicator.inactive{background:linear-gradient(135deg,#6b7280,#4b5563);color:#fff;box-shadow:0 4px 6px #6b72804d}.info-section{padding:2rem;border-bottom:1px solid #f1f5f9}.info-section:last-child{border-bottom:none}.section-title{margin:0 0 1.5rem;font-size:1.25rem;font-weight:700;color:#1e293b;display:flex;align-items:center;gap:.5rem}.definition-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.detail-card{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:12px;padding:1.5rem}.detail-card h4{margin:0 0 1rem;font-size:.875rem;color:#64748b;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.detail-info{display:flex;flex-direction:column;gap:.5rem}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid #e2e8f0}.detail-row:last-child{border-bottom:none}.detail-label{font-size:.875rem;color:#64748b;font-weight:500}.detail-value{font-size:.875rem;color:#1e293b;font-weight:600;font-family:Monaco,Menlo,Ubuntu Mono,monospace}.tags-list{display:flex;flex-direction:column;gap:1rem}.tag-detail-card{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:12px;padding:1.5rem;transition:all .3s ease}.tag-detail-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-1px)}.tag-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;gap:1rem}.tag-info{flex:1}.tag-id{font-size:.875rem;font-weight:700;color:#8b5cf6;font-family:Monaco,Menlo,Ubuntu Mono,monospace;background:#f3f4f6;padding:.25rem .5rem;border-radius:4px;display:inline-block;margin-bottom:.5rem}.tag-comment{font-size:.75rem;color:#64748b;font-style:italic;display:block}.view-map-btn{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:.75rem;font-weight:600;transition:all .2s ease;white-space:nowrap}.view-map-btn:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af);transform:translateY(-1px);box-shadow:0 4px 8px #3b82f64d}.tag-coordinates{background:#f1f5f9;padding:1rem;border-radius:8px;border:1px solid #e2e8f0;margin-top:1rem}.coordinates-title{font-size:.75rem;color:#64748b;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem;display:block}.coordinates-value{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875rem;color:#1e293b;font-weight:600}.intervals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.interval-card{background:linear-gradient(135deg,#fff7ed,#fed7aa);border:1px solid #fdba74;border-radius:12px;padding:1.5rem;transition:all .3s ease}.interval-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #ea580c26}.interval-route{font-size:.875rem;font-weight:700;color:#ea580c;margin-bottom:.75rem;font-family:Monaco,Menlo,Ubuntu Mono,monospace;background:#ffffff80;padding:.5rem;border-radius:6px}.interval-times{display:flex;flex-wrap:wrap;gap:.5rem}.time-chip{background:#fffc;border:1px solid #fdba74;padding:.25rem .5rem;border-radius:20px;font-size:.75rem;color:#c2410c;font-weight:600}.empty-tags{text-align:center;padding:3rem;color:#64748b;font-style:italic}.empty-intervals{text-align:center;padding:2rem;color:#64748b;font-style:italic}@media(max-width:768px){.modal-backdrop{padding:0;align-items:stretch}.round-definition-modal{border-radius:16px 16px 0 0;max-height:100vh;margin-top:10vh}.overview-grid,.definition-details-grid{grid-template-columns:1fr;gap:1rem}.tag-header{flex-direction:column;align-items:stretch;gap:.75rem}.view-map-btn{align-self:flex-start}.intervals-grid{grid-template-columns:1fr}.info-section,.definition-overview{padding:1.5rem}}@media(max-width:480px){.modal-header{padding:1rem}.header-info h2{font-size:1.25rem}.info-section,.definition-overview,.tag-detail-card,.interval-card{padding:1rem}}.interval-detail-card{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:12px;padding:1.5rem;margin-bottom:1rem;transition:all .2s ease}.interval-detail-card:hover{transform:translateY(-1px);box-shadow:0 8px 25px #0000001a;border-color:#cbd5e1}.interval-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;gap:1rem}.interval-route .tag-route{font-weight:600;color:#1e293b;font-size:.95rem;display:block}.interval-route .route-full-ids{font-size:.75rem;color:#64748b;font-family:Courier New,monospace;display:block;margin-top:.25rem}.interval-stats{display:flex;align-items:center;gap:.75rem}.stat-item{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;padding:.375rem .75rem;border-radius:6px;font-size:.75rem;font-weight:600}.interval-content{display:flex;flex-direction:column;gap:1.25rem}.time-statistics{display:flex;gap:1.5rem;padding:1rem;background:#fff;border-radius:8px;border:1px solid #e2e8f0}.stat-group{display:flex;flex-direction:column;align-items:center;gap:.25rem}.stat-label{font-size:.75rem;color:#64748b;font-weight:500}.stat-value{font-size:1rem;font-weight:700;color:#1e293b}.stat-value.main{font-size:1.125rem;color:#3b82f6}.interval-times{display:flex;flex-direction:column;gap:.75rem}.times-label{font-size:.875rem;font-weight:600;color:#374151}.time-chips{display:flex;flex-wrap:wrap;gap:.5rem}.time-chip{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;padding:.375rem .75rem;border-radius:6px;font-size:.75rem;font-weight:600;box-shadow:0 2px 4px #f59e0b33}.dashboard-page{padding:1.5rem;max-width:1400px;margin:0 auto}.dashboard-content{margin-top:1.5rem;display:grid;grid-template-columns:1fr;gap:1.5rem}.dashboard-controls,.dashboard-main{display:grid;grid-template-columns:1fr;gap:1.5rem}.page-header{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;padding:2rem;margin-bottom:0;color:#fff;box-shadow:0 8px 32px #667eea4d;position:relative;overflow:hidden}.page-header:before{content:"";position:absolute;top:-50%;right:-50%;width:100%;height:200%;background:linear-gradient(45deg,transparent,rgba(255,255,255,.1),transparent);transform:rotate(45deg);animation:shimmer 3s infinite}@keyframes shimmer{0%{transform:translate(-100%) translateY(-100%) rotate(45deg)}to{transform:translate(100%) translateY(100%) rotate(45deg)}}.header-main{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;position:relative;z-index:2}.header-content{display:flex;align-items:center;gap:3rem;flex:1}.header-title h1{margin:0;font-size:2rem;font-weight:700;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.2)}.header-subtitle{margin:.5rem 0 0;font-size:1rem;opacity:.9;font-weight:400}.header-stats{display:flex;gap:1.5rem}.stat-card{display:flex;align-items:center;gap:1rem;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1.25rem 1.5rem;border-radius:12px;border:1px solid rgba(255,255,255,.2);transition:all .3s ease}.stat-card:hover{background:#fff3;transform:translateY(-2px)}.stat-icon{font-size:2rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.stat-content{display:flex;flex-direction:column}.stat-value{font-size:2rem;font-weight:700;line-height:1;margin-bottom:.25rem}.stat-label{font-size:.875rem;opacity:.9;font-weight:500}.header-actions{display:flex;gap:1rem}.btn-refresh{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:8px;color:#fff;font-weight:600;cursor:pointer;transition:all .2s ease;text-decoration:none;font-size:.875rem}.btn-refresh:hover:not(:disabled){background:#ffffff40;transform:translateY(-1px);box-shadow:0 4px 12px #0003}.btn-refresh:disabled{opacity:.6;cursor:not-allowed}.btn-refresh .btn-icon{font-size:1rem;transition:transform .3s ease}.btn-refresh:not(:disabled):hover .btn-icon{transform:rotate(180deg)}.btn-refresh:disabled .btn-icon{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.header-info{display:flex;gap:2.5rem;align-items:center;position:relative;z-index:2;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1rem 1.5rem;border-radius:8px;border:1px solid rgba(255,255,255,.2)}.info-item{display:flex;align-items:center;gap:.75rem;font-size:.9rem;font-weight:500;color:#fffffff2;text-shadow:0 1px 2px rgba(0,0,0,.3)}.info-icon{font-size:1.1rem;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.dashboard{width:100%}.page-title{color:#2c3e50;margin-bottom:2rem;font-size:2rem}.loading{text-align:center;padding:2rem;font-size:1.2rem;color:#7f8c8d}.error-message{background-color:#fee;color:#c33;padding:1rem;border-radius:4px;margin-bottom:1rem;border:1px solid #fcc}.time-selector{background:linear-gradient(135deg,#fff,#f8f9fa);padding:1.5rem;border-radius:12px;box-shadow:0 4px 6px #00000012,0 1px 3px #0000000f;margin-bottom:0;border:1px solid rgba(225,232,237,.6);animation:slideInDown .3s ease-out}.time-selector-title{display:flex;align-items:center;margin-bottom:1rem;color:#2c3e50;font-weight:600;font-size:1rem}@keyframes slideInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.time-controls{display:flex;gap:1.5rem;align-items:end;flex-wrap:wrap}.time-group{display:flex;flex-direction:column;gap:.5rem;min-width:200px}.time-group label{color:#2c3e50;font-weight:600;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.25rem}.time-group input{padding:.75rem 1rem;border:2px solid #e1e8ed;border-radius:8px;font-size:.95rem;background:#fff;transition:all .3s ease;color:#2c3e50;font-family:inherit;min-width:180px}.time-group input:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a;background:#fbfdff}.time-group input:hover{border-color:#bdc3c7}.btn-refresh{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;transition:all .3s ease;height:fit-content;box-shadow:0 2px 4px #3498db33}.btn-refresh:hover:not(:disabled){background:linear-gradient(135deg,#2980b9,#1f618d);transform:translateY(-1px);box-shadow:0 4px 8px #3498db4d}.btn-refresh:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 4px #3498db33}.btn-refresh:disabled{background:linear-gradient(135deg,#bdc3c7,#95a5a6);cursor:not-allowed;transform:none;box-shadow:none}.stats-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:0}.stat-card h3{color:#7f8c8d;font-size:.9rem;margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.5px}.stat-number{color:#2c3e50;font-size:2.5rem;font-weight:700;margin:0}.stat-text{color:#2c3e50;font-size:1.2rem;margin:0}.arrivals-container{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.arrivals-container h2{color:#2c3e50;margin:0 0 1.5rem}.no-data{text-align:center;color:#7f8c8d;padding:2rem}.arrivals-grid{display:grid;gap:1rem;grid-template-columns:1fr}@media(min-width:576px){.arrivals-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:768px){.arrivals-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1024px){.arrivals-grid{grid-template-columns:repeat(4,1fr)}}@media(min-width:1400px){.arrivals-grid{grid-template-columns:repeat(5,1fr)}}.arrival-card{border:1px solid #e1e8ed;border-radius:4px;padding:1rem;transition:box-shadow .3s}.arrival-card:hover{box-shadow:0 4px 8px #0000001a}.arrival-card.clickable{cursor:pointer}.arrival-card.clickable:hover{box-shadow:0 6px 12px #00000026;transform:translateY(-2px)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;border-radius:8px;max-width:90vw;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 10px 25px #0003}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e1e8ed;background:#f8f9fa;border-radius:8px 8px 0 0}.modal-header h2{margin:0;color:#2c3e50}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#7f8c8d;padding:0;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center}.modal-close:hover{background:#e74c3c;color:#fff}.modal-body{padding:1.5rem;min-width:400px}.modal-loading{text-align:center;padding:2rem;color:#7f8c8d}.modal-error{background-color:#fee;color:#c33;padding:1rem;border-radius:4px;border:1px solid #fcc}.report-details{display:grid;gap:1.5rem}.detail-section{border:1px solid #e1e8ed;border-radius:4px;padding:1rem}.detail-section h3{margin:0 0 1rem;color:#2c3e50;border-bottom:1px solid #e1e8ed;padding-bottom:.5rem}.detail-section p{margin:.5rem 0;color:#34495e}.image-container{text-align:center}.report-image{max-width:100%;max-height:400px;border-radius:4px;box-shadow:0 2px 8px #0000001a}.arrival-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid #e1e8ed}.arrival-header h3{color:#2c3e50;margin:0;font-size:1.1rem}.arrival-time{color:#7f8c8d;font-size:.9rem}.arrival-body p{margin:.5rem 0;color:#34495e;font-size:.9rem}@media(max-width:768px){.page-title{font-size:1.5rem}.time-selector{padding:1rem}.time-controls{flex-direction:column;align-items:stretch;gap:1rem}.time-group{min-width:100%}.time-group input{min-width:100%;padding:.875rem 1rem;font-size:1rem}.btn-refresh{padding:.875rem 1.5rem;font-size:1rem;width:100%}.stats-container{grid-template-columns:1fr}.stat-number{font-size:2rem}.arrival-header{flex-direction:column;align-items:flex-start;gap:.5rem}.modal-content{margin:1rem;max-width:calc(100vw - 2rem)}.modal-body{min-width:unset;padding:1rem}.detail-section{padding:.75rem}.report-image{max-height:250px}}.expectation-details{display:grid;gap:1.5rem}.reports-list{display:grid;gap:1rem}.reports-comparison{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:1rem}.reports-section{background:#fff;border:1px solid #e1e8ed;border-radius:8px;padding:1.5rem}.reports-section h4{margin:0 0 1rem;color:#2c3e50;font-size:1.1rem;font-weight:600;padding-bottom:.5rem;border-bottom:2px solid transparent}.expected-reports h4{border-bottom-color:#3498db}.received-reports h4{border-bottom-color:#27ae60}.loading-users{text-align:center;color:#7f8c8d;font-style:italic;padding:1rem}.report-item{border:1px solid #e1e8ed;border-radius:6px;padding:1rem;background:#f8f9fa;transition:transform .2s ease,box-shadow .2s ease}.report-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.report-item.assigned{border-left:4px solid #3498db}.report-item.received{border-left:4px solid #27ae60}.report-item.pending{background:#fef9e7;border-color:#f39c12}.report-item.fulfilled{background:#f0f9f5}.report-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.report-info{display:flex;flex-direction:column;gap:.4rem}.report-info p{margin:0;font-size:.9rem}.report-type-badge{background:#34495e;color:#fff;padding:.25rem .75rem;border-radius:4px;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px}.report-type-badge.expected{background:#3498db}.report-type-badge.received{background:#27ae60}.status-badge{padding:.25rem .75rem;border-radius:4px;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px}.status-badge.fulfilled{background:#d5f4e6;color:#27ae60;font-weight:600}.status-badge.pending{background:#fef5e7;color:#f39c12;font-weight:600}.btn-view-report{background:#3498db;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;margin-top:.5rem;transition:background .3s;width:100%}.btn-view-report:hover{background:#2980b9}@media(max-width:768px){.reports-comparison{grid-template-columns:1fr;gap:1rem}}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:2rem;padding:1rem}.pagination-btn{background:#3498db;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:background .3s}.pagination-btn:hover:not(:disabled){background:#2980b9}.pagination-btn:disabled{background:#bdc3c7;cursor:not-allowed}.pagination-info{color:#2c3e50;font-weight:600}.image-section{margin-bottom:1.5rem;text-align:center}.image-wrapper{display:inline-block;max-width:100%;border-radius:12px;overflow:hidden;box-shadow:0 8px 24px #0000001f;background:#fff}.report-image-main{max-width:100%;max-height:300px;object-fit:cover;display:block;border-radius:12px 12px 0 0}.image-filename{background:linear-gradient(135deg,#f8f9fa,#e9ecef);padding:.75rem 1rem;font-size:.85rem;color:#495057;border-top:1px solid #dee2e6;text-align:center}.no-image-container,.error-image-container{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:2px dashed #dee2e6;border-radius:12px;padding:2rem;text-align:center;color:#6c757d}.no-image-icon,.error-image-icon{font-size:3rem;margin-bottom:1rem;opacity:.7}.info-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.detail-section h3{color:#2c3e50;font-size:1.1rem;font-weight:600;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid #e1e8ed;display:flex;align-items:center;gap:.5rem}.info-row{display:flex;justify-content:space-between;align-items:flex-start;padding:.75rem 0;border-bottom:1px solid #f8f9fa;gap:1rem}.info-row:last-child{border-bottom:none}.info-label{font-weight:600;color:#495057;min-width:140px;flex-shrink:0}.info-value{color:#2c3e50;text-align:right;word-break:break-word}.distance-value{background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:#1565c0;padding:.25rem .5rem;border-radius:6px;font-weight:600}.coordinates-clickable{cursor:pointer;padding:.25rem .5rem;border-radius:6px;background:linear-gradient(135deg,#f3e5f5,#e1bee7);color:#6a1b9a;font-weight:600;transition:all .2s ease;display:inline-block}.coordinates-clickable:hover{background:linear-gradient(135deg,#e1bee7,#ce93d8);color:#4a148c;transform:translateY(-1px);box-shadow:0 2px 8px #6a1b9a33}.shift-type-editor{display:flex;align-items:center;gap:.5rem}.shift-type-editor select{padding:.25rem .5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;min-width:120px}.shift-type-editor select:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 2px #3498db33}.shift-type-buttons{display:flex;gap:.25rem}.btn-save,.btn-cancel{padding:.25rem .5rem;border:none;border-radius:3px;cursor:pointer;font-size:.8rem;min-width:28px;height:28px;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.btn-save{background:#27ae60;color:#fff}.btn-save:hover:not(:disabled){background:#219a52}.btn-save:disabled{background:#bdc3c7;cursor:not-allowed}.btn-cancel{background:#e74c3c;color:#fff}.btn-cancel:hover:not(:disabled){background:#c0392b}.shift-type-display{display:flex;align-items:center;gap:.5rem}.btn-edit-shift{background:none;border:none;cursor:pointer;padding:.25rem;border-radius:3px;font-size:1rem;transition:background-color .2s}.btn-edit-shift:hover{background:#f8f9fa}.shift-type-error{color:#e74c3c;font-size:.8rem;margin-top:.25rem;padding:.5rem;background:#fdf2f2;border:1px solid #f5c6cb;border-radius:4px}@media(max-width:768px){.info-grid{grid-template-columns:1fr}.info-row{flex-direction:column;align-items:flex-start;gap:.25rem}.info-label{min-width:auto}.info-value{text-align:left}.report-image-main{max-height:200px}.map-modal{width:95%;margin:1rem}.modal-actions{flex-direction:column-reverse}}@media(max-width:768px){.dashboard-page{padding:1rem}.header-main{flex-direction:column;gap:1.5rem;align-items:stretch}.header-content{flex-direction:column;gap:1rem;text-align:center}.header-stats{justify-content:center}.stat-card{padding:1rem;min-width:0}.header-title h1{font-size:1.5rem}.header-subtitle{font-size:.875rem}.header-actions{justify-content:center}.header-info{flex-direction:column;gap:.75rem;text-align:center;padding:.75rem 1rem;margin-top:1rem}.dashboard-controls,.dashboard-main{gap:1rem}}@media(max-width:480px){.dashboard-page{padding:.5rem}.page-header{padding:1.5rem 1rem;border-radius:12px}.stat-card{flex-direction:column;text-align:center;gap:.5rem;padding:1rem .75rem}.stat-icon,.stat-value{font-size:1.5rem}.stat-label{font-size:.75rem}.btn-refresh{padding:.75rem 1rem;font-size:.75rem}}.dashboard-page .error-message{background:linear-gradient(135deg,#fef2f2,#fee2e2);color:#dc2626;padding:1rem 1.5rem;border-radius:12px;margin-bottom:1.5rem;border:1px solid #fecaca;display:flex;align-items:center;gap:.75rem;font-weight:500;box-shadow:0 2px 4px #dc26261a}.dashboard-page .error-message:before{content:"⚠️";font-size:1.25rem}.locations-page{padding:1.5rem;max-width:1400px;margin:0 auto}.locations-actions{display:flex;justify-content:flex-end;align-items:center;margin-bottom:1.5rem;gap:1rem}.table-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:1rem;background-color:#f8f9fa;border-radius:4px}.items-per-page{display:flex;align-items:center;gap:.5rem}.items-per-page label{font-weight:500;color:#2c3e50}.items-per-page select{padding:.5rem;border:1px solid #bdc3c7;border-radius:4px;background-color:#fff}.table-info{color:#7f8c8d;font-size:.9rem}.pagination{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-top:1.5rem;padding:1rem}.pagination-btn{padding:.5rem 1rem;border:1px solid #bdc3c7;background-color:#fff;color:#2c3e50;border-radius:4px;cursor:pointer;transition:all .2s}.pagination-btn:hover:not(:disabled){background-color:#3498db;color:#fff;border-color:#3498db}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-btn.active{background-color:#3498db;color:#fff;border-color:#3498db}.pagination-info{margin:0 1rem;color:#7f8c8d;font-size:.9rem}.pagination-pages{display:flex;gap:.25rem}@media(max-width:768px){.table-controls{flex-direction:column;gap:1rem;align-items:stretch}.pagination{flex-wrap:wrap;gap:.25rem}.pagination-pages{order:-1;width:100%;justify-content:center}}.status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.status-active{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.status-inactive{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.status-maintenance{background-color:#fff3cd;color:#856404;border:1px solid #ffeaa7}.btn-map{background-color:#17a2b8;color:#fff;border:none;padding:.5rem .75rem;border-radius:4px;cursor:pointer;font-size:.8rem;margin-right:.5rem;transition:background-color .3s;display:inline-flex;align-items:center;gap:.25rem}.btn-map:hover{background-color:#138496}.actions .btn-map{margin-bottom:.25rem}@media(max-width:768px){.actions{display:flex;flex-direction:column;gap:.25rem}.btn-map{margin-right:0;margin-bottom:0}}.btn-map-select{background-color:#28a745;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-size:.9rem;margin-right:1rem;transition:background-color .3s;display:inline-flex;align-items:center;gap:.5rem}.btn-map-select:hover{background-color:#218838}.coordinates-display{color:#6c757d;font-size:.9rem;font-style:italic}.map-modal-overlay{position:fixed;inset:0;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center}.map-modal{background:#fff;border-radius:8px;width:90%;max-width:900px;max-height:90vh;overflow-y:auto;box-shadow:0 4px 6px #0000001a}.map-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #eee}.map-modal-header h3{margin:0;color:#333}.btn-close-modal{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:.25rem;width:2rem;height:2rem;border-radius:50%;display:flex;align-items:center;justify-content:center}.btn-close-modal:hover{background:#f5f5f5}.map-modal-content{padding:1.5rem}.interactive-map-container{margin:1rem 0;border:1px solid #ddd;border-radius:8px;overflow:hidden}.interactive-map-container .leaflet-container{height:400px;width:100%;border-radius:8px 8px 0 0}.map-info{padding:1rem;background:#f8f9fa;border-top:1px solid #eee}.map-info p{margin:.5rem 0}.selected-coordinates{color:#2c3e50;font-weight:500;background:#fff;padding:.5rem;border-radius:4px;border:1px solid #ddd}.coordinate-input-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #eee}.coordinate-input-section h4{margin:0 0 1rem;color:#333}.coord-inputs{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.coord-inputs div{display:flex;flex-direction:column}.coord-inputs label{font-weight:500;margin-bottom:.5rem;color:#555}.coord-inputs input{padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.coord-inputs input:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 2px #3498db33}.common-locations{margin-bottom:1.5rem}.common-locations h5{margin:0 0 .75rem;color:#555;font-size:.9rem}.location-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.btn-location{padding:.5rem 1rem;background:#ecf0f1;border:1px solid #bdc3c7;border-radius:4px;font-size:.85rem;cursor:pointer;transition:all .2s}.btn-location:hover{background:#d5dbdb;border-color:#95a5a6}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #eee}.modal-actions .btn-primary{background:#27ae60;color:#fff;padding:.75rem 1.5rem;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background .2s}.modal-actions .btn-primary:hover:not(:disabled){background:#219a52}.modal-actions .btn-primary:disabled{background:#bdc3c7;cursor:not-allowed}.modal-actions .btn-secondary{background:#95a5a6;color:#fff;padding:.75rem 1.5rem;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background .2s}.modal-actions .btn-secondary:hover{background:#7f8c8d}@media(max-width:768px){.map-modal{width:95%;margin:1rem}.coord-inputs{grid-template-columns:1fr}.modal-actions{flex-direction:column-reverse}.coordinates-display{display:block;margin-top:.5rem}}.crud-container{width:100%}.devices-page{padding:1.5rem;max-width:1400px;margin:0 auto}.crud-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.btn-primary{background-color:#3498db;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:500;transition:background-color .3s}.btn-primary:hover{background-color:#2980b9}.btn-secondary{background-color:#95a5a6;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:500;transition:background-color .3s}.btn-secondary:hover{background-color:#7f8c8d}.form-card{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem}.form-card h2{color:#2c3e50;margin:0 0 1.5rem}.crud-form{display:flex;flex-direction:column;gap:1rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{color:#2c3e50;font-weight:500;font-size:.9rem}.form-group input,.form-group select,.form-group textarea{padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .3s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#3498db}.form-group textarea{resize:vertical;min-height:100px}.form-actions{display:flex;gap:1rem;margin-top:1rem}.data-table{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow-x:auto}table{width:100%;border-collapse:collapse}thead{background-color:#34495e;color:#fff}th{padding:1rem;text-align:left;font-weight:500}td{padding:1rem;border-bottom:1px solid #e1e8ed}tbody tr:hover{background-color:#f8f9fa}.no-data{text-align:center;color:#7f8c8d;padding:2rem!important}.actions{display:flex;gap:.5rem}.btn-edit{background-color:#f39c12;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .3s}.btn-edit:hover{background-color:#d68910}.btn-delete{background-color:#e74c3c;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .3s}.btn-delete:hover{background-color:#c0392b}.status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:500}.status-active{background-color:#d4edda;color:#155724}.status-inactive{background-color:#f8d7da;color:#721c24}.status-maintenance{background-color:#fff3cd;color:#856404}@media(max-width:768px){.crud-header{flex-direction:column;gap:1rem;align-items:stretch}.form-row{grid-template-columns:1fr}.data-table{overflow-x:scroll}table{min-width:600px}.actions{flex-direction:column}.btn-edit,.btn-delete{width:100%}}.clients-page{padding:1.5rem;max-width:1400px;margin:0 auto}.clients-actions{display:flex;justify-content:flex-end;align-items:center;margin-bottom:1.5rem;gap:1rem}.clients-page .data-table{overflow-x:auto}.clients-page table{min-width:600px}.clients-page .actions{display:flex;gap:.5rem}.clients-page .no-data{text-align:center;color:#7f8c8d;padding:2rem!important}.clients-page .status-maintenance{background-color:#fff3cd;color:#856404}.clients-page .items-per-page{display:flex;align-items:center;gap:.5rem}.clients-page .items-per-page label{font-weight:500;color:#2c3e50}.clients-page .items-per-page select{padding:.5rem;border:1px solid #bdc3c7;border-radius:4px;background-color:#fff}.clients-page .pagination{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-top:1.5rem;padding:1rem}.clients-page .pagination-pages{display:flex;gap:.25rem}@media(max-width:768px){.clients-page .data-table{overflow-x:scroll}.clients-page table{min-width:600px}.clients-page .actions{flex-direction:column}.clients-page .btn-edit,.clients-page .btn-delete{width:100%}.clients-page .pagination{flex-wrap:wrap;gap:.25rem}.clients-page .pagination-pages{order:-1;width:100%;justify-content:center}}.users-page{padding:1.5rem;max-width:1400px;margin:0 auto}.users-actions{display:flex;justify-content:flex-end;align-items:center;margin-bottom:1.5rem;gap:1rem}.checkbox-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem;margin-top:.5rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.5rem;border-radius:4px;transition:background-color .2s}.checkbox-label:hover{background-color:#f8f9fa}.checkbox-label input[type=checkbox]{width:auto;margin:0}.filter-group{display:flex;align-items:center;gap:.5rem}.filter-group label{font-weight:500;color:#2c3e50;white-space:nowrap}.filter-group select{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.table-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:1rem}.status-suspended{background-color:#fff3cd;color:#856404;border-color:#ffeaa7}.role-badge{display:inline-block;background-color:#e3f2fd;color:#1976d2;padding:.2rem .5rem;border-radius:12px;font-size:.75rem;margin:.1rem;font-weight:500}.role-badge.sudo{background-color:#ffebee;color:#c62828}.role-badge.admin{background-color:#f3e5f5;color:#7b1fa2}.role-badge.ops{background-color:#e8f5e8;color:#2e7d32}.role-badge.supervisor{background-color:#fff3e0;color:#f57c00}.role-badge.guard{background-color:#e3f2fd;color:#1976d2}.role-badge.user{background-color:#f5f5f5;color:#616161}@media(max-width:768px){.checkbox-group{grid-template-columns:1fr}.table-controls{flex-direction:column;align-items:stretch}.filter-group{justify-content:space-between}.data-table{overflow-x:auto}table{min-width:800px}@media(max-width:576px){table th:nth-child(5),table td:nth-child(5),table th:nth-child(6),table td:nth-child(6),table th:nth-child(9),table td:nth-child(9){display:none}table{min-width:650px}}}.profile-picture-group{width:100%!important;grid-column:1 / -1}.profile-picture-upload-area{position:relative;margin-top:8px}.profile-picture-input{position:absolute;opacity:0;width:0;height:0;overflow:hidden}.profile-picture-upload-button{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;border:2px dashed #e0e0e0;border-radius:12px;background:linear-gradient(135deg,#f8f9fa,#fff);cursor:pointer;transition:all .3s ease;text-align:center;min-height:120px}.profile-picture-upload-button:hover{border-color:#4caf50;background:linear-gradient(135deg,#f0f8f0,#fff);transform:translateY(-2px);box-shadow:0 4px 12px #4caf5026}.upload-icon{width:32px;height:32px;color:#666;margin-bottom:8px;transition:color .3s ease}.profile-picture-upload-button:hover .upload-icon{color:#4caf50}.upload-text{font-size:1rem;font-weight:600;color:#333;margin-bottom:4px;transition:color .3s ease}.profile-picture-upload-button:hover .upload-text{color:#4caf50}.upload-hint{font-size:.875rem;color:#666;font-weight:400}.image-preview{margin-top:16px;display:flex;justify-content:center}.preview-container{position:relative;display:inline-block}.btn-remove-image{position:absolute;top:-8px;right:-8px;width:24px;height:24px;background:#dc3545;color:#fff;border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;box-shadow:0 2px 4px #0003}.btn-remove-image:hover{background:#c82333;transform:scale(1.1)}.btn-remove-image svg{width:12px;height:12px}.profile-picture-preview{width:80px;height:80px;object-fit:cover;border-radius:12px;border:3px solid #ffffff;box-shadow:0 4px 12px #00000026;transition:transform .2s ease}.profile-picture-preview:hover{transform:scale(1.05)}.profile-picture{width:32px;height:32px;object-fit:cover;border-radius:50%;border:1px solid #e0e0e0}.profile-picture.clickable{cursor:pointer;transition:transform .2s,box-shadow .2s}.profile-picture.clickable:hover{transform:scale(1.1);box-shadow:0 2px 8px #0003}.profile-picture-loading{display:flex;align-items:center;justify-content:center}.profile-initials{width:32px;height:32px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;text-transform:uppercase}.image-modal-overlay{position:fixed;inset:0;background-color:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.image-modal-content{background:#fff;border-radius:12px;max-width:90vw;max-height:90vh;overflow:hidden;box-shadow:0 10px 30px #0000004d;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{transform:scale(.9) translateY(-20px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.image-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e0e0e0;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.image-modal-header h3{margin:0;font-size:1.2rem;font-weight:600}.image-modal-close{background:none;border:none;font-size:2rem;color:#fff;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}.image-modal-close:hover{background-color:#fff3}.image-modal-body{padding:1rem;display:flex;justify-content:center;align-items:center;background:#f8f9fa}.modal-image{max-width:100%;max-height:60vh;object-fit:contain;border-radius:8px;box-shadow:0 4px 20px #0000001a}.upload-container{width:100%}.upload-actions{display:grid;grid-template-columns:2fr 1fr;gap:2rem;margin-bottom:2rem}.upload-card,.download-card{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.download-card{display:flex;flex-direction:column;justify-content:center;text-align:center}.upload-card h2,.download-card h2{color:#2c3e50;margin:0 0 .5rem}.upload-description,.download-description{color:#7f8c8d;margin:0 0 2rem}.btn-download{background-color:#3498db;color:#fff;border:none;padding:1rem 2rem;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:500;transition:background-color .3s;margin-top:auto}.btn-download:hover:not(:disabled){background-color:#2980b9}.btn-download:disabled{background-color:#95a5a6;cursor:not-allowed}.status-inactive{background-color:#e74c3c;color:#fff}.success-message{background-color:#d4edda;color:#155724;padding:1rem;border-radius:4px;margin-bottom:1rem;border:1px solid #c3e6cb}.upload-form{display:flex;flex-direction:column;gap:1.5rem}.file-input-wrapper{position:relative}.file-input-wrapper input[type=file]{position:absolute;opacity:0;width:0;height:0}.file-input-label{display:block;padding:1rem;border:2px dashed #3498db;border-radius:4px;text-align:center;cursor:pointer;transition:all .3s;background-color:#f8f9fa;color:#2c3e50}.file-input-label:hover{background-color:#e9ecef;border-color:#2980b9}.btn-upload{background-color:#27ae60;color:#fff;border:none;padding:1rem 2rem;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:500;transition:background-color .3s}.btn-upload:hover:not(:disabled){background-color:#229954}.btn-upload:disabled{background-color:#95a5a6;cursor:not-allowed}.file-info{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e1e8ed}.file-info p{color:#7f8c8d;font-size:.9rem;margin:.5rem 0}.history-container{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.history-container h2{color:#2c3e50;margin:0 0 1.5rem}@media(max-width:768px){.upload-actions{grid-template-columns:1fr;gap:1.5rem}.upload-card,.download-card,.history-container{padding:1.5rem}.btn-upload,.btn-download{padding:.75rem 1.5rem}}*{box-sizing:border-box}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}#root{min-height:100vh}
