:root{--main-padding:20px;--border-radius:10px;--border-color:#ddd;--background:#fff;--text-muted:#777;--font-family:var(--font-montserrat),sans-serif}.layout-wrapper{display:flex;height:100vh;width:100vw;overflow:hidden}body{margin:0;height:100%;display:flex;padding:0;font-family:var(--font-montserrat),sans-serif}.main-content{margin-left:60px;display:flex;flex-direction:column;height:100vh;overflow-y:auto;width:100%}.main-content h1{margin-left:40px;margin-top:30px;font-size:1.5em;font-weight:700}.sidebar{width:60px;z-index:10000;background-color:#cecece;color:#fff;position:fixed;top:0;left:0;bottom:0;flex-direction:column;padding-top:0}.sidebar,.top-bar{display:flex;align-items:center}.top-bar{position:relative;width:100%;min-height:60px;background-color:var(--background);box-shadow:0 2px 4px rgba(0,0,0,.1);justify-content:space-between;padding:0 20px;box-sizing:border-box;z-index:1000}.icon-wrapper{width:80%;height:80%;border-radius:8px;transition:background-color .2s ease;display:flex;align-items:center;justify-content:center}.sidebar ul{list-style:none;padding:0;margin:0;width:100%}.sidebar li{width:100%}.sidebar a{width:100%;height:60px;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.sidebar a img{max-width:50%;max-height:50%;object-fit:contain;display:block}.sidebar li:first-child a{background-color:black}.sidebar a:hover .icon-wrapper{background-color:rgba(0,0,0,.2)}.top-bar ul{list-style:none;display:flex;align-items:center;margin:0;padding:0;width:100%}.top-bar li:nth-child(2){margin-left:auto}.top-bar li{display:flex;align-items:center}.top-bar img{max-height:50px;width:auto}.bell-icon,.profile-icon{height:30px;width:30px;cursor:pointer;margin-left:20px}.top-bar .logo{text-align:center;font-size:12px;margin-bottom:20px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.section-header h2{margin:0;font-size:1.5em}.section-header .last-updated{font-size:.85em;color:#666}.notes-section{background:white;border-radius:12px;padding:16px;box-shadow:0 2px 6px rgba(0,0,0,.1);width:100%;box-sizing:border-box}.notes-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.notes-title{font-size:1.2rem;font-weight:700;margin:0}.add-note-button{background:#f0f0f0;border:none;border-radius:50%;width:32px;height:32px;font-size:20px;cursor:pointer}.note-card{border:1px solid #e0e0e0;border-radius:8px;padding:12px 16px;box-shadow:0 1px 3px rgba(0,0,0,.05)}.note-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.note-author-date{display:flex;gap:6px;font-size:.9rem;color:#555}.note-author{font-weight:500}.note-dot{color:#aaa}.note-date{color:#777}.note-options{background:none;border:none;font-size:20px;color:#aaa;cursor:pointer}.note-options:hover{color:#444}.note-text{font-size:.95rem;color:#333;white-space:pre-wrap}.note-scroll{overflow-y:auto;flex-grow:1;padding-right:6px}.section-full{display:flex;gap:20px;margin:20px;flex-wrap:wrap}.layout-block{background-color:var(--background);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--main-padding);display:flex;flex-direction:column;align-items:stretch}.layout-block h3,.layout-block h4{margin-top:0;margin-bottom:10px}.layout-block--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:2px;margin-bottom:20px}.layout-block--bar,.layout-block--feed{overflow:hidden;box-sizing:border-box;width:100%}.layout-block--bar{display:flex;flex-direction:column;gap:10px;max-height:300px}.layout-block--chart{flex:2;width:400px;max-height:300px;padding:1rem}.layout-block--1-3-notes{height:300px}.layout-block--1-3,.layout-block--1-3-notes{flex:1;justify-content:flex-start;flex-direction:column;padding:1rem;box-sizing:border-box}.layout-block--1-3 canvas{align-self:center;max-width:100%;max-height:350px;height:auto;width:auto;margin-top:29px;padding:1rem}.layout-block--2-3{flex:2;max-height:400px}.layout-block--2-3 canvas,.layout-block--chart canvas{width:100%;height:100%;margin-bottom:10px}.layout-block--chart canvas{flex:1}.layout-block--chart h4{margin-top:0;margin-bottom:10px}.top-box{margin-left:10px;margin-right:10px;padding:15px;display:flex;gap:15px;margin-bottom:20px;flex-wrap:wrap}.metric-box{background:white;padding:20px;border-radius:var(--border-radius);border:1px solid var(--border-color);flex:1;min-width:150px;box-shadow:0 1px 3px rgba(0,0,0,.05);display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.metric-box.highlight{background:#333;color:white}.metric-box strong{font-size:1.5em;margin-top:5px}.header-boxes{margin-top:0;margin-left:20px;margin-right:20px;padding:0}.device-cell{background-color:#f9f9f9;padding:6px 8px;border:1px solid #eee;font-size:.85em;text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:background-color .2s;cursor:pointer;min-height:40px;height:40px;position:relative}.device-cell:hover{background-color:#e0e0e0}.device-cell-link{text-decoration:none;color:inherit;display:block}.device-cell-link device-id{font-weight:700;margin-bottom:4px;color:inherit;font-weight:400}.state-text{font-weight:400;color:#666}.device-id,.state-text{font-weight:700;margin-bottom:2px;font-size:.75em;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-circle{width:10px;height:10px;border-radius:50%;position:absolute;top:5px;right:5px;background-color:gray}.status-circle.active{background-color:green}.status-circle.inactive{background-color:red}.status-box{background-color:var(--background);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--main-padding);box-sizing:border-box;display:flex;flex-direction:column}.status-box:first-child{flex:2;min-width:300px}.status-box:last-child{flex:1;min-width:200px}.status-box h3{margin-top:0;margin-bottom:10px}.sensor-table,.status-table{width:100%;border-collapse:collapse}.sensor-table td,.sensor-table th,.status-table td,.status-table th{border-bottom:1px solid #ddd;padding:8px;text-align:left;font-size:.9em}.sensor-table th,.status-table th{font-weight:700}.sensor-table tbody tr:last-child td,.status-table tbody tr:last-child td{border-bottom:none}.feed-section{display:flex;gap:20px;margin:20px;flex-wrap:wrap}.feed-box{background-color:var(--background);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--main-padding);box-sizing:border-box;display:flex;flex-direction:column;max-height:300px;overflow:hidden}.device-feed{flex:2;min-width:300px;overflow-y:auto}.feed-box h3{margin-top:0;margin-bottom:10px}.log-list{list-style:none;padding:0;margin:0}.log-list li{display:flex;align-items:center;margin-bottom:10px;font-size:.9em}.log-dot{width:10px;height:10px;border-radius:50%;background-color:gray;margin-right:8px}.log-dot.active{background-color:black}.log-time{margin-left:auto;color:#999;font-size:.8em}.feed-list{overflow-y:auto;max-height:400px}.feed-item{border-bottom:1px solid #eee;padding:10px 0}.feed-item:last-child{border-bottom:none}.feed-header{display:flex;align-items:center;justify-content:space-between;font-size:.9em}.feed-tag{padding:2px 8px;border-radius:var(--border-radius);font-size:.7em;color:white}.feed-tag.low{background-color:#ccc}.feed-tag.critical{background-color:#333}.sensor-button{display:inline-block;padding:4px 12px;background-color:#e0e0e0;color:black;text-decoration:none;border-radius:4px;font-size:.9rem;font-weight:500;border:1px solid #ccc;cursor:pointer}.stat-blocks{flex:1;gap:15px;min-width:220px}.stat-blocks,.stat-box{display:flex;flex-direction:column}.stat-box{background-color:#f9f9f9;border:1px solid #ddd;border-radius:8px;padding:var(--main-padding);text-align:left;justify-content:center;min-height:0}.stat-box.total{background-color:#333;color:white}.stat-box h4{margin:0 0 5px;font-size:1em}.stat-value{font-size:1.5em;margin:0}.stat-box small{font-size:.8em;color:#777}.sensor-filter-bar{margin:20px;padding:var(--main-padding);background-color:var(--background);border:1px solid var(--border-color);border-radius:8px;flex-wrap:wrap}.sensor-filter-bar input,.sensor-filter-bar label,.sensor-filter-bar select{margin:0}.filter-line{display:flex;flex-wrap:wrap;align-items:center;gap:15px}.filter-item{font-size:.95em}.time-option{display:flex;align-items:center;font-size:.9em;gap:5px}.TimeDiffChart{margin:20px}#TimeDiffvsTotalDataPoints{max-height:275px}.admin-form-wrapper{display:flex;align-items:flex-start;justify-content:space-between;margin:40px;gap:40px}.admin-form-section{flex:2;background:#fff;border:1px solid var(--border-color);border-radius:12px;padding:var(--main-padding);max-width:800px}.admin-form-section form{display:flex;flex-direction:column;gap:15px}.admin-form-section label{font-weight:700}.admin-form-section input[type=date],.admin-form-section input[type=text],.admin-form-section select{padding:8px;border-radius:6px;border:1px solid #ccc;width:100%;font-size:14px;box-sizing:border-box}.admin-form-section button{padding:10px 15px;background-color:#333;color:white;border:none;border-radius:6px;cursor:pointer}@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b1f344208eb4edfe-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/48e2044251ef3125-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/bf24a9759715e608-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/1f173e5e25f3efee-s.woff2) format("woff2");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:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/904be59b21bd51cb-s.p.woff2) format("woff2");unicode-range:u+00??,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:Montserrat Fallback;src:local("Arial");ascent-override:85.79%;descent-override:22.25%;line-gap-override:0.00%;size-adjust:112.83%}.__className_069ab3{font-family:Montserrat,Montserrat Fallback;font-style:normal}.__variable_069ab3{--font-montserrat:"Montserrat","Montserrat Fallback"}