










.acard-mute { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-2); }




.acard-go { display: inline-flex; align-items: baseline; gap: var(--sp-2); text-align: start; }

.inc-body { margin: 0; color: var(--muted); }
.inc-label { font-size: var(--fs-xs); color: var(--muted); letter-spacing: .04em; margin-block-end: var(--sp-3); }
.inc-measure { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--sp-6); margin-block-start: var(--sp-5); flex-wrap: wrap; }
.inc-value { font-size: var(--fs-3xl); font-weight: 650; line-height: var(--lh-num); }
.inc-unit { font-size: var(--fs-l); font-weight: var(--fw-med); color: var(--muted); }
.inc-chart { flex: 1; min-width: 12rem; }
.chart { width: 100%; height: 90px; display: block; }
.chart polyline { stroke: var(--accent); vector-effect: non-scaling-stroke; }
.chart.crit polyline { stroke: var(--crit); }
.chart.crit .spark-end { fill: var(--crit); }
.chart-threshold { stroke: var(--muted); vector-effect: non-scaling-stroke; }


.inc-renter > .between { flex-wrap: wrap; }
.inc-renter > .between > .inc-label { white-space: nowrap; margin-block-end: 0; }
.inc-renter .inc-phone { font-size: var(--fs-l); font-weight: var(--fw-semi); }


.inc-template { border: 1px solid var(--line); border-radius: var(--r); padding: var(--sp-5); background: var(--bg2); }
.inc-template p { margin: var(--sp-3) 0; }

.inc-template.unreviewed { opacity: .7; border-style: dashed; }


.tl { display: flex; flex-direction: column; }
.tl-item { display: flex; gap: var(--sp-4); padding-block: var(--sp-3); font-size: var(--fs-s); position: relative; }
.tl-item + .tl-item { border-block-start: 1px solid var(--line); }
.tl-dot { width: 8px; height: 8px; margin-block-start: 6px; border-radius: var(--r-pill); background: var(--line); flex: none; }
.tl-item.opened .tl-dot, .tl-item.escalated .tl-dot { background: var(--crit); }
.tl-item.acked .tl-dot, .tl-item.assigned .tl-dot { background: var(--ok); }
.tl-item.notified .tl-dot { background: var(--accent); }
.tl-item.now .tl-dot { background: var(--warn); animation: pulse var(--pulse-dot) infinite; }
.tl-time { display: inline-block; min-width: 4.6rem; margin-inline-end: var(--sp-4); color: var(--muted); }


.vp { display: flex; flex-direction: column; gap: var(--sp-5); }



.vp-body { display: flex; flex-direction: column; gap: var(--sp-5); }
.vp .card { margin: 0; }


.vp > .vp-head { margin-block-end: 0; padding-block-end: var(--sp-4); }


.vp-head .veh-h1 a { color: inherit; text-decoration: none; }
.vp-head .veh-h1 a:hover { text-decoration: underline; }




.vp-basic-v { font-size: var(--fs-s); font-weight: var(--fw-med); }





.vp-tabs {
  display: flex;
  gap: var(--sp-2);
  overflow-x: auto;
  scrollbar-width: none;
  border-block-end: 1px solid var(--line);
}
.vp-tabs::-webkit-scrollbar { display: none; }
.vp-tab {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  flex: 0 0 auto;
  min-block-size: 44px;
  padding: 0 var(--sp-5);
  font-size: var(--fs-s);
  font-weight: var(--fw-med);
  color: var(--muted);
  text-decoration: none;
  white-space: nowrap;
  border-block-end: 2px solid transparent;
}
.vp-tab:hover { color: var(--ink); }


.vp-tab.active { color: var(--ink); border-block-end-color: var(--accent); }


.vp-count {
  min-inline-size: 20px;
  block-size: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding-inline: 5px;
  border-radius: var(--r-pill);
  background: var(--accent-soft);
  font-size: var(--fs-xs);
}





.vp-tabs-wrap { position: relative; min-width: 0; }
.vp-tabs-wrap::before, .vp-tabs-wrap::after {
  content: ''; position: absolute; inset-block: 0 1px; inline-size: var(--sp-8);
  pointer-events: none; opacity: 0; transition: opacity var(--t) var(--ease);
}
.vp-tabs-wrap::after  { inset-inline-end: 0;   background: linear-gradient(to right, transparent, var(--bg)); }
.vp-tabs-wrap::before { inset-inline-start: 0; background: linear-gradient(to left,  transparent, var(--bg)); }
.vp-tabs-wrap.can-right::after, .vp-tabs-wrap.can-left::before { opacity: 1; }
.vp-tab:first-child { padding-inline-start: 0; }










.vp-pd-wrap { min-width: 0; }


.vp-pd-list { display: grid; grid-template-columns: 8px minmax(0, 1fr) fit-content(40%) 16px; column-gap: var(--sp-3); }
.vp-pd-row {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: subgrid;
  align-items: center;
  inline-size: 100%;
  min-width: 0;
  min-block-size: 44px;
  margin: 0;
  padding: var(--sp-4) 0;
  box-sizing: border-box;
  font: inherit;
  text-align: start;
  background: none;
  border: 0;
  border-block-end: 1px solid var(--line);
  border-radius: 0;
  color: inherit;
  cursor: pointer;
  text-decoration: none;
}
.vp-pd-row:last-child { border-block-end-color: transparent; }
.vp-pd-row:hover { color: var(--accent); background: none; filter: none; }
.vp-pd-flat { cursor: default; }
.vp-pd-flat:hover { color: inherit; }


