/* 字帖生成器样式 - 沿用工具箱暖橙暖黄主题 */

@font-face {
    font-family: 'XiawuWenkai';
    src: url('/fonts/LXGWWenKai-Regular.ttf') format('truetype');
    font-display: swap;
    font-weight: 400;
}

@font-face {
    font-family: 'SiyuanSongti';
    src: url('/fonts/SourceHanSerifCN-Regular.otf') format('opentype');
    font-display: swap;
    font-weight: 400;
}

@font-face {
    font-family: 'XiawuWenkaiGB';
    src: url('/fonts/LXGWWenKaiGB-Regular.ttf') format('truetype');
    font-display: swap;
    font-weight: 400;
}

@font-face {
    font-family: 'MasaFont';
    src: url('/fonts/MasaFont-Regular.ttf') format('truetype');
    font-display: swap;
    font-weight: 400;
}

@font-face {
    font-family: 'MaShanZheng';
    src: url('/fonts/MaShanZheng-Regular.ttf') format('truetype');
    font-display: swap;
    font-weight: 400;
}

@font-face {
    font-family: 'ZhiMangXing';
    src: url('/fonts/ZhiMangXing-Regular.ttf') format('truetype');
    font-display: swap;
    font-weight: 400;
}

@font-face {
    font-family: 'LiuJianMaoCao';
    src: url('/fonts/LiuJianMaoCao-Regular.ttf') format('truetype');
    font-display: swap;
    font-weight: 400;
}

.zitie-page {
    --zt-bg: #FBF7F0;
    --zt-surface: #FFFFFF;
    --zt-primary: #B45309;
    --zt-primary-hover: #92400E;
    --zt-accent: #EA580C;
    --zt-yellow: #FEF3C7;
    --zt-warm: #FED7AA;
    --zt-border: #E0DAC9;
    --zt-text: #2A2520;
    --zt-text-2: #57534E;
    --zt-text-3: #857F75;
    --zt-red: #c0392b;
    --zt-red-light: #f4b9b9;

    max-width: 1340px;
    margin: 0 auto;
    padding: 18px 16px 60px;
    background: var(--zt-bg);
    color: var(--zt-text);
    font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "HarmonyOS Sans SC", system-ui, sans-serif;
}

.zt-breadcrumb {
    font-size: 13px;
    color: var(--zt-text-3);
    margin-bottom: 12px;
}
.zt-breadcrumb a { color: var(--zt-text-2); text-decoration: none; }
.zt-breadcrumb a:hover { color: var(--zt-primary); }
.zt-breadcrumb .zt-sep { margin: 0 8px; color: var(--zt-text-3); }

.zt-hero {
    background: var(--zt-surface);
    border: 1px solid rgba(180,83,9,0.10);
    border-radius: 22px;
    padding: 32px 28px;
    margin-bottom: 22px;
    text-align: center;
    box-shadow: 0 2px 0 rgba(180,83,9,0.08);
}
.zt-hero-badge {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 5px 12px;
    background: var(--zt-yellow);
    color: #92400E;
    border: 1px solid #FCD34D;
    border-radius: 999px;
    font-size: 12px; font-weight: 600;
    margin-bottom: 12px;
}
.zt-hero-badge .dot {
    width: 6px; height: 6px;
    background: var(--zt-primary);
    border-radius: 50%;
}
.zt-hero-title {
    font-size: 28px; font-weight: 700;
    margin: 0 0 8px;
    color: var(--zt-text);
    font-family: "PingFang SC", "Songti SC", serif;
}
.zt-hero-sub {
    font-size: 14px; color: var(--zt-text-2);
    margin: 0; line-height: 1.6;
}

.zt-app {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 20px;
    align-items: start;
}

