.upload-card[data-v-3bd8d62f]{padding:24px}.drop-zone[data-v-3bd8d62f]{border:2px dashed var(--gray-200);border-radius:var(--radius-lg);text-align:center;cursor:pointer;transition:all var(--dur) var(--ease);background:var(--gray-50);padding:56px 24px}.drop-zone[data-v-3bd8d62f]:hover,.drop-zone.drag-over[data-v-3bd8d62f]{border-color:var(--primary);background:var(--primary-bg);transform:translateY(-1px)}.drop-zone.has-file[data-v-3bd8d62f]{border-color:var(--primary);background:var(--primary-bg);border-style:solid}.drop-icon-wrap[data-v-3bd8d62f]{width:60px;height:60px;color:var(--primary);box-shadow:var(--shadow-sm);transition:transform var(--dur) var(--ease);background:#fff;border-radius:50%;justify-content:center;align-items:center;margin-bottom:16px;display:inline-flex}.drop-zone:hover .drop-icon-wrap[data-v-3bd8d62f]{transform:translateY(-2px)}.drop-icon-wrap.success[data-v-3bd8d62f]{background:var(--primary);color:#fff}.drop-icon[data-v-3bd8d62f],.drop-icon-wrap svg[data-v-3bd8d62f]{width:28px;height:28px}.drop-text[data-v-3bd8d62f]{color:var(--gray-800);font-size:15px;font-weight:500}.drop-hint[data-v-3bd8d62f]{color:var(--gray-500);margin-top:6px;font-size:13px}.link-inline[data-v-3bd8d62f]{color:var(--primary);cursor:pointer;transition:color var(--dur-fast);font-weight:500}.link-inline[data-v-3bd8d62f]:hover{color:var(--primary-dark)}.progress-wrap[data-v-3bd8d62f]{margin-top:18px}.progress-track[data-v-3bd8d62f]{background:var(--gray-200);border-radius:999px;height:6px;overflow:hidden}.progress-bar[data-v-3bd8d62f]{background:linear-gradient(90deg, var(--green-500), var(--green-600));height:100%;transition:width var(--dur-slow) var(--ease);border-radius:999px;position:relative}.progress-bar[data-v-3bd8d62f]:after{content:"";background:linear-gradient(90deg,#0000,#fff6,#0000);animation:1.5s linear infinite shimmer-3bd8d62f;position:absolute;inset:0}@keyframes shimmer-3bd8d62f{0%{transform:translate(-100%)}to{transform:translate(100%)}}.progress-label[data-v-3bd8d62f]{color:var(--gray-600);margin-top:8px;font-size:12px;display:block}.error-box[data-v-3bd8d62f]{background:var(--red-bg);border-radius:var(--radius);color:#b91c1c;border:1px solid #fecaca;margin-top:14px;padding:10px 14px;font-size:13px}.upload-actions[data-v-3bd8d62f]{text-align:right;margin-top:22px}.upload-btn[data-v-3bd8d62f]{padding:11px 28px;font-size:14px;font-weight:600}.steps-grid[data-v-3bd8d62f]{grid-template-columns:repeat(3,1fr);gap:14px;margin-top:28px;display:grid}.step-card[data-v-3bd8d62f]{border:1px solid var(--gray-200);border-radius:var(--radius-lg);text-align:center;transition:border-color var(--dur) var(--ease), transform var(--dur) var(--ease);opacity:0;animation:fadeUp .4s var(--ease-out) forwards;background:#fff;padding:20px}.step-card[data-v-3bd8d62f]:hover{border-color:var(--primary);transform:translateY(-2px)}.step-num[data-v-3bd8d62f]{background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;margin:0 auto 10px;font-size:14px;font-weight:700;display:flex}.step-title[data-v-3bd8d62f]{color:var(--gray-800);margin-bottom:4px;font-size:14px;font-weight:600}.step-desc[data-v-3bd8d62f]{color:var(--gray-500);font-size:12px;line-height:1.5}.slide-fade-enter-active[data-v-3bd8d62f],.slide-fade-leave-active[data-v-3bd8d62f]{transition:all var(--dur) var(--ease)}.slide-fade-enter-from[data-v-3bd8d62f],.slide-fade-leave-to[data-v-3bd8d62f]{opacity:0;transform:translateY(-4px)}@media (width<=640px){.steps-grid[data-v-3bd8d62f]{grid-template-columns:1fr}}.sign-box[data-v-5d2aeab5]{cursor:move;border:2px solid var(--primary);-webkit-user-select:none;user-select:none;pointer-events:auto;z-index:5;transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);background:#22c55e1a;border-radius:4px;position:absolute}.sign-box[data-v-5d2aeab5]:hover{background:#22c55e26}.sign-box.active[data-v-5d2aeab5]{border-color:var(--primary-dark);z-index:10;background:#22c55e2e;box-shadow:0 0 0 3px #22c55e26}.sign-label[data-v-5d2aeab5]{background:var(--primary);color:#fff;white-space:nowrap;max-width:140px;transition:background var(--dur-fast);border-radius:4px 4px 0 0;padding:3px 8px;font-size:11px;font-weight:500;position:absolute;top:-24px;left:0}.sign-box.active .sign-label[data-v-5d2aeab5]{background:var(--primary-dark)}.name-input[data-v-5d2aeab5]{color:#fff;background:0 0;border:none;outline:none;width:100px;font-size:11px}.strategy-badge[data-v-5d2aeab5]{color:var(--primary-dark);opacity:.7;font-size:9px;font-weight:700;position:absolute;bottom:3px;right:5px}.del-btn[data-v-5d2aeab5]{text-align:center;background:var(--red);color:#fff;cursor:pointer;width:20px;height:20px;transition:background var(--dur-fast);border:none;border-radius:0 4px 0 0;padding:0;font-size:14px;line-height:18px;position:absolute;top:-24px;right:-1px}.del-btn[data-v-5d2aeab5]:hover{background:#dc2626}.resize-handle[data-v-5d2aeab5]{border:2px solid var(--primary);width:8px;height:8px;transition:border-color var(--dur-fast);background:#fff;border-radius:2px;position:absolute}.sign-box.active .resize-handle[data-v-5d2aeab5]{border-color:var(--primary-dark)}.nw[data-v-5d2aeab5]{cursor:nw-resize;top:-4px;left:-4px}.n[data-v-5d2aeab5]{cursor:n-resize;top:-4px;left:calc(50% - 4px)}.ne[data-v-5d2aeab5]{cursor:ne-resize;top:-4px;right:-4px}.e[data-v-5d2aeab5]{cursor:e-resize;top:calc(50% - 4px);right:-4px}.se[data-v-5d2aeab5]{cursor:se-resize;bottom:-4px;right:-4px}.s[data-v-5d2aeab5]{cursor:s-resize;bottom:-4px;left:calc(50% - 4px)}.sw[data-v-5d2aeab5]{cursor:sw-resize;bottom:-4px;left:-4px}.w[data-v-5d2aeab5]{cursor:w-resize;top:calc(50% - 4px);left:-4px}.top-bar[data-v-ef82e4c5]{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.top-actions[data-v-ef82e4c5]{flex-shrink:0;align-items:center;gap:10px;display:flex}.subtitle[data-v-ef82e4c5]{color:var(--gray-600);margin-top:4px;font-size:13px}.layout[data-v-ef82e4c5]{align-items:flex-start;gap:20px;display:flex}.pdf-panel[data-v-ef82e4c5]{flex-direction:column;flex:1;gap:16px;min-width:0;display:flex;overflow-x:auto}.pdf-page[data-v-ef82e4c5]{box-shadow:var(--shadow);border-radius:4px;flex-shrink:0;position:relative;overflow:visible}.pdf-page img[data-v-ef82e4c5]{border-radius:4px;display:block}.overlay[data-v-ef82e4c5]{pointer-events:none;position:absolute;top:0;left:0}.draw-area[data-v-ef82e4c5]{pointer-events:all;cursor:crosshair;position:absolute;inset:0}.draw-rect[data-v-ef82e4c5]{border:2px dashed var(--primary);pointer-events:none;background:#22c55e1f;position:absolute}.signer-panel[data-v-ef82e4c5]{flex-shrink:0;align-self:flex-start;width:260px;position:sticky;top:20px}.hint[data-v-ef82e4c5]{color:var(--gray-400);margin-bottom:10px;font-size:12px;line-height:1.5}.empty-hint[data-v-ef82e4c5]{border:1px dashed var(--gray-200);text-align:center;color:var(--gray-400);border-radius:8px;padding:20px;font-size:13px}.signer-list[data-v-ef82e4c5]{flex-direction:column;gap:8px;display:flex}.signer-item[data-v-ef82e4c5]{border:1.5px solid var(--gray-200);cursor:pointer;background:#fff;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.signer-item.active[data-v-ef82e4c5]{border-color:var(--primary);background:var(--primary-bg)}.signer-item.is-group[data-v-ef82e4c5]{background:#fef9c3;border-color:#fde68a}.group-label[data-v-ef82e4c5]{color:#92400e;flex:1;font-size:13px;font-weight:600}.btn-toggle[data-v-ef82e4c5]{border:1px solid var(--gray-200);color:var(--gray-600);cursor:pointer;background:#fff;border-radius:4px;padding:4px 10px;font-size:12px}.btn-toggle.on[data-v-ef82e4c5]{color:#78350f;background:#fbbf24;border-color:#f59e0b;font-weight:600}.btn-toggle[data-v-ef82e4c5]:hover{border-color:var(--primary)}.signer-info[data-v-ef82e4c5]{flex:1;align-items:center;min-width:0;display:flex}.signer-name-input[data-v-ef82e4c5]{background:0 0;border:none;border-bottom:1px solid #0000;outline:none;flex:1;min-width:0;padding:2px 4px;font-size:13px}.signer-name-input[data-v-ef82e4c5]:focus{border-bottom-color:var(--primary)}.names-section[data-v-ef82e4c5]{margin-top:16px}.text-input[data-v-ef82e4c5]{border:1.5px solid var(--gray-200);border-radius:6px;outline:none;padding:8px 10px;font-size:13px}.text-input[data-v-ef82e4c5]:focus{border-color:var(--primary)}.loading-center[data-v-ef82e4c5]{text-align:center;padding:60px}.error-box[data-v-ef82e4c5]{color:#b91c1c;background:#fee2e2;border-radius:6px;padding:10px 14px;font-size:13px}.top-bar[data-v-7669b5ea]{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.top-actions[data-v-7669b5ea]{align-items:center;gap:10px;display:flex}.subtitle[data-v-7669b5ea]{color:var(--gray-500);margin-top:4px;font-size:13px}.link-card[data-v-7669b5ea]{background:linear-gradient(135deg, #fff, var(--green-50));border-color:var(--primary-border);margin-bottom:16px}.link-header[data-v-7669b5ea]{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:16px;display:flex}.link-header h2[data-v-7669b5ea]{margin-bottom:4px}.qr-img[data-v-7669b5ea]{border-radius:var(--radius);border:2px solid var(--primary-border);width:110px;height:110px;transition:transform var(--dur) var(--ease);background:#fff;flex-shrink:0;padding:4px}.qr-img[data-v-7669b5ea]:hover{transform:scale(1.04)}.link-row[data-v-7669b5ea]{border:1px solid var(--primary-border);border-radius:var(--radius);background:#fff;align-items:center;gap:10px;padding:10px 14px;display:flex}.link-text[data-v-7669b5ea]{color:var(--primary-dark);word-break:break-all;flex:1;font-family:SF Mono,Menlo,monospace;font-size:13px}.hint[data-v-7669b5ea]{color:var(--gray-600);font-size:13px;line-height:1.6}.progress-overview[data-v-7669b5ea]{align-items:center;gap:16px;margin-bottom:4px;display:flex}.prog-item[data-v-7669b5ea]{text-align:center;flex:1}.prog-num[data-v-7669b5ea]{color:var(--gray-700);letter-spacing:-.02em;font-size:28px;font-weight:700}.prog-num.green[data-v-7669b5ea]{color:var(--primary)}.prog-num.orange[data-v-7669b5ea]{color:var(--amber)}.prog-label[data-v-7669b5ea]{color:var(--gray-500);margin-top:2px;font-size:12px}.prog-divider[data-v-7669b5ea]{background:var(--gray-200);width:1px;height:40px}.prog-bar-wrap[data-v-7669b5ea]{background:var(--gray-100);border-radius:999px;height:8px;overflow:hidden}.prog-bar-fill[data-v-7669b5ea]{background:linear-gradient(90deg, var(--green-400), var(--green-600));height:100%;transition:width var(--dur-slow) var(--ease);border-radius:999px}.done-banner[data-v-7669b5ea]{background:var(--primary-bg);color:var(--primary-dark);border:1px solid var(--primary-border);border-radius:var(--radius);text-align:center;animation:pop var(--dur) var(--ease-out);margin-top:14px;padding:12px 16px;font-weight:500}.signer-table[data-v-7669b5ea]{flex-direction:column;gap:6px;margin-top:10px;display:flex}.signer-row[data-v-7669b5ea]{background:var(--gray-50);border-radius:var(--radius);transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);border:1px solid #0000;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;display:flex}.signer-row[data-v-7669b5ea]:hover{border-color:var(--gray-200);background:#fff}.signer-name[data-v-7669b5ea]{min-width:80px;color:var(--gray-800);flex:1;font-weight:500}.signer-time[data-v-7669b5ea]{color:var(--gray-500);min-width:90px;font-size:12px}.signer-actions[data-v-7669b5ea]{gap:6px;margin-left:auto;display:flex}.error-box[data-v-7669b5ea]{background:var(--red-bg);border-radius:var(--radius);color:#b91c1c;border:1px solid #fecaca;padding:10px 14px;font-size:13px}.sign-page[data-v-0f62433d]{flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;padding:24px 16px;display:flex}.center-state[data-v-0f62433d]{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.err-icon[data-v-0f62433d],.done-icon[data-v-0f62433d]{font-size:48px}.error-state h2[data-v-0f62433d]{color:var(--red)}.success-state h2[data-v-0f62433d]{color:var(--green)}.sub[data-v-0f62433d]{color:var(--gray-600);font-size:14px}.sign-header[data-v-0f62433d]{margin-bottom:16px}.sign-header h2[data-v-0f62433d]{font-size:20px;font-weight:700}.preview-wrap[data-v-0f62433d]{margin-bottom:16px}.preview-label[data-v-0f62433d]{color:var(--gray-600);margin-bottom:6px;font-size:12px}.preview-img[data-v-0f62433d]{border:1px solid var(--gray-200);border-radius:6px;max-width:100%;display:block}.pad-wrap[data-v-0f62433d]{border-radius:var(--radius);border:2px solid var(--gray-200);background:#fff;flex-direction:column;flex:1;min-height:240px;display:flex;overflow:hidden}.sign-canvas[data-v-0f62433d]{touch-action:none;cursor:crosshair;flex:1;width:100%;min-height:200px;display:block}.pad-hint[data-v-0f62433d]{text-align:center;color:var(--gray-400);border-top:1px solid var(--gray-100);padding:8px;font-size:12px}.sign-actions[data-v-0f62433d]{gap:12px;margin-top:16px;display:flex}.sign-actions .btn[data-v-0f62433d]{flex:1;justify-content:center;padding:14px}.sign-page[data-v-5e003d55]{flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;padding:24px 16px;display:flex}.center-state[data-v-5e003d55]{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.err-icon[data-v-5e003d55],.done-icon[data-v-5e003d55]{font-size:48px}.sub[data-v-5e003d55]{color:var(--gray-600);font-size:14px}.sign-header[data-v-5e003d55]{margin-bottom:20px}.sign-header h2[data-v-5e003d55]{margin-bottom:4px;font-size:20px;font-weight:700}.back-btn[data-v-5e003d55]{color:var(--primary);cursor:pointer;background:0 0;border:none;margin-bottom:8px;padding:0;font-size:14px}.section-title[data-v-5e003d55]{color:var(--gray-400);letter-spacing:.05em;text-transform:uppercase;margin:16px 0 8px;font-size:12px;font-weight:600}.select-list[data-v-5e003d55]{flex-direction:column;gap:10px;margin-bottom:8px;display:flex}.signer-btn[data-v-5e003d55]{border:1.5px solid var(--gray-200);border-radius:var(--radius-lg);cursor:pointer;text-align:left;width:100%;transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);background:#fff;justify-content:space-between;align-items:center;padding:16px 18px;font-size:16px;font-weight:500;display:flex}.signer-btn[data-v-5e003d55]:hover{border-color:var(--primary);transform:translateY(-1px);box-shadow:0 4px 12px #22c55e26}.signer-btn[data-v-5e003d55]:active{transform:translateY(0)}.group-btn[data-v-5e003d55]{border-color:var(--primary-border);background:var(--primary-bg)}.group-btn[data-v-5e003d55]:hover{border-color:var(--primary);background:var(--primary-bg-hover)}.signer-btn-name[data-v-5e003d55]{display:block}.group-count[data-v-5e003d55]{color:var(--gray-500);margin-top:2px;font-size:12px;font-weight:400}.signer-btn-arrow[data-v-5e003d55]{color:var(--primary);transition:transform var(--dur-fast) var(--ease);flex-shrink:0;font-size:18px}.signer-btn:hover .signer-btn-arrow[data-v-5e003d55]{transform:translate(3px)}.all-done[data-v-5e003d55]{text-align:center;color:var(--primary-dark);background:var(--primary-bg);border:1px solid var(--primary-border);border-radius:var(--radius-lg);padding:32px 24px;font-weight:500}.signed-section[data-v-5e003d55]{margin:12px 0}.signed-label[data-v-5e003d55]{color:var(--gray-400);margin-bottom:8px;font-size:12px}.signed-item[data-v-5e003d55]{background:var(--gray-50);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:10px 14px;font-size:14px;display:flex}.name-input-wrap[data-v-5e003d55]{margin-bottom:12px}.name-label[data-v-5e003d55]{margin-bottom:6px;font-size:13px;font-weight:500;display:block}.name-input[data-v-5e003d55]{border:1.5px solid var(--gray-200);border-radius:8px;outline:none;width:100%;padding:10px 14px;font-size:16px}.name-input[data-v-5e003d55]:focus{border-color:var(--primary);box-shadow:0 0 0 3px #22c55e1f}.preview-wrap[data-v-5e003d55]{margin-bottom:16px}.preview-label[data-v-5e003d55]{color:var(--gray-600);margin-bottom:6px;font-size:12px}.preview-img[data-v-5e003d55]{border:1px solid var(--gray-200);border-radius:6px;max-width:100%;display:block}.pad-wrap[data-v-5e003d55]{border-radius:var(--radius);border:2px solid var(--gray-200);background:#fff;flex-direction:column;display:flex;overflow:hidden}.sign-canvas[data-v-5e003d55]{aspect-ratio:3;touch-action:none;cursor:crosshair;width:100%;min-height:130px;display:block}.pad-hint[data-v-5e003d55]{text-align:center;color:var(--gray-400);border-top:1px solid var(--gray-100);padding:8px;font-size:12px}.sign-actions[data-v-5e003d55]{gap:12px;margin-top:16px;display:flex}.sign-actions .btn[data-v-5e003d55]{flex:1;justify-content:center;padding:14px}.error-box[data-v-5e003d55]{color:#b91c1c;background:#fee2e2;border-radius:6px;margin-top:10px;padding:10px 14px;font-size:13px}.tag[data-v-5e003d55]{border-radius:999px;padding:2px 8px;font-size:11px;font-weight:500}.tag-green[data-v-5e003d55]{color:#16a34a;background:#dcfce7}.group-toast[data-v-5e003d55]{color:#fff;z-index:100;background:#16a34a;border-radius:999px;padding:12px 20px;font-size:14px;font-weight:500;animation:.25s toast-in-5e003d55;position:fixed;bottom:100px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #16a34a4d}@keyframes toast-in-5e003d55{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.dashboard[data-v-2051f205]{max-width:900px}.dash-header[data-v-2051f205]{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.dash-sub[data-v-2051f205]{color:var(--gray-500);margin-top:2px;font-size:13px}.header-actions[data-v-2051f205]{align-items:center;gap:10px;display:flex}.creator-tip[data-v-2051f205]{background:var(--primary-bg);color:var(--primary-text);border:1px solid var(--primary-border);cursor:pointer;transition:all var(--dur-fast) var(--ease);border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:12px;font-weight:500;display:inline-flex}.creator-tip[data-v-2051f205]:hover{background:var(--primary-bg-hover);transform:scale(1.02)}.creator-icon[data-v-2051f205]{font-size:13px}.state-block[data-v-2051f205]{text-align:center;color:var(--gray-500);border:1px dashed var(--gray-200);border-radius:var(--radius-lg);background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:80px 20px;display:flex}.empty-icon[data-v-2051f205]{font-size:48px}.session-list[data-v-2051f205]{flex-direction:column;gap:14px;display:flex}.session-card[data-v-2051f205]{border:1px solid var(--gray-200);border-radius:var(--radius-lg);transition:border-color var(--dur) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);opacity:0;animation:fadeUp .4s var(--ease-out) forwards;background:#fff;position:relative;overflow:hidden}.session-card[data-v-2051f205]:hover{border-color:var(--green-300);box-shadow:var(--shadow-lg);transform:translateY(-1px)}.session-card.status-cancelled[data-v-2051f205]{opacity:.55}.status-strip[data-v-2051f205]{background:var(--gray-300);width:3px;position:absolute;top:0;bottom:0;left:0}.status-strip.status-finalized[data-v-2051f205]{background:var(--primary)}.status-strip.status-dispatched[data-v-2051f205]{background:var(--green-400)}.status-strip.status-cancelled[data-v-2051f205]{background:var(--gray-300)}.status-strip.status-confirming[data-v-2051f205],.status-strip.status-parsing[data-v-2051f205]{background:var(--amber)}.card-body[data-v-2051f205]{padding:18px 20px 18px 24px}.card-title-row[data-v-2051f205]{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.card-title[data-v-2051f205]{color:var(--gray-900);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:15px;font-weight:600;overflow:hidden}.badge[data-v-2051f205]{border-radius:999px;flex-shrink:0;padding:3px 9px;font-size:11px;font-weight:600}.badge-done[data-v-2051f205]{background:var(--primary-bg);color:var(--primary-dark)}.badge-active[data-v-2051f205]{background:var(--green-100);color:var(--green-700);border:1px solid var(--green-200)}.badge-cancel[data-v-2051f205]{background:var(--gray-100);color:var(--gray-500)}.badge-default[data-v-2051f205]{background:var(--amber-bg);color:#92400e}.card-meta[data-v-2051f205]{color:var(--gray-500);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:14px;font-size:12px;display:flex}.progress-row[data-v-2051f205]{align-items:center;gap:10px;margin-bottom:12px;display:flex}.progress-track[data-v-2051f205]{background:var(--gray-100);border-radius:999px;flex:1;height:5px;overflow:hidden}.progress-fill[data-v-2051f205]{background:linear-gradient(90deg, var(--green-400), var(--green-600));height:100%;transition:width var(--dur-slow) var(--ease);border-radius:999px}.progress-label[data-v-2051f205]{color:var(--gray-600);flex-shrink:0;font-size:12px;font-weight:500}.signers-row[data-v-2051f205]{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.signer-chip[data-v-2051f205]{background:var(--gray-50);border:1px solid var(--gray-200);color:var(--gray-600);transition:all var(--dur-fast) var(--ease);border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;display:inline-flex}.signer-chip.signed[data-v-2051f205]{background:var(--primary-bg);border-color:var(--primary-border);color:var(--primary-text)}.chip-icon[data-v-2051f205]{font-weight:700}.card-actions[data-v-2051f205]{justify-content:flex-end;gap:8px;display:flex}.cancel-btn[data-v-2051f205]{color:var(--red)}.cancel-btn[data-v-2051f205]:hover{background:var(--red-bg)!important}.copy-tip[data-v-2051f205]{background:var(--gray-900);color:#fff;z-index:100;border-radius:999px;padding:10px 18px;font-size:13px;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000026}.toast-enter-active[data-v-2051f205],.toast-leave-active[data-v-2051f205]{transition:all .25s var(--ease-out)}.toast-enter-from[data-v-2051f205],.toast-leave-to[data-v-2051f205]{opacity:0;transform:translate(-50%)translateY(8px)}@media (width<=640px){.dash-header[data-v-2051f205]{flex-direction:column;align-items:stretch}.header-actions[data-v-2051f205]{justify-content:flex-start}.card-meta[data-v-2051f205]{font-size:11px}}html{scroll-behavior:smooth}.router-view-enter-active,.router-view-leave-active{transition:opacity .2s}.router-view-enter-from,.router-view-leave-to{opacity:0}.top-nav[data-v-731748bd]{z-index:50;border-bottom:1px solid var(--gray-200);-webkit-backdrop-filter:blur(8px);background:#fff;position:sticky;top:0}.nav-inner[data-v-731748bd]{align-items:center;gap:32px;max-width:1100px;height:56px;margin:0 auto;padding:0 20px;display:flex}.nav-logo[data-v-731748bd]{color:var(--gray-900);transition:opacity var(--dur-fast);align-items:center;gap:8px;font-size:16px;font-weight:700;text-decoration:none;display:inline-flex}.nav-logo[data-v-731748bd]:hover{opacity:.8;color:var(--gray-900)}.logo-mark[data-v-731748bd]{background:var(--primary);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;font-weight:700;display:inline-flex;box-shadow:0 2px 6px #16a34a40}.logo-text[data-v-731748bd]{letter-spacing:-.01em}.nav-links[data-v-731748bd]{align-items:center;gap:4px;margin-left:auto;display:flex}.nav-link[data-v-731748bd]{border-radius:var(--radius);color:var(--gray-600);transition:color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);padding:8px 14px;font-size:14px;font-weight:500;text-decoration:none;position:relative}.nav-link[data-v-731748bd]:hover{color:var(--primary);background:var(--primary-bg)}.nav-link.active[data-v-731748bd]{color:var(--primary);background:var(--primary-bg);font-weight:600}.nav-link.active[data-v-731748bd]:after{content:"";background:var(--primary);height:2px;animation:nav-active-in-731748bd .25s var(--ease-out);border-radius:2px;position:absolute;bottom:-8px;left:14px;right:14px}@keyframes nav-active-in-731748bd{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--green-50:#f0fdf4;--green-100:#dcfce7;--green-200:#bbf7d0;--green-300:#86efac;--green-400:#4ade80;--green-500:#22c55e;--green-600:#16a34a;--green-700:#15803d;--green-800:#166534;--green-900:#14532d;--gray-50:#fafafa;--gray-100:#f5f5f5;--gray-200:#e5e5e5;--gray-300:#d4d4d4;--gray-400:#a3a3a3;--gray-500:#737373;--gray-600:#525252;--gray-700:#404040;--gray-800:#262626;--gray-900:#171717;--primary:var(--green-600);--primary-light:var(--green-500);--primary-dark:var(--green-700);--primary-bg:var(--green-50);--primary-bg-hover:var(--green-100);--primary-border:var(--green-200);--primary-text:var(--green-800);--blue:var(--primary);--blue-dark:var(--primary-dark);--green:var(--primary);--red:#ef4444;--red-bg:#fef2f2;--amber:#f59e0b;--amber-bg:#fffbeb;--radius-sm:6px;--radius:8px;--radius-lg:12px;--radius-xl:16px;--shadow:0 1px 2px #1665340a, 0 1px 3px #1665340f;--shadow-sm:0 1px 2px #1665340a;--shadow-lg:0 4px 12px #16653414;--ease:cubic-bezier(.4, 0, .2, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--dur-fast:.15s;--dur:.25s;--dur-slow:.4s}body{background:var(--gray-50);color:var(--gray-800);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}::selection{background:var(--green-200);color:var(--green-900)}.page{max-width:800px;animation:fadeUp var(--dur) var(--ease-out);margin:0 auto;padding:32px 20px}.page-wide{max-width:1100px;animation:fadeUp var(--dur) var(--ease-out);margin:0 auto;padding:24px 20px}.card{border:1px solid var(--gray-200);border-radius:var(--radius-lg);transition:border-color var(--dur) var(--ease), transform var(--dur) var(--ease);background:#fff;padding:28px}.card:hover{border-color:var(--green-200)}.btn{border-radius:var(--radius);cursor:pointer;transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);-webkit-user-select:none;user-select:none;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:6px;padding:10px 20px;font-size:14px;font-weight:500;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-primary:disabled{background:var(--gray-300);color:var(--gray-500);cursor:not-allowed}.btn-outline{color:var(--primary);border:1.5px solid var(--primary);background:#fff}.btn-outline:hover:not(:disabled){background:var(--primary-bg)}.btn-outline:disabled{color:var(--gray-400);border-color:var(--gray-200);cursor:not-allowed}.btn-ghost{color:var(--gray-700);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--gray-100)}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(.92)}.btn-sm{padding:6px 12px;font-size:13px}.btn-xs{padding:4px 10px;font-size:12px}.input,.text-input{border:1.5px solid var(--gray-200);border-radius:var(--radius);width:100%;transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);background:#fff;outline:none;padding:9px 12px;font-size:14px}.input:focus,.text-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #22c55e1f}.tag{white-space:nowrap;border-radius:999px;align-items:center;padding:2px 10px;font-size:12px;font-weight:500;display:inline-flex}.tag-green,.tag-blue{background:var(--green-100);color:var(--green-700)}.tag-gray{background:var(--gray-100);color:var(--gray-600)}.tag-red{background:var(--red-bg);color:#b91c1c}.tag-amber{background:var(--amber-bg);color:#92400e}.loading-spin{border:2px solid var(--gray-200);border-top-color:var(--primary);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}h1{color:var(--gray-900);letter-spacing:-.01em;margin-bottom:6px;font-size:22px;font-weight:700}h2{color:var(--gray-800);margin-bottom:12px;font-size:17px;font-weight:600}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.fade-in{animation:fadeIn var(--dur) var(--ease-out)}.fade-up{animation:fadeUp var(--dur) var(--ease-out)}.pop{animation:pop var(--dur) var(--ease-out)}a{color:var(--primary);transition:color var(--dur-fast);text-decoration:none}a:hover{color:var(--primary-dark)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}
