:root{--ink:#1a1f2e;--ink-muted:#415a77;--paper:#f8f5ef;--paper-deep:#ede8df;--accent:#c1121f;--accent-soft:#c1121f1a;--success:#2d6a4f;--success-soft:#2d6a4f1a;--error:#9d0208;--error-soft:#9d020814;--border:#1a1f2e1f;--shadow:0 18px 50px #1a1f2e1f;--radius:12px;--radius-sm:8px;--display:"Fraunces", Georgia, serif;--body:"Source Sans 3", system-ui, sans-serif;font-family:var(--body);color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.5}*,:before,:after{box-sizing:border-box}body{min-height:100svh;margin:0}#root{min-height:100svh}h1,h2,h3{font-family:var(--display);margin:0;font-weight:500;line-height:1.15}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}.app{max-width:1100px;margin:0 auto;padding:0 24px 64px}.site-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:24px 0;display:flex}.logo{color:var(--ink);font-family:var(--display);align-items:center;gap:10px;font-size:1.35rem;text-decoration:none;display:flex}.logo strong{color:var(--accent);font-weight:700}.header-badge{color:var(--ink-muted);background:var(--paper-deep);border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.85rem;display:flex}.hero{max-width:680px;padding:56px 0 48px}.hero-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 16px;font-size:.8rem;font-weight:600}.hero h1{letter-spacing:-.02em;margin-bottom:20px;font-size:clamp(2.2rem,5vw,3.4rem)}.hero h1 em{color:var(--ink-muted);font-style:italic}.hero-lead{color:var(--ink-muted);max-width:540px;margin:0 0 32px;font-size:1.125rem}.hero-stats{gap:32px;display:flex}.hero-stats div{flex-direction:column;display:flex}.hero-stats strong{font-family:var(--display);color:var(--ink);font-size:1.75rem}.hero-stats span{color:var(--ink-muted);font-size:.85rem}.tools-section{padding-top:16px}.section-head{margin-bottom:28px}.section-head h2{margin-bottom:8px;font-size:1.6rem}.section-head p{color:var(--ink-muted);margin:0}.tool-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.tool-card{text-align:left;border:1px solid var(--border);border-radius:var(--radius);background:#fff;padding:20px;transition:border-color .15s,box-shadow .15s,transform .15s}.tool-card:hover{box-shadow:var(--shadow);border-color:#c1121f59;transform:translateY(-2px)}.tool-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tool-icon{background:var(--accent-soft);width:44px;height:44px;color:var(--accent);border-radius:var(--radius-sm);place-items:center;margin-bottom:14px;display:grid}.tool-card h3{margin-bottom:6px;font-size:1.05rem}.tool-card p{color:var(--ink-muted);margin:0;font-size:.875rem;line-height:1.45}.site-footer{border-top:1px solid var(--border);color:var(--ink-muted);margin-top:64px;padding-top:32px;font-size:.9rem}.site-footer p{margin:0 0 8px}.footer-note{opacity:.75;font-size:.8rem}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1a1f2e73;justify-content:center;align-items:flex-end;padding:16px;display:flex;position:fixed;inset:0}@media (width>=640px){.modal-overlay{align-items:center}}.modal{border-radius:var(--radius);width:100%;max-width:640px;max-height:90svh;box-shadow:var(--shadow);background:#fff;flex-direction:column;animation:.25s slideUp;display:flex}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.modal{animation:none}}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 24px;display:flex}.modal-title{align-items:flex-start;gap:14px;display:flex}.modal-title svg{color:var(--accent);flex-shrink:0;margin-top:2px}.modal-title h2{margin-bottom:4px;font-size:1.25rem}.modal-title p{color:var(--ink-muted);margin:0;font-size:.875rem}.modal-body{flex:1;padding:20px 24px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border);padding:16px 24px 20px}.dropzone-wrap{margin-bottom:16px}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--ink-muted);cursor:pointer;padding:32px 20px;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.dragging{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.dropzone:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dropzone p{color:var(--ink);margin:10px 0 4px;font-weight:500}.dropzone-hint{font-size:.8rem}.file-list{margin:12px 0 0;padding:0;list-style:none}.file-list li{background:var(--paper);border-radius:var(--radius-sm);align-items:center;gap:10px;margin-bottom:6px;padding:10px 12px;font-size:.9rem;display:flex}.file-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.file-size{color:var(--ink-muted);font-size:.8rem}.btn{border-radius:var(--radius-sm);border:none;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px 20px;font-weight:600;display:inline-flex}.btn.primary{background:var(--ink);color:#fff}.btn.primary:hover:not(:disabled){background:#2a3145}.icon-btn{border:1px solid var(--border);border-radius:var(--radius-sm);width:36px;height:36px;color:var(--ink);background:#fff;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover:not(:disabled){border-color:var(--ink-muted)}.icon-btn.danger:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tool-options{flex-direction:column;gap:14px;margin-top:16px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field span{font-size:.85rem;font-weight:600}.field input,.field select{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;padding:10px 12px}.field input:focus,.field select:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.field small{color:var(--ink-muted);font-size:.8rem}fieldset{border:none;margin:0;padding:0}legend{margin-bottom:8px;font-size:.85rem;font-weight:600}.radio-label{cursor:pointer;align-items:center;gap:8px;margin-bottom:6px;font-size:.9rem;display:flex}.metadata-form .meta-readonly{color:var(--ink-muted);margin:4px 0 0;font-size:.8rem}.feedback{border-radius:var(--radius-sm);margin:16px 0 0;padding:10px 14px;font-size:.9rem}.feedback.error{background:var(--error-soft);color:var(--error)}.feedback.success{background:var(--success-soft);color:var(--success)}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.page-organizer{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin-top:16px;display:grid}.page-card{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;padding:10px}.page-thumb{aspect-ratio:3/4;border:1px solid var(--border);background:#fff;border-radius:4px;margin-bottom:8px;overflow:hidden}.page-thumb img{object-fit:contain;width:100%;height:100%}.page-thumb-loading{background:linear-gradient(90deg, var(--paper-deep) 25%, #fff 50%, var(--paper-deep) 75%);background-size:200% 100%;width:100%;height:100%;animation:1.2s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.page-label{color:var(--ink-muted);margin-bottom:6px;font-size:.75rem;display:block}.page-actions{justify-content:center;gap:4px;display:flex}.page-actions .icon-btn{width:28px;height:28px}.tabbed-viewer{margin-top:16px}.viewer-tabs{gap:4px;margin-bottom:4px;padding-bottom:8px;display:flex;overflow-x:auto}.viewer-tab{border:1px solid var(--border);border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--paper);flex-shrink:0;align-items:center;display:flex}.viewer-tab.active{z-index:1;background:#fff;border-bottom-color:#fff;position:relative}.viewer-tab-btn{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;max-width:160px;padding:8px 10px;font-size:.8rem;font-weight:500;overflow:hidden}.viewer-tab.active .viewer-tab-btn{color:var(--ink)}.viewer-tab-close{width:28px;height:28px;color:var(--ink-muted);border:none;border-left:1px solid var(--border);background:0 0;justify-content:center;align-items:center;display:flex}.viewer-tab-close:hover{color:var(--accent)}.pdf-viewer{border:1px solid var(--border);border-radius:var(--radius);margin-top:16px;overflow:hidden}.viewer-toolbar{background:var(--paper);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.viewer-page-info{min-width:100px;font-size:.875rem;font-weight:500}.viewer-zoom{align-items:center;gap:6px;margin-left:auto;font-size:.85rem;display:flex}.viewer-canvas{background:var(--paper-deep);justify-content:center;min-height:200px;padding:16px;display:flex}.viewer-canvas img{max-width:100%;box-shadow:0 4px 20px #0000001f}.viewer-loading{color:var(--ink-muted);padding:40px}.modal-wide{max-width:820px}.annotation-editor,.signature-editor{margin-top:16px}.ann-toolbar,.sig-place-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.ann-tools,.sig-mode-tabs{flex-wrap:wrap;gap:6px;display:flex}.ann-tool,.sig-tab{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;align-items:center;gap:6px;padding:8px 12px;font-size:.85rem;font-weight:500;display:inline-flex}.ann-tool.active,.sig-tab.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.ann-page-nav{align-items:center;gap:8px;font-size:.875rem;display:flex}.ann-canvas{border:1px solid var(--border);border-radius:var(--radius);background:var(--paper-deep);overflow:hidden}.ann-overlay{cursor:crosshair;line-height:0;position:relative}.ann-overlay img{-webkit-user-select:none;user-select:none;width:100%;display:block}.sig-overlay{cursor:pointer}.ann-preview{pointer-events:none;position:absolute}.ann-preview-highlight{background:#ffeb3b73;border:1px solid #ffc107cc}.ann-preview-underline{background:var(--accent)}.ann-list{margin:12px 0 0;padding:0;list-style:none}.ann-list li{background:var(--paper);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;padding:8px 10px;font-size:.85rem;display:flex}.ann-hint,.sig-place-header p{color:var(--ink-muted);margin:10px 0 0;font-size:.8rem}.signature-pad{flex-direction:column;gap:12px;display:flex}.sig-canvas-wrap{position:relative}.sig-canvas{border:1px solid var(--border);border-radius:var(--radius-sm);touch-action:none;cursor:crosshair;background:#fff;width:100%}.sig-clear{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;padding:4px 10px;font-size:.75rem;position:absolute;top:8px;right:8px}.sig-upload{border:2px dashed var(--border);border-radius:var(--radius);cursor:pointer;color:var(--ink-muted);align-items:center;gap:10px;padding:20px;display:flex}.sig-upload:hover{border-color:var(--accent);background:var(--accent-soft)}.sig-placement-preview{pointer-events:none;object-fit:contain;position:absolute}.form-filler{flex-direction:column;gap:12px;margin-top:16px;display:flex}.form-count,.form-status{color:var(--ink-muted);margin:0;font-size:.85rem}.form-field .field select{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;padding:10px 12px}.checkbox-field{cursor:pointer;align-items:center;gap:8px;font-size:.9rem;display:flex}.radio-group{flex-direction:column;gap:4px;display:flex}
