/* TNA · 团队教练需求自检
   配色与报告页（lib/report.php 的 tna_report_css）同源，改动请两边一起改。 */

:root{
  --brand:#7E1671;        /* 魏紫 · 群智主色 */
  --brand-d:#5a0f52;      /* 深紫 · 封面渐变起点 */
  --brand-l:#a83a9a;      /* 浅紫 · 渐变落点 */
  --brand-soft:#f6e9f3;   /* 淡紫 · 选中底色 */
  --accent:#E3256B;       /* 绯红 · 强调与高风险 */
  --ok:#2486B9;           /* 宝石蓝 · 稳定与成功 */
  --ink:#241b2e; --muted:#6b6478; --line:#ece6f2; --bg:#f5f3f8; --white:#fff;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;color:var(--ink);background:var(--bg);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}

.topbar{display:flex;align-items:center;justify-content:center;padding:13px 16px;
  background:var(--white);border-bottom:1px solid var(--line)}
.logo{height:30px;width:auto;object-fit:contain}

.container{width:min(1040px,calc(100% - 32px));margin:0 auto}
.container.narrow{width:min(620px,calc(100% - 32px))}
.section{padding:52px 0}
.center{text-align:center}

/* 视图切换：一次只显示一屏 */
.view{display:none}
.view.active{display:block}

/* ── 封面 ───────────────────────────────────────────────── */
.hero{position:relative;overflow:hidden;padding:66px 0 74px;color:#fff;
  background:linear-gradient(135deg,#5a0f52,#7E1671 58%,#a83a9a)}
.hero::after{content:"";position:absolute;width:390px;height:390px;top:-180px;right:-85px;
  border-radius:50%;background:rgba(255,255,255,.08)}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr .85fr;
  gap:50px;align-items:center}
.brand{font-size:13px;font-weight:700;letter-spacing:1px;opacity:.9}
.hero h1{margin:16px 0;font-size:clamp(32px,5vw,52px);line-height:1.18}
.hero p{max-width:630px;margin:0;color:rgba(255,255,255,.87);font-size:17px;line-height:1.85}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0}
.tag{padding:8px 12px;border:1px solid rgba(255,255,255,.22);border-radius:30px;
  background:rgba(255,255,255,.12);font-size:13px}

.dimension-preview{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}
.preview-item{min-height:98px;padding:15px;border:1px solid rgba(255,255,255,.2);
  border-radius:12px;background:rgba(255,255,255,.12)}
.preview-item:last-child{grid-column:1 / 3}
.preview-item b{display:block;margin-bottom:6px;font-size:14px}
.preview-item span{font-size:12px;opacity:.84}

.intro-title{margin:0 0 11px;text-align:center;font-size:28px}
.intro-desc{max-width:680px;margin:0 auto 35px;color:var(--muted);text-align:center;line-height:1.75}
.intro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin-bottom:34px}
.intro-card{padding:25px}
.intro-card b{display:flex;align-items:center;justify-content:center;width:32px;height:32px;
  margin-bottom:13px;border-radius:50%;color:#fff;background:var(--brand)}
.intro-card h3{margin:0 0 8px;font-size:17px}
.intro-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.7}

/* ── 通用卡片 / 按钮 ─────────────────────────────────────── */
.card{border:1px solid var(--line);border-radius:14px;background:var(--white);
  box-shadow:0 8px 24px rgba(60,20,80,.08)}
.card.pad{padding:32px}
.view-title{margin:0 0 8px;font-size:26px}
.view-lead{margin:0 0 26px;color:var(--muted);line-height:1.75}
.view-lead b{color:var(--ink)}

.button{padding:13px 21px;border:0;border-radius:8px;cursor:pointer;font:inherit;
  font-size:15px;font-weight:700;text-decoration:none;display:inline-block;transition:.2s}
