



.rflag .rflag-k { color: var(--muted); min-inline-size: 7rem; }

.rflag .rflag-row { display: grid; grid-template-columns: 7rem 1fr auto; gap: var(--sp-1) var(--sp-2);
                    align-items: baseline; margin-block-start: var(--sp-2); }
.rflag .rflag-res { text-align: end; }
.rflag .rflag-less { color: var(--warn); }
.rflag .rflag-old { opacity: .75; }
.rflag .rflag-oldnote { margin-block-start: var(--sp-2); }
@media (max-width: 479px) {
  .rflag .rflag-row { grid-template-columns: 5.5rem 1fr; }
  .rflag .rflag-res { grid-column: 2; text-align: start; }
}
.rflag .rflag-sum { margin-block-start: var(--sp-4); padding-block-start: var(--sp-4);
                    border-block-start: 1px solid var(--line); }

.rflag .rflag-sum.rflag-sum-top { margin-block-start: 0; padding-block-start: 0; border-block-start: 0; }



.rflag-line-act { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--sp-3); align-items: center; }
.rflag-line-act > :first-child { margin: 0; min-width: 0; }
.rflag-line-act > .rflag-line-btn { min-block-size: 44px; margin: 0; padding: 0 0 0 var(--sp-2); border: 0; background: none;
                                    color: var(--accent); font-size: var(--fs-s); font-weight: var(--fw-semi);
                                    white-space: nowrap; text-align: end; }
.rflag-line-act > .rflag-line-btn:hover { background: none; text-decoration: underline; filter: none; }
.rflag-line-act > .rflag-line-btn:disabled { color: var(--muted); text-decoration: none; }
.rflag .rflag-fault-list { margin: var(--sp-1) 0 0; padding-inline-start: 1.1rem; }
.rflag .rflag-fault-list li + li { margin-block-start: var(--sp-1); }
.rflag .rflag-confirm { margin-block-start: var(--sp-3); padding: var(--sp-3);
                        border: 1px solid var(--line); border-radius: var(--r-s); }
.rflag .rflag-err { color: var(--crit); margin: var(--sp-2) 0 0; }
.rflag .sh-act { margin-block-start: var(--sp-3); }


.conv-tr { margin-block-start: var(--sp-2); padding-block-start: var(--sp-2);
           border-block-start: 1px solid currentColor; border-color: color-mix(in srgb, currentColor 25%, transparent);
           opacity: .78; }
.conv-tr .conv-tr-by { opacity: .8; font-size: var(--fs-xs); }
.rflag-pill { white-space: nowrap; }




.step { display: grid; gap: var(--sp-2); }



.step-row.rflag-stage-row { gap: var(--sp-2); container-type: inline-size; }
.step-row.rflag-stage-row.has-back { grid-template-columns: auto minmax(0, 1fr); }
.step-row.rflag-stage-row > button { min-block-size: 48px; }
.step-row.rflag-stage-row > .step-back { align-items: flex-start; text-align: start; padding-inline: var(--sp-2);
                                         min-block-size: 48px; line-height: inherit; }
.step-row.rflag-stage-row:not(.has-back) > .step-back { justify-self: start; inline-size: auto; }
.step-row.rflag-stage-row > .step-next { font-weight: var(--fw-semi); padding-inline: var(--sp-2); }
.step-row.rflag-stage-row > .step-alt { align-self: stretch; }
.step-back .step-back-main { white-space: nowrap; }
.rflag-stage-row .step-back-sub { color: var(--muted); opacity: 1; white-space: nowrap; text-align: start;
                                  font-size: var(--fs-s); max-inline-size: none; }
