/* ==========================================================================
   Лист акта A4 (.paper / .a-*) — «Стол документа»
   ⚠ Фиксированные цвета бумаги ОСОЗНАННО без var(--*): лист = физический
   носитель А4, в тёмной теме остаётся белым (исключение из правила
   CSS-переменных — зафиксировано для счёта в schet_docplan_udalit.txt).
   Базовая геометрия листа + click-to-edit подсветка.
   Специфика блоков листа (.a-head/.a-table/.a-signs и др.)
   — по утверждённому прототипу; цвета фиксированные (бумага).
   @media print (по паттерну paper_schet.css).
   ========================================================================== */

/* ===== Масштаб и сам лист ===== */
.paper-scale { transform-origin: top center; transition: transform .15s; }
.paper {
    width: 794px;              /* A4 = 210mm @96dpi */
    min-height: 1123px;        /* A4 = 297mm @96dpi */
    background: #fdfbf5;
    color: #1a1a1a;
    font-family: 'Times New Roman', Georgia, serif;
    font-size: 13px;
    line-height: 1.45;
    padding: 48px 52px;
    box-shadow: var(--paper-shadow, 0 8px 32px rgba(15, 23, 42, .14));
}

/* ===== Click-to-edit подсветка (только на экране) ===== */
.paper [data-doc-field] { cursor: pointer; border-radius: 2px; transition: background .15s; }
.paper [data-doc-field]:hover { background: rgba(90, 82, 224, .05); }
.paper [data-focused="true"] { outline: 2px solid var(--primary); outline-offset: 2px; animation: paperPulse .6s; }
@keyframes paperPulse { 0% { box-shadow: 0 0 0 0 rgba(90, 82, 224, .4); } 100% { box-shadow: 0 0 0 8px rgba(90, 82, 224, 0); } }

