.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}@font-face{font-family:Pepsi Cyr-Lat;src:url(/fonts/PepsiCyrLat.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}: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}@keyframes status-dot-pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(1.6)}to{opacity:1;transform:scale(1)}}.status-badge-dot.status-dot-pulse{animation:status-dot-pulse 1s ease-in-out 1}.admin-table-row:hover{background:var(--bg-card-hover, #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:var(--bg-card-hover, #2A2A2A)}.app-layout-content{margin-left:240px;transition:margin-left .3s ease;overflow-x:auto;min-width:0}@media (max-width: 768px){.app-layout-content{margin-left:0}}.sidebar{transition:transform .3s ease}.sidebar-close{display:none;margin-left:auto;background:transparent;border:none;color:var(--text-primary, #E0E0E0);font-size:20px;line-height:1;cursor:pointer;padding:4px 8px}.menu-btn{display:none;background:transparent;border:1px solid var(--border-color, #2A2A2A);border-radius:8px;color:var(--text-primary, #E0E0E0);font-size:18px;line-height:1;padding:6px 10px;cursor:pointer;align-items:center;justify-content:center}@media (max-width: 768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0);box-shadow:0 0 24px #00000080}.sidebar-close,.menu-btn{display:inline-flex}}.threshold-btn:hover{background:var(--color-accent)!important;border-color:var(--color-accent)!important;color:#fff!important}.pet-assistant{position:fixed;right:20px;bottom:20px;z-index:1500;display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:none}.pet-assistant>*{pointer-events:auto}.pet-assistant__bubble{max-width:300px;background:var(--bg-card, rgba(20, 26, 42, .85));border:var(--glass-border, 1px solid rgba(255, 255, 255, .06));border-radius:var(--radius-md, 14px);box-shadow:var(--shadow-card, 0 4px 24px rgba(0, 0, 0, .4));padding:10px 12px;color:var(--text-primary, #e8e8ee);font-size:13px;line-height:1.4;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:pet-bubble-in .25s ease}.pet-assistant--warn .pet-assistant__bubble{border-color:#f39c128c}.pet-assistant--critical .pet-assistant__bubble{border-color:#e74c3c99}.pet-assistant__bubble-header{display:flex;align-items:center;gap:6px;margin-bottom:4px;font-size:11px;font-weight:700;color:var(--text-secondary, #8a8fa8);text-transform:uppercase;letter-spacing:.04em}.pet-assistant__source{margin-left:auto;font-size:10px;font-weight:600;color:var(--text-muted, #5a5f7a);text-transform:none}.pet-assistant__badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.pet-assistant__badge{font-size:11px;padding:2px 7px;border-radius:999px;background:var(--bg-card-hover, rgba(30, 38, 58, .9));border:1px solid var(--border-color, rgba(46, 54, 78, .5));color:var(--text-secondary, #8a8fa8)}.pet-assistant__badge strong{color:var(--text-primary, #e8e8ee)}.pet-assistant__question{margin-bottom:6px;font-size:12px;color:var(--text-muted, #5a5f7a)}.pet-assistant__answer{white-space:pre-line;word-break:break-word}.pet-assistant__report{align-self:flex-start;margin-top:8px;background:transparent;border:1px solid var(--border-color, rgba(46, 54, 78, .5));border-radius:8px;color:var(--text-secondary, #8a8fa8);font-size:11px;padding:3px 8px;cursor:pointer}.pet-assistant__report:hover{border-color:var(--color-accent, #e94560);color:var(--text-primary, #e8e8ee)}.pet-assistant__report:disabled{opacity:.5;cursor:default}.pet-assistant__chat-form{display:flex;gap:6px;margin-top:10px}.pet-assistant__input{flex:1;min-width:0;background:var(--bg-card-hover, rgba(30, 38, 58, .9));border:1px solid var(--border-color, rgba(46, 54, 78, .5));border-radius:8px;padding:6px 10px;color:var(--text-primary, #e8e8ee);font-size:12px;outline:none}.pet-assistant__input:focus{border-color:var(--color-accent, #e94560)}.pet-assistant__send{flex-shrink:0;background:var(--color-accent, #e94560);border:none;border-radius:8px;color:#fff;font-size:13px;padding:0 10px;cursor:pointer}.pet-assistant__send:disabled{opacity:.5;cursor:default}.pet-assistant__stage{position:relative;cursor:pointer;border:none;background:transparent;padding:0;filter:drop-shadow(0 6px 12px rgba(0,0,0,.45));transition:transform .15s ease}.pet-assistant__stage:hover{transform:translateY(-3px)}.pet-assistant__sprite{position:absolute;right:0;bottom:0;transform-origin:bottom right;background-repeat:no-repeat;background-position:0 calc(-1 * var(--pet-row, 0) * var(--pet-frame-h, 208px));animation:pet-frames var(--pet-duration, 5.5s) steps(var(--pet-frames, 6)) infinite}@keyframes pet-frames{0%{background-position:0 calc(-1 * var(--pet-row, 0) * var(--pet-frame-h, 208px))}to{background-position:calc(-1 * var(--pet-frames, 6) * var(--pet-frame-w, 192px)) calc(-1 * var(--pet-row, 0) * var(--pet-frame-h, 208px))}}@keyframes pet-bubble-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.pet-assistant__collapsed{background:var(--bg-card, rgba(20, 26, 42, .85));border:var(--glass-border, 1px solid rgba(255, 255, 255, .06));border-radius:999px;padding:6px 12px;font-size:13px;color:var(--text-primary, #e8e8ee);cursor:pointer;box-shadow:var(--shadow-card, 0 4px 24px rgba(0, 0, 0, .4))}.pet-assistant__close{background:transparent;border:none;color:var(--text-muted, #5a5f7a);cursor:pointer;font-size:12px;line-height:1;padding:2px 4px}.pet-assistant__close:hover{color:var(--text-primary, #e8e8ee)}@media (max-width: 768px){.pet-assistant{right:12px;bottom:12px}.pet-assistant__bubble{max-width:220px}}
