:root{--bg: #f5f6f8;--panel: #ffffff;--panel-2: #fafbfc;--canvas-bg: #e8eaee;--border: #e3e6ea;--border-strong: #d0d5dc;--text: #1c2027;--text-2: #4b5360;--muted: #7a828f;--accent: #4f46e5;--accent-600: #4338ca;--accent-50: #eef2ff;--accent-100: #e0e7ff;--danger: #dc2626;--danger-50: #fef2f2;--success: #059669;--radius: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);--shadow: 0 1px 3px rgba(16, 24, 40, .08), 0 1px 2px rgba(16, 24, 40, .04);--shadow-lg: 0 12px 32px -8px rgba(16, 24, 40, .22), 0 4px 8px -4px rgba(16, 24, 40, .08);--page-shadow: 0 1px 2px rgba(0, 0, 0, .1), 0 4px 14px rgba(15, 23, 42, .1);--topbar-h: 56px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.45;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}kbd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;padding:1px 6px;border-radius:5px;background:var(--panel-2);border:1px solid var(--border);border-bottom-width:2px;color:var(--text-2);white-space:nowrap}.muted{color:var(--muted)}.small{font-size:12px}.center{text-align:center}.spacer,.grow{flex:1}.divider{width:1px;height:24px;background:var(--border);margin:0 6px}.panel-title{font-weight:600;font-size:13px;letter-spacing:.01em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 14px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--panel);font-weight:500;white-space:nowrap;transition:background .12s,border-color .12s,box-shadow .12s;box-shadow:var(--shadow-sm)}.btn:hover:not(:disabled){background:var(--panel-2);border-color:#c3c9d2}.btn:disabled{opacity:.55}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){background:var(--accent-600);border-color:var(--accent-600)}.btn.ghost{box-shadow:none}.btn.sm{height:28px;padding:0 10px;font-size:13px}.btn.lg{height:42px;padding:0 22px;font-size:15px}.btn.block{width:100%}.btn:focus-visible,.icon-btn:focus-visible,.op-item:focus-visible,.thumb:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:7px;border:1px solid transparent;background:transparent;color:var(--text-2);transition:background .12s,color .12s}.icon-btn:hover:not(:disabled){background:#eef0f3;color:var(--text)}.icon-btn.on{background:var(--accent-50);color:var(--accent)}.icon-btn:disabled{opacity:.35}.icon-btn.sm{width:28px;height:28px}.icon-btn.xs{width:24px;height:24px;border-radius:5px}.icon-btn.danger:hover:not(:disabled){background:var(--danger-50);color:var(--danger)}.link-btn{border:0;background:none;color:var(--accent);font-size:12px;font-weight:500;padding:2px 4px}.link-btn:hover{text-decoration:underline}.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:1000;overflow:hidden;background:var(--accent-100)}.progress:after{content:"";position:absolute;inset:0;width:40%;background:var(--accent);animation:progress 1.1s ease-in-out infinite}@keyframes progress{0%{transform:translate(-100%)}to{transform:translate(260%)}}.spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;opacity:.8}.spinner.sm{width:12px;height:12px}.spinner.lg{width:28px;height:28px;border-width:3px;color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.boot{height:100%;display:grid;place-items:center}.app{height:100%;display:flex;flex-direction:column}.workspace{flex:1;min-height:0;display:grid;grid-template-columns:176px minmax(0,1fr) 328px}.topbar{height:var(--topbar-h);flex:none;display:flex;align-items:center;gap:6px;padding:0 12px 0 16px;background:var(--panel);border-bottom:1px solid var(--border);z-index:20}.topbar.plain{background:transparent;border-bottom:0}.logo{display:flex;align-items:center;gap:9px;font-size:15px;letter-spacing:-.01em;white-space:nowrap}.logo b{font-weight:650;color:var(--accent)}.group{display:flex;align-items:center;gap:2px}.filename{display:flex;align-items:center;gap:10px;border:1px solid transparent;background:none;padding:5px 8px;border-radius:7px;min-width:0;max-width:420px}.filename:hover{background:#f1f3f5}.filename-text{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filename-input{height:32px;width:300px;padding:0 8px;border:1px solid var(--accent);border-radius:7px;outline:3px solid var(--accent-100);font-weight:600}.badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:#92400e;background:#fef3c7;border-radius:999px;padding:1px 8px;white-space:nowrap}.page-input{width:44px;height:30px;text-align:center;border:1px solid var(--border-strong);border-radius:6px;background:var(--panel)}.page-total{padding:0 6px 0 5px;min-width:34px;font-variant-numeric:tabular-nums}.zoom-select{height:30px;border:1px solid var(--border-strong);border-radius:6px;background:var(--panel);padding:0 6px;min-width:118px;font-variant-numeric:tabular-nums}.menu-wrap{position:relative}.dropdown,.context-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:240px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:5px;z-index:100}.context-menu{position:fixed;right:auto;top:auto;min-width:190px}.dropdown button,.context-menu button{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;padding:7px 10px;border-radius:6px;text-align:left}.dropdown button kbd{margin-left:auto}.dropdown button:hover:not(:disabled),.context-menu button:hover:not(:disabled){background:#f1f3f6}.dropdown button.danger,.context-menu button.danger{color:var(--danger)}.dropdown button:disabled,.context-menu button:disabled{opacity:.4}.menu-sep{height:1px;background:var(--border);margin:5px 0}.menu-caption{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:6px 10px 4px}.sidebar{display:flex;flex-direction:column;min-height:0;background:var(--panel);border-right:1px solid var(--border)}.sidebar-head{display:flex;align-items:center;gap:6px;padding:12px 10px 8px 14px}.selection-bar{display:flex;flex-direction:column;gap:2px;margin:0 8px 6px;padding:5px 4px 3px;background:var(--accent-50);border:1px solid var(--accent-100);border-radius:8px;color:var(--accent-600)}.selection-bar .icon-btn{color:var(--accent-600)}.sel-count{font-size:12px;font-weight:600;white-space:nowrap}.sel-top{display:flex;align-items:center;justify-content:space-between;padding:0 2px 0 6px}.sel-actions{display:flex;justify-content:space-between}.thumb-list{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0}.thumb-window{position:relative;overflow:clip}.thumb{position:absolute;left:0;right:0;margin:0 auto;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:5px;padding:7px 7px 5px;border-radius:9px;border:2px solid transparent;cursor:pointer;user-select:none;touch-action:none;outline:none}.thumb:hover{background:#f3f4f7}.thumb-img{position:relative;flex:none;background:#fff;box-shadow:0 0 0 1px #0f172a1a,0 1px 3px #0f172a1f;border-radius:2px;overflow:hidden;display:grid;place-items:center}.thumb-img img{width:100%;height:100%;object-fit:contain;display:block}.thumb-label{font-size:12px;height:16px;line-height:16px;flex:none;color:var(--muted);font-variant-numeric:tabular-nums;padding:0 7px;border-radius:999px}.thumb.current .thumb-label{background:var(--text);color:#fff}.thumb.selected{background:var(--accent-50);border-color:var(--accent)}.thumb.selected .thumb-label{color:var(--accent-600);font-weight:600}.thumb.selected.current .thumb-label{background:var(--accent);color:#fff}.thumb.drag-overlay{position:static;cursor:grabbing;background:transparent}.thumb.drag-overlay .thumb-img{box-shadow:var(--shadow-lg);transform:rotate(-2deg)}.drag-count{position:absolute;top:6px;right:6px;background:var(--accent);color:#fff;font-size:12px;font-weight:700;min-width:22px;height:22px;border-radius:11px;display:grid;place-items:center;padding:0 6px}.sidebar-foot{font-size:11px;padding:8px 12px;border-top:1px solid var(--border);text-align:center}.viewer-wrap{position:relative;min-width:0;min-height:0;display:flex}.viewer{flex:1;overflow:auto;background:var(--canvas-bg);min-width:0}.viewer-pages{position:relative;min-width:100%;box-sizing:border-box;overflow:clip}.page-slot{position:absolute;left:0;width:100%;display:flex;flex-direction:column;align-items:center;gap:8px}.page-frame{position:relative;background:#fff center / 100% 100% no-repeat;box-shadow:var(--page-shadow);flex:none}.page-canvas-holder,.page-canvas-holder canvas{position:absolute;inset:0;width:100%;height:100%}.page-overlay{position:absolute;inset:0;overflow:hidden;overflow:clip}.overlay-layer{position:absolute;inset:0;pointer-events:none}.overlay-layer>*{pointer-events:auto}.page-label{font-size:12px;height:16px;line-height:16px;flex:none;white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}.page-slot.active .page-label{color:var(--text-2);font-weight:500}.page-error,.viewer-error{position:absolute;inset:auto 12px 12px;background:var(--danger-50);color:var(--danger);padding:8px 10px;border-radius:6px;font-size:12px}.viewer-error{width:fit-content;margin:0 auto;overflow-wrap:anywhere}.center-col:has(.commit-bar) .viewer-error{bottom:112px}.busy-pill{position:absolute;top:14px;left:50%;transform:translate(-50%);width:max-content;display:flex;align-items:center;gap:9px;padding:8px 16px;border-radius:999px;background:#1c2027e6;color:#fff;box-shadow:var(--shadow-lg);font-weight:500;font-size:13px;z-index:5;animation:fadein .15s ease}@keyframes fadein{0%{opacity:0}}.crop-layer{position:absolute;inset:0;pointer-events:none}.crop-layer.drawing{pointer-events:auto;cursor:crosshair;background:#4f46e50a}.crop-shade{position:absolute;background:#0f172a61;pointer-events:none}.crop-rect{position:absolute;border:1.5px dashed #fff;outline:1.5px solid var(--accent);pointer-events:none}.crop-size{position:absolute;left:0;top:0;transform:translateY(calc(-100% - 5px));background:var(--accent);color:#fff;font-size:11px;font-weight:600;padding:1px 7px;border-radius:4px;white-space:nowrap}.crop-hint{position:absolute;left:50%;top:16px;transform:translate(-50%);background:var(--accent);color:#fff;font-size:12px;font-weight:600;padding:5px 12px;border-radius:999px;box-shadow:var(--shadow);pointer-events:none}.rightpanel{display:flex;flex-direction:column;min-height:0;background:var(--panel);border-left:1px solid var(--border)}.rightpanel-tools{flex:1;min-height:0;display:flex;flex-direction:column}.ops-panel{display:flex;flex-direction:column;min-height:0;flex:1}.search{display:flex;align-items:center;gap:8px;margin:12px 12px 8px;padding:0 10px;height:34px;border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--muted);background:var(--panel)}.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-100)}.search input{border:0;outline:0;flex:1;min-width:0;background:transparent;color:var(--text)}.categories{display:flex;gap:4px;padding:0 12px 8px;flex-wrap:wrap}.cat{height:26px;padding:0 10px;border-radius:999px;border:1px solid var(--border);background:var(--panel);font-size:12px;font-weight:500;color:var(--text-2)}.cat:hover{border-color:var(--border-strong)}.cat.active{background:var(--text);border-color:var(--text);color:#fff}.op-list{flex:1;overflow-y:auto;padding:0 8px 12px}.op-group+.op-group{margin-top:6px}.op-group-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:10px 8px 4px}.op-item{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:1px solid transparent;background:none;padding:8px;border-radius:9px;transition:background .1s}.op-item:hover{background:#f4f5f8}.op-item:hover .op-chevron{opacity:1;transform:translate(0)}.op-icon{flex:none;width:32px;height:32px;border-radius:8px;display:grid;place-items:center;background:var(--accent-50);color:var(--accent)}.op-icon.lg{width:36px;height:36px}.op-text{display:flex;flex-direction:column;min-width:0;flex:1}.op-label{font-weight:550;font-size:13.5px}.op-desc{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.op-chevron{color:var(--muted);opacity:0;transform:translate(-4px);transition:all .12s}.empty{padding:24px 12px;text-align:center}.op-form{display:flex;flex-direction:column;min-height:0;flex:1;outline:none}.op-form-head{display:flex;align-items:flex-start;gap:10px;padding:12px 14px 12px 8px;border-bottom:1px solid var(--border)}.op-form-title{font-weight:650;font-size:15px}.op-form-desc{font-size:12.5px;color:var(--muted)}.op-form-body{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:16px}.op-form-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border);background:var(--panel-2)}.op-form-actions .btn.primary{min-width:92px}.field{display:flex;flex-direction:column;gap:6px}.field>label{font-size:12.5px;font-weight:600;color:var(--text-2)}.req{color:var(--danger);margin-left:3px}.field input:not([type=checkbox]):not([type=color]),.field select,.field textarea,.splice-row select,.splice-row input{height:34px;border:1px solid var(--border-strong);border-radius:7px;padding:0 10px;background:var(--panel);outline:none;width:100%;min-width:0;transition:border-color .12s,box-shadow .12s}.field textarea{height:auto;padding:8px 10px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.splice-row select:focus,.splice-row input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-100)}.field.invalid input,.field.invalid select{border-color:var(--danger)}.field.invalid input:focus{box-shadow:0 0 0 3px #fee2e2}.field-error{font-size:12px;color:var(--danger)}.field-help{font-size:12px;color:var(--muted)}.chips{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.chip{height:24px;padding:0 9px;border-radius:999px;font-size:12px;border:1px solid var(--border);background:var(--panel-2);color:var(--text-2)}.chip:hover{border-color:var(--accent);color:var(--accent)}.hint-inline{margin-left:auto;font-size:12px;color:var(--success);font-weight:500}.rect-field{display:flex;gap:6px}.color-field{display:flex;gap:8px;align-items:center}.color-field input[type=color]{width:40px;height:34px;padding:2px;border:1px solid var(--border-strong);border-radius:7px;background:var(--panel)}.check{display:flex;gap:8px;align-items:center;font-weight:500}.file-field{border:1.5px dashed var(--border-strong);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:6px;transition:all .12s}.file-field.over{border-color:var(--accent);background:var(--accent-50)}.file-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.file-list li,.splice-row{display:flex;align-items:center;gap:6px;padding:6px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px}.file-index{flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;background:var(--accent-100);color:var(--accent-600)}.file-meta{display:flex;flex-direction:column;min-width:0;flex:1;font-size:12px}.file-name{font-weight:550;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.splice-field{display:flex;flex-direction:column;gap:5px;align-items:flex-start}.splice-row{width:100%}.splice-row select{flex:1 1 auto;height:30px!important;font-size:12.5px;padding:0 4px 0 8px!important}.splice-row input.splice-pages{flex:0 0 64px;height:30px!important;padding:0 8px!important}.history{flex:none;border-top:1px solid var(--border);display:flex;flex-direction:column;max-height:42%;background:var(--panel-2)}.history-head{display:flex;align-items:center;padding:6px 8px 6px 6px;gap:2px}.history-toggle{display:flex;align-items:center;gap:6px;border:0;background:none;padding:4px 6px;border-radius:6px}.history-toggle:hover{background:#eef0f3}.history-list{list-style:none;margin:0;padding:0 8px 10px;overflow-y:auto}.history-item{display:flex;gap:10px;width:100%;text-align:left;border:0;background:none;padding:6px 8px;border-radius:8px;position:relative}.history-item:hover:not(:disabled){background:#eef0f4}.history-dot{flex:none;width:9px;height:9px;border-radius:50%;margin-top:5px;background:var(--border-strong);box-shadow:0 0 0 3px var(--panel-2);position:relative;z-index:1}li:not(:last-child)>.history-item:before{content:"";position:absolute;left:12px;top:16px;bottom:-8px;width:1px;background:var(--border)}.history-item.current .history-dot{background:var(--accent);box-shadow:0 0 0 3px var(--accent-100)}.history-item.current{background:var(--panel);box-shadow:var(--shadow-sm);outline:1px solid var(--border)}.history-item.future{opacity:.5}.history-item.future .history-label{text-decoration:line-through;text-decoration-color:#00000040}.history-text{display:flex;flex-direction:column;min-width:0}.history-label{font-weight:600;font-size:12.5px;display:flex;align-items:center;gap:5px}.history-summary{font-size:12px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.history-meta{font-size:11px;color:var(--muted)}.inline-icon{color:#b45309}.welcome{height:100%;overflow:auto;background:radial-gradient(1200px 500px at 50% -10%,#e9ebff 0%,transparent 70%),var(--bg)}.welcome-main{max-width:760px;margin:0 auto;padding:7vh 24px 48px}.dropzone{background:var(--panel);border:2px dashed #c9cfe0;border-radius:20px;padding:64px 32px 56px;text-align:center;cursor:pointer;box-shadow:var(--shadow);transition:all .15s}.dropzone:hover,.dropzone.over{border-color:var(--accent);box-shadow:0 0 0 6px var(--accent-50),var(--shadow)}.dropzone.over{background:#fbfbff}.dropzone-icon{width:64px;height:64px;margin:0 auto 18px;border-radius:18px;display:grid;place-items:center;background:var(--accent-50);color:var(--accent)}.dropzone h1{font-size:22px;letter-spacing:-.02em;margin:0 0 6px}.dropzone p{margin:0 0 24px}.recent{margin-top:32px}.recent h2{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--text-2);font-weight:600;margin:0 0 10px 4px}.recent ul{list-style:none;margin:0;padding:0;background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden}.recent li{display:flex;align-items:center}.recent li>button:first-child{min-width:0}.recent li+li{border-top:1px solid var(--border)}.recent button{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;padding:12px 14px;text-align:left;color:var(--text-2)}.recent li:hover{background:var(--panel-2)}.recent-name{flex:1;font-weight:550;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drop-overlay{position:fixed;inset:0;z-index:400;background:#1118278c;backdrop-filter:blur(2px);display:flex;gap:24px;padding:10vh 10vw;animation:fadein .1s ease}.drop-target{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:2px dashed rgba(255,255,255,.55);border-radius:20px;color:#fff;text-align:center;padding:24px;transition:all .12s}.drop-target strong{font-size:18px}.drop-target span{opacity:.8}.drop-target.hover{background:#4f46e58c;border-color:#fff;border-style:solid}.toasts{position:fixed;left:50%;transform:translate(-50%);bottom:22px;z-index:600;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toasts>*{pointer-events:none}.toasts button{pointer-events:auto}.toast{display:flex;align-items:center;gap:10px;min-width:280px;max-width:460px;padding:10px 10px 10px 14px;border-radius:10px;background:#1f2430;color:#f3f4f6;box-shadow:var(--shadow-lg);animation:toastin .18s ease;font-size:13px}.toast.success svg:first-child{color:#34d399}.toast.error{background:#fff;color:var(--text);border:1px solid #fecaca;box-shadow:var(--shadow-lg),inset 3px 0 0 var(--danger)}.toast.error svg:first-child{color:var(--danger)}.toast.info svg:first-child{color:#93c5fd}.toast-msg,.modal-foot .grow{flex:1;min-width:0;overflow-wrap:anywhere}.toast-action{border:0;background:#ffffff1f;color:inherit;font-weight:600;padding:4px 10px;border-radius:6px;font-size:12.5px}.toast.error .toast-action{background:var(--danger-50);color:var(--danger)}.toast-action:hover{background:#fff3}.toast-close{border:0;background:none;color:inherit;opacity:.55;display:grid;place-items:center;padding:3px}.toast-close:hover{opacity:1}@keyframes toastin{0%{opacity:0;transform:translateY(8px) scale(.98)}}.modal-backdrop{position:fixed;inset:0;z-index:500;background:#11182773;display:grid;grid-template-columns:minmax(0,1fr);place-items:center;padding:24px;animation:fadein .12s ease}.modal{width:min(440px,100%);max-height:86vh;display:flex;flex-direction:column;background:var(--panel);border-radius:14px;box-shadow:var(--shadow-lg);animation:toastin .16s ease;outline:none;overflow-wrap:break-word}.modal.wide{width:min(760px,100%)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 6px 20px}.modal-head h3{margin:0;font-size:16px;display:flex;align-items:center;gap:8px}.modal-body{padding:4px 20px 16px;overflow:auto}.modal-body>p:first-child{margin-top:0}.modal-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px 12px 20px;border-top:1px solid var(--border);background:var(--panel-2);border-radius:0 0 14px 14px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.text-preview{margin:0;max-height:52vh;overflow:auto;background:#f7f8fa;border:1px solid var(--border);border-radius:8px;padding:12px 14px;font:12.5px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;word-break:break-word}.table-wrap{max-height:52vh;overflow:auto;border:1px solid var(--border);border-radius:8px}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{text-align:left;padding:7px 12px;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums}.data-table thead th{position:sticky;top:0;background:var(--panel-2);font-size:12px;color:var(--text-2)}.data-table.kv td{overflow-wrap:anywhere}.data-table.kv th{width:38%;color:var(--text-2);font-weight:500;background:var(--panel-2)}.data-table tr:last-child td,.data-table tr:last-child th{border-bottom:0}.shortcuts{width:100%;border-collapse:collapse}.shortcuts td{padding:6px 0;border-bottom:1px solid var(--border)}.shortcuts td:last-child{color:var(--text-2);padding-left:12px}@media (max-width: 1100px){.workspace{grid-template-columns:150px minmax(0,1fr) 300px}.filename .small{display:none}}.narrow-only,.drawer-scrim{display:none}@media (max-width: 900px){.narrow-only{display:inline-flex}.workspace{grid-template-columns:minmax(0,1fr);position:relative}.workspace>.sidebar,.workspace>.rightpanel{display:none;position:absolute;top:0;bottom:0;z-index:45;box-shadow:var(--shadow-lg)}.workspace>.sidebar{left:0;width:190px}.workspace>.rightpanel{right:0;width:min(340px,92vw)}.app.drawer-pages .workspace>.sidebar,.app.drawer-tools .workspace>.rightpanel{display:flex}.drawer-scrim{display:block;position:absolute;inset:0;z-index:44;background:#0f121e40}.topbar{gap:4px;padding:0 8px;z-index:46}.topbar .divider,.topbar .fit-btn,.filename .small,.filename .badge,.topbar .btn-label{display:none}.filename{max-width:180px}}@media (max-width: 600px){.topbar .logo,.topbar .filename,.topbar .zoom-group,.page-total{display:none}.page-input{width:38px}.options-bar{padding:4px 8px;gap:8px}.commit-bar{left:8px!important;right:8px!important;transform:none!important;flex-wrap:wrap;justify-content:center}}.recent-delete{opacity:0}.recent .recent-delete{flex:none;padding:0;margin-right:10px}.recent li:hover .recent-delete,.recent-delete:focus-visible{opacity:1}.btn.xs{height:24px;padding:0 8px;font-size:12px;gap:4px}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger:hover:not(:disabled){background:#b91c1c}.right{text-align:right}.confirm-msg{line-height:1.55;color:var(--text-2)}.confirm-check{align-items:flex-start;margin:4px 0 12px;line-height:1.4}.center-col{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0}.center-col>.viewer-wrap{flex:1}.editor-toolbar{display:flex;flex-direction:column;background:var(--panel);border-bottom:1px solid var(--border);z-index:3}.tool-strip{display:flex;align-items:center;gap:2px;padding:5px 10px;overflow-x:auto;scrollbar-width:none}.tool-group{display:flex;gap:1px;padding:0 6px;border-right:1px solid var(--border)}.tool-group:last-child{border-right:0}.tool-btn{width:34px;height:32px;display:grid;place-items:center;border:0;border-radius:7px;background:transparent;color:var(--text-2);cursor:pointer;transition:background .12s,color .12s}.tool-btn:hover{background:#f1f3f6;color:var(--text)}.tool-btn.on{background:var(--accent-50);color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent-100)}.tool-btn.danger.on{background:var(--danger-50);color:var(--danger);box-shadow:inset 0 0 0 1.5px #fecaca}.options-bar{display:flex;align-items:center;gap:14px;min-height:40px;padding:4px 16px;border-top:1px solid var(--border);background:var(--panel-2);overflow-x:auto;scrollbar-width:thin;white-space:nowrap}.options-title{font-weight:600;font-size:12.5px;color:var(--text);min-width:86px}.options-hint{font-size:12px}.opt{display:flex;align-items:center;gap:7px}.opt-label{font-size:11.5px;color:var(--muted);font-weight:500}.opt-select{height:28px;border:1px solid var(--border-strong);border-radius:6px;background:#fff;padding:0 6px;font:inherit;font-size:12.5px}.opt-select.font{width:150px}.seg{display:flex;gap:1px}.hint{font-size:12px}.redact-hint{color:var(--danger)}.swatches{display:flex;align-items:center;gap:4px}.swatch{width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.15);cursor:pointer;padding:0;display:grid;place-items:center;position:relative}.swatch.on{box-shadow:0 0 0 2px #fff,0 0 0 3.5px var(--accent)}.swatch.none{background:#fff;color:var(--muted)}.swatch.custom{background:conic-gradient(#f43f5e,#f59e0b,#84cc16,#06b6d4,#6366f1,#d946ef,#f43f5e);color:#fff}.swatch.custom input{position:absolute;inset:0;opacity:0;cursor:pointer}.sig-chooser{display:flex;align-items:center;gap:6px}.sig-chip{width:84px;height:30px;border:1px solid var(--border-strong);border-radius:6px;background:#fff;padding:3px 6px;cursor:pointer}.sig-chip.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-100)}.overlay-layer>.editor-layer,.overlay-layer>.form-layer{pointer-events:none}.editor-layer,.form-layer{position:absolute;inset:0}.editor-capture{position:absolute;inset:0;pointer-events:auto;touch-action:none}.cursor-text,.cursor-highlight,.cursor-underline,.cursor-strikeout{cursor:text}.cursor-ink{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%231f2937' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.17 6.81a1 1 0 0 0-3.98-3.98L3.84 16.17a2 2 0 0 0-.5.83l-1.32 4.35a.5.5 0 0 0 .62.62l4.35-1.32a2 2 0 0 0 .83-.5z'/%3E%3C/svg%3E") 2 20,crosshair}.cursor-rect,.cursor-ellipse,.cursor-line,.cursor-arrow,.cursor-whiteout,.cursor-redact,.cursor-field,.cursor-sigbox{cursor:crosshair}.cursor-note,.cursor-image,.cursor-date{cursor:copy}.cursor-signature,.cursor-initials{cursor:none}.editor-svg{position:absolute;inset:0;overflow:visible;pointer-events:none}.editor-svg .pending-vector{pointer-events:none}.tool-select .editor-svg .pending-vector,.tool-select .editor-svg .pending-vector .hit{pointer-events:visiblePainted;cursor:move}.tool-select .editor-svg .pending-vector rect.hit{pointer-events:all}.draft-rect{fill:#4f46e514;stroke:var(--accent);stroke-width:1.5;stroke-dasharray:5 3}.item-box{pointer-events:none}.item-box.pending{outline:1px dashed rgba(79,70,229,.45);outline-offset:1px}.pending-boxed.interactive .item-box{pointer-events:auto;cursor:move}.item-box.ghost{opacity:.72;filter:drop-shadow(0 2px 6px rgba(31,42,107,.25));pointer-events:none!important}.item-box.moving,.moving-img{opacity:.88;pointer-events:none}.orig-outline{outline:1.5px dashed rgba(100,116,139,.8);pointer-events:none}.item-text{user-select:none}.note-icon{width:100%;height:100%;border-radius:4px;display:grid;place-items:center;color:#000000a6;box-shadow:0 1px 3px #0000004d}.annot-hit{pointer-events:auto;cursor:pointer;border-radius:2px}.annot-hit:hover{outline:1.5px solid rgba(79,70,229,.55);outline-offset:1px;background:#4f46e50d}.tframe{pointer-events:none;z-index:2}.tframe-body{position:absolute;inset:-1px;border:1.5px solid var(--accent);border-radius:1px;pointer-events:auto}.tframe.pending .tframe-body{border-style:solid}.tframe-body.movable{cursor:move}.tframe-handle{position:absolute;width:10px;height:10px;background:#fff;border:1.5px solid var(--accent);border-radius:2.5px;pointer-events:auto;box-shadow:0 1px 2px #0003}.tframe-handle.h-nw{left:-6px;top:-6px}.tframe-handle.h-ne{right:-6px;top:-6px}.tframe-handle.h-se{right:-6px;bottom:-6px}.tframe-handle.h-sw{left:-6px;bottom:-6px}.tframe-handle.h-n{left:calc(50% - 5px);top:-6px}.tframe-handle.h-s{left:calc(50% - 5px);bottom:-6px}.tframe-handle.h-e{right:-6px;top:calc(50% - 5px)}.tframe-handle.h-w{left:-6px;top:calc(50% - 5px)}.tframe-stem{position:absolute;left:50%;top:-22px;height:16px;border-left:1.5px solid var(--accent);pointer-events:none}.tframe-rotate{position:absolute;left:calc(50% - 10px);top:-40px;width:20px;height:20px;border-radius:50%;background:#fff;border:1.5px solid var(--accent);color:var(--accent);display:grid;place-items:center;cursor:grab;pointer-events:auto;box-shadow:0 1px 3px #0003}.tframe-rotate:active{cursor:grabbing}.line-handle{position:absolute;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid var(--accent);pointer-events:auto;cursor:crosshair;z-index:2}.line-sel{stroke:var(--accent);stroke-width:1;stroke-dasharray:4 3}.markup-sel{outline:1.5px dashed var(--accent);pointer-events:none}.item-toolbar{position:absolute;transform:translate(-50%,-100%);display:flex;align-items:center;gap:2px;padding:3px;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-lg);pointer-events:auto;z-index:4;white-space:nowrap}.item-toolbar.below{transform:translate(-50%)}.item-toolbar-label{font-size:11.5px;color:var(--muted);padding:0 6px}.text-editor-wrap{pointer-events:auto;z-index:3}.text-editor{display:block;outline:2px solid var(--accent);outline-offset:1px;border-radius:1px;caret-color:var(--accent)}.text-editor.opaque{box-shadow:0 0 0 1px #fff}.note-popup{position:absolute;width:230px;background:#fffbea;border:1px solid #f3dd7a;border-radius:10px;box-shadow:var(--shadow-lg);padding:8px;pointer-events:auto;z-index:5}.note-popup-head{display:flex;align-items:center;gap:6px;font-weight:600;font-size:12px;color:#6b5800;margin-bottom:6px}.note-popup textarea{width:100%;border:1px solid #efd97a;border-radius:6px;padding:6px 8px;font:inherit;font-size:13px;resize:vertical;background:#fff;box-sizing:border-box}.note-popup-actions{display:flex;align-items:center;margin-top:6px}.snap-target{position:absolute;border:2px solid #16a34a;background:#16a34a14;border-radius:3px;pointer-events:none}.sig-field-hint{position:absolute;border:1.5px dashed #ca8a04;background:#facc151f;border-radius:3px;pointer-events:none}.sig-field-hint span{position:absolute;left:-2px;top:-20px;background:#facc15;color:#422006;font-size:11px;font-weight:700;padding:1px 7px;border-radius:4px 4px 4px 0}.draft-field{position:absolute;border:1.5px dashed var(--accent);background:#4f46e514;pointer-events:none}.field-creator{position:absolute;width:240px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:10px;pointer-events:auto;z-index:5;font-size:12.5px}.fc-row{display:grid;grid-template-columns:62px 1fr;align-items:center;gap:6px;margin-bottom:7px}.fc-row label{color:var(--muted)}.fc-row input,.fc-row select{height:28px;border:1px solid var(--border-strong);border-radius:6px;padding:0 7px;font:inherit}.fc-row.checks{display:flex;gap:12px}.fc-row.checks label{display:flex;gap:4px;align-items:center;color:var(--text-2)}.fc-actions{display:flex;justify-content:flex-end;gap:6px}.form-field{pointer-events:auto;box-sizing:border-box;border:1px solid rgba(79,70,229,.35);background:#eef2ff;border-radius:2px;padding:0 3px;font-family:Helvetica,Arial,sans-serif;color:#111;outline:none;margin:0}.form-field-masked{pointer-events:auto;box-sizing:border-box;border:1.5px dashed #d97706;background:transparent;padding:0;cursor:text}.form-field-masked-badge{position:absolute;left:-1px;top:100%;white-space:nowrap;font:600 10px/1.4 Helvetica,Arial,sans-serif;color:#fff;background:#d97706;padding:0 4px;border-radius:2px 2px 0 0;pointer-events:none}.form-field:hover{border-color:var(--accent)}.form-field:focus{border-color:var(--accent);box-shadow:0 0 0 2px #4f46e540;background:#fff}.form-field.changed{border-color:#16a34a;background:#f0fdf4}.form-field.required{border-color:#dc262680}.form-field.readonly{background:#f1f5f9e6;cursor:not-allowed}textarea.form-field{resize:none;padding:2px 3px;line-height:1.2}.form-check,.form-radio{display:grid;place-items:center;padding:0;cursor:pointer;color:#111}.form-radio{border-radius:50%}.form-radio .dot{width:50%;height:50%;border-radius:50%;background:#111}.form-list{padding:0}.form-layer.inactive .form-field,.form-layer.inactive .form-sig{pointer-events:none;opacity:.55}.form-sig{pointer-events:auto;display:flex;align-items:stretch;gap:2px;border:1.5px dashed #ca8a04;background:#fef9c3d9;border-radius:3px;padding:2px;box-sizing:border-box}.form-sig .sig-tag{flex:1;border:0;border-radius:3px;background:#facc15;color:#422006;font-weight:700;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px}.form-sig .sig-tag:hover{background:#fbbf24}.form-sig .sig-digital{border:0;border-radius:3px;background:#fffc;color:#713f12;font-size:10.5px;font-weight:600;cursor:pointer;padding:0 6px}.form-sig.signed{border:0;background:transparent;color:#166534;font-weight:600;font-size:11px;cursor:pointer;align-items:flex-start;justify-content:flex-end}.form-sig.signed span{display:flex;gap:4px;align-items:center;background:#dcfce7;padding:1px 6px;border-radius:4px}.commit-bar{position:absolute;left:50%;bottom:18px;transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:7px 8px 7px 16px;background:#1c2027;color:#fff;border-radius:12px;box-shadow:0 10px 30px -6px #00000073;z-index:20;white-space:nowrap;animation:toastin .16s ease}.commit-count{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13px}.pulse{width:8px;height:8px;border-radius:50%;background:#fbbf24;box-shadow:0 0 #fbbf2499;animation:pulse 1.8s infinite}@keyframes pulse{70%{box-shadow:0 0 0 7px #fbbf2400}to{box-shadow:0 0 #fbbf2400}}.commit-bar .btn.ghost{color:#e5e7eb;background:transparent;border-color:#ffffff2e}.commit-bar .btn.ghost:hover:not(:disabled){background:#ffffff14}.commit-bar .seg-tabs{background:#ffffff14}.commit-bar .seg-tabs button{color:#cbd5e1}.commit-bar .seg-tabs button.on{background:#fff;color:#111827}.redact-warn{font-size:12px;color:#fca5a5}.signed-banner{display:flex;align-items:center;justify-content:center;gap:8px;padding:7px 16px;background:#ecfdf5;color:#065f46;border-bottom:1px solid #a7f3d0;font-size:12.5px}.signed-banner.bad{background:#fef2f2;color:#991b1b;border-color:#fecaca}.seg-tabs{display:inline-flex;background:#eef0f4;border-radius:8px;padding:2px;gap:2px}.seg-tabs button{border:0;background:transparent;padding:5px 12px;border-radius:6px;font:inherit;font-size:12.5px;font-weight:500;color:var(--text-2);cursor:pointer}.seg-tabs.sm button{padding:4px 9px;font-size:12px}.seg-tabs button.on{background:#fff;color:var(--text);box-shadow:var(--shadow-sm)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin:12px 0 14px}.tabs button{border:0;background:transparent;padding:8px 12px;font:inherit;font-weight:500;color:var(--text-2);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;display:flex;align-items:center;gap:6px}.tabs button.on{color:var(--accent);border-bottom-color:var(--accent)}.sig-modal .sig-top{display:flex;align-items:center}.ink-colors{display:flex;gap:8px}.ink-colors .swatch{width:22px;height:22px}.draw-pad{position:relative;width:560px;max-width:100%;margin:0 auto;background:#fff;border:1px solid var(--border-strong);border-radius:10px;box-shadow:inset 0 1px 2px #0000000a;overflow:hidden}.draw-pad canvas{display:block;touch-action:none;cursor:crosshair;position:relative;z-index:1}.pad-baseline{position:absolute;left:36px;right:36px;bottom:46px;border-bottom:1.5px solid #cbd5e1}.pad-baseline:before{content:"×";position:absolute;left:-20px;bottom:-4px;color:#94a3b8;font-size:18px}.pad-hint{position:absolute;inset:0;display:grid;place-items:center;color:#94a3b8;font-size:15px;pointer-events:none}.pad-actions{display:flex;align-items:center;gap:6px;margin-top:8px}.type-name{width:100%;height:40px;border:1px solid var(--border-strong);border-radius:8px;padding:0 12px;font:inherit;font-size:15px;box-sizing:border-box;margin-bottom:10px}.font-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;max-height:300px;overflow:auto}.font-card{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;cursor:pointer;text-align:left}.font-card span{font-size:30px;line-height:1.3;white-space:nowrap;overflow:hidden;max-width:100%}.font-card small{color:var(--muted);font-size:11px}.font-card.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-100)}.upload-zone{display:flex;flex-direction:column;align-items:center;gap:10px}.upload-drop{width:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:6px;padding:34px;border:1.5px dashed var(--border-strong);border-radius:12px;cursor:pointer;color:var(--text-2)}.upload-drop:hover{border-color:var(--accent);background:var(--accent-50)}.upload-preview{width:100%;height:160px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--border)}.upload-preview img{max-width:90%;max-height:140px}.checker{background:repeating-conic-gradient(#f1f5f9 0% 25%,#fff 0% 50%) 50% / 16px 16px}.sig-library{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.sig-card{position:relative}.sig-card-main{width:100%;height:84px;padding:10px 16px;border:1px solid var(--border);border-radius:10px;background:#fff;cursor:pointer}.sig-card-main:hover{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-100)}.sig-card-del{position:absolute;right:4px;top:4px;opacity:0}.sig-card:hover .sig-card-del{opacity:1}.right-tabs{display:flex;border-bottom:1px solid var(--border);padding:0 6px}.right-tabs button{flex:1;border:0;background:transparent;padding:10px 2px 9px;font:inherit;font-size:12px;font-weight:500;color:var(--text-2);cursor:pointer;border-bottom:2px solid transparent;display:flex;align-items:center;justify-content:center;gap:4px}.right-tabs button.on{color:var(--accent);border-bottom-color:var(--accent)}.right-tabs .count{font-size:10.5px;background:#eef0f4;color:var(--text-2);border-radius:999px;padding:0 5px;min-width:16px}.right-tabs .count.ok{background:#dcfce7;color:#166534}.right-tab-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}.side-panel{display:flex;flex-direction:column;min-height:0;flex:1}.side-head{display:flex;align-items:baseline;justify-content:space-between;padding:12px 14px 6px}.side-body{overflow:auto;padding:4px 12px 16px;display:flex;flex-direction:column;gap:8px}.empty-note{color:var(--muted);font-size:12.5px;line-height:1.5;padding:14px;border:1px dashed var(--border-strong);border-radius:10px;text-align:center}.ann-group-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:6px 2px 4px}.ann-row,.field-row{display:flex;align-items:center;gap:8px;width:100%;border:1px solid transparent;background:transparent;border-radius:8px;padding:6px 8px;font:inherit;text-align:left;cursor:pointer;color:var(--text)}.ann-row:hover,.field-row:hover{background:#f5f6f8}.ann-row.on{background:var(--accent-50);border-color:var(--accent-100)}.ann-row.pending{border-style:dashed;border-color:#fcd34d}.ann-main{flex:1;display:flex;align-items:center;gap:8px;border:0;background:transparent;font:inherit;text-align:left;cursor:pointer;min-width:0;padding:0;color:inherit}.ann-text{display:flex;flex-direction:column;min-width:0;flex:1;font-size:12.5px}.ann-text small{color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field-row .ok{color:var(--success)}.field-row.changed{background:#f0fdf4}.form-progress .bar{height:6px;border-radius:99px;background:#eef0f4;overflow:hidden;margin-bottom:4px}.form-progress .bar>div{height:100%;background:var(--success);transition:width .2s}.form-actions{margin-top:8px}.sig-verify{border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:12.5px}.sig-verify.ok{border-color:#a7f3d0;background:#f0fdf4}.sig-verify.warn{border-color:#fde68a;background:#fffbeb}.sig-verify.bad{border-color:#fecaca;background:#fef2f2}.sig-verify-head{display:flex;align-items:center;gap:6px}.sig-verify.ok .sig-verify-head{color:#047857}.sig-verify.warn .sig-verify-head{color:#b45309}.sig-verify.bad .sig-verify-head{color:#b91c1c}.sig-verify-who{font-weight:600;margin:4px 0 2px}.sig-verify-summary{color:var(--text-2);line-height:1.45}.sig-facts{display:grid;grid-template-columns:76px 1fr;gap:2px 8px;margin:8px 0 0;font-size:11.5px}.sig-facts dt{color:var(--muted)}.sig-facts dd{margin:0;display:flex;align-items:center;gap:3px;flex-wrap:wrap}.dsign section{margin-top:14px}.dsign h4{margin:0 0 8px;font-size:13px}.dsign-warn{display:flex;gap:8px;align-items:flex-start;background:#fffbeb;border:1px solid #fde68a;color:#78350f;border-radius:10px;padding:10px 12px;font-size:12.5px;line-height:1.45}.cert-list{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.cert-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;cursor:pointer}.cert-item.on{border-color:var(--accent);background:var(--accent-50)}.cert-main{display:flex;flex-direction:column;flex:1;min-width:0}.cert-form{border:1px solid var(--border);border-radius:10px;padding:12px;margin-top:6px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin-top:10px}.form-grid label,.dsign-meta label,.pw-row{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-2);font-weight:500}.form-grid input,.dsign-meta input,.pw-row input,.dsign-target select{height:32px;border:1px solid var(--border-strong);border-radius:7px;padding:0 9px;font:inherit;font-size:13px}.form-grid input[type=file]{padding:4px}.form-grid input.invalid{border-color:var(--danger);outline:1px solid var(--danger);outline-offset:-1px}.form-grid input.invalid:focus{box-shadow:0 0 0 3px #fee2e2}.span2{grid-column:span 2}.pw-row{margin-top:10px;max-width:320px}.dsign-appearance{display:flex;align-items:center;gap:12px;margin:10px 0}.dsign-preview{width:240px;height:78px;border:1px dashed var(--border-strong);border-radius:8px;padding:6px 10px;display:flex;flex-direction:column;justify-content:space-between;background:#fff}.dsign-preview svg,.dsign-preview img{height:44px!important;width:auto!important;max-width:100%}.dsign-preview small{font-size:9.5px;color:#334155;line-height:1.2}.dsign-target{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dsign-drawbox{display:inline-flex;flex:0 0 auto;max-width:100%;align-items:center;gap:8px;border-radius:10px}.dsign-drawbox.required{padding:4px 8px 4px 4px;background:var(--accent-100)}.dsign-required{color:var(--accent);font-weight:600;white-space:nowrap}@media (max-width: 600px){.dsign-required{white-space:normal}}.dsign-drawbox.pulse{animation:dsign-pulse .5s ease-in-out 3}@keyframes dsign-pulse{0%,to{box-shadow:0 0 #4f46e500}50%{box-shadow:0 0 0 5px #4f46e573}}@media (prefers-reduced-motion: reduce){.dsign-drawbox.pulse{animation:none;box-shadow:0 0 0 3px #4f46e58c}}.btn.primary.blocked{opacity:.55;cursor:not-allowed}.dsign-note,.sig-own{display:flex;gap:8px;align-items:flex-start;background:#eef2ff;border:1px solid #c7d2fe;color:#312e81;border-radius:10px;padding:8px 10px;font-size:12.5px;line-height:1.45}.sig-own{margin-top:6px}.dsign-note>svg,.sig-own>svg{flex-shrink:0;margin-top:2px}.dsign-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px}body:has(.commit-bar) .toasts{bottom:84px}.color-pick{position:relative}.color-btn{width:30px;height:26px;border:1px solid var(--border-strong);border-radius:6px;background:#fff;padding:3px;cursor:pointer;display:grid;place-items:stretch}.color-btn span{border-radius:3px;border:1px solid rgba(0,0,0,.12);display:grid;place-items:center;color:var(--muted)}.color-pop{position:fixed;margin-top:6px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:8px;z-index:50;display:flex;flex-direction:column;gap:8px}.color-pop .swatches{display:grid;grid-template-columns:repeat(5,20px);gap:6px}.color-pop .swatch{width:20px;height:20px}.custom-color{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2);cursor:pointer}.custom-color input{width:22px;height:22px;padding:0;border:0;background:none}.form-layer.inactive .form-sig{visibility:hidden}.form-sig.signed span{font-size:10.5px;margin:2px}.form-sig.signed span{box-shadow:0 1px 2px #0000001f;transform:translateY(-60%)}.form-sig.signed.bad span{background:#fee2e2;color:#991b1b}.textedit-layer{position:absolute;inset:0;pointer-events:none}.textedit-capture{cursor:crosshair}.textedit-capture.over-text{cursor:text}.textedit-svg polygon{vector-effect:non-scaling-stroke}.te-hover-line{fill:#4f46e514;stroke:var(--accent);stroke-width:1.25}.te-hover-line.hidden-text{fill:#ea580c1a;stroke:#ea580c;stroke-dasharray:4 3}.te-hover-line.locked{fill:#dc262614;stroke:#dc2626;stroke-dasharray:2 2}.te-hover-block{fill:none;stroke:var(--accent);stroke-opacity:.35;stroke-width:1;stroke-dasharray:3 3}.te-badge{position:absolute;z-index:6;max-width:360px;padding:2px 7px;border-radius:4px;font:500 11px/16px system-ui,-apple-system,Segoe UI,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;box-shadow:0 1px 3px #0f172a2e;background:#eef2ff;color:#3730a3;border:1px solid #c7d2fe}.te-badge.tone-warn{background:#fff7ed;color:#9a3412;border-color:#fed7aa}.te-badge.tone-bad{background:#fef2f2;color:#991b1b;border-color:#fecaca}.te-add-hint{position:absolute;z-index:5;padding:1px 6px;border-radius:4px;background:#0f172ac7;color:#fff;font:11px/16px system-ui,sans-serif;pointer-events:none;white-space:nowrap}.te-session{position:absolute;inset:0;pointer-events:none}.te-session:not(.ready):not(.ghost) .te-frame{visibility:hidden}.te-erase{position:absolute;pointer-events:none;user-select:none}.te-frame{position:absolute;left:0;top:0;transform-origin:0 0}.te-editor{position:relative;display:block;width:max-content;margin:0;padding:0;border:0;white-space:pre;line-height:normal;font-kerning:none;font-variant-ligatures:none;font-feature-settings:"liga" 0,"kern" 0;text-rendering:geometricPrecision;outline:calc(var(--te-inv, 1) * 1.5px) solid rgba(79,70,229,.7);outline-offset:calc(var(--te-inv, 1) * 2px);pointer-events:auto;cursor:text;min-width:1px;background:transparent}.te-editor.kind-block{max-width:none}.te-editor.kind-new:empty:before{content:attr(data-placeholder);color:#94a3b8;font-style:italic}.te-session.saving .te-editor{outline-color:#64748b80;cursor:progress}.te-session.ghost .te-editor{outline:none}.te-probe{position:absolute;left:0;top:0;visibility:hidden;pointer-events:none}.te-ghost{position:absolute;inset:0;transform-origin:0 0;pointer-events:none}.text-tools .fr-form{display:flex;flex-direction:column;gap:6px}.text-tools .fr-form input[type=text],.text-tools .fr-form input:not([type]){width:100%}.text-tools .fr-opts{display:flex;gap:12px;font-size:12px}.text-tools .fr-buttons{display:flex;gap:6px}.text-tools .fr-error{color:var(--danger, #b42318);font-size:12px;margin-top:6px}.text-tools .fr-hits{margin-top:8px;display:flex;flex-direction:column;gap:4px;max-height:42vh;overflow:auto}.text-tools .fr-hit{display:flex;gap:6px;align-items:flex-start;border-left:3px solid transparent;padding-left:4px}.text-tools .fr-hit.tone-warn{border-left-color:#d6a100}.text-tools .fr-hit.tone-bad{border-left-color:#c0392b;opacity:.8}.text-tools .fr-hit.tone-ok{border-left-color:#2e9e5b}.text-tools .fr-hit-body{display:flex;flex-direction:column;text-align:start;background:none;border:0;padding:2px 0;cursor:pointer;font-size:12px}.text-tools .fr-ctx{color:var(--text, #222)}.text-tools .fr-prev{color:#2e7d32}.text-tools .fr-diag{font-size:11px;opacity:.8}.text-tools .fr-section{margin-top:12px;border-top:1px solid var(--border, #ddd);padding-top:8px}.text-tools .linkish{background:none;border:0;padding:0;cursor:pointer;font-weight:600}.text-tools .font-list{display:flex;flex-direction:column;gap:8px;margin-top:6px}.text-tools .font-row{border:1px solid var(--border, #ddd);border-radius:6px;padding:6px 8px}.text-tools .font-name{font-weight:600;font-size:13px}.text-tools .font-issues{margin:4px 0 0 16px;padding:0;font-size:11px;color:#8a5a00}.text-tools .font-cov{font-size:11px;opacity:.7;word-break:break-all;margin-top:2px}.sig-permissions{display:flex;flex-direction:column;gap:3px;border:1px solid #bfdbfe;background:#eff6ff;color:#1e3a8a;border-radius:10px;padding:9px 12px;margin:10px 0;font-size:12.5px;line-height:1.45}.sig-permissions.none{border-color:#fde68a;background:#fffbeb;color:#78350f}.form-field.locked{cursor:not-allowed;outline:1px dashed rgba(30,58,138,.45)}.field-lock{position:absolute;width:14px;height:14px;border-radius:50%;background:#1e3a8a;color:#fff;display:flex;align-items:center;justify-content:center;pointer-events:auto}.dsign-warn+.dsign-warn{margin-top:8px}.draft-banner{display:flex;flex-direction:column;border-bottom:1px solid #bfdbfe;background:#eff6ff;color:#1e3a8a;font-size:12.5px}.draft-row{display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 16px;flex-wrap:wrap;text-align:center}.draft-row+.draft-row{border-top:1px solid #dbeafe}.draft-row.warn{background:#fffbeb;color:#92400e}.draft-row .link-btn.danger{color:#b91c1c}.draft-text{font-style:italic;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:bottom}.draft-status{font-size:11.5px;font-weight:500;color:#6b7280;white-space:nowrap}.draft-status.error{color:#b91c1c}.form-sig.signed.warn span{background:#fef3c7;color:#92400e}.signed-banner.warn{background:#fffbeb;color:#92400e;border-color:#fde68a}.sig-reasons{margin:6px 0 0;padding-left:18px;font-size:12px;line-height:1.4}.sig-verify.warn .sig-reasons{color:#92400e}.sig-verify.bad .sig-reasons{color:#991b1b}.time-src{display:block;width:fit-content;font-size:10.5px;padding:0 6px;border-radius:9px;margin-top:1px}.time-src.trusted{background:#dcfce7;color:#166534}.time-src.untrusted{background:#f1f5f9;color:#475569}.sig-infos{margin-top:6px}.sig-changes{margin-top:8px;font-size:12px}.sig-changes ul{list-style:none;margin:4px 0 0;padding:0}.sig-change{display:flex;align-items:flex-start;gap:6px;line-height:1.4;margin:2px 0}.sig-change:before{content:"•";flex:none;width:12px;text-align:center}.sig-change.flagged:before{content:none}.sig-change-icon{flex:none;width:12px;margin-top:2px;color:#b45309}.sig-change .link-btn{display:inline;padding:0;text-align:left;font:inherit;line-height:inherit;white-space:normal}.sig-change.flagged,.sig-change.flagged .link-btn{color:#92400e;font-weight:600}.sig-change.annotation_added,.sig-change.annotation_removed{font-weight:600}.sig-error-detail{margin-top:6px;font-size:11px}.sig-error-detail code{display:block;max-height:120px;overflow:auto;word-break:break-all;white-space:pre-wrap;color:var(--muted)}small.block{display:block;margin-top:2px}.icon-btn .spin{animation:spin 1s linear infinite}.sig-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.sig-change-hl{position:absolute;border:2px solid #f59e0b;background:#f59e0b2e;border-radius:3px;pointer-events:none;animation:sig-hl-pulse 1s ease-in-out 3}@keyframes sig-hl-pulse{50%{background:#f59e0b66}}.sig-flag-frame{position:absolute;border:2px dashed #d97706;border-radius:3px;pointer-events:none;z-index:3}.sig-flag-tag{position:absolute;top:-18px;left:-2px;font-size:10.5px;line-height:16px;padding:0 6px;border-radius:4px;background:#d97706;color:#fff;white-space:nowrap;pointer-events:auto}.cert-item.disabled{opacity:.5;cursor:not-allowed}.cert-chain{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.cert-chain li{border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:12.5px}.cert-chain li.anchor{border-color:#a7f3d0;background:#f0fdf4}.cert-chain-head{display:flex;gap:8px;align-items:baseline;margin-bottom:4px}.cert-chain .sig-facts{grid-template-columns:84px 1fr}.cert-chain .btn{margin-top:8px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.fp{font-size:10.5px;word-break:break-all}.signed-version-bar{display:flex;align-items:center;gap:12px;justify-content:space-between;margin-bottom:10px}.signed-version-pages{display:flex;flex-direction:column;align-items:center;gap:12px;max-height:70vh;overflow:auto;background:var(--canvas-bg);padding:12px;border-radius:8px}.signed-version-page{box-shadow:var(--page-shadow);background:#fff;max-width:100%}.settings-drawer .seg-tabs{margin-bottom:10px}.settings-section{margin-top:14px}.settings-section h4{margin:0 0 6px;font-size:13px}.settings-row{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:12.5px}.settings-row .grow,.trusted-list .grow{flex:1;min-width:0}.trusted-list{list-style:none;padding:0;margin:0 0 6px}.trusted-list li{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border)}.trusted-list .grow{display:flex;flex-direction:column}.num-input{width:64px}.dsign-level-explainer{margin:6px 0 0}.sig-maint{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 4px}.side-body .dsign-warn .btn{align-self:center;white-space:nowrap}.wide-input{flex:1.4;min-width:0;font:inherit}textarea.wide-input{resize:vertical}.tsa-test-result{border-radius:8px;padding:8px 10px;font-size:12.5px;line-height:1.45;margin-top:6px;border:1px solid var(--border)}.tsa-test-result.ok{background:#f0fdf4;border-color:#bbf7d0}.tsa-test-result.warn{background:#fffbeb;border-color:#fde68a}.tsa-test-result.bad{background:var(--danger-50);color:var(--danger)}.tsa-test-result small{display:block}.dsign-after{display:flex;flex-direction:column;gap:6px}.dsign-after-opt{display:flex;align-items:flex-start;gap:10px;padding:7px 10px;border:1px solid var(--border);border-radius:8px;cursor:pointer}.dsign-after-opt input{margin-top:3px}.dsign-after-opt>span{display:flex;flex-direction:column;min-width:0}.dsign-after-opt.on{border-color:var(--accent);background:var(--accent-50)}.dsign-after-opt.disabled{opacity:.55;cursor:not-allowed}.dsign-badge{display:inline-block;margin-left:6px;padding:0 6px;border-radius:999px;font-size:11px;font-weight:500;background:var(--accent-50);color:var(--accent)}.dsign-check{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:12.5px}.dsign-lock{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}.dsign-lock-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px 12px;max-height:160px;overflow:auto;border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:12.5px}.dsign-lock-fields label{display:flex;align-items:center;gap:6px}.dsign-after-section .dsign-warn{margin-top:8px}.right-tabs button{flex-direction:column;gap:1px;font-size:11px;padding:7px 0 6px;min-width:0;position:relative;white-space:nowrap}.right-tabs .count{position:absolute;top:3px;right:2px;line-height:14px}.activity-panel{display:flex;flex-direction:column;gap:10px}.activity-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.activity-export{display:flex;align-items:center;gap:2px;margin-left:auto}.audit-verify{display:flex;gap:8px;align-items:flex-start;border-radius:10px;padding:9px 11px;font-size:12.5px;border:1px solid}.audit-verify.ok{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.audit-verify.bad{background:var(--danger-50);border-color:#fecaca;color:#991b1b}.audit-verify code{font-size:11px}.activity-consent{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.audit-timeline{list-style:none;padding:0;border-left:2px solid var(--border);margin:0 0 0 11px}.audit-ev{display:flex;gap:8px;padding:6px 0;margin-left:-12px}.audit-ic{flex:none;width:22px;height:22px;border-radius:999px;background:var(--panel);border:1px solid var(--border-strong);display:grid;place-items:center;color:var(--text-2)}.audit-ev.ev-signed .audit-ic{background:#dcfce7;border-color:#86efac;color:#166534}.audit-ev.ev-anchored .audit-ic,.audit-ev.ev-intent_confirmed .audit-ic,.audit-ev.ev-consent_given .audit-ic{background:var(--accent-50);border-color:var(--accent-100);color:var(--accent)}.audit-main{display:flex;flex-direction:column;min-width:0;font-size:12.5px}.audit-detail{color:var(--text-2);overflow-wrap:anywhere}.ersd{display:flex;flex-direction:column;gap:8px}.ersd h4{display:flex;align-items:center;gap:6px;margin:0}.ersd-text{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:12.5px;max-height:260px;overflow:auto;margin:0;padding:10px 12px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px}.dsign-intent{border:1px solid var(--accent-100);background:var(--accent-50);border-radius:10px;padding:9px 11px;font-size:13px}.sig-legal-line{font-size:11.5px;color:var(--text-2);margin:4px 0 0}.audit-anchor-warn{color:#92400e}.right-tabs button.icon-tab{flex:0 0 34px}.lock-banner{display:flex;align-items:center;gap:10px;padding:8px 14px;background:#eff6ff;border-bottom:1px solid #bfdbfe;color:#1e3a8a;font-size:12.5px}.lock-banner .grow{flex:1;min-width:0}.doc-locked .overlay-layer[data-layer=editor]>*,.doc-locked .overlay-layer[data-layer=forms]>*{pointer-events:none}.env-panel,.env-wizard{display:flex;flex-direction:column;gap:12px;padding:12px;font-size:12.5px}.env-wizard{padding:0;gap:0;height:100%}.env-wizard-head{padding:12px 12px 8px;border-bottom:1px solid var(--border)}.env-wizard-head h3,.env-section h4{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:13px}.env-steps{display:flex;gap:2px;list-style:none;margin:0;padding:0}.env-steps li{flex:1}.env-steps button{width:100%;border:0;border-bottom:2px solid var(--border);background:none;padding:4px 0;font:inherit;font-size:11.5px;color:var(--muted);cursor:pointer}.env-steps button.done{color:var(--text-2);border-bottom-color:var(--accent-100)}.env-steps button.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.env-wizard-body{flex:1;min-height:0;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.env-wizard-foot{display:flex;gap:6px;padding:10px 12px;border-top:1px solid var(--border)}.env-row{display:flex;align-items:center;gap:6px;min-width:0}.env-row .grow,.env-section .grow{flex:1;min-width:0}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.env-label{display:flex;flex-direction:column;gap:3px;font-weight:500;color:var(--text-2)}.env-panel .input,.env-wizard .input{width:100%;min-width:0;border:1px solid var(--border-strong);border-radius:6px;padding:5px 7px;font:inherit;background:#fff;color:var(--text)}.env-panel textarea.input,.env-wizard textarea.input{resize:vertical}.env-order{flex:0 0 48px;width:48px!important}.env-recipient{display:flex;flex-direction:column;gap:5px;padding:8px;border:1px solid var(--border);border-left:4px solid var(--border-strong);border-radius:8px;background:var(--panel-2);list-style:none}.env-recipients,.env-list,.env-outbox,.env-timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.env-people,.env-palette,.env-actions,.env-r-actions{display:flex;flex-wrap:wrap;gap:5px}.env-person{display:inline-flex;align-items:center;gap:5px;border:1.5px solid var(--border);border-radius:999px;background:#fff;padding:3px 9px;font:inherit;cursor:pointer}.env-person.on{box-shadow:0 0 0 2px var(--accent-100);font-weight:600}.env-person .count{font-size:10.5px;background:#eef0f4;border-radius:999px;padding:0 5px}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none}.env-chip-kind{display:inline-flex;align-items:center;gap:5px;border:1px dashed var(--border-strong);background:#fff;border-radius:6px;padding:5px 8px;font:inherit;cursor:grab}.env-chip-kind.on{border-style:solid;border-color:var(--accent);background:var(--accent-50);color:var(--accent)}.env-hint{margin:0;color:var(--accent)}.env-selected{display:flex;flex-direction:column;gap:5px;padding:8px;border:1px solid var(--accent-100);background:var(--accent-50);border-radius:8px}.env-field-list{display:flex;flex-direction:column;gap:3px}.env-warn{color:#b45309}.env-problems{margin:0;padding:8px 8px 8px 24px;border:1px solid #fecaca;background:var(--danger-50);color:#991b1b;border-radius:8px}.env-review p{margin:0 0 6px}.env-review-list{list-style:none;padding:0;margin:0 0 8px;display:flex;flex-direction:column;gap:4px}.env-quote{margin:0 0 8px;padding:6px 10px;border-left:3px solid var(--accent-100);white-space:pre-wrap}.env-section{display:flex;flex-direction:column;gap:8px}.env-section+.env-section{border-top:1px solid var(--border);padding-top:12px}.env-section p{margin:0}.env-list-item{width:100%;text-align:left;border:1px solid var(--border);border-radius:8px;background:#fff;padding:7px 9px;font:inherit;cursor:pointer;display:flex;flex-direction:column;gap:4px}.env-list-item:hover{border-color:var(--accent-100)}.env-dots{display:flex;align-items:center;gap:4px}.env-dot{width:10px;height:10px;border-radius:50%;border:2px solid;background:#fff}.env-dot.s-signed{background:var(--success)}.env-dot.s-declined{background:var(--danger)}.env-dots .muted{margin-left:auto}.env-chip{display:inline-block;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600;white-space:nowrap;background:#eef0f4;color:var(--text-2)}.env-chip.s-sent,.env-chip.s-opened,.env-chip.s-authenticated,.env-chip.s-consented{background:#dbeafe;color:#1e40af}.env-chip.s-signed,.env-chip.s-completed{background:#dcfce7;color:#166534}.env-chip.s-declined,.env-chip.s-voided{background:#fee2e2;color:#991b1b}.env-chip.s-expired{background:#fef3c7;color:#92400e}.env-inline-form{display:flex;flex-direction:column;gap:5px;padding:8px;border:1px solid var(--border);border-radius:8px;background:#fff}.env-timeline li{border-left:2px solid var(--border);padding:2px 0 2px 8px}.env-ev-label{font-weight:600}.env-disclosure{display:flex;align-items:center;gap:6px;border:0;background:none;padding:0;font:inherit;font-weight:600;cursor:pointer;text-align:left}.env-outbox li{border:1px solid var(--border);border-radius:8px;padding:6px 8px;display:flex;flex-direction:column;gap:3px}.env-link{display:inline-flex;align-items:center;gap:4px;word-break:break-all;color:var(--accent);font-size:11.5px}.env-mail{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:11.5px;background:var(--panel-2);border-radius:6px;padding:6px;margin:0;max-height:220px;overflow:auto}.env-ca .btn{text-decoration:none}.env-layer.placing{background:#4f46e508}.env-layer.armed{cursor:crosshair}.env-field{position:absolute;border:2px solid;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:600;overflow:visible;cursor:move;user-select:none;touch-action:none}.env-field.readonly{cursor:default;opacity:.85}.env-field.selected{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--accent);z-index:2}.env-field:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.env-field-label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:100%;padding:0 3px;pointer-events:none}.env-field.k-checkbox .env-field-label{display:none}.env-field-del{position:absolute;top:-9px;right:-9px;width:18px;height:18px;border-radius:50%;border:1px solid var(--border-strong);background:#fff;color:var(--danger);display:grid;place-items:center;padding:0;cursor:pointer}.env-field-resize{position:absolute;right:-5px;bottom:-5px;width:10px;height:10px;background:#fff;border:2px solid var(--accent);border-radius:2px;cursor:nwse-resize}.env-warn .link-btn{border:0;background:none;padding:0;font:inherit;color:var(--accent);text-decoration:underline;cursor:pointer}.env-sealed{border:1px solid var(--border, #d0d7de);border-radius:8px;padding:8px 10px;margin:8px 0}.env-sealed .env-actions{flex-wrap:wrap}.lock-banner.completed .btn{text-decoration:none}.settings-platform dl.kv{display:grid;grid-template-columns:max-content 1fr;gap:2px 12px;margin:6px 0}.settings-platform dl.kv dt{color:var(--muted, #6b7280)}.settings-platform dl.kv dd{margin:0;overflow-wrap:anywhere}.form-button{pointer-events:auto;box-sizing:border-box;display:grid;place-items:center;margin:0;padding:0;border:0;border-radius:2px;background:transparent;color:inherit;font-family:Helvetica,Arial,sans-serif;line-height:1.15;cursor:pointer;overflow:hidden}.form-button:hover{box-shadow:inset 0 0 0 1.5px #4f46e573}.form-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:0 0 0 4px #ffffffe6}.form-button-caption{max-width:100%;padding:0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.form-layer.inactive .form-button{pointer-events:none}.form-layer.inactive .form-button.editing{pointer-events:auto;z-index:3;box-shadow:inset 0 0 0 1.5px #4f46e58c;background-image:repeating-linear-gradient(135deg,rgba(79,70,229,.08) 0 6px,transparent 6px 12px)}.form-button.selected{box-shadow:inset 0 0 0 2px var(--accent)}.form-button-script{position:absolute;transform:translate(-100%,-55%);font:600 9px/1.4 Helvetica,Arial,sans-serif;color:#92400e;background:#fef3c7;border:1px solid #fcd34d;border-radius:3px;padding:0 3px;white-space:nowrap;pointer-events:none}.uri-confirm-url{margin:8px 0 0;padding:10px 12px;background:#f7f8fa;border:1px solid var(--border);border-radius:8px;font:12.5px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere;word-break:break-all;white-space:pre-wrap;max-height:30vh;overflow:auto;user-select:text}.blocked-list{margin:8px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:8px;line-height:1.5}.blocked-list details{margin-top:4px}.blocked-list summary{cursor:pointer;font-size:12px;color:var(--accent)}.blocked-list .text-preview{margin-top:6px;max-height:32vh}.button-inspector{display:flex;flex-direction:column;gap:8px;border:1px solid var(--accent-100);background:var(--accent-50);border-radius:10px;padding:10px 12px;font-size:12.5px}.bi-head{display:flex;align-items:center;justify-content:space-between}.bi-props{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:0}.bi-props dt{color:var(--muted)}.bi-props dd{margin:0;overflow-wrap:anywhere}.bi-actions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.bi-actions li{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 8px;background:#fff;border:1px solid var(--border);border-radius:8px;overflow-wrap:anywhere}.bi-actions li.unsafe{border-color:#fcd34d}.bi-action-kind{font-size:11px;font-weight:600;color:var(--muted)}.bi-buttons{display:flex;flex-wrap:wrap;gap:6px}.field-row.on{background:var(--accent-50);border-color:var(--accent-100)}.uri-confirm-host{display:flex;align-items:baseline;gap:8px;margin:8px 0 4px}.uri-confirm-host strong{font-size:16px;word-break:break-all}.uri-confirm-warning{margin:4px 0 8px;padding:6px 8px;border-radius:6px;background:#fff7ed;color:#9a3412;font-size:12.5px}html{touch-action:manipulation}body{overscroll-behavior:none}.viewer{position:relative;touch-action:pan-x pan-y;overscroll-behavior:contain}.textedit-capture{touch-action:pan-x pan-y}.tframe-body.movable,.tframe-handle,.tframe-rotate,.line-handle,.env-field-resize,.crop-layer.drawing{touch-action:none}.thumb-list{overscroll-behavior:contain}.thumb{touch-action:pan-y;-webkit-touch-callout:none}.thumb img{-webkit-user-drag:none}.context-menu{-webkit-touch-callout:none;user-select:none}.link-btn.select-toggle.on{background:var(--accent);color:#fff;border-radius:5px;text-decoration:none}.confirm-msg{overflow-wrap:anywhere}.te-static-line{fill:#4f46e508;stroke:var(--accent);stroke-opacity:.4;stroke-width:1}.te-static-line.hidden-text{stroke:#ea580c;stroke-dasharray:4 3}.te-static-line.locked{fill:#dc26260d;stroke:#dc2626;stroke-dasharray:2 2}.commit-bar{bottom:calc(18px + var(--kb, 0px))}.action-bar{position:absolute;left:50%;bottom:calc(18px + var(--kb, 0px));transform:translate(-50%);display:flex;align-items:center;gap:6px;padding:6px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);z-index:21;white-space:nowrap}.action-bar .btn,.action-bar .icon-btn{height:40px;min-width:40px}.center-col:has(.commit-bar) .action-bar{bottom:calc(76px + var(--kb, 0px))}.toasts{bottom:calc(22px + var(--kb, 0px))}body:has(.commit-bar) .toasts,body:has(.action-bar) .toasts{bottom:calc(84px + var(--kb, 0px))}body:has(.commit-bar):has(.action-bar) .toasts{bottom:calc(140px + var(--kb, 0px))}.item-toolbar .item-done{font-weight:600;color:var(--accent)}.zoom-pill{display:none}@media (pointer: coarse){.tframe-handle:before,.tframe-rotate:before,.line-handle:before,.env-field-resize:before,.env-field-del:before{content:"";position:absolute}.tframe-handle.h-nw:before{inset:-30px -2px -2px -30px}.tframe-handle.h-ne:before{inset:-30px -30px -2px -2px}.tframe-handle.h-se:before{inset:-2px -30px -30px -2px}.tframe-handle.h-sw:before{inset:-2px -2px -30px -30px}.tframe-handle.h-n:before{inset:-30px -10px -2px}.tframe-handle.h-s:before{inset:-2px -10px -30px}.tframe-handle.h-e:before{inset:-10px -30px -10px -2px}.tframe-handle.h-w:before{inset:-10px -2px -10px -30px}.tframe-rotate:before{inset:-14px}.line-handle:before{inset:-19px}.env-field-resize:before{inset:-10px -26px -26px -10px}.env-field-del:before{inset:-20px -20px -8px -8px}.icon-btn.xs,.icon-btn.sm{width:36px;height:36px}.btn{min-height:36px}.btn.xs,.btn.sm{height:36px;padding:0 10px}.seg-tabs button,.seg-tabs.sm button,.seg>button{min-height:36px;min-width:36px}.ink-colors .swatch{width:36px;height:36px}.swatches{gap:8px}.swatches .swatch{width:28px;height:28px}.sidebar-head .link-btn{min-height:36px;min-width:36px}.input,.opt-select{min-height:36px}.tool-btn{width:40px;height:40px;flex:none}.toast-close{width:36px;height:36px}.link-btn{padding:8px 6px}.context-menu button,.dropdown button{min-height:44px}.env-chip-kind,.env-person{min-height:36px}.editor-svg .pending-vector polyline.hit{stroke-width:24px}.form-check:before,.form-radio:before,.form-sig .sig-tag:before{content:"";position:absolute;inset:min(0px,calc((100% - 32px)/2))}html input:not([type=checkbox]):not([type=radio]):not([type=range]):not(.form-field),html select:not(.form-field),html textarea:not(.form-field):not(.text-editor){font-size:16px!important}html input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not(.form-field),html select:not(.form-field):not([multiple]){min-height:36px}.categories .cat,.history-toggle{min-height:36px}.page-input{width:46px}}@media (hover: none){.recent-delete,.sig-card-del,.op-chevron{opacity:1;transform:none}}@media (pointer: coarse),(max-width: 900px){.tool-strip{background:linear-gradient(to right,var(--panel) 40%,rgba(255,255,255,0)) left / 40px 100% no-repeat local,linear-gradient(to left,var(--panel) 40%,rgba(255,255,255,0)) right / 40px 100% no-repeat local,radial-gradient(farthest-side at 0 50%,#0f172a47,#0f172a00) left / 14px 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,#0f172a47,#0f172a00) right / 14px 100% no-repeat scroll}}@media (max-width: 900px){.app.env-placing .drawer-scrim{display:none}.app.env-placing.drawer-tools .workspace>.rightpanel{top:auto;left:0;right:0;width:auto;height:min(46%,400px);border-left:0;border-top:1px solid var(--border);border-radius:14px 14px 0 0;overflow:hidden}.app.env-armed.drawer-tools .workspace>.rightpanel{height:196px}.app.env-armed .rightpanel .right-tabs,.app.env-armed .rightpanel .history,.app.env-armed .env-wizard-head,.app.env-armed .env-wizard-body>p.muted,.app.env-armed .env-field-list,.app.env-armed .env-selected{display:none}}@media (max-width: 600px){.zoom-pill{display:flex;position:absolute;top:8px;right:8px;z-index:19;background:#fffffff2;border:1px solid var(--border);border-radius:999px;box-shadow:var(--shadow);overflow:hidden}.zoom-pill button{border:0;background:none;min-width:40px;height:40px;font-size:20px;line-height:1;color:var(--text-2)}.zoom-pill .pct{min-width:54px;font-size:12.5px;font-variant-numeric:tabular-nums;border-left:1px solid var(--border);border-right:1px solid var(--border)}.zoom-pill .pct.on{color:var(--accent);font-weight:600}.toasts,.rightpanel,.sidebar,.welcome,.signed-banner,.draft-banner,.lock-banner,.xfa-banner,.context-menu,.dropdown{overflow-wrap:break-word}.signed-banner button,.draft-banner button,.lock-banner button{flex:none;white-space:nowrap}.toasts{left:8px;right:8px;transform:none}.toast{min-width:0;max-width:100%}.modal code,.modal pre,.rightpanel code,.rightpanel pre{white-space:pre-wrap;word-break:break-all}.modal-backdrop{padding:8px}.modal,.modal.wide{width:100%;min-width:0;max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px - var(--kb, 0px))}.kb-open .modal-backdrop{place-items:start center}.modal-body{padding:4px 12px 12px;min-width:0}.modal-body>*{min-width:0;max-width:100%}.modal-foot,.modal-actions,.sig-modal .sig-top,.sig-actions{flex-wrap:wrap;row-gap:8px}.draw-pad{width:100%}.dsign-meta,.form-grid{grid-template-columns:minmax(0,1fr)}.item-toolbar{max-width:calc(100vw - 16px);overflow-x:auto}}.export-notes{margin:0;padding:10px 12px 10px 28px;border:1px solid var(--border);border-radius:8px;background:#f7f8fa;font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:5px}.table-preview{border:1px solid var(--border);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;font-size:12.5px}.table-preview-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.table-preview-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:46vh;overflow-y:auto}.table-preview-list li{border-left:3px solid #1a7f4b;padding:2px 0 2px 8px}.table-preview-list li.medium{border-left-color:#c8a03c}.table-preview-list li.low{border-left-color:#c0392b}.table-preview-list li.off{opacity:.55}.table-preview .conf.low,.table-preview .conf.medium{color:#9a6700}.table-preview .link{background:none;border:0;padding:0;color:var(--accent, #2563eb);cursor:pointer}.data-table.mini{font-size:11.5px}.data-table.mini td{padding:2px 6px;white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}.data-table.mini tr.head td{font-weight:600;background:#f1f3f6}.data-table.mini td.r{text-align:right}.data-table.mini td.t-number,.data-table.mini td.t-currency,.data-table.mini td.t-percent,.data-table.mini td.t-date,.data-table.mini td.t-dash{color:#0b5cad}.conv-report{display:flex;flex-direction:column;gap:12px;font-size:13px}.conv-report h4{margin:0 0 6px;font-size:12.5px;font-weight:600}.conv-report ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}.conv-report .table-wrap{max-height:30vh}.conv-verdict{display:flex;align-items:flex-start;gap:8px;padding:9px 12px;border-radius:8px;border:1px solid var(--border);background:#f7f8fa}.conv-verdict svg{flex:none;margin-top:1px}.conv-verdict-details{display:block;margin-top:4px;font-size:12px}.conv-verdict.ok svg{color:#1a7f4b}.conv-verdict.warn{border-color:#e8c66a;background:#fff8e1}.conv-verdict.warn svg{color:#9a6700}.auth-main{max-width:420px;margin:0 auto;padding:9vh 20px 48px}.auth-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:28px 28px 24px}.auth-card h1{font-size:20px;letter-spacing:-.01em;margin:0 0 14px}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-form p{margin:0}.auth-row{display:flex;justify-content:space-between;gap:8px}.user-menu{margin-left:8px}.user-chip{display:flex;align-items:center;gap:8px;border:1px solid transparent;background:none;border-radius:999px;padding:3px 10px 3px 3px;max-width:220px}.user-chip:hover,.user-chip[aria-expanded=true]{background:#f1f3f6;border-color:var(--border)}.user-avatar{width:28px;height:28px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--accent-100);color:var(--accent-600);font-size:12px;font-weight:700}.user-chip-text{display:flex;flex-direction:column;min-width:0;line-height:1.15;text-align:left}.user-chip-text small{font-size:11px}.user-menu-head{display:flex;flex-direction:column;gap:1px;padding:6px 10px 4px;min-width:0}.users-list{list-style:none;margin:0;padding:0}.users-list li{display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--border)}.users-list li:first-child{border-top:0}.users-list li.inactive strong{color:var(--muted);text-decoration:line-through}.users-active{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-2)}.users-tab .text-input{height:30px;border:1px solid var(--border-strong);border-radius:7px;padding:0 10px;min-width:0}@media (max-width: 720px){.user-chip-text{display:none}}
