/* ============================================================
   APPROVED HERO CALCULATOR 2026-09-30
   Compact right-column appearance from the accepted page mockup.
   ============================================================ */
.approved-layout-v2 .calculator-section{
    position:relative;
    z-index:3;
    width:100%;
    min-width:0;
    margin:0;
    background:#fbfaf7;
    container-type:normal;
}
.approved-layout-v2 .calculator-panel{
    display:flex;
    flex-direction:column;
    width:100%;
    min-height:100%;
    height:100%;
    gap:0;
    padding:27px 28px 25px;
    overflow:visible;
    border:0;
    border-radius:0;
    background:
      radial-gradient(460px 300px at 110% -10%,rgba(255,111,15,.04),transparent 70%),
      #fbfaf7;
    box-shadow:none;
}
.approved-layout-v2 .calculator-main{min-width:0;padding:0}
.approved-layout-v2 .calculator-eyebrow{
    margin:0 0 4px;
    color:#ff5600;
    font-size:12px;
    font-weight:900;
    letter-spacing:.02em;
    text-transform:uppercase;
}
.approved-layout-v2 .calculator-main h2{
    margin:0 0 11px;
    color:#111414;
    font-size:45px;
    font-weight:950;
    line-height:.95;
    letter-spacing:-.065em;
}
.approved-layout-v2 .calculator-choices{
    display:flex;
    flex-wrap:nowrap;
    align-items:stretch;
    width:100%;
    gap:0;
    margin:0 0 14px;
    overflow-x:auto;
    border-bottom:1px solid #d4d2cd;
    scrollbar-width:none;
}
.approved-layout-v2 .calculator-choices::-webkit-scrollbar{display:none}
.approved-layout-v2 .calculator-choices .segmented{
    display:contents;
    width:auto;
    margin:0;
    padding:0;
    border:0;
}
.approved-layout-v2 .calculator-choices .segmented+ .segmented{margin:0;padding:0;border:0}
.approved-layout-v2 .calculator-choices legend{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important}
.approved-layout-v2 .calculator-choices label{flex:0 0 auto;margin:0}
.approved-layout-v2 .calculator-choices .private-client-tab{display:none}
.approved-layout-v2 .calculator-choices .segmented span{
    display:flex;
    min-height:39px;
    padding:8px 12px 9px;
    border:0;
    border-bottom:3px solid transparent;
    border-radius:0;
    background:transparent;
    color:#656566;
    font-size:12px;
    font-weight:650;
    box-shadow:none;
}
.approved-layout-v2 .calculator-choices .choice-icon{display:none}
.approved-layout-v2 .calculator-choices .segmented input:checked+span{
    border-color:#ff5a00;
    background:transparent;
    color:#151717;
    box-shadow:none;
}
.approved-layout-v2 .calculator-choices:has(input[name="client-type"][value="organization"]:checked) .service-tabs input:checked+span{
    border-color:transparent;
    color:#656566;
}
.approved-layout-v2 #calculator-form{display:block}
.approved-layout-v2 #transport-fields{padding:0;border:0;background:transparent}
.approved-layout-v2 .route-grid{
    position:relative;
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
}
.approved-layout-v2 .route-grid::before{
    content:"";
    position:absolute;
    z-index:5;
    top:36px;
    bottom:29px;
    left:7px;
    height:auto;
    translate:0;
    border:0;
    border-left:2px solid #ff5a00;
}
.approved-layout-v2 .route-grid::after{display:none}
.approved-layout-v2 .loader-route-grid::before{display:none}
.approved-layout-v2 .field{gap:4px;color:#4f5151;font-size:12px;font-weight:500}
.approved-layout-v2 .field>span:first-child,
.approved-layout-v2 .field-label{color:#4f5151;font-size:12px;font-weight:500}
.approved-layout-v2 .field input,
.approved-layout-v2 .field select,
.approved-layout-v2 .field textarea{
    height:45px;
    min-height:45px;
    padding:0 12px;
    border:1px solid #d4d2cd;
    border-radius:6px;
    background:#fff;
    color:#171919;
    font-size:13px;
    font-weight:500;
    box-shadow:none;
}
.approved-layout-v2 .input-with-marker{display:block;border:0;background:transparent;overflow:visible}
.approved-layout-v2 .input-with-marker input{height:45px;min-height:45px;padding:0 42px 0 31px}
.approved-layout-v2 .route-marker{
    z-index:6;
    top:50%;
    left:1px;
    width:14px;
    height:14px;
    translate:0 -50%;
    border:2px solid #ff5a00;
    background:#ff5a00;
    color:transparent;
    font-size:0;
    box-shadow:none;
}
.approved-layout-v2 .route-marker-b{background:#fbfaf7}
.approved-layout-v2 .address-map-button{
    right:4px;
    width:36px;
    height:36px;
    border:0;
    border-radius:5px;
    background:transparent;
    color:#4b5050;
}
.approved-layout-v2 .address-pin-icon{width:20px;height:20px;stroke-width:1.8}
.approved-layout-v2 .add-stop-button,
.approved-layout-v2 .add-loader-address{
    display:inline-flex;
    width:auto;
    margin:4px 0 10px 19px;
    padding:0;
    color:#333535;
    font-size:11px;
    font-weight:650;
    text-decoration:underline;
    text-underline-offset:3px;
}
.approved-layout-v2 .add-stop-button::before{content:"+";display:inline;width:auto;height:auto;background:none;color:#171919;font-size:15px}
.approved-layout-v2 .add-stop-button::after,
.approved-layout-v2 .add-loader-address::before,
.approved-layout-v2 .add-loader-address::after{display:none}
.approved-layout-v2 .stops{gap:6px;margin:0 0 7px}
.approved-layout-v2 .stop-row{align-items:end;gap:5px}
.approved-layout-v2 .stop-actions button{min-width:30px;min-height:38px}
.approved-layout-v2 .calculator-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    align-items:end;
    margin:0;
}
.approved-layout-v2 .schedule-control{
    display:grid;
    grid-template-columns:1fr;
    gap:5px;
    align-items:end;
}
.approved-layout-v2 #asap-button,
.approved-layout-v2 #loader-asap-button{
    display:block;
    width:100%;
    height:34px;
    margin:0;
    padding:0 8px;
    border:1px solid #171919;
    border-radius:6px;
    background:#fff;
    color:#171919;
    font-size:11px;
    font-weight:700;
}
.approved-layout-v2 #asap-button.is-active,
.approved-layout-v2 #loader-asap-button.is-active{border-color:#ff5a00;background:#ff5a00;color:#fff}
.approved-layout-v2 .parameter-control{gap:4px}
.approved-layout-v2 .parameter-summary{
    height:45px;
    min-height:45px;
    padding:0 34px 0 12px;
    border:1px solid #d4d2cd;
    border-radius:6px;
    background:#fff;
    box-shadow:none;
}
.approved-layout-v2 .parameter-summary span{font-size:12px;font-weight:600}
.approved-layout-v2 .parameter-summary::after{right:13px;width:7px;height:7px;border-width:1.5px}
.approved-layout-v2 #parameter-action{display:none}
.approved-layout-v2 .calculator-note{display:block;margin:7px 0 0;color:#858787;font-size:10px}
.approved-layout-v2 .loader-options{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    align-items:end;
}
.approved-layout-v2 .loader-options .schedule-control{grid-column:1/-1;grid-template-columns:1fr 145px}
.approved-layout-v2 .conditions-button{margin:6px 0 0 auto;font-size:11px;text-decoration:underline}

.approved-layout-v2 .calculator-result{
    position:relative;
    display:grid;
    grid-template-columns:1fr auto;
    grid-template-areas:
      "kicker kicker"
      "price action"
      "formula action"
      "map map";
    gap:0 13px;
    align-items:center;
    min-height:0;
    margin:11px 0 0;
    padding:11px 0 0;
    overflow:visible;
    border:0;
    border-top:1px solid #d4d2cd;
    border-radius:0;
    background:transparent;
    color:#151717;
    box-shadow:none;
}
.approved-layout-v2 .calculator-result::before,
.approved-layout-v2 .calculator-result::after{display:none}
.approved-layout-v2 .calculator-result .result-kicker{
    grid-area:kicker;
    display:block;
    margin:0 0 1px;
    color:#4f5151;
    font-size:11px;
    font-weight:500;
}
.approved-layout-v2 .calculator-result .result-kicker::before{display:none}
.approved-layout-v2 .calculator-result .result-heading{display:none}
.approved-layout-v2 .calculator-result .result-price{
    grid-area:price;
    min-height:0;
    margin:0;
    color:#111313;
    font-size:31px;
    font-weight:950;
    line-height:1;
    letter-spacing:-.055em;
}
.approved-layout-v2 .calculator-result .result-formula{
    grid-area:formula;
    align-self:start;
    margin:3px 0 0;
    color:#666868;
    font-size:10px;
    font-weight:500;
    line-height:1.25;
}
.approved-layout-v2 .calculator-result .result-divider,
.approved-layout-v2 .calculator-result .result-lines,
.approved-layout-v2 .calculator-result .result-warning{display:none}
.approved-layout-v2 .calculator-result .result-map-button{
    grid-area:map;
    width:auto;
    margin:6px 0 0;
    padding:0;
    color:#ff5500;
    font-size:10px;
}
.approved-layout-v2 .calculator-result #calculator-action{
    grid-area:action;
    align-self:center;
    width:185px;
    min-height:52px;
    margin:0;
    padding:0 15px;
    border-radius:6px;
    background:#ff5a00;
    color:#fff;
    font-size:12px;
    font-weight:800;
    box-shadow:none;
}
.approved-layout-v2 .calculator-result #calculator-action span{margin-left:10px;font-size:20px}
.approved-layout-v2 .calculator-result #calculator-action:hover{background:#e94f00;transform:none}

@media(max-width:1180px) and (min-width:901px){
    .approved-layout-v2 .calculator-panel{padding:24px 22px 22px}
    .approved-layout-v2 .calculator-main h2{font-size:41px}
    .approved-layout-v2 .calculator-choices .segmented span{padding-inline:9px;font-size:11px}
    .approved-layout-v2 .calculator-result{grid-template-columns:1fr}
    .approved-layout-v2 .calculator-result #calculator-action{width:160px}
}
@media(max-width:900px){
    .approved-layout-v2 .calculator-section{margin:14px 0 0;border:1px solid #dedcd7;border-radius:12px;overflow:hidden}
    .approved-layout-v2 .calculator-panel{height:auto;min-height:0;padding:28px}
    .approved-layout-v2 .calculator-main h2{font-size:48px}
    .approved-layout-v2 .calculator-choices .segmented span{font-size:13px;padding-inline:16px}
    .approved-layout-v2 .route-grid{grid-template-columns:1fr 1fr;gap:12px}
    .approved-layout-v2 .route-grid::before{top:36px;bottom:auto;left:calc(50% - 1px);height:40px;border-left:2px dashed #ff5a00}
    .approved-layout-v2 .loader-route-grid::before{display:none}
    .approved-layout-v2 .calculator-row{grid-template-columns:1fr 1fr}
    .approved-layout-v2 .calculator-result{margin-top:16px;padding-top:16px}
}
@media(max-width:620px){
    .approved-layout-v2 .calculator-panel{padding:23px 16px 20px}
    .approved-layout-v2 .calculator-main h2{font-size:42px}
    .approved-layout-v2 .calculator-choices{margin-bottom:16px}
    .approved-layout-v2 .calculator-choices .segmented span{padding-inline:9px;font-size:11px}
    .approved-layout-v2 .route-grid,.approved-layout-v2 .calculator-row,.approved-layout-v2 .loader-options{grid-template-columns:1fr}
    .approved-layout-v2 .route-grid::before{top:36px;bottom:29px;left:7px;height:auto;border-left-style:solid}
    .approved-layout-v2 .loader-route-grid::before{display:none}
    .approved-layout-v2 .loader-options .schedule-control{grid-column:auto;grid-template-columns:1fr}
    .approved-layout-v2 .calculator-result{grid-template-columns:1fr;grid-template-areas:"kicker" "price" "formula" "map" "action"}
    .approved-layout-v2 .calculator-result #calculator-action{width:100%;margin-top:13px}
}


/* APPROVED_DESIGN_RESPONSIVE_2026_10_04
   Адаптация калькулятора внутри утверждённого дизайна.
*/

@media (min-width: 981px) {
    .approved-layout-v2 .calculator-panel,
    .approved-layout-v2 .calculator-card,
    .approved-layout-v2 .calculator-shell {
        width: 100%;
        max-width: none;
        min-width: 0;
    }
}

@media (max-width: 980px) {
    .approved-layout-v2 .calculator-panel,
    .approved-layout-v2 .calculator-card,
    .approved-layout-v2 .calculator-shell,
    .approved-layout-v2 .calculator-section {
        width: 100%;
        max-width: none;
        min-width: 0;
        height: auto;
    }

    .approved-layout-v2 .route-grid,
    .approved-layout-v2 .calculator-grid,
    .approved-layout-v2 .calc-row {
        min-width: 0;
    }
}

@media (min-width: 621px) and (max-width: 980px) {
    .approved-layout-v2 .calculator-panel,
    .approved-layout-v2 .calculator-card {
        padding-inline: clamp(22px, 4vw, 34px);
    }
}

@media (max-width: 620px) {
    .approved-layout-v2 .calculator-panel,
    .approved-layout-v2 .calculator-card,
    .approved-layout-v2 .calculator-shell {
        border-radius: 14px;
    }

    .approved-layout-v2 input,
    .approved-layout-v2 select,
    .approved-layout-v2 button {
        max-width: 100%;
    }
}

/* APPROVED_REFERENCE_CALCULATOR_2026_10_04
   Внешний вид калькулятора по утверждённому образцу.
*/

.approved-layout-v2 .calculator-panel {
    padding: 26px 28px 24px;
}

.approved-layout-v2 .calculator-main h2 {
    margin-bottom: 12px;
    font-size: clamp(38px, 3.1vw, 48px);
    line-height: .95;
}

.approved-layout-v2 .calculator-choices {
    margin-bottom: 14px;
}

.approved-layout-v2 .reference-parameters {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 12px 14px;
    margin-top: 14px;
}

.approved-layout-v2 .reference-field {
    display: grid;
    gap: 5px;
    min-width: 0;
    color: #505252;
    font-size: 12px;
    font-weight: 500;
}

.approved-layout-v2 .reference-field input,
.approved-layout-v2 .reference-field select {
    width: 100%;
    min-width: 0;
    height: 46px;
    padding: 0 12px;
    border: 1px solid #d4d2cd;
    border-radius: 6px;
    outline: 0;
    background: #fff;
    color: #171919;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
}

.approved-layout-v2 .reference-field input:focus,
.approved-layout-v2 .reference-field select:focus {
    border-color: #ff5a00;
    box-shadow: 0 0 0 2px rgba(255,90,0,.12);
}

.approved-layout-v2 .reference-asap {
    align-self: end;
    width: 100%;
    min-height: 46px;
    padding: 0 12px;
    border: 1px solid #171919;
    border-radius: 6px;
    background: #fff;
    color: #171919;
    font-size: 12px;
    font-weight: 750;
}

.approved-layout-v2 .reference-asap.is-active {
    border-color: #ff5a00;
    background: #ff5a00;
    color: #fff;
}

.approved-layout-v2 .reference-floor {
    grid-column: 1 / -1;
}

.approved-layout-v2 .reference-floor select {
    font-weight: 600;
}

.approved-layout-v2 .calculator-result {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas:
        "kicker"
        "price"
        "formula"
        "map"
        "action";
    margin-top: 16px;
    padding-top: 14px;
}

.approved-layout-v2 .calculator-result .result-kicker {
    margin-bottom: 3px;
}

.approved-layout-v2 .calculator-result .result-price {
    font-size: clamp(27px, 2.4vw, 35px);
    line-height: 1;
}

.approved-layout-v2 .calculator-result #calculator-action {
    width: 100%;
    min-height: 54px;
    margin-top: 12px;
    justify-content: center;
    font-size: 14px;
}

.approved-layout-v2 .legacy-calculator-controls[hidden] {
    display: none !important;
}

@media (max-width: 1180px) and (min-width: 981px) {
    .approved-layout-v2 .calculator-panel {
        padding-inline: 22px;
    }

    .approved-layout-v2 .reference-parameters {
        gap: 10px;
    }
}

@media (max-width: 620px) {
    .approved-layout-v2 .reference-parameters {
        grid-template-columns: 1fr;
    }

    .approved-layout-v2 .reference-floor {
        grid-column: auto;
    }

    .approved-layout-v2 .calculator-main h2 {
        font-size: 42px;
    }
}

/* CALCULATOR_ROUTE_BUSINESS_FIX_2026_10_04
   Точная линия между центрами маркеров А и Б.
*/
.approved-layout-v2 .route-grid {
    grid-template-columns: 1fr !important;
}

.approved-layout-v2 .route-grid::before {
    z-index: 4 !important;
    top: 41px !important;
    bottom: 24px !important;
    left: 8px !important;
    width: 2px !important;
    height: auto !important;
    border: 0 !important;
    background: #ff5a00 !important;
    translate: 0 !important;
    pointer-events: none !important;
}

.approved-layout-v2 .route-marker {
    z-index: 6 !important;
    left: 1px !important;
    box-sizing: border-box !important;
}

.approved-layout-v2 .route-marker-b {
    background: #ffffff !important;
}

.approved-layout-v2 .loader-route-grid::before {
    display: none !important;
}

@media (max-width: 980px) {
    .approved-layout-v2 .route-grid {
        grid-template-columns: 1fr !important;
    }

    .approved-layout-v2 .route-grid::before {
        top: 41px !important;
        bottom: 24px !important;
        left: 8px !important;
        height: auto !important;
        border: 0 !important;
        background: #ff5a00 !important;
    }
}

/* ADDITIONAL_STOPS_MENU_AND_EXACT_ROUTE_LINE_2026_10_04 */
.approved-layout-v2 #transport-fields .route-grid:not(.loader-route-grid){
  position:relative;
  grid-template-columns:1fr !important;
  gap:7px !important;
}

.approved-layout-v2 #transport-fields .route-grid:not(.loader-route-grid)::before{
  content:none !important;
  display:none !important;
}

.approved-layout-v2 .route-connector-live{
  position:absolute;
  z-index:4;
  display:block;
  height:2px;
  border:0;
  background:#ff5a00;
  transform-origin:0 50%;
  pointer-events:none;
}

.approved-layout-v2 .route-marker{
  z-index:6 !important;
}

.approved-layout-v2 .add-stop-button{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:25px;
  margin:4px 0 10px 19px;
}

.approved-layout-v2 .add-stop-button.has-stops{
  color:#ff5a00;
  font-weight:800;
}

/* GRUZOVEDOV_STOPS_TRIGGER_ROUTE_ICON_V1: общий значок маршрута; без остановок серый, с остановками оранжевый. */
.approved-layout-v2 .add-stop-button::before {
  content: "";
  display: inline-block;
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  color: inherit;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4.8%203h5.7Q13%203%2013%206.2M11.2%208H5.5Q3%208%203%2011.2%22%2F%3E%3Ccircle%20cx%3D%223%22%20cy%3D%223%22%20r%3D%221.8%22%2F%3E%3Ccircle%20cx%3D%2213%22%20cy%3D%228%22%20r%3D%221.8%22%2F%3E%3Ccircle%20cx%3D%223%22%20cy%3D%2213%22%20r%3D%221.8%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4.8%203h5.7Q13%203%2013%206.2M11.2%208H5.5Q3%208%203%2011.2%22%2F%3E%3Ccircle%20cx%3D%223%22%20cy%3D%223%22%20r%3D%221.8%22%2F%3E%3Ccircle%20cx%3D%2213%22%20cy%3D%228%22%20r%3D%221.8%22%2F%3E%3Ccircle%20cx%3D%223%22%20cy%3D%2213%22%20r%3D%221.8%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat;
}

body.additional-stops-open{
  overflow:hidden;
}

.approved-layout-v2 .additional-stops-modal[hidden]{
  display:none !important;
}

.approved-layout-v2 .additional-stops-modal{
  position:fixed;
  z-index:3100;
  inset:0;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(15,18,18,.66);
  backdrop-filter:blur(4px);
}

.approved-layout-v2 .additional-stops-dialog{
  position:relative;
  width:min(620px,100%);
  max-height:min(760px,calc(100vh - 40px));
  overflow:hidden;
  padding:27px;
  border-radius:16px;
  background:#fbfaf7;
  box-shadow:0 28px 90px rgba(0,0,0,.3);
}

.approved-layout-v2 .additional-stops-close{
  position:absolute;
  top:16px;
  right:16px;
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  padding:0;
  border:1px solid #d4d2cd;
  border-radius:50%;
  background:#fff;
  color:#171919;
  font-size:25px;
  line-height:1;
  cursor:pointer;
}

.approved-layout-v2 .additional-stops-heading{
  padding-right:46px;
}

.approved-layout-v2 .additional-stops-heading p{
  margin:0 0 5px;
  color:#ff5a00;
  font-size:11px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.approved-layout-v2 .additional-stops-heading h3{
  margin:0;
  color:#111414;
  font-size:30px;
  line-height:1.05;
  letter-spacing:-.04em;
}

.approved-layout-v2 .additional-stops-heading span{
  display:block;
  margin-top:8px;
  color:#676a69;
  font-size:13px;
  line-height:1.4;
}

.approved-layout-v2 .additional-stops-list{
  max-height:min(440px,50vh);
  margin-top:20px;
  overflow:auto;
  padding:2px 8px 2px 2px;
}

.approved-layout-v2 .additional-stops-list .stops{
  display:grid;
  gap:10px;
  margin:0;
}

.approved-layout-v2 .additional-stops-list .stop-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:7px;
}

.approved-layout-v2 .additional-stops-list .stop-actions{
  display:flex;
  gap:4px;
}

.approved-layout-v2 .additional-stops-list .stop-actions button{
  width:38px;
  min-width:38px;
  height:45px;
  min-height:45px;
  border:1px solid #d4d2cd;
  border-radius:6px;
  background:#fff;
  color:#171919;
  font-size:17px;
}

.approved-layout-v2 .additional-stops-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid #dfddd8;
}

