.pdf-signer-app .drop-zone{margin-bottom:1rem}.pdf-signer-app .pdf-file-input-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pdf-signer-app{position:relative}.sign-log-wrap{margin-top:1.25rem;border-top:1px solid var(--border);padding-top:.85rem}.sign-log-label{font-size:.78rem;font-weight:600;color:var(--text-muted);cursor:pointer;user-select:none;list-style:none}.sign-log-label::-webkit-details-marker{display:none}.sign-log-label:before{content:"▸ ";display:inline-block;transition:transform .15s ease}.sign-log-wrap[open] .sign-log-label:before{transform:rotate(90deg)}.sign-log{margin-top:.5rem;min-height:3rem;max-height:6rem;overflow-y:auto;padding:.55rem .7rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.76rem;line-height:1.45;background:color-mix(in srgb,var(--text) 4%,var(--bg));border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted)}.sign-log:empty:before{content:"—";opacity:.45}.sign-log-entry{margin:0 0 .2rem;word-break:break-word}.sign-log-entry.is-error{color:#c0392b}.sign-log-entry.is-success{color:#1a7f4b}.sign-log-entry.is-info{color:var(--text-muted)}.pdf-signer-app .drop-zone.is-loaded{display:none}.pdf-signer-workspace{display:grid;grid-template-columns:minmax(0,1fr) min(18rem,100%);gap:1rem;align-items:start}.pdf-signer-workspace[hidden]{display:none!important}@media(max-width:900px){.pdf-signer-workspace{grid-template-columns:1fr}}.pdf-viewer-wrap{display:flex;flex-direction:column;gap:.75rem;min-width:0}.pdf-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.65rem .85rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.pdf-file-name{flex:1 1 12rem;min-width:0;margin:0;font-size:.9rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pdf-toolbar-group{display:flex;align-items:center;gap:.35rem}.pdf-page-label{min-width:6.5rem;text-align:center;font-size:.85rem;color:var(--text-muted)}.pdf-viewer{overflow:auto;max-height:min(72vh,900px);padding:1rem;background:color-mix(in srgb,var(--text) 6%,var(--bg));border:1px solid var(--border);border-radius:var(--radius);-webkit-overflow-scrolling:touch}.pdf-pages{display:flex;flex-direction:column;align-items:center;gap:1rem;width:max-content;max-width:100%;margin:0 auto}.pdf-page{position:relative;background:#fff;box-shadow:0 2px 12px color-mix(in srgb,var(--text) 12%,transparent);border-radius:2px;line-height:0}.pdf-page canvas{display:block}.pdf-page-overlays{position:absolute;inset:0;pointer-events:none}.pdf-page.is-placing .pdf-page-overlays{pointer-events:auto;cursor:crosshair}.pdf-page.is-placing .pdf-sig-overlay{cursor:grab}.pdf-sig-overlay{position:absolute;pointer-events:auto;cursor:grab;border:2px dashed color-mix(in srgb,var(--accent) 70%,transparent);border-radius:2px;box-sizing:border-box;touch-action:none}.pdf-sig-overlay.is-selected{border-style:solid;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}.pdf-sig-overlay.is-dragging{cursor:grabbing}.pdf-sig-overlay img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}.pdf-sig-overlay-remove{position:absolute;top:-.55rem;right:-.55rem;width:1.25rem;height:1.25rem;padding:0;border:none;border-radius:50%;background:var(--surface);color:var(--text);font-size:.85rem;line-height:1;cursor:pointer;box-shadow:0 1px 4px color-mix(in srgb,var(--text) 20%,transparent);z-index:2}.pdf-sig-overlay-resize{position:absolute;right:-.4rem;bottom:-.4rem;width:.85rem;height:.85rem;border:2px solid var(--surface);border-radius:2px;background:var(--accent);cursor:nwse-resize;touch-action:none;z-index:2}.sign-size-control{margin:0}.sign-size-control input[type=range]{width:100%}.pdf-page.is-loading{min-height:12rem;min-width:min(100%,28rem);background:linear-gradient(90deg,color-mix(in srgb,var(--text) 4%,var(--surface)),color-mix(in srgb,var(--text) 8%,var(--surface)),color-mix(in srgb,var(--text) 4%,var(--surface)));background-size:200% 100%;animation:pdf-page-shimmer 1.2s ease-in-out infinite}@keyframes pdf-page-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.sign-panel{display:flex;flex-direction:column;gap:.85rem;padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);position:sticky;top:1rem}.sign-panel h2{margin:0;font-size:1rem;font-weight:650}.sign-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;padding:.25rem;background:color-mix(in srgb,var(--text) 5%,var(--bg));border-radius:var(--radius)}.sign-mode-tab{padding:.45rem .65rem;border:none;border-radius:calc(var(--radius) - 2px);background:transparent;color:var(--text-muted);font:inherit;font-size:.85rem;font-weight:600;cursor:pointer}.sign-mode-tab.is-active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px color-mix(in srgb,var(--text) 10%,transparent)}.sign-preview{display:flex;align-items:center;justify-content:center;min-height:5.5rem;padding:.75rem;background:#fff;color:#5c5c66;border:1px dashed var(--border);border-radius:var(--radius)}.sign-preview img{max-width:100%;max-height:4.5rem;object-fit:contain}.sign-preview-empty{margin:0;font-size:.82rem;color:#5c5c66;text-align:center}.sign-hint{margin:0;font-size:.82rem;color:var(--text-muted);line-height:1.45}.sign-hint.is-active{color:var(--accent);font-weight:600}.sign-image-drop{padding:.85rem;border:1px dashed var(--border);border-radius:var(--radius);text-align:center;cursor:pointer;font-size:.85rem;color:var(--text-muted)}.sign-image-drop.drag-over{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.sign-placements{display:flex;flex-direction:column;gap:.35rem}.sign-placements-title{margin:0;font-size:.78rem;font-weight:650;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.sign-placements-list{display:flex;flex-direction:column;gap:.35rem;max-height:8rem;overflow:auto}.sign-placement-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem .5rem;background:color-mix(in srgb,var(--text) 4%,var(--bg));border-radius:calc(var(--radius) - 2px);font-size:.82rem}.sign-panel-actions{display:flex;flex-direction:column;gap:.5rem}.sig-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;background:color-mix(in srgb,var(--text) 45%,transparent);backdrop-filter:blur(4px)}.sig-modal[hidden]{display:none!important}.sig-modal-card{width:min(640px,100%);max-height:min(90vh,720px);display:flex;flex-direction:column;gap:.85rem;padding:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);box-shadow:0 16px 48px color-mix(in srgb,var(--text) 22%,transparent)}.sig-modal-head h2{margin:0 0 .25rem;font-size:1.15rem}.sig-modal-head p{margin:0;font-size:.88rem;color:var(--text-muted)}.sig-pad-wrap{position:relative;flex:1;min-height:220px;border-radius:var(--radius);background:#fff;border:1px solid color-mix(in srgb,var(--text) 12%,transparent);overflow:hidden}.sig-pad-wrap:after{content:"";position:absolute;left:8%;right:8%;bottom:22%;height:1px;background:color-mix(in srgb,var(--text) 18%,transparent);pointer-events:none}#sigCanvas{display:block;width:100%;height:100%;min-height:220px;touch-action:none;cursor:crosshair}.sig-modal-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.sig-pen-group{display:flex;gap:.35rem}.sig-pen-btn{width:2rem;height:2rem;padding:0;border:2px solid var(--border);border-radius:50%;cursor:pointer}.sig-pen-btn.is-active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.sig-pen-btn[data-pen=black]{background:#111}.sig-pen-btn[data-pen=blue]{background:#1a3fad}.sig-modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}@media(max-width:640px){.sig-modal-card{padding:1rem}.sig-pad-wrap{min-height:180px}}
