/* ==========================================================================
   КАЛЬКУЛЯТОР СТОИМОСТИ ПЕРЕВОЗКИ
   БОРТ №1
========================================================================== */


/* ==========================================================================
   ОБЩАЯ ГЕОМЕТРИЯ СТРАНИЦЫ
========================================================================== */

.calc-page-heading,
.calc-wrapper {
    width: 100%;
    max-width: 1280px;

    margin-left: auto;
    margin-right: auto;

    box-sizing: border-box;

    padding-left: 24px;
    padding-right: 24px;
}


/* ==========================================================================
   ЗАГОЛОВОК СТРАНИЦЫ
========================================================================== */

.calc-page-heading {
    position: relative;

    margin-top: 0;
    margin-bottom: 34px;

    text-align: left;
}





.calc-page-heading h1 {
    text-align: left;
    padding-left: 10px;
    margin: 0 0 10px;

    max-width: 900px;

    color: #ffffff;

    font-size: 42px;
    line-height: 1.08;
    font-weight: 800;

    letter-spacing: -1px;
}


.calc-page-heading p {
    text-align: left;
    padding-left: 10px;
    margin: 0;

    max-width: 760px;

    color: #8A99AD;

    font-size: 16px;
    line-height: 1.55;
    font-weight: 400;
}


/* ==========================================================================
   ОСНОВНАЯ СЕТКА
========================================================================== */

.calc-wrapper {
    display: grid;

    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(360px, 0.85fr);

    align-items: stretch;

    gap: 26px;

    padding-bottom: 60px;
}


/* ==========================================================================
   КАРТОЧКИ
========================================================================== */

.calc-panel-card {
    position: relative;

    min-width: 0;

    padding: 30px;

    background:
        linear-gradient(
            180deg,
            #0e2039 0%,
            #0b1d34 100%
        );

    border: 1px solid rgba(89, 120, 156, 0.25);

    border-radius: 14px;

    box-shadow:
        0 14px 35px rgba(0, 0, 0, 0.14);

    box-sizing: border-box;
}


/* ==========================================================================
   ЗАГОЛОВКИ КАРТОЧЕК
========================================================================== */

.panel-inner-title {
    display: flex;

    align-items: center;

    gap: 10px;

    margin: 0 0 25px;

    padding-bottom: 16px;

    color: #ffffff;

    border-bottom: 1px solid rgba(89, 120, 156, 0.24);

    font-size: 18px;
    line-height: 1.3;
    font-weight: 700;
}


/* Оранжевая метка перед заголовком */
.panel-inner-title::before {
    content: "";

    display: block;

    width: 8px;
    height: 8px;

    flex: 0 0 8px;

    background: #FF7A00;

    border-radius: 2px;

    box-shadow:
        0 0 0 4px rgba(255, 122, 0, 0.10);
}


/* ==========================================================================
   ГРУППЫ ПОЛЕЙ
========================================================================== */

.calc-form-group {
    margin-bottom: 28px;
}


.calc-form-group > label {
    display: block;

    margin-bottom: 10px;

    color: #ffffff;

    font-size: 14px;
    line-height: 1.4;
    font-weight: 600;
}


/* ==========================================================================
   ПОЛЕ КИЛОМЕТРАЖА
========================================================================== */

.calc-input-field {
    display: block;

    width: 100%;
    height: 52px;

    box-sizing: border-box;

    padding: 0 16px;

    background: #101f35;

    color: #ffffff;

    border: 1px solid #263b55;

    border-radius: 8px;

    outline: none;

    font-family: "Inter", sans-serif;

    font-size: 16px;
    font-weight: 600;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        background-color 0.2s ease;
}


.calc-input-field:hover {
    border-color: #36516f;
}


.calc-input-field:focus {
    background: #12243d;

    border-color: #FF7A00;

    box-shadow:
        0 0 0 3px rgba(255, 122, 0, 0.10);
}


/* ==========================================================================
   ПОДСКАЗКИ
========================================================================== */

.calc-field-hint {
    display: block;

    margin-top: 9px;

    max-width: 650px;

    color: #8393A8;

    font-size: 12px;
    line-height: 1.55;
}


/* Яндекс Карты */
.calc-field-hint .calc-map-link,
.calc-map-link {
    color: #FF7A00 !important;

    font-weight: 700;

    text-decoration: none;

    border-bottom:
        1px dashed rgba(255, 122, 0, 0.65);

    transition:
        color 0.2s ease,
        border-color 0.2s ease;
}


.calc-field-hint .calc-map-link:hover,
.calc-map-link:hover {
    color: #ff932f !important;

    border-bottom-color: #ff932f;
}


/* ==========================================================================
   СЧЁТЧИК ДОПОЛНИТЕЛЬНЫХ ТОЧЕК
========================================================================== */

.points-counter-ui {
    display: flex;

    align-items: stretch;

    width: 164px;
    height: 48px;
}