.vp-pd-dot { inline-size: 8px; block-size: 8px; border-radius: 50%; background: var(--muted); align-self: center; }
.vp-pd-dot.crit { background: var(--crit); }
.vp-pd-dot.warn { background: var(--warn); }
.vp-pd-dot.info { background: var(--accent); }
.vp-pd-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.vp-pd-kind, .vp-pd-at { display: block; min-width: 0; font-size: var(--fs-xs); line-height: var(--lh-text);
                         color: var(--muted); min-block-size: calc(var(--fs-xs) * var(--lh-text)); }

.vp-pd-title {
  font-size: var(--fs-s);
  line-height: var(--lh-text);
  color: var(--ink);
  min-width: 0;
  white-space: normal;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
}
.vp-pd-row:hover .vp-pd-title { color: inherit; }


.vp-pd-title.vp-pd-one { display: block; white-space: nowrap; text-overflow: ellipsis; }







.vp-pd-kind .vp-parts { flex-wrap: nowrap; }
.vp-pd-kind .vp-part { flex: 0 0 auto; white-space: nowrap; }
.vp-pd-kind .vp-part:last-child:not(:first-child) { flex: 0 1 auto; min-width: 0; }
.vp-pd-kind .vp-part > span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vp-pd-at { block-size: calc(var(--fs-xs) * var(--lh-text)); overflow: hidden; }
.vp-pd-at .vp-parts { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vp-pd-at .vp-part { display: inline; white-space: nowrap; }
.vp-pd-at .vp-part > span { display: inline; }

.vp-pd-chip { justify-self: end; align-self: center; white-space: nowrap; display: block; box-sizing: border-box;
               max-inline-size: 100%; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.vp-pd-row > .dmg-caret { justify-self: end; align-self: center; margin: 0; }

.vp-pd-renew { align-self: flex-start; margin-block-start: var(--sp-1); min-block-size: 32px; font-size: var(--fs-s);
               padding-block: 0; }

.doc-renew-err { color: var(--crit); margin: 0; }
.doc-renew-err:empty { display: none; }



.vp-tasks { display: flex; flex-direction: column; gap: var(--sp-5); }
.vp-tasks-done { opacity: .72; }




.vph-judge-open { align-self: flex-start; }

.veh { display: flex; flex-direction: column; gap: var(--sp-5); }
.veh .card { margin: 0; }




.veh-head { padding-block-end: var(--sp-5); margin-block-end: var(--sp-6);
            border-block-end: 1px solid var(--line); }
.veh-head .row { gap: var(--sp-4); }
.veh-h1 { font-size: var(--fs-2xl); margin: 0; }
















.vp { --vp-ib: 44px; --vp-ib-inset: calc((var(--vp-ib) - 20px) / 2); }


.vp .veh-head.vp-head, .vp .veh-head.vp-head *, .vp .vp-pd-wrap .vp-pd-list *, .vp .vp-tabs-wrap .vp-tabs * {
  overflow-wrap: normal; word-break: normal; hyphens: manual;
}



.vp .vp-ib { inline-size: var(--vp-ib); block-size: var(--vp-ib); flex: 0 0 auto; display: inline-flex;
             align-items: center; justify-content: center; padding: 0; margin: 0; border: 0;
             border-radius: var(--r-s); background: none; color: var(--muted); cursor: pointer; }
.vp .vp-ib svg { inline-size: 20px; block-size: 20px; display: block; flex: none; }
.vp .vp-ib:hover { background: var(--hover); color: var(--ink); filter: none; }
.vp .vp-ib[aria-expanded='true'] { background: var(--accent-soft); color: var(--accent); }
.vp .vp-ib.vp-ib-act, .vp .vp-ib.vp-ib-act:hover { color: var(--accent); }



.vp-headline { display: grid; grid-template-columns: var(--vp-ib) minmax(0, 1fr) var(--vp-ib);
               column-gap: var(--sp-3); align-items: start; min-block-size: var(--vp-ib); }
.vp-headline:not(:has(> .vp-more)) { grid-template-columns: var(--vp-ib) minmax(0, 1fr); }
.vp-headline > .vp-ib { align-self: start; }
.vp-title { display: flex; flex-wrap: wrap; align-items: center; column-gap: var(--sp-3); row-gap: var(--sp-1);
            min-block-size: var(--vp-ib); min-width: 0; }


.vp-title .veh-h1 { white-space: normal; overflow-wrap: anywhere; flex: 0 1 auto; min-inline-size: 0; max-inline-size: 100%; margin: 0; line-height: var(--lh-text); }

.sh-body button.link.ord-undo { min-block-size: 44px; display: inline-flex; align-items: center; }
.vp-title > .pill { flex: 0 0 auto; white-space: nowrap; }
.vp-chip.ok { background: var(--ok-soft); color: var(--ok); }



.vp-idline { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--sp-3); align-items: center;
             min-block-size: var(--vp-ib); }
.vp-subline { min-width: 0; line-height: var(--lh-text); }
.vp-idline > .vp-subline:empty { visibility: hidden; }
.vp-idacts { display: flex; align-items: center; gap: var(--sp-3); min-width: 0; }
.vp .vp-add-damage { min-block-size: var(--vp-ib); padding: 0 var(--vp-ib-inset); margin: 0; border-color: transparent;
                     white-space: nowrap; font-size: var(--fs-s); }



.vp-state { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: var(--sp-1); margin-block-start: var(--sp-4); }
.vp-state > * { min-width: 0; }
.vp-state > .vp-flow, .vp-state > .vp-actions { margin-block-start: calc(var(--sp-5) - var(--sp-1)); }
.vp-line { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--sp-3); align-items: center;
           line-height: var(--lh-text); }