.step-back .step-back-short { display: none; }
@container (max-width: 20rem) {
  .step-back .step-back-long { display: none; }
  .step-back .step-back-short { display: inline; }
}
.step-alts { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.step-alts > button { min-height: 44px; }
.rflag .rflag-stage { margin-block-start: var(--sp-3); }

.rflag-dc .rflag-stage-row { display: flex; gap: var(--sp-3); align-items: stretch; }
.rflag-dc .rflag-stage-row > button { flex: 1 1 0; min-height: 48px; min-width: 0; }
.rflag-dc .rflag-stage-row > .rflag-dc-yes { flex: 2 1 0; font-weight: var(--fw-semi); }
.rflag-dc .rflag-stage-row > button { white-space: nowrap; }

.rflag-start-dc .rflag-stage-row { display: flex; gap: var(--sp-3); align-items: stretch; }
.rflag-start-dc .rflag-stage-row > button { flex: 1 1 0; min-height: 48px; min-width: 0; }
.rflag-start-dc .rflag-gate-cancel { min-height: 44px; display: inline-flex; align-items: center; align-self: flex-start; padding-inline: 0; }
.vp-flow > .rflag-dc-ask { margin: 0; }
.vp-flow > .rflag-dc > .rflag-dc-line { margin: 0; }

.rflag .rflag-live-line { margin-block: var(--sp-1); overflow-wrap: anywhere; }
.rflag .rflag-no-readings { margin: 0; }

.rflag-block .ho-sign.step-alt { background: transparent; }
.rflag .rflag-dc, .rent-dc-pending .rflag-dc { margin-block-start: var(--sp-3); }
.rflag .rflag-returned { margin-block: var(--sp-1); }
.rflag .rflag-undo-why { margin: var(--sp-2) 0 0; }

.ho-kept { align-items: center; gap: var(--sp-3); flex-wrap: wrap; }
.ho-kept-thumb { position: relative; flex: none; inline-size: 72px; block-size: 54px; border-radius: var(--r-s);
                 overflow: hidden; }
.ho-kept-thumb img { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; }
.ho-kept-again { position: absolute; inset: auto 0 0 0; min-height: 0; padding: 2px var(--sp-1); border: 0;
                 border-radius: 0; font-size: var(--fs-s); background: var(--overlay); color: var(--on-accent); }

.ho-kept-again::after { content: ''; position: absolute; inset: -30px -8px -8px -8px; }
.ho-resumed-row { align-items: center; gap: var(--sp-3); flex-wrap: wrap; }


.ho-unsent-row { align-items: center; gap: var(--sp-2); flex-wrap: wrap; }
.ho-unsent-what { flex: 1 1 100%; min-inline-size: 0; overflow-wrap: anywhere; }
.ho-unsent-row > button { flex: 1 1 0; min-block-size: 44px; }

.ho-next.is-waiting, .rflag-finish.is-waiting { cursor: progress; }

.ho-dc-which { margin: 0; overflow-wrap: anywhere; }
.ho-dc-plate { font-size: var(--fs-l); }


.rflag-finish-foot .rflag-finish { flex: 1 1 auto; }
.rflag-finish-foot { background: var(--bg); }

.rflag-finish-foot .rflag-finish-back { flex: 0 0 auto; align-self: stretch; min-height: 48px; }



.ho-cam > .rn-modal-foot { bottom: 0; z-index: 1; flex-wrap: nowrap; background: var(--bg); margin-block-start: 0; }
.ho-cam-foot > button { flex: 1 1 0; min-height: 52px; min-width: 0; }
.ho-cam-foot > .ho-cam-done { flex: 1.6 1 0; font-weight: var(--fw-semi); }
@media (max-width: 899px) {
  .ho-cam > .rn-modal-foot { bottom: calc(var(--bottombar-h) + env(safe-area-inset-bottom)); }
}
@media (orientation: portrait) {
  .ho-cam-rf .ho-cam-stage .ho-shot.empty { aspect-ratio: auto; height: 20vh; min-height: 96px; }
}
@media (orientation: landscape) and (max-height: 500px) {
  .ho-cam > .ho-cam-foot { order: 8; }
}
@media (max-width: 719px) {
  .rflag .rflag-confirm .row > button { flex: 1 1 100%; }
}




.rflag-list .rflag-err, .rprot-card .rflag-err { color: var(--crit); }
.rprot-page h1 { margin-block-end: 0; }
.rprot-bar { display: flex; flex-direction: column; gap: var(--sp-2); }
.rprot-bar .rprot-search { inline-size: 100%; max-inline-size: 28rem; }
.rprot-more > summary { list-style: none; display: inline-block; }
.rprot-more > summary::-webkit-details-marker { display: none; }
.rprot-more[open] > summary { background: var(--accent-soft); color: var(--ink); border-color: transparent; }
.rprot-more-f { display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-3); align-items: flex-end;
                margin-block-start: var(--sp-2); }
.rprot-more-f input { max-inline-size: 14rem; }
.rprot-rows { display: flex; flex-direction: column; gap: var(--sp-2); }
.rprot-row { display: flex; align-items: center; gap: var(--sp-3); min-block-size: 64px; padding: var(--sp-3);
             border: 1px solid var(--line); border-inline-start-width: 4px; border-radius: var(--r-s);
             color: inherit; text-decoration: none; }
.rprot-row.rprot-live { border-inline-start-color: var(--accent); }
.rprot-row:hover, .rprot-row:focus-visible { background: var(--accent-soft); }
.rprot-main { display: flex; flex-direction: column; gap: 2px; flex: 1 1 auto; min-inline-size: 0; }
.rprot-top { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; }
.rprot-plate { font-weight: 600; }
.rprot-badge { white-space: nowrap; }
.rprot-thumbs { display: flex; gap: var(--sp-1); flex: 0 0 auto; }
.rprot-th { display: block; inline-size: 56px; block-size: 42px; object-fit: cover; border-radius: var(--r-s);
            background: var(--line); }
.rprot-th.empty { opacity: .5; }

.rprot-card .ho-pair { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-3); }
.rprot-h { margin: var(--sp-3) 0 0; font-size: var(--fs-s); color: var(--muted); font-weight: var(--fw-semi); }
.rprot-dc-found { color: var(--crit); font-weight: var(--fw-semi); }
.rprot-send-btn { inline-size: 100%; min-block-size: 48px; }
.rprot-send-panel { padding: var(--sp-3); border: 1px solid var(--line); border-radius: var(--r-s); }
.rprot-send-cust { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.rprot-send-cust input { flex: 1 1 12rem; min-inline-size: 0; }
.rprot-zoom.ho-full { z-index: 70; }



.ho-dc .ho-dc-q { margin: 0; font-size: var(--fs-l); }
.ho-dc-yn { display: flex; gap: var(--sp-3); }
.ho-dc-yn > button { flex: 1 1 0; min-height: 64px; }
.ho-dc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: var(--sp-2); }
.ho-dc-pick { position: relative; padding: 0; border: 0; border-radius: var(--r-s);
              overflow: hidden; background: none; color: var(--ink); aspect-ratio: 4 / 3; min-height: 0; }
.ho-dc-pick img { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; }
.ho-dc-pick .ho-dc-slot { position: absolute; inset-inline-start: 0; inset-block-end: 0; padding: 2px var(--sp-2);
                          background: var(--overlay); color: var(--on-accent); }
.ho-dc-pick.on { outline: 4px solid var(--accent); outline-offset: -4px; }
.ho-dc-pick .ho-dc-mark { position: absolute; inset-block-start: var(--sp-1); inset-inline-end: var(--sp-1);
                          inline-size: 32px; block-size: 32px; border-radius: 50%; display: grid; place-items: center;
                          background: var(--accent); color: var(--on-accent); font-weight: var(--fw-semi); }
@media (max-width: 719px) {
  .ho-dc-yn { flex-direction: column; }
  .ho-dc-grid { grid-template-columns: repeat(2, 1fr); }
}



