.view-print {
    --card-gap: 0mm;
    --preview-scale: 1;
    --content-scale: 1;
    --cut-guide-colour: rgba(120, 88, 48, 0.55);
}

.print-measurement-host {
    --card-gap: 0mm;
    position: absolute;
    left: -20000px;
    top: 0;
    visibility: hidden;
    pointer-events: none;
}

.print-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 1rem;
    margin-bottom: 0.9rem;
}

.print-controls .back-link {
    margin-bottom: 0;
}

.print-controls .button-print {
    margin-left: auto;
}

.field-toggle {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.45rem;
    padding-bottom: 0.5rem;
    cursor: pointer;
}

.field-checkbox {
    width: 1rem;
    height: 1rem;
    accent-color: var(--gold);
}

.field-toggle-label {
    font-family: var(--font-heading);
    font-size: 0.88rem;
    letter-spacing: 0.06em;
    color: rgba(243, 231, 204, 0.78);
}

.print-summary {
    margin: 0 0 0.35rem;
    font-family: var(--font-heading);
    font-size: 0.92rem;
    color: rgba(243, 231, 204, 0.72);
}

.print-hint {
    margin: 0 0 1.35rem;
    max-width: 58rem;
    font-size: 0.88rem;
    line-height: 1.5;
    color: rgba(243, 231, 204, 0.5);
}

.print-sheets-viewport {
    overflow: hidden;
}

.print-sheets {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.5rem;
    transform: scale(var(--preview-scale));
    transform-origin: top left;
}

.print-sheet {
    position: relative;
    width: var(--sheet-width);
    height: var(--sheet-height);
    background: #fbf6e8;
    box-shadow: var(--shadow-sheet);
}

.print-sheet-grid {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: grid;
    grid-template-columns: repeat(var(--card-columns), var(--card-width));
    grid-template-rows: repeat(var(--card-rows), var(--card-height));
    gap: var(--card-gap);
    width: calc(
        var(--card-columns) * var(--card-width) + (var(--card-columns) - 1) * var(--card-gap)
    );
    height: calc(
        var(--card-rows) * var(--card-height) + (var(--card-rows) - 1) * var(--card-gap)
    );
}

/* ---------- cut guides ---------- */

.cut-guides {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: calc(
        var(--card-columns) * var(--card-width) + (var(--card-columns) - 1) * var(--card-gap)
    );
    height: calc(
        var(--card-rows) * var(--card-height) + (var(--card-rows) - 1) * var(--card-gap)
    );
    pointer-events: none;
}

.hide-cut-guides .cut-guides {
    display: none;
}

.cut-line {
    position: absolute;
    border: 0 dashed var(--cut-guide-colour);
}

.cut-line-vertical {
    top: -4mm;
    bottom: -4mm;
    left: var(--guide-offset);
    border-left-width: 0.25mm;
}

.cut-line-horizontal {
    left: -4mm;
    right: -4mm;
    top: var(--guide-offset);
    border-top-width: 0.25mm;
}

/* ---------- scale ruler ---------- */

.scale-ruler {
    position: absolute;
    left: 50%;
    bottom: 3mm;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1mm;
}

.scale-ruler-bar {
    display: block;
    width: 100mm;
    height: 2.5mm;
    border: 0.25mm solid var(--cut-guide-colour);
    border-top: none;
}

.scale-ruler-label {
    font-family: var(--font-heading);
    font-size: 7pt;
    color: var(--ink-faint);
}

/* ---------- the card itself ---------- */

.print-card {
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    width: var(--card-width);
    height: var(--card-height);
    padding: 5.4mm 5.6mm 4.4mm;
    font-family: var(--card-body-font);
    font-size: calc(var(--card-font-size) * var(--content-scale));
    line-height: 1.34;
    color: var(--card-ink);
    background-color: var(--card-surface);
    background-image: var(--card-surface-image);
    background-blend-mode: var(--card-surface-blend);
    border: var(--card-edge-width) var(--card-edge-style) var(--card-edge-colour);
    border-radius: var(--card-radius);
    box-shadow: var(--card-inner-shadow);
    isolation: isolate;
}

.print-card::before {
    content: "";
    position: absolute;
    inset: var(--card-frame-inset);
    border: var(--card-frame-width) var(--card-frame-style) var(--card-frame-colour);
    border-radius: var(--card-frame-radius);
    pointer-events: none;
    z-index: 0;
}

