/* PDF-редактор (/tools/edit-pdf/): панель инструментов, настройки, страницы с правками, окно подписи. Переменные --c-* — у .cvp (photo-tool.css).
   Шрифты Pe* — те же файлы, которыми pdf-lib пишет текст в PDF, чтобы на экране было ровно как в файле */
@font-face{font-family:PeSans;src:url(vendor/pdf-fonts/LiberationSans-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:PeSans;src:url(vendor/pdf-fonts/LiberationSans-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:PeSans;src:url(vendor/pdf-fonts/LiberationSans-Italic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:PeSans;src:url(vendor/pdf-fonts/LiberationSans-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic;font-display:swap}
@font-face{font-family:PeSerif;src:url(vendor/pdf-fonts/LiberationSerif-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:PeSerif;src:url(vendor/pdf-fonts/LiberationSerif-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:PeSerif;src:url(vendor/pdf-fonts/LiberationSerif-Italic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:PeSerif;src:url(vendor/pdf-fonts/LiberationSerif-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic;font-display:swap}
@font-face{font-family:PeMono;src:url(vendor/pdf-fonts/LiberationMono-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:PeMono;src:url(vendor/pdf-fonts/LiberationMono-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:PeMono;src:url(vendor/pdf-fonts/LiberationMono-Italic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:PeMono;src:url(vendor/pdf-fonts/LiberationMono-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic;font-display:swap}
@font-face{font-family:PeCaveat;src:url(vendor/pdf-fonts/Caveat.ttf) format("truetype");font-weight:400 700;font-display:swap}
@font-face{font-family:PeMarck;src:url(vendor/pdf-fonts/MarckScript-Regular.ttf) format("truetype");font-display:swap}

.pe .cvp-panel{padding:28px}
.pe-pass{display:flex;flex-direction:column;gap:8px;margin:16px 0 0;font-size:14px;font-weight:700}
.pe-pass-row{display:flex;gap:10px;flex-wrap:wrap}
.pe .pdf-err{margin-top:14px}
.pe-err a,.pe-save-err a{color:inherit;text-decoration:underline}

/* редактор */
.pe-ed{display:flex;flex-direction:column}
.pe-ed[hidden]{display:none}
.pe-bar{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--c-line);background:#fff}
.pe-tools{display:flex;gap:2px;flex-wrap:wrap}
.pe-tools button{min-width:58px;height:54px;padding:6px 6px 4px;border:0;border-radius:10px;background:transparent;color:var(--c-ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;font:600 11px/1.1 inherit;font-family:inherit}
.pe-tools svg,.pe-ib svg,.pe-tg svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.pe-tools button:hover{background:var(--c-track)}
.pe-tools button[aria-pressed=true]{background:var(--c-ink);color:#fff}
.pe-tools button:focus-visible,.pe-ib:focus-visible,.pe-tg:focus-visible,.pe-zv:focus-visible{outline:2px solid var(--v3-accent,var(--c-ink));outline-offset:2px}
.pe-acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pe-ib{width:38px;height:38px;border-radius:10px;border:1px solid var(--c-ctl);background:#fff;color:var(--c-ink);display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer}
.pe-ib svg{width:18px;height:18px}
.pe-ib:hover:not(:disabled){border-color:var(--c-ink)}
.pe-ib:disabled{opacity:.35;cursor:default}
.pe-zoom{display:inline-flex;align-items:center;gap:2px;margin:0 4px}
.pe-zv{min-width:58px;height:38px;border:0;background:transparent;font:700 13px/1 var(--c-mono);color:var(--c-ink);cursor:pointer;border-radius:8px}
.pe-zv:hover{background:var(--c-track)}
.pe .pe-save{height:44px;padding:0 20px;font-size:15px}
.pe .pe-save svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.pe .pe-save[disabled]{opacity:.6;cursor:progress}

.pe-props{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;min-height:56px;padding:9px 16px;border-bottom:1px solid var(--c-line);background:var(--c-track);font-size:13px}
.pe-pg{display:inline-flex;align-items:center;gap:6px}
.pe-pg[hidden]{display:none}
.pe-props select{height:36px;padding:0 28px 0 10px;border:1px solid var(--c-ctl);border-radius:8px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 8px center/14px no-repeat;appearance:none;font:600 13px/1 inherit;font-family:inherit;color:var(--c-ink);cursor:pointer}
.pe-cap{font-size:12px;font-weight:700;color:var(--c-mute)}
.pe-tg{min-width:36px;height:36px;padding:0 10px;border:1px solid var(--c-ctl);border-radius:8px;background:#fff;color:var(--c-ink);display:inline-flex;align-items:center;justify-content:center;gap:6px;font:600 14px/1 inherit;font-family:inherit;cursor:pointer}
.pe-tg[hidden]{display:none}
.pe-tg svg{width:16px;height:16px}
.pe-tg:hover{border-color:var(--c-ink)}
.pe-tg[aria-pressed=true]{background:var(--c-ink);border-color:var(--c-ink);color:#fff}
.pe-tg-t{font-size:13px}
.pe-del:hover{border-color:var(--c-err);color:var(--c-err)}
.pe-colors{gap:5px}
.pe-colors button{width:26px;height:26px;border-radius:50%;border:1px solid rgba(0,0,0,.18);background:var(--sw);padding:0;cursor:pointer;box-shadow:0 0 0 2px transparent;transition:box-shadow .12s}
.pe-colors button[aria-pressed=true]{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--c-ink)}
.pe-colors label{position:relative;width:26px;height:26px;border-radius:50%;background:conic-gradient(red,#ff0,lime,cyan,blue,#f0f,red);cursor:pointer;border:1px solid rgba(0,0,0,.18)}
.pe-colors input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.pe-hint{color:var(--c-mute);font-weight:600}
.pe-props-end{margin-left:auto;display:inline-flex;gap:8px}

.pe-work{display:grid;grid-template-columns:132px minmax(0,1fr);height:clamp(520px,calc(100vh - 230px),1100px);background:#E9E7E3}
.pe-thumbs{overflow-y:auto;padding:14px 12px;display:flex;flex-direction:column;gap:12px;background:#fff;border-right:1px solid var(--c-line)}
.pe-thumb{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px;border:2px solid transparent;border-radius:10px;background:none;cursor:pointer;font:700 11px/1 var(--c-mono);color:var(--c-mute)}
.pe-thumb canvas{display:block;max-width:100%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.2)}
.pe-thumb:hover{background:var(--c-track)}
.pe-thumb.is-cur{border-color:var(--c-ink);color:var(--c-ink)}
.pe-view{overflow:auto;position:relative;outline:0;overscroll-behavior:contain}
.pe-pages{display:flex;flex-direction:column;align-items:center;gap:20px;padding:24px;min-width:min-content}
.pe-page{position:relative;flex:none;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.18)}
.pe-page>canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.pe-layer{position:absolute;left:0;top:0;transform-origin:0 0;touch-action:pan-x pan-y;user-select:none;-webkit-user-select:none}
.pe-layer.is-draw{touch-action:none;cursor:crosshair}
.pe-layer.is-text{cursor:text}
.pe-layer>svg,.cvp .pe-layer>svg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none;fill:none;stroke:none;stroke-width:1}
.pe-txt{position:absolute;margin:0;padding:0;border:0;line-height:1.2;white-space:pre;outline:0;cursor:move;min-width:4px;user-select:none;-webkit-user-select:none}
.pe-txt[contenteditable=true],.pe-txt[contenteditable=plaintext-only]{cursor:text;user-select:text;-webkit-user-select:text;outline:1px dashed rgba(242,90,28,.8);outline-offset:2px}
.pe-txt:empty:before{content:"Текст";color:#999}
.pe-layer.is-text .pe-txt{cursor:text}
.pe-sel{position:absolute;pointer-events:none;outline:1.5px solid #F25A1C;outline-offset:3px}
.pe-h{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border:1.5px solid #F25A1C;border-radius:3px;background:#fff;pointer-events:auto;touch-action:none}
.pe-busy{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:700 14px/1 inherit;color:var(--c-mute)}

.pe-foot{display:flex;align-items:center;gap:12px 20px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--c-line);font-size:13px}
.pe-file{font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:46ch}
.pe-pnum{font:700 12px/1 var(--c-mono);color:var(--c-mute)}
.pe-foot .cvp-link-btn{margin-left:auto}
.pe-save-err{margin:0 16px 16px!important}

/* окно подписи */
.pe-dlg{width:min(680px,calc(100vw - 24px));max-height:calc(100vh - 24px);padding:0;border:0;border-radius:22px;box-shadow:0 30px 80px -20px rgba(0,0,0,.45);color:var(--c-ink,#19191C);font-family:inherit}
.pe-dlg::backdrop{background:rgba(20,20,22,.5)}
.pe-dlg-in{display:flex;flex-direction:column;gap:16px;padding:22px 24px 24px}
.pe-dlg-head{display:flex;align-items:center;justify-content:space-between}
.pe-dlg-head h2{margin:0;font-size:22px}
.pe-dlg .pe-ib{border-color:#E6E2DE}
.pe-stabs{display:inline-flex;gap:4px;padding:4px;border:1px solid #E6E2DE;border-radius:12px;align-self:flex-start;flex-wrap:wrap}
.pe-stabs button{padding:9px 14px;border:0;border-radius:9px;background:transparent;font:600 14px/1 inherit;font-family:inherit;color:inherit;cursor:pointer}
.pe-stabs button[aria-selected=true]{background:#19191C;color:#fff}
.pe-st{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.pe-st[hidden]{display:none}
#pe-sig-c{width:100%;aspect-ratio:3/1;border:1.5px dashed #C9C4BE;border-radius:14px;background:#fff;touch-action:none;cursor:crosshair}
.pe-dlg .pdf-input{max-width:none;width:100%;border:1px solid #E6E2DE;height:48px;padding:0 14px;border-radius:12px;font:inherit;font-size:16px}
.pe-sig-fonts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%}
.pe-sig-fonts button{height:72px;border:1px solid #E6E2DE;border-radius:12px;background:#fff;font-size:30px;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 10px;color:var(--ink,#111)}
.pe-sig-fonts button[aria-pressed=true]{border-color:#19191C;box-shadow:inset 0 0 0 1px #19191C}
.pe-sig-prev{width:100%;min-height:90px;border:1px solid #E6E2DE;border-radius:12px;display:flex;align-items:center;justify-content:center;background:repeating-conic-gradient(#f3f3f3 0 25%,#fff 0 50%) 0 0/16px 16px}
.pe-sig-prev img{max-width:100%;max-height:160px}
.pe-dlg-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.pe-sig-ink{display:inline-flex;gap:8px}
.pe-sig-ink button{width:30px;height:30px;border-radius:50%;border:0;background:var(--sw);cursor:pointer}
.pe-sig-ink button[aria-pressed=true]{box-shadow:0 0 0 2px #fff,0 0 0 4px #19191C}
.pe-dlg .cvp-btn-lime{height:48px;padding:0 22px;font-size:15px;border:0;border-radius:10px;background:#F25A1C;color:#fff!important;font-weight:700;cursor:pointer}
.pe-saved{display:flex;flex-direction:column;gap:8px}
.pe-saved[hidden]{display:none}
.pe-saved-list{display:flex;gap:8px;flex-wrap:wrap}
.pe-saved-list button{position:relative;height:56px;padding:4px 10px;border:1px solid #E6E2DE;border-radius:10px;background:#fff;cursor:pointer}
.pe-saved-list button:hover{border-color:#19191C}
.pe-saved-list img{height:100%;width:auto;max-width:160px}

@media(max-width:900px){
  .pe-work{grid-template-columns:minmax(0,1fr);height:clamp(440px,calc(100vh - 260px),900px)}
  .pe-thumbs{display:none}
  .pe-pages{padding:12px;gap:12px}
  .pe-tools{flex-wrap:nowrap;overflow-x:auto;width:100%;scrollbar-width:none}
  .pe-tools button{min-width:54px}
  .pe-acts{width:100%}
  .pe .pe-save{margin-left:auto}
  .pe .cvp-panel{padding:18px}
}
@media(max-width:560px){
  .pe-sig-fonts{grid-template-columns:1fr}
  .pe-file{max-width:100%}
  .pe-props-end{margin-left:0}
}