.vp-line:not(:has(.vp-icos)) { grid-template-columns: minmax(0, 1fr); }
.vp-l2:has(.vp-icos) { min-block-size: var(--vp-ib); }
.vp-l1 { font-size: var(--fs-m); font-weight: var(--fw-semi); color: var(--ink); }
.vp-l2 { font-size: var(--fs-s); color: var(--ink); }
.vp-l3 { font-size: var(--fs-s); color: var(--muted); }




.vp-parts-clip { display: block; overflow: hidden; min-width: 0; --sep: var(--sp-5); }
.vp-parts { display: flex; flex-wrap: wrap; row-gap: 0; margin-inline-start: calc(-1 * var(--sep)); }
.vp-part { position: relative; margin-inline-start: var(--sep); min-width: 0; flex: 0 1 auto;
           white-space: normal; overflow-wrap: normal; word-break: normal; hyphens: manual; }
.vp-part::before { content: '·'; position: absolute; inset-inline-start: calc(-1 * var(--sep)); inline-size: var(--sep);
                   text-align: center; }
.vp-icos { display: flex; gap: 0; justify-self: end; }




.vp-state > .vp-stale { margin-block-start: var(--sp-2); }
.vp-flow { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: var(--sp-4); }
.vp-flow > * { margin: 0; min-width: 0; }





.vp-actions { min-width: 0; }



.vp-actions .vp-step-row { display: flex; flex-wrap: nowrap; grid-template-columns: none; gap: var(--sp-2);
                           align-items: stretch; container-type: normal; }
.vp-actions .vp-step-row > button { min-block-size: 52px; min-inline-size: 0; inline-size: auto; margin: 0;
                                     align-self: stretch; }
.vp-actions .vp-step-row > .step-back { flex: 0 1 auto; max-inline-size: 40%; padding-inline: var(--sp-4);
                                        display: flex; flex-direction: column; align-items: flex-start;
                                        justify-content: center; gap: 2px; text-align: start; }
.vp-actions .vp-step-row > .step-next { font-weight: var(--fw-semi); }
.vp-actions .vp-step-row .step-back-sub { font-size: var(--fs-xs); font-weight: 400; color: var(--muted); opacity: 1;
                                          text-align: start; max-inline-size: none; overflow: visible; }
.vp-actions .vp-step-row .step-back-short { display: none; }
.vp-actions .vp-step-row > .step-next { flex: 1 1 0; min-inline-size: 55%; }
.vp-actions .vp-step-row > .step-next:only-child { min-inline-size: 100%; }

.vp-actions .vp-step-row > .step-back:only-child { flex: 1 1 100%; max-inline-size: none; }
.vp-actions .step-alts > button { flex: 1 1 100%; min-block-size: 48px; margin: 0; align-self: stretch; }
.vp-actions .vp-step-row .step-back-main, .vp-actions .vp-step-row .step-back-sub { white-space: nowrap; }
@media (max-width: 480px) {
  .vp-actions .vp-step-row .step-back-long { display: none; }
  .vp-actions .vp-step-row .step-back-short { display: inline; }
}



.vp { --vp-actions-max: 30rem; }
@media (min-width: 720px) {

  .vp .step.vp-actions { display: flex; flex-direction: row; flex-wrap: nowrap; gap: var(--sp-2); align-items: stretch;
                         max-inline-size: var(--vp-actions-max); }
  .vp .step.vp-actions > .vp-step-row { flex: 3 1 0; min-inline-size: 0; }
  .vp .step.vp-actions > .step-alts { flex: 2 1 0; min-inline-size: 0; display: flex; flex-wrap: nowrap; margin: 0; }
  .vp .step.vp-actions .step-alts > button { min-block-size: 52px; }

  .vp .step.vp-actions .vp-step-row .step-back-long { display: none; }
  .vp .step.vp-actions .vp-step-row .step-back-short { display: inline; }

  .vp-tabs { flex-wrap: wrap; overflow-x: visible; row-gap: 0; }

  .veh-right .tiles { display: flex; flex-wrap: wrap; }
  .veh-right .tiles > * { flex: 1 1 11rem; min-width: 0; }

  .vp-flow .rflag-stage-row { max-inline-size: var(--vp-actions-max); }
}


.vp-flow .rflag-dc-open .rflag-stage-row > button { min-block-size: 52px; margin: 0; }
.vp-flow .rflag-dc-open .rflag-line-act > p { margin: 0; }


.vp-part.vp-part-link { color: var(--accent); text-decoration: none; }
.vp-part.vp-part-link:hover { text-decoration: underline; }
.veh-cols { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: var(--sp-5); align-items: start; }
.veh-left, .veh-right { display: flex; flex-direction: column; gap: var(--sp-5); min-width: 0; }


.veh-h2 { margin: 0; }
.veh-sketch { padding: var(--sp-4) var(--sp-5); }


.veh-img { display: flex; flex-direction: column; gap: var(--sp-2); margin-block-end: var(--sp-3); }
.veh-img-photo { display: block; inline-size: 100%; max-block-size: 220px; object-fit: contain;
                 border-radius: var(--r-s); }

