:root{--bg:#14161d;--bg-2:#1b1e28;--bg-3:#252938;--line:#2f3447;--text:#e8eaf2;--muted:#8b91a8;--accent:#6d5efc;--accent-2:#8a7dff;--danger:#ef4444;--ok:#22c55e;--warn:#f59e0b}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}[hidden]{display:none!important}#app{flex-direction:column;height:100vh;display:flex}.topbar{background:var(--bg-2);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:14px;padding:8px 14px;display:flex}.brand{letter-spacing:.2px;align-items:center;gap:8px;margin-right:6px;font-size:16px;font-weight:700;display:flex}.group{align-items:center;gap:6px;display:flex}.group.right{margin-left:auto}.group.zoom{gap:4px}#zoomLabel{text-align:center;min-width:44px;color:var(--muted);font-variant-numeric:tabular-nums}.page-ind{color:var(--muted);font-variant-numeric:tabular-nums;min-width:80px}.btn{border:1px solid var(--line);background:var(--bg-3);border-radius:9px;align-items:center;gap:7px;padding:7px 12px;transition:background .15s,border-color .15s,transform 50ms;display:inline-flex}.btn:hover:not(:disabled){background:#2e3347;border-color:#3d4360}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.btn.icon{padding:6px 11px;font-weight:700}.btn.tool.active{border-color:var(--accent);color:#fff;background:#6d5efc38}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn.primary:hover:not(:disabled){background:var(--accent-2);border-color:var(--accent-2)}.btn.danger{color:#fca5a5;background:#2a1d22;border-color:#5b2a30;justify-content:center;width:100%}.btn.danger:hover{border-color:var(--danger);background:#3a2229}.btn.big{border-radius:11px;padding:11px 22px;font-size:15px}.body{flex:1;min-height:0;display:flex}#scroller{background:radial-gradient(circle at 20% 10%, #6d5efc14, transparent 40%), var(--bg);flex:1;position:relative;overflow:auto}#pages{flex-direction:column;align-items:center;gap:22px;min-width:min-content;padding:28px 24px 60px;display:flex}#panel{background:var(--bg-2);border-left:1px solid var(--line);flex:none;width:270px;padding:16px;overflow:auto}body:not(.has-pdf) #panel{display:none}#panel h3{text-transform:uppercase;letter-spacing:.9px;color:var(--muted);margin:18px 0 8px;font-size:12px}#panel h3:first-child{margin-top:0}.tips,.stats{color:#c4c8d8;margin:0;padding-left:18px}.tips li{margin-bottom:8px}.stats{padding:0;list-style:none}.stats li{color:#c4c8d8;padding:5px 0}.stats span{min-width:24px;color:var(--accent-2);font-weight:700;display:inline-block}.muted{color:var(--muted);font-size:12.5px}.muted q{color:#c4c8d8;quotes:"\"" "\"";word-break:break-word}.field{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.field.col{flex-direction:column;align-items:stretch;gap:6px}.field select,.field input[type=number]{background:var(--bg-3);width:140px;min-width:0;color:var(--text);border:1px solid var(--line);font:inherit;border-radius:8px;padding:6px 8px}.field input[type=color]{background:var(--bg-3);border:1px solid var(--line);border-radius:8px;width:48px;height:30px;padding:2px}.field input[type=range],.inline input[type=range]{accent-color:var(--accent)}.check{align-items:center;gap:8px;margin-bottom:14px;display:flex}.check input,.inline input[type=checkbox]{accent-color:var(--accent)}.dropzone{place-items:center;padding:24px;display:grid;position:absolute;inset:0}.drop-card{text-align:center;background:#1b1e28b3;border:2px dashed #3a4060;border-radius:22px;max-width:480px;padding:44px 36px}.drop-card svg{fill:none;stroke:var(--accent-2);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.drop-card h1{margin:12px 0 6px;font-size:26px}.drop-card p{color:var(--muted);margin:0 0 22px}.drop-overlay{z-index:90;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border:4px dashed var(--accent-2);background:#6d5efc47;border-radius:20px;place-items:center;margin:10px;font-size:26px;font-weight:700;display:none;position:fixed;inset:0}.drop-overlay.show{display:grid}.page{background:#fff;flex:none;position:relative;box-shadow:0 8px 30px #00000073}.page canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.page-badge{color:var(--muted);pointer-events:none;margin-left:8px;font-size:12px;position:absolute;top:0;left:100%}.layer{transform-origin:0 0;position:absolute;top:0;left:0}.hit{cursor:text;border-radius:2px;display:none;position:absolute}body.tool-edit .hit{display:block}.hit:hover{background:#6d5efc29;outline:1px solid #6d5efcd9}.hit.field{cursor:cell;background:#6d5efc12;border-bottom:1px dashed #6d5efc99}.hit.field:hover{background:#6d5efc38}.cover{pointer-events:none;position:absolute}.obj{position:absolute}.txt{white-space:pre;cursor:text;-webkit-user-select:none;user-select:none;border-radius:2px;outline:none;margin:0;padding:0;line-height:1.2}.txt.text{cursor:move}.txt:hover{outline:1px dashed #6d5efce6}.txt.selected{outline:1.5px solid var(--accent)}.txt[contenteditable]{-webkit-user-select:text;user-select:text;cursor:text;outline:1.5px solid var(--accent);background:#ffffff8c}.txt.text:empty:before{content:"Type here";opacity:.4}.sig{cursor:move;touch-action:none;border-radius:3px}.sig img{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.sig:hover{outline:1px dashed #6d5efce6}.sig.selected{outline:1.5px solid var(--accent)}.sig .handle,.sig .del{display:none}.sig.selected .handle,.sig.selected .del{display:block}.sig .handle{background:var(--accent);cursor:nwse-resize;touch-action:none;border:2px solid #fff;border-radius:50%;width:14px;height:14px;position:absolute;bottom:-7px;right:-7px}.sig .del{text-align:center;background:var(--danger);color:#fff;border:2px solid #fff;border-radius:50%;width:20px;height:20px;padding:0;font-size:12px;font-weight:700;line-height:16px;position:absolute;top:-9px;right:-9px}.dragging{opacity:.85}body.tool-text .layer>*,body.placing .layer>*{pointer-events:none}body.tool-text .layer,body.placing .layer,body.placing .page,body.tool-text .page{cursor:crosshair}.ghost{z-index:80;pointer-events:none;opacity:.65;filter:drop-shadow(0 4px 8px #00000059);position:fixed}body.busy,body.busy *{cursor:progress!important}.toast{opacity:0;pointer-events:none;z-index:120;border:1px solid var(--line);background:#272b3d;border-radius:12px;max-width:min(640px,90vw);padding:11px 18px;transition:opacity .2s,transform .2s;position:fixed;bottom:26px;left:50%;transform:translate(-50%,20px);box-shadow:0 10px 30px #00000080}.toast.show{opacity:1;transform:translate(-50%)}.toast.success{border-color:var(--ok)}.toast.error{border-color:var(--danger)}.toast.warn{border-color:var(--warn)}.modal{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#06080ea8;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal-card{background:var(--bg-2);border:1px solid var(--line);border-radius:18px;width:min(640px,100%);padding:18px 20px 16px;box-shadow:0 24px 60px #0009}.modal-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.modal-head h2{margin:0;font-size:18px}.tabs{background:var(--bg);border-radius:11px;gap:4px;margin-bottom:12px;padding:4px;display:flex}.tab{color:var(--muted);background:0 0;border:0;border-radius:8px;flex:1;padding:7px}.tab.active{background:var(--bg-3);color:#fff}.pad-wrap{background:#fff;border-radius:12px;position:relative;overflow:hidden}#sigCanvas{touch-action:none;cursor:crosshair;width:100%;height:220px;display:block}.pad-hint{color:#b8bcc9;pointer-events:none;font-size:22px;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.pad-line{pointer-events:none;border-bottom:1.5px dashed #c9ccd8;position:absolute;bottom:52px;left:6%;right:6%}.pad-tools{flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;display:flex}.swatches{gap:8px;display:flex}.swatch{outline:1px solid var(--line);border:2px solid #0000;border-radius:50%;width:26px;height:26px;padding:0}.swatch.active{border-color:var(--bg-2);outline:2px solid var(--accent-2)}.inline{color:var(--muted);align-items:center;gap:8px;display:inline-flex}.spacer{flex:1}.text-in{width:100%;font:inherit;color:var(--text);background:var(--bg-3);border:1px solid var(--line);border-radius:10px;padding:11px 13px;font-size:16px}.text-in:focus{outline:2px solid var(--accent);border-color:#0000}.fonts{gap:8px;margin:12px 0;display:flex}.font-btn{background:var(--bg-3);border:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;border-radius:10px;flex:1;padding:8px 6px;font-size:24px;overflow:hidden}.font-btn.active{border-color:var(--accent);background:#6d5efc33}.type-preview{background:#fff;border-radius:12px;place-items:center;height:150px;display:grid}.type-preview img{max-width:92%;max-height:130px}.type-preview img:not([src]){display:none}.modal-foot{border-top:1px solid var(--line);align-items:center;gap:10px;margin-top:16px;padding-top:14px;display:flex}.sig-saved{color:var(--muted);align-items:center;gap:10px;margin-bottom:12px;display:flex;overflow-x:auto}.saved-item{cursor:pointer;background:#fff;border:2px solid #0000;border-radius:9px;flex:none;height:46px;padding:4px 8px;position:relative}.saved-item:hover{border-color:var(--accent)}.saved-item img{height:100%;display:block}.saved-item button{background:var(--danger);color:#fff;border:0;border-radius:50%;width:18px;height:18px;padding:0;font-size:11px;line-height:14px;display:none;position:absolute;top:-6px;right:-6px}.saved-item:hover button{display:block}@media (width<=900px){#panel{display:none!important}.page-ind{display:none}}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/great-vibes-latin-400-normal-q5-78SH_.woff2)format("woff2"),url(/assets/great-vibes-latin-400-normal-BAZ173uY.woff)format("woff")}@font-face{font-family:Dancing Script;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dancing-script-latin-700-normal-CX8AaSVl.woff2)format("woff2"),url(/assets/dancing-script-latin-700-normal-LI5MgW9m.woff)format("woff")}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/caveat-latin-700-normal-D8_1Nw6V.woff2)format("woff2"),url(/assets/caveat-latin-700-normal-cPyBTTZN.woff)format("woff")}