.print-card > * {
    position: relative;
    z-index: 1;
}

.print-card-header {
    flex: none;
    padding-bottom: 1mm;
    border-bottom: 0.35mm solid var(--card-rule);
}

.print-card-title {
    margin: 0;
    font-family: var(--card-title-font);
    font-size: calc(var(--card-title-size) * var(--content-scale));
    font-weight: var(--card-title-weight);
    line-height: 1.12;
    letter-spacing: var(--card-title-spacing);
    text-transform: var(--card-title-transform);
    color: var(--card-accent);
}

.print-card-subtitle {
    margin: 0.5mm 0 0;
    font-family: var(--card-subtitle-font);
    font-style: var(--card-subtitle-style);
    font-size: 1em;
    color: var(--card-ink-soft);
}

.print-card .badge-list {
    flex: none;
    margin: 1.2mm 0 0;
    gap: 1mm;
}

.print-card .badge {
    padding: 0 1.1mm;
    font-family: var(--card-label-font);
    font-size: 0.76em;
    letter-spacing: var(--card-label-spacing);
    text-transform: var(--card-label-transform);
    color: var(--card-accent);
    background: var(--card-accent-soft);
}

.print-card-stats {
    flex: none;
    grid-template-columns: minmax(14mm, auto) 1fr;
    gap: 0.5mm 2mm;
    margin: 1.6mm 0 0;
    padding-bottom: 1.6mm;
    border-bottom: 0.25mm dashed var(--card-rule);
}

.print-card-stats .stat-label {
    font-family: var(--card-label-font);
    font-size: 0.78em;
    letter-spacing: var(--card-label-spacing);
    text-transform: var(--card-label-transform);
    color: var(--card-ink-faint);
}

.print-card-stats .stat-value {
    font-size: 0.95em;
    color: var(--card-ink);
}

.print-card-body {
    flex: 1;
    min-height: 0;
    overflow: hidden;
    margin-top: 1.8mm;
    padding-bottom: 0.9mm;
}

.print-card-body .block-paragraph {
    margin: 0 0 1.5mm;
}

.print-card-body .block-heading {
    margin: 2mm 0 0.8mm;
    font-family: var(--card-title-font);
    font-size: 0.94em;
    letter-spacing: 0.05em;
    text-transform: var(--card-title-transform);
    color: var(--card-accent);
}

.print-card-body .block-list {
    margin: 0 0 1.5mm;
    padding-left: 4mm;
}

.print-card-body .block-table-wrapper {
    margin: 0 0 1.5mm;
    overflow: visible;
}

.print-card-body .block-table {
    font-size: 0.9em;
}

.print-card-body .block-table th,
.print-card-body .block-table td {
    padding: 0.4mm 1mm;
    border-bottom: 0.15mm solid var(--card-rule);
    color: var(--card-ink);
}

.print-card-body .block-table th {
    font-family: var(--card-label-font);
    font-size: 0.85em;
    letter-spacing: var(--card-label-spacing);
    text-transform: var(--card-label-transform);
    color: var(--card-ink-soft);
}

.print-card-body .block-table tbody tr:nth-child(odd) {
    background: var(--card-accent-soft);
}

.print-card-footer {
    flex: none;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 2mm;
    margin-top: 1.6mm;
    padding-top: 1.1mm;
    border-top: 0.25mm solid var(--card-rule);
    font-family: var(--card-subtitle-font);
    font-size: 0.78em;
    font-style: italic;
    color: var(--card-ink-faint);
}

.print-card-index {
    font-style: normal;
    letter-spacing: 0.08em;
}

@media print {
    html,
    body {
        margin: 0;
        padding: 0;
        background: #ffffff;
    }

    body * {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .page-backdrop,
    .site-header,
    .site-footer,
    .print-controls,
    .print-summary,
    .print-hint,
    .print-measurement-host {
        display: none !important;
    }

    .site-main {
        max-width: none;
        margin: 0;
        padding: 0;
    }

    .print-sheets-viewport {
        height: auto !important;
        overflow: visible;
    }

    .print-sheets {
        gap: 0;
        transform: none;
    }

    .print-sheet {
        box-shadow: none;
        background: #ffffff;
        break-after: page;
        page-break-after: always;
    }

    .print-sheet:last-child {
        break-after: auto;
        page-break-after: auto;
    }

    .print-card {
        break-inside: avoid;
        page-break-inside: avoid;
    }
}
