:root{
  --bg:#f4f6f8;
  --card:#ffffff;
  --line:#e6eaee;
  --text:#1c2733;
  --sub:#66788a;
  --brand:#1f6feb;
  --brand-bg:#eaf2ff;
  --danger:#d93a3a;
  --radius:12px;
  --safe-b:env(safe-area-inset-bottom, 0px);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,.04);}
html,body{margin:0;padding:0;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-text-size-adjust:100%;
}

/* ---------- 顶部 ---------- */
.hd{
  background:linear-gradient(160deg,#2563eb,#1e40af);
  color:#fff;
  padding:26px 18px 22px;
  text-align:center;
}
.hd h1{margin:0 0 6px;font-size:20px;font-weight:600;letter-spacing:.5px;}
.hd .sub{margin:0 0 12px;font-size:13px;opacity:.85;}
.badges{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;}
.badge{
  font-size:12px;padding:3px 10px;border-radius:20px;
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.3);
}

.notice{
  position:relative;
  margin:12px;
  padding:12px 34px 12px 14px;
  background:#fff8e6;border:1px solid #f2d999;border-radius:10px;
  font-size:13px;color:#6b5320;line-height:1.65;
}
.notice-x{
  position:absolute;right:8px;top:6px;width:26px;height:26px;
  border:none;background:transparent;font-size:20px;color:#a08a4a;line-height:1;
}

/* ---------- 卡片 ---------- */
.card{
  background:var(--card);
  margin:12px;border-radius:var(--radius);
  padding:4px 16px 18px;
  box-shadow:0 1px 3px rgba(16,24,40,.05);
}
.card-hd{display:flex;align-items:center;gap:9px;padding:16px 0 4px;}
.card-hd .no{
  width:22px;height:22px;border-radius:50%;
  background:var(--brand-bg);color:var(--brand);
  font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;
  flex:0 0 auto;
}
.card-hd h2{margin:0;font-size:16px;font-weight:600;}