.veh-img-frame, .veh-img-cand-wrap { position: relative; }
.veh-img-file { display: none; }
.veh-img-panel { display: flex; flex-direction: column; gap: var(--sp-2); }
.veh-img-frame { align-self: stretch; }
.veh-img-info { position: absolute; inset-block-end: 4px; inset-inline-end: 4px; }
.veh-img-i { inline-size: 22px; block-size: 22px; padding: 0; border: 0; border-radius: var(--r-pill);
             background: var(--card); color: var(--muted); opacity: .85; font-size: 14px; line-height: 22px;
             cursor: pointer; }
.veh-img-pop { display: none; position: absolute; inset-block-end: 26px; inset-inline-end: 0; z-index: 5;
               inline-size: max-content; max-inline-size: min(280px, 80vw); padding: var(--sp-2);
               background: var(--card); border: 1px solid var(--line); border-radius: var(--r-s);
               font-size: 12px; overflow-wrap: anywhere; }
.veh-img-info.open .veh-img-pop, .veh-img-info:hover .veh-img-pop,
.veh-img-info:focus-within .veh-img-pop { display: block; }
.veh-img-actions { flex-wrap: wrap; gap: var(--sp-2); }
.veh-img-cands { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.veh-img-cand { padding: 0; border: 2px solid var(--line); border-radius: var(--r-s); background: none;
                inline-size: 88px; block-size: 60px; overflow: hidden; cursor: pointer; }
.veh-img-cand.on { border-color: var(--ink); }
.veh-img-cand img { inline-size: 100%; block-size: 100%; object-fit: cover; display: block; }
.veh-model-pick { display: flex; flex-direction: column; gap: var(--sp-2); }
.veh-model-list { display: flex; flex-wrap: wrap; gap: var(--sp-2); max-block-size: 260px; overflow-y: auto; }




.veh-map .map-view { height: 260px; }
.veh-map-when { margin-block-start: var(--sp-3); }



.veh-map .map-label { display: none; }



.poi-chips { margin-block-start: var(--sp-4); }



.chip-out { margin-inline-start: auto; color: var(--accent); }
.chip-out:hover { color: var(--accent); border-color: var(--accent); text-decoration: none; }

.sketch { width: 100%; max-width: 640px; height: auto; display: block; margin-inline: auto; }

@media (max-width: 1099px) {


  .veh-cols { grid-template-columns: minmax(0, 1fr); }
  .veh-left { position: static; }
}


.sk-body { fill: var(--sk-body); }
.sk-line { fill: none; stroke: var(--ink); stroke-width: 3; stroke-linejoin: round; }
.sk-line.thin { stroke-width: 2.4; }
.sk-line.cap { stroke-linecap: round; }
.sk-ground { stroke: var(--line); stroke-width: 2; stroke-linecap: round; }
.sk-glass { fill: var(--accent); fill-opacity: .10; stroke: var(--ink); stroke-width: 2.4; stroke-linejoin: round; }
.sk-leader { stroke: var(--line); stroke-width: 1.3; fill: none; }


.sk-cap { fill: var(--muted); font-size: 15px; letter-spacing: .06em; }
.sk-value { fill: var(--ink); font-size: 21px; font-weight: 600; }

.sk-dot { fill: var(--accent); }
.sk-halo { fill: var(--accent); opacity: .14; animation: breathe var(--pulse-marker) ease-in-out infinite; }
.sk-marker.quiet .sk-dot { fill: var(--muted); }
.sk-marker.quiet .sk-halo { display: none; }
.sk-marker.quiet .sk-value { fill: var(--muted); }
.sk-marker.crit .sk-dot, .sk-marker.crit .sk-halo { fill: var(--crit); }
.sk-marker.crit .sk-value { fill: var(--crit); }

.sk-marker.crit .sk-cap { fill: var(--crit); }
.sk-marker.quiet .sk-cap { opacity: .7; }
.sk-marker[role='button'] { cursor: pointer; }
.sk-marker[role='button']:hover .sk-halo { opacity: .3; }


.tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: var(--sp-5); }
.tile {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  padding: var(--sp-5);
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r);
  font: inherit;
  color: inherit;
  text-align: start;
  cursor: pointer;
}
.tile:hover { filter: none; border-color: var(--accent); }
.tile.open { border-color: var(--accent); background: var(--card2); }
.tile-label { font-size: var(--fs-xs); color: var(--muted); letter-spacing: .04em; }
.tile-value { font-size: var(--fs-xl); font-weight: 650; line-height: var(--lh-num); }
.tile-value.crit { color: var(--crit); }
.tile-value.stale { opacity: .5; }


.rac-val.stale { opacity: .5; }
.tile.rac-static { cursor: default; }
.tile-unit { font-size: var(--fs-s); font-weight: var(--fw-med); color: var(--muted); }
.tile-src { display: flex; justify-content: space-between; gap: var(--sp-3); }




.cc-form { display: flex; flex-direction: column; gap: var(--sp-2); margin-block-start: var(--sp-2); }
.cc-form label { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3);
                 font-size: var(--fs-xs); color: var(--muted); }
.cc-form input[type='number'] { width: 5rem; }




.bar { height: 6px; border-radius: var(--r-pill); background: var(--bg2); overflow: hidden; }
.bar span { display: block; height: 100%; background: var(--accent); }