.button:hover{transform:translateY(-2px);opacity:.94}
.button:disabled{opacity:.6;cursor:default;transform:none}
.button-light{color:var(--brand);background:#fff}
.button-primary{color:#fff;background:var(--brand)}
.button-outline{color:var(--brand);border:1px solid #e3d3e0;background:#fff}
.actions{display:flex;justify-content:space-between;gap:12px;margin-top:25px}

/* ── 表单 ───────────────────────────────────────────────── */
.form{display:grid;gap:17px}
#info-fields{display:block}
.form label{display:block}
.cap{display:block;margin-bottom:6px;color:#4a4056;font-size:14px;font-weight:600}
.req{color:var(--accent);font-style:normal}
/* :not(...) 很关键：客户信息页的单选/多选题就在 <form> 里，
   不排除掉的话 radio/checkbox 会被撑成 100% 宽，把选项文字挤到下一行。 */
.form input:not([type=radio]):not([type=checkbox]),
.form select,.form textarea{width:100%;padding:12px 13px;border:1px solid #e3d9ea;
  border-radius:8px;color:var(--ink);background:#fff;font:inherit;font-size:16px}
.form input:not([type=radio]):not([type=checkbox]):focus,
.form select:focus,.form textarea:focus{outline:0;border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(126,22,113,.12)}
.hint{display:block;margin-top:6px;color:#8d8398;font-size:12.5px;line-height:1.5}
.err{margin:0;padding:11px 13px;border-radius:8px;color:#a3143f;background:#fce8ef;font-size:14px}
.privacy{margin:0;color:#9d94a8;font-size:12px;line-height:1.6}

/* ── 答题 ───────────────────────────────────────────────── */
.assessment-header{display:flex;justify-content:space-between;align-items:end;gap:22px;margin-bottom:22px}
.assessment-header h2{margin:0 0 8px;font-size:27px}
.assessment-header p{margin:0;color:var(--muted);font-size:14px}
.progress-wrap{width:min(330px,46vw)}
.progress-label{display:flex;justify-content:space-between;margin-bottom:7px;
  color:var(--muted);font-size:13px}
.progress{height:8px;overflow:hidden;border-radius:9px;background:#ece4f0}
.progress i{display:block;width:0;height:100%;border-radius:9px;
  background:linear-gradient(90deg,var(--brand),var(--brand-l));transition:width .2s}

.step-nav{display:flex;gap:7px;margin-bottom:21px}
.step-tab{display:flex;flex:1;justify-content:center;padding:10px 6px;border-radius:7px;
  color:#7b6f86;background:#f0eaf4;font-size:13px;font-weight:600}
.step-tab.active{color:#fff;background:var(--brand)}
.step-tab.done{color:#1b6c94;background:#e3f0f7}

.question-panel{display:none;padding:30px}
.question-panel.active{display:block}
.dimension-title{margin:0 0 6px;color:var(--brand);font-size:23px}
.dimension-desc{margin:0 0 24px;color:var(--muted);line-height:1.7}
.question{padding:19px 0;border-top:1px solid var(--line)}
.question:first-of-type{border-top:0}
.question p{margin:0 0 13px;font-size:16px;font-weight:650;line-height:1.6}

.options{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.options input{position:absolute;opacity:0;pointer-events:none}
.options span{display:block;min-height:55px;padding:8px 5px;border:1px solid #e3d9ea;
  border-radius:8px;color:#5f5568;text-align:center;font-size:12px;line-height:1.35;cursor:pointer}
.options input:checked + span{border-color:var(--brand);color:#fff;background:var(--brand)}
.options input:focus-visible + span{box-shadow:0 0 0 3px rgba(126,22,113,.3)}

/* ── 客户信息页的单选/多选题 ─────────────────────────────── */
.profile-q + .profile-q{margin-top:19px;padding-top:18px;border-top:1px solid var(--line)}
.profile-q h3{margin:0 0 12px;font-size:16px;font-weight:600}
.multi{color:#8d8398;font-weight:400;font-size:13px}
.quiz-err{margin-top:16px}
.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.choice{display:flex;align-items:flex-start;gap:8px;padding:11px 12px;border:1px solid #e7dded;
  border-radius:8px;color:#4a4056;font-size:14px;line-height:1.45;cursor:pointer}
.choice:has(input:checked){border-color:var(--brand);background:#f6e9f3}
.choice input{flex:0 0 auto;width:auto;margin-top:2px;accent-color:var(--brand)}

/* ── 提交成功 ───────────────────────────────────────────── */
.check{display:flex;align-items:center;justify-content:center;width:60px;height:60px;
  margin:0 auto 16px;border-radius:50%;color:var(--brand);background:var(--brand-soft);
  font-size:30px;font-weight:800}
.done-tips{margin-top:26px;padding:20px 22px;border-radius:12px;background:#f7f3f9;text-align:left}
.done-tips h3{margin:0 0 10px;font-size:15px;color:var(--brand)}
.done-tips ul{margin:0;padding-left:19px;color:#544a60;font-size:14px;line-height:1.85}

.footer{padding:28px 0;color:#857b90;text-align:center;font-size:13px}

/* ── 遮罩 ───────────────────────────────────────────────── */
.overlay{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:14px;color:#fff;background:rgba(36,27,46,.62)}
.overlay[hidden]{display:none}
.spinner{width:38px;height:38px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;
  border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

@media (max-width:820px){
  .hero{padding:46px 0 52px}
  .section{padding:34px 0}
  .hero-grid{grid-template-columns:1fr;gap:26px}
  .intro-grid{grid-template-columns:1fr}
  .assessment-header{align-items:flex-start;flex-direction:column}
  .progress-wrap{width:100%}
  .step-nav{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .step-tab{flex:0 0 108px}
  .card.pad,.question-panel{padding:22px}
  .options,.choice-grid{grid-template-columns:1fr}
  /* 触控目标不低于 44px：手机上五个选项是纵向排的，行太矮很容易点错 */
  .options span{min-height:44px;display:flex;align-items:center;padding:11px 14px;text-align:left}
  .actions{flex-direction:column-reverse}
  .actions .button{width:100%}
}
