.contract-document-editor {
    --contract-editor-border: #d9e2ea;
    --contract-editor-toolbar-bg: #f6f9fb;
    --contract-editor-page-bg: #f3f6f8;
    --contract-editor-ink: #172033;
    --contract-editor-muted: #64748b;
}

.contract-document-editor__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding: 0.625rem;
    border: 1px solid var(--contract-editor-border);
    border-radius: 0.75rem 0.75rem 0 0;
    background: var(--contract-editor-toolbar-bg);
}

.contract-document-editor__toolbar-group {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding-right: 0.5rem;
    border-right: 1px solid var(--contract-editor-border);
}

.contract-document-editor__toolbar-group:last-child {
    border-right: 0;
}

.contract-document-editor__select {
    width: auto;
    min-width: 8.5rem;
}

.contract-document-editor__select--compact {
    min-width: 7rem;
}

.contract-document-editor__colour-input {
    width: 2rem;
    height: 2rem;
    padding: 0.15rem;
    border: 1px solid var(--contract-editor-border);
    border-radius: 0.45rem;
    background: #fff;
    cursor: pointer;
}

.contract-document-editor__colour-input:hover,
.contract-document-editor__colour-input:focus {
    border-color: #b8dbe7;
}

.contract-document-editor__toolbar-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0.25rem;
    border: 1px solid transparent;
    border-radius: 0.45rem;
    background: transparent;
    color: var(--contract-editor-ink);
}

.contract-document-editor__toolbar-button:hover,
.contract-document-editor__toolbar-button:focus {
    border-color: #b8dbe7;
    background: #eaf6fa;
    color: #1E789A;
}

.contract-document-editor__toolbar-button--text {
    width: auto;
    min-width: 3.5rem;
    padding-inline: 0.65rem;
    font-size: 0.875rem;
    font-weight: 600;
}

.contract-document-editor__asset-picker {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.contract-document-editor__asset-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: 0.85rem;
}

.contract-document-editor__asset-card {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    align-items: stretch;
    width: 100%;
    padding: 0.7rem;
    border: 1px solid #dfe8f2;
    border-radius: 0.85rem;
    background: #ffffff;
    text-align: left;
}

.contract-document-editor__asset-card:hover,
.contract-document-editor__asset-card:focus {
    border-color: #2ba3c5;
    box-shadow: 0 10px 22px rgba(43, 163, 197, 0.16);
}

.contract-document-editor__asset-preview {
    width: 100%;
    height: 7rem;
    object-fit: contain;
    border-radius: 0.6rem;
    background: #f5f9fd;
}

.contract-document-editor__asset-title {
    color: #0d1733;
    font-size: 0.86rem;
    font-weight: 700;
    word-break: break-word;
}

.contract-document-editor__asset-meta {
    color: #6a7894;
    font-size: 0.76rem;
}

.contract-document-editor__asset-image {
    display: block;
    max-width: 100%;
    min-height: 3rem;
    margin: 0.75rem 0;
    padding: 1.25rem;
    border: 1px dashed #8bc5d8;
    border-radius: 0.75rem;
    background: #f3fbfd;
}

.contract-document-editor__asset-image::after {
    content: "Contract image asset " attr(data-corvue-asset-id);
    color: #1e789a;
    font-family: var(--bs-font-sans-serif, Arial, sans-serif);
    font-size: 0.85rem;
    font-weight: 700;
}

.contract-document-editor__page-shell {
    overflow-x: auto;
    padding: 1.5rem;
    border: 1px solid var(--contract-editor-border);
    border-top: 0;
    border-radius: 0 0 0.75rem 0.75rem;
    background: var(--contract-editor-page-bg);
}

.contract-document-editor__surface {
    max-width: 794px;
    min-height: 560px;
    margin: 0 auto;
    padding: 3rem 3.25rem;
    border: 1px solid #d7dee8;
    border-radius: 0.35rem;
    background: #fff;
    box-shadow: 0 1rem 2.25rem rgba(13, 23, 51, 0.11);
}