.approved-layout-v2 .additional-stops-add,
.approved-layout-v2 .additional-stops-done{
  min-height:44px;
  padding:0 18px;
  border-radius:7px;
  font-size:13px;
  font-weight:850;
  cursor:pointer;
}

.approved-layout-v2 .additional-stops-add{
  border:1px solid #bbb9b4;
  background:#fff;
  color:#171919;
}

.approved-layout-v2 .additional-stops-done{
  min-width:125px;
  border:1px solid #ff5a00;
  background:#ff5a00;
  color:#fff;
}

.approved-layout-v2 .additional-stops-modal .address-suggestions{
  z-index:3300;
}

@media(max-width:620px){
  .approved-layout-v2 .additional-stops-modal{
    padding:10px;
  }

  .approved-layout-v2 .additional-stops-dialog{
    max-height:calc(100vh - 20px);
    padding:21px 14px 16px;
    border-radius:12px;
  }

  .approved-layout-v2 .additional-stops-heading h3{
    font-size:25px;
  }

  .approved-layout-v2 .additional-stops-list{
    max-height:54vh;
    padding-right:2px;
  }

  .approved-layout-v2 .additional-stops-list .stop-row{
    grid-template-columns:1fr;
  }

  .approved-layout-v2 .additional-stops-list .stop-actions{
    justify-content:flex-end;
  }

  .approved-layout-v2 .additional-stops-list .stop-actions button{
    height:38px;
    min-height:38px;
  }

  .approved-layout-v2 .additional-stops-footer{
    align-items:stretch;
    flex-direction:column;
  }

  .approved-layout-v2 .additional-stops-add,
  .approved-layout-v2 .additional-stops-done{
    width:100%;
  }
}