.act-head { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-2); margin: 0; }
.act-rows { display: flex; flex-direction: column; gap: var(--sp-2); }
.act-row { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "plate value" "when when";
           gap: var(--sp-1) var(--sp-3); align-items: center; min-block-size: 56px;
           padding: var(--sp-3); border: 1px solid var(--line); border-inline-start-width: 4px;
           border-radius: var(--r-s); color: inherit; text-decoration: none; }
.act-row:hover, .act-row:focus-visible { background: var(--warn-soft); }
.act-row.act-crit { border-inline-start-color: var(--crit); }
.act-row.act-warn { border-inline-start-color: var(--warn); }
.act-row.act-stale { opacity: .6; }
.act-plate { grid-area: plate; font-weight: 600; }
.act-value { grid-area: value; text-align: end; }
.act-when { grid-area: when; }




.rp-counts { font-weight: 600; margin: 0; }
.rp-table { display: none; }
.rp-card { border-inline-start: 4px solid var(--line); }
.rp-card.rp-owes { border-inline-start-color: var(--warn); }
.rp-card.rp-ready { border-inline-start-color: var(--ok); }
.rp-card.rp-out { opacity: .7; }
.rp-top { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-2); }
.rp-name { display: flex; flex-direction: column; color: inherit; text-decoration: none; min-inline-size: 0; }
.rp-plate { font-weight: 600; }
.rp-line { display: flex; justify-content: space-between; gap: var(--sp-3); align-items: baseline; }
.rp-line > :last-child { text-align: end; }
.rp-todo { font-weight: 600; color: var(--warn); }

.rp-work { margin: 0; font-weight: 700; }
.rp-work.rp-owes { color: var(--warn); }
.rp-work.rp-ready { color: var(--ok); }
.rp-done { margin: 0; }
.rp-washed { margin: 0; }

.rp-extras { display: flex; flex-direction: column; gap: var(--sp-1); }
.rp-extras-list { display: flex; flex-wrap: wrap; column-gap: var(--sp-4); }
.rp-extra { display: flex; align-items: center; gap: var(--sp-2); min-block-size: 44px; cursor: pointer; }
.rp-extra input { inline-size: 24px; block-size: 24px; flex: none; }
.rp-card.rp-ready { opacity: .7; }
.rp-ready-sec > summary { cursor: pointer; font-weight: 600; padding: var(--sp-2) 0; }
.rp-acts { display: flex; flex-wrap: wrap; gap: var(--sp-2); align-items: center; }
.rp-acts .rp-big { flex: 1 1 100%; min-block-size: 56px; font-size: var(--fs-m, 1rem); }
.rp-acts select.rp-other { flex: 1 1 100%; min-block-size: 48px; }
.rp-acts button { white-space: nowrap; }



.pill.rp-ready { background: var(--ok-soft, transparent); }
.pill.rp-owes { background: var(--warn-soft); }
@media (min-width: 900px) {
  .rp-cards { display: none; }
  .rp-table { display: block; }
  .rp-acts .rp-big, .rp-acts select.rp-other { flex: 0 1 auto; min-block-size: 0; }
}





.map-path-flag { fill: var(--ok); stroke: var(--card); stroke-width: 2.5; paint-order: stroke; stroke-linejoin: round;
                 pointer-events: auto; cursor: pointer; }
.map-path-flag.on { fill: var(--accent); }
.map-path-halt { fill: var(--ink); stroke: var(--card); stroke-width: 2.5; paint-order: stroke;
                 pointer-events: auto; cursor: pointer; }
.map-path.focused .map-path-line { opacity: 0.35; }
.map-path-focus { fill: none; stroke: var(--ink); stroke-width: 9; stroke-linecap: round; stroke-linejoin: round; opacity: 0.55; }

.map-path.focused .map-path-line.map-path-hi { opacity: 1; stroke-width: 5; }
.map-note {
  position: absolute; top: 0; left: 0; z-index: 6;
  transform: translate(-50%, calc(-100% - 18px));
  max-width: 15rem; padding: var(--sp-2) var(--sp-3);
  background: var(--card); color: var(--ink);
  border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow-strong);
  pointer-events: none; white-space: nowrap;
}
.trip-title { margin: 0; font-size: 1rem; }
.trip-list { display: flex; flex-direction: column; gap: var(--sp-2); }
.trip-row {
  display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-1);
  min-height: var(--ctl); width: 100%; padding: var(--sp-3) var(--sp-4); text-align: start;
  background: var(--card); color: var(--ink); border: 1px solid var(--line); border-radius: var(--r); cursor: pointer;
}
.trip-row.on { outline: 2px solid var(--accent); outline-offset: 1px; background: var(--accent-soft); }
.trip-main { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--sp-2) var(--sp-3); }
.trip-span { font-weight: var(--fw-semi); }




.map-path-line.spd-0 { stroke: var(--ok); }
.map-path-line.spd-1 { stroke: var(--accent); }
.map-path-line.spd-2 { stroke: var(--warn); }
.map-path-line.spd-3 { stroke: var(--crit); }
.map-path-arrow { fill: none; stroke: var(--card); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.map-path.focused .map-path-arrow { opacity: 0.35; }
.map-path-cursor { fill: var(--accent); stroke: var(--card); stroke-width: 3; }
.trip-legend { display: flex; flex-wrap: wrap; gap: var(--sp-1) var(--sp-3); align-items: center; }
.trip-legend-sw { display: inline-block; width: 1.25rem; height: 4px; border-radius: 2px; margin-inline-end: var(--sp-1);
                  vertical-align: middle; background: var(--accent); }
.trip-legend-sw.spd-0 { background: var(--ok); }
.trip-legend-sw.spd-1 { background: var(--accent); }
.trip-legend-sw.spd-2 { background: var(--warn); }
.trip-legend-sw.spd-3 { background: var(--crit); }


.map-path-line.lim-ok { stroke: var(--ok); }
.map-path-line.lim-warn { stroke: var(--warn); }
.map-path-line.lim-over { stroke: var(--crit); }
.map-path-line.lim-unk { stroke: var(--muted); }
.trip-legend-sw.lim-ok { background: var(--ok); }
.trip-legend-sw.lim-warn { background: var(--warn); }
.trip-legend-sw.lim-over { background: var(--crit); }
.trip-legend-sw.lim-unk { background: var(--muted); }
.trk-color { display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-3); align-items: center; }
.trk-color-mode { display: inline-flex; flex-wrap: wrap; gap: var(--sp-1) var(--sp-2); align-items: center; }
.trk-color-mode .chip:disabled { opacity: 0.5; cursor: not-allowed; }
@media (max-width: 899px) { .trk-color-mode .chip { min-block-size: 44px; } }

