
/* ── EXPORT MODAL ── */
.export-modal-backdrop{display:none;position:fixed;inset:0;background:rgba(26,25,22,.5);z-index:300;align-items:flex-end;justify-content:center}
.export-modal-backdrop.open{display:flex}
.export-modal{background:white;border-radius:20px 20px 0 0;padding:24px 20px 36px;width:100%;max-width:480px;animation:slideUp .25s ease;max-height:90vh;overflow-y:auto}

/* Group checkbox row */
.export-group-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;border:1px solid var(--border);background:white;cursor:pointer;transition:all .15s;user-select:none}
.export-group-row:hover{border-color:var(--gold-light);background:var(--gold-faint)}
.export-group-row.checked{border-color:var(--gold);background:var(--gold-faint)}
.export-group-check{width:17px;height:17px;border-radius:4px;border:1.5px solid var(--border-strong);background:white;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}
.export-group-row.checked .export-group-check{background:var(--ink);border-color:var(--ink)}
.export-group-row.checked .export-group-check::after{content:'';width:5px;height:8px;border:1.5px solid white;border-top:none;border-left:none;transform:rotate(45deg) translate(-0.5px,-1px);display:block}
.export-group-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.export-group-name{flex:1;font-size:13px;font-weight:500;color:var(--ink)}
.export-group-count{font-size:11px;color:var(--ink-faint)}
.export-cert-toggle{flex-shrink:0;font-family:'DM Sans',sans-serif;font-size:11px;font-weight:600;letter-spacing:.03em;padding:3px 9px;border-radius:999px;border:1px solid var(--border-strong);background:white;color:var(--ink-faint);cursor:pointer;transition:all .15s}
.export-cert-toggle:hover{border-color:var(--gold)}
.export-cert-toggle.on{background:var(--gold);border-color:var(--gold);color:white}
.modal-actions{display:flex;gap:10px;margin-top:16px}
.modal-btn{flex:1;padding:13px;border-radius:var(--radius-sm);font-family:'DM Sans',sans-serif;font-size:14px;font-weight:500;cursor:pointer;border:none}
.modal-btn.cancel{background:var(--cream);color:var(--ink-muted)}
.modal-btn.confirm{background:var(--ink);color:white}
.modal-btn.confirm:hover{background:#2e2c28}

/* ── BOTTOM NAV (mobile) — removed ── */

/* ── DOCUMENT VIEWER ── */
.viewer-backdrop{display:none;position:fixed;inset:0;background:rgba(20,19,17,.88);z-index:400;flex-direction:column}
.viewer-backdrop.open{display:flex}
.viewer-header{display:flex;align-items:center;gap:12px;padding:0 16px;height:56px;background:var(--ink);flex-shrink:0}
.viewer-back{width:34px;height:34px;border-radius:7px;border:1px solid rgba(255,255,255,.15);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.7);transition:background .15s;flex-shrink:0}
.viewer-back:hover{background:rgba(255,255,255,.1)}
.viewer-title{flex:1;min-width:0}
.viewer-name{font-size:14px;font-weight:500;color:white;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.viewer-sub{font-size:11px;color:rgba(255,255,255,.4);margin-top:1px}
.viewer-download-btn{display:flex;align-items:center;gap:6px;padding:7px 14px;border-radius:7px;background:var(--gold);color:var(--ink);border:none;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s;flex-shrink:0;white-space:nowrap}
.viewer-download-btn:hover{background:var(--gold-light)}
.viewer-body{flex:1;overflow-y:auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:24px 16px}
.viewer-card{background:white;border-radius:var(--radius);width:100%;max-width:640px;overflow:hidden;box-shadow:0 8px 40px rgba(0,0,0,.3);flex-shrink:0}
.viewer-card-header{padding:20px 22px 16px;border-bottom:1px solid var(--border)}
.viewer-card-title{font-family:'Playfair Display',serif;font-size:18px;font-weight:500;color:var(--ink);margin-bottom:12px;word-break:break-all}
.viewer-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.viewer-meta-item{}
.viewer-meta-label{font-size:10px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:2px}
.viewer-meta-val{font-size:13px;color:var(--ink)}
.viewer-preview-area{padding:24px 22px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:320px;gap:16px;background:var(--cream)}
.viewer-file-icon{width:72px;height:72px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;letter-spacing:.04em}
.viewer-file-icon.pdf{background:#FBF0EE;color:var(--red)}
.viewer-file-icon.img{background:var(--teal-light);color:var(--teal)}
.viewer-file-icon.doc{background:#EEF2FB;color:#3A5FB8}
.viewer-file-icon.txt{background:#F2F0FB;color:#5A4AB8}
.viewer-preview-note{font-size:13px;color:var(--ink-muted);text-align:center;max-width:280px;line-height:1.5}
.viewer-preview-note strong{color:var(--ink);font-weight:500;display:block;margin-bottom:4px}
.viewer-preview-img{max-width:100%;max-height:400px;border-radius:8px;object-fit:contain;box-shadow:var(--shadow)}
.viewer-doc-render{width:100%;display:flex;flex-direction:column;align-items:center;gap:12px}
.viewer-page-img{width:100%;max-width:560px;border-radius:6px;box-shadow:var(--shadow);background:white}
.viewer-loading{display:flex;align-items:center;gap:10px;color:var(--ink-muted);font-size:13px;padding:40px 0}
.viewer-spin{width:16px;height:16px;border:2px solid var(--border-strong);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite}
.viewer-download-full{display:flex;align-items:center;gap:8px;padding:11px 20px;border-radius:8px;background:var(--ink);color:white;border:none;font-family:'DM Sans',sans-serif;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s}
.viewer-download-full:hover{background:#2e2c28}
.viewer-translation-bar{display:flex;align-items:center;gap:10px;padding:12px 22px;border-top:1px solid var(--border);background:#F0F8F8;font-size:12px;color:var(--teal)}
.viewer-translation-bar svg{flex-shrink:0}

/* ── DOCUMENT EDITOR (editable original + translation) ── */
.doced-backdrop{display:none;position:fixed;inset:0;background:var(--cream);z-index:410;flex-direction:column}
.doced-backdrop.open{display:flex}
.doced-header{display:flex;align-items:center;gap:12px;padding:0 16px;height:56px;background:var(--ink);flex-shrink:0}
.doced-title{flex:1;min-width:0}
.doced-name{font-size:14px;font-weight:500;color:white;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doced-sub{font-size:11.5px;color:rgba(255,255,255,.55);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doced-save-state{font-size:11.5px;color:rgba(255,255,255,.6);min-width:0;white-space:nowrap}
.doced-location{display:inline-flex;align-items:center;gap:6px;max-width:340px;font-size:11.5px;color:rgba(255,255,255,.82);background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);border-radius:7px;padding:4px 10px;white-space:nowrap;overflow:hidden}
.doced-location svg{flex-shrink:0;opacity:.8}
.doced-location b{font-weight:600;color:#fff}
.doced-location .doced-loc-name{overflow:hidden;text-overflow:ellipsis}
.doced-page-count{font-size:11.5px;color:rgba(255,255,255,.55);white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;gap:5px}
.doced-page-count:empty{display:none}
.doced-page-count svg{opacity:.7}
.doced-translate-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:8px;background:var(--gold);color:var(--ink);border:none;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s;flex-shrink:0}
.doced-translate-btn:hover{background:var(--gold-light)}
.doced-translate-btn:disabled{opacity:.6;cursor:default}
.doced-translate-btn svg{flex-shrink:0}
.doced-combine-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:8px;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.32);font-family:'DM Sans',sans-serif;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;flex-shrink:0}
.doced-combine-btn:hover{border-color:var(--gold);color:var(--gold)}
.doced-combine-btn:disabled{opacity:.45;cursor:default}
.doced-combine-btn svg{flex-shrink:0}
@media(max-width:760px){.doced-combine-btn span{display:none}}
.doced-rewind-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:8px;background:transparent;color:rgba(255,255,255,.85);border:1px solid rgba(255,255,255,.32);font-family:'DM Sans',sans-serif;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;flex-shrink:0}
.doced-rewind-btn:hover{border-color:var(--gold);color:var(--gold)}
.doced-rewind-btn:disabled{opacity:.45;cursor:default}
.doced-rewind-btn svg{flex-shrink:0}
@media(max-width:760px){.doced-rewind-btn span{display:none}}
.doced-body{flex:1;display:flex;gap:0;min-height:0;overflow:hidden}
.doced-pane{flex:1;display:flex;flex-direction:column;min-width:0;border-right:1px solid var(--border)}
.doced-pane:last-child{border-right:none}
.doced-pane-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 18px;background:#fff;border-bottom:1px solid var(--border);font-size:12px;font-weight:600;color:var(--ink);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}
.doced-pane-hint{font-size:11px;font-weight:500;color:var(--ink-faint);text-transform:none;letter-spacing:0}
.doced-textarea{flex:1;width:100%;border:none;outline:none;resize:none;padding:22px 24px;font-family:'DM Sans',sans-serif;font-size:14px;line-height:1.7;color:var(--ink);background:#fff;overflow-y:auto;white-space:pre-wrap}
.doced-pane:last-child .doced-textarea{background:var(--cream)}
.doced-textarea:disabled{opacity:.7;cursor:wait}
.doced-head-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.doced-orig-toggle{display:inline-flex;border:1px solid var(--border);border-radius:7px;overflow:hidden;flex-shrink:0}
.doced-seg{border:none;background:#fff;padding:4px 11px;font-family:'DM Sans',sans-serif;font-size:11px;font-weight:600;color:var(--ink-muted);cursor:pointer;text-transform:none;letter-spacing:0;transition:background .12s,color .12s}
.doced-seg.active{background:var(--teal);color:#fff}
.doced-visual{flex:1;overflow-y:auto;padding:18px;background:#efece6;display:flex;flex-direction:column;align-items:center;gap:12px;min-height:0}
.doced-page-img{width:100%;max-width:520px;border-radius:6px;box-shadow:0 2px 12px rgba(0,0,0,.12);background:#fff}
.doced-pdf-pageslot{width:600px;max-width:92%;flex-shrink:0;margin:0 auto;background:#fff;border-radius:6px;box-shadow:0 2px 12px rgba(0,0,0,.12);overflow:hidden;position:relative}
.doced-pdf-page{position:absolute;inset:0;width:100%;height:100%;border:none;display:block;background:#fff;pointer-events:none;transition:opacity .25s}
.doced-pdf-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#fff}
/* Combined preview/editor */
#combinedEditor{z-index:520}  /* above the export preview (500) when opened from it */
.combined-toolbar{display:inline-flex;align-items:center;gap:4px;margin-left:auto;margin-right:8px;flex-wrap:nowrap}
.combined-body{flex:1;overflow-y:auto;background:#efece6;padding:26px 18px 80px;min-height:0}
.combined-tabhead{max-width:816px;margin:22px auto 6px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}
.combined-tabhead:first-child{margin-top:0}
.combined-doc{max-width:816px;margin:0 auto 18px;background:#fff;border-radius:8px;box-shadow:0 2px 14px rgba(0,0,0,.10);overflow:hidden}
.combined-doc-name{padding:10px 16px;font-size:12.5px;font-weight:600;color:var(--ink-muted);border-bottom:1px solid var(--border);background:#faf8f4}
.combined-doc-content{padding:0}
/* Editable docs flow into stacked letter pages (reusing .doced-doc/.doced-page). */
.combined-paged{background:#efece6;padding:18px 16px;display:flex;justify-content:center}
.combined-rich{outline:none}
.combined-rich img{max-width:100%}
.combined-readonly{padding:16px;display:flex;flex-direction:column;align-items:center;gap:12px;background:#f4f1ec}
.combined-page-img{width:100%;max-width:620px;border-radius:4px;box-shadow:0 1px 8px rgba(0,0,0,.12)}
.combined-pdf{width:100%;max-width:640px;height:70vh;border:1px solid var(--border);border-radius:6px;background:#fff;pointer-events:none;display:block}
.combined-readonly-note{font-size:12px;color:var(--ink-faint)}
.doced-scanpage{display:flex;flex-direction:column;align-items:center;gap:5px;margin:0 0 14px}
.doced-pagenum{font-family:'Times New Roman',Georgia,serif;font-size:12px;color:#9c9a94}
/* Editable overlay: original page image with positioned, editable translation boxes on top. */
/* flex-shrink:0 — .doced-visual is a column flex container; with overflow:hidden the
   page's min-height:auto resolves to 0 and the container would collapse it (clipping
   the image to nothing). Pinning flex-shrink keeps the page at its content height. */
.doced-ovpage{position:relative;flex:0 0 auto;width:100%;max-width:560px;margin:0 auto 16px;background:#fff;border-radius:6px;box-shadow:0 2px 12px rgba(0,0,0,.12);overflow:hidden}
.doced-ovpage img.doced-ovbg{display:block;width:100%;height:auto}
.doced-ovbox{position:absolute;background:#fff;color:#111;box-sizing:border-box;padding:1px 4px;line-height:1.25;border-radius:2px;outline:none;cursor:text;font-family:Helvetica,Arial,sans-serif;overflow-wrap:break-word;transition:box-shadow .1s}
.doced-ovbox:hover{box-shadow:0 0 0 1px var(--gold) inset}
.doced-ovbox:focus{box-shadow:0 0 0 2px var(--gold) inset;background:#fffdf3;z-index:5}
.doced-ovhint{font-size:11.5px;color:var(--ink-faint);margin:2px 2px 8px;text-align:center}
.doced-loading{display:flex;align-items:center;gap:10px;color:var(--ink-faint);font-size:13px;padding:48px 16px;text-align:center}
.doced-text-wrap{flex:1;display:flex;flex-direction:column;min-height:0}
.doced-text-caption{padding:7px 18px;background:#fff;border-bottom:1px solid var(--border);font-size:11px;color:var(--ink-faint);flex-shrink:0}
/* Google-Docs-style rich editor for Word (.docx) originals */
.doced-rich-toolbar{display:flex;gap:5px;align-items:center;flex-wrap:wrap;padding:7px 12px;background:#fff;border-bottom:1px solid var(--border);flex-shrink:0}
.doced-fmt-btn{min-width:30px;height:30px;padding:0 9px;border-radius:6px;border:1px solid var(--border);background:#fff;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:13px;color:var(--ink-muted);transition:all .12s;display:inline-flex;align-items:center;justify-content:center}
.doced-fmt-btn:hover{border-color:var(--teal);color:var(--teal);background:var(--teal-light)}
.doced-fmt-btn b{font-weight:700}.doced-fmt-btn i{font-style:italic}.doced-fmt-btn u{text-decoration:underline}
.doced-fmt-sep{width:1px;height:20px;background:var(--border);margin:0 3px}
.doced-fmt-hint{font-size:11px;color:var(--ink-faint);margin-left:auto}
.doced-fmt-select{height:30px;border-radius:6px;border:1px solid var(--border);background:#fff;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:12px;color:var(--ink-muted);padding:0 6px;max-width:140px}
.doced-fmt-select:hover{border-color:var(--teal)}
.doced-field-btn{font-weight:600;color:var(--gold);border-color:var(--gold)}
.doced-field-btn:hover{background:#FDEEDB;border-color:var(--gold);color:#B06A10}
/* Fillable field inside an authored template / document. The highlighted state
   marks a blank to fill; once filled it reverts to plain body text (black). */
.doc-var{border-radius:4px;padding:0 3px;margin:0 1px;background:#FDEEDB;box-shadow:inset 0 0 0 1px #E9C58B;color:#8a530c;font-weight:600}
.doced-doc.fill-mode .doc-var{cursor:pointer;position:relative}
.doced-doc.fill-mode .doc-var:hover{background:#FBE1BE}
.doc-var[data-filled="1"]{background:transparent;box-shadow:none;color:inherit;font-weight:inherit;padding:0}
/* Notice shown when editing a filled template instance — explains the lock. */
.doced-fill-notice{display:flex;align-items:center;gap:8px;padding:9px 18px;background:#FDF6EA;border-bottom:1px solid #EADBBE;color:#7a5a1e;font-family:'DM Sans',sans-serif;font-size:12.5px;line-height:1.4}
.doced-fill-notice svg{flex-shrink:0;opacity:.85}
.doced-fill-notice b{font-weight:600}
/* Subtle "Click to edit" hint on hover (hidden while the field is being edited). */
.doced-doc.fill-mode .doc-var:hover::after{content:"Click to edit";position:absolute;bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:6px;white-space:nowrap;background:var(--ink);color:#fff;font-family:'DM Sans',sans-serif;font-size:11px;font-weight:500;padding:3px 7px;border-radius:5px;pointer-events:none;z-index:8;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.doced-doc.fill-mode .doc-var:focus::after{display:none}
/* The field being edited right now — clearly reads as an active input box. */
.doced-doc.fill-mode .doc-var:focus{outline:none;background:#fff;color:#1a1916;box-shadow:0 0 0 2px var(--teal);caret-color:var(--teal);cursor:text}
.doced-doc-wrap{flex:1;overflow-y:auto;padding:24px;background:#efece6;display:flex;justify-content:center;align-items:flex-start;min-height:0;position:relative}
/* Editable surface laid out as stacked letter-size pages (paginated in JS).
   The page wrappers are visual only and are stripped before saving. */
.doced-doc{width:816px;max-width:100%;display:flex;flex-direction:column;gap:26px;background:transparent;outline:none;font-family:'Times New Roman',Georgia,serif;font-size:16px;line-height:1.25;color:#1a1916;counter-reset:docpage}
/* Per-page number footer (visual only — CSS counter, never saved into content).
   --doced-total is set in JS so it can read "Page X of N". */
.doced-page::after{counter-increment:docpage;content:"Page " counter(docpage) " of " var(--doced-total,"?");position:absolute;left:0;right:0;bottom:52px;text-align:center;font-family:'Times New Roman',Georgia,serif;font-size:12px;color:#9c9a94;pointer-events:none;user-select:none}
/* A true 8.5×11 letter page (816×1056 @96dpi). Bottom padding is 84+66: the 66px
   is the reserved footer band where the PDF page number is drawn. These MUST match
   renderHtmlToPages (PAGE_W/PAGE_H/PAD/FOOT_RESERVE) so the editor is an exact
   preview of the export — content box usable height = 1056-84-150 = 822px. */
.doced-page{position:relative;width:100%;box-sizing:border-box;min-height:1056px;background:#fff;box-shadow:0 4px 24px rgba(0,0,0,.16);border-radius:3px;padding:84px 96px 150px}
/* The whole document (original + translation) is black — overrides any muted/colored inline text. */
.doced-doc, .doced-doc *{color:#1a1916 !important}
.doced-doc img{max-width:100%;max-height:822px;height:auto;display:block;margin:8px auto;image-orientation:from-image}
.doced-doc h1{font-size:20px;margin:16px 0 8px}
.doced-doc h2{font-size:18px;margin:13px 0 6px}
.doced-doc h3{font-size:16px;margin:11px 0 4px}
.doced-doc p{margin:7px 0}
.doced-doc ul,.doced-doc ol{padding-left:24px;margin:7px 0}
.doced-doc table{border-collapse:collapse;margin:8px 0;width:100%}
.doced-doc td,.doced-doc th{border:1px solid #d4d2cd;padding:5px 7px;font-size:13px}
.doced-doc img{cursor:pointer}
/* Image selection overlay (resize handle + mini toolbar) — single frame, drawn
   exactly on the image edge via an inset box-shadow so there's no double border. */
.doced-img-sel{position:absolute;box-sizing:border-box;pointer-events:none;display:none;z-index:6;box-shadow:0 0 0 2px var(--teal) inset}
.doced-img-sel.show{display:block}
.doced-img-handle{position:absolute;right:-8px;bottom:-8px;width:15px;height:15px;background:var(--teal);border:2px solid #fff;border-radius:50%;pointer-events:auto;cursor:nwse-resize;box-shadow:0 1px 3px rgba(0,0,0,.35)}
.doced-img-bar{position:absolute;top:-37px;left:0;display:flex;gap:2px;background:var(--ink);border-radius:7px;padding:4px;pointer-events:auto;box-shadow:0 3px 10px rgba(0,0,0,.25)}
.doced-img-bar button{width:28px;height:25px;border:none;background:transparent;color:#fff;cursor:pointer;border-radius:4px;display:inline-flex;align-items:center;justify-content:center}
.doced-img-bar button:hover{background:rgba(255,255,255,.16)}
.doced-img-bar button.danger:hover{background:var(--red)}
@media(max-width:760px){.doced-body{flex-direction:column}.doced-pane{border-right:none;border-bottom:1px solid var(--border)}.doced-translate-btn span{display:none}}

/* ── TOAST ── */
.toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--ink);color:white;padding:10px 20px;border-radius:30px;font-size:13px;font-weight:500;opacity:0;pointer-events:none;transition:all .3s;z-index:400;white-space:nowrap}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
/* Persistent translation-queue status bar (shows while translations run/wait). */
.trans-queue{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);display:none;align-items:center;gap:10px;background:var(--ink);color:#fff;padding:11px 18px;border-radius:30px;font-size:13px;font-weight:500;z-index:401;max-width:min(560px,calc(100vw - 32px));box-shadow:0 6px 24px rgba(0,0,0,.25);opacity:0;transition:opacity .25s,transform .25s}
.trans-queue.show{display:inline-flex;opacity:1;transform:translateX(-50%) translateY(0)}
.trans-queue .viewer-spin{width:14px;height:14px;border-width:2px;border-color:rgba(255,255,255,.35);border-top-color:#fff;flex-shrink:0}
.trans-queue span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ── CONFIRM DIALOG ── */
.confirm-backdrop{position:fixed;inset:0;background:rgba(26,25,22,.5);z-index:550;display:none;align-items:center;justify-content:center;padding:24px;opacity:0;transition:opacity .15s}
.confirm-backdrop.open{display:flex;opacity:1}
.confirm-box{background:white;border-radius:14px;padding:24px;max-width:380px;width:100%;box-shadow:0 12px 48px rgba(26,25,22,.22);transform:translateY(8px);transition:transform .15s}
.confirm-backdrop.open .confirm-box{transform:translateY(0)}
.confirm-title{font-family:'Playfair Display',serif;font-size:18px;font-weight:500;color:var(--ink);margin-bottom:8px}
.confirm-msg{font-size:13.5px;color:var(--ink-muted);line-height:1.55;margin-bottom:20px}
.confirm-password-wrap{margin:-8px 0 20px}
.confirm-password{width:100%;border:1px solid var(--border-strong);border-radius:8px;padding:10px 12px;font-family:'DM Sans',sans-serif;font-size:14px;color:var(--ink);letter-spacing:.08em}
.confirm-password:focus{outline:none;border-color:var(--gold)}
.confirm-password-error{font-size:12px;color:var(--red);margin-top:6px;min-height:14px}
.confirm-actions{display:flex;gap:10px;justify-content:flex-end}
.confirm-btn{padding:9px 16px;border-radius:8px;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;cursor:pointer;border:1px solid var(--border-strong);background:white;color:var(--ink-muted);transition:all .15s}
.confirm-btn:hover{border-color:var(--ink);color:var(--ink)}
.confirm-btn.danger{background:var(--red);border-color:var(--red);color:white}
.confirm-btn.danger:hover{background:#b33e2e;border-color:#b33e2e}
.confirm-btn:disabled{opacity:.45;cursor:default}
.pp-box{max-width:560px}
.pp-toolbar{display:flex;align-items:center;gap:12px;margin:14px 0 10px}
.pp-count{font-family:'DM Sans',sans-serif;font-size:12px;color:var(--ink-muted)}
.pp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px;max-height:48vh;overflow-y:auto;padding:4px 2px}
.pp-thumb{position:relative;border:2px solid var(--border-strong);border-radius:8px;overflow:hidden;cursor:pointer;background:#f4f2ee;transition:border-color .12s}
.pp-thumb.sel{border-color:var(--red)}
.pp-thumb img{display:block;width:100%;height:140px;object-fit:contain;background:#fff}
.pp-thumb .pp-lbl{font-family:'DM Sans',sans-serif;font-size:11px;color:var(--ink-muted);text-align:center;padding:4px 2px}
.pp-thumb .pp-check{position:absolute;top:6px;left:6px;width:20px;height:20px;border-radius:5px;background:rgba(255,255,255,.9);border:1px solid var(--border-strong);display:flex;align-items:center;justify-content:center;font-size:13px;color:transparent}
.pp-thumb.sel .pp-check{background:var(--red);border-color:var(--red);color:#fff}

/* ── GHOST DRAG INDICATOR ── */
#dragGhost{position:fixed;pointer-events:none;z-index:500;background:white;border:1.5px solid var(--gold);border-radius:8px;padding:8px 14px;font-size:13px;font-weight:500;color:var(--ink);box-shadow:0 4px 20px rgba(0,0,0,.15);display:none;white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis}