.points-counter-ui button {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 48px;
    height: 48px;

    flex: 0 0 48px;

    padding: 0;

    background: #FF7A00;

    color: #ffffff;

    border: none;

    font-family: "Inter", sans-serif;

    font-size: 22px;
    line-height: 1;
    font-weight: 700;

    cursor: pointer;

    transition:
        background-color 0.2s ease,
        transform 0.1s ease;
}


.points-counter-ui button:first-child {
    border-radius: 8px 0 0 8px;
}


.points-counter-ui button:last-child {
    border-radius: 0 8px 8px 0;
}


.points-counter-ui button:hover {
    background: #d85300;
}


.points-counter-ui button:active {
    transform: scale(0.96);
}


.points-counter-ui input {
    width: 68px;
    height: 48px;

    flex: 0 0 68px;

    box-sizing: border-box;

    padding: 0 5px;

    background: #101f35;

    color: #ffffff;

    border-top: 1px solid #263b55;
    border-bottom: 1px solid #263b55;
    border-left: none;
    border-right: none;

    border-radius: 0;

    outline: none;

    text-align: center;

    font-family: "Inter", sans-serif;

    font-size: 16px;
    font-weight: 700;
}


.points-counter-ui input:focus {
    border-top-color: #FF7A00;
    border-bottom-color: #FF7A00;
}


/* ==========================================================================
   CHECKBOX И RADIO
========================================================================== */

.calc-selection-label {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 14px;

    color: #dce5ef;

    cursor: pointer;

    font-size: 14px;
    line-height: 1.4;
    font-weight: 500;
}
.calc-selection-label:last-child {
    margin-bottom: 0;
}
/* Форма оплаты в одну строку */

.payment-row,
.permit-row {
    display: flex;
    align-items: center;
    gap: 30px;
}

.calc-form-group.payment-row > .calc-selection-label,
.calc-form-group.permit-row > .calc-selection-label {
    display: flex;
    align-items: center;
    width: auto;
    margin-bottom: 0;
    white-space: nowrap;
}
    color: #dce5ef;

    cursor: pointer;

    font-size: 14px;
    line-height: 1.4;
    font-weight: 500;
}


.calc-selection-label:last-child {
    margin-bottom: 0 !important;
}


.calc-selection-label input {
    width: 18px;
    height: 18px;

    flex: 0 0 18px;

    margin: 0;

    accent-color: #FF7A00;

    cursor: pointer;
}


/* ==========================================================================
   ДЕТАЛИЗАЦИЯ СТОИМОСТИ
========================================================================== */

.calc-detalization-row {
    display: flex;

    align-items: flex-start;
    justify-content: space-between;

    gap: 24px;

    margin-bottom: 14px;

    padding-bottom: 13px;

    border-bottom:
        1px dashed rgba(89, 120, 156, 0.27);

    color: #8998aa;

    font-size: 14px;
    line-height: 1.45;
}


.calc-detalization-row span:first-child {
    min-width: 0;

    flex: 1;
}


.calc-detalization-row span:last-child {
    flex-shrink: 0;

    color: #ffffff;

    font-weight: 700;

    text-align: right;

    white-space: nowrap;
}


/* ==========================================================================
   ИТОГОВАЯ СТОИМОСТЬ
========================================================================== */

.final-cost-summary-box {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 20px;

    margin-top: 28px;

    padding: 22px 24px;

    background:
        linear-gradient(
            135deg,
            #122641 0%,
            #102137 100%
        );

    border: 1px solid rgba(255, 122, 0, 0.20);

    border-radius: 10px;

    text-align: left;
}


.final-cost-heading {
    margin: 0;

    color: #8A99AD;

    font-size: 12px;
    line-height: 1.35;
    font-weight: 700;

    letter-spacing: 0.8px;

    text-transform: uppercase;
}


.final-cost-display-value {
    flex-shrink: 0;

    color: #FF7A00;

    font-size: 38px;
    line-height: 1;
    font-weight: 800;

    text-align: right;

    white-space: nowrap;
}


/* ==========================================================================
   КНОПКА ЗАКАЗАТЬ ПЕРЕВОЗКУ
========================================================================== */

.calc-panel-card .btn.btn-orange {
    display: flex !important;

    align-items: center;
    justify-content: center;

    width: 100% !important;
    min-height: 52px;

    margin-top: 20px !important;

    padding: 14px 22px !important;

    background: #d85300;

    color: #ffffff;

    border: none !important;
    border-radius: 8px !important;

    box-shadow:
        0 8px 22px rgba(216, 83, 0, 0.24);

    font-family: "Inter", sans-serif;

    font-size: 15px !important;
    line-height: 1.2;
    font-weight: 700 !important;

    cursor: pointer;

    transition:
        background-color 0.2s ease,
        transform 0.1s ease,
        box-shadow 0.2s ease;
}