.trk-over { white-space: normal; overflow-wrap: anywhere; min-width: 0; }
.trk-over.bad { color: var(--crit); }
.trip-period { display: flex; flex-wrap: wrap; gap: var(--sp-2); align-items: center; }
.trip-range { display: flex; flex-wrap: wrap; gap: var(--sp-2); align-items: center; }
.trip-range input[type=date] { min-height: var(--ctl); }
.trip-speed { white-space: nowrap; }
.trip-tools-line { min-width: 0; }
.trip-tools-line .trk-km-src { white-space: nowrap; }
.trip-tools { display: flex; flex-wrap: wrap; gap: var(--sp-2); align-items: center; justify-content: space-between; }
.trip-replay { display: flex; gap: var(--sp-3); align-items: center; }
.trip-replay input[type=range] { flex: 1; min-width: 6rem; }
.trip-replay .num { min-width: 7.5rem; text-align: end; }




:root { --st-moving: var(--ok); --st-idle: var(--warn); --st-stopped: var(--ink); --st-nosignal: var(--muted); }
.st-dot { display: inline-block; width: .7rem; height: .7rem; border-radius: 50%; flex: 0 0 auto;
          margin-inline-end: var(--sp-1); vertical-align: middle; background: var(--st-nosignal); }
.st-dot.st-moving { background: var(--st-moving); }
.st-dot.st-idle { background: var(--st-idle); border-radius: 2px; transform: rotate(45deg) scale(.85); }
.st-dot.st-stopped { background: var(--st-stopped); border-radius: 2px; }
.st-dot.st-nosignal { background: var(--st-nosignal); }
.map-path-idle { fill: var(--st-idle); stroke: var(--card); stroke-width: 2.5; paint-order: stroke;
                 pointer-events: auto; cursor: pointer; }
.map-path-halt { fill: var(--st-stopped); }
.map-path-over { fill: var(--crit); stroke: var(--card); stroke-width: 2.5; paint-order: stroke; cursor: pointer; }


.map-path-badge { fill: var(--ink); stroke: var(--card); stroke-width: 3.5; paint-order: stroke; stroke-linejoin: round;
                  font-size: 11px; font-weight: 600; pointer-events: none; }
.map-path.focused .map-path-badge { opacity: .45; }


.map-path-origin { fill: var(--st-moving); stroke: var(--map-halo); stroke-width: 3; paint-order: stroke;
                   pointer-events: auto; cursor: pointer; }
.map-path-end { pointer-events: auto; cursor: pointer; }
.map-path-badge.map-path-startlbl, .map-path-badge.map-path-endlbl { font-size: 12px; }

.trk-pick-head { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); }
.trk-live { white-space: nowrap; }
.tl-trip.live { border-color: var(--st-moving); }
.trk-idle { white-space: nowrap; }


.trips-head { gap: var(--sp-2); margin-block-end: var(--sp-3); }
.trk-head { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-2); }
.trk-num { display: flex; flex-direction: column; gap: 2px; padding: var(--sp-2) var(--sp-3);
           background: var(--card); border: 1px solid var(--line); border-radius: var(--r); min-width: 0; }
.trk-num strong { font-size: 1.25rem; font-weight: var(--fw-semi); color: var(--ink); white-space: nowrap;
                  overflow: hidden; text-overflow: ellipsis; }
.trk-controls { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--sp-3); margin-block-end: var(--sp-3); }
.trk-veh { flex: 1 1 100%; min-height: var(--ctl); }


.trk-split { display: grid; grid-template-columns: minmax(18rem, 26rem) minmax(0, 1fr); gap: var(--sp-3);
             align-items: start; }
.trk-side { min-width: 0; }
.trk-map { position: sticky; top: var(--sp-3); min-width: 0; }
.trk-map .map-view { height: max(320px, calc(100vh - 300px)); }
.trk-close { display: none; }


.trk-timeline { gap: var(--sp-1); }
.tl-item { display: flex; gap: var(--sp-2); align-items: flex-start; }
.tl-trip { flex-direction: column; align-items: stretch; padding: var(--sp-2) var(--sp-3);
           background: var(--card); border: 1px solid var(--line); border-radius: var(--r); }
.tl-trip.on { outline: 2px solid var(--accent); outline-offset: 1px; background: var(--accent-soft); }
.tl-stop { padding: var(--sp-1) var(--sp-3); border-inline-start: 3px dotted var(--line); margin-inline-start: var(--sp-3); }
.trk-pick { display: flex; gap: var(--sp-2); align-items: flex-start; width: 100%; min-height: var(--ctl);
            padding: 0; background: none; border: 0; color: var(--ink); text-align: start; cursor: pointer; }
.trk-pick .st-dot { margin-block-start: .35rem; }
.trk-drive { color: var(--muted); }

.trk-micro { display: block; font-size: .8rem; line-height: 1.3; opacity: .85; overflow-wrap: anywhere; }
.trk-micro-only { padding-inline-start: var(--sp-3); border-inline-start: 3px dotted var(--line); }
.trk-acts { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-block-start: var(--sp-1); }
.trk-acts .chip { min-height: 40px; }
.trk-idle { display: inline-flex; align-items: center; gap: 2px; width: fit-content; }
.trk-status-legend .st-dot { margin-inline-end: var(--sp-1); }

