/* ============================================================
   PDF/Word 盖章工具 · 专属样式（pdf-stamp.css）v25.2
   ============================================================ */

:root{
    --paper:#EDEBE3;
    --paper-card:#F7F5EF;
    --surface:#FFFFFF;
    --surface-muted:#F1EEE5;
    --surface-subtle:#F5F0E4;
    --surface-stage:#FCFBF7;
    --text:#2A2822;
    --text-muted:#8B8672;
    --on-dark:#FFFFFF;
    --ink-black:#1C1C1A;
    --ink-red:#C1272D;
    --danger-bg:#FBEFE7;
    --danger-text:#8A4A1E;
    --danger-border:#E7C7A8;
}

body{
    background:var(--paper);
    color:var(--text);
    font-family:"PingFang SC","Microsoft YaHei","STHeiti","SimHei",sans-serif;
    min-height:100vh;
}

.hero{padding:32px 28px 18px;max-width:1400px;margin:0 auto;}
.hero .eyebrow{
    font-family:"Consolas","Menlo","Courier New",monospace;font-size:12px;color:var(--brass);
    letter-spacing:0.12em;text-transform:uppercase;margin-bottom:10px;
}
.hero h1{font-weight:700;font-size:clamp(24px,4vw,34px);margin:0 0 8px;letter-spacing:0.02em;}
.hero p{color:var(--text-muted);line-height:1.7;margin:0;font-size:14px;}
.disclaimer{max-width:1400px;margin:0 auto 8px;padding:0 28px;}
.disclaimer .box{
    background:var(--danger-bg);color:var(--danger-text);
    border:1px solid var(--danger-border);border-radius:6px;padding:11px 16px;font-size:12.5px;line-height:1.6;
}

.stamp-main{
    max-width:1400px;margin:0 auto;padding:22px 28px 60px;
    display:grid;grid-template-columns:360px 1fr;gap:22px;align-items:start;
}
@media (max-width: 1000px){ .stamp-main{grid-template-columns:1fr;} }

.panel{background:var(--paper-card);border:1px solid var(--line);border-radius:8px;overflow:hidden;}
.panel-header{
    padding:13px 18px;border-bottom:1px solid var(--line);
    font-weight:600;font-size:14.5px;
    display:flex;justify-content:space-between;align-items:center;
}
.panel-header button{
    font-family:"Consolas","Menlo","Courier New",monospace;font-size:11px;
    background:none;border:1px solid var(--line);border-radius:4px;
    padding:4px 9px;cursor:pointer;color:var(--text-muted);
}
.panel-header button:hover{color:var(--brass);border-color:var(--brass);}

details.section{border-bottom:1px solid var(--line);}
details.section:last-child{border-bottom:none;}
details.section summary{
    list-style:none;cursor:pointer;padding:12px 18px;
    font-size:13px;font-weight:700;color:var(--text);
    display:flex;align-items:center;gap:8px;
    background:var(--surface-muted);
}
details.section summary::-webkit-details-marker{display:none;}
details.section summary .tag{
    font-family:"Consolas","Menlo","Courier New",monospace;font-size:10.5px;color:var(--brass);
    border:1px solid var(--brass);border-radius:3px;padding:1px 5px;
}
details.section summary::after{
    content:"展开";margin-left:auto;font-size:11px;color:var(--text-muted);font-weight:400;
}
details.section[open] summary::after{content:"收起";}
details.section .inner{padding:6px 18px 14px;}

.field{padding:10px 0;border-bottom:1px dashed var(--line);}
.field:last-child{border-bottom:none;}
.field label{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:500;margin-bottom:7px;color:var(--text);}
.field .hint{font-size:11px;color:var(--text-muted);margin-top:5px;line-height:1.5;}

