.vehicle-marker{transform:translateY(-50%)}.vehicle-marker .marker-circle{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3);position:relative;padding:4px;text-align:center;font-size:12px;line-height:1;word-break:break-all;background:linear-gradient(145deg,#ffffff4d,#0000001a);box-shadow:inset 0 2px 4px #ffffff4d,inset 0 -2px 4px #0003,0 4px 8px #0003,0 2px 4px #0003;transform:translateZ(0)}.vehicle-marker .marker-circle.selected{box-shadow:inset 0 2px 4px #ffffff4d,inset 0 -2px 4px #0003,0 4px 8px #0003,0 2px 4px #0003,0 0 0 3px #3b82f680}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.vehicle-marker .marker-circle.emergency{animation:pulse 1s ease-in-out infinite}.vehicle-marker .marker-circle.long-text{font-size:10px}.candidate-marker .asset-pin{position:relative}.candidate-marker .asset-circle.candidate{box-shadow:0 0 0 3px #2563eb59}.candidate-marker .candidate-rank{position:absolute;top:-6px;right:-6px;min-width:16px;height:16px;padding:0 3px;border-radius:8px;background:#1d4ed8;color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center;box-shadow:0 0 0 2px #fff}.asset-plate-text,.candidate-rank,.marker-circle{font-family:var(--font-data);font-variant-numeric:tabular-nums}.vehicle-pill{display:inline-flex;align-items:center;justify-content:center;width:4em;height:1.7em;padding:0 6px;border-radius:999px;font-family:var(--font-data);font-weight:700;letter-spacing:.01em;color:#000c;text-shadow:0 1px 2px rgba(255,255,255,.55);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;box-shadow:inset 0 1px 2px #ffffff4d,0 1px 3px #0000002e}.app{width:100%;height:100vh;display:flex;flex-direction:column;overflow:hidden}.main-content{flex:1;overflow:auto;min-height:0}