.calc-panel-card .btn.btn-orange:hover {
    background: #ea580c;

    box-shadow:
        0 10px 26px rgba(216, 83, 0, 0.32);
}


.calc-panel-card .btn.btn-orange:active {
    transform: translateY(1px);
}


/* ==========================================================================
   ПЛАНШЕТ
========================================================================== */

@media (max-width: 991px) {

    .calc-page-heading,
    .calc-wrapper {
        padding-left: 20px;
        padding-right: 20px;
    }


    .calc-page-heading {
        margin-bottom: 28px;
    }


    .calc-page-heading h1 {
        font-size: 34px;
    }


    .calc-wrapper {
        grid-template-columns: 1fr;

        gap: 20px;
    }


    .calc-panel-card {
        padding: 26px;
    }

}


/* ==========================================================================
   ТЕЛЕФОН
========================================================================== */

@media (max-width: 768px) {

    .calc-page-heading,
    .calc-wrapper {
        padding-left: 15px;
        padding-right: 15px;
    }


    .calc-page-heading {
        margin-bottom: 22px;
    }


    .calc-page-heading::before {
        margin-bottom: 7px;

        font-size: 10px;

        letter-spacing: 1.3px;
    }


    .calc-page-heading h1 {
        margin-bottom: 8px;

        font-size: 27px;
        line-height: 1.12;

        letter-spacing: -0.5px;
    }


    .calc-page-heading p {
        font-size: 13px;
        line-height: 1.5;
    }


    .calc-wrapper {
        gap: 16px;

        padding-bottom: 40px;
    }


    .calc-panel-card {
        padding: 20px;

        border-radius: 11px;
    }


    .panel-inner-title {
        margin-bottom: 20px;

        padding-bottom: 13px;

        font-size: 16px;
    }


    .calc-form-group {
        margin-bottom: 23px;
    }


    .calc-form-group > label {
        margin-bottom: 8px;

        font-size: 13px;
    }


    .calc-input-field {
        height: 48px;

        padding: 0 13px;

        font-size: 15px;
    }


    .calc-field-hint {
        margin-top: 7px;

        font-size: 11px;
        line-height: 1.5;
    }


    .calc-selection-label {
        gap: 9px;

        font-size: 13px;
    }


    .calc-detalization-row {
        gap: 12px;

        margin-bottom: 12px;

        padding-bottom: 11px;

        font-size: 12px;
    }


    .final-cost-summary-box {
        margin-top: 22px;

        padding: 18px;
    }


    .final-cost-heading {
        font-size: 10px;
    }


    .final-cost-display-value {
        font-size: 30px;
    }

}


/* ==========================================================================
   МАЛЕНЬКИЙ ТЕЛЕФОН
========================================================================== */

@media (max-width: 480px) {

    .calc-page-heading h1 {
        font-size: 24px;
    }


    .calc-page-heading p {
        font-size: 12px;
    }


    .calc-panel-card {
        padding: 16px;
    }


    .panel-inner-title {
        font-size: 15px;
    }


    .calc-form-group > label {
        font-size: 12px;
    }


    .calc-field-hint {
        font-size: 10px;
    }


    .points-counter-ui {
        width: 146px;
        height: 42px;
    }


    .points-counter-ui button {
        width: 42px;
        height: 42px;

        flex-basis: 42px;

        font-size: 19px;
    }


    .points-counter-ui input {
        width: 62px;
        height: 42px;

        flex-basis: 62px;

        font-size: 15px;
    }


    .calc-selection-label {
        font-size: 12px;
    }


    .calc-detalization-row {
        font-size: 11px;
    }


    .final-cost-summary-box {
        align-items: flex-start;

        flex-direction: column;

        gap: 8px;
    }


    .final-cost-display-value {
        font-size: 28px;

        text-align: left;
    }

}

/* ===== РАНЕЕ calculator-v2.css ===== */
/* ========================================================================== 
   КАЛЬКУЛЯТОР V2 — БОРТ №1
   Дополнительный слой поверх prices.css. Базовые стили сайта не изменяет.
========================================================================== */

/* Верхняя строка слева: километраж + дополнительные точки */
.route-main-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 270px;
    gap: 16px;
    align-items: end;
}

.route-main-row .calc-form-group {
    margin-bottom: 0;
}

.route-points-group .points-counter-ui {
    width: 100%;
}

.route-points-group .points-counter-ui input {
    flex: 1 1 auto;
    width: auto;
    min-width: 64px;
}

.route-hint {
    margin-top: 9px;
    margin-bottom: 18px;
}

/* Результат расчёта */
.calc-result-card {
    display: flex;
    flex-direction: column;
    align-self: stretch;
}