input[type=text]{
    width:100%;padding:8px 9px;border:1px solid var(--line);border-radius:5px;
    background:var(--surface);font-family:inherit;font-size:13.5px;color:var(--text);
}
input[type=text]:focus{
    outline:none;border-color:var(--brass);box-shadow:0 0 0 3px rgba(169,136,79,0.15);
}
.seg{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;}
.seg button{
    flex:1;padding:8px 6px;background:var(--surface);border:none;border-right:1px solid var(--line);
    font-family:inherit;font-size:12.5px;cursor:pointer;color:var(--text-muted);
}
.seg button:last-child{border-right:none;}
.seg button.active{background:var(--brass);color:var(--on-dark);}
.seg button:disabled{opacity:0.4;cursor:not-allowed;}
input[type=range]{width:100%;accent-color:var(--brass);}
.rangeval{font-family:"Consolas","Menlo","Courier New",monospace;font-size:11px;color:var(--text-muted);margin-left:auto;}
.checkrow{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:var(--text-muted);line-height:1.5;}
.checkrow input{margin-top:3px;}
.filebtn{
    display:inline-block;font-size:12.5px;padding:8px 12px;border:1px solid var(--line);
    border-radius:5px;background:var(--surface);cursor:pointer;
}
.filebtn:hover{border-color:var(--brass);color:var(--brass);}

.seal-library{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
    min-height:60px;
    padding:12px 12px 12px 0;
}
.seal-empty{
    grid-column:1/-1;font-size:11.5px;color:var(--text-muted);
    padding:12px;text-align:center;line-height:1.6;
}
.seal-empty a,
.seal-empty button{
    display:inline-block;margin-top:10px;
}
.seal-item{
    position:relative;
    border:2px solid var(--line);border-radius:6px;background:#fff;
    aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;
    cursor:pointer;padding:4px;transition:border-color .15s, box-shadow .15s;
}
.seal-item:hover{border-color:var(--brass);}
.seal-item.active{
    border-color:var(--ink-red);
    box-shadow:0 0 0 3px rgba(193,39,45,0.15);
}
.seal-item.temp{
    border-style:dashed;
}
.seal-item img{max-width:100%;max-height:100%;object-fit:contain;}

.seal-item .seal-delete{
    position:absolute;top:-8px;right:-8px;
    width:20px;height:20px;border-radius:50%;
    background:var(--ink-red);color:#fff;
    font-size:13px;line-height:20px;text-align:center;
    cursor:pointer;
    display:none;
    box-shadow:0 2px 6px rgba(0,0,0,0.25);
    z-index:2;
    user-select:none;
    transition:transform .12s, background .12s;
}
.seal-item:hover .seal-delete{display:block;}
.seal-item .seal-delete:hover{
    background:#a01f24;
    transform:scale(1.15);
}

.preview-panel{position:sticky;top:78px;}
.page-indicator{
    font-family:"Consolas","Menlo","Courier New",monospace;font-size:11.5px;
    color:var(--text-muted);font-weight:400;
}
.stage{
    position:relative;
    background:var(--surface-stage);
    border-bottom:1px solid var(--line);
    min-height:520px;
    max-height:78vh;
    overflow:auto;
    padding:20px;
    cursor: default;
}
.stage.stamp-pending{
    cursor: crosshair;
}
.doc-container{
    position:relative;
    margin:0 auto;
}
.doc-container canvas{display:block;width:100%;height:auto;}

.page-wrap{
    position:relative;
    margin:0 auto 16px;
    background:#fff;
    box-shadow:0 4px 20px -8px rgba(30,25,15,0.25);
}
.page-wrap:last-child{margin-bottom:0;}
.page-wrap canvas{display:block;width:100%;height:auto;}
.page-overlay{
    position:absolute;inset:0;
    pointer-events:none;
    width:100%;height:100%;
}

.word-container{
    width:100%;
    margin:0 auto;
    position:relative;
}
.word-page-wrap{
    position: relative;
    width: 100%;                 /* 默认 100%，JS 会按纸张宽度覆盖 */
    margin: 0 auto 16px;
    padding: 0;
    background: transparent;
    box-shadow: 0 4px 20px -8px rgba(30,25,15,0.25);
    /* ★ 去掉 max-width:816px 和 display:flex，让 JS 决定宽度 */
}
.word-page-wrap > .docx-wrapper{
    width: 100%;                 /* ★ 撑满容器 */
}
.word-page-wrap:last-child{margin-bottom:0;}

/* ★ Word 渲染段落行距兜底（防止继承 body 的 line-height: 1.6） */
.word-page-wrap section.docx p{
    line-height: 1.51;
}

.word-page-wrap::before{
    content:'';
    position:absolute;
    inset:0;
    background:#fff;
    z-index:0;
    pointer-events:none;
}
.word-page-wrap > .docx-wrapper,
.word-page-wrap > section.docx,
.word-page-wrap > .docx{
    position:relative;
    z-index:2;
    background:transparent;
    padding:0;
}

