.spv3-wrapper, .spv3-wrapper * { margin:0; padding:0; box-sizing:border-box; }
.spv3-wrapper {font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);min-height:100vh; padding:20px; line-height:1.6;}
.spv3-container { max-width:820px; margin:0 auto; background:#fff; border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.3); overflow:hidden; }
.spv3-header { background:linear-gradient(135deg,#667eea 0%,#764ba2 100%); color:#fff;padding:32px 30px 36px; text-align:center; }
.spv3-header-logo { display:block; height:56px; width:auto; margin:0 auto 18px;filter:brightness(0) invert(1); opacity:.95; }
.spv3-header h1 { font-size:32px; margin-bottom:10px; font-weight:700; }
.spv3-header p { font-size:18px; opacity:.95; }
.spv3-progress-outer { height:6px; background:rgba(255,255,255,.25); border-radius:3px;margin-top:22px; overflow:hidden; }
.spv3-progress-inner { height:100%; width:0%; background:#fff; border-radius:3px;transition:width .3s ease; }
.spv3-progress-text { font-size:13px; opacity:.85; margin-top:8px; }
.spv3-screen { display:none; padding:40px 30px; }
.spv3-screen.on { display:block; }
.spv3-intro { margin-bottom:36px; padding:25px; background:#f8f9fa; border-radius:12px;border-left:4px solid #667eea; }
.spv3-intro h2 { color:#667eea; margin-bottom:15px; }
.spv3-intro p { color:#555; margin-bottom:10px; }
.spv3-field { margin-bottom:20px; }
.spv3-field label { display:block; margin-bottom:8px; color:#333; font-weight:600; }
.spv3-field input { width:100%; padding:12px 16px; border:2px solid #e0e0e0;border-radius:8px; font-size:16px; }
.spv3-field input:focus { outline:none; border-color:#667eea; }
.spv3-field input.spv3-err { border-color:#e74c3c; }
.spv3-field .spv3-hint { font-size:13px; color:#999; margin-top:6px; font-weight:400; }
.spv3-field textarea { width:100%; padding:12px 16px; border:2px solid #e0e0e0; border-radius:8px;font-size:16px; font-family:inherit; line-height:1.5; resize:vertical; box-sizing:border-box; }
.spv3-field textarea:focus { outline:none; border-color:#667eea; }
.spv3-field textarea.spv3-err { border-color:#e74c3c; }
.spv3-errmsg { color:#e74c3c; font-size:14px; margin-top:5px; display:none; }
.spv3-consent { margin-top:18px; padding-top:18px; border-top:1px solid #e0e0e0; }
.spv3-consent label { display:flex; align-items:flex-start; gap:10px; font-size:14px;color:#555; cursor:pointer; }
.spv3-consent input[type=checkbox] { margin-top:3px; width:18px; height:18px;flex-shrink:0; accent-color:#667eea; }
.spv3-blockhead { margin:38px 0 22px; padding:14px 20px; background:#eef0fb;border-radius:10px; color:#4a3f8f; font-weight:600; font-size:15px; }
.spv3-q { margin-bottom:30px; padding:25px; border:2px solid #e0e0e0; border-radius:12px; }
.spv3-q.spv3-unanswered { border-color:#e74c3c; }
.spv3-qnum { display:inline-block; background:#667eea; color:#fff; padding:4px 12px;border-radius:20px; font-size:13px; margin-bottom:12px; }
.spv3-qtext { font-size:18px; color:#222; margin-bottom:8px; font-weight:600; line-height:1.5; }
.spv3-qsit { font-size:16px; color:#555; margin-bottom:18px; background:#fafbfc;border-left:3px solid #c7cbe8; padding:12px 16px; border-radius:6px; }
.spv3-opts { display:flex; flex-direction:column; gap:10px; }
.spv3-opt input { position:absolute; opacity:0; }
.spv3-opt label { display:block; padding:14px 18px; background:#f8f9fa; border:2px solid #e0e0e0;border-radius:8px; cursor:pointer; font-size:16px; transition:all .2s; }
.spv3-opt input:checked + label { background:#667eea; color:#fff; border-color:#667eea; font-weight:600; }
.spv3-opt label:hover { border-color:#667eea; }
.spv3-btn { background:linear-gradient(135deg,#667eea 0%,#764ba2 100%); color:#fff;border:none; padding:18px 40px; font-size:18px; font-weight:600; border-radius:8px;cursor:pointer; width:100%; margin-top:26px; transition:transform .2s, box-shadow .2s; }
.spv3-btn:hover { transform:translateY(-2px); box-shadow:0 10px 30px rgba(102,126,234,.4); }
.spv3-btn:disabled { opacity:.6; cursor:not-allowed; transform:none; }
.spv3-btn-ghost { background:none; color:#667eea; border:2px solid #d8dcf5; margin-top:12px;font-size:16px; padding:14px 30px; }
.spv3-btn-ghost:hover { box-shadow:none; border-color:#667eea; }
.spv3-banner { display:none; background:#fdecea; border:2px solid #e74c3c; color:#c0392b;padding:16px 20px; border-radius:8px; margin-bottom:20px; font-weight:600; }
.spv3-note { margin-top:18px; font-size:12px; color:#999; text-align:center; line-height:1.5; }
.spv3-loading { display:none; text-align:center; padding:60px 40px; }
.spv3-loadhint { display:none; max-width:520px; margin:22px auto 0; padding:16px 20px;background:#fff8e1; border:1px solid #ffe0a3; border-radius:10px; font-size:15px;line-height:1.5; color:#6b5320; text-align:left; }
.spv3-loadhint.on { display:block; }
.spv3-resume { padding:14px 18px; background:#eef4ff; border:1px solid #c7d8ff;border-radius:10px; font-size:15px; line-height:1.5; color:#2f4a86;margin-bottom:22px; }
.spv3-resume button { background:none; border:none; padding:0; font:inherit;color:#2f4a86; text-decoration:underline; cursor:pointer; }
.spv3-loading.on { display:block; }
.spv3-spinner { border:4px solid #f3f3f3; border-top:4px solid #667eea; border-radius:50%;width:50px; height:50px; animation:spv3spin 1s linear infinite; margin:0 auto 20px; }
@keyframes spv3spin { 0%{transform:rotate(0)} 100%{transform:rotate(360deg)} }
.spv3-res-head { text-align:center; margin-bottom:32px; padding:34px 30px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%); border-radius:12px; color:#fff; }
.spv3-res-head h2 { font-size:22px; margin-bottom:6px; font-weight:500; opacity:.95; }
.spv3-res-name { font-size:40px; font-weight:700; margin:16px 0 6px; }
.spv3-res-sub { font-size:18px; opacity:.92; margin-bottom:16px; }
.spv3-res-motto { font-size:20px; font-style:italic; }
.spv3-section { margin-bottom:26px; padding:25px; border-radius:12px; border-left:4px solid #667eea;background:#fff; }
.spv3-section h3 { color:#667eea; margin-bottom:14px; font-size:21px; }
.spv3-section p { color:#555; line-height:1.8; margin-bottom:12px; }
.spv3-section ul { list-style:none; }
.spv3-section li { padding:10px 0 10px 30px; position:relative; color:#555; line-height:1.6; }
.spv3-section li:before { content:"✓"; position:absolute; left:0; color:#667eea;font-weight:bold; font-size:18px; }
.spv3-axes { margin-bottom:26px; padding:26px; background:#f8f9fa; border-radius:12px; }
.spv3-axes h3 { margin-bottom:20px; color:#333; }
.spv3-axis { margin-bottom:20px; }
.spv3-axis-lab { display:flex; justify-content:space-between; margin-bottom:8px;font-weight:600; color:#555; font-size:15px; }
.spv3-axis-bar { height:26px; background:#e0e0e0; border-radius:13px; overflow:hidden; }
.spv3-axis-fill { height:100%; background:linear-gradient(90deg,#667eea,#764ba2);display:flex; align-items:center; justify-content:flex-end; padding-right:10px;color:#fff; font-weight:600; font-size:13px; }
.spv3-axis-ends { display:flex; justify-content:space-between; margin-top:5px;font-size:12px; color:#999; }
.spv3-lowconf { margin-bottom:26px; padding:18px 22px; background:#fff8e1;border:2px solid #f5c542; border-radius:12px; color:#7a5c00; font-size:15px; }
.spv3-guess { margin-bottom:26px; padding:22px 24px; border-radius:12px; font-size:16px; }
.spv3-guess.hit  { background:#e8f5e9; border:2px solid #66bb6a; color:#1b5e20; }
.spv3-guess.miss { background:#eef0fb; border:2px solid #8a7fd4; color:#3c3168; }
.spv3-guess b { display:block; font-size:18px; margin-bottom:8px; }
.spv3-next { margin-top:30px; padding:28px; border:2px dashed #c7cbe8; border-radius:12px;background:#fbfbff; }
.spv3-next h3 { color:#4a3f8f; font-size:20px; margin-bottom:12px; }
.spv3-next p { color:#555; margin-bottom:8px; }
.spv3-money { margin-bottom:26px; padding:28px; border-radius:12px; background:#2f2a45; color:#fff; }
.spv3-money h3 { font-size:20px; margin-bottom:18px; }
.spv3-money-row { display:flex; justify-content:space-between; align-items:baseline;padding:14px 0; border-bottom:1px solid rgba(255,255,255,.15); gap:16px; }
.spv3-money-row:last-of-type { border-bottom:none; }
.spv3-money-label { opacity:.85; font-size:15px; }
.spv3-money-val { font-size:26px; font-weight:700; white-space:nowrap; }
.spv3-money-note { margin-top:14px; font-size:14px; opacity:.75; line-height:1.6; }
.spv3-cta { margin-top:30px; padding:32px; background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px; text-align:center; color:#fff; }
.spv3-cta h3 { font-size:24px; margin-bottom:14px; }
.spv3-cta p { font-size:17px; line-height:1.6; margin-bottom:8px; }
.spv3-cta .spv3-btn { background:#fff; color:#5a4bcf; margin-top:20px; }
.spv3-cta .spv3-btn:hover { box-shadow:0 10px 30px rgba(0,0,0,.25); }
.spv3-done { text-align:center; padding:20px; font-size:17px; color:#2e7d32; font-weight:600; }