*{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}:root{--color-bg: #f5f6f8;--color-surface: #ffffff;--color-surface-alt: #f8f9fa;--color-border: #e5e7eb;--color-text: #212529;--color-muted: #6c757d;--color-primary: #0d6efd;--color-primary-strong: #0a58ca;--color-success: #28a745;--color-warning: #ffc107;--color-danger: #dc3545;--color-info: #0dcaf0;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 2px 6px rgba(0, 0, 0, .08);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .12);--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--font-base: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-mono: "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}body{margin:0;font-family:var(--font-base);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}h1,h2,h3,h4,h5,h6{margin:0;font-weight:700;color:var(--color-text)}p{margin:0;color:var(--color-text)}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}code{font-family:var(--font-mono)}.page-shell{max-width:1400px;margin:0 auto;padding:20px}.page-stack{display:flex;flex-direction:column;gap:16px}.page-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-md)}.crud-container{width:100%;padding:1.5rem}.crud-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.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 .header-content{display:flex;justify-content:space-between;align-items:center;width:100%}.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;color:#fff}.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%;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}.nav-link{display:block;padding:1rem 1.5rem;color:#ecf0f1;text-decoration:none;transition:background-color .3s}.nav-link:hover{background-color:#2c3e50;text-decoration:none}.content{flex:1;padding:2rem;background-color:#ecf0f1;overflow-y:auto}.page-title{color:#2c3e50;margin-bottom:2rem;font-size:2rem;font-weight:700}.page-subtitle{font-size:1.1rem;opacity:.9;margin:0}.section-heading{margin-bottom:var(--space-3);font-size:20px;font-weight:700}.muted-text{color:var(--color-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border-radius:var(--radius-sm);border:1px solid transparent;font-weight:600;font-size:14px;cursor:pointer;transition:background-color .2s,border-color .2s,box-shadow .2s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-strong)}.btn-primary:disabled{background-color:#bdc3c7;cursor:not-allowed;transform:none}.btn-secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-alt);border-color:#cfd3d8}.btn.btn-secondary{background:var(--color-surface);border-color:var(--color-border);display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgb(0,0,0);border-radius:8px;color:var(--color-text);font-weight:600;cursor:pointer;transition:all .2s ease;text-decoration:none;font-size:14px}.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}.btn-ghost{background:transparent;border-color:transparent;color:var(--color-text)}.btn-outline{background:#fff;border-color:#e2e8f0;color:#000103}.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-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}.action-buttons{display:flex;gap:8px}.edit-button{padding:6px 14px;background:#007bff;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;transition:background-color .2s}.edit-button:hover:not(:disabled){background:#0062cc}.view-button{padding:6px 12px;border-radius:6px;border:1px solid #ced4da;background:#fff;color:#343a40;font-size:12px;font-weight:600;cursor:pointer;transition:background-color .2s,border-color .2s}.view-button:hover:not(:disabled){background:#f8f9fa;border-color:#adb5bd}.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: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;opacity:.7}.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{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;font-weight:600}.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;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-group textarea{resize:vertical;min-height:100px}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.form-label{display:block;margin-bottom:6px;font-weight:500;color:var(--color-text);font-size:14px}.form-control{width:100%;padding:10px 12px;border:1px solid #ced4da;border-radius:4px;font-size:14px;background:#fff;transition:border-color .2s,box-shadow .2s}.form-control:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 .2rem #0d6efd40}.form-control:disabled{background:#e9ecef;cursor:not-allowed}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.data-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow-x:auto;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}.table-container{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-md);overflow-x:auto;border:1px solid var(--color-border)}.table-base{width:100%;border-collapse:collapse}.table-base thead{background:var(--color-surface-alt)}.table-base th{padding:14px 16px;text-align:left;font-weight:600;color:#555;font-size:12px;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--color-border)}.table-base td{padding:12px 16px;font-size:13px;color:var(--color-text);border-top:1px solid var(--color-border)}.table-base tbody tr{transition:background-color .2s;border-bottom:1px solid #f0f0f0}.table-base tbody tr:hover{background-color:#fafafa}.table-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:1rem}.table-info{color:#7f8c8d;font-size:.9rem}.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}.actions{display:flex;gap:.5rem}.reports-table{width:100%;border-collapse:collapse}.reports-table thead{background:#f5f5f5}.reports-table th{padding:14px 16px;text-align:left;font-weight:600;color:#555;font-size:12px;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #e0e0e0}.reports-table tbody tr{border-bottom:1px solid #f0f0f0;transition:background-color .2s}.reports-table tbody tr:hover{background-color:#fafafa}.reports-table td{padding:12px 16px;font-size:13px;color:#333}.reports-table td:last-child{white-space:nowrap}.pagination{display:flex;justify-content:center;align-items:center;padding:1rem 0}.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.active{background-color:#3498db;color:#fff;border-color:#3498db}.pagination-btn.ellipsis{cursor:default;background:none;border:none}.modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000}.modal-content{background:#fff;border-radius:8px;width:min(1200px,96vw);max-height:90vh;overflow:auto;position:relative;box-shadow:0 10px 25px #0003}.modal-card{width:min(900px,95vw);max-height:90vh;overflow-y:auto;background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);padding:18px}.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}.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}.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}.modal-error{background-color:#fee;color:#c33;padding:1rem;border-radius:4px;margin-bottom:1rem;border:1px solid #fcc}.card-body{padding:2rem}.card-footer{padding:1rem 2rem;border-top:1px solid #ecf0f1;background:#f8f9fa}.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-card:hover{background:#fff3;transform:translateY(-2px)}.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}.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}.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}.page-header .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;color:var(--color-bg)}.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:1.5rem}.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}.badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badge-muted{background:#e2e3e5;color:#6c757d}.badge-info{background:#e7f1ff;color:#0c63e7}.badge-success{background:#d4edda;color:#155724}.badge-warning{background:#fff3cd;color:#856404}.badge-danger{background:#f8d7da;color:#721c24}.badge-active{background:#cfe2ff;color:#084298}.status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.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}.status-active{background-color:#d4edda;color:#155724;border-color:#c3e6cb}.status-inactive{background-color:#f8d7da;color:#721c24;border-color:#f5c6cb}.status-suspended{background-color:#fff3cd;color:#856404;border-color:#ffeaa7}.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}.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}.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;width:100%;max-width:100%;overflow:visible}.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-section:hover{box-shadow:0 6px 12px #00000014}.filters-header{display:flex;align-items:center;gap:.5rem;width:100%;max-width:100%;border-bottom:2px solid #e2e8f0;margin-bottom:1.5rem;padding-bottom:1rem;font-size:1.1rem;color:#1e293b;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:initial;background-clip:text}.filters-header .btn{align-self:flex-start}.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(220px,1fr));gap:1.25rem;align-items:start;width:100%;max-width:100%}.filter-group{display:flex;flex-direction:column;gap:.5rem;min-width:0}.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%;min-width:0;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-input::placeholder{color:#94a3b8;font-style:italic}.form-select{width:100%;min-width:0;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}.filters-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px;padding-top:15px;border-top:1px solid #e2e8f0}.clear-button,.new-button{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.clear-button{background:#f3f4f6;color:#6b7280}.clear-button:hover{background:#e5e7eb;color:#374151}.new-button{background:#4caf50;color:#fff}.new-button:hover{background:#45a049;transform:translateY(-1px);box-shadow:0 4px 8px #4caf5033}.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;width:1.5rem;height:1.5rem}.clear-filter-btn:hover{background:#fef2f2;transform:translateY(-50%) scale(1.1)}.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}.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)}.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}.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}.loading{text-align:center;padding:2rem;font-size:1.2rem;color:#7f8c8d}.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-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24;padding:12px 20px;border-radius:4px;font-size:14px;margin-bottom:1rem}.success-message{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724;padding:12px 20px;border-radius:4px;font-size:14px}.no-data{text-align:center;padding:60px 20px;color:#999;font-size:16px;background:#fff;border-radius:8px;margin:20px 0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.empty-state .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}.filter-loading{opacity:.7;pointer-events:none}.filter-loading *{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.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 shimmer{0%{transform:translate(-100%) translateY(-100%) rotate(45deg)}to{transform:translate(100%) translateY(100%) rotate(45deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@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 dropdownSlideIn{0%{opacity:0;transform:translateY(-8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.animate-slide-in{animation:slideInDown .3s ease-out}.animate-fade-in{animation:fadeIn .3s ease-out}.animate-slide-up{animation:slideInUp .3s ease-out}.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}.detail-section{border:1px solid #e1e8ed;border-radius:4px;padding:1rem}.detail-section p{margin:.5rem 0;color:#34495e}.detail-section h3{color:#2c3e50;font-size:1.1rem;font-weight:600;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:2px solid #e1e8ed;display:flex;align-items:center;gap:.5rem}.info-value{font-weight:500;color:#2c3e50;text-align:right;word-break:break-word}.info-label{font-weight:600;color:#495057;font-size:.875rem;flex-shrink:1}@media(max-width:1400px){.table-base{font-size:12px}.table-base th,.table-base td{padding:10px 12px}.reports-table{font-size:12px}.reports-table th,.reports-table td{padding:10px 12px}}@media(max-width:1024px){.header-stats{gap:1.5rem}.pagination-info{font-size:.85rem}.filters-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.filters-header{font-size:1rem;background:none;-webkit-text-fill-color:initial;color:#1e293b}.date-range-container{flex-direction:column;gap:.5rem}.date-range-separator{align-self:center}.table-container{overflow-x:visible;border:none;box-shadow:none;margin:0}.table-base{display:block}.table-base thead{display:none}.table-base tbody{display:flex;flex-direction:column;gap:12px}.table-base tr{display:grid;grid-template-columns:1fr;gap:8px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);background:#fff}.table-base td{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0;border:none}.table-base td:before{content:attr(data-label);font-weight:600;color:#495057;font-size:13px;flex-shrink:0}.table-base td:last-child{justify-content:flex-start}.reports-table{display:block}.reports-table thead{display:none}.reports-table tbody{display:flex;flex-direction:column;gap:12px}.reports-table tr{display:grid;grid-template-columns:1fr;gap:8px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);background:#fff}.reports-table td{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0;border:none}.reports-table td:before{content:attr(data-label);font-weight:600;color:#495057;font-size:13px;flex-shrink:0}.reports-table td:last-child{justify-content:flex-start}.data-table{overflow:visible;box-shadow:none;border-radius:0;background:transparent}.data-table table{display:block}.data-table thead{display:none}.data-table tbody{display:flex;flex-direction:column;gap:12px}.data-table tr{display:grid;grid-template-columns:1fr;gap:8px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);background:#fff}.data-table td{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0!important;border-bottom:none!important}.data-table td:before{content:attr(data-label);font-weight:600;color:#495057;font-size:13px;flex-shrink:0}.data-table td:last-child{justify-content:flex-start}.data-table td.no-data{justify-content:center;text-align:center}.data-table td.no-data:before{content:none}.actions{flex-direction:column}}@media(max-width:768px){.page-shell{padding:12px}.form-row{grid-template-columns:1fr}.table-controls{flex-direction:column;align-items:stretch}.page-header .header-content{flex-direction:column;gap:1.5rem;align-items:stretch}.header .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}.header-title-section h1{font-size:1.5rem}.header-description{font-size:.875rem}.header-stats{flex-wrap:wrap;gap:1rem;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}.page-header{padding:1.5rem 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}.map-modal{width:95%;margin:1rem}.info-value{text-align:left}.info-label{min-width:auto}}@media(max-width:700px){.filters-section{padding:1rem}.filters-grid{grid-template-columns:1fr!important;gap:.875rem;width:100%;max-width:100%}.filters-header h3{font-size:1.05rem;background:none;-webkit-text-fill-color:initial;color:#1e293b}.filters-header{gap:.75rem}}@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{padding:.75rem;margin-bottom:.75rem;border-radius:10px}.form-input,.form-select{font-size:.8125rem;padding:.625rem .875rem}.filter-label{font-size:.8125rem}.filters-header{flex-direction:column;align-items:flex-start;gap:.75rem}.detail-section{padding:.75rem}}.comment-item{background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;padding:6px 8px;font-size:13px}.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:#fff;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);color:#fff}.company-subtitle{font-size:1.3rem;margin:0;opacity:.9;font-weight:300;color:#fff}.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-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}.reports-page .filter-group{flex-direction:column}.reports-page .filter-label{font-size:.95rem;text-transform:none;letter-spacing:normal}.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-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}.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-page .reports-table{font-size:.9rem}.reports-page .reports-table th{background:#f9fafb;padding:1rem .75rem;color:#374151;font-size:inherit;border-bottom:1px solid #e5e7eb}.reports-page .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}@media(max-width:1024px){.filters-row{grid-template-columns:1fr 1fr;gap:1.5rem}}@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}}.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}.round-sessions-page .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}.round-sessions-page .status-badge.active{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 2px 4px #10b9814d}.round-sessions-page .status-badge.inactive{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 2px 4px #ef44444d}.round-sessions-page .status-badge.complete{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;box-shadow:0 2px 4px #3b82f64d}.round-sessions-page .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}.loading-container{display:flex;justify-content:center;align-items:center;padding:4rem 2rem;background:#fff;border-radius:12px}.round-sessions-page .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}.round-sessions-page .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}.round-sessions-page .filters-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #e2e8f0}.round-sessions-page .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}.round-sessions-page .filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.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}.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}.round-sessions-page .progress-bar,.round-session-modal .progress-bar{flex:1;height:12px}.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}.round-sessions-page .location-info{display:flex;flex-direction:column;gap:.25rem}.round-sessions-page .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,.round-sessions-page .info-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.definition-label,.round-sessions-page{font-weight:600;color:#374151;font-size:.875rem}.definition-value,.round-sessions-page{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}.round-sessions-page .location-info,.round-sessions-page .client-info{padding:1rem;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #0ea5e9;border-radius:12px}.round-sessions-page .location-info h4,.round-sessions-page .client-info h4{margin:0 0 1rem;color:#0c4a6e;font-size:1rem;font-weight:700}.round-sessions-page .info-grid{display:grid;gap:.75rem}.round-sessions-page .info-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid #e0f2fe}.round-sessions-page .info-row:last-child{border-bottom:none}.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}@media(max-width:768px){.round-session-modal{width:100vw;height:100vh;max-width:none;max-height:none;border-radius:0}.overview-stats{grid-template-columns:1fr}.tag-header{flex-direction:column;align-items:flex-start;gap:.75rem}.tag-details{gap:.75rem}}@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}}@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}.round-sessions-page .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}.round-sessions-page .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}.round-sessions-page .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}.round-sessions-page .pagination-btn:hover:before{left:100%}.round-sessions-page .pagination-btn.enabled:hover{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#000;border-color:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 8px #3b82f64d}.round-sessions-page .pagination-btn.enabled:active{transform:translateY(0);box-shadow:0 2px 4px #3b82f633}.round-sessions-page .pagination-btn.disabled{background:#f1f5f9;color:#94a3b8;cursor:not-allowed;border-color:#e2e8f0}.btn-icon{font-size:.875rem;transition:transform .2s ease}.round-sessions-page .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}@media(max-width:768px){.pagination-container{flex-direction:column;gap:1rem;padding:1rem}.round-sessions-page .pagination-info{order:2;text-align:center}.pagination-controls{order:1;flex-wrap:wrap;justify-content:center;gap:.5rem}.round-sessions-page .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}.round-sessions-page .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}.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}.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}@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}.round-definitions-list{padding: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}.round-definitions-page .status-badge.inactive{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 2px 4px #10b9814d}.round-definitions-page .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;animation:pulse 2s infinite}.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}@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}.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)}}.round-definition-modal .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)}.round-definition-modal .modal-body{padding:0;max-height:calc(90vh - 100px);overflow-y:auto}.round-definition-modal .modal-body::-webkit-scrollbar{width:8px}.round-definition-modal .modal-body::-webkit-scrollbar-track{background:#f1f5f9}.round-definition-modal .modal-body::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:4px}.round-definition-modal .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}.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}.round-definitions-page .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}.round-definitions-page .intervals-grid{grid-template-columns:1fr}.info-section,.definition-overview{padding:1.5rem}}@media(max-width:480px){.round-definition-modal .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}.round-definitions-page .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}.round-definitions-page .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}.stats-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.stats-container .stat-card{background:#fff;padding:1.25rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.stats-container .stat-card h3{color:#7f8c8d;font-size:.9rem;margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.5px}.stats-container .stat-number{color:#2c3e50;font-size:2.5rem;font-weight:700;margin:0}.stats-container .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}.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:8px;padding:1rem;transition:box-shadow .3s,transform .2s;background:#fff;position:relative}.unexpected-report-indicator{position:absolute;top:.35rem;right:.35rem;width:1rem;height:1rem;border-radius:999px;background-color:#ff8324;color:#fff;font-size:.7rem;line-height:1rem;text-align:center;font-weight:700}.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)}.arrival-header{display:flex;flex-direction:column;align-items:flex-start;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid #e1e8ed;gap:.25rem}.arrival-header h3{color:#2c3e50;margin:0;font-size:.95rem;font-weight:600;width:100%;word-break:break-word;line-height:1.3}.arrival-time{color:#7f8c8d;font-size:.85rem;white-space:nowrap;flex-shrink:0}.arrival-body p{margin:.35rem 0;color:#34495e;font-size:.85rem}.report-details{display:grid;gap:1.5rem}.image-container{text-align:center}.report-image{max-width:100%;max-height:400px;border-radius:4px;box-shadow:0 2px 8px #0000001a}.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}.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-status-group{display:flex;align-items:center;gap:.4rem}.report-comments-indicator{display:inline-flex;align-items:center;justify-content:center;font-size:.9rem;line-height:1}.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}.dashboard-page .status-badge.fulfilled{background:#d5f4e6;color:#27ae60;font-weight:600}.dashboard-page .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}.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,.image-loading-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}.image-loading-icon{font-size:2.2rem;margin-bottom:.8rem;opacity:.85}.info-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr))}.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}.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}.dashboard-page .btn-save,.dashboard-page .btn-cancel{padding:.25rem .5rem;border-radius:3px;font-size:.8rem;min-width:28px;height:28px;display:flex;align-items:center;justify-content:center}.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}.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}@media(max-width:1024px){.dashboard-content,.dashboard-controls,.dashboard-main{gap:1rem}.arrivals-container{padding:1rem}.arrivals-container h2{font-size:1.25rem;margin-bottom:1rem}.reports-comparison{gap:1.5rem}.reports-section{padding:1rem}}@media(max-width:768px){.dashboard-page{padding:12px}.stats-container{grid-template-columns:1fr;gap:.75rem}.stats-container .stat-number{font-size:2rem}.arrival-header{flex-direction:column;align-items:flex-start}.reports-comparison{grid-template-columns:1fr;gap:1rem}.info-grid{grid-template-columns:1fr}.info-row{flex-direction:column;align-items:flex-start;gap:.25rem}.report-image-main{max-height:200px}.shift-type-editor{flex-wrap:wrap}}@media(max-width:480px){.dashboard-page{padding:8px}.arrivals-container{padding:.75rem}.arrivals-container h2{font-size:1.1rem;margin-bottom:.75rem}.arrival-card{padding:.75rem}.arrival-header h3{font-size:.85rem}.stats-container .stat-card{padding:.75rem}.stats-container .stat-number{font-size:1.5rem}.stats-container .stat-text{font-size:1rem}.reports-section,.report-item{padding:.75rem}.report-header{flex-direction:column;align-items:flex-start;gap:.5rem}.no-image-container,.error-image-container{padding:1.25rem}.no-image-icon,.error-image-icon{font-size:2rem}}.locations-page{padding:1.5rem;max-width:1400px;margin:0 auto}.locations-stack{display:flex;flex-direction:column;gap:1.5rem}.locations-actions{display:flex;justify-content:flex-end;align-items:center;margin-bottom:1.5rem;gap:1rem}.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}.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}.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}.locations-page .modal-actions .btn-primary{background:#27ae60}.locations-page .modal-actions .btn-primary:hover:not(:disabled){background:#219a52}.locations-page .modal-actions .btn-primary:disabled{background:#bdc3c7;cursor:not-allowed}@media(max-width:768px){.btn-map{margin-right:0}.coord-inputs{grid-template-columns:1fr}.coordinates-display{display:block;margin-top:.5rem}}.devices-page{padding:1.5rem;max-width:1400px;margin:0 auto}.devices-stack{display:flex;flex-direction:column;gap:1.5rem}.clients-page{padding:1.5rem;max-width:1400px;margin:0 auto}.clients-stack{display:flex;flex-direction:column;gap:1.5rem}.clients-actions{display:flex;justify-content:flex-end;align-items:center;margin-bottom:1.5rem;gap:1rem}.clients-page .status-maintenance{background-color:#fff3cd;color:#856404}.users-page{padding:1.5rem;max-width:1400px;margin:0 auto}.users-stack{display:flex;flex-direction:column;gap:1.5rem}.users-actions{display:flex;justify-content:flex-end;align-items:center;margin-bottom:1.5rem;gap:1rem}.users-page .filter-group{align-items:center;flex-direction:row}.users-page .filter-group label{font-weight:500;color:#2c3e50;white-space:nowrap}.users-page .filter-group select{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.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}.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}}.access-profiles-page{padding:20px;max-width:1400px;margin:0 auto}.access-profiles-stack{display:flex;flex-direction:column;gap:16px}.access-profiles-table .name-cell{display:flex;flex-direction:column;gap:4px}.identifiers-cell,.internal-ids-cell,.comments-cell{display:flex;flex-direction:column;gap:6px;max-width:340px}.identifier-item,.internal-id-item,.identifier-type{display:inline-block;font-weight:600;color:#495057;margin-right:6px}.identifier-value{color:#212529}.no-data-text{color:#6c757d;font-size:12px}.more-items{color:#495057;font-size:12px}.acl-count{padding:4px 10px;background:#e9ecef;color:#495057;border-radius:12px;font-size:12px;font-weight:600}@media(max-width:1024px){.access-profiles-page{padding:12px}.access-profiles-table .identifiers-cell,.access-profiles-table .internal-ids-cell,.access-profiles-table .comments-cell{max-width:none}}.access-reports-page{padding:20px;max-width:1400px;margin:0 auto}.access-reports-stack{display:flex;flex-direction:column;gap:16px}.report-type-selector{display:flex;gap:10px;margin:20px 0}.type-button{padding:10px 20px;border:2px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.type-button.active{background:#4caf50;color:#fff;border-color:#4caf50}.type-button:hover:not(.active){border-color:#4caf50;color:#4caf50}.id-code{font-family:monospace;font-size:12px;color:#666;background:#f5f5f5;padding:2px 6px;border-radius:3px;display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plate-text{font-size:14px;color:#2c3e50;font-weight:700;letter-spacing:1px}.status-pending{background:#fff3cd;color:#856404}.status-granted{background:#d4edda;color:#155724}.status-denied{background:#f8d7da;color:#721c24}.status-na{background:#e2e3e5;color:#6c757d}.badge-yes{display:inline-block;padding:4px 10px;background:#d4edda;color:#155724;border-radius:12px;font-size:11px;font-weight:600}.badge-no{display:inline-block;padding:4px 10px;background:#e2e3e5;color:#6c757d;border-radius:12px;font-size:11px;font-weight:600}.badge-active{display:inline-block;padding:4px 10px;background:#cfe2ff;color:#084298;border-radius:12px;font-size:11px;font-weight:600}.grant-button{margin-left:8px;padding:4px 10px;background:#2196f3;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:11px;font-weight:500;transition:all .2s}.grant-button:hover{background:#1976d2}.report-detail-card{border:1px solid #e9ecef;border-radius:10px;background:#fff;padding:18px;box-shadow:0 2px 6px #0000000f;display:flex;flex-direction:column;gap:14px;width:100%}.permission-modal{max-width:520px;width:100%;padding-bottom:0}.permission-modal .modal-body{padding-top:1.25rem;padding-bottom:1rem}.permission-modal .meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}.permission-modal .meta-card{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.permission-modal .meta-label{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:#6c757d;font-weight:600}.permission-modal .meta-hint{font-size:11px;color:#6c757d}.permission-modal .meta-value{font-weight:600;color:#2c3e50;word-break:break-word}.permission-modal .meta-chip{display:inline-block;padding:6px 10px;border-radius:12px;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.4px;width:fit-content}.permission-modal .span-2{grid-column:span 2}.permission-modal .chip-ingress{background:#e8f4ff;color:#0b6fbf}.permission-modal .chip-egress{background:#fdf2e8;color:#c25c1c}.permission-modal .decision-group .radio-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.permission-modal .radio-label{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid #e0e0e0;border-radius:8px;transition:border-color .2s,box-shadow .2s,background-color .2s}.permission-modal .radio-label.selected{border-color:#3498db;box-shadow:0 0 0 3px #3498db26;background:#f5fbff}.permission-modal .radio-label input{margin:0}.permission-modal .form-group textarea,.permission-modal .form-group input{width:100%}.detail-card-header{display:flex;align-items:center;justify-content:space-between}.eyebrow{margin:0;color:#6c757d;font-size:12px;letter-spacing:.5px;text-transform:uppercase}.detail-card-header h3{margin:2px 0 0;color:#343a40;font-size:18px}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.access-reports-page .label{margin:0 0 4px;color:#6c757d;font-size:12px;font-weight:600}.access-reports-page .value{margin:0;color:#212529;font-size:14px}.access-reports-page .value.strong{font-weight:700;letter-spacing:.5px}.access-reports-page .value.code{font-family:monospace;background:#f8f9fa;padding:4px 6px;border-radius:4px;border:1px solid #e9ecef}.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.permission-card{border:1px solid #f1f3f5;border-radius:8px;padding:12px;background:#fdfdfd;display:flex;flex-direction:column;gap:6px}.permission-header{display:flex;align-items:center;justify-content:space-between}.messages-card{border:1px solid #f1f3f5;border-radius:8px;padding:12px;background:#fdfdfd;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{background:#e9ecef;color:#495057;border-radius:999px;padding:4px 10px;font-size:12px;border:1px solid #dee2e6}.access-reports-page .link-button{background:none;border:none;color:#dc3545;cursor:pointer;padding:4px 8px;font-weight:600}.detail-card-wrapper{margin-top:4px}.detail-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000}.detail-modal{width:min(900px,95vw);max-height:90vh;overflow-y:auto}@media(max-width:768px){.access-reports-page{padding:12px}}@media(max-width:640px){.grant-button{margin-left:0}}.access-configuration-page{padding:20px;max-width:1400px;margin:0 auto}.access-configuration-stack{display:flex;flex-direction:column;gap:16px}.access-configuration-table{width:100%;border-collapse:collapse;background:#fff}.access-configuration-table thead{background-color:#f8f9fa;border-bottom:2px solid #dee2e6}.access-configuration-table th{padding:12px 16px;text-align:left;font-weight:600;color:#495057;font-size:14px;white-space:nowrap}.access-configuration-table td{padding:12px 16px;border-top:1px solid #dee2e6;color:#212529;font-size:14px}.access-configuration-table tbody tr:hover{background-color:#f8f9fa}.badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500;text-align:center;white-space:nowrap}.badge-required{background-color:#d1ecf1;color:#0c5460}.badge-optional{background-color:#f8f9fa;color:#6c757d}.badge-active{background-color:#d4edda;color:#155724}.badge-inactive{background-color:#f8d7da;color:#721c24}.access-configuration-form-container{background:#fff;border-radius:8px;padding:24px 28px;box-shadow:0 2px 4px #0000001a;max-width:960px;margin:0 auto}.access-configuration-form-container h2{margin:0 0 24px;color:#333;font-size:24px}.access-configuration-form{display:flex;flex-direction:column;gap:18px}.access-configuration-form .form-group{margin-bottom:20px}.access-configuration-form .form-group label{display:block;margin-bottom:8px;font-weight:500;color:#495057;font-size:14px}.access-configuration-form .required{color:#dc3545}.access-configuration-form select,.access-configuration-form input[type=text],.access-configuration-form input[type=email],.access-configuration-form input[type=datetime-local]{width:100%;padding:10px 12px;border:1px solid #ced4da;border-radius:4px;font-size:14px;transition:border-color .2s;background:#fff}.access-configuration-form select:focus,.access-configuration-form input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 .2rem #007bff40}.access-configuration-form select:disabled,.access-configuration-form input:disabled{background-color:#e9ecef;cursor:not-allowed}.access-configuration-page .info-section{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;padding:16px;margin-bottom:20px}.access-configuration-page .info-section p{margin:8px 0;color:#495057;font-size:14px}.form-section{margin-bottom:24px;padding:18px;border:1px solid #e9ecef;border-radius:8px;background:#fdfdfd}.form-section h3{margin:0 0 14px;color:#343a40;font-size:18px;font-weight:600}.acl-section{display:flex;flex-direction:column;gap:16px}.acl-search label{font-weight:500;color:#495057}.acl-search-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;align-items:center}.acl-search-results{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.acl-result{border:1px solid #ced4da;border-radius:4px;padding:8px 12px;background:#f8f9fa;cursor:pointer;display:flex;flex-direction:column;gap:2px}.acl-result.selected{border-color:#007bff;background:#e7f1ff}.acl-draft-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.acl-draft-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}.acl-lists{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.acl-create{border:1px dashed #ced4da;border-radius:6px;padding:12px;background:#fafbfc}.acl-create-form{margin-top:12px;display:flex;flex-direction:column;gap:12px}.acl-create-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.acl-create-actions{display:flex;justify-content:flex-end}.error-text{color:#dc3545;font-size:13px;margin:0}.acl-list{border:1px solid #dee2e6;border-radius:6px;padding:12px;background:#fdfdfd;overflow:hidden;display:flex;flex-direction:column;gap:4px}.acl-list h4{margin:0 0 8px;color:#495057;font-size:16px}.acl-entry{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;padding:12px;border:1px solid #f1f3f5;border-radius:6px;background:#fff}.acl-entry:last-child{border-bottom:none}.acl-entry-info{flex:1 1 180px;min-width:0;word-break:break-word}.acl-entry-info small{color:#6c757d;display:block}.acl-entry-times{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;flex:2 1 260px;min-width:0}.acl-entry-times label{font-size:12px;color:#6c757d}.acl-entry-times input{width:100%}.acl-entry .link-button{align-self:center;white-space:nowrap}.access-configuration-page .secondary-button{padding:8px 14px;border-radius:4px;border:1px solid #ced4da;background:#fff;cursor:pointer}.access-configuration-page .secondary-button.danger{border-color:#dc3545;color:#dc3545}.access-configuration-page .link-button{background:none;border:none;color:#dc3545;cursor:pointer;padding:0 6px}.muted{color:#6c757d;margin:6px 0}.access-configuration-page .form-actions{margin-top:24px}.cancel-button,.submit-button{padding:10px 24px;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s;min-width:140px}.cancel-button{background-color:#6c757d;color:#fff}.cancel-button:hover:not(:disabled){background-color:#5a6268}.submit-button{background-color:#28a745;color:#fff}.submit-button:hover:not(:disabled){background-color:#218838}.cancel-button:disabled,.submit-button:disabled{opacity:.6;cursor:not-allowed}@media(max-width:1024px){.access-configuration-page{padding:10px}.access-configuration-table,.access-configuration-form-container{max-width:100%}.access-configuration-table{display:block}.access-configuration-table thead{display:none}.access-configuration-table tbody{display:flex;flex-direction:column;gap:12px}.access-configuration-table tr{display:grid;grid-template-columns:1fr;gap:8px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);background:#fff}.access-configuration-table td{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0;border:none}.access-configuration-table td:before{content:attr(data-label);font-weight:600;color:#495057;font-size:13px;flex-shrink:0}.acl-lists{grid-template-columns:1fr;gap:12px}.acl-entry{padding:10px}.acl-entry-times{grid-template-columns:1fr}.access-configuration-page .form-actions{flex-direction:column}.cancel-button,.submit-button{width:100%}}*{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}
