/* ── 色彩系統（刻意跟 Apple 官方視覺做區隔：靛藍＋玫瑰金，非藍紫橘）── */
:root{
  --bg:#0b0c14; --surface:rgba(255,255,255,.055); --surface2:rgba(255,255,255,.03);
  --border:rgba(255,255,255,.09); --text:#f1f1f6; --text2:rgba(241,241,246,.6); --text3:rgba(241,241,246,.38);
  --accent:#6366f1; --accent-soft:rgba(99,102,241,.16); --rose:#fb7185; --rose-soft:rgba(251,113,133,.15);
  --teal:#2dd4bf; --teal-soft:rgba(45,212,191,.15); --amber:#fbbf24; --amber-soft:rgba(251,191,36,.15);
  --radius:22px;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{height:-webkit-fill-available}
body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"PingFang TC","Helvetica Neue",sans-serif;
  min-height:100vh;min-height:-webkit-fill-available;overflow-x:hidden;overscroll-behavior-y:none;
  word-break:keep-all;overflow-wrap:break-word;-webkit-text-size-adjust:100%}
.bg-glow{position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(ellipse 70% 50% at 15% 15%,rgba(99,102,241,.16) 0%,transparent 60%),
             radial-gradient(ellipse 60% 45% at 85% 75%,rgba(251,113,133,.10) 0%,transparent 55%),
             radial-gradient(ellipse 50% 40% at 50% 100%,rgba(45,212,191,.08) 0%,transparent 60%)}
.app-shell{position:relative;z-index:1;max-width:640px;margin:0 auto;
  padding:28px 20px calc(80px + env(safe-area-inset-bottom)) 20px;
  padding-left:calc(20px + env(safe-area-inset-left));padding-right:calc(20px + env(safe-area-inset-right));
  min-height:100vh;min-height:-webkit-fill-available}

/* 進度條 */
.progress-wrap{margin-bottom:28px}
.progress-track{height:6px;border-radius:99px;background:var(--surface2);overflow:hidden;border:1px solid var(--border)}
.progress-fill{height:100%;width:0%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--rose));transition:width .35s ease}
.progress-label{margin-top:8px;font-size:11px;color:var(--text3);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}

/* 畫面切換 */
.screen{display:none}
.screen.active{display:block;animation:fadeUp .35s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* 卡片 */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:34px 30px;
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);position:relative;overflow:hidden}
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),transparent)}

/* 封面 */
.intro-card{text-align:center;padding:48px 32px}
.intro-icon{width:72px;height:72px;border-radius:20px;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);border:1px solid rgba(99,102,241,.3)}
.done-icon{background:var(--teal-soft);color:var(--teal);border-color:rgba(45,212,191,.3)}
.badge{display:inline-block;background:var(--rose-soft);color:var(--rose);border:1px solid rgba(251,113,133,.3);
  border-radius:99px;padding:5px 14px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:18px;white-space:nowrap}
.intro-memory{display:flex;gap:12px;align-items:flex-start;text-align:left;background:var(--rose-soft);
  border:1px solid rgba(251,113,133,.25);border-radius:16px;padding:16px 18px;margin-bottom:20px}
.intro-memory svg{flex-shrink:0;color:var(--rose);margin-top:2px}
.intro-memory p{font-size:13.5px;color:var(--text2);line-height:1.7;font-style:italic}
.nowrap{white-space:nowrap}
.intro-card h1{font-size:26px;font-weight:800;letter-spacing:-.02em;margin-bottom:14px;line-height:1.3}
.intro-desc{font-size:14.5px;color:var(--text2);line-height:1.75;margin-bottom:24px}
.intro-meta{display:flex;flex-direction:column;gap:10px;align-items:flex-start;margin:0 auto 28px;max-width:280px}
.meta-item{font-size:13px;color:var(--text2);display:flex;align-items:center;gap:10px;white-space:nowrap}
.dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.dot-a{background:var(--accent)}.dot-b{background:var(--rose)}.dot-c{background:var(--teal)}

/* 按鈕 */
.btn{border:none;border-radius:14px;padding:14px 26px;font-size:15px;font-weight:700;cursor:pointer;
  transition:transform .15s,opacity .15s;min-height:48px;white-space:nowrap;touch-action:manipulation}
