*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f5f5;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.app{display:flex;flex-direction:column;min-height:100vh}.header{align-items:center;background:#1a1a1a;box-shadow:0 2px 4px #0000001a;color:#fff;display:flex;justify-content:space-between;padding:1rem 2rem}.header h1{font-size:1.5rem;font-weight:600}.header .user-info{align-items:center;display:flex;gap:1rem}.header .user-name,.header button{font-size:.9rem}.header button{background:#444;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:.5rem 1rem}.header button:hover{background:#555}.main-content{flex:1 1;margin:0 auto;max-width:1200px;padding:2rem;width:100%}.login-page{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh}.login-form{background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-width:400px;padding:2rem;width:100%}.login-form h2{color:#333;margin-bottom:1.5rem;text-align:center}.form-group{margin-bottom:1rem}.form-group label{color:#555;display:block;font-weight:500;margin-bottom:.5rem}.form-group input{border:1px solid #ddd;border-radius:4px;font-size:1rem;padding:.75rem;width:100%}.form-group input:focus{border-color:#667eea;outline:none}.btn-primary{background:#667eea;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem;width:100%}.btn-primary:hover{background:#5568d3}.btn-primary:disabled{background:#ccc;cursor:not-allowed}.error{color:#e53e3e;font-size:.9rem;margin-top:.5rem;text-align:center}.dashboard{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:2rem}.dashboard-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem}.dashboard-card h3{color:#666;font-size:1rem;margin-bottom:.5rem}.dashboard-card .value{color:#333;font-size:2rem;font-weight:600}.vehicle-list{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.vehicle-list h2{border-bottom:1px solid #eee;font-size:1.25rem;padding:1.5rem}.vehicle-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));padding:1.5rem}.vehicle-card{border:1px solid #eee;border-radius:8px;cursor:pointer;padding:1rem;transition:all .2s}.vehicle-card:hover{border-color:#667eea;box-shadow:0 4px 8px #0000001a}.vehicle-card h3{color:#333;font-size:1.1rem;margin-bottom:.5rem}.vehicle-card .vin{color:#666;font-family:monospace;font-size:.85rem;margin-bottom:.5rem}.vehicle-card .details{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.vehicle-card .badge{border-radius:4px;display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .5rem}.badge.status-maintenance{background:#feebc8;color:#7c2d12}.badge.status-inactive{color:#2d3748}.vehicle-detail{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:2rem}.vehicle-detail .back-button{background:#eee;border:none;border-radius:4px;color:#333;cursor:pointer;margin-bottom:1.5rem;padding:.5rem 1rem}.vehicle-detail .back-button:hover{background:#ddd}.vehicle-detail h2{font-size:1.75rem;margin-bottom:1.5rem}.detail-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.detail-item label{color:#666;display:block;font-size:.85rem;margin-bottom:.25rem}.detail-item .value{color:#333;font-size:1rem;font-weight:500}.loading{font-size:1.1rem}.empty-state,.loading{color:#666;padding:3rem;text-align:center}.empty-state h3{font-size:1.25rem;margin-bottom:.5rem}.health-panel{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:2rem}.health-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.health-card{border:1px solid #eee;border-radius:8px;overflow:hidden}.health-card-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:1rem}.health-card-header h3{font-size:1.1rem;margin:0}.health-card-body{padding:1rem}.health-detail{border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:.5rem 0}.health-detail:last-child{border-bottom:none}.health-label{color:#666;font-size:.9rem;font-weight:500}.health-value{color:#333;font-family:monospace;font-size:.9rem}.health-value.error-text{color:#e53e3e}.health-badge{border-radius:12px;display:inline-block;font-size:.85rem;font-weight:500;padding:.25rem .75rem}.badge-healthy{background:#c6f6d5;color:#22543d}.badge-unhealthy{background:#feebc8;color:#7c2d12}.badge-unreachable{background:#fed7d7;color:#742a2a}.btn-secondary{background:#e2e8f0;border:none;border-radius:4px;color:#2d3748;cursor:pointer;font-size:.9rem;padding:.5rem 1rem}.btn-secondary:hover{background:#cbd5e0}.btn-secondary:disabled{background:#e2e8f0;color:#a0aec0;cursor:not-allowed}.health-info h4{color:#2d3748}.admin-users{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:2rem}.admin-users-header{align-items:center;border-bottom:2px solid #eee;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.admin-users-header h2{color:#1a1a1a;font-size:1.75rem;margin:0}.user-count{color:#666;font-size:.9rem;margin-top:.25rem}.users-table-container{margin-bottom:1.5rem;overflow-x:auto}.users-table{border-collapse:collapse;font-size:.95rem;width:100%}.users-table thead{background:#f8f9fa;border-bottom:2px solid #e2e8f0}.users-table th{color:#2d3748;font-size:.9rem;font-weight:600;letter-spacing:.05em;padding:1rem;text-align:left;text-transform:uppercase}.users-table td{border-bottom:1px solid #f0f0f0;padding:1rem;vertical-align:middle}.users-table tbody tr:hover{background:#f8f9fa}.users-table strong{color:#1a1a1a;font-weight:600}.country-display{align-items:center;display:inline-flex;gap:.5rem}.country-flag-table{font-size:1.25rem;line-height:1}.country-flag-detail{font-size:1.5rem;line-height:1}.country-code{color:#667eea;font-family:monospace;font-size:.9rem;font-weight:600;text-transform:uppercase}.role-badges{display:flex;flex-wrap:wrap;gap:.5rem}.badge{border-radius:4px;display:inline-block;font-size:.8rem;font-weight:500;line-height:1.5;padding:.25rem .75rem}.badge.role-admin{background:#fed7d7;color:#742a2a}.badge.role-operator{background:#bee3f8;color:#2c5282}.badge.role-viewer{background:#e2e8f0;color:#2d3748}.badge.role-user,.badge.status-active{background:#c6f6d5;color:#22543d}.badge.status-inactive{background:#e2e8f0;color:#718096}.btn-small{font-size:.875rem;padding:.375rem .75rem}.pagination{align-items:center;display:flex;gap:1rem;justify-content:center;padding-top:1rem}.pagination button{background:#667eea;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem}.pagination button:hover:not(:disabled){background:#5568d3}.pagination button:disabled{background:#e2e8f0;color:#a0aec0;cursor:not-allowed}.page-info{color:#666;font-size:.9rem}.modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;bottom:0;left:0;position:fixed;right:0;top:0;z-index:1000}.modal{background:#fff;border-radius:8px;box-shadow:0 10px 40px #0003;left:50%;max-height:90vh;max-width:600px;overflow-y:auto;position:fixed;top:50%;transform:translate(-50%,-50%);width:90%;z-index:1001}.modal.modal-small{max-width:450px}.modal-header{align-items:center;background:#fff;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:1.5rem;position:sticky;top:0;z-index:1}.modal-header h3{color:#1a1a1a;font-size:1.25rem;margin:0}.btn-close{align-items:center;background:none;border:none;border-radius:4px;color:#666;cursor:pointer;display:flex;font-size:1.5rem;height:32px;justify-content:center;padding:0;transition:background .2s;width:32px}.btn-close:hover{background:#f0f0f0;color:#333}.modal-body{padding:1.5rem}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.modal-actions .btn-primary,.modal-actions .btn-secondary{min-width:100px;width:auto}.overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;left:0;z-index:1000}.overlay,.right-sheet{bottom:0;position:fixed;right:0;top:0}.right-sheet{animation:slideInRight .3s ease-out;background:#fff;box-shadow:-4px 0 20px #00000026;display:flex;flex-direction:column;max-width:600px;width:90%;z-index:1001}@keyframes slideInRight{0%{transform:translateX(100%)}to{transform:translateX(0)}}.sheet-header{align-items:center;background:#f8f9fa;border-bottom:2px solid #eee;display:flex;justify-content:space-between;padding:1.5rem}.sheet-header h3{color:#1a1a1a;font-size:1.5rem;margin:0}.sheet-body{flex:1 1;overflow-y:auto;padding:2rem}.user-details-view{gap:1.5rem}.detail-row,.user-details-view{display:flex;flex-direction:column}.detail-row{border-bottom:1px solid #f0f0f0;gap:.5rem;padding-bottom:1rem}.detail-row:last-of-type{border-bottom:none}.detail-row label{color:#666;font-size:.85rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.detail-row span{color:#1a1a1a;font-size:1rem}.detail-row .mono{background:#f8f9fa;border-radius:4px;color:#667eea;display:inline-block;font-family:monospace;font-size:.95rem;padding:.25rem .5rem}.detail-actions{border-top:2px solid #eee;display:flex;flex-direction:column;gap:.75rem;margin-top:2rem;padding-top:2rem}.detail-actions button{font-size:.95rem;padding:.75rem;width:100%}.user-form{display:flex;flex-direction:column;gap:1.25rem}.user-form .form-group{margin-bottom:0}.user-form .form-group label{color:#2d3748;display:block;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.user-form .form-group input,.user-form .form-group select,.user-form .form-group textarea{border:1px solid #ddd;border-radius:4px;font-family:inherit;font-size:.95rem;padding:.75rem;width:100%}.user-form .form-group input:focus,.user-form .form-group select:focus,.user-form .form-group textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.user-form .form-group input:disabled{background:#f5f5f5;color:#999;cursor:not-allowed}.user-form .form-group small{color:#666;display:block;font-size:.8rem;margin-top:.25rem}.user-form .form-group textarea{min-height:80px;resize:vertical}.country-input-wrapper{align-items:center;border:1px solid #ddd;border-radius:4px;display:flex;gap:.75rem;padding-left:.75rem;transition:border-color .2s,box-shadow .2s}.country-input-wrapper:focus-within{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.country-input-flag{flex-shrink:0;font-size:1.5rem;line-height:1}.country-input{border:none!important;flex:1 1;padding-left:0!important}.country-input,.country-input:focus{box-shadow:none!important}.form-actions{border-top:2px solid #eee;display:flex;gap:.75rem;margin-top:1.5rem;padding-top:1.5rem}.form-actions button{flex:1 1;font-size:.95rem;padding:.75rem}.role-checkboxes{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.checkbox-label{align-items:flex-start;border:1px solid #e2e8f0;border-radius:4px;cursor:pointer;display:flex;gap:.75rem;padding:.75rem;transition:all .2s}.checkbox-label:hover{background:#f8f9fa;border-color:#cbd5e0}.checkbox-label input[type=checkbox]{cursor:pointer;margin-top:.25rem;width:auto}.checkbox-label span{color:#1a1a1a;font-weight:500}.checkbox-label small{color:#666;display:block;font-size:.85rem;margin-top:.25rem}.success{background:#c6f6d5;color:#22543d}.error,.success{border-radius:4px;font-size:.95rem;margin-bottom:1rem;padding:1rem}.error{background:#fed7d7;color:#742a2a}.header-left{align-items:center;display:flex}.header-nav{display:flex;gap:.5rem}.header-nav button{background:#0000;padding:.625rem 1rem;transition:background .2s,color .2s}.header-nav button:hover{background:#2a2a2a}.header-nav button.active{background:#667eea;color:#fff}.header-right{gap:1rem}.header-right,.user-info{align-items:center;display:flex}.user-info{color:#ddd;font-size:.9rem;gap:.5rem}.user-flag{align-items:center;display:inline-flex;font-size:1.25rem;line-height:1}.app-title{font-size:1.5rem;font-weight:600;margin:0}
/*# sourceMappingURL=main.2574a291.css.map*/