/* ===== 在演示设计系统之上新增的组件（不改动 app.css 任何规则）===== */

/* 学员端四区导航：移动端底部栏（微信内单手操作友好），桌面端左侧边栏 */
:root{ --stunav-h:60px; }  /* 实测底栏高约 58px，留一点余量 */
.stunav{
  position:fixed;left:0;right:0;bottom:0;z-index:40;
  background:rgba(10,15,26,.97);backdrop-filter:blur(10px);
  border-top:1px solid var(--line);
  display:flex;justify-content:space-around;
  padding:6px 0 calc(6px + env(safe-area-inset-bottom));
}
.stunav a{
  flex:1;text-align:center;text-decoration:none;color:var(--muted);
  font-size:11px;line-height:1.3;padding:4px 0;
}
.stunav a .ic{display:block;font-size:17px;margin-bottom:1px;}
.stunav a.on{color:var(--gold);}
.stunav .navbrand{display:none;}
body.has-stunav{padding-bottom:calc(var(--stunav-h) + env(safe-area-inset-bottom));}

/* 对话页的输入条要停在底部导航之上，不能被它盖住 */
body.pg-chat.has-stunav .inputbar{
  bottom:calc(var(--stunav-h) + env(safe-area-inset-bottom));
  padding-bottom:10px;
}

@media (min-width:900px){
  .stunav{
    top:0;right:auto;bottom:0;width:200px;
    flex-direction:column;justify-content:flex-start;gap:2px;
    border-top:none;border-right:1px solid var(--line);
    background:var(--bg-2);padding:0 0 24px;
  }
  .stunav .navbrand{
    display:block;padding:22px 24px;margin-bottom:14px;
    border-bottom:1px solid var(--line);
    font-family:var(--mono);font-size:15px;font-weight:700;
    letter-spacing:.3em;color:var(--gold);
  }
  .stunav a{
    flex:none;text-align:left;padding:12px 24px;font-size:14px;
    display:flex;align-items:center;gap:12px;
    border-left:2px solid transparent;transition:all .15s;
  }
  .stunav a:hover{color:var(--ink);}
  .stunav a .ic{display:inline;font-size:14px;margin:0;width:16px;}
  .stunav a.on{border-left-color:var(--gold);background:rgba(216,179,106,.05);}
  body.has-stunav{padding-bottom:0;padding-left:200px;}
  body.pg-chat.has-stunav .inputbar{bottom:0;}
}

/* 页面右上角教练归因 */
.coach-attr{
  font-family:var(--mono);font-size:11px;letter-spacing:.12em;
  color:var(--gold);border:1px solid var(--gold-dim);padding:3px 10px;white-space:nowrap;
}

/* 邀请码门 */
.pg-enter{min-height:100vh;display:flex;flex-direction:column;}
.pg-enter .gate{
  flex:1;display:flex;align-items:center;justify-content:center;padding:24px 20px;
}
.pg-enter .gate-box{
  width:100%;max-width:400px;background:var(--panel);border:1px solid var(--line);
  padding:36px 30px;
  clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);
}
.pg-enter .gate-box .lg{display:flex;align-items:baseline;gap:9px;justify-content:center;margin-bottom:8px;}
.pg-enter .gate-box .lg .cn{font-size:20px;font-weight:800;letter-spacing:.12em;}
.pg-enter .gate-box .lg .en{font-family:var(--mono);font-size:10px;letter-spacing:.3em;color:var(--gold);}
.pg-enter .gate-box .sub{
  text-align:center;font-size:13px;color:var(--muted);margin-bottom:28px;
}
.pg-enter .field{margin-bottom:18px;}
.pg-enter .field label{
  display:block;font-family:var(--mono);font-size:11px;letter-spacing:.2em;
  color:var(--gold);margin-bottom:8px;
}
.pg-enter input{
  width:100%;background:var(--bg-2);border:1px solid var(--line);color:var(--ink);
  font-size:16px;padding:12px 14px;font-family:inherit;outline:none;
}
.pg-enter input:focus{border-color:var(--gold-dim);}
.pg-enter input.code{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;}
.pg-enter .btn-gold{
  width:100%;background:var(--gold);color:var(--bg);border:none;cursor:pointer;
  font-size:15px;font-weight:700;letter-spacing:.1em;padding:14px;font-family:inherit;
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);
  margin-top:8px;transition:opacity .2s;
}
.pg-enter .btn-gold:hover{opacity:.88;}
.pg-enter .btn-gold:disabled{opacity:.4;}
.pg-enter .err{
  display:none;margin-top:16px;border:1px solid var(--red);color:var(--red);
  padding:10px 14px;font-size:13px;
}
.pg-enter .err.on{display:block;}
.pg-enter .foot{
  text-align:center;font-size:11px;color:var(--muted);padding:20px;line-height:1.8;
}

