*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#ecf0f1;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}#root{height:100vh;width:100vw}.interactive-map-container{align-items:center;background-color:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;display:flex;flex-direction:column;gap:.75rem;max-height:calc(100vh - 140px);overflow-y:auto;padding:1rem}.interactive-map-canvas{background-color:#fff;border:2px solid #bdc3c7;border-radius:4px;box-shadow:0 2px 4px #0000001a;cursor:crosshair;display:block;height:auto;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;max-width:100%;transition:none}.interactive-map-canvas.dragging{cursor:grabbing!important}.interactive-map-canvas.drag-hover{cursor:grab}.interactive-map-canvas:hover{border-color:#3498db}.map-info{color:#7f8c8d;font-size:.8rem;line-height:1.3;max-height:120px;overflow-y:auto;text-align:center}.map-info p{margin:.2rem 0}.employee-name-editor{background-color:#fff;border:2px solid #3498db;border-radius:8px;box-shadow:0 4px 12px #0000004d;left:50%;padding:1rem;position:fixed;top:50%;transform:translate(-50%,-50%);z-index:1000}.employee-name-editor input{border:1px solid #bdc3c7;border-radius:4px;font-size:1rem;outline:none;padding:.5rem;width:200px}.employee-name-editor input:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db33}@media (max-width:1200px){.interactive-map-canvas{height:auto;max-height:60vh;max-width:90vw;width:auto}.interactive-map-container{padding:1rem}}.interactive-map-canvas{height:700px!important;width:1000px!important}@media (max-width:1200px){.interactive-map-canvas{transform:scale(.9);transform-origin:center}.interactive-map-container{padding:.75rem}.map-info{font-size:.75rem;max-height:100px}}@media (max-width:1000px){.interactive-map-canvas{transform:scale(.8);transform-origin:center}}.shelf-type-selector{background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;box-shadow:0 2px 4px #0000001a;margin-bottom:12px;padding:12px}.shelf-type-selector h3{color:#2c3e50;font-size:14px;font-weight:600;margin:0 0 8px}.type-buttons{display:flex;gap:6px;margin-bottom:10px}.type-button{align-items:center;background:#fff;border:2px solid #dee2e6;border-radius:4px;cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-family:inherit;padding:8px 6px;transition:all .2s ease}.type-button:hover{border-color:#adb5bd;box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.type-button.active{background:#e7f3ff;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.type-button.metal.active{background:#f3e5f5;border-color:#9c27b0;box-shadow:0 0 0 2px #9c27b040}.type-button.wood.active{background:#fff3e0;border-color:#ff9800;box-shadow:0 0 0 2px #ff980040}.type-button .icon{font-size:20px;margin-bottom:2px}.type-button .label{color:#495057;font-size:12px;font-weight:500}.type-button.active .label{color:#2c3e50;font-weight:600}.instructions{background:#e9ecef;border-radius:4px;padding:12px}.instructions p{color:#495057;font-size:12px;font-weight:600;margin:0 0 8px}.instructions ul{color:#6c757d;font-size:11px;margin:0;padding-left:16px}.instructions li{margin-bottom:2px}.layout-operations{background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;box-shadow:0 2px 4px #0000001a;margin-bottom:12px;padding:12px}.layout-operations h3{color:#2c3e50;font-size:14px;font-weight:600;margin:0 0 8px}.operation-buttons{display:flex;flex-direction:column;gap:6px}.operation-button{align-items:center;background:#fff;border:1px solid #dee2e6;border-radius:4px;color:#495057;cursor:pointer;display:flex;font-family:inherit;font-size:12px;font-weight:500;gap:6px;justify-content:flex-start;padding:8px 10px;transition:all .2s ease}.operation-button:hover:not(:disabled){border-color:#adb5bd;box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.operation-button:disabled{background:#f8f9fa;cursor:not-allowed;opacity:.5}.operation-button.example-layout:hover:not(:disabled){background:#d4edda;border-color:#28a745;color:#155724}.operation-button.auto-balance:hover:not(:disabled){background:#d1ecf1;border-color:#17a2b8;color:#0c5460}.operation-button.clear-all:hover:not(:disabled){background:#f8d7da;border-color:#dc3545;color:#721c24}.layout-statistics{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:16px;padding:16px}.layout-statistics h3{color:#2c3e50;font-size:16px;font-weight:600;margin:0 0 12px}.stats-grid{display:flex;flex-direction:column;gap:8px}.stat-item{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:6px 0}.stat-item:last-child{border-bottom:none}.stat-label{font-weight:500}.stat-value{color:#495057;font-size:12px;font-weight:600}.stat-value.metal{color:#9c27b0}.stat-value.wood{color:#ff9800}.balance-indicator{align-items:stretch;flex-direction:column;gap:4px}.balance-bar{background:#e9ecef;border-radius:4px;display:flex;height:8px;overflow:hidden}.balance-fill{height:100%;transition:width .3s ease}.balance-fill.metal{background:#9c27b0}.balance-fill.wood{background:#ff9800}.display-settings{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:16px;padding:16px}.display-settings h3{color:#2c3e50;font-size:16px;font-weight:600;margin:0 0 12px}.toggle-controls{display:flex;flex-direction:column;gap:8px}.toggle-label{align-items:center;color:#495057;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px}.toggle-label input[type=checkbox]{cursor:pointer;height:16px;width:16px}.toggle-text{-webkit-user-select:none;user-select:none}.toggle-description{color:#6c757d;font-size:11px;line-height:1.4;margin:4px 0 0 24px}.confirmation-dialog{box-shadow:0 8px 32px #0000004d}.confirmation-dialog h4{font-weight:600}.confirmation-dialog p{font-size:14px;line-height:1.4;margin:8px 0}.warning-text{color:#dc3545!important;font-size:13px!important;font-weight:500}.confirmation-buttons{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}.confirm-button{border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s ease}.confirm-button.cancel{background:#6c757d;color:#fff}.confirm-button.cancel:hover{background:#5a6268}.confirm-button.confirm{background:#dc3545;color:#fff}.confirm-button.confirm:hover{background:#c82333}.rfid-tooltip{border:1px solid #fff3;box-shadow:0 4px 12px #0000004d;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;max-width:200px}.task-queue-container{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;min-height:auto;overflow:visible}.task-queue-header{background:#f8f9fa;border-bottom:1px solid #e9ecef;padding:12px}.task-queue-header h3{color:#2c3e50;font-size:16px;font-weight:600;margin:0 0 6px}.task-queue-stats{display:flex;font-size:14px;gap:16px}.stat-item{color:#6c757d}.stat-item strong{color:#2c3e50}.stat-item.preemption-warning,.stat-item.preemption-warning strong{color:#dc3545}.task-creation-section{background:#fff;border-bottom:1px solid #e9ecef;padding:12px}.task-creation-section h4{color:#2c3e50;font-size:14px;font-weight:600;margin:0 0 8px}.task-creation-controls{display:flex;flex-direction:column;gap:8px}.control-group{display:flex;flex-direction:column;gap:4px}.control-group label{color:#495057;font-size:14px;font-weight:500}.call-station-select,.priority-select{background:#fff;border:1px solid #ced4da;border-radius:4px;color:#495057;font-size:14px;padding:8px 12px}.call-station-select:focus,.priority-select:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a;outline:none}.create-task-btn{background:#3b82f6;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 16px;transition:background-color .2s}.create-task-btn:hover:not(:disabled){background:#2563eb}.create-task-btn:disabled{background:#9ca3af;cursor:not-allowed}.task-queue-section{display:flex;flex:0 0 auto;flex-direction:column;overflow:visible}.queue-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:16px}.queue-header h4{color:#2c3e50;font-size:16px;font-weight:600;margin:0}.queue-actions{display:flex;gap:8px}.undo-btn{background:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:6px 12px;transition:background-color .2s}.undo-btn:hover{background:#5a6268}.clear-all-btn{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:6px 12px;transition:background-color .2s}.clear-all-btn:hover:not(:disabled){background:#c82333}.clear-all-btn:disabled{background:#9ca3af;cursor:not-allowed}.empty-queue{color:#6c757d;padding:32px 16px;text-align:center}.empty-queue p{margin:0 0 8px}.empty-queue-hint{color:#9ca3af;font-size:14px}.task-list{flex:0 0 auto;overflow:visible;padding:8px}.task-item{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:4px;display:flex;justify-content:space-between;margin-bottom:6px;padding:8px;transition:all .2s}.task-item:hover{box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.task-item.active{background:#f0f9ff;border-color:#3b82f6}.task-item.completed{background:#f0fdf4;border-color:#22c55e;opacity:.8}.task-info{display:flex;flex:1 1;flex-direction:column;gap:4px}.task-header{align-items:center;display:flex;justify-content:space-between}.task-type{color:#2c3e50;font-size:14px;font-weight:600;text-transform:capitalize}.task-priority{background:#fffc;border-radius:3px;font-size:12px;padding:2px 6px}.task-details{align-items:center;color:#6c757d;display:flex;font-size:12px;justify-content:space-between}.task-target{font-weight:500}.task-timestamp{font-size:11px}.task-status-indicator{margin-top:4px}.status-badge{border-radius:3px;font-size:10px;font-weight:600;padding:2px 6px;text-transform:uppercase}.status-badge.pending{background:#fef3c7;color:#92400e}.status-badge.active{background:#dbeafe;color:#1e40af}.status-badge.completed{background:#d1fae5;color:#065f46}.status-badge.interrupted{background:#fef2f2;color:#dc2626}.task-controls{display:flex;flex-direction:column;gap:4px;margin-left:12px}.move-btn,.remove-btn{align-items:center;background:#fff;border:1px solid #ced4da;border-radius:3px;cursor:pointer;display:flex;font-size:12px;height:24px;justify-content:center;transition:all .2s;width:24px}.move-btn:hover:not(:disabled){background:#f8f9fa;border-color:#3b82f6;color:#3b82f6}.move-btn:disabled{background:#f8f9fa;color:#9ca3af;cursor:not-allowed}.remove-btn{color:#dc3545}.remove-btn:hover{background:#fef2f2;border-color:#dc3545}.task-statistics-section{background:#f8f9fa;border-top:1px solid #e9ecef;padding:16px}.task-statistics-section h4{color:#2c3e50;font-size:16px;font-weight:600;margin:0 0 12px}.stats-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr}.stat-card{background:#fff;border:1px solid #e9ecef;border-radius:6px;padding:12px}.stat-label{color:#6c757d;font-size:12px;font-weight:600;margin-bottom:8px;text-transform:uppercase}.performance-stats,.priority-stats,.status-stats{display:flex;flex-direction:column;gap:4px}.performance-stat,.priority-stat,.status-stat{align-items:center;color:#495057;display:flex;font-size:13px;gap:6px}.performance-stat.preemption,.status-stat.interrupted{color:#dc2626}.priority-dot{border-radius:50%;height:8px;width:8px}.confirmation-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.confirmation-dialog{background:#fff;border-radius:8px;box-shadow:0 4px 16px #0003;max-width:400px;padding:24px;width:90%}.confirmation-dialog h4{color:#2c3e50;font-size:18px;margin:0 0 12px}.confirmation-dialog p{color:#495057;line-height:1.5;margin:0 0 8px}.confirmation-warning{color:#6c757d;font-size:14px;font-style:italic}.confirmation-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}.cancel-btn{background:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:8px 16px;transition:background-color .2s}.cancel-btn:hover{background:#5a6268}.confirm-btn{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:8px 16px;transition:background-color .2s}.confirm-btn:hover{background:#c82333}@media (max-width:768px){.task-creation-controls{gap:8px}.task-item{padding:10px}.task-controls{flex-direction:row;gap:2px}.move-btn,.remove-btn{font-size:10px;height:20px;width:20px}.stats-grid{grid-template-columns:1fr}}.task-list{position:relative}.task-list:after{background:linear-gradient(#0000,#fffc);bottom:0;content:"";height:20px;left:0;opacity:0;pointer-events:none;position:absolute;right:0;transition:opacity .3s ease}.task-list:hover:after{opacity:1}.task-list::-webkit-scrollbar{width:6px}.task-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.task-list::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.task-list::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.employee-panel-container{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;max-height:500px;min-height:300px;overflow:hidden}.employee-panel-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:12px}.employee-panel-header h3{color:#2c3e50;font-size:16px;font-weight:600;margin:0}.employee-count{background:#e9ecef;border-radius:12px;color:#6c757d;font-size:14px;padding:4px 8px}.online-count{color:#27ae60;font-weight:600}.employee-actions{background:#fff;border-bottom:1px solid #e9ecef;padding:12px}.add-employee-btn{background:#27ae60;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s;width:100%}.add-employee-btn:hover:not(:disabled){background:#219a52}.add-employee-btn:disabled{background:#95a5a6;cursor:not-allowed}.employee-list{flex:1 1;overflow-y:auto;padding:8px}.employee-item{background:#fff;border:1px solid #e9ecef;border-radius:4px;margin-bottom:6px;transition:all .2s}.employee-item:hover{box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.employee-info{padding:8px}.employee-header{align-items:center;display:flex;gap:8px;margin-bottom:8px}.employee-status{font-size:12px;text-align:center;width:16px}.employee-name{border-radius:3px;color:#2c3e50;cursor:pointer;flex:1 1;font-size:14px;font-weight:600;padding:2px 4px;transition:background-color .2s}.employee-name:hover{background:#f8f9fa}.employee-name-edit{flex:1 1}.name-input{background:#fff;border:1px solid #3498db;border-radius:3px;font-size:14px;font-weight:600;outline:none;padding:4px 8px;width:100%}.name-input:focus{border-color:#2980b9;box-shadow:0 0 0 2px #3498db33}.employee-details{color:#6c757d;display:flex;flex-direction:column;font-size:12px;gap:4px;margin-bottom:8px}.employee-position{font-family:monospace}.employee-status-text .online{color:#27ae60;font-weight:600}.employee-status-text .offline{color:#e74c3c;font-weight:600}.employee-actions-row{display:flex;flex-wrap:wrap;gap:4px}.employee-actions-row button{border:none;border-radius:3px;cursor:pointer;flex:1 1;font-size:11px;font-weight:500;min-width:80px;padding:4px 8px;transition:all .2s}.call-employee-btn{background:#3498db;color:#fff}.call-employee-btn:hover:not(:disabled){background:#2980b9}.call-employee-btn:disabled{background:#95a5a6;cursor:not-allowed}.toggle-status-btn{background:#f39c12;color:#fff}.toggle-status-btn:hover:not(:disabled){background:#e67e22}.toggle-status-btn:disabled{background:#95a5a6;cursor:not-allowed}.remove-employee-btn{background:#e74c3c;color:#fff;flex:0 0 auto;min-width:32px}.remove-employee-btn:hover:not(:disabled){background:#c0392b}.remove-employee-btn:disabled{background:#95a5a6;cursor:not-allowed}.no-employees{color:#6c757d;font-size:14px;padding:24px;text-align:center}.no-employees p{margin:8px 0}.employee-list{position:relative}.employee-list:after{background:linear-gradient(#0000,#fffc);bottom:0;content:"";height:20px;left:0;opacity:0;pointer-events:none;position:absolute;right:0;transition:opacity .3s ease}.employee-list:hover:after{opacity:1}.employee-list::-webkit-scrollbar{width:6px}.employee-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.employee-list::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.employee-list::-webkit-scrollbar-thumb:hover{background:#a8a8a8}@media (max-width:768px){.employee-panel-header{align-items:flex-start;flex-direction:column;gap:8px}.employee-details{gap:2px}.employee-actions-row{flex-direction:column;gap:4px}.employee-actions-row button{flex:none;min-width:auto}}.robot-status-container{background:#0000;gap:12px;min-height:100%}.robot-status-container,.robot-status-panel{display:flex;flex-direction:column;overflow:visible}.robot-status-panel{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;min-height:auto}.robot-status-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:12px}.robot-status-header h3{color:#2c3e50;font-size:16px;font-weight:600;margin:0}.robot-count{background:#e9ecef;border-radius:12px;color:#6c757d;font-size:14px;padding:4px 8px}.robot-list{flex:0 0 auto;overflow:visible;padding:8px}.robot-item{background:#fff;border:1px solid #e9ecef;border-radius:4px;margin-bottom:6px;transition:all .2s}.robot-item:hover{box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.robot-info{padding:8px}.robot-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.robot-name{color:#2c3e50;font-size:14px;font-weight:600}.robot-status{background:#fffc;border-radius:3px;font-size:12px;font-weight:600;padding:2px 6px}.robot-details{align-items:center;color:#6c757d;display:flex;font-size:12px;justify-content:space-between;margin-bottom:8px}.robot-position{font-family:monospace}.robot-battery{align-items:center;display:flex;gap:4px}.battery-level{font-weight:600}.current-task{background:#f0f9ff;border:1px solid #bfdbfe;border-radius:4px;margin-bottom:8px;padding:8px}.task-info{color:#1e40af;font-size:12px;margin-bottom:2px}.task-priority{font-size:11px;font-weight:600}.robot-metrics{background:#f8f9fa;border-radius:4px;font-size:12px;padding:8px}.metric-item{align-items:center;color:#495057;display:flex;justify-content:space-between;margin-bottom:4px}.metric-item:last-child{margin-bottom:0}.efficiency-value{color:#22c55e;font-weight:600}.efficiency-value.low{color:#f59e0b}.interrupted-count{color:#dc2626;font-weight:500}.preemption-warning{color:#dc2626!important;font-weight:600}.preemption-events{background:#fef2f2;border-top:1px solid #fecaca;padding:16px}.preemption-events h4{color:#dc2626;font-size:16px;font-weight:600;margin:0 0 12px}.events-list{display:flex;flex-direction:column;gap:8px}.preemption-event{background:#fff;border:1px solid #fecaca;border-radius:4px;padding:8px}.event-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.event-robot{color:#dc2626;font-size:12px;font-weight:600}.event-time{color:#6c757d;font-family:monospace;font-size:11px}.event-details{color:#495057;font-size:11px}.event-reason{margin-bottom:2px}.priority-diff{color:#dc2626;font-weight:500}.system-efficiency{background:#f8f9fa;border-top:1px solid #e9ecef;padding:16px}.system-efficiency h4{color:#2c3e50;font-size:16px;font-weight:600;margin:0 0 12px}.efficiency-summary{display:flex;flex-direction:column;gap:8px}.robot-efficiency{align-items:center;display:flex;font-size:12px;gap:8px}.robot-id{color:#495057;font-weight:500;min-width:80px}.efficiency-bar{background:#e9ecef;border-radius:10px;flex:1 1;height:20px;overflow:hidden;position:relative}.efficiency-fill{border-radius:10px;height:100%;transition:width .3s ease}.efficiency-text{color:#fff;font-size:10px;font-weight:600;left:50%;position:absolute;text-shadow:0 1px 2px #0000004d;top:50%;transform:translate(-50%,-50%)}@media (max-width:768px){.robot-status-header{align-items:flex-start;flex-direction:column;gap:8px}.robot-details,.robot-efficiency{align-items:flex-start;flex-direction:column;gap:4px}.robot-id{min-width:auto}}.robot-list{position:relative}.robot-list:after{background:linear-gradient(#0000,#fffc);bottom:0;content:"";height:20px;left:0;opacity:0;pointer-events:none;position:absolute;right:0;transition:opacity .3s ease}.robot-list:hover:after{opacity:1}.robot-list::-webkit-scrollbar{width:6px}.robot-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.robot-list::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.robot-list::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.performance-dashboard{background:#000000e6;bottom:0;color:#fff;display:flex;flex-direction:column;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;left:0;position:fixed;right:0;top:0;z-index:10000}.dashboard-header{align-items:center;background:linear-gradient(135deg,#1e3a8a,#3b82f6);border-bottom:2px solid #60a5fa;display:flex;justify-content:space-between;padding:20px}.dashboard-header h2{font-size:24px;font-weight:700;margin:0}.dashboard-controls{display:flex;gap:10px}.dashboard-controls button{border:none;border-radius:6px;cursor:pointer;font-weight:500;padding:8px 16px;transition:all .2s ease}.monitor-toggle{background:#22c55e;color:#fff}.monitor-toggle:hover{background:#16a34a}.monitor-toggle.active{background:#dc2626}.monitor-toggle.active:hover{background:#b91c1c}.clear-btn{background:#f59e0b;color:#fff}.clear-btn:hover{background:#d97706}.gc-btn{background:#8b5cf6;color:#fff}.gc-btn:hover{background:#7c3aed}.export-btn{background:#06b6d4;color:#fff}.export-btn:hover{background:#0891b2}.close-btn{align-items:center;background:#ef4444;border-radius:50%;color:#fff;display:flex;font-size:16px;height:32px;justify-content:center;width:32px}.close-btn:hover{background:#dc2626}.dashboard-content{display:flex;flex:1 1;flex-direction:column;gap:24px;overflow-y:auto;padding:20px}.metrics-section h3{color:#60a5fa;font-size:18px;margin:0 0 16px}.metrics-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.metric-card{align-items:center;background:linear-gradient(135deg,#1f2937,#374151);border:1px solid #4b5563;border-radius:8px;display:flex;flex-direction:column;padding:16px;position:relative;text-align:center}.metric-label{color:#9ca3af;font-size:12px;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.metric-value{color:#fff;font-size:24px;font-weight:700;margin-bottom:8px}.metric-status{font-size:16px;position:absolute;right:8px;top:8px}.metric-status.good{color:#22c55e}.metric-status.warning{color:#f59e0b}.metric-status.critical{color:#ef4444}.summary-section h3{color:#60a5fa;font-size:18px;margin:0 0 16px}.summary-grid{grid-gap:12px;background:linear-gradient(135deg,#1f2937,#374151);border:1px solid #4b5563;border-radius:8px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));padding:20px}.summary-item{align-items:center;border-bottom:1px solid #4b5563;display:flex;justify-content:space-between;padding:8px 0}.summary-item:last-child{border-bottom:none}.summary-label{color:#9ca3af;font-size:14px}.summary-value{color:#fff;font-weight:600}.summary-value.critical{color:#ef4444}.memory-section h3{color:#60a5fa;font-size:18px;margin:0 0 16px}.memory-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.cache-card,.memory-card,.render-card{background:linear-gradient(135deg,#1f2937,#374151);border:1px solid #4b5563;border-radius:8px;padding:16px}.cache-card h4,.memory-card h4,.render-card h4{color:#60a5fa;font-size:14px;letter-spacing:.5px;margin:0 0 12px;text-transform:uppercase}.cache-details,.memory-details,.render-details{display:flex;flex-direction:column;gap:8px}.cache-details div,.memory-details div,.render-details div{color:#d1d5db;display:flex;font-size:13px;justify-content:space-between}.memory-bar{background:#374151;border-radius:4px;height:8px;margin-top:8px;overflow:hidden;width:100%}.memory-usage{border-radius:4px;height:100%;transition:width .3s ease}.alerts-section h3{color:#60a5fa;font-size:18px;margin:0 0 16px}.alerts-list{background:linear-gradient(135deg,#1f2937,#374151);border:1px solid #4b5563;border-radius:8px;max-height:300px;overflow-y:auto}.no-alerts{color:#22c55e;font-size:16px;padding:20px;text-align:center}.alert-item{align-items:flex-start;border-bottom:1px solid #4b5563;display:flex;gap:12px;padding:12px 16px}.alert-item:last-child{border-bottom:none}.alert-item.warning{border-left:4px solid #f59e0b}.alert-item.critical{border-left:4px solid #ef4444}.alert-icon{font-size:18px;margin-top:2px}.alert-content{flex:1 1}.alert-message{color:#fff;font-weight:500;margin-bottom:4px}.alert-details{color:#9ca3af;font-size:12px;margin-bottom:4px}.alert-time{color:#6b7280;font-size:11px}@media (max-width:768px){.dashboard-header{flex-direction:column;gap:16px;text-align:center}.dashboard-controls{flex-wrap:wrap;justify-content:center}.memory-grid,.metrics-grid,.summary-grid{grid-template-columns:1fr}}.alerts-list::-webkit-scrollbar,.dashboard-content::-webkit-scrollbar{width:8px}.alerts-list::-webkit-scrollbar-track,.dashboard-content::-webkit-scrollbar-track{background:#1f2937}.alerts-list::-webkit-scrollbar-thumb,.dashboard-content::-webkit-scrollbar-thumb{background:#4b5563;border-radius:4px}.alerts-list::-webkit-scrollbar-thumb:hover,.dashboard-content::-webkit-scrollbar-thumb:hover{background:#6b7280}.metric-value{transition:color .3s ease}.metric-card:hover{box-shadow:0 4px 12px #0000004d;transform:translateY(-2px);transition:all .2s ease}.metric-card.loading .metric-value{animation:pulse 1.5s ease-in-out infinite;color:#6b7280}.error-notification-container{max-width:400px;pointer-events:none;position:fixed;right:20px;top:80px;z-index:1000}.error-statistics{background:#000c;border-radius:4px;color:#fff;display:flex;font-size:12px;gap:12px;margin-bottom:8px;padding:8px 12px;pointer-events:auto}.stats-item{white-space:nowrap}.error-notification{background:#fff;border-left:4px solid;border-radius:8px;box-shadow:0 4px 12px #00000026;margin-bottom:8px;overflow:hidden;pointer-events:auto;transition:all .3s ease}.error-notification.visible{opacity:1;transform:translateX(0)}.error-notification.hidden{opacity:0;transform:translateX(100%)}.error-notification.critical{background:#fef2f2;border-left-color:#dc2626}.error-notification.high{background:#fffbeb;border-left-color:#f59e0b}.error-notification.medium{background:#eff6ff;border-left-color:#3b82f6}.error-notification.low{background:#f9fafb;border-left-color:#6b7280}.notification-header{align-items:flex-start;cursor:pointer;display:flex;padding:12px;transition:background-color .2s ease}.notification-header:hover{background:#0000000d}.notification-icons{display:flex;flex-direction:column;font-size:16px;gap:4px;margin-right:12px}.severity-icon{display:block}.category-icon{display:block;font-size:14px;opacity:.7}.notification-content{flex:1 1;min-width:0}.error-message{color:#1f2937;font-weight:500;line-height:1.4;margin-bottom:4px}.error-meta{color:#6b7280;display:flex;font-size:12px;gap:12px}.error-time{font-family:monospace}.error-category{text-transform:capitalize}.notification-controls{display:flex;gap:4px;margin-left:8px}.close-btn,.expand-btn{background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;font-size:12px;padding:4px 8px;transition:all .2s ease}.close-btn:hover,.expand-btn:hover{background:#0000001a;color:#374151}.close-btn:hover{color:#dc2626}.notification-details{background:#00000005;border-top:1px solid #0000001a;padding:12px}.technical-details{margin-bottom:16px}.detail-row{font-size:13px;line-height:1.4;margin-bottom:8px}.detail-row strong{color:#374151;margin-right:8px}.context-data{background:#f3f4f6;border-radius:4px;font-size:11px;margin-top:4px;max-height:120px;overflow-x:auto;overflow-y:auto;padding:8px}.alternative-suggestions{margin-bottom:16px}.alternative-suggestions strong{color:#374151;display:block;font-size:13px;margin-bottom:8px}.alternative-suggestions ul{color:#4b5563;font-size:12px;margin:0;padding-left:16px}.alternative-suggestions li{line-height:1.4;margin-bottom:4px}.recovery-actions strong{color:#374151;display:block;font-size:13px;margin-bottom:8px}.action-buttons{display:flex;flex-wrap:wrap;gap:8px}.recovery-btn{align-items:center;background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:12px;gap:4px;min-height:32px;padding:8px 12px;transition:all .2s ease}.recovery-btn:hover:not(:disabled){background:#2563eb;transform:translateY(-1px)}.recovery-btn:disabled{cursor:not-allowed;opacity:.7}.recovery-btn.priority-1{background:#059669}.recovery-btn.priority-1:hover:not(:disabled){background:#047857}.recovery-btn.priority-2{background:#f59e0b}.recovery-btn.priority-2:hover:not(:disabled){background:#d97706}.recovery-btn.priority-3{background:#6b7280}.recovery-btn.priority-3:hover:not(:disabled){background:#4b5563}.estimated-time{font-size:10px;margin-left:4px;opacity:.8}.spinner{animation:spin 1s linear infinite;display:inline-block}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:768px){.error-notification-container{left:10px;max-width:none;right:10px}.notification-details,.notification-header{padding:10px}.action-buttons{flex-direction:column}.recovery-btn{justify-content:center;width:100%}}@media (prefers-color-scheme:dark){.error-notification{background:#1f2937;color:#f9fafb}.error-notification.critical{background:#431a1a}.error-notification.high{background:#451a03}.error-notification.medium{background:#1e3a8a}.error-notification.low{background:#374151}.error-message{color:#f9fafb}.notification-header:hover{background:#ffffff0d}.notification-details{background:#ffffff05;border-top-color:#ffffff1a}.context-data{background:#374151;color:#d1d5db}}.clock-container{align-items:flex-end;color:#fff;display:flex;flex-direction:column;font-family:Courier New,monospace;margin-left:1rem}.clock-time{font-size:1.1rem;font-weight:600;letter-spacing:.5px;text-shadow:0 1px 2px #0000004d}.clock-date{font-size:.8rem;font-weight:400;letter-spacing:.3px;margin-top:2px;opacity:.9}@media (max-width:1200px){.clock-time{font-size:1rem}.clock-date{font-size:.75rem}}@media (max-width:800px){.clock-container{margin-left:.5rem}.clock-time{font-size:.9rem}.clock-date{font-size:.7rem}}.app-container{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;height:100vh;width:100vw}.app-header{align-items:center;background-color:#2c3e50;box-shadow:0 2px 4px #0000001a;color:#fff;display:flex;justify-content:space-between;min-height:60px;padding:.75rem 1.5rem}.app-header h1{font-size:1.25rem;font-weight:600;margin:0}.connection-status{align-items:center;display:flex;flex-direction:row;gap:1rem}.status-indicator{align-items:center;display:flex;font-size:.9rem;gap:.5rem}.status-dot{border-radius:50%;height:10px;transition:background-color .3s ease;width:10px}.status-indicator.connected .status-dot{background-color:#22c55e;box-shadow:0 0 6px #22c55e99}.status-indicator.connecting .status-dot{animation:pulse 1.5s infinite;background-color:#f59e0b}.status-indicator.disconnected .status-dot{background-color:#6b7280}.status-indicator.error .status-dot{animation:pulse 1s infinite;background-color:#dc2626}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.error-message{align-items:center;background-color:#dc26261a;border:1px solid #dc26264d;border-radius:4px;color:#fca5a5;display:flex;font-size:.8rem;gap:.5rem;padding:.25rem .5rem}.reconnect-btn{background-color:#dc2626;border:none;border-radius:3px;color:#fff;cursor:pointer;font-size:.7rem;padding:.25rem .5rem;transition:background-color .2s ease}.reconnect-btn:hover{background-color:#b91c1c}.performance-btn{background:#8b5cf6;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;font-weight:500;margin-left:10px;padding:8px 12px;transition:background-color .2s ease}.performance-btn:hover{background:#7c3aed}.app-main{display:flex;flex:1 1;justify-content:center;min-height:0;overflow:auto;padding:1rem}.app-layout{display:flex;gap:20px;max-width:1600px;min-height:calc(100vh - 120px);width:100%}.three-column-layout{display:flex;gap:16px}.left-panel{display:flex;flex-direction:column;flex-shrink:0;max-height:calc(100vh - 140px);overflow-y:auto;position:relative;scrollbar-color:#3b82f6 #f1f1f1;scrollbar-width:thin;width:280px}.left-panel:after{background:linear-gradient(#0000,#f5f5f5e6);bottom:0;content:"";height:20px;left:0;pointer-events:none;position:sticky;right:0;z-index:10}.left-panel-content{display:flex;flex-direction:column;gap:12px;min-height:min-content;padding-bottom:20px}.left-panel-content>*{flex:0 0 auto;min-height:auto}.center-panel{align-items:flex-start;display:flex;flex:1 1;justify-content:center;max-width:1000px;min-width:900px;overflow:visible}.right-panel{display:flex;flex-direction:column;flex-shrink:0;gap:12px;max-height:calc(100vh - 140px);overflow-y:auto;padding-bottom:20px;width:220px}.sidebar{flex-shrink:0;width:250px}.map-container{align-items:flex-start;display:flex;flex:1 1;justify-content:center}@media (max-width:1400px){.left-panel{width:260px}.left-panel,.right-panel{max-height:calc(100vh - 160px)}.right-panel{width:200px}.center-panel{max-width:850px;min-width:800px}}@media (max-width:1200px){.app-main{overflow-x:auto;padding:.75rem}.left-panel{width:240px}.left-panel,.right-panel{max-height:calc(100vh - 180px)}.right-panel{width:180px}.center-panel{max-width:800px;min-width:750px}.three-column-layout{gap:12px;min-width:1120px}}@media (max-width:1000px){.app-main{overflow-x:auto;padding:.5rem}.left-panel{width:220px}.left-panel,.right-panel{max-height:calc(100vh - 200px)}.right-panel{width:160px}.center-panel{max-width:650px;min-width:600px}.three-column-layout{gap:8px;min-width:980px}.scroll-hint{bottom:10px;font-size:10px;padding:6px 8px;right:10px}}.app-main,.interactive-map-container,.left-panel,.right-panel{scroll-behavior:smooth}.interactive-map-container::-webkit-scrollbar,.left-panel::-webkit-scrollbar,.right-panel::-webkit-scrollbar{width:10px}.interactive-map-container::-webkit-scrollbar-track,.left-panel::-webkit-scrollbar-track,.right-panel::-webkit-scrollbar-track{background:#f1f1f1;border-radius:5px;margin:2px}.interactive-map-container::-webkit-scrollbar-thumb,.left-panel::-webkit-scrollbar-thumb,.right-panel::-webkit-scrollbar-thumb{background:#3b82f6;border:2px solid #f1f1f1;border-radius:5px}.interactive-map-container::-webkit-scrollbar-thumb:hover,.left-panel::-webkit-scrollbar-thumb:hover,.right-panel::-webkit-scrollbar-thumb:hover{background:#2563eb}.panel-scroll-indicator{background:#0009;border-radius:12px;bottom:10px;color:#fff;font-size:10px;opacity:0;padding:4px 8px;pointer-events:none;position:absolute;right:10px;transition:opacity .3s ease}.left-panel:hover .panel-scroll-indicator,.right-panel:hover .panel-scroll-indicator{opacity:1}.left-panel,.right-panel{position:relative}.scroll-hint{background:#2c3e50e6;border-radius:6px;bottom:20px;color:#fff;font-size:11px;opacity:0;padding:8px 12px;pointer-events:none;position:fixed;right:20px;transition:opacity .3s ease;z-index:1000}.scroll-hint.visible{opacity:1}.scroll-hint kbd{background:#fff3;border-radius:2px;font-size:10px;margin:0 2px;padding:2px 4px}.center-panel:focus-within,.left-panel:focus-within,.right-panel:focus-within{outline:2px solid #3b82f6;outline-offset:2px}.center-panel,.left-panel,.right-panel{outline:none}.scroll-to-top{align-items:center;background:#3b82f6;border:none;border-radius:50%;bottom:70px;box-shadow:0 2px 8px #0003;color:#fff;cursor:pointer;display:flex;font-size:18px;height:40px;justify-content:center;opacity:0;position:fixed;right:20px;transform:translateY(20px);transition:all .3s ease;width:40px;z-index:1001}.scroll-to-top.visible{opacity:1;transform:translateY(0)}.scroll-to-top:hover{background:#2563eb;box-shadow:0 4px 12px #0000004d;transform:translateY(-2px)}.scrollable-indicator{position:relative}.scrollable-indicator:before{color:#6b7280;content:"⋮";font-size:16px;opacity:.5;pointer-events:none;position:absolute;right:5px;top:50%;transform:translateY(-50%);z-index:10}.scrollable-indicator:hover:before{opacity:.8}.scrollable-indicator:not(.has-scroll):before{display:none}