/* Shared ticket / receipt print layouts — desktop A4 and thermal POS (58mm / 80mm) */

.receipt-shell {
    max-width: 420px;
    margin: 0 auto;
}

.receipt-paper {
    background: #fff;
    border: 1px solid var(--line, #d1d5db);
    border-radius: 8px;
    position: relative;
    font-family: 'IBM Plex Mono', 'Roboto Mono', monospace;
}

.receipt-paper::before,
.receipt-paper::after {
    content: "";
    position: absolute;
    left: 12px;
    right: 12px;
    height: 12px;
    background-image: radial-gradient(circle, var(--cream-2, #f4f1ec) 4px, transparent 4.5px);
    background-size: 16px 12px;
    background-repeat: repeat-x;
    pointer-events: none;
}

.receipt-paper::before { top: -6px; }
.receipt-paper::after { bottom: -6px; }

.receipt-paper .ticket-header {
    background: var(--maroon, #6b1026);
    color: #fff;
    text-align: center;
    padding: 14px 16px 12px;
}

.receipt-sep {
    border-top: 1px dashed #9ca3af;
}

.per-seat-qr-block {
    border-top: 1px dashed #e2e8f0;
    padding-top: 0.75rem;
    margin-top: 0.75rem;
}

.per-seat-qr-block:first-of-type {
    border-top: 0;
    padding-top: 0;
    margin-top: 0;
}

/* Screen preview widths */
body.print-format-pos58 .receipt-shell {
    max-width: 220px;
}

body.print-format-pos80 .receipt-shell {
    max-width: 320px;
}

body.print-format-a4 .receipt-shell {
    max-width: 720px;
}

body.print-format-a4 .receipt-paper {
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}

body.print-format-a4 .receipt-paper .ticket-body {
    font-size: 0.875rem;
}

body.print-format-a4 .per-seat-qr-block img {
    width: 9rem;
    height: 9rem;
}

@media print {
    html,
    body {
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
    }

    body * {
        visibility: hidden;
    }

    .ticket-print-area,
    .ticket-print-area * {
        visibility: visible;
    }

    .ticket-print-area {
        position: absolute;
        left: 0;
        top: 0;
        margin: 0 !important;
        box-sizing: border-box;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .print-hide {
        display: none !important;
        visibility: hidden !important;
    }

    .receipt-shell {
        max-width: none !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .ticket-print-page {
        min-height: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        background: #fff !important;
    }

    .ticket-print-area.receipt-paper {
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    .ticket-header .ec-brand-logo__chip {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    body.print-format-pos58 .ec-brand-logo--ticket .ec-brand-logo__img {
        height: 32px !important;
        max-width: 100px !important;
    }

    /* Default thermal 80mm */
    body.print-format-pos80 .ticket-print-area,
    body:not(.print-format-pos58):not(.print-format-a4) .ticket-print-area {
        width: 80mm;
        max-width: 100%;
    }

    body.print-format-pos58 .ticket-print-area {
        width: 58mm;
        max-width: 100%;
        font-size: 9px;
    }

    body.print-format-pos58 .per-seat-qr-block img {
        width: 22mm !important;
        height: 22mm !important;
    }

    body.print-format-a4 .ticket-print-area {
        position: relative !important;
        width: 100% !important;
        max-width: 190mm !important;
        margin: 0 auto !important;
        page-break-inside: avoid;
    }

    @page {
        size: 80mm auto;
        margin: 3mm;
    }
}