.hc-sum { display: flex; gap: var(--sp-5); flex-wrap: wrap; margin-block-end: var(--sp-3); }
.hc-plot { min-height: 180px; }
.hc-svg { display: block; touch-action: pan-y; }
.hc-grid { stroke: var(--line); stroke-width: 1; }
.hc-vgrid { opacity: .55; }
.hc-axis { fill: var(--muted); font-size: 11px; }
.hc-unit { fill: var(--muted); font-size: 11px; letter-spacing: .04em; }


.hc-band { fill: var(--accent); fill-opacity: .15; stroke: none; }
.hc-line { fill: none; stroke: var(--accent); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.hc-dot { fill: var(--accent); }
.hc-threshold { stroke: var(--muted); stroke-width: 1; }
.hc-cline { stroke: var(--accent); stroke-width: 1; stroke-dasharray: 3 3; }
.hc-cdot { fill: var(--accent); stroke: var(--card); stroke-width: 2; }
.hc-cbox { fill: var(--card2); stroke: var(--line); }
.hc-cval { fill: var(--ink); font-size: 12.5px; font-weight: 650; }
.hc-ctime { fill: var(--muted); font-size: 11px; }


.dev-row { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-3) var(--sp-4); padding-block: var(--sp-3); }
.dev-row + .dev-row { border-block-start: 1px solid var(--line); }
.dev-name { font-weight: var(--fw-semi); font-size: var(--fs-s); }











.dev-who { display: flex; flex-direction: column; gap: 2px; flex: 1 1 auto; min-width: 0; }


.dev-who .mono { overflow-wrap: anywhere; }
.dev-acts { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-2) var(--sp-3);
            margin-inline-start: auto; }

@media (max-width: 719px) {

  .dev-who, .dev-acts { flex-basis: 100%; }
  .dev-acts { margin-inline-start: 0; }


  .dev-acts button { flex: 1 1 8rem; min-height: 44px; }




  .dev-acts .dev-remove { flex-basis: 100%; }
}









.usr-row { flex-wrap: wrap; }
.usr-who { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--sp-1) var(--sp-4); flex: 1 1 auto; min-width: 0; }


.usr-email { overflow-wrap: anywhere; }
.usr-meta { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-3) var(--sp-4); margin-inline-start: auto; }


.usr-invite input { flex: 1 1 11rem; min-width: 0; }
.usr-invite select { flex: 0 1 auto; width: auto; }
.usr-invite button { flex: none; }
@media (max-width: 719px) {



  .usr-row { row-gap: var(--sp-3); }
  .usr-row > * { flex-basis: 100%; }
  .usr-meta { margin-inline-start: 0; }

  .usr-revoke { margin-inline-start: auto; }

  .usr-invite input { flex-basis: 100%; }
}




.login-nomail {
  color: var(--ink);
  background: var(--card2);
  border-inline-start: 3px solid var(--warn);
  border-radius: var(--r-s);
  padding: var(--sp-3) var(--sp-4);
  font-size: var(--fs-s);
}



.dmg-quick { max-width: 34rem; margin-inline: auto; }




.dmg-quick-foot { position: sticky; inset-block-end: 0; z-index: 1; gap: var(--sp-4); align-items: center;
                  background: var(--card); padding-block: var(--sp-3); }
.ho-dmg-form .dmg-quick-foot .ho-big { flex: 1 1 10rem; width: auto; }
@media (max-width: 899px) {
  .dmg-quick-foot { inset-block-end: calc(var(--bottombar-h) + env(safe-area-inset-bottom)); }
}



.ho-step-form > .rn-modal-foot { bottom: 0; z-index: 1; flex-wrap: nowrap; }
.ho-step-form > .rn-modal-foot .ho-big { flex: 1 1 auto; width: auto; }
@media (max-width: 899px) {
  .ho-step-form > .rn-modal-foot { bottom: calc(var(--bottombar-h) + env(safe-area-inset-bottom)); }
}

.field-msg { margin-block-start: var(--sp-1); }



.sh-body .dcard-form > .rn-modal-foot, .sh-body .ho-dmg-form > .rn-modal-foot { bottom: 0; z-index: 1; }

.dcard-form .chips[data-field='severity'] .chip { min-block-size: 44px; }




button.yd-damage { border-color: var(--warn); color: var(--warn); }
button.yd-damage:hover { background: var(--card2); }


.eq-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: var(--sp-4) var(--sp-5); align-items: end; }
.eq-grid input, .eq-grid select { max-width: none; }
.eq-grid label { margin-block-start: 0; }



