:root{--brand:#0f4c81;--brand-soft:#0f4c81;--bg:#fff;--fg:#1a1a1a;--muted:#666;--line:#ddd;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--fg);background:var(--bg);font-family:system-ui,-apple-system,sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--brand-soft:#7fb8e6;--bg:#121417;--fg:#e8e8e8;--muted:#9a9a9a;--line:#333;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--brand-soft:#7fb8e6;--bg:#121417;--fg:#e8e8e8;--muted:#9a9a9a;--line:#333;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.ico{flex:none;width:1.2em;height:1.2em}button .ico{margin-right:6px}button.icon .ico{width:1.3em;height:1.3em;margin:0}.message .ico{margin-top:2px}.inline-ico{align-items:center;gap:4px;display:inline-flex}.ico-labelled{align-items:center;display:inline-flex}.footer-links{flex-wrap:wrap;gap:16px;display:flex}main.login{max-width:420px;padding-top:10vh}main.login .top h1{text-align:left}.user-name{margin-left:auto;font-size:.9rem}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}*{box-sizing:border-box}body{background:var(--bg);margin:0}main{max-width:640px;padding:12px 16px env(safe-area-inset-bottom);margin:0 auto}h1{margin:4px 0 12px;font-size:1.3rem}h1 small{color:var(--muted);font-weight:400}h2{margin:20px 0 8px;font-size:1.05rem}section{margin-bottom:16px}.viewfinder{aspect-ratio:3/4;background:#000;border-radius:8px;max-height:58vh;margin:0 auto 8px;position:relative;overflow:hidden}.viewfinder.hidden{display:none}main.round{flex-direction:column;min-height:100dvh;display:flex}main.round>*{flex:none}main.round .viewfinder{aspect-ratio:auto;flex:1 1 0;width:100%;min-height:40vh;max-height:none}.meter-card.compact{padding:6px 10px}.num-last,.num-expect{font-variant-numeric:tabular-nums;font-size:1.1rem}.num-last{color:var(--fg)}.num-expect{color:var(--brand-soft)}.viewfinder video{object-fit:cover;width:100%;height:100%;display:block}.scan-frame{border:3px solid #fffc;border-radius:12px;position:absolute;inset:25% 18%}.photo-frame{border:3px solid #ffd400;border-radius:6px;position:absolute;box-shadow:0 0 0 100vmax #00000073}.crop-preview{object-fit:contain;background:#000;border-radius:6px;width:100%;max-height:40vh;margin-bottom:8px;display:block}.badge{color:#fff;background:#0009;border-radius:4px;padding:2px 8px;font-size:.8rem;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.field{color:var(--muted);flex-direction:column;gap:4px;margin:12px 0;font-size:.9rem;display:flex}.field input{border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:6px;padding:10px;font-size:1.2rem}.buttons{flex-wrap:wrap;gap:8px;display:flex}button,.button{font:inherit;border:1px solid var(--line);background:var(--bg);min-height:48px;color:var(--fg);cursor:pointer;border-radius:6px;align-items:center;padding:12px 16px;display:inline-flex}button.primary{background:var(--brand);border-color:var(--brand);color:#fff}button.big{flex:100%;justify-content:center;min-height:56px;font-size:1.15rem}button.icon{justify-content:center;min-width:48px;padding:4px 12px;font-size:1.5rem}button.link{min-height:0;color:var(--brand);background:0 0;border:none;padding:8px 0}button:disabled{opacity:.5}.message{border-left:3px solid var(--brand);background:#0f4c8114;align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.small{color:var(--muted);word-break:break-all;font-size:.75rem}.photos{margin:8px 0;padding:0;list-style:none}.photos li{border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;padding:8px 0;font-size:.85rem;display:flex}.photos img{object-fit:cover;background:var(--line);border-radius:4px;width:96px;height:72px}.photos li>div{flex:1}.photos li button{min-height:40px;padding:6px 12px}.diag{grid-template-columns:auto 1fr;gap:4px 12px;font-size:.9rem;display:grid}.diag dt{color:var(--muted)}.diag dd{margin:0}.muted{color:var(--muted)}.grow{flex:1}.top{align-items:center;gap:8px;margin-bottom:8px;display:flex}.top h1{text-align:center;flex:1;margin:0}.progress{margin:4px 0 12px}.check{align-items:center;gap:8px;min-height:40px;margin:8px 0;display:flex}.check input{width:22px;height:22px}.message.error{background:#c6282814;border-color:#c62828}.message.warn{background:#e6a1001f;border-color:#e6a100}.meters{margin:0;padding:0;list-style:none}.meters button{text-align:left;border:none;border-bottom:1px solid var(--line);border-radius:0;gap:10px;width:100%;padding:10px 4px}.meters button.done{opacity:.55}.meter-id{font-variant-numeric:tabular-nums;min-width:4.2em;font-weight:600}main.admin{max-width:1400px;padding:12px 20px}main.admin .top h1{text-align:left}.tabs{gap:4px;display:flex}.tabs button,.segmented button{min-height:36px;padding:6px 14px}.tabs button.active,.segmented button.active{background:var(--brand);border-color:var(--brand);color:#fff}.segmented{border:0;margin:0;padding:0;display:inline-flex}.segmented button{border-radius:0;margin-left:-1px}.segmented button:first-child{border-radius:6px 0 0 6px;margin-left:0}.segmented button:last-child{border-radius:0 6px 6px 0}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin:8px 0;display:flex}.toolbar h2{text-align:center;min-width:9em;margin:0}.toolbar input[type=search]{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:6px;min-width:16em;padding:8px 10px}.toolbar .summary{color:var(--muted);margin-left:auto}.sheet-bar{flex-wrap:wrap;align-items:center;gap:10px;margin:4px 0 8px;font-size:.9rem;display:flex}.sheet-bar button{min-height:36px;padding:6px 12px}.split{align-items:flex-start;gap:16px;display:flex}.split .grid{flex:auto}.grid{border-collapse:collapse;width:100%;font-size:.9rem}.grid th,.grid td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:6px 8px}.grid th{color:var(--muted);background:var(--bg);font-weight:600;position:sticky;top:0}.grid .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.grid tr.has-reading{cursor:pointer}.grid tr.has-reading:hover{background:#0f4c810f}.grid tr.selected{background:#0f4c811f}.grid tr.missing td{color:var(--muted)}.grid tr.inactive td{opacity:.55}.grid tr{cursor:pointer}.grid .warn-cell{color:#b26a00;font-size:.85rem}.grid .cell-ico{vertical-align:-.25em;color:var(--muted);margin-left:4px}.detail{border:1px solid var(--line);border-radius:8px;flex:0 0 420px;max-width:100%;padding:12px 14px;position:sticky;top:8px}.detail .top h2{text-align:left;font-size:1.1rem}.detail img.crop{background:#000;border-radius:6px;width:100%;margin-bottom:6px;display:block}.detail img.photo{object-fit:contain;background:#000;border-radius:6px;width:100%;max-height:45vh;display:block}.detail .field input{padding:8px;font-size:1rem}.two-col{grid-template-columns:1fr 1fr;gap:0 12px;display:grid}.field select{border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:6px;padding:8px;font-size:1rem}.input-row{gap:8px;display:flex}.input-row input{flex:1;min-width:0;font-family:ui-monospace,monospace}.input-row button{min-height:0;padding:6px 10px}.replace{border-top:1px solid var(--line);margin-top:12px;padding-top:8px}.replace h3{margin:4px 0;font-size:1rem}@media (width<=900px){.split{flex-direction:column}.detail{flex:auto;width:100%;position:static}}.meter-card{border:1px solid var(--line);border-radius:8px;padding:10px 12px}.meter-head{justify-content:space-between;align-items:baseline;display:flex}.meter-head .meter-id{font-size:1.3rem}.meter-tenant{margin:2px 0;font-size:1.1rem}.history{border-collapse:collapse;width:100%;margin-top:8px;font-size:.95rem}.history td{border-top:1px solid var(--line);padding:3px 0}.history .num{text-align:right;font-variant-numeric:tabular-nums}.expect{margin:8px 0 0}