.calc-price-top {
    padding: 22px 22px 20px;
    background: linear-gradient(135deg, #122641 0%, #102137 100%);
    border: 1px solid rgba(255, 122, 0, 0.28);
    border-radius: 12px;
}

.calc-price-label {
    margin: 0 0 8px;
    color: #91a0b4;
    font-size: 12px;
    line-height: 1.35;
    font-weight: 800;
    letter-spacing: .8px;
    text-transform: uppercase;
}

.calc-price-top .final-cost-display-value {
    margin: 0;
    text-align: left;
    font-size: clamp(34px, 4vw, 50px);
}

.calc-price-note {
    display: block;
    margin-top: 9px;
    color: #8393a8;
    font-size: 11px;
    line-height: 1.45;
}

.calc-result-actions {
    margin-top: 16px;
    display: grid;
    gap: 10px;
}

.calc-result-actions .btn.btn-orange {
    margin-top: 0 !important;
}

.btn-order-secondary {
    width: 100%;
    min-height: 44px;
    padding: 11px 16px;
    border: 1px solid rgba(255, 122, 0, .48);
    border-radius: 8px;
    background: rgba(255, 122, 0, .06);
    color: #ff983e;
    font: 700 14px/1.2 "Inter", sans-serif;
    cursor: pointer;
    transition: background-color .2s ease, border-color .2s ease, transform .1s ease;
}

.btn-order-secondary:hover {
    background: rgba(255, 122, 0, .12);
    border-color: #ff7a00;
}

.btn-order-secondary:active {
    transform: translateY(1px);
}

.calc-result-help {
    margin-top: auto;
    padding-top: 16px;
}

/* ========================================================================== 
   КОНСТРУКТОР ЗАЯВКИ
========================================================================== */
.order-builder {
    width: calc(100% - 64px);
    max-width: var(--site-max-width, 1920px);
    margin: 0 auto 40px;
}

.order-builder[hidden] {
    display: none !important;
}

.order-builder-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin: 0 0 14px;
}

.order-builder-head h2 {
    margin: 0;
    color: #fff;
    font-size: 25px;
    line-height: 1.15;
}

.order-builder-head p {
    margin: 5px 0 0;
    color: #8798ad;
    font-size: 12px;
    line-height: 1.5;
}

.order-builder-grid {
    display: grid;
    grid-template-columns: minmax(430px, .82fr) minmax(720px, 1.18fr);
    gap: 18px;
    align-items: start;
}

.order-editor {
    min-width: 0;
    padding: 18px;
    background: linear-gradient(180deg, #0e2039 0%, #0b1d34 100%);
    border: 1px solid rgba(89,120,156,.25);
    border-radius: 14px;
}

.order-editor details {
    border-bottom: 1px solid rgba(89,120,156,.22);
}

.order-editor details:last-of-type {
    border-bottom: 0;
}

.order-editor summary {
    position: relative;
    padding: 14px 24px 14px 14px;
    color: #fff;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
}

.order-editor summary::-webkit-details-marker { display: none; }

.order-editor summary::before {
    content: "";
    position: absolute;
    left: 0;
    top: 19px;
    width: 7px;
    height: 7px;
    background: #ff7a00;
    border-radius: 2px;
}

.order-editor summary::after {
    content: "+";
    position: absolute;
    right: 2px;
    top: 12px;
    color: #8496ac;
    font-size: 20px;
    font-weight: 500;
}

.order-editor details[open] summary::after { content: "−"; }

.order-section-body {
    padding: 0 0 16px;
}

.order-fields-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px 12px;
}

.order-field-full { grid-column: 1 / -1; }

.order-field label {
    display: block;
    margin-bottom: 5px;
    color: #a9b5c5;
    font-size: 11px;
    line-height: 1.35;
    font-weight: 700;
}

.order-field input,
.order-field select,
.order-field textarea {
    display: block;
    width: 100%;
    box-sizing: border-box;
    min-height: 40px;
    padding: 8px 10px;
    border: 1px solid #263b55;
    border-radius: 7px;
    outline: 0;
    background: #101f35;
    color: #fff;
    font: 500 13px/1.35 "Inter", sans-serif;
}

.order-field textarea {
    min-height: 70px;
    resize: vertical;
}

.order-field input:focus,
.order-field select:focus,
.order-field textarea:focus {
    border-color: #ff7a00;
    box-shadow: 0 0 0 3px rgba(255,122,0,.08);
}

.order-editor-tip {
    margin: 12px 0 0;
    color: #7f91a7;
    font-size: 10px;
    line-height: 1.5;
}

.order-preview-column {
    min-width: 0;
}

.order-preview-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}

.order-action-btn {
    min-height: 38px;
    padding: 8px 12px;
    border: 1px solid #2b425f;
    border-radius: 7px;
    background: #0f223b;
    color: #dce6f2;
    font: 700 12px/1.2 "Inter", sans-serif;
    cursor: pointer;
}

.order-action-btn:hover {
    border-color: #ff7a00;
    color: #fff;
}

.order-action-btn.primary {
    border-color: #ff7a00;
    background: #d85300;
    color: #fff;
}