/* AI 教练对话 */
.pg-chat{display:flex;flex-direction:column;min-height:100vh;}
.pg-chat .chat-head{
  position:sticky;top:0;z-index:30;background:rgba(10,15,26,.97);
  border-bottom:1px solid var(--line);backdrop-filter:blur(10px);
}
.pg-chat .chat-head-in{
  max-width:820px;margin:0 auto;padding:14px 20px;
  display:flex;align-items:center;gap:12px;
}
.pg-chat .chat-head .lg{display:flex;align-items:baseline;gap:8px;}
.pg-chat .chat-head .lg .cn{font-size:15px;font-weight:800;letter-spacing:.1em;}
.pg-chat .chat-head .lg .en{font-family:var(--mono);font-size:9px;letter-spacing:.25em;color:var(--gold);}
.pg-chat .chat-head .tag{margin-left:auto;font-family:var(--mono);font-size:10px;letter-spacing:.15em;color:var(--muted);}
.pg-chat .msgs{
  flex:1;max-width:820px;width:100%;margin:0 auto;padding:22px 16px;
  display:flex;flex-direction:column;gap:14px;
}
.pg-chat .msg{max-width:86%;font-size:14.5px;line-height:1.75;white-space:pre-wrap;word-break:break-word;}
.pg-chat .msg.ai{
  align-self:flex-start;background:var(--panel);border:1px solid var(--line);
  padding:12px 16px;
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);
}
.pg-chat .msg.me{
  align-self:flex-end;background:rgba(216,179,106,.12);border:1px solid var(--gold-dim);
  padding:12px 16px;
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);
}
.pg-chat .msg .who{
  font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--gold);margin-bottom:6px;
}
.pg-chat .msg.typing::after{content:"▌";color:var(--gold);animation:blink 1s infinite;}
@keyframes blink{50%{opacity:0;}}
.pg-chat .hintrow{
  max-width:820px;width:100%;margin:0 auto;padding:0 16px 10px;
  display:flex;gap:8px;flex-wrap:wrap;
}
.pg-chat .hint-chip{
  font-size:12px;color:var(--muted);border:1px solid var(--line);
  padding:6px 12px;cursor:pointer;transition:all .15s;
}
.pg-chat .hint-chip:hover{color:var(--gold);border-color:var(--gold-dim);}
.pg-chat .inputbar{
  position:sticky;bottom:0;background:rgba(10,15,26,.97);
  border-top:1px solid var(--line);backdrop-filter:blur(10px);
  padding:10px 0 calc(10px + env(safe-area-inset-bottom));
}
.pg-chat .inputbar-in{
  max-width:820px;margin:0 auto;padding:0 16px;display:flex;gap:10px;align-items:flex-end;
}
.pg-chat textarea{
  flex:1;background:var(--bg-2);border:1px solid var(--line);color:var(--ink);
  font-size:15px;padding:11px 14px;font-family:inherit;outline:none;resize:none;
  min-height:44px;max-height:120px;line-height:1.5;
}
.pg-chat textarea:focus{border-color:var(--gold-dim);}
.pg-chat .send{
  background:var(--gold);color:var(--bg);border:none;cursor:pointer;
  font-size:14px;font-weight:700;letter-spacing:.08em;padding:12px 22px;font-family:inherit;
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);
}
.pg-chat .send:disabled{opacity:.4;}

