:root{--bg:#0d1524;--card:#111d31;--soft:#17263f;--line:#263a5d;--text:#f5f7fb;--muted:#98a6bd;--accent:#2d7df0;--danger:#f04438;--ok:#22c55e;}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}a{color:inherit;text-decoration:none}.hidden{display:none!important}.topbar{position:sticky;top:0;z-index:10;background:rgba(13,21,36,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding:14px 16px;display:flex;align-items:center;justify-content:space-between}.topbar strong{display:block;font-size:18px}.topbar span{display:block;color:var(--muted);font-size:12px}.topbar a{padding:9px 12px;border:1px solid var(--line);border-radius:12px;color:var(--muted)}.app-shell{max-width:720px;margin:0 auto;padding:16px 14px 40px}.trip-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.trip-header small,.info-grid small,.tracking-card small{display:block;color:var(--muted);font-size:12px}.trip-header h1{margin:3px 0 0;font-size:28px}.status-badge{background:#173b28;color:#7cf5a6;border:1px solid #23643d;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:700}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.info-grid div,.panel,.tracking-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px}.info-grid strong{display:block;margin-top:5px;font-size:14px;line-height:1.25}#map{height:315px;border-radius:20px;border:1px solid var(--line);overflow:hidden;margin:12px 0;background:#09111f}.tracking-card{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.tracking-card strong{display:block;margin-top:4px}button{border:0;border-radius:15px;padding:14px 16px;font-weight:800;color:white;background:var(--soft);font-size:15px}button:disabled{opacity:.6}.primary{background:var(--accent)}.danger{background:var(--danger);width:100%}.secondary{background:var(--soft)}.panel{margin-top:12px}.panel h2{font-size:17px;margin:0 0 12px}.state-buttons{display:grid;grid-template-columns:1fr;gap:9px}.state{background:#15243b;border:1px solid var(--line);text-align:left}.state.finish{background:#143c28;border-color:#23643d}.modal{position:fixed;inset:0;background:rgba(0,0,0,.68);z-index:30;display:flex;align-items:flex-end;justify-content:center;padding:16px}.modal-card{width:100%;max-width:720px;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:18px}.modal-card h2{margin:0 0 12px}select,textarea,input{width:100%;background:#0c1728;color:var(--text);border:1px solid var(--line);border-radius:14px;padding:14px;margin:8px 0 12px;font-size:16px}textarea{min-height:110px;resize:vertical}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.login-body{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:100%;max-width:390px;background:var(--card);border:1px solid var(--line);border-radius:26px;padding:24px;box-shadow:0 20px 80px rgba(0,0,0,.35)}.brand-badge{width:62px;height:62px;border-radius:18px;background:linear-gradient(135deg,#2d7df0,#22c55e);display:grid;place-items:center;font-weight:900;font-size:22px}.login-card h1{margin:16px 0 0}.login-card p{margin:5px 0 18px;color:var(--muted)}.login-card label{font-size:13px;color:var(--muted)}.login-card button{width:100%;background:var(--accent);margin-top:8px}.alert{background:#3a1b1b;color:#ffb4ad;border:1px solid #6e2d2d;padding:12px;border-radius:14px;margin-bottom:14px}@media(min-width:640px){.state-buttons{grid-template-columns:1fr 1fr}}
