:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{font-family:Ubuntu,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color-scheme:light;--text-color: #38363E;--subtext-color: #6D6A75;--card-bg: #F0E6D5;--card-bg-alt: #E6D4B1;--card-text-color: #37323E;--card-border: rgba(0,0,0,.1);--button-bg: #DEB841;--button-hover: #E6C870;--button-text: #37323E;--button-disabled: #BFBDC1;--header-bg: #F0E6D5;--sidebar-bg: #F5E8D0;--sidebar-hover: #E6C870;--overlay-bg: rgba(0,0,0,.1);--hamburger-color: #38363E;--line-color: rgb(27, 26, 26)}body.dark-mode{--text-color: #ffffff;--subtext-color: #ffffff;--card-bg: #362c23;--card-bg-alt: #3b2d20;--card-text-color: #ffffff;--card-border: rgba(245,225,164,.2);--button-bg: #DE9E36;--button-hover: #F4B83C;--button-text: #2E241B;--button-disabled: #6D6A75;--header-bg: #3a2f24;--sidebar-bg: #362c23;--sidebar-hover: #F4B83C;--overlay-bg: rgba(0,0,0,.5);--hamburger-color: #F5E1A4;--line-color: rgba(255,255,255,.83)}html,body,#root{width:100%;height:100%;margin:0;padding:0;background-color:var(--card-bg);color:var(--text-color);font-family:Ubuntu,sans-serif;transition:background-color .3s ease,color .3s ease}body *{transition:color .3s ease,background-color .3s ease}.menu-button{background-color:var(--button-bg);margin-left:1rem;border-radius:8px;padding:.8rem;font-size:2.5rem;display:flex;align-items:center;justify-content:center;color:var(--hamburger-color);border:none;cursor:pointer;transition:background-color .1s ease,transform .1s ease}button{font-family:Ubuntu,sans-serif;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}.post-button{background-color:var(--button-bg);border:none;border-radius:8px;padding:.5em 1.2em;color:var(--button-text);font-weight:500;transition:background-color .3s ease;align-self:start}.post-button:hover{background-color:var(--button-hover)}.post-button:disabled{background-color:var(--button-disabled)}.header{display:flex;align-items:center;background-color:var(--header-bg);height:80px;position:fixed;top:0;left:0;width:100%;z-index:100;box-shadow:0 2px 6px #0006;transition:background-color .3s ease,color .3s ease}.header-title{margin-left:1rem;font-size:1.6rem;font-weight:600;color:var(--text-color)}.header-button{width:140px;padding:.5rem 1rem;border-radius:8px;border:none;background-color:var(--button-bg);color:var(--button-text);font-weight:500;cursor:pointer;text-align:center;white-space:nowrap;transition:background-color .3s ease,color .3s ease}.header-button:hover{background-color:var(--button-hover)}.password-toggle{background:transparent!important;border:none;cursor:pointer;color:var(--text-color)!important;font-size:1.2rem;transition:color .3s ease,background-color .3s ease}.header-actions{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;gap:1rem;align-items:center}.header-toggles{position:absolute;top:50%;right:1rem;transform:translateY(-50%);display:flex;gap:.9rem;align-items:center;z-index:101}.header-toggles .dark-toggle{background:transparent;padding:1.2rem;border:none;cursor:pointer;font-size:1.5rem;color:var(--text-color);transition:color .3s ease}.header-toggles .lang-toggle{font-size:.85rem;font-weight:600;padding:4px 8px;border-radius:6px;border:1px solid var(--button-bg);background-color:var(--card-bg-alt);color:var(--button-text);cursor:pointer;transition:background-color .3s ease,color .3s ease,border .3s ease}.header-toggles .lang-toggle:hover{background-color:var(--button-hover);color:var(--button-text)}body.dark-mode .header-toggles .lang-toggle{background-color:var(--button-bg);border-color:var(--button-bg)}body.dark-mode .header-toggles .lang-toggle:hover{background-color:var(--button-hover);color:#2e241b}.sidebar{position:fixed;top:80px;left:0;height:calc(100% - 80px);width:250px;background-color:var(--sidebar-bg);transform:translate(-100%);transition:transform .3s ease;z-index:90;overflow-y:auto;font-size:larger;font-style:oblique}.sidebar.open{transform:translate(0)}.sidebar nav a{display:block;padding:15px;text-decoration:none;color:var(--text-color);border-bottom:1px solid rgba(0,0,0,.1)}.sidebar nav a:hover{background-color:var(--sidebar-hover);color:#fff}.page-shell{margin-top:80px;min-height:calc(100vh - 80px);display:flex;background-color:var(--card-bg)}.page-content{width:100%;padding:1.5rem;display:flex;flex-direction:column}.popup-overlay{position:fixed;inset:0;background-color:var(--overlay-bg);display:flex;justify-content:center;align-items:center;z-index:1000}.popup-card{background-color:var(--card-bg);color:var(--card-text-color);padding:24px;border-radius:12px;box-shadow:0 6px 20px #0003;min-width:320px;max-width:400px;display:flex;flex-direction:column;gap:16px;font-family:inherit}.popup-card h2{margin:0;font-size:1.2rem;font-weight:600;color:var(--text-color)}.popup-card input{padding:8px 12px;border-radius:6px;border:1px solid var(--card-border);font-size:1rem;width:90%;color:var(--text-color);background-color:var(--card-bg-alt)}.popup-buttons{display:flex;justify-content:flex-end;gap:12px}.popup-card button{padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-weight:500;background-color:var(--button-bg);color:var(--button-text);transition:background .2s}.popup-card button:hover{background-color:var(--button-hover)}.popup-card button:disabled{background-color:var(--button-disabled);cursor:not-allowed}.login-page{min-height:calc(100vh - 80px);width:100%;padding:2rem;box-sizing:border-box;display:flex;justify-content:center;align-items:center;transition:background-color .3s ease,color .3s ease}.login-card{width:100%;max-width:600px;padding:40px 50px;border-radius:12px;box-shadow:0 0 25px #0006;text-align:center;background-color:var(--card-bg-alt);transition:background-color .3s ease,color .3s ease}.login-card h2{margin-bottom:24px;color:var(--text-color)}.login-card form{display:flex;flex-direction:column;gap:16px}.login-card input{padding:12px;border-radius:6px;border:1px solid var(--line-color);background-color:var(--card-bg);color:var(--text-color);width:100%;box-sizing:border-box}.login-card button{margin-top:10px;padding:12px;border-radius:6px;border:none;background-color:var(--button-bg);color:var(--button-text);font-weight:600;cursor:pointer;transition:background-color .3s ease,opacity .3s ease;align-self:center}.login-card button:disabled{background-color:var(--button-disabled);cursor:not-allowed;opacity:.6}.login-card button:hover:not(:disabled){background-color:var(--button-hover)}.login-error{margin-top:16px;background-color:#ff00004d;padding:8px 12px;border-radius:6px;color:#fff}.loading-screen{display:flex;justify-content:center;align-items:center;height:100vh;background-color:var(--card-bg, #fff)}.loading-logo{width:200px;height:200px;object-fit:contain;animation:spin 2s linear infinite}.sensor-overview-card{background-color:var(--card-bg-alt);border:1px solid var(--card-border);border-radius:12px;margin-bottom:1rem;min-height:120px}.sensor-group-card{background-color:var(--card-bg);margin-bottom:1rem;border:1px solid var(--card-border);border-radius:10px;overflow:hidden}.sensor-group-header{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.6rem;padding:.8rem 1rem;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:var(--card-bg-alt)}.sensor-group-header-left{display:flex;align-items:center;gap:.6rem;flex:1;min-width:0}.sensor-group-header:hover{background-color:var(--sidebar-hover)}.sensor-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;border:1px solid var(--card-border);border-radius:12px;overflow:hidden;background-color:var(--card-bg)}.sensor-table th,.sensor-table td{box-sizing:border-box;padding:.7rem .9rem;border-bottom:1px solid var(--card-border);vertical-align:middle;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sensor-table thead th{background-color:var(--card-bg-alt);color:var(--text-color);font-weight:700;border-bottom:1px solid var(--card-border)}.sensor-table tbody td{color:var(--text-color)}.sensor-table tbody tr:last-child td{border-bottom:none}.sensor-table tbody tr:nth-child(2n) td{background-color:var(--card-bg-alt)}.sensor-table tbody tr:hover td{background-color:var(--sidebar-hover);color:var(--text-color)}.sensor-table th:nth-child(1),.sensor-table td:nth-child(1){width:10%}.sensor-table th:nth-child(2),.sensor-table td:nth-child(2){width:5%}.sensor-table th:nth-child(3),.sensor-table td:nth-child(3){width:12%;font-variant-numeric:tabular-nums}.sensor-table th:nth-child(4),.sensor-table td:nth-child(4){width:22%;font-variant-numeric:tabular-nums}.sensor-table th:nth-child(5),.sensor-table td:nth-child(5){width:18%}.sensor-id-cell{color:var(--subtext-color);font-variant-numeric:tabular-nums}.sensor-name-cell{max-width:none}.sensor-rename-input{width:100%;font:inherit;font-weight:600;color:var(--text-color);background:transparent;border:none;border-bottom:1px solid var(--line-color);outline:none;padding:0;text-align:center}.sensor-actions{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;width:100%}.sensor-actions .rename-icon{margin-left:0;margin-right:0}.details-link{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.35rem .7rem;border-radius:999px;text-decoration:none;font-weight:600;background-color:var(--button-bg);color:var(--button-text);border:1px solid var(--card-border)}.details-link:hover{background-color:var(--button-hover)}.group-title{font-weight:600;color:var(--text-color);line-height:1;display:inline-flex;align-items:center}.group-arrow{font-size:1.4rem;transition:transform .25s ease;color:var(--text-color)}.group-title-input{font:inherit;font-weight:600;color:var(--text-color);line-height:1;padding:0;background:transparent;border:none;border-bottom:1px solid rgba(0,0,0,.35);outline:none;min-width:0}.rename-icon{margin-left:auto;margin-right:2rem;cursor:pointer;color:var(--text-color)}.group-arrow.open{transform:rotate(180deg)}.sensor-group-content{padding:.5rem .8rem}.sensor-group-input{font:inherit;font-size:.95rem;color:var(--text-color);background-color:var(--card-bg-alt);border:1px solid var(--card-border);border-radius:8px;padding:.45rem .6rem;max-width:100%;box-sizing:border-box}.sensor-group-input:focus{outline:none;border-color:var(--button-bg);box-shadow:0 0 0 3px color-mix(in srgb,var(--button-bg) 30%,transparent)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.main-content{margin-top:80px}.login-page{overflow:hidden;height:calc(100dvh - 80px);padding:0;display:flex;justify-content:center;align-items:center}.login-card{box-sizing:border-box;width:90%;transform:translateY(-4rem)}.header-title{display:none}.header-actions{position:static;transform:none;gap:.5rem;margin-right:3.5rem;margin-left:1rem}.header-button{padding:.6rem 1rem;width:auto;min-width:unset;font-size:1rem;min-height:22px}.header-toggles{width:64px;justify-content:flex-end;right:1.5rem;gap:.3rem}.header-toggles .lang-toggle{font-size:.75rem;padding:3px 6px}.header-actions{order:1}.header-toggles{order:2}.sensor-table{width:100%;table-layout:auto;border-collapse:separate;border-spacing:0;border:1px solid var(--card-border);border-radius:12px;overflow:hidden;background-color:var(--card-bg)}.sensor-table th:nth-child(1),.sensor-table td:nth-child(1){width:100%}.sensor-table th:nth-child(2),.sensor-table td:nth-child(2){width:100%}.sensor-table th:nth-child(3),.sensor-table td:nth-child(3){width:100%;font-variant-numeric:tabular-nums}.sensor-table th:nth-child(4),.sensor-table td:nth-child(4){width:100%}.sensor-table th:nth-child(5),.sensor-table td:nth-child(5){width:100%}.sensor-table thead,.sensor-table tbody,.sensor-table th,.sensor-table td,.sensor-table tr{display:block}.sensor-table thead{display:none}.sensor-table tbody tr{margin-bottom:1rem;border:1px solid var(--card-border);border-radius:8px;padding:.75rem .6rem;background-color:var(--card-bg-alt)}.sensor-table td{display:flex;flex-direction:column;align-items:flex-start;padding:.5rem .2rem;text-align:left;border:none;font-size:.95rem;line-height:1.4;white-space:normal;overflow:visible;text-overflow:clip;word-break:break-word;overflow-wrap:anywhere}.sensor-actions{width:100%;justify-content:flex-start;flex-wrap:wrap;gap:.5rem}.sensor-table td:before{content:attr(data-label);font-weight:700;letter-spacing:.2px}.sensor-table tbody tr:last-child{margin-bottom:0}}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ubuntu-cyrillic-ext-400-normal-B-Nhg57H.woff2) format("woff2"),url(/assets/ubuntu-cyrillic-ext-400-normal-BQUrPAlD.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ubuntu-cyrillic-400-normal-D9OZd8lm.woff2) format("woff2"),url(/assets/ubuntu-cyrillic-400-normal-CD6XmiVF.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ubuntu-greek-ext-400-normal-CeBDcuzJ.woff2) format("woff2"),url(/assets/ubuntu-greek-ext-400-normal-VZgpvyyF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ubuntu-greek-400-normal-GaJa0t-K.woff2) format("woff2"),url(/assets/ubuntu-greek-400-normal-UX4bU-Ff.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ubuntu-latin-ext-400-normal-Bb6UNjxu.woff2) format("woff2"),url(/assets/ubuntu-latin-ext-400-normal-kv0aZEtN.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ubuntu-latin-400-normal-CQJ26Fy6.woff2) format("woff2"),url(/assets/ubuntu-latin-400-normal-ChuJk2Dr.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ubuntu-cyrillic-ext-700-normal-VUzwJTK6.woff2) format("woff2"),url(/assets/ubuntu-cyrillic-ext-700-normal-BZbN9t83.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ubuntu-cyrillic-700-normal-CF4plK0P.woff2) format("woff2"),url(/assets/ubuntu-cyrillic-700-normal-DN03sdX6.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ubuntu-greek-ext-700-normal-BKlOPkfe.woff2) format("woff2"),url(/assets/ubuntu-greek-ext-700-normal-5K5_eCDc.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ubuntu-greek-700-normal-Jbnau0eS.woff2) format("woff2"),url(/assets/ubuntu-greek-700-normal-DM68am3C.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ubuntu-latin-ext-700-normal-D3iP7lMw.woff2) format("woff2"),url(/assets/ubuntu-latin-ext-700-normal-YrKfr4VU.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ubuntu-latin-700-normal-DlYwEzNn.woff2) format("woff2"),url(/assets/ubuntu-latin-700-normal-DAmh8SsM.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