/* 打卡页新增控件 */
.pg-stu .ck-btn{
  font-size:13px;font-weight:600;padding:8px 14px;cursor:pointer;font-family:inherit;
  background:none;border:1px solid var(--gold-dim);color:var(--gold);flex:none;
  min-width:86px;text-align:center;  /* 打卡前后宽度一致，避免整行重排 */
  clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px);
}
.pg-stu .ck-btn.done{background:var(--gold);color:var(--bg);}
/* 备注输入独占一行，窄屏才够写字 */
.pg-stu .task{flex-wrap:wrap;}
/* 选择器要压过 app.css 的 .pg-stu .task input（那条是给复选框的 15×15） */
.pg-stu .task input.ck-note,
.pg-stu .ck-note{
  flex:1 0 100%;width:100%;height:auto;margin-top:4px;
  background:var(--bg-2);border:1px solid var(--line);
  color:var(--ink);font-size:13px;padding:8px 10px;font-family:inherit;outline:none;cursor:text;
}
.pg-stu .task input.ck-note:focus{border-color:var(--gold-dim);}
.pg-stu .streak-row{display:flex;gap:14px;margin-bottom:20px;}
.pg-stu .streak-box{
  flex:1;background:var(--panel);border:1px solid var(--line);padding:16px 18px;text-align:center;
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);
}
.pg-stu .streak-box .n{font-family:var(--mono);font-size:26px;font-weight:700;color:var(--gold);}
.pg-stu .streak-box .l{font-size:11.5px;color:var(--muted);margin-top:2px;}

/* 报告页：对比面板 + 转化钩子 */
.pg-gen .cmp-summary{
  font-size:14.5px;border-left:2px solid var(--gold);padding:4px 0 4px 14px;margin-bottom:16px;
}
.pg-gen .hook{
  border:1px solid var(--gold-dim);background:linear-gradient(180deg,#182238 0%,var(--panel) 100%);
  padding:22px 24px;text-align:center;margin-top:22px;
  clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);
}
.pg-gen .hook b{display:block;font-size:15.5px;margin-bottom:6px;}
.pg-gen .hook p{font-size:13px;color:var(--muted);}
.pg-gen .hook .btns{margin-top:16px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}

/* 教练端登录 */
.pg-coach .login-wrap{
  min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;
}

/* 通用合规页脚 */
.legal-foot{
  text-align:center;font-size:10.5px;color:var(--muted);opacity:.85;
  padding:20px 24px;line-height:1.8;border-top:1px solid var(--line);margin-top:40px;
}

/* 报告列表窄屏换行 */
.pg-stu .rep{flex-wrap:wrap;}
.pg-stu .rep .sc{width:100%;order:3;padding-left:2px;}

/* ===== VANTA v1：教练品牌化 ===== */

/* 教练品牌头（替换原 logo 位置） */
.coach-logo{display:flex;align-items:center;gap:10px;}
.coach-logo .cavatar{
  width:30px;height:30px;border-radius:50%;object-fit:cover;
  border:1px solid var(--gold-dim);flex:none;
}
.coach-logo .cn{font-size:16px;font-weight:800;letter-spacing:.08em;}
.coach-logo .en{font-family:var(--mono);font-size:9px;letter-spacing:.28em;color:var(--gold);}