/* ===== Шапка акта (классическая компоновка первички: заголовок по центру) ===== */
.a-head { text-align: center; margin-bottom: 6px; }
.a-docname { font-size: 20px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; margin: 0; }
.a-docname .a-title { display: block; font-size: 15px; font-weight: 700; text-transform: uppercase; margin-top: 2px; letter-spacing: 0; }
.a-numline { font-size: 13px; margin-top: 6px; }
.a-contract { font-size: 12px; margin-top: 2px; color: #222; }
.a-placedate { display: flex; justify-content: space-between; font-size: 13px; margin: 10px 0 14px; border-bottom: 1.5px solid #1a1a1a; padding-bottom: 8px; }
.a-preamble { text-align: justify; font-size: 12.5px; line-height: 1.5; margin-bottom: 12px; }
.a-period { font-size: 12.5px; margin-bottom: 10px; }

/* ===== Таблица позиций (item / раздел .a-section / подытог .a-subtotal) ===== */
/* table-layout: fixed + ширины в % (паттерн счёта): пропорции прототипа
   (34/45%/50/72/80/56/92 px на 690px контента) работают при любой ширине
   листа — лист всегда A4 794px (desktop/mobile/print едины) */
.a-table { width: 100%; border-collapse: collapse; margin-bottom: 12px; table-layout: fixed; }
.a-table th:nth-child(1) { width: 5%; }
.a-table th:nth-child(2) { width: 45%; }
.a-table th:nth-child(3) { width: 7%; }
.a-table th:nth-child(4) { width: 10%; }
.a-table th:nth-child(5) { width: 12%; }
.a-table th:nth-child(6) { width: 8%; }
.a-table th:nth-child(7) { width: 13%; }
.a-table th { background: #1a1a1a; color: #fff; padding: 6px 5px; font-size: 11px; font-weight: 700; text-align: center; border: 1px solid #1a1a1a; overflow-wrap: anywhere; }
.a-table td { padding: 5px; border: 1px solid #999; font-size: 12px; overflow-wrap: anywhere; }
.a-td-num { text-align: center; }
.a-td-name { text-align: left; }
.a-td-qty, .a-td-unit, .a-td-vat { text-align: center; }
.a-td-price, .a-td-sum { text-align: right; font-variant-numeric: tabular-nums; }
.a-table tr.a-section td { background: #ececec; color: #1a1a1a; font-weight: 700; text-align: left; letter-spacing: .3px; border-top: 2px solid #666; }
.a-table tr.a-subtotal td { background: #f4f4f4; font-weight: 700; }
.a-table tr.a-subtotal td.a-sub-lbl { text-align: right; }

/* ===== Итоги и пропись ===== */
.a-totals { text-align: right; margin-bottom: 14px; font-size: 12px; }
.a-tot-row { padding: 2px 0; }
.a-tot-row b { display: inline-block; min-width: 140px; text-align: right; }
.a-tot-final { font-size: 15px; font-weight: 700; border-top: 2px solid #1a1a1a; padding-top: 6px; margin-top: 4px; }
.a-words { font-size: 12px; margin-bottom: 4px; text-align: left; }
.a-words b { font-style: italic; }
.a-accept { font-size: 12.5px; text-align: justify; margin: 14px 0; padding: 10px 12px; background: #fafafa; border-left: 3px solid #1a1a1a; }
.a-extra { font-size: 12.5px; text-align: justify; margin-bottom: 14px; white-space: pre-line; }

/* ===== Подписи обеих сторон: реквизиты + подпись + М.П. одним блоком ===== */
.a-signs { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; margin-top: 26px; padding-top: 14px; border-top: 1.5px solid #1a1a1a; }
.a-sign h4 { font-size: 11px; text-transform: uppercase; color: #333; margin-bottom: 8px; border-bottom: 1px solid #999; padding-bottom: 3px; letter-spacing: .5px; }
.a-sign .a-line { font-size: 11.5px; margin-bottom: 2px; overflow-wrap: anywhere; color: #222; }
.a-sign-role { font-size: 12px; margin-top: 14px; margin-bottom: 18px; }
.a-sign-line { border-bottom: 1px solid #1a1a1a; height: 16px; margin-bottom: 4px; }
.a-sign-name { font-size: 11px; color: #444; }
.a-sign-row { display: flex; align-items: flex-end; gap: 12px; }
.a-sign-row .a-sign-main { flex: 1; }
.a-stamp { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; width: 104px; height: 50px; border: 1px dashed #999; color: #777; flex: none; }
.a-stamp-mp { font-size: 12px; font-weight: 700; letter-spacing: 1px; }
.a-stamp-br { font-size: 8px; text-transform: uppercase; letter-spacing: .3px; }
.a-selfhint { font-size: 10px; color: #555; margin-top: 14px; font-style: italic; }

/* ===== Мобильный: лист остаётся A4 794px (та же разметка, что desktop/print) —
   reflow-перекройка (width:100%) рвала числа в узких колонках и двойно сжималась
   fit-scale'ом; вписывание — мобильная ветка applyZoom (масштаб от ширины
   вьюпорта). Подписи — 2 колонки как на десктопе (лист фиксированный).
   Защита цепочки от широкого листа — в document_page.css (мобильный блок). ===== */

/* ===== Печать: ТОЛЬКО лист (ноль UI/дисклеймеров).
   @page A4 margin 0 — в document_base.html (post_print_css);
   скрытие UI (.doc-panel/.doc-action-bar/.doc-desk-toolbar/…) и сброс
   .doc-studio/.doc-desk/.doc-paper-wrap (включая inline-height от applyZoom)
   — в print.css. Здесь — только специфика листа акта (.paper / .a-*). ===== */
@media print {
    .paper-scale {
        transform: none !important;
        /* transition тоже убить: иначе при emulate print computed transform
           отдаёт интерполированный matrix до конца анимации (флейк проверок) */
        transition: none !important;
        width: 100% !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    .paper {
        box-shadow: none !important;
        width: 100% !important;
        max-width: 794px !important;
        min-height: auto !important;
        margin: 0 auto !important;
        padding: 48px 52px !important;
        background: #ffffff !important;
        color: #1a1a1a !important;
    }
    .paper [data-doc-field] { cursor: default !important; }
    .paper [data-doc-field]:hover { background: transparent !important; }
    .paper [data-focused="true"] { outline: none !important; animation: none !important; }

    /* Разрывы страниц: шапку/итоги/пропись/приёмку/подписи не рвать
       (преамбулу не лочим — длинный текст обязан течь по страницам),
       шапка таблицы повторяется на каждой странице (thead) */
    .a-head, .a-placedate, .a-totals, .a-words,
    .a-accept, .a-extra, .a-signs, .a-selfhint {
        break-inside: avoid;
        page-break-inside: avoid;
    }
    .a-table tr { break-inside: avoid; page-break-inside: avoid; }
    .a-table thead { display: table-header-group; }

    /* Железобетон: на печати подписи сторон ВСЕГДА в 2 колонки —
       мобильный @media (max-width:768px) НЕ должен срабатывать при узкой
       печатной области (масштаб/поля принтера в диалоге) */
    .a-signs {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
    }

    /* Чёрная шапка таблицы: без print-color-adjust браузер выкидывает фон —
       белый текст th станет невидимым */
    .a-table th {
        print-color-adjust: exact;
        -webkit-print-color-adjust: exact;
    }
}