.trk-leg-toggle { display: inline-flex; align-items: center; gap: var(--sp-1); min-height: 32px; padding: 0 var(--sp-2);
                  background: none; border: 1px solid var(--line); border-radius: var(--r); color: var(--ink); cursor: pointer; }
.trk-leg-toggle.off { opacity: .45; text-decoration: line-through; }
.trk-leg-over { color: var(--crit); font-size: .8rem; line-height: 1; }
@media (max-width: 899px) { .trk-leg-toggle { min-height: 40px; } }


.tsum-bars { display: block; overflow: visible; }
.tsum-bar { fill: var(--accent); }
.tsum-bar.nodata { fill: var(--line); }
.tsum-bar.partial { fill: var(--warn); }


@media (max-width: 899px) {
  .trk-split { grid-template-columns: minmax(0, 1fr); }
  .trk-map { order: -1; position: static; }
  .trk-map .map-view { height: 300px; }
  .trk-map.full { position: fixed; inset: 0; z-index: 60; overflow: auto; border-radius: 0; margin: 0;
                  background: var(--bg); padding: var(--sp-3); }
  .trk-map.full .map-view { height: calc(100vh - 11rem); }
  .trk-close { display: block; width: 100%; min-height: 48px; }
  .trk-head { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 720px) {
  .trk-veh { flex: 0 1 22rem; }
}



.a2hs { display: flex; flex-wrap: wrap; gap: var(--sp-3); align-items: center;
        padding: var(--sp-4); border: 1px solid var(--line); border-radius: var(--r-s);
        background: var(--card2); color: var(--ink); }
.a2hs-txt { display: flex; flex-direction: column; gap: var(--sp-1); flex: 1 1 14rem; min-width: 0; }
.a2hs-ios, .a2hs-why { display: flex; gap: var(--sp-2); align-items: flex-start; margin: 0; }
.a2hs-ios svg { flex: none; width: 20px; height: 20px; color: var(--accent); }
.a2hs-acts { display: flex; gap: var(--sp-3); align-items: center; margin-inline-start: auto; }
.a2hs-go { min-height: 44px; }
.a2hs-later { min-height: 44px; }
.a2hs-login { margin-block-start: var(--sp-5); }
.a2hs-card { position: fixed; z-index: 19; inset-inline: var(--sp-3);
             inset-block-end: calc(58px + var(--sp-3) + env(safe-area-inset-bottom));
             box-shadow: var(--shadow-strong); }
#bottom .sheet .nav-install { flex: none; min-height: 52px; padding: var(--sp-3) var(--sp-5); text-align: start;
                              background: none; border: 1px dashed var(--line); color: var(--ink);
                              font-size: var(--fs-m); }
.a2hs-go[disabled] { cursor: not-allowed; }











.trip-pick-body { display: flex; flex-direction: column; padding: 0; overflow: hidden; }
.trip-pick-search-row {
  position: sticky; top: 0; z-index: 1;
  padding: var(--sp-4) var(--sp-6);
  background: var(--card);
  border-block-end: 1px solid var(--line);
}
.trip-pick-search { width: 100%; min-height: 48px; }
.trip-pick-list {
  overflow-y: auto; padding: var(--sp-4) var(--sp-6);
  display: flex; flex-direction: column; gap: var(--sp-3);
}
.trip-pick-row {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3);
  width: 100%; text-align: start; min-height: 56px; padding: var(--sp-4) var(--sp-5);
  background: var(--card2); border: 1px solid var(--line); border-radius: var(--r);
  color: inherit; font-weight: var(--fw-med);
}
.trip-pick-row:hover { background: var(--hover); filter: none; }

.trip-pick-main { display: flex; align-items: center; gap: var(--sp-3); min-width: 0; }
.trip-pick-empty { color: var(--muted); padding: var(--sp-4) 0; }


.mn-page { display: flex; flex-direction: column; gap: var(--sp-4); max-width: 40rem; }
.mn-row { display: flex; align-items: center; gap: var(--sp-3); min-height: 56px; padding: var(--sp-2) 0;
  border-bottom: 1px solid var(--line); cursor: pointer; }
.mn-row:last-child { border-bottom: 0; }
.mn-off { cursor: not-allowed; opacity: .6; }
.mn-txt { display: flex; flex-direction: column; gap: var(--sp-1); flex: 1 1 auto; min-width: 0; }




.mn-toggle { flex: none; width: 28px; height: 28px; margin: 0; cursor: inherit; accent-color: var(--ok); }
.mn-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.mn-enable { min-height: 48px; width: 100%; }
.mn-devices { list-style: none; margin: 0; padding: 0; }
.mn-device { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); padding: var(--sp-2) 0;
  border-bottom: 1px solid var(--line); }
.mn-device:last-child { border-bottom: 0; }
.mn-acts { display: flex; gap: var(--sp-2); margin-inline-start: auto; }
.mn-acts button { min-height: 44px; }





.bill-err {
  padding: var(--sp-3) var(--sp-4); border-radius: var(--r-s);
  background: var(--crit-soft); border-inline-start: 3px solid var(--crit); color: var(--ink);
}
.bill-note {
  padding: var(--sp-3) var(--sp-4); border-radius: var(--r-s);
  background: var(--warn-soft); border-inline-start: 3px solid var(--warn); color: var(--ink);
}
.bill-warn { color: var(--warn); }
.bill-big { font-size: var(--fs-xl); }
.bill-tbl-wrap { overflow-x: auto; }
.bill-tbl { width: 100%; border-collapse: collapse; }
.bill-tbl th, .bill-tbl td { padding: var(--sp-2) var(--sp-3); text-align: start;
                             border-block-end: 1px solid var(--line); }