/* 左侧输入面板 */
.zt-panel {
    background: var(--zt-surface);
    border: 1px solid var(--zt-border);
    border-radius: 18px;
    padding: 20px 18px;
    box-shadow: 0 2px 0 rgba(180,83,9,0.06);
    position: sticky;
    top: 20px;
}
.zt-field { margin-bottom: 16px; }
.zt-field-row { display: flex; gap: 12px; }
.zt-half { flex: 1; }
.zt-label {
    display: block;
    font-size: 12px;
    color: var(--zt-text-2);
    font-weight: 600;
    margin-bottom: 6px;
}
.zt-textarea, .zt-input {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid var(--zt-border);
    border-radius: 8px;
    font-size: 14px;
    color: var(--zt-text);
    background: #FDFBF6;
    box-sizing: border-box;
    font-family: inherit;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.zt-textarea:focus, .zt-input:focus {
    outline: none;
    border-color: var(--zt-accent);
    box-shadow: 0 0 0 3px rgba(234,88,12,0.12);
}
.zt-textarea { resize: vertical; min-height: 64px; }
.zt-hint { font-size: 11px; color: var(--zt-text-3); margin-top: 4px; text-align: right; }

.zt-options { display: flex; flex-wrap: wrap; gap: 6px; }
.zt-opt {
    flex: 1 1 auto; min-width: 60px;
    position: relative; cursor: pointer; user-select: none;
}
.zt-opt input { position: absolute; opacity: 0; pointer-events: none; }
.zt-opt span {
    display: block;
    padding: 6px 4px;
    text-align: center;
    font-size: 12px;
    border: 1px solid var(--zt-border);
    border-radius: 8px;
    background: #F5EFE3;
    color: var(--zt-text-2);
    transition: all 0.15s;
}
.zt-opt input:checked + span {
    background: linear-gradient(135deg, var(--zt-accent), var(--zt-primary));
    color: #fff;
    border-color: var(--zt-primary);
    font-weight: 600;
    box-shadow: 0 2px 6px rgba(234,88,12,0.20);
}

.zt-toggle {
    display: flex; align-items: center; gap: 8px;
    cursor: pointer; user-select: none;
    flex: 1;
}
.zt-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.zt-toggle-slider {
    width: 32px; height: 18px;
    background: #C8C2B5;
    border-radius: 999px;
    position: relative;
    transition: background 0.2s;
}
.zt-toggle-slider::after {
    content: ""; position: absolute;
    top: 2px; left: 2px;
    width: 14px; height: 14px;
    background: #fff;
    border-radius: 50%;
    transition: transform 0.2s;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
.zt-toggle input:checked + .zt-toggle-slider {
    background: var(--zt-primary);
}
.zt-toggle input:checked + .zt-toggle-slider::after {
    transform: translateX(14px);
}
.zt-toggle-label { font-size: 13px; color: var(--zt-text-2); }

.zt-actions {
    display: flex; flex-direction: column; gap: 8px;
    margin-top: 18px;
}
.zt-btn {
    width: 100%;
    padding: 10px 14px;
    border: none;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
    font-family: inherit;
}
.zt-btn-primary {
    background: linear-gradient(135deg, var(--zt-accent), var(--zt-primary));
    color: #fff;
    box-shadow: 0 4px 10px rgba(234,88,12,0.25);
}
.zt-btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(234,88,12,0.35);
}
.zt-btn-secondary {
    background: var(--zt-yellow);
    color: var(--zt-primary);
    border: 1px solid #FCD34D;
}
.zt-btn-secondary:hover { background: var(--zt-warm); }

.zt-tip {
    font-size: 12px;
    color: var(--zt-text-3);
    text-align: center;
    margin-top: 12px;
    line-height: 1.5;
}

/* 预览区 */
.zt-preview-wrap {
    background: var(--zt-surface);
    border: 1px solid var(--zt-border);
    border-radius: 18px;
    padding: 16px;
    min-height: 600px;
}
.zt-preview-toolbar {
    display: flex; justify-content: space-between; align-items: center;
    padding: 0 4px 12px; border-bottom: 1px solid var(--zt-border);
    margin-bottom: 16px;
}
.zt-preview-title { font-size: 14px; font-weight: 600; color: var(--zt-text-2); }
.zt-preview-meta { font-size: 12px; color: var(--zt-text-3); }

.zt-preview {
    padding: 0;
}
.zt-empty {
    padding: 80px 20px;
    text-align: center;
    color: var(--zt-text-3);
    font-size: 14px;
}

/* === A4 页面排版 === */
.zt-pages {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    padding: 8px 0;
    overflow-x: auto;
}
.zt-page {
    width: 210mm;
    min-height: 297mm;
    padding: 10mm 12mm;
    background: #fff;
    color: #1a1a1a;
    box-sizing: border-box;
    border: 1px solid #e6e6e6;
    border-radius: 2px;
    position: relative;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
}
.zt-page-header {
    display: flex;
    align-items: baseline;
    gap: 8mm;
    margin: 0 0 4mm;
    font-size: 12pt;
    font-weight: 700;
    color: #000;
    font-family: "PingFang SC", "Songti SC", serif;
}
.zt-page-header-item {
    flex: 1;
    display: inline-flex;
    align-items: baseline;
    gap: 2mm;
    white-space: nowrap;
    color: #000;
}
.zt-page-header-line {
    flex: 1;
    align-self: end;
    height: 0;
    border-bottom: 0.3mm solid #000;
    margin-bottom: 0.5mm;
}
.zt-page-body {
    flex: 1;
    line-height: 0;
    font-size: 0;
}
/* 页脚：左空 / 中页码 / 右水印，整行在 .zt-page 底部 */
.zt-page-footer {
    margin-top: auto;
    padding-top: 3mm;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: baseline;
    gap: 6mm;
}
.zt-page-num {
    grid-column: 2;
    font-size: 10pt;
    color: #999;
    text-align: center;
    font-family: serif;
    letter-spacing: 0.5px;
}
.zt-page-watermark {
    grid-column: 3;
    justify-self: end;
    font-size: 9pt;
    color: #b8b8b8;
    font-family: "PingFang SC", "Songti SC", serif;
    letter-spacing: 0.5px;
    pointer-events: none;
    user-select: none;
}

/* === 四线三格：四条线横贯整个字行宽度，仅首格区域内显示拼音文字 === */
.zt-pv-pinyin-row {
    line-height: 0;
    font-size: 0;
    margin-bottom: 0.6mm;
    text-align: center;
}
.zt-pv-pinyin-staff {
    display: inline-block;
    position: relative;
    height: 9mm;
    vertical-align: top;
}
.zt-py-line {
    position: absolute;
    left: 0;
    right: 0;
    height: 0;
    pointer-events: none;
}
.zt-py-line-top    { top: 0;     border-top: 0.45mm solid #c0392b; }
.zt-py-line-mid-up { top: 33.3%; border-top: 0.3mm dashed #d56b65; }
.zt-py-line-mid-dn { top: 66.6%; border-top: 0.3mm dashed #d56b65; }
.zt-py-line-bot    { bottom: 0;  border-top: 0.45mm solid #c0392b; }
.zt-pv-pinyin-text {
    position: absolute;
    top: 0;
    left: 0;
    width: var(--zt-cell, 16mm);
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: "Times New Roman", "Liberation Serif", serif;
    font-size: 4.2mm;
    line-height: 1;
    color: #1a1a1a;
    /* 字母 x-height 落入中间格(33%-66%)，轻微下压让 j/g/y 垂到下格 */
    padding-bottom: 0.8mm;
}
.zt-pv-row {
    line-height: 0;
    font-size: 0;
    margin-bottom: 0.6mm;
    text-align: center;
    white-space: nowrap;
}
.zt-pv-cell {
    display: inline-block;
    width: var(--zt-cell, 16mm);
    height: var(--zt-cell, 16mm);
    position: relative;
    margin: 0;
    vertical-align: top;
}
.zt-pv-cell .zt-grid-svg {
    display: block;
    width: var(--zt-cell, 16mm);
    height: var(--zt-cell, 16mm);
    /* 关键：stroke 默认居中绘制会有一半溢出 viewBox 被剪掉；外侧边因无相邻格补位会"少半条线"
       让 SVG 不剪裁，把外溢的另一半也露出来 */
    overflow: visible;
}
/* === 笔顺示范行：小小一行，无田字格背景，逐笔累加，统一深色 === */
.zt-pv-stroke-row {
    line-height: 0;
    font-size: 0;
    text-align: center;
    margin-bottom: 0.8mm;
    white-space: nowrap;
}
.zt-pv-stroke-cell {
    display: inline-block;
    width: var(--zt-cell, 16mm);
    height: 5mm;
    position: relative;
    vertical-align: top;
}
.zt-pv-stroke-cell .zt-pv-stroke-svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}
.zt-pv-char {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: calc(var(--zt-cell, 16mm) * 0.75);
    line-height: 1;
    pointer-events: none;
}

/* 字色模式 */
.zt-color-solid     .zt-pv-char { color: #1a1a1a; }
.zt-color-redtrace  .zt-pv-char { color: #f5b8b8; }
.zt-color-graytrace .zt-pv-char { color: #d0d0d0; }
.zt-color-blank     .zt-pv-char { display: none; }

/* 字体 */
.zt-font-system .zt-pv-char { font-family: 'Kaiti SC', 'STKaiti', 'KaiTi', '楷体', 'PingFang SC', serif; }
.zt-font-xiawu  .zt-pv-char { font-family: 'XiawuWenkai', 'Kaiti SC', 'STKaiti', 'KaiTi', serif; }
.zt-font-xiawugb .zt-pv-char { font-family: 'XiawuWenkaiGB', 'Kaiti SC', 'STKaiti', 'KaiTi', serif; }
.zt-font-masa .zt-pv-char { font-family: 'MasaFont', 'Kaiti SC', 'STKaiti', 'KaiTi', serif; }
.zt-font-mashan .zt-pv-char { font-family: 'MaShanZheng', 'Kaiti SC', 'STKaiti', 'KaiTi', serif; }
.zt-font-zhimang .zt-pv-char { font-family: 'ZhiMangXing', 'Kaiti SC', 'STKaiti', 'KaiTi', serif; }
.zt-font-liujian .zt-pv-char { font-family: 'LiuJianMaoCao', 'Kaiti SC', 'STKaiti', 'KaiTi', serif; }
.zt-font-siyuan .zt-pv-char { font-family: 'SiyuanSongti', 'STSong', 'SimSun', serif; }

/* SEO 长尾正文 */
.zt-article {
    background: var(--zt-surface);
    border: 1px solid var(--zt-border);
    border-radius: 18px;
    padding: 28px 32px;
    margin-top: 22px;
    line-height: 1.8;
    color: var(--zt-text-2);
}
.zt-article h2 {
    font-size: 18px;
    font-weight: 700;
    color: var(--zt-text);
    margin: 24px 0 10px;
    padding-left: 10px;
    border-left: 4px solid var(--zt-primary);
}
.zt-article h2:first-child { margin-top: 0; }
.zt-article h3 {
    font-size: 15px;
    font-weight: 600;
    color: var(--zt-text);
    margin: 16px 0 6px;
}
.zt-article p { margin: 8px 0; font-size: 14px; }
.zt-article ul { padding-left: 22px; font-size: 14px; }
.zt-article ul li { margin: 4px 0; }
.zt-article strong { color: var(--zt-primary); }
.zt-presets { display: flex; flex-wrap: wrap; gap: 10px; padding-left: 0 !important; list-style: none; }
.zt-presets li {
    background: var(--zt-yellow);
    border: 1px solid #FCD34D;
    border-radius: 999px;
    padding: 4px 14px;
}
.zt-presets a { color: var(--zt-primary); text-decoration: none; font-weight: 600; font-size: 13px; }
.zt-presets a:hover { color: var(--zt-primary-hover); }

/* 响应式 */
@media (max-width: 1024px) {
    .zt-app { grid-template-columns: 1fr; }
    .zt-panel { position: static; }
}
@media (max-width: 768px) {
    .zitie-page { padding: 14px 12px 50px; }
    .zt-hero { padding: 24px 18px; border-radius: 18px; }
    .zt-hero-title { font-size: 22px; }
    .zt-hero-sub { font-size: 13px; }
    .zt-article { padding: 20px 18px; }
    /* A4 在小屏宽于视口，外层允许横向滚动；不缩字格以保证物理尺寸正确 */
    .zt-pages { align-items: flex-start; padding: 8px; }
}

/* ================================================
   🌙 暗色模式适配（沿用站点暖咖啡色板）
   预览区保留"纸张感"浅底，确保字格 SVG 与练习字可见
   ================================================ */
[data-theme="dark"] .zitie-page {
    --zt-bg: transparent;
    --zt-surface: #221C17;
    --zt-primary: #E6A82E;
    --zt-primary-hover: #FCD34D;
    --zt-accent: #E5874F;
    --zt-yellow: #3C2F25;
    --zt-warm: #4A3A2C;
    --zt-border: #4A3A2C;
    --zt-text: #E8DCC5;
    --zt-text-2: #B5A795;
    --zt-text-3: #7D7263;
}

/* Hero / 卡片 / 文章 - 统一深咖卡面 + 高光线 + 大投影 */
[data-theme="dark"] .zt-hero,
[data-theme="dark"] .zt-panel,
[data-theme="dark"] .zt-preview-wrap,
[data-theme="dark"] .zt-article {
    background: #221C17;
    border-color: #4A3A2C;
    box-shadow: 0 1px 0 rgba(255,255,255,0.04) inset, 0 8px 24px rgba(0,0,0,0.35);
}
[data-theme="dark"] .zt-hero-title { color: #E8DCC5; }
[data-theme="dark"] .zt-hero-sub { color: #B5A795; }
[data-theme="dark"] .zt-hero-badge {
    background: #3C2F25;
    color: #E6A82E;
    border-color: #5C4838;
}
[data-theme="dark"] .zt-hero-badge .dot { background: #E6A82E; }

/* breadcrumb */
[data-theme="dark"] .zt-breadcrumb { color: #7D7263; }
[data-theme="dark"] .zt-breadcrumb a { color: #B5A795; }
[data-theme="dark"] .zt-breadcrumb a:hover { color: #E6A82E; }

/* 表单控件 */
[data-theme="dark"] .zt-label { color: #B5A795; }
[data-theme="dark"] .zt-textarea,
[data-theme="dark"] .zt-input {
    background: #2A211B;
    border-color: #4A3A2C;
    color: #E8DCC5;
}
[data-theme="dark"] .zt-textarea::placeholder,
[data-theme="dark"] .zt-input::placeholder { color: #7D7263; }
[data-theme="dark"] .zt-textarea:focus,
[data-theme="dark"] .zt-input:focus {
    border-color: #E5874F;
    box-shadow: 0 0 0 3px rgba(251,146,60,0.18);
}
[data-theme="dark"] .zt-hint { color: #7D7263; }

[data-theme="dark"] .zt-opt span {
    background: #2A211B;
    border-color: #4A3A2C;
    color: #B5A795;
}
[data-theme="dark"] .zt-opt input:checked + span {
    background: linear-gradient(135deg, #B45309, #92400E);
    color: #FEF3C7;
    border-color: #92400E;
    box-shadow: 0 2px 6px rgba(0,0,0,0.45);
}

/* 开关 */
[data-theme="dark"] .zt-toggle-slider { background: #4A3A2C; }
[data-theme="dark"] .zt-toggle input:checked + .zt-toggle-slider { background: #B45309; }
[data-theme="dark"] .zt-toggle-slider::after { background: #E8DCC5; }
[data-theme="dark"] .zt-toggle-label { color: #B5A795; }

/* 按钮 */
[data-theme="dark"] .zt-btn-primary {
    background: linear-gradient(135deg, #B45309, #92400E);
    color: #FEF3C7;
    box-shadow: 0 4px 10px rgba(0,0,0,0.45);
}
[data-theme="dark"] .zt-btn-primary:hover {
    box-shadow: 0 6px 14px rgba(180,83,9,0.55);
}
[data-theme="dark"] .zt-btn-secondary {
    background: #3C2F25;
    color: #E6A82E;
    border-color: #5C4838;
}
[data-theme="dark"] .zt-btn-secondary:hover {
    background: #4A3A2C;
    color: #FCD34D;
}
[data-theme="dark"] .zt-tip { color: #7D7263; }

/* 预览区 - 工具栏 + 状态 */
[data-theme="dark"] .zt-preview-toolbar { border-bottom-color: #4A3A2C; }
[data-theme="dark"] .zt-preview-title { color: #B5A795; }
[data-theme="dark"] .zt-preview-meta { color: #7D7263; }
[data-theme="dark"] .zt-empty { color: #7D7263; }

/* 暗色下：预览容器透明，让 .zt-page 自带的白色"纸张"在深咖卡里显眼地浮起来 */
[data-theme="dark"] .zt-preview { background: transparent; }
/* 用户要求：A4 预览纸张本身夜间也按白天模式渲染（边框、底色、内文色一律不变） */
[data-theme="dark"] .zt-page {
    background: #fff;
    color: #1a1a1a;
    border-color: #e6e6e6;
    box-shadow: none;
}
/* 反制全站 [data-theme="dark"] span / h2 等规则把页内文字变浅 */
[data-theme="dark"] .zt-page,
[data-theme="dark"] .zt-page-header,
[data-theme="dark"] .zt-page-header-item,
[data-theme="dark"] .zt-pv-pinyin-text {
    color: #000;
}
[data-theme="dark"] .zt-page-num { color: #999; }
[data-theme="dark"] .zt-page-watermark { color: #b8b8b8; }

/* SEO 长尾正文 */
[data-theme="dark"] .zt-article { color: #B5A795; }
[data-theme="dark"] .zt-article h2 {
    color: #E8DCC5;
    border-left-color: #E6A82E;
}
[data-theme="dark"] .zt-article h3 { color: #E8DCC5; }
[data-theme="dark"] .zt-article strong { color: #E6A82E; }
[data-theme="dark"] .zt-presets li {
    background: #3C2F25;
    border-color: #5C4838;
}
[data-theme="dark"] .zt-presets a { color: #E6A82E; }
[data-theme="dark"] .zt-presets a:hover { color: #FCD34D; }

/* ================================================
   用户要求：工具箱"实时预览"与"说明"区在夜间也按白天模式渲染
   用 .zitie-page 三重 class 链 + !important 锁死，绝对压过全站规则
   并显式覆盖每一个可能被全站 p/span/li/h2/strong 染色的子元素
   ================================================ */
[data-theme="dark"] .zitie-page .zt-preview-wrap,
[data-theme="dark"] .zitie-page .zt-article {
    background: #FFFFFF !important;
    border-color: #E0DAC9 !important;
    color: #2A2520 !important;
    box-shadow: 0 2px 0 rgba(180,83,9,0.06) !important;
}
[data-theme="dark"] .zitie-page .zt-preview-toolbar { border-bottom-color: #E0DAC9 !important; }
[data-theme="dark"] .zitie-page .zt-preview-title { color: #1a1a1a !important; }
[data-theme="dark"] .zitie-page .zt-preview-meta { color: #555 !important; }
[data-theme="dark"] .zitie-page .zt-empty { color: #666 !important; }
[data-theme="dark"] .zitie-page .zt-article,
[data-theme="dark"] .zitie-page .zt-article p,
[data-theme="dark"] .zitie-page .zt-article ul,
[data-theme="dark"] .zitie-page .zt-article ul li,
[data-theme="dark"] .zitie-page .zt-article li { color: #1a1a1a !important; }
[data-theme="dark"] .zitie-page .zt-article h2 { color: #000 !important; border-left-color: #B45309 !important; }
[data-theme="dark"] .zitie-page .zt-article h3,
[data-theme="dark"] .zitie-page .zt-article h4 { color: #000 !important; }
[data-theme="dark"] .zitie-page .zt-article strong,
[data-theme="dark"] .zitie-page .zt-article b { color: #B45309 !important; }
[data-theme="dark"] .zitie-page .zt-article span { color: inherit !important; }
[data-theme="dark"] .zitie-page .zt-presets li { background: #FEF3C7 !important; border-color: #FCD34D !important; color: #B45309 !important; }
[data-theme="dark"] .zitie-page .zt-presets a { color: #B45309 !important; }
[data-theme="dark"] .zitie-page .zt-presets a:hover { color: #92400E !important; }

/* 打印样式：每个 .zt-page 对应一张 A4 物理纸 */
@media print {
    @page { size: A4 portrait; margin: 0; }
    body * { visibility: hidden; }
    .zt-preview, .zt-preview * { visibility: visible; }
    .zt-preview { position: absolute; left: 0; top: 0; width: 100%; padding: 0; }
    .zt-preview-toolbar, .zt-panel, .zt-hero, .zt-article, .zt-breadcrumb, .zt-empty { display: none !important; }
    .zt-pages {
        padding: 0 !important;
        gap: 0 !important;
        align-items: stretch;
        overflow: visible !important;
    }
    .zt-page {
        width: 210mm !important;
        /* 关键：固定高度 + clip 溢出，避免底部水印被甩到下一张物理纸 */
        height: 297mm !important;
        max-height: 297mm !important;
        min-height: 297mm !important;
        overflow: hidden !important;
        padding: 10mm 12mm !important;
        margin: 0 !important;
        box-shadow: none !important;
        border: none !important;
        border-radius: 0 !important;
        page-break-after: always;
        break-after: page;
        /* 每张 .zt-page 必须整张落在同一物理 A4 上 */
        page-break-inside: avoid;
        break-inside: avoid;
    }
    .zt-page:last-child {
        page-break-after: auto;
        break-after: auto;
    }
    .zt-pv-row { page-break-inside: avoid; }
}