.eq-ai { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-3) var(--sp-5); }
.eq-sheet { columns: 1; column-gap: var(--sp-4); }
@media (min-width: 800px) { .eq-sheet { columns: 2; } }
@media (min-width: 1200px) { .eq-sheet { columns: 3; } }
.eq-card { position: relative; display: block; break-inside: avoid; margin-block-end: var(--sp-4); }
.eq-card > :not(.eq-anchor) + :not(.eq-anchor) { margin-block-start: var(--sp-3); }
.eq-head { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); min-block-size: 32px; }
.eq-head-end { justify-content: flex-end; min-block-size: 0; }
.eq-h { margin: 0; font-size: var(--fs-s); font-weight: var(--fw-semi); color: var(--muted); letter-spacing: .02em; }
.eq-sub { margin: 0; font-size: var(--fs-s); font-weight: var(--fw-semi); color: var(--muted); }
.eq-edit { min-block-size: 32px; padding-inline: var(--sp-2); }
.eq-rows { display: grid; grid-template-columns: minmax(9rem, 38%) 1fr; column-gap: var(--sp-3); row-gap: 6px; align-items: baseline; }
.eq-k { color: var(--muted); font-size: var(--fs-s); }
.eq-v { min-inline-size: 0; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.eq-src { margin-inline-start: var(--sp-2); padding: 1px var(--sp-3); }
.eq-chips { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
a.eq-chip { text-decoration: none; }
.eq-chip-x { all: unset; cursor: pointer; margin-inline-start: var(--sp-2); color: var(--muted); padding-inline: var(--sp-1); }
.eq-hasnt { margin: 0; }
.eq-desc { margin: 0; white-space: pre-line; }
.eq-form { align-items: start; }
.eq-missing { margin: var(--sp-4) 0 0; }
.eq-missing .eq-fill { font: inherit; padding-inline: 0; }
.eq-tech > summary { cursor: pointer; }
.eq-tech[open] > summary { margin-block-end: var(--sp-3); }
.eq-anchor { position: absolute; inset-block-start: 0; inline-size: 0; block-size: 0; overflow: hidden; margin: 0; }
.eq-ai-box:empty { display: none; }
.eq-man { overflow-wrap: anywhere; }
.eq-man > .muted { display: block; }
@media (max-width: 799px) {
  .eq-edit { min-block-size: 44px; padding-inline: var(--sp-4); }
  .eq-rows { grid-template-columns: minmax(7rem, 40%) 1fr; }
}


.set { display: grid; grid-template-columns: 13rem minmax(0, 1fr); gap: var(--sp-6); align-items: start; }
.set-nav { display: flex; flex-direction: column; gap: var(--sp-1); position: sticky; inset-block-start: 84px; }
.set-nav-item {
  font: inherit;
  font-size: var(--fs-s);
  text-align: start;
  padding: var(--sp-3) var(--sp-4);
  border: none;
  border-radius: var(--r-s);
  background: none;
  color: var(--muted);
  cursor: pointer;
}
.set-nav-item:hover { background: var(--hover); color: var(--ink); filter: none; }
.set-nav-item.active { background: var(--accent-soft); color: var(--ink); font-weight: var(--fw-semi); }





.set-h2 { margin: 0; font-size: var(--fs-s); font-weight: var(--fw-semi);
          letter-spacing: .05em; color: var(--ink); }
.set-body .card { margin: 0; }


.set-h3 { margin: var(--sp-3) 0 0; font-size: var(--fs-xs); font-weight: var(--fw-semi);
  color: var(--muted); }





.ai-use-help { display: none; }
@media (max-width: 719px) {
  .ai-use-help { display: block; }
}





.ai-model-select {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding-inline-end: calc(var(--sp-4) + 1.4em);
}






.hw-steps { margin-block-start: var(--sp-2); }
.hw-step { flex-wrap: wrap; align-items: center; }
.hw-step input[type="text"] { flex: 1 1 14rem; min-inline-size: 0; }
.hw-step select { flex: 0 1 12rem; min-inline-size: 0; }
.hw-plat { padding: var(--sp-2) 0; border-block-end: 1px solid var(--line); }
.hw-plat:last-child { border-block-end: 0; }
.hw-off { opacity: .55; }
.hw-preview { margin: var(--sp-1) 0 0; padding-inline-start: var(--sp-6); color: var(--muted);
              font-size: var(--fs-s); }


.auth { max-width: 26rem; margin-inline: auto; padding-block-start: 8vh; }
.auth .card { margin-block-end: var(--sp-5); }
.auth input { max-width: none; font-size: var(--fs-l); }
.auth-brand { display: flex; align-items: center; gap: var(--sp-4); margin-block-end: var(--sp-6);
              font-size: var(--fs-xl); font-weight: var(--fw-bold); color: var(--accent); }




body.kiosk {
  --fs-xs: 16px; --fs-s: 18px; --fs-m: 21px; --fs-l: 24px; --fs-xl: 28px; --fs-2xl: 36px; --fs-3xl: 48px;
  --ctl: 44px;
  font-size: var(--fs-m);
}
body.kiosk main { max-width: none; padding: var(--sp-6) var(--sp-7); }
.tv { display: flex; flex-direction: column; gap: var(--sp-6); }
.tv-top { display: flex; align-items: baseline; gap: var(--sp-5); }
.tv-brand { font-size: var(--fs-xl); font-weight: var(--fw-bold); color: var(--accent); }
.tv-clock { font-size: var(--fs-xl); font-weight: var(--fw-semi); }
body.kiosk .stat-value { font-size: 52px; }
body.kiosk .stat-label, body.kiosk .stat-sub { font-size: var(--fs-s); }
body.kiosk .cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.kiosk .vcard-name { font-size: var(--fs-xl); }
body.kiosk .vcard-extra, body.kiosk .vcard-foot { font-size: var(--fs-m); }



@media (max-width: 719px) {
  body.kiosk main { padding: var(--sp-5) var(--sp-5); }
  body.kiosk .cards { grid-template-columns: minmax(0, 1fr); }
  body.kiosk .stat-value { font-size: 34px; overflow-wrap: anywhere; }
  body.kiosk .stat-unit { font-size: var(--fs-s); white-space: normal; }
  body.kiosk .vcard-name { font-size: var(--fs-l); min-inline-size: 0; flex-wrap: nowrap; }
  body.kiosk .vcard-name-t { min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  body.kiosk .vcard-name > .small, body.kiosk .vcard-name > .dot { flex: none; white-space: nowrap; }
  body.kiosk .vcard-top .pill { white-space: nowrap; }
  body.kiosk .vcard-extra, body.kiosk .vcard-foot { font-size: var(--fs-s); }
}


@media (max-width: 719px) {
  #top { gap: var(--sp-4); padding: var(--sp-4) var(--sp-5); }












  #top > .brand > span {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
  }


  .sk-value { font-size: 30px; }
  .sk-cap { font-size: 22px; }



  main { padding: var(--sp-5) var(--sp-5) calc(var(--bottombar-h) + env(safe-area-inset-bottom) + var(--sp-7)); }
  h1 { font-size: var(--fs-xl); margin-block-end: var(--sp-5); }

  button, .btn { padding: var(--sp-4) var(--sp-6); font-size: var(--fs-m); }
  .card { padding: var(--sp-5); }


  .band { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-4); }
  .stat { padding: var(--sp-4); }
  .set { grid-template-columns: 1fr; }
  .set-nav { position: static; flex-direction: row; flex-wrap: wrap; }
  .stat-value { font-size: 26px; }
  .cards { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}




















.conv { display: flex; flex-direction: column; gap: var(--sp-3); }


.conv-day { display: flex; justify-content: center; margin-block-start: var(--sp-5); }
.conv-day:first-child { margin-block-start: 0; }
.conv-day > span {
  font-size: var(--fs-xs); color: var(--muted); font-weight: var(--fw-med);
  padding: 3px var(--sp-4); border-radius: var(--r-pill); background: var(--card2);
}


.conv-row { display: flex; flex-direction: column; max-width: 100%; }
.conv-row.out { align-items: flex-end; }
.conv-row.in { align-items: flex-start; }
.conv-row + .conv-row { margin-block-start: var(--sp-3); }

.conv-msg {
  max-width: min(42rem, 88%);
  padding: var(--sp-3) var(--sp-4);
  border: 1px solid transparent;
  border-radius: 18px;
  background: var(--card2);


  position: relative;
}

.conv-row.out .conv-msg {
  background: var(--accent); color: var(--on-accent); border-end-end-radius: var(--r-s);
}
.conv-row.in .conv-msg {
  background: var(--card2); border-color: var(--line); border-end-start-radius: var(--r-s);
}


.conv-row.out .conv-msg .muted,
.conv-row.out .conv-msg summary { color: inherit; opacity: .82; }
.conv-row.out .conv-msg a { color: inherit; text-decoration: underline; }



.conv-row.out .conv-msg .conv-warn {
  background: var(--card); padding: 2px var(--sp-3);
  border-radius: var(--r-s); display: inline-block;
}


.conv-foot {
  display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap;
  margin-block-start: 2px; padding-inline: var(--sp-3);
}
.conv-ch {
  font-weight: var(--fw-med); font-size: var(--fs-xs);
  padding: 0 var(--sp-2); border-radius: var(--r-s); background: var(--card2); color: var(--muted);
}
.conv-body { white-space: pre-wrap; line-height: var(--lh-text); overflow-wrap: anywhere; }




.conv-msg { min-width: 0; }


.conv-gone { font-style: italic; color: var(--muted); }








.conv-react {
  position: absolute;
  inset-block-end: -.6rem;
  inset-inline-end: var(--sp-4);
  display: inline-flex; align-items: center; justify-content: center;
  min-inline-size: 1.4rem; block-size: 1.4rem; padding-inline: 3px;
  border-radius: var(--r-pill);
  background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow);



  color: var(--ink);
  font-size: var(--fs-s); line-height: 1;
}



.conv-row.in .conv-msg .conv-react { inset-inline-end: auto; inset-inline-start: var(--sp-4); }


.conv-react.warn-text { border-color: var(--warn); }



.conv-msg.has-react { margin-block-end: var(--sp-3); }





.conv-media {
  display: block; max-width: 100%; max-height: 320px;
  border-radius: var(--r-s); margin-block-end: var(--sp-2);
}





.conv-spots { display: flex; flex-direction: column; gap: var(--sp-2); margin-block-start: var(--sp-2); }
.conv-spot { margin: 0; }
.conv-spot .conv-media { margin-block-end: 2px; }




















.conv-row.note { align-items: stretch; }
.conv-note {
  padding: var(--sp-4);
  border: 1px dashed var(--line);
  border-inline-start: 3px solid var(--muted);
  border-radius: var(--r-s);
  background: var(--neutral-soft); color: var(--ink);
}




.note-head { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; color: var(--muted); }
.note-head svg { flex: none; }
.note-tag { font-size: var(--fs-xs); font-weight: var(--fw-semi); letter-spacing: .02em; color: var(--ink); }


.note-hint { color: var(--muted); margin-block: var(--sp-1) var(--sp-3); }
.conv-note .conv-body { font-size: var(--fs-s); }


.note-closed { color: var(--ok); margin-block-start: var(--sp-3); }




.note-box { border-style: dashed; }

.note-sum {
  cursor: pointer; min-block-size: 44px;
  display: flex; align-items: center; gap: var(--sp-3);
  font-weight: var(--fw-semi); color: var(--muted);
}
.note-sum svg { flex: none; }
.note-sum::marker { color: var(--muted); }

.note-text { min-height: 72px; max-height: 12rem; }









.src-badge {
  font-size: var(--fs-xs);
  color: var(--muted);
  background: var(--neutral-soft);
  padding: 3px var(--sp-4);
  border-radius: var(--r-pill);
  white-space: nowrap;
}



.vid-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: var(--sp-4); }