.contract-document-editor__prosemirror {
    min-height: 460px;
    outline: none;
    color: var(--contract-editor-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1rem;
    line-height: 1.55;
}

.contract-document-editor__prosemirror p {
    margin: 0 0 0.85rem;
}

.contract-document-editor__prosemirror h1,
.contract-document-editor__prosemirror h2,
.contract-document-editor__prosemirror h3 {
    margin: 1.5rem 0 0.75rem;
    color: #0D1733;
    font-family: Inter, "Segoe UI", Arial, sans-serif;
    line-height: 1.2;
}

.contract-document-editor__prosemirror h1:first-child,
.contract-document-editor__prosemirror h2:first-child,
.contract-document-editor__prosemirror h3:first-child {
    margin-top: 0;
}

.contract-document-editor__prosemirror h1 {
    font-size: 1.65rem;
}

.contract-document-editor__prosemirror h2 {
    font-size: 1.35rem;
}

.contract-document-editor__prosemirror h3 {
    font-size: 1.1rem;
}

.contract-document-editor__prosemirror table {
    width: 100%;
    margin: 1rem 0;
    border-collapse: collapse;
    table-layout: fixed;
}

.contract-document-editor__prosemirror th,
.contract-document-editor__prosemirror td {
    min-width: 1em;
    padding: 0.5rem 0.65rem;
    border: 1px solid #9fb2c4;
    vertical-align: top;
}

.contract-document-editor__prosemirror th {
    background: #edf6f9;
    font-weight: 700;
}

.contract-document-editor__prosemirror .selectedCell::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: rgba(43, 163, 197, 0.18);
}

.contract-document-editor__prosemirror .column-resize-handle {
    position: absolute;
    top: 0;
    right: -2px;
    bottom: -2px;
    width: 4px;
    background: #2BA3C5;
    pointer-events: none;
}

.contract-document-editor__prosemirror hr.page-break {
    height: 0;
    margin: 2rem 0;
    border: 0;
    border-top: 2px dashed #68B0A8;
}

.contract-document-editor__prosemirror hr.page-break::after {
    content: "Page break";
    display: inline-block;
    margin-top: -0.8rem;
    padding: 0 0.5rem;
    background: #fff;
    color: var(--contract-editor-muted);
    font-family: Inter, "Segoe UI", Arial, sans-serif;
    font-size: 0.75rem;
}

/* Authoring aid only: column boundaries are invisible in the rendered */
/* document, so the editor surface hints at them while writing.        */
.contract-document-editor__prosemirror .contract-columns__column {
    padding: 0.25rem;
    outline: 1px dashed #cbd5e1;
    outline-offset: 2px;
}

.contract-document-editor__prosemirror .is-empty::before {
    content: attr(data-placeholder);
    float: left;
    height: 0;
    pointer-events: none;
    color: #94a3b8;
}

.contract-document-editor__contract-block {
    margin: 1rem 0;
    padding: 0.85rem 1rem;
    border: 1px solid #9fd2e0;
    border-radius: 0.75rem;
    background: linear-gradient(135deg, #eef9fc, #f8fff0);
    color: #0D1733;
    font-family: Inter, "Segoe UI", Arial, sans-serif;
    font-weight: 700;
    cursor: pointer;
}

.contract-document-editor__contract-block-title,
.contract-document-editor__contract-block-meta,
.contract-document-editor__contract-block-warning {
    display: block;
}

.contract-document-editor__contract-block-meta {
    margin-top: 0.15rem;
    color: #64748b;
    font-size: 0.85rem;
    font-weight: 600;
}

.contract-document-editor__contract-block-warning {
    margin-top: 0.35rem;
    color: #92400e;
    font-size: 0.8rem;
    font-weight: 700;
}

.contract-document-editor__contract-block--warning {
    border-color: #f59e0b;
    background: #fff7ed;
}

.contract-document-editor__contract-block::before {
    content: "Dynamic pricing block";
    display: block;
    margin-bottom: 0.25rem;
    color: #1E789A;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.contract-document-editor__contract-block.ProseMirror-selectednode {
    outline: 3px solid rgba(43, 163, 197, 0.35);
}

.contract-document-editor__selected-block,
.contract-document-editor__selected-block-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--contract-editor-border);
    border-top: 0;
    background: #fff;
}

.contract-document-editor__selected-block-form {
    display: block;
    background: #f8fafc;
}

/* Inline control row shown while a managed-asset image node is selected. */
.contract-document-editor__selected-image {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    border: 1px solid var(--contract-editor-border);
    border-top: 0;
    background: #fff;
}

.contract-document-editor__selected-block-options,
.contract-dynamic-block-picker__presets {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.75rem;
}

.contract-document-editor__selected-block-options .form-check {
    min-width: 11rem;
}

.contract-dynamic-block-picker__menu {
    min-width: 21rem;
}

.contract-dynamic-block-picker__options {
    display: grid;
    gap: 0.25rem;
}

.contract-block-picker__preview {
    overflow: hidden;
    color: #64748b;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.contract-dynamic-block {
    margin: 1rem 0;
}

