:root{color-scheme:dark;--bg:#070c0e;--card:#10191c;--panel:#172225;--cyan:#00cdeb;--green:#5bd719;--red:#dc3737;--white:#f0f4f4;--muted:#9ea9ab;--line:#344346;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Tahoma,Arial,sans-serif}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:var(--bg);color:var(--white);min-height:100dvh}button,input,select,textarea{font:inherit}button,a,select{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}a{color:var(--cyan)}.app-shell{max-width:620px;margin:auto;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 12px) 12px calc(env(safe-area-inset-bottom) + 22px)}.topbar{display:flex;align-items:center;gap:10px;direction:ltr;min-height:66px;padding:3px 5px}.brand{flex:1;text-align:center;direction:rtl}.brand strong{display:block;font-size:23px;color:var(--cyan);letter-spacing:1.4px;direction:ltr}.brand span{display:block;font-size:12px;margin-top:1px}.menu-btn{height:52px;width:58px;flex:none;font-size:26px;color:var(--cyan)}.status{color:var(--green);font-size:12px;padding:0 6px 7px;min-height:25px}.card{background:var(--card);border:1px solid var(--line);border-radius:11px;padding:14px;margin:8px 0}.section-title{font-weight:700;color:var(--cyan);font-size:16px;display:flex;gap:8px;align-items:center;margin:0 0 12px}.section-title .ico{font-size:21px}.tile,.subcard{background:var(--panel);border:1px solid var(--line);border-radius:10px}.tile{text-align:center;padding:14px 8px}.tile small,.label,.muted{color:var(--muted)}.tile small{display:block;font-size:12px;margin-bottom:9px}.big-number{font-size:31px;font-weight:700}.unit{color:var(--cyan);font-size:14px}.telemetry{display:grid;grid-template-columns:1fr 1fr;gap:8px}.temperature{grid-row:span 2;min-height:216px;display:flex;align-items:center;justify-content:center;flex-direction:column}.gauge{width:116px;height:116px;margin:10px 0 5px;border-radius:50%;border:9px solid var(--line);border-top-color:var(--cyan);border-left-color:var(--cyan);display:flex;align-items:center;justify-content:center;flex-direction:column}.gauge .big-number{font-size:25px}.moisture{min-height:104px}.meter{height:9px;background:var(--line);border-radius:9px;overflow:hidden;margin:10px 4px 0}.meter span{display:block;background:var(--green);height:100%;width:0}.wide-row{display:flex;gap:8px;align-items:center;justify-content:space-between;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:11px;margin-top:9px}.report-label{color:var(--cyan);font-size:12px}.report-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:7px}.report-box{border:1px solid var(--line);background:var(--panel);border-radius:6px;min-height:59px;padding:7px 3px;text-align:center;font-size:12px}.report-box small{color:var(--muted);display:block;font-size:10px;margin-bottom:4px}.relay-heading{color:var(--cyan);font-size:13px;font-weight:700;margin-top:16px}.relay-heading:first-of-type{margin-top:0}.on{color:var(--green)}.off{color:var(--muted)}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}.btn{appearance:none;border:1px solid var(--line);background:var(--panel);border-radius:8px;color:var(--white);font-weight:600;min-height:49px;padding:9px 12px;text-align:center;text-decoration:none;display:inline-flex;justify-content:center;align-items:center;gap:6px}.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.btn.cyan{border-color:var(--cyan)}.btn.green{border-color:var(--green)}.btn.red{background:#381a1d;border-color:var(--red)}.btn.full{width:100%;margin-top:8px}.btn.soft{font-size:13px;min-height:44px}.hint{font-size:12px;color:var(--muted);line-height:1.8;margin:7px 1px}.warning{border:1px solid #7d5b2e;background:#2b261b;border-radius:9px;padding:11px;color:#e8d6af;line-height:1.9;font-size:13px}.field{display:block;margin:13px 1px}.field>span{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}.input{display:block;width:100%;min-height:50px;padding:11px 12px;border:1px solid var(--line);background:var(--panel);border-radius:8px;color:var(--white);outline:none}.input[dir=ltr]{text-align:left}.input::placeholder{color:#778589}textarea.input{resize:vertical;min-height:112px}.wheels{display:grid;grid-template-columns:1fr 1fr;gap:9px}.wheel{background:var(--panel);border:1px solid var(--line);padding:13px;border-radius:9px;text-align:center}.wheel label{display:block;color:var(--cyan);font-size:12px}.wheel select{appearance:none;text-align:center;text-align-last:center;background:#f7f9f9;color:#0e1e23;font-size:35px;font-weight:700;width:100%;height:100px;border-radius:8px;margin:9px 0}.wheel small{color:var(--muted)}.history-entry{padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:8px;margin:8px 0;overflow-wrap:anywhere}.history-entry small{color:var(--muted)}.history-entry pre{white-space:pre-wrap;font:13px/1.7 ui-monospace,SFMono-Regular,monospace;margin:6px 0 0;direction:ltr;text-align:left}.menu-overlay,.dialog-backdrop{position:fixed;inset:0;z-index:5;background:#000a;display:flex;align-items:flex-start;justify-content:center;padding:calc(env(safe-area-inset-top) + 74px) 12px env(safe-area-inset-bottom);overflow:auto}.menu-panel,.dialog{background:var(--card);border:1px solid var(--cyan);border-radius:16px;width:min(100%,580px);padding:13px;box-shadow:0 18px 65px #000c}.menu-heading{display:flex;align-items:center;justify-content:space-between;padding:4px 3px 12px}.menu-heading strong{color:var(--cyan);font-size:17px}.menu-heading small{display:block;color:var(--muted);margin-top:3px}.menu-item{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;gap:10px;padding:10px;margin:7px 0;color:var(--white);text-align:right}.menu-item .glyph{font-size:24px;width:35px;text-align:center;color:var(--cyan)}.menu-item span:nth-child(2){flex:1}.menu-item strong{display:block;font-size:14px}.menu-item small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.menu-item:last-child{color:#ff9292;background:#381a1d;border-color:var(--red)}.menu-item:last-child .glyph{color:#ff9292}.dialog-backdrop{align-items:center;padding-top:20px}.dialog{max-height:calc(100dvh - 40px);overflow:auto;padding:19px}.dialog h2{margin:0 0 12px;color:var(--cyan);font-size:19px}.code{direction:ltr;text-align:center;background:#071114;border:1px solid var(--line);border-radius:8px;color:var(--green);font:700 17px/1.5 ui-monospace,SFMono-Regular,monospace;padding:14px 7px;overflow-wrap:anywhere;user-select:all}.step{margin:10px 0;padding-right:8px;border-right:2px solid var(--cyan);font-size:13px;line-height:1.8}.login{max-width:420px;margin:clamp(40px,12vh,130px) auto 0;padding:16px}.login-logo{display:block;margin:auto;width:84px;height:84px}.login h1{color:var(--cyan);text-align:center;margin:12px 0 1px}.login .sub{text-align:center;color:var(--muted);margin-bottom:30px}.login .hint{text-align:center}.empty{padding:14px;text-align:center;color:var(--muted)}#toast{position:fixed;z-index:15;bottom:calc(env(safe-area-inset-bottom) + 22px);right:18px;left:18px;max-width:540px;margin:auto;background:#19383b;border:1px solid var(--cyan);border-radius:10px;padding:12px;color:var(--white);text-align:center;opacity:0;transform:translateY(15px);pointer-events:none;transition:opacity .2s,transform .2s}#toast.show{opacity:1;transform:none}@media(min-width:650px){.app-shell{border-left:1px solid var(--line);border-right:1px solid var(--line)}}
