:root{--ink:#14202c;--muted:#71808b;--line:#e7edf0;--blue:#1765d9;--navy:#102943;--bg:#f2f5f7;--soft:#f9fbfc}*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);font-size:14px}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}[hidden]{display:none!important}.app-shell{height:100vh;min-height:650px;display:flex;flex-direction:column}.app-header{height:66px;flex-shrink:0;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;z-index:3}.brand{display:flex;align-items:center;gap:11px;font-weight:800;font-size:19px;letter-spacing:-.6px}.brand-mark{display:inline-grid;place-items:center;height:31px;width:31px;background:#1164dc;color:#fff;border-radius:9px;font-size:22px;line-height:1;transform:rotate(-8deg);position:relative}.brand-mark span{position:absolute;width:10px;height:3px;background:#f4d660;right:-3px;bottom:4px;border-radius:4px;transform:rotate(-25deg)}.brand-sub{color:#9ca9b4;font-size:11px;font-weight:500;letter-spacing:.2px;margin-left:6px;padding-left:14px;border-left:1px solid #dae0e5}.header-right{display:flex;align-items:center;gap:19px}.private-pill{font-size:12px;color:#597469;font-weight:600;border:1px solid #d7e9e0;background:#f5faf6;border-radius:30px;padding:7px 12px}.green-dot{display:inline-block;width:7px;height:7px;background:#4ead77;border-radius:50%;margin-right:6px}.icon-btn{width:28px;height:28px;border-radius:50%;border:1px solid #d7dfe4;background:#fff;color:#536273;font-weight:800}.workspace{display:flex;min-height:0;flex:1}.sidebar{width:334px;flex-shrink:0;overflow-y:auto;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column}.panel-section{padding:22px 23px 24px;border-bottom:1px solid var(--line)}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.section-heading h2{font-weight:750;font-size:14px;margin:0;letter-spacing:-.1px}.step-tag{font-size:10px;font-weight:750;color:#a1acb6;letter-spacing:.4px}.pdf-upload{display:flex;min-height:120px;border:1.5px dashed #b8cada;border-radius:12px;align-items:center;justify-content:center;flex-direction:column;gap:7px;background:#f9fcff;cursor:pointer;transition:.18s}.pdf-upload:hover,.pdf-upload.dragover{border-color:#2874d4;background:#edf6ff}.upload-symbol{font-size:25px;color:#2673c5;font-weight:400;line-height:1}.pdf-upload strong{font-size:13px;font-weight:720}.pdf-upload span:last-child{font-size:11px;color:#92a0aa}.doc-info{display:flex;flex-direction:column;gap:4px;background:#f6f8fa;padding:10px;border-radius:7px;margin-top:10px;font-size:11px}.doc-info span:first-child{font-weight:700;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.doc-info span:last-child{color:#71808b}.section-note{color:#88959e;font-size:11px;line-height:1.6;margin:-5px 0 15px}.sig-library{display:flex;flex-direction:column;gap:10px;margin-bottom:11px}.empty-library,.empty-selection{font-size:12px;line-height:1.65;color:#a0abb4;text-align:center;padding:20px 10px;background:#f9fafb;border:1px dashed #e0e7ec;border-radius:9px}.signature-card{display:flex;align-items:center;gap:9px;width:100%;padding:9px 7px;background:#fff;border:1px solid #dce6ed;border-radius:10px;text-align:left;transition:.14s}.signature-card:hover{border-color:#5f98ee;background:#f6faff}.sig-thumb{width:83px;height:47px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:5px;overflow:hidden;background:linear-gradient(45deg,#f2f3f5 25%,transparent 25%),linear-gradient(-45deg,#f2f3f5 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#f2f3f5 75%),linear-gradient(-45deg,transparent 75%,#f2f3f5 75%);background-size:10px 10px;background-position:0 0,0 5px,5px -5px,-5px 0;background-color:#fff}.sig-thumb img{max-width:92%;max-height:90%;object-fit:contain}.sig-card-body{flex:1;min-width:0}.sig-card-body strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700}.sig-card-body small{color:#7a8996;font-size:11px;margin-top:5px;display:block}.sig-card-actions{display:flex;flex-direction:column;gap:3px}.mini-btn{border:0;background:none;color:#9daab4;padding:3px;font-size:15px}.mini-btn:hover{color:#c74444}.outline-btn{border:1px solid #d5e0e9;border-radius:9px;padding:11px;background:#fff;color:#24405d;font-weight:700;font-size:12px}.outline-btn:hover{background:#f5faff;border-color:#a9c6e8}.full-width{width:100%}.plus{font-size:18px;line-height:0;margin-right:7px;color:#2476d6}.placement-section{flex:1}.selected-name{font-size:12px;font-weight:700;color:#42617e;margin-bottom:15px}.field-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:10px;font-size:12px;color:#61707b}.input-suffix{width:113px;position:relative;display:flex;align-items:center}.input-suffix input{width:100%;height:37px;border-radius:7px;border:1px solid #d6e0e8;background:#fff;padding:8px 36px 8px 9px;color:#223f5b;outline:none}.input-suffix input:focus,.plain-input:focus{border-color:#4d91e2;box-shadow:0 0 0 2px #dceeff}.input-suffix span{position:absolute;right:10px;color:#9aabb9;font-size:11px;pointer-events:none}.measurement-note{color:#98a5af;font-size:11px;line-height:1.55;margin:10px 0 14px}.selection-actions{display:flex;gap:20px}.text-btn{border:0;padding:3px 0;background:none;font-size:11px;font-weight:650;color:#2469b6}.text-btn.destructive{color:#cd5f67}.sidebar-footer{padding:20px 23px;margin-top:auto;background:#fff;border-top:1px solid var(--line)}.primary-btn{border:none;border-radius:9px;background:#1268de;color:#fff;font-weight:740;font-size:13px;padding:13px 18px;box-shadow:0 5px 10px rgba(18,104,222,.15)}.primary-btn:hover:enabled{background:#0b58c3}.primary-btn span{font-size:16px;margin-right:5px}.sidebar-footer p{font-size:10px;text-align:center;color:#96a6b3;margin:12px 0 0}.main-area{background:var(--bg);min-width:0;display:flex;flex:1;flex-direction:column}.toolbar{height:66px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;flex-shrink:0}.pager,.toolbar-right,.zoom-tools{display:flex;align-items:center;gap:12px}.pager{font-size:12px;color:#637480}.pager b{font-weight:700;color:#243f5d}.square-btn{width:28px;height:30px;display:grid;place-items:center;border:1px solid #e1e8ed;background:#fff;border-radius:6px;font-size:18px;color:#647d92;line-height:1}.square-btn:hover:enabled{background:#f1f6fc}.paper-badge{font-size:11px;color:#71818e;border-right:1px solid #e2e8ed;padding-right:18px}.zoom-tools{gap:10px}.zoom-tools span{min-width:35px;text-align:center;font-size:11px;color:#4b6075}.tool-btn{font-size:11px;font-weight:650;border:1px solid #e1e8ed;background:#fff;border-radius:6px;padding:8px 10px;color:#667d90}.stage-scroller{min-height:0;flex:1;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:35px 28px 45px}.paper-host{display:flex;flex-direction:column;align-items:center;flex:0 0 auto}.paper-page{position:relative;background:#fff;box-shadow:0 6px 30px rgba(25,46,65,.13),0 0 1px rgba(0,0,0,.3);overflow:hidden;user-select:none}#pdf-canvas{display:block}.signature-overlays{position:absolute;inset:0;pointer-events:none}.placed-signature{position:absolute;pointer-events:auto;touch-action:none;cursor:grab;display:flex;align-items:center;justify-content:center}.placed-signature:active{cursor:grabbing}.placed-signature img{height:100%;width:100%;object-fit:fill;user-select:none;-webkit-user-drag:none;pointer-events:none}.placed-signature.selected{outline:1.8px solid #2386fa;outline-offset:1px}.placed-signature.selected::before{content:"";position:absolute;inset:-5px;border:1px dashed rgba(35,134,250,.3);pointer-events:none}.resize-handle{position:absolute;bottom:-6px;right:-6px;height:13px;width:13px;border-radius:3px;background:#1978f1;border:2px solid #fff;box-shadow:0 0 0 1px #1978f1;cursor:nwse-resize;touch-action:none;pointer-events:auto}.page-caption{color:#9baab5;font-size:11px;text-align:center;margin-top:17px}.welcome-state{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;margin:auto;padding:24px}.hero-icon{font-size:37px;background:#fff;width:75px;height:75px;border-radius:20px;display:grid;place-items:center;color:#1b6fda;box-shadow:0 12px 30px rgba(50,80,110,.07);margin-bottom:20px}.welcome-state h1{font-size:25px;line-height:1.3;letter-spacing:-.7px;margin:0;font-weight:820}.welcome-state p{font-size:13px;line-height:1.8;max-width:440px;color:#7d8c99;margin:15px 0 26px}.welcome-features{display:flex;gap:22px;margin-top:27px;font-size:11px;color:#8b9cab}.bottom-help{height:40px;flex-shrink:0;border-top:1px solid var(--line);background:#fafbfc;display:flex;align-items:center;padding:0 22px;font-size:10px;color:#8b9cab}.bottom-help span{margin-left:auto;color:#397ec6}.modal-backdrop{position:fixed;inset:0;background:rgba(12,29,49,.5);z-index:20;display:flex;align-items:center;justify-content:center;padding:20px}.modal{width:475px;max-width:100%;max-height:min(92vh,880px);overflow:auto;background:#fff;border-radius:18px;padding:24px 28px;box-shadow:0 30px 70px rgba(0,0,0,.22)}.modal-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.modal h2{font-size:19px;letter-spacing:-.4px;margin:0}.close-btn{font-size:27px;color:#a2abb3;border:0;background:none;line-height:1}.modal-description{font-size:12px;color:#8795a1;line-height:1.6;margin:8px 0 23px}.modal-label{font-size:12px;font-weight:740;display:block;margin:13px 0 7px}.plain-input{width:100%;padding:12px;border-radius:8px;border:1px solid #d9e2e9;background:#fff;outline:none;font-size:13px}.file-input{padding:9px;font-size:11px}.check-setting{margin:13px 0;color:#405366}.check-setting label{font-size:12px;font-weight:650}.check-setting input{accent-color:#1f73d4;margin-right:7px}.check-setting small{font-size:10px;line-height:1.45;color:#94a3af;display:block;margin:4px 0 0 24px}.modal-size{width:145px}.signature-preview{margin-top:14px;min-height:87px;display:flex;align-items:center;justify-content:center;border:1px dashed #d8e2eb;background:#fafbfd;border-radius:9px;overflow:hidden;color:#9cabb8;font-size:11px;padding:10px}.signature-preview img{display:block;max-width:100%;max-height:110px;object-fit:contain}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.modal-actions .outline-btn{padding-left:20px;padding-right:20px}.modal-actions .primary-btn{padding-left:20px;padding-right:20px}.help-dialog{width:560px}.help-copy p{font-size:12px;color:#627586;line-height:1.75}.help-copy b{color:#244260}.toast{position:fixed;bottom:23px;right:28px;z-index:30;background:#18324a;color:#fff;box-shadow:0 12px 35px rgba(0,0,0,.16);padding:12px 17px;border-radius:9px;max-width:440px;font-size:12px;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}.toast.visible{opacity:1;transform:translateY(0)}@media(max-width:940px){.sidebar{width:295px}.toolbar{padding:0 12px}.stage-scroller{padding:20px 12px}.paper-badge{display:none}}@media(max-width:680px){.app-shell{height:auto;min-height:100vh}.app-header{height:59px;padding:0 14px}.brand-sub{display:none}.private-pill{font-size:10px}.workspace{flex-direction:column}.sidebar{width:100%;overflow:visible}.panel-section{padding:16px}.sidebar-footer{padding:15px}.main-area{min-height:680px}.stage-scroller{min-height:550px}.bottom-help{display:none}.toolbar-right{gap:5px}.tool-btn{display:none}.pager{gap:5px}.paper-badge{display:none}.zoom-tools{gap:4px}.modal{padding:20px}}

/* Version 1.1: quick start, local document history and full-canvas file drop */
.header-right{gap:12px}.header-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;border:1px solid #dce5eb;background:#fff;color:#344e64;border-radius:9px;padding:9px 12px;font-size:12px;font-weight:740}.header-action:hover:enabled{border-color:#9dc4f1;background:#f4f9ff;color:#155bb1}.header-action.new-document-action{background:#f3f7fb}.header-action.new-document-action:disabled{opacity:.48}.header-action>span:first-child{font-size:15px;line-height:1}.history-count{min-width:18px;height:18px;display:grid;place-items:center;border-radius:20px;background:#e8f0fa;color:#296ab6;font-size:10px;padding:0 4px}
.stage-scroller{position:relative}.welcome-state{border:2px dashed #cbdbe9;border-radius:22px;background:#f8fbff;margin:auto;max-width:min(770px,100%);width:100%;padding:38px 34px;transition:background .2s,border-color .2s,box-shadow .2s}.welcome-state p strong{font-weight:750;color:#50667c}.welcome-state:hover{border-color:#91b9e6;background:#f3f8ff}.welcome-features{justify-content:center;flex-wrap:wrap}
.file-drop-overlay{position:absolute;z-index:12;inset:16px;border:2.5px dashed #1d79ea;border-radius:18px;background:rgba(234,244,255,.94);display:none;place-items:center;pointer-events:none}.stage-scroller.file-drag-hover .file-drop-overlay{display:grid}.file-drop-prompt{display:flex;flex-direction:column;align-items:center;gap:10px;color:#135ab7}.file-drop-prompt strong{font-size:24px}.file-drop-prompt span{font-size:12px;color:#537da8}.file-drop-symbol{height:64px;width:64px;border-radius:17px;background:white;display:grid;place-items:center;font-weight:700;font-size:32px;box-shadow:0 9px 27px rgba(28,100,189,.12)}
.history-dialog{width:690px;padding-bottom:20px}.history-subtitle{color:#8292a1;font-size:12px;margin:6px 0 0}.history-summary{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:23px 0 13px;color:#6e8293;font-size:12px}.history-list{max-height:390px;min-height:75px;overflow-y:auto}.history-item{display:flex;gap:12px;align-items:center;padding:16px 1px;border-bottom:1px solid #edf1f5}.history-file-icon{height:42px;width:42px;flex:none;background:#eff5fd;border-radius:10px;display:grid;place-items:center;color:#216bc8;font-weight:800;font-size:11px}.history-item-details{min-width:0;flex:1;display:flex;flex-direction:column;gap:5px}.history-file-name{font-size:12px;font-weight:740;overflow-wrap:anywhere}.history-meta{font-size:11px;color:#8a9aa7}.history-actions{display:flex;flex:none;align-items:center;gap:9px}.history-download{border:1px solid #cfe0f3;background:#f6faff;border-radius:8px;font-size:11px;padding:9px 12px;color:#1965c5;font-weight:750}.history-download:hover{background:#e9f4ff}.history-remove{border:none;background:none;font-size:23px;color:#a6b2bd;padding:4px 7px}.history-remove:hover{color:#ca5050}.history-empty{text-align:center;padding:35px 20px;color:#91a0ad;font-size:12px;line-height:1.65}.history-disclaimer{font-size:10.5px;line-height:1.6;color:#93a1ae;margin:19px 0 0}
@media(max-width:760px){.app-header{padding:0 12px}.header-right{gap:6px}.header-action{padding:8px 9px;font-size:11px}.header-right .private-pill{display:none}.brand{font-size:17px}.history-item{flex-wrap:wrap}.history-actions{margin-left:53px}.welcome-state{padding:28px 17px}.welcome-state h1{font-size:21px}}
@media(max-width:440px){.header-action{font-size:0;gap:0}.header-action>span:first-child{font-size:17px}.history-count{font-size:10px;margin-left:4px}.app-header .brand-mark{width:27px;height:27px}.brand{font-size:15px}}

/* Local Backup & Restore panel */
.backup-dialog{width:min(640px,calc(100vw - 24px));max-height:min(90vh,900px);overflow-y:auto}.backup-dialog h3{font-size:14px;margin:0 0 9px}.backup-summary{margin:18px 0 4px;background:#f3f7fc;border:1px solid #e3edf7;padding:12px 14px;border-radius:10px;color:#334e67;font-size:13px;font-weight:700}.backup-section{border-bottom:1px solid var(--line);padding:19px 0}.backup-section>p{color:#6d7c8b;font-size:12px;line-height:1.6;margin:0 0 12px}.backup-section .backup-warning{color:#8c5c24;font-size:11px;margin:11px 0 0}.backup-mode{display:flex;gap:10px;align-items:flex-start;border:1px solid #e1e8ee;border-radius:9px;margin:10px 0;padding:11px;cursor:pointer}.backup-mode>input{margin-top:3px;accent-color:var(--blue)}.backup-mode span{display:flex;flex-direction:column;gap:4px}.backup-mode b{font-size:12px}.backup-mode small{font-size:11px;color:#748491;line-height:1.5}.backup-preview{margin:11px 0;padding:11px 12px;border-radius:8px;background:#ecf6ef;color:#2c6440;font-size:12px}.backup-message{margin:14px 0 0;color:#48627b;font-size:12px;line-height:1.5}.backup-message.backup-error{color:#b42e28}.backup-dialog .file-input{width:100%}.backup-dialog button:disabled{opacity:.5}
@media(max-width:840px){.backup-action{font-size:0}.backup-action>span:first-child{font-size:17px}}
