/* === 字体本地化 === */
@font-face {
    font-family: 'LocalSerif';
    src: url('../lib/NotoSerifSC-VariableFont_wght.ttf') format('truetype');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

body {
    font-family: 'LocalSerif', 'Noto Serif SC', 'STKaiti', 'KaiTi', 'SimSun', 'Songti SC', serif;
}

.pattern-bg {
    background-image: radial-gradient(#000000 1px, transparent 1px);
    background-size: 24px 24px;
    opacity: 0.05;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    pointer-events: none;
}

.writing-vertical {
    writing-mode: vertical-rl;
    text-orientation: upright;
    letter-spacing: 0.1em;
}

.hide-scrollbar::-webkit-scrollbar {
    display: none;
}

.hide-scrollbar {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.custom-scrollbar::-webkit-scrollbar {
    width: 4px;
}

.custom-scrollbar::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 4px;
}

.custom-scrollbar::-webkit-scrollbar-track {
    background: transparent;
}

/* === 打印核心样式 (复刻图片布局) === */
@media print {

    /* 强制横向 A4 */
    @page {
        size: A4 landscape;
        margin: 0;
    }

    body {
        background: white !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .no-print {
        display: none !important;
    }

    .print-only {
        display: block !important;
    }

    /* 分页控制 */
    .print-page {
        width: 297mm;
        /* A4 横向宽度 */
        height: 210mm;
        /* A4 横向高度 */
        page-break-after: always;
        position: relative;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        padding: 10mm;
        background-color: #fff;
        /* 默认白底 */
    }

    /* 喜事背景 - 浅粉色 */
    .print-page.joy-bg {
        background-color: #FFF0F5 !important;
        /* 类似图片的粉底 */
    }

    /* 最后一页不强行分页，避免多出白页 */
    .print-page:last-child {
        page-break-after: auto;
    }

    /* 隐藏默认的页眉页脚 */
    html,
    body {
        height: auto;
    }
}

/* 默认隐藏打印区域 */
.print-only {
    display: none;
}

[v-cloak] {
    display: none;
}

.fade-enter-active,
.fade-leave-active {
    transition: opacity 0.5s;
}

.fade-enter-from,
.fade-leave-to {
    opacity: 0;
}