1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
| .vehicle-marker {
| position: relative;
| width: 24px;
| height: 24px;
| border-radius: 50%;
| cursor: pointer;
| transition: transform 0.2s;
| display: flex;
| align-items: center;
| justify-content: center;
|
| &:hover {
| transform: scale(1.4);
| }
|
| &__icon {
| width: 20px;
| height: 20px;
| }
|
| &__charging {
| position: absolute;
| top: -4px;
| right: -4px;
| font-size: 10px;
| line-height: 1;
| }
|
| &--pulse {
| &::before,
| &::after {
| content: '';
| position: absolute;
| top: 50%;
| left: 50%;
| width: 100%;
| height: 100%;
| border-radius: 50%;
| transform: translate(-50%, -50%);
| background: rgba(255, 77, 79, 0.12);
| animation: pulse-ring 1.5s ease-out infinite;
| }
|
| &::after {
| animation-delay: 0.75s;
| }
| }
| }
|
| @keyframes pulse-ring {
| 0% {
| transform: translate(-50%, -50%) scale(1);
| opacity: 1;
| }
| 100% {
| transform: translate(-50%, -50%) scale(2.5);
| opacity: 0;
| }
| }
|
| .vehicle-info-card {
| background: #fff;
| border-radius: 8px;
| box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
| min-width: 200px;
| overflow: hidden;
|
| &__header {
| display: flex;
| align-items: center;
| justify-content: space-between;
| padding: 10px 12px;
| border-bottom: 1px solid #f0f0f0;
| }
|
| &__title {
| font-size: 14px;
| font-weight: 500;
| color: rgba(0, 0, 0, 0.85);
| }
|
| &__close {
| cursor: pointer;
| font-size: 16px;
| color: rgba(0, 0, 0, 0.45);
| line-height: 1;
| width: 20px;
| height: 20px;
| display: flex;
| align-items: center;
| justify-content: center;
| border-radius: 4px;
|
| &:hover {
| color: rgba(0, 0, 0, 0.85);
| background: #f5f5f5;
| }
| }
|
| &__body {
| padding: 12px;
| }
|
| &__row {
| display: flex;
| align-items: center;
| justify-content: space-between;
| padding: 6px 0;
| }
|
| &__label {
| font-size: 13px;
| color: rgba(0, 0, 0, 0.45);
| }
|
| &__value {
| font-size: 13px;
| color: rgba(0, 0, 0, 0.85);
| }
| }
|
|