.smart-meter-page{--meter-accent:#d18c2f;--meter-accent-soft:#f7ead7;color:#253f37;gap:18px;display:grid}.smart-meter-page.is-water{--meter-accent:#397e9d;--meter-accent-soft:#e3f0f5}.meter-heading{justify-content:space-between;align-items:end;gap:24px;display:flex}.meter-heading h1{letter-spacing:-.045em;margin:10px 0 6px;font:500 clamp(38px,4vw,58px)/1 STSong,Songti SC,serif}.meter-heading p{color:#71827b;max-width:760px;margin:0;font-size:11px;line-height:1.7}.meter-source-state{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:10px;min-width:180px;padding:12px 14px;display:flex}.meter-source-state div{gap:2px;display:grid}.meter-source-state small{color:#8b9993;font-size:8px}.meter-source-state strong{font-size:9px}.meter-kind-tabs{background:#e9eeeb;border-radius:11px;grid-template-columns:repeat(2,minmax(140px,1fr));gap:4px;width:fit-content;padding:4px;display:inline-grid}.meter-kind-tabs a{color:#718079;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:38px;font-size:10px;font-weight:750;display:flex}.meter-kind-tabs a.is-active{color:#173e33;background:#fff;box-shadow:0 5px 14px rgba(24,55,45,.09)}.meter-kind-tabs a.is-active span{color:var(--meter-accent)}.meter-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;display:grid}.meter-metrics article{border:1px solid var(--line);background:#fff;border-radius:14px;flex-direction:column;min-height:112px;padding:17px;display:flex}.meter-metrics article.is-primary{color:#f7fff9;background:#103b2f;border-color:#103b2f}.meter-metrics small{color:#82918b;letter-spacing:.08em;font-size:8px;font-weight:750}.meter-metrics .is-primary small,.meter-metrics .is-primary span{color:rgba(247,255,249,.58)}.meter-metrics strong{margin-top:9px;font:500 31px/1 STSong,serif}.meter-metrics span{color:#96a19c;margin-top:auto;font-size:8px}.meter-coverage-track{background:#e8eeeb;border-radius:999px;height:5px;margin-top:auto;overflow:hidden}.meter-coverage-track i{background:var(--meter-accent);border-radius:inherit;height:100%;transition:width .25s;display:block}.meter-workbench{border:1px solid var(--line);background:#fff;border-radius:17px;grid-template-columns:250px minmax(0,1fr);min-height:620px;display:grid;overflow:visible}.meter-building-panel{background:#f4f7f4;border-right:1px solid #e1e8e4;border-radius:17px 0 0 17px;min-width:0;padding:17px}.meter-building-panel>header,.meter-ledger-heading{justify-content:space-between;align-items:flex-start;display:flex}.meter-building-panel header small,.meter-ledger-heading small{color:#879790;letter-spacing:.15em;font-size:7px;font-weight:800}.meter-building-panel h2,.meter-ledger-heading h2{margin:5px 0 0;font:500 20px/1.2 STSong,serif}.meter-building-panel>header>span{color:#c9d1cd;font:400 27px/1 STSong,serif}.meter-search-field{margin-top:15px;display:block;position:relative}.meter-search-field>span{z-index:1;color:#83918b;font-size:15px;position:absolute;top:50%;left:11px;transform:translateY(-52%)}.meter-search-field input,.meter-reading-search input{box-sizing:border-box;color:#29463d;width:100%;min-height:39px;font:inherit;background:#fff;border:1px solid #dbe4df;border-radius:9px;outline:0;padding:0 11px;font-size:9px}.meter-search-field input{padding-left:31px}.meter-search-field input:focus,.meter-reading-search input:focus{border-color:#77aa9b;box-shadow:0 0 0 3px rgba(87,149,130,.1)}.meter-tree{scrollbar-width:thin;scrollbar-color:#cbd8d2 transparent;gap:7px;max-height:530px;margin-top:13px;padding-right:3px;display:grid;overflow-y:auto}.meter-tree button{color:#36534a;cursor:pointer;background:0 0}.meter-tree-all{text-align:left;border-radius:9px;align-items:center;gap:10px;width:100%;min-height:48px;padding:7px 9px;display:flex}.meter-tree-all:hover,.meter-tree-all.is-active,.meter-tree-room:hover,.meter-tree-room.is-active,.meter-tree-devices button:hover,.meter-tree-devices button.is-active{background:#e2eee8}.meter-tree-icon{color:#fff;background:#1d5747;border-radius:8px;place-items:center;width:29px;height:29px;display:grid}.meter-tree-all>span:last-child{gap:3px;display:grid}.meter-tree-all strong{font-size:9px}.meter-tree-all small{color:#8b9a94;font-size:7px}.meter-tree section{gap:3px;display:grid}.meter-tree-node{text-align:left;border-radius:7px;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:5px;width:100%;min-height:31px;padding:0 7px;display:grid}.meter-tree-node:hover,.meter-tree-node.is-active{background:#e2eee8}.meter-tree-node strong{text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.meter-tree-park-node{min-height:35px;color:#254d40!important}.meter-tree-park-node strong{font-size:10px}.meter-tree-toggle{cursor:pointer;border:1px solid #9db1a9;border-radius:2px;place-items:center;width:15px;height:15px;padding:0;font-size:10px;line-height:1;display:grid;color:#537268!important}.meter-tree-toggle:hover{background:#315f51;border-color:#315f51;color:#fff!important}.meter-tree-label{text-align:left;align-items:center;width:100%;min-width:0;min-height:30px;padding:0;display:flex}.meter-tree-park-node .meter-tree-label{min-height:34px}.meter-tree-branch{gap:2px;margin-left:9px;padding-left:12px;display:grid;position:relative}.meter-tree-branch:before{content:"";background:#d3ded8;width:1px;position:absolute;top:0;bottom:10px;left:2px}.meter-tree-floor>.meter-tree-node{color:#5e706a}.meter-tree-room{text-align:left;border-radius:8px;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:5px;min-height:34px;padding:0 8px;display:grid}.meter-tree-room>span{color:var(--meter-accent);font-size:11px}.meter-tree-room strong{text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.meter-tree-room small{color:#72877e;background:#e6ece9;border-radius:6px;place-items:center;min-width:20px;height:20px;font-size:7px;display:grid}.meter-tree-devices{gap:2px;padding-left:12px;display:grid;position:relative}.meter-tree-devices:before{left:2px}.meter-tree-devices button{text-align:left;border-radius:7px;grid-template-columns:12px minmax(0,1fr);align-items:center;gap:5px;min-height:39px;padding:5px 7px;display:grid}.meter-tree-devices button>span:last-child{gap:2px;min-width:0;display:grid}.meter-tree-devices strong{text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.meter-tree-devices small{color:#91a099;text-overflow:ellipsis;white-space:nowrap;font-size:7px;overflow:hidden}.meter-device-dot{background:#76b697;border:2px solid #ddefe6;border-radius:50%;width:6px;height:6px}.meter-device-file{color:#60766e;font-size:11px}.meter-tree-empty{color:#8c9994;text-align:center;padding:30px 8px;font-size:8px;line-height:1.7}.meter-tree-loading,.meter-tree-error{color:#7b8d85;text-align:center;place-content:center;justify-items:center;min-height:180px;padding:14px;display:grid}.meter-tree-loading .meter-loading-pulse{width:30px;height:30px;margin-bottom:9px}.meter-tree-loading p,.meter-tree-error p{margin:0;font-size:8px;line-height:1.7}.meter-tree-error{color:#93493e}.meter-tree-error button{color:#8f4439;cursor:pointer;background:#fff;border:1px solid #ecc9c1;border-radius:7px;min-height:30px;margin-top:10px;padding:0 9px;font-size:8px}.meter-ledger-panel{min-width:0;padding:19px}.meter-protocol{color:#527167;background:#edf4f0;border-radius:7px;padding:6px 9px;font-size:8px;font-weight:750}.meter-filter-row{background:#f6f8f5;border:1px solid #e5ebe7;border-radius:12px;grid-template-columns:220px minmax(160px,1fr) 120px auto;align-items:end;gap:10px;margin-top:17px;padding:12px;display:grid}.meter-day-control{background:#fff;border:1px solid #dce5e0;border-radius:9px;grid-template-columns:34px minmax(0,1fr) 34px;display:grid;overflow:hidden}.meter-day-control>button{color:#416359;cursor:pointer;background:0 0;min-height:42px;font-size:12px}.meter-day-control>button:first-child{border-right:1px solid #e5ebe7}.meter-day-control>button:last-child{border-left:1px solid #e5ebe7}.meter-day-control>button:disabled{cursor:default;opacity:.3}.meter-day-display{text-align:center;place-content:center;gap:2px;display:grid}.meter-day-display small{color:#8a9892;font-size:7px}.meter-day-display strong{font-size:9px}.meter-reading-search{gap:6px;display:grid}.meter-reading-search span,.meter-freeze-type small{color:#71827b;font-size:8px;font-weight:750}.meter-freeze-type{background:#fff;border:1px solid #dce5e0;border-radius:9px;align-content:center;gap:3px;min-height:42px;padding:0 10px;display:grid}.meter-freeze-type strong{color:#34564b;font-size:9px}.meter-refresh-button{color:#fff;cursor:pointer;background:#174c3c;border-radius:9px;min-height:42px;padding:0 14px;font-size:9px;font-weight:750}.meter-refresh-button:disabled{cursor:wait;opacity:.6}.meter-error{color:#93493e;background:#fff2ef;border:1px solid #f0d4ce;border-radius:10px;justify-content:space-between;align-items:center;gap:14px;margin-top:14px;padding:13px;display:flex}.meter-error div{gap:3px;display:grid}.meter-error strong{font-size:10px}.meter-error p{margin:0;font-size:8px;line-height:1.6}.meter-error button{color:#8f4439;cursor:pointer;background:#fff;border:1px solid #ecc9c1;border-radius:7px;min-height:31px;padding:0 10px;font-size:8px}.meter-loading{color:#31574c;text-align:center;place-content:center;justify-items:center;min-height:330px;display:grid}.meter-loading-pulse{background:var(--meter-accent-soft);border:1px solid var(--meter-accent);border-radius:50%;width:42px;height:42px;margin-bottom:14px;animation:1.2s ease-in-out infinite meter-pulse}.meter-loading strong{font:500 19px/1.3 STSong,serif}.meter-loading p{color:#8a9892;margin:7px 0 0;font-size:8px}@keyframes meter-pulse{50%{opacity:.45;transform:scale(.82)}}.meter-reading-content{margin-top:14px;transition:opacity .16s}.meter-reading-content.is-refreshing{opacity:.45;pointer-events:none}.meter-table-wrap{border:1px solid #e4eae6;border-radius:11px;overflow-x:auto}.meter-table{border-collapse:collapse;color:#3f584f;width:100%;min-width:980px;font-size:8px}.is-electric .meter-table{min-width:1220px}.meter-table th{color:#788a82;text-align:left;white-space:nowrap;background:#f4f7f4;border-bottom:1px solid #e2e9e5;padding:11px 12px;font-size:8px}.meter-table td{text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid #edf1ee;max-width:210px;padding:12px;overflow:hidden}.meter-table tbody tr:hover{background:#fafcf9}.meter-table td:first-child strong,.meter-table td:first-child small{display:block}.meter-table td:first-child strong{font-size:9px}.meter-table td:first-child small{color:#98a49f;margin-top:3px;font-size:7px}.meter-table code{color:#315c50;font:500 8px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}.meter-total-value{color:var(--meter-accent);font:600 13px/1 STSong,serif}.meter-freeze-badge{color:#2f6554;background:#e5f2ec;border-radius:999px;align-items:center;min-height:22px;padding:0 7px;font-size:7px;font-weight:750;display:inline-flex}.meter-table-empty{color:#899791;text-align:center;height:170px}.meter-mobile-readings{display:none}.meter-pagination{color:#788981;justify-content:space-between;align-items:center;padding:13px 2px 0;font-size:8px;display:flex}.meter-pagination div{gap:6px;display:flex}.meter-pagination button{color:#315e51;cursor:pointer;background:#edf4f0;border-radius:7px;min-height:30px;padding:0 10px;font-size:8px}.meter-pagination button:disabled{cursor:default;opacity:.35}@media (width<=1180px){.meter-filter-row{grid-template-columns:220px minmax(160px,1fr) auto}.meter-freeze-type{display:none}}@media (width<=860px){.meter-heading{flex-direction:column;align-items:stretch}.meter-source-state{width:fit-content}.meter-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.meter-workbench{grid-template-columns:1fr}.meter-building-panel{border-bottom:1px solid #e1e8e4;border-right:0;border-radius:17px 17px 0 0}.meter-tree{max-height:280px}.meter-filter-row{grid-template-columns:1fr 1fr}.meter-refresh-button{min-height:42px}}@media (width<=620px){.smart-meter-page{gap:14px}.meter-heading h1{font-size:38px}.meter-kind-tabs{grid-template-columns:repeat(2,1fr);width:100%}.meter-metrics{gap:8px}.meter-metrics article{min-height:100px;padding:14px}.meter-metrics strong{font-size:27px}.meter-workbench{border-radius:14px}.meter-building-panel{border-radius:14px 14px 0 0;padding:14px}.meter-tree{max-height:240px}.meter-ledger-panel{padding:14px}.meter-filter-row{grid-template-columns:1fr;padding:10px}.meter-day-control{grid-row:1}.meter-reading-search input{min-height:44px;font-size:16px}.meter-refresh-button{min-height:44px}.meter-table-wrap{display:none}.meter-mobile-readings{gap:10px;display:grid}.meter-mobile-empty{color:#899791;text-align:center;place-content:center;min-height:150px;margin:0;font-size:9px}.meter-mobile-readings article{background:#fff;border:1px solid #e0e8e4;border-radius:12px;overflow:hidden;box-shadow:0 8px 22px rgba(24,55,45,.06)}.meter-mobile-readings article>header{border-bottom:1px solid #edf1ef;justify-content:space-between;align-items:flex-start;padding:13px;display:flex}.meter-mobile-readings header div{gap:3px;min-width:0;display:grid}.meter-mobile-readings header strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.meter-mobile-readings header small{color:#899791;font-size:8px}.meter-mobile-readings header>span{color:#356656;background:#e8f3ee;border-radius:999px;padding:4px 7px;font-size:7px;font-weight:750}.meter-mobile-total{text-align:center;padding:17px 14px}.meter-mobile-total small{color:#8b9993;font-size:8px;display:block}.meter-mobile-total strong{color:var(--meter-accent);font:600 29px/1.2 STSong,serif}.meter-mobile-total b{color:#71827b;margin-left:4px;font-size:8px}.meter-tariff-grid{background:#e5ebe8;border-radius:9px;grid-template-columns:repeat(4,1fr);gap:1px;margin:0 12px 13px;display:grid;overflow:hidden}.meter-tariff-grid div{text-align:center;background:#f5f7f5;gap:4px;padding:9px 4px;display:grid}.meter-tariff-grid span{color:#929e99;font-size:7px}.meter-tariff-grid strong{font-size:9px}.meter-mobile-readings article>footer{background:#f6f8f6;justify-content:space-between;align-items:center;padding:11px 13px;font-size:8px;display:flex}.meter-mobile-readings footer span{color:#899791}.meter-mobile-readings footer strong{font-size:8px}}@media (prefers-reduced-motion:reduce){.meter-loading-pulse{animation:none}.meter-coverage-track i,.meter-reading-content{transition:none}}