.vid-field label {
  display: flex;
  align-items: start;
  flex-wrap: wrap;
  gap: var(--sp-2) var(--sp-3);
  min-block-size: 2.9em;
  line-height: 1.3;
}



.man-row { display: flex; align-items: center; gap: var(--sp-4); }
.man-main { flex: 1; min-width: 0; }


.man-title { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2;
             overflow: hidden; overflow-wrap: anywhere; }
@media (max-width: 719px) {
  .man-row { flex-wrap: wrap; gap: var(--sp-2); padding-block: var(--sp-2); border-block-end: 1px solid var(--line); }
  .man-main { flex: 1 1 100%; }
}




.man-nosearch { display: flex; flex-wrap: wrap; gap: 0 var(--sp-3); align-items: baseline;
                margin-block-start: var(--sp-1); line-height: var(--lh-text); }
.man-nosearch-tag { flex: none; color: var(--warn); font-weight: var(--fw-med); }
.add-vehicle { margin-block-end: var(--sp-6); }



.anchor-flash { animation: anchor-flash 1.6s var(--ease); }
@keyframes anchor-flash {
  0%, 100% { box-shadow: none; }
  15%, 60% { box-shadow: 0 0 0 2px var(--accent); }
}
@media (prefers-reduced-motion: reduce) { .anchor-flash { animation: none; box-shadow: 0 0 0 2px var(--accent); } }