.contract-dynamic-block__pricing-table,
.contract-dynamic-block__summary-table {
    width: 100%;
    border-collapse: collapse;
}

.contract-dynamic-block__pricing-table th,
.contract-dynamic-block__pricing-table td,
.contract-dynamic-block__summary-table th,
.contract-dynamic-block__summary-table td {
    padding: 0.45rem 0.6rem;
    border: 1px solid #d5e1ea;
}

.contract-dynamic-block__pricing-section-row,
.contract-dynamic-block__grand-total,
.contract-dynamic-block__section-total {
    background: #f6f9fb;
}

.contract-dynamic-block--total,
.contract-dynamic-block--unavailable {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 1rem;
    border: 1px solid #d5e1ea;
    border-radius: 0.65rem;
    background: #f6f9fb;
}

.contract-dynamic-block--unavailable {
    color: #92400e;
    background: #fff7ed;
}

.contract-key-details {
    margin: 1.5rem 0;
    page-break-inside: avoid;
    break-inside: avoid;
}

.contract-key-details__table {
    width: 100%;
    border-collapse: collapse;
}

.contract-key-details__section + .contract-key-details__section {
    border-top: 0.5rem solid transparent;
}

.contract-key-details__label,
.contract-key-details__value {
    padding: 0.45rem 0.6rem;
    border: 1px solid #d5e1ea;
    vertical-align: top;
}

.contract-key-details__label {
    width: 35%;
    font-weight: 600;
    background: #f6f9fb;
}

.contract-key-details__value {
    width: 65%;
}

.contract-signature-block {
    margin: 1.5rem 0;
    page-break-inside: avoid;
    break-inside: avoid;
}

.contract-signature-block--unavailable {
    padding: 0.75rem 1rem;
    border: 1px solid #d5e1ea;
    border-radius: 0.65rem;
    background: #fff7ed;
    color: #92400e;
}

.contract-signature-block__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: 1.5rem;
}

.contract-signature-block__party {
    border: 1px solid #d5e1ea;
    border-radius: 0.5rem;
    padding: 1rem;
}

.contract-signature-block__title {
    font-weight: 600;
    margin-bottom: 0.75rem;
}

.contract-signature-block__line {
    border-bottom: 1px solid #1f2937;
    height: 2rem;
    margin-bottom: 0.5rem;
    display: flex;
    align-items: flex-end;
    font-style: italic;
    color: #166534;
}

.contract-signature-block__line--signed {
    border-bottom-color: #166534;
}

.contract-signature-block__meta-row {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.9rem;
    padding: 0.15rem 0;
}

.contract-signature-block__meta-label {
    color: #4b5563;
}

.contract-contact-details {
    margin: 1.5rem 0;
    page-break-inside: avoid;
    break-inside: avoid;
}

.contract-contact-details--unavailable {
    padding: 0.75rem 1rem;
    border: 1px solid #d5e1ea;
    border-radius: 0.65rem;
    background: #fff7ed;
    color: #92400e;
}

.contract-contact-details__heading {
    font-weight: 600;
    font-size: 1.05rem;
    margin-bottom: 0.5rem;
}

.contract-contact-details__body {
    margin: 0 0 0.75rem;
    color: #374151;
}

.contract-contact-details__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: 0.5rem 1.5rem;
    margin: 0;
}

.contract-contact-details__row {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    border-bottom: 1px solid #e5e7eb;
    padding: 0.25rem 0;
}

.contract-contact-details__label {
    font-weight: 600;
    color: #4b5563;
    margin: 0;
}

.contract-contact-details__value {
    margin: 0;
}

.contract-service-rates {
    margin: 1.5rem 0;
    page-break-inside: avoid;
    break-inside: avoid;
    overflow-x: auto;
}

.contract-service-rates--unavailable {
    padding: 0.75rem 1rem;
    border: 1px solid #d5e1ea;
    border-radius: 0.65rem;
    background: #fff7ed;
    color: #92400e;
}

.contract-service-rates__table {
    width: 100%;
    border-collapse: collapse;
}

.contract-service-rates__table thead {
    background: #f3f4f6;
}

.contract-service-rates__label {
    text-align: left;
    font-weight: 600;
    color: #4b5563;
    padding: 0.5rem 0.75rem;
    border-bottom: 2px solid #d1d5db;
}

.contract-service-rates__label--numeric {
    text-align: right;
}

.contract-service-rates__value {
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid #e5e7eb;
    vertical-align: top;
}

.contract-service-rates__value--numeric {
    text-align: right;
    white-space: nowrap;
}

