.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;-webkit-user-select:none;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}:root{--bg-primary: #0a0e17;--bg-card: rgba(20, 26, 42, .85);--bg-card-hover: rgba(30, 38, 58, .9);--border-color: rgba(46, 54, 78, .5);--border-hover: rgba(66, 76, 108, .7);--text-primary: #e8e8ee;--text-secondary: #8a8fa8;--text-muted: #5a5f7a;--color-online: #2ecc71;--color-online-bg: rgba(46, 204, 113, .12);--color-offline: #e74c3c;--color-offline-bg: rgba(231, 76, 60, .12);--color-alert: #f39c12;--color-alert-bg: rgba(243, 156, 18, .12);--color-accent: #e94560;--color-accent-hover: #ff5a75;--radius-sm: 8px;--radius-md: 14px;--shadow-card: 0 4px 24px rgba(0, 0, 0, .4);--glass-border: 1px solid rgba(255, 255, 255, .06);--glass-bg: rgba(20, 26, 42, .75)}.light-theme{--bg-primary: #f0f2f5;--bg-card: rgba(255, 255, 255, .85);--bg-card-hover: rgba(245, 247, 250, .95);--border-color: rgba(200, 210, 220, .6);--border-hover: rgba(170, 185, 200, .8);--text-primary: #1a1d23;--text-secondary: #5f6b7a;--text-muted: #8e9aaf;--color-online: #27ae60;--color-online-bg: rgba(39, 174, 96, .1);--color-offline: #c0392b;--color-offline-bg: rgba(192, 57, 43, .1);--color-alert: #e67e22;--color-alert-bg: rgba(230, 126, 34, .1);--color-accent: #d63851;--color-accent-hover: #c02e45;--shadow-card: 0 4px 24px rgba(0, 0, 0, .08);--glass-border: 1px solid rgba(255, 255, 255, .5);--glass-bg: rgba(255, 255, 255, .7)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.5;min-height:100vh}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.summary-icon-green{background:var(--color-online-bg)}.summary-icon-red{background:var(--color-offline-bg)}.summary-icon-yellow{background:var(--color-alert-bg)}.summary-value-green{color:var(--color-online)}.summary-value-red{color:var(--color-offline)}.summary-value-yellow{color:var(--color-alert)}.summary-row .summary-card:hover{border-color:var(--border-hover);transform:translateY(-2px)}.status-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;padding:4px 12px;border-radius:20px;flex-shrink:0;white-space:nowrap}.status-badge-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-badge.badge-online{background:var(--color-online-bg);color:var(--color-online)}.status-badge.badge-online .status-badge-dot{background:var(--color-online)}.status-badge.badge-offline{background:var(--color-offline-bg);color:var(--color-offline)}.status-badge.badge-offline .status-badge-dot{background:var(--color-offline)}.status-badge.badge-alert{background:var(--color-alert-bg);color:var(--color-alert)}.status-badge.badge-alert .status-badge-dot{background:var(--color-alert)}.device-card{position:relative;overflow:hidden}.device-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;border-radius:0 4px 4px 0}.device-card.card-online:before{background:var(--color-online)}.device-card.card-offline:before{background:var(--color-offline)}.device-card.card-alert:before{background:var(--color-alert)}.range-btn{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;font-size:11px;border-radius:6px;border:1px solid var(--border-color);background:var(--glass-bg);color:var(--text-secondary);font-family:inherit;cursor:pointer;transition:all .2s;white-space:nowrap;line-height:1.4}.range-btn:hover{background:var(--bg-card-hover);border-color:var(--border-hover);color:var(--text-primary)}.range-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.device-card{animation:cardFadeIn .5s ease forwards;opacity:0}.pulse-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--color-online);margin-right:6px;animation:pulse-dot 2s infinite}.admin-table-row:hover{background:#2a2a2a}.admin-modal-input:focus,.admin-modal-select:focus,.admin-modal-textarea:focus{border-color:var(--color-online)}.admin-btn-add:hover{background:#00c853}.admin-btn-edit:hover{background:#1976d2}.admin-btn-delete:hover{background:#d32f2f}.admin-btn-save:hover{background:#00c853}.admin-btn-cancel:hover{background:#333}.app-layout-content{margin-left:240px;transition:margin-left .3s ease}@media (max-width: 768px){.app-layout-content{margin-left:0}}.threshold-btn:hover{background:var(--color-accent)!important;border-color:var(--color-accent)!important;color:#fff!important}
