:root{color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;--bg: #f7f7f8;--card: #ffffff;--border: #e5e7eb;--text: #111827;--muted: #6b7280;--primary: #e11d48;--primary-hover: #be123c;--success: #16a34a;--danger: #dc2626}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100dvh}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer;border:none;background:var(--primary);color:#fff;padding:12px 16px;border-radius:10px;font-weight:600}button:hover{background:var(--primary-hover)}button.ghost{background:#fff;color:var(--text);border:1px solid var(--border)}button.ghost:hover{background:#f3f4f6}button:disabled{opacity:.5;cursor:not-allowed}.loading{padding:32px;text-align:center;color:var(--muted)}.muted{color:var(--muted)}.label{font-size:11px;color:var(--muted);display:block;margin-bottom:6px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.error-box{background:#fee2e2;color:#991b1b;padding:12px 14px;border-radius:8px;font-size:14px}.info-box{background:#eff6ff;color:#1e40af;padding:12px 14px;border-radius:8px;font-size:14px}.map-full{width:100%;height:100%;min-height:320px}.driver-shell{max-width:540px;margin:0 auto;padding:20px 16px 40px;display:flex;flex-direction:column;gap:16px}.brand{display:flex;align-items:center;gap:12px;padding:4px}.brand-logo{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#e11d48,#be123c);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px}.brand-logo.small{width:36px;height:36px;font-size:18px;border-radius:10px}.brand-title{font-weight:700;font-size:16px}.brand-sub{color:var(--muted);font-size:13px}.link-card,.action-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px}.link-row{background:#f3f4f6;border:1px solid var(--border);border-radius:10px;padding:10px 12px;word-break:break-all;font-size:13px;-webkit-user-select:all;user-select:all}.link-actions{display:flex;gap:8px;flex-wrap:wrap}.link-actions button{flex:1;min-width:100px;padding:10px;font-size:14px}.tiny-link{background:transparent!important;color:var(--muted)!important;font-size:12px!important;padding:2px!important;text-align:left!important;font-weight:500!important;text-decoration:underline}.tiny-link:hover{background:transparent!important;color:var(--text)!important}.action-hint{color:var(--muted);font-size:14px;margin:0;line-height:1.5}.big-primary,.big-stop{width:100%;padding:18px;font-size:17px;font-weight:700;border-radius:12px}.big-stop{background:#0f172a}.big-stop:hover{background:#1e293b}.live-status{display:flex;align-items:center;gap:10px;color:var(--success);font-size:16px}.pulse-dot{display:inline-block;width:10px;height:10px;border-radius:999px;background:var(--success);box-shadow:0 0 0 4px #16a34a33;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 4px #16a34a33}50%{box-shadow:0 0 0 10px #16a34a00}}.ping-info{font-size:13px;color:var(--muted);line-height:1.5}.tiny-hint{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.viewer-shell{min-height:100dvh;display:flex;flex-direction:column}.viewer-hero{padding:16px;background:#fff;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.viewer-header{display:flex;align-items:center;gap:12px}.viewer-title{font-weight:700;font-size:16px}.viewer-status{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:8px}.viewer-status.live{color:var(--success);font-weight:600}.viewer-meta{font-size:12px;color:var(--muted)}.viewer-map{flex:1;min-height:340px;position:relative}.viewer-empty{height:100%;min-height:340px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;gap:8px}.viewer-empty p{margin:4px 0}
