body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.side-menu{background-color:var(--gray-100);border-right:1px solid var(--gray-300);display:flex;flex-direction:column;height:100vh;justify-content:flex-start;padding:var(--spacing-xl) 0;width:250px}.side-menu nav ul{list-style:none}.side-menu nav li,.side-menu nav ul{margin:0;padding:0}.side-menu button{background:none;border:none;color:var(--gray-800);cursor:pointer;font-size:1rem;padding:var(--spacing-lg) var(--spacing-xl);text-align:left;transition:background-color var(--transition);width:100%}.side-menu button:hover{background-color:var(--gray-200)}.side-menu button.active{background-color:var(--primary);color:var(--white)}.side-menu-bottom{align-items:flex-start;border-top:1px solid var(--gray-300);display:flex;flex-direction:column;margin-top:auto;padding:var(--spacing-xl)}.user-name{color:var(--gray-600);font-size:.9375rem;margin-bottom:var(--spacing-md)}.logout-button{background:var(--danger);border:none;border-radius:var(--radius);color:var(--white);cursor:pointer;font-size:.9375rem;padding:var(--spacing-sm) var(--spacing-md);transition:background var(--transition)}.logout-button:hover{background:var(--danger-hover)}.locations-container{width:100%}.integrator-selector{background-color:var(--gray-100);border:1px solid var(--gray-300);border-radius:var(--radius);margin-bottom:var(--spacing-xl);padding:var(--spacing-md)}.integrator-selector label{color:var(--gray-700);display:block;font-weight:500;margin-bottom:var(--spacing-sm)}.integrator-selector select{background-color:var(--white);border:1px solid var(--gray-400);border-radius:var(--radius);cursor:pointer;font-size:1rem;max-width:400px;padding:var(--spacing-sm);width:100%}.integrator-selector select:focus{border-color:var(--primary);box-shadow:0 0 0 .2rem #007bff40;outline:none}.integrator-selector select:disabled{background-color:var(--gray-200);cursor:not-allowed}.dialog-content{background-color:var(--gray-100);border:1px solid var(--gray-300);border-radius:var(--radius);margin-bottom:var(--spacing-md);max-height:400px;overflow-y:auto;padding:var(--spacing-md)}.dialog-content p{margin:0 0 var(--spacing-sm) 0;white-space:pre-wrap;word-break:break-all}.loading-overlay{align-items:center;background:#ffffffb3;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:var(--z-modal)}.spinner{animation:spin 1s linear infinite;border-top:6px solid var(--gray-200);border:6px solid var(--gray-200);border-radius:50%;border-top-color:var(--primary);height:48px;width:48px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.modal-overlay{align-items:flex-start;background:#00000059;padding-top:5vh;z-index:1000}.modal-content{background:#fff;border:1.5px solid #e0e0e0;border-radius:12px;box-shadow:0 8px 32px #00000040;display:flex;flex-direction:column;max-height:85vh;max-width:900px;min-width:400px;overflow:hidden;width:98%}.modal-header{background-color:#f8f9fa;border-bottom:1px solid #ececec;padding:18px 24px 10px}.modal-header h3{color:#222;font-size:19px}.modal-header button{align-items:center;background:none;border:none;border-radius:4px;color:#888;cursor:pointer;display:flex;font-size:26px;height:32px;justify-content:center;padding:0;transition:background .15s;width:32px}.modal-header button:hover{background-color:#f1f3f4;color:#222}.modal-body{background:#fcfcfc;flex:1 1;overflow-y:auto;padding:18px 24px 10px}.modal-body p{color:#333;margin:0 0 10px}.modal-body ul{background:#f5f5f5;border:1px solid #ececec;border-radius:6px;font-family:Fira Mono,Menlo,Consolas,monospace;font-size:14px;margin:0;max-height:220px;overflow-y:auto;padding:10px 16px}.modal-body li{color:#444;margin-bottom:6px;word-break:break-word}.modal-footer{background-color:#f8f9fa;border-top:1px solid #ececec;padding:14px 24px 18px}.modal-footer button{background:#1976d2;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:15px;font-weight:500;min-width:90px;padding:8px 18px;transition:background .15s}.modal-footer button:hover{background:#1256a3}.data-table{background-color:var(--white);border:1px solid var(--gray-300);border-radius:var(--radius);display:table;min-height:200px;overflow:hidden;table-layout:auto;width:100%}.info-header{background-color:var(--gray-100);display:table-row}.field-header{border-bottom:2px solid var(--gray-300);color:var(--gray-700);display:table-cell;font-weight:600;padding:var(--spacing-sm) var(--spacing-md);text-align:left;text-transform:capitalize;vertical-align:top;white-space:nowrap}.field-header.sortable{cursor:pointer;padding-right:1.5rem;position:relative;-webkit-user-select:none;user-select:none}.field-header.sortable:hover{background-color:var(--gray-200)}.header-content{margin-bottom:var(--spacing-sm)}.filter-input{background-color:var(--white);border:1px solid var(--gray-400);border-radius:var(--radius-sm);box-sizing:border-box;font-size:.875rem;padding:var(--spacing-xs) var(--spacing-sm);width:100%}.filter-input:focus{border-color:var(--primary);box-shadow:0 0 0 .2rem #007bff40;outline:none}.filter-input::placeholder{color:var(--gray-500);font-style:italic}.info-row{display:table-row;min-height:48px}.info-row:nth-child(2n){background-color:var(--gray-100)}.field-actions,.field-value{border-bottom:1px solid var(--gray-300);display:table-cell;min-height:48px;padding:var(--spacing-md);text-align:left}.field-value{color:var(--gray-900);max-width:300px;min-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-word}.field-value:has(>div[style*="border: 1px solid #e0e0e0"]){max-width:none;min-width:400px;width:50%}.field-actions{min-width:120px;white-space:nowrap}.page-layout{margin:0 auto;max-width:100%;overflow-x:auto;padding:var(--spacing-xl)}.header{align-items:center;justify-content:space-between}.traces{margin:0 auto;max-width:100%;overflow-x:auto;padding:var(--spacing-xl)}.header{display:flex;flex-direction:column;margin-bottom:var(--spacing-xl)}.header h2{color:var(--gray-800);margin:0;margin-bottom:var(--spacing-md)}.filters{display:flex;flex-wrap:wrap;gap:var(--spacing-xl)}.filter-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.filter-group label{color:var(--gray-600);font-size:.9em}.filter-group input{border:1px solid var(--gray-300);border-radius:var(--radius);min-width:200px;padding:var(--spacing-sm)}.load-more{display:flex;justify-content:center;margin-top:var(--spacing-xl)}.error,.loading,.no-data{color:var(--gray-600);font-size:1.2rem;padding:var(--spacing-xl);text-align:center}.error{color:var(--danger)}.accounts{padding:var(--spacing-lg)}.accounts .header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-lg)}.accounts .header h2{color:var(--gray-800);margin:0}.accounts .filters{align-items:center;display:flex;gap:var(--spacing-md)}.accounts .filter-group{align-items:center;display:flex;gap:var(--spacing-sm)}.accounts .filter-group label{color:var(--gray-700);font-weight:500}.accounts .filter-group input{border:1px solid var(--gray-300);border-radius:var(--radius-sm);font-size:.875rem;padding:var(--spacing-sm)}.accounts .filter-group input:focus{border-color:var(--primary);box-shadow:0 0 0 .2rem #007bff40;outline:none}.modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:var(--z-modal)}.modal-content{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow);max-height:90vh;max-width:800px;overflow-y:auto;padding:0;width:90%}.modal-header{align-items:center;border-bottom:1px solid var(--gray-300);display:flex;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg)}.modal-header h3{color:var(--gray-800);font-size:1.25rem;font-weight:600;margin:0}.modal-body{padding:var(--spacing-lg)}.modal-body form{grid-gap:var(--spacing-md) var(--spacing-lg);align-items:center;display:grid;gap:var(--spacing-md) var(--spacing-lg);grid-template-columns:max-content 1fr}.modal-footer{border-top:1px solid var(--gray-300);display:flex;gap:var(--spacing-md);justify-content:flex-end;padding:var(--spacing-md) var(--spacing-lg)}.form-group{display:contents;margin-bottom:var(--spacing-md)}.form-group label{color:var(--gray-800);font-weight:500;justify-self:start;margin-bottom:0;min-width:140px;text-align:left}.form-control{border:1px solid var(--gray-300);border-radius:var(--radius);box-sizing:border-box;font-size:.875rem;padding:var(--spacing-sm) var(--spacing-md);width:100%}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 2px #007bff40;outline:none}.form-control:disabled{background-color:var(--gray-100);color:var(--gray-600);cursor:not-allowed}.array-container{background-color:var(--gray-100);grid-column:1/-1}.array-container,.array-item{border:1px solid var(--gray-300);border-radius:var(--radius);padding:var(--spacing-md)}.array-item{background:var(--white);margin-bottom:var(--spacing-sm)}.array-item:last-child{margin-bottom:0}.form-row{grid-gap:var(--spacing-sm);align-items:center;display:grid;gap:var(--spacing-sm);grid-template-columns:1fr 1fr 1fr auto}.form-row .form-group{align-items:stretch;display:flex;flex-direction:column;margin-bottom:0}.form-row .form-group label{margin-bottom:var(--spacing-xs);min-width:auto;text-align:left}.form-row .form-control{flex:none}@media (max-width:700px){.modal-body form{grid-template-columns:1fr}.form-group label{justify-self:start;margin-bottom:var(--spacing-xs)}}.location-groups{padding:var(--spacing-lg)}.location-groups .header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-lg)}.location-groups .header h2{color:var(--gray-800);margin:0}.location-groups .filters{align-items:center;display:flex;gap:var(--spacing-md)}.location-groups .filter-group{align-items:center;display:flex;gap:var(--spacing-sm)}.location-groups .filter-group label{color:var(--gray-700);font-weight:500}.location-groups .filter-group input{border:1px solid var(--gray-300);border-radius:var(--radius-sm);font-size:.875rem;padding:var(--spacing-sm)}.location-groups .filter-group input:focus{border-color:var(--primary);box-shadow:0 0 0 .2rem #007bff40;outline:none}.layout{display:flex;height:100vh;min-height:100vh}.main-content{background-color:var(--white);flex:1 1;min-height:100vh;overflow:auto;padding:var(--spacing-xl)}.page-layout .header{align-items:center;border-bottom:1px solid var(--gray-300);display:flex;justify-content:space-between;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-md)}.page-layout .header h2{color:var(--gray-800);margin:0}.create-button{background-color:var(--success);border:none;border-radius:var(--radius);color:var(--white);cursor:pointer;font-size:.875rem;padding:var(--spacing-sm) var(--spacing-md);transition:background-color var(--transition)}.create-button:hover{background-color:var(--success-hover)}.action-buttons{display:flex;gap:var(--spacing-xs)}.edit-button{background-color:var(--primary);border:none;border-radius:var(--radius);color:var(--white);cursor:pointer;font-size:.75rem;padding:var(--spacing-xs) var(--spacing-sm);transition:background-color var(--transition)}.edit-button:hover:not(:disabled){background-color:var(--primary-hover)}.delete-button{background-color:var(--danger);border:none;border-radius:var(--radius);color:var(--white);cursor:pointer;font-size:.75rem;padding:var(--spacing-xs) var(--spacing-sm);transition:background-color var(--transition)}.delete-button:hover:not(:disabled){background-color:var(--danger-hover)}.delete-button:disabled,.edit-button:disabled{cursor:not-allowed;opacity:.6}.login-container{align-items:center;background-color:var(--gray-100);display:flex;height:100vh;justify-content:center}.login-box{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:var(--spacing-xl);text-align:center}.login-box h1{color:var(--gray-800);margin-bottom:var(--spacing-md)}.login-box p{color:var(--gray-600);margin-bottom:var(--spacing-xl)}.login-button{background-color:var(--primary);border:none;border-radius:var(--radius);color:var(--white);cursor:pointer;font-size:1rem;padding:var(--spacing-sm) var(--spacing-md);transition:background-color var(--transition)}.login-button:hover{background-color:var(--primary-hover)}:root{--primary:#007bff;--primary-hover:#0056b3;--success:#28a745;--success-hover:#218838;--danger:#dc3545;--danger-hover:#c82333;--warning:#ffc107;--warning-hover:#e0a800;--info:#17a2b8;--info-hover:#138496;--light:#f8f9fa;--dark:#343a40;--white:#fff;--gray-100:#f8f9fa;--gray-200:#e9ecef;--gray-300:#dee2e6;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#495057;--gray-800:#343a40;--gray-900:#212529;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--radius-sm:3px;--radius:4px;--radius-lg:8px;--shadow-sm:0 2px 4px #0000001a;--shadow:0 4px 6px #0000001a;--shadow-lg:0 10px 15px #0000001a;--transition:0.2s ease;--z-modal:1000;--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal-backdrop:1040;--z-modal:1050;--z-popover:1060;--z-tooltip:1070}.btn{align-items:center;border:none;border-radius:var(--radius);cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;justify-content:center;line-height:1.5;padding:var(--spacing-sm) var(--spacing-md);text-decoration:none;transition:background-color var(--transition)}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{background-color:var(--primary);color:var(--white)}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover)}.btn-success{background-color:var(--success);color:var(--white)}.btn-success:hover:not(:disabled){background-color:var(--success-hover)}.btn-danger{background-color:var(--danger);color:var(--white)}.btn-danger:hover:not(:disabled){background-color:var(--danger-hover)}.btn-secondary{background-color:var(--gray-600);color:var(--white)}.btn-secondary:hover:not(:disabled){background-color:var(--gray-700)}.btn-sm{font-size:.75rem;padding:var(--spacing-xs) var(--spacing-sm)}.btn-lg{font-size:1rem;padding:var(--spacing-md) var(--spacing-lg)}.btn-icon{height:32px;min-width:32px;padding:var(--spacing-xs)}.btn-group{display:flex;gap:var(--spacing-xs)}.App{text-align:center}