/* =========================================================
   YALOGIST — CLEAN style.css (consolidated)
   Based on latest effective rules, without duplicates.
   ========================================================= */

/* =========================
   RESET + VARIABLES
========================= */
[hidden]{display:none!important;}

:root{
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial;
  --bg:#efeeec;
  --card:#fff;
  --border:#e6e6e6;
  --muted:#6b7280;
  --text:#111;
  --blue:#1a73e8;
  --shadow:0 6px 18px rgba(0,0,0,.08);
  --r:16px;
  --r2:12px;

  /* accents */
  --a1:#d31a2b;
  --a2:#b80d1a;

  /* layout (figma override) */
  --leftOffset: 15vw;  /* left padding for whole page */
  --formW: 896px;      /* form column width */
  --colGap: 50px;      /* gap between form and map */
  --mapW: calc(100vw - var(--leftOffset) - var(--formW) - var(--colGap));
}

html,body{
  height:100%;
  margin:0;
  background:var(--bg);
  color:var(--text);
}

/* keep one continuous background on the main page while scrolling */
body:not(.page--static) .page,
body:not(.page--static) .layout,
body:not(.page--static) .form-col{
  background: var(--bg);
}

html{
  scrollbar-gutter: stable;
}

body[data-mode="logist"]{
  background:#f3f3f3;
}
body[data-mode="quick"]{
  background:#f3f3f3;
}
body[data-mode="logist"]:not(.page--static) .page,
body[data-mode="logist"]:not(.page--static) .layout,
body[data-mode="logist"]:not(.page--static) .form-col{
  background:#f3f3f3;
}
body[data-mode="quick"]:not(.page--static) .page,
body[data-mode="quick"]:not(.page--static) .layout,
body[data-mode="quick"]:not(.page--static) .form-col{
  background:#f3f3f3;
}

body[data-mode="logist"] .hdrSeg__btn.is-active{
  box-shadow:0 2px 8px rgba(0,0,0,.08);
}

body[data-mode="logist"] .top2col{
  background:#fff;
  border:1px solid #e6e6e6;
  border-radius:18px;
  box-shadow:0 8px 20px rgba(0,0,0,.06);
}

body[data-mode="logist"] .leftCard{
  background:#f2f2f2;
  border-color:#e8e8e8;
}

body[data-mode="logist"] .stop.stop2{
  border-color:#e9e9e9;
  box-shadow:0 6px 16px rgba(0,0,0,.06);
}

body[data-mode="logist"] .stop2__hdr--mini{
  margin-bottom:6px;
}

body[data-mode="logist"] .stop2__grid--logist{
  grid-template-columns: 42% 24% minmax(0,1fr) auto;
}

body[data-mode="logist"] .map-col{
  border-radius:16px;
  box-shadow: -8px 0 16px rgba(0,0,0,.08);
}

body[data-mode="logist"] .footerBar2{
  border-radius:18px;
  box-shadow:0 -10px 22px rgba(0,0,0,.08);
}

/* =========================
   TYPOGRAPHY / UTILS
========================= */
.h1{ margin:0 0 12px; font-size:22px; }
.h2{ font-weight:800; }
.lbl{ font-size:12px; color:var(--muted); margin:0; }
.lbl--tight{ margin:0 0 4px 0; }
.lblWithHelp{
  display:inline-flex;
  align-items:center;
  gap:4px;
}
.muted{ color:var(--muted); font-size:13px; }
.hint{ font-size:12px; color:var(--muted); margin-top:6px; line-height:1.05; }

