.sensor-card[data-v-ff78251f]{cursor:pointer;border:1px solid var(--border-default);transition:all var(--duration-normal)var(--ease-out-expo);background:linear-gradient(#ffffff14,#ffffff05);border-radius:16px;position:relative;overflow:hidden;box-shadow:0 0 0 1px #ffffff0f,0 2px 20px #0006,0 0 40px #0003}.sensor-card[data-v-ff78251f]:hover{border-color:var(--border-hover);transform:translateY(-4px);box-shadow:0 0 0 1px #ffffff1a,0 8px 40px #00000080,0 0 80px #5e6ad21a}.sensor-card:hover .card-glow[data-v-ff78251f]{opacity:1}.sensor-card[data-v-ff78251f]:active{transform:translateY(-2px)scale(.99)}.card-glow[data-v-ff78251f]{opacity:0;height:100%;transition:opacity var(--duration-normal)var(--ease-out-expo);pointer-events:none;background:radial-gradient(at top,#5e6ad226 0%,#0000 60%);position:absolute;top:0;left:0;right:0}.card-content[data-v-ff78251f]{z-index:1;padding:1.5rem;position:relative}.sensor-card[data-v-ff78251f]:before{content:"";z-index:2;background:linear-gradient(90deg,#0000,#ffffff1a,#0000);height:1px;position:absolute;top:0;left:20px;right:20px}.header[data-v-ff78251f]{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.header h3[data-v-ff78251f]{color:var(--foreground);letter-spacing:-.02em;margin:0;font-size:1.1rem;font-weight:600}.header .badge[data-v-ff78251f]{text-transform:uppercase;letter-spacing:.05em;border-radius:20px;padding:.3rem .75rem;font-size:.7rem;font-weight:500}.header .badge.online[data-v-ff78251f]{color:var(--status-success);background:#10b9811a;border:1px solid #10b98140}.header .badge.offline[data-v-ff78251f]{color:var(--status-danger);background:#ef44441a;border:1px solid #ef444440}.metrics[data-v-ff78251f]{grid-template-columns:1fr 1fr 1fr;gap:1rem;display:grid}.metrics .metric[data-v-ff78251f]{flex-direction:column;display:flex}.metrics .metric .metric-header[data-v-ff78251f]{align-items:center;gap:.5rem;margin-bottom:.35rem;display:flex}.metrics .metric .label[data-v-ff78251f]{color:var(--foreground-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.metrics .metric .value[data-v-ff78251f]{letter-spacing:-.02em;font-size:1.5rem;font-weight:600;line-height:1.2}.metrics .metric .unit[data-v-ff78251f]{color:var(--foreground-muted);margin-top:.15rem;font-size:.75rem}.metrics .metric.co2 .value[data-v-ff78251f]{color:var(--foreground)}.metrics .metric.temp .value[data-v-ff78251f]{color:#5e6ad2}.metrics .metric.humidity .value[data-v-ff78251f]{color:#10b981}.metrics .metric .indicator[data-v-ff78251f]{border-radius:50%;width:6px;height:6px}.metrics .metric .indicator.good[data-v-ff78251f]{background:var(--status-success);box-shadow:0 0 8px #10b98180}.metrics .metric .indicator.warning[data-v-ff78251f]{background:var(--status-warning);box-shadow:0 0 8px #f59e0b80}.metrics .metric .indicator.danger[data-v-ff78251f]{background:var(--status-danger);box-shadow:0 0 8px #ef444480}.footer[data-v-ff78251f]{border-top:1px solid var(--border-default);justify-content:flex-end;margin-top:1.5rem;padding-top:1rem;display:flex}.footer .last-seen[data-v-ff78251f]{color:var(--foreground-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem}.sensor-chart-wrapper[data-v-5e8027bd]{flex-direction:column;display:flex}.controls[data-v-5e8027bd]{justify-content:flex-end;margin-bottom:1.5rem;display:flex}.controls .time-ranges[data-v-5e8027bd]{background:var(--surface);border:1px solid var(--border-default);border-radius:10px;padding:4px;display:flex}.controls .time-ranges button[data-v-5e8027bd]{color:var(--foreground-muted);cursor:pointer;transition:all var(--duration-quick)var(--ease-out-expo);background:0 0;border:none;border-radius:6px;padding:6px 14px;font-size:.8rem;font-weight:500}.controls .time-ranges button[data-v-5e8027bd]:hover{color:var(--foreground);background:#ffffff0d}.controls .time-ranges button.active[data-v-5e8027bd]{background:var(--accent);color:#fff;box-shadow:0 2px 8px #5e6ad24d,inset 0 1px #ffffff1a}.charts-grid[data-v-5e8027bd]{flex-direction:column;gap:1.5rem;display:flex}.chart-container[data-v-5e8027bd]{border:1px solid var(--border-default);background:linear-gradient(#ffffff0f,#ffffff05);border-radius:12px;flex-direction:column;height:250px;padding:1rem 1.25rem;display:flex;position:relative}.chart-container[data-v-5e8027bd]:before{content:"";background:linear-gradient(90deg,#0000,#ffffff14,#0000);height:1px;position:absolute;top:0;left:16px;right:16px}.chart-container h3[data-v-5e8027bd]{color:var(--foreground-muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem;font-size:.8rem;font-weight:500}.chart-container .canvas-wrapper[data-v-5e8027bd]{flex:1;min-height:0;position:relative}.loading-state[data-v-5e8027bd]{justify-content:center;align-items:center;height:300px;display:flex}.loading-state .loader[data-v-5e8027bd]{color:var(--foreground-muted);flex-direction:column;align-items:center;gap:1rem;display:flex}.loading-state .loader .loader-spinner[data-v-5e8027bd]{border:2px solid var(--border-default);border-top-color:var(--accent);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin-5e8027bd}@keyframes spin-5e8027bd{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cross-device-chart[data-v-1c383448]{flex-direction:column;height:100%;display:flex}.controls[data-v-1c383448]{justify-content:space-between;align-items:center;margin-bottom:2rem;display:flex}.controls .section-title[data-v-1c383448]{background:linear-gradient(#fff 0%,#fffc 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:1.3rem;font-weight:600}.controls .time-ranges[data-v-1c383448]{background:var(--surface);border:1px solid var(--border-default);border-radius:10px;padding:4px;display:flex}.controls .time-ranges button[data-v-1c383448]{color:var(--foreground-muted);cursor:pointer;transition:all var(--duration-quick)var(--ease-out-expo);background:0 0;border:none;border-radius:6px;padding:6px 14px;font-size:.8rem;font-weight:500}.controls .time-ranges button[data-v-1c383448]:hover{color:var(--foreground);background:#ffffff0d}.controls .time-ranges button.active[data-v-1c383448]{background:var(--accent);color:#fff;box-shadow:0 2px 8px #5e6ad24d,inset 0 1px #ffffff1a}.charts-grid[data-v-1c383448]{flex-direction:column;gap:2rem;display:flex}.chart-container[data-v-1c383448]{border:1px solid var(--border-default);background:linear-gradient(#ffffff0f,#ffffff05);border-radius:12px;flex-direction:column;height:350px;padding:1.25rem 1.5rem;display:flex;position:relative}.chart-container[data-v-1c383448]:before{content:"";background:linear-gradient(90deg,#0000,#ffffff14,#0000);height:1px;position:absolute;top:0;left:16px;right:16px}.chart-container h3[data-v-1c383448]{color:var(--foreground-muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 1rem;font-size:.85rem;font-weight:500}.chart-container .canvas-wrapper[data-v-1c383448]{flex:1;position:relative}.loading-state[data-v-1c383448]{justify-content:center;align-items:center;height:400px;display:flex}.loading-state .loader[data-v-1c383448]{color:var(--foreground-muted);flex-direction:column;align-items:center;gap:1rem;display:flex}.loading-state .loader .loader-spinner[data-v-1c383448]{border:2px solid var(--border-default);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin-1c383448}@keyframes spin-1c383448{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:root{--background-deep:#020203;--background-base:#050506;--background-elevated:#0a0a0c;--surface:#ffffff0d;--surface-hover:#ffffff14;--foreground:#ededef;--foreground-muted:#8a8f98;--foreground-subtle:#fff9;--accent:#5e6ad2;--accent-bright:#6872d9;--accent-glow:#5e6ad24d;--border-default:#ffffff0f;--border-hover:#ffffff1a;--border-accent:#5e6ad24d;--status-success:#10b981;--status-warning:#f59e0b;--status-danger:#ef4444;--ease-out-expo:cubic-bezier(.16,1,.3,1);--duration-quick:.2s;--duration-normal:.3s}*{box-sizing:border-box}body{background:var(--background-base);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}@keyframes float{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-20px)rotate(1deg)}}@keyframes float-alt{0%,to{transform:translateY(0)rotate(0)scale(1)}50%{transform:translateY(-30px)rotate(-1deg)scale(1.02)}}@keyframes pulse-glow{0%,to{opacity:.1}50%{opacity:.2}}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-container{background:radial-gradient(at top,#0a0a0f 0%,#050506 50%,#020203 100%);max-width:1400px;min-height:100vh;margin:0 auto;padding:2rem;position:relative}.ambient-blob{pointer-events:none;z-index:0;border-radius:50%;position:fixed}.ambient-blob.blob-primary{background:radial-gradient(ellipse,var(--accent-glow)0%,transparent 70%);filter:blur(150px);opacity:.5;width:900px;height:600px;animation:10s ease-in-out infinite float;top:-200px;left:50%;transform:translate(-50%)}.ambient-blob.blob-secondary{filter:blur(120px);opacity:.4;background:radial-gradient(#8b5cf626 0%,#0000 70%);width:600px;height:800px;animation:12s ease-in-out infinite float-alt;top:30%;left:-200px}.ambient-blob.blob-tertiary{filter:blur(100px);opacity:.3;background:radial-gradient(#3b82f61f 0%,#0000 70%);width:500px;height:700px;animation:14s ease-in-out infinite reverse float;top:50%;right:-150px}.app-header{border-bottom:1px solid var(--border-default);z-index:1;justify-content:space-between;align-items:center;margin-bottom:3rem;padding-bottom:1.5rem;display:flex;position:relative}.app-header .brand .gradient-text{letter-spacing:-.03em;background:linear-gradient(#fff 0%,#ffffffb3 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:1.8rem;font-weight:700}.app-header .brand .subtitle{color:var(--foreground-muted);margin-top:.25rem;font-size:.85rem}.header-controls,.status-bar{align-items:center;gap:2rem;display:flex}.status-bar .status-item{flex-direction:column;align-items:flex-end;display:flex}.status-bar .status-item .label{text-transform:uppercase;letter-spacing:.1em;color:var(--foreground-muted);margin-bottom:.25rem;font-family:SF Mono,Fira Code,monospace;font-size:.7rem}.status-bar .status-item .value{color:var(--foreground);font-size:.9rem;font-weight:500}.status-bar .status-item .value.online{color:var(--status-success)}.status-bar .status-item .value.offline{color:var(--status-danger)}.action-buttons{gap:.75rem;display:flex}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;transition:all var(--duration-quick)var(--ease-out-expo);border:none;border-radius:8px;padding:.65rem 1.4rem;font-size:.9rem;font-weight:500;box-shadow:0 0 0 1px #5e6ad280,0 4px 12px #5e6ad24d,inset 0 1px #ffffff26}.btn-primary:hover:not(:disabled){background:var(--accent-bright);transform:translateY(-2px);box-shadow:0 0 0 1px #5e6ad299,0 8px 24px #5e6ad266,inset 0 1px #fff3}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--surface);border:1px solid var(--border-default);color:var(--foreground-muted);cursor:pointer;transition:all var(--duration-quick)var(--ease-out-expo);border-radius:8px;padding:.65rem 1.4rem;font-size:.9rem;font-weight:500;box-shadow:inset 0 1px #ffffff0d}.btn-secondary:hover{background:var(--surface-hover);border-color:var(--border-hover);color:var(--foreground);transform:translateY(-2px)}.btn-secondary:active{transform:scale(.98)}.btn-secondary.active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 0 1px #5e6ad280,0 4px 12px #5e6ad24d}.glass-panel{border:1px solid var(--border-default);z-index:1;background:linear-gradient(#ffffff14,#ffffff05);border-radius:16px;padding:1.5rem;position:relative;box-shadow:0 0 0 1px #ffffff0f,0 2px 20px #0006,0 0 40px #0003}.glass-panel:before{content:"";background:linear-gradient(90deg,#0000,#ffffff1a,#0000);border-radius:16px 16px 0 0;height:1px;position:absolute;top:0;left:20px;right:20px}.dashboard{z-index:1;position:relative}.devices-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.charts-panel{animation:slideUp .6s var(--ease-out-expo);margin-top:2rem}.charts-panel .panel-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.charts-panel .panel-header h2{background:linear-gradient(#fff 0%,#fffc 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:1.3rem;font-weight:600}.charts-panel .panel-header .close-btn{background:var(--surface);border:1px solid var(--border-default);color:var(--foreground-muted);cursor:pointer;width:32px;height:32px;transition:all var(--duration-quick)var(--ease-out-expo);border-radius:8px;justify-content:center;align-items:center;font-size:1.2rem;display:flex}.charts-panel .panel-header .close-btn:hover{background:var(--surface-hover);color:var(--foreground);border-color:var(--border-hover)}.comparison-view{animation:slideUp .6s var(--ease-out-expo)}.loading-overlay{justify-content:center;align-items:center;padding:6rem;display:flex}.loading-overlay .loader{color:var(--foreground-muted);flex-direction:column;align-items:center;gap:1rem;display:flex}.loading-overlay .loader .loader-spinner{border:2px solid var(--border-default);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}.empty-state{text-align:center;color:var(--foreground-muted);padding:6rem}.empty-state h2{color:var(--foreground);margin:0 0 .5rem;font-size:1.2rem}.empty-state p{margin:0;font-size:.9rem}@media (width<=768px){.app-container{padding:1rem}.app-header{flex-direction:column;align-items:flex-start;gap:1.5rem}.app-header .brand .gradient-text{font-size:1.5rem}.header-controls{flex-direction:column;gap:1rem;width:100%}.status-bar{justify-content:space-between;width:100%}.status-bar .status-item{align-items:flex-start}.action-buttons{width:100%}.action-buttons .btn-primary,.action-buttons .btn-secondary{flex:1}.devices-grid{grid-template-columns:1fr}.ambient-blob{display:none}}
