:root{--bg:#0f172a;--card:#fff;--ink:#0f172a;--mut:#64748b;--line:#e2e8f0;--acc:#1f6feb;--ok:#2f9e44;--warn:#e8590c;--bad:#e03131}
*{box-sizing:border-box}html,body{margin:0;height:100%;font:15px/1.35 -apple-system,BlinkMacSystemFont,"Segoe UI",Tahoma,sans-serif;color:var(--ink);background:#f1f5f9}
[dir=rtl] body,[dir=rtl]{font-family:-apple-system,"Geeza Pro","Segoe UI",Tahoma,sans-serif}
header{position:sticky;top:0;z-index:1000;display:flex;justify-content:space-between;align-items:center;padding:10px 14px;padding-top:max(10px,env(safe-area-inset-top));background:var(--bg);color:#fff}
.brand{font-size:17px}.brand .ar{opacity:.8;margin-inline-start:6px}
button{font:inherit;border:0;border-radius:10px;padding:9px 14px;background:var(--acc);color:#fff;cursor:pointer}
button.ghost{background:transparent;color:inherit;border:1px solid currentColor;opacity:.85}button.danger{color:var(--bad)}
.hdr-btns{display:flex;gap:8px}header button{padding:6px 11px}
#map{height:52vh;min-height:300px;background:#dfe7ef}
.tabs{display:flex;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:48px;z-index:900}
.tabs button{flex:1;background:none;color:var(--mut);border-radius:0;border-bottom:3px solid transparent}
.tabs button.on{color:var(--ink);border-bottom-color:var(--acc);font-weight:600}
main{padding:10px;padding-bottom:max(16px,env(safe-area-inset-bottom));max-width:820px;margin:0 auto}
.hidden{display:none!important}
.card{background:var(--card);border-radius:14px;padding:12px 14px;margin:0 0 10px;box-shadow:0 1px 3px #0f172a14}
.person{display:flex;gap:12px;align-items:center;cursor:pointer}
.avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;flex:none}
.pmain{flex:1;min-width:0}.pname{font-weight:600}.pwhere{color:var(--mut);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pmeta{text-align:end;font-size:13px;color:var(--mut)}.batt.low{color:var(--bad);font-weight:700}
.stale .avatar{filter:grayscale(.7);opacity:.7}.badge{display:inline-block;font-size:11px;padding:1px 7px;border-radius:9px;background:#fff4e6;color:var(--warn);margin-inline-start:4px}
.mini{font-size:13px;padding:6px 10px}
.place{display:flex;justify-content:space-between;align-items:center;gap:8px}.place small{color:var(--mut)}
.unset{border:1.5px dashed #f59f00}
.alert{font-size:14px;border-inline-start:4px solid var(--acc)}.alert.sos{border-color:var(--bad)}.alert.night,.alert.silent{border-color:var(--warn)}.alert small{color:var(--mut)}
h4{margin:14px 4px 8px;color:var(--mut);font-size:13px;text-transform:uppercase;letter-spacing:.04em}
label{display:block;font-size:13px;color:var(--mut);margin:6px 0}input{font:inherit;width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:9px;margin-top:3px;color:var(--ink);background:#fff}
input[type=checkbox]{width:auto;margin:0 6px 0 0}.chk{display:inline-flex;align-items:center;margin-inline-end:14px;color:var(--ink);font-size:14px}
.row{display:flex;gap:8px}.row>label{flex:1}.btns{flex-wrap:wrap;margin-top:12px}
fieldset{border:1px solid var(--line);border-radius:10px;margin:8px 0;padding:6px 10px}legend{font-size:13px;color:var(--mut)}
.chips{display:flex;flex-wrap:wrap;gap:6px}.chips label{margin:2px 0}
dialog{border:0;border-radius:16px;padding:16px;width:min(560px,94vw);max-height:90vh}dialog::backdrop{background:#0f172a88}
.pickbar{position:fixed;top:60px;left:50%;transform:translateX(-50%);z-index:1200;background:var(--warn);color:#fff;padding:8px 12px;border-radius:12px;display:flex;gap:10px;align-items:center;box-shadow:0 4px 14px #0004}
.lbl{background:#fff;border-radius:8px;padding:1px 6px;font-weight:600;font-size:12px;border:0;box-shadow:0 1px 3px #0003}
.login{display:grid;place-items:center;min-height:100vh;background:var(--bg)}.login-card{width:min(380px,92vw);padding:22px}.login-card .brand{color:var(--ink);font-size:20px;margin-bottom:10px}
.login-card button{width:100%;margin-top:12px}.err{color:var(--bad);min-height:1em}
.set h5{margin:4px 0 6px;font-size:15px}