/* ROUTE_LABEL_AND_STOPS_MENU_DESIGN_FIX_2026_10_04 */

/*
 * Геометрия соединительной линии уже соответствует центрам А и Б.
 * Подписи смещаются вправо, чтобы текст не пересекал линию.
 */
.approved-layout-v2
#transport-fields
.route-grid:not(.loader-route-grid)
> .field
> span:first-child{
  display:block;
  box-sizing:border-box;
  padding-left:25px;
}

/* Окно дополнительных остановок */
.approved-layout-v2 .additional-stops-dialog{
  width:min(700px,100%);
  padding:30px;
  border:1px solid rgba(23,25,25,.08);
  border-radius:18px;
}

.approved-layout-v2 .additional-stops-heading{
  padding-right:55px;
}

.approved-layout-v2 .additional-stops-heading h3{
  font-size:32px;
  line-height:1.05;
}

.approved-layout-v2 .additional-stops-heading span{
  max-width:540px;
  margin-top:10px;
  font-size:13px;
  line-height:1.45;
}

.approved-layout-v2 .additional-stops-list{
  max-height:min(450px,52vh);
  margin-top:22px;
  padding:2px 6px 2px 2px;
}

.approved-layout-v2 .additional-stops-list .stops{
  counter-reset:additional-stop;
  gap:12px;
}

