.header{background:linear-gradient(180deg,#0077b6,#90e0ef);border-radius:0 20px 20px 0;color:#fff;padding:30px 20px;width:220px}.logo{font-size:20px;font-weight:700;margin-bottom:40px}.header ul{list-style:none;padding:0}.header li{cursor:pointer;margin:15px 0;transition:.3s}.header li:hover{color:#caf0f8}.sensor-card{background:#fff;border:2px solid #0000;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:20px;transition:all .3s ease}.sensor-card:hover{border-color:#0077b6;box-shadow:0 4px 16px #0077b64d;transform:translateY(-2px)}.sensor-card.offline{background:#f5f5f5;border-color:#ddd;opacity:.6}.sensor-card.offline:hover{border-color:#ddd;box-shadow:0 2px 8px #0000001a;transform:none}.card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.sensor-card h3{color:#0077b6;font-size:1.3em;margin:0}.sensor-card.offline h3{color:#666}.status-badge{border-radius:12px;font-size:.85em;font-weight:600;padding:4px 12px}.status-badge.online{background:#d4edda;color:#155724}.status-badge.offline{background:#f8d7da;color:#721c24}.sensor-card .description{color:#555;font-size:.95em;margin:8px 0}.sensor-card .extra-info{color:#777;font-size:.9em;margin:8px 0 15px}.sensor-card.offline .extra-info{color:#999}.connect-button{background:linear-gradient(135deg,#0077b6,#023e8a);border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:10px;transition:all .3s ease;width:100%}.connect-button:hover{background:linear-gradient(135deg,#005f8f,#012a5e);transform:scale(1.02)}.connect-button.disabled{cursor:not-allowed}.connect-button.disabled,.connect-button.disabled:hover{background:#ccc;transform:none}.homepage{background:#f0f9ff;flex:1 1;padding:40px}.homepage h1{color:#0077b6;margin-bottom:10px}.homepage p{color:#555;margin-bottom:30px}.sensor-list{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.section-title{color:#0077b6;font-size:1.3em;margin-bottom:15px;margin-top:30px}.section-title.offline-section{color:#666}.no-devices{color:#999;font-style:italic;margin:40px 0;text-align:center}.sensor-page{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);flex:1 1;min-height:100vh;padding:40px}.header-controls{align-items:center;background:#fff;border-radius:16px;box-shadow:0 4px 16px #0077b61a;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:35px;padding:25px}.header-controls h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#0077b6,#023e8a);-webkit-background-clip:text;background-clip:text;flex:1 1 300px;font-size:32px;font-weight:700;margin:0}.time-filters{background:#f8fafc;border-radius:12px;display:flex;flex-wrap:wrap;gap:12px;padding:8px}.time-filters button{background:#fff;border:2px solid #0000;border-radius:10px;box-shadow:0 2px 8px #0000000d;color:#475569;cursor:pointer;font-size:15px;font-weight:600;padding:12px 24px;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap}.time-filters button:hover{background:#f1f5f9;border-color:#0077b6;box-shadow:0 4px 12px #0077b626;transform:translateY(-2px)}.time-filters button.active{background:linear-gradient(135deg,#0077b6,#023e8a);border-color:#0000;box-shadow:0 6px 20px #0077b666;color:#fff;transform:translateY(-2px)}.time-filters button.active:hover{box-shadow:0 8px 24px #0077b680}.download-csv{background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:10px;box-shadow:0 4px 16px #10b9814d;color:#fff;cursor:pointer;font-size:15px;font-weight:600;overflow:hidden;padding:12px 28px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap}.download-csv:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.download-csv:hover:before{left:100%}.download-csv:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 8px 24px #10b98166;transform:translateY(-3px)}.download-csv:active{box-shadow:0 4px 12px #10b9814d;transform:translateY(-1px)}.chart-container{background:#fff;border:1px solid #0077b61a;border-radius:16px;box-shadow:0 4px 20px #00000014;margin-bottom:30px;padding:30px;transition:box-shadow .3s ease}.chart-container:hover{box-shadow:0 8px 32px #0000001f}.custom-tooltip{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffffa;border:2px solid #0077b6;border-radius:12px;box-shadow:0 8px 24px #0003;padding:16px}.custom-tooltip p{color:#334155;font-size:14px;font-weight:500;margin:6px 0}.custom-tooltip p:first-child{border-bottom:2px solid #90e0ef;color:#0077b6;font-size:15px;font-weight:700;margin-bottom:10px;padding-bottom:8px}.latest-data{background:linear-gradient(135deg,#0077b6,#023e8a);border:none;border-radius:16px;box-shadow:0 8px 32px #0077b64d;color:#fff;overflow:hidden;padding:30px;position:relative}.latest-data:before{animation:pulse-glow 4s ease-in-out infinite;background:radial-gradient(circle,#ffffff1a 0,#0000 70%);content:"";height:200%;position:absolute;right:-50%;top:-50%;width:200%}@keyframes pulse-glow{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.3;transform:scale(1.1)}}.latest-data h3{border-bottom:2px solid #ffffff4d;font-size:24px;font-weight:700;margin:0 0 20px;padding-bottom:12px;position:relative;z-index:1}.latest-data p{align-items:center;border-bottom:1px solid #ffffff1a;display:flex;font-size:17px;justify-content:space-between;margin:14px 0;padding:10px 0;position:relative;z-index:1}.latest-data p:last-child{border-bottom:none}.latest-data strong{font-size:15px;font-weight:600;opacity:.9}.latest-data p:not(:has(strong)){font-size:19px;font-weight:600}.loading{animation:pulse 1.5s ease-in-out infinite;background:#fff;border-radius:16px;box-shadow:0 4px 12px #00000014;color:#64748b;font-size:20px;padding:60px;text-align:center}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.98)}}.no-data{background:#fff;border:3px dashed #cbd5e1;border-radius:16px;box-shadow:0 4px 12px #0000000d;color:#64748b;font-size:20px;font-weight:500;padding:80px 40px;text-align:center;transition:all .3s ease}.no-data:hover{border-color:#94a3b8;box-shadow:0 6px 20px #00000014}@media (max-width:1024px){.sensor-page{padding:30px 20px}.header-controls{padding:20px}.header-controls h1{font-size:26px}}@media (max-width:768px){.sensor-page{padding:20px 15px}.header-controls{align-items:stretch;flex-direction:column;gap:15px;padding:20px}.header-controls h1{font-size:24px;text-align:center}.time-filters{justify-content:center;padding:6px}.time-filters button{flex-basis:calc(50% - 6px);flex-grow:1;flex-shrink:1;font-size:14px;min-width:110px;padding:10px 16px}.download-csv{padding:14px 24px;width:100%}.chart-container{border-radius:12px;padding:15px}.latest-data{padding:20px}.latest-data h3{font-size:20px}.latest-data p{align-items:flex-start;flex-direction:column;font-size:15px;gap:6px;padding:8px 0}.latest-data p:not(:has(strong)){font-size:17px}.custom-tooltip{padding:12px}.custom-tooltip p{font-size:13px}}@media (max-width:480px){.sensor-page{padding:15px 10px}.header-controls{padding:15px}.header-controls h1{font-size:20px}.time-filters button{font-size:13px;padding:8px 12px}.chart-container{padding:10px}.latest-data{padding:15px}}.login-page{align-items:center;background:#f0f9ff;display:flex;height:100vh;justify-content:center;padding:20px}.login-box{background:#fff;border-radius:12px;box-shadow:0 0 15px #0077b61a;max-width:400px;padding:40px 50px;width:100%}.login-box h1{color:#0077b6;margin-bottom:25px;text-align:center}.login-box form{display:flex;flex-direction:column;gap:15px}.login-box label{color:#0077b6;font-size:.95em;font-weight:600}.login-box input{background:#f8fcff;border:1px solid #b5d8f7;border-radius:8px;font-size:1em;outline:none;padding:12px 14px;transition:.2s ease}.login-box input:focus{background:#fff;border-color:#0077b6}.error{background:#ffe6e6;border:1px solid #f5baba;border-radius:6px;color:#d00000;font-size:.9em;padding:8px 10px;text-align:center}.login-btn{background:#0077b6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1em;font-weight:600;padding:12px;transition:background .2s ease}.login-btn:hover{background:#0096c7}.login-btn:active{background:#023e8a}.app{display:flex;min-height:100vh}.header{display:flex;flex-direction:column;flex-shrink:0;height:auto}.main-content{display:flex;flex:1 1;flex-direction:column}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;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}
/*# sourceMappingURL=main.518257d8.css.map*/