.dev-edit { padding: var(--sp-4); background: var(--card2); border-radius: var(--r); }



.tile-label { display: flex; align-items: center; gap: var(--sp-3); }
.tile-label svg { flex: none; opacity: .85; }
.veh-h2.row { gap: var(--sp-3); }
.veh-h2.row svg { flex: none; color: var(--muted); }



.conv-warn { color: var(--crit); font-weight: var(--fw-med); margin-block-start: var(--sp-2); }


.conv-row .conv-ack { margin-block-start: 2px; padding-inline: var(--sp-3); }




.conv-ack { display: flex; align-items: baseline; gap: var(--sp-3); flex-wrap: wrap;
            margin-block-start: var(--sp-3); }
.conv-ack button.ghost { padding: 2px var(--sp-4); font-size: var(--fs-xs); }
.conv-ack button.link { font-size: var(--fs-xs); }









.ty-top { display: block; width: 100%; max-width: 240px; height: auto; margin-inline: auto; }


.tile-tyres .ty-top { max-width: 10rem; }




.ty-body { fill: var(--sk-body); fill-opacity: .07; stroke: var(--sk-body); stroke-width: 1.6; }

.ty-glass { fill: none; stroke: var(--sk-body); stroke-width: 1.3; stroke-linecap: round; opacity: .55; }
.ty-steer-rim, .ty-steer-spoke, .ty-steer-col { fill: none; stroke: var(--sk-body); stroke-linecap: round; }
.ty-steer-rim { stroke-width: 2; }
.ty-steer-spoke { stroke-width: 1.6; }
.ty-steer-col { stroke-width: 3; }
.ty-steer-hub { fill: var(--sk-body); }
.ty-tyre { fill: var(--ink); }
.ty-val { fill: var(--ink); font-size: 15px; font-weight: 650; }
.ty-unit { fill: var(--muted); font-size: 11px; letter-spacing: .06em; }


.ty-wheel.quiet .ty-tyre { fill: var(--muted); opacity: .45; }
.ty-wheel.quiet .ty-val { fill: var(--muted); }
.ty-wheel.crit .ty-tyre { fill: var(--crit); }
.ty-wheel.crit .ty-val { fill: var(--crit); }


.ty-wheel[role='button'] { cursor: pointer; }
.ty-wheel[role='button']:hover .ty-tyre,
.ty-wheel[role='button']:focus-visible .ty-tyre,
.ty-wheel.open .ty-tyre { stroke: var(--accent); stroke-width: 2; }
.ty-wheel[role='button']:focus-visible { outline: none; }

.ty-hit { fill: var(--ink); fill-opacity: 0; pointer-events: all; }





.ty-fit { pointer-events: none; }
.ty-fit-mark { fill: none; stroke: var(--ink); stroke-width: 1.5;
               stroke-linecap: round; stroke-linejoin: round; }
.ty-fit-when { fill: var(--muted); font-size: 10px; }








.disc-open { display: inline-flex; align-items: center; gap: var(--sp-2); }
.disc-open::before {
  content: '';
  inline-size: 7px; block-size: 7px; border-radius: var(--r-pill);
  background: currentColor;
  animation: pulse var(--pulse-dot) infinite;
}

.disc-src-wrap { display: inline-flex; color: var(--muted); flex: none; }
.disc-src { inline-size: 18px; block-size: 18px; }

.disc-details > summary { cursor: pointer; color: var(--accent); }
.disc-sample { display: flex; flex-direction: column; gap: var(--sp-1); margin-block-start: var(--sp-3); }
.disc-sample .row { gap: var(--sp-3); }





.disc-sample .row > span { min-width: 0; overflow-wrap: anywhere; }