.bill-tbl th { font-size: var(--fs-xs); color: var(--muted); white-space: nowrap; }
.bill-tbl .bill-cur { font-weight: var(--fw-semi); }
.bill-tbl .bill-addon td { color: var(--muted); }
.bill-cell { width: 6.5rem; }
.bill-vrow { padding-block: var(--sp-2); border-block-end: 1px solid var(--line); gap: var(--sp-3); flex-wrap: wrap; }
.bill-vrow:last-child { border-block-end: 0; }

.bill-vacts { display: flex; flex-wrap: wrap; gap: var(--sp-3); }
.bill-vacts > div { flex: 1 1 14rem; }
.bill-vacts .ho-big { width: 100%; }
.bill-names { grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr)); }
.bill-pkg { padding-block: var(--sp-3); border-block-end: 1px solid var(--line); }
.bill-fold > summary { cursor: pointer; }
.bill-inv-link { text-align: start; }



.addr { display: flex; flex-direction: column; gap: var(--sp-3); }
.addr-search input { width: 100%; font-size: 16px; }
.addr-sugg { list-style: none; margin: var(--sp-2) 0 0; padding: 0; border: 1px solid var(--line);
             border-radius: var(--r); background: var(--card); overflow: hidden; }
.addr-sugg[hidden] { display: none; }
.addr-sugg li { border-top: 1px solid var(--line); }
.addr-sugg li:first-child { border-top: 0; }
.addr-sugg button { display: block; width: 100%; min-height: 48px; padding: var(--sp-2) var(--sp-3);
                    text-align: start; background: none; border: 0; border-radius: 0; color: var(--ink);
                    font: inherit; cursor: pointer; }
.addr-sugg button:hover, .addr-sugg button:focus-visible { background: var(--accent-soft); }
.addr-main { display: block; font-weight: 600; }
.addr-sec { display: block; color: var(--muted); font-size: .85em; }
.addr-note { margin: 0; }
.addr-grid { display: grid; grid-template-columns: 3fr 1fr; gap: var(--sp-3); }
.addr-grid .addr-wide { grid-column: 1 / -1; }
.addr-grid input, .addr-grid select { width: 100%; font-size: 16px; }
.addr-grid input.bad { border-color: var(--crit); }
.addr-where { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-3); }
.addr-where[hidden], .addr-map[hidden], .addr-note[hidden] { display: none; }
.addr-map .map-view { height: 300px; margin-block-start: var(--sp-2); }
@media (max-width: 719px) {
  .addr-grid { grid-template-columns: 1fr 1fr; }
  .addr-map .map-view { height: 55vh; }
}


.prepo-slot:empty { display: none; }
.prepo-controls { gap: var(--sp-3); }
.prepo-field, .sprep-field { display: flex; flex-direction: column; gap: var(--sp-2); margin: var(--sp-3) 0 0; }
.prepo-field > span, .sprep-field > span { font-size: var(--fs-s); color: var(--muted); }
.sprep-field > small { font-size: var(--fs-xs); }
.sprep-names > input { inline-size: 100%; max-inline-size: 28rem; }
.sprep-items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--sp-2); }
.sprep-item { border: 1px solid var(--line); border-radius: var(--r-s); padding: var(--sp-3) var(--sp-4); }
.sprep-item.editing { border-color: var(--accent); }
.sprep-item-t { min-width: 0; }
.sprep-mv { min-width: 44px; min-height: 44px; }
.sprep-form { margin-block-start: var(--sp-3); }
.prepo-stcell { gap: var(--sp-1); }
.prepo-kv { gap: var(--sp-3); font-size: var(--fs-s); }
.prepo-pics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); }
.prepo-fig { margin: 0; }
.prepo-fig img { display: block; width: 100%; height: auto; border-radius: var(--r-s); background: var(--bg2); }
.prepo-ref { gap: var(--sp-3); font-size: var(--fs-s); }
.xst-holder { gap: var(--sp-3); font-size: var(--fs-s); }
.xst-moves { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--sp-3); }
.xst-moves li { border-block-end: 1px solid var(--line); padding-block-end: var(--sp-2); }



.rpick-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-3); }
.rpick-go { min-block-size: 64px; font-size: 1.05rem; font-weight: 600; }
.rpick-search { position: sticky; top: 0; z-index: 2; padding-block: var(--sp-2); background: var(--bg); }
.rpick-input { inline-size: 100%; min-block-size: 52px; font-size: 1.15rem; box-sizing: border-box; }
.rpick-row { inline-size: 100%; text-align: start; font: inherit; background: var(--card); cursor: pointer; }
.rpick-plate { font-size: 1.2rem; letter-spacing: .02em; }

.rpick-plate { white-space: nowrap; }
.rpick-row .act-value { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-inline-size: 0; }
.rpick-row.rpick-off { opacity: .55; cursor: not-allowed; }
.rpick-back { flex: none; }









.stg-aux { --stg-bg: var(--stage-aux-bg); --stg-fg: var(--stage-aux-fg); }
.pill.stg, .sh-stages li.stg { background: var(--stg-bg); color: var(--stg-fg); }
.sh-stages li.stg { font-weight: var(--fw-semi); }