.approved-layout-v2 .additional-stops-list .stop-row{
  counter-increment:additional-stop;
  display:grid !important;
  grid-template-columns:34px minmax(0,1fr) auto;
  align-items:end;
  gap:10px;
  padding:13px;
  border:1px solid #dedcd7;
  border-radius:11px;
  background:#fff;
  box-shadow:0 4px 14px rgba(19,22,22,.045);
}

.approved-layout-v2
.additional-stops-list
.stop-row::before{
  content:counter(additional-stop);
  display:grid;
  place-items:center;
  align-self:end;
  width:32px;
  height:32px;
  margin-bottom:6px;
  border-radius:50%;
  background:#ff5a00;
  color:#fff;
  font-size:13px;
  font-weight:900;
}

.approved-layout-v2
.additional-stops-list
.stop-row
.field{
  min-width:0;
  gap:6px;
}

.approved-layout-v2
.additional-stops-list
.stop-row
.field
> span:first-child{
  position:static;
  display:block;
  margin:0;
  padding:0;
  color:#4f5151;
  font-size:11px;
  font-weight:750;
  line-height:1.25;
}

.approved-layout-v2
.additional-stops-list
.stop-row
.field
input{
  width:100%;
  margin:0;
  border-color:#d4d2cd;
  border-radius:7px;
  background:#fbfaf7;
}

