:root {
    --brand: #123a5a;
    --brand-2: #184f79;
    --brand-dark: #0c2d47;
    --accent: #18a957;
    --bg: #f4f7fb;
    --surface: #ffffff;
    --surface-soft: #f8fafc;
    --border: #dde5ee;
    --text: #1f2933;
    --muted: #6b7280;
    --danger: #b42318;
    --warning: #b54708;
    --shadow: 0 14px 35px rgba(25, 42, 65, .08);
    --radius: 16px;
}

* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
    background: var(--bg);
}

body {
    min-height: 100vh;
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: Inter, Arial, Helvetica, sans-serif;
    font-size: 15px;
    line-height: 1.45;
}

a {
    color: var(--brand);
    text-decoration: none;
}

button,
input,
select,
textarea {
    font: inherit;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

.topbar {
    background: linear-gradient(135deg, var(--brand-dark), var(--brand-2));
    color: white;
}

.topbar__inner {
    width: min(1380px, calc(100% - 40px));
    min-height: 76px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    color: white;
}

.brand__logo-wrap {
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .1);
}

.brand__logo {
    width: 40px;
    height: 40px;
    object-fit: contain;
}

.brand__name,
.brand__subtitle {
    display: block;
}

.brand__name {
    font-size: 21px;
    line-height: 1.1;
}

.brand__subtitle {
    margin-top: 4px;
    color: rgba(255, 255, 255, .76);
    font-size: 12px;
    font-weight: 500;
}

.topbar__user {
    display: flex;
    align-items: center;
    gap: 15px;
    text-align: right;
}

.topbar__user strong,
.topbar__user small {
    display: block;
}

.topbar__user small {
    margin-top: 2px;
    color: rgba(255, 255, 255, .72);
    font-size: 12px;
}

.menu-toggle {
    display: none;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 10px;
    background: rgba(255, 255, 255, .1);
    padding: 10px;
}

.menu-toggle span {
    display: block;
    height: 2px;
    margin: 4px 0;
    background: white;
    border-radius: 2px;
}

.nav {
    background: #fff;
    border-bottom: 1px solid var(--border);
    box-shadow: 0 4px 12px rgba(25, 42, 65, .035);
}

.nav__inner {
    width: min(1380px, calc(100% - 40px));
    min-height: 52px;
    margin: 0 auto;
    display: flex;
    align-items: stretch;
    gap: 4px;
    overflow-x: auto;
    scrollbar-width: thin;
}

.nav__link {
    display: inline-flex;
    align-items: center;
    padding: 0 12px;
    color: #526170;
    border-bottom: 3px solid transparent;
    white-space: nowrap;
    font-size: 13px;
    font-weight: 700;
}

.nav__link:hover,
.nav__link--active {
    color: var(--brand);
    background: #f5f9fd;
    border-bottom-color: var(--accent);
}

.page {
    padding: 28px 0 48px;
}

.container {
    width: min(1380px, calc(100% - 40px));
    margin: 0 auto;
}

.page-head {
    margin-bottom: 22px;
}

.page-head--actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.page-head h1 {
    margin: 0;
    font-size: clamp(27px, 3vw, 36px);
    line-height: 1.12;
    letter-spacing: -.025em;
}

.page-head p {
    margin: 7px 0 0;
    color: var(--muted);
    font-size: 16px;
}

.panel {
    margin-bottom: 20px;
    overflow: hidden;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}

.panel--compact {
    padding: 16px;
}

.panel__head {
    min-height: 74px;
    padding: 18px 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    border-bottom: 1px solid var(--border);
}

.panel__head--plain {
    min-height: auto;
    padding: 0 0 20px;
    border: 0;
}

.panel__head h2 {
    margin: 0;
    font-size: 19px;
}

.panel__head p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: 13px;
}

.btn {
    min-height: 44px;
    padding: 0 17px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    border-radius: 10px;
    cursor: pointer;
    font-weight: 800;
    transition: .17s ease;
}

.btn:hover {
    transform: translateY(-1px);
}

.btn:disabled {
    cursor: not-allowed;
    opacity: .5;
    transform: none;
}

.btn--primary {
    color: white;
    background: var(--brand);
    box-shadow: 0 7px 17px rgba(18, 58, 90, .17);
}

.btn--primary:hover {
    background: var(--brand-dark);
}

.btn--secondary {
    color: var(--brand);
    background: white;
    border-color: #cbd8e4;
}

.btn--secondary:hover {
    background: #f5f9fc;
}

.btn--ghost {
    color: white;
    background: rgba(255, 255, 255, .09);
    border-color: rgba(255, 255, 255, .24);
}

.btn--small {
    min-height: 36px;
    padding: 0 12px;
    border-radius: 8px;
    font-size: 13px;
}

.btn--wide {
    width: 100%;
}

.alert {
    margin-bottom: 16px;
    padding: 13px 16px;
    border-radius: 11px;
    border: 1px solid transparent;
    font-weight: 700;
}

.alert--success {
    color: #166534;
    background: #dcfce7;
    border-color: #bbf7d0;
}

.alert--error {
    color: #991b1b;
    background: #fee2e2;
    border-color: #fecaca;
}

.stats-grid {
    margin-bottom: 20px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 15px;
}

.stat-card {
    min-height: 150px;
    padding: 21px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: var(--text);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    transition: .17s ease;
}

.stat-card:hover,
.quick-card:hover {
    transform: translateY(-2px);
    border-color: #b8cbdb;
}

.stat-card__label {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.stat-card strong {
    margin: 7px 0 4px;
    color: var(--brand);
    font-size: 32px;
    line-height: 1;
}

.stat-card .stat-card__money {
    font-size: 24px;
}

.stat-card small {
    color: var(--muted);
}

.quick-grid {
    margin-bottom: 20px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 15px;
}

.quick-card {
    min-height: 94px;
    padding: 17px;
    display: flex;
    align-items: center;
    gap: 13px;
    color: var(--text);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 14px;
    transition: .17s ease;
}

.quick-card__icon {
    width: 43px;
    height: 43px;
    flex: 0 0 43px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    color: white;
    background: var(--accent);
    font-size: 25px;
    font-weight: 800;
}

.quick-card strong,
.quick-card small {
    display: block;
}

.quick-card small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
}

.filters {
    margin-bottom: 17px;
    display: flex;
    align-items: flex-end;
    gap: 10px;
}

.field {
    display: block;
    min-width: 0;
}

.field--grow {
    flex: 1;
}

.field--full {
    grid-column: 1 / -1;
}

.field__label {
    display: block;
    margin-bottom: 7px;
    color: #334155;
    font-size: 13px;
    font-weight: 800;
}

.field__help {
    display: block;
    margin-top: 6px;
    color: var(--muted);
    font-size: 12px;
}

.input,
.select,
.textarea,
.file-input {
    width: 100%;
    border: 1px solid #cfd9e3;
    border-radius: 10px;
    background: white;
    color: var(--text);
}

.input,
.select {
    height: 44px;
    padding: 0 13px;
}

.textarea {
    padding: 11px 13px;
    resize: vertical;
    line-height: 1.5;
}

.file-input {
    padding: 9px;
}

.input:focus,
.select:focus,
.textarea:focus,
.file-input:focus {
    border-color: var(--brand-2);
    outline: 3px solid rgba(24, 79, 121, .11);
}

.form-card {
    padding: 23px;
}

.form-card--side {
    position: sticky;
    top: 18px;
    align-self: start;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 19px;
}

.form-stack {
    display: grid;
    gap: 17px;
}

.form-actions {
    margin-top: 24px;
    padding-top: 20px;
    display: flex;
    gap: 11px;
    border-top: 1px solid var(--border);
}

.switch-card {
    min-height: 66px;
    padding: 13px 14px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    border: 1px solid var(--border);
    border-radius: 11px;
    background: var(--surface-soft);
    cursor: pointer;
}

.switch-card input {
    margin-top: 3px;
}

.switch-card strong,
.switch-card small {
    display: block;
}

.switch-card small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
}

.product-preview {
    width: 180px;
    height: 140px;
    margin-bottom: 10px;
    display: block;
    object-fit: contain;
    background: white;
    border: 1px solid var(--border);
    border-radius: 12px;
}

.product-thumb {
    width: 68px;
    height: 54px;
    display: grid;
    place-items: center;
    object-fit: contain;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: white;
}

.product-thumb--empty {
    color: #8a98a8;
    background: #f1f5f9;
    font-size: 11px;
    text-align: center;
}

.table-wrap {
    overflow-x: auto;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
}

.data-table th {
    padding: 13px 16px;
    color: #64748b;
    background: #f8fafc;
    border-bottom: 1px solid var(--border);
    font-size: 11px;
    text-align: left;
    text-transform: uppercase;
    letter-spacing: .045em;
    white-space: nowrap;
}

.data-table td {
    padding: 14px 16px;
    border-bottom: 1px solid #e7edf3;
    vertical-align: middle;
}

.data-table tbody tr:last-child td {
    border-bottom: 0;
}

.data-table tbody tr:hover {
    background: #fbfdff;
}

.table-sub {
    margin-top: 3px;
    display: block;
    color: var(--muted);
    font-size: 12px;
    font-weight: 500;
}

.table-link {
    font-weight: 800;
}

.table-actions {
    text-align: right;
    white-space: nowrap;
}

.status {
    min-height: 26px;
    padding: 0 9px;
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
}

.status--success {
    color: #166534;
    background: #dcfce7;
}

.status--muted {
    color: #64748b;
    background: #edf2f7;
}

.empty-state {
    padding: 48px 22px;
    text-align: center;
}

.empty-state strong {
    display: block;
    font-size: 20px;
}

.empty-state p {
    max-width: 520px;
    margin: 7px auto 19px;
    color: var(--muted);
}

.split-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 390px;
    gap: 20px;
}

.summary-line {
    margin-bottom: 16px;
    padding: 14px 17px;
    display: flex;
    gap: 30px;
    background: #eaf3f9;
    border: 1px solid #cfe1ee;
    border-radius: 12px;
}

.summary-line span {
    color: var(--muted);
}

.summary-line strong {
    margin-left: 6px;
    color: var(--brand);
}

.document-meta {
    padding: 18px;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
}

.document-meta > div {
    min-width: 0;
    padding: 12px;
    background: var(--surface-soft);
    border-radius: 10px;
}

.document-meta span,
.document-meta strong {
    display: block;
}

