:root{--bg:#f5f2ed;--surface:#fff;--sunk:#ece7df;--ink:#23282b;--ink2:#5e6467;--line:#dcd5ca;--slate:#3e4548;--accent:#c1622a;--accent-ink:#fff;--good:#3f6b38;--good-bg:#e3eddf;--warn:#8a5e0e;--warn-bg:#f7ebd2;--bad:#a33e2a;--bad-bg:#f6ded7;--radius:10px;--font:"Noto Sans", "Noto Sans Devanagari", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-tap-highlight-color:transparent;margin:0;font-size:17px;line-height:1.4}body{padding-left:max(14px, env(safe-area-inset-left));padding-right:max(14px, env(safe-area-inset-right));padding-bottom:calc(24px + env(safe-area-inset-bottom))}#app{max-width:560px;margin:0 auto}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}h1,h2,h3{margin:0;line-height:1.2}h1{font-size:1.35rem}h2{font-size:1.15rem}h3{font-size:1rem}.stack{flex-direction:column;gap:12px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spread{justify-content:space-between}.muted{color:var(--ink2);font-size:.9rem}.small{font-size:.82rem}.num{font-variant-numeric:tabular-nums}.topbar{z-index:5;background:var(--bg);padding:calc(8px + env(safe-area-inset-top)) 0 8px;border-bottom:1px solid var(--line);align-items:center;gap:8px;margin-bottom:12px;display:flex;position:sticky;top:0}.topbar .title{flex:1;min-width:0}.topbar .title b{text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;display:block;overflow:hidden}.topbar .title span{color:var(--ink2);font-size:.8rem}.iconbtn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:999px;min-width:44px;height:44px;padding:0 12px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:10px;padding:14px;display:flex}.card.tight{gap:6px;padding:10px 12px}.tiles{grid-template-columns:1fr 1fr;gap:10px;display:grid}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);text-align:left;cursor:pointer;flex-direction:column;justify-content:space-between;min-height:112px;padding:14px;display:flex}.tile .ic{background:var(--sunk);width:40px;height:40px;color:var(--slate);border-radius:10px;place-items:center;display:grid}.tile b{font-size:1.05rem}.tile.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.tile.primary .ic{color:#fff;background:#ffffff2e}.btn{border-radius:var(--radius);cursor:pointer;background:var(--slate);color:#fff;border:0;width:100%;min-height:54px;padding:0 18px;font-weight:600}.btn.accent{background:var(--accent)}.btn.ghost{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.btn.danger{background:var(--bad)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.sm{width:auto;min-height:40px;padding:0 14px;font-size:.9rem}.seg{flex-wrap:wrap;gap:6px;display:flex}.seg button{border:1.5px solid var(--line);background:var(--surface);cursor:pointer;border-radius:9px;flex:1;min-width:72px;min-height:48px;padding:4px 8px;font-weight:600}.seg button[aria-pressed=true]{background:var(--slate);border-color:var(--slate);color:#fff}.seg button:disabled{opacity:.4}.cond button{flex-direction:column;align-items:center;gap:2px;display:flex}.cond .dot{border:2px solid;border-radius:50%;width:22px;height:22px}.cond .dry .dot{background:#e9e2d4}.cond .damp .dot{background:#a9a091}.cond .wet .dot{background:#5d564c}.mat{grid-template-columns:1fr;gap:8px;display:grid}.mat .head{align-items:center;gap:10px;display:flex}.mat .sw{border-radius:8px;flex:none;width:34px;height:34px}.sw.cement{background:#9aa1a4}.sw.flyash{background:#cfc8ba}.sw.stonedust{background:#8d8576}.sw.water{background:#6e9fc2}.stepper{grid-template-columns:60px 1fr 60px;align-items:center;gap:8px;display:grid}.stepper button{border:1.5px solid var(--line);background:var(--sunk);cursor:pointer;border-radius:12px;height:60px;font-size:1.8rem;font-weight:700}.stepper input{text-align:center;border:1.5px solid var(--line);background:var(--surface);border-radius:12px;width:100%;min-width:0;height:60px;font-size:1.6rem;font-weight:700}.hint{color:var(--ink2);font-size:.85rem}label.f{color:var(--ink2);flex-direction:column;gap:4px;font-size:.9rem;display:flex}input.t,select.t,textarea.t{border:1.5px solid var(--line);background:var(--surface);min-height:50px;color:var(--ink);border-radius:10px;width:100%;min-width:0;padding:8px 12px;font-size:1.05rem}textarea.t{min-height:70px}.pill{letter-spacing:.02em;border-radius:999px;padding:2px 9px;font-size:.75rem;font-weight:700;display:inline-block}.pill.ok{background:var(--good-bg);color:var(--good)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.pill.stop,.pill.bad{background:var(--bad-bg);color:var(--bad)}.pill.mute{background:var(--sunk);color:var(--ink2)}.flag{border-left:5px solid var(--warn);background:var(--warn-bg);border-radius:9px;padding:10px 12px}.flag.stop{border-left-color:var(--bad);background:var(--bad-bg)}.flag.ok{border-left-color:var(--good);background:var(--good-bg)}.readback{font-size:1.25rem;line-height:1.6}.readback b{font-variant-numeric:tabular-nums}.bigcode{letter-spacing:.03em;text-align:center;font-variant-numeric:tabular-nums;color:var(--slate);word-break:break-all;font-size:2.1rem;font-weight:800}.sync{border:1px solid var(--line);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;height:44px;padding:0 12px;font-size:.82rem;font-weight:600;display:flex}.sync.ok{color:var(--good)}.sync.wait{color:var(--warn)}.sync.bad{color:var(--bad)}.list{flex-direction:column;gap:8px;display:flex}.item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);text-align:left;cursor:pointer;flex-direction:column;gap:4px;width:100%;padding:12px;display:flex}.item.void{opacity:.55;text-decoration:line-through}.banner{background:var(--warn-bg);border-left:5px solid var(--warn);border-radius:9px;padding:10px 12px;font-size:.92rem}.banner.bad{background:var(--bad-bg);border-left-color:var(--bad)}.banner.info{background:var(--sunk);border-left-color:var(--slate)}.keypad{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.keypad button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:12px;height:62px;font-size:1.5rem;font-weight:700}.pindots{justify-content:center;align-items:center;gap:14px;height:30px;display:flex}.pindots i{border:2px solid var(--slate);border-radius:50%;width:16px;height:16px}.pindots i.on{background:var(--slate)}table.kv{border-collapse:collapse;width:100%;font-size:.92rem}table.kv td{border-bottom:1px solid var(--line);vertical-align:top;padding:5px 0}table.kv td:last-child{text-align:right;font-variant-numeric:tabular-nums}.tabs{border-bottom:1px solid var(--line);gap:4px;display:flex;overflow-x:auto}.tabs button{color:var(--ink2);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;min-height:44px;padding:10px 12px;font-weight:600}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}.logo{width:180px;margin:12px auto 4px;display:block}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
