@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=Source+Sans+3:wght@400;500;600&display=swap";:root{--color-primary-50: #eef2ff;--color-primary-100: #e0e7ff;--color-primary-200: #c7d2fe;--color-primary-300: #a5b4fc;--color-primary-400: #818cf8;--color-primary-500: #6366f1;--color-primary-600: #4f46e5;--color-primary-700: #4338ca;--color-primary-800: #3730a3;--color-primary-900: #312e81;--color-neutral-50: #fafafa;--color-neutral-100: #f5f5f4;--color-neutral-200: #e7e5e4;--color-neutral-300: #d6d3d1;--color-neutral-400: #a8a29e;--color-neutral-500: #78716c;--color-neutral-600: #57534e;--color-neutral-700: #44403c;--color-neutral-800: #292524;--color-neutral-900: #1c1917;--color-success: #059669;--color-success-light: #d1fae5;--color-error: #dc2626;--color-error-light: #fee2e2;--color-warning: #d97706;--color-warning-light: #fef3c7;--color-info: #0284c7;--color-info-light: #e0f2fe;--font-display: "Outfit", system-ui, sans-serif;--font-body: "Source Sans 3", system-ui, sans-serif;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .07), 0 2px 4px -2px rgb(0 0 0 / .07);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .08), 0 4px 6px -4px rgb(0 0 0 / .08);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .08), 0 8px 10px -6px rgb(0 0 0 / .08);--shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / .15);--shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / .05);--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1);--transition-spring: .5s cubic-bezier(.34, 1.56, .64, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);background:var(--color-neutral-100);color:var(--color-neutral-800);line-height:1.6;min-height:100vh}body:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 20% 0%,var(--color-primary-100) 0%,transparent 50%),radial-gradient(ellipse at 80% 100%,var(--color-primary-50) 0%,transparent 50%);pointer-events:none;z-index:-1}.container{max-width:1200px;margin:var(--space-8) auto;background:#fff;border-radius:var(--radius-2xl);box-shadow:var(--shadow-2xl);overflow:hidden;animation:containerEnter .6s cubic-bezier(.22,1,.36,1)}@keyframes containerEnter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.header{background:linear-gradient(135deg,var(--color-primary-700) 0%,var(--color-primary-900) 100%);color:#fff;padding:var(--space-10) var(--space-8);position:relative;overflow:hidden}.header:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(45deg,transparent 40%,rgba(255,255,255,.03) 40%,rgba(255,255,255,.03) 60%,transparent 60%),linear-gradient(-45deg,transparent 40%,rgba(255,255,255,.03) 40%,rgba(255,255,255,.03) 60%,transparent 60%);background-size:60px 60px;pointer-events:none}.header-content{position:relative;z-index:1;display:flex;align-items:center;gap:var(--space-4)}.header-logo{width:48px;height:48px;background:#ffffff26;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:1.5rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.header-text h1{font-family:var(--font-display);font-size:1.75rem;font-weight:600;letter-spacing:-.02em;margin-bottom:var(--space-1)}.header-text p{font-size:.9375rem;opacity:.85;font-weight:400}.step-indicator{display:flex;padding:var(--space-6) var(--space-8);background:var(--color-neutral-50);border-bottom:1px solid var(--color-neutral-200);gap:var(--space-2)}.step{flex:1;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);position:relative}.step:hover{background:var(--color-neutral-100)}.step-number{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;font-size:.875rem;background:var(--color-neutral-200);color:var(--color-neutral-500);transition:all var(--transition-base);flex-shrink:0}.step-content{display:flex;flex-direction:column;gap:2px;min-width:0}.step-label{font-family:var(--font-display);font-weight:500;font-size:.9375rem;color:var(--color-neutral-600);transition:color var(--transition-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.step-sublabel{font-size:.8125rem;color:var(--color-neutral-400);display:none}.step.completed .step-number{background:var(--color-success);color:#fff}.step.completed .step-number:after{content:"✓";font-size:.75rem}.step.completed .step-number span{display:none}.step.active{background:var(--color-primary-50)}.step.active .step-number{background:var(--color-primary-600);color:#fff;box-shadow:0 0 0 4px var(--color-primary-100)}.step.active .step-label{color:var(--color-primary-700);font-weight:600}.step:not(:last-child):after{content:"";position:absolute;right:-4px;top:50%;width:8px;height:2px;background:var(--color-neutral-200);transform:translateY(-50%)}.step.completed:not(:last-child):after{background:var(--color-success)}.content{padding:var(--space-10) var(--space-8);animation:contentEnter .4s ease-out}@keyframes contentEnter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.content h2{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--color-neutral-900);margin-bottom:var(--space-2);letter-spacing:-.01em}.content>p{color:var(--color-neutral-500);margin-bottom:var(--space-6)}.upload-area{border:2px dashed var(--color-neutral-300);border-radius:var(--radius-xl);padding:var(--space-16) var(--space-8);text-align:center;cursor:pointer;transition:all var(--transition-base);background:var(--color-neutral-50);position:relative;overflow:hidden}.upload-area:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,var(--color-primary-50) 0%,transparent 50%);opacity:0;transition:opacity var(--transition-base);pointer-events:none}.upload-area:hover{border-color:var(--color-primary-400);background:#fff}.upload-area:hover:before{opacity:1}.upload-area.dragover{border-color:var(--color-primary-500);background:var(--color-primary-50);transform:scale(1.01);box-shadow:var(--shadow-lg)}.upload-area.success{border-color:var(--color-success);border-style:solid;background:var(--color-success-light);cursor:default}.upload-icon{width:80px;height:80px;margin:0 auto var(--space-6);background:var(--color-primary-100);border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--color-primary-600);transition:all var(--transition-spring);position:relative;z-index:1}.upload-area:hover .upload-icon{transform:translateY(-4px);box-shadow:var(--shadow-md)}.upload-area.success .upload-icon{background:var(--color-success);color:#fff}.upload-area h2{font-family:var(--font-display);font-size:1.25rem;font-weight:600;color:var(--color-neutral-800);margin-bottom:var(--space-2);position:relative;z-index:1}.upload-area p{color:var(--color-neutral-500);font-size:.9375rem;position:relative;z-index:1}.upload-area.success h2{color:var(--color-success)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-family:var(--font-display);font-size:.9375rem;font-weight:500;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-primary{background:var(--color-primary-600);color:#fff;box-shadow:0 1px 2px #4f46e533,inset 0 1px #ffffff1a}.btn-primary:hover:not(:disabled){background:var(--color-primary-700);transform:translateY(-1px);box-shadow:0 4px 12px #4f46e54d,inset 0 1px #ffffff1a}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 2px #4f46e533}.btn-secondary{background:var(--color-neutral-100);color:var(--color-neutral-700);border:1px solid var(--color-neutral-200)}.btn-secondary:hover:not(:disabled){background:var(--color-neutral-200);border-color:var(--color-neutral-300)}.btn-success{background:var(--color-success);color:#fff;box-shadow:0 1px 2px #05966933}.btn-success:hover:not(:disabled){background:#047857;transform:translateY(-1px);box-shadow:0 4px 12px #0596694d}.btn-danger{background:var(--color-error-light);color:var(--color-error);border:1px solid rgba(220,38,38,.2)}.btn-danger:hover:not(:disabled){background:var(--color-error);color:#fff}.btn-ghost{background:transparent;color:var(--color-neutral-600)}.btn-ghost:hover:not(:disabled){background:var(--color-neutral-100)}.btn-sm{padding:var(--space-2) var(--space-4);font-size:.875rem}.btn-lg{padding:var(--space-4) var(--space-8);font-size:1rem}.form-group{margin-bottom:var(--space-5)}.form-group label{display:block;font-family:var(--font-display);font-weight:500;font-size:.875rem;color:var(--color-neutral-700);margin-bottom:var(--space-2)}.form-group input,.form-group select{width:100%;padding:var(--space-3) var(--space-4);font-family:var(--font-body);font-size:.9375rem;color:var(--color-neutral-800);background:#fff;border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);transition:all var(--transition-fast);outline:none}.form-group input::placeholder{color:var(--color-neutral-400)}.form-group input:hover{border-color:var(--color-neutral-400)}.form-group input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100)}.signer-form{background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);padding:var(--space-6);border-radius:var(--radius-xl);margin-top:var(--space-8)}.signer-form h3{font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--color-neutral-800);margin-bottom:var(--space-4)}.signer-list{margin-top:var(--space-8)}.signer-list h3{font-family:var(--font-display);font-size:.9375rem;font-weight:600;color:var(--color-neutral-700);margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-2)}.signer-item{background:#fff;border:1px solid var(--color-neutral-200);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);margin-bottom:var(--space-3);display:flex;justify-content:space-between;align-items:center;transition:all var(--transition-fast);animation:itemEnter .3s ease-out backwards}@keyframes itemEnter{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.signer-item:hover{border-color:var(--color-neutral-300);box-shadow:var(--shadow-sm)}.signer-item .info{flex:1;min-width:0}.signer-item .name{font-family:var(--font-display);font-weight:600;font-size:.9375rem;color:var(--color-neutral-800)}.signer-item .email{color:var(--color-neutral-500);font-size:.8125rem;margin-top:2px}.signer-item .color-badge{width:12px;height:12px;border-radius:50%;margin-right:var(--space-3);flex-shrink:0;box-shadow:0 0 0 2px #fff,0 0 0 3px currentColor}.field-assignment{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-3) 0;padding:var(--space-3) var(--space-4);background:#fff;border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);transition:all var(--transition-fast)}.field-assignment:hover{border-color:var(--color-neutral-300)}.field-assignment label{font-family:var(--font-display);font-weight:500;font-size:.875rem;color:var(--color-neutral-700);min-width:140px;flex-shrink:0}.field-assignment select{flex:1;padding:var(--space-2) var(--space-3);font-family:var(--font-body);font-size:.875rem;border:1px solid var(--color-neutral-300);border-radius:var(--radius-sm);background:#fff;color:var(--color-neutral-800);outline:none;transition:all var(--transition-fast)}.field-assignment select:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 2px var(--color-primary-100)}.field-assignment .status-icon{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;flex-shrink:0}.field-assignment .status-icon.assigned{background:var(--color-success-light);color:var(--color-success)}.field-assignment .status-icon.unassigned{background:var(--color-error-light);color:var(--color-error)}.success-message,.error-message,.info-box,.assigned-fields{padding:var(--space-5) var(--space-6);border-radius:var(--radius-lg);margin:var(--space-6) 0;animation:alertEnter .4s ease-out}@keyframes alertEnter{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.success-message{background:var(--color-success-light);border:1px solid rgba(5,150,105,.2)}.success-message h3{font-family:var(--font-display);font-weight:600;color:var(--color-success);margin-bottom:var(--space-2);display:flex;align-items:center;gap:var(--space-2)}.success-message p{color:#065f46;font-size:.9375rem}.error-message{background:var(--color-error-light);border:1px solid rgba(220,38,38,.2)}.error-message h3{font-family:var(--font-display);font-weight:600;color:var(--color-error);margin-bottom:var(--space-2)}.error-message p{color:#991b1b;font-size:.9375rem}.info-box{background:var(--color-info-light);border:1px solid rgba(2,132,199,.2)}.info-box h3{font-family:var(--font-display);font-weight:600;color:var(--color-info);margin-bottom:var(--space-2);display:flex;align-items:center;gap:var(--space-2)}.info-box p{color:#075985;font-size:.9375rem}.assigned-fields{background:var(--color-warning-light);border:1px solid rgba(217,119,6,.2)}.assigned-fields h3{font-family:var(--font-display);font-weight:600;color:var(--color-warning);margin-bottom:var(--space-2)}.assigned-fields p{color:#92400e;font-size:.9375rem}.assigned-fields ul{margin-top:var(--space-3);margin-left:var(--space-5);color:#92400e}.assigned-fields li{margin-bottom:var(--space-1)}.link-display{background:var(--color-neutral-100);border:1px solid var(--color-neutral-200);padding:var(--space-4);border-radius:var(--radius-md);font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:.8125rem;color:var(--color-neutral-700);word-break:break-all;margin:var(--space-4) 0;line-height:1.5}.pdf-viewer{margin-top:var(--space-6);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);overflow:hidden;background:var(--color-neutral-100)}.pdf-canvas-container{position:relative;display:flex;justify-content:center;background:var(--color-neutral-200);padding:var(--space-4)}.pdf-canvas-container canvas{display:block;max-width:100%;box-shadow:var(--shadow-xl);background:#fff}.controls{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-neutral-200);flex-wrap:wrap}.controls-left{display:flex;gap:var(--space-2)}.controls-right{margin-left:auto;display:flex;gap:var(--space-2)}.page-nav{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-neutral-100);border-radius:var(--radius-md)}.page-nav span{font-family:var(--font-display);font-weight:500;font-size:.875rem;color:var(--color-neutral-600);min-width:100px;text-align:center}.loading{text-align:center;padding:var(--space-16)}.spinner{width:40px;height:40px;border:3px solid var(--color-neutral-200);border-top-color:var(--color-primary-600);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto var(--space-4)}@keyframes spin{to{transform:rotate(360deg)}}.loading p{color:var(--color-neutral-500);font-size:.9375rem}.btn .spinner{width:16px;height:16px;border-width:2px;margin:0}.signer-view{max-width:800px;margin:0 auto}.signer-view h2{font-family:var(--font-display);font-size:1.75rem;font-weight:600;color:var(--color-neutral-900);margin-bottom:var(--space-6)}.cert-upload{background:#fff;border:1px solid var(--color-neutral-200);padding:var(--space-6);border-radius:var(--radius-xl);margin:var(--space-6) 0}.cert-upload h3{font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--color-neutral-800);margin-bottom:var(--space-2)}.cert-upload>p{color:var(--color-neutral-500);font-size:.875rem;margin-bottom:var(--space-5)}.summary-card{background:linear-gradient(135deg,var(--color-primary-600) 0%,var(--color-primary-800) 100%);color:#fff;padding:var(--space-6);border-radius:var(--radius-xl);margin:var(--space-6) 0}.summary-card h3{font-family:var(--font-display);font-weight:600;margin-bottom:var(--space-4);opacity:.9}.summary-card .stat{display:flex;justify-content:space-between;padding:var(--space-2) 0;border-bottom:1px solid rgba(255,255,255,.1)}.summary-card .stat:last-child{border-bottom:none}.summary-card .stat-label{opacity:.8}.summary-card .stat-value{font-family:var(--font-display);font-weight:600}.signing-link-card{background:#fff;border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);padding:var(--space-5);margin-bottom:var(--space-4);transition:all var(--transition-fast);animation:cardEnter .4s ease-out backwards}.signing-link-card:hover{border-color:var(--color-primary-200);box-shadow:var(--shadow-md)}.signing-link-card-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.signing-link-card .color-badge{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font-display);font-weight:600;font-size:1rem}.signing-link-card .info .name{font-family:var(--font-display);font-weight:600;color:var(--color-neutral-800)}.signing-link-card .info .email{font-size:.875rem;color:var(--color-neutral-500)}.signing-link-card-footer{display:flex;justify-content:flex-end}@keyframes cardEnter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.signing-link-card:nth-child(1){animation-delay:.1s}.signing-link-card:nth-child(2){animation-delay:.2s}.signing-link-card:nth-child(3){animation-delay:.3s}.signing-link-card:nth-child(4){animation-delay:.4s}.signing-link-card:nth-child(5){animation-delay:.5s}@media (max-width: 768px){body{padding:0}.container{margin:0;border-radius:0;min-height:100vh}.header{padding:var(--space-6) var(--space-4)}.header-text h1{font-size:1.25rem}.step-indicator{padding:var(--space-4);flex-wrap:wrap;gap:var(--space-2)}.step{flex:none;width:calc(50% - var(--space-1));padding:var(--space-3)}.step-label{font-size:.8125rem}.step:not(:last-child):after{display:none}.content{padding:var(--space-6) var(--space-4)}.upload-area{padding:var(--space-10) var(--space-4)}.controls{flex-direction:column;align-items:stretch}.controls-right{margin-left:0;justify-content:stretch}.controls-right .btn{flex:1;justify-content:center}}@media print{body{background:#fff}.container{box-shadow:none}.step-indicator,.controls,.btn{display:none}}.text-muted{color:var(--color-neutral-500)}.text-success{color:var(--color-success)}.text-error{color:var(--color-error)}.text-center{text-align:center}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