.document-meta span {
    color: var(--muted);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.document-meta strong {
    margin-top: 4px;
}

.note-panel {
    padding: 18px 21px;
}

.note-panel p {
    margin: 5px 0;
}

.positive {
    color: #15803d;
    font-weight: 800;
}

.negative {
    color: var(--danger);
    font-weight: 800;
}

.lines-head {
    margin: 25px 0 13px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.lines-head h2 {
    margin: 0;
    font-size: 19px;
}

.lines-head p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: 13px;
}

.operation-lines {
    display: grid;
    gap: 11px;
}

.operation-line {
    position: relative;
    padding: 15px 48px 15px 15px;
    display: grid;
    grid-template-columns: minmax(260px, 2fr) minmax(120px, .7fr) minmax(140px, .8fr);
    align-items: end;
    gap: 12px;
    background: var(--surface-soft);
    border: 1px solid var(--border);
    border-radius: 12px;
}

.operation-form[data-operation="transfer"] .operation-line,
.operation-form[data-operation="writeoff"] .operation-line {
    grid-template-columns: minmax(300px, 2fr) minmax(140px, .7fr);
}

.line-remove {
    position: absolute;
    top: 30px;
    right: 12px;
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    color: #7b8794;
    border: 0;
    border-radius: 8px;
    background: #e7edf3;
    cursor: pointer;
    font-size: 20px;
}

.line-remove:hover {
    color: white;
    background: var(--danger);
}

.inline-warning {
    margin-top: 15px;
    padding: 12px 14px;
    color: #92400e;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 10px;
}

.muted {
    color: var(--muted);
}

.auth-body {
    background:
        radial-gradient(circle at 18% 20%, rgba(24,169,87,.16), transparent 28%),
        radial-gradient(circle at 85% 78%, rgba(24,79,121,.22), transparent 34%),
        linear-gradient(135deg, #0c2d47, #164f78);
}

.auth-shell {
    min-height: 100vh;
    padding: 25px;
    display: grid;
    place-items: center;
}

.auth-panel {
    width: min(460px, 100%);
    padding: 30px;
    background: rgba(255, 255, 255, .97);
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 20px;
    box-shadow: 0 28px 65px rgba(1, 17, 30, .28);
}

.auth-panel__brand {
    margin-bottom: 22px;
    display: flex;
    align-items: center;
    gap: 14px;
}

.auth-panel__brand img {
    width: 64px;
    height: 64px;
    object-fit: contain;
    border-radius: 14px;
    background: #eef4f8;
}

.auth-panel__brand h1 {
    margin: 0;
    color: var(--brand);
    font-size: 23px;
}

.auth-panel__brand p {
    margin: 4px 0 0;
    color: var(--muted);
}

.auth-panel__info {
    margin-bottom: 19px;
    padding: 12px 14px;
    color: #385265;
    background: #edf5fa;
    border: 1px solid #d4e5f1;
    border-radius: 10px;
    font-size: 13px;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.error-state {
    max-width: 650px;
    margin: 40px auto;
}

@media (max-width: 1100px) {
    .stats-grid,
    .quick-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .split-layout {
        grid-template-columns: 1fr;
    }

    .form-card--side {
        position: static;
    }

    .document-meta {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .topbar__inner,
    .nav__inner,
    .container {
        width: min(100% - 26px, 1380px);
    }

    .topbar__inner {
        min-height: 68px;
    }

    .brand__logo-wrap {
        width: 45px;
        height: 45px;
    }

    .brand__logo {
        width: 35px;
        height: 35px;
    }

    .brand__name {
        font-size: 18px;
    }

    .brand__subtitle,
    .topbar__user > span {
        display: none;
    }

    .menu-toggle {
        display: block;
        margin-left: auto;
    }

    .topbar__user {
        display: none;
    }

    .nav {
        display: none;
    }

    .nav.is-open {
        display: block;
    }

    .nav__inner {
        padding: 8px 0 12px;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 5px;
        overflow: visible;
    }

    .nav__link {
        min-height: 42px;
        padding: 0 10px;
        border: 0;
        border-radius: 8px;
    }

    .nav__link--active {
        background: #eaf3f9;
    }

    .page {
        padding-top: 21px;
    }

    .page-head--actions,
    .filters,
    .form-actions,
    .lines-head {
        align-items: stretch;
        flex-direction: column;
    }

    .page-head--actions .btn,
    .filters .btn,
    .form-actions .btn {
        width: 100%;
    }

    .stats-grid,
    .quick-grid,
    .form-grid,
    .document-meta {
        grid-template-columns: 1fr;
    }

    .stat-card {
        min-height: 120px;
    }

    .operation-line,
    .operation-form[data-operation="transfer"] .operation-line,
    .operation-form[data-operation="writeoff"] .operation-line {
        padding-right: 15px;
        grid-template-columns: 1fr;
    }

    .line-remove {
        position: static;
        width: 100%;
        height: 38px;
        margin-top: 2px;
    }

    .table-wrap {
        margin: 0;
    }

    .data-table th,
    .data-table td {
        padding: 12px 13px;
    }

    .summary-line {
        flex-direction: column;
        gap: 5px;
    }

    .auth-shell {
        padding: 15px;
    }

    .auth-panel {
        padding: 23px;
    }
}

/* v2: заявки, интеграции и кабинет монтажника */
.integration-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.section-gap { margin-top:20px; }
.form-actions--border { margin-top:20px; padding-top:18px; border-top:1px solid var(--border); }
.mono-break { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; overflow-wrap:anywhere; color:var(--muted); }
.input-group { display:flex; align-items:center; border:1px solid #cfd9e4; border-radius:10px; background:#fff; overflow:hidden; }
.input-group .input { border:0; box-shadow:none; }
.input-group span { padding:0 13px; color:var(--muted); white-space:nowrap; }
.webhook-box,.note-box,.subpanel { margin-top:18px; padding:16px; border:1px solid var(--border); border-radius:12px; background:var(--surface-soft); }
.webhook-box strong,.note-box strong,.subpanel h3 { display:block; margin:0 0 8px; }
.webhook-box code { display:block; margin-top:8px; overflow-wrap:anywhere; }
.inline-warning { margin-bottom:14px; padding:12px 14px; border-radius:10px; background:#fff7ed; color:#9a3412; border:1px solid #fed7aa; }
.summary-grid--jobs { grid-template-columns:repeat(4,minmax(0,1fr)); }
.split-layout--wide { grid-template-columns:minmax(0,2fr) minmax(320px,1fr); }
.file-grid { padding:18px 22px; display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; }
.file-card { padding:14px; border:1px solid var(--border); border-radius:11px; background:#fff; }
.file-card strong,.file-card small { display:block; }
.file-card small { margin-top:5px; color:var(--muted); overflow-wrap:anywhere; }
.assignee-row { padding:12px 0; display:grid; grid-template-columns:1fr 130px; gap:10px; align-items:center; border-bottom:1px solid var(--border); }
.check-label { display:flex; align-items:flex-start; gap:9px; }
.check-label span,.check-label strong,.check-label small { display:block; }
.check-label small { margin-top:3px; color:var(--muted); }
.input--compact { min-width:90px; height:38px; }
.salary-list { margin-top:20px; padding-top:16px; border-top:1px solid var(--border); }
.salary-list h3 { margin:0 0 10px; }
.salary-list div { display:flex; justify-content:space-between; gap:12px; padding:8px 0; }
.installer-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:16px; }
.installer-job-card { padding:20px; color:var(--text); background:#fff; border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); transition:.16s ease; }
.installer-job-card:hover { transform:translateY(-2px); border-color:#b8cbdb; }
.installer-job-card__head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.installer-job-card h2 { margin:16px 0 7px; font-size:20px; }
.installer-job-card p { margin:0; color:var(--muted); }
.installer-job-card__meta { margin-top:18px; display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.installer-job-card__meta span { padding:10px; border-radius:10px; background:var(--surface-soft); color:var(--muted); font-size:12px; }
.installer-job-card__meta strong { display:block; margin-top:4px; color:var(--text); font-size:14px; }
.report-lines { margin:18px 0 12px; display:grid; gap:12px; }
.report-line { padding:14px; display:grid; grid-template-columns:minmax(0,1fr) 150px auto; gap:12px; align-items:end; border:1px solid var(--border); border-radius:12px; background:var(--surface-soft); }
.report-line__remove { margin-bottom:1px; }
.file-input { padding:10px; height:auto; }
.inline-form,.approval-actions { display:flex; align-items:center; gap:8px; }
.status--danger { color:#991b1b; background:#fee2e2; }
.installer-body .container,.installer-body .topbar__inner,.installer-body .nav__inner { width:min(1120px,calc(100% - 28px)); }

@media (max-width: 980px) {
    .integration-grid,.split-layout--wide { grid-template-columns:1fr; }
    .summary-grid--jobs { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 680px) {
    .summary-grid--jobs { grid-template-columns:1fr 1fr; }
    .report-line { grid-template-columns:1fr; }
    .report-line__remove { width:100%; }
    .inline-form { align-items:stretch; flex-direction:column; }
    .installer-job-card__meta { grid-template-columns:1fr; }
}

/* =====================================================================
   Beta v3 visual layer. Placeholder SVG files are in /assets/icons/.
   Replace files while keeping their names to install final icons.
   ===================================================================== */
:root {
    --brand: #103f63;
    --brand-2: #17618f;
    --brand-dark: #082d49;
    --accent: #15a96b;
    --accent-soft: #dff8ec;
    --installer-accent: #ff8b3d;
    --installer-accent-2: #ffb15c;
    --installer-ink: #17314a;
    --shadow-soft: 0 10px 30px rgba(20, 47, 72, .08);
    --shadow-card: 0 18px 45px rgba(14, 45, 70, .11);
}

.topbar__inner,
.nav__inner {
    width: min(1480px, calc(100% - 48px));
}

.topbar__inner {
    min-height: 82px;
}

.brand__logo-wrap {
    width: 60px;
    height: 60px;
    border-radius: 16px;
    flex: 0 0 auto;
}

.brand__logo {
    width: 52px;
    height: 52px;
}

.brand__copy {
    min-width: 190px;
}

.brand__name {
    font-size: 24px;
    letter-spacing: -.025em;
}

.brand__subtitle {
    font-size: 13px;
}

.user-chip {
    padding: 7px 11px;
    border-radius: 11px;
    background: rgba(255,255,255,.06);
}

.nav__inner {
    justify-content: space-between;
    overflow: visible;
}

.nav__primary {
    min-width: 0;
    display: flex;
    align-items: stretch;
    overflow-x: auto;
    scrollbar-width: none;
}

.nav__primary::-webkit-scrollbar {
    display: none;
}

.nav__link {
    min-height: 56px;
    padding-inline: 15px;
}

.nav__link--icon {
    gap: 8px;
}

.nav__link--icon img {
    width: 22px;
    height: 22px;
    color: currentColor;
    opacity: .8;
}

.nav-more {
    position: relative;
    flex: 0 0 auto;
}

.nav-more > summary {
    min-height: 56px;
    padding: 0 18px;
    display: flex;
    align-items: center;
    gap: 8px;
    color: #526170;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
    border-bottom: 3px solid transparent;
}

.nav-more > summary::-webkit-details-marker {
    display: none;
}

.nav-more[open] > summary,
.nav-more--active > summary {
    color: var(--brand);
    background: #f5f9fd;
    border-bottom-color: var(--accent);
}

.nav-more__menu {
    position: absolute;
    z-index: 50;
    top: calc(100% + 8px);
    right: 0;
    min-width: 245px;
    padding: 9px;
    display: grid;
    background: white;
    border: 1px solid var(--border);
    border-radius: 14px;
    box-shadow: 0 20px 50px rgba(11, 44, 68, .18);
}

.nav-more__menu a {
    padding: 11px 13px;
    border-radius: 9px;
    color: #384a5b;
    font-weight: 700;
}

.nav-more__menu a:hover {
    color: var(--brand);
    background: #eef6fb;
}

/* Installer visual identity */
.installer-body {
    --brand: #183f5f;
    --brand-2: #245f82;
    --accent: var(--installer-accent);
    background:
        radial-gradient(circle at 12% 9%, rgba(255, 172, 95, .22), transparent 22rem),
        radial-gradient(circle at 92% 20%, rgba(72, 165, 217, .18), transparent 25rem),
        linear-gradient(180deg, #eff7fb 0, #f7f9fc 38rem, #f4f7fa 100%);
}

.installer-body .topbar {
    background: linear-gradient(135deg, #123751, #1c5b78 64%, #247297);
}

.installer-body .nav {
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(12px);
}

.installer-body .page {
    padding-top: 26px;
}

.installer-hero {
    position: relative;
    overflow: hidden;
    margin-bottom: 24px;
    padding: 28px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 24px;
    align-items: center;
    color: white;
    background: linear-gradient(135deg, #123b5b 0%, #1f6688 70%, #2387aa 100%);
    border-radius: 24px;
    box-shadow: 0 22px 55px rgba(20, 69, 101, .24);
}

.installer-hero::after {
    content: '';
    position: absolute;
    width: 240px;
    height: 240px;
    right: -70px;
    top: -105px;
    border-radius: 50%;
    border: 44px solid rgba(255,255,255,.08);
}

.installer-hero h1 {
    margin: 0 0 8px;
    font-size: clamp(28px, 4vw, 42px);
    letter-spacing: -.035em;
}

.installer-hero p {
    max-width: 720px;
    margin: 0;
    color: rgba(255,255,255,.78);
    font-size: 16px;
}

.installer-hero__icon {
    position: relative;
    z-index: 1;
    width: 96px;
    height: 96px;
    padding: 18px;
    color: white;
    border-radius: 22px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.2);
}

.summary-grid--installer {
    grid-template-columns: repeat(4, minmax(0,1fr));
    margin-bottom: 24px;
}

.installer-stat {
    min-height: 122px;
    padding: 19px;
    display: grid;
    grid-template-columns: 50px 1fr;
    gap: 14px;
    align-items: center;
    background: rgba(255,255,255,.93);
    border: 1px solid rgba(205,221,232,.85);
    border-radius: 19px;
    box-shadow: var(--shadow-soft);
}

.installer-stat img,
.info-tile img,
.client-info__icon,
.action-card__icon {
    width: 48px;
    height: 48px;
    padding: 8px;
    color: #4b738e;
    border-radius: 13px;
    background: #edf5f9;
}

.installer-stat span {
    display: block;
    color: #718292;
    font-size: 13px;
}

.installer-stat strong {
    display: block;
    margin-top: 2px;
    font-size: 22px;
    color: #173b55;
}

.installer-job-card {
    position: relative;
    overflow: hidden;
    border: 1px solid #d9e6ee;
    border-radius: 21px;
    box-shadow: var(--shadow-soft);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.installer-job-card::before {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: linear-gradient(var(--installer-accent), var(--installer-accent-2));
}

.installer-job-card:hover {
    transform: translateY(-3px);
    border-color: #bdcfdb;
    box-shadow: var(--shadow-card);
}

.installer-job-card__address {
    display: flex;
    gap: 9px;
    align-items: flex-start;
}

.installer-job-card__address img {
    width: 23px;
    height: 23px;
    color: #66869b;
}

.installer-job-card__details {
    margin-top: 17px;
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 10px;
}

.job-detail-chip {
    padding: 10px 11px;
    border-radius: 11px;
    background: #f2f7fa;
}

.job-detail-chip small,
.job-detail-chip strong {
    display: block;
}

.job-detail-chip small {
    color: #7c8b98;
    font-size: 11px;
}

.job-detail-chip strong {
    margin-top: 3px;
    color: #25475e;
    font-size: 13px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Job information cards */
.client-info-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin: 20px 0 24px;
}

.client-info {
    min-height: 104px;
    padding: 16px;
    display: flex;
    gap: 13px;
    align-items: center;
    background: white;
    border: 1px solid var(--border);
    border-radius: 17px;
    box-shadow: 0 9px 25px rgba(19,52,77,.06);
}

.client-info__text {
    min-width: 0;
}

.client-info__text small,
.client-info__text strong {
    display: block;
}

.client-info__text small {
    color: #798897;
    font-size: 12px;
}

.client-info__text strong {
    margin-top: 4px;
    color: #173a53;
    font-size: 15px;
    word-break: break-word;
}

.job-contact-panel {
    margin-bottom: 22px;
    padding: 20px;
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 14px;
    background: linear-gradient(135deg,#fff,#f8fbfd);
    border: 1px solid var(--border);
    border-radius: 20px;
    box-shadow: var(--shadow-soft);
}

.job-contact-panel__title {
    grid-column: 1/-1;
    display: flex;
    align-items: center;
    gap: 10px;
}

.job-contact-panel__title img {
    width: 34px;
    height: 34px;
    color: #46708a;
}

.job-contact-row {
    padding: 13px 14px;
    background: #f1f7fa;
    border-radius: 12px;
}

.job-contact-row small,
.job-contact-row strong {
    display: block;
}

.job-contact-row small {
    color: #728493;
}

.job-contact-row strong {
    margin-top: 3px;
    color: #173c56;
}

.required-mark {
    color: #d5352b;
}

.file-required-note {
    margin-top: 8px;
    padding: 10px 12px;
    color: #7c4b10;
    background: #fff3df;
    border: 1px solid #f2d5a6;
    border-radius: 10px;
    font-size: 13px;
}

/* Multi-position installer request */
.stock-request-lines {
    display: grid;
    gap: 11px;
}

.stock-request-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 125px 42px;
    gap: 9px;
    align-items: end;
}

.stock-request-line .btn-icon {
    width: 42px;
    height: 42px;
    padding: 0;
    display: grid;
    place-items: center;
    border: 1px solid #d8e2e9;
    border-radius: 10px;
    background: white;
    color: #a13b36;
    font-weight: 900;
    cursor: pointer;
}

/* Telegram linking */
.telegram-link-box {
    display: grid;
    gap: 8px;
    min-width: 240px;
}

.telegram-profile {
    display: flex;
    align-items: center;
    gap: 9px;
}

.telegram-profile__avatar {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: white;
    background: linear-gradient(135deg,#2aabee,#1686bd);
    font-weight: 900;
}

.telegram-profile small,
.telegram-profile strong {
    display: block;
}

.telegram-profile small {
    color: var(--muted);
}

.telegram-help {
    padding: 14px 16px;
    display: flex;
    gap: 12px;
    color: #31566d;
    background: #eaf6fd;
    border: 1px solid #cbe6f5;
    border-radius: 14px;
}

.telegram-help img {
    width: 34px;
    height: 34px;
    color: #298ec2;
}

/* Integration diagnostics */
.integration-health {
    margin-top: 12px;
    padding: 12px 14px;
    display: grid;
    gap: 5px;
    background: #f5f8fa;
    border-radius: 11px;
    font-size: 13px;
}

.integration-health strong.ok { color: #0f7a4d; }
.integration-health strong.bad { color: #b42318; }

/* Better admin panels */
.warehouse-body .panel,
.warehouse-body .summary-card {
    box-shadow: var(--shadow-soft);
}

.page-head h1 {
    letter-spacing: -.035em;
}

.page-head--actions {
    align-items: center;
}

.action-card-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 15px;
}

.action-card {
    padding: 20px;
    color: #24475e;
    background: linear-gradient(145deg,#fff,#f7fafc);
    border: 1px solid var(--border);
    border-radius: 18px;
    box-shadow: var(--shadow-soft);
}

.action-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-card);
}

.action-card h3 { margin: 13px 0 5px; }
.action-card p { margin: 0; color: var(--muted); }

/* Mobile */
@media (max-width: 1120px) {
    .topbar__inner,
    .nav__inner {
        width: min(100% - 28px, 1480px);
    }
    .nav__link {
        padding-inline: 12px;
    }
    .client-info-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
    .summary-grid--installer,
    .action-card-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
}

@media (max-width: 780px) {
    .topbar__inner {
        min-height: 72px;
        gap: 10px;
    }
    .brand__logo-wrap {
        width: 50px;
        height: 50px;
    }
    .brand__logo {
        width: 43px;
        height: 43px;
    }
    .brand__name { font-size: 19px; }
    .brand__subtitle { display: none; }
    .brand__copy { min-width: 0; }
    .user-chip { display: none; }
    .menu-toggle { display: block; order: 2; }
    .topbar__user { margin-left: auto; }
    .topbar__user form { display: none; }

    .nav {
        display: none;
        position: relative;
    }
    .nav.is-open { display: block; }
    .nav__inner {
        padding: 9px 0 14px;
        display: grid;
        gap: 5px;
    }
    .nav__primary {
        display: grid;
        overflow: visible;
    }
    .nav__link,
    .nav-more > summary {
        min-height: 45px;
        padding: 0 14px;
        border: 0;
        border-radius: 9px;
    }
    .nav__link--active {
        background: #eaf4f9;
        box-shadow: inset 4px 0 var(--accent);
    }
    .nav-more { width: 100%; }
    .nav-more__menu {
        position: static;
        margin-top: 4px;
        min-width: 0;
        box-shadow: none;
        border-radius: 10px;
    }

    .installer-hero {
        padding: 22px;
        grid-template-columns: 1fr;
    }
    .installer-hero__icon { display: none; }
    .summary-grid--installer,
    .action-card-grid,
    .client-info-grid,
    .job-contact-panel {
        grid-template-columns: 1fr;
    }
    .job-contact-panel__title { grid-column: auto; }
    .installer-job-card__details {
        grid-template-columns: 1fr 1fr;
    }
    .stock-request-line {
        grid-template-columns: 1fr 105px 42px;
    }
}

@media (max-width: 520px) {
    .topbar__inner { width: calc(100% - 20px); }
    .brand__name { font-size: 17px; }
    .btn--small { padding-inline: 10px; }
    .installer-hero { border-radius: 18px; }
    .installer-hero h1 { font-size: 27px; }
    .summary-grid--installer { grid-template-columns: 1fr 1fr; }
    .installer-stat {
        min-height: 104px;
        padding: 14px;
        grid-template-columns: 38px 1fr;
    }
    .installer-stat img { width: 38px; height: 38px; padding: 6px; }
    .installer-stat strong { font-size: 17px; }
    .installer-job-card__details { grid-template-columns: 1fr; }
    .client-info { min-height: 88px; }
    .stock-request-line {
        grid-template-columns: 1fr 80px 38px;
        gap: 6px;
    }
}

/* Beta: admin job cards and Telegram delivery diagnostics */
.page-head__buttons{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.page-head__buttons form{margin:0}.filter-bar--jobs{max-width:520px}.job-admin-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px}.job-admin-card{display:block;padding:22px;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);border:1px solid #dce5ee;border-radius:18px;box-shadow:0 13px 32px rgba(17,55,82,.08);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.job-admin-card:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(17,55,82,.13);border-color:#b7cbdc}.job-admin-card__head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.job-admin-card__head small{color:#6f8191}.job-admin-card h2{margin:0 0 17px;font-size:20px;color:#142c3c}.job-admin-card__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.job-admin-card__grid>div{display:flex;align-items:center;gap:10px;padding:10px;background:#f3f8fb;border-radius:12px;min-width:0}.job-admin-card__grid img{width:25px;height:25px;flex:0 0 auto}.job-admin-card__grid span{display:flex;flex-direction:column;min-width:0}.job-admin-card__grid small{color:#718393;font-size:11px}.job-admin-card__grid strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job-admin-card__address{display:flex;gap:9px;align-items:flex-start;margin:14px 0;color:#526c7d}.job-admin-card__address img{width:21px;height:21px}.job-admin-card__money{display:flex;justify-content:space-between;gap:15px;padding-top:14px;border-top:1px solid #e4ebf1;color:#667b8a}.job-admin-card__money strong{color:#123f5d}.client-info-grid--admin{margin-bottom:18px}.job-contact-panel--admin{margin-bottom:20px;background:linear-gradient(135deg,#f5fbff,#fff)}.job-contact-row--wide{grid-column:1/-1}.assignee-row--beta{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:9px}.assignee-row--beta .telegram-delivery{grid-column:1/-1}.telegram-delivery{padding:8px 10px;border-radius:9px;background:#eef3f6;color:#607482;font-size:12px}.telegram-delivery--ok{background:#e6f7ec;color:#17713b}.telegram-delivery--error{background:#fff0ef;color:#aa2d26}.empty-state>img{width:64px;height:64px;margin-bottom:12px;opacity:.75}
@media(max-width:780px){.job-admin-cards{grid-template-columns:1fr}.job-admin-card__grid{grid-template-columns:1fr 1fr}.page-head__buttons{width:100%}.page-head__buttons .btn,.page-head__buttons form{flex:1}.page-head__buttons form .btn{width:100%}.assignee-row--beta{grid-template-columns:1fr}.assignee-row--beta .telegram-delivery{grid-column:auto}}
@media(max-width:480px){.job-admin-card__grid{grid-template-columns:1fr}.job-admin-card__money{flex-direction:column;gap:6px}}

/* =====================================================================
   Beta v4: фирменный заголовок, единая типографика, поиск и фон входа.
   PNG-иконки можно заменить своими файлами с сохранением имён.
   ===================================================================== */
:root {
    --font-ui: "Segoe UI", Roboto, Arial, Helvetica, sans-serif;
    --brand-orange: #d83800;
}

html, body, button, input, select, textarea {
    font-family: var(--font-ui);
}

body {
    font-size: 15px;
    line-height: 1.48;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, .brand__name, .btn, .nav__link, .field__label {
    font-family: var(--font-ui);
}

.brand__logo {
    opacity: .7;
}

.brand__name {
    display: flex;
    align-items: baseline;
    gap: .22em;
    color: #fff;
    font-style: normal;
}

.brand__name span,
.brand__name em {
    font-style: normal;
}

.brand__name em {
    color: var(--brand-orange);
}

.menu-toggle {
    padding: 5px;
}

.menu-toggle img {
    width: 30px;
    height: 30px;
    display: block;
}

.nav__link--icon img,
.client-info__icon,
.job-contact-panel__title img,
.installer-hero__icon,
.telegram-help img {
    object-fit: contain;
}

.combobox {
    position: relative;
    display: block;
}

.combobox::after {
    content: "⌕";
    position: absolute;
    top: 50%;
    right: 12px;
    transform: translateY(-50%);
    color: #7890a4;
    font-size: 18px;
    pointer-events: none;
}

.combobox.is-loading::after {
    content: "";
    width: 15px;
    height: 15px;
    border: 2px solid #c5d4df;
    border-top-color: var(--brand-2);
    border-radius: 50%;
    animation: combo-spin .7s linear infinite;
}

.combobox .input {
    padding-right: 42px;
}

.combobox__results {
    position: absolute;
    z-index: 90;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    max-height: 310px;
    overflow-y: auto;
    padding: 7px;
    background: #fff;
    border: 1px solid #cbd9e4;
    border-radius: 12px;
    box-shadow: 0 18px 45px rgba(9, 42, 65, .18);
}

.combobox__option {
    width: 100%;
    padding: 10px 11px;
    display: block;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--text);
    cursor: pointer;
    text-align: left;
}

.combobox__option:hover,
.combobox__option:focus {
    outline: none;
    background: #edf6fb;
}

.combobox__option strong,
.combobox__option small {
    display: block;
}

.combobox__option strong {
    font-size: 14px;
}

.combobox__option small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.35;
}

.combobox__empty {
    display: block;
    padding: 14px;
    color: var(--muted);
    text-align: center;
}

@keyframes combo-spin { to { transform: translateY(-50%) rotate(360deg); } }

.auth-body {
    position: relative;
    overflow: hidden;
    background: #071e31;
}

.auth-scene {
    position: fixed;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    background:
        linear-gradient(135deg, rgba(4, 26, 43, .97), rgba(12, 67, 100, .92)),
        radial-gradient(circle at 20% 30%, rgba(216, 56, 0, .18), transparent 30%);
}

.auth-grid {
    position: absolute;
    inset: -30%;
    opacity: .14;
    background-image:
        linear-gradient(rgba(255,255,255,.18) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.18) 1px, transparent 1px);
    background-size: 58px 58px;
    transform: perspective(700px) rotateX(58deg) translateY(20%);
    animation: auth-grid-move 18s linear infinite;
}

.auth-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(2px);
    animation: auth-float 10s ease-in-out infinite alternate;
}

.auth-orb--one {
    width: 360px;
    height: 360px;
    left: -90px;
    top: -70px;
    background: radial-gradient(circle at 35% 35%, rgba(216,56,0,.62), rgba(216,56,0,.04) 67%);
}

.auth-orb--two {
    width: 440px;
    height: 440px;
    right: -140px;
    bottom: -150px;
    background: radial-gradient(circle at 35% 35%, rgba(36,145,198,.55), rgba(36,145,198,.03) 70%);
    animation-delay: -3s;
}

.auth-orb--three {
    width: 190px;
    height: 190px;
    right: 23%;
    top: 12%;
    background: radial-gradient(circle, rgba(25,169,103,.34), rgba(25,169,103,0) 70%);
    animation-delay: -6s;
}

.auth-shell {
    position: relative;
    z-index: 2;
}

.auth-panel {
    backdrop-filter: blur(18px);
    background: rgba(255, 255, 255, .95);
    box-shadow: 0 32px 90px rgba(0, 13, 24, .42);
}

.auth-panel__brand img {
    opacity: .7;
}

.auth-panel__brand h1 {
    display: flex;
    gap: .22em;
    font-size: 25px;
}

.auth-panel__brand h1 span,
.auth-panel__brand h1 em {
    font-style: normal;
}

.auth-panel__brand h1 em {
    color: var(--brand-orange);
}

@keyframes auth-float {
    from { transform: translate3d(-12px, -8px, 0) scale(.96); }
    to { transform: translate3d(22px, 18px, 0) scale(1.06); }
}

@keyframes auth-grid-move {
    from { transform: perspective(700px) rotateX(58deg) translateY(20%) translateX(0); }
    to { transform: perspective(700px) rotateX(58deg) translateY(20%) translateX(58px); }
}

@media (prefers-reduced-motion: reduce) {
    .auth-grid, .auth-orb, .combobox.is-loading::after { animation: none; }
}

@media (max-width: 760px) {
    .brand__copy { min-width: 0; }
    .brand__name { font-size: 19px; }
    .brand__subtitle { display: block; max-width: 180px; font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .menu-toggle { flex: 0 0 42px; }
}

/* =====================================================================
   Beta v6: кабинет монтажника, amoCRM-комментарии, звонки и недельные выплаты.
   ===================================================================== */
.btn {
    gap: 8px;
}

.btn__icon {
    width: 19px;
    height: 19px;
    flex: 0 0 19px;
    object-fit: contain;
}

.btn--small .btn__icon {
    width: 16px;
    height: 16px;
    flex-basis: 16px;
}

.nav-more > summary {
    min-width: 104px;
    gap: 8px;
}

.nav-more__icon {
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    object-fit: contain;
}

.nav-more__label {
    white-space: nowrap;
}

.quick-card__icon img {
    width: 34px;
    height: 34px;
    object-fit: contain;
}

.integration-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.integration-actions form {
    margin: 0;
}

.telegram-diagnostics {
    padding: 16px;
    border: 1px solid #c9d8e3;
    border-radius: 14px;
    background: #f7fbfd;
}

.telegram-diagnostics__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.telegram-diagnostics__head small {
    color: var(--muted);
}

.diagnostic-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 0;
    border-top: 1px solid #dce7ee;
}

.diagnostic-row:first-of-type {
    border-top: 0;
}

.diagnostic-row > span {
    font-size: 18px;
    line-height: 1.2;
}

.diagnostic-row strong,
.diagnostic-row small {
    display: block;
}

.diagnostic-row small {
    margin-top: 3px;
    color: var(--muted);
    overflow-wrap: anywhere;
}

.diagnostic-row--bad small {
    color: #a21d1d;
}

.diagnostic-meta {
    display: grid;
    gap: 6px;
    margin-top: 10px;
    padding-top: 12px;
    border-top: 1px solid #dce7ee;
    color: var(--muted);
    font-size: 13px;
}

.telegram-contacts h3 {
    margin: 0 0 10px;
}

.telegram-contact-row {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 10px 0;
    border-top: 1px solid var(--border);
}

.telegram-contact-row img {
    width: 34px;
    height: 34px;
    object-fit: contain;
}

.telegram-contact-row strong,
.telegram-contact-row small {
    display: block;
}

.telegram-contact-row small {
    margin-top: 2px;
    color: var(--muted);
}

@media (max-width: 760px) {
    .nav-more > summary {
        min-width: 0;
    }

    .telegram-contact-row {
        grid-template-columns: 34px minmax(0, 1fr);
    }

    .telegram-contact-row .status {
        grid-column: 2;
        justify-self: start;
    }
}

.menu-toggle img {
    filter: brightness(0) invert(1);
}

.nav-more__icon {
    filter: none;
}

/* === Beta v6: кабинет монтажника === */
.installer-hero--dashboard{align-items:center}.installer-sync-form{display:flex;flex-direction:column;align-items:flex-end;gap:7px;position:relative;z-index:2}.installer-sync-form small{color:rgba(255,255,255,.78);font-size:12px}.btn--installer-sync{background:#fff;color:#17314a;border:0;box-shadow:0 10px 24px rgba(11,39,59,.18)}.btn--installer-sync:hover{background:#fff7ef}.summary-grid--installer-v6{grid-template-columns:repeat(3,minmax(0,1fr))}.installer-stat small{display:block;margin-top:5px;color:#758897;font-size:11px;line-height:1.35}.installer-stat--salary{background:linear-gradient(145deg,#fff8ef,#fff);border-color:#ffd5b5}.installer-cards--pending{grid-template-columns:repeat(auto-fit,minmax(280px,420px))}.installer-job-card--pending{background:linear-gradient(145deg,#fffaf1,#fff)}

.installer-stock-layout{align-items:start}.installer-stock-list{display:grid}.installer-stock-row{display:grid;grid-template-columns:42px 78px minmax(170px,1fr) 130px 145px;gap:14px;align-items:center;padding:15px 18px;border-bottom:1px solid var(--border);transition:.15s ease}.installer-stock-row:last-child{border-bottom:0}.installer-stock-row.is-selected{background:#fff8ee}.installer-stock-row__select{display:flex;align-items:center;justify-content:center}.installer-stock-row__select input{width:21px;height:21px;accent-color:var(--installer-accent)}.installer-stock-row__image{width:72px;height:58px;border:1px solid #dce6ed;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}.installer-stock-row__image img{width:100%;height:100%;object-fit:contain;padding:5px}.installer-stock-row__product{display:flex;flex-direction:column;min-width:0}.installer-stock-row__product strong{font-size:15px}.installer-stock-row__product small,.installer-stock-row__balance small,.installer-stock-row__quantity label{color:var(--muted);font-size:11px}.installer-stock-row__balance,.installer-stock-row__quantity{display:flex;flex-direction:column;gap:5px}.multi-return-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 18px;border-top:1px solid var(--border);background:#f7fafc}.multi-return-actions>div{display:flex;flex-direction:column}.multi-return-actions small{color:var(--muted);margin-top:3px}

.installer-information-section{margin:20px 0}.section-heading{margin-bottom:13px}.section-heading h2{margin:0 0 4px}.section-heading p{margin:0;color:var(--muted)}.manager-notes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.manager-note{padding:17px;border:1px solid #dbe7ef;border-radius:16px;background:#fff;box-shadow:0 10px 25px rgba(26,63,89,.06)}.manager-note__head{display:flex;align-items:center;gap:9px}.manager-note__head img{width:27px;height:27px;object-fit:contain}.manager-note__head small{margin-left:auto;color:var(--muted)}.manager-note p{margin:13px 0 0;line-height:1.55}.manager-note--urgent{background:#fff2f0;border-color:#ffc6bf}.manager-note--equipment{background:#f1f8ff;border-color:#c9e2f7}.manager-note--payment{background:#f2fbf4;border-color:#c9ebd1}.calls-panel{margin:20px 0}.calls-list{display:grid;gap:10px;padding:0 18px 18px}.call-card{display:flex;align-items:center;gap:13px;padding:13px;border:1px solid var(--border);border-radius:13px;background:#fafcfd}.call-card>img{width:32px;height:32px;object-fit:contain}.call-card__info{display:flex;flex-direction:column;min-width:0;flex:1}.call-card__info small{color:var(--muted);margin-top:3px}.job-actions-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:20px 0}.job-action-card{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.job-action-card summary{display:flex;align-items:center;gap:12px;padding:17px;cursor:pointer;list-style:none}.job-action-card summary::-webkit-details-marker{display:none}.job-action-card summary img{width:35px;height:35px;object-fit:contain}.job-action-card summary span{display:flex;flex-direction:column}.job-action-card summary small{color:var(--muted);margin-top:3px}.job-action-card--danger{border-color:#ffd1cc}.job-action-form{display:grid;gap:13px;padding:0 17px 17px;border-top:1px solid var(--border);padding-top:15px}.btn--danger{background:#bd3027;color:#fff;border-color:#bd3027}.btn--danger:hover{background:#a6251d}.filter-tabs{display:flex;gap:7px;flex-wrap:wrap}.filter-tab{border:1px solid #d6e0e8;background:#fff;color:#344f62;border-radius:10px;padding:9px 13px;font-weight:700;cursor:pointer}.filter-tab--active{background:#123f63;color:#fff;border-color:#123f63}.table-sub--danger{color:#b52b25!important}.salary-table-v6 td{vertical-align:middle}

@media(max-width:900px){.summary-grid--installer-v6{grid-template-columns:1fr 1fr}.installer-stock-row{grid-template-columns:38px 70px minmax(130px,1fr) 110px}.installer-stock-row__quantity{grid-column:3/5}.manager-notes-grid{grid-template-columns:1fr}.job-actions-panel{grid-template-columns:1fr}}
@media(max-width:640px){.installer-hero--dashboard{align-items:flex-start}.installer-sync-form{align-items:stretch;width:100%}.installer-sync-form .btn{width:100%}.summary-grid--installer-v6{grid-template-columns:1fr}.installer-stock-row{grid-template-columns:34px 62px 1fr;padding:13px 12px;gap:10px}.installer-stock-row__image{width:58px;height:52px}.installer-stock-row__balance{grid-column:3}.installer-stock-row__quantity{grid-column:2/4}.multi-return-actions{align-items:stretch;flex-direction:column}.multi-return-actions .btn{width:100%}.call-card{align-items:flex-start;flex-wrap:wrap}.call-card .btn{width:100%}.filter-tabs{width:100%;display:grid;grid-template-columns:repeat(2,1fr)}.filter-tab{width:100%}.salary-table-v6 th:nth-child(5),.salary-table-v6 td:nth-child(5),.salary-table-v6 th:nth-child(6),.salary-table-v6 td:nth-child(6){display:none}}


/* =====================================================================
   Beta v7: новая иерархия заявки, отдельные иконки и диапазон дат.
   Все PNG-файлы v7 имеют отдельные имена и могут заменяться независимо.
   ===================================================================== */
.installer-body .container,
.installer-body .topbar__inner,
.installer-body .nav__inner {
    width: min(1280px, calc(100% - 40px));
}

.summary-grid--installer-v7 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.installer-cards--v7 {
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
}

.installer-job-card--v7 {
    min-width: 0;
    padding: 22px;
}

.installer-job-card__details .job-detail-chip {
    display: flex;
    align-items: center;
    gap: 9px;
}

.installer-job-card__details .job-detail-chip img {
    width: 26px;
    height: 26px;
    flex: 0 0 auto;
    object-fit: contain;
}

.installer-job-card__details .job-detail-chip span {
    min-width: 0;
}

.installer-job-card__meta--v7 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.installer-job-card__earning {
    background: linear-gradient(145deg, #fff4e7, #fffaf4) !important;
    border: 1px solid #ffd6b1;
}

.installer-job-card__earning small {
    display: block;
    margin-top: 4px;
    color: #a75a1e;
}

.installer-job-page {
    max-width: 1240px;
    margin: 0 auto;
}

.installer-job-page__head {
    margin-bottom: 18px;
}

.job-overview-v7 {
    margin-bottom: 22px;
    padding: 24px;
    background: linear-gradient(145deg, #ffffff, #f7fbfd);
    border: 1px solid #d7e5ed;
    border-radius: 24px;
    box-shadow: 0 18px 46px rgba(16, 56, 83, .10);
}

.job-overview-v7__header {
    margin-bottom: 18px;
    padding-bottom: 17px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    border-bottom: 1px solid #e0eaf0;
}

.job-overview-v7__header h2 {
    margin: 5px 0 0;
    color: #173b55;
    font-size: clamp(21px, 2.6vw, 29px);
}

.job-overview-v7__number {
    color: #d83800;
    font-size: 14px;
    font-weight: 900;
}

.job-overview-grid-v7 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 13px;
}

.job-info-tile {
    min-width: 0;
    min-height: 92px;
    padding: 14px;
    display: flex;
    align-items: center;
    gap: 11px;
    background: #f3f8fb;
    border: 1px solid #e0eaf0;
    border-radius: 15px;
}

.job-info-tile--wide {
    grid-column: span 2;
}

.job-info-tile--earning {
    color: #744010;
    background: linear-gradient(145deg, #fff1df, #fffaf2);
    border-color: #ffd2a6;
}

.job-info-tile img {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    object-fit: contain;
}

.job-info-tile div {
    min-width: 0;
}

.job-info-tile small,
.job-info-tile strong,
.job-info-tile em {
    display: block;
}

.job-info-tile small {
    color: #728594;
    font-size: 11px;
}

.job-info-tile strong {
    margin-top: 4px;
    color: #173b55;
    font-size: 15px;
    overflow-wrap: anywhere;
}

.job-info-tile em {
    margin-top: 4px;
    color: #9b5c27;
    font-size: 10px;
    font-style: normal;
}

.additional-info-v7 {
    margin-bottom: 22px;
    padding: 21px;
    background: linear-gradient(145deg, #fffaf0, #fff);
    border: 1px solid #f1d6aa;
    border-radius: 21px;
    box-shadow: 0 13px 34px rgba(104, 70, 23, .08);
}

.additional-info-v7__head,
.title-with-icon,
.completion-panel-v7__head,
.report-section-title {
    display: flex;
    align-items: center;
    gap: 12px;
}

.additional-info-v7__head {
    margin-bottom: 15px;
}

.additional-info-v7__head > img,
.title-with-icon > img,
.completion-panel-v7__head > img,
.report-section-title > img {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    object-fit: contain;
}

.additional-info-v7__head h2,
.completion-panel-v7__head h2,
.report-section-title h3 {
    margin: 0;
}

.additional-info-v7__head p,
.completion-panel-v7__head p,
.report-section-title p {
    margin: 3px 0 0;
    color: var(--muted);
}

.manager-notes-grid--v7 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.calls-panel--v7 .panel__head {
    min-height: auto;
}

.section-heading-v7 {
    margin-bottom: 14px;
}

.section-heading-v7 h2 {
    margin: 0;
    font-size: 23px;
}

.section-heading-v7 p {
    margin: 5px 0 0;
    color: var(--muted);
}

.job-status-actions-v7 {
    margin: 26px 0;
    padding: 21px;
    background: #f7fafc;
    border: 1px solid #dbe6ed;
    border-radius: 22px;
}

.job-actions-panel--v7 {
    margin: 0;
}

.job-action-card {
    border-width: 2px;
}

.job-action-card--reschedule {
    border-color: #f3bd78;
    background: linear-gradient(145deg, #fff9ef, #fff);
}

.job-action-card--danger {
    border-color: #efaaa3;
    background: linear-gradient(145deg, #fff3f1, #fff);
}

.job-action-card summary {
    min-height: 92px;
    padding: 18px 19px;
}

.job-action-card summary > img {
    width: 45px;
    height: 45px;
}

.job-action-card summary strong {
    font-size: 17px;
}

.job-action-card summary b {
    margin-left: auto;
    padding: 7px 10px;
    color: #8a5018;
    background: rgba(255,255,255,.74);
    border: 1px solid currentColor;
    border-radius: 9px;
    font-size: 11px;
}

.job-action-card--danger summary b {
    color: #a52b24;
}

.btn--reschedule-confirm {
    color: white;
    background: #d97706;
    border-color: #d97706;
}

.btn--reschedule-confirm:hover {
    background: #b85f03;
}

.completion-panel-v7 {
    padding: 24px;
    border-radius: 22px;
}

.completion-panel-v7__head {
    margin-bottom: 18px;
    padding-bottom: 17px;
    border-bottom: 1px solid var(--border);
}

.completion-salary-v7 {
    margin-bottom: 20px;
    padding: 15px 17px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 3px 18px;
    align-items: center;
    color: #194b35;
    background: #ebf9f1;
    border: 1px solid #bfe9d0;
    border-radius: 14px;
}

.completion-salary-v7 span,
.completion-salary-v7 small {
    display: block;
}

.completion-salary-v7 strong {
    grid-row: span 2;
    font-size: 23px;
}

.completion-salary-v7 small {
    color: #547568;
}

.completion-salary-v7--estimate {
    color: #744010;
    background: #fff5e8;
    border-color: #ffd3a6;
}

.report-section-title {
    margin: 24px 0 12px;
}

.field__label--icon {
    display: flex;
    align-items: center;
    gap: 7px;
}

.field__label--icon img {
    width: 24px;
    height: 24px;
    object-fit: contain;
}

.btn--close-job {
    color: white;
    background: #15945d;
    border-color: #15945d;
    box-shadow: 0 10px 24px rgba(21, 148, 93, .22);
}

.btn--close-job:hover {
    background: #117b4d;
}

.completed-filter-panel {
    margin-bottom: 18px;
    padding: 17px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 17px;
    box-shadow: var(--shadow-soft);
}

.quick-periods-v7,
.date-range-filter-v7 {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.date-range-filter-v7 .field {
    min-width: 155px;
}

.completed-summary-v7 {
    margin-bottom: 19px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 13px;
}

.completed-summary-card {
    min-width: 0;
    min-height: 112px;
    padding: 16px;
    display: flex;
    align-items: center;
    gap: 12px;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 17px;
    box-shadow: var(--shadow-soft);
}

.completed-summary-card--main {
    background: linear-gradient(145deg, #fff3e4, #fff);
    border-color: #ffd0a0;
}

.completed-summary-card img {
    width: 43px;
    height: 43px;
    flex: 0 0 43px;
    object-fit: contain;
}

.completed-summary-card span,
.completed-summary-card strong,
.completed-summary-card small {
    display: block;
}

.completed-summary-card span {
    color: var(--muted);
    font-size: 11px;
}

.completed-summary-card strong {
    margin-top: 3px;
    color: #173b55;
    font-size: 20px;
}

.completed-summary-card small {
    margin-top: 3px;
    color: #83919d;
    font-size: 10px;
}

.completed-table-panel-v7 {
    overflow: visible;
}

.salary-table-v7 {
    min-width: 980px;
}

.salary-earned-cell {
    color: #118253;
    font-size: 15px;
}

@media (max-width: 1100px) {
    .job-overview-grid-v7 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .completed-summary-v7 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .completed-filter-panel {
        align-items: stretch;
        flex-direction: column;
    }
}

@media (max-width: 820px) {
    .installer-body .container,
    .installer-body .topbar__inner,
    .installer-body .nav__inner {
        width: min(100% - 24px, 1280px);
    }
    .summary-grid--installer-v7 {
        grid-template-columns: 1fr;
    }
    .installer-cards--v7 {
        grid-template-columns: 1fr;
    }
    .installer-job-card__meta--v7 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .installer-job-card__earning {
        grid-column: 1 / -1;
    }
    .job-overview-grid-v7 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .job-info-tile--wide {
        grid-column: span 2;
    }
    .manager-notes-grid--v7,
    .job-actions-panel--v7 {
        grid-template-columns: 1fr;
    }
    .date-range-filter-v7 {
        display: grid;
        grid-template-columns: repeat(2, minmax(0,1fr));
    }
    .date-range-filter-v7 .btn {
        width: 100%;
    }
}

@media (max-width: 620px) {
    .installer-job-page__head {
        align-items: stretch;
        flex-direction: column;
    }
    .installer-job-page__head .btn {
        width: 100%;
    }
    .job-overview-v7 {
        padding: 16px;
        border-radius: 18px;
    }
    .job-overview-v7__header {
        align-items: flex-start;
        flex-direction: column;
    }
    .job-overview-grid-v7 {
        grid-template-columns: 1fr;
    }
    .job-info-tile--wide {
        grid-column: auto;
    }
    .job-action-card summary {
        align-items: flex-start;
    }
    .job-action-card summary b {
        display: none;
    }
    .completion-salary-v7 {
        grid-template-columns: 1fr;
    }
    .completion-salary-v7 strong {
        grid-row: auto;
    }
    .completed-summary-v7 {
        grid-template-columns: 1fr;
    }
    .date-range-filter-v7 {
        grid-template-columns: 1fr;
    }
    .quick-periods-v7 {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }
    .quick-periods-v7 .filter-tab {
        text-align: center;
    }
    .salary-table-v7 {
        min-width: 0;
    }
    .salary-table-v7 thead {
        display: none;
    }
    .salary-table-v7,
    .salary-table-v7 tbody,
    .salary-table-v7 tr,
    .salary-table-v7 td {
        display: block;
        width: 100%;
    }
    .salary-table-v7 tr {
        margin: 12px;
        width: calc(100% - 24px);
        overflow: hidden;
        background: #fff;
        border: 1px solid var(--border);
        border-radius: 14px;
        box-shadow: 0 8px 22px rgba(18, 52, 77, .06);
    }
    .salary-table-v7 td {
        padding: 10px 13px;
        display: flex;
        justify-content: space-between;
        gap: 14px;
        text-align: right;
        border-bottom: 1px solid #edf1f4;
    }
    .salary-table-v7 td::before {
        content: attr(data-label);
        color: var(--muted);
        text-align: left;
        font-size: 11px;
        font-weight: 800;
    }
    .salary-table-v7 td:last-child {
        border-bottom: 0;
    }
    .salary-table-v7 .empty-cell {
        display: block;
        text-align: center;
    }
    .salary-table-v7 .empty-cell::before {
        display: none;
    }
}

/* =====================================================================
   Beta v8: compact installer UI, automatic amoCRM refresh and new fields.
   New icons are independent PNG placeholders and may be replaced in-place.
   ===================================================================== */
.installer-body .topbar__inner {
    min-height: 66px;
}

.installer-body .brand__logo-wrap {
    width: 43px;
    height: 43px;
    border-radius: 11px;
}

.installer-body .brand__logo {
    width: 35px;
    height: 35px;
}

.installer-body .brand__name {
    font-size: 19px;
}

.installer-body .brand__subtitle {
    margin-top: 2px;
    font-size: 11px;
}

.installer-body .nav__inner {
    min-height: 46px;
}

.installer-body .nav__link {
    padding-inline: 13px;
    font-size: 12px;
}

.installer-body .page {
    padding: 18px 0 38px;
}

.installer-hero--compact-v8 {
    margin-bottom: 14px;
    padding: 17px 20px;
    gap: 18px;
    border-radius: 18px;
    box-shadow: 0 14px 36px rgba(20, 69, 101, .19);
}

.installer-hero--compact-v8::after {
    width: 180px;
    height: 180px;
    right: -55px;
    top: -90px;
    border-width: 32px;
}

.installer-hero--compact-v8 h1 {
    margin-bottom: 4px;
    font-size: clamp(23px, 2.5vw, 31px);
}

.installer-hero--compact-v8 p {
    font-size: 13px;
}

.installer-auto-sync-v8 {
    position: relative;
    z-index: 1;
    min-width: 230px;
    padding: 9px 12px;
    display: flex;
    align-items: center;
    gap: 9px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 12px;
    background: rgba(255,255,255,.10);
}

.installer-auto-sync-v8__dot {
    width: 9px;
    height: 9px;
    flex: 0 0 9px;
    border-radius: 50%;
    background: #72e6a5;
    box-shadow: 0 0 0 5px rgba(114,230,165,.13);
}

.installer-auto-sync-v8 strong,
.installer-auto-sync-v8 small {
    display: block;
}

.installer-auto-sync-v8 strong {
    font-size: 12px;
}

.installer-auto-sync-v8 small {
    margin-top: 1px;
    color: rgba(255,255,255,.72);
    font-size: 10px;
}

.summary-grid--installer-v8 {
    margin-bottom: 17px;
    gap: 10px;
}

.installer-stat--compact-v8 {
    min-height: 82px;
    padding: 11px 13px;
    grid-template-columns: 38px minmax(0,1fr);
    gap: 10px;
    border-radius: 14px;
}

.installer-stat--compact-v8 img {
    width: 38px;
    height: 38px;
    padding: 6px;
    border-radius: 10px;
}

.installer-stat--compact-v8 span {
    font-size: 11px;
}

.installer-stat--compact-v8 strong {
    margin-top: 1px;
    font-size: 17px;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.installer-stat--compact-v8 small {
    margin-top: 3px;
    font-size: 9px;
}

.page-head--compact-v8 {
    margin-bottom: 11px;
}

.page-head--compact-v8 h1,
.page-head--compact-v8 h2 {
    margin: 0;
    font-size: 23px;
}

.page-head--compact-v8 p {
    margin-top: 3px;
    font-size: 13px;
}

.installer-cards--v8 {
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 12px;
    align-items: stretch;
}

.installer-job-card--v8 {
    height: 100%;
    padding: 14px 15px 13px 17px;
    border-radius: 16px;
    box-shadow: 0 8px 22px rgba(18,52,77,.065);
}

.installer-job-card--v8:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 28px rgba(18,52,77,.10);
}

.installer-job-card__head--v8 {
    margin-bottom: 8px;
}

.installer-job-card__head--v8 .status {
    padding: 4px 8px;
    font-size: 10px;
}

.installer-job-card__head--v8 small {
    font-size: 11px;
}

.installer-job-card__title-v8 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 9px;
}

.installer-job-card__title-v8 h2 {
    margin: 0;
    min-width: 0;
    font-size: 17px;
    line-height: 1.25;
}

.job-work-type-v8 {
    max-width: 45%;
    padding: 4px 7px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #315d75;
    background: #edf6fa;
    border: 1px solid #d7e8f0;
    border-radius: 8px;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.15;
}

.job-work-type-v8 img {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    object-fit: contain;
}

.installer-job-card__address--v8 {
    margin: 8px 0 10px;
    min-height: 20px;
    color: #587184;
    font-size: 12px;
    line-height: 1.35;
}

.installer-job-card__address--v8 img {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
}

.installer-job-card__compact-grid-v8 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 7px;
}

.installer-job-card__compact-grid-v8 > div {
    min-width: 0;
    padding: 7px 8px;
    display: flex;
    align-items: center;
    gap: 7px;
    background: #f3f8fb;
    border: 1px solid #e5edf2;
    border-radius: 10px;
}

.installer-job-card__compact-grid-v8 img {
    width: 23px;
    height: 23px;
    flex: 0 0 23px;
    object-fit: contain;
}

.installer-job-card__compact-grid-v8 span,
.installer-job-card__compact-grid-v8 small,
.installer-job-card__compact-grid-v8 strong {
    display: block;
    min-width: 0;
}

.installer-job-card__compact-grid-v8 small {
    color: #758794;
    font-size: 9px;
}

.installer-job-card__compact-grid-v8 strong {
    margin-top: 1px;
    color: #183d56;
    font-size: 12px;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.installer-job-card__earning-v8 {
    color: #744010;
    background: #fff4e6 !important;
    border-color: #ffd6ad !important;
}

.installer-job-card__earning-v8--wide {
    grid-column: 1 / -1;
}

.installer-job-page--v8 {
    max-width: 1140px;
}

.installer-job-page--v8 .page-head {
    margin-bottom: 12px;
}

.installer-job-page--v8 .page-head h1 {
    font-size: clamp(23px, 2.5vw, 31px);
}

.installer-job-page--v8 .page-head p {
    margin-top: 3px;
    font-size: 13px;
}

.job-overview-v8 {
    margin-bottom: 14px;
    padding: 16px;
    border-radius: 17px;
    box-shadow: 0 10px 28px rgba(16,56,83,.075);
}

.job-overview-v8 .job-overview-v7__header {
    margin-bottom: 11px;
    padding-bottom: 10px;
}

.job-overview-v8 .job-overview-v7__header h2 {
    margin-top: 2px;
    font-size: clamp(19px, 2.2vw, 25px);
}

.job-overview-grid-v8 {
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 8px;
}

.job-overview-grid-v8 .job-info-tile {
    min-height: 66px;
    padding: 8px 9px;
    gap: 8px;
    border-radius: 11px;
}

.job-overview-grid-v8 .job-info-tile img {
    width: 29px;
    height: 29px;
    flex-basis: 29px;
}

.job-overview-grid-v8 .job-info-tile small {
    font-size: 9px;
}

.job-overview-grid-v8 .job-info-tile strong {
    margin-top: 1px;
    font-size: 12px;
    line-height: 1.25;
}

.job-overview-grid-v8 .job-info-tile em {
    margin-top: 2px;
    font-size: 8.5px;
    line-height: 1.2;
}

.job-info-tile--cash {
    color: #24533d;
    background: linear-gradient(145deg, #edf9f2, #fbfffd);
    border-color: #c9ead7;
}

.additional-info-v7 {
    margin-bottom: 14px;
    padding: 14px;
    border-radius: 15px;
}

.additional-info-v7__head {
    margin-bottom: 9px;
}

.additional-info-v7__head > img {
    width: 35px;
    height: 35px;
    flex-basis: 35px;
}

.additional-info-v7__head h2 {
    font-size: 18px;
}

.additional-info-v7__head p {
    margin-top: 1px;
    font-size: 11px;
}

.manager-notes-grid--v7 {
    gap: 8px;
}

.manager-notes-grid--v7 .manager-note {
    padding: 11px;
    border-radius: 11px;
}

.manager-notes-grid--v7 .manager-note__head img {
    width: 25px;
    height: 25px;
}

.manager-notes-grid--v7 .manager-note p {
    margin-top: 7px;
    font-size: 12px;
}

.calls-disclosure-v8 {
    margin-bottom: 14px;
    border-radius: 15px;
}

.calls-disclosure-v8__summary {
    min-height: 64px;
    padding: 11px 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    cursor: pointer;
    list-style: none;
}

.calls-disclosure-v8__summary::-webkit-details-marker {
    display: none;
}

.calls-disclosure-v8__summary .title-with-icon > img {
    width: 35px;
    height: 35px;
    flex-basis: 35px;
}

.calls-disclosure-v8__summary strong,
.calls-disclosure-v8__summary small {
    display: block;
}

.calls-disclosure-v8__summary strong {
    color: #173b55;
    font-size: 15px;
}

.calls-disclosure-v8__summary small {
    margin-top: 1px;
    color: var(--muted);
    font-size: 10px;
}

.calls-disclosure-v8__toggle {
    padding: 5px 8px;
    color: #315d75;
    background: #edf5f9;
    border: 1px solid #d7e6ed;
    border-radius: 8px;
    font-size: 0;
    font-weight: 800;
}

.calls-disclosure-v8__toggle::before {
    content: 'Показать';
    font-size: 10px;
}

.calls-disclosure-v8[open] .calls-disclosure-v8__toggle::before {
    content: 'Скрыть';
}

.calls-disclosure-v8[open] .calls-disclosure-v8__summary {
    border-bottom: 1px solid var(--border);
}

.calls-list--v8 {
    padding: 9px 12px 12px;
}

.call-card--v8 {
    min-height: 54px;
    padding: 8px 9px;
    gap: 8px;
    border-radius: 10px;
}

.call-card--v8 > img {
    width: 29px;
    height: 29px;
}

.call-card--v8 .call-card__info strong {
    font-size: 12px;
}

.call-card--v8 .call-card__info small {
    font-size: 9px;
}

.job-status-actions-v8 {
    margin: 16px 0;
    padding: 14px;
    border-radius: 16px;
}

.job-status-actions-v8 .section-heading-v7 {
    margin-bottom: 9px;
}

.job-status-actions-v8 .section-heading-v7 h2 {
    font-size: 19px;
}

.job-status-actions-v8 .section-heading-v7 p {
    margin-top: 2px;
    font-size: 11px;
}

.job-status-actions-v8 .job-actions-panel--v7 {
    gap: 9px;
}

.job-status-actions-v8 .job-action-card {
    border-radius: 13px;
}

.job-status-actions-v8 .job-action-card summary {
    min-height: 70px;
    padding: 11px 12px;
}

.job-status-actions-v8 .job-action-card summary > img {
    width: 36px;
    height: 36px;
}

.job-status-actions-v8 .job-action-card summary strong {
    font-size: 14px;
}

.job-status-actions-v8 .job-action-card summary small {
    margin-top: 2px;
    font-size: 9px;
}

.job-status-actions-v8 .job-action-form {
    padding: 12px;
}

.completion-panel-v8 {
    padding: 16px;
    border-radius: 16px;
}

.completion-panel-v8 .completion-panel-v7__head {
    margin-bottom: 12px;
    padding-bottom: 11px;
}

.completion-panel-v8 .completion-panel-v7__head > img,
.completion-panel-v8 .report-section-title > img {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
}

.completion-panel-v8 .completion-panel-v7__head h2 {
    font-size: 20px;
}

.completion-panel-v8 .completion-panel-v7__head p,
.completion-panel-v8 .report-section-title p {
    margin-top: 2px;
    font-size: 11px;
}

.completion-panel-v8 .completion-salary-v7 {
    margin-bottom: 13px;
    padding: 10px 12px;
    border-radius: 11px;
}

.completion-panel-v8 .completion-salary-v7 strong {
    font-size: 19px;
}

.completion-panel-v8 .report-section-title {
    margin: 16px 0 9px;
}

.completion-panel-v8 .report-section-title h3 {
    font-size: 16px;
}

.installer-body .form-grid {
    gap: 11px;
}

.installer-body .field__label {
    margin-bottom: 5px;
    font-size: 11px;
}

.installer-body .input,
.installer-body .select {
    min-height: 42px;
}

.installer-body .textarea {
    min-height: 84px;
}

.installer-body .form-actions--border {
    margin-top: 15px;
    padding-top: 14px;
}

@media (max-width: 1000px) {
    .job-overview-grid-v8 {
        grid-template-columns: repeat(3, minmax(0,1fr));
    }
}

@media (max-width: 760px) {
    .installer-body .container,
    .installer-body .topbar__inner,
    .installer-body .nav__inner {
        width: min(100% - 18px, 1280px);
    }

    .installer-body .page {
        padding-top: 12px;
    }

    .installer-hero--compact-v8 {
        padding: 14px;
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        flex-direction: row;
    }

    .installer-auto-sync-v8 {
        min-width: 0;
        max-width: 190px;
    }

    .summary-grid--installer-v8 {
        grid-template-columns: repeat(2, minmax(0,1fr));
    }

    .summary-grid--installer-v8 .installer-stat--salary {
        grid-column: 1 / -1;
        order: -1;
    }

    .installer-cards--v8 {
        grid-template-columns: 1fr;
    }

    .job-overview-grid-v8 {
        grid-template-columns: repeat(2, minmax(0,1fr));
    }

    .job-overview-grid-v8 .job-info-tile--wide,
    .job-overview-grid-v8 .job-info-tile--earning {
        grid-column: 1 / -1;
    }
}

@media (max-width: 560px) {
    .installer-body .topbar__inner {
        min-height: 58px;
    }

    .installer-body .brand {
        gap: 8px;
    }

    .installer-body .brand__logo-wrap {
        width: 38px;
        height: 38px;
    }

    .installer-body .brand__logo {
        width: 31px;
        height: 31px;
    }

    .installer-body .brand__name {
        font-size: 16px;
    }

    .installer-body .brand__subtitle {
        display: block;
        max-width: 185px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 9px;
    }

    .installer-body .menu-toggle {
        width: 38px;
        height: 38px;
    }

    .installer-hero--compact-v8 {
        margin-bottom: 10px;
        padding: 12px 13px;
        flex-direction: column;
        gap: 9px;
        border-radius: 14px;
    }

    .installer-hero--compact-v8 h1 {
        font-size: 21px;
    }

    .installer-hero--compact-v8 p {
        font-size: 11px;
    }

    .installer-auto-sync-v8 {
        width: 100%;
        max-width: none;
        padding: 7px 9px;
    }

    .installer-auto-sync-v8 strong {
        font-size: 10px;
    }

    .installer-auto-sync-v8 small {
        font-size: 8.5px;
    }

    .summary-grid--installer-v8 {
        margin-bottom: 13px;
        gap: 7px;
    }

    .installer-stat--compact-v8 {
        min-height: 69px;
        padding: 8px;
        grid-template-columns: 30px minmax(0,1fr);
        gap: 7px;
        border-radius: 11px;
    }

    .installer-stat--compact-v8 img {
        width: 30px;
        height: 30px;
        padding: 4px;
    }

    .installer-stat--compact-v8 span {
        font-size: 9px;
    }

    .installer-stat--compact-v8 strong {
        font-size: 13px;
    }

    .installer-stat--compact-v8 small {
        font-size: 7.5px;
        line-height: 1.2;
    }

    .page-head--compact-v8 {
        margin-bottom: 8px;
    }

    .page-head--compact-v8 h1,
    .page-head--compact-v8 h2 {
        font-size: 19px;
    }

    .page-head--compact-v8 p {
        font-size: 11px;
    }

    .installer-cards--v8 {
        gap: 8px;
    }

    .installer-job-card--v8 {
        padding: 11px 11px 10px 13px;
        border-radius: 13px;
    }

    .installer-job-card__head--v8 {
        margin-bottom: 6px;
    }

    .installer-job-card__title-v8 {
        display: block;
    }

    .installer-job-card__title-v8 h2 {
        font-size: 15px;
    }

    .job-work-type-v8 {
        max-width: 100%;
        margin-top: 5px;
        font-size: 9px;
    }

    .installer-job-card__address--v8 {
        margin: 6px 0 8px;
        font-size: 11px;
    }

    .installer-job-card__compact-grid-v8 {
        gap: 5px;
    }

    .installer-job-card__compact-grid-v8 > div {
        padding: 6px;
        gap: 5px;
        border-radius: 8px;
    }

    .installer-job-card__compact-grid-v8 img {
        width: 19px;
        height: 19px;
        flex-basis: 19px;
    }

    .installer-job-card__compact-grid-v8 small {
        font-size: 7.5px;
    }

    .installer-job-card__compact-grid-v8 strong {
        font-size: 10.5px;
    }

    .installer-job-page--v8 .installer-job-page__head {
        gap: 8px;
    }

    .installer-job-page--v8 .installer-job-page__head .btn {
        width: auto;
        align-self: flex-start;
    }

    .job-overview-v8 {
        margin-bottom: 10px;
        padding: 11px;
        border-radius: 13px;
    }

    .job-overview-v8 .job-overview-v7__header {
        margin-bottom: 8px;
        padding-bottom: 8px;
        flex-direction: row;
        align-items: flex-start;
    }

    .job-overview-v8 .job-overview-v7__header h2 {
        font-size: 17px;
    }

    .job-overview-v8 .job-overview-v7__number {
        font-size: 11px;
    }

    .job-overview-v8 .status {
        padding: 4px 7px;
        font-size: 9px;
    }

    .job-overview-grid-v8 {
        gap: 5px;
    }

    .job-overview-grid-v8 .job-info-tile {
        min-height: 57px;
        padding: 6px;
        gap: 5px;
        border-radius: 8px;
    }

    .job-overview-grid-v8 .job-info-tile img {
        width: 23px;
        height: 23px;
        flex-basis: 23px;
    }

    .job-overview-grid-v8 .job-info-tile small {
        font-size: 7.5px;
    }

    .job-overview-grid-v8 .job-info-tile strong {
        font-size: 10.5px;
    }

    .job-overview-grid-v8 .job-info-tile em {
        font-size: 7px;
    }

    .additional-info-v7,
    .job-status-actions-v8,
    .completion-panel-v8 {
        padding: 10px;
        border-radius: 12px;
    }

    .manager-notes-grid--v7 {
        grid-template-columns: 1fr;
    }

    .calls-disclosure-v8__summary {
        min-height: 56px;
        padding: 9px 10px;
    }

    .calls-disclosure-v8__summary .title-with-icon > img {
        width: 30px;
        height: 30px;
        flex-basis: 30px;
    }

    .calls-disclosure-v8__summary strong {
        font-size: 13px;
    }

    .calls-disclosure-v8__summary small {
        font-size: 8.5px;
    }

    .call-card--v8 {
        flex-wrap: nowrap;
    }

    .call-card--v8 .btn {
        width: auto;
        padding: 6px 8px;
        font-size: 9px;
    }

    .job-status-actions-v8 .job-actions-panel--v7 {
        grid-template-columns: 1fr;
    }

    .job-status-actions-v8 .job-action-card summary {
        min-height: 62px;
        padding: 9px;
    }

    .completion-panel-v8 .form-grid {
        grid-template-columns: 1fr;
    }

    .completion-panel-v8 .form-actions--border {
        display: grid;
        grid-template-columns: 1fr;
    }

    .completion-panel-v8 .form-actions--border .btn {
        width: 100%;
    }
}

/* =====================================================================
   Beta v9: assignment sync, equipment draft and compact installer cards.
   ===================================================================== */
.status--in-progress-v9 {
    position: relative;
    padding: 5px 10px 7px;
    color: #0c6f44;
    background: #e6f7ee;
    border: 1px solid #a8dfc2;
    box-shadow: 0 3px 9px rgba(21, 148, 93, .12);
    font-weight: 900;
}

.status--in-progress-v9::after {
    content: '';
    position: absolute;
    left: 9px;
    right: 9px;
    bottom: 3px;
    height: 2px;
    border-radius: 999px;
    background: #22a96d;
}

.installer-hero--v9 {
    margin-bottom: 10px;
}

.summary-grid--installer-v9 {
    margin-bottom: 14px;
    gap: 9px;
}

.installer-stat--compact-v9 {
    min-height: 78px;
    padding: 10px 12px;
}

.page-head--compact-v9 {
    margin-bottom: 9px;
}

.installer-cards--v9 {
    gap: 10px;
}

.installer-job-card--v9 {
    padding: 12px 13px 13px 16px;
}

.installer-job-card__head--v9 {
    margin-bottom: 7px;
    align-items: center;
}

.installer-job-card__title-v9 {
    margin: 0;
}

.installer-job-card__title-v9 h2 {
    margin: 0;
    line-height: 1.22;
}

.installer-job-card__address--v9 {
    margin: 8px 0 10px;
}

.installer-job-card__compact-grid-v9 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
}

.installer-job-card__compact-grid-v9 > div,
.installer-job-card__earning-v9,
.installer-job-card__equipment-v9 {
    min-width: 0;
    grid-column: auto !important;
}

.installer-job-card__equipment-v9 {
    background: #f7f8fa !important;
    border-color: #dfe5ea !important;
}

.installer-job-card__equipment-v9 strong {
    color: #6d7780 !important;
}

.job-overview-grid-v8 .job-info-tile--earning,
.job-overview-grid-v8 .job-info-tile--equipment-pending-v9 {
    grid-column: auto;
}

.job-info-tile--equipment-pending-v9 {
    background: #f7f8fa;
    border-color: #dfe5ea;
}

.salary-preview-v9 {
    margin-bottom: 13px;
    padding: 11px 13px;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid #dbe4ea;
    border-radius: 12px;
    background: #f7f9fb;
}

.salary-preview-v9.is-ready {
    background: #eefaf4;
    border-color: #b8e5ce;
}

.salary-preview-v9 > img {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    object-fit: contain;
}

.salary-preview-v9 span,
.salary-preview-v9 strong,
.salary-preview-v9 small {
    display: block;
}

.salary-preview-v9 span {
    color: var(--muted);
    font-size: 10px;
    font-weight: 700;
}

.salary-preview-v9 strong {
    margin-top: 1px;
    color: #173b55;
    font-size: 19px;
}

.salary-preview-v9 small {
    margin-top: 2px;
    color: #788792;
    font-size: 9px;
}

.equipment-none-toggle-v9 {
    margin-bottom: 10px;
    padding: 10px 12px;
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    border: 1px solid #d8e2e9;
    border-radius: 12px;
    background: #f8fafb;
}

.equipment-none-toggle-v9 input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.equipment-none-toggle-v9__check {
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    border: 2px solid #9aabb6;
    border-radius: 7px;
    background: #fff;
}

.equipment-none-toggle-v9 input:checked + .equipment-none-toggle-v9__check {
    border-color: #16945d;
    background: #16945d;
    box-shadow: inset 0 0 0 5px #fff;
}

.equipment-none-toggle-v9 strong,
.equipment-none-toggle-v9 small {
    display: block;
}

.equipment-none-toggle-v9 strong {
    font-size: 13px;
}

.equipment-none-toggle-v9 small {
    margin-top: 2px;
    color: var(--muted);
    font-size: 9px;
}

.report-lines.is-disabled {
    opacity: .42;
    filter: grayscale(.35);
}

.equipment-actions-v9 {
    margin-top: 9px;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.btn--equipment-save-v9 {
    color: #fff;
    background: #176e94;
    border-color: #176e94;
}

.btn--equipment-save-v9:hover {
    background: #115b7c;
}

/* Выполненные заявки: более плотный фильтр, сводка и таблица. */
.completed-page-head {
    margin-bottom: 11px;
}

.completed-filter-panel {
    margin-bottom: 11px;
    padding: 11px 12px;
    border-radius: 13px;
}

.completed-summary-v7 {
    margin-bottom: 12px;
    gap: 8px;
}

.completed-summary-card {
    min-height: 82px;
    padding: 10px 11px;
    gap: 8px;
    border-radius: 13px;
}

.completed-summary-card img {
    width: 34px;
    height: 34px;
    flex-basis: 34px;
}

.completed-summary-card strong {
    font-size: 17px;
}

.completed-summary-card small {
    font-size: 8px;
}

.completed-table-panel-v7 {
    border-radius: 13px;
}

.salary-table-v7 th,
.salary-table-v7 td {
    padding-top: 9px;
    padding-bottom: 9px;
}

@media (max-width: 760px) {
    .job-overview-grid-v8 .job-info-tile--wide,
    .job-overview-grid-v8 .job-info-tile--earning,
    .job-overview-grid-v8 .job-info-tile--equipment-pending-v9 {
        grid-column: auto;
    }

    .installer-job-card__compact-grid-v9 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .installer-hero--v9 {
        margin-bottom: 7px;
    }

    .summary-grid--installer-v9 {
        margin-bottom: 10px;
    }

    .installer-stat--compact-v9 {
        min-height: 62px;
        padding: 7px 8px;
    }

    .page-head--compact-v9 {
        margin-bottom: 6px;
    }

    .installer-job-card--v9 {
        padding: 9px 9px 10px 12px;
    }

    .installer-job-card__head--v9 {
        margin-bottom: 5px;
    }

    .installer-job-card__title-v9 h2 {
        font-size: 14px;
    }

    .installer-job-card__address--v9 {
        margin: 6px 0 7px;
    }

    .installer-job-card__compact-grid-v9 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 5px;
    }

    .installer-job-card__compact-grid-v9 > div {
        min-height: 48px;
        padding: 5px 6px;
    }

    .job-overview-grid-v8 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .job-overview-grid-v8 .job-info-tile,
    .job-overview-grid-v8 .job-info-tile--wide,
    .job-overview-grid-v8 .job-info-tile--earning,
    .job-overview-grid-v8 .job-info-tile--equipment-pending-v9 {
        grid-column: auto;
    }

    .salary-preview-v9 {
        padding: 9px 10px;
    }

    .salary-preview-v9 strong {
        font-size: 16px;
    }

    .equipment-actions-v9 {
        display: grid;
        grid-template-columns: 1fr;
    }

    .equipment-actions-v9 .btn {
        width: 100%;
    }

    .completed-filter-panel {
        padding: 9px;
    }

    .completed-summary-v7 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
    }

    .completed-summary-card {
        min-height: 72px;
        padding: 8px;
    }

    .completed-summary-card img {
        width: 28px;
        height: 28px;
        flex-basis: 28px;
    }

    .completed-summary-card span {
        font-size: 8px;
    }

    .completed-summary-card strong {
        font-size: 14px;
    }

    .completed-summary-card small {
        display: none;
    }

    .salary-table-v7,
    .salary-table-v7 tbody {
        display: block;
    }

    .salary-table-v7 tr {
        margin: 8px;
        width: calc(100% - 16px);
        padding: 7px;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 5px;
        border-radius: 12px;
    }

    .salary-table-v7 td {
        min-width: 0;
        padding: 7px 8px;
        display: block;
        text-align: left;
        border: 1px solid #edf1f4;
        border-radius: 8px;
        background: #fafcfd;
    }

    .salary-table-v7 td::before {
        display: block;
        margin-bottom: 3px;
        font-size: 8px;
    }

    .salary-table-v7 td strong,
    .salary-table-v7 td .status {
        font-size: 10px;
    }

    .salary-table-v7 .empty-cell {
        grid-column: 1 / -1;
    }
}

/* === Beta v11: salary, cash control and settlements === */
.finance-company-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.finance-company-summary--installer {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.finance-kpi {
    min-width: 0;
    padding: 18px;
    border: 1px solid #dfe8ee;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 26px rgba(20, 54, 78, .06);
}

.finance-kpi--cash {
    border-color: #f4c7a9;
    background: linear-gradient(145deg, #fff8f3, #fff);
}

.finance-kpi span,
.finance-kpi small {
    display: block;
    color: #6b7f8d;
}

.finance-kpi span {
    margin-bottom: 8px;
    font-size: 13px;
    font-weight: 700;
}

.finance-kpi strong {
    display: block;
    margin-bottom: 7px;
    color: #123f63;
    font-size: clamp(23px, 2.3vw, 34px);
    line-height: 1.05;
}

.finance-kpi--cash strong {
    color: #d83800;
}

.finance-kpi small {
    font-size: 12px;
    line-height: 1.45;
}

.finance-filter-panel {
    margin-bottom: 16px;
}

.installer-finance-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.installer-finance-card {
    display: block;
    padding: 18px;
    border: 1px solid #dfe8ee;
    border-radius: 16px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 8px 24px rgba(18, 63, 99, .06);
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.installer-finance-card:hover {
    transform: translateY(-2px);
    border-color: #a8c7da;
    box-shadow: 0 12px 30px rgba(18, 63, 99, .11);
}

.installer-finance-card__head {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: flex-start;
    padding-bottom: 13px;
    border-bottom: 1px solid #edf2f5;
}

.installer-finance-card__head strong,
.installer-finance-card__head small {
    display: block;
}

.installer-finance-card__head strong {
    color: #123f63;
    font-size: 18px;
}

.installer-finance-card__head small,
.installer-finance-card__head > span {
    color: #728592;
    font-size: 12px;
}

.installer-finance-card__metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 13px;
}

.installer-finance-card__metrics > div {
    padding: 11px;
    border-radius: 11px;
    background: #f7fafc;
}

.installer-finance-card__metrics small,
.installer-finance-card__metrics strong {
    display: block;
}

.installer-finance-card__metrics small {
    margin-bottom: 5px;
    color: #718490;
    font-size: 11px;
}

.installer-finance-card__metrics strong {
    color: #17384d;
    font-size: 16px;
}

.money-warning { color: #c7440d !important; }
.money-ok { color: #198754 !important; }

.finance-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr);
    gap: 16px;
}

.finance-settlement-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.finance-history-list {
    display: grid;
    gap: 9px;
    max-height: 520px;
    overflow: auto;
}

.finance-history-list article {
    padding: 12px;
    border: 1px solid #e5edf2;
    border-radius: 12px;
    background: #fafcfd;
}

.finance-history-list article > div:first-child {
    display: flex;
    justify-content: space-between;
    gap: 10px;
}

.finance-history-list article strong,
.finance-history-list article small {
    display: block;
}

.finance-history-list article small {
    color: #748691;
    font-size: 11px;
}

.finance-history-values {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 10px;
}

.finance-history-values span {
    padding: 6px 9px;
    border-radius: 8px;
    background: #eef4f7;
    font-size: 12px;
}

.finance-history-list article p {
    margin: 9px 0 0;
    color: #5f7380;
    font-size: 12px;
}

.finance-job-list {
    display: grid;
    gap: 13px;
}

.finance-job-card {
    overflow: hidden;
    border: 1px solid #dfe8ee;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 7px 22px rgba(18, 63, 99, .05);
}

.finance-job-card > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 15px;
    border-bottom: 1px solid #edf2f5;
    background: #f8fbfc;
}

.finance-job-card > header div {
    display: flex;
    align-items: center;
    gap: 10px;
}

.finance-job-card > header strong {
    color: #123f63;
    font-size: 17px;
}

.finance-job-card > header div span {
    color: #728592;
    font-size: 12px;
}

.finance-job-main {
    padding: 14px 15px 4px;
}

.finance-job-main h3 {
    margin: 0 0 5px;
    color: #17384d;
    font-size: 17px;
}

.finance-job-main p,
.finance-job-main small {
    margin: 0;
    color: #667b88;
}

.finance-job-metrics {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
    padding: 12px 15px 15px;
}

.finance-job-metrics > div {
    min-width: 0;
    padding: 10px;
    border-radius: 10px;
    background: #f6f9fb;
}

.finance-job-metrics small,
.finance-job-metrics strong {
    display: block;
}

.finance-job-metrics small {
    margin-bottom: 5px;
    color: #718490;
    font-size: 10px;
}

.finance-job-metrics strong {
    color: #17384d;
    font-size: 13px;
    word-break: break-word;
}

.finance-job-details {
    border-top: 1px solid #edf2f5;
}

.finance-job-details summary {
    padding: 11px 15px;
    color: #123f63;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}

.finance-job-details__content {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 13px;
    padding: 0 15px 15px;
}

.finance-job-details__content h4 {
    margin: 0 0 7px;
    font-size: 13px;
}

.finance-job-details__content p,
.finance-job-details__content a,
.finance-job-details__content span {
    color: #617681;
    font-size: 12px;
    line-height: 1.55;
}

.pre-line { white-space: pre-line; }
.finance-files { display: grid; align-content: start; gap: 5px; }
.finance-files h4 { margin-bottom: 2px; }
.finance-files a { color: #14658f; }

.financial-telegram-panel {
    border-color: #d9e8ef;
}

.checkbox-field {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    padding-top: 24px;
}

@media (max-width: 1100px) {
    .finance-company-summary--installer {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .finance-job-metrics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .finance-company-summary,
    .finance-company-summary--installer,
    .installer-finance-grid,
    .finance-detail-layout {
        grid-template-columns: 1fr;
    }

    .finance-settlement-grid,
    .finance-job-details__content {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .finance-company-summary,
    .finance-company-summary--installer {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .finance-kpi {
        padding: 12px;
        border-radius: 12px;
    }

    .finance-kpi span {
        font-size: 10px;
    }

    .finance-kpi strong {
        font-size: 18px;
    }

    .finance-kpi small {
        display: none;
    }

    .installer-finance-card {
        padding: 13px;
    }

    .installer-finance-card__metrics {
        gap: 7px;
    }

    .installer-finance-card__metrics > div {
        padding: 8px;
    }

    .installer-finance-card__metrics strong {
        font-size: 13px;
    }

    .finance-job-card > header {
        padding: 10px 11px;
    }

    .finance-job-main {
        padding: 11px 11px 3px;
    }

    .finance-job-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
        padding: 9px 11px 12px;
    }

    .finance-job-metrics > div {
        padding: 8px;
    }

    .finance-job-details summary {
        padding: 10px 11px;
    }

    .finance-job-details__content {
        padding: 0 11px 12px;
    }
}

.settlement-recommendation {
    display: grid;
    gap: 4px;
    margin-bottom: 15px;
    padding: 12px 14px;
    border: 1px solid #c7dfcc;
    border-radius: 12px;
    background: #f3fbf5;
}
.settlement-recommendation strong { color: #176b31; font-size: 14px; }
.settlement-recommendation span { color: #53705c; font-size: 12px; line-height: 1.45; }
.finance-quick-periods { margin-bottom: 12px; }
.dashboard-finance-summary a { text-decoration: none; }

.finance-file-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
}
.finance-file-card {
    display: grid;
    gap: 3px;
    overflow: hidden;
    padding: 7px;
    border: 1px solid #e1eaef;
    border-radius: 9px;
    background: #fff;
    text-decoration: none;
}
.finance-file-card img {
    width: 100%;
    height: 92px;
    object-fit: cover;
    border-radius: 6px;
    background: #eef3f6;
}
.finance-file-card span { color: #1a5f84; font-weight: 800; }
.finance-file-card small { overflow: hidden; color: #7a8c96; text-overflow: ellipsis; white-space: nowrap; }

/* === Beta v12: separated finance report interface === */
.finance-profile-head {
    margin-bottom: 18px;
}
.finance-profile-head__eyebrow {
    display: inline-block;
    margin: 10px 0 4px;
    color: #d83800;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.finance-profile-head h1 {
    margin-bottom: 6px;
}
.finance-section {
    margin-bottom: 22px;
}
.finance-section__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
}
.finance-section__head > div {
    display: flex;
    align-items: center;
    gap: 12px;
}
.finance-section__number {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    flex: 0 0 auto;
    border-radius: 12px;
    background: #123f63;
    color: #fff;
    font-size: 12px;
    font-weight: 900;
}
.finance-section__head h2 {
    margin: 0 0 3px;
    color: #142f43;
    font-size: 21px;
    line-height: 1.2;
}
.finance-section__head p {
    margin: 0;
    color: #6f8290;
    font-size: 13px;
}
.finance-company-summary--v12 {
    gap: 12px;
    margin-bottom: 0;
}
.finance-company-summary--v12 .finance-kpi {
    position: relative;
    overflow: hidden;
    min-height: 132px;
    padding: 18px 18px 16px;
    box-shadow: 0 7px 22px rgba(22, 55, 79, .055);
}
.finance-company-summary--v12 .finance-kpi::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    content: "";
    background: #99b5c7;
}
.finance-company-summary--v12 .finance-kpi--cash::before { background: #d83800; }
.finance-company-summary--v12 .finance-kpi--salary::before { background: #216f91; }
.finance-company-summary--v12 .finance-kpi--desk::before { background: #198754; }
.finance-company-summary--v12 .finance-kpi--offset::before { background: #7d5aa6; }
.finance-company-summary--v12 .finance-kpi strong {
    font-size: clamp(24px, 2vw, 32px);
}
.finance-detail-layout--v12 {
    align-items: stretch;
    grid-template-columns: minmax(0, 1.18fr) minmax(340px, .82fr);
    gap: 14px;
}
.finance-settlement-panel--v12,
.finance-history-panel--v12,
.finance-filter-panel--v12 {
    padding: 18px;
    border: 1px solid #dfe8ee;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 25px rgba(18, 63, 99, .055);
}
.settlement-recommendation--v12 {
    grid-template-columns: auto 1fr;
    align-items: center;
    margin: 0 0 14px;
    padding: 12px 14px;
}
.settlement-recommendation--v12 span {
    grid-column: 1;
    font-weight: 700;
}
.settlement-recommendation--v12 strong {
    grid-column: 2;
    justify-self: end;
    font-size: 18px;
}
.settlement-recommendation--v12 small {
    grid-column: 1 / -1;
}
.finance-operation-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}
.finance-operation-card {
    display: grid;
    align-content: start;
    gap: 8px;
    min-width: 0;
    padding: 13px;
    border: 1px solid #dfe8ee;
    border-radius: 13px;
    background: #f8fafb;
}
.finance-operation-card--cash { border-top: 3px solid #198754; }
.finance-operation-card--salary { border-top: 3px solid #216f91; }
.finance-operation-card--offset { border-top: 3px solid #7d5aa6; }
.finance-operation-card__title {
    color: #17384d;
    font-size: 13px;
    font-weight: 850;
}
.finance-operation-card small {
    color: #71838f;
    font-size: 11px;
    line-height: 1.4;
}
.finance-operation-card .input {
    height: 43px;
    background: #fff;
    font-size: 16px;
    font-weight: 800;
}
.finance-settlement-meta {
    display: grid;
    grid-template-columns: minmax(180px, .34fr) minmax(0, 1fr);
    gap: 10px;
    margin-top: 12px;
}
.finance-settlement-meta .textarea {
    min-height: 76px;
}
.finance-settlement-submit {
    width: 100%;
    margin-top: 2px;
    min-height: 46px;
}
.finance-history-panel--v12 {
    display: flex;
    min-height: 100%;
    flex-direction: column;
}
.finance-history-panel__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 13px;
    border-bottom: 1px solid #e8eef2;
}
.finance-history-panel__head h3 {
    margin: 0 0 3px;
    font-size: 17px;
}
.finance-history-panel__head p {
    margin: 0;
    color: #71838f;
    font-size: 12px;
}
.finance-history-panel__head > span {
    display: grid;
    place-items: center;
    min-width: 32px;
    height: 32px;
    border-radius: 10px;
    background: #eef4f7;
    color: #123f63;
    font-weight: 850;
}
.finance-history-list--v12 {
    flex: 1;
    margin-top: 12px;
    padding-right: 2px;
}
.finance-history-list--v12 article {
    background: #fff;
}
.finance-history-values .is-cash { background: #edf8f1; color: #176b31; }
.finance-history-values .is-salary { background: #edf5fa; color: #185b7c; }
.finance-history-values .is-offset { background: #f4effa; color: #694790; }
.finance-empty-v12 {
    display: grid;
    place-items: center;
    min-height: 180px;
    padding: 24px;
    text-align: center;
    color: #7a8c97;
}
.finance-empty-v12 strong {
    color: #334f61;
}
.finance-empty-v12 span {
    margin-top: 4px;
    font-size: 12px;
}
.finance-filter-panel--v12 {
    margin-bottom: 14px;
}
.finance-date-filter-v12 {
    display: grid;
    grid-template-columns: 190px 190px auto auto;
    align-items: end;
    gap: 9px;
}
.finance-date-filter-v12 .btn {
    min-height: 44px;
}
.finance-job-card--v12 {
    border-radius: 15px;
    box-shadow: 0 6px 19px rgba(18, 63, 99, .05);
}
.finance-job-metrics--v12 > div {
    border: 1px solid #edf2f5;
    background: #f8fafb;
}
.finance-job-metrics--v12 > .is-cash {
    background: #f2faf5;
}
.finance-job-metrics--v12 > .is-salary {
    background: #f1f7fb;
}
@media (max-width: 1120px) {
    .finance-operation-grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 900px) {
    .finance-detail-layout--v12 {
        grid-template-columns: 1fr;
    }
    .finance-history-panel--v12 {
        min-height: auto;
    }
    .finance-date-filter-v12 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 620px) {
    .finance-profile-head__eyebrow {
        font-size: 10px;
    }
    .finance-section {
        margin-bottom: 17px;
    }
    .finance-section__head {
        margin-bottom: 9px;
    }
    .finance-section__number {
        width: 32px;
        height: 32px;
        border-radius: 9px;
        font-size: 10px;
    }
    .finance-section__head h2 {
        font-size: 17px;
    }
    .finance-section__head p {
        display: none;
    }
    .finance-company-summary--v12 .finance-kpi {
        min-height: 92px;
        padding: 12px 12px 11px;
    }
    .finance-company-summary--v12 .finance-kpi strong {
        font-size: 18px;
    }
    .finance-settlement-panel--v12,
    .finance-history-panel--v12,
    .finance-filter-panel--v12 {
        padding: 12px;
        border-radius: 13px;
    }
    .settlement-recommendation--v12 {
        grid-template-columns: 1fr;
    }
    .settlement-recommendation--v12 strong,
    .settlement-recommendation--v12 span,
    .settlement-recommendation--v12 small {
        grid-column: 1;
        justify-self: start;
    }
    .finance-operation-grid,
    .finance-settlement-meta,
    .finance-date-filter-v12 {
        grid-template-columns: 1fr;
    }
    .finance-quick-periods {
        display: grid;
        grid-template-columns: repeat(2, minmax(0,1fr));
    }
    .finance-quick-periods .filter-tab {
        text-align: center;
    }
}


/* === Beta v13: финансы, авансы, расходы и корректировки === */
.finance-profile-head--v13 { margin-bottom: 22px; }
.finance-company-summary--v13 {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.finance-company-summary--v13 .finance-kpi {
  min-height: 132px;
  padding: 20px;
  border: 1px solid #dbe5ee;
  background: #fff;
}
.finance-company-summary--v13 .finance-kpi strong { font-size: clamp(24px, 2vw, 34px); }
.finance-detail-layout--v13 {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr);
  gap: 18px;
  align-items: start;
}
.finance-settlement-panel--v13,
.finance-history-panel--v13,
.finance-extra-operation-panel { padding: 22px; }
.settlement-preview-v13 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 18px;
}
.settlement-preview-v13 > div {
  padding: 14px;
  border-radius: 14px;
  border: 1px solid #d9e5ef;
  background: #f7fafc;
}
.settlement-preview-v13 span { display:block; color:#617488; font-size:12px; margin-bottom:5px; }
.settlement-preview-v13 strong { font-size:20px; color:#0e3d5f; }
.finance-operation-grid--v13 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.finance-extra-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.finance-extra-grid__wide { grid-column: 1 / -1; }
.finance-history-list--v13 article { position: relative; }
.finance-history-list--v13 article.is-reversed { opacity: .68; background: #f6f7f9; }
.finance-history-list--v13 article.is-reversed::after {
  content: "Аннулировано";
  position: absolute;
  top: 12px;
  right: 12px;
  font-size: 11px;
  font-weight: 800;
  color: #a32d2d;
  background: #ffe8e8;
  border-radius: 999px;
  padding: 5px 8px;
}
.finance-operation-job,
.finance-receipt-link {
  display: inline-flex;
  margin: 6px 6px 0 0;
  padding: 5px 8px;
  border-radius: 8px;
  background: #edf4f8;
  color: #174b6c;
  font-size: 12px;
  font-weight: 700;
}
.finance-receipt-link { text-decoration: none; background:#eaf8f1; color:#17613f; }
.finance-reversed-note { margin-top:10px; padding:9px 11px; background:#fff0f0; border-radius:9px; color:#8d2d2d; font-size:13px; }
.finance-reverse-form { margin-top:10px; }
.finance-reverse-form summary { cursor:pointer; color:#9d2c2c; font-weight:700; font-size:13px; }
.finance-reverse-form form { display:flex; gap:8px; margin-top:8px; }
.finance-job-card--v13 { border-top: 3px solid #164e73; }
.finance-job-correction {
  margin: 14px 18px 18px;
  border: 1px solid #f1c38e;
  border-radius: 14px;
  background: #fffaf4;
}
.finance-job-correction > summary { cursor:pointer; padding:14px 16px; font-weight:800; color:#8f480d; }
.finance-job-correction > form { border-top:1px solid #f1d5b3; padding:16px; }
.finance-correction-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.finance-correction-items { margin:16px 0; padding:14px; background:#fff; border:1px solid #e2e9ef; border-radius:12px; }
.finance-correction-items h4 { margin:0 0 10px; }
.finance-correction-items label { display:grid; grid-template-columns:minmax(0,1fr) 130px; gap:12px; align-items:center; padding:8px 0; border-bottom:1px solid #edf1f4; }
.finance-correction-items label:last-child { border-bottom:0; }
.finance-correction-items small { display:block; color:#748697; margin-top:3px; }
.finance-correction-warning { margin:12px 0; padding:11px 13px; border-radius:10px; background:#fff0d8; color:#7c4a0d; font-size:13px; }
.maintenance-reset-panel { max-width: 900px; padding: 24px; }
.maintenance-reset-warning { padding:16px; border-radius:14px; background:#eef6fb; margin-bottom:16px; }
.maintenance-reset-warning h2 { margin:0 0 6px; }
.maintenance-reset-warning p { margin:0; color:#50687a; }
.maintenance-reset-counts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-bottom:16px; }
.maintenance-reset-counts article { padding:14px; border:1px solid #dbe5ee; border-radius:12px; background:#fff; }
.maintenance-reset-counts span { display:block; color:#687d8e; font-size:12px; }
.maintenance-reset-counts strong { display:block; font-size:24px; margin-top:4px; }

@media (max-width: 1100px) {
  .finance-company-summary--v13 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .finance-detail-layout--v13 { grid-template-columns: 1fr; }
  .finance-correction-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 680px) {
  .finance-company-summary--v13 { grid-template-columns: repeat(2, minmax(0,1fr)); gap:9px; }
  .finance-company-summary--v13 .finance-kpi { min-height:112px; padding:14px; }
  .finance-company-summary--v13 .finance-kpi strong { font-size:21px; }
  .finance-company-summary--v13 .finance-kpi small { font-size:11px; line-height:1.25; }
  .settlement-preview-v13,
  .finance-operation-grid--v13,
  .finance-extra-grid,
  .finance-correction-grid { grid-template-columns: 1fr; }
  .finance-extra-grid__wide { grid-column:auto; }
  .finance-settlement-panel--v13,
  .finance-history-panel--v13,
  .finance-extra-operation-panel { padding:15px; }
  .finance-reverse-form form { flex-direction:column; }
  .finance-correction-items label { grid-template-columns:1fr; }
  .maintenance-reset-counts { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* === Beta v14: упрощённые взаиморасчёты исполнителя === */
.finance-balance-section--v14 {
  margin-bottom: 28px;
}
.finance-debt-summary-v14 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.finance-debt-card-v14 {
  position: relative;
  overflow: hidden;
  min-width: 0;
  padding: 24px;
  border: 1px solid #dbe5ee;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(13, 54, 82, .06);
}
.finance-debt-card-v14::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
}
.finance-debt-card-v14--company::before { background: #d83800; }
.finance-debt-card-v14--installer::before { background: #16805d; }
.finance-debt-card-v14__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}
.finance-debt-card-v14__head > div { min-width: 0; }
.finance-debt-card-v14__head span:first-child {
  display: block;
  margin-bottom: 8px;
  color: #526b7f;
  font-size: 14px;
  font-weight: 800;
}
.finance-debt-card-v14__head strong {
  display: block;
  color: #0e3856;
  font-size: clamp(30px, 3vw, 44px);
  line-height: 1.05;
  letter-spacing: -.025em;
}
.finance-debt-card-v14--company .finance-debt-card-v14__head strong { color: #c83400; }
.finance-debt-card-v14 > p {
  max-width: 620px;
  margin: 12px 0 0;
  color: #6a7f90;
  font-size: 14px;
  line-height: 1.5;
}
.finance-debt-card-v14__badge {
  flex: 0 0 auto;
  padding: 7px 10px;
  border-radius: 999px;
  background: #edf4f8;
  color: #35596f;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.finance-debt-card-v14--company .finance-debt-card-v14__badge {
  background: #fff0e9;
  color: #a83a0f;
}
.finance-debt-card-v14--installer .finance-debt-card-v14__badge {
  background: #eaf7f1;
  color: #156446;
}
.finance-breakdown-v14 {
  margin-top: 18px;
  border-top: 1px solid #e6edf2;
  padding-top: 14px;
}
.finance-breakdown-v14 summary {
  cursor: pointer;
  width: fit-content;
  color: #174d6d;
  font-size: 13px;
  font-weight: 850;
  user-select: none;
}
.finance-breakdown-v14[open] summary { margin-bottom: 12px; }
.finance-breakdown-v14 dl { margin: 0; }
.finance-breakdown-v14 dl > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 8px 0;
  border-bottom: 1px dashed #e2eaf0;
}
.finance-breakdown-v14 dl > div:last-child { border-bottom: 0; }
.finance-breakdown-v14 dt {
  color: #64798a;
  font-size: 13px;
}
.finance-breakdown-v14 dd {
  margin: 0;
  color: #163e5a;
  font-size: 13px;
  font-weight: 850;
  white-space: nowrap;
}
.finance-breakdown-v14__note {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 11px;
  background: #fff7e8;
  color: #7b5316;
  font-size: 12px;
  line-height: 1.45;
}
.finance-net-card-v14 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 16px;
  padding: 20px 24px;
  border: 1px solid #cfe0eb;
  border-radius: 18px;
  background: linear-gradient(135deg, #f4f9fc 0%, #fff 100%);
}
.finance-net-card-v14 > div > span {
  display: block;
  margin-bottom: 4px;
  color: #62798a;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.finance-net-card-v14 > div > strong {
  display: block;
  color: #123f5e;
  font-size: 20px;
  line-height: 1.25;
}
.finance-net-card-v14 p {
  margin: 5px 0 0;
  color: #6d8292;
  font-size: 13px;
}
.finance-net-card-v14 > b {
  flex: 0 0 auto;
  color: #123f5e;
  font-size: clamp(26px, 2.7vw, 40px);
  line-height: 1;
  white-space: nowrap;
}
.finance-net-card-v14--company { border-color: #f1c7b1; background: linear-gradient(135deg, #fff7f2 0%, #fff 100%); }
.finance-net-card-v14--company > b { color: #c83400; }
.finance-net-card-v14--installer { border-color: #bfe1d2; background: linear-gradient(135deg, #f1fbf6 0%, #fff 100%); }
.finance-net-card-v14--installer > b { color: #16704f; }
.finance-net-card-v14--closed { border-color: #c9dfd4; background: linear-gradient(135deg, #f2faf6 0%, #fff 100%); }
.finance-net-card-v14--closed > b { color: #16704f; }

@media (max-width: 860px) {
  .finance-debt-summary-v14 { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .finance-debt-card-v14 { padding: 18px; border-radius: 16px; }
  .finance-debt-card-v14__head { gap: 10px; }
  .finance-debt-card-v14__head strong { font-size: 30px; }
  .finance-debt-card-v14__badge { padding: 6px 8px; font-size: 10px; }
  .finance-net-card-v14 { align-items: flex-start; flex-direction: column; gap: 13px; padding: 17px 18px; }
  .finance-net-card-v14 > div > strong { font-size: 18px; }
  .finance-net-card-v14 > b { font-size: 30px; }
}

/* === Beta v15 AI === */
.ai-page-heading{align-items:flex-start}.ai-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.ai-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.7fr);gap:20px;align-items:start}.ai-chat-panel{overflow:hidden;padding:0}.ai-chat-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid #e7edf2}.ai-chat-head strong{display:block;font-size:18px;color:#173b55}.ai-chat-head small{display:block;margin-top:3px;color:#738495}.ai-quick-prompts{display:flex;gap:8px;overflow:auto;padding:12px 18px;border-bottom:1px solid #edf1f4;background:#f8fafc}.ai-quick-prompts button{flex:0 0 auto;border:1px solid #d8e2ea;background:#fff;color:#244c67;border-radius:999px;padding:8px 12px;font:inherit;font-size:13px;cursor:pointer;transition:.18s}.ai-quick-prompts button:hover{border-color:#1e719d;background:#eef8fd}.ai-chat{min-height:420px;max-height:65vh;overflow:auto;padding:22px;background:linear-gradient(180deg,#f8fbfd 0,#fff 34%)}.ai-message{max-width:82%;margin:0 0 16px}.ai-message--user{margin-left:auto}.ai-message__meta{font-size:11px;color:#8a9aa8;margin:0 4px 5px}.ai-message__text{padding:12px 14px;border-radius:15px;line-height:1.55;white-space:normal;box-shadow:0 6px 20px rgba(18,58,90,.05)}.ai-message--user .ai-message__text{background:#174f70;color:#fff;border-bottom-right-radius:5px}.ai-message--assistant .ai-message__text{background:#fff;color:#263b49;border:1px solid #e2e9ee;border-bottom-left-radius:5px}.ai-empty{text-align:center;max-width:470px;margin:110px auto;color:#6c7f8d}.ai-empty strong{display:block;font-size:20px;color:#24445a}.ai-empty p{line-height:1.55}.ai-composer{padding:16px 18px;border-top:1px solid #e5ebef;background:#fff}.ai-composer .textarea{resize:vertical;min-height:82px}.ai-composer__foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px}.ai-composer__foot small{color:#778995}.ai-sidebar{display:grid;gap:16px}.ai-safety-card{display:flex;gap:14px;align-items:flex-start;background:linear-gradient(135deg,#f1fbf6,#fff);border-color:#cdebd9}.ai-safety-card__icon{font-size:28px}.ai-safety-card strong{display:block;color:#17603c}.ai-safety-card p{margin:5px 0 0;color:#567264;line-height:1.45;font-size:13px}.ai-draft-list,.ai-reminder-list{display:grid;gap:10px}.ai-draft-card{border:1px solid #e1e8ed;border-radius:14px;padding:14px;background:#fbfcfd}.ai-draft-card__summary{font-size:13px;line-height:1.5;color:#304858}.ai-draft-card__actions{display:flex;gap:8px;margin-top:12px}.ai-reminder-row{padding:10px 0;border-bottom:1px solid #edf1f4}.ai-reminder-row:last-child{border-bottom:0}.ai-reminder-row strong,.ai-reminder-row small{display:block}.ai-reminder-row strong{font-size:13px;color:#2c4658}.ai-reminder-row small{margin-top:4px;color:#83929e}.table-note{display:block;margin-top:4px;color:#83929e}.ai-integration-panel{border:1px solid #dbe6ee;background:linear-gradient(180deg,#fff,#f9fcfe)}.ai-integration-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ai-mode-box{border:1px solid #e0e8ee;border-radius:14px;padding:14px;background:#fff}.ai-mode-box h3{margin:0 0 6px}.ai-contacts{display:grid;gap:8px}.ai-contact-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.8fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid #e5ebef;border-radius:12px}.ai-contact-row small{display:block;color:#7a8b97}.ai-model-list{max-height:180px;overflow:auto;background:#f7fafc;border:1px solid #e0e8ed;border-radius:10px;padding:8px;font-size:12px;color:#526876}
@media(max-width:980px){.ai-layout{grid-template-columns:1fr}.ai-sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-sidebar>.panel:first-child{grid-column:1/-1}}
@media(max-width:680px){.ai-heading-actions{justify-content:flex-start}.ai-chat{min-height:360px;max-height:60vh;padding:14px}.ai-message{max-width:94%}.ai-sidebar{grid-template-columns:1fr}.ai-composer__foot{align-items:stretch;flex-direction:column}.ai-composer__foot .btn{width:100%}.ai-integration-grid{grid-template-columns:1fr}.ai-contact-row{grid-template-columns:1fr}.ai-quick-prompts{padding:10px 12px}.ai-chat-head{padding:14px}.ai-message__text{font-size:14px}}

/* Beta v15: кассы */
.cashbox-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.cashbox-summary-card{display:flex;flex-direction:column;gap:5px;text-decoration:none;color:inherit;transition:transform .18s ease,border-color .18s ease}.cashbox-summary-card:hover{transform:translateY(-2px)}.cashbox-summary-card--active{border-color:rgba(216,56,0,.45);box-shadow:0 10px 28px rgba(18,63,99,.1)}.cashbox-summary-card small{color:var(--muted,#687481)}.cashbox-summary-card strong{font-size:18px}.cashbox-summary-card b{font-size:28px;color:#123f63}.inline-filter{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-filter .input{width:auto;min-width:145px}@media(max-width:720px){.cashbox-summary-grid{grid-template-columns:1fr 1fr}.cashbox-summary-card{padding:14px}.cashbox-summary-card b{font-size:22px}.inline-filter{width:100%}.inline-filter .input,.inline-filter .btn{width:100%}}@media(max-width:430px){.cashbox-summary-grid{grid-template-columns:1fr}}

/* === Beta v15.3: CSV/XLS import and CSV export of warehouse balances === */
.csv-stock-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(320px, .85fr);
    gap: 20px;
    align-items: start;
}

.csv-stock-sidebar {
    display: grid;
    gap: 20px;
}

.csv-stock-sidebar .panel {
    margin-bottom: 0;
}

.csv-option-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.csv-option-grid .switch-card {
    min-height: 92px;
}

.csv-option-grid .switch-card span {
    display: grid;
    gap: 5px;
}

.csv-option-grid .switch-card small {
    color: var(--muted);
    line-height: 1.4;
}

.csv-warning {
    padding: 15px 17px;
    border: 1px solid #ffd5a8;
    border-radius: 12px;
    background: #fff8ee;
}

.csv-warning strong {
    display: block;
    color: #8b4a00;
}

.csv-warning p {
    margin: 5px 0 0;
    color: #755128;
}

.csv-confirm {
    min-height: 54px;
    padding: 14px 16px;
    display: flex;
    align-items: flex-start;
    gap: 11px;
    border: 1px solid #cbdde9;
    border-radius: 12px;
    background: #f5faff;
    font-weight: 700;
    cursor: pointer;
}

.csv-confirm input {
    margin-top: 3px;
}

.csv-columns {
    display: grid;
    gap: 10px;
}

.csv-columns > div {
    padding: 11px 12px;
    display: grid;
    gap: 4px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface-soft);
}

.csv-columns code,
.csv-warehouse-list code {
    color: #0f567e;
    font-weight: 800;
}

.csv-columns span {
    color: var(--muted);
    font-size: 12px;
}

.csv-warehouse-list {
    display: grid;
    gap: 9px;
}

.csv-warehouse-list > div {
    padding: 11px 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface-soft);
}

.csv-warehouse-list span {
    display: grid;
    gap: 2px;
}

.csv-warehouse-list small {
    color: var(--muted);
}

.csv-example-card pre {
    margin: 0;
    padding: 13px;
    overflow-x: auto;
    border-radius: 10px;
    background: #102a3c;
    color: #eef8ff;
    font-size: 12px;
    line-height: 1.55;
}

@media (max-width: 980px) {
    .csv-stock-layout {
        grid-template-columns: 1fr;
    }

    .csv-stock-sidebar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .csv-stock-sidebar .csv-example-card {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    .csv-option-grid,
    .csv-stock-sidebar {
        grid-template-columns: 1fr;
    }

    .csv-stock-sidebar .csv-example-card {
        grid-column: auto;
    }
}