/* 入口页教练卡片 */
.pg-enter .coach-card{
  display:flex;align-items:center;gap:14px;margin-bottom:24px;
  border:1px solid var(--gold-dim);padding:14px 16px;
  background:linear-gradient(180deg,#182238 0%,var(--panel) 100%);
}
.pg-enter .coach-card img{
  width:52px;height:52px;border-radius:50%;object-fit:cover;
  border:1px solid var(--gold);flex:none;
}
.pg-enter .coach-card .cname{font-size:16px;font-weight:800;}
.pg-enter .coach-card .cname span{
  font-family:var(--mono);font-size:10px;color:var(--gold);letter-spacing:.2em;margin-left:8px;
}
.pg-enter .coach-card .cbio{font-size:12px;color:var(--muted);margin-top:3px;}

/* 报告尾转化区：教练出口 */
.cv-box{
  border:1px solid var(--gold-dim);
  background:linear-gradient(180deg,#182238 0%,var(--panel) 100%);
  padding:26px 24px;text-align:center;margin-top:22px;
  clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);
}
.cv-box .cv-title{font-size:16px;font-weight:800;margin-bottom:4px;}
.cv-box .cv-sub{font-size:13px;color:var(--muted);margin-bottom:18px;}
.cv-box .cv-qr{width:150px;height:auto;display:block;margin:0 auto 8px;border:4px solid #fff;}
.cv-box .cv-qr-label{font-family:var(--mono);font-size:11px;color:var(--muted);margin-bottom:14px;}
.cv-box .cv-wx{
  display:inline-flex;align-items:center;gap:10px;border:1px dashed var(--gold-dim);
  padding:10px 16px;margin-bottom:12px;font-size:14px;
}
.cv-box .cv-wx b{font-family:var(--mono);color:var(--gold);letter-spacing:.05em;}
.cv-box .cv-wx button{
  background:none;border:1px solid var(--line);color:var(--muted);cursor:pointer;
  font-size:12px;padding:4px 10px;font-family:inherit;
}
.cv-box .cv-course{display:block;font-size:13.5px;color:var(--ink);margin-top:6px;text-decoration:none;}
.cv-box .cv-course em{font-style:normal;color:var(--gold);}

/* Powered by VANTA 页脚 */
.legal-foot .pby{
  font-family:var(--mono);font-size:10px;letter-spacing:.3em;color:var(--muted);
}
.legal-foot .pby b{color:var(--gold);font-weight:700;}

/* ===== v1.1 信息架构：首页 / 训练 / 我的 ===== */

/* 教练品牌区（首页顶部，比页内 logo 更醒目） */
.coach-hero{
  display:flex;align-items:center;gap:14px;
  padding:18px 0 20px;border-bottom:1px solid var(--line);margin-bottom:22px;
}
.coach-hero img{
  width:46px;height:46px;border-radius:50%;object-fit:cover;
  border:1px solid var(--gold-dim);flex:none;
}
.coach-hero .ch-name{font-size:17px;font-weight:800;letter-spacing:.04em;}
.coach-hero .ch-name span{
  font-family:var(--mono);font-size:9.5px;color:var(--gold);
  letter-spacing:.2em;margin-left:8px;
}
.coach-hero .ch-bio{font-size:12px;color:var(--muted);margin-top:3px;}
.coach-hero .ch-day{
  margin-left:auto;flex:none;text-align:right;
  font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.08em;
}
.coach-hero .ch-day b{display:block;font-size:20px;color:var(--gold);font-weight:700;}

/* AI 教练今日一句 */
.tip-card{
  border:1px solid var(--gold-dim);border-left-width:3px;
  background:linear-gradient(90deg,rgba(216,179,106,.07) 0%,var(--panel) 60%);
  padding:16px 18px;margin-bottom:20px;
}
.tip-card .tip-label{
  font-family:var(--mono);font-size:10px;letter-spacing:.2em;
  color:var(--gold);margin-bottom:7px;
}
.tip-card .tip-text{font-size:14.5px;line-height:1.75;}
.tip-card.loading .tip-text{color:var(--muted);font-size:13px;}

/* 状态卡：2×2 关键指标 */
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px;}
.stat-cell{
  background:var(--panel);border:1px solid var(--line);padding:16px 16px 14px;
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);
}
.stat-cell .sc-label{
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;
  color:var(--muted);margin-bottom:8px;
}
.stat-cell .sc-value{font-family:var(--mono);font-size:26px;font-weight:700;line-height:1.1;}
.stat-cell .sc-value small{font-size:12px;color:var(--muted);font-weight:400;margin-left:3px;}
.stat-cell .sc-sub{font-size:11.5px;color:var(--muted);margin-top:5px;}
.stat-cell .sc-sub .up{color:var(--teal);}
.stat-cell .sc-sub .down{color:var(--red);}
.stat-cell .sc-value.gold{color:var(--gold);}

/* 曲线缩略图 */
.spark-panel{
  background:var(--panel);border:1px solid var(--line);padding:18px 20px 12px;margin-bottom:20px;
  clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);
}
.spark-panel .sp-head{
  display:flex;align-items:baseline;margin-bottom:10px;
  font-size:13px;font-weight:700;letter-spacing:.08em;
}
.spark-panel .sp-head .more{
  margin-left:auto;font-family:var(--mono);font-size:11px;
  color:var(--gold);font-weight:400;text-decoration:none;
}
.spark-panel svg{width:100%;height:auto;display:block;}
.spark-panel .sp-empty{font-size:13px;color:var(--muted);padding:6px 0 12px;}