.field{margin-top:18px;}
.lb{display:block;font-size:14px;font-weight:600;margin-bottom:9px;color:#243447;}
.req{
  font-size:11px;font-weight:500;color:var(--danger);
  background:#fdeced;border-radius:4px;padding:1px 6px;margin-left:6px;
  display:inline-block;vertical-align:1px;
}
.opt{
  font-size:11px;font-weight:400;color:var(--sub);
  background:#f1f3f5;border-radius:4px;padding:1px 6px;margin-left:6px;
  display:inline-block;vertical-align:1px;
}

/* ---------- 选项 ---------- */
.opts{display:flex;flex-wrap:wrap;gap:8px;}
.opt-item{position:relative;display:inline-flex;}
.opt-item input{
  position:absolute;opacity:0;width:0;height:0;
}
.opt-item span{
  display:inline-block;
  padding:9px 13px;
  font-size:14px;
  background:#f6f8fa;
  border:1px solid var(--line);
  border-radius:8px;
  color:#42546a;
  cursor:pointer;
  transition:all .15s;
  user-select:none;
}
.opt-item input:checked + span{
  background:var(--brand-bg);
  border-color:var(--brand);
  color:var(--brand);
  font-weight:600;
}
.opt-item input:focus-visible + span{outline:2px solid var(--brand);outline-offset:1px;}

/* ---------- 输入 ---------- */
.inp{
  width:100%;
  font-size:16px;              /* 防止 iOS 聚焦缩放 */
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fafbfc;
  color:var(--text);
  font-family:inherit;
  line-height:1.5;
}
.inp:focus{outline:none;border-color:var(--brand);background:#fff;}
.inp::placeholder{color:#a9b4c0;}
.ta{resize:vertical;min-height:88px;}
.counter{text-align:right;font-size:12px;color:#9aa7b4;margin-top:4px;}

/* ---------- 自定义提问 ---------- */
.tip{font-size:12.5px;color:var(--sub);margin:0 0 10px;line-height:1.6;}
.tip b{color:var(--brand);}
.tip-sm{font-size:12px;color:#95a1ae;margin:6px 0 0;}
.center{text-align:center;}
.q-list{display:flex;flex-direction:column;gap:12px;}
.q-item{
  border:1px solid var(--line);
  border-radius:10px;
  padding:12px;
  background:#fbfcfd;
}
.q-item .q-head{
  display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;
}
.q-item .q-idx{font-size:12px;color:var(--sub);font-weight:600;}
.q-del{
  border:none;background:transparent;color:#b0bac4;font-size:18px;
  width:28px;height:28px;line-height:1;border-radius:6px;
}
.q-del:active{background:#fdeced;color:var(--danger);}
.q-item .inp{margin-bottom:8px;}
.q-check{
  display:flex;align-items:center;gap:6px;font-size:13px;color:var(--sub);cursor:pointer;
}
.q-check input{width:16px;height:16px;accent-color:var(--brand);}
.btn-add{
  width:100%;margin-top:12px;
  padding:11px;font-size:14px;
  border:1px dashed #b6c6d8;background:#f8fafc;color:var(--brand);
  border-radius:8px;font-family:inherit;
}
.btn-add:active{background:var(--brand-bg);}
.plus{font-size:16px;font-weight:700;}

/* ---------- 提交 ---------- */
.submit-wrap{margin:18px 12px calc(28px + var(--safe-b));}
.btn-main{
  width:100%;padding:15px;font-size:16px;font-weight:600;
  background:var(--brand);color:#fff;border:none;border-radius:10px;
  font-family:inherit;letter-spacing:1px;
  box-shadow:0 2px 8px rgba(31,111,235,.28);
}
.btn-main:active{background:#1a5fd0;}
.btn-main[disabled]{background:#a9c3ea;box-shadow:none;}
.btn-ghost{
  width:100%;margin-top:10px;padding:12px;font-size:14px;
  background:transparent;border:1px solid var(--line);color:var(--sub);
  border-radius:10px;font-family:inherit;
}

/* ---------- 弹窗 ---------- */
.mask{
  position:fixed;inset:0;background:rgba(16,24,40,.55);
  display:flex;align-items:center;justify-content:center;padding:24px;z-index:50;
}
.mask[hidden]{display:none;}
.dialog{
  background:#fff;border-radius:14px;padding:26px 22px calc(22px + var(--safe-b));
  width:100%;max-width:360px;text-align:center;
  animation:pop .22s ease-out;
}
@keyframes pop{from{transform:scale(.92);opacity:0;}to{transform:scale(1);opacity:1;}}
.ok-icon{
  width:52px;height:52px;border-radius:50%;background:#e8f7ee;color:#1e9e55;
  font-size:28px;font-weight:700;display:flex;align-items:center;justify-content:center;
  margin:0 auto 14px;
}
.dialog h3{margin:0 0 8px;font-size:17px;}
.sid-line{font-size:13px;color:var(--sub);margin:0 0 10px;}
.sid-line b{color:var(--text);font-family:ui-monospace,Menlo,Consolas,monospace;}
.dialog .tip{margin-bottom:16px;}

.toast{
  position:fixed;left:50%;bottom:calc(30px + var(--safe-b));transform:translateX(-50%);
  background:rgba(28,39,51,.94);color:#fff;font-size:13.5px;
  padding:10px 18px;border-radius:20px;z-index:60;max-width:88%;text-align:center;
}
.toast[hidden]{display:none;}

/* ---------- 调试 / 自检输出（仅在 ?selftest=1 或 ?debug=1 时显示）---------- */
.debug-box{
  white-space:pre-wrap;
  word-break:break-all;
  font-size:12px;
  line-height:1.7;
  margin:12px;
  padding:12px 14px;
  border-radius:10px;
  background:#f6f8fa;
  border:1px solid var(--line);
  color:#334;
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.debug-box-err{background:#fdeced;border-color:#f5c6c6;color:#a01c1c;}

@media (min-width:720px){
  .hd h1{font-size:24px;}
  .opts{gap:9px;}
  .opt-item span{padding:10px 15px;}
}
