/* =========================================================
   “AI+智慧教育”教研室成员报名表 · 页面样式
   复用全站设计令牌（site.css）中的 --brand 学术紫；
   移动优先（多数教师用手机扫码填写）。
   ========================================================= */

.j-body{background:linear-gradient(180deg,#FBFAFE 0%,var(--bg) 220px);min-height:100vh}

/* ---------- 顶栏 ---------- */
.j-head{
  display:flex;align-items:center;gap:14px;
  max-width:920px;margin:0 auto;padding:14px 18px;
}
.j-brand{display:flex;align-items:center;gap:11px;min-width:0}
.j-brand img{width:38px;height:38px;flex:0 0 38px}
.j-brand-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.j-brand-t .j-wm{height:20px;width:auto;display:block}
.j-brand-t small{font-size:9px;color:#9AA1B0;letter-spacing:.7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.j-back{margin-left:auto;font-size:13px;color:var(--brand);font-weight:600;white-space:nowrap}
.j-back:hover{color:var(--brand-dark)}

/* ---------- 平台入口（校内外自动接入 · 只展示一个入口，不显示任何地址） ---------- */
.j-entry{background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px 18px;
  margin-bottom:18px;box-shadow:var(--shadow-sm)}
.j-entry-h{display:flex;align-items:center;gap:11px}
.j-entry-ic{font-size:20px;line-height:1}
.j-entry-h b{font-size:15px;color:var(--text);letter-spacing:.4px}
.j-entry-h p{font-size:12.5px;color:var(--text-2);margin-top:2px}
.j-entry-badge{margin-left:auto;font-size:12px;font-weight:700;color:var(--brand-dark);
  background:var(--brand-soft);border:1px solid rgba(109,90,224,.24);border-radius:999px;padding:3px 12px;white-space:nowrap}
.j-entry-badge.lan{color:#0F7B4A;background:#E7F8EF;border-color:rgba(15,123,74,.22)}
.j-entry-badge.wan{color:#1D4ED8;background:#EAF1FF;border-color:rgba(29,78,216,.22)}
.j-entry-links{display:grid;grid-template-columns:1fr;gap:10px;margin-top:14px}
.j-entry-hint{margin-top:10px;font-size:12px;color:var(--text-2);line-height:1.7}
.j-entry-link{display:block;border:1px solid var(--border);border-radius:11px;padding:11px 14px;background:#FCFCFE;transition:all .16s}
.j-entry-link:hover{border-color:var(--brand);background:#fff;box-shadow:var(--shadow-sm)}
.j-entry-link.primary{border-color:rgba(109,90,224,.45);background:linear-gradient(120deg,#F6F4FE,#F1F6FF)}
.j-entry-tag{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:1px;border-radius:6px;padding:1px 8px;
  color:#5A6478;background:#EEF1F7;margin-bottom:6px}
.j-entry-link.primary .j-entry-tag{color:#fff;background:var(--brand)}
.j-entry-link b{display:block;font-size:14px;color:var(--text);word-break:break-all;letter-spacing:.2px}
.j-entry-link small{display:block;font-size:11.5px;color:var(--text-2);margin-top:3px}

/* ---------- 任教课程（多门） ---------- */
.j-courses-head{display:grid;grid-template-columns:1fr 200px 34px;gap:10px;padding:0 2px 6px;font-size:12.5px;color:#5A6478}
.j-courses-head i{font-style:normal;color:var(--red)}
.j-course-row{display:grid;grid-template-columns:1fr 200px 34px;gap:10px;align-items:center;margin-bottom:10px}
.j-course-row input{width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:10px;font-size:15px;
  font-family:inherit;color:var(--text);background:#fff;transition:border-color .16s,box-shadow .16s}
.j-course-row input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(109,90,224,.12)}
.j-course-row input.bad{border-color:var(--red);box-shadow:0 0 0 3px rgba(220,38,38,.10)}
.j-course-del{width:34px;height:38px;border:1px solid var(--border);border-radius:10px;background:#fff;color:#B4BAC6;
  font-size:17px;line-height:1;cursor:pointer;font-family:inherit}
.j-course-del:hover{border-color:var(--red);color:var(--red);background:#FEF4F4}
.j-course-del:disabled{opacity:.35;cursor:not-allowed}
.j-courses-foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:4px}
.j-add{border:1px dashed rgba(109,90,224,.5);background:var(--brand-soft);color:var(--brand-dark);
  border-radius:10px;padding:9px 18px;font-size:13.5px;font-weight:600;cursor:pointer;font-family:inherit}
.j-add:hover{background:#fff;border-style:solid}
.j-add:disabled{opacity:.5;cursor:not-allowed}
.j-hint{font-size:12px;color:#9AA1B0}

/* ---------- 容器 ---------- */
.j-wrap{max-width:920px;margin:0 auto;padding:6px 18px 40px}

/* ---------- 头部说明 ---------- */
.j-hero{padding:16px 4px 22px}
.j-eyebrow{display:inline-block;font-size:12px;font-weight:700;letter-spacing:2px;color:var(--brand-dark);
  background:var(--brand-soft);border:1px solid rgba(109,90,224,.24);border-radius:999px;padding:4px 14px}
.j-hero h1{font-size:29px;line-height:1.35;font-weight:800;letter-spacing:1px;margin:14px 0 10px;color:var(--text)}
.j-lead{font-size:14.5px;color:var(--text-2);line-height:1.85;max-width:660px}
.j-lead b{color:var(--brand-dark)}
.j-meta{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.j-meta li{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--text-2);
  background:#fff;border:1px solid var(--border);border-radius:999px;padding:6px 14px}
.j-counter{margin-top:14px;font-size:13px;color:var(--brand-dark);font-weight:700}
.j-counter b{font-size:19px;letter-spacing:.5px}

/* ---------- 表单卡片 ---------- */
.j-card{background:#fff;border:1px solid var(--border);border-radius:16px;
  box-shadow:var(--shadow-md);padding:24px 24px 26px}
.j-sec{display:flex;align-items:center;gap:10px;margin:6px 0 14px}
.j-sec:not(:first-child){margin-top:28px;padding-top:22px;border-top:1px dashed var(--border)}
.j-sec-n{font-size:12px;font-weight:800;letter-spacing:1px;color:#fff;background:var(--brand);
  border-radius:7px;padding:2px 8px}
.j-sec h2{font-size:16.5px;font-weight:800;color:var(--text);letter-spacing:.6px}
.j-req{font-style:normal;font-size:12.5px;font-weight:500;color:var(--text-2)}

.j-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.j-field{display:block;position:relative}
.j-field.j-full{display:block;margin-top:14px}
.j-field>span{display:block;font-size:13px;font-weight:600;color:#3A4356;margin-bottom:6px}
.j-field>span i{font-style:normal;color:var(--red)}
.j-field input[type=text],.j-field input[type=tel],.j-field input[type=email],.j-field textarea{
  width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:10px;background:#fff;
  font-size:15px;color:var(--text);font-family:inherit;transition:border-color .16s,box-shadow .16s;
}
.j-field textarea{resize:vertical;line-height:1.7;min-height:104px}
.j-field input:focus,.j-field textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(109,90,224,.12)}
.j-field input::placeholder,.j-field textarea::placeholder{color:#B4BAC6}
.j-field input.bad,.j-field textarea.bad{border-color:var(--red);box-shadow:0 0 0 3px rgba(220,38,38,.10)}
.j-field .j-count{position:absolute;right:10px;bottom:8px;font-style:normal;font-size:11.5px;color:#A6ADBA}
.j-field .j-count b{color:var(--brand-dark)}

/* ---------- 单选卡 ---------- */
.j-radios{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.j-radios-3{grid-template-columns:repeat(3,1fr)}
.j-radio{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--border);border-radius:12px;
  padding:12px 14px;cursor:pointer;background:#fff;transition:all .16s}
.j-radio:hover{border-color:rgba(109,90,224,.5)}
.j-radio input{margin-top:3px;accent-color:var(--brand);width:16px;height:16px;flex:0 0 16px}
.j-radio b{display:block;font-size:14px;color:var(--text)}
.j-radio small{display:block;font-size:12px;color:var(--text-2);margin-top:2px;line-height:1.5}
.j-radio:has(input:checked){border-color:var(--brand);background:var(--brand-soft);box-shadow:inset 0 0 0 1px rgba(109,90,224,.35)}

/* ---------- 意向方向 chips（表单已取消该栏，样式保留供后续启用） ---------- */
.j-chips{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.j-chip{display:flex;align-items:center;gap:9px;border:1px solid var(--border);border-radius:10px;
  padding:10px 13px;font-size:13.5px;color:var(--text);cursor:pointer;background:#fff;transition:all .16s}
.j-chip:hover{border-color:rgba(109,90,224,.5)}
.j-chip input{accent-color:var(--brand);width:16px;height:16px;flex:0 0 16px}
.j-chip:has(input:checked){border-color:var(--brand);background:var(--brand-soft);color:var(--brand-dark);font-weight:600}

/* ---------- 蜜罐 / 同意 / 错误 ---------- */
.j-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.j-agree{display:flex;align-items:flex-start;gap:10px;margin-top:20px;font-size:13px;color:var(--text-2);line-height:1.7}
.j-agree input{margin-top:3px;accent-color:var(--brand);width:16px;height:16px;flex:0 0 16px}
.j-agree a{color:var(--brand);font-weight:600;text-decoration:none;border-bottom:1px dashed var(--brand)}
.j-agree a:hover{text-decoration:underline;border-bottom-style:solid}
.j-foot a{color:inherit;text-decoration:underline}
.j-err{margin-top:14px;font-size:13.5px;color:var(--red);background:#FCECEC;border-radius:10px;padding:10px 14px}

/* ---------- 按钮 ---------- */
.j-actions{display:flex;gap:12px;margin-top:22px}
.j-submit{flex:1;border:none;border-radius:12px;padding:14px 20px;font-size:16px;font-weight:700;letter-spacing:2px;
  color:#fff;background:linear-gradient(120deg,var(--brand),#4A6BF0);cursor:pointer;font-family:inherit;
  box-shadow:0 8px 20px -6px rgba(109,90,224,.5);transition:all .18s}
.j-submit:hover{transform:translateY(-1px);box-shadow:0 12px 26px -8px rgba(109,90,224,.6)}
.j-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}
.j-reset{border:1px solid var(--border);background:#fff;color:var(--text-2);border-radius:12px;
  padding:14px 22px;font-size:14px;cursor:pointer;font-family:inherit}
.j-reset:hover{border-color:var(--brand);color:var(--brand)}
.j-tip{margin-top:12px;font-size:12.5px;color:#9AA1B0}
.j-tip b{color:var(--brand-dark)}

/* ---------- 成功页 ---------- */
.j-done{text-align:center;padding:34px 26px 30px}
.j-done-ic{width:58px;height:58px;border-radius:50%;margin:0 auto 16px;display:grid;place-items:center;
  font-size:28px;color:#fff;background:linear-gradient(135deg,#16A34A,#34D399);box-shadow:0 10px 24px -8px rgba(22,163,74,.6)}
.j-done h2{font-size:21px;font-weight:800;color:var(--text);letter-spacing:1px}
.j-done>p{margin-top:10px;font-size:14px;color:var(--text-2);line-height:1.8}
.j-receipt{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0 6px;
  background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:16px}
.j-receipt dt{font-size:12px;color:var(--text-2)}
.j-receipt dd{margin:4px 0 0;font-size:14.5px;font-weight:700;color:var(--text);word-break:break-all}
.j-share{display:flex;align-items:center;gap:18px;text-align:left;margin-top:22px;padding-top:20px;
  border-top:1px dashed var(--border);flex-wrap:wrap;justify-content:center}
.j-share img{border:1px solid var(--border);border-radius:10px;background:#fff;padding:6px}
.j-share b{font-size:14.5px;color:var(--text)}
.j-share p{font-size:12.5px;color:var(--text-2);line-height:1.75;margin:6px 0 10px;max-width:420px}
.j-share code{background:var(--bg);border-radius:6px;padding:2px 7px;font-size:12px;word-break:break-all}
.j-share-links{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.j-share-links a{font-size:13px;color:var(--brand-dark);word-break:break-all}
.j-share-links a span{display:inline-block;font-size:10.5px;font-weight:700;border-radius:5px;padding:1px 7px;margin-right:7px;
  color:#5A6478;background:#EEF1F7}
.j-share-links a.pri span{color:#fff;background:var(--brand)}
.j-ghost{border:1px solid var(--border);background:#fff;color:var(--brand-dark);border-radius:999px;
  padding:7px 18px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}
.j-ghost:hover{background:var(--brand-soft);border-color:var(--brand)}

/* ---------- 页脚 ---------- */
.j-foot{text-align:center;margin-top:26px;font-size:12px;color:var(--text-2);line-height:2}

/* ---------- 移动端 ---------- */
@media (max-width:700px){
  .j-head{padding:12px 14px}
  .j-brand-t small{display:none}
  .j-wrap{padding:2px 14px 30px}
  .j-hero h1{font-size:23px}
  .j-card{padding:18px 16px 20px;border-radius:14px}
  .j-grid{grid-template-columns:1fr;gap:12px}
  .j-radios,.j-radios-3{grid-template-columns:1fr}
  .j-chips{grid-template-columns:1fr}
  .j-receipt{grid-template-columns:1fr;gap:10px}
  .j-actions{flex-direction:column}
  .j-submit{width:100%}
  .j-entry-links{grid-template-columns:1fr}
  .j-courses-head{display:none}
  .j-course-row{grid-template-columns:1fr 38px;gap:8px}
  .j-course-row input[name=courseTarget]{grid-column:1 / 2;font-size:13.5px}
  .j-course-del{grid-row:1 / 3;grid-column:2 / 3;height:100%;min-height:44px}
}

/* ==========================================================================
   所在单位（校内 / 校外）联动「高校名称」——校外时才出现，且整行占满
   ========================================================================== */
.j-campus-field, #j-school-wrap, #j-school-other-wrap{grid-column:1 / -1}
.j-field select{
  width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:10px;background:#fff;
  font-size:15px;color:var(--text);font-family:inherit;transition:border-color .16s,box-shadow .16s;
  appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-2) 50%),linear-gradient(135deg,var(--text-2) 50%,transparent 50%);
  background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:38px;
}
.j-field select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(109,90,224,.12)}
#j-school-wrap, #j-school-other-wrap{margin-top:12px}