.approved-layout-v2
.additional-stops-list
.stop-row
.field
input:focus{
  border-color:#ff5a00;
  outline:2px solid rgba(255,90,0,.14);
  outline-offset:1px;
}

.approved-layout-v2
.additional-stops-list
.stop-actions{
  align-self:end;
  display:flex;
  gap:5px;
  padding:0;
}

.approved-layout-v2
.additional-stops-list
.stop-actions
button{
  display:grid;
  place-items:center;
  width:42px;
  min-width:42px;
  height:45px;
  min-height:45px;
  padding:0;
  border:1px solid #d4d2cd;
  border-radius:7px;
  background:#fbfaf7;
  color:#252828;
  font-size:16px;
  font-weight:800;
  cursor:pointer;
}

.approved-layout-v2
.additional-stops-list
.stop-actions
button:hover:not(:disabled){
  border-color:#ff5a00;
  background:#fff3eb;
  color:#e94f00;
}

.approved-layout-v2
.additional-stops-list
.stop-actions
button:disabled{
  opacity:.28;
  cursor:not-allowed;
}

.approved-layout-v2
.additional-stops-list
.stop-actions
button[data-move="remove"]{
  color:#a6341d;
}

.approved-layout-v2 .additional-stops-footer{
  margin-top:22px;
  padding-top:20px;
}

.approved-layout-v2 .additional-stops-add,
.approved-layout-v2 .additional-stops-done{
  min-height:46px;
  border-radius:8px;
}

.approved-layout-v2 .additional-stops-add{
  padding:0 20px;
}

.approved-layout-v2 .additional-stops-done{
  min-width:140px;
}

