*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:#02070c;color:#eef7ff;font-family:system-ui,-apple-system,"Segoe UI",Arial}button{font:inherit;color:inherit;border:0;cursor:pointer}main{max-width:430px;min-height:100vh;margin:auto;padding:22px 18px calc(96px + env(safe-area-inset-bottom));background:radial-gradient(circle at 50% 35%,#102231 0,#030a10 55%)}header{display:flex;justify-content:space-between;align-items:center;font-size:29px}header span{color:#ff3038}header button{font-size:25px;background:none}.ready{margin:25px 0;padding:17px;border:1px solid #087b6d;border-radius:18px;background:#06222a;display:flex;flex-direction:column}.ready strong{color:#19ef9d;font-size:21px}.ready small{opacity:.75;margin-top:4px}.alarm{background:#351014;border-color:#c82931}.alarm strong{color:#ff454d}.sos-wrap{position:relative;width:300px;height:300px;margin:30px auto 22px;display:grid;place-items:center}.hold-ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);overflow:visible}.ring-bg,.ring-progress{fill:none;stroke-width:7}.ring-bg{stroke:#401117}.ring-progress{stroke:#ff4650;stroke-linecap:round;stroke-dasharray:861;stroke-dashoffset:861;filter:drop-shadow(0 0 7px #ff2733)}.sos{width:258px;height:258px;border-radius:50%;background:radial-gradient(circle,#ff4b4b,#d40710 65%,#5b0004);box-shadow:0 0 0 8px #6d1116,0 0 45px #f21d28;font-size:58px;font-weight:800;touch-action:none;transition:transform .15s,filter .2s}.sos.holding{animation:sosPulse 1s ease-in-out infinite;filter:brightness(1.15)}@keyframes sosPulse{50%{transform:scale(1.035);box-shadow:0 0 0 10px #8e151c,0 0 75px #ff2631}}.sos small{display:block;font-size:16px;font-weight:400}.status{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:26px}.status button,.cards p,.info-card{background:#071722;border:1px solid #17384b;border-radius:15px;padding:16px;text-align:center}.status button{min-height:92px}.status b{font-size:12px}.status small{display:block;color:#7fa2b9;font-size:10px;margin-top:5px}.stealth,.stop{width:100%;padding:17px;border-radius:16px;margin-top:16px;font-weight:800}.stealth{background:#111b22}.stop{background:#ed2029}.timer{text-align:center;font-size:24px;color:#ff4048;margin:30px}.wave{text-align:center;color:#ff2932;font-size:30px;letter-spacing:3px;overflow:hidden}.cards p{text-align:left}.black{position:fixed;inset:0;background:#000;touch-action:manipulation;user-select:none;-webkit-user-select:none}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}footer{position:fixed;z-index:10;bottom:0;left:50%;transform:translateX(-50%);width:min(430px,100%);padding:10px 8px calc(10px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,1fr);background:#02080df2;border-top:1px solid #17303d;backdrop-filter:blur(14px)}footer button{background:none;color:#7293a9;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:20px}footer button small{font-size:9px}footer button.on{color:#eef7ff}.page{padding-top:24px}.page h1{font-size:28px;margin:2px 0 18px}.page-title small{font-size:10px;letter-spacing:2px;color:#7695a9}.info-card{text-align:left;line-height:1.45}.info-card p{color:#86a2b5}.empty-records{padding:55px 15px;text-align:center;color:#8aa5b8}.empty-records small{display:block;margin-top:8px;color:#5f7d91}.record-card{background:#071722;border:1px solid #17384b;border-radius:18px;padding:15px;margin:12px 0}.record-head b,.record-head small{display:block}.record-head small{margin-top:6px;color:#82a2b7;font-size:11px}.record-card audio{width:100%;margin:14px 0 8px}.record-meta{font-size:11px;color:#83a2b6}.record-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;margin-top:12px}.record-actions button{background:#102635;border:1px solid #1e4053;border-radius:10px;padding:10px 5px;font-size:11px}.record-actions .danger{background:#351419;border-color:#69242b;color:#ff9da3}@media(max-width:350px){.sos-wrap{width:270px;height:270px}.sos{width:232px;height:232px}.status{gap:6px}.status button{padding:10px 5px}.record-actions{grid-template-columns:1fr}}
/* v3 interaction fixes */
button,.sos,.sos *,.stealth,.status button,footer button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.sos{touch-action:none;-webkit-tap-highlight-color:transparent;outline:none}
.sos:active{transform:scale(.985)}
.install-app{width:100%;padding:15px;border-radius:16px;margin-top:16px;font-weight:800;background:#0b342d;border:1px solid #0b806c;color:#35efb0}
.toast{position:fixed;left:50%;bottom:105px;transform:translate(-50%,18px);width:min(380px,calc(100% - 36px));padding:12px 16px;border-radius:13px;background:#10212c;border:1px solid #24485d;color:#eef7ff;text-align:center;opacity:0;pointer-events:none;transition:.2s;z-index:30;box-shadow:0 12px 35px #0008}.toast.show{opacity:1;transform:translate(-50%,0)}
.black{z-index:9999;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none}
/* v4 interaction hardening */
.sos-wrap,.sos,.sos b,.sos small{-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important}
.hold-ring{pointer-events:none!important}
.sos{position:relative;z-index:2;touch-action:none!important}
.sos.holding{animation:sosPulse .75s ease-in-out infinite!important}
.install-app{width:100%;padding:15px;border-radius:16px;margin-top:14px;background:#0b2a34;border:1px solid #1e5667;font-weight:800}
.install-help{margin:10px 0 0;text-align:center;color:#7191a5;font-size:11px}

/* SafeLink v4.1 visual refresh */
main{background:radial-gradient(circle at 50% 45%,#10111b 0,#030910 48%,#010508 100%)}
.ready{margin:24px 0 18px;background:linear-gradient(90deg,#04221d,#061722);border-color:#087e62}.ready strong{font-size:22px}.top-status{margin:0 0 8px}.top-status button{background:linear-gradient(180deg,#071a25,#06121c);border-color:#244052;box-shadow:inset 0 0 24px #07131b}.top-status b{font-size:13px}.top-status small{font-size:11px}.sos-stage{position:relative;min-height:360px;margin:4px -18px 0;display:grid;place-items:center;overflow:hidden}.sos-stage .sos-wrap{margin:22px auto;z-index:2}.signal-waves{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;filter:drop-shadow(0 0 10px #ff172b)}.wave-line{position:absolute;left:-22%;width:144%;height:115px;border:2px solid transparent;border-top-color:#ff263a;border-radius:50%;opacity:.58;transform-origin:center;will-change:transform,opacity,filter}.w1{top:35%;animation:waveDrift1 6.5s ease-in-out infinite}.w2{top:42%;opacity:.4;animation:waveDrift2 8s ease-in-out infinite reverse}.w3{top:50%;opacity:.28;animation:waveDrift1 10s ease-in-out infinite reverse}.w4{top:28%;opacity:.22;animation:waveDrift2 11s ease-in-out infinite}.idle-wave{opacity:.82}.sos-stage:has(.sos.holding) .signal-waves{filter:drop-shadow(0 0 18px #ff1930) brightness(1.35)}.sos-stage:has(.sos.holding) .wave-line{animation-duration:2.4s}.sos-stage:has(.sos.holding) .w2{animation-duration:2s}.sos-stage:has(.sos.holding) .w3{animation-duration:2.8s}.active-signal{position:relative;min-height:210px;margin:6px -18px 12px;display:grid;place-items:center;overflow:hidden}.active-signal .signal-waves{filter:drop-shadow(0 0 18px #ff1d30) brightness(1.35)}.alarm-wave .wave-line{opacity:.72;animation-duration:2.8s}.alarm-wave .w2{animation-duration:3.4s}.alarm-wave .w3{animation-duration:4s}.active-core{position:relative;z-index:2;text-align:center}.active-core .timer{margin:0 0 12px;font-size:20px}.active-sos-mark{width:118px;height:118px;border-radius:50%;display:grid;place-items:center;margin:auto;background:radial-gradient(circle,#b30b18,#43030a);border:2px solid #ff3447;box-shadow:0 0 35px #e9102c;font-size:32px;font-weight:900;animation:activePulse 1.25s ease-in-out infinite}.stealth{background:#101b23;border:1px solid #223744}.stop{box-shadow:0 0 20px #c4122638}.install-app{margin-top:4px}@keyframes waveDrift1{0%,100%{transform:translateX(-5%) translateY(10px) scaleY(.78) rotate(-2deg);opacity:.28}50%{transform:translateX(5%) translateY(-18px) scaleY(1.18) rotate(2deg);opacity:.72}}@keyframes waveDrift2{0%,100%{transform:translateX(6%) translateY(-14px) scaleY(1.12) rotate(2deg);opacity:.25}50%{transform:translateX(-6%) translateY(16px) scaleY(.72) rotate(-2deg);opacity:.65}}@keyframes activePulse{50%{transform:scale(1.045);box-shadow:0 0 58px #ff1737}}@media(prefers-reduced-motion:reduce){.wave-line,.active-sos-mark{animation:none!important}.signal-waves{opacity:.55}}

/* SafeLink v4.2 live diagnostics */
.ready.system-ok{background:linear-gradient(90deg,#05281f,#061d19);border-color:#18c98d;box-shadow:inset 0 0 24px #0f6b4430}.ready.system-ok strong{color:#2af2a9}.ready.system-bad{background:linear-gradient(90deg,#2b0a10,#160910);border-color:#e23143;box-shadow:inset 0 0 24px #a4112635}.ready.system-bad strong{color:#ff5260}.diag{position:relative;overflow:hidden;transition:border-color .25s,box-shadow .25s,background .25s}.diag.ok{border-color:#19b77d!important;background:linear-gradient(180deg,#08251f,#061914)!important;box-shadow:inset 0 0 20px #16c98718,0 0 12px #18c98a20!important}.diag.bad{border-color:#d52e40!important;background:linear-gradient(180deg,#2a0d14,#17080d)!important;box-shadow:inset 0 0 20px #d9293b20,0 0 12px #e52e4020!important}.diag.ok small{color:#41e6ad}.diag.bad small{color:#ff6874}.diag-icon{display:block;font-size:20px;line-height:1.1;margin-bottom:4px}.mic-meter{height:20px;display:flex;align-items:center;justify-content:center;gap:2px;margin-top:7px}.mic-meter i{display:block;width:3px;height:18px;border-radius:3px;background:currentColor;transform:scaleY(.14);transition:transform .07s}.diag.ok .mic-meter{color:#24e5a2}.diag.bad .mic-meter{color:#8e2732}.mini-map{height:27px;margin:6px auto 0;position:relative;border-radius:6px;overflow:hidden;background:linear-gradient(35deg,#0d2027,#0b171d);border:1px solid #29404b}.mini-map .road{position:absolute;display:block;background:#38505a;height:1px;width:140%;left:-20%}.mini-map .r1{top:8px;transform:rotate(15deg)}.mini-map .r2{top:17px;transform:rotate(-19deg)}.mini-map .r3{top:13px;transform:rotate(45deg)}.map-dot{position:absolute;width:7px;height:7px;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);background:#76232d}.mini-map.live .map-dot{background:#25efaa;box-shadow:0 0 0 4px #25efaa25,0 0 10px #25efaa;animation:mapPulse 1.25s ease-out infinite}.net-flow{height:10px;margin-top:8px;display:flex;justify-content:center;gap:4px}.net-flow i{width:5px;height:5px;border-radius:50%;background:#802530}.diag.ok .net-flow i{background:#25eaa7;animation:netDot 1.15s ease-in-out infinite}.diag.ok .net-flow i:nth-child(2){animation-delay:.15s}.diag.ok .net-flow i:nth-child(3){animation-delay:.3s}.diag.ok .net-flow i:nth-child(4){animation-delay:.45s}.install-brand{display:block;width:100%;padding:0;margin:5px 0 0;background:transparent;border-radius:16px;overflow:hidden;-webkit-tap-highlight-color:transparent}.install-brand img{display:block;width:100%;height:auto}.install-brand:active{transform:scale(.985)}@keyframes mapPulse{0%{box-shadow:0 0 0 0 #25efaa75,0 0 9px #25efaa}75%{box-shadow:0 0 0 10px #25efaa00,0 0 12px #25efaa}100%{box-shadow:0 0 0 0 #25efaa00,0 0 9px #25efaa}}@keyframes netDot{0%,100%{transform:translateY(2px);opacity:.35}50%{transform:translateY(-2px);opacity:1}}@media(prefers-reduced-motion:reduce){.mini-map.live .map-dot,.diag.ok .net-flow i{animation:none!important}}
/* SafeLink v4.4 location details */
.geo-details{margin:8px 0 4px;padding:12px 14px;border-radius:14px;border:1px solid #d52e40;background:#19090e;display:grid;gap:4px;transition:.25s}.geo-details.live{border-color:#19b77d;background:#071d18}.geo-details b{font-size:12px}.geo-details span{font-size:12px;line-height:1.35}.geo-details small{font-size:10px;color:#8eabba}.geo-details em{font-style:normal;font-size:8px;color:#5e7b8d}.geo-details.live b{color:#32e8a9}.geo-details.off b{color:#ff6571}
