@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap";:root{--font-sans:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--bg-app:#0b0d19;--bg-card:#161a31a6;--bg-card-hover:#1c213dcc;--border-card:#ffffff14;--border-focus:#7c3aed;--color-primary:#7c3aed;--color-primary-hover:#8b5cf6;--color-secondary:#06b6d4;--color-success:#10b981;--color-danger:#ef4444;--text-primary:#f3f4f6;--text-secondary:#9ca3af;--text-muted:#6b7280;--shadow-lg:0 20px 25px -5px #0000004d, 0 10px 10px -5px #0003;--shadow-glow:0 0 25px #7c3aed4d;--border-radius:16px;font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-primary);box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}body{background:radial-gradient(circle at 100% 0,#7c3aed26,#0000 40%),radial-gradient(circle at 0 100%,#06b6d41f,#0000 45%),#070913;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;margin:0;display:flex}#root{box-sizing:border-box;flex-direction:column;justify-content:center;width:100%;max-width:1200px;min-height:100vh;padding:20px;display:flex}.glass-card{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-card);border-radius:var(--border-radius);box-shadow:var(--shadow-lg);padding:40px;transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-card:hover{background:var(--bg-card-hover);border-color:#ffffff1f}h1{background:linear-gradient(135deg,#fff 0%,#a78bfa 100%);-webkit-text-fill-color:transparent;letter-spacing:-.025em;text-align:center;-webkit-background-clip:text;margin-top:0;margin-bottom:8px;font-size:2.5rem;font-weight:700}p.subtitle{color:var(--text-secondary);text-align:center;margin-bottom:35px;font-size:1.1rem;font-weight:300}h2,h3{color:var(--text-primary);margin-top:0;font-weight:600}.form-group{flex-direction:column;align-items:flex-start;width:100%;margin-bottom:24px;display:flex}label{color:var(--text-secondary);letter-spacing:.025em;margin-bottom:8px;font-size:.9rem;font-weight:500}input,select,textarea{box-sizing:border-box;color:#fff;width:100%;font-family:var(--font-sans);background:#0a0b1780;border:1px solid #ffffff1a;border-radius:10px;padding:14px 18px;font-size:1rem;transition:all .2s}input:focus,select:focus,textarea:focus{border-color:var(--border-focus);background:#0a0b17cc;outline:none;box-shadow:0 0 0 3px #7c3aed40}select option{color:#fff;background:#0e1122}textarea{resize:vertical;min-height:86px}input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary);flex:none;padding:0}.checkbox-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:24px;display:grid}.checkbox-field{color:var(--text-primary);background:#0a0b1759;border:1px solid #ffffff1a;border-radius:10px;align-items:center;gap:10px;margin:0;padding:12px 14px;display:flex}.checkbox-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;display:grid}.checkbox-card{box-sizing:border-box;width:100%;min-height:52px;color:var(--text-primary);cursor:pointer;background:#0a0b176b;border:1px solid #ffffff1a;border-radius:12px;align-items:center;gap:12px;margin:0;padding:13px 14px;transition:border-color .2s,background .2s,transform .2s;display:flex}.checkbox-card:hover{background:#17122db8;border-color:#7c3aed8c}.checkbox-card.checked{background:linear-gradient(135deg,#7c3aed42,#06b6d424);border-color:#7c3aedd9;box-shadow:0 0 0 1px #7c3aed40}.checkbox-card input{opacity:0;pointer-events:none;position:absolute}.checkbox-card-mark{border:1px solid #ffffff38;border-radius:7px;flex:none;place-items:center;width:22px;height:22px;transition:all .2s;display:grid;position:relative}.checkbox-card-mark:after{content:"";opacity:0;border-bottom:2px solid #fff;border-left:2px solid #fff;width:9px;height:5px;transition:opacity .2s;transform:rotate(-45deg)translate(1px,-1px)}.checkbox-card.checked .checkbox-card-mark{background:var(--color-primary);border-color:#0000}.checkbox-card.checked .checkbox-card-mark:after{opacity:1}.checkbox-list-required{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.form-section-title{color:#fff;border-bottom:1px solid #ffffff1a;margin:28px 0 18px;padding-bottom:8px}.alert{text-align:left;border-radius:8px;margin-bottom:24px;padding:12px 16px;font-size:.95rem}.alert-error{color:#f87171;background:#ef444426;border:1px solid #ef44444d}.alert-success{color:#34d399;background:#10b98126;border:1px solid #10b9814d;align-items:center;gap:8px;display:flex}.table-wrap{border:1px solid #ffffff14;border-radius:12px;width:100%;margin-top:18px;overflow-x:auto}.history-table{border-collapse:collapse;width:100%;min-width:820px;color:var(--text-primary);font-size:.9rem}.history-table th,.history-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #ffffff14;padding:12px 14px}.history-table th{color:var(--text-secondary);background:#0a0b17b3;font-weight:600}.history-table tr:last-child td{border-bottom:none}.history-table tbody tr:hover{background:#ffffff0a}.contract-review-grid{grid-template-columns:1fr;gap:18px;margin-top:20px;display:grid}.review-card{background:linear-gradient(145deg,#0a0b17b8,#12183094);border:1px solid #ffffff1a;border-radius:18px;padding:18px;box-shadow:0 18px 36px #00000038}.review-details{color:var(--text-secondary);grid-template-columns:1fr 1fr;gap:8px 14px;margin:14px 0;font-size:.9rem;display:grid}.review-details strong{color:var(--text-primary)}.review-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.review-photo-thumb{cursor:pointer;background:#0a0b1780;border:1px solid #ffffff1f;border-radius:14px;min-height:112px;padding:0;position:relative;overflow:hidden;box-shadow:0 10px 24px #00000038}.review-photo-thumb img{object-fit:cover;width:100%;height:132px;transition:transform .35s,filter .35s;display:block}.review-photo-thumb:hover img{filter:brightness(1.08);transform:scale(1.06)}.review-photo-thumb span{color:#fff;font:600 .78rem var(--font-sans);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#050812c2;border-radius:999px;align-items:center;gap:6px;padding:7px 9px;display:flex;position:absolute;bottom:10px;left:10px;right:10px}.history-list-meta{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:12px;margin-top:18px;font-size:.9rem;display:flex}.pagination-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.btn-compact{min-height:auto;padding:9px 12px;font-size:.86rem}.map-link{color:var(--color-secondary);align-items:center;gap:5px;font-weight:600;text-decoration:none;display:inline-flex}.map-link:hover{color:#67e8f9;text-decoration:underline}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#030612c2;justify-content:center;align-items:center;padding:22px;animation:.22s both modalFadeIn;display:flex;position:fixed;inset:0}.modal-panel{background:linear-gradient(145deg,#0f1427fa,#140f2afa);border:1px solid #ffffff1f;border-radius:22px;width:min(940px,100%);max-height:90vh;padding:24px;animation:.28s cubic-bezier(.2,.9,.2,1) both modalPopIn;overflow:auto;box-shadow:0 30px 80px #0000008c,0 0 45px #7c3aed29}.modal-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.modal-header h3{margin:0 0 4px}.modal-header p{color:var(--text-secondary);margin:0}.icon-button{width:38px;height:38px;color:var(--text-primary);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:12px;justify-content:center;align-items:center;transition:all .2s;display:inline-flex}.icon-button:hover{background:#ffffff1f;border-color:#ffffff3d}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:18px;display:flex}.photo-modal-backdrop{background:#01030ad6}.photo-modal{width:min(920px,100%);animation:.3s cubic-bezier(.2,.9,.2,1) both photoZoomIn;position:relative}.photo-modal img{object-fit:contain;background:#070913;border:1px solid #ffffff24;border-radius:22px;width:100%;max-height:82vh;display:block;box-shadow:0 30px 90px #000000a6}.photo-modal-close{z-index:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#030612ad;position:absolute;top:14px;right:14px}.photo-modal-caption{color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#030612b3;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-weight:600;display:flex;position:absolute;bottom:18px;left:18px;right:18px}.photo-modal-caption a{color:var(--color-secondary);align-items:center;gap:6px;text-decoration:none;display:inline-flex}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalPopIn{0%{opacity:0;transform:translateY(18px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes photoZoomIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.pdf-preview-container{box-sizing:border-box;background:#111827;border:1px solid #ffffff1f;border-radius:12px;width:100%;max-height:75vh;padding:12px;overflow:auto}.pdf-preview-page{justify-content:center;margin-bottom:16px;display:flex}.pdf-preview-page:last-child{margin-bottom:0}.pdf-preview-page canvas{background:#fff;border-radius:4px;max-width:100%;box-shadow:0 12px 30px #00000059;height:auto!important}.pdf-position-canvas-wrap{box-sizing:border-box;background:#0b1020;border:1px solid #ffffff1a;border-radius:12px;width:100%;padding:12px;overflow:auto}.pdf-position-page{margin:0 auto;position:relative}.pdf-position-page canvas{background:#fff;border-radius:4px;display:block}.pdf-position-chip{color:#111827;cursor:grab;white-space:nowrap;text-overflow:ellipsis;touch-action:none;-webkit-user-select:none;user-select:none;text-shadow:0 1px #ffffffd9;background:#fbbf2429;border:1px solid #f59e0bf2;border-radius:4px;max-width:210px;padding:1px 3px;font-size:9px;font-weight:700;line-height:1;position:absolute;overflow:hidden}.pdf-position-chip:before{content:"";background:#f59e0b;border-radius:50%;width:8px;height:8px;position:absolute;bottom:-4px;left:-4px;box-shadow:0 0 0 2px #0f172ae6}.pdf-position-chip.signature{color:#fda4af;background:#f43f5e1f;border-color:#f43f5ef2;border-radius:8px}.pdf-position-chip.signature:before{background:#f43f5e}.btn{font-family:var(--font-sans);cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:14px 28px;font-size:1rem;font-weight:600;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--color-primary) 0%, #6d28d9 100%);color:#fff;box-shadow:0 4px 15px #7c3aed4d}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg, var(--color-primary-hover) 0%, #7c3aed 100%);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.btn-secondary{color:var(--text-primary);background:#ffffff0d;border:1px solid #ffffff1a}.btn-secondary:hover:not(:disabled){background:#ffffff1a;border-color:#fff3}.btn-danger{color:#f87171;background:#ef444426;border:1px solid #ef44444d}.btn-danger:hover:not(:disabled){background:#ef444440;border-color:#ef444480}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed}.signature-section{width:100%;margin-top:30px}.signature-tabs{gap:12px;margin-bottom:16px;display:flex}.tab-btn{color:var(--text-secondary);cursor:pointer;font-size:.95rem;font-weight:500;font-family:var(--font-sans);background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 16px;transition:all .2s}.tab-btn.active{color:var(--color-secondary);border-bottom-color:var(--color-secondary)}.signature-container{box-sizing:border-box;background:#0a0b1766;border:1px dashed #ffffff26;border-radius:12px;flex-direction:column;align-items:center;width:100%;padding:16px;display:flex}.signature-canvas{cursor:crosshair;touch-action:none;background:#fff;border-radius:8px;max-width:100%}.signature-actions{justify-content:flex-end;gap:12px;width:100%;margin-top:12px;display:flex}.signature-preview-img{background:#fff;border:1px solid #ffffff1a;border-radius:8px;max-height:100px;padding:4px}.qr-container{flex-direction:column;align-items:center;gap:20px;padding:24px;display:flex}.qr-box{background:#fff;border-radius:16px;justify-content:center;align-items:center;padding:16px;display:flex;box-shadow:0 10px 25px #00000080}.pulse-ring{justify-content:center;align-items:center;display:flex;position:relative}.pulse-ring:after{content:"";border:2px solid var(--color-secondary);border-radius:50%;width:100%;height:100%;animation:2s cubic-bezier(.215,.61,.355,1) infinite pulse-ring;position:absolute}@keyframes pulse-ring{0%{opacity:1;transform:scale(.95)}to{opacity:0;transform:scale(1.3)}}.form-grid{grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px;display:grid}@media (width<=768px){.form-grid{grid-template-columns:1fr;gap:0}.checkbox-grid,.checkbox-list,.review-details,.review-photo-grid{grid-template-columns:1fr}.history-list-meta{flex-direction:column;align-items:flex-start}.modal-backdrop{padding:12px}.modal-panel{border-radius:18px;padding:18px}.photo-modal-caption{flex-direction:column;align-items:flex-start;margin-top:10px;position:static}.flex-between{flex-direction:column;align-items:flex-start}.glass-card{padding:24px 16px}h1{font-size:2rem}}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.text-center{text-align:center}.text-green{color:var(--color-success)}.text-cyan{color:var(--color-secondary)}.spinner{border:3px solid #ffffff1a;border-top-color:var(--color-secondary);border-radius:50%;width:24px;height:24px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.status-badge{text-transform:uppercase;border-radius:20px;padding:6px 12px;font-size:.85rem;font-weight:600}.status-pending{color:#facc15;background:#facc1526;border:1px solid #facc154d}.status-signed{color:#34d399;background:#10b98126;border:1px solid #10b9814d}