/* 今日训练概览 */
.today-panel{
  background:var(--panel);border:1px solid var(--line);padding:18px 20px;margin-bottom:22px;
  clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);
}
.today-panel .tp-head{
  display:flex;align-items:baseline;margin-bottom:14px;
  font-size:13px;font-weight:700;letter-spacing:.08em;
}
.today-panel .tp-head .cnt{
  margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--muted);font-weight:400;
}
.today-panel .tp-head .cnt b{color:var(--gold);}
.today-row{
  display:flex;align-items:center;gap:10px;font-size:13.5px;
  padding:8px 0;border-bottom:1px solid var(--line);
}
.today-row:last-of-type{border-bottom:none;}
.today-row .tick{
  width:15px;height:15px;flex:none;border:1px solid var(--muted);
  display:flex;align-items:center;justify-content:center;
  font-size:10px;color:var(--bg);
}
.today-row.done .tick{background:var(--gold);border-color:var(--gold);}
.today-row.done span{color:var(--muted);text-decoration:line-through;}
.today-row .rt{margin-left:auto;font-family:var(--mono);font-size:10.5px;color:var(--muted);flex:none;}
.today-panel .tp-go{
  display:block;margin-top:14px;text-align:center;padding:10px;
  border:1px solid var(--line);color:var(--muted);font-size:13px;text-decoration:none;
}
.today-panel .tp-go:hover{border-color:var(--gold-dim);color:var(--gold);}

/* 首页主 CTA：上传新对局 */
.cta-retest{
  display:block;background:var(--gold);color:var(--bg);text-align:center;
  padding:16px;font-size:15.5px;font-weight:700;letter-spacing:.06em;text-decoration:none;
  clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);
}
.cta-retest:hover{opacity:.9;}
.cta-retest .sub{
  display:block;font-size:11.5px;font-weight:400;opacity:.75;margin-top:3px;letter-spacing:0;
}
.retest-note{
  text-align:center;font-family:var(--mono);font-size:11px;
  color:var(--muted);margin-top:10px;letter-spacing:.05em;
}

/* 打卡日历 */
.cal-wrap{margin-top:6px;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;}
.cal-grid .cal-wd{
  font-family:var(--mono);font-size:10px;color:var(--muted);
  text-align:center;padding-bottom:4px;
}
.cal-cell{
  aspect-ratio:1;border:1px solid var(--line);background:var(--bg-2);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:10px;color:var(--muted);
}
.cal-cell.pad{border-color:transparent;background:none;}
.cal-cell.none{opacity:.35;}
.cal-cell.full{background:var(--gold);border-color:var(--gold);color:var(--bg);font-weight:700;}
.cal-cell.part{background:rgba(216,179,106,.28);border-color:var(--gold-dim);color:var(--ink);}
.cal-cell.miss{background:rgba(255,107,122,.12);border-color:rgba(255,107,122,.4);color:var(--red);}
.cal-cell.today{outline:1px solid var(--teal);outline-offset:1px;}
.cal-legend{
  display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;
  font-family:var(--mono);font-size:10.5px;color:var(--muted);
}
.cal-legend i{
  display:inline-block;width:9px;height:9px;margin-right:5px;
  vertical-align:middle;border:1px solid var(--line);
}
.cal-legend i.full{background:var(--gold);border-color:var(--gold);}
.cal-legend i.part{background:rgba(216,179,106,.28);}
.cal-legend i.miss{background:rgba(255,107,122,.12);border-color:rgba(255,107,122,.4);}

/* 周对比条 */
.wk-compare{
  display:flex;align-items:center;gap:12px;margin-top:14px;
  font-family:var(--mono);font-size:11.5px;color:var(--muted);letter-spacing:.05em;
}
.wk-compare b{color:var(--ink);font-size:13px;}
.wk-compare .up{color:var(--teal);}
.wk-compare .down{color:var(--red);}

