
:root{ --ac:#46557E; --ac-h:#354268; --acsoft:#E8EBF3;
  --tx:#2E2C29; --tx2:#6F6A62; --tx3:#A29B90;
  --panel:rgba(255,255,255,.46); --bd:rgba(255,255,255,.72); --bd2:#D8D2C6; }
*{box-sizing:border-box}
body{
  margin:0;color:var(--tx);
  font-family:'Times New Roman','SimSun','NSimSun','STSong','Noto Serif CJK SC',serif;
  font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  background:
    radial-gradient(900px 520px at 10% -10%, rgba(120,175,225,.45), rgba(0,0,0,0) 60%),
    radial-gradient(820px 480px at 92% 2%,  rgba(176,150,212,.36), rgba(0,0,0,0) 62%),
    radial-gradient(760px 440px at 46% 110%, rgba(70,85,126,.32), rgba(0,0,0,0) 60%),
    radial-gradient(420px 300px at 82% 72%, rgba(70,85,126,.20), rgba(0,0,0,0) 65%),
    radial-gradient(380px 280px at 14% 64%, rgba(154,174,194,.22), rgba(0,0,0,0) 65%),
    linear-gradient(160deg,#E9F0F6 0%,#E2EAF2 55%,#E9EAF1 100%);
  background-attachment:fixed;}
.wrap{max-width:640px;margin:0 auto;padding:26px 18px 60px}
/* 玻璃横幅（不再用实色大横幅，与管理端玻璃 hero 协调） */
.hero{
  position:relative;
  background:linear-gradient(135deg, rgba(255,255,255,.34) 0%, rgba(232,235,243,.16) 60%, rgba(255,255,255,.26) 100%);
  backdrop-filter:blur(14px) saturate(165%); -webkit-backdrop-filter:blur(14px) saturate(165%);
  border:1px solid rgba(255,255,255,.65); border-radius:22px 22px 0 0; padding:24px 26px;
  box-shadow:0 10px 32px rgba(31,54,78,.12), inset 0 1px 0 rgba(255,255,255,.85);}
/* 右上角「免费」印章：透明底 PNG，向右倾斜 12°（绝对定位不参与布局，不挤压标题） */
.hero .stamp{position:absolute;right:30px;top:50%;
  transform:translateY(-50%) rotate(12deg);
  width:99px;height:auto;opacity:.94;pointer-events:none;user-select:none}
/* 小屏：印章收到右上角（改为贴顶对齐，避免与标题水平重叠），尺寸同步放大后的等效值 */
@media (max-width:480px){.hero .stamp{width:70px;right:12px;top:12px;
  transform:rotate(12deg);opacity:.9}}
.hero .kicker{font-size:11px;letter-spacing:3px;color:var(--ac-h);opacity:.85;font-family:'Times New Roman',serif}
.hero p{margin:0;font-size:12px;color:var(--tx2)}
/* 品牌标志：书法体「矿讯Radar」透明底 PNG，替换原文字标题 */
.hero .logo{display:block;width:230px;max-width:100%;height:auto;margin:6px 0 10px}
@media (max-width:480px){.hero .logo{width:190px}}
/* 玻璃表单卡 */
.card{
  background:var(--panel);
  backdrop-filter:blur(16px) saturate(172%); -webkit-backdrop-filter:blur(16px) saturate(172%);
  border:1px solid var(--bd); border-radius:0 0 22px 22px; padding:22px 24px;
  box-shadow:0 12px 38px rgba(31,54,78,.14), inset 0 1px 0 rgba(255,255,255,.85);}
label{display:block;font-size:13px;margin-bottom:5px;color:var(--tx)}
input[type=text],input[type=email],select{
  width:100%;padding:11px 13px;border:1px solid rgba(255,255,255,.75);border-radius:10px;
  font-family:inherit;font-size:14px;color:var(--tx);background:rgba(255,255,255,.74);
  box-sizing:border-box;margin-bottom:14px;outline:0;transition:border-color .14s,box-shadow .14s}
/* 学院下拉：去掉原生箭头，自绘同色系小箭头并可控制位置（比原生略靠左） */
select{appearance:none;-webkit-appearance:none;-moz-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%236F6A62' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;padding-right:36px}
input:focus,select:focus{border-color:var(--ac);box-shadow:0 0 0 3px var(--acsoft)}
/* 胶囊按钮（三档权重 .seg / 默认自定义 .wmode 共用）：radio+label 纯 CSS，通透玻璃质感，选中=藏青加深 */
.seg,.wmode{display:flex;gap:8px}
.seg{margin-bottom:2px}     /* 一行三等分铺满，与上方输入框同宽 */
.wmode{margin-bottom:6px}
.seg input,.wmode input{position:absolute;opacity:0;pointer-events:none;width:0;height:0}
.seg label,.wmode label{
  flex:1 1 0;min-width:0;text-align:center;box-sizing:border-box;
  padding:8px 6px;border-radius:11px;cursor:pointer;font-size:13px;font-family:inherit;
  border:1px solid rgba(255,255,255,.70);background:rgba(255,255,255,.30);color:var(--tx2);
  backdrop-filter:blur(6px) saturate(150%);-webkit-backdrop-filter:blur(6px) saturate(150%);
  transition:all .14s;user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seg label:hover,.wmode label:hover{border-color:rgba(70,85,126,.45);color:var(--ac-h)}
.seg input:checked + label,.wmode input:checked + label{
  background:rgba(70,85,126,.30);border-color:rgba(70,85,126,.55);
  color:var(--ac-h);font-weight:bold}
.dirline{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px}
.desc{font-size:11px;color:var(--tx3);margin:2px 0 14px}
.grptitle{font-size:13px;margin-bottom:5px;color:var(--tx)}   /* 与「姓名/邮箱/学院」标签同字号同字重（不加粗） */
/* 关注方向与权重：默认 / 自定义 二选一；「自定义」才展开下方逐项设置（默认折叠）
   胶囊样式与三档按钮共用（见上方 .seg,.wmode 合并规则） */
.wmtip{font-size:11px;color:var(--tx3);margin:6px 0 14px}
.wlist{margin-top:2px}
button[type=submit]{
  width:100%;padding:13px;border:0;border-radius:10px;background:#46557E;color:#fff;
  font-family:inherit;font-size:15px;font-weight:bold;cursor:pointer;
  box-shadow:0 4px 14px rgba(53,66,104,.30);transition:background .14s,transform .12s}
button[type=submit]:hover{background:var(--ac-h)}
button[type=submit]:active{transform:translateY(1px)}
/* 页尾两行说明：与协议段同字体同号（10px，继承正文字体）；居中 */
.legal{font-size:10px;color:var(--tx3);margin-top:12px;line-height:1.7;text-align:center}
/* 提示页 */
.tip{background:var(--panel);
  backdrop-filter:blur(16px) saturate(172%); -webkit-backdrop-filter:blur(16px) saturate(172%);
  border:1px solid var(--bd); border-radius:22px; padding:34px 28px; text-align:center;
  box-shadow:0 12px 38px rgba(31,54,78,.14), inset 0 1px 0 rgba(255,255,255,.85);}
.tip .ico{width:52px;height:52px;border-radius:50%;margin:0 auto 14px;background:var(--ac);
  color:#fff;font-size:26px;line-height:52px}
.tip .ico.warn{background:#B45309}
.tip h2{margin:0 0 10px;font-size:20px;color:var(--ac-h)}
.tip p{margin:0 0 6px;font-size:13.5px;color:var(--tx2)}
.tip a{display:inline-block;margin-top:18px;color:var(--ac);font-size:13px;text-decoration:none}
.tip a:hover{text-decoration:underline}
.warnbox{background:rgba(253,240,220,.92);border-left:3px solid #E8C88A;border-radius:0 8px 8px 0;
  padding:10px 14px;color:#8A6D3B;font-size:13px;margin:0 0 14px}
/* ---------- 同意条款：圆形勾选框（空心/实心藏青） + 协议超链接 ---------- */
.agree{display:flex;align-items:flex-start;gap:9px;margin:16px 0 0;
  font-size:10px;line-height:1.75;color:var(--tx2);text-align:left}   /* 字号与页尾 .legal 对齐 */
.agree input{position:absolute;opacity:0;pointer-events:none;width:0;height:0}
.agree .dot{flex:none;width:10px;height:10px;border-radius:50%;box-sizing:border-box;
  border:1px solid var(--ac);background:transparent;margin-top:3.5px;cursor:pointer;
  transition:background .16s,border-color .16s,transform .12s}
  /* 圆圈 = 一个字的字号(10px)；margin-top 3.5px 使其中心与首行文字中心齐平(行盒17.5/2=8.75, 圆圈中心 3.5+5=8.5) */
.agree .dot:hover{transform:scale(1.08)}
.agree input:checked + .dot{background:var(--ac);border-color:var(--ac)}   /* 同意＝实心藏青 */
.agree input:focus-visible + .dot{box-shadow:0 0 0 3px var(--acsoft)}
/* 协议超链接：默认 inline → 可在一行内正常换行（避免手机端整块被挤到下一行、上一行留白）；
   仅抖动动画期间临时转 inline-block（transform 需要非 inline 元素），动画结束由 class 移除自动恢复 */
.agree a.terms{color:var(--ac);font-weight:bold;text-decoration:underline;
  text-underline-offset:2px;cursor:pointer}
.agree a.terms:hover{color:var(--ac-h)}
/* 未勾选就点提交 → 协议名左右抖动，把注意力拉过去 */
@keyframes tshake{
  0%,100%{transform:translateX(0)}
  12%{transform:translateX(-5px)} 26%{transform:translateX(5px)}
  40%{transform:translateX(-4px)} 54%{transform:translateX(4px)}
  68%{transform:translateX(-3px)} 82%{transform:translateX(3px)}}
.agree a.terms.shake{display:inline-block;animation:tshake .62s cubic-bezier(.36,.07,.19,.97) 1}
/* ---------- 协议弹窗：限高 68vh 可滚动，四周仍可见订阅页（非全屏） ---------- */
.mask{position:fixed;inset:0;display:none;align-items:center;justify-content:center;
  padding:26px 18px;background:rgba(46,44,41,.34);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:60}
.mask.open{display:flex}
.terms-box{width:100%;max-width:620px;max-height:68vh;display:flex;flex-direction:column;
  background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.85);border-radius:15px;
  box-shadow:0 18px 48px rgba(31,54,78,.26), inset 0 1px 0 rgba(255,255,255,.9);overflow:hidden}
.terms-hd{display:flex;align-items:center;gap:10px;padding:15px 20px 12px;
  border-bottom:1px solid rgba(70,85,126,.14);flex:none}
.terms-hd h3{margin:0;font-size:14.5px;color:var(--ac-h);letter-spacing:.5px}
.terms-hd .xbtn{margin-left:auto;border:0;background:transparent;color:var(--tx3);
  font-size:21px;line-height:1;cursor:pointer;padding:0 2px;font-family:inherit}
.terms-hd .xbtn:hover{color:var(--ac-h)}
.terms-bd{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 22px 20px;flex:1}
.terms-bd p{margin:0 0 9px;font-size:12.5px;line-height:1.85;color:var(--tx2);text-align:justify}
.terms-bd .tsub{margin:14px 0 7px;font-size:12.5px;font-weight:bold;color:var(--tx)}
.terms-bd h4{margin:18px 0 8px;font-size:13px;color:var(--ac-h);
  padding-left:9px;border-left:3px solid var(--ac)}
.terms-bd .terms-meta{margin:0 0 12px;font-size:12px;color:var(--tx3)}
.terms-ft{padding:11px 20px 14px;border-top:1px solid rgba(70,85,126,.14);
  text-align:right;flex:none}
.terms-ft .tok{background:var(--ac);color:#fff;border:0;border-radius:9px;
  padding:9px 22px;font-family:inherit;font-size:13px;cursor:pointer}
.terms-ft .tok:hover{background:var(--ac-h)}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
