:root{--bg:#f5f7fb;--card:#fff;--text:#1f2937;--muted:#6b7280;--primary:#2563eb;--border:#e5e7eb;--danger:#dc2626}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:14px 16px;background:rgba(255,255,255,.95);border-bottom:1px solid var(--border);backdrop-filter:blur(8px)}.title-wrap{flex:1}.topbar h1{margin:0;font-size:20px}.subtitle{font-size:12px;color:var(--muted);margin-top:2px}.view{display:none;max-width:900px;margin:0 auto;padding:16px}.view.active{display:block}.home-card{height:140px;background:var(--card);border:1px solid var(--border);border-radius:18px;margin:18px 0;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;box-shadow:0 8px 24px rgba(31,41,55,.06);cursor:pointer}.home-card:active{transform:scale(.99)}.hidden{display:none!important}.step-card{background:var(--card);border:1px solid var(--border);border-radius:14px;margin-bottom:12px;overflow:hidden}.step-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;font-weight:700;cursor:pointer}.summary{font-size:12px;color:var(--muted);font-weight:500}.step-body{display:none;padding:0 16px 16px}.step-card.open .step-body{display:block}.row{display:flex;align-items:center}.gap{gap:8px}.wrap{flex-wrap:wrap}.primary-btn,.secondary-btn,.mini-btn,.icon-btn{border:0;border-radius:10px;padding:10px 14px;font-size:14px;cursor:pointer}.primary-btn{background:var(--primary);color:#fff}.secondary-btn,.mini-btn,.icon-btn{background:#eef2ff;color:#1e3a8a}.wide{width:100%;margin-top:12px;padding:13px}.file-label{display:inline-block}.text-input,.num-input,select,input[type=number]{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:#fff;font-size:14px}.text-input{flex:1;min-width:200px}.hint{font-size:12px;color:var(--muted);line-height:1.6}.thumb-grid,.order-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px;margin-top:12px}.thumb,.order-item{border:1px solid var(--border);border-radius:10px;padding:6px;background:#fff;text-align:center;position:relative}.thumb.selected{outline:2px solid var(--primary)}.thumb canvas,.thumb img{width:100%;height:120px;object-fit:contain;background:#fafafa;display:block}.thumb-label,.order-label{font-size:12px;margin-top:4px}.order-item{min-height:80px;display:flex;align-items:center;justify-content:center;flex-direction:column}.order-item.blank{background:#f9fafb}.order-item.dragging{opacity:.5}.order-actions{display:flex;gap:4px;margin-top:6px;flex-wrap:wrap;justify-content:center}.order-actions button{font-size:11px;padding:5px 7px;border:0;border-radius:6px;background:#f3f4f6}.order-actions .danger{color:var(--danger)}.switch-line,.radio-line{display:flex;align-items:center;gap:8px;margin:10px 0}.cover-controls,.sub-settings{margin-top:8px;padding:10px;background:#f9fafb;border-radius:10px}.cover-grid,.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cover-grid label,.settings-grid label{font-size:13px;display:flex;flex-direction:column;gap:6px}.split-preview,.final-check{margin-top:12px;padding:10px;border-radius:10px;background:#f8fafc;font-size:13px;line-height:1.7}.preview-area{display:grid;gap:10px;margin-top:12px}.preview-sheet{border:1px solid var(--border);border-radius:10px;padding:10px;background:#fff}.preview-title{font-size:13px;font-weight:700;margin-bottom:8px}.sheet-face{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--border);aspect-ratio:1.414/1;position:relative;background:#fafafa}.sheet-face>div{display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;padding:6px;text-align:center}.sheet-face>div+div{border-left:1px dashed #9ca3af}.downloads a{display:block;margin-top:8px;padding:10px;border-radius:8px;background:#ecfdf5;color:#065f46;text-decoration:none;font-size:13px}.undo-group{display:flex;gap:6px}.mini-btn:disabled{opacity:.45}.final-check strong{font-weight:700}
@media(max-width:640px){.view{padding:10px}.topbar{padding:12px 10px}.topbar h1{font-size:18px}.undo-group .mini-btn{padding:7px 8px;font-size:12px}.home-card{height:120px;font-size:24px}.cover-grid,.settings-grid{grid-template-columns:1fr}.thumb-grid,.order-grid{grid-template-columns:repeat(3,1fr)}}

/* V1.1：手机端紧凑预览 */
.preview-area{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.preview-sheet{padding:7px;min-width:0}
.preview-title{font-size:11px;margin-bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sheet-face{aspect-ratio:1.414/1;max-height:105px}
.sheet-face>div{font-size:11px;padding:4px;line-height:1.3;overflow:hidden}
.preview-subtitle{font-size:12px;font-weight:700;margin:10px 0 6px}
.cover-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-width:420px}
.cover-preview .preview-sheet{margin:0}
.cover-preview-wrap{margin-top:8px}
@media(max-width:640px){
  .preview-area{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .preview-sheet{padding:6px}
  .preview-title{font-size:10px}
  .sheet-face{max-height:82px}
  .sheet-face>div{font-size:10px;padding:3px}
  .cover-preview{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-width:none}
}

/* V1.2 */
.error-box{margin-top:8px;padding:10px;border-radius:8px;background:#fef2f2;color:#991b1b;font-size:13px;line-height:1.5}
.primary-btn:disabled{opacity:.6;cursor:not-allowed}
/* V1.4 mobile filename and download UX */
.step-head>span:first-child{flex:0 0 auto}.step-head .summary{min-width:0;margin-left:12px;text-align:right;overflow:hidden}.file-name-short{display:block;max-width:min(58vw,520px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-pages{display:block;margin-top:3px;white-space:nowrap}.download-success{margin-top:10px;padding:12px;border-radius:10px;background:#ecfdf5}.success-title{font-weight:700;color:#065f46;margin-bottom:10px}.download-btn{display:block!important;text-align:center;background:#2563eb!important;color:#fff!important;padding:12px!important;border-radius:10px!important;font-size:15px!important;text-decoration:none!important}.download-link{display:block;text-align:center;margin-top:8px;color:#2563eb;text-decoration:none;font-size:13px}.order-label{display:none}
@media(max-width:520px){.step-head{align-items:flex-start}.file-name-short{max-width:56vw}.summary{line-height:1.35}.order-item{min-height:68px}}

/* V1.5：移动端视觉精修 + 长页面折叠分组 */
:root{--bg:#f4f6f8;--border:#e9edf2}
.topbar{padding:10px 12px;box-shadow:0 1px 8px rgba(31,41,55,.04)}
.topbar h1{font-size:18px}.step-card{border-color:#edf0f4;box-shadow:0 2px 10px rgba(31,41,55,.035)}
.step-head{padding:13px 14px}.step-body{padding:0 14px 14px}.secondary-btn{background:#f3f6fa;color:#334155}.primary-btn{box-shadow:0 2px 6px rgba(37,99,235,.16)}
.group-toolbar{margin-bottom:8px}.group-size-label{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.group-size-select{padding:7px 9px;border-radius:8px;font-size:12px}
.fold-groups{display:flex;flex-direction:column;gap:8px;margin-top:10px}.page-group{border:1px solid var(--border);border-radius:11px;background:#fff;overflow:hidden}.page-group>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 11px;font-size:13px;font-weight:650;cursor:pointer;background:#fafbfc}.page-group>summary::-webkit-details-marker{display:none}.page-group>summary:before{content:'›';font-size:18px;line-height:1;transform:rotate(0);transition:.15s}.page-group[open]>summary:before{transform:rotate(90deg)}.page-group>summary>span:first-child{margin-right:auto}.group-meta{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:11px;font-weight:500}.group-meta button{border:0;border-radius:6px;padding:4px 6px;background:#eef2f7;color:#475569;font-size:10px}.group-content{margin:0!important;padding:9px;background:#fff}.order-item.blank{border-style:dashed;background:#f7f8fa}.order-actions button{background:#f4f6f8;color:#475569}.order-actions .danger{background:#fff5f5}
.download-success{background:#f6fbf8;border:1px solid #e0f2e8}.success-title:before{content:'✓ ';}
@media(max-width:640px){.view{padding:8px}.step-card{margin-bottom:9px;border-radius:12px}.step-head{padding:12px}.step-body{padding:0 12px 12px}.group-toolbar{gap:6px}.group-size-label{width:100%;margin-left:0;justify-content:flex-end}.thumb-grid,.order-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.order-item{min-height:62px;padding:5px}.order-actions{gap:3px}.order-actions button{font-size:10px;padding:4px 5px}.page-group>summary{padding:9px}.home-card{border:0;box-shadow:0 5px 18px rgba(31,41,55,.06)}}

/* V1.6：真实页面预览 + 点击放大 + 性能优化 */
.thumb{cursor:pointer;overflow:hidden}.thumb-select{position:absolute;top:6px;right:6px;z-index:3;width:25px;height:25px;border-radius:50%;border:1px solid rgba(148,163,184,.75);background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;font-size:14px;color:#64748b;box-shadow:0 1px 4px rgba(15,23,42,.08)}.thumb.selected .thumb-select{background:var(--primary);border-color:var(--primary);color:#fff}.thumb canvas,.thumb img{display:block}.thumb-label{pointer-events:none}
.sheet-face.real-face{overflow:hidden}.sheet-slot{position:relative;min-width:0;overflow:hidden;background:#fff}.sheet-slot canvas{width:100%;height:100%;display:block;object-fit:contain;background:#f8fafc}.sheet-slot.blank-slot{background:#f8fafc}.sheet-page-label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;max-width:90%;padding:3px 7px;border-radius:999px;background:rgba(15,23,42,.64);color:#fff;font-size:10px;font-weight:700;line-height:1.2;white-space:nowrap;box-shadow:0 1px 3px rgba(0,0,0,.15)}.blank-slot .sheet-page-label{background:rgba(100,116,139,.55)}.preview-sheet.clickable-preview{cursor:pointer}.preview-sheet.clickable-preview:active{transform:scale(.995)}
.preview-modal{position:fixed;inset:0;z-index:999;background:rgba(15,23,42,.92);display:flex;flex-direction:column}.preview-modal-bar{height:52px;flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:8px 12px;color:#fff;background:rgba(15,23,42,.96)}.preview-modal-title{flex:1;min-width:0;font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preview-modal-close{width:36px;height:36px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:26px;line-height:1;cursor:pointer}.preview-modal-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:12px;overflow:auto;-webkit-overflow-scrolling:touch}.preview-modal-stage canvas{display:block;max-width:100%;max-height:calc(100vh - 92px);width:auto;height:auto;background:#fff;box-shadow:0 8px 30px rgba(0,0,0,.3)}.preview-modal-hint{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);padding:5px 9px;border-radius:999px;background:rgba(15,23,42,.6);color:#e2e8f0;font-size:11px;pointer-events:none;white-space:nowrap}
.preview-loading{display:flex;align-items:center;justify-content:center;min-height:72px;color:var(--muted);font-size:11px;background:#f8fafc}
@media(max-width:640px){.thumb-select{width:24px;height:24px;top:5px;right:5px}.sheet-page-label{font-size:9px;padding:2px 5px}.preview-modal-stage{padding:8px}.preview-modal-stage canvas{max-height:calc(100vh - 82px)}}


/* V1.7：页面调整缩略图 + 拼版预览分组 */
.order-item{justify-content:flex-start;min-height:0;padding:6px}.order-page-title{font-size:11px;font-weight:700;margin:1px 0 5px}.order-thumb{width:100%;height:105px;border:1px solid #edf0f4;border-radius:7px;background:#fafafa;overflow:hidden;cursor:pointer;display:flex;align-items:center;justify-content:center}.order-thumb canvas,.order-thumb img{width:100%;height:100%;object-fit:contain;display:block;background:#fff}.blank-order-thumb{border-style:dashed;color:#94a3b8;font-size:11px}.preview-page-group{grid-column:1/-1}.preview-group-content{padding:9px;margin:0;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.preview-page-group>summary{position:sticky;top:52px;z-index:4}.preview-page-group:not([open]) .preview-group-content{display:none}
@media(max-width:640px){.order-thumb{height:92px}.order-page-title{font-size:10px}.preview-group-content{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.preview-page-group>summary{top:48px}}

/* V1.7.1：低清缩略图队列与缓存，减少 iPhone Safari 同时 canvas 渲染造成的闪烁/跳出 */
.thumb img.thumb-image-loading,.order-thumb img.thumb-image-loading{background:linear-gradient(90deg,#f8fafc,#eef2f7,#f8fafc);opacity:.8}
/* V1.8 页面编辑整合 */
.editor-subtitle{font-weight:700;margin:18px 0 10px;padding-top:14px;border-top:1px solid #edf0f4;color:#28313d}
.thumb{position:relative;cursor:pointer}
.thumb-zoom{position:absolute;right:7px;bottom:31px;width:30px;height:30px;border:0;border-radius:15px;background:rgba(20,28,38,.72);color:#fff;font-size:19px;line-height:30px;z-index:3}
.thumb-select{pointer-events:none}

/* V1.8.2：页面选择 + 页面调整完全合并为同一张编辑卡片 */
.editor-tools{margin:8px 0 10px}
.editor-grid{grid-template-columns:repeat(auto-fill,minmax(116px,1fr))}
.editor-card{padding:6px;min-width:0;transition:opacity .12s,border-color .12s,box-shadow .12s}
.editor-card.selected{outline:none;border-color:#93b4ff;box-shadow:0 0 0 1px rgba(37,99,235,.16)}
.editor-card.unselected{background:#fafbfc;border-color:#edf0f4}
.editor-card.unselected .editor-thumb-wrap img{opacity:.42;filter:grayscale(.12)}
.editor-card.unselected .editor-actions{opacity:.35;pointer-events:none}
.editor-card-head{display:flex;align-items:center;justify-content:center;min-height:24px;margin-bottom:5px}
.editor-page-label{font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.editor-thumb-wrap{position:relative;width:100%;height:118px;border:1px solid #edf0f4;border-radius:8px;overflow:hidden;background:#fafafa;cursor:pointer;display:flex;align-items:center;justify-content:center}
.editor-thumb-wrap img{width:100%;height:100%;object-fit:contain;display:block;background:#fff}
.editor-select-badge{position:absolute;left:6px;top:6px;z-index:3;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid rgba(148,163,184,.8);background:rgba(255,255,255,.94);color:#64748b;font-size:13px;font-weight:700;pointer-events:none}
.editor-card.selected .editor-select-badge{background:var(--primary);border-color:var(--primary);color:#fff}
.editor-thumb-wrap .thumb-zoom{right:6px;bottom:6px;top:auto;width:28px;height:28px;line-height:28px;font-size:17px}
.editor-actions{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:6px;flex-wrap:wrap}
.editor-actions button{border:0;border-radius:7px;background:#f3f5f8;color:#475569;padding:5px 7px;font-size:10px;line-height:1.2}
.editor-actions .danger{background:#fff5f5;color:var(--danger)}
.blank-editor-card{border-style:dashed;background:#f8fafc}
.blank-editor-card .editor-thumb-wrap{border-style:dashed;color:#94a3b8;font-size:11px;background:#f8fafc}
.editor-card.dragging{opacity:.45}
@media(max-width:640px){
  .editor-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .editor-thumb-wrap{height:96px}
  .editor-actions{gap:3px}
  .editor-actions button{padding:4px 5px;font-size:9px}
  .editor-page-label{font-size:10px}
  .editor-select-badge{width:22px;height:22px;left:5px;top:5px;font-size:12px}
  .editor-thumb-wrap .thumb-zoom{width:26px;height:26px;line-height:26px;right:5px;bottom:5px}
}

/* V1.9：最终 UI 收口——减少框感、突出内容、固定底部操作 */
:root{--bg:#f3f5f8;--card:#fff;--text:#18212f;--muted:#7b8493;--primary:#2468f2;--border:#edf0f4}
body{padding-bottom:84px;background:var(--bg)}
.topbar{min-height:52px;padding:8px 12px;border-bottom:1px solid rgba(229,233,239,.9);box-shadow:none}
.topbar h1{font-size:17px;letter-spacing:-.2px}.subtitle{margin-top:0;font-size:11px}
.icon-btn{width:34px;height:34px;padding:0;border-radius:10px;font-size:18px;background:#f4f6f9;color:#344054}
.undo-group .mini-btn{padding:7px 8px;border-radius:9px;background:#f4f6f9;color:#475467;font-size:0}.undo-group .mini-btn:first-child::after{content:'↶';font-size:18px}.undo-group .mini-btn:last-child::after{content:'↷';font-size:18px}
.view{max-width:820px;padding:12px}.home-card{border:0;border-radius:20px;box-shadow:0 5px 22px rgba(28,39,54,.055)}
.step-card{margin-bottom:9px;border:0;border-radius:15px;box-shadow:0 1px 5px rgba(20,30,45,.035);overflow:hidden}
.step-head{min-height:50px;padding:14px 15px;font-size:15px}.step-head .summary{max-width:58%;font-size:11px;color:#8a93a2}
.step-body{padding:0 15px 15px}.hint{color:#8b94a3}.secondary-btn,.mini-btn{background:#f4f6f9;color:#475467}.primary-btn{background:var(--primary);box-shadow:none}
.group-toolbar,.editor-tools{gap:6px}.group-size-label{color:#8b94a3}.page-group{border:0;border-top:1px solid #f0f2f5;border-radius:0}.page-group:first-child{border-top:0}.page-group>summary{padding:10px 4px;background:#fff}.page-group>summary:before{color:#98a2b3}.group-content{padding:8px 0 4px}
.editor-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:9px}.editor-card{border:1px solid #eef1f4;border-radius:11px;box-shadow:none}.editor-card.selected{border-color:#bfd0fb;box-shadow:0 0 0 1px rgba(36,104,242,.08)}.editor-card.unselected{opacity:.62}.editor-card-head{justify-content:flex-start;padding-left:2px}.editor-page-label{font-size:11px}.editor-thumb-wrap{border:0;background:#f7f8fa}.editor-actions button{background:#f5f6f8;color:#667085;border-radius:7px}.editor-actions .danger{background:#fff4f4;color:#c53b3b}
.settings-grid,.cover-grid{gap:12px}.settings-grid label,.cover-grid label{color:#667085}.cover-controls,.sub-settings,.split-preview,.final-check{background:#f7f8fa;border-radius:12px}
.preview-area{gap:9px}.preview-sheet{border:0;border-radius:12px;box-shadow:0 1px 5px rgba(20,30,45,.06)}.sheet-face{border-color:#e8ebef}.preview-title{color:#596273}
.combined-cover-preview{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding-bottom:3px}
.download-success{border:0;border-radius:12px}
.bottom-action-bar{position:fixed;z-index:50;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,820px);display:grid;grid-template-columns:.8fr 1.2fr;gap:9px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.94);border-top:1px solid #e9edf2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.bottom-action-bar button{height:46px;border:0;border-radius:12px;font-size:15px;font-weight:700}.bottom-secondary{background:#eef2f7;color:#344054}.bottom-primary{background:var(--primary);color:#fff}
@media(max-width:640px){body{padding-bottom:78px}.view{padding:8px}.step-card{border-radius:13px}.step-head{padding:13px 12px}.step-body{padding:0 12px 13px}.editor-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.combined-cover-preview{gap:7px}.bottom-action-bar{padding-left:8px;padding-right:8px}.file-name-short{max-width:45vw}}


/* V1.9.1：页面编辑顶部工具栏压缩为两行 */
@media(max-width:640px){
  .group-toolbar{flex-wrap:nowrap!important;align-items:center;margin-bottom:8px}
  .group-toolbar .secondary-btn{flex:0 0 auto;padding:9px 11px}
  .group-toolbar .group-size-label{width:auto!important;margin-left:auto!important;justify-content:flex-end;white-space:nowrap}
  .group-toolbar .group-size-select{padding:7px 7px}
  .editor-tools{flex-wrap:nowrap!important;align-items:center}
  .editor-tools .secondary-btn{padding:9px 10px;white-space:nowrap}
  #restoreOrder{margin-left:auto}
}


/* V1.9.2：排版设置移到输出设置前；独立封面页码两列紧凑布局 */
.cover-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}
.cover-grid label{display:flex;flex-direction:row;align-items:center;gap:7px;min-width:0;font-size:12px;white-space:nowrap}
.cover-grid label input{width:100%;min-width:0;padding:8px 9px;text-align:center}
@media(max-width:640px){
  .cover-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}
  .cover-grid label{flex-direction:row!important;gap:5px;font-size:11px}
  .cover-grid label input{padding:7px 6px;font-size:13px}
}


/* V1.9.3：排版设置紧凑化，左右内容垂直居中 */
.compact-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px;margin-top:2px}
.compact-settings .setting-item{min-height:38px;margin:0;padding:0 10px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:8px;border-radius:9px;background:#f7f8fa;color:#667085;font-size:12px;line-height:1}
.compact-settings .setting-item>span{display:flex;align-items:center;min-height:38px;white-space:nowrap}
.compact-settings select{min-width:0;max-width:92px;height:34px;margin:0;padding:0 24px 0 6px;border:0;background-color:transparent;color:#98a2b3;text-align:right;text-align-last:right;font-size:12px;line-height:34px}
.compact-settings .setting-toggle input{width:17px;height:17px;margin:0;flex:0 0 auto;accent-color:var(--primary)}
@media(max-width:640px){.compact-settings{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.compact-settings .setting-item{padding:0 8px}.compact-settings select{max-width:76px;padding-left:2px;padding-right:20px}.compact-settings .setting-item>span{font-size:11px}}


/* V1.9.4：修复 V1.9.3 样式未生效；排版设置紧凑 + 卡片右侧摘要垂直居中 */
.step-head{align-items:center!important;}
.step-head .summary{display:flex;align-items:center;justify-content:flex-end;align-self:stretch;line-height:1.25;}
.compact-settings{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px 8px!important;margin-top:2px;}
.compact-settings .setting-item{min-height:38px!important;margin:0!important;padding:0 9px!important;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:6px!important;border-radius:9px;background:#f7f8fa;color:#667085;font-size:12px;line-height:1;}
.compact-settings .setting-item>span{display:flex;align-items:center;min-height:38px;white-space:nowrap;}
.compact-settings select{min-width:0!important;width:auto!important;max-width:82px!important;height:34px!important;margin:0!important;padding:0 21px 0 4px!important;border:0!important;background-color:transparent!important;color:#98a2b3!important;text-align:right!important;text-align-last:right!important;font-size:12px!important;line-height:34px!important;}
.compact-settings .setting-toggle input{width:17px;height:17px;margin:0;flex:0 0 auto;accent-color:var(--primary);}
@media(max-width:640px){
  .step-head{align-items:center!important;}
  .step-head .summary{align-self:stretch;display:flex;align-items:center;justify-content:flex-end;}
  .compact-settings{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .compact-settings .setting-item{padding:0 7px!important;}
  .compact-settings .setting-item>span{font-size:11px;}
  .compact-settings select{max-width:72px!important;font-size:11px!important;}
}

/* V1.9.5 生成状态反馈 */
.bottom-action-bar:has(#bottomOpenBtn:not(.hidden)){grid-template-columns:repeat(3,minmax(0,1fr));}
.generate-toast{position:fixed;z-index:80;left:50%;bottom:calc(76px + env(safe-area-inset-bottom));transform:translate(-50%,12px);padding:8px 14px;border-radius:999px;background:rgba(20,30,45,.9);color:#fff;font-size:13px;font-weight:600;opacity:0;pointer-events:none;transition:.18s ease;white-space:nowrap}.generate-toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:420px){.bottom-action-bar:has(#bottomOpenBtn:not(.hidden)){gap:6px}.bottom-action-bar:has(#bottomOpenBtn:not(.hidden)) button{font-size:13px;padding:0 6px}}


/* V1.10 最终精修：统一层级、状态、加载反馈 */
:root{--soft:#f6f8fb;--soft2:#eef2f6;--text2:#667085}
body{background:#f5f7fa}
.step-card{border-radius:14px;box-shadow:0 1px 4px rgba(15,23,42,.035)}
.step-head{min-height:50px;align-items:center!important}
.step-head .summary{align-self:stretch;display:flex;align-items:center;justify-content:flex-end;color:#98a2b3}
.secondary-btn,.mini-btn,.icon-btn{background:#f1f4f7;color:#475467}
.editor-card{border:1px solid #edf0f4!important;box-shadow:none!important}
.editor-card.selected{outline:1px solid rgba(37,99,235,.42)!important;border-color:rgba(37,99,235,.25)!important}
.editor-card.unselected{opacity:.48}
.editor-select-badge{transform:scale(.84);transform-origin:top right}
.thumb-zoom{transform:scale(.88);transform-origin:bottom right}
.editor-actions{margin-top:7px!important}
.editor-actions button{background:#f2f4f7!important;color:#475467!important}
.editor-actions .danger{color:#b42318!important;background:#fff5f5!important}
.page-group>summary{color:#344054}.group-meta{color:#98a2b3}
.project-state{display:inline-flex;margin-left:7px;padding:2px 6px;border-radius:999px;background:#f2f4f7;color:#667085;font-size:10px;line-height:1.5;vertical-align:middle}
.project-state.dirty{background:#fff7e8;color:#b54708}.project-state.generated{background:#ecfdf3;color:#067647}
.thumb-progress{margin:4px 4px 0;padding:5px 7px;border-radius:7px;background:#f8fafc;color:#98a2b3;font-size:10px;text-align:center}
.generate-toast{font-weight:650}
@media(max-width:640px){
  .step-card{margin-bottom:8px}
  .step-head{min-height:46px;padding:12px}
  .editor-select-badge{transform:scale(.8)}
  .thumb-zoom{transform:scale(.82)}
}
/* V1.11 输出设置整合 */
.output-divider{height:1px;background:#edf0f4;margin:12px 0}
.final-check{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 12px;line-height:1.45}
.final-check strong{grid-column:1/-1}
@media(max-width:420px){.compact-settings{gap:7px}.setting-item{min-height:42px}.final-check{font-size:12px}}

/* V1.11.1 — 上传文件摘要始终保持单行：文件名省略，页数与状态固定显示 */
#fileSummary{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:6px;
  width:min(70%,620px);
  max-width:70%!important;
  min-width:0;
  white-space:nowrap;
  line-height:1.2;
}
#fileSummary .file-name-short{
  display:block;
  min-width:0;
  max-width:none!important;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#fileSummary .file-pages{
  display:block;
  margin:0!important;
  flex:0 0 auto;
  white-space:nowrap;
}
#fileSummary .project-state{
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
  white-space:nowrap;
}
@media(max-width:520px){
  #fileSummary{width:72%;max-width:72%!important;gap:5px;font-size:11px;}
  #fileSummary .file-name-short{max-width:none!important;}
}

/* H5 V1.12 */
.cover-mode-row{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:8px}.cover-mode-row .radio-line{margin:4px 0}.full-page-face{grid-template-columns:1fr}.full-page-face .full-page-slot{border-left:0!important}.split-total{margin-bottom:6px;color:var(--muted)}.split-book-line{padding:3px 0}.split-book-line+.split-book-line{border-top:1px solid #eef0f3}

/* V1.13 页面拆分 / 合并 */
.page-split-direction{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);background:#f8fafc;border-radius:9px;padding:4px 7px}.page-split-direction select{padding:6px 8px;font-size:12px}.compact-hint{margin:6px 0 2px}.editor-actions button:disabled{opacity:.38;cursor:not-allowed}.editor-card .editor-page-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
@media(max-width:640px){.page-split-direction{width:100%;justify-content:space-between}.page-split-direction select{flex:0 0 auto}.editor-actions button{font-size:8.5px!important;padding:4px!important}}


/* V1.14 批量页面操作 */
.batch-toolbar{margin:8px 0 10px;padding:10px;border:1px solid #dbe5ff;background:#f8fbff;border-radius:11px}
.batch-toolbar-top{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:12px;color:#475467}
.batch-toolbar-top strong{font-size:13px;color:#2458c6}.batch-toolbar-top span{margin-right:auto}
.batch-toolbar-top button{border:0;background:transparent;color:#667085;padding:4px 6px}
.batch-range-row,.batch-actions{margin-top:7px}.batch-actions .secondary-btn{font-size:12px}
#batchModeBtn.active{background:#e9f0ff;border-color:#9eb9ff;color:#2458c6}
.editor-card.batch-mode .editor-select-badge{background:#fff;border-color:#9aa4b2;color:#667085}
.editor-card.batch-selected{opacity:1!important;border-color:#4f7cff!important;box-shadow:0 0 0 2px rgba(79,124,255,.18)!important}
.editor-card.batch-selected .editor-select-badge{background:#2563eb!important;border-color:#2563eb!important;color:#fff!important}
.editor-card.batch-mode.unselected .editor-actions{opacity:1;pointer-events:auto}
@media(max-width:640px){.batch-toolbar{padding:9px}.batch-range-row .text-input{min-width:100%;flex-basis:100%}.batch-actions{display:grid!important;grid-template-columns:1fr 1fr}.batch-actions .secondary-btn:last-child{grid-column:1/-1}}

/* V1.15 批量操作、页面移动与手机端布局优化 */
.move-toolbar{margin:9px 0 10px;padding:10px;border:1px solid #e3e8ef;background:#fbfcfd;border-radius:11px}
.move-toolbar-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:12px;color:#667085}.move-toolbar-head strong{color:#344054;font-size:13px}.move-toolbar-head span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.move-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.move-actions .secondary-btn{font-size:12px}.move-to-wrap{display:flex;align-items:center;gap:5px;min-width:0}.move-to-wrap span{font-size:12px;color:#667085;white-space:nowrap}.move-to-wrap .num-input{width:72px;height:36px;padding:6px 7px}
.editor-card.move-target{border-color:#f59e0b!important;box-shadow:0 0 0 2px rgba(245,158,11,.18)!important}.editor-card.move-target .editor-card-head{background:#fff7e6;border-radius:7px;color:#b54708}.editor-card-head{cursor:pointer;padding:2px 3px}
@media(max-width:640px){
  .editor-tools{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;align-items:stretch!important}
  .editor-tools .secondary-btn{width:100%;margin:0!important}
  .page-split-direction{width:auto!important;min-width:0!important;justify-content:space-between!important;white-space:nowrap!important;padding:5px 8px!important}
  .page-split-direction span{white-space:nowrap!important}
  .page-split-direction select{min-width:84px!important;max-width:105px!important}
  #restoreOrder{margin-left:0!important}
  .move-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.move-actions .secondary-btn{width:100%}.move-to-wrap{grid-column:1/-1;display:grid;grid-template-columns:auto 82px 1fr}.move-to-wrap .num-input{width:100%}
  .batch-toolbar-top span{font-size:11px}.group-meta span{font-size:10px}
}

/* V1.16 防丢失 */
.upload-actions{align-items:center}
.danger-soft{color:#b42318;border-color:#f3c7c3;background:#fff8f7}
.danger-soft:active{background:#feeceb}

/* V1.17：拆分/合并缩略图直接使用 DOM Canvas，避免 DataURL 占用大量 JS 内存 */
.editor-thumb-wrap canvas.editor-generated-thumb{width:100%;height:100%;object-fit:contain;display:block;background:#fff}
.editor-card.unselected .editor-thumb-wrap canvas.editor-generated-thumb{opacity:.42;filter:grayscale(.12)}

/* V1.18 页面编辑重构：减少重复入口，批量/移动分模式，长PDF快速定位 */
.page-editor-v118{position:relative;padding-bottom:18px}
.editor-overview{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px;padding:2px 1px}.editor-overview strong{font-size:13px;color:#344054}.editor-main-actions,.editor-secondary-actions{display:grid;gap:7px;margin-bottom:8px}.editor-main-actions{grid-template-columns:repeat(4,minmax(0,1fr))}.editor-secondary-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.editor-main-actions .secondary-btn,.editor-secondary-actions .secondary-btn{padding:9px 7px;font-size:12px;white-space:nowrap}.secondary-btn.active{background:#dbeafe;color:#1d4ed8;box-shadow:inset 0 0 0 1px #93c5fd}
.mode-panel{margin:9px 0 10px}.simple-range-row{display:grid;grid-template-columns:auto minmax(58px,1fr) auto minmax(58px,1fr) auto;align-items:center;gap:6px;margin-top:8px}.simple-range-row>span{font-size:12px;color:#667085}.simple-range-row .num-input{width:100%;min-width:0}.advanced-range{margin-top:7px;border-top:1px solid #edf0f4;padding-top:6px}.advanced-range summary{font-size:12px;color:#667085;cursor:pointer}.advanced-range .batch-range-row{margin-top:7px}.batch-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px!important}.batch-actions .secondary-btn{width:100%;font-size:12px;padding:9px 6px}
.editor-card.move-mode{cursor:pointer}.editor-card.move-mode .editor-thumb-wrap:after{content:'点此选择移动';position:absolute;left:6px;right:6px;bottom:6px;padding:4px 3px;border-radius:7px;background:rgba(15,23,42,.74);color:#fff;font-size:10px;line-height:1.1;pointer-events:none}.editor-card.move-target{border-color:#f59e0b!important;box-shadow:0 0 0 3px rgba(245,158,11,.24)!important}.editor-card.move-target .editor-card-head{background:#fff7e6;color:#b54708}.editor-card.move-target .editor-thumb-wrap:after{content:'已选择';background:rgba(180,83,9,.88)}
.locator-fab{position:fixed;right:14px;bottom:82px;z-index:43;border:0;border-radius:999px;background:#344054;color:#fff;padding:10px 13px;font-size:12px;box-shadow:0 7px 20px rgba(15,23,42,.22)}.locator-panel{position:fixed;right:12px;bottom:128px;z-index:44;width:min(245px,calc(100vw - 24px));background:#fff;border:1px solid #dfe4ea;border-radius:13px;padding:9px;box-shadow:0 10px 30px rgba(15,23,42,.2);display:grid;grid-template-columns:1fr 1fr;gap:7px}.locator-panel>.secondary-btn:first-child,.locator-panel>.secondary-btn:last-child{width:100%;padding:8px}.locator-jump{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto;gap:5px;align-items:center;font-size:12px;color:#667085}.locator-jump .num-input{width:100%;min-width:0;padding:8px}
.move-dock{position:fixed;left:50%;transform:translateX(-50%);bottom:8px;z-index:45;width:min(760px,calc(100vw - 16px));background:rgba(255,255,255,.97);border:1px solid #d9dee7;border-radius:15px;padding:8px;box-shadow:0 10px 32px rgba(15,23,42,.24);backdrop-filter:blur(10px)}.move-dock-status{display:flex;gap:8px;align-items:center;min-width:0;padding:0 3px 6px;font-size:11px;color:#667085}.move-dock-status strong{font-size:12px;color:#344054;white-space:nowrap}.move-dock-status span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.move-dock-actions{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.move-dock-actions button{border:0;border-radius:9px;padding:9px 4px;background:#eef2ff;color:#1e3a8a;font-size:11px;white-space:nowrap}.move-dock-actions button:disabled{opacity:.38}.move-dock-actions button:last-child{background:#f3f4f6;color:#475467}.move-to-panel{margin-top:7px;display:grid;grid-template-columns:auto 82px auto 1fr;gap:5px;align-items:center;font-size:12px;color:#667085}.move-to-panel .num-input{width:100%;padding:8px}.move-to-panel .secondary-btn{padding:8px}
body.move-mode-active #bottomActionBar{display:none!important}body.move-mode-active .locator-fab{bottom:118px}body.move-mode-active .locator-panel{bottom:164px}
@media(max-width:640px){.editor-overview{align-items:center}.group-size-label{margin-left:auto}.editor-main-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-secondary-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.simple-range-row{grid-template-columns:auto 1fr auto 1fr}.simple-range-row button{grid-column:1/-1;width:100%}.move-dock-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.move-dock-actions button{font-size:11px;padding:9px 2px}.move-to-panel{grid-template-columns:auto 68px auto 1fr}.locator-fab{bottom:78px}.batch-range-row .text-input{min-width:100%;flex-basis:100%}}
.batch-range-panel{margin:4px 0 7px}.batch-range-panel>summary{font-size:12px;color:#475467;cursor:pointer;padding:4px 2px}.batch-toolbar.mode-panel:not(.hidden){position:fixed;left:50%;transform:translateX(-50%);bottom:8px;z-index:45;width:min(760px,calc(100vw - 16px));margin:0;padding:9px;background:rgba(255,255,255,.97);border:1px solid #d9dee7;border-radius:15px;box-shadow:0 10px 32px rgba(15,23,42,.24);backdrop-filter:blur(10px);max-height:55vh;overflow:auto}.batch-toolbar.mode-panel .batch-toolbar-top{margin-bottom:5px}.batch-toolbar.mode-panel .compact-hint{margin-bottom:0}body.batch-mode-active #bottomActionBar{display:none!important}body.batch-mode-active .locator-fab{bottom:118px}body.batch-mode-active .locator-panel{bottom:164px}

/* V1.19 快速定位：当前项/原页码双入口 */
.locator-panel{min-width:min(360px,calc(100vw - 24px))}
.locator-quick-row{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:7px}
.locator-line{display:grid;grid-template-columns:58px minmax(0,1fr) 64px;align-items:center;gap:7px;margin-top:7px}
.locator-line>span{font-size:12px;color:#667085;white-space:nowrap}
.locator-line .num-input{width:100%;min-width:0}
@media(max-width:640px){.locator-panel{width:calc(100vw - 24px);right:12px}.locator-line{grid-template-columns:56px minmax(0,1fr) 62px}}