/* 我的页：个人信息行 */
.info-row{
  display:flex;padding:11px 0;border-bottom:1px solid var(--line);font-size:13.5px;
}
.info-row:last-child{border-bottom:none;}
.info-row .k{color:var(--muted);width:110px;flex:none;}
.info-row .v{color:var(--ink);}
.info-row .v em{font-style:normal;font-family:var(--mono);color:var(--gold);}

/* 微信内置浏览器细节 */
input,select,textarea{border-radius:0;-webkit-appearance:none;appearance:none;}

/* ===== 录像复盘 ===== */
/* 时间戳角标沿用 .task .day 的调性，但用青色区分：金色=处方，青色=时间点 */
.pg-gen .vfind{
  background:var(--panel-2);border:1px solid var(--line);padding:14px 16px;
  display:flex;gap:14px;margin-bottom:12px;align-items:flex-start;
  border-left:2px solid var(--line);
}
.pg-gen .vfind:last-child{margin-bottom:0;}
.pg-gen .vfind.bad{border-left-color:var(--red);}
.pg-gen .vfind.good{border-left-color:var(--teal);}
.pg-gen .vfind .vat{
  font-family:var(--mono);font-size:10px;color:var(--teal);
  border:1px solid var(--line);padding:2px 8px;flex:none;margin-top:3px;
  letter-spacing:.06em;white-space:nowrap;
}
.pg-gen .vfind.bad .vat{color:var(--amber);}
.pg-gen .vfind h4{font-size:14px;font-weight:700;margin-bottom:3px;}
.pg-gen .vfind p{font-size:13px;color:var(--muted);}

/* 「只有你知道」的追问：虚线框，视觉上区别于 AI 的结论 */
.pg-gen .vq-lead{font-size:13px;color:var(--muted);margin-bottom:12px;}
.pg-gen .vq{
  border:1px dashed var(--gold-dim);color:var(--ink);font-size:13.5px;
  padding:11px 14px;margin-bottom:9px;
}
.pg-gen .vq:last-child{margin-bottom:0;}
.pg-gen .vq::before{content:"? ";color:var(--gold);font-family:var(--mono);}

/* 首页双入口：截图诊断 + 录像复盘并排，窄屏自动堆叠 */
.pg-stu .entry2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;}
@media (max-width:420px){ .pg-stu .entry2{grid-template-columns:1fr;} }
.pg-stu .entry2 a{
  display:block;text-align:center;text-decoration:none;padding:13px 10px;
  border:1px solid var(--line);background:var(--panel-2);color:var(--ink);font-size:14px;
}
.pg-stu .entry2 a.primary{border-color:var(--gold-dim);color:var(--gold);}
.pg-stu .entry2 a small{display:block;font-size:11px;color:var(--muted);margin-top:3px;}

/* ===== 找回码 ===== */
.pg-enter .gate-alt{margin-top:14px;text-align:center;}
.pg-enter .gate-alt a{color:var(--muted);font-size:12.5px;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:2px;}
.pg-enter .gate-alt a:hover{color:var(--gold);}

/* 建号后的一次性弹窗：这一屏错过就没了，所以做成必须点掉的遮罩 */
.rc-mask{
  position:fixed;inset:0;background:rgba(10,15,26,.94);z-index:99;
  display:none;align-items:center;justify-content:center;padding:22px;
}
.rc-mask.on{display:flex;}
.rc-card{
  background:var(--panel);border:1px solid var(--gold-dim);max-width:380px;width:100%;padding:26px 22px;
  clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);
}
.rc-title{font-size:17px;font-weight:700;color:var(--gold);margin-bottom:12px;text-align:center;}
.rc-lead{font-size:13.5px;color:var(--muted);line-height:1.75;margin-bottom:16px;}
.rc-lead b,.rc-warn b{color:var(--ink);}
.rc-code{
  font-family:var(--mono);font-size:26px;letter-spacing:.14em;color:var(--gold);
  text-align:center;padding:16px 8px;margin-bottom:14px;
  background:var(--bg-2);border:1px dashed var(--gold-dim);word-break:break-all;
  user-select:all;   /* 长按能整段选中，方便复制 */
}
.rc-warn{font-size:12.5px;color:var(--muted);line-height:1.7;margin-bottom:18px;}
.rc-card .btn-gold{width:100%;}