.order-preview-scroll {
    overflow: auto;
    max-height: 78vh;
    padding: 12px;
    background: #07182d;
    border: 1px solid rgba(89,120,156,.24);
    border-radius: 12px;
}

/* Сам лист заявки. Белый фон нужен и для PDF, и для печати. */
.order-sheet {
    width: 210mm;
    min-height: 297mm;
    margin: 0 auto;
    box-sizing: border-box;
    padding: 12mm 12mm 11mm;
    background: #fff;
    color: #111827;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 9.2pt;
    line-height: 1.25;
    box-shadow: 0 10px 28px rgba(0,0,0,.24);
}

.order-sheet * { box-sizing: border-box; }

.order-doc-brand {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding-bottom: 7px;
    border-bottom: 3px solid #07182d;
}

.order-doc-logo {
    display: flex;
    align-items: baseline;
    gap: 2px;
    color: #07182d;
    font-size: 18pt;
    line-height: 1;
    font-weight: 900;
    letter-spacing: -.5px;
}

.order-doc-logo span { color: #ff7a00; }

.order-doc-contacts {
    text-align: right;
    color: #334155;
    font-size: 8pt;
    line-height: 1.35;
}

.order-doc-title {
    margin: 9px 0 8px;
    text-align: center;
    font-size: 13pt;
    font-weight: 700;
}

.order-doc-accent {
    height: 3px;
    margin: -4px auto 10px;
    width: 52px;
    background: #ff7a00;
    border-radius: 3px;
}

.order-doc-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    margin-bottom: 7px;
}

.order-doc-table th,
.order-doc-table td {
    border: 1px solid #6b7280;
    padding: 4px 5px;
    vertical-align: top;
    overflow-wrap: anywhere;
}

.order-doc-table th {
    background: #eef2f6;
    font-weight: 700;
}

.order-doc-table .section-head {
    background: #07182d;
    color: #fff;
    text-align: center;
    font-weight: 800;
}

.order-doc-table .accent-head {
    background: #fff3e8;
    color: #7a3300;
    text-align: center;
    font-weight: 800;
}

.order-doc-small {
    margin: 4px 0 7px;
    font-size: 7.7pt;
    line-height: 1.3;
    color: #374151;
}

.order-parties-title {
    margin: 7px 0 4px;
    text-align: center;
    font-weight: 800;
}

.order-parties {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-top: 4px;
}

.order-party {
    border-top: 2px solid #07182d;
    padding-top: 5px;
    font-size: 8pt;
    line-height: 1.35;
}

.order-party h4 {
    margin: 0 0 5px;
    color: #07182d;
    font-size: 9pt;
}

.order-signatures {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-top: 15px;
    font-size: 8pt;
}

.order-sign-line {
    margin-top: 15px;
    border-bottom: 1px solid #111;
    width: 70%;
}

@media (max-width: 1350px) {
    .order-builder-grid {
        grid-template-columns: 420px minmax(0,1fr);
    }
}

@media (max-width: 1050px) {
    .route-main-row {
        grid-template-columns: minmax(0,1fr) 230px;
    }

    .order-builder-grid {
        grid-template-columns: 1fr;
    }

    .order-preview-scroll { max-height: none; }
}

@media (max-width: 768px) {
    .route-main-row { grid-template-columns: 1fr; }
    .route-points-group .points-counter-ui { width: 164px; }

    .order-builder {
        width: calc(100% - 28px);
        margin-bottom: 24px;
    }

    .order-builder-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .order-builder-head h2 { font-size: 21px; }
    .order-fields-grid { grid-template-columns: 1fr; }
    .order-field-full { grid-column: auto; }
    .order-preview-scroll { padding: 6px; }
}

@media (max-width: 480px) {
    .order-builder { width: calc(100% - 20px); }
}

/* Печать только заявки */
@media print {
    body.print-order-mode * { visibility: hidden !important; }
    body.print-order-mode #order-preview,
    body.print-order-mode #order-preview * { visibility: visible !important; }
    body.print-order-mode #order-preview {
        position: absolute !important;
        left: 0 !important;
        top: 0 !important;
        width: 210mm !important;
        min-height: 297mm !important;
        margin: 0 !important;
        padding: 11mm 12mm !important;
        box-shadow: none !important;
    }
    @page { size: A4 portrait; margin: 0; }
}

/* ========================================================================== 
   КАЛЬКУЛЯТОР V3 — маршрутные точки, полный редактор заявки
========================================================================== */
.order-top-fields {
    margin-bottom: 14px;
}

.route-points-block {
    margin-top: 14px;
    padding: 12px;
    border: 1px solid rgba(89,120,156,.25);
    border-radius: 10px;
    background: rgba(7,24,45,.34);
}

.route-points-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
    color: #fff;
    font-size: 12px;
}

