@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap";
:root{--motion-enter:.28s;--motion-exit:.2s;--motion-page:.26s;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in:cubic-bezier(.55, 0, .75, .06);--bg:#f5f7f8;--surface:#fff;--text:#18232a;--muted:#617079;--border:#e1e7ea;--primary:#087c70;--primary-dark:#066356;--sidebar:#14252b;--danger:#aa3529;--ring:#119c8a;--mono:"IBM Plex Mono", monospace;--sans:"DM Sans", system-ui, sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font:14px/1.5 var(--sans);margin:0}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--ring)}button{cursor:pointer;color:inherit;background:0 0;border:0;transition:background .18s,color .18s}button:disabled{opacity:.5;cursor:not-allowed}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1{letter-spacing:-1px;font-size:30px;font-weight:600;line-height:1.2}h2{letter-spacing:-.3px;font-size:17px;font-weight:600}h3{font-size:15px}small{color:var(--muted);font-size:12px}.mono,code,pre{font-family:var(--mono);font-size:12px}.sr-only{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.skip{z-index:100;background:#fff;padding:12px;position:fixed;top:-60px;left:12px}.skip:focus{top:12px}.sidebar{background:var(--sidebar);color:#bac8ce;z-index:30;flex-direction:column;width:242px;display:flex;position:fixed;inset:0 auto 0 0}.brand{color:#eef6f5;align-items:center;gap:10px;padding:27px 22px;display:flex}.brand-logo{width:170px;height:auto;display:block}.brand>svg{color:#64c6b6}.brand>span{letter-spacing:-.8px;font-size:22px;font-weight:600;line-height:1.05}.brand-sub{letter-spacing:2px;color:#9bafb8;margin-top:7px;font-size:9px;font-weight:500;display:block}.workspace-selector{margin:9px 16px 30px;position:relative}.workspace{text-align:left;border:1px solid #33464e;border-radius:8px;align-items:center;gap:9px;width:100%;padding:12px 10px;display:flex}.workspace:hover,.workspace[aria-expanded=true]{background:#1d353c;border-color:#51776f}.workspace-label{flex:1;min-width:0}.workspace-options{z-index:2;background:#20383e;border:1px solid #45605f;border-radius:9px;padding:5px;position:absolute;top:calc(100% + 6px);left:0;right:0;box-shadow:0 12px 30px #061b2099}.workspace-options button{color:#d8e9e5;text-align:left;border-radius:6px;justify-content:space-between;gap:8px;width:100%;padding:10px;display:flex}.workspace-options button:hover,.workspace-options button[aria-pressed=true]{color:#fff;background:#31534e}.workspace-icon{color:#a6ddd2;background:#28434b;border-radius:6px;place-items:center;width:31px;height:31px;font-weight:600;display:grid}.workspace strong{color:#e2ecee;letter-spacing:.3px;font-size:11px}.workspace small{color:#91a4ad;font-size:10px;display:block}.workspace-arrow{color:#8aa0a9;margin-left:auto}.nav-caption{letter-spacing:1.8px;color:#8096a1;padding:0 24px 10px;font-size:9px;font-weight:600}.sidebar-group+.sidebar-group{margin-top:18px}.access-panel h2{align-items:center;gap:8px;display:flex}.access-panel>p,.access-empty{color:var(--muted);padding:20px 24px}.access-notice{color:#17675e;margin:12px 0;font-weight:600}.access-form{flex-direction:column;gap:16px;padding:20px 24px;display:flex}.drawer-content .access-form{padding:20px 0}.access-form label:not(.checkbox){flex-direction:column;gap:7px;font-size:12px;font-weight:600;display:flex}.access-form input:not([type=checkbox]),.access-form select{width:100%;min-height:42px;color:var(--text);background:#fff;border:1px solid #cdd9de;border-radius:6px;padding:10px 12px}.access-form input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}.access-form .checkbox{flex-direction:row;align-items:center;gap:9px;display:flex}.access-form fieldset{border:1px solid var(--border);border-radius:8px;gap:13px;padding:16px;display:grid}.access-form p,.access-form small,.access-divider p{color:var(--muted);line-height:1.5}.access-divider{border-top:1px solid var(--border);margin-top:16px;padding-top:20px}.access-divider button{margin-top:12px}.permission-list{padding-left:20px;line-height:1.9}.sidebar-scroll{scrollbar-width:thin;scrollbar-color:#47626b transparent;padding:0 12px;overflow-y:auto}.sidebar-scroll:focus-visible{outline-offset:-2px;outline:2px solid #64c6b6}.sidebar-scroll::-webkit-scrollbar{width:5px}.sidebar-scroll::-webkit-scrollbar-thumb{background:#47626b;border-radius:9px}.sidebar nav a{border-radius:6px;align-items:center;gap:12px;min-height:44px;margin-bottom:3px;padding:12px;font-size:13px;display:flex}.sidebar nav a:hover{color:#fff;background:#20373f}.sidebar nav a.active{color:#9ee3d4;background:#234a4d;box-shadow:inset 2px 0 #64c6b6}.sidebar-bottom{margin-top:auto;padding:22px 16px 16px}.lake-status{border-bottom:1px solid #31434a;align-items:center;gap:9px;padding:13px 2px 20px;display:flex}.lake-status strong{color:#c6d6db;font-size:10px;display:block}.lake-status small{color:#8c9fa7;font-size:9px}.lake-status>svg{margin-left:auto}.status-dot{background:#62baa7;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #62baa719}.user{align-items:center;gap:9px;padding-top:20px;display:flex}.avatar{color:#e1ecef;background:#3b525b;border-radius:50%;place-items:center;width:31px;height:31px;font-size:12px;display:grid}.user div{min-width:0}.user strong{color:#e0e8ea;white-space:nowrap;text-overflow:ellipsis;max-width:143px;font-size:10px;display:block;overflow:hidden}.user small{color:#9caeb5;font-size:9px;display:block}.user button{margin-left:auto;padding:8px}.main-wrap{flex-direction:column;min-height:100vh;margin-left:242px;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);height:66px;color:var(--muted);justify-content:space-between;align-items:center;padding:0 36px;font-size:13px;display:flex}.topbar strong{color:var(--text);font-weight:500}.slash{color:#b8c3c9;margin:0 13px}.top-actions{align-items:center;gap:3px;display:flex}.module-switch select{color:#174139;background:#edf7f3;border:1px solid #c4dfd5;border-radius:8px;max-width:170px;padding:8px 10px;font-weight:600}.module-heading{color:#88501e;background:#fff3e8;border:1px solid #f1dcc6;border-radius:10px;align-items:center;margin-bottom:20px;padding:10px 14px;display:flex}.module-heading.water{color:#176381;background:#eaf6fb;border-color:#cce5f0}.module-landing{padding:28px}.module-landing p{color:var(--muted);max-width:650px;margin-top:12px}.module-links{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.module-links a{color:var(--primary-dark);background:#eef8f5;border-radius:8px;padding:10px 14px;font-weight:600}.module-shared{color:#665120;background:#fff8e7;border:1px solid #f1e4bf;border-radius:9px;margin-bottom:18px;padding:10px 14px}.module-shared.water-note{color:#176381;background:#eaf6fb;border-color:#cce5f0}.top-actions button{min-height:40px;color:var(--muted);border-radius:4px;padding:5px 8px;font-size:12px}.top-actions button.selected{color:var(--primary);background:#edf6f2;font-weight:600}.private{border-left:1px solid var(--border);align-items:center;gap:5px;margin-left:13px;padding-left:16px;font-size:12px;display:flex}.private svg{color:var(--primary)}main#main{flex:1;width:100%;max-width:1660px;margin:auto;padding:34px 36px 44px}.eyebrow{letter-spacing:1.7px;color:var(--muted);margin-bottom:12px;font-size:9px;font-weight:600}.page-head{justify-content:space-between;align-items:center;gap:20px;margin-bottom:29px;display:flex}.page-head p{color:var(--muted);margin-top:9px;font-size:12px}.head-actions{gap:10px;display:flex}.primary,.secondary,.danger{white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:9px 15px;font-size:11px;font-weight:600;display:inline-flex}.primary{background:var(--primary);color:#fff}.primary:hover{background:var(--primary-dark)}.secondary{color:#43525a;background:#fff;border:1px solid #d6dfe3}.secondary:hover{background:#f0f5f5}.danger{color:var(--danger);background:#fff7f4;border:1px solid #ecc6bf}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:24px;display:grid}.metric{border:1px solid var(--border);background:#fff;border-radius:9px;padding:21px}.metric>div{color:var(--muted);justify-content:space-between;align-items:center;font-size:11px;display:flex}.metric svg{color:#81979f}.metric strong{letter-spacing:-1px;margin-top:17px;font-size:31px;font-weight:500;line-height:1;display:block}.metric small{margin-top:12px;font-size:10px;display:block}.panel{border:1px solid var(--border);background:#fff;border-radius:9px;overflow:hidden}.panel-head{justify-content:space-between;align-items:center;gap:12px;padding:22px 23px;display:flex}.panel-head p{color:var(--muted);margin-top:4px;font-size:11px}.panel-head>a{color:var(--primary);align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}.panel-head>svg{color:#80989f}.overview-grid{grid-template-columns:1.3fr 1fr;gap:24px;margin-bottom:24px;display:grid}.source-row{border-top:1px solid #eef1f3;align-items:center;gap:12px;margin:0 23px;padding:18px 0;display:flex}.source-icon{color:#2f7697;background:#ecf5fa;border:1px solid #d8e8ec;border-radius:9px;flex-shrink:0;place-items:center;width:42px;height:42px;display:grid}.source-icon.gazset{color:#ad7626;background:#fff6e9;border-color:#f3e3c8}.source-info strong{font-size:12px;font-weight:600}.source-info small{margin-top:4px;font-size:10px;display:block}.source-health{text-align:right;margin-left:auto}.source-health small{margin-top:5px;font-size:9px;display:block}.badge{color:#586d78;white-space:nowrap;background:#f6f8f9;border:1px solid #dfe7eb;border-radius:4px;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge>span{background:currentColor;border-radius:50%;width:4px;height:4px}.badge.good{color:#1b7053;background:#eef8f2;border-color:#d5ebdf}.badge.bad{color:#ad4938;background:#fff2ed;border-color:#efd6cf}.source-note{color:var(--muted);background:#fafcfc;border-top:1px solid #eaf0f1;align-items:center;gap:7px;padding:12px 23px;font-size:9px;display:flex}.publication-total{align-items:baseline;gap:10px;margin:7px 23px 20px;display:flex}.publication-total strong{letter-spacing:-1px;font-size:41px;font-weight:500}.publication-total span{color:var(--muted);font-size:11px}.progress-track{background:#eef2f3;border-radius:10px;height:6px;margin:0 23px 18px;overflow:hidden}.progress-track i{background:var(--primary);border-radius:10px;height:100%;display:block}.stat-line{color:var(--muted);justify-content:space-between;padding:8px 23px;font-size:10px;display:flex}.stat-line strong{color:#43525a;font-weight:500}.zones{grid-template-columns:repeat(4,minmax(0,1fr));padding:15px 24px 31px;display:grid}.zone{padding:4px 18px 4px 0;position:relative}.zone-icon{color:#697e8a;background:#f2f5f7;border-radius:8px;place-items:center;width:43px;height:43px;margin-bottom:14px;display:grid}.zone-icon.bronze{color:#9c6537;background:#fbf1e8}.zone-icon.silver{color:#607b8b;background:#eff3f6}.zone-icon.gold{color:#9f8129;background:#f7f3df}.zone strong{font-size:12px;display:block}.zone small{margin-top:4px;font-size:10px;display:block}.zone-arrow{color:#b4c3c9;position:absolute;top:15px;right:24px}.lake-map-foot{color:var(--muted);border-top:1px solid #edf1f2;justify-content:space-between;padding:12px 23px;font-size:9px;display:flex}.lake-map-foot span:first-child{align-items:center;gap:6px;display:flex}.source-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.source-card{padding:23px}.source-card .panel-head{padding:0 0 22px}.source-card h2{font-size:22px}.source-card>p{color:var(--muted);margin-top:6px;font-size:12px}.source-card dl{margin:24px 0}.source-card dl div{border-bottom:1px solid #eef2f3;justify-content:space-between;padding:10px 0;font-size:11px;display:flex}.source-card dt{color:var(--muted)}.source-card dd{margin:0}.source-card>.secondary{justify-content:space-between;width:100%}.filters{align-items:center;gap:8px;display:flex}.search{border:1px solid var(--border);color:#74858e;border-radius:5px;align-items:center;gap:8px;padding:7px 10px;display:flex}.search input{border:none;outline:0;width:175px;min-width:0;font-size:11px}.filters select{border:1px solid var(--border);background:#fff;border-radius:5px;min-width:0;padding:8px;font-size:11px}.readings-filters{align-items:end;gap:12px}.readings-filters label{color:#435d65;gap:5px;min-width:0;font-size:12px;font-weight:600;display:grid}.readings-filters input,.readings-filters select{width:160px;min-width:0;min-height:40px;color:var(--text);font:inherit;background:#fff;border:1px solid #cbd9dc;border-radius:6px;padding:8px 10px;font-weight:400}.readings-filters input:hover,.readings-filters select:hover,.readings-panel .page-tool-input:hover{border-color:#94adb1}.readings-panel .page-tool-input:focus-within{border-color:#167a70}.readings-panel .page-tools-controls input:disabled{background:#f0f4f3}.table-scroll{overscroll-behavior-x:contain;max-width:100%;overflow-x:auto}.page-tools{border-bottom:1px solid var(--border);background:#f8fbfa;padding:16px 18px}.page-tools-controls{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.page-tools-controls label{color:#435d65;flex:160px;gap:5px;min-width:130px;font-size:12px;font-weight:600;display:grid}.page-tools-controls input,.page-tools-controls select{width:100%;min-width:0;min-height:40px;color:var(--text);background:#fff;border:1px solid #cbd9dc;border-radius:6px;padding:8px 10px}.page-tool-input{color:var(--muted);background:#fff;border:1px solid #cbd9dc;border-radius:6px;align-items:center;gap:6px;padding-left:9px;display:flex}.page-tool-input input,.page-tool-input select{border:0}.page-tools-controls button{min-height:40px}.page-export{white-space:nowrap}.page-tools-note{color:#526971;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:10px;font-size:12px;display:flex}.page-tools-error{color:var(--danger);margin-top:10px}.page-tools-empty{color:var(--muted);padding:24px 18px}.setting-value-list{gap:6px;min-width:0;display:grid}.setting-value-list>div{flex-wrap:wrap;gap:4px;line-height:1.45;display:flex}.setting-value-list dt{color:#526971}.setting-value-list dd{overflow-wrap:anywhere;margin:0}.archive-coverage{background:#f3f8f7;border:1px solid #d8e7e4;border-radius:8px;margin:0 18px 16px;padding:12px 14px;line-height:1.5}.archive-coverage p{margin:4px 0 0}table{border-collapse:collapse;text-align:left;width:100%;min-width:720px;font-size:13px}th{border-top:1px solid var(--border);border-bottom:1px solid var(--border);color:#637880;white-space:nowrap;background:#f7f9fa;min-width:125px;padding:12px 18px;font-size:12px;font-weight:600}td{word-break:break-word;border-bottom:1px solid #edf1f3;min-width:125px;max-width:320px;padding:14px 18px;line-height:1.45}th[data-column=serial],td[data-column=serial],th[data-column=name],td[data-column=name],th[data-column=meter_key],td[data-column=meter_key],th[data-column=id],td[data-column=id],th[data-column=batch_id],td[data-column=batch_id],th[data-column=source_identity],td[data-column=source_identity],th[data-column=installation_address],td[data-column=installation_address],th[data-column=platform_identity],td[data-column=platform_identity]{min-width:210px}th[data-column=source_id],td[data-column=source_id],th[data-column=unit],td[data-column=unit],th[data-column=resource],td[data-column=resource]{min-width:115px}th[data-column=archive_kind],td[data-column=archive_kind],.readings-panel th[data-column=source_id],.readings-panel td[data-column=source_id]{min-width:96px}th[data-column=unit],td[data-column=unit]{min-width:72px}.clickable-row{cursor:pointer}.clickable-row:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.clickable-row:hover td{background:#f4faf8}th.cell-actions,td.cell-actions{z-index:1;text-align:right;background:#fff;width:155px;min-width:155px;max-width:none;position:sticky;right:0}.table-scroll.has-horizontal-overflow .cell-actions{box-shadow:-8px 0 15px -15px #355b52}th.cell-actions{z-index:2;background:#f7f9fa}.expanded-row td{background:#f3f8f7;padding:20px 24px}.row-actions{white-space:nowrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcfc}.row-action{color:#086b5e;white-space:nowrap;background:#fff;border:1px solid #c7ddd6;border-radius:7px;justify-content:center;align-items:center;gap:5px;min-height:38px;padding:8px 10px;font-weight:600;display:inline-flex}.row-action:hover{color:var(--primary);background:#eef5f4}.row-action[aria-expanded=true] svg{transform:rotate(90deg)}.row-link,.customer-archive-action{color:#086b5e;border:1px solid #c7ddd6;border-radius:7px;align-items:center;min-height:38px;padding:8px 10px;font-weight:600;text-decoration:none;display:inline-flex}.table-foot{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;padding:14px 18px;display:flex}.pager-page{text-align:center;min-width:72px;color:var(--muted);font-size:12px;font-weight:600}.export-meta{color:var(--muted);gap:2px;font-size:12px;display:grid}.export-meta strong{color:var(--text);font-size:13px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@media (max-width:560px){.form-grid{grid-template-columns:1fr}}.schema-table{margin-top:8px}.schema-table table{min-width:0}.empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:245px;padding:30px;display:flex}.empty svg{color:#aec3c7;margin-bottom:15px}.empty strong{font-size:14px}.empty p{color:var(--muted);max-width:340px;margin-top:7px;font-size:11px}.secondary-panel{margin-top:23px}.notice,.error-banner{background:#edf8f3;border:1px solid #b7dacf;border-radius:7px;align-items:center;gap:10px;margin-bottom:20px;padding:12px 15px;font-size:12px;display:flex}.notice>button,.error-banner>button{margin-left:auto;padding:4px}.error-banner{color:#953827;background:#fff3ef;border-color:#edc2b7}.loading{min-height:300px;color:var(--muted);place-items:center;display:grid}.credential{background:#ecf7f3;border:1px solid #c2e0d6;border-radius:8px;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:24px;padding:20px;display:flex}.credential p{color:var(--muted);font-size:11px}.credential code{word-break:break-all;width:100%;display:block}.drawer-backdrop{z-index:60;animation:fade-in var(--motion-enter) var(--ease-out) both;background:#10242d77;position:fixed;inset:0;overflow:hidden}.drawer{width:min(600px,100vw - 28px);animation:drawer-enter var(--motion-enter) var(--ease-out) both;position:absolute;inset:0 0 0 auto;box-shadow:-20px 0 70px #162c3b33}.drawer-backdrop.is-closing{animation:fade-out var(--motion-exit) var(--ease-in) both;pointer-events:none}.drawer-backdrop.is-closing .drawer{animation:drawer-exit var(--motion-exit) var(--ease-in) both}.drawer-wide{width:min(880px,100vw - 28px)}.drawer-close{z-index:2;color:#254b46;background:#fff;border:1px solid #d5e4df;border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:absolute;top:50%;left:-22px;transform:translateY(-50%);box-shadow:0 4px 16px #1b383329}.drawer-close:hover{background:#eef8f5}@keyframes drawer-enter{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes drawer-exit{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes drop-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:none}}.page-transition{animation:rise-in var(--motion-page) var(--ease-out) backwards}tbody tr{animation:fade-in .22s var(--ease-out) backwards}.expanded-row td>*{animation:rise-in .2s var(--ease-out) backwards}.workspace-options{animation:drop-in .16s var(--ease-out) backwards;transform-origin:top}.notice,.error-banner,.credential,.page-tools-error{animation:rise-in .22s var(--ease-out) backwards}.scrim{animation:fade-in .2s var(--ease-out) backwards}.is-stale .table-scroll,.is-stale .page-tools-empty,.is-stale .empty{opacity:.55;transition:opacity .15s}.table-scroll,.page-tools-empty,.empty{transition:opacity .2s}.sidebar-scroll a{transition:background .18s,color .18s}.drawer-content.modal{overscroll-behavior:contain;background:#fff;width:100%;height:100%;padding:32px;overflow-y:auto}.modal .panel-head{padding:0 0 22px}.modal .panel-head button{padding:5px}.modal h2{font-size:20px}.modal form{flex-direction:column;gap:16px;display:flex}.modal label,.login-form label{flex-direction:column;gap:7px;font-size:12px;font-weight:500;display:flex}.login-languages{gap:6px;margin:0 0 20px;display:flex}.login-languages button{border:1px solid var(--border);min-width:44px;min-height:38px;color:var(--text);cursor:pointer;border-radius:6px}.login-languages button[aria-pressed=true]{color:#fff;background:var(--primary);border-color:var(--primary)}.modal input,.modal select,.login-form input{min-width:0;min-height:41px;color:var(--text);background:#fff;border:1px solid #cdd9de;border-radius:6px;padding:10px 12px}.modal input[type=checkbox]{width:16px;height:16px;min-height:0;accent-color:var(--primary)}.modal label.checkbox{flex-direction:row;align-items:center}.modal-actions{justify-content:flex-end;gap:8px;margin-top:9px;display:flex}.form-help{color:var(--muted);font-size:11px}.details pre{white-space:pre-wrap;word-break:break-word;border:1px solid var(--border);background:#f5f8fa;border-radius:6px;max-height:290px;padding:16px;overflow:auto}.source-details-note{border-left:3px solid var(--primary);background:#f3f8f7;margin-bottom:20px;padding:12px 14px;line-height:1.5}.source-details h3{margin:20px 0 10px;font-size:16px}.source-details section>p{margin-bottom:12px;line-height:1.5}.source-fields{border:1px solid var(--border);border-radius:8px;overflow:hidden}.source-fields>div{border-bottom:1px solid var(--border);grid-template-columns:minmax(130px,1fr) minmax(0,2fr);gap:12px;padding:10px 14px;display:grid}.source-fields>div:last-child{border-bottom:0}.source-fields dt{font-weight:600}.source-fields dd{overflow-wrap:anywhere;margin:0}.source-variant{margin:14px 0}.source-variant h4{margin:0 0 8px}.technical-details{margin-top:20px}.technical-details summary{cursor:pointer;font-weight:600}.technical-details pre{margin-top:10px}.meter-readings{margin:20px 0}.meter-readings h3{margin-bottom:10px}.meter-readings>p{margin-bottom:12px;line-height:1.5}.meter-date-filters{flex-wrap:wrap;gap:12px;margin:12px 0;display:flex}.customer-meter-archive{border:1px solid var(--border);border-radius:10px;margin:20px 0;padding:16px}.customer-meter-archive>p{margin:8px 0 14px;line-height:1.5}.customer-meter-archive>label{margin-bottom:14px}.meter-date-filters label{flex-direction:column;gap:5px;display:flex}.explorer-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.explorer-card{flex-direction:column;gap:12px;padding:22px;display:flex}.explorer-card h2{font-size:17px}.explorer-card p{flex:1;line-height:1.5}.explorer-card a{align-items:center;gap:6px;font-weight:600;display:inline-flex}.explorer-muted{color:var(--muted)}.dashboard{gap:22px;display:grid}.dashboard-head{justify-content:space-between;align-items:center;gap:20px;display:flex}.dashboard-head h1{margin:6px 0}.dashboard-head p{color:var(--muted);line-height:1.5}.dashboard-notice{color:#234e49;background:#f2f8f7;border:1px solid #d7e9e3;border-radius:12px;gap:13px;padding:16px 18px;display:flex}.dashboard-notice svg{flex:none}.dashboard-notice p{margin:5px 0 0;line-height:1.5}.dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.dashboard-metric{border:1px solid var(--border);background:#fff;border-radius:14px;gap:8px;min-width:0;padding:20px;display:grid}.dashboard-metric-icon{color:#187568;background:#e8f5f1;border-radius:10px;place-items:center;width:38px;height:38px;display:grid}.dashboard-metric>span{color:#526974;font-weight:600}.dashboard-metric>strong{letter-spacing:-.025em;font-size:28px;line-height:1.15}.dashboard-metric>small{color:var(--muted);line-height:1.4}.dashboard-grid{grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:18px;display:grid}.dashboard-card{border:1px solid var(--border);background:#fff;border-radius:14px;min-width:0;padding:22px}.dashboard-card-heading{justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:18px;display:flex}.dashboard-card-heading h2{font-size:17px}.dashboard-card-heading p{color:var(--muted);margin-top:5px;line-height:1.5}.dashboard-card-heading a{white-space:nowrap;align-items:center;gap:5px;font-weight:600;display:inline-flex}.dashboard-sources{display:grid}.dashboard-source{border-top:1px solid var(--border);align-items:center;gap:12px;padding:16px 0;display:flex}.dashboard-source-icon{border-radius:12px;flex:none;place-items:center;width:42px;height:42px;display:grid}.dashboard-source-icon.water{color:#2b6b9a;background:#eaf5fb}.dashboard-source-icon.gas{color:#a85e24;background:#fff3e8}.dashboard-source-name,.dashboard-source-state{gap:4px;display:grid}.dashboard-source-name{flex:1}.dashboard-source-name small,.dashboard-source-state small{color:var(--muted)}.dashboard-source-state{text-align:right}.dashboard-links{gap:8px;display:grid}.dashboard-links a{border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;min-height:46px;padding:10px 12px;font-weight:600;display:flex}.dashboard-links a:hover{background:#f4f9f7;border-color:#afd1c7}.dashboard-activity .table-scroll{margin:0 -22px -22px}@media (max-width:1000px){.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}}@media (max-width:600px){.dashboard-head{align-items:flex-start}.dashboard-metrics{gap:10px}.dashboard-metric{padding:14px}.dashboard-metric>strong{font-size:23px}.dashboard-source{flex-wrap:wrap;align-items:flex-start}.dashboard-source-state{text-align:left;width:100%;padding-left:54px}}.method-metrics{margin-bottom:18px}.method-search{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.method-search input{border:1px solid var(--border);border-radius:6px;min-height:40px;padding:8px}footer{color:#82949d;justify-content:space-between;padding:17px 36px 22px;font-size:9px;display:flex}.mobile-toggle,.mobile-close,.scrim{display:none}.login{background:#fff;grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.login-story{background:var(--sidebar);color:#f1f8f7;flex-direction:column;justify-content:space-between;padding:35px 55px;display:flex;position:relative;overflow:hidden}.login-story:after{content:"";pointer-events:none;border:1px solid #315355;border-radius:50%;width:480px;height:480px;position:absolute;top:25%;right:-280px;box-shadow:0 0 0 70px #233e3e44,0 0 0 140px #233e3e22}.login-story .brand{padding:0}.login-story h1{letter-spacing:-3px;margin:16px 0 24px;font-size:64px;font-weight:500}.login-story .eyebrow{color:#73c8b7}.login-story p{color:#bacdd2;font-size:14px;line-height:1.8}.login-story>small{color:#8aa5ae;font-size:11px}.lake-lines{color:#acd4cc;align-items:center;gap:16px;margin-top:40px;font-size:10px;display:flex}.lake-lines i{background:#4d7273;width:30px;height:1px}.login-form{width:350px;max-width:100%;margin:auto;padding:25px}.shield{color:var(--primary);background:#edf6f2;border-radius:11px;place-items:center;width:48px;height:48px;margin-bottom:23px;display:grid}.login-form h2{letter-spacing:-1px;font-size:28px}.login-form>p{color:var(--muted);margin-top:8px;font-size:12px}.login-form form{flex-direction:column;gap:18px;margin-top:30px;display:flex}.login-form .primary{justify-content:space-between;min-height:44px;margin-top:4px}.login-form>small{text-align:center;margin-top:28px;font-size:9px;display:block}.error{color:var(--danger);font-size:12px}@media (min-width:1600px){.metric{padding:25px}.metric strong{font-size:36px}.overview-grid{grid-template-columns:1.5fr 1fr}.zones{padding-top:25px;padding-bottom:40px}}@media (max-width:1100px){.sidebar{width:215px}.main-wrap{margin-left:215px}.topbar{padding:0 25px}main#main{padding:28px 25px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-grid{grid-template-columns:1fr}.private{display:none}.panel-head{flex-wrap:wrap}.filters{max-width:100%}.source-health{min-width:90px}.source-cards{grid-template-columns:1fr}.login-story{padding:30px}.login-story h1{font-size:50px}}@media (max-width:760px){.settings-panel table,.settings-panel tbody,.settings-panel tbody tr,.settings-panel tbody td{display:block}.settings-panel table{min-width:0}.settings-panel thead{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.settings-panel tbody tr{border-bottom:1px solid var(--border);padding:14px 16px}.settings-panel tbody td{border:0;min-width:0;max-width:none;padding:5px 0}.settings-panel tbody td[data-column=setting]{font-weight:600}.settings-panel tbody td.cell-actions{text-align:left;width:auto;box-shadow:none;position:static}.module-switch select{max-width:115px;padding:6px;font-size:12px}.sidebar{width:242px;transition:transform .2s;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.mobile-toggle{z-index:20;width:38px;height:38px;display:block;position:absolute;top:15px;left:12px}.mobile-close{margin-left:auto;padding:5px;display:block}.scrim{z-index:25;background:#10242d88;display:block;position:fixed;inset:0}.main-wrap{margin-left:0}.topbar{padding:0 16px 0 58px}.topbar>span{font-size:9px}.topbar .slash{margin:0 5px}.top-actions button{padding:4px;font-size:9px}main#main{padding:25px 16px}.page-head{flex-direction:column;align-items:flex-start;gap:18px}h1{font-size:28px}.page-head p{font-size:11px}.head-actions{justify-content:flex-end;width:100%}.metric-grid{gap:10px}.metric{padding:15px}.metric>div{font-size:10px}.metric>div>svg{width:15px}.metric strong{margin-top:15px;font-size:27px}.metric small{min-height:26px;font-size:9px}.overview-grid{gap:17px}.panel-head{padding:18px}.source-row{gap:9px;margin:0 18px}.source-health{min-width:85px}.source-info strong{font-size:11px}.source-info small{font-size:9px}.source-note{padding:11px 18px;font-size:8px}.zones{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;padding:10px 18px 25px}.zone-arrow{right:20px}.zone:nth-child(2) .zone-arrow{display:none}.lake-map-foot{flex-direction:column;gap:5px;padding:12px 18px}.source-cards{gap:17px}.filters{flex-wrap:wrap;width:100%}.readings-filters label{flex:140px}.readings-filters input,.readings-filters select{width:100%}.search{flex:1}.search input{width:100%}th,td{padding:12px;font-size:10px}.drawer-content.modal{padding:20px}.modal h2{font-size:18px}.modal-actions{flex-wrap:wrap}footer{gap:10px;padding:14px 16px}footer span{display:none}.login{grid-template-columns:1fr}.login-story{display:none}.login-form{width:360px;padding:30px}.private{display:none}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.numeric{font-variant-numeric:tabular-nums;white-space:nowrap}.dataset-picker{gap:12px;padding:0 18px 16px;display:grid}.dataset-group{grid-template-columns:96px minmax(0,1fr);align-items:start;gap:10px;display:grid}.dataset-group-label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;padding-top:8px;font-size:11px;font-weight:700}.dataset-options{flex-wrap:wrap;gap:8px;display:flex}.dataset-option{min-height:34px;color:var(--text);white-space:nowrap;background:#fff;border:1px solid #cbd9dc;border-radius:999px;align-items:center;gap:8px;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.dataset-option small{color:#435d65;font-variant-numeric:tabular-nums;background:#edf3f2;border-radius:999px;min-width:24px;padding:1px 7px;font-size:11px}.dataset-option:hover{border-color:#94adb1}.dataset-option.selected{border-color:var(--primary);color:var(--primary-dark);background:#e9f6f3}.dataset-option.selected small{background:var(--primary);color:#fff}.dataset-option.empty:not(.selected){color:var(--muted);border-style:dashed}.dataset-description{color:var(--muted);margin:0 18px 14px;font-size:13px}.dataset-description .mono{margin-left:4px;font-size:12px}.cell-note{color:var(--muted);margin-top:3px;font-size:12px}.dataset-catalog{margin-top:23px}.empty-action{color:var(--primary);align-items:center;gap:6px;margin-top:14px;font-weight:600;text-decoration:none;display:inline-flex}@media (max-width:640px){.dataset-group{grid-template-columns:1fr;gap:6px}.dataset-group-label{padding-top:0}}.health-banner{color:#1b7053;background:#eef8f2;border:1px solid #d5ebdf;border-radius:9px;align-items:center;gap:14px;margin-bottom:20px;padding:16px 18px;display:flex}.health-banner p{color:var(--text);margin:3px 0 0;font-size:13px}.health-banner small{color:var(--muted);white-space:nowrap;margin-left:auto}.health-banner.bad{color:#ad4938;background:#fff2ed;border-color:#efd6cf}.health-banner.neutral{color:#8a5a0c;background:#fff8ea;border-color:#ecdcb8}.health-metrics{margin-bottom:23px}.metric strong.metric-text{font-size:22px}.health-grid{grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:23px;margin-top:23px;display:grid}.health-side{align-content:start;gap:23px;display:grid}.health-list{margin:0;padding:0 18px 16px;list-style:none}.health-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:13px;display:flex}.health-list li:last-child{border-bottom:0}.health-list a{color:var(--primary);font-weight:600;text-decoration:none}.health-help{margin:0 18px 16px}.dashboard-health{color:var(--text);background:#eef8f2;border:1px solid #d5ebdf;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:20px;padding:12px 16px;font-size:13px;text-decoration:none;display:flex}.dashboard-health.bad{background:#fff2ed;border-color:#efd6cf}.dashboard-health.neutral{background:#fff8ea;border-color:#ecdcb8}.dashboard-health-link{color:var(--primary);align-items:center;gap:5px;margin-left:auto;font-weight:600;display:inline-flex}@media (max-width:900px){.health-grid{grid-template-columns:1fr}.health-banner{flex-wrap:wrap}.health-banner small{margin-left:0}}.drawer-tabs{border-bottom:1px solid var(--border);scrollbar-width:none;gap:4px;margin:4px 0 18px;display:flex;overflow-x:auto}.drawer-tabs button{color:var(--muted);white-space:nowrap;padding:9px 12px;font-weight:600;position:relative}.drawer-tabs button:hover{color:var(--text)}.drawer-tabs button[aria-selected=true]{color:var(--primary-dark)}.drawer-tabs button[aria-selected=true]:after{content:"";background:var(--primary);border-radius:2px;height:2px;position:absolute;inset:auto 8px -1px}.drawer-tab-panel{animation:fade-in var(--motion-enter) var(--ease-out) backwards}.consumption{margin:0 0 24px}.consumption-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;display:flex}.consumption-head h3{margin:0}.consumption-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.segmented{border:1px solid var(--border);background:var(--bg);border-radius:8px;padding:2px;display:inline-flex}.segmented button{color:var(--muted);border-radius:6px;padding:4px 12px;font-weight:600}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #14252b1f}.consumption-note{color:var(--muted);margin:8px 0 14px;line-height:1.5}.consumption-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 16px;display:grid}.consumption-stats div{border:1px solid var(--border);border-radius:9px;min-width:0;padding:12px 14px}.consumption-stats dt{color:var(--muted);font-size:12px}.consumption-stats dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:4px 0 0;font-size:20px;font-weight:600}.consumption-stats small{color:var(--muted);font-size:12px;font-weight:400;display:block}.consumption-meters{margin-top:18px}.consumption-meters h4{margin:0 0 8px}.bar-chart{width:100%;position:relative}.bar-chart svg{display:block;overflow:visible}.bar-chart-grid{stroke:var(--border);stroke-width:1px}.bar-chart-axis{stroke:#b8c4c9;stroke-width:1px}.bar-chart-tick{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.bar-chart-value{fill:var(--text);font-variant-numeric:tabular-nums;font-size:11px;font-weight:600}.bar-chart-bar{fill:#00897b;transition:fill .15s}.bar-chart-bar.is-active{fill:#26a69a}.bar-chart-hit{fill:#0000;outline:none}.bar-chart-hit:focus-visible{stroke:var(--ring);stroke-width:2px}.bar-chart-tooltip{border:1px solid var(--border);background:var(--surface);pointer-events:none;border-radius:8px;width:150px;padding:7px 10px;animation:.12s ease-out backwards fade-in;position:absolute;top:0;box-shadow:0 6px 18px #14252b24}.bar-chart-tooltip strong{font-variant-numeric:tabular-nums;display:block}.bar-chart-tooltip span{color:var(--muted);font-size:12px}.meter-current{margin:0 0 24px}.meter-current>p{color:var(--muted);margin:8px 0 12px;line-height:1.5}.meter-current h4{margin:12px 0 8px}.value-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:0;display:grid}.value-grid div{background:var(--bg);border-radius:8px;padding:10px 12px}.value-grid dt{color:var(--muted);font-size:12px}.value-grid dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:2px 0 0;font-size:16px}@media (max-width:640px){.consumption-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.no-data{color:var(--muted);font-family:var(--sans)}.admin-status{margin-bottom:28px;padding:24px}.admin-status-heading{color:var(--primary-dark);justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.admin-status-heading h2,.admin-tools-title{color:var(--text);margin:0;font-size:18px}.admin-status-heading p{color:var(--muted);margin:6px 0 0;font-size:13px}.admin-status-warning{color:#714800;background:#fff5df;border-radius:6px;margin:18px 0 0;padding:12px;font-size:14px}.admin-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:24px 0 0;display:grid}.admin-metrics>div{border-right:1px solid var(--border);padding:4px 12px 4px 0}.admin-metrics>div:last-child{border:0}.admin-metrics dt{color:var(--muted);font-size:13px}.admin-metrics dd{color:var(--text);overflow-wrap:anywhere;margin:8px 0 0;font-size:26px;font-weight:700}.admin-metrics dd.admin-metric-detail{font-size:15px;line-height:1.5}.admin-tools-title{margin-bottom:16px}.admin-tool-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.admin-tool{flex-direction:column;padding:22px;display:flex}.admin-tool-icon{width:42px;height:42px;color:var(--primary-dark);background:#e7f5f1;border-radius:10px;place-items:center;display:grid}.admin-tool h3{margin:18px 0 6px;font-size:16px}.admin-tool p{min-height:42px;color:var(--muted);margin:0 0 16px;font-size:13px;line-height:1.6}.admin-tool nav{gap:4px;margin-top:auto;display:grid}.admin-tool nav a{min-height:42px;color:var(--primary-dark);border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;font-weight:600;text-decoration:none;display:flex}.admin-tool nav a:hover{background:#e7f5f1}.admin-tool nav a:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.admin-tool-foot{color:var(--muted);align-items:center;gap:6px;margin:18px 10px 0;font-size:12px;display:flex}@media (max-width:900px){.admin-tool-grid,.admin-metrics{grid-template-columns:1fr 1fr}.admin-metrics>div:nth-child(2){border-right:0}}@media (max-width:600px){.admin-tool-grid{grid-template-columns:1fr}.admin-status{padding:18px}}.dashboard-publication-status{flex-wrap:wrap;gap:6px 22px;margin-top:10px;font-size:12px;display:flex}.dashboard-publication-status strong{font-weight:650}
