@7365admin1/layer-common 4.106.0 → 4.107.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @iservice365/layer-common
2
2
 
3
+ ## 4.107.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 0730ba3: Robot (HERO) screens: text on the app's scale - base 13 -> 14 px, labels/captions at least 12 px (were 7-11 px), tables 12.5 -> 14 px, names/body one step larger; map checkpoint markers grown to fit their numbers; 3D zone labels 12 -> 14 px.
8
+
3
9
  ## 4.106.0
4
10
 
5
11
  ### Minor Changes
@@ -54,7 +54,7 @@
54
54
  --r-menu: 0px;
55
55
 
56
56
  font-family: var(--hero-font);
57
- font-size: 13px;
57
+ font-size: 14px;
58
58
  line-height: 1.45;
59
59
  }
60
60
  /* Page ink and ground on the root only - an overlay keeps its own surface. */
@@ -91,7 +91,7 @@
91
91
  /* ------------------------------------------------------------ text roles */
92
92
 
93
93
  .hero-kicker {
94
- font-size: 10px;
94
+ font-size: 12px;
95
95
  letter-spacing: 0.12em;
96
96
  text-transform: uppercase;
97
97
  white-space: nowrap;
@@ -117,7 +117,7 @@
117
117
  display: inline-flex;
118
118
  align-items: center;
119
119
  gap: 6px;
120
- font-size: 11px;
120
+ font-size: 12px;
121
121
  line-height: 1.45;
122
122
  letter-spacing: 0.04em;
123
123
  text-transform: uppercase;
@@ -132,7 +132,7 @@
132
132
  .hero-tag {
133
133
  display: inline-flex;
134
134
  align-items: center;
135
- font-size: 11px;
135
+ font-size: 12px;
136
136
  line-height: 1.45;
137
137
  letter-spacing: 0.02em;
138
138
  padding: 3px 10px;
@@ -158,7 +158,7 @@
158
158
  display: inline-flex;
159
159
  align-items: center;
160
160
  gap: 6px;
161
- font-size: 11px;
161
+ font-size: 12px;
162
162
  line-height: 1.45;
163
163
  font-weight: 600;
164
164
  padding: 2px 7px;
@@ -175,7 +175,7 @@
175
175
  :is(.hero, :where(.v-overlay.v-theme--hero-light, .v-overlay.v-theme--hero-dark) > .v-overlay__content) .v-btn {
176
176
  font-family: var(--hero-font);
177
177
  font-weight: 800;
178
- font-size: 14px;
178
+ font-size: 15px;
179
179
  line-height: 1.2;
180
180
  letter-spacing: 0;
181
181
  text-transform: none;
@@ -204,7 +204,7 @@
204
204
  }
205
205
  .hero-seg__opt {
206
206
  font: inherit;
207
- font-size: 12px;
207
+ font-size: 13px;
208
208
  padding: 7px 12px;
209
209
  background: transparent;
210
210
  color: inherit;
@@ -222,13 +222,13 @@
222
222
  /* --------------------------------------------------------------- inputs */
223
223
 
224
224
  .hero-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
225
- .hero-field > label { font-size: 12px; color: color-mix(in srgb, var(--hero-text) 70%, transparent); }
225
+ .hero-field > label { font-size: 13px; color: color-mix(in srgb, var(--hero-text) 70%, transparent); }
226
226
  .hero-input {
227
227
  width: 100%;
228
228
  min-height: 36px;
229
229
  padding: 6px 10px;
230
230
  font: inherit;
231
- font-size: 14px;
231
+ font-size: 15px;
232
232
  color: var(--hero-text);
233
233
  caret-color: var(--hero-accent);
234
234
  background: var(--hero-surface);
@@ -238,7 +238,7 @@
238
238
  .hero-input:hover { border-color: color-mix(in srgb, var(--hero-text) 45%, transparent); }
239
239
  .hero-input:focus-visible { border-color: var(--hero-accent); outline-offset: 0; }
240
240
  .hero-input::placeholder { color: color-mix(in srgb, var(--hero-text) 50%, transparent); }
241
- .hero-field__note { font-size: 11px; opacity: 0.6; }
241
+ .hero-field__note { font-size: 12px; opacity: 0.6; }
242
242
 
243
243
  /* ---------------------------------------------------------------- cards */
244
244
 
@@ -252,18 +252,18 @@
252
252
  }
253
253
  .hero-card--click { cursor: pointer; }
254
254
  .hero-card--click:hover { background: color-mix(in srgb, var(--hero-text) 4%, var(--hero-surface)); }
255
- .hero-card__name { font-family: var(--hero-font); font-weight: 800; font-size: 15px; line-height: 1.3; }
256
- .hero-card__sub { opacity: 0.65; font-size: 12px; }
255
+ .hero-card__name { font-family: var(--hero-font); font-weight: 800; font-size: 16px; line-height: 1.3; }
256
+ .hero-card__sub { opacity: 0.65; font-size: 13px; }
257
257
  .hero-card__row { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
258
- .hero-card__seen { margin-left: auto; opacity: 0.6; font-size: 11px; white-space: nowrap; }
258
+ .hero-card__seen { margin-left: auto; opacity: 0.6; font-size: 12px; white-space: nowrap; }
259
259
  .hero-card > .hero-chip { align-self: start; }
260
260
 
261
261
  /* ---------------------------------------------------------------- table */
262
262
 
263
- .hero-table .v-table { background: transparent; color: inherit; font-size: 14px; font-family: var(--hero-font); }
264
- .hero-table--compact .v-table { font-size: 12.5px; }
263
+ .hero-table .v-table { background: transparent; color: inherit; font-size: 15px; font-family: var(--hero-font); }
264
+ .hero-table--compact .v-table { font-size: 14px; }
265
265
  .hero-table .v-table > .v-table__wrapper > table > thead > tr > th {
266
- font-size: 11px;
266
+ font-size: 12px;
267
267
  font-weight: 700;
268
268
  letter-spacing: 0.08em;
269
269
  text-transform: uppercase;
@@ -293,7 +293,7 @@
293
293
  .hero-table__group > td {
294
294
  background: var(--hero-surface);
295
295
  font-weight: 800;
296
- font-size: 12px;
296
+ font-size: 13px;
297
297
  }
298
298
  .hero-table__group button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
299
299
  .hero-table__foot {
@@ -302,7 +302,7 @@
302
302
  justify-content: space-between;
303
303
  gap: 12px;
304
304
  padding-top: 10px;
305
- font-size: 12px;
305
+ font-size: 13px;
306
306
  }
307
307
  .hero-table__foot > span { opacity: 0.7; font-variant-numeric: tabular-nums; }
308
308
  .hero-table__pager { display: flex; gap: 6px; }
@@ -311,7 +311,7 @@
311
311
  .hero-skel__row { height: 34px; background: var(--hero-surface); animation: heroSkel 1.4s ease-in-out infinite; }
312
312
 
313
313
  .hero-empty { padding: 28px 12px; text-align: left; }
314
- .hero-empty__title { font-weight: 800; font-size: 15px; }
314
+ .hero-empty__title { font-weight: 800; font-size: 16px; }
315
315
  .hero-empty__hint { opacity: 0.65; margin-top: 2px; }
316
316
 
317
317
  /* -------------------------------------------------------- summary strip */
@@ -348,7 +348,7 @@
348
348
  display: flex;
349
349
  align-items: center;
350
350
  gap: 6px;
351
- font-size: 10px;
351
+ font-size: 12px;
352
352
  letter-spacing: 0.1em;
353
353
  text-transform: uppercase;
354
354
  opacity: 0.7;
@@ -369,7 +369,7 @@
369
369
  .hero-cell__tick { background: var(--hero-divider); opacity: 0.35; transition: opacity 0.6s ease; }
370
370
  .hero-cell__tick--on { background: var(--hero-cell-color); opacity: 0.15; }
371
371
  .hero-cell__tick--shown { opacity: 1; }
372
- .hero-cell__split { font-size: 11px; opacity: 0.6; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
372
+ .hero-cell__split { font-size: 12px; opacity: 0.6; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
373
373
  .hero-cell__shimmer {
374
374
  position: absolute;
375
375
  top: 0;
@@ -401,10 +401,10 @@
401
401
 
402
402
  /* -------------------------------------------- notices, overlay and toast */
403
403
 
404
- .hero-notice { padding: 8px 10px; font-size: 12px; background: var(--hero-surface); border-left: 2px solid var(--hero-divider); }
405
- .hero-notice--panel { padding: 14px 16px; font-size: 13px; }
404
+ .hero-notice { padding: 8px 10px; font-size: 13px; background: var(--hero-surface); border-left: 2px solid var(--hero-divider); }
405
+ .hero-notice--panel { padding: 14px 16px; font-size: 14px; }
406
406
  .hero-notice__title { font-weight: 600; }
407
- .hero-notice__body { opacity: 0.7; font-size: 12px; margin-top: 2px; }
407
+ .hero-notice__body { opacity: 0.7; font-size: 13px; margin-top: 2px; }
408
408
 
409
409
  .hero-reconnecting {
410
410
  position: absolute;
@@ -425,7 +425,7 @@
425
425
  padding: 10px 16px;
426
426
  background: var(--hero-text);
427
427
  color: var(--hero-bg);
428
- font-size: 13px;
428
+ font-size: 14px;
429
429
  font-weight: 600;
430
430
  box-shadow: var(--hero-shadow-lg);
431
431
  display: flex;
@@ -481,7 +481,7 @@
481
481
  .hero-nav { display: flex; gap: 0; }
482
482
  .hero-nav__item {
483
483
  font: inherit;
484
- font-size: 13px;
484
+ font-size: 14px;
485
485
  color: var(--hero-text);
486
486
  background: transparent;
487
487
  border: 0;
@@ -492,7 +492,7 @@
492
492
  .hero-nav__item[aria-current="page"] { border-bottom-color: var(--hero-accent); font-weight: 700; background: var(--hero-surface); }
493
493
  .hero-nav__item:hover { background: color-mix(in srgb, var(--hero-text) 5%, transparent); }
494
494
 
495
- .hero-live { display: flex; align-items: center; gap: 8px; font-size: 12px; font-variant-numeric: tabular-nums; white-space: nowrap; }
495
+ .hero-live { display: flex; align-items: center; gap: 8px; font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; }
496
496
  .hero-live__dot { width: 8px; height: 8px; display: inline-block; background: var(--hero-accent); animation: heroPulse 2s ease-out infinite; }
497
497
  .hero-live__dot--off { background: var(--hero-neutral-300); animation: none; }
498
498
 
@@ -503,7 +503,7 @@
503
503
 
504
504
  /* Filters row: native controls, the handoff's look. */
505
505
  .hero-filters { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
506
- .hero-filters .hero-input { width: auto; min-height: 32px; padding: 4px 8px; font-size: 13px; }
506
+ .hero-filters .hero-input { width: auto; min-height: 32px; padding: 4px 8px; font-size: 14px; }
507
507
  .hero-filters .hero-input--search { width: 220px; }
508
508
  /* Vuetify's reset strips the native arrow; draw one in the text colour. */
509
509
  .hero-filters select.hero-input {
@@ -517,8 +517,8 @@
517
517
  }
518
518
  .hero-filters select.hero-input:disabled { opacity: 0.5; cursor: not-allowed; }
519
519
  .hero-filters__spacer { flex: 1; }
520
- .hero-filters__label { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.6; }
521
- .hero-check { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; cursor: pointer; white-space: nowrap; }
520
+ .hero-filters__label { font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.6; }
521
+ .hero-check { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; cursor: pointer; white-space: nowrap; }
522
522
  .hero-check input { width: 14px; height: 14px; margin: 0; accent-color: var(--hero-accent); cursor: pointer; }
523
523
 
524
524
  /* Asides: Needs attention, Clients drill down. */
@@ -530,9 +530,9 @@
530
530
  padding-top: 8px;
531
531
  margin-bottom: 8px;
532
532
  }
533
- .hero-aside__title { font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; white-space: nowrap; font-weight: 600; }
534
- .hero-aside__hint { opacity: 0.6; font-size: 11px; }
535
- .hero-aside__count { margin-left: auto; font-size: 11px; padding: 1px 7px; background: var(--hero-accent); color: #fff; font-weight: 600; }
533
+ .hero-aside__title { font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; white-space: nowrap; font-weight: 600; }
534
+ .hero-aside__hint { opacity: 0.6; font-size: 12px; }
535
+ .hero-aside__count { margin-left: auto; font-size: 12px; padding: 1px 7px; background: var(--hero-accent); color: #fff; font-weight: 600; }
536
536
  .hero-aside__empty { opacity: 0.6; padding: 10px 0; }
537
537
  .hero-attn { display: flex; flex-direction: column; gap: 1px; background: var(--hero-divider); }
538
538
  .hero-attn__item, .hero-attn__more {
@@ -541,7 +541,7 @@
541
541
  gap: 2px 8px;
542
542
  padding: 8px 10px;
543
543
  font: inherit;
544
- font-size: 12px;
544
+ font-size: 13px;
545
545
  text-align: left;
546
546
  color: var(--hero-text);
547
547
  background: var(--hero-surface);
@@ -549,12 +549,12 @@
549
549
  cursor: pointer;
550
550
  }
551
551
  .hero-attn__item:hover, .hero-attn__more:hover { background: color-mix(in srgb, var(--hero-text) 5%, var(--hero-surface)); }
552
- .hero-attn__code { color: var(--hero-accent); font-weight: 600; font-size: 11px; }
552
+ .hero-attn__code { color: var(--hero-accent); font-weight: 600; font-size: 12px; }
553
553
  .hero-attn__msg { grid-column: 1 / -1; opacity: 0.75; }
554
- .hero-attn__where { grid-column: 1 / -1; opacity: 0.55; font-size: 11px; }
554
+ .hero-attn__where { grid-column: 1 / -1; opacity: 0.55; font-size: 12px; }
555
555
  .hero-attn__more { display: block; color: var(--hero-accent); font-weight: 600; }
556
556
  .hero-drill { margin-bottom: 10px; }
557
- .hero-drill__client { font-weight: 600; font-size: 12px; display: flex; gap: 8px; }
557
+ .hero-drill__client { font-weight: 600; font-size: 13px; display: flex; gap: 8px; }
558
558
  .hero-drill__n { opacity: 0.55; font-variant-numeric: tabular-nums; }
559
559
  .hero-drill__site {
560
560
  display: flex;
@@ -568,19 +568,19 @@
568
568
  background: transparent;
569
569
  color: var(--hero-text);
570
570
  font: inherit;
571
- font-size: 12px;
571
+ font-size: 13px;
572
572
  cursor: pointer;
573
573
  }
574
574
  .hero-drill__site:hover { background: color-mix(in srgb, var(--hero-text) 4%, transparent); }
575
575
  .hero-drill__name { flex: 1; }
576
- .hero-drill__faults { font-size: 10px; padding: 1px 6px; background: var(--hero-accent); color: #fff; font-weight: 600; }
576
+ .hero-drill__faults { font-size: 12px; padding: 1px 6px; background: var(--hero-accent); color: #fff; font-weight: 600; }
577
577
  .hero-drill__go, .hero-go { color: var(--hero-accent); }
578
578
 
579
- .hero-back { font: inherit; font-size: 13px; color: var(--hero-accent); background: none; border: 0; padding: 0; cursor: pointer; }
579
+ .hero-back { font: inherit; font-size: 14px; color: var(--hero-accent); background: none; border: 0; padding: 0; cursor: pointer; }
580
580
  .hero-alert__code { color: var(--hero-accent); font-weight: 700; }
581
581
  .hero-dim { opacity: 0.75; }
582
582
  .hero-num { font-variant-numeric: tabular-nums; white-space: nowrap; }
583
- .hero-note { font-size: 12px; opacity: 0.6; }
583
+ .hero-note { font-size: 13px; opacity: 0.6; }
584
584
 
585
585
  /* ---------------------------------------- site fleet + detail (phase c) */
586
586
 
@@ -607,8 +607,8 @@
607
607
  overflow: hidden;
608
608
  }
609
609
  .hero-brand { display: flex; align-items: center; gap: 10px; }
610
- .hero-brand__name { font-family: var(--hero-font); font-weight: 800; font-size: 16px; letter-spacing: 0.06em; line-height: 1; }
611
- .hero-brand__org { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.6; margin-top: 3px; white-space: nowrap; }
610
+ .hero-brand__name { font-family: var(--hero-font); font-weight: 800; font-size: 17px; letter-spacing: 0.06em; line-height: 1; }
611
+ .hero-brand__org { font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.6; margin-top: 3px; white-space: nowrap; }
612
612
  .hero-header__site { display: flex; align-items: center; gap: 8px; }
613
613
  .hero-header__right { display: flex; align-items: center; gap: 12px; margin-left: auto; }
614
614
 
@@ -616,7 +616,7 @@
616
616
  .hero-switch { display: flex; border: 1px solid var(--hero-divider); }
617
617
  .hero-switch__opt {
618
618
  font: inherit;
619
- font-size: 12px;
619
+ font-size: 13px;
620
620
  font-weight: 600;
621
621
  padding: 6px 14px;
622
622
  border: 0;
@@ -632,7 +632,7 @@
632
632
  width: auto;
633
633
  min-height: 32px;
634
634
  padding: 4px 26px 4px 8px;
635
- font-size: 13px;
635
+ font-size: 14px;
636
636
  appearance: none;
637
637
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
638
638
  background-position: calc(100% - 13px) 50%, calc(100% - 9px) 50%;
@@ -640,15 +640,15 @@
640
640
  background-repeat: no-repeat;
641
641
  cursor: pointer;
642
642
  }
643
- .hero select.hero-select--sm { min-height: 28px; padding: 2px 24px 2px 8px; font-size: 12px; }
643
+ .hero select.hero-select--sm { min-height: 28px; padding: 2px 24px 2px 8px; font-size: 13px; }
644
644
 
645
- .hero-back--sm { font-size: 12px; white-space: nowrap; margin-bottom: 4px; }
645
+ .hero-back--sm { font-size: 13px; white-space: nowrap; margin-bottom: 4px; }
646
646
  .hero-title { margin: 0 0 4px; text-wrap: balance; }
647
647
 
648
648
  /* Site fleet: main + mini-map aside (stacks below ~900px). */
649
649
  .hero-split__main--fleet { flex: 999 1 520px; }
650
650
  .hero-split__aside--map { flex: 1 1 320px; max-width: 420px; gap: 10px; }
651
- .hero-tag--xs { font-size: 10px; }
651
+ .hero-tag--xs { font-size: 12px; }
652
652
 
653
653
  /* Icon button (full screen). */
654
654
  .hero .v-btn.hero-iconbtn { padding: 4px 8px; }
@@ -669,10 +669,10 @@
669
669
  /* The robot's own map image under the overlays; the plan takes its aspect ratio. */
670
670
  .hero-plan__img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: fill; pointer-events: none; user-select: none; opacity: 0.85; }
671
671
  .hero-mapsel { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 6px; }
672
- .hero-mapsel__here { font-size: 12px; padding: 1px 6px; border: 1px solid var(--hero-accent); color: var(--hero-accent); }
673
- .hero-mapsel__hint { font-size: 12px; opacity: 0.75; }
672
+ .hero-mapsel__here { font-size: 13px; padding: 1px 6px; border: 1px solid var(--hero-accent); color: var(--hero-accent); }
673
+ .hero-mapsel__hint { font-size: 13px; opacity: 0.75; }
674
674
  .hero-plan__pt { position: absolute; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 50%; background: var(--hero-accent); pointer-events: none; }
675
- .hero-plan__ptname { position: absolute; transform: translate(6px, -50%); font-size: 11px; white-space: nowrap; pointer-events: none; color: var(--hero-text); }
675
+ .hero-plan__ptname { position: absolute; transform: translate(6px, -50%); font-size: 12px; white-space: nowrap; pointer-events: none; color: var(--hero-text); }
676
676
  .hero-plan__overlay { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: fill; pointer-events: none; user-select: none; opacity: 0.35; }
677
677
  .hero-plan__zones { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; }
678
678
  .hero-plan__zones polyline, .hero-plan__zones polygon { vector-effect: non-scaling-stroke; stroke-width: 2; stroke-linejoin: round; }
@@ -681,10 +681,10 @@
681
681
  .hero-plan__slow { fill: rgba(251, 140, 0, 0.18); stroke: #fb8c00; }
682
682
  .hero-plan__taught { fill: none; stroke: #1e88e5; stroke-dasharray: 4 3; }
683
683
  .hero-rec__obstacles { display: block; max-width: 100%; max-height: 320px; margin-top: 4px; border: 1px solid var(--hero-line, rgba(127, 127, 127, 0.3)); image-rendering: pixelated; }
684
- .hero-plan__area { position: absolute; transform: translate(-50%, -50%); font-size: 11px; font-weight: 600; padding: 0 4px; white-space: nowrap; pointer-events: none; color: var(--hero-text); background: var(--hero-bg); border: 1px solid var(--hero-accent); }
684
+ .hero-plan__area { position: absolute; transform: translate(-50%, -50%); font-size: 12px; font-weight: 600; padding: 0 4px; white-space: nowrap; pointer-events: none; color: var(--hero-text); background: var(--hero-bg); border: 1px solid var(--hero-accent); }
685
685
  .hero-rec { margin-top: 16px; }
686
- .hero-rec__table { width: 100%; border-collapse: collapse; font-size: 13px; }
687
- .hero-rec__table th { text-align: left; font-weight: 600; font-size: 12px; opacity: 0.75; padding: 4px 6px; border-bottom: 1px solid var(--hero-divider); }
686
+ .hero-rec__table { width: 100%; border-collapse: collapse; font-size: 14px; }
687
+ .hero-rec__table th { text-align: left; font-weight: 600; font-size: 13px; opacity: 0.75; padding: 4px 6px; border-bottom: 1px solid var(--hero-divider); }
688
688
  .hero-rec__table td { padding: 4px 6px; border-bottom: 1px solid var(--hero-divider); vertical-align: top; }
689
689
  .hero-rec__wrap { overflow-x: auto; }
690
690
  .hero-rec__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 2px 16px; }
@@ -705,7 +705,7 @@
705
705
  background: color-mix(in srgb, var(--hero-accent) 30%, transparent);
706
706
  border: 1px solid var(--hero-accent);
707
707
  }
708
- .hero-plan__dock-label { position: absolute; left: 0; top: -15px; font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.7; white-space: nowrap; }
708
+ .hero-plan__dock-label { position: absolute; left: 0; top: -18px; font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.7; white-space: nowrap; }
709
709
  .hero-plan__scan {
710
710
  position: absolute;
711
711
  inset: 0;
@@ -724,33 +724,33 @@
724
724
  .hero-bot__ping { position: absolute; left: -10px; top: -10px; width: 20px; height: 20px; border: 1.5px solid var(--hero-bot); animation: heroPing 2.4s ease-out infinite; box-sizing: border-box; }
725
725
  .hero-bot__body { position: absolute; left: -7px; top: -7px; width: 14px; height: 14px; background: var(--hero-bot); outline: 2px solid var(--hero-bg); }
726
726
  .hero-bot__tick { position: absolute; right: -5px; top: 5px; width: 5px; height: 4px; background: var(--hero-accent); }
727
- .hero-bot__name { position: absolute; left: 10px; top: -18px; font-size: 10px; font-weight: 600; white-space: nowrap; background: var(--hero-bg); padding: 0 4px; line-height: 1.45; }
727
+ .hero-bot__name { position: absolute; left: 10px; top: -18px; font-size: 12px; font-weight: 600; white-space: nowrap; background: var(--hero-bg); padding: 0 4px; line-height: 1.45; }
728
728
  .hero-bot__name--left { left: auto; right: 10px; }
729
729
  .hero-bot__name--below { top: 10px; }
730
730
 
731
731
  /* Patrol checkpoints and route tags. */
732
732
  .hero-cp {
733
733
  position: absolute;
734
- width: 12px;
735
- height: 12px;
736
- margin: -6px;
734
+ width: 16px;
735
+ height: 16px;
736
+ margin: -8px;
737
737
  border: 2px solid var(--hero-accent);
738
738
  background: var(--hero-bg);
739
739
  display: grid;
740
740
  place-items: center;
741
- font-size: 7px;
741
+ font-size: 10px;
742
742
  font-weight: 800;
743
743
  color: var(--hero-accent);
744
744
  box-sizing: border-box;
745
745
  }
746
- .hero-cp--lg { width: 14px; height: 14px; margin: -7px; font-size: 8px; }
746
+ .hero-cp--lg { width: 18px; height: 18px; margin: -9px; font-size: 11px; }
747
747
  .hero-cp--current { background: var(--hero-accent); color: #fff; }
748
- .hero-cp__label { position: absolute; margin: -19px 0 0 -8px; font-size: 8px; letter-spacing: 0.06em; text-transform: uppercase; white-space: nowrap; opacity: 0.7; }
749
- .hero-cp__label--lg { margin: -22px 0 0 -10px; font-size: 9px; opacity: 0.75; }
748
+ .hero-cp__label { position: absolute; margin: -22px 0 0 -8px; font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; white-space: nowrap; opacity: 0.7; }
749
+ .hero-cp__label--lg { margin: -26px 0 0 -10px; font-size: 13px; opacity: 0.75; }
750
750
  .hero-routetag {
751
751
  position: absolute;
752
- margin: -34px 0 0 -6px;
753
- font-size: 8px;
752
+ margin: -38px 0 0 -6px;
753
+ font-size: 12px;
754
754
  letter-spacing: 0.08em;
755
755
  text-transform: uppercase;
756
756
  white-space: nowrap;
@@ -759,16 +759,16 @@
759
759
  background: var(--hero-accent);
760
760
  color: #fff;
761
761
  }
762
- .hero-routetag--lg { margin: -38px 0 0 -8px; font-size: 9px; padding: 2px 6px; }
762
+ .hero-routetag--lg { margin: -42px 0 0 -8px; font-size: 13px; padding: 2px 6px; }
763
763
 
764
764
  .hero-mini { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
765
765
  .hero-seen { opacity: 0.65; }
766
766
  .hero-mini__head { display: flex; align-items: center; gap: 8px; border-top: 2px solid var(--hero-divider); padding-top: 8px; }
767
- .hero-mini__foot { font-size: 11px; opacity: 0.6; display: flex; gap: 12px; white-space: nowrap; }
767
+ .hero-mini__foot { font-size: 12px; opacity: 0.6; display: flex; gap: 12px; white-space: nowrap; }
768
768
  .hero-mini__foot > span:first-child { overflow: hidden; text-overflow: ellipsis; }
769
769
  .hero-mini__legend { display: inline-block; width: 12px; height: 0; border-top: 2px dashed var(--hero-accent); vertical-align: middle; margin-right: 5px; }
770
770
  .hero-mini__legend--lane { border-top-style: solid; border-top-color: rgb(var(--v-theme-info)); }
771
- .hero-mini__toggle { font: inherit; font-size: 10.5px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; padding: 4px 8px; min-height: 28px; color: var(--hero-text); background: transparent; border: 1px solid var(--hero-divider); cursor: pointer; }
771
+ .hero-mini__toggle { font: inherit; font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; padding: 4px 8px; min-height: 28px; color: var(--hero-text); background: transparent; border: 1px solid var(--hero-divider); cursor: pointer; }
772
772
  .hero-mini__toggle[aria-pressed="true"] { background: var(--hero-text); color: var(--hero-bg); }
773
773
  .hero-mini__lane { stroke: rgb(var(--v-theme-info)); stroke-width: 1.5; opacity: 0.8; }
774
774
  .hero-mini__lane--oneway { stroke-dasharray: 5 3; }
@@ -779,18 +779,18 @@
779
779
  /* Robot detail. */
780
780
  .hero-detail__title { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 4px; }
781
781
  .hero-detail__title h2 { white-space: nowrap; }
782
- .hero-detail__where { opacity: 0.6; font-size: 12px; }
782
+ .hero-detail__where { opacity: 0.6; font-size: 13px; }
783
783
  .hero .v-btn.hero-ghost { color: var(--hero-accent); padding-inline: 4px; }
784
784
  .hero .v-btn.hero-ghost:hover { background: color-mix(in srgb, var(--hero-accent) 10%, transparent); }
785
785
 
786
786
  .hero-faultbar { display: grid; grid-template-columns: auto 1fr; grid-auto-flow: column; grid-auto-columns: auto; gap: 14px; align-items: center; padding: 12px 14px; border: 2px solid var(--hero-accent); }
787
- .hero-faultbar__code { font-family: var(--hero-font); font-weight: 800; color: var(--hero-accent); font-size: 18px; }
787
+ .hero-faultbar__code { font-family: var(--hero-font); font-weight: 800; color: var(--hero-accent); font-size: 19px; }
788
788
  .hero-faultbar__msg { font-weight: 600; }
789
- .hero-faultbar__since { opacity: 0.65; font-size: 12px; }
790
- .hero-faultbar__clear { margin-top: 8px; font-size: 13px; }
789
+ .hero-faultbar__since { opacity: 0.65; font-size: 13px; }
790
+ .hero-faultbar__clear { margin-top: 8px; font-size: 14px; }
791
791
  .hero-faultbar__clear-title { font-weight: 700; }
792
792
  .hero-faultbar__clear ol { margin: 4px 0 0; padding-left: 20px; }
793
- .hero-faultbar__badge { font-size: 11px; padding: 2px 8px; background: var(--hero-accent); color: #fff; font-weight: 600; }
793
+ .hero-faultbar__badge { font-size: 12px; padding: 2px 8px; background: var(--hero-accent); color: #fff; font-weight: 600; }
794
794
 
795
795
  .hero-facts {
796
796
  display: grid;
@@ -799,21 +799,21 @@
799
799
  border-left: 1px solid var(--hero-divider);
800
800
  }
801
801
  .hero-fact { padding: 10px 12px; border-right: 1px solid var(--hero-divider); border-bottom: 1px solid var(--hero-divider); }
802
- .hero-fact__label { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.6; }
802
+ .hero-fact__label { font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.6; }
803
803
  .hero-fact__value { font-weight: 600; font-variant-numeric: tabular-nums; margin-top: 3px; }
804
804
  .hero-fact__value--dim { opacity: 0.5; }
805
- .hero-notreported { font-size: 12px; opacity: 0.7; }
805
+ .hero-notreported { font-size: 13px; opacity: 0.7; }
806
806
  .hero-facts--tight { margin-bottom: 12px; }
807
807
 
808
808
  /* "What this robot can do": one short row per kind of ability, only what THIS brand + model offers. */
809
809
  .hero-can { border: 1px solid var(--hero-divider); border-left: 3px solid var(--hero-accent); padding: 10px 14px; display: grid; gap: 6px; }
810
- .hero-can__title { font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 600; opacity: 0.75; }
811
- .hero-can__row { display: grid; grid-template-columns: 160px 1fr; gap: 12px; font-size: 13px; line-height: 1.45; }
810
+ .hero-can__title { font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 600; opacity: 0.75; }
811
+ .hero-can__row { display: grid; grid-template-columns: 160px 1fr; gap: 12px; font-size: 14px; line-height: 1.45; }
812
812
  .hero-can__label { font-weight: 700; }
813
813
  @media (max-width: 560px) { .hero-can__row { grid-template-columns: 1fr; gap: 0; } }
814
814
 
815
815
  .hero-section__title {
816
- font-size: 10px;
816
+ font-size: 12px;
817
817
  letter-spacing: 0.12em;
818
818
  text-transform: uppercase;
819
819
  white-space: nowrap;
@@ -840,10 +840,10 @@
840
840
  .hero-detail__commands { border-top: 2px solid var(--hero-divider); padding-top: 10px; }
841
841
  .hero-detail__alertcode { color: var(--hero-accent); }
842
842
  @media (max-width: 900px) { .hero-detail__main { grid-template-columns: minmax(0, 1fr); } }
843
- .hero-sched__note { font-size: 12px; opacity: 0.65; margin-bottom: 4px; }
843
+ .hero-sched__note { font-size: 13px; opacity: 0.65; margin-bottom: 4px; }
844
844
  .hero-sched__row.hero-sched__row--slot { grid-template-columns: minmax(110px, 160px) minmax(0, 1fr); }
845
845
  .hero-sched__row.hero-sched__row--alert { grid-template-columns: 110px minmax(0, 1fr) auto; }
846
- .hero-detail__sub { display: flex; flex-wrap: wrap; gap: 4px 14px; opacity: 0.65; font-size: 12px; margin-top: 2px; }
846
+ .hero-detail__sub { display: flex; flex-wrap: wrap; gap: 4px 14px; opacity: 0.65; font-size: 13px; margin-top: 2px; }
847
847
  .hero-detail__title--main { flex-wrap: nowrap; min-width: 0; }
848
848
  .hero-detail__title--main h2 { overflow: hidden; text-overflow: ellipsis; min-width: 8ch; }
849
849
  @media (max-width: 700px) { .hero-detail__title--main { flex-wrap: wrap; } .hero-detail__title--main h2 { flex-basis: 100%; } }
@@ -855,7 +855,7 @@
855
855
  .hero-detail__grid .hero-aside__hint { opacity: 0.55; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
856
856
 
857
857
  .hero-sched__empty { padding: 20px 0; opacity: 0.65; }
858
- .hero-sched__row { display: grid; grid-template-columns: 90px 100px 1fr; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--hero-divider); font-size: 12.5px; }
858
+ .hero-sched__row { display: grid; grid-template-columns: 90px 100px 1fr; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--hero-divider); font-size: 14px; }
859
859
  .hero-sched__row > span:nth-child(2) { font-variant-numeric: tabular-nums; }
860
860
  .hero-sched__row > span:nth-child(3) { opacity: 0.8; }
861
861
 
@@ -868,7 +868,7 @@
868
868
  position: absolute;
869
869
  left: 8px;
870
870
  bottom: 6px;
871
- font-size: 10px;
871
+ font-size: 12px;
872
872
  letter-spacing: 0.08em;
873
873
  text-transform: uppercase;
874
874
  font-variant-numeric: tabular-nums;
@@ -878,7 +878,7 @@
878
878
  white-space: nowrap;
879
879
  }
880
880
  .hero-me { position: absolute; width: 0; height: 0; }
881
- .hero-me__tag { position: absolute; left: 14px; top: -26px; white-space: nowrap; font-size: 11px; font-weight: 800; padding: 2px 6px; background: var(--hero-text); color: var(--hero-bg); line-height: 1.45; }
881
+ .hero-me__tag { position: absolute; left: 14px; top: -26px; white-space: nowrap; font-size: 12px; font-weight: 800; padding: 2px 6px; background: var(--hero-text); color: var(--hero-bg); line-height: 1.45; }
882
882
  .hero-me__tag > span { font-weight: 400; opacity: 0.75; }
883
883
  .hero-me__tag--left { left: auto; right: 14px; }
884
884
  .hero-me__tag--below { top: 14px; }
@@ -902,7 +902,7 @@
902
902
  border: 2px solid var(--hero-accent);
903
903
  display: grid;
904
904
  place-items: center;
905
- font-size: 10px;
905
+ font-size: 12px;
906
906
  font-weight: 700;
907
907
  color: var(--hero-accent);
908
908
  background: var(--hero-bg);
@@ -913,7 +913,7 @@
913
913
  /* HERO dialog (remove). */
914
914
  .hero-dialog { display: flex; flex-direction: column; gap: 12px; padding: 16px; background: var(--hero-surface); box-shadow: var(--hero-shadow-lg); }
915
915
  .hero-dialog__title { font-family: var(--hero-font); font-weight: 800; font-size: 20px; }
916
- .hero-dialog__body { font-size: 14px; opacity: 0.85; }
916
+ .hero-dialog__body { font-size: 15px; opacity: 0.85; }
917
917
  .hero-dialog__actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; }
918
918
 
919
919
  /* ============================================ HERO phase (e): add / edit dialog, alerts, activity log */
@@ -934,7 +934,7 @@
934
934
  }
935
935
  /* The DS backdrop: neutral-900 at 50% (light grey over the dark theme, as in the prototype). */
936
936
  .v-overlay.v-theme--hero-light > .v-overlay__scrim, .v-overlay.v-theme--hero-dark > .v-overlay__scrim { background: rgb(var(--v-hero-neutral-900)) !important; opacity: 0.5 !important; }
937
- .hero-dialog__note { font-size: 12px; opacity: 0.65; }
937
+ .hero-dialog__note { font-size: 13px; opacity: 0.65; }
938
938
  .hero-notice--error { border-left-color: var(--hero-accent); }
939
939
  .hero-input:disabled { opacity: 0.6; cursor: not-allowed; }
940
940
  .hero-log__when { font-variant-numeric: tabular-nums; opacity: 0.7; white-space: nowrap; }
@@ -980,7 +980,7 @@
980
980
  background: transparent;
981
981
  color: var(--hero-text);
982
982
  font: inherit;
983
- font-size: 18px;
983
+ font-size: 19px;
984
984
  font-weight: 800;
985
985
  cursor: pointer;
986
986
  }
@@ -994,7 +994,7 @@
994
994
  border-right: 1px solid var(--hero-divider);
995
995
  padding: 6px 10px;
996
996
  font: inherit;
997
- font-size: 11px;
997
+ font-size: 12px;
998
998
  font-weight: 700;
999
999
  letter-spacing: 0.06em;
1000
1000
  text-transform: uppercase;
@@ -1005,8 +1005,8 @@
1005
1005
  line-height: 1.45;
1006
1006
  }
1007
1007
  .hero-bmap__seg button[aria-pressed="true"] { background: var(--hero-accent); color: #fff; }
1008
- .hero-bmap__readout { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.6; white-space: nowrap; font-variant-numeric: tabular-nums; }
1009
- .hero-bmap__live { position: absolute; right: 14px; top: 12px; z-index: 3; font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; opacity: 0.6; display: flex; gap: 8px; align-items: center; white-space: nowrap; }
1008
+ .hero-bmap__readout { font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.6; white-space: nowrap; font-variant-numeric: tabular-nums; }
1009
+ .hero-bmap__live { position: absolute; right: 14px; top: 12px; z-index: 3; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; opacity: 0.6; display: flex; gap: 8px; align-items: center; white-space: nowrap; }
1010
1010
  .hero-bmap__loading { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; justify-content: center; gap: 8px; padding: 0 20%; background: color-mix(in srgb, var(--hero-bg) 55%, transparent); }
1011
1011
  .hero-bmap__view { transform-style: preserve-3d; }
1012
1012
  .hero-bmap__stack { position: relative; width: 400px; height: 260px; transform-style: preserve-3d; transform-origin: center; }
@@ -1034,11 +1034,11 @@
1034
1034
  .hero-bmap__wp { position: absolute; width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: 50%; background: var(--hero-accent); outline: 1.5px solid var(--hero-bg); }
1035
1035
  .hero-bmap__wp--charger { background: rgb(var(--v-theme-success)); border-radius: 1px; width: 8px; height: 8px; margin: -4px 0 0 -4px; }
1036
1036
  .hero-bmap__wp--parking { background: rgb(var(--v-theme-info)); }
1037
- .hero-bmap__wpname { position: absolute; left: 6px; top: -6px; transform-origin: 0 0; white-space: nowrap; font-size: 9px; font-weight: 700; padding: 0 4px; background: var(--hero-bg); color: var(--hero-text); }
1037
+ .hero-bmap__wpname { position: absolute; left: 6px; top: -6px; transform-origin: 0 0; white-space: nowrap; font-size: 12px; font-weight: 700; padding: 0 4px; background: var(--hero-bg); color: var(--hero-text); }
1038
1038
  .hero-bmap__anchor { position: absolute; width: 0; height: 0; transform-style: preserve-3d; }
1039
- .hero-bmap__routetag { position: absolute; left: -6px; top: -30px; transform-origin: 0 0; white-space: nowrap; font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 800; padding: 1px 6px; background: var(--hero-accent); color: #fff; }
1040
- .hero-bmap__cp { position: absolute; left: -6px; top: -6px; width: 12px; height: 12px; box-sizing: border-box; border: 2px solid var(--hero-accent); background: var(--hero-bg); display: grid; place-items: center; font-size: 7px; font-weight: 800; color: var(--hero-accent); }
1041
- .hero-bmap__cplabel { position: absolute; left: 8px; top: -4px; transform-origin: 0 0; white-space: nowrap; font-size: 9px; letter-spacing: 0.06em; text-transform: uppercase; padding: 0 4px; background: var(--hero-bg); color: var(--hero-accent); font-weight: 700; }
1039
+ .hero-bmap__routetag { position: absolute; left: -6px; top: -30px; transform-origin: 0 0; white-space: nowrap; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 800; padding: 1px 6px; background: var(--hero-accent); color: #fff; }
1040
+ .hero-bmap__cp { position: absolute; left: -8px; top: -8px; width: 16px; height: 16px; box-sizing: border-box; border: 2px solid var(--hero-accent); background: var(--hero-bg); display: grid; place-items: center; font-size: 10px; font-weight: 800; color: var(--hero-accent); }
1041
+ .hero-bmap__cplabel { position: absolute; left: 10px; top: -6px; transform-origin: 0 0; white-space: nowrap; font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; padding: 0 4px; background: var(--hero-bg); color: var(--hero-accent); font-weight: 700; }
1042
1042
  .hero-bmap__ping { position: absolute; left: -10px; top: -10px; width: 20px; height: 20px; box-sizing: border-box; border: 1.5px solid var(--hero-bot); animation: heroPing 2.4s ease-out infinite; }
1043
1043
  .hero-bmap__body { position: absolute; left: -6px; top: -6px; width: 12px; height: 12px; background: var(--hero-bot); outline: 2px solid var(--hero-bg); }
1044
1044
  .hero-bmap__pin { position: absolute; left: -2px; top: 0; width: 4px; transform-origin: 0 0; transform: rotateX(90deg); background: var(--hero-bot); outline: 1px solid var(--hero-bg); }
@@ -1050,7 +1050,7 @@
1050
1050
  transform-origin: 0 0;
1051
1051
  white-space: nowrap;
1052
1052
  font: inherit;
1053
- font-size: 11px;
1053
+ font-size: 12px;
1054
1054
  font-weight: 800;
1055
1055
  letter-spacing: 0.02em;
1056
1056
  line-height: 1.45;
@@ -1064,11 +1064,11 @@
1064
1064
  }
1065
1065
  /* Near the plan's right edge the name sits to the pin's left (nameTagSide) - never clipped. */
1066
1066
  .hero .hero-bmap__name--left { left: auto; right: 6px; transform-origin: 100% 0; border-left: 0; border-right: 3px solid var(--hero-bot); }
1067
- .hero-bmap__floorlabel { position: absolute; left: -14px; top: 50%; transform-origin: 0 0; font-size: 12px; font-weight: 800; padding: 1px 6px; background: var(--hero-text); color: var(--hero-bg); white-space: nowrap; }
1067
+ .hero-bmap__floorlabel { position: absolute; left: -14px; top: 50%; transform-origin: 0 0; font-size: 13px; font-weight: 800; padding: 1px 6px; background: var(--hero-text); color: var(--hero-bg); white-space: nowrap; }
1068
1068
  .hero-bmap__shaft { position: absolute; width: 0; height: 0; transform-style: preserve-3d; transition: opacity 0.6s ease; }
1069
1069
  .hero-bmap__shaftwall { position: absolute; left: 0; top: 0; box-sizing: border-box; transform-origin: top; transform: rotateX(90deg); background: color-mix(in srgb, var(--hero-accent) 28%, transparent); border: 1px solid var(--hero-accent); }
1070
1070
  .hero-bmap__shaftwall--y { transform-origin: left; transform: rotateY(-90deg); background: color-mix(in srgb, var(--hero-accent) 18%, transparent); }
1071
- .hero-bmap__legend { position: absolute; left: 14px; bottom: 12px; z-index: 3; font-size: 11px; opacity: 0.65; display: flex; gap: 14px; white-space: nowrap; }
1071
+ .hero-bmap__legend { position: absolute; left: 14px; bottom: 12px; z-index: 3; font-size: 12px; opacity: 0.65; display: flex; gap: 14px; white-space: nowrap; }
1072
1072
  .hero-bmap__key { display: inline-block; width: 8px; height: 8px; vertical-align: middle; margin-right: 5px; }
1073
1073
  .hero-bmap__key--door { background: var(--hero-accent); }
1074
1074
  .hero-bmap__key--dooropen { background: rgb(var(--v-theme-success)); }
@@ -1076,12 +1076,12 @@
1076
1076
  .hero-bmap__key--bot { background: var(--hero-text); }
1077
1077
  .hero-bmap__key--route { width: 12px; height: 0; border-top: 2px dashed var(--hero-accent); }
1078
1078
  .hero-bmap__key--lane { width: 12px; height: 0; border-top: 2px solid var(--hero-accent); }
1079
- .hero-bmap__aside { display: flex; flex-direction: column; gap: 2px; font-size: 12px; flex: 1 1 260px; max-width: 360px; min-width: 0; }
1079
+ .hero-bmap__aside { display: flex; flex-direction: column; gap: 2px; font-size: 13px; flex: 1 1 260px; max-width: 360px; min-width: 0; }
1080
1080
  .hero-bmap__asidetitle { border-top: 2px solid var(--hero-divider); padding-top: 8px; margin-bottom: 6px; }
1081
1081
  .hero-bmap__legendrow { display: grid; grid-template-columns: 36px 1fr; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--hero-divider); }
1082
1082
  .hero-bmap__chips { display: flex; flex-wrap: wrap; gap: 4px; }
1083
1083
  /* The tone sits on the inner span: Vuetify's [type="button"] reset would win a colour set on the button itself. */
1084
- .hero-bmap__chip { border: 0; padding: 0; background: none; font: inherit; font-size: 11px; font-weight: 600; line-height: 1.45; cursor: pointer; }
1084
+ .hero-bmap__chip { border: 0; padding: 0; background: none; font: inherit; font-size: 12px; font-weight: 600; line-height: 1.45; cursor: pointer; }
1085
1085
  .hero-bmap__chip > span { display: block; padding: 1px 6px; }
1086
1086
  .hero-bmap__tray { margin-top: 8px; padding: 8px 10px; background: var(--hero-surface); border-left: 2px solid var(--hero-divider); }
1087
1087
  .hero-bmap__tray > .hero-aside__title, .hero-bmap__tray > .hero-bmap__chips { margin-bottom: 6px; }
@@ -1097,8 +1097,8 @@
1097
1097
  .hero-seg__kbd { opacity: 0.55; }
1098
1098
  .hero .hero-input.hero-editor__floor { width: auto; min-height: 32px; padding: 4px 26px 4px 8px; }
1099
1099
  .hero .hero-input.hero-editor__zone { width: 220px; min-height: 32px; }
1100
- .hero-editor__hint { font-size: 12px; opacity: 0.7; order: 1; flex-basis: 100%; } /* own line: switching tools never moves the plan */
1101
- .hero-editor__notice { padding: 10px 12px; font-size: 12.5px; border-left: 2px solid var(--hero-accent); background: var(--hero-surface); }
1100
+ .hero-editor__hint { font-size: 13px; opacity: 0.7; order: 1; flex-basis: 100%; } /* own line: switching tools never moves the plan */
1101
+ .hero-editor__notice { padding: 10px 12px; font-size: 14px; border-left: 2px solid var(--hero-accent); background: var(--hero-surface); }
1102
1102
  .hero-editor__notice--ok { border-left-color: rgb(var(--v-theme-success)); }
1103
1103
  .hero-editor__split { display: flex; flex-wrap: wrap; gap: 24px; align-items: stretch; flex: 1; }
1104
1104
  .hero-editor__plan {
@@ -1122,7 +1122,7 @@
1122
1122
  background-repeat: repeat; /* Vuetify resets every element to no-repeat */
1123
1123
  outline: 1px solid var(--hero-divider);
1124
1124
  }
1125
- .hero-editor__scale { position: absolute; right: 8px; bottom: 6px; font-size: 11px; opacity: 0.6; pointer-events: none; font-variant-numeric: tabular-nums; }
1125
+ .hero-editor__scale { position: absolute; right: 8px; bottom: 6px; font-size: 12px; opacity: 0.6; pointer-events: none; font-variant-numeric: tabular-nums; }
1126
1126
  .hero-editor__plan--default { cursor: default; }
1127
1127
  .hero-editor__plan--pointer { cursor: pointer; }
1128
1128
  .hero-editor__plan--move { cursor: move; }
@@ -1139,7 +1139,7 @@
1139
1139
  .hero-editor__planimg, .hero-bmap__planimg { position: absolute; max-width: none; pointer-events: none; user-select: none; opacity: 0.55; object-fit: fill; }
1140
1140
  .hero-editor__measure { stroke: var(--hero-accent); stroke-width: 2; stroke-dasharray: 4 3; }
1141
1141
  .hero-editor__mpoint { position: absolute; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; background: var(--hero-accent); pointer-events: none; }
1142
- .hero-editor__measurebox { display: flex; flex-direction: column; gap: 6px; padding: 8px; border: 1px dashed var(--hero-accent); font-size: 12px; }
1142
+ .hero-editor__measurebox { display: flex; flex-direction: column; gap: 6px; padding: 8px; border: 1px dashed var(--hero-accent); font-size: 13px; }
1143
1143
  .hero-editor__measurein { width: 110px; min-height: 32px; }
1144
1144
  .hero-editor__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
1145
1145
  .hero-editor__wall { stroke: var(--hero-text); stroke-width: 3; stroke-linecap: square; }
@@ -1147,8 +1147,8 @@
1147
1147
  line.hero-editor__sel { stroke: var(--hero-accent); }
1148
1148
  polygon.hero-editor__sel { stroke: var(--hero-accent); stroke-width: 2; stroke-dasharray: none; }
1149
1149
  div.hero-editor__sel { outline: 2px solid var(--hero-accent); }
1150
- .hero-editor__label { position: absolute; display: grid; place-items: center; font-size: 10px; font-weight: 600; pointer-events: none; }
1151
- .hero-editor__lift { position: absolute; box-sizing: border-box; display: grid; place-items: center; font-size: 10px; font-weight: 600; background: color-mix(in srgb, var(--hero-accent) 30%, transparent); border: 1px solid var(--hero-accent); }
1150
+ .hero-editor__label { position: absolute; display: grid; place-items: center; font-size: 12px; font-weight: 600; pointer-events: none; }
1151
+ .hero-editor__lift { position: absolute; box-sizing: border-box; display: grid; place-items: center; font-size: 12px; font-weight: 600; background: color-mix(in srgb, var(--hero-accent) 30%, transparent); border: 1px solid var(--hero-accent); }
1152
1152
  .hero-editor__door { stroke: var(--hero-accent); stroke-width: 4; stroke-linecap: square; }
1153
1153
  line.hero-editor__door.hero-editor__sel { stroke: var(--hero-text); }
1154
1154
  .hero-editor__swing { fill: none; stroke: var(--hero-text); stroke-width: 1; stroke-dasharray: 3 2; opacity: 0.7; }
@@ -1165,10 +1165,10 @@ line.hero-editor__door.hero-editor__sel { stroke: var(--hero-text); }
1165
1165
  }
1166
1166
  .hero-editor__marquee { position: absolute; border: 1px dashed var(--hero-accent); background: color-mix(in srgb, var(--hero-accent) 8%, transparent); pointer-events: none; }
1167
1167
  .hero-editor .hero-seg__opt--redo { font-weight: 400; }
1168
- .hero-editor__grid { font: inherit; font-size: 12px; padding: 7px 8px; color: inherit; background: transparent; border: 0; border-left: 1px solid var(--hero-divider); cursor: pointer; }
1168
+ .hero-editor__grid { font: inherit; font-size: 13px; padding: 7px 8px; color: inherit; background: transparent; border: 0; border-left: 1px solid var(--hero-divider); cursor: pointer; }
1169
1169
  .hero-editor__grid option { color: var(--hero-text); background: var(--hero-surface); }
1170
1170
  .hero-editor__actions { display: flex; flex-wrap: wrap; gap: 6px; }
1171
- .hero-editor__act { font: inherit; font-size: 12px; padding: 6px 10px; min-height: 32px; color: inherit; background: transparent; border: 1px solid var(--hero-divider); cursor: pointer; }
1171
+ .hero-editor__act { font: inherit; font-size: 13px; padding: 6px 10px; min-height: 32px; color: inherit; background: transparent; border: 1px solid var(--hero-divider); cursor: pointer; }
1172
1172
  .hero-editor__act:hover { background: color-mix(in srgb, var(--hero-text) 7%, transparent); }
1173
1173
  .hero-editor__act:disabled { opacity: 0.45; cursor: not-allowed; }
1174
1174
  .hero-editor__act--del { color: var(--hero-accent); }
@@ -1185,38 +1185,38 @@ line.hero-editor__lane.hero-editor__sel { stroke: var(--hero-text); stroke-width
1185
1185
  .hero-editor__wp--holding { background: var(--hero-accent); }
1186
1186
  .hero-editor__wp--from { box-shadow: 0 0 0 4px color-mix(in srgb, var(--hero-accent) 35%, transparent); }
1187
1187
  div.hero-editor__wp.hero-editor__sel, div.hero-editor__fid.hero-editor__sel { outline: 2px solid var(--hero-text); outline-offset: 2px; }
1188
- .hero-editor__wpname { position: absolute; left: 12px; top: -9px; white-space: nowrap; font-size: 10.5px; font-weight: 700; line-height: 1.4; padding: 0 4px; background: var(--hero-surface); color: var(--hero-text); border: 1px solid var(--hero-divider); }
1188
+ .hero-editor__wpname { position: absolute; left: 12px; top: -9px; white-space: nowrap; font-size: 12px; font-weight: 700; line-height: 1.4; padding: 0 4px; background: var(--hero-surface); color: var(--hero-text); border: 1px solid var(--hero-divider); }
1189
1189
  .hero-editor__fid { position: absolute; width: 16px; height: 16px; margin: -8px 0 0 -8px; box-sizing: border-box; border: 2px solid var(--hero-text); border-radius: 50%; pointer-events: none; background: linear-gradient(var(--hero-text), var(--hero-text)) center / 2px 100% no-repeat, linear-gradient(var(--hero-text), var(--hero-text)) center / 100% 2px no-repeat; }
1190
- .hero-editor__mlabel { position: absolute; transform: translate(-50%, -130%); white-space: nowrap; font-size: 10.5px; font-weight: 700; padding: 0 4px; background: var(--hero-accent); color: #fff; pointer-events: none; }
1190
+ .hero-editor__mlabel { position: absolute; transform: translate(-50%, -130%); white-space: nowrap; font-size: 12px; font-weight: 700; padding: 0 4px; background: var(--hero-accent); color: #fff; pointer-events: none; }
1191
1191
  .hero-editor__cabindoor { position: absolute; height: 4px; background: rgb(var(--v-theme-success)); pointer-events: none; }
1192
1192
  .hero-editor__cabindoor--shut { background: color-mix(in srgb, var(--hero-text) 30%, transparent); }
1193
1193
  .hero-editor__lift { transform-origin: center; }
1194
1194
  .hero-editor__lift--passes { opacity: 0.45; border-style: dashed; }
1195
- .hero-editor__graphpick { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; }
1195
+ .hero-editor__graphpick { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; }
1196
1196
  .hero-editor__zoomread { min-width: 56px; font-variant-numeric: tabular-nums; }
1197
- .hero-editor__field { display: flex; flex-direction: column; gap: 3px; font-size: 11.5px; }
1197
+ .hero-editor__field { display: flex; flex-direction: column; gap: 3px; font-size: 13px; }
1198
1198
  .hero-editor__field > span { opacity: 0.75; }
1199
1199
  .hero .hero-editor__field .hero-input { min-height: 32px; width: 100%; }
1200
1200
  .hero-editor__row3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(84px, 1fr)); gap: 8px; }
1201
- .hero-editor__sub { font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; opacity: 0.7; margin-top: 4px; }
1201
+ .hero-editor__sub { font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; opacity: 0.7; margin-top: 4px; }
1202
1202
  .hero-editor__cabinrow { display: grid; grid-template-columns: 1fr 1fr auto; gap: 4px; align-items: center; padding-bottom: 6px; border-bottom: 1px dashed var(--hero-divider); }
1203
- .hero-editor__cabinw { display: flex; align-items: center; gap: 4px; font-size: 11.5px; }
1203
+ .hero-editor__cabinw { display: flex; align-items: center; gap: 4px; font-size: 13px; }
1204
1204
  .hero .hero-editor__cabinrow .hero-input { min-height: 30px; padding: 3px 6px; width: 100%; min-width: 0; }
1205
- .hero-editor__grid2 { border-collapse: collapse; font-size: 11.5px; }
1205
+ .hero-editor__grid2 { border-collapse: collapse; font-size: 13px; }
1206
1206
  .hero-editor__grid2 th, .hero-editor__grid2 td { padding: 3px 6px; border-bottom: 1px solid var(--hero-divider); text-align: center; }
1207
1207
  .hero-editor__grid2 th:first-child, .hero-editor__grid2 td:first-child { text-align: left; font-weight: 700; }
1208
1208
  .hero-editor__checks { display: flex; flex-direction: column; gap: 4px; }
1209
1209
  .hero-editor__checks label, .hero-editor__check2 { display: flex; gap: 6px; align-items: center; cursor: pointer; }
1210
- .hero-editor__check { font: inherit; font-size: 12px; text-align: left; padding: 6px 8px; color: inherit; background: color-mix(in srgb, rgb(var(--v-theme-warning)) 12%, transparent); border: 0; border-left: 3px solid rgb(var(--v-theme-warning)); cursor: pointer; }
1210
+ .hero-editor__check { font: inherit; font-size: 13px; text-align: left; padding: 6px 8px; color: inherit; background: color-mix(in srgb, rgb(var(--v-theme-warning)) 12%, transparent); border: 0; border-left: 3px solid rgb(var(--v-theme-warning)); cursor: pointer; }
1211
1211
  .hero-editor__check--error { background: color-mix(in srgb, rgb(var(--v-theme-error)) 12%, transparent); border-left-color: rgb(var(--v-theme-error)); }
1212
1212
  .hero-editor__graphrow { display: grid; grid-template-columns: 1fr 1fr auto auto; gap: 4px; align-items: center; padding-left: 4px; border-left: 3px solid transparent; }
1213
1213
  .hero-editor__graphrow--on { border-left-color: var(--hero-accent); }
1214
1214
  .hero .hero-editor__graphrow .hero-input { min-height: 30px; padding: 3px 6px; width: 100%; min-width: 0; }
1215
- .hero-editor__details summary { cursor: pointer; font-size: 11.5px; opacity: 0.8; }
1215
+ .hero-editor__details summary { cursor: pointer; font-size: 13px; opacity: 0.8; }
1216
1216
  .hero-editor__details[open] { display: flex; flex-direction: column; gap: 6px; }
1217
1217
  .hero-editor__list { display: flex; flex-direction: column; max-height: 260px; overflow-y: auto; }
1218
1218
  .hero-editor__cursor { position: absolute; width: 14px; height: 14px; margin: -7px 0 0 -7px; border: 2px solid var(--hero-accent); pointer-events: none; }
1219
- .hero-editor__aside { font-size: 12px; display: flex; flex-direction: column; gap: 8px; flex: 1 1 260px; max-width: 360px; min-width: 0; align-self: stretch; }
1219
+ .hero-editor__aside { font-size: 13px; display: flex; flex-direction: column; gap: 8px; flex: 1 1 260px; max-width: 360px; min-width: 0; align-self: stretch; }
1220
1220
  .hero-editor__asidetitle { border-top: 2px solid var(--hero-divider); padding-top: 8px; }
1221
1221
  .hero-editor__row { display: flex; justify-content: space-between; gap: 8px; border: 0; border-bottom: 1px solid var(--hero-divider); padding: 4px 0; font: inherit; color: inherit; background: transparent; text-align: left; cursor: pointer; }
1222
1222
  .hero-editor__row:hover { background: color-mix(in srgb, var(--hero-text) 5%, transparent); }
@@ -1229,9 +1229,9 @@ div.hero-editor__wp.hero-editor__sel, div.hero-editor__fid.hero-editor__sel { ou
1229
1229
  .hero-lift { border-top: 2px solid var(--hero-divider); display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 0 20px; align-items: start; }
1230
1230
  .hero-lift--skel { display: flex; flex-direction: column; gap: 6px; padding-top: 8px; }
1231
1231
  .hero-lift__head { grid-column: 1 / -1; display: flex; align-items: baseline; gap: 10px; padding: 8px 0; min-width: 0; }
1232
- .hero-lift__name { font-weight: 800; font-size: 16px; white-space: nowrap; }
1233
- .hero-lift__sub { opacity: 0.6; font-size: 12px; white-space: nowrap; }
1234
- .hero-lift__car { margin-left: auto; display: flex; align-items: center; gap: 6px; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.7; white-space: nowrap; overflow: hidden; }
1232
+ .hero-lift__name { font-weight: 800; font-size: 17px; white-space: nowrap; }
1233
+ .hero-lift__sub { opacity: 0.6; font-size: 13px; white-space: nowrap; }
1234
+ .hero-lift__car { margin-left: auto; display: flex; align-items: center; gap: 6px; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.7; white-space: nowrap; overflow: hidden; }
1235
1235
  .hero-lift__cardot { width: 5px; height: 5px; flex: none; }
1236
1236
  .hero-lift__cardot--ink { background: var(--hero-text); }
1237
1237
  .hero-lift__cardot--accent { background: var(--hero-accent); }
@@ -1239,7 +1239,7 @@ div.hero-editor__wp.hero-editor__sel, div.hero-editor__fid.hero-editor__sel { ou
1239
1239
  .hero-lift__cardot--blink { animation: heroBlink 1s ease-in-out infinite; }
1240
1240
  .hero-lift__shaft { position: relative; margin: 4px 0 8px; display: grid; grid-template-columns: 44px 1fr; }
1241
1241
  .hero-lift__labels { position: relative; }
1242
- .hero-lift__floor { position: absolute; left: 0; right: 0; height: 0; display: flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 700; opacity: 0.55; }
1242
+ .hero-lift__floor { position: absolute; left: 0; right: 0; height: 0; display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; opacity: 0.55; }
1243
1243
  .hero-lift__floor--lit { opacity: 1; }
1244
1244
  .hero-lift__floorname { width: 20px; white-space: nowrap; }
1245
1245
  .hero-lift__waiting { width: 7px; height: 7px; flex: none; background: rgb(var(--v-theme-info)); animation: heroBlink 1.4s ease-in-out infinite; }
@@ -1250,7 +1250,7 @@ div.hero-editor__wp.hero-editor__sel, div.hero-editor__fid.hero-editor__sel { ou
1250
1250
  .hero-lift__carbox--ink { border-color: var(--hero-text); color: var(--hero-text); }
1251
1251
  .hero-lift__carbox--accent { border-color: var(--hero-accent); color: var(--hero-accent); }
1252
1252
  .hero-lift__carbox--neutral { border-color: color-mix(in srgb, var(--hero-text) 45%, transparent); color: color-mix(in srgb, var(--hero-text) 45%, transparent); }
1253
- .hero-lift__carlabel { font-size: 9px; font-weight: 800; letter-spacing: 0.06em; white-space: nowrap; }
1253
+ .hero-lift__carlabel { font-size: 12px; font-weight: 800; letter-spacing: 0.06em; white-space: nowrap; }
1254
1254
  .hero-lift__doors { position: absolute; inset: 0; background: var(--hero-surface); transform-origin: left; }
1255
1255
  .hero-lift__rows { min-width: 0; }
1256
1256
  .hero-lift__empty { opacity: 0.6; padding: 12px 0; }
@@ -1260,10 +1260,10 @@ div.hero-editor__wp.hero-editor__sel, div.hero-editor__fid.hero-editor__sel { ou
1260
1260
  .hero-lift-row--act { grid-template-columns: 28px 1fr auto auto auto; }
1261
1261
  .hero-lift-row__who { min-width: 0; }
1262
1262
  .hero-lift-row__who .hero-lift-row__route { white-space: nowrap; }
1263
- .hero-lift__list .hero-lift-row__wait { font-size: 12px; white-space: nowrap; }
1264
- .hero .hero-lift-row__release { border: 0; background: none; padding: 0; font: inherit; font-size: 11px; font-weight: 600; color: var(--hero-accent); cursor: pointer; white-space: nowrap; }
1265
- .hero-lift__ask { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 10px; font-size: 12px; }
1266
- .hero-lift__simnote { font-size: 11px; }
1263
+ .hero-lift__list .hero-lift-row__wait { font-size: 13px; white-space: nowrap; }
1264
+ .hero .hero-lift-row__release { border: 0; background: none; padding: 0; font: inherit; font-size: 12px; font-weight: 600; color: var(--hero-accent); cursor: pointer; white-space: nowrap; }
1265
+ .hero-lift__ask { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 10px; font-size: 13px; }
1266
+ .hero-lift__simnote { font-size: 12px; }
1267
1267
  @media (max-width: 600px) {
1268
1268
  .hero-lift { grid-template-columns: 1fr; }
1269
1269
  .hero-bmap__bar { right: 14px; }
@@ -1307,12 +1307,12 @@ div.hero-editor__wp.hero-editor__sel, div.hero-editor__fid.hero-editor__sel { ou
1307
1307
 
1308
1308
  /* PadBot security extras: live video button row under the facts. */
1309
1309
  .hero-detail__video { margin: 10px 0 4px; }
1310
- .hero-detail__lag { margin: 6px 0 0; font-size: 12px; }
1310
+ .hero-detail__lag { margin: 6px 0 0; font-size: 13px; }
1311
1311
 
1312
1312
  /* A kept (stale) reading: faded, no ping - never drawn as live (owner 2026-09-26). */
1313
1313
  .hero-bot--stale, .hero-me--stale { opacity: 0.45; }
1314
1314
  .hero-bot--stale .hero-bot__ping, .hero-bot--stale .hero-bmap__ping, .hero-me--stale .hero-me__ping, .hero-me--stale .hero-me__radar { display: none; }
1315
- .hero-sched__hint { font-size: 12px; font-style: italic; opacity: 0.75; margin: 4px 0; }
1315
+ .hero-sched__hint { font-size: 13px; font-style: italic; opacity: 0.75; margin: 4px 0; }
1316
1316
 
1317
1317
  /* Live view / manual control / point picker dialogs */
1318
1318
  .hero-live__head { display: flex; align-items: center; gap: 8px; }
@@ -1332,4 +1332,4 @@ div.hero-editor__wp.hero-editor__sel, div.hero-editor__fid.hero-editor__sel { ou
1332
1332
  .hero-livepanel { display: flex; flex-direction: column; gap: 8px; padding: 12px; background: var(--hero-surface); border: 1px solid color-mix(in srgb, var(--hero-text) 12%, transparent); }
1333
1333
  .hero-livepanel .hero-live__head { flex-wrap: wrap; }
1334
1334
  .hero-livepanel .hero-dialog__actions { margin-top: 0; }
1335
- .hero-live__stage .hero-notice { color: var(--hero-text); font-size: 13px; max-width: 90%; }
1335
+ .hero-live__stage .hero-notice { color: var(--hero-text); font-size: 14px; max-width: 90%; }
@@ -742,7 +742,7 @@ function drawZone(
742
742
 
743
743
  const c = polygonCentre(item.zone.points);
744
744
  const at = projectPoint(c.x, c.y, item.elevationM, view);
745
- ctx.font = "12px sans-serif";
745
+ ctx.font = "14px sans-serif";
746
746
  ctx.textAlign = "center";
747
747
  ctx.textBaseline = "middle";
748
748
  ctx.fillStyle = "rgba(20,70,50,0.95)";
@@ -101,9 +101,9 @@ watch(() => props.robotId, () => load(1), { immediate: true });
101
101
  .hero-patrolhist--compact .hero-sched__row { grid-template-columns: 76px minmax(0, 1fr) auto; }
102
102
  .hero-patrolhist__row { width: 100%; text-align: left; background: none; border: 0; cursor: pointer; color: inherit; font: inherit; }
103
103
  .hero-patrolhist__visits { padding: 4px 0 8px 16px; }
104
- .hero-patrolhist__visit { display: flex; flex-wrap: wrap; gap: 12px; padding: 4px 0; font-size: 12px; }
104
+ .hero-patrolhist__visit { display: flex; flex-wrap: wrap; gap: 12px; padding: 4px 0; font-size: 13px; }
105
105
  .hero-patrolhist__visit a { color: inherit; text-decoration: underline; }
106
- .hero-patrolhist__foot { display: flex; align-items: center; gap: 8px; font-size: 12px; margin-top: 6px; }
106
+ .hero-patrolhist__foot { display: flex; align-items: center; gap: 8px; font-size: 13px; margin-top: 6px; }
107
107
  .hero-patrolhist__success { color: rgb(var(--v-theme-success)); }
108
108
  .hero-patrolhist__warning { color: rgb(var(--v-theme-warning)); }
109
109
  .hero-patrolhist__info { color: rgb(var(--v-theme-info)); }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@7365admin1/layer-common",
3
3
  "license": "MIT",
4
4
  "type": "module",
5
- "version": "4.106.0",
5
+ "version": "4.107.0",
6
6
  "author": "7365admin1",
7
7
  "main": "./nuxt.config.ts",
8
8
  "//files": "What a consumer extending this layer actually loads. Without this npm ships the whole working tree - the changesets, the CI workflows, the render harness in tools/ and any scratch directory that happened to exist at publish time. Nuxt resolves a layer by directory, so every runtime directory below has to stay listed; adding a new top-level runtime directory means adding it here too.",