:root{--color-primary: #3498db;--color-primary-hover: #2980b9;--color-secondary: #95a5a6;--color-secondary-hover: #7f8c8d;--color-text-primary: #2c3e50;--color-text-secondary: #555;--color-text-muted: #7f8c8d;--color-background: #ffffff;--color-background-secondary: #f8f9fa;--color-background-page: #ecf0f1;--color-background-hover: #f0f0f0;--color-border: #ddd;--color-border-light: #eee;--color-success: #27ae60;--color-success-bg: #d4edda;--color-success-text: #155724;--color-danger: #e74c3c;--color-danger-bg: #f8d7da;--color-danger-text: #721c24;--color-warning: #f39c12;--color-warning-bg: #fff3cd;--color-warning-text: #856404;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: .75rem;--spacing-lg: 1rem;--spacing-xl: 1.5rem;--spacing-2xl: 2rem;--spacing-3xl: 3rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .1);--shadow-md: 0 4px 12px rgba(0, 0, 0, .15);--shadow-lg: 0 4px 20px rgba(0, 0, 0, .3);--transition-fast: .2s;--transition-normal: .3s;--overlay-bg: rgba(0, 0, 0, .5);--z-index-modal: 1000;--z-index-context-menu: 1000}.btn-primary{background-color:var(--color-primary);color:#fff;border:none;padding:var(--spacing-md) var(--spacing-xl);border-radius:var(--radius-sm);font-size:1rem;font-weight:500;cursor:pointer;transition:background-color var(--transition-fast)}.btn-primary:hover{background-color:var(--color-primary-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background-color:var(--color-secondary);color:#fff;border:none;padding:var(--spacing-md) var(--spacing-xl);border-radius:var(--radius-sm);font-size:1rem;cursor:pointer;transition:background-color var(--transition-fast)}.btn-secondary:hover{background-color:var(--color-secondary-hover)}.status-badge{padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-lg);font-size:.875rem;font-weight:500;display:inline-block}.status-active{background-color:var(--color-success-bg);color:var(--color-success-text)}.status-inactive{background-color:var(--color-danger-bg);color:var(--color-danger-text)}.status-maintenance{background-color:var(--color-warning-bg);color:var(--color-warning-text)}.card{background:var(--color-background);border-radius:var(--radius-md);padding:var(--spacing-xl);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl)}.page-header h2{margin:0;color:var(--color-text-primary)}.section{background:var(--color-background);border-radius:var(--radius-md);padding:var(--spacing-xl);box-shadow:var(--shadow-sm)}.section h3{margin-top:0;color:var(--color-text-primary)}.form-group{margin-bottom:var(--spacing-xl)}.form-group-child{margin-bottom:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-background-hover);border-radius:var(--radius-sm)}.form-group label{display:block;margin-bottom:var(--spacing-sm);font-weight:500;color:var(--color-text-primary)}.form-group-child label{display:block;margin-bottom:var(--spacing-sm);font-weight:500;color:var(--color-text-primary);font-size:.9rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:1rem;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3498db1a}.form-group textarea{resize:vertical}.form-error{background-color:var(--color-danger-bg);color:var(--color-danger-text);padding:var(--spacing-md);border-radius:var(--radius-sm);margin-bottom:var(--spacing-lg)}.required{color:var(--color-danger)}.modal-overlay{position:fixed;inset:0;background-color:var(--overlay-bg);display:flex;align-items:center;justify-content:center;z-index:var(--z-index-modal)}.modal-content{background:var(--color-background);border-radius:var(--radius-md);width:90%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xl);border-bottom:1px solid var(--color-border-light)}.modal-header h3{margin:0;color:var(--color-text-primary)}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-text-muted);padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:background-color var(--transition-fast)}.modal-close:hover{background-color:var(--color-background-hover)}.modal-form{padding:var(--spacing-xl)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);margin-top:var(--spacing-xl)}.loading,.error,.empty-state{text-align:center;padding:var(--spacing-2xl);font-size:1.125rem;color:var(--color-text-muted)}.error{color:var(--color-danger)}#root{width:100%;min-height:100vh}.MuiDialog-root .MuiDialog-paperFullScreen>.MuiDialogTitle-root{padding-top:max(16px,env(safe-area-inset-top));padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}.MuiDialog-root .MuiDialog-paperFullScreen>.MuiDialogContent-root{padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}.MuiDialog-root .MuiDialog-paperFullScreen>.MuiDialogActions-root{padding-bottom:max(16px,env(safe-area-inset-bottom));padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.metric-chart-container{background:#fff;border-radius:8px;padding:20px;margin:20px 0;box-shadow:0 2px 4px #0000001a}.metric-chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.metric-chart-header h3{margin:0;font-size:1.2rem;color:#333}.metric-chart-range{font-size:.9rem;color:#666;padding:4px 12px;background:#f5f5f5;border-radius:4px}.metric-chart-loading,.metric-chart-error,.metric-chart-empty{text-align:center;padding:40px;color:#666}.metric-chart-error{color:#d32f2f}.context-menu{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:var(--spacing-xs) 0;min-width:150px;z-index:var(--z-index-context-menu)}.context-menu-item{width:100%;padding:var(--spacing-sm) var(--spacing-lg);border:none;background:none;text-align:left;cursor:pointer;font-size:.9375rem;color:var(--color-text-primary);transition:background-color var(--transition-fast)}.context-menu-item:hover:not(.disabled){background-color:var(--color-background-hover)}.context-menu-item.disabled{color:var(--color-text-muted);cursor:not-allowed;opacity:.5}.device-status-badge{display:inline-flex;align-items:center;border-radius:999px;font-size:.75rem;font-weight:700;padding:4px 10px;color:#fff}.device-status-online{background-color:#1b8f4c}.device-status-offline{background-color:#6b7280}.device-status-warning{background-color:#e07a12}.device-status-maintenance{background-color:#3b82f6}.device-status-pending{background-color:#8b5cf6}.device-status-inactive{background-color:#4b5563}.wifi-signal{display:inline-flex;align-items:center;gap:8px;font-size:.8125rem;font-weight:600}.wifi-signal-empty{color:var(--color-text-muted)}.wifi-bars{display:inline-flex;align-items:flex-end;gap:2px;height:14px}.wifi-bar{width:4px;border-radius:2px;background-color:#d1d5db;opacity:.7}.wifi-bar:nth-child(1){height:4px}.wifi-bar:nth-child(2){height:7px}.wifi-bar:nth-child(3){height:10px}.wifi-bar:nth-child(4){height:13px}.wifi-bar.active{opacity:1}.wifi-signal-strong{color:#1b8f4c}.wifi-signal-strong .wifi-bar.active{background-color:#1b8f4c}.wifi-signal-medium{color:#2b6cb0}.wifi-signal-medium .wifi-bar.active{background-color:#2b6cb0}.wifi-signal-warning{color:#d97706}.wifi-signal-warning .wifi-bar.active{background-color:#d97706}.wifi-signal-critical{color:#dc2626}.wifi-signal-critical .wifi-bar.active{background-color:#dc2626}.wifi-rssi-text{min-width:78px}
