:root{--brand:#3b5bfd;--brand-dark:#2a45d6;--ink:#23232f;--muted:#5f6170;--line:#e3e4ec;--bg:#f5f5fa;--card:#fff;--ok:#1f9d55;--danger:#e0393e;--radius:12px;--shadow:0 2px 10px #1e1e3c0f;--shadow-lg:0 10px 30px #1e1e3c1f;color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);margin:0}body{flex-direction:column;min-height:100vh;display:flex}#app{flex:1}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}.topbar{z-index:30;border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:32px;height:60px;padding:0 24px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.5px;align-items:center;gap:2px;font-size:24px;font-weight:800;text-decoration:none;display:flex}.brand-mark{background:var(--brand);color:#fff;border-radius:7px;padding:1px 6px;font-size:20px}.topnav{gap:24px;display:flex;overflow-x:auto}.topnav a{text-transform:uppercase;white-space:nowrap;font-size:14px;font-weight:600;text-decoration:none}.topnav a:hover{color:var(--brand)}.footer{text-align:center;color:var(--muted);border-top:1px solid var(--line);background:#fff;padding:24px 16px;font-size:13px}.hero{text-align:center;padding:48px 16px 8px}.hero h1{letter-spacing:-.5px;margin:0 0 12px;font-size:clamp(28px,4vw,42px)}.hero p{color:var(--muted);max-width:820px;margin:0 auto;font-size:19px;line-height:1.5}.filters{flex-wrap:wrap;justify-content:center;gap:10px;padding:28px 16px;display:flex}.chip{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:999px;padding:8px 16px;font-weight:600}.chip:hover{border-color:var(--ink)}.chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}.grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;max-width:1400px;margin:0 auto;padding:0 24px 48px;display:grid}.tool-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);min-height:200px;padding:22px;text-decoration:none;transition:all .15s;display:block}.tool-card:hover{box-shadow:var(--shadow-lg);border-color:#0000;transform:translateY(-2px)}.tool-card h3{margin:16px 0 8px;font-size:20px}.tool-card p{color:var(--muted);margin:0;font-size:14px;line-height:1.45}.tool-card .badge{color:var(--brand);vertical-align:middle;background:#eef1ff;border-radius:6px;margin-left:6px;padding:2px 6px;font-size:11px;font-weight:700;display:inline-block}.icon{color:#fff;letter-spacing:-.3px;border-radius:10px;place-items:center;width:44px;height:44px;font-size:13px;font-weight:800;display:grid}.tool-landing{text-align:center;padding:56px 16px}.tool-landing h1{margin:0 0 10px;font-size:clamp(28px,4vw,42px)}.tool-landing p.lead{color:var(--muted);max-width:720px;margin:0 auto 32px;font-size:19px}.dropzone{border:2px dashed #0000;border-radius:16px;max-width:760px;margin:0 auto;padding:24px;transition:all .15s}.dropzone.drag{border-color:var(--brand);background:#eef1ff}.btn-select{background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:12px;padding:22px 56px;font-size:22px;font-weight:700;box-shadow:0 6px 18px #3b5bfd59}.btn-select:hover{background:var(--brand-dark)}.dropzone small{color:var(--muted);margin-top:14px;display:block}.note{color:var(--muted);margin-top:18px;font-size:13px}.workspace{grid-template-columns:1fr 360px;min-height:calc(100vh - 60px);display:grid}.ws-main{padding:24px;position:relative;overflow:auto}.ws-side{border-left:1px solid var(--line);background:#fff;flex-direction:column;max-height:calc(100vh - 60px);display:flex;position:sticky;top:60px}.ws-side h2{border-bottom:1px solid var(--line);text-align:center;margin:0;padding:20px 22px;font-size:22px}.ws-options{flex:1;padding:20px 22px;overflow:auto}.ws-actions{border-top:1px solid var(--line);padding:18px 22px}.btn-primary{background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;padding:16px;font-size:19px;font-weight:700;display:flex}.btn-primary:hover{background:var(--brand-dark)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;padding:8px 14px;font-weight:600}.btn:hover{border-color:var(--ink)}.btn.small{padding:4px 10px;font-size:13px}.btn.active{background:var(--ink);color:#fff;border-color:var(--ink)}.btn-danger{color:var(--danger)}.files{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:18px;display:flex}.file-card{width:190px;box-shadow:var(--shadow);text-align:center;cursor:grab;background:#fff;border:2px solid #0000;border-radius:10px;padding:12px;position:relative}.file-card.dragging{opacity:.4}.file-card.over{border-color:var(--brand)}.file-card .thumb{background:#fafafd;border-radius:6px;place-items:center;height:200px;display:grid;overflow:hidden}.file-card .thumb canvas,.file-card .thumb img{background:#fff;max-width:100%;max-height:200px;box-shadow:0 1px 4px #00000026}.file-card .name{word-break:break-all;max-height:34px;margin-top:8px;font-size:13px;line-height:1.3;overflow:hidden}.file-card .meta{color:var(--muted);font-size:12px}.card-tools{opacity:0;gap:4px;transition:all .1s;display:flex;position:absolute;top:6px;right:6px}.file-card:hover .card-tools,.page-card:hover .card-tools{opacity:1}.round{cursor:pointer;background:#fff;border:0;border-radius:50%;place-items:center;width:28px;height:28px;font-size:14px;display:grid;box-shadow:0 1px 5px #0003}.round:hover{background:var(--brand);color:#fff}.add-more{background:var(--brand);color:#fff;cursor:pointer;width:64px;height:64px;box-shadow:var(--shadow-lg);z-index:5;border:0;border-radius:50%;font-size:34px;position:fixed;top:84px;right:384px}.add-more:hover{background:var(--brand-dark)}.pages{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;display:grid}.page-card{box-shadow:var(--shadow);text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:2px solid #0000;border-radius:8px;padding:10px;position:relative}.page-card .thumb{place-items:center;height:170px;display:grid}.page-card .thumb canvas{max-width:100%;max-height:170px;transition:transform .2s;box-shadow:0 1px 4px #00000026}.page-card .label{color:var(--muted);margin-top:6px;font-size:12px}.page-card.selected{border-color:var(--brand);background:#eef1ff}.page-card.deleted{opacity:.35}.page-card.deleted:after{content:"✕";color:var(--danger);place-items:center;font-size:64px;display:grid;position:absolute;inset:0}.page-card.over{border-color:var(--brand)}.page-card .group-tag{background:var(--brand);color:#fff;border-radius:6px;padding:2px 6px;font-size:11px;font-weight:700;position:absolute;top:6px;left:6px}.opt{margin-bottom:20px}.opt>label,.opt-title{margin-bottom:8px;font-size:14px;font-weight:700;display:block}.opt input[type=text],.opt input[type=number],.opt input[type=password],.opt input[type=url],.opt select,.opt textarea{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;padding:10px 12px}.opt textarea{resize:vertical;min-height:80px}.opt input:focus,.opt select:focus,.opt textarea:focus{outline:2px solid var(--brand);border-color:#0000}.seg{flex-direction:column;gap:8px;display:flex}.seg.row{flex-flow:wrap}.seg-item{border:2px solid var(--line);cursor:pointer;text-align:left;background:#fff;border-radius:10px;padding:10px 12px}.seg.row .seg-item{text-align:center;flex:1;min-width:70px}.seg-item b{font-size:14px;display:block}.seg-item span{color:var(--muted);font-size:12px}.seg-item.active{border-color:var(--brand);background:#f3f5ff}.pos-grid{grid-template-columns:repeat(3,34px);gap:4px;display:grid}.pos-grid button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:6px;width:34px;height:34px}.pos-grid button.active{background:var(--brand);border-color:var(--brand)}.row2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.check{align-items:center;gap:8px;margin:6px 0;font-size:14px;display:flex}.info{color:#3a3f6b;background:#f3f5ff;border-radius:8px;padding:12px;font-size:13px;line-height:1.45}.warn{color:#7a5200;background:#fff6e5}.err{color:#9b1c1c;background:#ffecec}.overlay{z-index:50;background:#f5f5faeb;place-items:center;display:grid;position:fixed;inset:0}.overlay .box{text-align:center}.spinner{border:6px solid #dfe3ff;border-top-color:var(--brand);border-radius:50%;width:64px;height:64px;margin:0 auto 18px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.overlay h3{margin:0 0 6px;font-size:24px}.overlay p{color:var(--muted);margin:0}.progress{background:#e3e6f7;border-radius:99px;width:320px;height:8px;margin:14px auto 0;overflow:hidden}.progress div{background:var(--brand);width:0;height:100%;transition:width .2s}.result{text-align:center;padding:56px 16px}.result h1{margin:0 0 24px;font-size:clamp(26px,3.5vw,36px)}.result .btn-select{align-items:center;gap:10px;display:inline-flex}.result .stats{color:var(--muted);margin-top:18px}.result .again{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:28px;display:flex}.result-panel{text-align:left;border-radius:var(--radius);max-width:900px;box-shadow:var(--shadow);white-space:pre-wrap;background:#fff;max-height:60vh;margin:28px auto 0;padding:24px;line-height:1.6;overflow:auto}.editor-toolbar{z-index:4;background:var(--bg);flex-wrap:wrap;justify-content:center;gap:6px;padding:0 0 14px;display:flex;position:sticky;top:0}.ed-pages{flex-direction:column;align-items:center;gap:24px;display:flex}.ed-page{box-shadow:var(--shadow-lg);background:#fff;position:relative}.ed-page canvas{display:block}.ed-layer{position:absolute;inset:0}.ed-layer.mode-text{cursor:text}.ed-layer.mode-rect,.ed-layer.mode-redact,.ed-layer.mode-draw,.ed-layer.mode-crop{cursor:crosshair}.ed-el{border:1px dashed #0000;position:absolute}.ed-el:hover,.ed-el.sel{border-color:var(--brand)}.ed-el .del{width:22px;height:22px;font-size:12px;display:none;position:absolute;top:-12px;right:-12px}.ed-el.sel .del{display:grid}.ed-el .rs{background:var(--brand);cursor:nwse-resize;border-radius:3px;width:12px;height:12px;display:none;position:absolute;bottom:-6px;right:-6px}.ed-el.sel .rs{display:block}.ed-el[contenteditable]{white-space:pre;cursor:move;outline:none;min-width:20px;line-height:1.15}.ed-el img{pointer-events:none;width:100%;height:100%;display:block}.ed-el svg{width:100%;height:100%;display:block;overflow:visible}.crop-box{border:2px solid var(--brand);position:absolute;box-shadow:0 0 0 9999px #14142873}.modal-bg{z-index:60;background:#14142880;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{width:min(560px,100%);box-shadow:var(--shadow-lg);background:#fff;border-radius:14px;padding:22px}.modal h3{margin:0 0 14px}.sig-pad{border:1px dashed var(--line);touch-action:none;background:#fff;border-radius:10px;width:100%;height:200px}.tabs{gap:6px;margin-bottom:12px;display:flex}.compare{grid-template-columns:1fr 1fr;gap:16px;display:grid}.compare .col{box-shadow:var(--shadow);text-align:center;background:#fff;border-radius:10px;padding:12px}.compare canvas{max-width:100%}.diff{box-shadow:var(--shadow);white-space:pre-wrap;background:#fff;border-radius:10px;margin-top:16px;padding:18px;line-height:1.7}.diff ins{background:#d6f5df;text-decoration:none}.diff del{background:#ffd9d9}.scan{text-align:center;max-width:900px;margin:0 auto}.scan video{background:#000;border-radius:12px;width:100%;max-height:60vh}.form-fields{border-radius:var(--radius);max-width:720px;box-shadow:var(--shadow);background:#fff;margin:0 auto;padding:24px}@media (max-width:900px){.workspace{grid-template-columns:1fr;min-height:0}.ws-main{padding:72px 16px 24px}.ws-side{border-left:0;border-top:1px solid var(--line);max-height:none;position:static}.add-more{width:48px;height:48px;font-size:28px;position:absolute;top:12px;right:16px}.topnav{display:none}.compare{grid-template-columns:1fr}.grid{padding:0 16px 32px}}
