.so-wrap{min-height:calc(100vh - 200px);display:flex;align-items:center;justify-content:center;padding:40px 20px;background:#f9fafb}.so-container{max-width:520px;width:100%}.so-header{text-align:center;margin-bottom:40px}.so-header h1{font-family:"Source Sans 3",sans-serif;font-size:32px;font-weight:800;margin-bottom:8px;color:#1a1a2e}.so-header p{color:#6b7280;font-size:16px}.so-card{background:#fff;border-radius:12px;padding:32px;box-shadow:0 1px 3px #0000001a}.so-section{margin-bottom:32px}.so-section:last-child{margin-bottom:0}.so-section-title{font-weight:600;font-size:15px;margin-bottom:16px;color:#1a1a2e;display:block}.so-section-help{font-size:13px;color:#6b7280;margin-bottom:12px}.so-form-group{margin-bottom:20px}.so-form-label{display:block;font-weight:500;font-size:14px;margin-bottom:8px;color:#374151}.so-form-label .required{color:#e6005c}.so-form-input{width:100%;padding:12px 14px;border:2px solid #e5e7eb;border-radius:8px;font-size:15px;font-family:inherit;transition:all .2s;color:#1a1a2e;background:#fff}.so-form-input:focus{outline:none;border-color:#e6005c}.so-form-input::-moz-placeholder{color:#9ca3af}.so-form-input::placeholder{color:#9ca3af}.so-form-help{font-size:13px;color:#6b7280;margin-top:6px}.so-radio-group{display:flex;flex-direction:column;gap:12px}.so-radio-card{position:relative;border:2px solid #e5e7eb;border-radius:10px;padding:16px;cursor:pointer;transition:all .2s}.so-radio-card:hover{border-color:#d1d5db}.so-radio-card input[type=radio]{position:absolute;opacity:0}.so-radio-card input[type=radio]:checked~.so-radio-content .so-radio-dot{border-color:#e6005c}.so-radio-card input[type=radio]:checked~.so-radio-content .so-radio-dot:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:10px;height:10px;background:#e6005c;border-radius:50%}.so-radio-card input[type=radio]:checked~.so-radio-content .so-radio-title{color:#e6005c}input[type=radio]:checked+label.so-radio-card,.so-radio-card:has(input[type=radio]:checked){border-color:#e6005c}.so-radio-content{display:flex;align-items:flex-start;gap:12px}.so-radio-dot{width:20px;height:20px;border:2px solid #d1d5db;border-radius:50%;flex-shrink:0;margin-top:2px;position:relative}.so-radio-text{flex:1}.so-radio-title{font-weight:600;font-size:15px;margin-bottom:4px;display:flex;align-items:center;gap:8px;color:#1a1a2e}.so-radio-price{font-weight:700;color:#e6005c;font-size:14px}.so-radio-description{font-size:14px;color:#6b7280;line-height:1.5}.so-checkbox-group{display:flex;align-items:flex-start;gap:10px}.so-checkbox-group input[type=checkbox]{width:18px;height:18px;margin-top:2px;cursor:pointer;accent-color:#e6005c}.so-checkbox-group label{font-size:14px;color:#374151;cursor:pointer;flex:1}.so-checkbox-group label a{color:#e6005c;text-decoration:none}.so-checkbox-group label a:hover{text-decoration:underline}.so-btn-primary{width:100%;padding:14px;background:#e6005c;color:#fff;border:none;border-radius:8px;font-weight:700;font-size:16px;cursor:pointer;transition:all .2s;font-family:inherit}.so-btn-primary:hover{background:#c00050}.so-btn-primary:disabled{background:#d1d5db;cursor:not-allowed}.so-btn-loading{display:inline-flex;align-items:center;gap:8px}.so-spinner{width:20px;height:20px;animation:so-spin 1s linear infinite}.so-spinner circle{stroke:currentColor;stroke-linecap:round;stroke-dasharray:60;stroke-dashoffset:45;fill:none}@keyframes so-spin{to{transform:rotate(360deg)}}.so-info-box{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:14px;font-size:14px;color:#0369a1;margin-top:20px}.so-info-box strong{display:block;margin-bottom:4px}.so-form-error{padding:12px 16px;background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;color:#dc2626;font-size:14px;margin-bottom:20px;display:none}.so-form-error.visible{display:block}.so-auth-prompt{text-align:center;padding:24px 0}.so-auth-prompt p{color:#6b7280;font-size:15px;margin-bottom:24px}.so-auth-actions{display:flex;flex-direction:column;gap:12px}.so-auth-actions a{display:block;padding:14px;border-radius:8px;font-weight:700;font-size:16px;text-align:center;text-decoration:none;transition:all .2s;font-family:inherit}.so-auth-actions .so-btn-register{background:#e6005c;color:#fff}.so-auth-actions .so-btn-register:hover{background:#c00050}.so-auth-actions .so-btn-login{background:#fff;color:#374151;border:2px solid #e5e7eb}.so-auth-actions .so-btn-login:hover{background:#f9fafb}@media (max-width: 640px){.so-wrap{padding:20px}.so-header h1{font-size:26px}.so-card{padding:24px}}
