:root{--bg:#0d1117;--card:#161b22;--line:#2a313c;--text:#e6edf3;--muted:#8b949e;--accent:#1c69d4;--ok:#3fb950;--warn:#d29922;--bad:#f85149}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font:15px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
.hidden{display:none!important}
.screen{max-width:760px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 12px) 16px calc(env(safe-area-inset-bottom) + 24px)}
header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.brand{display:flex;align-items:center;gap:10px}
.brand h1{font-size:20px;margin:0;letter-spacing:.5px}
.logo{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,#1c69d4,#0a3d91);font-weight:800;font-size:14px}
.icon-btn{background:var(--card);border:1px solid var(--line);color:var(--text);width:40px;height:40px;border-radius:10px;font-size:20px}
.muted{color:var(--muted)}.small{font-size:13px}
.cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px}
.label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.6px}
.value{font-size:18px;font-weight:700;margin-top:4px}
.sub{color:var(--muted);font-size:13px;margin-top:2px}
.ok{color:var(--ok)}.warn{color:var(--warn)}.bad{color:var(--bad)}
#map{height:46vh;min-height:280px;border-radius:12px;border:1px solid var(--line);background:#1b2230}
.trip-summary{color:var(--muted);font-size:13px;margin:8px 2px 4px;min-height:18px}
h2{font-size:16px;margin:20px 0 8px}
.trips{list-style:none;margin:0;padding:0}
.trips li{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center;gap:8px;cursor:pointer}
.trips li.active{border-color:var(--accent)}
.trip-name{font-weight:600}
.trip-meta{color:var(--muted);font-size:13px}
.rename{background:none;border:none;color:var(--muted);font-size:16px;padding:6px}
.btn{width:100%;padding:13px;border-radius:10px;border:1px solid var(--line);font-size:15px;font-weight:600;background:var(--card);color:var(--text)}
.btn.primary{background:var(--accent);border-color:var(--accent)}
.btn.danger{background:#3d1214;border-color:var(--bad);color:#ffb3ae}
.btn.danger.active{background:var(--bad);color:#fff}
.btn.ghost{background:transparent}
.btn.small{width:auto;padding:8px 14px;font-size:13px;margin-top:8px}
.danger-zone{margin-top:24px;text-align:center}
.stolen-banner{background:var(--bad);color:#fff;border-radius:10px;padding:10px 12px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center;gap:8px;animation:pulse 2s infinite}
@keyframes pulse{50%{opacity:.75}}
.login-card{margin-top:18vh;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px}
.login-card input{width:100%;padding:12px;margin:6px 0;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--text);font-size:16px}
.login-card .btn{margin-top:8px}
.error{color:var(--bad);min-height:20px;font-size:14px}
.leaflet-container{font:inherit}
@media (max-width:420px){.value{font-size:16px}}
.nav-box{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:12px}
.nav-btns{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:8px 0 6px}
.nav-btn{display:block;text-align:center;padding:10px 4px;border-radius:9px;background:#1b2230;border:1px solid var(--line);color:var(--text);font:600 13px/1.2 inherit;text-decoration:none;cursor:pointer}
@media (max-width:380px){.nav-btns{grid-template-columns:repeat(2,1fr)}}