.route-point-add,
.route-point-remove {
    border: 1px solid rgba(255,122,0,.48);
    border-radius: 7px;
    background: rgba(255,122,0,.08);
    color: #ff9b45;
    font: 700 11px/1.2 "Inter", sans-serif;
    cursor: pointer;
}

.route-point-add {
    padding: 7px 10px;
}

.route-point-remove {
    padding: 5px 8px;
}

.route-point-add:hover,
.route-point-remove:hover {
    border-color: #ff7a00;
    background: rgba(255,122,0,.14);
}

.route-points-list {
    display: grid;
    gap: 9px;
}

.route-point-card {
    padding: 10px;
    border: 1px solid #263b55;
    border-radius: 8px;
    background: #0d1b30;
}

.route-point-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
    color: #c6d2e1;
    font-size: 11px;
    font-weight: 800;
}

.route-point-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 9px;
}

.route-point-grid .wide {
    grid-column: 1 / -1;
}

.route-point-grid label {
    display: block;
    margin-bottom: 4px;
    color: #91a1b5;
    font-size: 10px;
    font-weight: 700;
}

.route-point-grid input {
    width: 100%;
    min-height: 36px;
    box-sizing: border-box;
    padding: 7px 9px;
    border: 1px solid #263b55;
    border-radius: 6px;
    outline: 0;
    background: #101f35;
    color: #fff;
    font: 500 12px/1.2 "Inter", sans-serif;
}

.route-point-grid input:focus {
    border-color: #ff7a00;
}

.route-points-note {
    margin: 10px 0 0;
    color: #8192a8;
    font-size: 10px;
    line-height: 1.45;
}

.order-route-point {
    min-height: 42px;
    line-height: 1.22;
}

.order-route-point + .order-route-point {
    margin-top: 4px;
}

.order-route-point-title {
    margin-bottom: 2px;
    color: #07182d;
    font-weight: 800;
}

.order-route-muted {
    color: #6b7280;
}

.order-doc-table tr,
.order-doc-table td,
.order-doc-table th,
.order-party,
.order-signatures {
    break-inside: avoid;
    page-break-inside: avoid;
}

.order-doc-table.route-table td {
    padding: 4px 5px;
}

.order-sheet {
    height: auto;
}

.order-doc-driver-line {
    white-space: normal;
}

@media (max-width: 768px) {
    .route-point-grid { grid-template-columns: 1fr; }
    .route-point-grid .wide { grid-column: auto; }
    .route-points-head { align-items: flex-start; flex-direction: column; }
    .route-point-add { width: 100%; }
}

/* Если пользователь вызывает печать страницы вручную через Ctrl+P,
   не оставляем невидимые блоки, создающие пустые листы. */
@media print {
    body.print-order-mode {
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
    }
    body.print-order-mode > * {
        display: none !important;
    }
    @page { size: A4 portrait; margin: 8mm; }
}

/* ========================================================================== 
   КАЛЬКУЛЯТОР V4 — реквизиты рядом, стабильная печать/Word
========================================================================== */
.order-parties-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    margin-top: 4px;
}

.order-parties-table th,
.order-parties-table td {
    width: 50%;
    vertical-align: top;
    text-align: left;
    overflow-wrap: anywhere;
}

.order-parties-table th {
    padding: 4px 7px;
    border-top: 2px solid #07182d;
    color: #07182d;
    background: #fff;
    font-size: 8.5pt;
}

.order-parties-table td {
    padding: 4px 7px 0;
    border-top: 1px solid #94a3b8;
    font-size: 7.4pt;
    line-height: 1.24;
}

.order-parties-table th + th,
.order-parties-table td + td {
    border-left: 1px solid #cbd5e1;
}

.order-doc-table.route-table td:empty {
    min-height: 0;
    padding-top: 2px;
    padding-bottom: 2px;
}


/* ========================================================================== 
   КАЛЬКУЛЯТОР V5 — читаемый документ A4 в предпросмотре
========================================================================== */
.order-preview-scroll .order-sheet {
    font-size: 9.8pt;
    line-height: 1.3;
    padding: 11mm 12mm 12mm;
}
.order-preview-scroll .order-doc-table th,
.order-preview-scroll .order-doc-table td {
    padding: 4px 5px;
}
.order-preview-scroll .order-route-point {
    min-height: 48px;
}
.order-preview-scroll .order-parties-table td {
    font-size: 8pt;
    line-height: 1.3;
}


/* ===== РАНЕЕ inline CSS страницы ===== */

/* ==========================================================================
   КОМПАКТНАЯ ВЕРСИЯ КАЛЬКУЛЯТОРА
   Только размеры, отступы и плотность интерфейса.
   Логика расчёта не меняется.
========================================================================== */

.calc-page-heading{
    max-width:1220px;
    width:calc(100% - 32px);
    margin:0 auto;
    padding:16px 0 10px;
}

.calc-page-heading h1{
    margin:0;
    font-size:32px;
    line-height:1.08;
}

.calc-page-heading p{
    margin:6px 0 0;
    font-size:14px;
    line-height:1.4;
}

