/* ===== PDF editor layout ===== */
.editor{display:grid;grid-template-columns:320px 1fr;min-height:calc(100vh - 64px)}
@media(max-width:860px){.editor{grid-template-columns:1fr}}

.ed-side{background:#fff;border-right:1px solid var(--line);padding:20px;overflow-y:auto}
@media(max-width:860px){.ed-side{border-right:0;border-bottom:1px solid var(--line)}}
.ed-block{margin-bottom:26px}
.ed-block h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:12px}

.drop{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;padding:26px 14px;border:2px dashed var(--line);border-radius:14px;cursor:pointer;transition:.15s;background:var(--bg)}
.drop:hover,.drop.drag{border-color:var(--brand);background:var(--brand-soft)}
.drop.small{padding:18px 14px}
.drop-ico{font-size:30px}
.drop-t{font-weight:700}
.drop-s{font-size:.82rem;color:var(--muted)}
.ed-file{background:var(--brand-soft);border-radius:11px;padding:10px 12px;font-size:.9rem;color:var(--brand-dark);display:flex;align-items:center;gap:8px;min-width:0}
.ed-file .fname{flex:1;min-width:0;font-weight:600;background:transparent;border:1px solid transparent;border-radius:7px;padding:4px 6px;color:var(--brand-dark);font:inherit;font-weight:600;text-overflow:ellipsis}
.ed-file .fname:hover{border-color:#cfe0ff}
.ed-file .fname:focus{outline:none;background:#fff;border-color:var(--brand)}
.ed-file .fext{color:var(--muted);font-size:.82rem;white-space:nowrap}
.ed-file button{background:none;border:0;color:var(--muted);cursor:pointer;font-size:18px;flex:none}

.lib-group{margin-bottom:14px}
.lib-label{font-size:.8rem;font-weight:700;color:var(--ink-soft);margin-bottom:8px}
.lib-item{position:relative}
.lib-item .del{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;background:var(--red);color:#fff;border:0;font-size:12px;line-height:1;cursor:pointer;display:none;align-items:center;justify-content:center;z-index:2}
.lib-item:hover .del{display:flex}

/* recent documents */
.recent{display:flex;flex-direction:column;gap:6px}
.recent-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;cursor:pointer;font-size:.88rem;background:#fff;transition:.15s}
.recent-item:hover{border-color:var(--brand);background:var(--brand-soft)}
.recent-item .rn{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.recent-item .rd{color:var(--muted);font-size:.78rem;white-space:nowrap}
.recent-item .del{background:none;border:0;color:var(--muted);cursor:pointer;font-size:15px;flex:none}

/* floating "download signed" button next to the document */
.fab{position:fixed;right:26px;bottom:26px;z-index:40;background:var(--action);color:#fff;border:0;border-radius:999px;padding:.95em 1.5em;font:inherit;font-weight:650;cursor:pointer;box-shadow:0 16px 34px rgba(17,17,17,.24);display:flex;align-items:center;gap:8px;transition:.2s ease}
.fab:hover{background:var(--action-hover);transform:translateY(-2px)}
.fab.hidden{display:none}

/* auto-detected signature spot highlight */
.spot{position:absolute;border:2px dashed var(--brand);background:rgba(255,107,53,.10);border-radius:6px;pointer-events:none;animation:spotpulse 1.4s ease-in-out infinite}
.spot::after{content:"Место для подписи";position:absolute;top:-20px;left:0;font-size:11px;font-weight:700;color:var(--brand);white-space:nowrap}
@keyframes spotpulse{0%,100%{opacity:.5}50%{opacity:1}}

.bg-opts{margin-top:14px;display:flex;flex-direction:column;gap:12px}
.chk{display:flex;align-items:center;gap:8px;font-size:.92rem;font-weight:600}
.rng{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--ink-soft)}
.rng input{width:100%}
.sig-preview{background:repeating-conic-gradient(#eef2f8 0% 25%,#fff 0% 50%) 0/16px 16px;border:1px solid var(--line);border-radius:10px;min-height:70px;display:grid;place-items:center;padding:8px}
.sig-preview img{max-height:80px}
.lib{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.lib img{width:56px;height:56px;object-fit:contain;border:1px solid var(--line);border-radius:8px;padding:4px;cursor:pointer;background:repeating-conic-gradient(#eef2f8 0% 25%,#fff 0% 50%) 0/10px 10px}
.lib img:hover{border-color:var(--brand)}
.plan-hint{font-size:.82rem;color:var(--muted);margin-top:10px;text-align:center}
.plan-hint a{color:var(--brand)}

/* main canvas */
.ed-main{background:#ecebe5;overflow:auto;position:relative;padding:24px}
.ed-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--ink-soft);padding:20px}
.ed-empty-ico{font-size:60px;margin-bottom:10px}
.ed-empty.hidden{display:none}
.pages{display:flex;flex-direction:column;align-items:center;gap:20px}
.pdf-page{position:relative;background:#fff;box-shadow:var(--shadow-lg);border-radius:2px}
.pdf-page canvas{display:block;border-radius:2px}
.page-num{position:absolute;top:-22px;left:0;font-size:.78rem;color:var(--muted);font-weight:600}

/* placed element */
.el{position:absolute;cursor:move;touch-action:none;user-select:none}
.el img{width:100%;height:100%;pointer-events:none;display:block}
.el.active{outline:2px solid var(--brand);outline-offset:2px}
.el .handle{position:absolute;width:14px;height:14px;background:#fff;border:2px solid var(--brand);border-radius:50%;display:none}
.el.active .handle{display:block}
.el .h-resize{right:-8px;bottom:-8px;cursor:nwse-resize}
.el .h-rotate{left:50%;top:-30px;transform:translateX(-50%);cursor:grab;background:var(--brand)}
.el .h-del{right:-8px;top:-8px;background:var(--red);border-color:var(--red);color:#fff;display:none;align-items:center;justify-content:center;font-size:11px;cursor:pointer;line-height:1}
.el.active .h-del{display:flex}

/* modal */
.modal-back{position:fixed;inset:0;background:rgba(15,26,46,.55);display:grid;place-items:center;z-index:100;padding:20px}
.modal-back.hidden{display:none}
.modal{background:#fff;border-radius:var(--radius);max-width:520px;width:100%;padding:28px;position:relative;box-shadow:var(--shadow-lg);max-height:90vh;overflow:auto}
.modal-x{position:absolute;top:14px;right:16px;background:none;border:0;font-size:26px;cursor:pointer;color:var(--muted)}
.cert-item{border:1px solid var(--line);border-radius:11px;padding:12px 14px;margin-bottom:10px;cursor:pointer;transition:.15s}
.cert-item:hover{border-color:var(--brand);background:var(--brand-soft)}
.cert-item b{display:block}
.cert-item small{color:var(--muted)}
.spin{display:inline-block;width:18px;height:18px;border:2px solid var(--brand-soft);border-top-color:var(--brand);border-radius:50%;animation:sp 1s linear infinite;vertical-align:middle}
@keyframes sp{to{transform:rotate(360deg)}}