.lk-views-pipeline { gap: var(--sp-3); border-block-end: 0; align-items: stretch; }
.lk-pipe { --pipe-tip: 12px; display: flex; flex: 1 1 36rem; min-inline-size: 0; align-items: stretch; }
.lk-pipe .lk-seg {
  flex: 1 1 0; min-inline-size: min-content; min-block-size: 48px; margin: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px;
  padding: var(--sp-2) calc(var(--pipe-tip) + var(--sp-2)) var(--sp-2) calc(var(--pipe-tip) + var(--sp-3));
  border: 0; border-radius: 0; text-align: center; white-space: normal; line-height: 1.2;
  font-size: var(--fs-xs); font-weight: var(--fw-med);
  background: var(--stg-bg, var(--neutral-soft)); color: var(--stg-fg, var(--ink));
  clip-path: polygon(0 0, calc(100% - var(--pipe-tip)) 0, 100% 50%, calc(100% - var(--pipe-tip)) 100%,
                     0 100%, var(--pipe-tip) 50%);
}
.lk-pipe .lk-seg + .lk-seg { margin-inline-start: calc(2px - var(--pipe-tip)); }
.lk-pipe .lk-seg:first-child {
  padding-inline-start: var(--sp-4); border-start-start-radius: var(--r-s); border-end-start-radius: var(--r-s);
  clip-path: polygon(0 0, calc(100% - var(--pipe-tip)) 0, 100% 50%, calc(100% - var(--pipe-tip)) 100%, 0 100%);
}
.lk-pipe .lk-seg:last-child {
  padding-inline-end: var(--sp-4);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, var(--pipe-tip) 50%);
}
.lk-pipe .lk-seg:only-child { clip-path: none; }
.lk-pipe .lk-seg:hover { background: var(--stg-bg, var(--neutral-soft)); color: var(--stg-fg, var(--ink));
                         filter: brightness(.96); }
.lk-pipe .lk-seg.cur { font-weight: var(--fw-bold);
                       box-shadow: inset 0 3px 0 currentColor, inset 0 -3px 0 currentColor; }
.lk-pipe .lk-seg:focus-visible { outline: none; box-shadow: inset 0 0 0 3px currentColor; }
.lk-pipe .lk-seg.dim:not(.cur) { opacity: .45; }
.lk-pipe .lk-seg-name { overflow-wrap: break-word; }
.lk-pipe .lk-view-n, .lk-pipe .lk-seg.cur .lk-view-n {
  background: none; color: inherit; padding-inline: 0; font-weight: var(--fw-semi);
}

.lk-views-pipeline .lk-side {
  flex: none; align-self: center; min-block-size: 40px; margin: 0; padding: var(--sp-2) var(--sp-4);
  border: 1px solid var(--line); border-radius: var(--r-pill); white-space: nowrap;
  background: var(--stg-bg, transparent); color: var(--stg-fg, var(--ink));
}
.lk-views-pipeline .lk-side.cur { border-color: currentColor; font-weight: var(--fw-bold);
                                  box-shadow: inset 0 0 0 1px currentColor; }
.lk-views-pipeline .lk-side.dim:not(.cur) { opacity: .45; }
.lk-views-pipeline .lk-side .lk-view-n { background: none; color: inherit; padding-inline: 0; }

.lk-toggle { display: inline-flex; align-items: center; gap: var(--sp-2); }


.dmg-order { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-inline-size: 0; }
.dmg-order > .link { text-align: start; white-space: normal; overflow-wrap: anywhere; }


.dfl-page .lk-dt, .dmg-page .lk-dt { --lk-name-min: 13rem; }
.dfl-charges { margin: 0; display: flex; gap: var(--sp-3); align-items: baseline; flex-wrap: wrap; }


.chg-page { display: flex; flex-direction: column; gap: var(--sp-5); }
.chg-groups { display: flex; flex-direction: column; gap: var(--sp-5); }
.chg-group { display: flex; flex-direction: column; gap: var(--sp-3); }
.chg-head { display: flex; align-items: baseline; gap: var(--sp-3); flex-wrap: wrap; }
.chg-rental { font-weight: var(--fw-semi); }
.chg-what { display: flex; flex-direction: column; gap: 2px; min-inline-size: 0; }
.chg-foot { display: flex; gap: var(--sp-3); flex-wrap: wrap; align-items: baseline;
            padding-block-start: var(--sp-3); border-block-start: 1px solid var(--line); }
.chg-empty { margin: 0; }

.chg-inv-bar { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap;
               border-block-start: 1px solid var(--line); padding-block-start: var(--sp-3); }
.chg-inv-bar > .chg-inv-main { min-block-size: 44px; }
.chg-inv-bar > .chg-inv-wait { min-block-size: 44px; padding-inline: 0; text-align: start; }
.chg-total { font-weight: var(--fw-semi); text-align: end; }
.chg-inv { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 2px var(--sp-2); min-inline-size: 0; }
.chg-inv > .link { padding: 0; }
.chg-live-head { margin: var(--sp-3) 0 0; font-weight: var(--fw-semi); }
.chg-live { opacity: .8; }
.chg-sheet-inv, .chg-sheet-locked { margin: 0; }
@media (max-width: 719px) {
  .chg-inv-bar > .chg-inv-main { inline-size: 100%; }
  .chg-head > .chg-total { flex: 1 0 100%; }
  .lk-m-ra .chg-inv > .link { min-block-size: 44px; }
}

.chg-sheet-acts > button { inline-size: 100%; }
.chg-sheet-what { margin: 0; font-weight: var(--fw-semi); }
.chg-sheet-parts { margin: 0; }

.rflag-fuel-pct { max-inline-size: 8rem; }

@media (max-width: 899px) {



  .lk-views-pipeline { flex-wrap: wrap; }
  .lk-pipe { flex: 1 1 100%; max-inline-size: 100%; overflow-x: auto; overscroll-behavior-x: contain;
             scroll-snap-type: x proximity; scrollbar-width: none; }
  .lk-pipe::-webkit-scrollbar { display: none; }
  .lk-pipe .lk-seg { flex: none; min-block-size: 48px; scroll-snap-align: center; white-space: nowrap; }
  .lk-views-pipeline .lk-side { min-block-size: 44px; }
}



.sh-step { padding-block-end: var(--sp-4); border-block-end: 1px solid var(--line); }
.sh-step .sh-act { margin: 0; }
@media (max-width: 899px) {
  .sh-step .sh-act-main, .sh-step .sh-act-main > button { inline-size: 100%; }
}