.calc-wrapper{
    max-width:1220px;
    width:calc(100% - 32px);
    margin:0 auto 24px;
    gap:18px;
    align-items:start;
}

.calc-panel-card{
    padding:20px 22px;
    border-radius:12px;
}

.panel-inner-title{
    margin:0 0 14px;
    padding-bottom:12px;
    font-size:18px;
    line-height:1.2;
}

.calc-form-group{
    margin-bottom:18px;
}

.calc-form-group label{
    margin-bottom:6px;
    font-size:14px;
}

.calc-input-field{
    min-height:44px;
    padding:9px 14px;
    font-size:15px;
}

.calc-field-hint{
    margin-top:6px;
    font-size:11px;
    line-height:1.45;
}

.points-counter-ui{
    margin-top:4px;
}

.points-counter-ui button,
.points-counter-ui input{
    height:44px;
}

.points-counter-ui button{
    width:48px;
    font-size:20px;
}

.points-counter-ui input{
    width:68px;
    font-size:16px;
}

.permit-row,
.payment-row{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px 18px;
}

.calc-selection-label{
    margin:0;
    font-size:13px;
}

.calc-selection-label input{
    margin-right:6px;
}

.calc-detalization-row{
    min-height:42px;
    padding:9px 0;
    font-size:14px;
}

.final-cost-summary-box{
    margin-top:14px;
    padding:16px 18px;
    border-radius:10px;
}

.final-cost-heading{
    font-size:13px;
    margin-bottom:4px;
}

.final-cost-display-value{
    font-size:30px;
    line-height:1.05;
}

/* Уменьшаем только встроенную кнопку заказа без изменения её логики */
.calc-panel-card > .btn.btn-orange{
    margin-top:14px;
    padding:11px 16px;
    min-height:42px;
    font-size:14px;
}

/* Убираем лишний внешний отступ у заголовка "Дополнительные пропуска" */
.calc-panel-card .panel-inner-title[style]{
    margin-top:18px;
}

/* Ноутбуки с невысоким экраном */
@media (min-width:992px) and (max-height:850px){

    .calc-page-heading{
        padding:10px 0 7px;
    }

    .calc-page-heading h1{
        font-size:28px;
    }

    .calc-page-heading p{
        margin-top:4px;
        font-size:12px;
    }

    .calc-wrapper{
        gap:14px;
        margin-bottom:16px;
    }

    .calc-panel-card{
        padding:16px 18px;
    }

    .panel-inner-title{
        margin-bottom:11px;
        padding-bottom:9px;
        font-size:16px;
    }

    .calc-form-group{
        margin-bottom:14px;
    }

    .calc-form-group label{
        font-size:13px;
    }

    .calc-input-field{
        min-height:40px;
        padding:7px 12px;
        font-size:14px;
    }

    .points-counter-ui button,
    .points-counter-ui input{
        height:40px;
    }

    .calc-field-hint{
        font-size:10px;
        line-height:1.35;
    }

    .calc-detalization-row{
        min-height:37px;
        padding:7px 0;
        font-size:13px;
    }

    .final-cost-summary-box{
        margin-top:10px;
        padding:12px 15px;
    }

    .final-cost-display-value{
        font-size:26px;
    }

    .calc-panel-card > .btn.btn-orange{
        margin-top:10px;
        padding:9px 14px;
        min-height:38px;
        font-size:13px;
    }

    .calc-panel-card .panel-inner-title[style]{
        margin-top:14px;
    }
}

/* Планшеты и телефоны */
@media (max-width:991px){

    .calc-page-heading{
        width:calc(100% - 20px);
        padding:12px 0 8px;
    }

    .calc-page-heading h1{
        font-size:26px;
    }

    .calc-page-heading p{
        font-size:12px;
    }

    .calc-wrapper{
        width:calc(100% - 20px);
        grid-template-columns:1fr;
        gap:10px;
        margin-bottom:16px;
    }

    .calc-panel-card{
        padding:16px;
    }
}

@media (max-width:560px){

    .calc-page-heading h1{
        font-size:23px;
    }

    .calc-panel-card{
        padding:13px;
        border-radius:10px;
    }

    .panel-inner-title{
        font-size:15px;
    }

    .permit-row,
    .payment-row{
        gap:8px 12px;
    }

    .calc-selection-label{
        font-size:12px;
    }

    .final-cost-display-value{
        font-size:24px;
    }
}



/* ==========================================================================
   ЕДИНАЯ ШИРИНА САЙТА — КАЛЬКУЛЯТОР
   Формулы и JavaScript не меняет.
========================================================================== */
.calc-page-heading,
.calc-wrapper{
    width:calc(100% - 64px);
    max-width:var(--site-max-width,1920px);
}

@media (min-width:1600px){
    .calc-page-heading,
    .calc-wrapper{
        width:calc(100% - 80px);
    }
}