@media(max-width:620px){
  .approved-layout-v2
  #transport-fields
  .route-grid:not(.loader-route-grid)
  > .field
  > span:first-child{
    padding-left:25px;
  }

  .approved-layout-v2 .additional-stops-dialog{
    padding:23px 15px 16px;
    border-radius:14px;
  }

  .approved-layout-v2 .additional-stops-heading h3{
    padding-right:30px;
    font-size:25px;
  }

  .approved-layout-v2 .additional-stops-list{
    margin-top:18px;
    padding-right:2px;
  }

  .approved-layout-v2 .additional-stops-list .stop-row{
    grid-template-columns:32px minmax(0,1fr);
    gap:8px;
    padding:11px;
  }

  .approved-layout-v2
  .additional-stops-list
  .stop-row::before{
    grid-column:1;
    grid-row:1;
    align-self:end;
  }

  .approved-layout-v2
  .additional-stops-list
  .stop-row
  .field{
    grid-column:2;
    grid-row:1;
  }

  .approved-layout-v2
  .additional-stops-list
  .stop-actions{
    grid-column:2;
    grid-row:2;
    justify-content:flex-end;
  }

  .approved-layout-v2
  .additional-stops-list
  .stop-actions
  button{
    width:40px;
    min-width:40px;
    height:38px;
    min-height:38px;
  }
}

/* ROUTE_COLUMN_STOP_SPACING_MAP_ICON_FIX_2026_10_04 */

/* Отдельная колонка линии и маркеров слева от полей */
.approved-layout-v2
#transport-fields
.route-grid:not(.loader-route-grid)
> .field{
  box-sizing:border-box;
  padding-left:28px;
}

.approved-layout-v2
#transport-fields
.route-grid:not(.loader-route-grid)
> .field
> span:first-child{
  padding-left:0 !important;
}

.approved-layout-v2
#transport-fields
.route-grid:not(.loader-route-grid)
.input-with-marker
.route-marker{
  left:-27px !important;
}

.approved-layout-v2
#transport-fields
.route-grid:not(.loader-route-grid)
.input-with-marker
input{
  padding-left:12px !important;
}

/* Интервал между подписью остановки и полем */
.approved-layout-v2
.additional-stops-list
.stop-row
.field{
  gap:10px !important;
}

.approved-layout-v2
.additional-stops-list
.stop-row
.field
> span:first-child{
  min-height:14px;
  margin:0 !important;
  padding:0 0 1px !important;
  line-height:1.3;
}






@media(max-width:620px){
  .approved-layout-v2
  #transport-fields
  .route-grid:not(.loader-route-grid)
  > .field{
    padding-left:28px;
  }

  .approved-layout-v2
  #transport-fields
  .route-grid:not(.loader-route-grid)
  .input-with-marker
  .route-marker{
    left:-27px !important;
  }
}

/* GRUZOVEDOV_MINIMAL_STOP_MAP_FIX_MAIN_REUSE */

/* При открытии карты окно остановок временно скрывается. */
body.route-map-open .additional-stops-modal:not([hidden]) {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

body.route-map-open .route-map-modal,
body.route-map-open #route-map-modal {
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 5000 !important;
    pointer-events: auto !important;
}

/* Отступ между подписью остановки и полем. */
.approved-layout-v2
.additional-stops-list
.stop-row
> label.field {
    gap: 11px !important;
}






/* GRUZOVEDOV_EXISTING_MAP_ICON_HOVER_COLOR_V1: SVG stroke uses currentColor. */
.approved-layout-v2 .address-map-button:hover {
  color: #ec7000;
}

/* GRUZOVEDOV_LOADER_ROUTE_V1: геометрия полей А/Б применяется к адресам грузчиков. */
.approved-layout-v2 #loader-fields .loader-address-field {
  box-sizing: border-box;
  padding-left: 28px;
}
.approved-layout-v2 #loader-fields .loader-address-field[hidden] {
  display: none !important;
}
.approved-layout-v2 #loader-fields .loader-address-field .route-marker {
  left: -27px !important;
}
.approved-layout-v2 #loader-fields .loader-address-field input {
  padding-left: 12px !important;
}
.approved-layout-v2 #loader-fields .loader-route-grid > .add-loader-address {
  grid-column: 1 / -1;
  justify-self: start;
  margin: 0 0 3px 28px;
}
.approved-layout-v2 #loader-fields .add-loader-address::before {
  display: inline-block;
}
.approved-layout-v2 #loader-fields .route-connector-live[hidden] {
  display: none !important;
}

/* GRUZOVEDOV_FORM_SELECT_STYLE_V1:
   Единое оформление выпадающих списков формы. Размеры каждого поля
   задаются существующими правилами. Старые браузеры сохраняют обычный
   select; значения и управление остаются встроенными. */
@supports (appearance: base-select) and selector(::picker(select)) {
  .approved-layout-v2 select,
  .approved-layout-v2 select::picker(select) {
    appearance: base-select;
  }

  .approved-layout-v2 select {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    cursor: pointer;
  }

  .approved-layout-v2 select::picker-icon {
    flex-shrink: 0;
    color: #676a69;
  }

  .approved-layout-v2 select:open {
    border-color: #ff5a00;
  }

  /* Раскрытый список использует рамку и цвета существующей формы. */
  .approved-layout-v2 select::picker(select) {
    box-sizing: border-box;
    margin-block-start: 6px;
    padding: 5px;
    border: 1px solid #d4d2cd;
    border-radius: 8px;
    background: #fff;
    color: #171919;
    font-family: inherit;
    font-size: 13px;
    box-shadow: 0 8px 24px rgba(23, 25, 25, .12);
    max-height: 50vh;
    overflow-y: auto;
  }

  .approved-layout-v2 select option {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border: 0;
    border-radius: 5px;
    background: transparent;
    color: #171919;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.35;
    cursor: pointer;
  }

  .approved-layout-v2 select option:hover,
  .approved-layout-v2 select option:focus-visible {
    background: #fff3eb;
    color: #e94f00;
  }

  .approved-layout-v2 select option:focus-visible {
    outline: 2px solid #ff5a00;
    outline-offset: -2px;
  }

  .approved-layout-v2 select option:checked {
    background: #fff3eb;
    color: #e94f00;
    font-weight: 650;
  }

  .approved-layout-v2 select option::checkmark {
    color: #ff5a00;
  }
}