/* --------------------------------------------------------------------- */
/* A4 contract document page shell (Slice 8)                             */
/* First-pass controlled surface so native contract rendering can begin  */
/* to mimic the printed/PDF page style. Class-based only, no inline      */
/* styles, no client-side pagination - real pagination is left to the   */
/* browser print engine via break-after: page.                          */
/* --------------------------------------------------------------------- */

.contract-document {
    background: #e5e7eb;
    padding: 1.5rem 0;
}

.contract-document--preview,
.contract-document--public {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.contract-page {
    background: #ffffff;
    width: 100%;
    max-width: 210mm;
    min-height: 297mm;
    margin: 0 auto 1.5rem;
    padding: 20mm 18mm;
    box-sizing: border-box;
    box-shadow: 0 0.25rem 1.5rem rgba(15, 23, 42, 0.12);
}

.contract-page--cover {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.contract-page__content {
    display: block;
    width: 100%;
}

.contract-section {
    margin-bottom: 1.5rem;
    page-break-inside: avoid;
    break-inside: avoid;
}

.contract-section--cover {
    text-align: center;
    page-break-after: always;
    break-after: page;
}

.contract-section--signature {
    page-break-inside: avoid;
    break-inside: avoid;
}

.contract-page-break {
    page-break-after: always;
    break-after: page;
    height: 0;
    margin: 0;
    border: 0;
}

/* --------------------------------------------------------------------- */
/* Rich formatting output (Task 9)                                        */
/* These rules are deliberately unscoped to a single surface: the same    */
/* saved HTML is rendered by the editor, section thumbnails, the preview  */
/* page, the print route and the Playwright PDF renderer, and all of them */
/* load this stylesheet. Without them, column layouts render stacked      */
/* everywhere except the editor.                                          */
/* --------------------------------------------------------------------- */

.contract-columns {
    display: flex;
    gap: 6mm;
    break-inside: avoid;
    page-break-inside: avoid;
}

.contract-columns__column {
    flex: 1 1 0;
    min-width: 0;
}

mark {
    padding: 0 0.1em;
}

/* Paragraph indent needs no rule here: the paragraphIndent extension renders the depth as an
   inline `margin-left`, and `data-indent` is only the value the extension parses back out. */

/* --------------------------------------------------------------------- */
/* Managed-asset image sizing and alignment.                              */
/*                                                                        */
/* These are CLASSES rather than inline styles on purpose. SafeHtml       */
/* deliberately excludes `display` from AllowedCssProperties, and auto-   */
/* margin centring of an <img> (an inline element) does nothing without   */
/* `display: block` — so the editor emits classes plus inert data-width / */
/* data-align attributes it can read the choice back from, and the        */
/* sanitiser's CSS allow-list stays untouched. This file is linked from   */
/* App.razor, so the rules reach preview, print, public and PDF alike.    */
/*                                                                        */
/* Alignment uses auto margins, never floats: a floated image leaves the  */
/* normal flow, so the paginator would under-measure the page height and  */
/* the preview would stop agreeing with the exported PDF.                 */
/* --------------------------------------------------------------------- */

.contract-asset-image {
    max-width: 100%;
    height: auto;
}

.contract-asset-image--w25 {
    width: 25%;
}

.contract-asset-image--w50 {
    width: 50%;
}

.contract-asset-image--w75 {
    width: 75%;
}

.contract-asset-image--w100 {
    width: 100%;
}

.contract-asset-image--left {
    display: block;
    margin-left: 0;
    margin-right: auto;
}

.contract-asset-image--centre {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.contract-asset-image--right {
    display: block;
    margin-left: auto;
    margin-right: 0;
}

/* Print and PDF engines drop background paint by default, which would */
/* silently lose highlights and shaded table cells. Declared outside a  */
/* print media query so it holds however the PDF renderer emulates      */
/* media. It is inert on screen.                                        */
.contract-page mark,
.contract-page th,
.contract-page td,
.contract-a4-page mark,
.contract-a4-page th,
.contract-a4-page td {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

@media print {
    .contract-document {
        background: none;
        padding: 0;
    }

    .contract-page {
        width: auto;
        min-height: 0;
        margin: 0;
        padding: 0;
        box-shadow: none;
    }
}

.contract-snippets-page__filter-primary {
    min-width: min(28rem, 100%);
    flex: 1 1 22rem;
}

.contract-snippets-page__filter-select {
    min-width: 12rem;
}

.contract-snippets-page__preview {
    max-height: 16rem;
    overflow: auto;
    padding: 1rem;
    border: 1px solid #d5e1ea;
    border-radius: 0.65rem;
    background: #fff;
}

.contract-snippets-page__preview table {
    width: 100%;
    border-collapse: collapse;
}

.contract-snippets-page__preview th,
.contract-snippets-page__preview td {
    padding: 0.4rem 0.55rem;
    border: 1px solid #d5e1ea;
}

.contract-document-editor__fallback {
    min-height: 340px;
    font-family: Consolas, "Courier New", monospace;
}

@media (max-width: 767.98px) {
    .contract-document-editor__page-shell {
        padding: 0.75rem;
    }

    .contract-document-editor__surface {
        padding: 1.25rem;
    }
}

/* --------------------------------------------------------------------- */
/* Contract insert panel (Slice 9)                                       */
/* ZenContract-style "Elements" side panel, placed beside the rich-text  */
/* section editor. Buttons insert stable native block markers via the   */
/* existing editor insertion API - no freeform HTML/table editing here. */
/* --------------------------------------------------------------------- */

.contract-section-editor__layout {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.contract-section-editor__main {
    flex: 1 1 auto;
    min-width: 0;
}

.contract-section-editor__side {
    flex: 0 0 16rem;
    width: 16rem;
}

.contract-insert-panel {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 0.75rem;
    border: 1px solid var(--contract-editor-border, #d9dee3);
    border-radius: 0.75rem;
    background: #fff;
    position: sticky;
    top: 0.5rem;
}

.contract-insert-panel__group {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.contract-insert-panel__group-title {
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #4b5563;
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.contract-insert-panel__search {
    margin-bottom: 0.25rem;
}

.contract-insert-panel__subgroup {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.contract-insert-panel__subgroup-title {
    font-size: 0.7rem;
    font-weight: 600;
    color: #9ca3af;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    margin-top: 0.25rem;
}

.contract-insert-panel__button {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    text-align: left;
    padding: 0.4rem 0.6rem;
    border: 1px solid transparent;
    border-radius: 0.5rem;
    background: #f9fafb;
    color: #1f2937;
    font-size: 0.85rem;
}

.contract-insert-panel__button:hover {
    background: #eef2ff;
    border-color: #c7d2fe;
}

.contract-insert-panel__empty {
    padding: 0.25rem 0;
}

.contract-insert-panel__hint {
    margin-top: 0.25rem;
}

@media (max-width: 991.98px) {
    .contract-section-editor__layout {
        flex-direction: column;
    }

    .contract-section-editor__side {
        width: 100%;
        flex: 1 1 auto;
    }

    .contract-insert-panel {
        position: static;
    }
}

/* ---------------------------------------------------------------------- */
/* Paginated A4 output (contract-paginate.js)                              */
/* ---------------------------------------------------------------------- */

@page {
    size: A4;
    margin: 0;
}

.contract-document--paginated-source {
    display: none !important;
}

.contract-paged {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    background: #e9ecef;
    padding: 1.5rem 0;
}

.contract-a4-page {
    width: 210mm;
    height: 297mm;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: 0 1px 6px rgba(26, 26, 46, 0.18);
    page-break-after: always;
    break-after: page;
}

.contract-a4-page__header {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 7mm 16mm 3mm;
    font-size: 9pt;
    color: #6c757d;
}

.contract-a4-page__header-logo {
    max-height: 8mm;
    width: auto;
}

.contract-a4-page__body {
    flex: 1 1 auto;
    padding: 3mm 16mm;
    overflow: hidden;
}

.contract-a4-page__footer {
    flex: 0 0 auto;
    display: flex;
    justify-content: space-between;
    padding: 3mm 16mm 7mm;
    font-size: 9pt;
    color: #6c757d;
}

/* Cover pages are full-bleed: hide chrome and remove body padding. */
.contract-a4-page--cover .contract-a4-page__header,
.contract-a4-page--cover .contract-a4-page__footer {
    visibility: hidden;
}

.contract-a4-page--cover .contract-a4-page__body {
    padding: 0;
}

/* The page carrying the document's own letterhead must not repeat the running header.
   Hidden rather than removed so the header keeps the height pagination was measured against. */
.contract-a4-page--own-letterhead .contract-a4-page__header {
    visibility: hidden;
}

.contract-a4-page__section-slice {
    margin: 0;
}

@media print {
    .contract-paged {
        background: none;
        padding: 0;
        gap: 0;
        display: block;
    }

    .contract-a4-page {
        box-shadow: none;
    }

    /* A forced break after the final page would emit a trailing blank sheet. */
    .contract-a4-page:last-child {
        page-break-after: auto;
        break-after: auto;
    }
}