:root{--b:#0a7cc2;--bd:#0a5cad;--g:#1a8f3c;--r:#b00020;--p:#eef3f8;--line:#d5dee8;--mut:#667}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--p);color:#1a1d21;padding-bottom:84px}
.band{background:#000;height:58px;padding:0 8px;display:flex;align-items:center;gap:8px;position:sticky;top:0;z-index:5}
.band img{height:22px}.htxt{color:#fff;font-weight:700;font-size:15px;flex:1;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ib{background:none;border:0;color:#fff;font-size:22px;padding:6px 8px;line-height:1;min-width:38px}
#hAct{display:flex}.prog{height:4px;background:#cfd9e4}.prog div{height:100%;background:var(--b)}
main{padding:12px;max-width:560px;margin:auto}
.card{background:#fff;border-radius:14px;padding:14px;margin-bottom:12px;border:1px solid var(--line)}
.card h2{font-size:16px;margin:0 0 10px;color:var(--bd);display:flex;align-items:center;gap:8px}
/* floating-label outlined inputs */
.fl{position:relative;margin:12px 0}
.fl input,.fl textarea,.fl select{width:100%;font-size:16px;padding:20px 12px 8px;border:1.5px solid #c3ccd6;border-radius:10px;background:#fff;font-family:inherit;appearance:none}
.fl textarea{min-height:110px;resize:vertical;padding-top:24px}
.fl label{position:absolute;left:8px;top:15px;padding:0 4px;background:#fff;border-radius:4px;color:var(--mut);font-size:16px;pointer-events:none;transition:.15s}
.fl input:focus,.fl textarea:focus,.fl select:focus{outline:0;border-color:var(--b)}
.fl input:focus+label,.fl input:not(:placeholder-shown)+label,.fl textarea:focus+label,.fl textarea:not(:placeholder-shown)+label,.fl select+label{top:5px;font-size:11.5px;color:var(--bd)}
.fl .cnt{position:absolute;right:12px;bottom:8px;font-size:11.5px;color:var(--mut)}.fl .cnt.full{color:var(--r)}
.fl.sel:after{content:'▾';position:absolute;right:14px;top:17px;color:var(--mut)}
.fl .ico{position:absolute;right:8px;top:9px;background:#eef3f8;border:0;border-radius:8px;padding:6px 9px;font-size:16px}
.fl.err input,.fl.err textarea,.fl.err select{border-color:var(--r);background:#fff5f6}
.req{color:var(--r)}
/* radios */
.rq{margin:12px 0 4px}.rq>b{display:block;font-size:14.5px;margin-bottom:6px}
.rg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.rg label{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1.5px solid var(--line);border-radius:10px;font-size:15px;cursor:pointer;background:#fff}
.rg input{width:19px;height:19px;accent-color:var(--b);margin:0}
.rg label.on{border-color:var(--b);background:#eaf4fb}
.rg label.on.good{border-color:var(--g);background:#e9f6ee}.rg label.on.good input{accent-color:var(--g)}
.rg label.on.bad{border-color:var(--r);background:#fdeef0}.rg label.on.bad input{accent-color:var(--r)}
.rg.many{grid-template-columns:repeat(2,1fr)}
.rq.err .rg label{border-color:var(--r)}
.dis{opacity:.42;pointer-events:none}
.chk{margin-left:auto;width:24px;height:24px;accent-color:var(--b)}
.info{display:inline-flex;width:18px;height:18px;border-radius:50%;background:#8a97a6;color:#fff;font-size:12px;align-items:center;justify-content:center;font-weight:700}
.btn{font-size:16px;padding:13px;border-radius:11px;font-weight:700;border:1.5px solid var(--b);background:#fff;color:var(--b);font-family:inherit}
.btn.f{background:var(--b);color:#fff}.btn.w{width:100%}
.bar{position:fixed;left:0;right:0;bottom:0;background:#fff;padding:10px 12px;display:flex;gap:10px;border-top:1px solid var(--line)}.bar .btn{flex:1}
canvas{width:100%;height:160px;border:1.5px dashed #9aa7b4;border-radius:10px;background:#fff;touch-action:none;display:block;margin-bottom:6px}
.msg{color:var(--r);font-size:14.5px;white-space:pre-line;margin:6px 0}
.hint{font-size:13px;color:var(--mut)}
/* lists */
.search{position:relative;margin-bottom:12px}.search input{width:100%;font-size:16px;padding:13px 40px 13px 14px;border-radius:12px;border:1.5px solid var(--line)}.search span{position:absolute;right:14px;top:12px;color:var(--mut)}
.grp{background:#fff;border-radius:14px;border:1px solid var(--line);margin-bottom:12px;overflow:hidden}
.grp h3{margin:0;padding:12px 14px;background:#e3f0fa;color:var(--bd);font-size:15.5px}
.ri{display:flex;align-items:center;padding:13px 14px;border-top:1px solid #edf1f5;font-size:15px;gap:8px;cursor:pointer}
.ri .nm{flex:1}.soon{font-size:11px;color:var(--mut);background:#f0f3f6;border-radius:6px;padding:2px 6px;white-space:nowrap}
.star{background:none;border:0;font-size:22px;color:#c5ccd4;padding:0 2px}.star.on{color:#f2b01e}
.ri.off .nm{color:#8b95a1}
.job{display:block;background:#fff;border-radius:14px;border:1px solid var(--line);padding:13px 14px;margin-bottom:10px;cursor:pointer}
.job .t{display:flex;justify-content:space-between;font-weight:700}.job .s{color:var(--mut);font-size:14px;margin-top:3px}
.pill{font-size:12px;border-radius:20px;padding:3px 10px;font-weight:700;background:#e3f0fa;color:var(--bd)}.pill.done{background:#e5f4ea;color:var(--g)}
.li{display:flex;gap:12px;align-items:flex-start;padding:7px 0;font-size:15.5px}.li i{font-style:normal;width:22px;text-align:center;color:var(--mut)}
.li a{color:var(--b);text-decoration:none;font-weight:600}
.chip{background:#000;color:#fff;border-radius:20px;padding:4px 12px;font-size:14px}.chip:before{content:'● ';color:#4fb3ef}
.ok{color:var(--g);font-weight:700}
.rv{border-bottom:1px solid #edf1f5;padding:8px 0;font-size:14.5px}.rv i{color:var(--mut);font-style:normal;font-size:13px;display:block}
/* textareas: label sits above the box so it never overlaps text */
.fl textarea{padding-top:10px!important;overflow:hidden}
.fl textarea+label{position:static;display:block;order:-1;background:none;padding:0 2px 4px;font-size:13px;color:var(--bd)}
.fl:has(textarea){display:flex;flex-direction:column}
.ck{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1.5px solid var(--line);border-radius:10px;margin:10px 0;font-size:14.5px}
.ck input{width:22px;height:22px;flex:none;accent-color:var(--r);margin-top:1px}.ck.err{border-color:var(--r)}

/* long labels sit above the box instead of floating inside it */
.fl.long{display:flex;flex-direction:column}
.fl.long label{position:static;order:-1;background:none;padding:0 2px 4px;font-size:13px;color:var(--bd);line-height:1.3}
.fl.long input,.fl.long select{padding:12px}.fl.long.sel:after{top:auto;bottom:13px}
.rq.long>b{line-height:1.3}
.sub{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:10px 0;background:#fafcfe}
.subh{font-weight:700;color:var(--bd);display:flex;align-items:center;justify-content:space-between;font-size:14.5px}
.ib.dk{color:var(--r);font-size:18px}
.ck.gate{background:#eaf4fb;border-color:var(--b)}.ck.gate input{accent-color:var(--b)}

.mbtn{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mbtn .btn{text-align:center;text-decoration:none}.mbtn .btn.wa{border-color:#1a8f3c;color:#1a8f3c}
.sub small{color:var(--mut);font-weight:400}#msgCard .rg label{flex-direction:column;align-items:flex-start;gap:2px}#msgCard [data-eta]{align-items:center!important}

.testp{background:#fff4e0!important;color:#b06a00!important}.okmsg{color:var(--g);font-weight:700;font-size:14px;margin:6px 0 2px;min-height:1em}
a.alt{display:inline-block;font-size:13px;color:var(--mut);margin:2px 0 6px}
/* live layer */
#sync{font-size:12px;font-weight:700;padding:3px 8px;border-radius:20px;margin-left:auto;white-space:nowrap}#sync.ok{color:#7fd69a}#sync.w{color:#ffd27a}#sync.off{background:#b00020;color:#fff}#sync:empty{display:none}
#sheet{position:fixed;inset:0;background:#0008;display:none;align-items:flex-end;justify-content:center;z-index:50}#sheet .sh{background:#fff;width:100%;max-width:640px;max-height:88vh;overflow:auto;border-radius:18px 18px 0 0;padding:18px 16px 28px;position:relative}
#sheet .x{position:absolute;right:10px;top:10px}#sheet h2{margin:0 40px 12px 0;font-size:18px}
.out{background:#eef6fc;border-radius:12px;padding:12px;margin:10px 0;line-height:1.6;font-size:15px}.out small{color:#667}
.thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.thumbs figure{margin:0}.thumbs img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}.thumbs figcaption{font-size:11px;color:#667}
#toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:#000;color:#fff;padding:10px 16px;border-radius:12px;opacity:0;transition:.2s;z-index:60;pointer-events:none}#toast.on{opacity:1}
.pill.sup{background:#eee;color:#667}.job.drafts{border-left:4px solid #e08a00}.hint.rev{background:#fff4e0;padding:8px 10px;border-radius:10px;color:#8a5600}
#camB small{font-size:10px;background:#0a7cc2;border-radius:10px;padding:0 5px;margin-left:2px}
canvas#sigMe{width:100%;height:150px;border:1.5px dashed #b8c6d4;border-radius:12px;touch-action:none;display:block;margin:8px 0}
a.li{color:inherit;text-decoration:none;cursor:pointer}