.docx-wrapper{
    z-index:2;
    background: transparent !important;
    padding:0 !important;
}
.docx-wrapper>section.docx{
    background: transparent !important;
	}
.word-page-wrap > .stamp-item{
    position: absolute;
    z-index: 20;
}

.word-page-wrap .docx-wrapper .docx,
.word-page-wrap section.docx .docx{
    box-shadow:none;
    margin-bottom:0;
    padding:0;
}
.word-page-overlay-watermark{
    z-index: 3 !important;
}

.stamp-layer{
    position:absolute;inset:0;
    pointer-events:none;
    z-index:5;
}
.stamp-layer.layer-below{
    z-index:1;
}

.ghost-layer{
    position:absolute;inset:0;
    pointer-events:none;
    z-index: 9998;
}
.ghost-stamp{
    position:absolute;
    pointer-events:none;
    opacity: 0.7;
    display: none;
}
.ghost-stamp img{
    display:block;
    width:100%;height:auto;
    pointer-events:none;
}

.stamp-ui-layer{
    position:absolute;inset:0;
    pointer-events:none;
    z-index: 9999;
}

.stamp-item{
    position:absolute;
    pointer-events:auto;
    cursor:move;
    user-select:none;
    touch-action:none;
}
.stamp-item img{display:block;width:100%;height:auto;pointer-events:none;}

.stamp-item.selected.hover-visible{
    outline:2px dashed var(--ink-red);
    outline-offset:4px;
}

.stamp-ui-btn{
    position:absolute;
    pointer-events:auto;
    display:none;
    z-index: 1;
}
.stamp-ui-btn.visible{display:block;}
.stamp-ui-btn.stamp-ui-delete{
    width:22px;height:22px;border-radius:50%;
    background:var(--ink-red);color:#fff;
    font-size:13px;line-height:22px;text-align:center;
    cursor:pointer;
    box-shadow:0 2px 6px rgba(0,0,0,0.3);
    user-select:none;
    transition:transform .12s, background .12s;
}
.stamp-ui-btn.stamp-ui-delete:hover{
    background:#a01f24;
    transform:scale(1.15);
}
.stamp-ui-btn.stamp-ui-resize{
    width:16px;height:16px;border-radius:50%;
    background:var(--brass);border:2px solid #fff;
    cursor:nwse-resize;
    box-shadow:0 2px 6px rgba(0,0,0,0.3);
}

.empty-state{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    min-height:480px;color:var(--text-muted);font-size:13px;gap:12px;
}
.empty-icon{font-size:48px;opacity:0.4;}

.actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;padding:16px 18px;}
.actions-secondary{
    width:100%;
    justify-content:space-between;
    align-items:center;
    border-top:1px solid var(--line);
}
.btn{
    font-family:inherit;font-size:13.5px;font-weight:500;
    padding:10px 18px;border-radius:6px;cursor:pointer;border:1px solid transparent;
    display:inline-flex;align-items:center;gap:6px;
    background:transparent;
    line-height:1.2;
}
.btn-primary{background:var(--ink-black);color:var(--on-dark);}
.btn-primary:hover{background:#000;}
.btn-ghost{background:transparent;color:var(--text);border-color:var(--line);}
.btn-ghost:hover{border-color:var(--brass);color:var(--brass);}
.btn-ghostpy{background:transparent;color:var(--line);border-color:var(--line);}

/* button 版本复位：去掉浏览器默认按钮样式 */
button.btn{
    -webkit-appearance:none;
    appearance:none;
    text-align:center;
    white-space:nowrap;
}
button.btn:focus{ outline:2px solid rgba(169,136,79,0.35); outline-offset:1px; }

.meta-note{font-size:11.5px;color:var(--text-muted);text-align:center;padding:0 18px 16px;line-height:1.6;}

.sign-pad-wrap{
    border:1px dashed var(--line);border-radius:6px;
    background:#fff;padding:6px;position:relative;
}
#signPad{display:block;width:100%;height:auto;touch-action:none;cursor:crosshair;}
.sign-pad-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:6px;}
.sign-pad-actions .btn{padding:5px 10px;font-size:12px;}

