:root{--bg: #f4f5f7;--panel: #ffffff;--border: #e3e5ea;--text: #1c2030;--muted: #6b7280;--accent: #dc2626;--accent-ink: #ffffff;--sel: #2563eb;--sel-soft: #dbeafe;--danger: #b91c1c;--workspace: #e6e8ec;--radius: 8px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #15171c;--panel: #1d2027;--border: #2d313b;--text: #e8eaf0;--muted: #9aa1ad;--sel-soft: #1e3a8a55;--workspace: #262a32;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;color:var(--text);background:var(--bg)}button,input,select,textarea{font:inherit;color:inherit}h1{font-size:22px;margin:0 0 6px}h2{font-size:16px;margin:0;display:flex;gap:8px;align-items:center}.muted{color:var(--muted)}.small{font-size:12px}.nowrap{white-space:nowrap}.row{display:flex;align-items:center}.row.gap{gap:8px}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.spacer{flex:1}.splash{height:100%;display:grid;place-items:center;color:var(--muted)}.splash.col{display:flex;flex-direction:column;justify-content:center;gap:12px}.btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--panel);cursor:pointer;white-space:nowrap}.btn:hover:not(:disabled){border-color:#c4c8d0}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover:not(:disabled){filter:brightness(1.08)}.btn.ghost{border-color:transparent;background:transparent;padding:0 8px}.btn.ghost:hover:not(:disabled){background:color-mix(in srgb,var(--text) 8%,transparent)}.btn.wide{width:100%;justify-content:center}.icon-btn{display:inline-grid;place-items:center;width:30px;height:30px;border:0;border-radius:6px;background:transparent;cursor:pointer;color:var(--text)}.icon-btn:hover{background:color-mix(in srgb,var(--text) 9%,transparent)}.icon-btn.danger:hover,.tool.danger:hover{color:var(--danger)}.link{border:0;background:none;color:var(--sel);cursor:pointer;padding:0;text-decoration:underline}.error{background:#fee2e2;color:#991b1b;border-radius:var(--radius);padding:8px 12px;margin:8px 0}.notice{background:var(--sel-soft);border-radius:var(--radius);padding:8px 12px;margin:8px 0}input[type=text],input[type=email],input[type=password],input:not([type]),select,input[type=number]{height:34px;border:1px solid var(--border);border-radius:var(--radius);padding:0 10px;background:var(--panel)}.auth{min-height:100%;display:grid;place-items:center;padding:16px}.auth-card{width:100%;max-width:360px;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:28px;display:flex;flex-direction:column;gap:12px}.auth-card label,.form label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.auth-card input,.form input{color:var(--text)}.brand{display:flex;align-items:center;gap:8px;font-weight:650}.brand.big{font-size:17px;margin-bottom:6px}.logo{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:7px;background:var(--accent);color:#fff}.form{display:flex;flex-direction:column;gap:10px}.page{min-height:100%}.topbar{position:sticky;top:0;z-index:20;height:52px;display:flex;align-items:center;gap:6px;padding:0 12px;background:var(--panel);border-bottom:1px solid var(--border)}.container{max-width:1100px;margin:0 auto;padding:24px 16px 48px}.gap{gap:12px}.usage{display:flex;align-items:center;gap:8px}.usage-bar{width:140px;height:6px;border-radius:3px;background:var(--border);overflow:hidden}.usage-bar span{display:block;height:100%;background:var(--sel)}.dropzone{margin-top:24px;border:2px dashed var(--border);border-radius:14px;padding:56px 16px;text-align:center;cursor:pointer;color:var(--muted)}.dropzone.over{border-color:var(--sel);background:var(--sel-soft);color:var(--text)}.dropzone.slim{padding:16px;margin:16px 0 0}.doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin:20px 0 12px}.doc-card{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden}.doc-card.sel{border-color:var(--sel);box-shadow:0 0 0 2px var(--sel-soft)}.doc-open{display:flex;flex-direction:column;gap:6px;width:100%;padding:22px 14px 12px;border:0;background:none;text-align:left;cursor:pointer}.doc-icon{color:var(--accent)}.doc-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:2.6em}.doc-check{position:absolute;top:10px;right:10px;width:16px;height:16px}.doc-actions{display:flex;justify-content:flex-end;gap:2px;padding:0 6px 6px}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;margin-top:16px}.form-inline{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.form-inline h2{width:100%;margin-bottom:4px}.table-wrap{overflow-x:auto;padding:0}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border)}th{font-size:12px;color:var(--muted);font-weight:600}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0007;z-index:100;display:grid;place-items:center;padding:16px}.modal{width:100%;max-width:420px;background:var(--panel);border-radius:14px;box-shadow:0 20px 50px #0004;max-height:90vh;overflow:auto}.modal.wide{max-width:640px}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.modal-body{padding:16px}.tabs{display:flex;gap:4px;margin-bottom:12px;border-bottom:1px solid var(--border)}.tabs button{border:0;background:none;padding:8px 12px;cursor:pointer;border-bottom:2px solid transparent;color:var(--muted)}.tabs button.on{border-color:var(--accent);color:var(--text);font-weight:600}.sig-canvas{width:100%;aspect-ratio:1000/320;background:#fff;border:1px dashed #bbb;border-radius:8px;touch-action:none;cursor:crosshair}.sig-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.sig-item{display:flex;align-items:center;gap:4px}.sig-pick{flex:1;height:70px;background:#fff;border:1px solid var(--border);border-radius:8px;cursor:pointer;padding:6px}.sig-pick img{max-width:100%;max-height:100%}.sig-pick:hover{border-color:var(--sel)}.sig-fonts{display:grid;gap:8px}.sig-font{background:#fff;border:1px solid var(--border);border-radius:8px;padding:10px 14px;font-size:30px;text-align:left;cursor:pointer}.sig-font.on{border-color:var(--sel);box-shadow:0 0 0 2px var(--sel-soft)}.swatch{width:24px;height:24px;border-radius:50%;border:2px solid var(--panel);outline:1px solid var(--border);cursor:pointer}.swatch.on{outline:2px solid var(--sel)}.editor{height:100%;display:flex;flex-direction:column;overflow:hidden}.doc-title{min-width:80px;max-width:360px;flex:0 1 360px;border-color:transparent!important;font-weight:600;background:transparent!important}.doc-title:hover,.doc-title:focus{border-color:var(--border)!important}.save-status{font-size:12px;color:var(--muted);white-space:nowrap}.save-status.error{color:var(--danger);cursor:pointer;text-decoration:underline}.zoom{display:flex;align-items:center}.zoom-val{min-width:56px;justify-content:center;font-variant-numeric:tabular-nums}.toolbar{display:flex;align-items:center;gap:12px;padding:6px 12px;background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;min-height:48px}.tools{display:flex;gap:2px;flex-wrap:wrap}.tool{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:7px;border:1px solid transparent;background:transparent;cursor:pointer;color:var(--text)}.tool:hover{background:color-mix(in srgb,var(--text) 8%,transparent)}.tool.on{background:var(--sel-soft);border-color:var(--sel);color:var(--sel)}.props{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-left:12px;border-left:1px solid var(--border);min-height:34px}.props:empty{display:none}.prop{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.prop input[type=color]{width:30px;height:30px;padding:0;border:1px solid var(--border);border-radius:6px;background:none;cursor:pointer}.prop input[type=range]{width:90px}.prop.num{width:64px}select.prop{height:32px;color:var(--text);font-size:13px}.workspace{flex:1;display:flex;min-height:0}.sidebar{width:170px;flex-shrink:0;border-right:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;min-height:0}.side-actions{display:flex;flex-wrap:wrap;gap:2px;padding:6px;border-bottom:1px solid var(--border)}.side-hint{padding:6px 10px}.thumbs{flex:1;overflow-y:auto;padding:6px 10px 20px;display:flex;flex-direction:column;align-items:center;gap:10px}.thumb{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px;border-radius:8px;cursor:pointer;border:2px solid transparent}.thumb:hover{background:color-mix(in srgb,var(--text) 5%,transparent)}.thumb.sel{border-color:var(--sel);background:var(--sel-soft)}.thumb.drop-before{box-shadow:0 -3px 0 var(--sel)}.thumb.drop-after{box-shadow:0 3px 0 var(--sel)}.thumb-canvas{background:#fff;box-shadow:0 1px 3px #0003;display:block}.thumb-label{font-size:11px;color:var(--muted)}.pages{flex:1;overflow:auto;background:var(--workspace);padding:24px;display:flex;flex-direction:column;align-items:safe center;gap:8px}.page-slot{display:flex;flex-direction:column;align-items:center;gap:4px}.page-num{font-size:11px;color:var(--muted);margin-bottom:10px}.page-wrap{position:relative;background:#fff;box-shadow:0 2px 8px #0002;flex-shrink:0}.page-canvas{position:absolute;top:0;right:0;bottom:0;left:0;display:block}.page-svg{position:absolute;top:0;right:0;bottom:0;left:0;touch-action:none;overflow:visible}.page-svg.tool-select .ann{cursor:move}.page-svg.tool-text,.page-svg.tool-image,.page-svg.tool-signature{cursor:text}.page-svg.tool-image,.page-svg.tool-signature{cursor:copy}.page-svg.tool-rect,.page-svg.tool-ellipse,.page-svg.tool-line,.page-svg.tool-arrow,.page-svg.tool-ink,.page-svg.tool-highlight{cursor:crosshair}.page-svg.tool-editText{cursor:default}.text-block{fill:#2563eb0f;stroke:#2563eb59;stroke-width:.5;cursor:text}.text-block:hover{fill:#2563eb29;stroke:#2563ebe6}.handle{cursor:nwse-resize}.field{position:absolute;margin:0;padding:0 3px;border:1px solid rgba(37,99,235,.35);background:#dbeafe8c;color:#000;border-radius:2px;font-family:Helvetica,Arial,sans-serif;resize:none;outline:none;height:auto}.field:focus{border-color:#2563eb;background:#dbeafed9}input.field[type=checkbox],input.field[type=radio]{accent-color:#1d4ed8;padding:0}select.field{padding:0;height:auto}.text-editor{position:absolute;z-index:5;margin:0;padding:0 2px;border:1px dashed #2563eb;outline:none;resize:none;overflow:hidden;white-space:pre}.hintbar{padding:6px 12px;font-size:12px;color:var(--muted);background:var(--panel);border-top:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.busy,.toast{position:fixed;left:50%;bottom:44px;transform:translate(-50%);background:#111827;color:#fff;padding:10px 16px;border-radius:10px;box-shadow:0 6px 20px #0004;z-index:50;max-width:calc(100% - 32px)}@media(max-width:800px){.hide-sm{display:none}.sidebar{position:absolute;top:100px;bottom:30px;left:0;z-index:15;box-shadow:4px 0 16px #0002}.pages{padding:12px}.props{border-left:0;padding-left:0}}