.btn:active{transform:scale(.97)}
.btn-primary{background:linear-gradient(135deg,var(--accent),#818cf8);color:#fff;box-shadow:0 8px 24px rgba(99,102,241,.35)}
.btn-primary:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}
.btn-ghost{background:var(--surface2);color:var(--text2);border:1px solid var(--border)}
.btn-full{width:100%}

/* 題目卡 */
.question-card{padding:36px 30px}
.q-section{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text3);margin-bottom:10px;white-space:nowrap}
.q-title{font-size:19px;font-weight:700;line-height:1.5;margin-bottom:6px;letter-spacing:-.01em}
.q-hint{font-size:12px;font-weight:600;color:var(--text3);margin-bottom:22px;letter-spacing:.02em}
.nav-row{display:flex;justify-content:space-between;gap:12px;margin-top:30px}

/* 單選 / 多選選項 */
.opt-list{display:flex;flex-direction:column;gap:10px}
.opt{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;border:1px solid var(--border);
  background:var(--surface2);cursor:pointer;font-size:14.5px;transition:border-color .15s,background .15s;
  min-height:48px;touch-action:manipulation}
.opt:hover{border-color:rgba(255,255,255,.2)}
.opt.selected{border-color:var(--accent);background:var(--accent-soft)}
.opt .mark{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--text3);flex-shrink:0;position:relative}
.opt.multi .mark{border-radius:5px}
.opt.selected .mark{border-color:var(--accent);background:var(--accent)}
.opt.selected .mark::after{content:'';position:absolute;inset:4px;background:#fff;border-radius:50%}
.opt.multi.selected .mark::after{inset:3px;border-radius:2px}

/* 區間選（膠囊列） */
.range-row{display:flex;gap:8px;flex-wrap:wrap}
.range-pill{flex:1;min-width:70px;min-height:48px;display:flex;align-items:center;justify-content:center;
  text-align:center;padding:13px 8px;border-radius:12px;border:1px solid var(--border);
  background:var(--surface2);font-size:13.5px;font-weight:600;cursor:pointer;color:var(--text2);
  white-space:nowrap;touch-action:manipulation}
.range-pill.selected{border-color:var(--teal);background:var(--teal-soft);color:var(--teal)}

/* 量表滑桿 */
.scale-block{margin-bottom:18px}
.scale-label{font-size:13.5px;color:var(--text2);margin-bottom:10px;font-weight:600}
.scale-row{display:flex;gap:8px}
.scale-dot{flex:1;min-height:44px;display:flex;align-items:center;justify-content:center;
  text-align:center;padding:12px 4px;border-radius:12px;border:1px solid var(--border);background:var(--surface2);
  cursor:pointer;font-weight:700;font-size:15px;color:var(--text3);touch-action:manipulation}
.scale-dot.selected{border-color:var(--amber);background:var(--amber-soft);color:var(--amber)}
.scale-anchor{font-size:11.5px;color:var(--text3);margin-top:8px;line-height:1.5;min-height:16px}
.pair-divider{height:1px;background:var(--border);margin:24px 0}

/* 開放文字 */
textarea.field{width:100%;min-height:96px;background:var(--surface2);border:1px solid var(--border);border-radius:14px;
  padding:14px;color:var(--text);font-size:16px;font-family:inherit;resize:vertical;margin-top:14px}
textarea.field:focus{outline:none;border-color:var(--accent)}
.followup-wrap{margin-top:16px;padding-top:16px;border-top:1px dashed var(--border)}
.followup-title{font-size:13px;color:var(--text2);margin-bottom:10px}

/* 確認畫面 */
.review-title{font-size:20px;font-weight:800;margin-bottom:6px}
.review-sub{font-size:13.5px;color:var(--text2);margin-bottom:22px}
.review-list{display:flex;flex-direction:column;gap:12px;max-height:50vh;overflow-y:auto;margin-bottom:8px;
  -webkit-overflow-scrolling:touch}
.review-item{background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:12px 14px}
.review-q{font-size:12px;color:var(--text3);margin-bottom:4px}
.review-a{font-size:13.5px;color:var(--text)}

@media (max-width:480px){
  .card{padding:26px 20px}
  .intro-card{padding:36px 22px}
  .range-pill{min-width:60px;font-size:12.5px}
}
