:root{
  --night:#0E1116; --card:#171B22; --card2:#1E232B; --line:#2A303A; --text:#EEF0F4; --mute:#9AA3B2;
  --accent:#FF5A36; --mint:#2FD6A0; --sky:#4CC9F0; --red:#E5322D;
  --safe-b:env(safe-area-inset-bottom,0px); --safe-t:env(safe-area-inset-top,0px);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--night);color:var(--text)}
body{font:17px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;min-height:100vh;overscroll-behavior:none}
body.locked{overflow:hidden}
h1,h2,h3{margin:0;line-height:1.2}
h1{font-size:1.6rem}h2{font-size:1.15rem}
p{margin:0 0 .8rem}
a{color:inherit}
.boot{padding:3rem 1.5rem;text-align:center;color:var(--mute)}
:focus-visible{outline:3px solid var(--sky);outline-offset:3px}
.mute{color:var(--mute)}.small{font-size:.9rem}

#app{max-width:480px;margin:0 auto;min-height:100vh;padding:calc(var(--safe-t) + .5rem) 1rem calc(5.5rem + var(--safe-b))}
.top{display:flex;align-items:center;justify-content:space-between;padding:.6rem 0 1rem}
.logo{display:flex;align-items:center;gap:.5rem;font-weight:800;font-size:1.2rem}
.logo svg{width:26px;height:26px}
.hi{color:var(--mute);font-size:.95rem}

/* buttons */
.btn{display:block;width:100%;text-align:center;text-decoration:none;font:800 1rem system-ui,sans-serif;color:var(--night);background:var(--text);border:2px solid transparent;border-radius:999px;padding:.85rem 1.2rem;cursor:pointer}
.btn.accent{background:var(--accent)}
.btn.danger{background:var(--red);color:#fff}
.btn.ghost{background:transparent;color:var(--text);border-color:var(--line)}
.btn.small{display:inline-block;width:auto;padding:.45rem 1rem;font-size:.9rem}
.btn.huge{padding:1.15rem 1.2rem;font-size:1.2rem}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.stack{display:flex;flex-direction:column;gap:.7rem}
.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}

/* cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:1rem 1.1rem;margin-bottom:.9rem}
.card h2{margin-bottom:.5rem}
.card.warn{border-color:#6B4A20;background:#211B12}

/* SOS */
.sos-wrap{display:grid;place-items:center;padding:.6rem 0 1.4rem}
.sos{position:relative;width:236px;height:236px;border-radius:50%;border:0;background:var(--accent);color:var(--night);cursor:pointer;display:grid;place-content:center;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none;box-shadow:0 0 0 10px rgba(255,90,54,.14)}
.sos:active{transform:scale(.985)}
.sos-t{font:800 3.4rem/1 system-ui,sans-serif;letter-spacing:.02em}
.sos-s{font-weight:700;font-size:.95rem;opacity:.8;margin-top:.3rem}
.sos svg{position:absolute;inset:-6px;width:calc(100% + 12px);height:calc(100% + 12px);transform:rotate(-90deg);pointer-events:none}
.sos .track{fill:none;stroke:rgba(14,17,22,.15);stroke-width:6}
.sos .prog{fill:none;stroke:#fff;stroke-width:6;stroke-linecap:round;stroke-dasharray:691;stroke-dashoffset:691}
.sos.holding .prog{animation:fill 1.5s linear forwards}
@keyframes fill{to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:no-preference){.sos{animation:pulse 3s ease-in-out infinite}.sos.holding{animation:none}}
@keyframes pulse{50%{box-shadow:0 0 0 18px rgba(255,90,54,.06)}}

/* devices */
.chips{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.9rem}
.chip{display:flex;align-items:center;gap:.45rem;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:.4rem .85rem;font-weight:700;font-size:.9rem;color:var(--text);cursor:pointer}
.dot{width:10px;height:10px;border-radius:50%;background:#555C68}
.dot.on{background:var(--mint)}
.dev{display:flex;align-items:center;gap:.9rem}
.dev .ico{flex:none;width:46px;height:46px;border-radius:14px;background:var(--card2);display:grid;place-items:center}
.dev .ico svg{width:28px;height:28px}
.dev .meta{flex:1;min-width:0}
.dev .meta b{display:block}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:.6rem 0}
.stat{background:var(--card2);border-radius:16px;padding:.7rem .9rem}
.stat .v{font:800 1.7rem/1.1 system-ui,sans-serif}
.stat .k{color:var(--mute);font-size:.82rem}
.spark{width:100%;height:56px;display:block}
.spark polyline{fill:none;stroke:var(--mint);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}

/* forms + lists */
label{display:block;font-weight:700;margin-bottom:.8rem;font-size:.95rem}
input[type=text],input[type=tel],select{display:block;width:100%;margin-top:.3rem;padding:.8rem .9rem;font:inherit;font-weight:500;color:var(--text);background:var(--card2);border:2px solid var(--line);border-radius:14px}
input:focus,select:focus{border-color:var(--sky);outline:none}
.err{color:#FF8A80;font-weight:600;margin:.2rem 0 .8rem}
.item{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.7rem 0;border-bottom:1px solid var(--line)}
.item:last-child{border-bottom:0}
.item b{display:block}
.switch{display:flex;align-items:center;justify-content:space-between;gap:1rem;font-weight:700;margin-bottom:.9rem}
.switch input{width:1.4rem;height:1.4rem;accent-color:var(--mint)}
.welcome{padding-top:2rem}
.welcome h1{margin:1.2rem 0 .5rem}

/* tab bar */
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:5;background:rgba(23,27,34,.96);border-top:1px solid var(--line);display:flex;justify-content:center;padding-bottom:var(--safe-b)}
.tabs nav{display:flex;width:100%;max-width:480px}
.tabs button{flex:1;background:none;border:0;color:var(--mute);padding:.6rem 0 .5rem;font:700 .74rem system-ui,sans-serif;display:flex;flex-direction:column;align-items:center;gap:.2rem;cursor:pointer}
.tabs button svg{width:24px;height:24px}
.tabs button[aria-current="page"]{color:var(--accent)}

/* SOS overlay */
#overlay{display:none}
#overlay.on{display:block;position:fixed;inset:0;z-index:50;overflow:auto;background:#0E1116}
.sos-screen{max-width:480px;margin:0 auto;min-height:100%;padding:calc(var(--safe-t) + 1.5rem) 1.2rem calc(1.5rem + var(--safe-b));display:flex;flex-direction:column;gap:.9rem}
.sos-screen.red{background:#7A1512;max-width:none}
.sos-screen.red>*{width:100%;max-width:440px;margin-left:auto;margin-right:auto}
.sos-screen h1{font-size:1.8rem}
.kicker{font-weight:800;letter-spacing:.04em;color:#FFC9C4;margin:0}
.count{font:800 8rem/1 system-ui,sans-serif;text-align:center;margin:.6rem 0}
.btn.light{background:#fff;color:#7A1512}
.status{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:.8rem 1rem}
.status div{display:flex;gap:.6rem;align-items:baseline}
.status .lbl{color:var(--mute);min-width:5.5rem;font-size:.9rem}

#toast{position:fixed;left:50%;bottom:calc(5.6rem + var(--safe-b));transform:translateX(-50%);background:var(--text);color:var(--night);padding:.65rem 1.1rem;border-radius:999px;font-weight:700;opacity:0;pointer-events:none;transition:opacity .2s;max-width:90vw;z-index:60;text-align:center}
#toast.show{opacity:1}
@media(prefers-reduced-motion:reduce){#toast{transition:none}}

.sr{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ico.necklace{color:var(--accent)}
.ico.bracelet{color:var(--mint)}
.ico.ring{color:var(--sky)}
main{display:block}

