:root{color-scheme:light;--page:#f3f6fa;--surface:#fff;--text:#182b40;--secondary:#57697c;--line:#dce4ed;--blue:#0867be;--soft:#edf5ff;--warning:#fff3d9;--warning-text:#75501b;--danger:#a52222}
:root[data-theme="dark"]{color-scheme:dark;--page:#101925;--surface:#1a2738;--text:#edf3fa;--secondary:#b2c0d1;--line:#344459;--blue:#174777;--soft:#213c57;--warning:#49391c;--warning-text:#f1d38d;--danger:#ffb2b2}
*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--text);font:14px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}[hidden]{display:none!important}a{color:inherit}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #6bb5ff;outline-offset:3px}.skip-link{position:absolute;top:-80px;left:12px;z-index:20;padding:12px;background:var(--surface)}.skip-link:focus{top:8px}.navbar{display:flex;align-items:center;gap:30px;padding:14px max(24px,calc((100vw - 1220px)/2));background:var(--blue);color:#fff}.brand{font-size:21px;font-weight:650;text-decoration:none;letter-spacing:-.5px}.nav-current{border-bottom:2px solid #fff;padding:5px 0}.more-menu{position:relative;margin-left:auto}.more-menu summary{cursor:pointer;padding:8px;min-height:40px}.menu-panel{position:absolute;right:0;top:48px;z-index:10;min-width:245px;padding:8px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 28px #0002}.menu-panel a,.menu-panel button{display:block;width:100%;padding:11px;text-align:left;border:0;border-radius:4px;background:transparent;color:inherit;text-decoration:none}.menu-panel a:hover,.menu-panel button:hover{background:var(--soft)}.main{max-width:1268px;padding:26px 24px;margin:auto}.heading{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:20px}h1{font-size:25px;line-height:1.25;letter-spacing:-.5px;margin:0 0 5px;font-weight:650}h2{font-size:16px;margin:0;font-weight:650}p{margin:0}.muted,dt{color:var(--secondary)}.small{font-size:12px}.actions{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.button{border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);padding:8px 14px;min-height:40px}.button:hover{border-color:#1474c8}.primary{background:var(--blue);border-color:var(--blue);color:#fff}.auto{display:flex;align-items:center;gap:6px;min-height:40px;font-size:12px}.auto input{width:16px;height:16px;accent-color:var(--blue)}label{display:grid;gap:5px;font-size:12px;color:var(--secondary)}input,select{border:1px solid var(--line);border-radius:5px;min-height:40px;background:var(--surface);color:var(--text);padding:8px 10px;min-width:0;max-width:100%}.device-field{max-width:270px}.summary{display:flex;align-items:center;flex-wrap:wrap;gap:20px 30px;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:20px 22px;margin-bottom:22px}.counter-block{margin-right:auto}.counter{font-size:28px;line-height:1.4;font-weight:650;letter-spacing:-.7px;font-variant-numeric:tabular-nums}.counter small{font-size:17px;font-weight:400;color:var(--secondary)}.sensor{margin:0}.sensor dt{font-size:12px}.sensor dd{margin:3px 0 0;font-size:16px;font-weight:550;font-variant-numeric:tabular-nums}.sensor .freshness{font-size:12px;font-weight:400;color:var(--secondary)}.report-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:20px;align-items:start}.panel{border:1px solid var(--line);border-radius:9px;background:var(--surface);overflow:hidden;min-width:0}.panel-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:15px 18px 11px}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th{font-weight:500;color:var(--secondary);background:var(--page);text-align:left;font-size:12px}td,th{padding:11px 16px;border-bottom:1px solid var(--line)}tbody tr:last-child td{border-bottom:0}.number{text-align:right;white-space:nowrap}.periods td:last-child{font-size:16px;font-weight:550}.periods .incomplete{display:block;font-size:11px;font-weight:400;color:var(--warning-text);white-space:normal}.periods td:first-child{white-space:nowrap}.readings td,.readings th{padding:10px 12px}.readings tbody tr:first-child{background:var(--soft)}.trend{text-align:center;white-space:nowrap;color:var(--secondary)}.panel-foot{padding:10px 16px;border-top:1px solid var(--line);font-size:12px;color:var(--secondary)}.notice{background:var(--warning);color:var(--warning-text);border-radius:6px;padding:11px 14px;margin:0 0 16px}.error{color:var(--danger)}.export-section{margin-top:20px}.export-section>.panel-heading{padding-left:0;padding-right:0}.export-form{display:flex;align-items:end;flex-wrap:wrap;gap:12px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.export-form label{flex:1;min-width:140px}.export-section>p{margin-top:10px}footer{margin-top:20px;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--secondary)}.login-card{max-width:420px;margin:7vh auto;padding:26px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.login-card h1{font-size:23px}.login-card form{display:grid;gap:15px;margin:24px 0 14px}.login-card input{width:100%}.empty{text-align:center;color:var(--secondary);padding:24px}.table-scroll{overflow-x:auto}.last-reading dd:first-of-type{white-space:nowrap}
@media(max-width:760px){.navbar{padding:12px 16px;gap:16px}.nav-current{display:none}.main{padding:20px 14px}.heading{align-items:start}.actions{width:100%;gap:8px}.device-field{flex:1;max-width:none;min-width:140px}.summary{padding:16px;gap:16px 22px}.counter-block{flex-basis:100%;margin:0}.counter{font-size:26px}.last-reading{flex-basis:100%}.report-grid{grid-template-columns:1fr}.readings{font-size:12px}.readings td,.readings th{padding:10px 7px}.readings th:last-child,.readings td:last-child{padding-left:3px;padding-right:5px}.export-form{padding:14px}.export-form label{min-width:100%}.export-form .button{width:100%}.button,input,select{min-height:44px}input,select{font-size:16px}.auto input{min-height:0}.auto{font-size:11px}.panel-heading{padding:14px 14px 10px}.more-menu summary{min-height:44px}.menu-panel{min-width:235px}.sensor dd{font-size:15px}}