/* 我的页 · 数据管理 */
.pg-stu .dbtn{
  display:block;width:100%;text-align:center;padding:11px;margin-bottom:9px;
  border:1px solid var(--line);background:var(--panel-2);color:var(--ink);
  font-size:13.5px;text-decoration:none;cursor:pointer;font-family:inherit;
}
.pg-stu .dbtn:hover{border-color:var(--gold-dim);color:var(--gold);}
.pg-stu .dbtn.danger{color:var(--red);border-color:rgba(255,107,122,.3);}
.pg-stu .dnote{font-size:12px;color:var(--muted);line-height:1.7;margin-bottom:12px;}
.pg-stu .dcode{
  font-family:var(--mono);font-size:19px;letter-spacing:.12em;color:var(--gold);
  text-align:center;padding:13px;margin:10px 0;background:var(--bg-2);
  border:1px dashed var(--gold-dim);user-select:all;word-break:break-all;
}

/* ===== 打法人格 ===== */
.pg-gen .pa-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:10px;}
.pg-gen .pa-name{font-size:27px;font-weight:700;color:var(--gold);letter-spacing:.02em;}
.pg-gen .pa-axes{display:flex;gap:6px;}
.pg-gen .pa-ax{
  font-family:var(--mono);font-size:11px;color:var(--gold);
  border:1px solid var(--gold-dim);padding:2px 9px;
}
.pg-gen .pa-tag{font-size:15px;color:var(--ink);line-height:1.7;margin-bottom:10px;}
/* 判词是娱乐，依据是正事，视觉上要能分出主次 */
.pg-gen .pa-basis{font-size:12.5px;color:var(--muted);line-height:1.7;}
.pg-gen .pa-share{
  margin-top:16px;width:100%;padding:12px;cursor:pointer;font-family:inherit;font-size:14px;
  background:transparent;color:var(--gold);border:1px solid var(--gold-dim);
}
.pg-gen .pa-share:hover{background:rgba(216,179,106,.08);}

/* 战报图弹层 */
.sc-mask{
  position:fixed;inset:0;background:rgba(10,15,26,.95);z-index:120;
  display:none;align-items:center;justify-content:center;padding:20px;overflow-y:auto;
}
.sc-mask.on{display:flex;}
.sc-inner{max-width:340px;width:100%;text-align:center;}
.sc-inner img{width:100%;border:1px solid var(--line);display:block;}
.sc-tip{font-size:12.5px;color:var(--muted);margin:12px 0 14px;}

/* ===== 开屏语录：顶部通知条 ===== */
/* 只是一句问候，不该挡住人要看的东西——所以是通知条，不是整屏遮罩 */
.qtoast{
  position:fixed;left:12px;right:12px;top:calc(10px + env(safe-area-inset-top,0px));z-index:200;
  background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--gold);
  padding:13px 16px;cursor:pointer;
  box-shadow:0 10px 30px rgba(0,0,0,.5);
  transform:translateY(-140%);opacity:0;
  transition:transform .42s cubic-bezier(.2,.9,.3,1),opacity .42s ease;
}
.qtoast.in{transform:translateY(0);opacity:1;}
.qtoast.out{transform:translateY(-140%);opacity:0;}
.qtoast .qt-label{
  font-family:var(--mono);font-size:10px;letter-spacing:.22em;color:var(--gold);margin-bottom:5px;
}
.qtoast p{font-size:14px;line-height:1.65;color:var(--ink);}
.qtoast p b{color:var(--gold);}
/* 桌面端别拉成一整条横幅 */
@media (min-width:720px){ .qtoast{left:auto;right:20px;top:20px;max-width:360px;} }
@media (prefers-reduced-motion:reduce){ .qtoast{transition-duration:.01s;} }


/* 找回码复制按钮 */
.rc-copy{
  width:100%;padding:11px;margin-bottom:14px;cursor:pointer;font-family:inherit;font-size:13.5px;
  background:transparent;color:var(--gold);border:1px solid var(--gold-dim);
}
.rc-copy:hover{background:rgba(216,179,106,.08);}
.rc-copy.done{color:var(--teal);border-color:var(--teal);}

/* 玩家 ID：名字#编号，跟游戏里一个格式 */
.pg-stu .pid{font-family:var(--mono);letter-spacing:.04em;user-select:all;}
