:root{--primary: #1a73e8;--primary-dark: #1557b0;--primary-light: #e8f0fe;--success: #0f9d58;--success-dark: #0b7a45;--danger: #ea4335;--warning: #f9ab00;--text: #202124;--text-secondary: #5f6368;--bg: #f8f9fa;--surface: #ffffff;--border: #dadce0;--shadow-sm: 0 1px 3px rgba(0,0,0,.12);--shadow-md: 0 4px 12px rgba(0,0,0,.15);--shadow-lg: 0 8px 24px rgba(0,0,0,.2);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--transition: .2s ease;--max-width: 900px;--header-height: 64px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh;min-height:100dvh;overflow-x:hidden;-webkit-font-smoothing:antialiased}#app{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.app-header{background:var(--primary);color:#fff;padding:16px 20px;position:sticky;top:0;z-index:100;box-shadow:var(--shadow-sm)}.header-content{max-width:var(--max-width);margin:0 auto}.app-title{font-size:1.25rem;font-weight:600;display:flex;align-items:center;gap:8px}.logo-icon{width:24px;height:24px}.app-subtitle{font-size:.8rem;opacity:.85;margin-top:2px}.main-content{flex:1;max-width:var(--max-width);margin:0 auto;padding:20px;width:100%}.step{display:none;animation:fadeIn .3s ease}.step.active{display:block}.step.hidden{display:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.upload-area{border:2px dashed var(--border);border-radius:var(--radius-lg);padding:48px 24px;text-align:center;cursor:pointer;transition:all var(--transition);background:var(--surface)}.upload-area:hover,.upload-area:focus-visible,.upload-area.dragover{border-color:var(--primary);background:var(--primary-light)}.upload-area:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.upload-icon svg{width:56px;height:56px;color:var(--primary);margin-bottom:16px}.upload-text{font-size:1.1rem;font-weight:500;margin-bottom:8px}.upload-hint{font-size:.85rem;color:var(--text-secondary)}.file-info{margin-top:16px;padding:12px 16px;background:var(--primary-light);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:space-between;gap:12px}.file-info.hidden{display:none}.file-info-name{font-weight:500;word-break:break-all}.file-info-size{font-size:.85rem;color:var(--text-secondary);white-space:nowrap}.progress-bar{margin-top:16px;height:6px;background:var(--border);border-radius:3px;overflow:hidden}.progress-bar.hidden{display:none}.progress-fill{height:100%;background:var(--primary);border-radius:3px;transition:width .3s ease;width:0%}.viewer-toolbar{display:flex;align-items:center;justify-content:center;gap:4px;padding:10px 12px;background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);margin-bottom:12px;flex-wrap:wrap}.toolbar-separator{width:1px;height:24px;background:var(--border);margin:0 4px}.page-info{font-size:.9rem;font-weight:500;min-width:60px;text-align:center}.pdf-container{position:relative;background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);overflow:auto;max-height:60vh}.pdf-canvas-wrapper{position:relative;display:inline-block;margin:0 auto}#pdfCanvas{display:block}.signature-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.signature-overlay .placed-signature{position:absolute;cursor:move;pointer-events:all;outline:2px dashed var(--primary);outline-offset:-2px;transition:outline-color var(--transition),box-shadow var(--transition);touch-action:none;-webkit-user-select:none;user-select:none;box-sizing:content-box}.signature-overlay .placed-signature:hover,.signature-overlay .placed-signature.selected{outline-color:var(--primary-dark);box-shadow:var(--shadow-md)}.signature-overlay .placed-signature img{width:100%;height:100%;display:block;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}.signature-overlay .placed-signature .sig-delete{position:absolute;top:-14px;right:-14px;width:28px;height:28px;background:var(--danger);color:#fff;border:none;border-radius:50%;font-size:18px;font-weight:700;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;pointer-events:all;box-shadow:var(--shadow-sm);z-index:10}.signature-overlay .placed-signature .sig-delete:hover{background:#c62828;transform:scale(1.1)}.signature-overlay .placed-signature .sig-resize{position:absolute;bottom:-8px;right:-8px;width:20px;height:20px;background:var(--primary);border:2px solid white;border-radius:50%;cursor:nwse-resize;pointer-events:all;touch-action:none;box-shadow:var(--shadow-sm);z-index:10}.signature-overlay .placed-signature .sig-resize:hover{transform:scale(1.2)}.viewer-actions{display:flex;gap:12px;margin-top:16px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border:none;border-radius:var(--radius-sm);font-size:.95rem;font-weight:500;cursor:pointer;transition:all var(--transition);text-decoration:none;white-space:nowrap}.btn svg{width:18px;height:18px}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark);box-shadow:var(--shadow-sm)}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:var(--success-dark)}.btn-outline{background:transparent;color:var(--text);border:1px solid var(--border)}.btn-outline:hover{background:var(--bg)}.btn-sm{padding:8px 12px;font-size:.85rem}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:transparent;cursor:pointer;transition:background var(--transition);color:var(--text)}.btn-icon:hover{background:var(--bg)}.btn-icon:disabled{opacity:.4;cursor:not-allowed}.btn-icon svg{width:20px;height:20px}.btn.hidden{display:none}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center}.modal.hidden{display:none}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;animation:fadeIn .2s ease}.modal-content{position:relative;background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:1.1rem}.btn-close{color:var(--text-secondary)}.modal-body{padding:20px}.modal-footer{display:flex;gap:12px;justify-content:flex-end;padding:16px 20px;border-top:1px solid var(--border)}.signature-tabs{display:flex;gap:4px;margin-bottom:16px;background:var(--bg);border-radius:var(--radius-sm);padding:4px}.tab-btn{flex:1;padding:10px;border:none;border-radius:6px;background:transparent;font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition);color:var(--text-secondary)}.tab-btn.active{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-sm)}.tab-content{display:none}.tab-content.active{display:block}.tab-content.hidden{display:none}.signature-canvas{width:100%;height:180px;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:crosshair;touch-action:none;background:#fff}.signature-tools{display:flex;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}.color-picker-label,.size-picker-label{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text-secondary)}.color-picker{width:32px;height:32px;border:none;border-radius:4px;cursor:pointer}.size-picker{width:80px}.signature-text-input{width:100%;padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:1rem;outline:none;transition:border-color var(--transition)}.signature-text-input:focus{border-color:var(--primary)}.font-options{display:flex;gap:8px;margin-top:12px}.font-btn{flex:1;padding:10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;font-size:.9rem;transition:all var(--transition)}.font-btn.active{border-color:var(--primary);background:var(--primary-light)}.signature-preview{margin-top:16px;padding:20px;border:1px solid var(--border);border-radius:var(--radius-sm);min-height:80px;display:flex;align-items:center;justify-content:center;font-size:1.8rem;background:#fff}.toast-container{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:2000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{padding:12px 20px;border-radius:var(--radius-sm);background:var(--text);color:#fff;font-size:.9rem;box-shadow:var(--shadow-md);animation:toastIn .3s ease;pointer-events:auto}.toast.error{background:var(--danger)}.toast.success{background:var(--success)}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (min-width: 768px){.modal-content{border-radius:var(--radius-lg);margin:auto}.modal{align-items:center;padding:20px}@keyframes slideUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.pdf-container{max-height:70vh}.upload-area{padding:64px 32px}}@media (max-width: 380px){.viewer-toolbar{gap:4px}.btn{padding:10px 14px;font-size:.85rem}.viewer-actions{flex-direction:column}.viewer-actions .btn{justify-content:center}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-footer{text-align:center;padding:16px 20px;font-size:.75rem;color:var(--text-secondary);border-top:1px solid var(--border);margin-top:auto}@media (prefers-color-scheme: dark){:root{--primary: #8ab4f8;--primary-dark: #669df6;--primary-light: #1e3a5f;--success: #81c995;--success-dark: #5bb974;--danger: #f28b82;--warning: #fdd663;--text: #e8eaed;--text-secondary: #9aa0a6;--bg: #1f1f1f;--surface: #2d2d2d;--border: #3c4043;--shadow-sm: 0 1px 3px rgba(0,0,0,.3);--shadow-md: 0 4px 12px rgba(0,0,0,.4);--shadow-lg: 0 8px 24px rgba(0,0,0,.5)}.app-header{background:#1a1a2e}.signature-canvas,.signature-preview{background:#1a1a1a}.signature-text-input{background:var(--surface);color:var(--text)}.modal-backdrop{background:#000000b3}.toast{background:#3c4043}}
