*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{color:#1a202c;-webkit-font-smoothing:antialiased;background:#f5f7fa;min-height:100vh;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6}#root{flex-direction:column;min-height:100vh;display:flex}:root{--primary:#1b3a5c;--secondary:#2e86ab;--accent:#27ae60;--warning:#f39c12;--danger:#e74c3c;--bg:#f5f7fa;--card:#fff;--border:#cbd5e0;--text:#1a202c;--text-muted:#718096;--label:#4a5568;--radius:8px;--shadow:0 2px 16px #00000014}.app-shell{flex-direction:column;min-height:100vh;display:flex}.party2-banner{background:var(--secondary);color:#fff;text-align:center;padding:12px 24px;font-size:14px;line-height:1.5}.party2-banner strong{margin-bottom:2px;font-size:15px;display:block}.draft-banner{color:#7b4f00;text-align:center;background:#fff8e1;border-bottom:1px solid #f39c12;padding:10px 24px;font-size:14px}.app-header{border-bottom:1px solid var(--border);background:#fff;padding:0;box-shadow:0 2px 8px #0000000f}.header-inner{flex-direction:column;align-items:flex-start;gap:0;max-width:860px;margin:0 auto;padding:18px 24px;display:flex}.header-logo{object-fit:contain;width:auto;height:100px;margin-bottom:10px}.header-org{color:var(--primary);text-align:left;font-size:17px;font-weight:700;line-height:1.2}.header-sub{color:var(--text-muted);text-align:left;margin-top:3px;font-size:13px}.app-main{flex:1;width:100%;max-width:860px;margin:32px auto;padding:0 16px 80px}.app-footer{background:var(--primary);color:#fff9;text-align:center;padding:16px 24px;font-size:13px}.card{background:var(--card);box-shadow:var(--shadow);border-radius:12px;overflow:hidden}.card-header{background:#eef3f9;border-bottom:1px solid #d0dce9;padding:24px 32px}.card-header h1{color:var(--primary);margin-bottom:6px;font-size:21px;font-weight:700}.card-header p{color:var(--text-muted);font-size:14px;line-height:1.6}.card-body{padding:32px}.progress-bar{background:#eef3f9;border-bottom:1px solid #d0dce9;justify-content:center;align-items:flex-start;gap:0;padding:24px 32px 0;display:flex}.progress-step{flex-direction:column;flex:1;align-items:center;display:flex;position:relative}.progress-step:not(:last-child):after{content:"";background:var(--border);z-index:0;width:100%;height:2px;position:absolute;top:16px;left:50%}.progress-step.completed:not(:last-child):after{background:var(--secondary)}.step-circle{border:2px solid var(--border);width:32px;height:32px;color:var(--text-muted);z-index:1;background:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:700;transition:all .2s;display:flex;position:relative}.progress-step.active .step-circle{border-color:var(--secondary);background:var(--secondary);color:#fff}.progress-step.completed .step-circle{border-color:var(--accent);background:var(--accent);color:#fff}.step-label{color:var(--text-muted);text-align:center;white-space:nowrap;margin-top:6px;padding-bottom:14px;font-size:11px;font-weight:500}.progress-step.active .step-label{color:var(--secondary);font-weight:600}.progress-step.completed .step-label{color:var(--accent)}.notice{border-radius:var(--radius);margin-bottom:24px;padding:14px 18px;font-size:14px;line-height:1.6}.notice-blue{color:#2c5282;background:#ebf8ff;border:1px solid #bee3f8}.notice-amber{color:#78350f;background:#fffbeb;border:1px solid #fcd34d}.notice-green{color:#14532d;background:#f0fdf4;border:1px solid #86efac}.form-section{margin-bottom:32px}.section-title{text-transform:uppercase;letter-spacing:.1em;color:var(--primary);border-bottom:2px solid #d0dce9;margin-bottom:20px;padding-bottom:8px;font-size:11px;font-weight:700}.field-row{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.field-row.single{grid-template-columns:1fr}.field-row.triple{grid-template-columns:1fr 1fr 1fr}@media (width<=640px){.field-row,.field-row.triple{grid-template-columns:1fr}.card-body,.card-header{padding:20px 16px}.progress-bar{padding:20px 16px 0}.step-label{font-size:10px}}.field{flex-direction:column;gap:4px;display:flex}.field label{color:var(--label);font-size:14px;font-weight:500}.field label .req{color:var(--danger);margin-left:2px}.field-note{color:var(--text-muted);margin-top:2px;font-size:12px}.field input[type=text],.field input[type=email],.field input[type=tel],.field input[type=date],.field input[type=number],.field select,.field textarea{border:1px solid var(--border);border-radius:var(--radius);height:48px;color:var(--text);background:#fff;width:100%;padding:0 14px;font-family:inherit;font-size:16px;transition:border-color .15s,box-shadow .15s}.field textarea{resize:vertical;height:auto;min-height:100px;padding:12px 14px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--secondary);outline:none;box-shadow:0 0 0 3px #2e86ab26}.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:var(--danger)}.field-error{color:var(--danger);margin-top:2px;font-size:12px}.char-count{color:var(--text-muted);text-align:right;margin-top:2px;font-size:12px}.check-item,.radio-item{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:4px 0;font-size:15px;display:flex}.check-item input[type=checkbox],.radio-item input[type=radio]{width:18px;height:18px;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.check-group{flex-direction:column;gap:6px;display:flex}.radio-group{flex-direction:column;gap:8px;display:flex}.child-row{border:1px solid var(--border);border-radius:var(--radius);background:#f7fafc;margin-bottom:12px;padding:16px;position:relative}.child-row-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.child-label{color:var(--primary);font-size:13px;font-weight:600}.btn-remove{color:var(--danger);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:13px;font-weight:600}.btn-remove:hover{text-decoration:underline}.btn-add-child{border:1px dashed var(--secondary);border-radius:var(--radius);color:var(--secondary);cursor:pointer;background:0 0;width:100%;margin-top:4px;padding:10px 20px;font-size:14px;font-weight:600;transition:background .15s}.btn-add-child:hover{background:#2e86ab0f}.review-section{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;overflow:hidden}.review-section-header{background:#eef3f9;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.review-section-header span{color:var(--primary);text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:700}.review-edit{color:var(--secondary);cursor:pointer;background:0 0;border:none;font-size:13px;font-weight:600}.review-edit:hover{text-decoration:underline}.review-table{border-collapse:collapse;width:100%;font-size:14px}.review-table td{border-bottom:1px solid #f0f4f8;padding:9px 16px}.review-table td:first-child{color:var(--label);width:45%;font-weight:500}.review-table tr:last-child td{border-bottom:none}.consent-block{border:1px solid var(--border);border-radius:var(--radius);background:#f7fafc;flex-direction:column;gap:14px;margin-bottom:24px;padding:20px;display:flex}.nav-buttons{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-top:32px;padding-top:24px;display:flex}.btn{border-radius:var(--radius);cursor:pointer;border:2px solid #0000;justify-content:center;align-items:center;gap:8px;height:48px;padding:0 28px;font-family:inherit;font-size:15px;font-weight:600;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover:not(:disabled){background:#14304e;border-color:#14304e}.btn-secondary{color:var(--primary);border-color:var(--border);background:#eef3f9}.btn-secondary:hover:not(:disabled){background:#dde6f0}.btn-outline{color:var(--text-muted);border-color:var(--border);background:0 0}.btn-outline:hover:not(:disabled){background:#f0f4f8}.btn-full{width:100%}.btn-submit{background:var(--primary);color:#fff;border-color:var(--primary);height:52px;font-size:16px}.btn-submit:hover:not(:disabled){background:#14304e}.spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-banner{border-radius:var(--radius);color:#991b1b;background:#fef2f2;border:1px solid #fecaca;margin-bottom:16px;padding:12px 16px;font-size:14px}.toast{color:#fff;z-index:1000;background:#1a202c;border-radius:8px;padding:12px 24px;font-size:14px;animation:.25s fadeInUp;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0003}@keyframes fadeInUp{0%{opacity:0;transform:translate(-50%)translateY(12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.success-screen{background:var(--card);box-shadow:var(--shadow);text-align:center;border-radius:12px;max-width:600px;margin:0 auto;padding:56px 40px}.success-check{width:72px;height:72px;margin:0 auto 24px}.success-check svg{width:72px;height:72px}.success-screen h2{color:var(--primary);margin-bottom:8px;font-size:24px}.success-screen p{color:var(--text-muted);margin-bottom:6px;font-size:15px;line-height:1.7}.token-box{border-radius:var(--radius);text-align:left;background:#eef3f9;border:1px solid #d0dce9;margin:16px auto;padding:16px 20px}.token-box .tl{text-transform:uppercase;letter-spacing:.08em;color:var(--primary);margin-bottom:5px;font-size:11px;font-weight:700}.token-box .tv{color:var(--text);word-break:break-all;font-family:ui-monospace,Consolas,monospace;font-size:14px}@keyframes drawCheck{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}.check-circle{fill:none;stroke:var(--accent);stroke-width:4px}.check-mark{fill:none;stroke:var(--accent);stroke-width:5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100;stroke-dashoffset:100px;animation:.5s .3s forwards drawCheck}@media (width<=640px){.sticky-submit{border-top:1px solid var(--border);z-index:100;background:#fff;padding:12px 16px;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 12px #00000014}.success-screen{padding:36px 20px}.header-inner{padding:14px 16px}.header-logo{width:auto!important;height:70px!important;margin-bottom:8px!important}.header-org{font-size:15px}.header-sub{font-size:12px}}@media (width<=480px){.step-label{font-size:10px!important}.step-circle{width:28px!important;height:28px!important;font-size:12px!important}}@media (width<=640px){.app-main{margin:16px auto!important;padding:.75rem .75rem 80px!important}.card-body,.card-header{padding:1rem!important}.progress-bar{padding:16px 12px 0!important}.field-row,.field-row.triple{grid-template-columns:1fr!important;gap:.75rem!important}.field input[type=text],.field input[type=email],.field input[type=tel],.field input[type=date],.field input[type=number],.field select,.field textarea{box-sizing:border-box!important;width:100%!important;min-height:48px!important;font-size:16px!important}.btn-primary,.btn-submit{width:100%!important;min-height:52px!important;font-size:16px!important}.nav-buttons{flex-direction:column!important;gap:.75rem!important}.nav-buttons .btn-outline,.nav-buttons .btn-secondary{width:100%!important;min-height:48px!important}.check-item input[type=checkbox],.radio-item input[type=radio]{width:22px!important;min-width:22px!important;height:22px!important}.check-item,.radio-item{padding:.5rem 0!important}.review-table td:first-child{font-weight:600;display:block;width:auto!important}.review-table td{display:block;padding:6px 16px!important}.review-table tr{border-bottom:1px solid #f0f4f8;display:block}.review-table tr:last-child{border-bottom:none}.notice{padding:.75rem!important;font-size:13px!important}.app-footer{padding:1rem!important;font-size:12px!important}.success-screen{text-align:center!important;padding:1.5rem 1rem!important}.token-box .tv{word-break:break-all!important;font-size:12px!important}.party2-banner{padding:10px 12px;font-size:13px}}@media (width>=641px) and (width<=1024px){.app-main{padding:1.5rem 1rem 80px!important}.header-inner{padding:16px 20px!important}}