@media (max-width:1200px){
    .calc-page-heading,
    .calc-wrapper{
        width:calc(100% - 40px);
        max-width:none;
    }
}

@media (max-width:768px){
    .calc-page-heading,
    .calc-wrapper{
        width:calc(100% - 28px);
    }
}

@media (max-width:480px){
    .calc-page-heading,
    .calc-wrapper{
        width:calc(100% - 20px);
    }
}



@media (max-width:768px){
    .calc-page-heading{padding:10px 0 7px}
    .calc-page-heading h1{font-size:24px;line-height:1.1}
    .calc-page-heading p{font-size:12px;line-height:1.4}
    .calc-wrapper{grid-template-columns:1fr;gap:10px;margin-bottom:14px}
    .calc-panel-card{padding:14px}
    .panel-inner-title{font-size:15px;margin-bottom:10px;padding-bottom:8px}
    .calc-form-group{margin-bottom:13px}
    .calc-input-field{min-height:44px;font-size:16px}
    .permit-row,.payment-row{gap:9px 12px}
    .calc-selection-label{font-size:12px}
    .final-cost-display-value{font-size:25px}
}



/* ===== КАРТА МАРШРУТА V6 ===== */
.route-addresses{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.route-address-field label{display:block;margin-bottom:6px;color:#fff;font-size:13px;font-weight:600}
.route-map-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.route-map-btn{min-height:38px;padding:8px 12px;border:1px solid rgba(255,122,0,.48);border-radius:7px;background:rgba(255,122,0,.08);color:#ff9b45;font:700 12px/1.2 Inter,sans-serif;cursor:pointer}
.route-map-btn:hover{border-color:#ff7a00;background:rgba(255,122,0,.14)}
.route-map{width:100%;height:330px;border:1px solid #263b55;border-radius:10px;overflow:hidden;background:#0b1d34}
.route-map-status{margin:8px 0 0;color:#8393a8;font-size:11px;line-height:1.45}
.route-waypoints{display:grid;gap:8px;margin:10px 0}
.route-waypoint-row{display:grid;grid-template-columns:1fr auto;gap:8px}
.route-waypoint-remove{width:38px;border:1px solid #354b66;border-radius:7px;background:#101f35;color:#fff;cursor:pointer}
.price-options{display:grid;gap:9px;margin-top:14px}
.price-option{display:flex;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid rgba(89,120,156,.25);border-radius:8px;background:rgba(7,24,45,.35);font-size:13px}
.price-option strong{color:#fff}.price-option span{color:#ff8d2a;font-weight:800;white-space:nowrap}
@media(max-width:768px){.route-addresses{grid-template-columns:1fr}.route-map{height:280px}}

/* ========================================================================== 
   ЯНДЕКС КАРТЫ JS API 3.0 — Геосаджест и статусы
========================================================================== */
.route-suggest-wrap{position:relative;min-width:0;flex:1 1 auto}
.route-suggest-list{position:absolute;z-index:50;top:calc(100% + 5px);left:0;right:0;max-height:260px;overflow:auto;background:#0d1b30;border:1px solid #2a425f;border-radius:9px;box-shadow:0 16px 36px rgba(0,0,0,.34)}
.route-suggest-list[hidden]{display:none!important}
.route-suggest-item{display:block;width:100%;padding:10px 12px;border:0;border-bottom:1px solid rgba(89,120,156,.18);background:transparent;color:#fff;text-align:left;font:500 12px/1.3 "Inter",sans-serif;cursor:pointer}
.route-suggest-item:last-child{border-bottom:0}
.route-suggest-item:hover{background:rgba(255,122,0,.11)}
.route-suggest-item strong,.route-suggest-item span{display:block}
.route-suggest-item strong{font-size:12px;color:#fff}
.route-suggest-item span{margin-top:2px;color:#8fa0b6;font-size:10px}
.route-map-status[data-state="ok"]{color:#a8d5b2}
.route-map-status[data-state="warn"]{color:#e9c27b}
.route-map-status[data-state="error"]{color:#ff9a9a}
.route-map-status[data-state="loading"]{color:#b8c8dc}

.v13-price-notice{
    margin-top:7px;
    color:#8192a8;
    font-size:10px;
    line-height:1.35;
    text-align:center;
}

.v13-price-notice::first-letter{
    color:#ff7a00;
}

/* ==========================================================================
   V20 — ТОЛЬКО ОТОБРАЖЕНИЕ ПРЕДПРОСМОТРА ЗАЯВКИ
   Вписывает полный лист A4 в правую колонку.
   Форму, документ, печать, PDF, Word и JavaScript не меняет.
============================================================================ */
.order-preview-scroll{
    overflow-y:auto;
    overflow-x:hidden;
}

.order-preview-scroll .order-sheet{
    width:100%;
    max-width:210mm;
    min-width:0;
    margin-left:auto;
    margin-right:auto;
}