/* GRUZOVEDOV_LOADER_FLOOR_MENU_V1:
   Карточки условий адресов используют существующее окно параметров
   и общие стили полей для всех услуг. */
.approved-layout-v2 #loader-floor-parameters[hidden] {
  display: none !important;
}
.approved-layout-v2 #loader-floor-addresses {
  display: grid;
  gap: 14px;
}
.approved-layout-v2 .loader-floor-card {
  padding: 16px;
  border: 1px solid #d4d2cd;
  border-radius: 8px;
  background: #fbfaf7;
}
.approved-layout-v2 .loader-floor-card h3 {
  margin: 0 0 5px;
  color: #171919;
  font-size: 14px;
  font-weight: 700;
}
.approved-layout-v2 .loader-floor-address {
  margin: 0 0 14px;
  color: #676a69;
  font-size: 13px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

/* GRUZOVEDOV_SHARED_CONDITIONS_V1:
   Заметные кнопки открывают одно окно вещей, этажа и лифта.
   Стили ограничены этими кнопками и полем описания вещей. */
.approved-layout-v2 .conditions-trigger {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  max-width: 100%;
  padding: 10px 14px;
  border: 1px solid #ec7000;
  border-radius: 6px;
  background: #fff3eb;
  color: #a84400;
  font-family: inherit;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
  white-space: normal;
  cursor: pointer;
}
.approved-layout-v2 .reference-floor .conditions-trigger {
  width: 100%;
}
.approved-layout-v2 .conditions-trigger:hover {
  border-color: #ff5a00;
  background: #ffe8d8;
  color: #923b00;
}
.approved-layout-v2 .conditions-trigger.has-conditions {
  background: #ffe8d8;
  border-color: #ff5a00;
}
.approved-layout-v2 #conditions-goods {
  box-sizing: border-box;
  height: 96px;
  min-height: 96px;
  padding: 10px 12px;
  line-height: 1.5;
  resize: vertical;
}
.approved-layout-v2 #loader-floor-parameters > .field {
  margin-bottom: 16px;
}