.crosspage-preview{
    border-top:1px solid var(--line);
    padding:14px 18px;
}
.crosspage-title{
    font-size:12.5px;font-weight:600;margin-bottom:8px;color:var(--text);
}
.crosspage-strip{
    display:flex;gap:4px;overflow-x:auto;padding:8px;
    background:var(--surface-subtle);border-radius:6px;
}
.crosspage-item{flex:none;text-align:center;}
.crosspage-item img{
    display:block;height:60px;width:auto;
    border:1px solid var(--line);border-radius:3px;background:#fff;
}
.crosspage-page{
    font-size:10px;color:var(--text-muted);margin-top:3px;
    font-family:"Consolas","Menlo",monospace;
    line-height:1.3;
}
.crosspage-hint{
    font-size:11px;color:var(--text-muted);margin-top:6px;line-height:1.5;
}

.crosspage-slice{
    position:absolute;
    cursor:move;
    pointer-events:auto;
    user-select:none;
    touch-action:none;
    z-index:3;
}
.crosspage-slice img{display:block;width:100%;height:auto;pointer-events:none;}

.crosspage-slice.selected.hover-visible{
    outline: 2px dashed var(--brass);
    outline-offset: 2px;
}

.word-page-wrap .crosspage-slice.layer-below{
    z-index:1;
}

.crosspage-tuner{
    border-top:1px solid var(--line);
    padding:12px 18px;
    background:var(--surface-muted);
    font-size:12px;
}
.crosspage-tuner .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:8px;}
.crosspage-tuner label{font-size:11.5px;color:var(--text-muted);margin-bottom:4px;display:block;}
.crosspage-tuner .btn{padding:6px 10px;font-size:12px;}

.loadingChip{
    position:absolute;top:10px;left:50%;transform:translateX(-50%);
    display:inline-flex;align-items:center;gap:6px;z-index:10;
    font-size:11.5px;color:var(--text-muted);
    background:var(--surface);border:1px solid var(--line);border-radius:16px;
    padding:5px 12px;box-shadow:0 4px 12px -6px rgba(0,0,0,0.25);
}
.loadingDot{
    width:7px;height:7px;border-radius:50%;background:var(--brass);flex:none;
    animation:loadingPulse 1s ease-in-out infinite;
}
@keyframes loadingPulse{
    0%,100%{opacity:0.35;transform:scale(0.8);}
    50%{opacity:1;transform:scale(1.15);}
}
.watermarkChip{
    font-family:inherit;font-size:11.5px;line-height:1;
    padding:8px 12px;border-radius:16px;border:1px solid var(--line);
    background:var(--surface-subtle);color:var(--text);cursor:pointer;
    white-space:nowrap;
    -webkit-appearance:none; appearance:none;
}
.watermarkChip:hover{border-color:var(--brass);color:var(--brass);}
.watermarkChip.donated{
    color:#3F7D4C;border-color:#bfe3c8;background:#EEF7F0;cursor:default;
}
.tool-footer-note{max-width:1400px;margin:0 auto;padding:0 28px 40px;font-size:12px;color:var(--text-muted);line-height:1.7;}
.tool-footer-note .box{border-top:1px solid var(--line);padding-top:16px;}

/* ============================================================
   v25.2 新增：库刷新提示条
   ============================================================ */
.hint[id$="RefreshHint"]{
    font-size:11.5px;
    line-height:1.5;
    padding:5px 8px;
    background:rgba(169,136,79,0.10);
    border-left:3px solid var(--brass);
    border-radius:3px;
    color:var(--brass);
    margin-bottom:6px;
    animation:refreshHintIn 0.2s ease-out;
}
@keyframes refreshHintIn{
    from{ opacity:0; transform:translateY(-3px); }
    to{ opacity:1; transform:translateY(0); }
}

@media (max-width: 1536px){
    .preview-panel{top:16px;}
}

.plan-btn{flex:1;padding:8px 6px;border:2px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;font-family:inherit;font-size:12.5px;line-height:1.5;font-weight:700;color:#2A2822;transition:border-color .15s,background .15s;}
.plan-btn span{font-weight:400;font-size:11px;color:var(--muted);}
.plan-btn:hover{border-color:var(--brass);}
.plan-btn.active{border-color:var(--ink-red);background:#FFF3F3;}
.plan-btn.active span{color:var(--ink-red);}