:root {
    --op-font-size: 0.86rem;
    --op-radius: 0.3rem;
    --op-gap: 0.55rem;
    --op-header-bg: #eef2f6;
    --op-border-color: #d8dee6;
}

body {
    background-color: #f4f6f8;
    font-size: var(--op-font-size);
    line-height: 1.25;
}

.navbar {
    min-height: 48px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.navbar .navbar-brand {
    font-size: 0.92rem;
    font-weight: 600;
}

.navbar .nav-link {
    padding: 0.35rem 0.6rem;
    font-size: 0.8rem;
    border-radius: 0.25rem;
}

.navbar .nav-link.active {
    color: #fff;
    background-color: rgba(13, 110, 253, 0.32);
}

.nav-main-sections {
    gap: 0.15rem;
}

.nav-quick-actions .btn {
    white-space: nowrap;
}

.op-panel {
    max-width: 100%;
}

.op-panel .row {
    --bs-gutter-x: 0.75rem;
    --bs-gutter-y: 0.55rem;
}

.card {
    border-radius: var(--op-radius);
    border-color: var(--op-border-color);
    margin-bottom: var(--op-gap);
    box-shadow: 0 1px 2px rgba(24, 39, 75, 0.05);
}

.card-header {
    padding: 0.4rem 0.65rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    background-color: var(--op-header-bg);
    border-bottom: 1px solid var(--op-border-color);
}

.card-body {
    padding: 0.65rem;
}

.op-panel h1,
.op-panel h2,
.op-panel h3,
.op-panel h4,
.op-panel h5 {
    margin-bottom: 0.45rem;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.table {
    margin-bottom: 0;
    font-size: 0.8rem;
}

.table.table-sm th,
.table.table-sm td {
    padding: 0.26rem 0.42rem;
    vertical-align: middle;
}

.table thead th {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.025em;
    white-space: nowrap;
    background: #f8fafc;
}

.table td .btn,
.table th .btn {
    vertical-align: middle;
}

form {
    margin-bottom: 0;
}

.form-label {
    margin-bottom: 0.15rem;
    font-size: 0.76rem;
    font-weight: 600;
}

.form-control,
.form-select {
    min-height: calc(1.8rem + 2px);
    font-size: 0.8rem;
    padding: 0.2rem 0.45rem;
}

.form-control-sm,
.form-select-sm {
    min-height: calc(1.62rem + 2px);
    font-size: 0.76rem;
    padding-top: 0.14rem;
    padding-bottom: 0.14rem;
}

.form-text {
    margin-top: 0.15rem;
    font-size: 0.72rem;
}

.btn {
    border-radius: var(--op-radius);
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.22rem 0.5rem;
}

.btn-sm {
    font-size: 0.74rem;
    padding: 0.16rem 0.38rem;
}

.route-color-dot {
    width: 14px;
    height: 14px;
    background: var(--route-color, #0d6efd);
}

.planning-map {
    height: 600px;
    width: 100%;
}

.geo-filter-select {
    max-width: 260px;
}

.cell-address-wide {
    min-width: 280px;
}

.preview-street-input {
    min-width: 160px;
    flex: 1 1 160px;
}

.preview-house-input {
    min-width: 70px;
    max-width: 90px;
    flex: 0 0 80px;
}

.preview-coord-input {
    min-width: 110px;
    flex: 1 1 110px;
}

.cell-coords {
    min-width: 220px;
}

.inline-edit-input {
    border-color: transparent;
    background-color: transparent;
    padding-left: 0.15rem;
    padding-right: 0.15rem;
}

.inline-edit-input:focus {
    background-color: #fff;
    border-color: #86b7fe;
}

.preview-import-table tr.geo-cache td {
    background-color: #ecf9f0;
}

.preview-import-table tr.geo-fallback td {
    background-color: #fff9e6;
}

.preview-import-table tr.geo-missing td {
    background-color: #fff0f0;
}

.order-info-block {
    border: 1px solid #e2e8f0;
    border-radius: 0.25rem;
    padding: 0.25rem 0.35rem;
    line-height: 1.2;
    background: #fbfcfe;
}

.order-recipient-block {
    border-left: 3px solid #0d6efd;
}

.order-cargo-block {
    border-left: 3px solid #198754;
}

.order-messages-feed .message-internal {
    border-left: 3px solid #ffc107;
    background: #fff9e6;
}

.orders-comment-cell {
    max-width: 220px;
}

.order-detail-grid {
    display: grid;
    grid-template-columns: minmax(140px, 180px) minmax(0, 1fr);
    gap: 0.3rem 0.65rem;
    font-size: 0.8rem;
}

.order-detail-grid dt {
    margin: 0;
    font-weight: 600;
    color: #4b5563;
}

.order-detail-grid dd {
    margin: 0;
}

/* Договоры: HTML-шаблон и печать */
.contract-document {
    font-family: "Times New Roman", Times, serif;
    font-size: 12pt;
    line-height: 1.35;
    color: #111;
    max-width: 210mm;
}

.contract-document-plain {
    white-space: pre-wrap;
    font-family: inherit;
}

.contract-document h1,
.contract-document h2,
.contract-document h3 {
    text-align: center;
    font-weight: 700;
    margin: 0 0 1em;
}

.contract-document p {
    margin: 0 0 0.75em;
    text-align: justify;
    text-indent: 1.25cm;
}

.contract-document p.no-indent,
.contract-document .no-indent {
    text-indent: 0;
}

.contract-document ol,
.contract-document ul {
    margin: 0 0 0.75em 1.5cm;
    padding: 0;
}

.contract-document li {
    margin-bottom: 0.35em;
    text-align: justify;
}

.contract-document table {
    width: 100%;
    border-collapse: collapse;
    margin: 0.75em 0;
    font-size: inherit;
}

.contract-document table th,
.contract-document table td {
    border: 1px solid #333;
    padding: 0.25em 0.4em;
    vertical-align: top;
}

@media print {
    body {
        background: #fff !important;
    }

    .navbar,
    .d-print-none,
    .contract-print-area .card-header,
    .row > .col-lg-4 {
        display: none !important;
    }

    .row > .col-lg-8 {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
    }

    .contract-print-area,
    .contract-print-area .card-body {
        border: none !important;
        box-shadow: none !important;
        padding: 0 !important;
    }

    .contract-document {
        max-width: none;
    }

    @page {
        size: A4;
        margin: 20mm 15mm 20mm 25mm;
    }
}