/* GRUZOVEDOV_BUSINESS_PREVIEW_V1: корпоративные поля и разбивка результата. */
.approved-layout-v2 #business-settings[hidden],
.approved-layout-v2 #business-price-breakdown[hidden],
.approved-layout-v2 #business-transport-labor[hidden],
.approved-layout-v2 #business-regular-fields[hidden],
.approved-layout-v2 #business-driver-hours-field[hidden] {display:none !important}
.approved-layout-v2 .business-settings {margin-top:18px;padding:16px;border:1px solid #d4d2cd;border-radius:8px;background:#fbfaf7}
.approved-layout-v2 .business-settings h3 {margin:0 0 12px;font-size:14px;color:#171919}
.approved-layout-v2 .business-settings-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}
.approved-layout-v2 .business-wide {grid-column:1 / -1}
.approved-layout-v2 .business-check {display:flex;align-items:center;gap:9px;margin:10px 0;font-size:12px;line-height:1.4;color:#171919}
.approved-layout-v2 .business-check input {width:17px;height:17px;min-height:0;flex-shrink:0;accent-color:#ec7000}
.approved-layout-v2 .business-settings textarea {height:76px;min-height:76px;padding:10px 12px;resize:vertical}
.approved-layout-v2 .business-price-note {margin:10px 0 0;font-size:12px;line-height:1.5;color:#676a69}
.approved-layout-v2 .business-price-breakdown {display:grid;gap:10px;margin:15px 0;font-size:12px;line-height:1.4}
.approved-layout-v2 .business-price-breakdown > div {display:grid;gap:3px}
.approved-layout-v2 .business-price-breakdown dt {color:#676a69}
.approved-layout-v2 .business-price-breakdown dd {margin:0;font-weight:650}
.approved-layout-v2 .business-order-preview {padding:14px;border:1px solid #d4d2cd;border-radius:8px;background:#fbfaf7;white-space:pre-line;overflow-wrap:anywhere;font-size:12px;line-height:1.6}
@media (max-width:600px) {
  .approved-layout-v2 .business-settings-grid {grid-template-columns:1fr}
}

/* GRUZOVEDOV_COMPACT_RESULT_V1: параметры заказа и общий итог вместо формул. */
.approved-layout-v2 .calculator-result {
  grid-template-columns:minmax(0,1fr);
  grid-template-areas:"kicker" "summary" "heading" "price" "note" "map" "action";
}
.approved-layout-v2 .calculator-result .result-kicker {
  margin:0 0 10px;
  color:#252828;
  font-size:13px;
  font-weight:750;
}
.approved-layout-v2 .order-result-summary {
  grid-area:summary;
  display:grid;
  gap:7px;
  margin:0 0 13px;
  font-size:12px;
  line-height:1.4;
}
.approved-layout-v2 .order-result-summary > div {
  display:grid;
  grid-template-columns:70px minmax(0,1fr);
  gap:10px;
}
.approved-layout-v2 .order-result-summary dt {color:#727574}
.approved-layout-v2 .order-result-summary dd {
  margin:0;
  color:#252828;
  font-weight:650;
  overflow-wrap:anywhere;
}
.approved-layout-v2 .calculator-result .result-heading {
  grid-area:heading;
  display:block;
  margin:0 0 5px;
  color:#676a69;
  font-size:11px;
  font-weight:500;
}
.approved-layout-v2 .calculator-result .result-price {
  margin:0;
  font-size:clamp(26px,2.4vw,33px);
  line-height:1.15;
  letter-spacing:-.035em;
}
.approved-layout-v2 .order-result-note {
  grid-area:note;
  margin:8px 0 0;
  color:#727574;
  font-size:10px;
  line-height:1.5;
}
.approved-layout-v2 .calculator-result .result-formula,
.approved-layout-v2 .calculator-result #business-price-breakdown {
  display:none !important;
}

/* GRUZOVEDOV_CALCULATION_HINT_V1: ошибка рядом с действием и выделение поля. */
.approved-layout-v2 .calculator-result {
  grid-template-areas:"kicker" "summary" "heading" "price" "note" "map" "hint" "action";
}
.approved-layout-v2 .calculator-result .calculation-hint {
  grid-area:hint;
  margin:10px 0 0;
  padding:9px 11px;
  border-left:3px solid #ff5a00;
  border-radius:4px;
  background:#fff3eb;
  color:#8e350f;
  font-size:12px;
  font-weight:650;
  line-height:1.45;
}
.approved-layout-v2 .calculator-result .calculation-hint[hidden] {
  display:none !important;
}
.approved-layout-v2 #calculator input.is-invalid,
.approved-layout-v2 #calculator select.is-invalid {
  border-color:#e94f00 !important;
  box-shadow:0 0 0 2px rgba(233,79,0,.14) !important;
}

/* GRUZOVEDOV_BUSINESS_LAYOUT_V1:
   На всех вкладках фото сохраняет пропорции независимо от высоты формы.
   Краткая сводка скрыта только для организации; итог и подсказки остаются. */
.approved-layout-v2 .top-stage .hero {
  align-self:start;
  align-content:start;
  height:auto;
  min-height:0 !important;
  grid-template-rows:auto auto 60px;
}
.approved-layout-v2 .top-stage .hero-photo {
  align-self:start;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  aspect-ratio:1672 / 941 !important;
  background-size:contain !important;
  background-position:center center !important;
}
.approved-layout-v2 .top-stage.business-layout .calculator-result {
  grid-template-areas:"heading" "price" "note" "map" "hint" "action";
}
.approved-layout-v2 .top-stage.business-layout .calculator-result .result-kicker,
.approved-layout-v2 .top-stage.business-layout #order-result-summary {
  display:none !important;
}

/* GRUZOVEDOV_BUSINESS_COMPACT_FORM_V1:
   Только бизнес-вкладка: скрываем кнопку условий и сокращаем высоту формы.
   Поля и сохранённые условия остаются в модели заказа. */
.approved-layout-v2 .top-stage.business-layout .reference-floor,
.approved-layout-v2 .top-stage.business-layout #open-loader-conditions {
  display:none !important;
}
.approved-layout-v2 .top-stage.business-layout .reference-field > input,
.approved-layout-v2 .top-stage.business-layout .reference-field > select {
  height:38px;
  min-height:38px;
}
.approved-layout-v2 .top-stage.business-layout #business-settings {
  margin-top:10px;
  padding:10px;
}
.approved-layout-v2 .top-stage.business-layout #business-settings h3 {
  margin:0 0 8px;
}
.approved-layout-v2 .top-stage.business-layout .business-settings-grid {
  gap:8px;
}
.approved-layout-v2 .top-stage.business-layout #business-transport-labor {
  gap:8px;
  margin-top:8px;
}
.approved-layout-v2 .top-stage.business-layout #business-settings .field input,
.approved-layout-v2 .top-stage.business-layout #business-settings .field select {
  height:38px;
  min-height:38px;
}
.approved-layout-v2 .top-stage.business-layout #business-settings > p {
  margin-top:6px;
  margin-bottom:0;
}
.approved-layout-v2 .top-stage.business-layout .calculator-result {
  margin-top:8px;
  padding-top:8px;
}
.approved-layout-v2 .top-stage.business-layout .order-result-note {
  margin-top:6px;
}
.approved-layout-v2 .top-stage.business-layout #calculator-action {
  min-height:44px;
  margin-top:8px;
}

/* GRUZOVEDOV_BUSINESS_HIDE_LOADER_HOURS_V1:
   Скрываем поле вместе с подписью; существующее значение сохраняется. */
.approved-layout-v2 .top-stage.business-layout
#business-transport-labor > label.field:has(> #business-loader-hours) {
  display:none !important;
}

/* GRUZOVEDOV_BUSINESS_TTN_ACCENT_V1:
   Убираем предложение помощи водителя из бизнес-формы.
   ТТН остаётся самостоятельным доступным переключателем. */
.approved-layout-v2 .top-stage.business-layout #business-transport-labor {
  display:none !important;
}
.approved-layout-v2 .top-stage.business-layout
#business-settings > label:has(> #business-ttn) {
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  box-sizing:border-box;
  margin:8px 0 0;
  padding:10px 12px;
  border:1px solid #ff9b60;
  border-radius:8px;
  background:#fff3e9;
  color:#963b0b;
  font-weight:650;
  line-height:1.3;
  cursor:pointer;
}
.approved-layout-v2 .top-stage.business-layout #business-ttn {
  flex:0 0 18px;
  width:18px;
  height:18px;
  min-height:0;
  margin:0;
  accent-color:#ff5a00;
}
.approved-layout-v2 .top-stage.business-layout
#business-settings > label:has(> #business-ttn:checked) {
  border-color:#ff5a00;
  background:#ffe7d6;
}
.approved-layout-v2 .top-stage.business-layout
#business-settings > label:has(> #business-ttn:focus-visible) {
  outline:2px solid #ff5a00;
  outline-offset:2px;
}