.link{
  border:0;
  background:transparent;
  color:var(--blue);
  cursor:pointer;
  padding:0;
  font-size:13px;
}
.link--orange{ color:#b80d1a; font-weight:800; }
.paySettingsIconBtn{
  width:28px;
  height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
}
.paySettingsIconBtn svg{
  width:18px;
  height:18px;
  fill:currentColor;
}
.paySettingsIconBtn:focus-visible{
  outline:2px solid #b80d1a;
  outline-offset:2px;
}

.row{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.row--between{ justify-content:space-between; }

.pre{
  background:#f6f7f9;
  border-radius:12px;
  padding:12px;
  border:1px solid var(--border);
  overflow:auto;
  white-space:pre-wrap;
}

.pill{
  display:inline-block;
  background:#111;
  color:#fff;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
}

/* =========================
   INPUTS (base)
========================= */
.inp, input, select, textarea{
  width:100%;
  box-sizing:border-box;
  height:36px;
  padding:7px 10px;
  border-radius:6px;
  border:1px solid #e7e7e7;
  background:#fff;
  font-size:13px;
  outline:none;
}
textarea{
  height:auto;
  min-height:72px;
  padding:10px 12px;
  resize:vertical;
}
.inp:focus, input:focus, select:focus, textarea:focus{
  border-color:rgba(26,115,232,.55);
  box-shadow:0 0 0 3px rgba(26,115,232,.12);
}

/* =========================
   BUTTONS (base)
========================= */
.btn{
  appearance:none;
  border:1px solid #d8d8d8;
  background:#fff;
  color:#111;
  border-radius:6px;
  padding:8px 10px;
  font-size:13px;
  cursor:pointer;
  line-height:1;
}
.btn:hover{ background:#fafafa; }
.btn--ghost{ background:#fff; }

.btn--primary{
  border:0;
  background:linear-gradient(90deg,var(--a1),var(--a2));
  color:#fff;
  border-radius:6px;
  padding:10px 22px;
  font-weight:800;
}
.btn--primary:hover,
.btn--primary:focus-visible,
.btn--primary:active{
  background:linear-gradient(90deg,var(--a1),var(--a2)) !important;
  color:#fff !important;
  border-color:transparent !important;
}

.btn.is-active{
  border-color:#111;
  background:#111;
  color:#fff;
}

/* =========================
   BASE CARDS
========================= */
.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:16px;
  box-shadow:var(--shadow);
  padding:12px;
  margin:0 0 12px 0;
}

/* =========================
   PAGE + LAYOUT (FIGMA OVERRIDE)
========================= */
.page{
  /* IMPORTANT: we intentionally override the earlier “max-width” layout */
  max-width:none;
  margin:0;
  padding:0;
  padding-left: var(--leftOffset);
  padding-top: 14px;
  padding-bottom: 14px;
  position:relative;
  box-sizing:border-box;
}

.layout{
  display:flex;
  gap: var(--colGap);
  align-items:flex-start;

  /* content must start below overlay header */
  padding-top: 78px;
}

/* left column */
.form-col{
  width: var(--formW);
  flex: 0 0 var(--formW);
  min-width: 740px;
  padding: 0 0 56px 14px;
  box-sizing:border-box;
}

/* right column (MAP) — full height flush right */
.map-col{
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;

  width: var(--mapW);
  height: auto;

  margin: 0;
  padding: 0;

  border: 0;
  border-radius: 0;
  box-shadow: -10px 0 10px rgba(0,0,0,.06);
  background: transparent;
  overflow: hidden;

  z-index: 1; /* under header */
}

#map{
  width:100%;
  height:100%;
  min-height:100%;
}

/* =========================
   HEADER (overlay panel)
========================= */
.hdr{
  position:fixed;
  top: 12px;
  left: calc(var(--leftOffset) + 14px);
  right:auto;

  height:56px;

  /* overlaps map: form width + “drive in” */
  width: calc(var(--formW) + 320px);
  max-width: calc(100vw - var(--leftOffset) - 28px);

  background:#fff;
  border:1px solid #e6e6e6;
  border-radius:16px;
  padding: 0 14px;
  box-shadow: 0 10px 22px rgba(0,0,0,.06);

  display:flex;
  align-items:center;
  justify-content:space-between;
  z-index:50;
}
.hdr__left,.hdr__center,.hdr__right{ display:flex; align-items:center; }
.hdr__left{ gap:10px; }
.hdr__center{ gap:10px; }
.hdr__right{ gap:12px; }
.hdrPhone{
  display:inline-flex;
  align-items:center;
  height:34px;
  padding:0 12px;
  border-radius:10px;
  border:1px solid #e7e7e7;
  background:#fff;
  color:#111;
  text-decoration:none;
  font-size:14px;
  font-weight:700;
  white-space:nowrap;
}
.hdrPhone:hover{
  background:#f8f8f8;
}

.hdr__logo{
  display:flex;
  align-items:center;
  gap:6px;
  padding:4px 0;
  background:transparent;
  border-radius:14px;
  cursor:pointer;
}
.hdr__logoImg{
  display:block;
  height:50px;
  width:auto;
}
.hdr__logoText{ font-weight:800; color:#111; }
.hdr__logoGo{ font-weight:900; color:#ff8a00; }

/* segmented control in header */
.hdrSeg{
  display:inline-flex;
  gap:6px;
  align-items:center;
  padding:3px;
  border-radius:6px;
  background:#f1f1f1;
  border:1px solid #e7e7e7;
  height:30px;
}
.hdrSeg__btn{
  height:24px;
  padding:0 12px;
  border:0;
  border-radius:5px;
  background:transparent;
  font-size:12px;
  line-height:24px;
  font-weight:500;
  color:#666;
  cursor:pointer;
}
.hdrSeg__btn.is-active{
  background:#fff;
  color:#111;
  box-shadow:0 2px 6px rgba(0,0,0,.18);
}

/* dropdowns */
.dd{ position:relative; }
.hdrdd{
  height:28px;
  padding:0 10px;
  border-radius:6px;
  border:0;
  background:transparent;
  font-size:13px;
  color:#111;
  cursor:pointer;
}
.dd__chev{ opacity:.65; margin-left:4px; }
.dd__menu{
  position:absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 1000;

  background:#fff;
  border:1px solid #e7e7e7;
  border-radius:6px;
  box-shadow: 0 10px 28px rgba(0,0,0,.08);

  padding:10px;
  min-width: 260px;

  display:grid;
  grid-template-columns: 1fr;
  gap: 8px 14px;
}
.dd__item{
  display:block;
  padding:8px 10px;
  border-radius:5px;

  text-decoration:none;
  color:#1b1b1b;

  line-height:1.2;
  white-space: normal;      /* разрешаем нормальный перенос */
  word-break: normal; 
}
.dd__item:hover{
  background:#f6f6f6;
}
.dd__item--btn{
  width:100%;
  border:0;
  background:transparent;
  text-align:left;
  font:inherit;
  cursor:pointer;
}
.dd__item--btn.is-active{
  background:#f1f1f1;
  font-weight:700;
}
.dd__divider{
  height:1px;
  background:#ececec;
  margin:2px 0;
}
.dd__label{
  font-size:11px;
  color:#6a6a6a;
  padding:0 10px;
}

.hdrlogin{
  height:28px;
  padding:0 14px;
  border-radius:14px;
  border:0;
  background:#111;
  color:#fff;
  font-weight:700;
  cursor:pointer;
}

.mobhdr{
  display:none;
}

/* =========================
   TOP VEHICLE CARD (two columns)
========================= */
.top2col{ padding: 10px; }
.top2col__wrap{
  display:grid;
  grid-template-columns: 39% 59%;
  gap: 16px;
  align-items:start;
}
.top2col__left{ display:flex; flex-direction:column; gap:10px; }
.top2col__right{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.leftSection__title{
  display:block;
  margin:0 0 12px;
  font-size:16px;
  font-weight:700;
  color:#6f6f6f;
}

.rightTopBar{ display:none; }

.leftCard{
  background:#f1f1f1;
  border: 1px solid #ededed;
  border-radius: 16px;
  overflow:hidden;
  display:grid;
  grid-template-columns: 180px 1fr;
  min-height:116px;
}
.leftCard__img{
  background:#f1f1f1;
  border-right: 1px solid #e6e6e6;
  position:relative;
  min-height:116px;
  overflow:hidden;
}
#bodyCardImg{
  cursor: zoom-in;
  overflow:hidden;
}
#bodyCardImg::after{
  content:'';
  position:absolute;
  right:clamp(6px, 1.8vw, 10px);
  top:clamp(6px, 1.8vw, 10px);
  width:clamp(20px, 5vw, 24px);
  height:clamp(20px, 5vw, 24px);
  border-radius:999px;
  border:1px solid #e5e5e5;
  background:rgba(255,255,255,.84);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23686868' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cpolyline points='9 21 3 21 3 15'/%3E%3Cline x1='21' y1='3' x2='14' y2='10'/%3E%3Cline x1='3' y1='21' x2='10' y2='14'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center;
  background-size:clamp(10px, 2.8vw, 13px) clamp(10px, 2.8vw, 13px);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 1px 4px rgba(0,0,0,.08);
  pointer-events:none;
  z-index:2;
}
.leftCard__img:before{
  content:'';
  position:absolute;
  inset:12px;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  /* default; may be overridden via --bodyImg */
  background-image: var(--bodyImg, url("/img/s.webp"));
  transition: transform .16s ease;
}
#bodyCardImg:hover:before{
  animation: bodyCardNudge 1.35s cubic-bezier(.33,.01,.25,1) infinite;
}
#bodyCardImg:active:before{
  transform: scale(1.03);
}

@keyframes bodyCardNudge{
  0%{ transform:translateY(0) rotate(0deg); }
  30%{ transform:translateY(-0.5px) rotate(-0.12deg); }
  55%{ transform:translateY(-1px) rotate(0.08deg); }
  78%{ transform:translateY(-0.4px) rotate(0.1deg); }
  100%{ transform:translateY(0) rotate(0deg); }
}

.imgZoom{
  position:fixed;
  inset:0;
  z-index:10000;
  background:rgba(0,0,0,.74);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow-y:auto;
  overflow-x:hidden;
  padding:16px;
  padding-left:max(24px, calc(env(safe-area-inset-left) + 16px));
  padding-right:max(24px, calc(env(safe-area-inset-right) + 16px));
  box-sizing:border-box;
}
.imgZoom__sheet{
  width:min(100%, 1020px);
  max-width:100%;
  margin:0 auto;
  position:relative;
  box-sizing:border-box;
}
.imgZoom__frame{
  width:100%;
  height:min(72vh, calc(100dvh - 190px));
  min-height:260px;
  border-radius:12px;
  background:#fff;
  box-shadow:0 16px 40px rgba(0,0,0,.35);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.imgZoom__close{
  position:absolute;
  top:10px;
  right:10px;
  z-index:2;
  width:32px;
  height:32px;
  border-radius:999px;
  border:1px solid #d8d8d8;
  background:#fff;
  color:#333;
  cursor:pointer;
}
.imgZoom__img{
  width:100%;
  height:100%;
  object-fit:contain;
}
.imgZoom__bar{
  margin-top:10px;
  border-radius:12px;
  background:#fff;
  border:1px solid #e7e7e7;
  box-shadow:0 10px 24px rgba(0,0,0,.16);
  padding:8px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto auto;
  gap:8px;
  align-items:center;
}
.imgZoom__nav{
  width:30px;
  height:30px;
  border-radius:8px;
  border:1px solid #dadada;
  background:#f5f5f5;
  color:#222;
  font-size:18px;
  cursor:pointer;
}
.imgZoom__meta{
  min-width:0;
  line-height:1.2;
}
.imgZoom__size{
  font-size:13px;
  font-weight:800;
  color:#222;
}
.imgZoom__dims{
  margin-top:2px;
  font-size:11px;
  color:#666;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  line-height:1.25;
}
.imgZoom__pick{
  height:30px;
  padding:0 12px;
  border-radius:8px;
  border:0;
  background:#b80d1a;
  color:#fff;
  font-weight:700;
  cursor:pointer;
}
.leftCard__dims{
  padding: 12px 14px;
  font-size: 14px;
  line-height: 1.45;
  color:#6f6f6f;
  white-space: normal;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  text-align:left;
}
.leftCard__dimsMain{
  color: inherit;
}
.leftCard__dimsSep{
  color: inherit;
  position: relative;
  height: 4px;
  margin: 2px 0 1px;
  font-size: 0;
  line-height: 0;
}
.leftCard__dimsSep::before{
  content: "";
  display: block;
  width: 34px;
  height: 1px;
  background: currentColor;
}
.leftCard__dimsSub{
  font-size:.8em;
  line-height:1.25;
  color:#949494;
}

.leftCard--body{
  display:flex;
  align-items:center;
  gap:10px;
  padding: 5px 10px;
  min-height:26px;
}
.leftCard--body .leftCard__img{ display:none; }
.leftCard__bodyLbl{
  font-size: 13px;
  font-weight: 700;
  color:#222;
  padding:0 6px 0 6px;
}

.segBody{
  display:flex;
  background:#e9e9e9;
  border:1px solid #e0e0e0;
  padding:4px;
  border-radius:6px;
  align-items:center;
  flex-wrap:wrap;
}
.segBody__btn{
  height:20px;
  padding:0 12px;
  border:0;
  border-radius:6px;
  background:transparent;
  font-size:12px;
  color:#6d6d6d;
  cursor:pointer;
}
.segBody__btn.is-active{
  background:#fff;
  border:1px solid #cfcfcf;
  color:#111;
  font-weight:700;
}

.rightSection__title{
  font-size: 13px;
  font-weight: 700;
  color:#222;
  margin: 0 0 3px;
}

.rightSection__title--packToggle{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  background:transparent;
  padding:0;
  text-align:left;
  width:100%;
  cursor:default;
}

.rightGrid2{
  display:grid;
  grid-template-columns: 1fr 1fr;
  row-gap: 2px;
  align-items:start;
}
.opt{ min-width:0; }
.opt__name{ font-size:12px; font-weight:600; line-height:1; color:#222; }
.opt__hint{
  font-size:11px;
  line-height:1;
  margin-top:2px;
  color:#7a7a7a;
  max-width:240px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.rightDivider{
  height:1px;
  background:#e9e9e9;
  margin: 0 10%;
}

/* Segmented mini */
.segMini{
  display:inline-flex;
  align-items:center;
  padding:2px;
  gap:0px;
  border-radius:5px;
  background:#efefef;
  border:1px solid #e2e2e2;
}
.segMini__btn{
  height:30px;
  min-width:33%;
  padding:0 4px;
  border:1px solid transparent;
  border-radius:5px;
  background:transparent;
  font-size:9px;
  color:#666;
  cursor:pointer;
}
.segMini__btn.is-active{
  background:#fff;
  border-color:#cfcfcf;
  color:#111;
  font-weight:600;
}
.segMini--2 .segMini__btn{ min-width:40px; padding:0 6px; }

/* Packaging grid */
.packGrid4{
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap:14px;
  align-items:start;
}
.packIt{ min-width:0; }
.packIt__lbl{
  font-size:12px;
  font-weight:700;
  line-height:1;
  color:#222;
}
.packIt__lbl span{
  display:block;
  font-size:10.5px;
  font-weight:600;
  color:#7a7a7a;
  margin-top:2px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.stepperV{
  margin-top:4px;
  display:flex;
  align-items:center;
  gap:6px;
}
.stepperV__inp{
  width:34px;
  height:24px;
  border-radius:10px;
  border:1px solid #e2e2e2;
  background:#fff;
  padding:0 6px;
  font-size:11.5px;
  text-align:center;
}
.stepperV__pm{
  display:flex;
  flex-direction:column;
  border:1px solid #e2e2e2;
  border-radius:10px;
  overflow:hidden;
}
.stepperV__btn{
  width:22px;
  height:12px;
  line-height:12px;
  border:0;
  background:#f5f5f5;
  font-size:10.5px;
  cursor:pointer;
  font-weight:900;
  color:#444;
}
.stepperV__btn + .stepperV__btn{ border-top:1px solid #e2e2e2; }
.stepperV__unit{ font-size:8px; color:#7a7a7a; }

/* =========================
   STOPS STACK (container)
========================= */
.stops-stack{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:0 0 12px 0;
}

/* Legacy stop card styles (safe) — app.js may still render these */
.stop{
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  box-shadow:var(--shadow);
  padding:12px 14px;
  transition: opacity .12s ease;
}
.stop__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}
.stop__type{ font-weight:900; font-size:14px; color:#111; }
.stop__del{ border:0; background:transparent; cursor:pointer; color:#d01717; font-weight:900; }

/* Logist-mode stop grid (if used) */
.stop-card{
  display:grid;
  grid-template-columns: 40% 30% 22% 8%;
  gap:12px;
  align-items:start;
}
.stop-col-1,.stop-col-2,.stop-col-3{ display:flex; flex-direction:column; gap:8px; min-width:0; }
.stop-col-4{ display:flex; flex-direction:column; align-items:flex-end; gap:12px; text-align:right; }
.stop-price{ font-weight:600; white-space:nowrap; }
.stop-actions{ display:flex; align-items:center; gap:6px; color:var(--a2); cursor:pointer; }

/* =========================
   FOOTER BAR (bottom)
========================= */
.footerBar2{
  margin-top:12px;
  background:#fff;
  border:1px solid #e6e6e6;
  border-radius:16px;
  padding:12px 14px;
  display:flex;
  align-items:flex-end;
  gap:12px;
  position: fixed;
  bottom: 12px;
  left: calc(var(--leftOffset) + 14px);
  right: calc(var(--mapW) + var(--colGap) + 14px);
  z-index: 60;
  box-shadow: 0px -10px 22px rgba(0, 0, 0, .06);
}
.payBox{
  display:grid;
  gap:4px;
  min-width:230px;
  max-width:320px;
  flex:0 1 320px;
}
.payRow{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:0;
  min-width:0;
}
.payRow select{
  min-width:0;
  flex:1 1 auto;
}
.payPill{
  font-size:11px;
  padding:4px 8px;
  border-radius:6px;
  background:#f5f5f5;
  border:1px solid #e6e6e6;
}
.payText{ font-size:12.5px; color:#333; }
.resetLink--draft{
  padding:0 !important;
  white-space:nowrap;
  flex:0 0 auto;
}
.orderBtn{
  flex:0 0 190px;
  width:190px;
  height:32px;
  border-radius:6px;
  border:1px solid #a90e1a;
  background:linear-gradient(180deg,#cf1a2c,#b80d1a);
  color:#fff;
  font-weight:800;
  cursor:pointer;
}
.orderBtn:hover,
.orderBtn:focus-visible,
.orderBtn:active{
  background:linear-gradient(180deg,#cf1a2c,#b80d1a) !important;
  color:#fff !important;
  border-color:#a90e1a !important;
}
.totalBox{
  margin-left:auto;
  flex:0 0 auto;
}
.totalBox__row{ display:flex; align-items:center; gap:10px; justify-content:flex-end; }
.totalBox__val{ font-weight:900; font-size:13px; }
.totalPriceStack{
  display:inline-flex;
  flex-direction:column;
  align-items:flex-end;
  line-height:1.05;
  gap:2px;
}
.totalPriceOld{
  font-size:11px;
  font-weight:500;
  color:#8b8b8b;
  text-decoration:line-through;
}
.totalPriceNew{
  font-size:14px;
  font-weight:900;
  color:#111;
}
.priceFromPrefix{
  font-weight:400 !important;
}
.stopPriceStack{
  display:inline-flex;
  flex-direction:column;
  align-items:flex-start;
  line-height:1.05;
  gap:1px;
}
.stopPriceOld{
  font-size:10px;
  font-weight:500;
  color:#8b8b8b;
  text-decoration:line-through;
}
.stopPriceNew{
  font-size:12px;
  font-weight:800;
  color:#111;
}

/* =========================
   MODAL (login + details) — generic, BEM
========================= */
.modal{
  position:fixed;
  inset:0;
  z-index:9999;
}
.modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.25);
}
.modal__panel{
  position:relative;
  width:min(420px, calc(100vw - 24px));
  margin:10vh auto 0;
  background:#fff;
  border:1px solid #e7e7e7;
  border-radius:16px;
  box-shadow:0 12px 30px rgba(0,0,0,.18);
  padding:16px;
}
.modal__x{
  position:absolute;
  top:10px;
  right:10px;
  width:32px;
  height:32px;
  border-radius:10px;
  border:1px solid #e7e7e7;
  background:#fff;
  cursor:pointer;
}
.modal__head{ padding-right:40px; }
.modal__title{ font-weight:700; font-size:18px; }
.modal__sub{ font-size:12px; color:#777; margin-top:2px; }
.modal__form{ margin-top:12px; display:grid; gap:10px; }
.modal__lbl{ display:grid; gap:6px; font-size:12px; color:#555; }
.modal__inp{
  height:36px;
  border-radius:6px;
  border:1px solid #e7e7e7;
  padding:0 12px;
  outline:none;
}
.modal__inp:focus{ border-color:#cfcfcf; }
.modal__btn{
  height:38px;
  border-radius:6px;
  border:0;
  background:#111;
  color:#fff;
  font-weight:600;
  cursor:pointer;
}
.modal__btn[disabled]{
  opacity:.55;
  cursor:not-allowed;
}
.modal__btn--ghost{
  background:#f7f7f7;
  color:#111;
  border:1px solid #e0e0e0;
}
.modal__btn#authGoogle{
  background:#c8102e;
  color:#fff;
  border:1px solid #ad0d27;
}
.modal__btn#authGoogle:hover,
.modal__btn#authGoogle:focus-visible{
  background:#b30e29;
  border-color:#9f0c24;
}
.modal__err{ font-size:12px; color:#b00020; }
.modal__panel--welcome{
  width:min(540px, calc(100vw - 24px));
}
.modal__panel--draftsave{
  width:min(520px, calc(100vw - 24px));
}
.modal__panel--pointtype{
  width:min(440px, calc(100vw - 24px));
}
.pointTypeModal__actions{
  margin-top:14px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.pointTypeModal__btn{
  height:42px;
  border-radius:10px;
}
.draftsave__modes{
  margin-top:12px;
  display:flex;
  gap:8px;
}
.draftsave__mode{
  flex:1;
  height:36px;
  border-radius:10px;
  border:1px solid #d8d8d8;
  background:#f7f7f7;
  color:#222;
  font-weight:700;
  cursor:pointer;
}
.draftsave__mode.is-active{
  color:#fff;
  border-color:#b80d1a;
  background:linear-gradient(180deg,#cf1a2c,#b80d1a);
}
.modal__panel--welcome #welcomeCallBtn{
  background:linear-gradient(180deg,#cf1a2c,#b80d1a);
}
.modal__panel--welcome #welcomeCallBtn:hover,
.modal__panel--welcome #welcomeCallBtn:focus-visible,
.modal__panel--welcome #welcomeCallBtn:active{
  background:linear-gradient(180deg,#cf1a2c,#b80d1a) !important;
}
.welcomePhonePc{
  padding:10px 12px;
  border:1px solid #e6e6e6;
  border-radius:10px;
  background:#fafafa;
  color:#333;
  font-size:14px;
}
.welcomePhonePc a{
  color:#111;
  font-weight:700;
  text-decoration:none;
}

.authTabs{ display:flex; gap:8px; margin:10px 0; }
.authTab{
  height:34px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid #e0e0e0;
  background:#fff;
  font-weight:600;
  cursor:pointer;
}
.authTab.is-active{
  background:#111;
  color:#fff;
  border-color:#111;
}
.authRow{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  align-items:end;
}
.authRow__code .modal__inp{ width:100%; }
.authHint{
  font-size:12px;
  color:#666;
}
.authNote{
  font-size:12px;
  color:#8a5b00;
  background:#fff7e6;
  border:1px solid #ffe2b6;
  padding:6px 8px;
  border-radius:8px;
}

/* details modal uses .modal__box from older markup */
.modal__box{
  width:min(720px, 100%);
  background:#fff;
  border-radius:16px;
  padding:14px;
  border:1px solid var(--border);
  box-shadow:0 10px 24px rgba(0,0,0,.15);
  margin:10vh auto 0;
  position:relative;
}

/* =========================
   PAY MODAL (namespaced) — no conflicts
========================= */
.paym[hidden]{ display:none !important; }
.paym{ position:fixed; inset:0; z-index:9999; }

.paym__bg{
  position:absolute; inset:0;
  background:rgba(0,0,0,.25);
  backdrop-filter: blur(1px);
}

.paym__card{
  position:relative;
  width:min(620px, calc(100vw - 32px));
  max-height:calc(100vh - 32px);
  overflow:auto;
  background:#fff;
  border-radius:16px;
  box-shadow:0 12px 40px rgba(0,0,0,.25);
  margin:16px auto;
  padding:14px 14px 16px;
}

.paym__x{
  position:absolute; top:10px; right:10px;
  width:34px; height:34px;
  border:0; border-radius:6px;
  background:#f2f2f2;
  cursor:pointer;
}

.paym__titleRow{
  display:flex; align-items:center; gap:8px;
  padding-right:44px;
  margin-bottom:10px;
}
.paym__ico{ font-size:18px; line-height:1; }
.paym__title{
  font-weight:700;
  display:flex;
  flex-direction:column;
  gap:2px;
  line-height:1.15;
}
.paym__sub{
  display:block;
  font-weight:500;
  color:#777;
  font-size:12px;
  white-space:nowrap;
}

.paym__grid{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding-top:6px;
  background:#ececec;
  border-radius:12px;
  padding:8px;
}
.paym__grid > *{ min-width:0; }
.paym__point{
  background:#fff;
  border:1px solid #e5e5e5;
  border-radius:12px;
  padding:10px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.paym__pointLbl{
  font-weight:700;
}
.paym__partial{
  margin-top:2px;
  padding-top:8px;
  border-top:1px solid #ececec;
  display:flex;
  flex-direction:column;
  gap:8px;
}

.paym__svc{
  display:grid;
  gap:6px;
}
.paym__svcItem{
  display:flex;
  align-items:flex-start;
  gap:6px;
  font-size:11px;
  color:#333;
  line-height:1.15;
}
.paym__svcItem span{
  display:block;
  overflow-wrap:anywhere;
}
.paym__svcItem input[type="checkbox"]{
  width:14px;
  height:14px;
  margin-top:1px;
  flex:0 0 14px;
}

.paym__amt{
  font-size:13px;
  font-weight:700;
  color:#111;
  text-align:left;
  white-space:nowrap;
  padding-right:2px;
}

.paym__lbl--sub{
  color:#777;
  font-size:12px;
}
.paym__lbl{
  align-self:center;
  color:#333;
  font-size:13px;
}
.paym__sel{
  width:100%;
  min-width:0;
  height:34px;
  border-radius:6px;
  border:1px solid #d9d9d9;
  background:#f3f3f3;
  padding:0 10px;
  font-size:13px;
}
.paym__sel:focus{
  outline:none;
  border-color:#cf1a2c;
  box-shadow:0 0 0 3px rgba(207,26,44,.18);
}
.paym__sel:hover{
  border-color:#cf1a2c;
  box-shadow:0 0 0 2px rgba(207,26,44,.10);
}
.paym__splitLine{
  font-size:12px;
  color:#444;
  line-height:1.25;
}

.paym__footer{ display:flex; justify-content:flex-start; padding-top:12px; }
.paym__save{
  min-width:160px;
  height:40px;
  border:0;
  border-radius:6px;
  color:#fff;
  background:linear-gradient(180deg,#cf1a2c,#b80d1a);
  box-shadow:0 8px 16px rgba(184,13,26,.25);
  cursor:pointer;
}
.paym__save:hover,
.paym__save:focus-visible{
  background:linear-gradient(180deg,#cf1a2c,#b80d1a) !important;
  color:#fff !important;
}
.paym__save:active{ transform: translateY(1px); }

/* ===== LIFT FIX MODAL (namespaced) ===== */
.liftm[hidden]{ display:none !important; }

.liftm{
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

.liftm__bg{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.28);
}

.liftm__card{
  position: relative;
  width: min(586px, calc(100vw - 24px));
  max-height: calc(100vh - 32px);
  overflow: auto;

  background: #f3f3f3;
  border: 1px solid #e7e7e7;
  border-radius: 22px;
  box-shadow: 0 18px 50px rgba(0,0,0,.18);

  padding: 12px 14px 14px;
}

.liftm__x{
  position: absolute;
  top: 16px;
  right: 16px;

  width: 32px;
  height: 32px;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
}

.liftm__titleRow{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-right: 40px;
  margin-bottom: 2px;
}
.liftm__priceHead{
  font-size: 18px;
  font-weight: 600;
  color: #606060;
  line-height: 1;
  white-space: nowrap;
}

.liftm__ico{
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
}

.liftm__title{
  font-weight: 700;
  font-size: 18px;
  line-height: 1.2;
  color: #3f3f3f;
}
.liftm__sub{
  margin:2px 0 8px;
  color:#777;
  font-size:11px;
  line-height:1.24;
}

.liftm__rows{
  display:flex;
  flex-direction:column;
  gap:0;
  margin: 8px 0 12px;
}

.liftmRow{
  display:grid;
  grid-template-columns: 102px minmax(0, 1fr) 132px 78px;
  gap:10px;
  align-items:start;
  padding:10px 0;
  border:0;
  border-bottom:1px solid #e5e5e5;
  background:transparent;
}

.liftmRow__img{
  width:102px;
  height:92px;
  border-radius:0;
  background:#d8d8d8;
  border:1px solid #dddddd;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:zoom-in;
  overflow:hidden;
}
.liftmRow__imgPic{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.liftmRow__img:focus-visible{
  outline:2px solid #cf1a2c;
  outline-offset:2px;
}
.liftmImgZoom .imgZoom__sheet{
  width:min(100%, 920px);
}
.liftmImgZoom .imgZoom__frame{
  min-height:0;
  max-height:none;
  padding:14px;
}
.liftmImgZoom .imgZoom__img{
  max-height:min(80vh, 80svh);
}
.liftmImgZoom__bar{
  justify-content:center;
}
.liftmImgZoom__bar .imgZoom__meta{
  text-align:center;
}

.liftmRow__main{ min-width:0; }

.liftmRow__fit{
  min-width:0;
  padding-top:32px;
  display:flex;
  align-items:center;
  gap:6px;
  opacity:1;
  transform:translateY(0);
  visibility:visible;
  transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.liftmRow__fit.is-hidden{
  opacity:0;
  transform:translateY(4px);
  visibility:hidden;
  pointer-events:none;
}
.liftmFloor{
  margin-top:6px;
}
.liftmFloor__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:2px;
}
.liftmFloor__lbl{
  font-size:13px;
  color:#575757;
  font-weight:500;
}
.liftmFloor__add{
  border:0;
  background:transparent;
  color:#b80d1a;
  cursor:pointer;
  font-size:20px;
  font-weight:700;
  padding:0 2px;
  line-height:1.1;
  text-transform:lowercase;
}
.liftmFloor__add.is-active{
  color:#6b6b6b;
}
.liftm__inp--floor{
  height:30px;
  line-height:1;
  color:#4b4b4b;
  background:#fff;
  text-overflow:ellipsis;
  min-width:150px !important;
}
.liftmFloorView{
  min-height:26px;
  border:0;
  border-radius:0;
  background:transparent;
  padding:0;
  display:block;
}
.liftmFloorView--mini{
  min-width:190px;
}
.liftm__miniCol--dist[hidden]{ display:none !important; }
.liftmDist{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.liftmDist__row{
  display:grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap:6px;
  align-items:end;
}
.liftmDist__row--single{
  grid-template-columns: minmax(0, 1fr);
}
.liftmDist__cell{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.liftmDist__cell--floor{
  max-width:74px;
}
.liftmFloorChip{
  display:inline-flex;
  align-items:center;
  height:20px;
  padding:0 7px;
  border:1px solid #cfcfcf;
  border-radius:999px;
  background:#fafafa;
  color:#4f4f4f;
  font-size:11px;
  white-space:nowrap;
}
.liftmFloorChip--empty{
  border-style:dashed;
  color:#8d8d8d;
  background:#fff;
}
.liftmFloorEditor{
  margin-top:8px;
  border:1px solid #d8d8d8;
  border-radius:10px;
  background:#fff;
  padding:10px;
  animation: liftmFloorEditorIn .18s ease-out;
}
.liftmFloorEditor__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:8px;
}
.liftmFloorEditor__title{
  font-size:13px;
  font-weight:700;
  color:#333;
}
.liftmFloorEditor__close{
  width:26px;
  height:26px;
  border-radius:6px;
  border:1px solid #d9d9d9;
  background:#fff;
  cursor:pointer;
}
.liftmFloorEditor__row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-bottom:8px;
}
.liftmFloorEditor__row--add{
  grid-template-columns:1fr 1fr auto;
  align-items:end;
}
.liftmFloorEditor__lbl{
  display:block;
  font-size:12px;
  color:#555;
  margin-bottom:3px;
}
.liftmFloorEditor__err{
  font-size:12px;
  color:#b80d1a;
  margin:2px 0 8px;
}
.liftmFloorEditor__list{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-bottom:6px;
}
.liftmFloorEditor__item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  font-size:12px;
  color:#333;
  background:#fff;
  border:1px solid #e4e4e4;
  border-radius:8px;
  padding:6px 8px;
}
.liftmFloorEditor__remove{
  border:0;
  background:transparent;
  color:#b80d1a;
  cursor:pointer;
  font-size:12px;
}

.liftmRow__cost{
  align-self:start;
  padding-top:34px;
  justify-self:end;
  font-weight:600;
  color:#686868;
  white-space:nowrap;
  font-size:16px;
}

.liftmRow__hint{
  margin-top:4px;
  font-size:10px;
  color:#7a7a7a;
  line-height:1.2;
}
.liftmRow--editing{
  background:rgba(255,255,255,.45);
}
@keyframes liftmFloorEditorIn{
  from{ opacity:0; transform:translateY(-4px); }
  to{ opacity:1; transform:translateY(0); }
}

.liftmSeg{
  border:0 !important;
  background:transparent !important;
  padding:0 !important;
  display:inline-flex !important;
  gap:0 !important;
  width:28px;
  height:15px;
  border-radius:999px;
  background:#8b8b8b !important;
  position:relative;
  vertical-align:middle;
  margin-right:0;
}
.liftmSeg .segMini__btn{
  min-width:14px;
  width:14px;
  height:15px;
  padding:0;
  border:0 !important;
  font-size:0;
  line-height:0;
  color:transparent;
  background:transparent !important;
  box-shadow:none !important;
}
.liftmSeg::after{
  content:"";
  position:absolute;
  top:2px;
  left:2px;
  width:11px;
  height:11px;
  border-radius:50%;
  background:#fff;
  transition:left .16s ease;
}
.liftmSeg.is-yes{
  background:#74b868 !important;
}
.liftmSeg.is-yes::after{
  left:15px;
}
.liftmSeg .segMini__btn[data-val="1"].is-active{
  background:transparent !important;
  border-color:transparent !important;
  color:transparent !important;
}

.liftm__lbl{
  display: inline-flex;
  align-items:center;
  gap:8px;
  font-size: 17px;
  color: #555;
  margin-bottom: 4px;
  font-weight: 700;
  line-height: 1.04;
}

.liftm__inpRow{
  display: flex;
  align-items: center;
  gap: 8px;
}

.liftm__inp{
  width: 100%;
  min-width: 0;
  height: 30px;
  border: 1px solid #b8b8b8;
  border-radius: 8px;
  padding: 0 10px;
  font: inherit;
  outline: none;
  background: #fff !important;
  font-size: 13px;
  color:#4f4f4f;
}
.liftm__inp--short{
  max-width:74px;
}
.liftmRow .liftm__inp{
  width:auto;
  min-width:46px;
}

.liftm__inp:focus{
  border-color: #bdbdbd;
}

.liftm__unit{
  font-size: 10px;
  color: #707070;
  white-space: nowrap;
  line-height:1;
}

.liftm__sum{
  display:block;
  margin-top: 8px;
  text-align: right;
  font-size: 14px;
  font-weight: 700;
  color:#4a4a4a;
}

.liftm__btnRow{
  display: flex;
  gap: 18px;
  margin-top: 12px;
  justify-content: space-between;
  align-items: center;
}

.liftm__btn{
  height: 36px;
  min-width: 148px;
  padding: 0 16px;
  border-radius: 18px;
  border: 1px solid #cf1a2c;
  background: transparent;
  color:#cf1a2c;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  font-family: inherit;
}

.liftm__btn--primary{
  border: 0 !important;
  color:#fff !important;
  background: linear-gradient(180deg, #cf1a2c, #b80d1a);
  font-weight: 600;
  box-shadow: 0 6px 16px rgba(184,13,26,.25);
}
.liftm__btnRow #liftmSave{
  min-width:220px;
}

.liftm__miniGrid{
  display:flex;
  align-items:flex-end;
  gap:10px;
}
.liftm__miniCol{
  display:flex;
  flex-direction:column;
  gap:4px;
  align-self:flex-start;
}
.liftm__miniLbl{
  font-size:10px;
  color:#666;
  line-height: 1.05;
}
.liftm__inp--mini{
  min-width:46px;
  max-width:70px;
}
/* Поле "На этаж" делаем короче, чем "Из них" */
.liftmDist__cell input[data-liftm-dist-field="floor"],
.liftmDist__cell input[data-liftm-dist-mode="singleFloor"]{
  max-width:52px;
  min-width:42px;
}
.liftm__lbl--fit{
  font-size:10px;
  line-height:1.15;
  font-weight:600;
}
.liftmFloor__add{
  margin-top: 2px;
  font-size: 13px;
}
.liftm .qhelp{
  width: 15px;
  height: 15px;
  font-size: 11px;
}
.liftm__btn--primary:hover,
.liftm__btn--primary:focus-visible,
.liftm__btn--primary:active{
  background:linear-gradient(180deg,#cf1a2c,#b80d1a) !important;
  color:#fff !important;
}

/* responsive */
@media (max-width: 720px){
  .liftm{
    align-items:flex-start;
    justify-content:center;
    overflow:auto;
    padding: max(8px, env(safe-area-inset-top)) 10px 10px;
  }
  .liftm__card{
    width:calc(100vw - 20px);
    max-height:none;
    margin:0 auto;
    padding:10px 12px 14px;
    border-radius:16px;
  }
  .liftm__titleRow{
    padding-right:34px;
    margin-bottom:4px;
  }
  .liftm__title{
    font-size:16px;
  }
  .liftm__sub{
    font-size:12px;
    margin:2px 0 6px;
  }
  .liftmRow{
    grid-template-columns: minmax(0, 1fr) 108px;
    grid-template-areas:
      "title title"
      "img img"
      "body fit"
      "add fit"
      "hint cost";
    gap:8px;
    padding:10px 0;
    align-items:start;
  }
  .liftmRow__main{
    display:contents;
  }
  .liftmRow__main > .liftm__lbl{
    grid-area:title;
    margin-bottom:0;
  }
  .liftmRow__main > .liftm__miniGrid{
    grid-area:body;
  }
  .liftmRow__main > .liftmFloor__add{
    grid-area:add;
  }
  .liftmRow__main > .liftmRow__hint{
    grid-area:hint;
    margin-top:0;
  }
  .liftmRow__img{
    grid-area:img;
    width:100%;
    max-width:none;
    height:128px;
  }
  .liftmRow__fit{
    grid-area:fit;
    padding-top:0;
    justify-self:end;
    align-self:start;
    flex-direction:column;
    align-items:flex-end;
    gap:6px;
  }
  .liftmRow__cost{
    grid-area:cost;
    justify-self:end;
    padding-top:0;
    font-size:14px;
    align-self:end;
  }
  .liftmRow__hint{
    margin-top:2px;
  }
  .liftm__btnRow{ flex-direction: column; }
  .liftm__btn{
    width:100%;
    min-width:0;
    height:40px;
    font-size:16px;
  }
  .liftm__btnRow #liftmSave{
    min-width:0;
  }
  .liftm__miniGrid{
    flex-wrap:wrap;
  }
  .liftm__inp{
    min-width:62px;
    height:34px;
    font-size:14px;
    border-radius:8px;
  }
  .liftm__unit{
    font-size:12px;
  }
  .liftm__lbl{
    font-size:14px;
  }
  .liftmFloorEditor__row,
  .liftmFloorEditor__row--add{
    grid-template-columns:1fr;
  }
}


/* =========================
   RESPONSIVE
========================= */
@media (max-width:1100px){
  :root{
    --leftOffset: 14px;
    --colGap: 16px;
    --formW: auto;
  }

  .page{
    padding-left: 14px;
    padding-right: 14px;
  }

  .layout{
    flex-direction:column;
    padding-top: 0;
  }

  .hdr{
    position:fixed;
    top:12px;
    left:14px;
    right:14px;
    width:auto;
    max-width:none;
    margin-bottom:0;
  }

  .form-col{
    width:100%;
    flex:1 1 auto;
    min-width:0;
    padding:0;
  }

  .map-col{
    position:relative;
    width:auto;
    top:0; right:auto; bottom:auto;
    height:45vh;
    border:1px solid #e6e6e6;
    border-radius:16px;
    background:#fff;
  }

  .paym__grid{ gap:8px; }
  .paym__amt{
    text-align:left;
  }

  .footerBar2{ grid-template-columns: 1fr; }
  .totalBox{ justify-self:start; }
  .totalBox__row{ justify-content:flex-start; }
  .hdr__center{ display:none; }
  .packGrid4{ grid-template-columns: 1fr 1fr; }
}

@media (max-width:720px){
  .map-col{ display:none; } /* как в ТЗ: карта скрыта */
  .top2col__wrap{ grid-template-columns: 1fr; }
  .packGrid4{ grid-template-columns: 1fr 1fr; }
}

/* =========================================================
   TRANSITION STABILIZER (tablet / narrow desktop)
   Prevent broken fixed bars and overlap while crossing breakpoints
   ========================================================= */
@media (min-width: 821px) and (max-width: 1180px){
  .page{
    padding-top: 14px;
  }

  .hdr{
    position: sticky;
    top: 8px;
    left: auto;
    right: auto;
    width: 100%;
    max-width: none;
    margin-bottom: 10px;
    z-index: 900;
  }

  .layout{
    flex-direction: column;
    gap: 12px;
    padding-top: 0;
  }

  .form-col{
    width: 100%;
    min-width: 0;
    padding-bottom: 120px;
  }

  .map-col{
    position: relative;
    top: 0;
    right: auto;
    bottom: auto;
    width: 100%;
    height: 42vh;
    border-radius: 16px;
  }

  .footerBar2{
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: 10px;
    width: auto;
    grid-template-columns: 1fr auto auto;
    grid-template-areas: "pay btn total";
    gap: 10px;
    border-radius: 14px;
    padding: 10px 12px;
    z-index: 1000;
  }
  .orderBtn{
    grid-area: btn;
    width: min(320px, 100%);
    height: 36px;
  }
  .payBox{ grid-area: pay; min-width: 0; }
  .totalBox{ grid-area: total; justify-self: end; min-width: 0; }
  .resetLink{
    display: none;
  }
}

/* =========================
   INPUT VARIANTS
========================= */
.inp--soft{
  background:#f4f4f4;
  border:1px solid #e2e2e2;
}
.small{ font-size:12px; }

/* =========================
   SUGGEST DROPDOWN
========================= */
.suggest{ position:relative; min-width:0; }
.suggest__list{
  position:absolute;
  left:0; right:0;
  top:100%;
  margin-top:6px;
  background:#fff;
  border:1px solid #e6e6e6;
  border-radius:6px;
  max-height:240px;
  overflow:auto;
  z-index:9999;
  box-shadow:0 10px 24px rgba(0,0,0,.12);
}
.suggest__item{
  padding:10px 12px;
  cursor:pointer;
  border-bottom:1px solid #f1f1f1;
  font-size:13px;
}
.suggest__item:last-child{ border-bottom:0; }
.suggest__item:hover{ background:#f7f7f7; }
.suggest__tag{ font-size:11px; color:#7a7a7a; margin-left:6px; }
.suggest__list--loading{
  padding:6px 0;
}
.suggest__skeleton{
  padding:10px 12px;
  border-bottom:1px solid #f1f1f1;
}
.suggest__skeleton:last-child{
  border-bottom:0;
}
.suggest__skeletonLine{
  display:block;
  width:100%;
  height:12px;
  border-radius:999px;
  background:linear-gradient(90deg,#efefef 25%, #f7f7f7 37%, #efefef 63%);
  background-size:300% 100%;
  animation:suggestSkeletonPulse 1.05s ease-in-out infinite;
}
@keyframes suggestSkeletonPulse{
  0%{ background-position:100% 0; opacity:.85; }
  50%{ opacity:1; }
  100%{ background-position:0 0; opacity:.85; }
}

/* floor input: hide native datalist dropdown indicator on narrow cell */
.stop input[data-k="floor"]{
  padding-left:0 !important;
  padding-right:0 !important;
  text-align:center;
  font-variant-numeric: tabular-nums;
  letter-spacing:0;
  text-indent:0;
  cursor:pointer;
  border-bottom-style:dashed;
  border-bottom-width:1px;
  border-bottom-color:#9aa1ab !important;
}
@media (max-width:820px), (pointer:coarse){
  .stop input[data-k="floor"]{
    font-size:16px !important;
  }
}

/* ===== Admin order edit (from admin panel) ===== */
body[data-admin-order-edit="1"]{
  background:#f3f4f6;
}
body[data-admin-order-edit="1"] .form-col{
  padding-top:84px !important;
}
body[data-admin-order-edit="1"] .stop2__hdr{
  flex-wrap:wrap;
}
.adminOrderEditBar{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1600;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:10px 14px;
  border-bottom:1px solid #e3e5ea;
  background:#fff;
  box-shadow:0 8px 20px rgba(8,16,36,.08);
}
.adminOrderEditBar__left{ min-width:0; }
.adminOrderEditBar__back{
  display:inline-block;
  margin-bottom:4px;
  color:#344054;
  text-decoration:none;
  font-size:12px;
}
.adminOrderEditBar__title{
  font-size:16px;
  font-weight:800;
  color:#111827;
}
.adminOrderEditBar__meta{
  margin-top:2px;
  font-size:12px;
  color:#6b7280;
}
.adminOrderEditBar__right{
  display:flex;
  align-items:center;
  gap:8px;
}
.adminOrderEditBar__lbl{
  font-size:12px;
  color:#6b7280;
}
#adminOrderStatusSel{ min-width:165px; }
#adminOrderManualTotal{ width:132px; }
.stop2__pointStatus{
  display:flex;
  align-items:center;
  gap:6px;
  margin-left:auto;
}
.stop2__pointStatusLbl{
  font-size:11px;
  color:#6b7280;
  white-space:nowrap;
}
.stop2__pointStatusSel{
  min-width:148px;
  height:28px;
  padding:0 8px;
  font-size:12px;
}
.stopTa--logist{
  min-height:34px;
}
.stopRow1--adminPrice .inp{
  max-width:180px;
}
@media (max-width: 820px), (pointer: coarse){
  body[data-admin-order-edit="1"] .form-col{
    padding-top:118px !important;
  }
  .adminOrderEditBar{
    flex-direction:column;
    gap:6px;
    padding:8px 10px;
  }
  .adminOrderEditBar__right{
    width:100%;
    flex-wrap:wrap;
  }
  #adminOrderStatusSel,
  #adminOrderManualTotal{
    min-width:0;
    width:100%;
  }
  .stop2__pointStatus{
    width:100%;
    justify-content:flex-start;
    margin:4px 0 0;
  }
}
.stop input[data-k="floor"]::-webkit-calendar-picker-indicator{
  opacity:0;
  width:0;
  margin:0;
  pointer-events:none;
}
.lbl--floor{
  display:inline-flex;
  align-items:center;
  gap:4px;
}
.lbl--floor::after{
  content:"▾";
  font-size:10px;
  line-height:1;
  color:#8a8a8a;
  transform:translateY(-1px);
}

/* custom floor dropdown (scrollable with mouse + touch) */
.floorMenu{
  position:fixed;
  z-index:12040;
  max-height:260px;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
  border:1px solid #d8d8d8;
  border-radius:8px;
  background:#fff;
  box-shadow:0 10px 24px rgba(0,0,0,.14);
}
.floorMenu__item{
  display:block;
  width:100%;
  border:0;
  border-bottom:1px solid #f0f0f0;
  background:#fff;
  color:#222;
  font-size:13px;
  line-height:1;
  text-align:center;
  padding:10px 6px;
  cursor:pointer;
}
.floorMenu__item:last-child{ border-bottom:0; }
.floorMenu__item:hover{ background:#f6f6f6; }
.floorMenu__item.is-active{
  background:#f0f6ff;
  color:#111;
  font-weight:700;
}

/* =========================
   STOPS (generated in app.js)
========================= */
/* base card */
.stop.stop2{
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  padding:12px 14px;
  margin-top:12px;
  box-shadow:var(--shadow);
}

.stop2__hdr{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}
.stop2__hdr--mini{ margin-bottom:8px; }
.stop2__hdrBtns{
  display:flex;
  align-items:center;
  gap:8px;
}

.stop2__ttl{
  font-weight:900;
  color:#111;
  font-size:15px;
  display:flex;
  align-items:center;
  gap:8px;
}
.stop2__ttlMain{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.stop2__ttl--withOrderRef{
  width:100%;
  align-items:center;
  gap:10px;
  justify-content:flex-start;
}
.stop2__orderRefInline{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  margin-left:0;
}
.stop2__orderRefLbl{
  margin:0;
  white-space:nowrap;
}
.stop2__orderRefInp{
  height:30px;
  min-width:18ch;
  width:18ch;
  max-width:56ch;
  transition:width .16s ease;
}
.stop2__ttl--ghost{ opacity:.75; font-weight:800; }
.stop2__num,.stop2__name{ font-weight:900; }
.stop2__dot{ color:#b7b7b7; font-weight:700; }
.stop2__price{ font-weight:900; white-space:nowrap; }
.stopKindBtn{
  border:1px solid #d9d9d9;
  background:#f7f7f7;
  padding:0 8px;
  height:28px;
  border-radius:8px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  font:inherit;
  font-weight:700;
  color:#2f3440;
  cursor:pointer;
  transition:background .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.stopKindBtn:hover{ background:#f2f2f2; border-color:#cfcfcf; }
.stopKindBtn:focus-visible{
  outline:none;
  border-color:#b8c7e6;
  box-shadow:0 0 0 2px rgba(86,116,182,.18);
}
.stopKindBtn__txt{ font-weight:900; }
.stopKindBtn__arr{
  font-size:11px;
  color:#626b7b;
  line-height:1;
  transform:translateY(1px);
}

.iconBtn{
  width:30px; height:30px;
  border-radius:10px;
  border:1px solid #e6e6e6;
  background:#f5f5f5;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
  line-height:1;
}
.stop2__del{
  width:30px;
  height:30px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  background:transparent;
  color:#b80d1a;
  cursor:pointer;
}
.stop2__del .icon{ width:16px; height:16px; display:block; fill:currentColor; }
.stop2__del:hover{ color:#111; }

/* grid layout */
.stop2__grid{ display:grid; gap:10px 12px; align-items:start; }
.stop2__grid--logist{ grid-template-columns: 43% 25% minmax(0,1fr) auto; }
.stop2__grid--quick{ grid-template-columns: 65% 28% 6%; }

.stop2__col{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.stop2__col--right{ 
  align-items:flex-end; 
  text-align:right;
  display:flex;
  flex-direction:column;
}
.stop2__spacer{ flex:1; min-height:12px; }
.payBtn--payer{
  align-self:flex-end; /* справа */
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:0;
  background:transparent;
  color:#b80d1a;
  cursor:pointer;
  padding:6px 4px;
}
.payBtn--inline{
  align-self:center;
  text-align:center;
  padding:4px 0;
}
.stop2__priceCol--inline{
  align-self:center;
  text-align:center;
  margin-top:4px;
}
.stop2__metaRow{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin-top:4px;
}
.stop2__priceWrap{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.stop2__priceHelp{
  margin-left:0 !important;
}
.stop2__metaRow .stop2__priceCol--inline{
  margin-top:0;
}
.stop2__metaRow .payBtn--inline{
  padding:0;
}

/* inner rows */
.stopRow1{ display:flex; flex-direction:column; gap:8px; }
.stopRow2{ display:flex; gap:10px; }
.stopRow2lbl{ display:flex; gap:10px; }
.stopRow3{ display:flex; gap:10px; align-items:flex-end; }
.stopRowBetween{ display:flex; align-items:center; justify-content:space-between; }
.stopRowBetween--right{ justify-content:flex-end; }
.stopHalf{ flex:1 1 0; min-width:0; }

.stopW70{ flex:0 0 67%; min-width:0; }
.stopW20{ flex:0 0 16%; min-width:0; }
.stopW10{ flex:0 0 10%; min-width:0; }
.stopW30{ flex:0 0 30%; min-width:0; }
.stopW28{ flex:0 0 28%; min-width:0; }

.stopCenter{ text-align:center; }
.stopRight{ text-align:right; }

/* checkboxes column */
.stopChkCol{
  display:flex;
  flex-direction:column;
  gap:0px;
  padding-top:4px;
}
.chk2{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  color:#111;
  user-select:none;
}
.chk2 input{ width:14px; height:14px; }

/* comment textarea */
.stopTa{ min-height:36px; resize:none; }

.stopOrderRef{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.stopOrderRef__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.stopOrderRef__toggle{
  height:22px;
  min-width:22px;
  padding:0 6px;
  border-radius:8px;
  border:1px solid #dddddd;
  background:#fff;
  color:#5b5b5b;
  cursor:pointer;
  line-height:1;
}
.stopOrderRef__body{
  display:flex;
  align-items:center;
}
.stopOrderRef__inp{
  min-width:180px;
  max-width:100%;
}

/* segmented pills inside stop */
.pillSeg{
  display:flex;
  flex-wrap:nowrap;
  justify-content: space-around;
}
.pillSeg--full{ width:100%; }
.pillSeg__btn{
  height:28px;
  padding:0 12px;
  border-radius:10px;
  border:1px solid #e2e2e2;
  background:#f4f4f4;
  font-size:12px;
  cursor:pointer;
  white-space:nowrap;
  color:#666;
}
.pillSeg__btn.active,
.pillSeg__btn.is-active{
  background:#fff;
  border-color:#dcdcdc;
  box-shadow:0 2px 10px rgba(0,0,0,.10);
  color:#111;
  font-weight:700;
}

/* stop "when" segmented */
.stopWhenSeg{ width:100%; }

/* интервал "с/по" вертикально под датой */
.whenWin2--stack{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.whenWin2__cell{
  position:relative;
  display:flex;
  align-items:center;
  gap:6px;
}

.whenWin2__lbl{
  min-width:14px;
  text-align:center;
  font-size:12px;
  color:#6b7280;
}

.whenWin2__cell .inp{
  width:100%;
  padding-right:36px; /* под часы */
}

.whenClock{
  position:absolute;
  right:10px;
  top:50%;
  transform:translateY(-50%);
  font-size:14px;
  color:#f97316;
  cursor:pointer;
  user-select:none;
}

/* pay button small */
.payBtn{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
  border:0;
  background:transparent;
  cursor:pointer;
  color:#b80d1a;
  font-size:11px;
}
.payBtn__icon{ font-size:13px; line-height:1; color:#b80d1a;}
.payBtn--custom .payBtn__icon{ color:#2e9e2d; }
.paySettingsIconBtn.is-custom{
  color:#2e9e2d !important;
}
.paySettingsIconBtn.is-custom svg{
  fill:currentColor;
}

/* disabled look */
.btnGhost.is-disabled{ opacity:.45; pointer-events:none; }

/* Add stop menu */
.stopAdd{ margin:10px 0 0; }
.stopAdd__row{ position:relative; display:flex; justify-content:flex-end; }
.stopAdd__btn{
  border:1px solid #e7e7e7;
  background:#fff;
  border-radius:6px;
  padding:10px 12px;
  cursor:pointer;
  font-weight:600;
}
.stopAdd__menu{
  position:absolute;
  right:0;
  top:44px;
  background:#fff;
  border:1px solid #e7e7e7;
  border-radius:12px;
  padding:6px;
  box-shadow:0 10px 30px rgba(0,0,0,.08);
  display:flex;
  flex-direction:column;
  gap:6px;
  z-index:20;
}
.stopAdd__menu button{
  border:0;
  background:#f7f7f7;
  padding:10px 12px;
  border-radius:10px;
  cursor:pointer;
  text-align:left;
}
.stopAdd__menu button:hover{ background:#eee; }

/* responsive stops */
@media (max-width:1100px){
  .stop2__grid--logist{ grid-template-columns: 1fr; }
  .stop2__grid--quick{ grid-template-columns: 1fr; }
  .stop2__col--right{ align-items:flex-start; text-align:left; }
  .stopRow3{ flex-wrap:wrap; }
  .stopW70,.stopW20,.stopW10,.stopW30,.stopW33{ flex:1 1 140px; }
  .stop2__ttl--withOrderRef{
    width:100%;
    gap:6px;
  }
  .stop2__orderRefInline{
    margin-left:0;
    flex-wrap:wrap;
    gap:6px;
  }
  .stop2__orderRefInp{
    min-width:0;
    width:100%;
    max-width:100%;
  }
}

/* =========================
   SMALL VARIANTS (app.js)
========================= */
.btnGhost--wide{ width:100%; }
.segMini--wide{ width:100%; justify-content:space-between; }
.stop2__priceCol{ font-weight:800; font-size:12px; color:#111; white-space:nowrap; }
.mobileOnly{ display:none; }

body[data-mobile="1"] .stopRow3--labels,
body[data-mobile="1"] .stopRow2lbl--labels{
  display:none !important;
}
body[data-mobile="1"] .mobileOnly{
  display:block;
}
body[data-mobile="1"] .stopRow3.stopRow3--metaInline{
  display:flex;
  flex-wrap:nowrap !important;
  gap:8px;
}
body[data-mobile="1"] .stopRow3.stopRow3--metaInline .stopW20,
body[data-mobile="1"] .stopRow3.stopRow3--metaInline .stopW10,
body[data-mobile="1"] .stopRow3.stopRow3--metaInline .stopW30{
  flex:1 1 0 !important;
  min-width:0;
}

.liftfix{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border:1px dashed #e2e2e2;
  background:#fff;
  border-radius:10px;
  cursor:pointer;
  max-width:100%;
  box-sizing:border-box;
  overflow:hidden;
}
.liftfix__icon{ font-size:16px; }
.liftfix__check{
  width:16px;
  height:16px;
  display:block;
  stroke:#2f9d46;
  fill:none;
  stroke-width:2.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.liftfix__main{ font-weight:700; font-size:13px; min-width:0; }
.liftfix__sub{
  font-size:11px;
  color:#b80d1a;
  margin-left:auto;
  flex:0 0 auto;
}
.liftfix--fixed{
  border-color:#9ed5aa;
  background:rgba(72, 187, 120, .14);
}
.liftfix--fixed .liftfix__icon{
  filter:none;
}
.liftfix--warn{
  box-shadow:0 0 0 3px rgba(255, 165, 0, 0.25);
  animation: liftfixPulse 1.2s ease-in-out infinite;
}
@keyframes liftfixPulse{
  0%{ box-shadow:0 0 0 3px rgba(255, 165, 0, 0.15); }
  50%{ box-shadow:0 0 0 6px rgba(255, 165, 0, 0.35); }
  100%{ box-shadow:0 0 0 3px rgba(255, 165, 0, 0.15); }
}

.fixwarn__body{
  margin-top:12px;
  font-size:13px;
  color:#333;
  line-height:1.35;
}
.fixwarn__actions{
  display:flex;
  gap:10px;
  margin-top:14px;
  justify-content:flex-end;
  flex-wrap:wrap;
}

.segMini--3 .segMini__btn{ min-width:28px; padding:0 10px; }
.payBox{ display:flex; gap:10px; align-items:center; }


/* ===== Packaging row like in screenshot ===== */
.packGrid4{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:14px;
  align-items:center;
}

/* item becomes a single horizontal row */
.packIt{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

/* left label block */
.packIt__lbl{
  min-width:0;
  font-size:12px;
  font-weight:700;
  line-height:1.05;
  color:#222;
}

.packIt__lbl > span:not(.packLine1){
  display:block;
  margin-top:2px;
  font-size:10.5px;
  font-weight:600;
  color:#7a7a7a;
  line-height:1.05;

  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.packIt__lbl .packLine1{
  display:inline-flex;
  align-items:center;
  gap:2px;
  white-space:nowrap;
}

/* stepper goes to the right and never collapses */
.stepperV{
  margin-top:0;
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:6px;
}

/* input like small rounded square */
.stepperV__inp{
  width:34px;
  height:26px;
  border-radius:6px;
  border:1px solid #e2e2e2;
  background:#fff;
  padding:0 6px;
  font-size:12px;
  text-align:center;
}

/* +/- pill on the right */
.stepperV__pm{
  display:flex;
  flex-direction:column;
  border:1px solid #e2e2e2;
  border-radius:6px;
  overflow:hidden;
  background:#f5f5f5;
}

/* buttons proportions closer to screenshot */
.stepperV__btn{
  width:22px;
  height:13px;
  line-height:13px;
  border:0;
  background:transparent;
  font-size:11px;
  font-weight:900;
  color:#444;
  cursor:pointer;
}

/* unit tight and aligned */
.stepperV__unit{
  font-size:8px;
  color:#7a7a7a;
  white-space:nowrap;
}
/* =========================================================
   FIX 1:1 под ТЗ (опции + упаковка)
   ВСТАВЬ В САМЫЙ КОНЕЦ style.css
   ========================================================= */

.top2col__right .rightSection__title,
.top2col__pack .rightSection__title{
  font-size:16px;
  font-weight:700;
  color:#6f6f6f;
  margin:0 0 12px;
}

/* тонкий разделитель как в ТЗ */
.top2col__right .rightDivider{
  height:1px;
  background:#ededed;
  margin:10px 0;
}

.top2col__divider{
  height:1px;
  background:#ededed;
  margin:12px 0;
}

/* ---- ОПЦИИ: текст слева, тогл строго справа, без “проваливания” ---- */
.top2col__right .rightGrid2{
  display:grid;
  grid-template-columns: 1fr 1fr;
  column-gap:28px;
  row-gap:25px;
  align-items:start;
}

.top2col__right .opt{
  display:grid;
  grid-template-columns: 1fr auto;
  grid-template-rows:auto auto;
  column-gap:12px;
  align-items:start;
  min-width:0;
  position:relative;
}

.top2col__right .opt__name{
  grid-column:1;
  grid-row:1;
  font-size:14px;
  font-weight:600;
  line-height:1.05;
  margin:0;
  display: flex;
  flex-direction: row;
}

.top2col__right .opt__hint{
  grid-column:1;
  grid-row:2;
  margin-top:2px;
  font-size:11px;
  line-height:1.05;
  color:#9a9a9a;
  text-decoration:none !important;
}

.top2col__right .opt .segMini{
  grid-column:2;
  grid-row:1 / span 2;
  justify-self:end;
  align-self:center;
  margin:0;
}

/* segmented как в ТЗ (пилюля) */
.top2col__right .segMini{
  display:inline-flex;
  align-items:center;
  padding:2px;
  gap:2px;
  border-radius:8px;
  background:#efefef;
  border:1px solid #e6e6e6;
}

.top2col__right .segMini__btn{
  height:22px;
  min-width:15px;
  padding:0 4px;
  border-radius:5px;
  font-size:11px;
  font-weight:500;
  color:#666;
  background:transparent;
  border:1px solid transparent;
}

.top2col__right .segMini__btn.is-active{
  background:#fff;
  border-color:#d7d7d7;
  color:#111;
  font-weight:600;
}

/* ---- УПАКОВКА: сетка 4 в ряд, каждый item “лейбл слева — степпер справа” ---- */
.top2col__right .packGrid4,
.top2col__pack .packGrid4{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:12px;
  align-items:center;
}

.top2col__right .packIt,
.top2col__pack .packIt{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:4px;
  min-width:0;
}

.top2col__right .packIt__lbl,
.top2col__pack .packIt__lbl{
  min-width:0;
  font-size:12px;
  font-weight:700;
  line-height:1.05;
  color:#222;
}

.top2col__right .packIt__lbl > span:not(.packLine1),
.top2col__pack .packIt__lbl > span:not(.packLine1){
  display:block;
  margin-top:2px;
  font-weight:600;
  color:#7f7f7f;
  line-height:1.05;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:75px;
  font-size: 9px;
}
.top2col__right .packIt__lbl .packLine1,
.top2col__pack .packIt__lbl .packLine1{
  display:inline-flex;
  align-items:center;
  gap:2px;
  white-space:nowrap;
}

/* степпер — единый “пилюльный” контрол как в ТЗ */
.top2col__right .stepperV,
.top2col__pack .stepperV{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:6px;

  height:28px;
  padding:0 4px;
}

.top2col__right .stepperV__inp,
.top2col__pack .stepperV__inp{
  height:26px;
  outline:0;
  background:#fff;
  text-align:center;
  color:#222;
  width:30px;
  font-size:12px;
  padding:0 4px;
  border:1px solid #e2e2e2;
  border-radius:6px 0 0 6px;
}

.top2col__right .stepperV__pm,
.top2col__pack .stepperV__pm{
  display:flex;
  flex-direction:column;
  border-left:0px solid #e2e2e2;
  border-radius:0 6px 6px 0;
  overflow:hidden;
}

.top2col__right .stepperV__btn,
.top2col__pack .stepperV__btn{
  width:22px;
  height:13px;
  line-height:13px;
  border:0;
  background:transparent;
  font-size:11px;
  font-weight:900;
  color:#444;
  cursor:pointer;
}

.top2col__right .stepperV__btn + .stepperV__btn,
.top2col__pack .stepperV__btn + .stepperV__btn{
  border-top:1px solid #e2e2e2;
}

.top2col__right .stepperV__unit,
.top2col__pack .stepperV__unit{
  font-size:8px;
  color:#7f7f7f;
  background:#fff;
  white-space:nowrap;
  border:0;
  padding:0 0 0 3px;
}

/* ---- адаптив: чтобы не ломалось ---- */
@media (max-width: 900px){
  .top2col__right .rightGrid2{ grid-template-columns: 1fr; }
  .top2col__right .packGrid4,
  .top2col__pack .packGrid4{ grid-template-columns: 1fr 1fr; gap:14px; }
}
/* ===== PACK: сделать 1-в-1 как в ТЗ (чтобы лейблы не резались) ===== */
.top2col__right .packGrid4,
.top2col__pack .packGrid4{
  gap:6px; /* ближе к инпутам */
  grid-template-columns: repeat(4, minmax(0, 1fr)); /* не даём колонкам стать микро */
}

.top2col__right .packIt__lbl,
.top2col__pack .packIt__lbl{
  flex:1 1 auto;          /* пусть лейбл “дышит” */
  min-width:70px;         /* чтобы не схлопывался до 2 букв */
  overflow:visible;       /* на всякий — не режем текст */
}

/* компактнее степпер => больше места тексту */
.top2col__right .stepperV,
.top2col__pack .stepperV{
  height:26px;
  border-radius:6px;
  padding:0;
  gap:0px;
}

.top2col__right .stepperV__inp,
.top2col__pack .stepperV__inp{
  width:30px;
  font-size:12px;
  padding:0 4px;
  border:1px solid #e2e2e2;
  border-radius:6px 0 0 6px;

}

.top2col__right .stepperV__btn,
.top2col__pack .stepperV__btn{
  width:12px;
  height:13px;
  line-height:13px;
  font-size:10px;
  padding: 0;
}

/* на “узком десктопе” упаковку лучше сразу в 2 ряда, как в ТЗ выглядит чище */
@media (max-width: 1100px){
  .top2col__right .packGrid4,
  .top2col__pack .packGrid4{
    grid-template-columns: 1fr 1fr;
    gap:14px;
  }
}

/* ===== Disabled option block (visual) ===== */
.opt.is-disabled{
  opacity: .55;
  filter: grayscale(1);
}

.opt.is-disabled .segMini__btn{
  cursor: not-allowed;
}

.opt.is-disabled .segMini__btn:not(.is-active){
  pointer-events: none; /* чтобы по неактивным не кликали вообще */
}

.mhead { display: none; }

/* =========================
   MOBILE (phone) — like reference screenshot
========================= */
@media (max-width: 820px), (pointer: coarse) {

  /* hide desktop header, make single-column screen */
  .hdr{ display:none !important; }
  .mobhdr{
    display:flex;
    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:1200;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:8px 12px;
    background:#fff;
    border-bottom:1px solid #ececec;
  }
  .mobhdr__mode{
    flex:1 1 auto;
    min-width:0;
    text-align:center;
    font-size:11px;
    font-weight:700;
    color:#4a4a4a;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .mobhdr__logo{
    display:inline-flex;
    align-items:center;
    line-height:0;
  }
  .mobhdr__logo img{
    display:block;
    height:24px;
    width:auto;
  }
  .mobhdr__burger{
    width:34px;
    height:34px;
    border:1px solid #dedede;
    border-radius:9px;
    background:#fff;
    display:grid;
    align-content:center;
    justify-items:center;
    gap:4px;
    padding:0;
    cursor:pointer;
  }
  .mobhdr__callBtn{
    margin-left:auto;
    width:34px;
    height:34px;
    border-radius:9px;
    border:1px solid #b80d1a;
    background:linear-gradient(180deg,#cf1a2c,#b80d1a);
    color:#fff;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    box-shadow:0 4px 10px rgba(184,13,26,.28);
  }
  .mobhdr__callBtn svg{
    width:18px;
    height:18px;
    display:block;
    fill:currentColor;
  }
  .mobhdr__callBtn:hover,
  .mobhdr__callBtn:focus-visible,
  .mobhdr__callBtn:active{
    background:linear-gradient(180deg,#cf1a2c,#b80d1a) !important;
    color:#fff;
  }
  .mobhdr__burger span{
    width:16px;
    height:2px;
    border-radius:2px;
    background:#111;
    display:block;
  }
  .mobhdrMenu{
    position:fixed;
    top:50px;
    left:0;
    right:0;
    z-index:1199;
    background:#fff;
    border-bottom:1px solid #ececec;
    box-shadow:0 10px 24px rgba(0,0,0,.08);
    padding:8px 12px 12px;
    display:grid;
    grid-template-columns:1fr;
    gap:6px;
  }
  .mobhdrMenu__link{
    display:block;
    padding:9px 8px;
    text-decoration:none;
    color:#111;
    border-radius:8px;
    font-size:13px;
  }
  .mobhdrMenu__call{
    display:block;
    margin-top:2px;
    padding:10px 8px;
    border-radius:8px;
    background:#f7f7f7;
    border:1px solid #e9e9e9;
    color:#111;
    text-decoration:none;
    font-size:13px;
    font-weight:700;
  }
  .mobhdrMenu__link:hover{
    background:#f6f6f6;
  }

  body, html{
    height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .layout{
    height: auto;
    min-height: 100%;
    display:block;
  }

  /* hide map on mobile (reference shows only form) */
  .map-col{ display:none !important; }

  /* full-width form column */
  .form-col{
    width:100% !important;
    max-width:none !important;
    min-height: calc(100dvh - 1px);
    height: auto;
    overflow: visible;
    padding: 60px 10px 56px; /* bottom padding so footer doesn't overlap */
    box-sizing:border-box;
    background:#f6f6f6; /* like screenshot */
  }
  .page--static .page{
    padding-top:56px !important;
  }
  .footerBar2{
    touch-action: pan-x;
  }
  .form-col{
    touch-action: pan-y;
  }

  /* top vehicle card becomes compact (image left, text right) */
  .top2col__wrap{
    display:block !important;
    gap:0 !important;
  }

  .leftCard,
  .rightSection{
    width:100% !important;
    margin:0 0 10px 0 !important;
  }

  /* options grid -> single column (like list) */
  .rightGrid2{
    display:block !important;
  }
  .opt{
    display:grid;
    grid-template-columns: 1fr auto;
    gap:6px 10px;
    align-items:center;
    padding:10px 0;
    border-top:1px solid #eee;
  }
  .opt:first-child{ border-top:0; }

  .opt__name{
    font-size:13px;
    font-weight:700;
    line-height:1.15;
  }
  .opt__hint{
    font-size:11px;
    color:#777;
    grid-column:1 / 2;
  }
  .segMini{
    grid-column:2 / 3;
    grid-row:1 / 3;
  }

  /* body size segment -> smaller like screenshot */
  .segBody{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:6px !important;
    padding:6px !important;
    border-radius:14px !important;
    background:#f1f1f1 !important;
  }

  .segBody__btn{
    height:28px !important;
    padding:0 10px !important;
    font-size:11px !important;
    border-radius:12px !important;
    flex:0 0 auto !important;
  }
  .top2col .leftCard--body{
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
    min-width:0 !important;
    width:100% !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
  }
  .top2col .leftCard__bodyLbl{
    flex:0 0 56px;
    min-width:0;
    padding:0 4px;
  }
  .top2col .leftCard--body .segBody{
    flex:1 1 auto !important;
    display:grid !important;
    grid-template-columns:repeat(6, minmax(0, 1fr)) !important;
    gap:2px !important;
    min-width:0 !important;
    width:auto !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
  }
  .top2col .leftCard--body .segBody__btn{
    width:100% !important;
    min-width:0 !important;
    padding:0 2px !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  /* stops stack spacing to look like cards */
  .stops-stack{
    display:flex;
    flex-direction:column;
    gap:10px;
    margin-top:10px;
  }

  /* pack block: stack on mobile to avoid overlap */
  .top2col__pack .packGrid4,
  .top2col__right .packGrid4,
  .packGrid4{
    grid-template-columns: 1fr 1fr !important;
    column-gap: 10px !important;
    row-gap: 10px !important;
  }
  .top2col__pack .packIt,
  .top2col__right .packIt,
  .packIt{
    grid-template-columns: 1fr !important;
    row-gap: 6px !important;
  }
  .top2col__pack .stepperV,
  .top2col__right .stepperV,
  .stepperV{
    justify-self:start !important;
    margin-left:0 !important;
  }

  /* FIXED bottom bar like screenshot:
     top row: payment left + total right
     bottom row: big button full width */
  .footerBar2{
    position:fixed;
    left:10px;
    right:10px;
    bottom:10px;
    z-index:1000;
    box-shadow: 0px -10px 22px rgba(0, 0, 0, .06);

    margin:0 !important;
    border-radius:18px;
    padding:10px 12px;

    display:grid;
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "pay total"
      "btn btn"
      "reset reset";
    gap:10px 10px;
  }

  .payBox{ grid-area: pay; }
  .totalBox{ grid-area: total; justify-self:end; }
  .orderBtn{ grid-area: btn; width:100% !important; height:44px !important; border-radius:14px !important; }
  .resetLink{ grid-area: reset; justify-self:center; padding:4px 0; }
  .resetLink--draft{ display:none !important; }
  .payRow{ flex-wrap:wrap; gap:6px; }
  .payRow select{ flex:1 1 140px; min-width:0; }
  .totalBox__row{ flex-wrap:wrap; gap:6px; justify-content:flex-end; }

  /* total text a bit larger like screenshot */
  .totalBox__val{ font-size:14px !important; }

  /* force logist stop layout to single column on mobile */
  .stop2__grid--logist{
    display:flex !important;
    flex-direction:column !important;
    gap:8px !important;
  }
  body[data-mode="logist"] .stop2__grid--logist{
    display:flex !important;
    flex-direction:column !important;
  }
  .stop2__col{
    width:100% !important;
    min-width:0;
  }
  .stop2__grid--logist .stop2__col:empty{
    display:none !important;
  }
  .stop2__col--right{
    align-items:flex-start !important;
    text-align:left !important;
    gap:2px;
  }
  .stop2__col--right:empty{
    display:none !important;
  }
  .stop2__col--right .stop2__spacer{
    display:none !important;
    min-height:0 !important;
  }
  .stop2__col--right .stop2__del{
    align-self:flex-end;
    margin-top:0 !important;
  }
  .stop2__priceCol{
    align-self:flex-start;
  }
  .stop2__metaActions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
  }
  .stop2__metaActions .stop2__metaRow{
    justify-content:flex-start;
    margin-top:0;
    flex:1 1 auto;
  }
  .stop2__metaActions .stop2__del{
    align-self:center;
    margin-top:0 !important;
  }
  .stop2__fixRow{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
  }
  .stop2__fixRow .liftfix{
    margin-left:0 !important;
    max-width:none;
    flex:1 1 auto;
  }
  .stop2__fixRow .stop2__del{
    flex:0 0 auto;
    align-self:center;
  }

  /* inputs in rows should stack */
  .stopRow2,
  .stopRow2lbl,
  .stopRow3{
    flex-wrap:wrap;
  }
  .stopHalf{
    flex:1 1 100%;
  }
  .stopW70,.stopW20,.stopW10,.stopW30,.stopW33{
    flex:1 1 100%;
  }

  /* allow time segment to wrap */
  .segMini{
    flex-wrap:wrap;
  }

  .liftfix{
    width:auto !important;
    max-width:220px;
    justify-content:flex-start;
    margin-left:auto;
    padding:8px 10px;
  }
  .liftfix__sub{
    margin-left:0;
  }
  .stopAdd{
    margin: 10px 0 0;
  }

  /* details modal on mobile */
  #detailsModal::before{
    content:"";
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.35);
    opacity:0;
    animation:detailsBackdropIn .2s ease-out forwards;
  }
  #detailsModal .modal__box{
    width:86%;
    margin:0;
    max-height:calc(100dvh - 24px);
    overflow:auto;
    position:fixed;
    left:10px;
    right:10px;
    bottom:10px;
    border-radius:18px;
    z-index:1;
    transform:translateY(12px);
    opacity:0;
    animation:detailsSheetIn .22s ease-out forwards;
  }
  #detailsModal .row--between{
    align-items:flex-start;
    gap:6px;
  }
  #detailsModal .pre{
    font-size:12px;
    line-height:1.35;
    padding:10px;
    word-break:break-word;
    overflow-wrap:anywhere;
  }

  @keyframes detailsSheetIn{
    from{ transform:translateY(16px); opacity:0; }
    to{ transform:translateY(0); opacity:1; }
  }
  @keyframes detailsBackdropIn{
    from{ opacity:0; }
    to{ opacity:1; }
  }
}
/* ===== Help "?" button ===== */
.qhelp{
  appearance:none;
  -webkit-appearance:none;
  display:inline-grid;
  place-items:center;
  flex:0 0 14px;
  width:14px;
  height:14px;
  min-width:14px;
  min-height:14px;
  margin-left:6px;
  padding:0;
  box-sizing:border-box;
  border-radius:999px;
  border:1px solid #b80d1a !important;
  background:#fff !important;
  color:#b80d1a !important;
  font-weight:700;
  font-size:10px;
  line-height:1 !important;
  cursor:pointer;
  user-select:none;
  vertical-align:middle;
  text-align:center;
}
.qhelp:hover{ color:#a10c18 !important; border-color:#a10c18 !important; }
.qhelp:focus{ outline:2px solid rgba(184,13,26,.22); }

.qhelp--pack{
  margin-left:6px;
}

/* help modal specifics */
.modal__panel--help{
  max-width: 520px;
}
.help__body{
  font-size:14px;
  line-height:1.45;
  color: var(--text, #111);
  padding-top:6px;
  white-space:pre-wrap;
}
.stop__drag{
  width:34px;
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--border,#e6e6e6);
  background:#fff;
  border-radius:10px;
  cursor:grab;
  user-select:none;
  -webkit-user-select:none;
  touch-action:none;
}
.stop__drag:active{ cursor:grabbing; }

.stop.dragging{ opacity:.65; }

.stop.drag-over{
  outline: 2px dashed rgba(255,152,0,.75);
  outline-offset: 4px;
  transition: outline-color .12s ease;
}
.resetLink{
  border:0;
  background:transparent;
  color:#b80d1a;
  padding:6px 8px;
  font:inherit;
  cursor:pointer;
}
.resetLink:hover{ text-decoration:underline; }

.sheet[hidden]{display:none !important;}
.sheet{ position:fixed; inset:0; z-index:1000; }
.sheet__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.35); }
.sheet__panel{
  position:absolute; left:0; right:0; bottom:0;
  background:#fff;
  border-radius:18px 18px 0 0;
  padding:14px;
  box-shadow:0 -12px 30px rgba(0,0,0,.18);
}
.sheet__title{ font-weight:700; margin:0 0 6px; }
.sheet__text{ color:#6b7280; margin:0 0 12px; }
.sheet__actions{ display:flex; gap:10px; justify-content:flex-end; }
/* drag visual polish */
.stop.dragging{
  opacity: 0.06;
  transform: scale(0.5) rotate(-1.2deg);
  transform-origin: center center;
}

.stop__drag{
  cursor: grab;
  transition: transform .12s ease, box-shadow .12s ease;
}
.stop__drag:active{
  cursor: grabbing;
}

/* floating clone (ghost) that follows pointer */
.dragGhost{
  position: fixed;
  z-index: 2000;
  left: 0;
  top: 0;
  pointer-events: none;
  transform: translate3d(0,0,0) rotate(-1.2deg) scale(0.5);
  will-change: transform;
  width: 320px;               /* будет перезаписано из JS */
  box-shadow: 0 22px 50px rgba(0,0,0,.26);
  border-radius: 16px;
  overflow: hidden;
  opacity: 0.5;
  filter: saturate(1.04);
  transition: box-shadow .12s ease, filter .12s ease, opacity .12s ease;
}

/* “lifted” feel */
.dragGhost .stop2__grid{
  transform: scale(1);
  transform-origin: top left;
}
.stop.dragging .stop__drag{
  transform: scale(1.05);
  box-shadow: 0 10px 22px rgba(0,0,0,.12);
}
/* =========================================================
   GLOBAL CONTRAST TUNE — darker muted text + input/button borders
   Put this at the VERY END of style.css
   ========================================================= */

/* 1) Переменные (если используются) */
:root{
  /* вторичный текст */
  --muted: #6a6a6a;

  /* границы контролов */
  --border: #d0d0d0;

  /* hover/focus */
  --borderHover: #bcbcbc;
  --borderFocus: #9f9f9f;

  /* placeholder */
  --placeholder: #8a8a8a;
}

/* 2) Вторичный/серый текст — глобально */
.muted,
.small,
.sub,
.subtle,
.hint,
.desc,
.helper,
.note,
label .sub,
[class*="muted"],
[class*="hint"],
[class*="help"],
[class*="desc"]{
  color: var(--muted) !important;
}

/* 3) Плейсхолдеры — глобально */
input::placeholder,
textarea::placeholder{
  color: var(--placeholder) !important;
}

/* 4) Границы у всех “контролов” — глобально */
input,
select,
textarea,
button{
  /* не ломаем кнопки без border, но если border есть — станет темнее */
  border-color: var(--border);
}

/* если у тебя есть базовый класс инпутов — усилим приоритет */
.inp,
.stepperV__inp,
select.inp,
textarea.inp{
  border-color: var(--border) !important;
}

/* 5) Hover — чтобы было заметнее */
input:hover,
select:hover,
textarea:hover,
.inp:hover,
.stepperV__inp:hover{
  border-color: var(--borderHover) !important;
}

/* 6) Focus — аккуратно, без “кислоты”, но читаемо */
input:focus,
select:focus,
textarea:focus,
.inp:focus,
.stepperV__inp:focus{
  outline: none;
  border-color: var(--borderFocus) !important;
  box-shadow: 0 0 0 1px rgba(0,0,0,.06);
}

/* 7) Кнопки/сегменты/иконки (если у них border) */
button,
.iconBtn,
.segMini__btn,
.pillSeg__btn,
.stepperV__btn{
  border-color: var(--border);
}

button:hover,
.iconBtn:hover,
.segMini__btn:hover,
.pillSeg__btn:hover,
.stepperV__btn:hover{
  border-color: var(--borderHover);
}

/* Admin action icon buttons (fleet actions) */
.actionIconBtn{
  width: 34px;
  height: 34px;
  padding: 0;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #111;
  background: #fff;
}
.actionIconBtn svg{
  width: 18px;
  height: 18px;
  display: block;
  fill: currentColor;
}
.actionIconBtn:hover{
  background: #f8f8f8;
}
.actionIconBtn:focus-visible{
  outline: 2px solid #111;
  outline-offset: 1px;
}
.actionIconBtn--danger{
  color: #b80d1a;
}
.actionIconBtn--danger:focus-visible{
  outline-color: #b80d1a;
}

/* 8) Disabled — оставляем “серость”, но не слишком бледно */
:disabled{
  opacity: .62;
}
/* ===== QUICK MODE: labels above inputs (entrance/floor/apt) ===== */
.stop2--quick .stopRow3{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  align-items: start;
}

.stop2--quick .stopRow3 .lbl{
  display: block;
  font-size: 12px;
  color: var(--muted, #6a6a6a);
}

.stop2--quick .stopRow3 .stopW33{
  min-width: 0;
}

/* убираем “центр/право”, чтобы лейбл реально был над своим полем */
.stop2--quick .stopRow3 .stopCenter,
.stop2--quick .stopRow3 .stopRight{
  text-align: left;
}
/* ===== STATIC PAGES (about/terms/privacy/partner): header + content centered ===== */
.page--static{
  --leftOffset: 0px;      /* выключаем сдвиг главной */
}

/* хедер — по центру, с нормальными отступами */
.page--static .hdr{
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%);
  width: min(980px, calc(100vw - 28px)) !important;
  max-width: none !important;
}

/* контент — по центру, с теми же краями что и хедер */
.page--static .page{
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* контейнер/карточка на доп-страницах */
.page--static .container{
  max-width: 980px;
  margin: 0 auto;
  padding-left: 14px;
  padding-right: 14px;
}

/* если где-то есть фиксированные layout/карта — отключаем */
.page--static .layout,
.page--static .map-col{
  position: static !important;
  width: auto !important;
}
.stopLiftRow{
  display:flex;
  gap:14px;
  align-items:center;
  flex-wrap:wrap; /* на узких экранах перенесётся */
}
/* ===== Global accent checks/radios ===== */
:root{
  --checkOrange: #b80d1a;
}

/* modern browsers: color of native checkbox/radio */
input[type="checkbox"],
input[type="radio"]{
  accent-color: var(--checkOrange);
}

/* just in case some components draw custom "check" */
.chk2 input[type="checkbox"],
.chk2 input[type="radio"],
.chk input[type="checkbox"],
.chk input[type="radio"]{
  accent-color: var(--checkOrange);
}
.is-invalid{
  border: 1.5px solid #e53935 !important;
  box-shadow: 0 0 0 3px rgba(229,57,53,.12);
}
.required-attention{
  position: relative;
  border-radius: 10px;
  box-shadow: 0 0 0 2px rgba(229, 57, 53, 0.95), 0 0 0 6px rgba(229, 57, 53, 0.14);
  animation: requiredAttentionPulse .9s ease-in-out 3;
}
@keyframes requiredAttentionPulse{
  0% { box-shadow: 0 0 0 2px rgba(229, 57, 53, 0.95), 0 0 0 4px rgba(229, 57, 53, 0.10); }
  50%{ box-shadow: 0 0 0 2px rgba(229, 57, 53, 0.95), 0 0 0 8px rgba(229, 57, 53, 0.18); }
  100%{ box-shadow: 0 0 0 2px rgba(229, 57, 53, 0.95), 0 0 0 4px rgba(229, 57, 53, 0.10); }
}
.time-input::placeholder,
input[type="text"]::placeholder {
  color: #b5b5b5;
}
input[type="date"],
input[type="datetime-local"]{
  font-family: inherit;
}

/* =========================
   PROFILE PAGE
========================= */
.profilePage{
  padding-top: 96px;
  max-width: 1120px;
  margin: 0 auto;
}
.profileLayout{
  display:grid;
  grid-template-columns: 220px 1fr;
  gap:16px;
}
.profileNav{
  position:sticky;
  top:92px;
  align-self:start;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.profileNav__btn{
  text-align:left;
  border:1px solid var(--border);
  background:#fff;
  padding:10px 12px;
  border-radius:10px;
  font-size:13px;
  cursor:pointer;
}
.profileNav__btn.is-active{
  background:#111;
  color:#fff;
  border-color:#111;
}
.profileContent{
  display:block;
}
.profileTab{
  display:none;
}
.profileTab.is-active{
  display:block;
}
.tablePager{
  margin-top: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}
.tablePager__left,
.tablePager__right{
  display: flex;
  align-items: center;
  gap: 8px;
}
.tablePager select,
.tablePager button{
  height: 34px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  color: #111;
  padding: 0 10px;
}
.tablePager button[disabled]{
  opacity: .45;
  cursor: not-allowed;
}
.tablePager--client .tablePager__right .muted{
  white-space: nowrap;
}
.skel-row td{
  padding-top: 10px;
  padding-bottom: 10px;
}
.skel-line{
  display: block;
  height: 12px;
  width: 100%;
  border-radius: 8px;
  background: linear-gradient(90deg, #efefef 25%, #f8f8f8 38%, #efefef 63%);
  background-size: 300% 100%;
  animation: skel-shimmer 1.2s ease-in-out infinite;
}
@keyframes skel-shimmer{
  0%{ background-position: 100% 0; }
  100%{ background-position: 0 0; }
}
.cost-loading{
  color: transparent !important;
  border-radius: 8px;
  background: linear-gradient(90deg, #efefef 25%, #f8f8f8 38%, #efefef 63%);
  background-size: 300% 100%;
  animation: skel-shimmer 1.1s ease-in-out infinite;
  user-select: none;
}
.fixed-recalc{
  transition: box-shadow .18s ease, border-color .18s ease, background-color .18s ease;
}
.stop2__priceCol.fixed-recalc{
  box-shadow: 0 0 0 2px rgba(209, 12, 38, .12);
  border-radius: 8px;
}
.liftfix.fixed-recalc{
  box-shadow: 0 0 0 2px rgba(209, 12, 38, .10);
}
.orderMap{
  height:280px;
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden;
}
.tariffViewSec{
  border:1px solid var(--border);
  border-radius:10px;
  padding:10px;
  margin-bottom:10px;
  background:#fafafa;
}
.tariffViewTitle{
  font-size:14px;
  font-weight:700;
  margin-bottom:8px;
}
.tariffViewTbl{
  width:100%;
  border-collapse:collapse;
}
.tariffViewTbl th,
.tariffViewTbl td{
  border-bottom:1px solid #ececec;
  text-align:left;
  padding:6px 4px;
  font-size:12px;
}
.profileCard{ padding:16px; }
.profileTitle{ font-size:22px; margin:0 0 4px; }
.profileH2{ font-size:18px; margin:0 0 10px; }
.profileH3{ font-size:16px; margin:0 0 8px; }
.profileTableWrap{
  overflow:auto;
  border:1px solid #ececf2;
  border-radius:12px;
  background:#fff;
}
.profileTable{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  min-width:760px;
}
.profileTable thead th{
  position:sticky;
  top:0;
  z-index:1;
  background:#f7f8fb;
  color:#4a5872;
  text-align:left;
  font-size:12px;
  font-weight:700;
  border-bottom:1px solid #e7eaf1;
  padding:10px 12px;
  white-space:nowrap;
}
.profileTable tbody td{
  padding:10px 12px;
  font-size:13px;
  color:#1b2332;
  border-bottom:1px solid #eff1f5;
  vertical-align:top;
}
.profileTable tbody tr:nth-child(even) td{
  background:#fcfcfd;
}
.profileTable tbody tr:hover td{
  background:#f6f9ff;
}
.profileTable tbody tr:last-child td{
  border-bottom:0;
}
.profileGrid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:12px;
  margin-bottom:14px;
}
.profileGrid .field label{
  display:block;
  font-size:12px;
  color:#6b6b6b;
  margin-bottom:6px;
}
.profileGrid .field.field--pending-approval label{
  color:#8a5900;
  font-weight:700;
}
.profileGrid input,
.profileGrid select{
  width:100%;
}
.profileGrid .field.field--pending-approval input,
.profileGrid .field.field--pending-approval select{
  border-color:#f0c56a;
  background:#fff7e6;
}
.fieldPendingHint{
  margin-top:6px;
  font-size:11px;
  color:#8a5900;
}
.fieldRow{
  display:flex;
  gap:8px;
  align-items:center;
}
.profileStatus{
  font-size:12px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid var(--border);
}
.profileStatus.ok{ background:#e9f7ef; color:#1b7a46; border-color:#bfe6cf; }
.profileStatus.warn{ background:#fff5e6; color:#b35a00; border-color:#ffd9a6; }
.profileNote{
  background:#f7f7f7;
  border:1px dashed #d6d6d6;
  padding:10px 12px;
  border-radius:10px;
  font-size:12px;
  margin-bottom:12px;
}
.profileDivider{
  height:1px;
  background:#ececec;
  margin:16px 0;
}
.profileSavedList{
  display:grid;
  gap:12px;
}
.profileSavedCard{
  border:1px solid #ececf2;
  border-radius:14px;
  background:#fff;
  padding:14px 16px;
}
.profileSavedCard__title{
  font-size:15px;
  font-weight:700;
  color:#1b2332;
}
.profileSavedCard__addr{
  margin-top:4px;
  margin-bottom:6px;
  color:#1b2332;
}
.profileSavedCard__badges{
  margin-top:10px;
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}
.profileSavedBadge,
.suggest__tag{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:3px 8px;
  border-radius:999px;
  border:1px solid #ececf2;
  background:#f8f9fb;
  color:#44516b;
  font-size:11px;
  line-height:1;
}
.profileSavedEditor{
  display:grid;
  grid-template-columns:minmax(0,1fr) 290px;
  gap:16px;
  align-items:start;
}
.profileSavedEditor__fields{
  display:grid;
  gap:12px;
}
.profileSavedEditor__mapWrap{
  border:1px solid #ececf2;
  border-radius:12px;
  padding:10px;
  background:#fafbfc;
}
.profileSavedMap{
  width:100%;
  height:260px;
  border:1px solid #ececf2;
  border-radius:10px;
  overflow:hidden;
  background:#fff;
}
.profileSavedGrid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
}
.profileSavedRecent{
  border:1px solid #ececf2;
  border-radius:12px;
  padding:8px;
  background:#fafbfc;
  display:grid;
  gap:6px;
}
.profileSavedRecent__item{
  width:100%;
  text-align:left;
  border:1px solid #ececf2;
  border-radius:10px;
  background:#fff;
  padding:9px 10px;
  cursor:pointer;
}
.stopSavedPrompt{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:8px 0 10px;
  padding:9px 12px;
  border:1px solid #f0d7d7;
  border-radius:14px;
  background:#fff9f9;
}
.stopSavedPrompt__text{
  font-size:12px;
  line-height:1.35;
  color:#6b4b4b;
}
.stopSavedPrompt__actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}
.stopSavedPrompt__btn{
  height:30px;
  padding:0 12px;
  border:1px solid #e3d5d5;
  border-radius:999px;
  background:#fff;
  color:#1b2332;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
.stopSavedPrompt__btn--primary{
  border-color:#c8102e;
  background:#c8102e;
  color:#fff;
}
.suggest__item--rich{
  width:100%;
  display:block;
  text-align:left;
  border:0;
  background:transparent;
  cursor:pointer;
}
.suggest__title{
  font-size:11px;
  color:#6b7488;
  margin-bottom:3px;
}
.suggest__row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.hint{
  font-size:12px;
  color:#8a8a8a;
  margin-top:6px;
}
.toast{
  position:fixed;
  right:16px;
  bottom:16px;
  background:#111;
  color:#fff;
  padding:10px 12px;
  border-radius:8px;
  font-size:13px;
  opacity:0;
  transform:translateY(6px);
  transition:all .2s ease;
  z-index:13050;
}
.toast.show{
  opacity:1;
  transform:translateY(0);
}

#clientToastRoot{
  position: fixed;
  top: 14px;
  left: 14px;
  z-index: 13050;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  width: min(360px, calc(100vw - 28px));
  pointer-events: none;
}
.clientToast{
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #d6dbe3;
  background: #ffffff;
  color: #111;
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 13px;
  line-height: 1.35;
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity .2s ease, transform .2s ease;
}
.clientToast--error{
  border-color: #f1b7b7;
  background: #fff6f6;
  color: #8b0000;
}
.clientToast--success{
  border-color: #b9dfbf;
  background: #f3fff5;
  color: #1f5f2e;
}
.clientToast--info{
  border-color: #d6dbe3;
  background: #ffffff;
  color: #111;
}
.clientToast--warn{
  border-color: #f2d5a9;
  background: #fff8ec;
  color: #7a4b00;
}
.clientToast.is-show{
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 900px){
  .profileLayout{ grid-template-columns: 1fr; }
  .profileNav{ position:static; flex-direction:row; flex-wrap:wrap; }
  .profileNav__btn{ flex:1 1 auto; }
  .profileGrid{ grid-template-columns: 1fr; }
  .profileTable{ min-width:640px; }
  .profilePage{ padding-top: 84px; }
  .profileSavedEditor{ grid-template-columns:1fr; }
  .profileSavedGrid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .profileSavedMap{ height:220px; }
  .stopSavedPrompt{
    flex-direction:column;
    align-items:flex-start;
  }
  .tablePager__right .muted{
    width: 100%;
  }
}
  .stopRow3--labels,
  .stopRow2lbl--labels{
    display:none !important;
  }
.mobileOnly{
  display:block;
  font-size:12px;
  color:var(--muted);
  margin-bottom:4px;
}

/* PACK spacing: label+input closer, pairs spaced evenly */
.top2col__pack .packGrid4,
.top2col__right .packGrid4{
  column-gap: 10px !important;
  row-gap: 8px !important;
}

.top2col__pack .packIt,
.top2col__right .packIt{
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  position: relative;
}

.top2col__pack .packIt::before,
.top2col__right .packIt::before{
  display:none !important;
}

.top2col__pack .packIt:first-child::before,
.top2col__right .packIt:first-child::before{
  display:none;
}

.top2col__pack .packIt__lbl,
.top2col__right .packIt__lbl{
  margin-right: 0 !important;
  flex: 0 1 auto !important;
}

.top2col__pack .stepperV,
.top2col__right .stepperV{
  margin-left: 0 !important;
}

/* Keep date/time/interval typography identical in stop "when" block */
input[data-k="whenDate"],
input[data-k="whenTime"],
select[data-k="whenInterval"]{
  font-family: inherit !important;
  font-size: 13px !important;
  line-height: 1.2 !important;
}

/* Help "?" icon: near first text line, without affecting surrounding layout */
.top2col__right .opt__name .qhelp,
.top2col__pack .packIt__lbl .qhelp{
  position: relative !important;
  top: -2px;
  margin-left: 2px !important;
}

.top2col__right .opt__name{
  display: block !important;
}

.top2col__right .opt__name .optLine1{
  display: inline-flex;
  align-items: flex-start;
  gap: 2px;
  white-space: nowrap;
}

.top2col__right .opt__name .optLine2{
  display: block;
  margin-top: 1px;
}

.top2col__right .opt__name .optLine1 .qhelp{
  margin-left: 0 !important;
}

.softHint{
  position:absolute;
  left:0;
  top:calc(100% + 6px);
  max-width:260px;
  background:#fff8e8;
  border:1px solid #f1d39a;
  color:#7a5a22;
  border-radius:8px;
  padding:6px 8px;
  font-size:12px;
  line-height:1.2;
  box-shadow:0 6px 14px rgba(0,0,0,.08);
  opacity:0;
  transform:translateY(-3px);
  transition:opacity .18s ease, transform .18s ease;
  pointer-events:none;
  z-index:20;
}
.softHint.is-show{
  opacity:1;
  transform:translateY(0);
}
.softHint--loaders{
  left:0;
  top:100%;
}
.softHint--date{
  left:0;
  top:calc(100% + 4px);
  max-width:240px;
}
.softHint--floor{
  left:0;
  top:calc(100% + 4px);
  max-width:220px;
}

/* Flatpickr uses same typography as app */
.flatpickr-calendar,
.flatpickr-calendar *{
  font-family: inherit !important;
}
.flatpickr-calendar{
  width: 307px !important;
  max-width: calc(100vw - 20px) !important;
  font-size: 12px !important;
  z-index: 12050 !important;
}
.flatpickr-rContainer,
.flatpickr-weekdays,
.flatpickr-days,
.dayContainer{
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
}
.flatpickr-months .flatpickr-month{
  height: 30px !important;
}
.flatpickr-current-month{
  font-size: 12px !important;
  padding-top: 3px !important;
}
.flatpickr-weekdays{
  height: 24px !important;
}
.flatpickr-weekday{
  line-height: 24px !important;
  font-size: 11px !important;
  width: calc(100% / 7) !important;
  max-width: none !important;
}
.flatpickr-day{
  width: calc(100% / 7) !important;
  max-width: none !important;
  height: 30px !important;
  line-height: 30px !important;
  font-size: 12px !important;
}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover{
  color:#b8bcc4 !important;
  opacity:.55 !important;
  cursor:not-allowed !important;
}

/* keep calendar icon on custom date input with flatpickr */
input[data-k="whenDate"]{
  padding-right: 28px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 8px center;
  background-size: 14px 14px;
}

/* =========================================================
   FIGMA MOBILE TUNE (480px reference)
   Keep these overrides at the very end for priority.
   ========================================================= */
html.is-modal-open,
html.is-mobhdr-open{
  overflow:hidden;
}

@media (max-width:520px){
  html, body{
    overflow-x:hidden !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch !important;
  }
  body{
    background:#dcdcdc;
  }
  body:not(.page--static) .page,
  body:not(.page--static) .layout,
  body:not(.page--static) .form-col{
    background:#dcdcdc !important;
  }
  .page{
    padding:0 !important;
  }
  .form-col{
    padding:50px 10px 56px !important;
    min-height:calc(100dvh - 1px) !important;
    height:auto !important;
    overflow:visible !important;
    background:#dcdcdc !important;
  }

  .mobhdr{
    left:0;
    right:0;
    padding:6px 10px;
    border:1px solid #d6d6d6;
    border-top:0;
    border-radius:0 0 12px 12px;
    box-shadow:none;
    background:#fff;
    overflow:visible;
  }
  .mobhdr__mode{
    font-size:10px;
    color:#4a4a4a;
    font-weight:700;
    text-align:center;
    flex:1 1 auto;
    min-width:0;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .mobhdr::before{
    content:"";
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.34);
    opacity:0;
    transition:opacity .16s ease;
    pointer-events:none;
  }
  .mobhdr.is-open::before{
    opacity:1;
  }
  .mobhdr__logo img{
    height:22px;
  }
  .mobhdr__burger{
    margin-left:8px;
    width:30px;
    height:24px;
    border:0;
    border-radius:8px;
    background:transparent;
    gap:3px;
  }
  .mobhdr__burger span{
    width:13px;
    height:1.5px;
  }
  .mobhdrMenu{
    position:fixed !important;
    top:8px !important;
    right:4px !important;
    left:auto !important;
    width:194px;
    z-index:1210;
    border:0;
    border-radius:14px;
    box-shadow:0 12px 24px rgba(0,0,0,.22);
    padding:8px 10px 10px;
    gap:2px;
  }
  .mobhdrMenu__close{
    position:absolute;
    top:7px;
    right:7px;
    width:18px;
    height:18px;
    border:0;
    border-radius:6px;
    background:transparent;
    color:#8d8d8d;
    font-size:12px;
    line-height:18px;
    cursor:pointer;
    padding:0;
  }
  .mobhdrMenu__modes{
    display:grid;
    grid-template-columns:1fr;
    gap:6px;
    margin:2px 16px 8px 0;
  }
  .mobhdrMenu__modeBtn{
    height:25px;
    border:0;
    border-radius:8px;
    background:#f1f1f1;
    color:#4b4b4b;
    font-size:10.5px;
    text-align:left;
    padding:0 9px;
    cursor:pointer;
  }
  .mobhdrMenu__modeBtn:hover{
    background:#ebebeb;
  }
  .mobhdrMenu__section{
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:10.5px;
    font-weight:700;
    color:#2f2f2f;
    margin:7px 0 4px;
    padding-top:6px;
    border-top:1px solid #ececec;
  }
  .mobhdrMenu__chev{
    font-size:10px;
    opacity:.7;
  }
  .mobhdrMenu__link{
    font-size:10.5px;
    color:#222;
    padding:3px 0;
    border-radius:0;
  }
  .mobhdrMenu__login{
    margin-top:8px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    height:27px;
    border-radius:10px;
    background:#4e4e4e;
    color:#fff;
    font-size:11px;
    font-weight:700;
  }

  .card,
  .stop.stop2{
    border-radius:16px !important;
    border:1px solid #d2d2d2 !important;
    box-shadow:none !important;
    padding:10px !important;
    margin-top:8px !important;
  }

  .top2col__right .rightSection__title,
  .top2col__pack .rightSection__title{
    font-size:13px;
    margin-bottom:8px;
  }
  .top2col__right .opt__name{
    font-size:11.5px;
    line-height:1.1;
  }
  .top2col__right .opt__hint{
    font-size:9px;
    margin-top:1px;
  }
  .top2col__right .segMini{
    border-radius:8px;
    padding:1px;
    background:#f1f1f1;
  }
  .top2col__right .segMini__btn{
    height:20px;
    min-width:20px;
    font-size:10px;
    padding:0 6px;
  }

  .stop2__ttl{
    font-size:21px;
  }
  .stop2__num{
    font-size:21px;
  }
  .stop2__name{
    font-size:14px;
    font-weight:800;
  }
  .stop2__del{
    width:24px;
    height:24px;
  }

  .inp,
  input,
  select,
  textarea{
    border-radius:6px;
    height:30px;
    padding:6px 8px;
    font-size:12px;
    border-color:#d9d9d9 !important;
    background:#f4f4f4;
  }
  /* unify lift-segment and when-segment look in mobile cards */
  .stop .pillSeg,
  .stop .stopWhenSeg{
    display:inline-flex;
    align-items:center;
    width:100%;
    padding:2px;
    gap:2px;
    border-radius:8px;
    background:#f1f1f1;
    border:1px solid #e2e2e2;
    box-sizing:border-box;
  }
  .stop .stopWhenSeg.segMini--wide{
    justify-content:flex-start !important;
  }
  .stop .pillSeg__btn,
  .stop .stopWhenSeg .segMini__btn{
    height:24px;
    font-size:11px;
    border-radius:8px;
    border:1px solid transparent;
    background:transparent;
    min-width:0;
  }
  .stop .stopWhenSeg .segMini__btn{
    flex:1 1 0;
    padding:0 4px;
  }
  .stop .pillSeg__btn.active,
  .stop .pillSeg__btn.is-active,
  .stop .stopWhenSeg .segMini__btn.is-active{
    background:#fff;
    border-color:#d7d7d7;
    color:#111;
    font-weight:600;
    box-shadow:none;
  }
  .top2col__pack .packIt__lbl,
  .top2col__right .packIt__lbl{
    color:#2f2f2f !important;
  }

  .chk2{
    font-size:11px;
    gap:6px;
  }
  .stopChkLifts,
  .stopChkServices{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:flex-start;
    gap:2px 16px;
    width:100%;
  }
  .stopChkLifts .chk2,
  .stopChkServices .chk2--service{
    display:inline-flex;
    margin:0;
    white-space:nowrap;
  }
  .stopChkCol{
    display:flex;
    flex-wrap:wrap;
    align-items:flex-start;
    gap:2px 16px;
    padding-top:2px;
  }
  .stopChkCol > .chk2{
    display:inline-flex;
    margin:0;
  }
  .stopChkLifts{
    align-self:flex-start;
  }
  .stopChkServices{
    align-self:flex-start;
  }
  /* unified spacing rhythm in mobile stop cards */
  body[data-mobile="1"] .stop2__grid--logist .stop2__col{
    gap:8px;
  }
  body[data-mobile="1"] .stop2__grid--logist .lbl{
    margin:0 0 4px;
    line-height:1.2;
  }
  body[data-mobile="1"] .stop2__grid--logist .stopRow1{
    gap:4px;
  }
  body[data-mobile="1"] .stop2__grid--logist .stopRow2,
  body[data-mobile="1"] .stop2__grid--logist .stopRow3,
  body[data-mobile="1"] .stop2__grid--logist .stopRow2lbl{
    gap:8px;
  }
  body[data-mobile="1"] .stop2__grid--logist .stopChkCol{
    padding-top:0;
    gap:6px 16px;
  }
  body[data-mobile="1"] .stop2__grid--logist .stopChkCol--paired{
    display:inline-grid;
    grid-template-columns:max-content max-content;
    justify-content:start;
    column-gap:26px;
    row-gap:4px;
    align-items:start;
  }
  body[data-mobile="1"] .stop2__grid--logist .stopChkCol--paired .stopChkLifts,
  body[data-mobile="1"] .stop2__grid--logist .stopChkCol--paired .stopChkServices{
    display:contents;
  }
  body[data-mobile="1"] .stop2__grid--logist .stopChkCol--paired .stopChkLifts .chk2,
  body[data-mobile="1"] .stop2__grid--logist .stopChkCol--paired .stopChkServices .chk2--service{
    justify-self:start;
    width:max-content;
  }
  body[data-mobile="1"] .stop2__grid--logist .stopChkCol--paired .stopChkLifts .chk2:nth-child(1){
    grid-column:1;
    grid-row:1;
  }
  body[data-mobile="1"] .stop2__grid--logist .stopChkCol--paired .stopChkLifts .chk2:nth-child(2){
    grid-column:2;
    grid-row:1;
  }
  body[data-mobile="1"] .stop2__grid--logist .stopChkCol--paired .stopChkServices .chk2--service:nth-child(1){
    grid-column:1;
    grid-row:2;
  }
  body[data-mobile="1"] .stop2__grid--logist .stopChkCol--paired .stopChkServices .chk2--service:nth-child(2){
    grid-column:2;
    grid-row:2;
  }
  body[data-mobile="1"] .stop2__grid--logist .stopChkCol--paired.stopChkCol--servicesOnly .stopChkServices .chk2--service:nth-child(1){
    grid-column:1;
    grid-row:1;
  }
  body[data-mobile="1"] .stop2__grid--logist .stopChkCol--paired.stopChkCol--servicesOnly .stopChkServices .chk2--service:nth-child(2){
    grid-column:2;
    grid-row:1;
  }
  .stopRow2.stopRow2--when{
    flex-wrap:nowrap !important;
    gap:8px;
  }
  .stopRow2.stopRow2--when .stopHalf{
    flex:1 1 0 !important;
    min-width:0;
  }
  .stopTa{
    min-height:30px;
  }

  .payBtn{
    font-size:10px;
    gap:1px;
  }
  .payBtn__icon{
    font-size:12px;
    color:#c60c1e;
  }

  .footerBar2{
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    border-radius:12px 12px 0 0 !important;
    border:1px solid #d3d3d3 !important;
    padding:7px 10px !important;
    grid-template-columns:minmax(128px, 1.1fr) minmax(120px, 1fr) auto !important;
    grid-template-areas:
      "pay btn total"
      "pay draft total"
      "reset reset total" !important;
    gap:8px !important;
    background:#f7f7f7 !important;
    box-shadow:none !important;
    z-index:1100;
  }
  .payBox{
    display:block !important;
    grid-area:pay;
    min-width:0;
  }
  .payBox .lbl{
    display:block !important;
    margin:0 0 2px !important;
    font-size:10px !important;
    line-height:1.1 !important;
  }
  .payRow{
    display:flex !important;
    align-items:center;
    gap:6px;
    flex-wrap:nowrap !important;
  }
  .payRow select{
    flex:1 1 auto;
    min-width:0;
    height:30px !important;
    font-size:12px !important;
  }
  .paySettingsIconBtn{
    width:30px;
    min-width:30px;
    height:30px;
    padding:0 !important;
    border-radius:10px !important;
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }
  #payMethodHint{
    display:none !important;
  }
  .resetLink{
    grid-area:reset;
    justify-self:start !important;
    color:#b80d1a !important;
    font-size:11px;
    font-weight:700;
    text-decoration:none !important;
    padding:0 !important;
  }
  .resetLink--draft{
    display:inline-flex !important;
    grid-area:draft;
    justify-self:start !important;
    align-self:center;
    font-size:11px !important;
    line-height:1.1;
    white-space:nowrap;
  }
  .resetLink:not(.resetLink--draft){
    align-self:start;
  }
  .orderBtn{
    grid-area:btn;
    justify-self:center;
    width:160px !important;
    height:30px !important;
    border-radius:999px !important;
    border:0 !important;
    background:#b80d1a !important;
    color:#fff;
    font-size:13px;
    font-weight:800;
  }
  .totalBox{
    grid-area:total;
    justify-self:end !important;
    align-self:center;
  }
  .totalBox__row{
    gap:4px;
    justify-content:flex-end !important;
  }
  .totalBox__val{
    font-size:12px !important;
  }

  .sheet{
    z-index:1300;
  }
  .sheet__backdrop{
    background:rgba(0,0,0,.42);
  }
  .sheet__panel{
    position:fixed;
    left:50%;
    right:auto;
    bottom:auto;
    top:64%;
    transform:translate(-50%, -50%);
    width:calc(100vw - 76px);
    max-width:292px;
    border-radius:21px;
    padding:15px 14px 12px;
    box-shadow:0 14px 30px rgba(0,0,0,.22);
  }
  .sheet__title{
    text-align:center;
    font-size:21px;
    line-height:1.08;
    margin-bottom:7px;
  }
  .sheet__text{
    text-align:center;
    font-size:10.5px;
    line-height:1.22;
    margin-bottom:9px;
  }
  .sheet__actions{
    justify-content:center;
    gap:7px;
  }
  .sheet__actions .btn{
    height:21px;
    padding:0 13px;
    border-radius:999px;
    font-size:9.5px;
    font-weight:800;
  }
  .sheet__actions .btn--ghost{
    border:1px solid #b80d1a;
    color:#b80d1a;
    background:#fff;
  }
  .sheet__actions .btn--primary{
    background:#b80d1a;
    color:#fff;
  }
}

/* =========================================================
   MOBILE DETAIL CARD — pixel-fit override for screenshot
   ========================================================= */
@media (max-width:520px){
  .top2col{
    margin:0 !important;
    padding:12px 10px 10px !important;
    border-radius:24px !important;
    border:1px solid #d9d9d9 !important;
    background:#ffffff !important;
    box-shadow:none !important;
  }

  .top2col__wrap{
    display:block !important;
  }

  .top2col__left{
    gap:8px !important;
  }
  .top2col .leftSection__title{
    display:none !important;
  }
  .top2col .top2col__left::before{
    content:"Выберите размер авто";
    display:block;
    margin:2px 6px 8px;
    font-size:20px;
    line-height:1.1;
    font-weight:700;
    color:#2e3f56;
    letter-spacing:-0.1px;
  }

  .top2col .rightSection__title{
    font-size:20px !important;
    line-height:1.1 !important;
    margin:2px 6px 9px !important;
    font-weight:700 !important;
    color:#2e3f56 !important;
    letter-spacing:-0.1px !important;
  }

  .top2col .leftCard{
    grid-template-columns: 46% 54% !important;
    min-height:112px !important;
    border-radius:14px !important;
    border:1px solid #dfdfdf !important;
    background:#e4e4e4 !important;
    box-shadow:none !important;
  }

  .top2col .leftCard__img{
    min-height:112px !important;
    border-right:0 !important;
    background:transparent !important;
  }

  .top2col .leftCard__img:before{
    inset:8px !important;
  }

  .top2col .leftCard__dims{
    padding:12px 10px !important;
    font-size:12px !important;
    line-height:1.2 !important;
    color:#6d6d6d !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    align-items:flex-start !important;
    text-align:left !important;
  }
  .top2col .leftCard__dimsSub{
    font-size:.76em !important;
    line-height:1.2 !important;
  }
  .top2col .leftCard__dimsSep::before{
    width: 30px !important;
  }

  .top2col .leftCard--body{
    display:flex !important;
    align-items:center !important;
    min-width:0 !important;
    width:100% !important;
    box-sizing:border-box !important;
    min-height:auto !important;
    padding:8px 10px !important;
    border-radius:12px !important;
    gap:8px !important;
    border:1px solid #dfdfdf !important;
    background:#e9e9e9 !important;
    overflow:hidden !important;
  }

  .top2col .leftCard__bodyLbl{
    flex:0 0 56px;
    font-size:12px !important;
    font-weight:600 !important;
    color:#4a4a4a !important;
    padding:0 2px !important;
  }

  .top2col .leftCard--body .segBody{
    flex:1 1 auto !important;
    display:grid !important;
    grid-template-columns:repeat(6, minmax(0, 1fr)) !important;
    gap:2px !important;
    padding:2px !important;
    border-radius:8px !important;
    border:1px solid #dcdcdc !important;
    background:#e8e8e8 !important;
    min-width:0 !important;
    width:auto !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
    flex-wrap:nowrap !important;
    justify-content:stretch !important;
  }

  .top2col .segBody__btn{
    height:24px !important;
    width:100% !important;
    min-width:0 !important;
    padding:0 2px !important;
    border-radius:6px !important;
    font-size:10px !important;
    color:#686868 !important;
    font-weight:500 !important;
    white-space:nowrap !important;
  }

  .top2col .segBody__btn.is-active{
    background:#ffffff !important;
    color:#111111 !important;
    font-weight:800 !important;
    border:1px solid #d5d5d5 !important;
    box-shadow:none !important;
  }

  .top2col .top2col__divider{
    margin:10px 0 !important;
    background:#d9d9d9 !important;
  }

  .top2col .top2col__right .rightGrid2{
    display:grid !important;
    grid-template-columns: 1fr !important;
    row-gap:0 !important;
  }

  .top2col .top2col__right .opt{
    display:grid !important;
    grid-template-columns: 1fr auto !important;
    grid-template-rows:auto auto !important;
    align-items:center !important;
    gap:2px 8px !important;
    padding:8px 0 !important;
    border-top:0 !important;
  }

  .top2col .top2col__right .opt:first-child{
    border-top:0 !important;
  }

  .top2col .top2col__right .opt__name{
    grid-column:1 !important;
    grid-row:1 !important;
    font-size:13px !important;
    line-height:1.05 !important;
    color:#3e3e3e !important;
    font-weight:600 !important;
  }

  .top2col .top2col__right .opt__hint{
    grid-column:1 !important;
    grid-row:2 !important;
    margin-top:0 !important;
    font-size:11px !important;
    line-height:1.1 !important;
    color:#7a7a7a !important;
    max-width:none !important;
    white-space:normal !important;
  }

  .top2col .top2col__right .opt .segMini{
    grid-column:2 !important;
    grid-row:1 / span 2 !important;
    align-self:center !important;
    justify-self:end !important;
    border-radius:8px !important;
    border:1px solid #e0e0e0 !important;
    background:#e7e7e7 !important;
    padding:1px !important;
    gap:1px !important;
  }

  .top2col .top2col__right .segMini__btn{
    height:24px !important;
    min-width:26px !important;
    padding:0 6px !important;
    font-size:11px !important;
    border-radius:7px !important;
  }

  .top2col .top2col__pack .packGrid4{
    grid-template-columns: 1fr !important;
    gap:0 !important;
  }

  .top2col .top2col__pack .packIt{
    display:grid !important;
    grid-template-columns: 1fr auto !important;
    align-items:center !important;
    gap:6px !important;
    padding:8px 0 !important;
    border-top:0 !important;
  }

  .top2col .top2col__pack .packIt:first-child{
    border-top:0 !important;
  }

  .top2col .top2col__pack .packIt__lbl{
    min-width:0 !important;
    font-size:13px !important;
    line-height:1.06 !important;
    color:#404040 !important;
    font-weight:600 !important;
  }

  .top2col .top2col__pack .packIt__lbl > span:not(.packLine1){
    font-size:11px !important;
    margin-top:3px !important;
    color:#7a7a7a !important;
    max-width:none !important;
    white-space:normal !important;
  }

  .top2col .top2col__pack .stepperV{
    margin-top:0 !important;
    position:relative !important;
    width:76px !important;
    height:24px !important;
    display:block !important;
  }

  .top2col .top2col__pack .stepperV__inp{
    position:absolute !important;
    left:50% !important;
    top:0 !important;
    transform:translateX(-50%) !important;
    width:24px !important;
    height:24px !important;
    border-radius:8px !important;
    font-size:11px !important;
    padding:0 !important;
    text-align:center !important;
    color:#444 !important;
    background:#fff !important;
    border:1px solid #d7d7d7 !important;
    z-index:4 !important;
    opacity:1 !important;
  }

  .top2col .top2col__pack .stepperV__pm{
    position:absolute !important;
    inset:0 !important;
    display:block !important;
    border:0 !important;
    gap:0 !important;
    border-radius:0 !important;
    pointer-events:none !important;
    z-index:3 !important;
  }

  .top2col .top2col__pack .stepperV__btn{
    position:absolute !important;
    top:0 !important;
    width:22px !important;
    height:24px !important;
    line-height:24px !important;
    font-size:16px !important;
    border-radius:8px !important;
    border:1px solid #dddddd !important;
    background:#efefef !important;
    font-weight:500 !important;
    pointer-events:auto !important;
  }
  .top2col .top2col__pack .stepperV__btn[data-pdec]{
    left:0 !important;
  }
  .top2col .top2col__pack .stepperV__btn[data-pinc]{
    right:0 !important;
  }

  .top2col .top2col__pack .stepperV__btn + .stepperV__btn{
    border-top:0 !important;
  }

  .top2col .top2col__pack .stepperV__unit{
    display:none !important;
  }

  .top2col .qhelp{
    color:#b80d1a !important;
    border-color:#b80d1a !important;
  }
}

/* =========================
   Desktop Two-Column Alignment (fixed)
========================= */
.desktopLayoutToggle{
  display:none !important;
}

@media (min-width: 821px) and (pointer: fine) {
  body[data-desktop-layout="alt"] .top2col__wrap{
    grid-template-columns: 40% 60%;
    align-items: stretch;
  }

  body[data-desktop-layout="alt"] .top2col__left,
  body[data-desktop-layout="alt"] .top2col__right{
    height: 100%;
  }

  body[data-desktop-layout="alt"] .top2col__right{
    display: grid !important;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    column-gap: 14px;
    row-gap: 0;
    align-items: stretch;
    position: relative;
    padding: 2px 0;
  }
  body[data-desktop-layout="alt"] .top2col__right > .rightTopBar{
    display: none !important;
  }
  body[data-desktop-layout="alt"] .top2col__right > .rightSection:not(.top2col__pack){
    grid-column: 1;
    padding-right: 6px;
    align-self: stretch;
    display:flex;
    flex-direction:column;
  }
  body[data-desktop-layout="alt"] .top2col__right > .top2col__pack{
    grid-column: 2;
    padding-left: 6px;
    margin-left: 0;
    align-self: stretch;
    display:flex;
    flex-direction:column;
  }
  body[data-desktop-layout="alt"] .top2col__right > .top2col__divider{
    display: none !important;
  }
  body[data-desktop-layout="alt"] .top2col__right::before{
    content: "";
    position: absolute;
    top: 8px;
    bottom: 8px;
    left: 50%;
    width: 1px;
    background: #dddddd;
    pointer-events: none;
  }

  body[data-desktop-layout="alt"] .top2col__right > .rightSection__title,
  body[data-desktop-layout="alt"] .top2col__pack > .rightSection__title{
    margin: 0 0 6px;
    min-height: 20px;
    display: flex;
    align-items: center;
  }

  body[data-desktop-layout="alt"] .top2col__right > .rightSection:not(.top2col__pack) .rightGrid2{
    grid-template-columns: 1fr;
    row-gap: 0;
    grid-auto-rows: 56px;
    margin: 0;
    padding: 0;
  }
  body[data-desktop-layout="alt"] .top2col__right > .rightSection:not(.top2col__pack) .opt{
    grid-template-columns: 1fr auto;
    column-gap: 10px;
    align-items:center;
    min-height:56px;
    height:56px;
    padding:0;
    border-top:0;
    box-sizing:border-box;
  }
  body[data-desktop-layout="alt"] .top2col__right > .rightSection:not(.top2col__pack) .opt:first-child{
    border-top:0;
  }
  body[data-desktop-layout="alt"] .top2col__right > .rightSection:not(.top2col__pack) .opt__name{
    line-height: 1.15;
  }
  body[data-desktop-layout="alt"] .top2col__right > .rightSection:not(.top2col__pack) .segMini{
    flex-wrap: nowrap;
    align-self:center;
    margin-top:0;
  }

  body[data-desktop-layout="alt"] .top2col__right > .top2col__pack .packGrid4{
    grid-template-columns: 0.84fr !important;
    row-gap: 0 !important;
    column-gap: 0 !important;
    align-items: start;
    grid-auto-rows: 56px;
    margin: 0;
    padding: 0 !important;
  }
  body[data-desktop-layout="alt"] .top2col__right > .top2col__pack .packIt{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    align-items:center !important;
    justify-content:stretch !important;
    column-gap:10px !important;
    gap:10px !important;
    min-height:56px;
    height:56px;
    padding:0 !important;
    border-top:0;
    box-sizing:border-box;
  }
  body[data-desktop-layout="alt"] .top2col__right > .top2col__pack .stepperV{
    align-self:center !important;
    margin-top:0 !important;
  }
  body[data-desktop-layout="alt"] .top2col__right > .top2col__pack .packIt:first-child{
    border-top:0;
  }
  body[data-desktop-layout="alt"] .top2col__right > .top2col__pack .packIt__lbl{
    display:block;
    min-height:30px;
    color:#222;
    line-height:1.15;
    margin:0;
    padding:0;
  }
  body[data-desktop-layout="alt"] .top2col__right > .top2col__pack .packIt__lbl > span:not(.packLine1){
    color:#757575;
    line-height:1.2;
    font-size:10px;
  }
  body[data-desktop-layout="alt"] .top2col__right > .rightSection:not(.top2col__pack) .opt__name{
    display:flex !important;
    flex-direction:column;
    justify-content:flex-start;
    min-height:30px;
    line-height:1.15;
    margin:0;
  }
  body[data-desktop-layout="alt"] .top2col__right > .rightSection:not(.top2col__pack) .opt__name .optLine1{
    display:inline-flex;
    align-items:center;
    gap:2px;
    white-space:nowrap;
    line-height:1.15;
  }
  body[data-desktop-layout="alt"] .top2col__right > .rightSection:not(.top2col__pack) .opt__name .optLine2{
    display:block;
    min-height:14px;
    margin-top:1px;
    line-height:1.15;
  }
  body[data-desktop-layout="alt"] .top2col__right .opt__name .qhelp,
  body[data-desktop-layout="alt"] .top2col__pack .packIt__lbl .qhelp{
    position:static !important;
    top:0 !important;
    margin-left:4px !important;
    align-self:auto;
    vertical-align:middle;
    transform:none !important;
  }

  body[data-desktop-layout="alt"] .stop2__grid--logist{
    grid-template-columns: 42% 23% minmax(0,1fr) auto;
    gap: 8px 10px;
  }
  body[data-desktop-layout="alt"] .stop2__grid--logist .stop2__col{
    gap:6px;
  }
  body[data-desktop-layout="alt"] .stop2__grid--logist .stopRow1{
    gap:6px;
  }
  body[data-desktop-layout="alt"] .stop2__grid--logist .stopRow2,
  body[data-desktop-layout="alt"] .stop2__grid--logist .stopRow2lbl,
  body[data-desktop-layout="alt"] .stop2__grid--logist .stopRow3{
    gap:8px;
  }
  body[data-desktop-layout="alt"] .stop2__grid--logist .stop2__col--right{
    justify-content:center;
    align-items:flex-end;
  }
  body[data-desktop-layout="alt"] .stop2__grid--logist .stop2__col--right .stop2__spacer{
    display:none;
  }
  body[data-desktop-layout="alt"] .stop2__grid--logist .stop2__metaRow{
    justify-content:flex-start;
    gap:8px;
  }
  body[data-desktop-layout="alt"] .stop2__grid--logist .stopRow2--when{
    margin-top:4px;
  }
  body[data-desktop-layout="alt"] .stop2__grid--logist .stopWhenSeg{
    border-radius:8px;
    padding:2px;
  }
}

/* ===== FINAL PACK FIX (desktop) ===== */
@media (min-width: 821px){
  .top2col__pack{
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    padding-right: 8px !important;
  }

  .top2col__right > .top2col__pack{
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    padding-right: 8px !important;
  }

  .top2col__pack .packGrid4,
  .top2col__right > .top2col__pack .packGrid4{
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    grid-auto-rows: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .top2col__pack .packIt,
  .top2col__right > .top2col__pack .packIt{
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    column-gap: 6px !important;
    min-height: 56px !important;
    height: auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  .top2col__pack .packIt__lbl,
  .top2col__right > .top2col__pack .packIt__lbl{
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    min-width: 0 !important;
    font-size: 14px !important;
    line-height: 1.05 !important;
    font-weight: 600 !important;
    color: #111 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .top2col__pack .packIt__lbl .packLine1,
  .top2col__right > .top2col__pack .packIt__lbl .packLine1{
    display: inline-flex !important;
    align-items: center !important;
    gap: 2px !important;
    white-space: nowrap !important;
    font-size: 14px !important;
    line-height: 1.05 !important;
    font-weight: 600 !important;
    color: #111 !important;
  }

  .top2col__pack .packIt__lbl > span:not(.packLine1),
  .top2col__right > .top2col__pack .packIt__lbl > span:not(.packLine1){
    display: block !important;
    margin-top: 2px !important;
    font-size: 11px !important;
    line-height: 1.05 !important;
    font-weight: 500 !important;
    color: #9a9a9a !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    max-width: none !important;
  }

  .top2col__pack .stepperV,
  .top2col__right > .top2col__pack .stepperV{
    position: static !important;
    width: auto !important;
    height: 30px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 0px !important;
    padding: 0 !important;
    margin-top: 0 !important;
    flex: 0 0 auto !important;
  }

  .top2col__pack .stepperV__inp,
  .top2col__right > .top2col__pack .stepperV__inp{
    position: static !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;
    z-index: auto !important;
    width: 34px !important;
    height: 28px !important;
    padding: 0 4px !important;
    text-align: center !important;
    border: 1px solid #d9d9d9 !important;
    border-radius: 6px 0 0 6px !important;
    color: #111 !important;
    background: #fff !important;
    font-size: 13px !important;
  }

  .top2col__pack .stepperV__pm,
  .top2col__right > .top2col__pack .stepperV__pm{
    position: static !important;
    inset: auto !important;
    display: flex !important;
    flex-direction: column !important;
    border: 0 !important;
    border-radius: 0 6px 6px 0 !important;
    overflow: hidden !important;
    gap: 0 !important;
    pointer-events: auto !important;
    z-index: auto !important;
  }

  .top2col__pack .stepperV__btn,
  .top2col__right > .top2col__pack .stepperV__btn{
    position: static !important;
    width: 20px !important;
    height: 14px !important;
    line-height: 14px !important;
    border: 0 !important;
    background: transparent !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    color: #444 !important;
    border-radius: 0 !important;
    padding: 0 !important;
  }

  .top2col__pack .stepperV__btn + .stepperV__btn,
  .top2col__right > .top2col__pack .stepperV__btn + .stepperV__btn{
    border-top: 1px solid #e2e2e2 !important;
  }

  .top2col__pack .stepperV__unit,
  .top2col__right > .top2col__pack .stepperV__unit{
    display: inline !important;
    font-size: 11px !important;
    color: #6b7280 !important;
    padding-left: 2px !important;
    white-space: nowrap !important;
    text-transform: none !important;
  }
}

/* ===== MOBILE PACK HINT CUT FIX ===== */
@media (max-width: 520px){
  .top2col .top2col__pack .packIt,
  .top2col .top2col__pack .packIt__lbl,
  .top2col .top2col__pack .packIt__lbl .packLine1{
    overflow: visible !important;
  }

  .top2col .top2col__pack .packIt__lbl{
    line-height: 1.12 !important;
  }

  .top2col .top2col__pack .packIt__lbl .packLine1{
    line-height: 1.15 !important;
  }

  .top2col .top2col__pack .packIt__lbl > span:not(.packLine1){
    line-height: 1.15 !important;
  }

  .top2col .top2col__pack .packIt__lbl .qhelp{
    position: static !important;
    transform: none !important;
    margin-left: 4px !important;
    vertical-align: middle !important;
  }
}

/* ===== Service View switch (person in logist) ===== */
.serviceViewSwitch{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-left:8px;
}
.hdrSalesBadge{
  display:inline-flex;
  align-items:center;
  max-width:420px;
  height:24px;
  padding:0 10px;
  border-radius:999px;
  border:1px solid #e6d8b5;
  background:#fff8e8;
  color:#6b4c00;
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.serviceViewSwitch__icon{
  appearance:none;
  -webkit-appearance:none;
  width:24px;
  height:24px;
  border:1px solid #d8d8d8;
  border-radius:999px;
  background:#fff;
  color:#666;
  cursor:pointer;
  padding:0;
  line-height:22px;
  font-size:13px;
}
.serviceViewSwitch__text{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  background:transparent;
  color:#3d4b63;
  cursor:pointer;
  padding:0;
  font-size:19px;
  font-weight:700;
}

.mobhdr__serviceSwitch{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-width:0;
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  max-width:calc(100% - 132px);
  z-index:1;
}
.mobhdr__salesBadge{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  top:42px;
  max-width:calc(100% - 132px);
  height:18px;
  line-height:18px;
  padding:0 8px;
  border-radius:999px;
  border:1px solid #e6d8b5;
  background:#fff8e8;
  color:#6b4c00;
  font-size:10.5px;
  font-weight:700;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  z-index:1;
}
.mobhdr__serviceIcon{
  width:22px;
  height:22px;
  border:1px solid #d7d7d7;
  border-radius:999px;
  background:#fff;
  color:#666;
  font-size:12px;
  padding:0;
}
.mobhdr__serviceText{
  border:0;
  background:transparent;
  color:#3b4960;
  font-size:14px;
  font-weight:700;
  padding:0;
  white-space:nowrap;
  max-width:190px;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* desktop alignment for "Доставка & Переезды" stop cards */
@media (min-width:821px){
  body[data-desktop-layout="alt"] .top2col{
    padding:12px 14px;
  }

  /* Адресные подсказки не должны обрезаться внутри карточки точки */
  .stop.stop2 .stop2__col{
    overflow: visible !important;
  }

  /* Опции + Упаковка: компактнее и ровнее по вертикали/правому краю */
  body[data-desktop-layout="alt"] .top2col__right{
    column-gap: 8px;
  }
  body[data-desktop-layout="alt"] .top2col__right > .rightSection:not(.top2col__pack){
    padding-right: 6px;
  }
  body[data-desktop-layout="alt"] .top2col__right > .top2col__pack{
    padding-left: 6px;
  }
  body[data-desktop-layout="alt"] .top2col__right > .rightSection__title,
  body[data-desktop-layout="alt"] .top2col__right > .top2col__pack > .rightSection__title{
    white-space: nowrap;
  }
  body[data-desktop-layout="alt"] .top2col__right > .rightSection:not(.top2col__pack) .opt{
    align-items: center;
    min-height: 44px;
    height: 44px;
    column-gap: 8px;
  }
  body[data-desktop-layout="alt"] .top2col__right > .rightSection:not(.top2col__pack) .opt__name{
    justify-content: center;
    min-height: 0;
    padding-left: 4px;
  }
  body[data-desktop-layout="alt"] .top2col__right > .rightSection:not(.top2col__pack) .opt__name .optLine2{
    margin-top: 0;
  }
  body[data-desktop-layout="alt"] .top2col__right > .rightSection:not(.top2col__pack) .rightGrid2{
    grid-auto-rows: 44px;
    row-gap: 0;
  }

  body[data-desktop-layout="alt"] .top2col__right > .top2col__pack .packGrid4{
    grid-template-columns: 1fr !important;
  }
  body[data-desktop-layout="alt"] .top2col__right > .top2col__pack .packIt{
    grid-template-columns: minmax(0, 0.8fr) 104px !important;
    column-gap: 8px !important;
  }
  body[data-desktop-layout="alt"] .top2col__right > .top2col__pack .stepperV{
    justify-self: end;
    width: 104px;
    display: grid !important;
    grid-template-columns: 34px 20px 1fr;
    align-items: center;
    justify-items: end;
    column-gap: 0;
  }
  body[data-desktop-layout="alt"] .top2col__right > .top2col__pack .stepperV__inp{
    width: 34px !important;
  }
  body[data-desktop-layout="alt"] .top2col__right > .top2col__pack .stepperV__unit{
    min-width: 22px;
    text-align: right;
    padding-left: 0 !important;
  }
  body[data-desktop-layout="alt"] .top2col__right > .top2col__pack .packIt__lbl{
    min-height: 0;
    padding-left: 8px;
  }

  body[data-mode="logist"][data-service-view="moves"] .stop2--movesView .stop2__grid--logist{
    grid-template-columns:minmax(0,50%) minmax(0,25%) minmax(0,25%) 0;
    column-gap:14px;
    align-items:start;
  }
  body[data-mode="logist"][data-service-view="moves"] .stop2--movesView .stop2__col{
    min-width:0;
    overflow:visible;
  }
  body[data-mode="logist"][data-service-view="moves"] .stop2--movesView .stopRow1{
    margin-bottom:8px;
  }
  body[data-mode="logist"][data-service-view="moves"] .stop2--movesView .stopChkCol{
    margin-top:4px;
  }
  body[data-mode="logist"][data-service-view="moves"] .stop2--movesView .stopTa{
    min-height:36px;
    height:36px;
    padding-top:7px;
    padding-bottom:7px;
    line-height:1.2;
    border:1px solid #e2e2e2;
    background:#f4f4f4;
    color:#2b2b2b;
    margin:0;
  }
  body[data-mode="logist"][data-service-view="moves"] .stop2--movesView .stop2__col:nth-child(3) .stopRow1{
    gap:2px;
    margin:0;
  }
  body[data-mode="logist"][data-service-view="moves"] .stop2--movesView .stopTa::placeholder{
    color:#8f8f8f;
    opacity:1;
  }
  /* Contact a bit narrower in desktop "Доставка & Переезды" cards */
  body[data-mode="logist"][data-service-view="moves"] .stop2--movesView .stop2__col:nth-child(2) .stopW30{
    flex:0 0 34%;
  }
  body[data-mode="logist"][data-service-view="moves"] .stop2--movesView .stop2__col:nth-child(2) .stopW70{
    flex:0 0 60%;
  }
}

@media (max-width:520px){
  .mobhdr__serviceSwitch{
    max-width:calc(100% - 116px);
    gap:4px;
  }
  .mobhdr__salesBadge{
    max-width:calc(100% - 116px);
    top:40px;
    font-size:10px;
  }
  .mobhdr__serviceIcon{
    width:20px;
    height:20px;
    font-size:11px;
  }
  .mobhdr__serviceText{
    font-size:12px;
    max-width:140px;
  }
}

.suggest .addrBadge{
  position:absolute;
  left:8px;
  top:50%;
  transform:translateY(-50%);
  z-index:2;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:18px;
  width:22px;
  min-width:22px;
  padding:0;
  border-radius:999px;
  background:#f6f6f6;
  border:1px solid #dddddd;
  color:#5f6b7e;
  font-size:12px;
  font-weight:600;
  pointer-events:none;
  line-height:1;
}
.suggest .addrBadge svg{
  width:13px;
  height:13px;
  display:block;
  stroke:currentColor;
  fill:none;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.inp--withBadge{
  padding-left:40px !important;
}
.inp--addrClear{
  padding-right:34px !important;
}
.suggest .addrClearBtn{
  position:absolute;
  right:8px;
  top:50%;
  transform:translateY(-50%);
  width:18px;
  height:18px;
  border:0;
  border-radius:50%;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#ececec;
  color:#6f6f6f;
  font-size:12px;
  line-height:1;
  cursor:pointer;
  z-index:2;
}
.suggest .addrClearBtn:active{
  transform:translateY(-50%) scale(0.96);
}
.suggest .addrClearBtn:hover{
  background:#e3e3e3;
}

.stop2__fixPromo{
  margin-bottom:8px;
}
.stop2__movesActionRow{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:start;
  gap:8px;
  margin:0;
  min-height:0;
}
.stop2__fullRow--movesDesktop{
  grid-column:1 / 4;
  min-width:0;
}
.stopRow1--movesDesktopServices{
  display:grid;
  grid-template-columns:minmax(0, 36%) minmax(0, 64%);
  column-gap:10px;
  align-items:center;
  margin-bottom:8px;
}
.stopRow1--movesDesktopServicesOnly{
  grid-template-columns:minmax(0, 36%) minmax(0, 64%);
}
.stopRow1--movesDesktopServicesOnly .stopRow1__fixCell{
  display:none;
}
.stopRow1--movesDesktopServices .stopRow1__servicesCell > .stopRow1{
  margin:0;
}
.stopRow1--movesDesktopServices .stopRow1__servicesCell{
  min-width:0;
  padding-right:0;
}
.stopRow1--movesDesktopServices .stopRow1__servicesCell .pillSeg{
  justify-content:flex-start;
  gap:4px;
  flex-wrap:nowrap;
}
.stopRow1--movesDesktopServices .stopRow1__servicesCell .pillSeg__btn{
  padding:0 8px;
  font-size:11px;
}
.stopRow1--movesDesktopServices .stopRow1__fixCell .stop2__movesActionRow{
  margin:0;
  min-height:0;
  width:100%;
}
.stopRow1--movesDesktopServices .stopRow1__fixCell .stop2__fixPromo--movesDesktop{
  width:100%;
}
.stop2__movesActionRowWide{
  grid-column:2 / 4;
}
.stop2__movesActionRow--withLifts{
  grid-template-columns:164px minmax(280px,1fr);
  align-items:start;
}
.stop2__liftsBox{
  display:flex;
  flex-direction:column;
  gap:4px;
  border:1px solid #e2e2e2;
  border-radius:10px;
  background:#fafafa;
  padding:6px 8px;
  min-width:144px;
  max-width:144px;
}
.stop2__liftsBox .chk2{
  margin:0;
}
.stop2__fixPromo--movesDesktop{
  margin:0;
  width:100%;
  max-width:none;
  min-width:0;
}
.stop2__fixPromo--movesDesktop .liftfix--promo{
  min-height:54px;
}
.stop2__movesActionRow--withLifts .stop2__fixPromo--movesDesktop{
  margin-left:0;
}
.liftfix--promo{
  width:100% !important;
  max-width:none !important;
  border-color:#d9d9d9 !important;
  background:#fff !important;
}
.stop2__fixCell{
  min-width:0;
}
.liftfix--promo .liftfix__icon{
  flex:0 0 auto;
  align-self:center;
}
.liftfix--promo .liftfix__main{
  color:#222;
  font-weight:700;
  line-height:1.2;
  white-space:normal;
}
.stop2__fixPromoSub{
  margin-top:6px;
  font-size:11px;
  line-height:1.2;
  color:#9a9a9a;
  width:100%;
  max-width:none;
}
body[data-mode="logist"][data-service-view="moves"] .stop2--movesView .stop2__fullRow--movesDesktop .stop2__fixPromoSub{
  width:100%;
  max-width:none;
}

body[data-mode="logist"][data-service-view="moves"] #docsOpt{
  display:none !important;
}
body[data-mode="logist"][data-service-view="moves"] #payOpenSettings,
body[data-mode="logist"][data-service-view="moves"] #payMethodHint{
  display:none !important;
}

.chk2--toggle{
  display:flex;
  align-items:center;
  gap:8px;
}
.chk2--toggle input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  width:34px;
  height:20px;
  border-radius:999px;
  background:#d2d2d2;
  border:1px solid #cbcbcb;
  position:relative;
  margin:0;
  flex:0 0 auto;
}
.chk2--toggle input[type="checkbox"]::after{
  content:"";
  position:absolute;
  top:1px;
  left:1px;
  width:16px;
  height:16px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 2px rgba(0,0,0,.2);
  transition:left .18s ease;
}
.chk2--toggle input[type="checkbox"]:checked{
  background:#5fb85f;
  border-color:#57aa57;
}
.chk2--toggle input[type="checkbox"]:checked::after{
  left:15px;
}

body[data-mode="logist"][data-service-view="moves"] .stop2--movesView .liftfix--promo{
  width:100% !important;
  min-height:36px;
}
body[data-mode="logist"][data-service-view="moves"] .stop2--movesView .stop2__fixPromoSub{
  max-width:none;
}
body[data-mode="logist"][data-service-view="moves"] .stop2--movesDesktopWhen{
  border-style:solid !important;
}

.orderBtn.orderBtn--disabled,
.orderBtn:disabled{
  background:#ffffff !important;
  color:#b4b4b4 !important;
  border:1px solid #e0e0e0 !important;
  cursor:not-allowed !important;
  box-shadow:none !important;
}

@media (max-width:820px), (pointer:coarse){
  .rightSection__title--packToggle{
    display:flex;
    align-items:center;
    justify-content:space-between;
    cursor:pointer;
  }
  .rightSection__title--packToggle::after{
    content:"▾";
    font-size:15px;
    color:#666;
    transition:transform .2s ease;
    margin-left:8px;
  }
  .top2col__pack.is-collapsed .rightSection__title--packToggle::after{
    transform:rotate(-90deg);
  }
  .top2col__pack.is-collapsed .packGrid4{
    display:none !important;
  }

  body[data-mode="logist"][data-service-view="moves"] .stop2--movesMobile .stop2__col--right{
    display:none !important;
  }
  body[data-mode="logist"][data-service-view="moves"] .stop2--movesMobile .stop2__grid--logist{
    gap:10px !important;
  }
  body[data-mode="logist"][data-service-view="moves"] .stop2--movesMobile .stop2__hdr .stop2__del{
    width:24px;
    height:24px;
    color:#c21828;
  }
  body[data-mode="logist"][data-service-view="moves"] .stop2--movesMobile .stop2__fixRow{
    display:block !important;
  }
  body[data-mode="logist"][data-service-view="moves"] .stop2--movesMobile .chk2{
    display:flex;
    align-items:center;
    gap:8px;
  }
  body[data-mode="logist"][data-service-view="moves"] .stop2--movesMobile .chk2 input[type="checkbox"]{
    appearance:none;
    -webkit-appearance:none;
    width:34px;
    height:20px;
    border-radius:999px;
    background:#d2d2d2;
    border:1px solid #cbcbcb;
    position:relative;
    margin:0;
    flex:0 0 auto;
  }
  body[data-mode="logist"][data-service-view="moves"] .stop2--movesMobile .chk2 input[type="checkbox"]::after{
    content:"";
    position:absolute;
    top:1px;
    left:1px;
    width:16px;
    height:16px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 1px 2px rgba(0,0,0,.2);
    transition:left .18s ease;
  }
  body[data-mode="logist"][data-service-view="moves"] .stop2--movesMobile .chk2 input[type="checkbox"]:checked{
    background:#5fb85f;
    border-color:#57aa57;
  }
  body[data-mode="logist"][data-service-view="moves"] .stop2--movesMobile .chk2 input[type="checkbox"]:checked::after{
    left:15px;
  }
  body[data-mode="logist"][data-service-view="moves"] .stop2--whenCard{
    border-style:dashed !important;
  }

  /* Mobile body image zoom modal: less empty white area, controls above thumb zone */
  .imgZoom{
    align-items:flex-start;
    padding-top:max(8px, calc(env(safe-area-inset-top) + 6px));
    padding-bottom:max(12px, calc(env(safe-area-inset-bottom) + 56px));
    padding-left:max(10px, calc(env(safe-area-inset-left) + 10px));
    padding-right:max(10px, calc(env(safe-area-inset-right) + 10px));
  }
  .imgZoom__sheet{
    width:min(560px, calc(100vw - max(20px, calc(env(safe-area-inset-left) + env(safe-area-inset-right) + 20px))));
    max-width:calc(100vw - max(20px, calc(env(safe-area-inset-left) + env(safe-area-inset-right) + 20px)));
    margin:0 auto;
    overflow:hidden;
  }
  .imgZoom__frame{
    height:auto;
    min-height:0;
    max-height:none;
    padding:10px 10px 6px;
    display:block;
  }
  .imgZoom__img{
    display:block;
    width:100%;
    height:auto;
    max-height:min(58dvh, 58svh);
    object-fit:contain;
    margin:0 auto;
  }
  .imgZoom__bar{
    margin-top:8px;
    margin-bottom:max(6px, calc(env(safe-area-inset-bottom) + 8px));
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }
  #bodyImgZoom .imgZoom__bar{
    grid-template-columns:30px minmax(0,1fr) 30px;
    grid-template-areas:
      "prev meta next"
      "pick pick pick";
    align-items:center;
  }
  #bodyImgZoomPrev{ grid-area:prev; }
  #bodyImgZoomNext{ grid-area:next; }
  #bodyImgZoom .imgZoom__meta{
    grid-area:meta;
    min-width:0;
  }
  #bodyImgZoomPick{
    grid-area:pick;
    width:100%;
    min-width:0;
  }
  #liftmImgZoom .imgZoom__bar{
    grid-template-columns:minmax(0,1fr);
  }
  #liftmImgZoom .imgZoom__meta{
    min-width:0;
  }
}
