#root{width:100%;height:100vh}*{margin:0;padding:0;box-sizing:border-box}:root{--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-danger: #ef4444;--color-danger-hover: #dc2626;--color-bg: #0a0a0f;--color-surface: #161b22;--color-border: #30363d;--color-text: #e6edf3;--color-text-secondary: #8b949e;--radius: 6px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-header-compact{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:8px 16px;display:flex;align-items:center}.app-title-compact{font-size:18px;font-weight:600;background:linear-gradient(120deg,#8b5cf6,#3b82f6,#06b6d4);background-clip:text;-webkit-background-clip:text;color:transparent}.app-main{flex:1;overflow:auto;display:flex}.error-banner{background:#ef444426;color:var(--color-danger);padding:8px 16px;display:flex;align-items:center;justify-content:space-between;font-size:14px}.error-banner button{background:none;border:none;color:var(--color-danger);font-size:18px;cursor:pointer;padding:0 4px}.toolbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:8px 12px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.toolbar-group{display:flex;align-items:center;gap:4px}.toolbar-btn{padding:6px 12px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font-size:13px;cursor:pointer;min-height:36px;min-width:36px;display:flex;align-items:center;justify-content:center;transition:background-color .15s,border-color .15s;white-space:nowrap}.toolbar-btn:hover:not(:disabled){background:var(--color-bg)}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.toolbar-btn.active,.toolbar-btn.primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.toolbar-btn.primary:hover:not(:disabled){background:var(--color-primary-hover)}.toolbar-btn.danger{color:var(--color-danger);border-color:var(--color-danger)}.toolbar-btn.danger:hover:not(:disabled){background:#ef444426}.toolbar-label{font-size:13px;color:var(--color-text-secondary);min-width:40px;text-align:center;-webkit-user-select:none;user-select:none}.pdf-uploader{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;margin:24px;border:2px dashed var(--color-border);border-radius:12px;cursor:pointer;transition:border-color .2s,background-color .2s}.pdf-uploader:hover{border-color:var(--color-primary);background:#3b82f614}.pdf-uploader-content{text-align:center}.pdf-uploader-icon{font-size:48px;margin-bottom:12px}.pdf-uploader-title{font-size:18px;font-weight:500;margin-bottom:4px}.pdf-uploader-subtitle{font-size:14px;color:var(--color-text-secondary)}.pdf-viewer{flex:1;display:flex;justify-content:center;padding:16px;overflow:auto}.pdf-page-container{position:relative;box-shadow:0 2px 12px #00000080;background:#fff;align-self:flex-start}.pdf-canvas{display:block}.annotation-layer{position:absolute;top:0;left:0}.annotation-layer.cursor-crosshair{cursor:crosshair}.annotation-layer.cursor-text{cursor:text}.annotation{position:absolute;-webkit-user-select:none;user-select:none;touch-action:none}.annotation.selected{outline:2px solid var(--color-primary);outline-offset:1px}.annotation-text{color:#000;white-space:nowrap;overflow:visible;pointer-events:none}.resize-handle{position:absolute;right:-5px;bottom:-5px;width:10px;height:10px;background:var(--color-primary);border-radius:2px;cursor:nwse-resize;touch-action:none}.delete-btn{position:absolute;top:-10px;right:-10px;width:20px;height:20px;border-radius:50%;background:var(--color-danger);color:#fff;border:none;cursor:pointer;font-size:14px;line-height:20px;display:flex;align-items:center;justify-content:center;padding:0}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--color-surface);border-radius:12px;padding:20px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-title{font-weight:600;font-size:16px;margin-bottom:12px}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.signature-canvas{width:100%;height:200px;border:1px solid var(--color-border);border-radius:var(--radius);touch-action:none}.text-input{width:100%;padding:8px 12px;font-size:16px;border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:12px;background:var(--color-bg);color:var(--color-text)}.text-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #3b82f64d}.font-size-selector{display:flex;align-items:center;gap:8px;margin-bottom:12px}.font-size-selector label{font-size:14px;color:var(--color-text-secondary)}.font-size-selector select{padding:4px 8px;border:1px solid var(--color-border);border-radius:var(--radius);font-size:14px;background:var(--color-bg);color:var(--color-text)}.preset-buttons{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}@media(max-width:640px){.toolbar{gap:6px;padding:6px 8px}.toolbar-btn{min-height:44px;min-width:44px;font-size:13px;padding:6px 8px}.signature-canvas{height:300px}.pdf-viewer{padding:8px}.pdf-uploader{margin:12px}.app-title-compact{font-size:16px}.hero-header{padding:32px 16px 16px}.hero-title{font-size:32px}.hero-tagline{font-size:16px}}@keyframes glow-shimmer{0%{background-position:-200% center}to{background-position:200% center}}.hero-header{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px 24px;text-align:center}.hero-title{font-size:48px;font-weight:700;letter-spacing:-1px;background:linear-gradient(120deg,#8b5cf6,#3b82f6,#06b6d4,#8b5cf6,#3b82f6,#06b6d4);background-size:200% auto;background-clip:text;-webkit-background-clip:text;color:transparent;animation:glow-shimmer 4s linear infinite;position:relative}.hero-title:after{content:"PDF Signer";position:absolute;top:0;left:0;right:0;background:inherit;background-size:inherit;background-clip:text;-webkit-background-clip:text;color:transparent;filter:blur(24px);opacity:.4;z-index:-1;animation:inherit}.hero-tagline{font-size:18px;font-weight:400;color:var(--color-text);margin-top:12px;opacity:.9}.hero-subtitle{font-size:14px;font-weight:400;color:var(--color-text-secondary);margin-top:8px}@media(prefers-reduced-motion:reduce){.hero-title,.hero-title:after{animation:none}}