.svr-known-row { align-items: center; gap: var(--sp-3); }
.svr-km-change { min-block-size: 44px; padding-inline: var(--sp-3); }

@media (pointer: coarse) {
  .chip { min-block-size: 44px; }
  .dt-row > td { min-block-size: 44px; block-size: 44px; }
}

.sh-back, .dcard-back { display: flex; flex-direction: column; align-items: center; justify-content: center;
                        min-block-size: 44px; line-height: 1.2; }
.sh-back-sub { font-size: var(--fs-xs); opacity: .8; overflow-wrap: anywhere; }



.step-box { display: flex; flex-direction: column; gap: var(--sp-2); }
.step-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-3); align-items: stretch; }
.step-row.has-back { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.step-row > * { min-inline-size: 0; margin: 0; }
.step-row > .sh-act-main { display: flex; flex-direction: column; }
.step-row > button, .step-row > .sh-act-main > button {
  inline-size: 100%; min-block-size: 56px; margin: 0; flex: 1 1 auto; }
.step-row > .step-back { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
                         padding: var(--sp-1) var(--sp-2); line-height: 1.15; min-block-size: 56px; }

.step-back-sub { font-size: var(--fs-xs); font-weight: 400; opacity: .8; max-inline-size: 100%; text-align: center;
                 white-space: normal; overflow-wrap: normal; word-break: normal; }
.step-alt { align-self: center; min-block-size: 44px; padding-inline: var(--sp-3); text-align: center; }

.sh-more-head { inline-size: auto; display: inline-flex; align-items: center; gap: var(--sp-1);
                padding-inline: var(--sp-2); font-size: var(--fs-s); white-space: nowrap; }






.sh-stages.sh-ladder { flex-wrap: nowrap; gap: 2px; min-inline-size: 0; max-inline-size: 100%; overflow: hidden; }
.sh-stages.sh-ladder li { flex: 0 1 auto; min-inline-size: 0; white-space: nowrap; word-break: normal; overflow-wrap: normal;
                          overflow: hidden; text-overflow: ellipsis; font-size: var(--fs-xs); padding-inline: var(--sp-2); }
.sh-stages.sh-ladder li.done, .sh-stages.sh-ladder li.skip, .sh-stages.sh-ladder li.later {
  flex: 0 0 auto; min-inline-size: 1.75rem; padding-inline: var(--sp-1); }
.sh-stages.sh-ladder li.later { opacity: .7; }
.sh-body { grid-template-columns: minmax(0, 1fr); }
.sh-body > *, .dcard-track, .dcard-track > * { min-inline-size: 0; }
.dcard-track { max-inline-size: 100%; }
.sh-stages.sh-ladder li.now, .sh-stages.sh-ladder li.end { flex: 1 0 auto; overflow: visible; }
.sh-stages .skip { opacity: .5; }

.dcard-stops { margin-block-start: var(--sp-4); padding-block-start: var(--sp-4); border-block-start: 1px solid var(--line); }
.sh-body .dcard-form > .rn-modal-foot { flex-wrap: nowrap; }
.sh-body .dcard-form > .rn-modal-foot .ho-big { flex: 1 1 auto; inline-size: auto; }
.sh-body .dcard-form > .rn-modal-foot .link { flex: 0 0 auto; white-space: nowrap; min-block-size: 44px; }

.rent-dc-pending > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; }
.rent-dc-list { margin-block-start: var(--sp-2); }
.rent-dc-row { display: flex; justify-content: space-between; align-items: center; gap: var(--sp-3); min-height: 48px; width: 100%; }
.rflag-ns-undo { align-items: center; justify-content: space-between; gap: var(--sp-3); margin-block-start: var(--sp-2); }



.bk-sheet .bk-field { display: flex; flex-direction: column; gap: var(--sp-1); min-inline-size: 0; }
.bk-sheet .bk-field.need > input { border-color: var(--crit, var(--warn)); }
.bk-sheet .bk-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); column-gap: var(--sp-3); align-items: start; }
.bk-sheet .bk-now { align-items: center; gap: var(--sp-3); min-block-size: 44px; }
.bk-sheet .bk-ours { align-self: flex-start; }

.bk-sheet .bk-when { flex-wrap: nowrap; }
.bk-sheet .bk-when > .chip { flex: 0 1 auto; min-inline-size: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bk-sheet .bk-windows .sv-win { inline-size: 100%; text-align: start; }
.bk-sheet .bk-others-link { align-self: flex-start; min-block-size: 44px; text-align: start; }
.dmg-parts-mark { font-size: var(--fs-xs); white-space: nowrap; }

.dcard-li-field, .dcard-why { display: flex; flex-direction: column; gap: var(--sp-1); min-inline-size: 0; }
.dcard-li-field.need > input, .dcard-li-field.need > select, .dcard-li-field.need > textarea { border-color: var(--crit, var(--warn)); }
.dcard-li-big { inline-size: 100%; text-align: start; }

.sh:focus { outline: none; }

.step-row.has-back { grid-template-columns: minmax(min-content, 1fr) minmax(0, 2fr); }
.step-row > .step-back .step-back-sub { white-space: nowrap; }
.dcard-li-field > textarea, .dcard-stays > textarea { margin: 0; display: block; }
.bk-sheet .rn-plan { margin: 0; }

.chg-sortbar { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-1) var(--sp-3); }
.chg-sortbar > .chg-sort { padding: 0; min-block-size: 32px; }
.chg-sortbar > .chg-sort.on { font-weight: var(--fw-semi); }
.chg-inv > .chg-not-inv { margin-inline-end: var(--sp-2); flex: none; }

.chg-inv:has(> .chg-not-inv) { display: flex; inline-size: 100%; }
@media (max-width: 899px) { .chg-sortbar > .chg-sort { min-block-size: 44px; } }


.bill-prices .bill-cur { font-weight: var(--fw-semi); }
